From 6d1616944d9efd342ed2a4fd318722adfc9febcd Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Tue, 4 Jun 2024 10:01:09 +0300 Subject: [PATCH 001/131] ggml : prevent builds with -ffinite-math-only (#7726) This enforces a check that -fno-finite-math-only was set and that the operating compiling mode is not in finite maths mode. This is because during rewriting of silu and softmax for cpu #7154 there emerged an issue where the result that was observed when >1 slot was nondeterministic as found by @JohannesGaessler. @LostRuins narrowed the problem down to -ffinite-math-only which was theorised to be due to SiLU, instead of flushing small values to 0, returns NaN or some other garbage. @jart proposed a fix that @ggerganov then implemented in this fix ref https://github.com/ggerganov/llama.cpp/pull/7154#issuecomment-2145661825 --- cmake/arm64-windows-llvm.cmake | 2 +- ggml.c | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/cmake/arm64-windows-llvm.cmake b/cmake/arm64-windows-llvm.cmake index 46fba65149b29..8023796800683 100644 --- a/cmake/arm64-windows-llvm.cmake +++ b/cmake/arm64-windows-llvm.cmake @@ -9,7 +9,7 @@ set( CMAKE_CXX_COMPILER clang++ ) set( CMAKE_C_COMPILER_TARGET ${target} ) set( CMAKE_CXX_COMPILER_TARGET ${target} ) -set( arch_c_flags "-march=armv8.7-a -fvectorize -ffp-model=fast" ) +set( arch_c_flags "-march=armv8.7-a -fvectorize -ffp-model=fast -fno-finite-math-only" ) set( warn_c_flags "-Wno-format -Wno-unused-variable -Wno-unused-function -Wno-gnu-zero-variadic-macro-arguments" ) set( CMAKE_C_FLAGS_INIT "${arch_c_flags} ${warn_c_flags}" ) diff --git a/ggml.c b/ggml.c index 000d9db7e4d10..8869e146ab2b8 100644 --- a/ggml.c +++ b/ggml.c @@ -2272,6 +2272,11 @@ inline static float ggml_silu_f32(float x) { return x/(1.0f + expf(-x)); } +#if __FINITE_MATH_ONLY__ +#error "some routines in ggml.c require non-finite math arithmetics -- pass -fno-finite-math-only to the compiler to fix" +#error "ref: https://github.com/ggerganov/llama.cpp/pull/7154#issuecomment-2143844461" +#endif + #if defined(__ARM_NEON) && defined(__aarch64__) // adapted from arm limited optimized routine From 3b38d48609280aa5f8ab7ea135a4351b2a5ee240 Mon Sep 17 00:00:00 2001 From: jaime-m-p <167997752+jaime-m-p@users.noreply.github.com> Date: Tue, 4 Jun 2024 09:17:17 +0200 Subject: [PATCH 002/131] Per token attributes (#7685) * Add per token attributes enum * Using phi-3 for testing 'rstrip' * Using jina-v2 for testing 'lstrip' * Brute force test for 'lstrip' and 'rstrip' * Implement 'rstrip' and 'lstrip' * Update phi-3 GGUF file (obsolete since 917dc8c) * Replace llama_token_type with llama_token_attribs --- llama.cpp | 149 +++++++++++++++++++++++---------- llama.h | 18 +++- models/ggml-vocab-phi-3.gguf | Bin 725846 -> 726019 bytes tests/test-tokenizer-random.py | 50 +++++++---- 4 files changed, 155 insertions(+), 62 deletions(-) diff --git a/llama.cpp b/llama.cpp index b0bf70e20cfc9..a3e944874cf80 100644 --- a/llama.cpp +++ b/llama.cpp @@ -2149,12 +2149,12 @@ struct llama_control_vector { struct llama_vocab { using id = int32_t; using token = std::string; - using ttype = llama_token_type; + using tattr = llama_token_attr; struct token_data { token text; float score; - ttype type; + tattr attr; }; enum llama_vocab_type type = LLAMA_VOCAB_TYPE_SPM; @@ -4750,7 +4750,20 @@ static void llm_load_vocab( auto & token_data = vocab.id_to_token[i]; token_data.text = std::move(word); token_data.score = scores ? scores[i] : 0.0f; - token_data.type = toktypes ? (llama_token_type) toktypes[i] : LLAMA_TOKEN_TYPE_NORMAL; + token_data.attr = LLAMA_TOKEN_ATTR_NORMAL; + + if (toktypes) { //TODO: remove, required until per token attributes are available from GGUF file + switch(toktypes[i]) { + case LLAMA_TOKEN_TYPE_UNKNOWN: token_data.attr = LLAMA_TOKEN_ATTR_UNKNOWN; break; + case LLAMA_TOKEN_TYPE_UNUSED: token_data.attr = LLAMA_TOKEN_ATTR_UNUSED; break; + case LLAMA_TOKEN_TYPE_NORMAL: token_data.attr = LLAMA_TOKEN_ATTR_NORMAL; break; + case LLAMA_TOKEN_TYPE_CONTROL: token_data.attr = LLAMA_TOKEN_ATTR_CONTROL; break; + case LLAMA_TOKEN_TYPE_USER_DEFINED: token_data.attr = LLAMA_TOKEN_ATTR_USER_DEFINED; break; + case LLAMA_TOKEN_TYPE_BYTE: token_data.attr = LLAMA_TOKEN_ATTR_BYTE; break; + case LLAMA_TOKEN_TYPE_UNDEFINED: token_data.attr = LLAMA_TOKEN_ATTR_UNDEFINED; break; + default: token_data.attr = LLAMA_TOKEN_ATTR_UNDEFINED; break; + } + } } GGML_ASSERT(vocab.id_to_token.size() == vocab.token_to_id.size()); @@ -4841,7 +4854,7 @@ static void llm_load_vocab( // build special tokens cache { for (llama_vocab::id id = 0; id < (llama_vocab::id)n_vocab; ++id) { - if (vocab.id_to_token[id].type != LLAMA_TOKEN_TYPE_NORMAL) { + if (!(vocab.id_to_token[id].attr & LLAMA_TOKEN_ATTR_NORMAL)) { vocab.cache_special_tokens.push_back(id); } } @@ -4871,6 +4884,59 @@ static void llm_load_vocab( LLAMA_LOG_INFO("%s: token to piece cache size = %.4f MB\n", __func__, size_cache / 1024.0 / 1024.0); } + + // Handle per token attributes + //NOTE: Each model customizes per token attributes. + //NOTE: Per token attributes are missing from the GGUF file. + //TODO: Extract attributes from GGUF file. + { + auto _contains_any = [] (const std::string &str, const std::vector &substrs) -> bool { + for (auto substr : substrs) { + if (str.find(substr) < std::string::npos) { + return true; + } + } + return false; + }; + + auto _set_tokenid_attr = [&] (const llama_vocab::id id, llama_token_attr attr, bool value) { + uint32_t current = vocab.id_to_token.at(id).attr; + current = value ? (current | attr) : (current & ~attr); + vocab.id_to_token[id].attr = (llama_token_attr) current; + }; + + auto _set_token_attr = [&] (const std::string & token, llama_token_attr attr, bool value) { + _set_tokenid_attr(vocab.token_to_id.at(token), attr, value); + }; + + std::string model_name; + std::string tokenizer_pre; + + ml.get_key(LLM_KV_GENERAL_NAME, model_name, false); + ml.get_key(LLM_KV_TOKENIZER_PRE, tokenizer_pre, false); + + // model name to lowercase + std::transform(model_name.begin(), model_name.end(), model_name.begin(), + [] (const std::string::value_type x) { + return std::tolower(x); + } + ); + + // set attributes by model/tokenizer name + if (_contains_any(tokenizer_pre, {"jina-v2-es", "jina-v2-de"})) { + _set_token_attr("", LLAMA_TOKEN_ATTR_LSTRIP, true); + } else if (_contains_any(model_name, {"phi-3", "phi3"})) { + for (auto id : vocab.cache_special_tokens) { + _set_tokenid_attr(id, LLAMA_TOKEN_ATTR_RSTRIP, true); + } + for (auto token : {""}) { + _set_token_attr(token, LLAMA_TOKEN_ATTR_RSTRIP, true); + } + for (auto token : {"", "", "<|endoftext|>"}) { + _set_token_attr(token, LLAMA_TOKEN_ATTR_RSTRIP, false); + } + } + } } static void llm_load_print_meta(llama_model_loader & ml, llama_model & model) { @@ -12620,27 +12686,27 @@ static enum llama_vocab_type llama_vocab_get_type(const llama_vocab & vocab) { static bool llama_is_normal_token(const llama_vocab & vocab, llama_token id) { GGML_ASSERT(vocab.type != LLAMA_VOCAB_TYPE_NONE); - return vocab.id_to_token[id].type == LLAMA_TOKEN_TYPE_NORMAL; + return vocab.id_to_token[id].attr & LLAMA_TOKEN_ATTR_NORMAL; } static bool llama_is_unknown_token(const llama_vocab & vocab, llama_token id) { GGML_ASSERT(vocab.type != LLAMA_VOCAB_TYPE_NONE); - return vocab.id_to_token[id].type == LLAMA_TOKEN_TYPE_UNKNOWN; + return vocab.id_to_token[id].attr & LLAMA_TOKEN_ATTR_UNKNOWN; } static bool llama_is_control_token(const llama_vocab & vocab, llama_token id) { GGML_ASSERT(vocab.type != LLAMA_VOCAB_TYPE_NONE); - return vocab.id_to_token[id].type == LLAMA_TOKEN_TYPE_CONTROL; + return vocab.id_to_token[id].attr & LLAMA_TOKEN_ATTR_CONTROL; } static bool llama_is_byte_token(const llama_vocab & vocab, llama_token id) { GGML_ASSERT(vocab.type != LLAMA_VOCAB_TYPE_NONE); - return vocab.id_to_token[id].type == LLAMA_TOKEN_TYPE_BYTE; + return vocab.id_to_token[id].attr & LLAMA_TOKEN_ATTR_BYTE; } static bool llama_is_user_defined_token(const llama_vocab& vocab, llama_token id) { GGML_ASSERT(vocab.type != LLAMA_VOCAB_TYPE_NONE); - return vocab.id_to_token[id].type == LLAMA_TOKEN_TYPE_USER_DEFINED; + return vocab.id_to_token[id].attr & LLAMA_TOKEN_ATTR_USER_DEFINED; } static uint8_t llama_token_to_byte(const llama_vocab& vocab, llama_token id) { @@ -13258,7 +13324,8 @@ struct fragment_buffer_variant { static void tokenizer_st_partition(const llama_vocab & vocab, std::forward_list & buffer) { // for each special token for (const llama_vocab::id special_id : vocab.cache_special_tokens) { - const auto & special_token = vocab.id_to_token[special_id].text; + const auto & data = vocab.id_to_token[special_id]; + const auto & special_token = data.text; // for each text fragment std::forward_list::iterator it = buffer.begin(); @@ -13295,13 +13362,22 @@ static void tokenizer_st_partition(const llama_vocab & vocab, std::forward_list< if (match > raw_text_base_offset) { // left const int64_t left_reminder_offset = raw_text_base_offset + 0; - const int64_t left_reminder_length = match - raw_text_base_offset; - buffer.emplace_after(it, raw_text, left_reminder_offset, left_reminder_length); + int64_t left_reminder_length = match - raw_text_base_offset; + + if (data.attr & LLAMA_TOKEN_ATTR_LSTRIP) { + while (left_reminder_length > 0 && isspace(raw_text[left_reminder_offset + left_reminder_length - 1])) { + left_reminder_length--; + } + } + + if (left_reminder_length > 0) { + buffer.emplace_after(it, raw_text, left_reminder_offset, left_reminder_length); + it++; + } #ifdef PRETOKENIZERDEBUG LLAMA_LOG_WARN("FL: (%ld %ld) '%s'\n", left_reminder_offset, left_reminder_length, raw_text->substr(left_reminder_offset, left_reminder_length).c_str()); #endif - it++; } // special token @@ -13310,16 +13386,25 @@ static void tokenizer_st_partition(const llama_vocab & vocab, std::forward_list< // right if (match + special_token.length() < raw_text_base_offset + raw_text_base_length) { - const int64_t right_reminder_offset = match + special_token.length(); - const int64_t right_reminder_length = raw_text_base_length - ((match - raw_text_base_offset) + special_token.length()); - buffer.emplace_after(it, raw_text, right_reminder_offset, right_reminder_length); + int64_t right_reminder_offset = match + special_token.length(); + int64_t right_reminder_length = raw_text_base_length - ((match - raw_text_base_offset) + special_token.length()); + + if (data.attr & LLAMA_TOKEN_ATTR_RSTRIP) { + while (right_reminder_length > 0 && isspace(raw_text[right_reminder_offset])) { + right_reminder_offset++; + right_reminder_length--; + } + } + + if (right_reminder_length > 0) { + buffer.emplace_after(it, raw_text, right_reminder_offset, right_reminder_length); + it++; + } #ifdef PRETOKENIZERDEBUG LLAMA_LOG_WARN("FR: (%ld %ld) '%s'\n", right_reminder_offset, right_reminder_length, raw_text->substr(right_reminder_offset, right_reminder_length).c_str()); #endif - it++; - if (source == 0) { buffer.erase_after(buffer.before_begin()); } else { @@ -13365,9 +13450,7 @@ static std::vector llama_tokenize_internal(const llama_vocab & // tokenizer.encode('', add_special_tokens=True) returns [1] // tokenizer.encode('', add_special_tokens=False) returns [] - static const bool rtrim = true; //TODO: as param bool is_prev_special = false; - bool special_token_rtrim = false; if (add_special && vocab.special_add_bos != 0) { GGML_ASSERT(vocab.special_bos_id != -1); @@ -13377,25 +13460,8 @@ static std::vector llama_tokenize_internal(const llama_vocab & for (const auto & fragment : fragment_buffer) { if (fragment.type == FRAGMENT_BUFFER_VARIANT_TYPE_RAW_TEXT) { - // without adding this leading whitespace, we do not get the same results as the original tokenizer - - // TODO: It's likely possible to get rid of this string copy entirely - // by modifying llm_tokenizer_x to operate with string offsets like pre-tokenizer - // and passing 'add space prefix' as bool argument - // auto raw_text = fragment.raw_text.substr(fragment.offset, fragment.length); - if (special_token_rtrim) { - size_t num_whitespaces = 0; - while (isspace(raw_text[num_whitespaces])) { - num_whitespaces++; - } - if (num_whitespaces == raw_text.size()) { - continue; // skip if all whitespaces - } - raw_text = raw_text.substr(num_whitespaces); - } - if (vocab.add_space_prefix) { if (!output.size() || is_prev_special) { // prefix with space if first token raw_text = " " + raw_text; @@ -13411,11 +13477,6 @@ static std::vector llama_tokenize_internal(const llama_vocab & } else { // if (fragment.type == FRAGMENT_BUFFER_VARIANT_TYPE_TOKEN) output.push_back(fragment.token); is_prev_special = true; - // phi-3 special tokens without rtrim, works fine for llama-spm too - special_token_rtrim = rtrim - && fragment.token != vocab.special_bos_id - && fragment.token != vocab.special_unk_id - && fragment.token != vocab.special_eos_id; } } @@ -18221,9 +18282,9 @@ float llama_token_get_score(const struct llama_model * model, llama_token token) return model->vocab.id_to_token[token].score; } -llama_token_type llama_token_get_type(const struct llama_model * model, llama_token token) { +llama_token_attr llama_token_get_attr(const struct llama_model * model, llama_token token) { GGML_ASSERT(model->vocab.type != LLAMA_VOCAB_TYPE_NONE); - return model->vocab.id_to_token[token].type; + return model->vocab.id_to_token[token].attr; } bool llama_token_is_eog(const struct llama_model * model, llama_token token) { diff --git a/llama.h b/llama.h index 95105c28e5e42..a78ccdaf557d0 100644 --- a/llama.h +++ b/llama.h @@ -97,7 +97,7 @@ extern "C" { LLAMA_ROPE_TYPE_GLM = 4, }; - enum llama_token_type { + enum llama_token_type { //TODO: remove, required until per token attributes are available from GGUF file LLAMA_TOKEN_TYPE_UNDEFINED = 0, LLAMA_TOKEN_TYPE_NORMAL = 1, LLAMA_TOKEN_TYPE_UNKNOWN = 2, @@ -107,6 +107,20 @@ extern "C" { LLAMA_TOKEN_TYPE_BYTE = 6, }; + enum llama_token_attr { + LLAMA_TOKEN_ATTR_UNDEFINED = 0, + LLAMA_TOKEN_ATTR_UNKNOWN = 1 << 1, + LLAMA_TOKEN_ATTR_UNUSED = 1 << 2, + LLAMA_TOKEN_ATTR_NORMAL = 1 << 3, + LLAMA_TOKEN_ATTR_CONTROL = 1 << 4, // SPECIAL? + LLAMA_TOKEN_ATTR_USER_DEFINED = 1 << 5, + LLAMA_TOKEN_ATTR_BYTE = 1 << 6, + LLAMA_TOKEN_ATTR_NORMALIZED = 1 << 7, + LLAMA_TOKEN_ATTR_LSTRIP = 1 << 8, + LLAMA_TOKEN_ATTR_RSTRIP = 1 << 9, + LLAMA_TOKEN_ATTR_SINGLE_WORD = 1 << 10, + }; + // model file types enum llama_ftype { LLAMA_FTYPE_ALL_F32 = 0, @@ -821,7 +835,7 @@ extern "C" { LLAMA_API float llama_token_get_score(const struct llama_model * model, llama_token token); - LLAMA_API enum llama_token_type llama_token_get_type(const struct llama_model * model, llama_token token); + LLAMA_API enum llama_token_attr llama_token_get_attr(const struct llama_model * model, llama_token token); // Check if the token is supposed to end generation (end-of-generation, eg. EOS, EOT, etc.) LLAMA_API bool llama_token_is_eog(const struct llama_model * model, llama_token token); diff --git a/models/ggml-vocab-phi-3.gguf b/models/ggml-vocab-phi-3.gguf index f8022a385e4aa48ca10d40d0f079a25365a7be78..745be416a798a1e7a2effaa935bc903edaaf303d 100644 GIT binary patch delta 576 zcmcb%Os9E;j-b1Hs2ei_0!U31tWws5@(VIDjrEH13sUuplM{0?^V0S5i!#$Q^AdC7 zHZQ#0~&Qc{Zyafln?5I05>&w&|a zQe(#jx1hMPxFj{V#*Q5>0(2ajPMAhh9O7m*b{uf+rNya5HFn#S*u7Sj-b1Hs2ei_0*Fr(tlD@)fw7sLshypP5r{!FGZ3=?F)I+WZD(ghKMD)h@nC3_C{s) zm(1Hc)!AP&PoJR9F5h0F&Az=vo8#;I=?kSfk5Atq&1o?`Lx$6klL=@gD6E*buan{Y n&OCju3@1 Iterator[str]: 'a', # Phi-3 fail '<|endoftext|>', # Phi-3 fail 'a\na', # TODO: Bert fail + 'a b', # rstrip phi-3 + 'a b', # lstrip jina-v2 ] -def generator_random_special_tokens(tokenizer, iterations=100) -> Iterator[str]: - special_tokens = set(tokenizer.all_special_tokens) - special_tokens.update([" ", "\n", "\t", "-", "!", "one", "1", "", ""]) - special_tokens = list(sorted(special_tokens)) +def generator_vocab_words(vocab: list[str]) -> Iterator[str]: + """Brute force check all vocab words""" + yield from vocab + + +def generator_added_lr_strip(tokenizer) -> Iterator[str]: + WHITESPACES = ["", " ", " ", " "] + special_tokens = list(tokenizer.all_special_tokens) + added_tokens = list(tokenizer.added_tokens_encoder) + all_tokens = list(sorted(set(special_tokens + added_tokens))) + for token in all_tokens: + for lstrip in WHITESPACES: + for rstrip in WHITESPACES: + yield lstrip + token + rstrip + yield "a" + lstrip + token + rstrip + yield lstrip + token + rstrip + "z" + yield "a" + lstrip + token + rstrip + "z" + + +def generator_random_added_tokens(tokenizer, iterations=100) -> Iterator[str]: + special_tokens = list(tokenizer.all_special_tokens) + added_tokens = list(tokenizer.added_tokens_encoder) + separations = [" ", "\n", "\t", "-", "!", "one", "1", "", ""] + all_tokens = list(sorted(set(special_tokens + added_tokens + separations))) rand = random.Random() for m in range(iterations): rand.seed(m) - words = rand.choices(special_tokens, k=500) + words = rand.choices(all_tokens, k=500) if words[0] == tokenizer.bos_token: # skip spam warning of double BOS while len(words) > 1 and words[1] == tokenizer.bos_token: # leave one starting BOS words.pop(0) @@ -175,11 +197,6 @@ def generator_random_special_tokens(tokenizer, iterations=100) -> Iterator[str]: yield "".join(words) -def generator_vocab_words(vocab: list[str]) -> Iterator[str]: - """Brute force check all vocab words""" - yield from vocab - - def generator_random_chars(iterations=100) -> Iterator[str]: """Brute force random text with simple characters""" @@ -274,8 +291,8 @@ def find_first_mismatch(ids1: list[int], ids2: list[int]): ids2 = func_tokenize2(text) if ids1 != ids2: i = find_first_mismatch(ids1, ids2) - ids1 = list(ids1)[max(0, i - 2) : i + 2 + 1] - ids2 = list(ids2)[max(0, i - 2) : i + 2 + 1] + ids1 = list(ids1)[max(0, i - 2) : i + 5 + 1] + ids2 = list(ids2)[max(0, i - 2) : i + 5 + 1] logger.info(" TokenIDs: " + str(ids1)) logger.info(" Expected: " + str(ids2)) raise Exception() @@ -309,8 +326,9 @@ def func_tokenize2(text: str): vocab = list(sorted(tokenizer.batch_decode(list(tokenizer.get_vocab().values()), skip_special_tokens=True))) test_compare_tokenizer(func_tokenize1, func_tokenize2, generator_custom_text()) test_compare_tokenizer(func_tokenize1, func_tokenize2, generator_custom_text_edge_cases()) - test_compare_tokenizer(func_tokenize1, func_tokenize2, generator_random_special_tokens(tokenizer, 10_000)) test_compare_tokenizer(func_tokenize1, func_tokenize2, generator_vocab_words(vocab)) + test_compare_tokenizer(func_tokenize1, func_tokenize2, generator_added_lr_strip(tokenizer)) + test_compare_tokenizer(func_tokenize1, func_tokenize2, generator_random_added_tokens(tokenizer, 10_000)) test_compare_tokenizer(func_tokenize1, func_tokenize2, generator_random_chars(10_000)) test_compare_tokenizer(func_tokenize1, func_tokenize2, generator_random_vocab_chars(vocab, 10_000)) test_compare_tokenizer(func_tokenize1, func_tokenize2, generator_random_vocab_words(vocab, 5_000)) @@ -322,14 +340,14 @@ def func_tokenize2(text: str): if __name__ == "__main__": # main() - path_tokenizers = "./models/tokenizers/" + path_tokenizers = "./models/tokenizers/" path_vocab_format = "./models/ggml-vocab-%s.gguf" # import os # tokenizers = os.listdir(path_tokenizers) tokenizers = [ - # "llama-spm", # SPM - # "phi-3", # SPM + "llama-spm", # SPM + "phi-3", # SPM "jina-v2-en", # WPM "bert-bge", # WPM ] From b226c1227bcf6412076ecf787421135fd2c42ef0 Mon Sep 17 00:00:00 2001 From: zhouwg Date: Tue, 4 Jun 2024 19:21:26 +0800 Subject: [PATCH 003/131] refine .gitignore (#7688) This adds tags and android ndk into the git ignore list --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 049efd703bf80..5223c6963b155 100644 --- a/.gitignore +++ b/.gitignore @@ -34,9 +34,11 @@ ggml-metal-embed.metal lcov-report/ gcovr-report/ +tags build* !build.zig cmake-build-* +android-ndk-* out/ tmp/ From 987d743d6bc4cee4bde6820733ea33a2abc0afac Mon Sep 17 00:00:00 2001 From: Daniele <57776841+daniandtheweb@users.noreply.github.com> Date: Tue, 4 Jun 2024 12:09:15 +0000 Subject: [PATCH 004/131] Improve hipBLAS support in CMake (#7696) * Improve hipBLAS support in CMake This improves the detection of the correct CMAKE_PREFIX_PATH when using different distributions or a self-built ROCm SDK. * Set ROCM_PATH correctly --- CMakeLists.txt | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 620305ca72224..76ea27412caf3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -557,12 +557,17 @@ if (LLAMA_VULKAN) endif() if (LLAMA_HIPBLAS) - if ($ENV{ROCM_PATH}) - set(ROCM_PATH $ENV{ROCM_PATH}) + if (NOT EXISTS $ENV{ROCM_PATH}) + if (NOT EXISTS /opt/rocm) + set(ROCM_PATH /usr) + else() + set(ROCM_PATH /opt/rocm) + endif() else() - set(ROCM_PATH /opt/rocm) + set(ROCM_PATH $ENV{ROCM_PATH}) endif() list(APPEND CMAKE_PREFIX_PATH ${ROCM_PATH}) + list(APPEND CMAKE_PREFIX_PATH "${ROCM_PATH}/lib64/cmake") # CMake on Windows doesn't support the HIP language yet if(WIN32) From adc9ff384121f4d550d28638a646b336d051bf42 Mon Sep 17 00:00:00 2001 From: slaren Date: Tue, 4 Jun 2024 14:32:42 +0200 Subject: [PATCH 005/131] llama-bench : allow using a different printer for stderr with -oe (#7722) compare-commits.sh : hide stdout, use -oe to print markdown --- examples/llama-bench/llama-bench.cpp | 145 +++++++++++++++++---------- scripts/compare-commits.sh | 16 +-- 2 files changed, 101 insertions(+), 60 deletions(-) diff --git a/examples/llama-bench/llama-bench.cpp b/examples/llama-bench/llama-bench.cpp index c008904476d3e..5d3cbd842dc69 100644 --- a/examples/llama-bench/llama-bench.cpp +++ b/examples/llama-bench/llama-bench.cpp @@ -140,10 +140,11 @@ static std::string get_gpu_info() { } // command line params -enum output_formats {CSV, JSON, MARKDOWN, SQL}; +enum output_formats {NONE, CSV, JSON, MARKDOWN, SQL}; static const char * output_format_str(output_formats format) { switch (format) { + case NONE: return "none"; case CSV: return "csv"; case JSON: return "json"; case MARKDOWN: return "md"; @@ -152,6 +153,23 @@ static const char * output_format_str(output_formats format) { } } +static bool output_format_from_str(const std::string & s, output_formats & format) { + if (s == "none") { + format = NONE; + } else if (s == "csv") { + format = CSV; + } else if (s == "json") { + format = JSON; + } else if (s == "md") { + format = MARKDOWN; + } else if (s == "sql") { + format = SQL; + } else { + return false; + } + return true; +} + static const char * split_mode_str(llama_split_mode mode) { switch (mode) { case LLAMA_SPLIT_MODE_NONE: return "none"; @@ -190,31 +208,33 @@ struct cmd_params { int reps; bool verbose; output_formats output_format; + output_formats output_format_stderr; }; static const cmd_params cmd_params_defaults = { - /* model */ {"models/7B/ggml-model-q4_0.gguf"}, - /* n_prompt */ {512}, - /* n_gen */ {128}, - /* n_pg */ {}, - /* n_batch */ {2048}, - /* n_ubatch */ {512}, - /* type_k */ {GGML_TYPE_F16}, - /* type_v */ {GGML_TYPE_F16}, - /* n_threads */ {cpu_get_num_math()}, - /* n_gpu_layers */ {99}, - /* rpc_servers */ {""}, - /* split_mode */ {LLAMA_SPLIT_MODE_LAYER}, - /* main_gpu */ {0}, - /* no_kv_offload */ {false}, - /* flash_attn */ {false}, - /* tensor_split */ {std::vector(llama_max_devices(), 0.0f)}, - /* use_mmap */ {true}, - /* embeddings */ {false}, - /* numa */ GGML_NUMA_STRATEGY_DISABLED, - /* reps */ 5, - /* verbose */ false, - /* output_format */ MARKDOWN + /* model */ {"models/7B/ggml-model-q4_0.gguf"}, + /* n_prompt */ {512}, + /* n_gen */ {128}, + /* n_pg */ {}, + /* n_batch */ {2048}, + /* n_ubatch */ {512}, + /* type_k */ {GGML_TYPE_F16}, + /* type_v */ {GGML_TYPE_F16}, + /* n_threads */ {cpu_get_num_math()}, + /* n_gpu_layers */ {99}, + /* rpc_servers */ {""}, + /* split_mode */ {LLAMA_SPLIT_MODE_LAYER}, + /* main_gpu */ {0}, + /* no_kv_offload */ {false}, + /* flash_attn */ {false}, + /* tensor_split */ {std::vector(llama_max_devices(), 0.0f)}, + /* use_mmap */ {true}, + /* embeddings */ {false}, + /* numa */ GGML_NUMA_STRATEGY_DISABLED, + /* reps */ 5, + /* verbose */ false, + /* output_format */ MARKDOWN, + /* output_format_stderr */ NONE, }; static void print_usage(int /* argc */, char ** argv) { @@ -243,6 +263,7 @@ static void print_usage(int /* argc */, char ** argv) { printf(" -ts, --tensor-split (default: 0)\n"); printf(" -r, --repetitions (default: %d)\n", cmd_params_defaults.reps); printf(" -o, --output (default: %s)\n", output_format_str(cmd_params_defaults.output_format)); + printf(" -oe, --output-err (default: %s)\n", output_format_str(cmd_params_defaults.output_format_stderr)); printf(" -v, --verbose (default: %s)\n", cmd_params_defaults.verbose ? "1" : "0"); printf("\n"); printf("Multiple values can be given for each parameter by separating them with ',' or by specifying the parameter multiple times.\n"); @@ -284,6 +305,7 @@ static cmd_params parse_cmd_params(int argc, char ** argv) { params.verbose = cmd_params_defaults.verbose; params.output_format = cmd_params_defaults.output_format; + params.output_format_stderr = cmd_params_defaults.output_format_stderr; params.reps = cmd_params_defaults.reps; for (int i = 1; i < argc; i++) { @@ -493,18 +515,13 @@ static cmd_params parse_cmd_params(int argc, char ** argv) { invalid_param = true; break; } - if (argv[i] == std::string("csv")) { - params.output_format = CSV; - } else if (argv[i] == std::string("json")) { - params.output_format = JSON; - } else if (argv[i] == std::string("md")) { - params.output_format = MARKDOWN; - } else if (argv[i] == std::string("sql")) { - params.output_format = SQL; - } else { + invalid_param = !output_format_from_str(argv[i], params.output_format); + } else if (arg == "-oe" || arg == "--output-err") { + if (++i >= argc) { invalid_param = true; break; } + invalid_param = !output_format_from_str(argv[i], params.output_format_stderr); } else if (arg == "-v" || arg == "--verbose") { params.verbose = true; } else { @@ -1278,6 +1295,22 @@ static void llama_null_log_callback(enum ggml_log_level level, const char * text (void) user_data; } +static std::unique_ptr create_printer(output_formats format) { + switch (format) { + case NONE: + return nullptr; + case CSV: + return std::unique_ptr(new csv_printer()); + case JSON: + return std::unique_ptr(new json_printer()); + case MARKDOWN: + return std::unique_ptr(new markdown_printer()); + case SQL: + return std::unique_ptr(new sql_printer()); + } + GGML_ASSERT(false); +} + int main(int argc, char ** argv) { // try to set locale for unicode characters in markdown setlocale(LC_CTYPE, ".UTF-8"); @@ -1304,26 +1337,18 @@ int main(int argc, char ** argv) { llama_numa_init(params.numa); // initialize printer - std::unique_ptr p; - switch (params.output_format) { - case CSV: - p.reset(new csv_printer()); - break; - case JSON: - p.reset(new json_printer()); - break; - case MARKDOWN: - p.reset(new markdown_printer()); - break; - case SQL: - p.reset(new sql_printer()); - break; - default: - assert(false); - exit(1); + std::unique_ptr p = create_printer(params.output_format); + std::unique_ptr p_err = create_printer(params.output_format_stderr); + + if (p) { + p->fout = stdout; + p->print_header(params); + } + + if (p_err) { + p_err->fout = stderr; + p_err->print_header(params); } - p->fout = stdout; - p->print_header(params); std::vector params_instances = get_cmd_params_instances(params); @@ -1381,7 +1406,15 @@ int main(int argc, char ** argv) { t.samples_ns.push_back(t_ns); } - p->print_test(t); + if (p) { + p->print_test(t); + fflush(p->fout); + } + + if (p_err) { + p_err->print_test(t); + fflush(p_err->fout); + } llama_print_timings(ctx); @@ -1390,7 +1423,13 @@ int main(int argc, char ** argv) { llama_free_model(lmodel); - p->print_footer(); + if (p) { + p->print_footer(); + } + + if (p_err) { + p_err->print_footer(); + } llama_backend_free(); diff --git a/scripts/compare-commits.sh b/scripts/compare-commits.sh index fd0ee88b23748..a45cd3962ac0a 100755 --- a/scripts/compare-commits.sh +++ b/scripts/compare-commits.sh @@ -10,16 +10,18 @@ set -x bench_args="${@:3}" -rm -f llama-bench.sqlite +rm -f llama-bench.sqlite > /dev/null # to test a backend, call the script with the corresponding environment variable (e.g. LLAMA_CUDA=1 ./scripts/compare-commits.sh ...) -git checkout $1 -make clean && make -j32 $make_opts llama-bench -./llama-bench -o sql $bench_args | tee /dev/tty | sqlite3 llama-bench.sqlite +git checkout $1 > /dev/null +make clean > /dev/null +make -j$(nproc) $make_opts llama-bench > /dev/null +./llama-bench -o sql -oe md $bench_args | sqlite3 llama-bench.sqlite -git checkout $2 -make clean && make -j32 $make_opts llama-bench -./llama-bench -o sql $bench_args | tee /dev/tty | sqlite3 llama-bench.sqlite +git checkout $2 > /dev/null +make clean > /dev/null +make -j$(nproc) $make_opts llama-bench > /dev/null +./llama-bench -o sql -oe md $bench_args | sqlite3 llama-bench.sqlite ./scripts/compare-llama-bench.py -b $1 -c $2 From 5ca0944a153b65724d51b2f484139aa25ccb7a8b Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Tue, 4 Jun 2024 19:43:01 +0300 Subject: [PATCH 006/131] readme : remove obsolete Zig instructions (#7471) --- README.md | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/README.md b/README.md index 8680460aab700..1f2d9b1f23554 100644 --- a/README.md +++ b/README.md @@ -364,17 +364,6 @@ In order to build llama.cpp you have four different options. cmake --build build --config Debug ``` -- Using `Zig` (version 0.11 or later): - - Building for optimization levels and CPU features can be accomplished using standard build arguments, for example AVX2, FMA, F16C, - it's also possible to cross compile for other operating systems and architectures: - - ```bash - zig build -Doptimize=ReleaseFast -Dtarget=x86_64-windows-gnu -Dcpu=x86_64+avx2+fma+f16c - ``` - - The `zig targets` command will give you valid options to use. - - Using `gmake` (FreeBSD): 1. Install and activate [DRM in FreeBSD](https://wiki.freebsd.org/Graphics) From 0cd6bd3483fa66124b76a8a8ac794d9ee18c70c1 Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Tue, 4 Jun 2024 21:23:05 +0300 Subject: [PATCH 007/131] llama : remove beam search (#7736) --- Makefile | 6 +- examples/CMakeLists.txt | 1 - examples/beam-search/CMakeLists.txt | 5 - examples/beam-search/beam-search.cpp | 188 -------------------- llama.cpp | 254 --------------------------- llama.h | 42 +---- 6 files changed, 2 insertions(+), 494 deletions(-) delete mode 100644 examples/beam-search/CMakeLists.txt delete mode 100644 examples/beam-search/beam-search.cpp diff --git a/Makefile b/Makefile index b527f6f35b062..27eb69871322c 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ # Define the default target now so that it is always the first target BUILD_TARGETS = \ main quantize quantize-stats perplexity imatrix embedding vdot q8dot train-text-from-scratch convert-llama2c-to-ggml \ - simple batched batched-bench save-load-state server gguf gguf-split eval-callback llama-bench libllava.a llava-cli baby-llama beam-search \ + simple batched batched-bench save-load-state server gguf gguf-split eval-callback llama-bench libllava.a llava-cli baby-llama \ retrieval speculative infill tokenize benchmark-matmult parallel finetune export-lora lookahead lookup passkey gritlm tests/test-c.o # Binaries only useful for tests @@ -914,10 +914,6 @@ baby-llama: examples/baby-llama/baby-llama.cpp ggml.o llama.o $(COMMON_DEPS) tra $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) -beam-search: examples/beam-search/beam-search.cpp ggml.o llama.o $(COMMON_DEPS) $(OBJS) - $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) - $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) - finetune: examples/finetune/finetune.cpp ggml.o llama.o $(COMMON_DEPS) train.o $(OBJS) $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index b40ee4ccb2ec1..53002f8e1ce76 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -15,7 +15,6 @@ else() add_subdirectory(baby-llama) add_subdirectory(batched) add_subdirectory(batched-bench) - add_subdirectory(beam-search) add_subdirectory(benchmark) add_subdirectory(convert-llama2c-to-ggml) add_subdirectory(embedding) diff --git a/examples/beam-search/CMakeLists.txt b/examples/beam-search/CMakeLists.txt deleted file mode 100644 index f0e37468b1030..0000000000000 --- a/examples/beam-search/CMakeLists.txt +++ /dev/null @@ -1,5 +0,0 @@ -set(TARGET beam-search) -add_executable(${TARGET} beam-search.cpp) -install(TARGETS ${TARGET} RUNTIME) -target_link_libraries(${TARGET} PRIVATE common llama ${CMAKE_THREAD_LIBS_INIT}) -target_compile_features(${TARGET} PRIVATE cxx_std_11) diff --git a/examples/beam-search/beam-search.cpp b/examples/beam-search/beam-search.cpp deleted file mode 100644 index 3d34378a506eb..0000000000000 --- a/examples/beam-search/beam-search.cpp +++ /dev/null @@ -1,188 +0,0 @@ -#include "common.h" -#include "llama.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#if defined (__unix__) || (defined (__APPLE__) && defined (__MACH__)) -#include -#include -#elif defined (_WIN32) -#define WIN32_LEAN_AND_MEAN -#ifndef NOMINMAX -# define NOMINMAX -#endif -#include -#include -#endif - -// Used for debugging to print out beam tokens. -struct ostream_beam_view { - llama_context * ctx; - llama_beam_view beam_view; -}; - -static std::ostream & operator<<(std::ostream & os, const ostream_beam_view & obv) { - os << "p(" << obv.beam_view.p << ") eob(" << std::boolalpha << obv.beam_view.eob << ") tokens("; - for (size_t i = 0 ; i < obv.beam_view.n_tokens ; ++i) { - os << llama_token_to_piece(obv.ctx, obv.beam_view.tokens[i]); - } - return os << ')'; -} - -// Put here anything you want back in beam_search_callback(). -struct beam_search_callback_data { - llama_context * ctx; - std::vector response; -}; - -// In this case, end-of-beam (eob) is equivalent to end-of-sentence (eos) but this need not always be the same. -// For example, eob can be flagged due to maximum token length, stop words, etc. -static bool is_at_eob(const beam_search_callback_data & callback_data, const llama_token * tokens, size_t n_tokens) { - return n_tokens && llama_token_is_eog(llama_get_model(callback_data.ctx), tokens[n_tokens-1]); -} - -// Function matching type llama_beam_search_callback_fn_t. -// Custom callback example is called each time the beams lengths increase: -// * Show progress by printing ',' following by number of convergent beam tokens if any. -// * When all beams converge to a common prefix, they are made available in beams_state.beams[0]. -// This is also called when the stop condition is met. -// Collect tokens into std::vector response which is pointed to by callback_data. -static void beam_search_callback(void * callback_data_ptr, llama_beams_state beams_state) { - auto& callback_data = *static_cast(callback_data_ptr); - // Mark beams as EOS as needed. - for (size_t i = 0 ; i < beams_state.n_beams ; ++i) { - llama_beam_view& beam_view = beams_state.beam_views[i]; - if (!beam_view.eob && is_at_eob(callback_data, beam_view.tokens, beam_view.n_tokens)) { - beam_view.eob = true; - } - } - printf(","); // Show progress - if (const size_t n = beams_state.common_prefix_length) { - callback_data.response.resize(callback_data.response.size() + n); - assert(0u < beams_state.n_beams); - const llama_token * tokens = beams_state.beam_views[0].tokens; - std::copy(tokens, tokens + n, callback_data.response.end() - n); - printf("%zu", n); - } - fflush(stdout); -#if 1 // DEBUG: print current beams for this iteration - std::cout << "\n\nCurrent beams (last_call=" << beams_state.last_call << "):\n"; - for (size_t i = 0 ; i < beams_state.n_beams ; ++i) { - std::cout << "beams["< 3 ) - { - params.prompt = argv[3]; - } - - if ( params.prompt.empty() ) - { - params.prompt = "### Request:\nHow many countries are there?\n\n### Response:\n"; - } - - //--------------------------------- - // Init LLM : - //--------------------------------- - - llama_backend_init(); - llama_numa_init(params.numa); - - llama_model * model; - llama_context * ctx; - - std::tie(model, ctx) = llama_init_from_gpt_params( params ); - - if ( model == NULL ) - { - fprintf( stderr , "%s: error: unable to load model\n" , __func__ ); - return 1; - } - - //--------------------------------- - // Tokenize the prompt : - //--------------------------------- - - std::vector tokens_list = llama_tokenize(ctx, params.prompt, true); - - const size_t max_context_size = llama_n_ctx( ctx ); - const size_t max_tokens_list_size = max_context_size - 4 ; - - if (tokens_list.size() > max_tokens_list_size) - { - fprintf( stderr , "%s: error: prompt too long (%zu tokens, max %zu)\n" , - __func__ , tokens_list.size() , max_tokens_list_size ); - return 1; - } - - fprintf( stderr, "\n\n" ); - - // Print the tokens from the prompt : - - for( auto id : tokens_list ) - { - std::cout << llama_token_to_piece(ctx, id); - } - std::cout << std::flush; - - int n_past = 0; - - if (llama_decode(ctx, llama_batch_get_one(tokens_list.data(), tokens_list.size(), n_past, 0))) - { - fprintf(stderr, "%s : failed to eval prompt.\n" , __func__ ); - return 1; - } - n_past += tokens_list.size(); - - beam_search_callback_data callback_data{ctx, {}}; - size_t const beam_width = static_cast(params.n_beams); - int const n_predict = 256; - llama_beam_search(ctx, beam_search_callback, &callback_data, beam_width, n_past, n_predict); - - std::cout << "\n\n"; - for (llama_token const token_id : callback_data.response) { - std::cout << llama_token_to_piece(ctx,token_id); - } - std::cout << std::endl; - - llama_free( ctx ); - llama_free_model( model ); - - llama_backend_free(); - - return 0; -} diff --git a/llama.cpp b/llama.cpp index a3e944874cf80..92c33f53e03ad 100644 --- a/llama.cpp +++ b/llama.cpp @@ -14711,260 +14711,6 @@ void llama_grammar_accept_token(struct llama_context * ctx, struct llama_grammar ctx->t_sample_us += ggml_time_us() - t_start_sample_us; } -// -// Beam search -// - -struct llama_beam { - std::vector tokens; - float p; // Cumulative beam probability (renormalized relative to all beams) - bool eob; // Initialize end-of-beam to false. Callback sets this to true. - // Sort beams by probability. In case of ties, prefer beams at eob. - bool operator<(const llama_beam & rhs) const { - return std::make_pair(p, eob) < std::make_pair(rhs.p, rhs.eob); - } - // Shift off first n tokens and discard them. - void shift_tokens(const size_t n) { - if (n) { - std::copy(tokens.begin() + n, tokens.end(), tokens.begin()); - tokens.resize(tokens.size() - n); - } - } - llama_beam_view view() const { return {tokens.data(), tokens.size(), p, eob}; } -}; - -// A struct for calculating logit-related info. -struct llama_logit_info { - const float * const logits; - const int n_vocab; - const float max_l; - const float normalizer; - struct sum_exp { - float max_l; - float operator()(float sum, float l) const { return sum + std::exp(l - max_l); } - }; - llama_logit_info(llama_context * ctx) - : logits(llama_get_logits(ctx)) - , n_vocab(llama_n_vocab(llama_get_model(ctx))) - , max_l(*std::max_element(logits, logits + n_vocab)) - , normalizer(1.0f / std::accumulate(logits, logits + n_vocab, 0.0f, sum_exp{max_l})) - { } - llama_token_data get_token_data(const llama_token token_id) const { - constexpr auto p = std::numeric_limits::quiet_NaN(); // never used - return {token_id, logits[token_id], p}; - } - // Return top k token_data by logit. - std::vector top_k(size_t k) { - std::vector min_heap; // min-heap by logit - const llama_token k_min = std::min(static_cast(k), n_vocab); - min_heap.reserve(k_min); - for (llama_token token_id = 0 ; token_id < k_min ; ++token_id) { - min_heap.push_back(get_token_data(token_id)); - } - auto comp = [](const llama_token_data & a, const llama_token_data & b) { return a.logit > b.logit; }; - std::make_heap(min_heap.begin(), min_heap.end(), comp); - for (llama_token token_id = k_min ; token_id < n_vocab ; ++token_id) { - if (min_heap.front().logit < logits[token_id]) { - std::pop_heap(min_heap.begin(), min_heap.end(), comp); - min_heap.back().id = token_id; - min_heap.back().logit = logits[token_id]; - std::push_heap(min_heap.begin(), min_heap.end(), comp); - } - } - return min_heap; - } - float probability_from_logit(float logit) const { - return normalizer * std::exp(logit - max_l); - } -}; - -struct llama_beam_search_data { - llama_context * ctx; - size_t n_beams; - int n_past; - int n_predict; - std::vector beams; - std::vector next_beams; - - // Re-calculated on each loop iteration - size_t common_prefix_length; - - // Used to communicate to/from callback on beams state. - std::vector beam_views; - - llama_beam_search_data(llama_context * ctx, size_t n_beams, int n_past, int n_predict) - : ctx(ctx) - , n_beams(n_beams) - , n_past(n_past) - , n_predict(n_predict) - , beam_views(n_beams) { - beams.reserve(n_beams); - next_beams.reserve(n_beams); - } - - // Collapse beams to a single beam given by index. - void collapse_beams(const size_t beam_idx) { - if (0u < beam_idx) { - std::swap(beams[0], beams[beam_idx]); - } - beams.resize(1); - } - - // Min-heaps are used to efficiently collect the top-k elements (k=n_beams). - // The repetitive patterns below reflect the 2 stages of heaps: - // * Gather elements until the vector is full, then call std::make_heap() on it. - // * If the heap is full and a new element is found that should be included, pop the - // least element to the back(), replace it with the new, then push it into the heap. - void fill_next_beams_by_top_probabilities(llama_beam & beam) { - // Min-heaps use a greater-than comparator. - const auto comp = [](const llama_beam & a, const llama_beam & b) { return a.p > b.p; }; - if (beam.eob) { - // beam is at end-of-sentence, so just copy it to next_beams if its probability is high enough. - if (next_beams.size() < n_beams) { - next_beams.push_back(std::move(beam)); - if (next_beams.size() == n_beams) { - std::make_heap(next_beams.begin(), next_beams.end(), comp); - } - } else if (next_beams.front().p < beam.p) { - std::pop_heap(next_beams.begin(), next_beams.end(), comp); - next_beams.back() = std::move(beam); - std::push_heap(next_beams.begin(), next_beams.end(), comp); - } - } else { - // beam is not at end-of-sentence, so branch with next top_k tokens. - if (!beam.tokens.empty()) { - llama_decode(ctx, llama_batch_get_one(beam.tokens.data(), beam.tokens.size(), n_past, 0)); - } - llama_logit_info logit_info(ctx); - std::vector next_tokens = logit_info.top_k(n_beams); - - // Clear the kv slot so that other beams may try different tokens at this position. The llama_decode() - // call in loop() will conclusively fill in the kv slot once the beams converge at this position. - llama_kv_cache_seq_rm(ctx, 0, n_past, -1); - - size_t i=0; - if (next_beams.size() < n_beams) { - for (; next_beams.size() < n_beams ; ++i) { - llama_beam next_beam = beam; - next_beam.tokens.push_back(next_tokens[i].id); - next_beam.p *= logit_info.probability_from_logit(next_tokens[i].logit); - next_beams.push_back(std::move(next_beam)); - } - std::make_heap(next_beams.begin(), next_beams.end(), comp); - } else { - for (; next_beams.front().p == 0.0f ; ++i) { - std::pop_heap(next_beams.begin(), next_beams.end(), comp); - next_beams.back() = beam; - next_beams.back().tokens.push_back(next_tokens[i].id); - next_beams.back().p *= logit_info.probability_from_logit(next_tokens[i].logit); - std::push_heap(next_beams.begin(), next_beams.end(), comp); - } - } - for (; i < n_beams ; ++i) { - const float next_p = beam.p * logit_info.probability_from_logit(next_tokens[i].logit); - if (next_beams.front().p < next_p) { - std::pop_heap(next_beams.begin(), next_beams.end(), comp); - next_beams.back() = beam; - next_beams.back().tokens.push_back(next_tokens[i].id); - next_beams.back().p = next_p; - std::push_heap(next_beams.begin(), next_beams.end(), comp); - } - } - } - } - - // Find common_prefix_length based on beams. - // Requires beams is not empty. - size_t find_common_prefix_length() { - size_t common_prefix_length = beams[0].tokens.size(); - for (size_t i = 1 ; i < beams.size() ; ++i) { - common_prefix_length = std::min(common_prefix_length, beams[i].tokens.size()); - for (size_t j = 0 ; j < common_prefix_length ; ++j) { - if (beams[0].tokens[j] != beams[i].tokens[j]) { - common_prefix_length = j; - break; - } - } - } - return common_prefix_length; - } - - // Construct beams_state to send back to caller via the callback function. - // Side effect: set common_prefix_length = find_common_prefix_length(); - llama_beams_state get_beams_state(const bool last_call) { - for (size_t i = 0 ; i < beams.size() ; ++i) { - beam_views[i] = beams[i].view(); - } - common_prefix_length = find_common_prefix_length(); - return {beam_views.data(), beams.size(), common_prefix_length, last_call}; - } - - // Loop: - // * while i < n_predict, AND - // * any of the beams have not yet reached end-of-beam (eob), AND - // * the highest probability beam(s) (plural in case of ties) are not at end-of-sentence - // (since all other beam probabilities can only decrease) - void loop(const llama_beam_search_callback_fn_t callback, void * const callback_data) { - beams.push_back({{}, 1.0f, false}); // Start with one empty beam w/ probability = 1.0 and !eob. - const auto not_eob = [](const llama_beam & beam) { return !beam.eob; }; - for (int i = 0 ; i < n_predict && std::any_of(beams.begin(),beams.end(),not_eob) && - !beams[top_beam_index()].eob ; ++i) { - callback(callback_data, get_beams_state(false)); // Sets common_prefix_length - update_beams_from_beam_views(); // Update values (p,eob) that callback may have changed. - if (common_prefix_length) { - llama_decode(ctx, llama_batch_get_one(beams[0].tokens.data(), common_prefix_length, n_past, 0)); - n_past += common_prefix_length; - } - // Zero-out next_beam probabilities to place them last in following min-heap. - std::for_each(next_beams.begin(), next_beams.end(), [](llama_beam & beam) { beam.p = 0.0f; }); - for (llama_beam & beam : beams) { - beam.shift_tokens(common_prefix_length); - fill_next_beams_by_top_probabilities(beam); - } - // next_beams become the beams of next/final iteration. Swap them to re-use memory. - beams.swap(next_beams); - renormalize_beam_probabilities(beams); - } - collapse_beams(top_beam_index()); - callback(callback_data, get_beams_state(true)); - } - - // As beams grow, the cumulative probabilities decrease. - // Renormalize them to avoid floating point underflow. - static void renormalize_beam_probabilities(std::vector & beams) { - const auto sum_p = [](float sum, llama_beam & beam) { return sum + beam.p; }; - const float inv_sum = 1.0f / std::accumulate(beams.begin(), beams.end(), 0.0f, sum_p); - std::for_each(beams.begin(), beams.end(), [=](llama_beam & beam) { beam.p *= inv_sum; }); - } - - // Assumes beams is non-empty. Uses llama_beam::operator<() for ordering. - size_t top_beam_index() { - return std::max_element(beams.begin(), beams.end()) - beams.begin(); - } - - // Copy (p,eob) for each beam which may have been changed by the callback. - void update_beams_from_beam_views() { - for (size_t i = 0 ; i < beams.size() ; ++i) { - beams[i].p = beam_views[i].p; - beams[i].eob = beam_views[i].eob; - } - } -}; - -void llama_beam_search(llama_context * ctx, - llama_beam_search_callback_fn_t callback, void * callback_data, - size_t n_beams, int n_past, int n_predict) { - assert(ctx); - const int64_t t_start_sample_us = ggml_time_us(); - - llama_beam_search_data beam_search_data(ctx, n_beams, n_past, n_predict); - - beam_search_data.loop(callback, callback_data); - - ctx->t_sample_us += ggml_time_us() - t_start_sample_us; - ctx->n_sample++; -} - // // quantization // diff --git a/llama.h b/llama.h index a78ccdaf557d0..b2a302dad5388 100644 --- a/llama.h +++ b/llama.h @@ -1056,49 +1056,9 @@ extern "C" { llama_token token); // - // Beam search + // Model split // - struct llama_beam_view { - const llama_token * tokens; - - size_t n_tokens; - float p; // Cumulative beam probability (renormalized relative to all beams) - bool eob; // Callback should set this to true when a beam is at end-of-beam. - }; - - // Passed to beam_search_callback function. - // Whenever 0 < common_prefix_length, this number of tokens should be copied from any of the beams - // (e.g. beams[0]) as they will be removed (shifted) from all beams in all subsequent callbacks. - // These pointers are valid only during the synchronous callback, so should not be saved. - struct llama_beams_state { - struct llama_beam_view * beam_views; - - size_t n_beams; // Number of elements in beam_views[]. - size_t common_prefix_length; // Current max length of prefix tokens shared by all beams. - bool last_call; // True iff this is the last callback invocation. - }; - - // Type of pointer to the beam_search_callback function. - // void* callback_data is any custom data passed to llama_beam_search, that is subsequently - // passed back to beam_search_callback. This avoids having to use global variables in the callback. - typedef void (*llama_beam_search_callback_fn_t)(void * callback_data, struct llama_beams_state); - - /// @details Deterministically returns entire sentence constructed by a beam search. - /// @param ctx Pointer to the llama_context. - /// @param callback Invoked for each iteration of the beam_search loop, passing in beams_state. - /// @param callback_data A pointer that is simply passed back to callback. - /// @param n_beams Number of beams to use. - /// @param n_past Number of tokens already evaluated. - /// @param n_predict Maximum number of tokens to predict. EOS may occur earlier. - LLAMA_API void llama_beam_search( - struct llama_context * ctx, - llama_beam_search_callback_fn_t callback, - void * callback_data, - size_t n_beams, - int32_t n_past, - int32_t n_predict); - /// @details Build a split GGUF final path for this chunk. /// llama_split_path(split_path, sizeof(split_path), "/models/ggml-model-q4_0", 2, 4) => split_path = "/models/ggml-model-q4_0-00002-of-00004.gguf" // Returns the split_path length. From 554c247caffed64465f372661f2826640cb10430 Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Tue, 4 Jun 2024 21:23:20 +0300 Subject: [PATCH 008/131] ggml : remove OpenCL (#7735) ggml-ci --- .github/workflows/build.yml | 36 +- CMakeLists.txt | 23 +- Makefile | 17 - README-sycl.md | 2 +- README.md | 116 +- common/common.cpp | 1 - examples/llama-bench/README.md | 9 +- examples/llama-bench/llama-bench.cpp | 11 +- examples/main-cmake-pkg/README.md | 8 +- flake.nix | 1 - ggml-metal.h | 2 +- ggml-opencl.cpp | 2305 -------------------------- ggml-opencl.h | 36 - ggml.c | 62 +- ggml.h | 1 - llama.cpp | 10 +- scripts/LlamaConfig.cmake.in | 5 - scripts/compare-llama-bench.py | 6 +- scripts/server-llm.sh | 11 +- scripts/sync-ggml-am.sh | 4 - scripts/sync-ggml.sh | 2 - 21 files changed, 29 insertions(+), 2639 deletions(-) delete mode 100644 ggml-opencl.cpp delete mode 100644 ggml-opencl.h diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e824136a56e16..93669d5312214 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -688,8 +688,6 @@ jobs: env: OPENBLAS_VERSION: 0.3.23 - OPENCL_VERSION: 2023.04.17 - CLBLAST_VERSION: 1.6.0 SDE_VERSION: 9.33.0-2024-01-07 VULKAN_VERSION: 1.3.261.1 @@ -706,8 +704,6 @@ jobs: defines: '-DLLAMA_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DLLAMA_AVX2=OFF -DBUILD_SHARED_LIBS=ON' - build: 'avx512-x64' defines: '-DLLAMA_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DLLAMA_AVX512=ON -DBUILD_SHARED_LIBS=ON' - - build: 'clblast-x64' - defines: '-DLLAMA_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DLLAMA_CLBLAST=ON -DBUILD_SHARED_LIBS=ON -DCMAKE_PREFIX_PATH="$env:RUNNER_TEMP/clblast"' - build: 'openblas-x64' defines: '-DLLAMA_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DLLAMA_BLAS=ON -DBUILD_SHARED_LIBS=ON -DLLAMA_BLAS_VENDOR=OpenBLAS -DBLAS_INCLUDE_DIRS="$env:RUNNER_TEMP/openblas/include" -DBLAS_LIBRARIES="$env:RUNNER_TEMP/openblas/lib/openblas.lib"' - build: 'kompute-x64' @@ -732,27 +728,6 @@ jobs: run: | git submodule update --init kompute - - name: Download OpenCL SDK - id: get_opencl - if: ${{ matrix.build == 'clblast-x64' }} - run: | - curl.exe -o $env:RUNNER_TEMP/opencl.zip -L "https://github.com/KhronosGroup/OpenCL-SDK/releases/download/v${env:OPENCL_VERSION}/OpenCL-SDK-v${env:OPENCL_VERSION}-Win-x64.zip" - mkdir $env:RUNNER_TEMP/opencl - tar.exe -xvf $env:RUNNER_TEMP/opencl.zip --strip-components=1 -C $env:RUNNER_TEMP/opencl - - - name: Download CLBlast - id: get_clblast - if: ${{ matrix.build == 'clblast-x64' }} - run: | - curl.exe -o $env:RUNNER_TEMP/clblast.7z -L "https://github.com/CNugteren/CLBlast/releases/download/${env:CLBLAST_VERSION}/CLBlast-${env:CLBLAST_VERSION}-windows-x64.7z" - curl.exe -o $env:RUNNER_TEMP/CLBlast.LICENSE.txt -L "https://github.com/CNugteren/CLBlast/raw/${env:CLBLAST_VERSION}/LICENSE" - 7z x "-o${env:RUNNER_TEMP}" $env:RUNNER_TEMP/clblast.7z - rename-item $env:RUNNER_TEMP/CLBlast-${env:CLBLAST_VERSION}-windows-x64 clblast - foreach ($f in (gci -Recurse -Path "$env:RUNNER_TEMP/clblast" -Filter '*.cmake')) { - $txt = Get-Content -Path $f -Raw - $txt.Replace('C:/vcpkg/packages/opencl_x64-windows/', "$($env:RUNNER_TEMP.Replace('\','/'))/opencl/") | Set-Content -Path $f -Encoding UTF8 - } - - name: Download OpenBLAS id: get_openblas if: ${{ matrix.build == 'openblas-x64' }} @@ -786,13 +761,6 @@ jobs: cmake -S . -B build ${{ matrix.defines }} cmake --build build --config Release -j ${env:NUMBER_OF_PROCESSORS} - - name: Add clblast.dll - id: add_clblast_dll - if: ${{ matrix.build == 'clblast-x64' }} - run: | - cp $env:RUNNER_TEMP/clblast/lib/clblast.dll ./build/bin/Release - cp $env:RUNNER_TEMP/CLBlast.LICENSE.txt ./build/bin/Release/CLBlast-${env:CLBLAST_VERSION}.txt - - name: Add libopenblas.dll id: add_libopenblas_dll if: ${{ matrix.build == 'openblas-x64' }} @@ -816,7 +784,7 @@ jobs: - name: Test id: cmake_test # not all machines have native AVX-512 - if: ${{ matrix.build != 'msvc-arm64' && matrix.build != 'llvm-arm64' && matrix.build != 'clblast-x64' && matrix.build != 'kompute-x64' && matrix.build != 'vulkan-x64' && (matrix.build != 'avx512-x64' || env.HAS_AVX512F == '1') }} + if: ${{ matrix.build != 'msvc-arm64' && matrix.build != 'llvm-arm64' && matrix.build != 'kompute-x64' && matrix.build != 'vulkan-x64' && (matrix.build != 'avx512-x64' || env.HAS_AVX512F == '1') }} run: | cd build ctest -L main -C Release --verbose --timeout 900 @@ -1071,7 +1039,7 @@ jobs: # hypervisor: 'qemu' # run: | # sudo pkg update -# sudo pkg install -y gmake automake autoconf pkgconf llvm15 clinfo clover opencl clblast openblas +# sudo pkg install -y gmake automake autoconf pkgconf llvm15 openblas # gmake CC=/usr/local/bin/clang15 CXX=/usr/local/bin/clang++15 -j `sysctl -n hw.ncpu` release: diff --git a/CMakeLists.txt b/CMakeLists.txt index 76ea27412caf3..cf37d5bb242ac 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -111,7 +111,6 @@ option(LLAMA_CUDA_FA_ALL_QUANTS "llama: compile all quants for Flas option(LLAMA_CURL "llama: use libcurl to download model from an URL" OFF) option(LLAMA_HIPBLAS "llama: use hipBLAS" OFF) option(LLAMA_HIP_UMA "llama: use HIP unified memory architecture" OFF) -option(LLAMA_CLBLAST "llama: use CLBlast" OFF) option(LLAMA_VULKAN "llama: use Vulkan" OFF) option(LLAMA_VULKAN_CHECK_RESULTS "llama: run Vulkan op checks" OFF) option(LLAMA_VULKAN_DEBUG "llama: enable Vulkan debug output" OFF) @@ -502,22 +501,6 @@ if (LLAMA_RPC) set(GGML_SOURCES_RPC ggml-rpc.cpp) endif() -if (LLAMA_CLBLAST) - find_package(CLBlast) - if (CLBlast_FOUND) - message(STATUS "CLBlast found") - - set(GGML_HEADERS_OPENCL ggml-opencl.h) - set(GGML_SOURCES_OPENCL ggml-opencl.cpp) - - add_compile_definitions(GGML_USE_CLBLAST) - - set(LLAMA_EXTRA_LIBS ${LLAMA_EXTRA_LIBS} clblast) - else() - message(WARNING "CLBlast not found") - endif() -endif() - if (LLAMA_VULKAN) find_package(Vulkan) if (Vulkan_FOUND) @@ -1265,7 +1248,6 @@ add_library(ggml OBJECT ggml-quants.c ggml-quants.h ${GGML_SOURCES_CUDA} ${GGML_HEADERS_CUDA} - ${GGML_SOURCES_OPENCL} ${GGML_HEADERS_OPENCL} ${GGML_SOURCES_METAL} ${GGML_HEADERS_METAL} ${GGML_SOURCES_RPC} ${GGML_HEADERS_RPC} ${GGML_SOURCES_EXTRA} ${GGML_HEADERS_EXTRA} @@ -1353,8 +1335,9 @@ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/LlamaConfig.cmake DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/Llama) set(GGML_PUBLIC_HEADERS "ggml.h" "ggml-alloc.h" "ggml-backend.h" - "${GGML_HEADERS_CUDA}" "${GGML_HEADERS_OPENCL}" - "${GGML_HEADERS_METAL}" "${GGML_HEADERS_EXTRA}") + "${GGML_HEADERS_CUDA}" + "${GGML_HEADERS_METAL}" + "${GGML_HEADERS_EXTRA}") set_target_properties(ggml PROPERTIES PUBLIC_HEADER "${GGML_PUBLIC_HEADERS}") install(TARGETS ggml PUBLIC_HEADER) diff --git a/Makefile b/Makefile index 27eb69871322c..802ee6a47654c 100644 --- a/Makefile +++ b/Makefile @@ -547,23 +547,6 @@ ggml-cuda.o: ggml-cuda.cu ggml-cuda.h ggml.h ggml-backend.h ggml-backend-impl.h $(NVCC_COMPILE) endif # LLAMA_CUDA -ifdef LLAMA_CLBLAST - MK_CPPFLAGS += -DGGML_USE_CLBLAST $(shell pkg-config --cflags-only-I clblast OpenCL) - MK_CFLAGS += $(shell pkg-config --cflags-only-other clblast OpenCL) - MK_CXXFLAGS += $(shell pkg-config --cflags-only-other clblast OpenCL) - - # Mac provides OpenCL as a framework - ifeq ($(UNAME_S),Darwin) - MK_LDFLAGS += -lclblast -framework OpenCL - else - MK_LDFLAGS += $(shell pkg-config --libs clblast OpenCL) - endif - OBJS += ggml-opencl.o - -ggml-opencl.o: ggml-opencl.cpp ggml-opencl.h - $(CXX) $(CXXFLAGS) -c $< -o $@ -endif # LLAMA_CLBLAST - ifdef LLAMA_VULKAN MK_CPPFLAGS += -DGGML_USE_VULKAN MK_LDFLAGS += -lvulkan diff --git a/README-sycl.md b/README-sycl.md index 37f0306dc4724..62b38135c01c0 100644 --- a/README-sycl.md +++ b/README-sycl.md @@ -29,7 +29,7 @@ The llama.cpp SYCL backend is designed to support **Intel GPU** firstly. Based o When targeting **Intel CPU**, it is recommended to use llama.cpp for [Intel oneMKL](README.md#intel-onemkl) backend. -It has the similar design of other llama.cpp BLAS-based paths such as *OpenBLAS, cuBLAS, CLBlast etc..*. In beginning work, the oneAPI's [SYCLomatic](https://github.com/oneapi-src/SYCLomatic) open-source migration tool (Commercial release [Intel® DPC++ Compatibility Tool](https://www.intel.com/content/www/us/en/developer/tools/oneapi/dpc-compatibility-tool.html)) was used for this purpose. +It has the similar design of other llama.cpp BLAS-based paths such as *OpenBLAS, cuBLAS, etc..*. In beginning work, the oneAPI's [SYCLomatic](https://github.com/oneapi-src/SYCLomatic) open-source migration tool (Commercial release [Intel® DPC++ Compatibility Tool](https://www.intel.com/content/www/us/en/developer/tools/oneapi/dpc-compatibility-tool.html)) was used for this purpose. ## News diff --git a/README.md b/README.md index 1f2d9b1f23554..9d2a59d89d6f8 100644 --- a/README.md +++ b/README.md @@ -77,7 +77,7 @@ variety of hardware - locally and in the cloud. - AVX, AVX2 and AVX512 support for x86 architectures - 1.5-bit, 2-bit, 3-bit, 4-bit, 5-bit, 6-bit, and 8-bit integer quantization for faster inference and reduced memory use - Custom CUDA kernels for running LLMs on NVIDIA GPUs (support for AMD GPUs via HIP) -- Vulkan, SYCL, and (partial) OpenCL backend support +- Vulkan and SYCL backend support - CPU+GPU hybrid inference to partially accelerate models larger than the total VRAM capacity Since its [inception](https://github.com/ggerganov/llama.cpp/issues/33#issuecomment-1465108022), the project has @@ -371,16 +371,11 @@ In order to build llama.cpp you have four different options. 3. Install compilation dependencies. ```bash - sudo pkg install gmake automake autoconf pkgconf llvm15 clinfo clover \ - opencl clblast openblas + sudo pkg install gmake automake autoconf pkgconf llvm15 openblas gmake CC=/usr/local/bin/clang15 CXX=/usr/local/bin/clang++15 -j4 ``` - **Notes:** With this packages you can build llama.cpp with OPENBLAS and - CLBLAST support for use OpenCL GPU acceleration in FreeBSD. Please read - the instructions for use and activate this options in this document below. - ### Homebrew On Mac and Linux, the homebrew package manager can be used via @@ -399,7 +394,7 @@ argument. ### BLAS Build -Building the program with BLAS support may lead to some performance improvements in prompt processing using batch sizes higher than 32 (the default is 512). Support with CPU-only BLAS implementations doesn't affect the normal generation performance. We may see generation performance improvements with GPU-involved BLAS implementations, e.g. cuBLAS, hipBLAS and CLBlast. There are currently several different BLAS implementations available for build and use: +Building the program with BLAS support may lead to some performance improvements in prompt processing using batch sizes higher than 32 (the default is 512). Support with CPU-only BLAS implementations doesn't affect the normal generation performance. We may see generation performance improvements with GPU-involved BLAS implementations, e.g. cuBLAS, hipBLAS. There are currently several different BLAS implementations available for build and use: - #### Accelerate Framework: @@ -553,111 +548,6 @@ Building the program with BLAS support may lead to some performance improvements | LLAMA_CUDA_MMV_Y | Positive integer | 1 | Block size in y direction for the HIP mul mat vec kernels. Increasing this value can improve performance on fast GPUs. Power of 2 recommended. Does not affect k-quants. | | LLAMA_CUDA_KQUANTS_ITER | 1 or 2 | 2 | Number of values processed per iteration and per HIP thread for Q2_K and Q6_K quantization formats. Setting this value to 1 can improve performance for slow GPUs. | -- #### CLBlast - - OpenCL acceleration is provided by the matrix multiplication kernels from the [CLBlast](https://github.com/CNugteren/CLBlast) project and custom kernels for ggml that can generate tokens on the GPU. - - You will need the [OpenCL SDK](https://github.com/KhronosGroup/OpenCL-SDK). - - For Ubuntu, Debian, and Fedora the packages `opencl-headers`, `ocl-icd` may be needed. - - - For Windows, a pre-built SDK is available on the [OpenCL Releases](https://github.com/KhronosGroup/OpenCL-SDK/releases) page. - - -
- Installing the OpenCL SDK from source - - ```sh - git clone --recurse-submodules https://github.com/KhronosGroup/OpenCL-SDK.git - cd OpenCL-SDK - cmake -B build -DBUILD_DOCS=OFF \ - -DBUILD_EXAMPLES=OFF \ - -DBUILD_TESTING=OFF \ - -DOPENCL_SDK_BUILD_SAMPLES=OFF \ - -DOPENCL_SDK_TEST_SAMPLES=OFF - cmake --build build - cmake --install build --prefix /some/path - ``` -
- - ##### Installing CLBlast - - Pre-built CLBlast binaries may be found on the [CLBlast Releases](https://github.com/CNugteren/CLBlast/releases) page. For Unix variants, it may also be found in your operating system's packages. - - Linux packaging: - Fedora Linux: - ```bash - sudo dnf install clblast - ``` - - Alternatively, they may be built from source. - - -
- Windows: - - ```cmd - set OPENCL_SDK_ROOT="C:/OpenCL-SDK-v2023.04.17-Win-x64" - git clone https://github.com/CNugteren/CLBlast.git - cd CLBlast - cmake -B build -DBUILD_SHARED_LIBS=OFF -DOVERRIDE_MSVC_FLAGS_TO_MT=OFF -DTUNERS=OFF -DOPENCL_ROOT=%OPENCL_SDK_ROOT% -G "Visual Studio 17 2022" -A x64 - cmake --build build --config Release - cmake --install build --prefix C:/CLBlast - ``` - - (note: `--config Release` at build time is the default and only relevant for Visual Studio builds - or multi-config Ninja builds) - - -
- Unix: - - ```sh - git clone https://github.com/CNugteren/CLBlast.git - cd CLBlast - cmake -B build -DBUILD_SHARED_LIBS=OFF -DTUNERS=OFF - cmake --build build --config Release - cmake --install build --prefix /some/path - ``` - - Where `/some/path` is where the built library will be installed (default is `/usr/local`). -
- - ##### Building Llama with CLBlast - - - Build with make: - ```sh - make LLAMA_CLBLAST=1 - ``` - - CMake (Unix): - ```sh - cmake -B build -DLLAMA_CLBLAST=ON -DCLBlast_DIR=/some/path - cmake --build build --config Release - ``` - - CMake (Windows): - ```cmd - set CL_BLAST_CMAKE_PKG="C:/CLBlast/lib/cmake/CLBlast" - git clone https://github.com/ggerganov/llama.cpp - cd llama.cpp - cmake -B build -DBUILD_SHARED_LIBS=OFF -DLLAMA_CLBLAST=ON -DCMAKE_PREFIX_PATH=%CL_BLAST_CMAKE_PKG% -G "Visual Studio 17 2022" -A x64 - cmake --build build --config Release - cmake --install build --prefix C:/LlamaCPP - ``` - - ##### Running Llama with CLBlast - - The CLBlast build supports `--gpu-layers|-ngl` like the CUDA version does. - - To select the correct platform (driver) and device (GPU), you can use the environment variables `GGML_OPENCL_PLATFORM` and `GGML_OPENCL_DEVICE`. - The selection can be a number (starting from 0) or a text string to search: - - ```sh - GGML_OPENCL_PLATFORM=1 ./main ... - GGML_OPENCL_DEVICE=2 ./main ... - GGML_OPENCL_PLATFORM=Intel ./main ... - GGML_OPENCL_PLATFORM=AMD GGML_OPENCL_DEVICE=1 ./main ... - ``` - - The default behavior is to find the first GPU device, but when it is an integrated GPU on a laptop, for instance, the selectors are useful. - Using the variables it is possible to select a CPU-based driver as well, if so desired. - - You can get a list of platforms and devices from the `clinfo -l` command, etc. - - #### Vulkan **With docker**: diff --git a/common/common.cpp b/common/common.cpp index 022bfe28731ba..df583db8390d2 100644 --- a/common/common.cpp +++ b/common/common.cpp @@ -2844,7 +2844,6 @@ void yaml_dump_non_result_info(FILE * stream, const gpt_params & params, const l fprintf(stream, "cpu_has_avx512_vnni: %s\n", ggml_cpu_has_avx512_vnni() ? "true" : "false"); fprintf(stream, "cpu_has_cuda: %s\n", ggml_cpu_has_cuda() ? "true" : "false"); fprintf(stream, "cpu_has_vulkan: %s\n", ggml_cpu_has_vulkan() ? "true" : "false"); - fprintf(stream, "cpu_has_clblast: %s\n", ggml_cpu_has_clblast() ? "true" : "false"); fprintf(stream, "cpu_has_kompute: %s\n", ggml_cpu_has_kompute() ? "true" : "false"); fprintf(stream, "cpu_has_fma: %s\n", ggml_cpu_has_fma() ? "true" : "false"); fprintf(stream, "cpu_has_gpublas: %s\n", ggml_cpu_has_gpublas() ? "true" : "false"); diff --git a/examples/llama-bench/README.md b/examples/llama-bench/README.md index 8578405646af7..fd95b35f46595 100644 --- a/examples/llama-bench/README.md +++ b/examples/llama-bench/README.md @@ -162,7 +162,7 @@ $ ./llama-bench -o csv ``` ```csv -build_commit,build_number,cuda,opencl,metal,gpu_blas,blas,cpu_info,gpu_info,model_filename,model_type,model_size,model_n_params,n_batch,n_threads,f16_kv,n_gpu_layers,main_gpu,mul_mat_q,tensor_split,n_prompt,n_gen,test_time,avg_ns,stddev_ns,avg_ts,stddev_ts +build_commit,build_number,cuda,metal,gpu_blas,blas,cpu_info,gpu_info,model_filename,model_type,model_size,model_n_params,n_batch,n_threads,f16_kv,n_gpu_layers,main_gpu,mul_mat_q,tensor_split,n_prompt,n_gen,test_time,avg_ns,stddev_ns,avg_ts,stddev_ts "3469684","1275","1","0","0","1","1","13th Gen Intel(R) Core(TM) i9-13900K","NVIDIA GeForce RTX 3090 Ti","models/7B/ggml-model-q4_0.gguf","llama 7B mostly Q4_0","3825065984","6738415616","512","16","1","99","0","1","0.00","512","0","2023-09-23T12:09:01Z","212155977","732372","2413.341687","8.305961" "3469684","1275","1","0","0","1","1","13th Gen Intel(R) Core(TM) i9-13900K","NVIDIA GeForce RTX 3090 Ti","models/7B/ggml-model-q4_0.gguf","llama 7B mostly Q4_0","3825065984","6738415616","512","16","1","99","0","1","0.00","0","128","2023-09-23T12:09:02Z","969320879","2728399","132.052051","0.371342" ``` @@ -179,7 +179,6 @@ $ ./llama-bench -o json "build_commit": "3469684", "build_number": 1275, "cuda": true, - "opencl": false, "metal": false, "gpu_blas": true, "blas": true, @@ -210,7 +209,6 @@ $ ./llama-bench -o json "build_commit": "3469684", "build_number": 1275, "cuda": true, - "opencl": false, "metal": false, "gpu_blas": true, "blas": true, @@ -253,7 +251,6 @@ CREATE TABLE IF NOT EXISTS test ( build_commit TEXT, build_number INTEGER, cuda INTEGER, - opencl INTEGER, metal INTEGER, gpu_blas INTEGER, blas INTEGER, @@ -279,6 +276,6 @@ CREATE TABLE IF NOT EXISTS test ( stddev_ts REAL ); -INSERT INTO test (build_commit, build_number, cuda, opencl, metal, gpu_blas, blas, cpu_info, gpu_info, model_filename, model_type, model_size, model_n_params, n_batch, n_threads, f16_kv, n_gpu_layers, main_gpu, mul_mat_q, tensor_split, n_prompt, n_gen, test_time, avg_ns, stddev_ns, avg_ts, stddev_ts) VALUES ('3469684', '1275', '1', '0', '0', '1', '1', '13th Gen Intel(R) Core(TM) i9-13900K', 'NVIDIA GeForce RTX 3090 Ti', 'models/7B/ggml-model-q4_0.gguf', 'llama 7B mostly Q4_0', '3825065984', '6738415616', '512', '16', '1', '99', '0', '1', '0.00', '512', '0', '2023-09-23T12:10:30Z', '212693772', '743623', '2407.240204', '8.409634'); -INSERT INTO test (build_commit, build_number, cuda, opencl, metal, gpu_blas, blas, cpu_info, gpu_info, model_filename, model_type, model_size, model_n_params, n_batch, n_threads, f16_kv, n_gpu_layers, main_gpu, mul_mat_q, tensor_split, n_prompt, n_gen, test_time, avg_ns, stddev_ns, avg_ts, stddev_ts) VALUES ('3469684', '1275', '1', '0', '0', '1', '1', '13th Gen Intel(R) Core(TM) i9-13900K', 'NVIDIA GeForce RTX 3090 Ti', 'models/7B/ggml-model-q4_0.gguf', 'llama 7B mostly Q4_0', '3825065984', '6738415616', '512', '16', '1', '99', '0', '1', '0.00', '0', '128', '2023-09-23T12:10:31Z', '977925003', '4037361', '130.891159', '0.537692'); +INSERT INTO test (build_commit, build_number, cuda, metal, gpu_blas, blas, cpu_info, gpu_info, model_filename, model_type, model_size, model_n_params, n_batch, n_threads, f16_kv, n_gpu_layers, main_gpu, mul_mat_q, tensor_split, n_prompt, n_gen, test_time, avg_ns, stddev_ns, avg_ts, stddev_ts) VALUES ('3469684', '1275', '1', '0', '0', '1', '1', '13th Gen Intel(R) Core(TM) i9-13900K', 'NVIDIA GeForce RTX 3090 Ti', 'models/7B/ggml-model-q4_0.gguf', 'llama 7B mostly Q4_0', '3825065984', '6738415616', '512', '16', '1', '99', '0', '1', '0.00', '512', '0', '2023-09-23T12:10:30Z', '212693772', '743623', '2407.240204', '8.409634'); +INSERT INTO test (build_commit, build_number, cuda, metal, gpu_blas, blas, cpu_info, gpu_info, model_filename, model_type, model_size, model_n_params, n_batch, n_threads, f16_kv, n_gpu_layers, main_gpu, mul_mat_q, tensor_split, n_prompt, n_gen, test_time, avg_ns, stddev_ns, avg_ts, stddev_ts) VALUES ('3469684', '1275', '1', '0', '0', '1', '1', '13th Gen Intel(R) Core(TM) i9-13900K', 'NVIDIA GeForce RTX 3090 Ti', 'models/7B/ggml-model-q4_0.gguf', 'llama 7B mostly Q4_0', '3825065984', '6738415616', '512', '16', '1', '99', '0', '1', '0.00', '0', '128', '2023-09-23T12:10:31Z', '977925003', '4037361', '130.891159', '0.537692'); ``` diff --git a/examples/llama-bench/llama-bench.cpp b/examples/llama-bench/llama-bench.cpp index 5d3cbd842dc69..fa7ad1bdb9e4a 100644 --- a/examples/llama-bench/llama-bench.cpp +++ b/examples/llama-bench/llama-bench.cpp @@ -723,7 +723,6 @@ struct test { static const std::string build_commit; static const int build_number; static const bool cuda; - static const bool opencl; static const bool vulkan; static const bool kompute; static const bool metal; @@ -812,9 +811,6 @@ struct test { if (cuda) { return GGML_CUDA_NAME; } - if (opencl) { - return "OpenCL"; - } if (vulkan) { return "Vulkan"; } @@ -843,7 +839,7 @@ struct test { static const std::vector & get_fields() { static const std::vector fields = { "build_commit", "build_number", - "cuda", "opencl", "vulkan", "kompute", "metal", "sycl", "rpc", "gpu_blas", "blas", + "cuda", "vulkan", "kompute", "metal", "sycl", "rpc", "gpu_blas", "blas", "cpu_info", "gpu_info", "model_filename", "model_type", "model_size", "model_n_params", "n_batch", "n_ubatch", @@ -869,7 +865,7 @@ struct test { field == "avg_ns" || field == "stddev_ns") { return INT; } - if (field == "cuda" || field == "opencl" || field == "vulkan" || field == "kompute" || field == "metal" || + if (field == "cuda" || field == "vulkan" || field == "kompute" || field == "metal" || field == "gpu_blas" || field == "blas" || field == "sycl" ||field == "f16_kv" || field == "no_kv_offload" || field == "flash_attn" || field == "use_mmap" || field == "embeddings") { return BOOL; @@ -898,7 +894,7 @@ struct test { } std::vector values = { build_commit, std::to_string(build_number), - std::to_string(cuda), std::to_string(opencl), std::to_string(vulkan), std::to_string(vulkan), + std::to_string(cuda), std::to_string(vulkan), std::to_string(vulkan), std::to_string(metal), std::to_string(sycl), std::to_string(rpc), std::to_string(gpu_blas), std::to_string(blas), cpu_info, gpu_info, model_filename, model_type, std::to_string(model_size), std::to_string(model_n_params), @@ -927,7 +923,6 @@ struct test { const std::string test::build_commit = LLAMA_COMMIT; const int test::build_number = LLAMA_BUILD_NUMBER; const bool test::cuda = !!ggml_cpu_has_cuda(); -const bool test::opencl = !!ggml_cpu_has_clblast(); const bool test::vulkan = !!ggml_cpu_has_vulkan(); const bool test::kompute = !!ggml_cpu_has_kompute(); const bool test::metal = !!ggml_cpu_has_metal(); diff --git a/examples/main-cmake-pkg/README.md b/examples/main-cmake-pkg/README.md index edf20d8db6616..a88e92f23981f 100644 --- a/examples/main-cmake-pkg/README.md +++ b/examples/main-cmake-pkg/README.md @@ -8,16 +8,14 @@ Because this example is "outside of the source tree", it is important to first b ### Considerations -When hardware acceleration libraries are used (e.g. CUDA, Metal, CLBlast, etc.), CMake must be able to locate the associated CMake package. In the example below, when building _main-cmake-pkg_ notice the `CMAKE_PREFIX_PATH` includes the Llama CMake package location _in addition to_ the CLBlast package—which was used when compiling _llama.cpp_. +When hardware acceleration libraries are used (e.g. CUDA, Metal, etc.), CMake must be able to locate the associated CMake package. ### Build llama.cpp and install to C:\LlamaCPP directory -In this case, CLBlast was already installed so the CMake package is referenced in `CMAKE_PREFIX_PATH`. - ```cmd git clone https://github.com/ggerganov/llama.cpp cd llama.cpp -cmake -B build -DBUILD_SHARED_LIBS=OFF -DLLAMA_CLBLAST=ON -DCMAKE_PREFIX_PATH=C:/CLBlast/lib/cmake/CLBlast -G "Visual Studio 17 2022" -A x64 +cmake -B build -DBUILD_SHARED_LIBS=OFF -G "Visual Studio 17 2022" -A x64 cmake --build build --config Release cmake --install build --prefix C:/LlamaCPP ``` @@ -27,7 +25,7 @@ cmake --install build --prefix C:/LlamaCPP ```cmd cd ..\examples\main-cmake-pkg -cmake -B build -DBUILD_SHARED_LIBS=OFF -DCMAKE_PREFIX_PATH="C:/CLBlast/lib/cmake/CLBlast;C:/LlamaCPP/lib/cmake/Llama" -G "Visual Studio 17 2022" -A x64 +cmake -B build -DBUILD_SHARED_LIBS=OFF -DCMAKE_PREFIX_PATH="C:/LlamaCPP/lib/cmake/Llama" -G "Visual Studio 17 2022" -A x64 cmake --build build --config Release cmake --install build --prefix C:/MyLlamaApp ``` diff --git a/flake.nix b/flake.nix index 9cd3756e53e51..0a52ea52ea9d9 100644 --- a/flake.nix +++ b/flake.nix @@ -159,7 +159,6 @@ windows = config.legacyPackages.llamaPackagesWindows.llama-cpp; } // lib.optionalAttrs pkgs.stdenv.isLinux { - opencl = config.packages.default.override { useOpenCL = true; }; cuda = config.legacyPackages.llamaPackagesCuda.llama-cpp; mpi-cpu = config.packages.default.override { useMpi = true; }; diff --git a/ggml-metal.h b/ggml-metal.h index a5c542189c295..e7543ae795d28 100644 --- a/ggml-metal.h +++ b/ggml-metal.h @@ -1,7 +1,7 @@ // An interface allowing to compute ggml_cgraph with Metal // // This is a fully functional interface that extends ggml with GPU support for Apple devices. -// A similar interface can be created for other GPU backends (e.g. Vulkan, CUDA, OpenCL, etc.) +// A similar interface can be created for other GPU backends (e.g. Vulkan, CUDA, etc.) // // How it works? // diff --git a/ggml-opencl.cpp b/ggml-opencl.cpp deleted file mode 100644 index e28566a7bdbd7..0000000000000 --- a/ggml-opencl.cpp +++ /dev/null @@ -1,2305 +0,0 @@ -#include "ggml.h" -#include "ggml-opencl.h" -#include "ggml-backend-impl.h" - -#include -#include -#include -#include -#include -#include -#include -#include - -#define CL_TARGET_OPENCL_VERSION 120 -#include - -#if defined(_MSC_VER) -#pragma warning(disable: 4244 4267) // possible loss of data -#endif - -#define CL_DMMV_LOCAL_SIZE 32 - -#ifndef K_QUANTS_PER_ITERATION -#define K_QUANTS_PER_ITERATION 1 -#else -static_assert(K_QUANTS_PER_ITERATION == 1 || K_QUANTS_PER_ITERATION == 2, "K_QUANTS_PER_ITERATION must be 1 or 2"); -#endif - -#define MULTILINE_QUOTE(...) #__VA_ARGS__ -static std::string program_source = MULTILINE_QUOTE( - -typedef char int8_t; -typedef uchar uint8_t; -typedef short int16_t; -typedef ushort uint16_t; -typedef int int32_t; -typedef uint uint32_t; - -struct __attribute__ ((packed)) block_q4_0 -{ - half d; - uint8_t qs[QK4_0 / 2]; -}; - -struct __attribute__ ((packed)) block_q4_1 -{ - half d; - half m; - uint8_t qs[QK4_1 / 2]; -}; - -struct __attribute__ ((packed)) block_q5_0 -{ - half d; - uint32_t qh; - uint8_t qs[QK5_0 / 2]; -}; - -struct __attribute__ ((packed)) block_q5_1 -{ - half d; - half m; - uint32_t qh; - uint8_t qs[QK5_1 / 2]; -}; - -struct __attribute__ ((packed)) block_q8_0 -{ - half d; - int8_t qs[QK8_0]; -}; - -struct __attribute__((packed)) block_q2_K -{ - uint8_t scales[16]; - uint8_t qs[64]; - half d; - half dmin; -}; - -struct __attribute__((packed)) block_q3_K -{ - uint8_t hmask[32]; - uint8_t qs[64]; - uint8_t scales[12]; - half d; -}; - -struct __attribute__((packed)) block_q4_K -{ - half d; - half dmin; - uint8_t scales[12]; - uint8_t qs[128]; -}; - -struct __attribute__((packed)) block_q5_K -{ - half d; - half dmin; - uint8_t scales[12]; - uint8_t qh[32]; - uint8_t qs[128]; -}; - -struct __attribute__((packed)) block_q6_K -{ - uint8_t ql[128]; - uint8_t qh[64]; - int8_t scales[16]; - half d; -}; - -__kernel void convert_fp16_to_fp32(__global half* x, __global float* y) { - const uint i = get_global_id(0); - - y[i] = vload_half(0, &x[i]); -} - -void dequantize_q4_0(__global const struct block_q4_0* x, const int ib, const int iqs, float* v0, float* v1) { - const float d = vload_half(0, &x[ib].d); - - const uint8_t vui = x[ib].qs[iqs]; - - const int8_t vi0 = vui & 0xF; - const int8_t vi1 = vui >> 4; - - *v0 = (vi0 - 8)*d; - *v1 = (vi1 - 8)*d; -} -void dequantize_q4_1(__global const struct block_q4_1* x, const int ib, const int iqs, float* v0, float* v1) { - const float d = vload_half(0, &x[ib].d); - const float m = vload_half(0, &x[ib].m); - - const uint8_t vui = x[ib].qs[iqs]; - - const int8_t vi0 = vui & 0xF; - const int8_t vi1 = vui >> 4; - - *v0 = vi0*d + m; - *v1 = vi1*d + m; -} -void dequantize_q5_0(__global const struct block_q5_0* x, const int ib, const int iqs, float* v0, float* v1) { - const float d = vload_half(0, &x[ib].d); - - uint32_t qh = x[ib].qh; - - const uint8_t xh_0 = ((qh >> (iqs + 0)) << 4) & 0x10; - const uint8_t xh_1 = ((qh >> (iqs + 12)) ) & 0x10; - - const int32_t x0 = ((x[ib].qs[iqs] & 0xf) | xh_0) - 16; - const int32_t x1 = ((x[ib].qs[iqs] >> 4) | xh_1) - 16; - - *v0 = x0*d; - *v1 = x1*d; -} -void dequantize_q5_1(__global const struct block_q5_1* x, const int ib, const int iqs, float* v0, float* v1) { - const float d = vload_half(0, &x[ib].d); - const float m = vload_half(0, &x[ib].m); - - uint32_t qh = x[ib].qh; - - const uint8_t xh_0 = ((qh >> (iqs + 0)) << 4) & 0x10; - const uint8_t xh_1 = ((qh >> (iqs + 12)) ) & 0x10; - - const int32_t x0 = ((x[ib].qs[iqs] & 0xf) | xh_0); - const int32_t x1 = ((x[ib].qs[iqs] >> 4) | xh_1); - - *v0 = x0*d + m; - *v1 = x1*d + m; -} -void dequantize_q8_0(__global const struct block_q8_0* x, const int ib, const int iqs, float* v0, float* v1) { - const float d = vload_half(0, &x[ib].d); - - const int8_t vi0 = x[ib].qs[iqs + 0]; - const int8_t vi1 = x[ib].qs[iqs + 1]; - - *v0 = vi0*d; - *v1 = vi1*d; -} -void convert_f16(__global half* x, const int ib, const int iqs, float* v0, float* v1){ - *v0 = vload_half(0, &x[ib + 0]); - *v1 = vload_half(0, &x[ib + 1]); -} -); - -static std::string k_quants_source = MULTILINE_QUOTE( -inline void get_scale_min_k4(int j, const __global uint8_t *q, uint8_t *d, uint8_t *m) -{ - if (j < 4) - { - *d = q[j] & 63; - *m = q[j + 4] & 63; - } - else - { - *d = (q[j + 4] & 0xF) | ((q[j - 4] >> 6) << 4); - *m = (q[j + 4] >> 4) | ((q[j - 0] >> 6) << 4); - } -} - -__kernel void dequantize_block_q2_K(__global const struct block_q2_K *x, __global float *yy) -{ - const int i = get_group_id(0) + get_global_offset(0); - const int tid = get_local_id(0); - const int n = tid / 32; - const int l = tid - 32 * n; - const int is = 8 * n + l / 16; - - const uint8_t q = x[i].qs[32 * n + l]; - __global float *y = yy + get_group_id(0) * QK_K + 128 * n; - - const float dall = vload_half(0, &x[i].d); - const float dmin = vload_half(0, &x[i].dmin); - - y[l + 0] = dall * (x[i].scales[is + 0] & 0xF) * ((q >> 0) & 3) - dmin * (x[i].scales[is + 0] >> 4); - y[l + 32] = dall * (x[i].scales[is + 2] & 0xF) * ((q >> 2) & 3) - dmin * (x[i].scales[is + 2] >> 4); - y[l + 64] = dall * (x[i].scales[is + 4] & 0xF) * ((q >> 4) & 3) - dmin * (x[i].scales[is + 4] >> 4); - y[l + 96] = dall * (x[i].scales[is + 6] & 0xF) * ((q >> 6) & 3) - dmin * (x[i].scales[is + 6] >> 4); -} - -__kernel void dequantize_block_q3_K(__global const struct block_q3_K *x, __global float *yy) -{ - int r = get_local_id(0) / 4; - int i = get_group_id(0) + get_global_offset(0); - int tid = r / 2; - int is0 = r % 2; - int l0 = 16 * is0 + 4 * (get_local_id(0) % 4); - int n = tid / 4; - int j = tid - 4 * n; - - uint8_t m = 1 << (4 * n + j); - int is = 8 * n + 2 * j + is0; - int shift = 2 * j; - - int8_t us = is < 4 ? (x[i].scales[is - 0] & 0xF) | (((x[i].scales[is + 8] >> 0) & 3) << 4) - : is < 8 ? (x[i].scales[is - 0] & 0xF) | (((x[i].scales[is + 4] >> 2) & 3) << 4) - : is < 12 ? (x[i].scales[is - 8] >> 4) | (((x[i].scales[is + 0] >> 4) & 3) << 4) - : (x[i].scales[is - 8] >> 4) | (((x[i].scales[is - 4] >> 6) & 3) << 4); - float d_all = vload_half(0, &x[i].d); - float dl = d_all * (us - 32); - - __global float *y = yy + get_group_id(0) * QK_K + 128 * n + 32 * j; - const __global uint8_t *q = x[i].qs + 32 * n; - const __global uint8_t *hm = x[i].hmask; - - for (int l = l0; l < l0 + 4; ++l) - y[l] = dl * ((int8_t)((q[l] >> shift) & 3) - ((hm[l] & m) ? 0 : 4)); -} - -__kernel void dequantize_block_q4_K(__global const struct block_q4_K *x, __global float *yy) -{ - const int i = get_group_id(0) + get_global_offset(0); - const int tid = get_local_id(0); - const int il = tid / 8; - const int ir = tid % 8; - const int is = 2 * il; - const int n = 4; - - __global float *y = yy + get_group_id(0) * QK_K + 64 * il + n * ir; - - const float dall = vload_half(0, &x[i].d); - const float dmin = vload_half(0, &x[i].dmin); - - __global const uint8_t *q = x[i].qs + 32 * il + n * ir; - - uint8_t sc, m; - get_scale_min_k4(is + 0, x[i].scales, &sc, &m); - float d1 = dall * sc; - float m1 = dmin * m; - get_scale_min_k4(is + 1, x[i].scales, &sc, &m); - float d2 = dall * sc; - float m2 = dmin * m; - for (int l = 0; l < n; ++l) - { - y[l + 0] = d1 * (q[l] & 0xF) - m1; - y[l + 32] = d2 * (q[l] >> 4) - m2; - } -} - -__kernel void dequantize_block_q5_K(__global const struct block_q5_K *x, __global float *yy) -{ - const int i = get_group_id(0) + get_global_offset(0); - const int tid = get_local_id(0); - const int il = tid / 16; - const int ir = tid % 16; - const int is = 2 * il; - - __global float *y = yy + get_group_id(0) * QK_K + 64 * il + 2 * ir; - - const float dall = vload_half(0, &x[i].d); - const float dmin = vload_half(0, &x[i].dmin); - - __global const uint8_t *ql = x[i].qs + 32 * il + 2 * ir; - __global const uint8_t *qh = x[i].qh + 2 * ir; - - uint8_t sc, m; - get_scale_min_k4(is + 0, x[i].scales, &sc, &m); - const float d1 = dall * sc; - const float m1 = dmin * m; - get_scale_min_k4(is + 1, x[i].scales, &sc, &m); - const float d2 = dall * sc; - const float m2 = dmin * m; - - uint8_t hm = 1 << (2 * il); - y[0] = d1 * ((ql[0] & 0xF) + (qh[0] & hm ? 16 : 0)) - m1; - y[1] = d1 * ((ql[1] & 0xF) + (qh[1] & hm ? 16 : 0)) - m1; - hm <<= 1; - y[32] = d2 * ((ql[0] >> 4) + (qh[0] & hm ? 16 : 0)) - m2; - y[33] = d2 * ((ql[1] >> 4) + (qh[1] & hm ? 16 : 0)) - m2; -} - -__kernel void dequantize_block_q6_K(__global const struct block_q6_K *x, __global float *yy) -{ - const int i = get_group_id(0) + get_global_offset(0); - const int tid = get_local_id(0); - const int ip = tid / 32; - const int il = tid - 32 * ip; - const int is = 8 * ip + il / 16; - - __global float *y = yy + get_group_id(0) * QK_K + 128 * ip + il; - - const float d = vload_half(0, &x[i].d); - - __global const uint8_t *ql = x[i].ql + 64 * ip + il; - const uint8_t qh = x[i].qh[32 * ip + il]; - __global const int8_t *sc = x[i].scales + is; - - y[0] = d * sc[0] * ((int8_t)((ql[0] & 0xF) | (((qh >> 0) & 3) << 4)) - 32); - y[32] = d * sc[2] * ((int8_t)((ql[32] & 0xF) | (((qh >> 2) & 3) << 4)) - 32); - y[64] = d * sc[4] * ((int8_t)((ql[0] >> 4) | (((qh >> 4) & 3) << 4)) - 32); - y[96] = d * sc[6] * ((int8_t)((ql[32] >> 4) | (((qh >> 6) & 3) << 4)) - 32); -} - -__kernel void dequantize_mul_mat_vec_q2_K(__global const struct block_q2_K * xx, __local float* tmp, __global float* yy, __global float* dst, const int ncols) { - - const int row = get_group_id(0); - - const int num_blocks_per_row = ncols / QK_K; - const int ib0 = row*num_blocks_per_row + get_global_offset(0); - - __global const struct block_q2_K * x = xx + ib0; - - const int tid = get_local_id(0)/K_QUANTS_PER_ITERATION; // 0...31 or 0...15 - const int ix = get_local_id(0)%K_QUANTS_PER_ITERATION; // 0 or 0,1 - - const int step = 16/K_QUANTS_PER_ITERATION; - - const int im = tid/step; // 0 or 1. 0 computes 0..., 1 computes 128... - const int in = tid - step*im; // 0...15 or 0...7 - - const int l0 = K_QUANTS_PER_ITERATION*in; // 0...15 or 0...14 in steps of 2 - const int q_offset = 32*im + l0; - const int s_offset = 8*im; - const int y_offset = 128*im + l0; - - tmp[16 * ix + tid] = 0; - - uint32_t aux[4]; - const uint8_t * d = (const uint8_t *)aux; - const uint8_t * m = (const uint8_t *)(aux + 2); - - for (int i = ix; i < num_blocks_per_row; i += K_QUANTS_PER_ITERATION) { - - __global const float * y = yy + i * QK_K + y_offset; - __global const uint8_t * q = x[i].qs + q_offset; - - const float dall = vload_half(0, &x[i].d); - const float dmin = vload_half(0, &x[i].dmin); - - __global const uint32_t * a = (__global const uint32_t *)(x[i].scales + s_offset); - aux[0] = a[0] & 0x0f0f0f0f; - aux[1] = a[1] & 0x0f0f0f0f; - aux[2] = (a[0] >> 4) & 0x0f0f0f0f; - aux[3] = (a[1] >> 4) & 0x0f0f0f0f; - - float sum1 = 0, sum2 = 0; - for (int l = 0; l < K_QUANTS_PER_ITERATION; ++l) { - sum1 += y[l+ 0] * d[0] * ((q[l+ 0] >> 0) & 3) - + y[l+32] * d[2] * ((q[l+ 0] >> 2) & 3) - + y[l+64] * d[4] * ((q[l+ 0] >> 4) & 3) - + y[l+96] * d[6] * ((q[l+ 0] >> 6) & 3) - + y[l+16] * d[1] * ((q[l+16] >> 0) & 3) - + y[l+48] * d[3] * ((q[l+16] >> 2) & 3) - + y[l+80] * d[5] * ((q[l+16] >> 4) & 3) - +y[l+112] * d[7] * ((q[l+16] >> 6) & 3); - sum2 += y[l+ 0] * m[0] + y[l+32] * m[2] + y[l+64] * m[4] + y[ l+96] * m[6] - + y[l+16] * m[1] + y[l+48] * m[3] + y[l+80] * m[5] + y[l+112] * m[7]; - - } - tmp[16 * ix + tid] += dall * sum1 - dmin * sum2; - - } - - // sum up partial sums and write back result - barrier(CLK_LOCAL_MEM_FENCE); - for (int s=16; s>0; s>>=1) { - if (tid < s) { - tmp[tid] += tmp[tid + s]; - } - barrier(CLK_LOCAL_MEM_FENCE); - } - if (tid == 0) { - dst[row] = tmp[0]; - } -} - -__kernel void dequantize_mul_mat_vec_q3_K(__global const struct block_q3_K * xx, __local float* tmp, __global float* yy, __global float* dst, const int ncols) { - const uint16_t kmask1 = 0x0303; - const uint16_t kmask2 = 0x0f0f; - - const int row = get_group_id(0); - - const int num_blocks_per_row = ncols / QK_K; - const int ib0 = row*num_blocks_per_row + get_global_offset(0); - - __global const struct block_q3_K * x = xx + ib0; - - const int tid = get_local_id(0)/K_QUANTS_PER_ITERATION; // 0...31 or 0...16 - const int ix = get_local_id(0)%K_QUANTS_PER_ITERATION; // 0 or 0,1 - - const int n = K_QUANTS_PER_ITERATION; // iterations in the inner loop - const int step = 16/K_QUANTS_PER_ITERATION; - const int im = tid/step; // 0 or 1. 0 computes 0..., 1 computes 128... - const int in = tid - step*im; // 0....15 or 0...7 - - const uint8_t m = 1 << (4*im); - - const int l0 = n*in; // 0...15 or 0...14 in steps of 2 - const int q_offset = 32*im + l0; - const int y_offset = 128*im + l0; - - uint16_t utmp[4]; - const int8_t * s = (const int8_t *)utmp; - - const uint16_t s_shift = 4*im; - - tmp[16 * ix + tid] = 0; - - for (int i = ix; i < num_blocks_per_row; i += K_QUANTS_PER_ITERATION) { - - __global const float * y = yy + i * QK_K + y_offset; - __global const uint8_t * q = x[i].qs + q_offset; - __global const uint8_t * h = x[i].hmask + l0; - - __global const uint16_t * a = (__global const uint16_t *)x[i].scales; - utmp[0] = ((a[0] >> s_shift) & kmask2) | (((a[4] >> (s_shift + 0)) & kmask1) << 4); - utmp[1] = ((a[1] >> s_shift) & kmask2) | (((a[5] >> (s_shift + 0)) & kmask1) << 4); - utmp[2] = ((a[2] >> s_shift) & kmask2) | (((a[4] >> (s_shift + 2)) & kmask1) << 4); - utmp[3] = ((a[3] >> s_shift) & kmask2) | (((a[5] >> (s_shift + 2)) & kmask1) << 4); - - const float d = vload_half(0, &x[i].d); - - float sum = 0; - for (int l = 0; l < n; ++l) { - sum += y[l+ 0] * (s[0] - 32) * (((q[l] >> 0) & 3) - (h[l] & (m << 0) ? 0 : 4)) - + y[l+32] * (s[2] - 32) * (((q[l] >> 2) & 3) - (h[l] & (m << 1) ? 0 : 4)) - + y[l+64] * (s[4] - 32) * (((q[l] >> 4) & 3) - (h[l] & (m << 2) ? 0 : 4)) - + y[l+96] * (s[6] - 32) * (((q[l] >> 6) & 3) - (h[l] & (m << 3) ? 0 : 4)); - sum += y[l+16] * (s[1] - 32) * (((q[l+16] >> 0) & 3) - (h[l+16] & (m << 0) ? 0 : 4)) - + y[l+48] * (s[3] - 32) * (((q[l+16] >> 2) & 3) - (h[l+16] & (m << 1) ? 0 : 4)) - + y[l+80] * (s[5] - 32) * (((q[l+16] >> 4) & 3) - (h[l+16] & (m << 2) ? 0 : 4)) - + y[l+112] * (s[7] - 32) * (((q[l+16] >> 6) & 3) - (h[l+16] & (m << 3) ? 0 : 4)); - } - tmp[16 * ix + tid] += d * sum; - - } - - // sum up partial sums and write back result - barrier(CLK_LOCAL_MEM_FENCE); - for (int s=16; s>0; s>>=1) { - if (tid < s) { - tmp[tid] += tmp[tid + s]; - } - barrier(CLK_LOCAL_MEM_FENCE); - } - if (tid == 0) { - dst[row] = tmp[0]; - } -} - -__kernel void dequantize_mul_mat_vec_q4_K(__global const struct block_q4_K * xx, __local float* tmp, __global float* yy, __global float* dst, const int ncols) { - - //to rename it later, just to test now - const uint16_t kmask1 = 0x3f3f; - const uint16_t kmask2 = 0x0f0f; - const uint16_t kmask3 = 0xc0c0; - - const int row = get_group_id(0); - const int num_blocks_per_row = ncols / QK_K; - const int ib0 = row*num_blocks_per_row + get_global_offset(0); - - const int tid = get_local_id(0)/K_QUANTS_PER_ITERATION; // 0...15 - const int ix = get_local_id(0)%K_QUANTS_PER_ITERATION; - - const int step = 8/K_QUANTS_PER_ITERATION; - - const int il = tid/step; // 0...3 - const int ir = tid - step*il;// 0...3 - const int n = 2*K_QUANTS_PER_ITERATION; - - const int im = il/2; // 0 or 1. 0 computes 0,32 + 128,160, 1 computes 64,96 + 192,224 - const int in = il%2; - - const int l0 = n*(2*ir + in); - const int q_offset = 32*im + l0; - const int y_offset = 64*im + l0; - - uint16_t aux[4]; - const uint8_t * sc = (const uint8_t *)aux; - - __global const struct block_q4_K * x = xx + ib0; - - tmp[16 * ix + tid] = 0; - - for (int i = ix; i < num_blocks_per_row; i += K_QUANTS_PER_ITERATION) { - - __global const uint8_t * q1 = x[i].qs + q_offset; - __global const uint8_t * q2 = q1 + 64; - __global const float * y1 = yy + i*QK_K + y_offset; - __global const float * y2 = y1 + 128; - - const float dall = vload_half(0, &x[i].d); - const float dmin = vload_half(0, &x[i].dmin); - - __global const uint16_t * a = (__global const uint16_t *)x[i].scales; - aux[0] = a[im+0] & kmask1; - aux[1] = a[im+2] & kmask1; - aux[2] = ((a[im+4] >> 0) & kmask2) | ((a[im+0] & kmask3) >> 2); - aux[3] = ((a[im+4] >> 4) & kmask2) | ((a[im+2] & kmask3) >> 2); - - float4 s = (float4)(0.f); - float smin = 0; - for (int l = 0; l < n; ++l) { - s.x += y1[l] * (q1[l] & 0xF); s.y += y1[l+32] * (q1[l] >> 4); - s.z += y2[l] * (q2[l] & 0xF); s.w += y2[l+32] * (q2[l] >> 4); - smin += y1[l] * sc[2] + y1[l+32] * sc[3] + y2[l] * sc[6] + y2[l+32] * sc[7]; - } - tmp[16 * ix + tid] += dall * (s.x * sc[0] + s.y * sc[1] + s.z * sc[4] + s.w * sc[5]) - dmin * smin; - - } - - // sum up partial sums and write back result - barrier(CLK_LOCAL_MEM_FENCE); - for (int s=16; s>0; s>>=1) { - if (tid < s) { - tmp[tid] += tmp[tid + s]; - } - barrier(CLK_LOCAL_MEM_FENCE); - } - if (tid == 0) { - dst[row] = tmp[0]; - } -} - -__kernel void dequantize_mul_mat_vec_q5_K(__global const struct block_q5_K * xx, __local float* tmp, __global float* yy, __global float* dst, const int ncols) { - - const uint16_t kmask1 = 0x3f3f; - const uint16_t kmask2 = 0x0f0f; - const uint16_t kmask3 = 0xc0c0; - - const int row = get_group_id(0); - const int num_blocks_per_row = ncols / QK_K; - const int ib0 = row*num_blocks_per_row + get_global_offset(0); - - const int tid = get_local_id(0)/2; // 0...15 - const int ix = get_local_id(0)%2; - - const int il = tid/4; // 0...3 - const int ir = tid - 4*il;// 0...3 - const int n = 2; - - const int im = il/2; // 0 or 1. 0 computes 0,32 + 128,160, 1 computes 64,96 + 192,224 - const int in = il%2; - - const int l0 = n*(2*ir + in); - const int q_offset = 32*im + l0; - const int y_offset = 64*im + l0; - - const uint8_t hm1 = 1 << (2*im); - const uint8_t hm2 = hm1 << 4; - - uint16_t aux[4]; - const uint8_t * sc = (const uint8_t *)aux; - - __global const struct block_q5_K * x = xx + ib0; - - tmp[16 * ix + tid] = 0; - - for (int i = ix; i < num_blocks_per_row; i += 2) { - - __global const uint8_t * ql1 = x[i].qs + q_offset; - __global const uint8_t * ql2 = ql1 + 64; - __global const uint8_t * qh = x[i].qh + l0; - __global const float * y1 = yy + i*QK_K + y_offset; - __global const float * y2 = y1 + 128; - - const float dall = vload_half(0, &x[i].d); - const float dmin = vload_half(0, &x[i].dmin); - - __global const uint16_t * a = (__global const uint16_t *)x[i].scales; - aux[0] = a[im+0] & kmask1; - aux[1] = a[im+2] & kmask1; - aux[2] = ((a[im+4] >> 0) & kmask2) | ((a[im+0] & kmask3) >> 2); - aux[3] = ((a[im+4] >> 4) & kmask2) | ((a[im+2] & kmask3) >> 2); - - float4 sum = (float4)(0.f); - float smin = 0; - for (int l = 0; l < n; ++l) { - sum.x += y1[l+ 0] * ((ql1[l+ 0] & 0xF) + (qh[l+ 0] & (hm1 << 0) ? 16 : 0)) - + y1[l+16] * ((ql1[l+16] & 0xF) + (qh[l+16] & (hm1 << 0) ? 16 : 0)); - sum.y += y1[l+32] * ((ql1[l+ 0] >> 4) + (qh[l+ 0] & (hm1 << 1) ? 16 : 0)) - + y1[l+48] * ((ql1[l+16] >> 4) + (qh[l+16] & (hm1 << 1) ? 16 : 0)); - sum.z += y2[l+ 0] * ((ql2[l+ 0] & 0xF) + (qh[l+ 0] & (hm2 << 0) ? 16 : 0)) - + y2[l+16] * ((ql2[l+16] & 0xF) + (qh[l+16] & (hm2 << 0) ? 16 : 0)); - sum.w += y2[l+32] * ((ql2[l+ 0] >> 4) + (qh[l+ 0] & (hm2 << 1) ? 16 : 0)) - + y2[l+48] * ((ql2[l+16] >> 4) + (qh[l+16] & (hm2 << 1) ? 16 : 0)); - smin += (y1[l] + y1[l+16]) * sc[2] + (y1[l+32] + y1[l+48]) * sc[3] - + (y2[l] + y2[l+16]) * sc[6] + (y2[l+32] + y2[l+48]) * sc[7]; - } - tmp[16 * ix + tid] += dall * (sum.x * sc[0] + sum.y * sc[1] + sum.z * sc[4] + sum.w * sc[5]) - dmin * smin; - - } - - // sum up partial sums and write back result - barrier(CLK_LOCAL_MEM_FENCE); - for (int s=16; s>0; s>>=1) { - if (tid < s) { - tmp[tid] += tmp[tid + s]; - } - barrier(CLK_LOCAL_MEM_FENCE); - } - if (tid == 0) { - dst[row] = tmp[0]; - } -} - -__kernel void dequantize_mul_mat_vec_q6_K(__global const struct block_q6_K * xx, __local float* tmp, __global const float * yy, __global float * dst, const int ncols) { - - const int row = get_group_id(0); - - const int num_blocks_per_row = ncols / QK_K; - const int ib0 = row*num_blocks_per_row + get_global_offset(0); - - __global const struct block_q6_K * x = xx + ib0; - - const int tid = get_local_id(0)/K_QUANTS_PER_ITERATION; // 0...31 or 0...16 - const int ix = get_local_id(0)%K_QUANTS_PER_ITERATION; // 0 or 0, 1 - - const int step = 16/K_QUANTS_PER_ITERATION; // 16 or 8 - - const int im = tid/step; // 0 or 1. 0 computes 0..., 1 computes 128... - const int in = tid - step*im; // 0...15 or 0...7 - -\n#if K_QUANTS_PER_ITERATION == 1\n - const int l0 = K_QUANTS_PER_ITERATION*in; // 0...15 - const int is = 0; - -\n#else\n - - const int l0 = 4 * in; // 0, 4, 8, ..., 28 - const int is = in / 4; - -\n#endif\n - - const int ql_offset = 64*im + l0; - const int qh_offset = 32*im + l0; - const int s_offset = 8*im + is; - const int y_offset = 128*im + l0; - - tmp[16 * ix + tid] = 0; // partial sum for thread in warp - - for (int i = ix; i < num_blocks_per_row; i += K_QUANTS_PER_ITERATION) { - - __global const float * y = yy + i * QK_K + y_offset; - __global const uint8_t * ql = x[i].ql + ql_offset; - __global const uint8_t * qh = x[i].qh + qh_offset; - __global const int8_t * s = x[i].scales + s_offset; - - const float d = vload_half(0, &x[i].d); - -\n#if K_QUANTS_PER_ITERATION == 1\n - float sum = y[ 0] * s[0] * d * ((int8_t)((ql[ 0] & 0xF) | ((qh[ 0] & 0x03) << 4)) - 32) - + y[16] * s[1] * d * ((int8_t)((ql[16] & 0xF) | ((qh[16] & 0x03) << 4)) - 32) - + y[32] * s[2] * d * ((int8_t)((ql[32] & 0xF) | ((qh[ 0] & 0x0c) << 2)) - 32) - + y[48] * s[3] * d * ((int8_t)((ql[48] & 0xF) | ((qh[16] & 0x0c) << 2)) - 32) - + y[64] * s[4] * d * ((int8_t)((ql[ 0] >> 4) | ((qh[ 0] & 0x30) >> 0)) - 32) - + y[80] * s[5] * d * ((int8_t)((ql[16] >> 4) | ((qh[16] & 0x30) >> 0)) - 32) - + y[96] * s[6] * d * ((int8_t)((ql[32] >> 4) | ((qh[ 0] & 0xc0) >> 2)) - 32) - +y[112] * s[7] * d * ((int8_t)((ql[48] >> 4) | ((qh[16] & 0xc0) >> 2)) - 32); - tmp[16 * ix + tid] += sum; -\n#else\n - float sum = 0; - for (int l = 0; l < 4; ++l) { - sum += y[l+ 0] * s[0] * d * ((int8_t)((ql[l+ 0] & 0xF) | (((qh[l] >> 0) & 3) << 4)) - 32) - + y[l+32] * s[2] * d * ((int8_t)((ql[l+32] & 0xF) | (((qh[l] >> 2) & 3) << 4)) - 32) - + y[l+64] * s[4] * d * ((int8_t)((ql[l+ 0] >> 4) | (((qh[l] >> 4) & 3) << 4)) - 32) - + y[l+96] * s[6] * d * ((int8_t)((ql[l+32] >> 4) | (((qh[l] >> 6) & 3) << 4)) - 32); - } - tmp[16 * ix + tid] += sum; -\n#endif\n - - } - - // sum up partial sums and write back result - barrier(CLK_LOCAL_MEM_FENCE); - for (int s=16; s>0; s>>=1) { - if (tid < s) { - tmp[tid] += tmp[tid + s]; - } - barrier(CLK_LOCAL_MEM_FENCE); - } - if (tid == 0) { - dst[row] = tmp[0]; - } -} -); - - -std::string dequant_template = MULTILINE_QUOTE( -__kernel void KERNEL_NAME(__global X_TYPE* x, __global float* y) { - const int i = get_group_id(0)*get_local_size(0) + get_local_id(0)*2; - - if (i >= get_global_size(0)) { - return; - } - - const uint qk = QUANT_K; - const uint qr = QUANT_R; - - const int ib = i/qk + get_global_offset(0); // block index - const int iqs = (i%qk)/qr; // quant index - const int iybs = i - i%qk; // y block start index - const int y_offset = qr == 1 ? 1 : qk/2; - - // dequantize - float v0, v1; - DEQUANT_FUNC(x, ib, iqs, &v0, &v1); - y[iybs + iqs + 0] = v0; - y[iybs + iqs + y_offset] = v1; -} -); - -std::string dequant_mul_mat_vec_template = MULTILINE_QUOTE( -__kernel void KERNEL_NAME(__global X_TYPE* x, __local float* tmp, __global float* y, __global float* dst, const int ncols) { - const int local_size = get_local_size(0); - const int row = get_group_id(0); - const int tid = get_local_id(0); - - const uint qk = QUANT_K; - const uint qr = QUANT_R; - - const int col_step = local_size * 2; - const int y_offset = qr == 1 ? 1 : qk/2; - - x += get_global_offset(0); - - tmp[tid] = 0; - - for (int col = tid*2; col < ncols; col += col_step) { - const int ib = (row*ncols + col)/qk; // block index - const int iqs = (col%qk)/qr; // quant index - const int iybs = col - col%qk; // y block start index - - // dequantize - float v0, v1; - DEQUANT_FUNC(x, ib, iqs, &v0, &v1); - - // matrix multiplication - tmp[tid] += v0 * y[iybs + iqs + 0]; - tmp[tid] += v1 * y[iybs + iqs + y_offset]; - } - - // sum up partial sums and write back result - barrier(CLK_LOCAL_MEM_FENCE); - for (int s=local_size/2; s>0; s>>=1) { - if (tid < s) { - tmp[tid] += tmp[tid + s]; - } - barrier(CLK_LOCAL_MEM_FENCE); - } - if (tid == 0) { - dst[row] = tmp[0]; - } -} - -); - - -std::string mul_template = MULTILINE_QUOTE( -__kernel void KERNEL_NAME(__global TYPE* x, const int x_offset, __global TYPE* y, const int y_offset, __global TYPE* dst, const int dst_offset, const int ky) { - const int i = get_group_id(0)*get_local_size(0) + get_local_id(0); - - if (i >= get_global_size(0)) { - return; - } - - dst[dst_offset + i] = x[x_offset + i] * y[y_offset + i%ky]; -} -); - -std::string add_template = MULTILINE_QUOTE( -__kernel void add_f32(__global float * x, const int x_offset, __global float * y, const int y_offset, __global float * dst, const int dst_offset, const int ky) { - const int i = get_group_id(0)*get_local_size(0) + get_local_id(0); - - if (i >= get_global_size(0)) { - return; - } - - dst[dst_offset + i] = x[x_offset + i] + y[y_offset + i%ky]; -} -); - -#define CL_CHECK(err) \ - do { \ - cl_int err_ = (err); \ - if (err_ != CL_SUCCESS) { \ - fprintf(stderr, "ggml_opencl: %s error %d at %s:%d\n", \ - #err, err_, __FILE__, __LINE__); \ - exit(1); \ - } \ - } while (0) - -#define CLBLAST_CHECK(err) \ - do { \ - CLBlastStatusCode err_ = (err); \ - if (err_ != CLBlastSuccess) { \ - fprintf(stderr, "ggml_opencl: %s error %d at %s:%d\n", \ - #err, err_, __FILE__, __LINE__); \ - exit(1); \ - } \ - } while (0) - -std::array dequant_str_keys = { - "KERNEL_NAME", "X_TYPE", "QUANT_K", "QUANT_R", "DEQUANT_FUNC" -}; - -std::array dequant_str_values = { - "dequantize_row_q4_0", "struct block_q4_0", "QK4_0", "QR4_0", "dequantize_q4_0", - "dequantize_row_q4_1", "struct block_q4_1", "QK4_1", "QR4_1", "dequantize_q4_1", - "dequantize_row_q5_0", "struct block_q5_0", "QK5_0", "QR5_0", "dequantize_q5_0", - "dequantize_row_q5_1", "struct block_q5_1", "QK5_1", "QR5_1", "dequantize_q5_1", - "dequantize_row_q8_0", "struct block_q8_0", "QK8_0", "QR8_0", "dequantize_q8_0", - "convert_row_f16", "half", "1", "1", "convert_f16" -}; - -std::array dequant_mul_mat_vec_str_values = { - "dequantize_mul_mat_vec_q4_0", "struct block_q4_0", "QK4_0", "QR4_0", "dequantize_q4_0", - "dequantize_mul_mat_vec_q4_1", "struct block_q4_1", "QK4_1", "QR4_1", "dequantize_q4_1", - "dequantize_mul_mat_vec_q5_0", "struct block_q5_0", "QK5_0", "QR5_0", "dequantize_q5_0", - "dequantize_mul_mat_vec_q5_1", "struct block_q5_1", "QK5_1", "QR5_1", "dequantize_q5_1", - "dequantize_mul_mat_vec_q8_0", "struct block_q8_0", "QK8_0", "QR8_0", "dequantize_q8_0", - "convert_mul_mat_vec_f16", "half", "1", "1", "convert_f16" -}; - -std::array mul_str_keys = { - "KERNEL_NAME", "TYPE" -}; -std::array mul_str_values = { - "mul_f32", "float" -}; - -static std::string& replace(std::string& s, const std::string& from, const std::string& to) { - size_t pos = 0; - while ((pos = s.find(from, pos)) != std::string::npos) { - s.replace(pos, from.length(), to); - pos += to.length(); - } - return s; -} - -static std::string generate_kernels() { - std::stringstream src; - src << program_source << '\n'; - src << k_quants_source << '\n'; - for (size_t i = 0; i < dequant_str_values.size(); i += dequant_str_keys.size()) { - std::string dequant_kernel = dequant_template; - std::string dmmv_kernel = dequant_mul_mat_vec_template; - for (size_t j = 0; j < dequant_str_keys.size(); j++) { - replace(dequant_kernel, dequant_str_keys[j], dequant_str_values[i + j]); - replace(dmmv_kernel, dequant_str_keys[j], dequant_mul_mat_vec_str_values[i + j]); - } - src << dequant_kernel << '\n'; - src << dmmv_kernel << '\n'; - } - for (size_t i = 0; i < mul_str_values.size(); i += mul_str_keys.size()) { - std::string mul_kernel = mul_template; - for (size_t j = 0; j < mul_str_keys.size(); j++) { - replace(mul_kernel, mul_str_keys[j], mul_str_values[i + j]); - } - src << mul_kernel << '\n'; - } - src << add_template << '\n'; - - return src.str(); -} - -static cl_platform_id platform; -static cl_device_id device; -static cl_context context; -static cl_command_queue queue; -static cl_program program; -static cl_kernel convert_row_f16_cl; -static cl_kernel dequantize_row_q4_0_cl, dequantize_row_q4_1_cl, dequantize_row_q5_0_cl, dequantize_row_q5_1_cl, dequantize_row_q8_0_cl; -static cl_kernel dequantize_mul_mat_vec_q4_0_cl, dequantize_mul_mat_vec_q4_1_cl, dequantize_mul_mat_vec_q5_0_cl, dequantize_mul_mat_vec_q5_1_cl, dequantize_mul_mat_vec_q8_0_cl, convert_mul_mat_vec_f16_cl; -static cl_kernel dequantize_block_q2_k_cl, dequantize_block_q3_k_cl, dequantize_block_q4_k_cl, dequantize_block_q5_k_cl, dequantize_block_q6_k_cl; -static cl_kernel dequantize_mul_mat_vec_q2_K_cl, dequantize_mul_mat_vec_q3_K_cl, dequantize_mul_mat_vec_q4_K_cl, dequantize_mul_mat_vec_q5_K_cl, dequantize_mul_mat_vec_q6_K_cl; -static cl_kernel mul_f32_cl; -static cl_kernel add_f32_cl; -static bool fp16_support; - -static cl_program build_program_from_source(cl_context ctx, cl_device_id dev, const char* program_buffer) { - cl_program p; - char *program_log; - size_t program_size; - size_t log_size; - int err; - - program_size = strlen(program_buffer); - - p = clCreateProgramWithSource(ctx, 1, (const char**)&program_buffer, &program_size, &err); - if(err < 0) { - fprintf(stderr, "OpenCL error creating program"); - exit(1); - } - - std::string compile_opts = "-cl-mad-enable -cl-unsafe-math-optimizations -cl-finite-math-only -cl-fast-relaxed-math " - "-DQK4_0=32 -DQR4_0=2 -DQK4_1=32 -DQR4_1=2 -DQK5_0=32 -DQR5_0=2 -DQK5_1=32 -DQR5_1=2 -DQK8_0=32 -DQR8_0=1 " - "-DQK_K=256 -DK_QUANTS_PER_ITERATION=" + std::to_string(K_QUANTS_PER_ITERATION); - - err = clBuildProgram(p, 0, NULL, compile_opts.c_str(), NULL, NULL); - if(err < 0) { - - clGetProgramBuildInfo(p, dev, CL_PROGRAM_BUILD_LOG, 0, NULL, &log_size); - program_log = (char*) malloc(log_size + 1); - program_log[log_size] = '\0'; - clGetProgramBuildInfo(p, dev, CL_PROGRAM_BUILD_LOG, log_size + 1, program_log, NULL); - fprintf(stderr, "ggml_opencl: kernel compile error:\n\n%s\n", program_log); - free(program_log); - exit(1); - } - - return p; -} - -void ggml_cl_init(void) { - static bool initialized = false; - if (initialized) { - return; - } - initialized = true; - - cl_int err; - - struct cl_device; - struct cl_platform { - cl_platform_id id; - unsigned number; - char name[128]; - char vendor[128]; - struct cl_device * devices; - unsigned n_devices; - struct cl_device * default_device; - }; - - struct cl_device { - struct cl_platform * platform; - cl_device_id id; - unsigned number; - cl_device_type type; - char name[128]; - }; - - enum { NPLAT = 16, NDEV = 16 }; - - struct cl_platform platforms[NPLAT]; - unsigned n_platforms = 0; - struct cl_device devices[NDEV]; - unsigned n_devices = 0; - struct cl_device * default_device = NULL; - - platform = NULL; - device = NULL; - - cl_platform_id platform_ids[NPLAT]; - CL_CHECK(clGetPlatformIDs(NPLAT, platform_ids, &n_platforms)); - - for (unsigned i = 0; i < n_platforms; i++) { - struct cl_platform * p = &platforms[i]; - p->number = i; - p->id = platform_ids[i]; - CL_CHECK(clGetPlatformInfo(p->id, CL_PLATFORM_NAME, sizeof(p->name), &p->name, NULL)); - CL_CHECK(clGetPlatformInfo(p->id, CL_PLATFORM_VENDOR, sizeof(p->vendor), &p->vendor, NULL)); - - cl_device_id device_ids[NDEV]; - cl_int clGetDeviceIDsError = clGetDeviceIDs(p->id, CL_DEVICE_TYPE_ALL, NDEV, device_ids, &p->n_devices); - if (clGetDeviceIDsError == CL_DEVICE_NOT_FOUND) { - p->n_devices = 0; - } else { - CL_CHECK(clGetDeviceIDsError); - } - p->devices = p->n_devices > 0 ? &devices[n_devices] : NULL; - p->default_device = NULL; - - for (unsigned j = 0; j < p->n_devices; j++) { - struct cl_device * d = &devices[n_devices]; - d->number = n_devices++; - d->id = device_ids[j]; - d->platform = p; - CL_CHECK(clGetDeviceInfo(d->id, CL_DEVICE_NAME, sizeof(d->name), &d->name, NULL)); - CL_CHECK(clGetDeviceInfo(d->id, CL_DEVICE_TYPE, sizeof(d->type), &d->type, NULL)); - - if (p->default_device == NULL && d->type == CL_DEVICE_TYPE_GPU) { - p->default_device = d; - } - } - - if (default_device == NULL && p->default_device != NULL) { - default_device = p->default_device; - } - } - - if (n_devices == 0) { - fprintf(stderr, "ggml_opencl: could find any OpenCL devices.\n"); - exit(1); - } - - char * user_platform_string = getenv("GGML_OPENCL_PLATFORM"); - char * user_device_string = getenv("GGML_OPENCL_DEVICE"); - int user_platform_number = -1; - int user_device_number = -1; - - unsigned n; - if (user_platform_string != NULL && sscanf(user_platform_string, " %u", &n) == 1 && n < n_platforms) { - user_platform_number = (int)n; - } - if (user_device_string != NULL && sscanf(user_device_string, " %u", &n) == 1 && n < n_devices) { - user_device_number = (int)n; - } - if (user_platform_number != -1 && user_device_number != -1) { - cl_platform* platform = &platforms[user_platform_number]; - if ((unsigned)user_device_number >= platform->n_devices) { - fprintf(stderr, "ggml_opencl: invalid device number %d\n", user_device_number); - exit(1); - } - default_device = &platform->devices[user_device_number]; - } else { - - struct cl_device * selected_devices = devices; - unsigned n_selected_devices = n_devices; - - if (user_platform_number == -1 && user_platform_string != NULL && user_platform_string[0] != 0) { - for (unsigned i = 0; i < n_platforms; i++) { - struct cl_platform * p = &platforms[i]; - if (strstr(p->name, user_platform_string) != NULL || - strstr(p->vendor, user_platform_string) != NULL) { - user_platform_number = (int)i; - break; - } - } - if (user_platform_number == -1) { - fprintf(stderr, "ggml_opencl: no platform matching '%s' was found.\n", user_platform_string); - exit(1); - } - } - if (user_platform_number != -1) { - struct cl_platform * p = &platforms[user_platform_number]; - selected_devices = p->devices; - n_selected_devices = p->n_devices; - default_device = p->default_device; - if (n_selected_devices == 0) { - fprintf(stderr, "ggml_opencl: selected platform '%s' does not have any devices.\n", p->name); - exit(1); - } - } - - if (user_device_number == -1 && user_device_string != NULL && user_device_string[0] != 0) { - for (unsigned i = 0; i < n_selected_devices; i++) { - struct cl_device * d = &selected_devices[i]; - if (strstr(d->name, user_device_string) != NULL) { - user_device_number = d->number; - break; - } - } - if (user_device_number == -1) { - fprintf(stderr, "ggml_opencl: no device matching '%s' was found.\n", user_device_string); - exit(1); - } - } - if (user_device_number != -1) { - selected_devices = &devices[user_device_number]; - n_selected_devices = 1; - default_device = &selected_devices[0]; - } - - GGML_ASSERT(n_selected_devices > 0); - - if (default_device == NULL) { - default_device = &selected_devices[0]; - } - } - - fprintf(stderr, "ggml_opencl: selecting platform: '%s'\n", default_device->platform->name); - fprintf(stderr, "ggml_opencl: selecting device: '%s'\n", default_device->name); - if (default_device->type != CL_DEVICE_TYPE_GPU) { - fprintf(stderr, "ggml_opencl: warning, not a GPU: '%s'.\n", default_device->name); - } - - platform = default_device->platform->id; - device = default_device->id; - - size_t ext_str_size; - clGetDeviceInfo(device, CL_DEVICE_EXTENSIONS, 0, NULL, &ext_str_size); - char *ext_buffer = (char *)alloca(ext_str_size + 1); - clGetDeviceInfo(device, CL_DEVICE_EXTENSIONS, ext_str_size, ext_buffer, NULL); - ext_buffer[ext_str_size] = '\0'; // ensure it is null terminated - // Disabled due to faulty outputs - // Check if ext_buffer contains cl_khr_fp16 - fp16_support = false; // strstr(ext_buffer, "cl_khr_fp16") != NULL; - // fprintf(stderr, "ggml_opencl: device FP16 support: %s\n", fp16_support ? "true" : "false"); - - cl_context_properties properties[] = { - (intptr_t)CL_CONTEXT_PLATFORM, (intptr_t)platform, 0 - }; - - CL_CHECK((context = clCreateContext(properties, 1, &device, NULL, NULL, &err), err)); - - CL_CHECK((queue = clCreateCommandQueue(context, device, CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE, &err), - (err != CL_INVALID_QUEUE_PROPERTIES && err != CL_INVALID_VALUE ? err : - (queue = clCreateCommandQueue(context, device, 0, &err), err) - ))); - - const std::string kernel_src = generate_kernels(); - - program = build_program_from_source(context, device, kernel_src.c_str()); - - // FP16 to FP32 kernel - CL_CHECK((convert_row_f16_cl = clCreateKernel(program, "convert_row_f16", &err), err)); - - // Dequantize kernels - CL_CHECK((dequantize_row_q4_0_cl = clCreateKernel(program, "dequantize_row_q4_0", &err), err)); - CL_CHECK((dequantize_row_q4_1_cl = clCreateKernel(program, "dequantize_row_q4_1", &err), err)); - CL_CHECK((dequantize_row_q5_0_cl = clCreateKernel(program, "dequantize_row_q5_0", &err), err)); - CL_CHECK((dequantize_row_q5_1_cl = clCreateKernel(program, "dequantize_row_q5_1", &err), err)); - CL_CHECK((dequantize_row_q8_0_cl = clCreateKernel(program, "dequantize_row_q8_0", &err), err)); - CL_CHECK((dequantize_row_q8_0_cl = clCreateKernel(program, "dequantize_row_q8_0", &err), err)); - CL_CHECK((dequantize_block_q2_k_cl = clCreateKernel(program, "dequantize_block_q2_K", &err), err)); - CL_CHECK((dequantize_block_q3_k_cl = clCreateKernel(program, "dequantize_block_q3_K", &err), err)); - CL_CHECK((dequantize_block_q4_k_cl = clCreateKernel(program, "dequantize_block_q4_K", &err), err)); - CL_CHECK((dequantize_block_q5_k_cl = clCreateKernel(program, "dequantize_block_q5_K", &err), err)); - CL_CHECK((dequantize_block_q6_k_cl = clCreateKernel(program, "dequantize_block_q6_K", &err), err)); - - // dequant mul mat kernel - CL_CHECK((dequantize_mul_mat_vec_q4_0_cl = clCreateKernel(program, "dequantize_mul_mat_vec_q4_0", &err), err)); - CL_CHECK((dequantize_mul_mat_vec_q4_1_cl = clCreateKernel(program, "dequantize_mul_mat_vec_q4_1", &err), err)); - CL_CHECK((dequantize_mul_mat_vec_q5_0_cl = clCreateKernel(program, "dequantize_mul_mat_vec_q5_0", &err), err)); - CL_CHECK((dequantize_mul_mat_vec_q5_1_cl = clCreateKernel(program, "dequantize_mul_mat_vec_q5_1", &err), err)); - CL_CHECK((dequantize_mul_mat_vec_q8_0_cl = clCreateKernel(program, "dequantize_mul_mat_vec_q8_0", &err), err)); - CL_CHECK((convert_mul_mat_vec_f16_cl = clCreateKernel(program, "convert_mul_mat_vec_f16", &err), err)); - CL_CHECK((dequantize_mul_mat_vec_q2_K_cl = clCreateKernel(program, "dequantize_mul_mat_vec_q2_K", &err), err)); - CL_CHECK((dequantize_mul_mat_vec_q3_K_cl = clCreateKernel(program, "dequantize_mul_mat_vec_q3_K", &err), err)); - CL_CHECK((dequantize_mul_mat_vec_q4_K_cl = clCreateKernel(program, "dequantize_mul_mat_vec_q4_K", &err), err)); - CL_CHECK((dequantize_mul_mat_vec_q5_K_cl = clCreateKernel(program, "dequantize_mul_mat_vec_q5_K", &err), err)); - CL_CHECK((dequantize_mul_mat_vec_q6_K_cl = clCreateKernel(program, "dequantize_mul_mat_vec_q6_K", &err), err)); - - // mul kernel - CL_CHECK((mul_f32_cl = clCreateKernel(program, "mul_f32", &err), err)); - - CL_CHECK((add_f32_cl = clCreateKernel(program, "add_f32", &err), err)); -} - -static cl_kernel* ggml_get_to_fp32_cl(ggml_type type) { - switch (type) { - case GGML_TYPE_Q4_0: - return &dequantize_row_q4_0_cl; - case GGML_TYPE_Q4_1: - return &dequantize_row_q4_1_cl; - case GGML_TYPE_Q5_0: - return &dequantize_row_q5_0_cl; - case GGML_TYPE_Q5_1: - return &dequantize_row_q5_1_cl; - case GGML_TYPE_Q8_0: - return &dequantize_row_q8_0_cl; - case GGML_TYPE_Q2_K: - return &dequantize_block_q2_k_cl; - case GGML_TYPE_Q3_K: - return &dequantize_block_q3_k_cl; - case GGML_TYPE_Q4_K: - return &dequantize_block_q4_k_cl; - case GGML_TYPE_Q5_K: - return &dequantize_block_q5_k_cl; - case GGML_TYPE_Q6_K: - return &dequantize_block_q6_k_cl; - case GGML_TYPE_F16: - return &convert_row_f16_cl; - default: - return nullptr; - } -} - -static size_t ggml_cl_global_denom(ggml_type type) { - switch (type) { - case GGML_TYPE_Q4_0: - case GGML_TYPE_Q4_1: - case GGML_TYPE_Q5_0: - case GGML_TYPE_Q5_1: - case GGML_TYPE_Q8_0: - return 1; - case GGML_TYPE_Q2_K: - case GGML_TYPE_Q3_K: - return 4; - case GGML_TYPE_Q4_K: - return 8; - case GGML_TYPE_Q5_K: - case GGML_TYPE_Q6_K: - return 4; - case GGML_TYPE_F16: - default: - return 1; - } -} - -static size_t ggml_cl_local_size(ggml_type type) { - switch (type) { - case GGML_TYPE_Q4_0: - case GGML_TYPE_Q4_1: - case GGML_TYPE_Q5_0: - case GGML_TYPE_Q5_1: - case GGML_TYPE_Q8_0: - return 0; - case GGML_TYPE_Q2_K: - case GGML_TYPE_Q3_K: - return 64; - case GGML_TYPE_Q4_K: - return 32; - case GGML_TYPE_Q5_K: - case GGML_TYPE_Q6_K: - return 64; - case GGML_TYPE_F16: - default: - return 0; - } -} - -static cl_kernel* ggml_get_dequantize_mul_mat_vec_cl(ggml_type type) { - switch (type) { - case GGML_TYPE_Q4_0: - return &dequantize_mul_mat_vec_q4_0_cl; - case GGML_TYPE_Q4_1: - return &dequantize_mul_mat_vec_q4_1_cl; - case GGML_TYPE_Q5_0: - return &dequantize_mul_mat_vec_q5_0_cl; - case GGML_TYPE_Q5_1: - return &dequantize_mul_mat_vec_q5_1_cl; - case GGML_TYPE_Q8_0: - return &dequantize_mul_mat_vec_q8_0_cl; - case GGML_TYPE_F16: - return &convert_mul_mat_vec_f16_cl; - case GGML_TYPE_Q2_K: - return &dequantize_mul_mat_vec_q2_K_cl; - case GGML_TYPE_Q3_K: - return &dequantize_mul_mat_vec_q3_K_cl; - case GGML_TYPE_Q4_K: - return &dequantize_mul_mat_vec_q4_K_cl; - case GGML_TYPE_Q5_K: - return &dequantize_mul_mat_vec_q5_K_cl; - case GGML_TYPE_Q6_K: - return &dequantize_mul_mat_vec_q6_K_cl; - default: - return nullptr; - } -} - -// buffer pool for cl -#define MAX_CL_BUFFERS 256 - -struct scoped_spin_lock { - std::atomic_flag& lock; - scoped_spin_lock(std::atomic_flag& lock) : lock(lock) { - while (lock.test_and_set(std::memory_order_acquire)) { - ; // spin - } - } - ~scoped_spin_lock() { - lock.clear(std::memory_order_release); - } - scoped_spin_lock(const scoped_spin_lock&) = delete; - scoped_spin_lock& operator=(const scoped_spin_lock&) = delete; -}; - -struct cl_buffer { - cl_mem mem; - size_t size = 0; -}; - -static cl_buffer g_cl_buffer_pool[MAX_CL_BUFFERS]; -static std::atomic_flag g_cl_pool_lock = ATOMIC_FLAG_INIT; - -static cl_mem ggml_cl_pool_malloc(size_t size, size_t * actual_size) { - scoped_spin_lock lock(g_cl_pool_lock); - cl_int err; - - int best_i = -1; - size_t best_size = std::numeric_limits::max(); //smallest unused buffer that fits our needs - int worst_i = -1; - size_t worst_size = 0; //largest unused buffer seen so far - for (int i = 0; i < MAX_CL_BUFFERS; ++i) { - cl_buffer &b = g_cl_buffer_pool[i]; - if (b.size > 0 && b.size >= size && b.size < best_size) - { - best_i = i; - best_size = b.size; - } - if (b.size > 0 && b.size > worst_size) - { - worst_i = i; - worst_size = b.size; - } - } - if(best_i!=-1) //found the smallest buffer that fits our needs - { - cl_buffer& b = g_cl_buffer_pool[best_i]; - cl_mem mem = b.mem; - *actual_size = b.size; - b.size = 0; - return mem; - } - if(worst_i!=-1) //no buffer that fits our needs, resize largest one to save memory - { - cl_buffer& b = g_cl_buffer_pool[worst_i]; - cl_mem mem = b.mem; - b.size = 0; - clReleaseMemObject(mem); - } - cl_mem mem; - CL_CHECK((mem = clCreateBuffer(context, CL_MEM_READ_WRITE, size, NULL, &err), err)); - *actual_size = size; - return mem; -} - -static void ggml_cl_pool_free(cl_mem mem, size_t size) { - scoped_spin_lock lock(g_cl_pool_lock); - - for (int i = 0; i < MAX_CL_BUFFERS; ++i) { - cl_buffer& b = g_cl_buffer_pool[i]; - if (b.size == 0) { - b.mem = mem; - b.size = size; - return; - } - } - fprintf(stderr, "WARNING: cl buffer pool full, increase MAX_CL_BUFFERS\n"); - clReleaseMemObject(mem); -} - -void ggml_cl_free_data(const struct ggml_tensor* tensor) { - if (tensor->backend != GGML_BACKEND_TYPE_GPU) { - return; - } - - cl_mem mem = (cl_mem)tensor->extra; - clReleaseMemObject(mem); -} - -static cl_int ggml_cl_h2d_tensor_2d(cl_command_queue queue, cl_mem dst, size_t offset, const struct ggml_tensor * src, uint64_t i3, uint64_t i2, cl_event* ev) { - cl_int err; - const uint64_t ne0 = src->ne[0]; - const uint64_t ne1 = src->ne[1]; - const uint64_t nb0 = src->nb[0]; - const uint64_t nb1 = src->nb[1]; - const uint64_t nb2 = src->nb[2]; - const uint64_t nb3 = src->nb[3]; - const enum ggml_type type = src->type; - const size_t ts = ggml_type_size(type); - const size_t bs = ggml_blck_size(type); - const uint64_t row_size = ts*ne0/bs; - - const char * x = (const char *) src->data + i2*nb2 + i3*nb3; - if (nb0 == ts && nb1 == row_size) { - return clEnqueueWriteBuffer(queue, dst, CL_FALSE, offset, ne1*row_size, x, 0, NULL, ev); - } - if (nb0 == ts) { - const size_t buffer_origin[3] = { offset, 0, 0 }; - const size_t host_origin[3] = { 0, 0, 0 }; - const size_t region[3] = { row_size, ne1, 1 }; - return clEnqueueWriteBufferRect(queue, dst, CL_FALSE, buffer_origin, host_origin, region, row_size, 0, nb1, 0, x, 0, NULL, ev); - } - std::vector events; - if (ev && ne1>1) events.reserve(ne1-1); - for (uint64_t i1 = 0; i1 < ne1; i1++) { - // pretend the row is a matrix with cols=1 - const size_t buffer_origin[3] = { offset + i1*row_size, 0, 0 }; - const size_t host_origin[3] = { 0, 0, 0 }; - const size_t region[3] = { ts, ne0/bs, 1 }; - // if an event is requested, make the last write wait for all previous writes to complete - if (ev && i1) { - events.push_back(*ev); - } - cl_uint nevents = i1 == ne1-1 ? events.size() : 0U; - err = clEnqueueWriteBufferRect(queue, dst, CL_FALSE, buffer_origin, host_origin, region, ts, 0, nb0, 0, x + i1*nb1, nevents, nevents ? events.data() : nullptr, ev); - if (err != CL_SUCCESS) { - for (auto event : events) { - clReleaseEvent(event); - } - return err; - } - } - for (auto event : events) { - CL_CHECK(clReleaseEvent(event)); - } - return CL_SUCCESS; -} - -static void ggml_cl_mul_f32(const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) { - GGML_ASSERT(src1->backend == GGML_BACKEND_TYPE_GPU); - const int64_t ne00 = src0->ne[0]; - const int64_t ne01 = src0->ne[1]; - const int64_t ne02 = src0->ne[2]; - const int64_t ne03 = src0->ne[3]; - const int64_t ne10 = src1->ne[0]; - const int64_t ne11 = src1->ne[1]; - const int64_t ne12 = src1->ne[2]; - const int64_t ne13 = src1->ne[3]; - const int nb2 = dst->nb[2]; - const int nb3 = dst->nb[3]; - size_t x_size; - size_t d_size; - - cl_mem d_X = ggml_cl_pool_malloc(ne00 * ne01 * sizeof(float), &x_size); // src0 - cl_mem d_Y = (cl_mem) src1->extra; // src1 is already on device, broadcasted. - cl_mem d_D = ggml_cl_pool_malloc(ne00 * ne01 * sizeof(float), &d_size); // dst - - - for (int64_t i03 = 0; i03 < ne03; i03++) { - for (int64_t i02 = 0; i02 < ne02; i02++) { - cl_event ev; - - // copy src0 to device - CL_CHECK(ggml_cl_h2d_tensor_2d(queue, d_X, 0, src0, i03, i02, &ev)); - - const int64_t i13 = i03%ne13; - const int64_t i12 = i02%ne12; - const int i1 = i13*ne12*ne11 + i12*ne11; - - cl_int x_offset = 0; - cl_int y_offset = i1*ne10; - cl_int d_offset = 0; - - size_t global = ne00 * ne01; - cl_int ky = ne10 * ne11; - - CL_CHECK(clSetKernelArg(mul_f32_cl, 0, sizeof(cl_mem), &d_X)); - CL_CHECK(clSetKernelArg(mul_f32_cl, 1, sizeof(cl_int), &x_offset)); - CL_CHECK(clSetKernelArg(mul_f32_cl, 2, sizeof(cl_mem), &d_Y)); - CL_CHECK(clSetKernelArg(mul_f32_cl, 3, sizeof(cl_int), &y_offset)); - CL_CHECK(clSetKernelArg(mul_f32_cl, 4, sizeof(cl_mem), &d_D)); - CL_CHECK(clSetKernelArg(mul_f32_cl, 5, sizeof(cl_int), &d_offset)); - CL_CHECK(clSetKernelArg(mul_f32_cl, 6, sizeof(cl_int), &ky)); - CL_CHECK(clEnqueueNDRangeKernel(queue, mul_f32_cl, 1, NULL, &global, NULL, 1, &ev, NULL)); - - CL_CHECK(clReleaseEvent(ev)); - CL_CHECK(clFinish(queue)); - - // copy dst to host - float * d = (float *) ((char *) dst->data + i02*nb2 + i03*nb3); - CL_CHECK(clEnqueueReadBuffer(queue, d_D, true, 0, sizeof(float) * ne00*ne01, d, 0, NULL, NULL)); - } - } - ggml_cl_pool_free(d_X, x_size); - ggml_cl_pool_free(d_D, d_size); -} - -void ggml_cl_mul(const struct ggml_tensor * src0, const struct ggml_tensor * src1, struct ggml_tensor * dst) { - GGML_ASSERT(src0->type == GGML_TYPE_F32 && src1->type == GGML_TYPE_F32 && dst->type == GGML_TYPE_F32); - ggml_cl_mul_f32(src0, src1, dst); -} - -static void ggml_cl_add_f32(const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) { - GGML_ASSERT(src1->backend == GGML_BACKEND_TYPE_GPU); - const int64_t ne00 = src0->ne[0]; - const int64_t ne01 = src0->ne[1]; - const int64_t ne02 = src0->ne[2]; - const int64_t ne03 = src0->ne[3]; - const int64_t ne10 = src1->ne[0]; - const int64_t ne11 = src1->ne[1]; - const int64_t ne12 = src1->ne[2]; - const int64_t ne13 = src1->ne[3]; - const int nb2 = dst->nb[2]; - const int nb3 = dst->nb[3]; - size_t x_size; - size_t d_size; - - cl_mem d_X = ggml_cl_pool_malloc(ne00 * ne01 * sizeof(float), &x_size); // src0 - cl_mem d_Y = (cl_mem) src1->extra; // src1 is already on device, broadcasted. - cl_mem d_D = ggml_cl_pool_malloc(ne00 * ne01 * sizeof(float), &d_size); // dst - - - for (int64_t i03 = 0; i03 < ne03; i03++) { - for (int64_t i02 = 0; i02 < ne02; i02++) { - cl_event ev; - - // copy src0 to device - CL_CHECK(ggml_cl_h2d_tensor_2d(queue, d_X, 0, src0, i03, i02, &ev)); - - const int64_t i13 = i03%ne13; - const int64_t i12 = i02%ne12; - const int i1 = i13*ne12*ne11 + i12*ne11; - - cl_int x_offset = 0; - cl_int y_offset = i1*ne10; - cl_int d_offset = 0; - - size_t global = ne00 * ne01; - cl_int ky = ne10 * ne11; - - CL_CHECK(clSetKernelArg(add_f32_cl, 0, sizeof(cl_mem), &d_X)); - CL_CHECK(clSetKernelArg(add_f32_cl, 1, sizeof(cl_int), &x_offset)); - CL_CHECK(clSetKernelArg(add_f32_cl, 2, sizeof(cl_mem), &d_Y)); - CL_CHECK(clSetKernelArg(add_f32_cl, 3, sizeof(cl_int), &y_offset)); - CL_CHECK(clSetKernelArg(add_f32_cl, 4, sizeof(cl_mem), &d_D)); - CL_CHECK(clSetKernelArg(add_f32_cl, 5, sizeof(cl_int), &d_offset)); - CL_CHECK(clSetKernelArg(add_f32_cl, 6, sizeof(cl_int), &ky)); - CL_CHECK(clEnqueueNDRangeKernel(queue, add_f32_cl, 1, NULL, &global, NULL, 1, &ev, NULL)); - - CL_CHECK(clReleaseEvent(ev)); - CL_CHECK(clFinish(queue)); - - // copy dst to host - float * d = (float *) ((char *) dst->data + i02*nb2 + i03*nb3); - CL_CHECK(clEnqueueReadBuffer(queue, d_D, true, 0, sizeof(float) * ne00*ne01, d, 0, NULL, NULL)); - } - } - ggml_cl_pool_free(d_X, x_size); - ggml_cl_pool_free(d_D, d_size); -} - -void ggml_cl_add(const struct ggml_tensor * src0, const struct ggml_tensor * src1, struct ggml_tensor * dst) { - GGML_ASSERT(src0->type == GGML_TYPE_F32 && src1->type == GGML_TYPE_F32 && dst->type == GGML_TYPE_F32); - ggml_cl_add_f32(src0, src1, dst); -} - -static void ggml_cl_mul_mat_f32(const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) { - const int64_t ne00 = src0->ne[0]; - const int64_t ne01 = src0->ne[1]; - const int64_t ne02 = src0->ne[2]; - const int64_t ne03 = src0->ne[3]; - - const int64_t ne10 = src1->ne[0]; - const int64_t ne11 = src1->ne[1]; - const int64_t ne12 = src1->ne[2]; - const int64_t ne13 = src1->ne[3]; - - const int nb2 = dst->nb[2]; - const int nb3 = dst->nb[3]; - - const int64_t r2 = ne12 / ne02; - const int64_t r3 = ne13 / ne03; - - const float alpha = 1.0f; - const float beta = 0.0f; - const int x_ne = ne01 * ne00; - const int y_ne = ne11 * ne10; - const int d_ne = ne11 * ne01; - - size_t x_size; - size_t y_size; - size_t d_size; - cl_mem d_X; - if (src0->backend == GGML_BACKEND_TYPE_GPU) { // NOLINT - d_X = (cl_mem) src0->extra; - } else { - d_X = ggml_cl_pool_malloc(sizeof(float) * x_ne, &x_size); - } - cl_mem d_Y = src1->backend == GGML_BACKEND_TYPE_GPU ? (cl_mem) src1->extra : ggml_cl_pool_malloc(sizeof(float) * y_ne, &y_size); - cl_mem d_D = dst->backend == GGML_BACKEND_TYPE_GPU ? (cl_mem) dst->extra : ggml_cl_pool_malloc(sizeof(float) * d_ne, &d_size); - - size_t x_offset = 0; - - for (int64_t i03 = 0; i03 < ne03; i03++) { - // TODO: copy src0 here when r3>1 - for (int64_t i13 = i03 * r3, e13 = i13 + r3; i13 < e13; i13++) { - for (int64_t i02 = 0; i02 < ne02; i02++) { - if (src0->backend == GGML_BACKEND_TYPE_GPU) { - x_offset = (i03 * ne02 + i02) * x_ne; - } else { - // copy src0 to device - CL_CHECK(ggml_cl_h2d_tensor_2d(queue, d_X, 0, src0, i03, i02, NULL)); - } - - for (int64_t i12 = i02 * r2, e12 = i12 + r2; i12 < e12; i12++) { - // copy src1 to device - if (src1->backend == GGML_BACKEND_TYPE_CPU) { - CL_CHECK(ggml_cl_h2d_tensor_2d(queue, d_Y, 0, src1, i13, i12, NULL)); - } - - CL_CHECK(clFinish(queue)); - - // compute - cl_event ev_sgemm; - clblast::StatusCode status = clblast::Gemm(clblast::Layout::kColMajor, - clblast::Transpose::kYes, clblast::Transpose::kNo, - ne01, ne11, ne10, - alpha, - d_X, x_offset, ne00, - d_Y, 0, ne10, - beta, - d_D, 0, ne01, - &queue, &ev_sgemm); - - if (status != clblast::StatusCode::kSuccess) { - GGML_ASSERT(false); - } - - // copy dst to host - if (dst->backend == GGML_BACKEND_TYPE_CPU) { - float * d = (float *) ((char *) dst->data + i12*nb2 + i13*nb3); - CL_CHECK(clEnqueueReadBuffer(queue, d_D, true, 0, sizeof(float) * d_ne, d, 1, &ev_sgemm, NULL)); - } - } - } - } - } - - if (src0->backend != GGML_BACKEND_TYPE_GPU) { - ggml_cl_pool_free(d_X, x_size); - } - if (src1->backend != GGML_BACKEND_TYPE_GPU) { - ggml_cl_pool_free(d_Y, y_size); - } - if (dst->backend != GGML_BACKEND_TYPE_GPU) { - ggml_cl_pool_free(d_D, d_size); - } -} - -static void ggml_cl_mul_mat_f16(const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst, void * wdata, size_t wsize) { - GGML_ASSERT(fp16_support); - - const int64_t ne00 = src0->ne[0]; - const int64_t ne01 = src0->ne[1]; - const int64_t ne02 = src0->ne[2]; - const int64_t ne03 = src0->ne[3]; - - const int64_t ne10 = src1->ne[0]; - const int64_t ne11 = src1->ne[1]; - const int64_t ne12 = src1->ne[2]; - const int64_t ne13 = src1->ne[3]; - - const int nb10 = src1->nb[0]; - const int nb11 = src1->nb[1]; - const int nb12 = src1->nb[2]; - const int nb13 = src1->nb[3]; - - const int nb2 = dst->nb[2]; - const int nb3 = dst->nb[3]; - - const int64_t r2 = ne12 / ne02; - const int64_t r3 = ne13 / ne03; - - const ggml_fp16_t alpha = ggml_fp32_to_fp16(1.0f); - const ggml_fp16_t beta = ggml_fp32_to_fp16(0.0f); - const int x_ne = ne01 * ne00; - const int y_ne = ne11 * ne10; - const int d_ne = ne11 * ne01; - - GGML_ASSERT(wsize >= sizeof(ggml_fp16_t) * y_ne); - GGML_ASSERT(wsize >= sizeof(ggml_fp16_t) * d_ne); - ggml_fp16_t * const tmp = (ggml_fp16_t *) wdata; - - size_t x_size; - size_t y_size; - size_t d_size; - cl_mem d_X; - if (src0->backend == GGML_BACKEND_TYPE_GPU) { // NOLINT - d_X = (cl_mem) src0->extra; - } else { - d_X = ggml_cl_pool_malloc(sizeof(ggml_fp16_t) * x_ne, &x_size); - } - cl_mem d_Y = ggml_cl_pool_malloc(sizeof(ggml_fp16_t) * y_ne, &y_size); - cl_mem d_D = ggml_cl_pool_malloc(sizeof(ggml_fp16_t) * d_ne, &d_size); - - bool src1_cont_rows = nb10 == sizeof(float); - bool src1_cont_cols = (size_t)nb11 == ne11*sizeof(float); - - size_t x_offset = 0; - - for (int64_t i03 = 0; i03 < ne03; i03++) { - // TODO: copy src0 here when r3>1 - for (int64_t i13 = i03 * r3, e13 = i13 + r3; i13 < e13; i13++) { - for (int64_t i02 = 0; i02 < ne02; i02++) { - if (src0->backend == GGML_BACKEND_TYPE_GPU) { - x_offset = (i03 * ne02 + i02) * x_ne; - } else { - // copy src0 to device - CL_CHECK(ggml_cl_h2d_tensor_2d(queue, d_X, 0, src0, i03, i02, NULL)); - } - - // FIXME: convert on device - - for (int64_t i12 = i02 * r2, e12 = i12 + r2; i12 < e12; i12++) { - // convert src1 to fp16 - // TODO: use multiple threads - char * src1i = (char *) src1->data + i13*nb13 + i12*nb12; - if (src1_cont_rows) { - if (src1_cont_cols) { - ggml_fp32_to_fp16_row((float *) src1i, tmp, ne10*ne11); - } - else { - for (int64_t i11 = 0; i11 < ne11; i11++) { - ggml_fp32_to_fp16_row((float *) (src1i + i11*nb11), tmp + i11*ne10, ne10); - } - } - } - else { - for (int64_t i11 = 0; i11 < ne11; i11++) { - for (int64_t i10 = 0; i10 < ne10; i10++) { - // very slow due to no inlining - tmp[i11*ne10 + i10] = ggml_fp32_to_fp16(*(float *) (src1i + i11*nb11 + i10*nb10)); - } - } - } - - // copy src1 to device - CL_CHECK(clEnqueueWriteBuffer(queue, d_Y, false, 0, sizeof(ggml_fp16_t) * y_ne, tmp, 0, NULL, NULL)); - - CL_CHECK(clFinish(queue)); - - // compute - cl_event ev_sgemm; - clblast::StatusCode status = clblast::Gemm(clblast::Layout::kColMajor, - clblast::Transpose::kYes, clblast::Transpose::kNo, - ne01, ne11, ne10, - alpha, - d_X, x_offset, ne00, - d_Y, 0, ne10, - beta, - d_D, 0, ne01, - &queue, &ev_sgemm); - - if (status != clblast::StatusCode::kSuccess) { - GGML_ASSERT(false); - } - - // copy dst to host, then convert to float - if (dst->backend == GGML_BACKEND_TYPE_CPU) { - CL_CHECK(clEnqueueReadBuffer(queue, d_D, true, 0, sizeof(ggml_fp16_t) * d_ne, tmp, 1, &ev_sgemm, NULL)); - float * d = (float *) ((char *) dst->data + i12*nb2 + i13*nb3); - ggml_fp16_to_fp32_row(tmp, d, d_ne); - } else { - // FIXME: convert dst to fp32 on device - } - } - } - } - } - - if (src0->backend != GGML_BACKEND_TYPE_GPU) { - ggml_cl_pool_free(d_X, x_size); - } - ggml_cl_pool_free(d_Y, y_size); - ggml_cl_pool_free(d_D, d_size); -} - -static void ggml_cl_mul_mat_q_f32(const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) { - const int64_t ne00 = src0->ne[0]; - const int64_t ne01 = src0->ne[1]; - const int64_t ne02 = src0->ne[2]; - const int64_t ne03 = src0->ne[3]; - - const int64_t ne10 = src1->ne[0]; - const int64_t ne11 = src1->ne[1]; - const int64_t ne12 = src1->ne[2]; - const int64_t ne13 = src1->ne[3]; - - const int nb2 = dst->nb[2]; - const int nb3 = dst->nb[3]; - const ggml_type type = src0->type; - const bool mul_mat_vec = ne11 == 1 && ne00%2 == 0; - - const int64_t r2 = ne12 / ne02; - const int64_t r3 = ne13 / ne03; - - const float alpha = 1.0f; - const float beta = 0.0f; - const int x_ne = ne01 * ne00; - const int y_ne = ne11 * ne10; - const int d_ne = ne11 * ne01; - const int x_bps = x_ne / ggml_blck_size(type); // blocks per 2D slice - const size_t q_sz = ggml_type_size(type) * x_bps; - - size_t x_size; - size_t y_size; - size_t d_size; - size_t q_size; - cl_mem d_X; - if (!mul_mat_vec) { - d_X = ggml_cl_pool_malloc(sizeof(float) * x_ne, &x_size); - } - cl_mem d_Y = ggml_cl_pool_malloc(sizeof(float) * y_ne, &y_size); - cl_mem d_D = ggml_cl_pool_malloc(sizeof(float) * d_ne, &d_size); - cl_mem d_Q; - if (src0->backend == GGML_BACKEND_TYPE_CPU) { - d_Q = ggml_cl_pool_malloc(q_sz, &q_size); - } - - cl_kernel* to_fp32_cl = ggml_get_to_fp32_cl(type); - cl_kernel* dmmv = ggml_get_dequantize_mul_mat_vec_cl(type); - GGML_ASSERT(to_fp32_cl != nullptr); - - const size_t global_denom = ggml_cl_global_denom(type); - const size_t local = mul_mat_vec ? CL_DMMV_LOCAL_SIZE : ggml_cl_local_size(type); - - size_t ev_idx = 0; - std::vector events; - - for (int64_t i03 = 0; i03 < ne03; i03++) { - // TODO: copy and dequantize src0 here when r3>1 - for (int64_t i13 = i03 * r3, e13 = i13 + r3; i13 < e13; i13++) { - for (int64_t i02 = 0; i02 < ne02; i02++) { - // copy src0 to device if necessary - if (src0->backend == GGML_BACKEND_TYPE_CPU) { - events.emplace_back(); - CL_CHECK(ggml_cl_h2d_tensor_2d(queue, d_Q, 0, src0, i03, i02, events.data() + ev_idx++)); - } else if (src0->backend == GGML_BACKEND_TYPE_GPU) { - d_Q = (cl_mem) src0->extra; - } else { - GGML_ASSERT(false); - } - - if (!mul_mat_vec) { - // convert src0 to fp32 on device - const size_t global = x_ne / global_denom; - const size_t offset = src0->backend == GGML_BACKEND_TYPE_GPU ? (i03 * ne02 + i02) * x_bps : 0; - CL_CHECK(clSetKernelArg(*to_fp32_cl, 0, sizeof(cl_mem), &d_Q)); - CL_CHECK(clSetKernelArg(*to_fp32_cl, 1, sizeof(cl_mem), &d_X)); - CL_CHECK(clEnqueueNDRangeKernel(queue, *to_fp32_cl, 1, &offset, &global, local > 0 ? &local : NULL, events.size(), !events.empty() ? events.data() : NULL, NULL)); - } - - int64_t i12 = i02 * r2; - int64_t e12 = i12 + r2; - events.reserve(e12 - i12); - for (; i12 < e12; i12++) { - if (mul_mat_vec) { // specialized dequantize_mul_mat_vec kernel - // copy src1 to device - events.emplace_back(); - CL_CHECK(ggml_cl_h2d_tensor_2d(queue, d_Y, 0, src1, i13, i12, events.data() + ev_idx++)); - - // compute - const size_t global = ne01 * local; - const size_t offset = src0->backend == GGML_BACKEND_TYPE_GPU ? (i03 * ne02 + i02) * x_bps : 0; - const cl_int ncols = ne00; - events.emplace_back(); - CL_CHECK(clSetKernelArg(*dmmv, 0, sizeof(cl_mem), &d_Q)); - CL_CHECK(clSetKernelArg(*dmmv, 1, sizeof(float) * local, NULL)); - CL_CHECK(clSetKernelArg(*dmmv, 2, sizeof(cl_mem), &d_Y)); - CL_CHECK(clSetKernelArg(*dmmv, 3, sizeof(cl_mem), &d_D)); - CL_CHECK(clSetKernelArg(*dmmv, 4, sizeof(cl_int), &ncols)); - CL_CHECK(clEnqueueNDRangeKernel(queue, *dmmv, 1, &offset, &global, &local, events.size() - 1, events.data(), events.data() + ev_idx++)); - } else { // CLBlast matrix matrix multiplication - // copy src1 to device - CL_CHECK(ggml_cl_h2d_tensor_2d(queue, d_Y, 0, src1, i13, i12, NULL)); - - // wait for conversion - CL_CHECK(clFinish(queue)); - - // compute - events.emplace_back(); - clblast::StatusCode status = clblast::Gemm(clblast::Layout::kColMajor, - clblast::Transpose::kYes, clblast::Transpose::kNo, - ne01, ne11, ne10, - alpha, - d_X, 0, ne00, - d_Y, 0, ne10, - beta, - d_D, 0, ne01, - &queue, events.data() + ev_idx++); - - if (status != clblast::StatusCode::kSuccess) { - GGML_ASSERT(false); - } - } - - // copy dst to host - float * d = (float *) ((char *) dst->data + i12*nb2 + i13*nb3); - CL_CHECK(clEnqueueReadBuffer(queue, d_D, true, 0, sizeof(float) * d_ne, d, 1, &events[events.size() - 1], NULL)); - for (auto *event : events) { - clReleaseEvent(event); - } - - ev_idx = 0; - events.clear(); - } - } - } - } - - if (!mul_mat_vec) { - ggml_cl_pool_free(d_X, x_size); - } - ggml_cl_pool_free(d_Y, y_size); - ggml_cl_pool_free(d_D, d_size); - if (src0->backend == GGML_BACKEND_TYPE_CPU) { - ggml_cl_pool_free(d_Q, q_size); - } -} - - -bool ggml_cl_can_mul_mat(const struct ggml_tensor * src0, const struct ggml_tensor * src1, const struct ggml_tensor * dst) { - const int64_t ne10 = src1->ne[0]; - - const int64_t ne0 = dst->ne[0]; - const int64_t ne1 = dst->ne[1]; - - // TODO: find the optimal values for these - if ((src0->type == GGML_TYPE_F32 || src0->type == GGML_TYPE_F16 || ggml_is_quantized(src0->type)) && - src1->type == GGML_TYPE_F32 && - dst->type == GGML_TYPE_F32 && - ((ne0 >= 32 && ne1 >= 32 && ne10 >= 32) || src0->backend == GGML_BACKEND_TYPE_GPU)) { - return true; - } - - return false; -} - -static bool ggml_cl_mul_mat_use_f16(const struct ggml_tensor * src0, const struct ggml_tensor * src1, struct ggml_tensor * /* dst */) { - // If device doesn't support FP16 - if (!fp16_support) { - return false; - } - - size_t src0_sz = ggml_nbytes(src0); - size_t src1_sz = ggml_nbytes(src1); - - // mul_mat_q: src0 is converted to fp32 on device - size_t mul_mat_q_transfer = src0_sz + src1_sz; - - // mul_mat_f16: src1 is converted to fp16 on cpu - size_t mul_mat_f16_transfer = src0_sz + sizeof(ggml_fp16_t) * ggml_nelements(src1); - - // choose the smaller one to transfer to the device - // TODO: this is not always the best choice due to the overhead of converting to fp16 - return mul_mat_f16_transfer < mul_mat_q_transfer; -} - -void ggml_cl_mul_mat(const struct ggml_tensor * src0, const struct ggml_tensor * src1, struct ggml_tensor * dst, void * wdata, size_t wsize) { - GGML_ASSERT(ggml_cl_can_mul_mat(src0, src1, dst)); - - if (src0->type == GGML_TYPE_F32) { - ggml_cl_mul_mat_f32(src0, src1, dst); - } - else if (src0->type == GGML_TYPE_F16) { - if (ggml_cl_mul_mat_use_f16(src0, src1, dst)) { - ggml_cl_mul_mat_f16(src0, src1, dst, wdata, wsize); - } - else { - ggml_cl_mul_mat_q_f32(src0, src1, dst); - } - } - else if (ggml_is_quantized(src0->type)) { - ggml_cl_mul_mat_q_f32(src0, src1, dst); - } - else { - GGML_ASSERT(false); - } -} - -size_t ggml_cl_mul_mat_get_wsize(const struct ggml_tensor * src0, const struct ggml_tensor * src1, struct ggml_tensor * dst) { - if (src0->type == GGML_TYPE_F16 && ggml_cl_mul_mat_use_f16(src0, src1, dst)) { - return sizeof(ggml_fp16_t) * std::max(src1->ne[0] * src1->ne[1], dst->ne[0] * dst->ne[1]); - } - return 0; -} - -void ggml_cl_transform_tensor(void * data, ggml_tensor * tensor) { - const int64_t ne0 = tensor->ne[0]; - const int64_t ne1 = tensor->ne[1]; - const int64_t ne2 = tensor->ne[2]; - const int64_t ne3 = tensor->ne[3]; - - const ggml_type type = tensor->type; - const size_t s_sz = ggml_type_size(type) * (size_t) (ne0 * ne1 / ggml_blck_size(type)); - const size_t q_sz = s_sz * (size_t) (ne2 * ne3); - - size_t q_size; - cl_mem dst = ggml_cl_pool_malloc(q_sz, &q_size); - - tensor->data = data; - // copy tensor to device - size_t offset = 0; - for (int64_t i3 = 0; i3 < ne3; i3++) { - for (int64_t i2 = 0; i2 < ne2; i2++) { - CL_CHECK(ggml_cl_h2d_tensor_2d(queue, dst, offset, tensor, i3, i2, NULL)); - offset += s_sz; - } - } - - CL_CHECK(clFinish(queue)); - - tensor->extra = dst; - GGML_ASSERT(tensor->backend == GGML_BACKEND_TYPE_GPU); -} - -// ggml-backend - -// buffer - -struct ggml_backend_opencl_buffer_context { - ~ggml_backend_opencl_buffer_context() { - if (buffer) { - clReleaseMemObject(buffer); - } - for (auto * sub_buffer : sub_buffers) { - clReleaseMemObject(sub_buffer); - } - } - - cl_mem buffer; - std::vector sub_buffers; -}; - -static void * const cl_ptr_base = (void *)(uintptr_t) 0x1000; - -static const char * ggml_backend_opencl_buffer_get_name(ggml_backend_buffer_t buffer) { - return "OpenCL"; - - GGML_UNUSED(buffer); -} - -static void ggml_backend_opencl_buffer_free_buffer(ggml_backend_buffer_t buffer) { - ggml_backend_opencl_buffer_context * ctx = (ggml_backend_opencl_buffer_context *) buffer->context; - delete ctx; -} - -static void * ggml_backend_opencl_buffer_get_base(ggml_backend_buffer_t buffer) { - return cl_ptr_base; - - GGML_UNUSED(buffer); -} - -static void ggml_backend_opencl_buffer_init_tensor(ggml_backend_buffer_t buffer, ggml_tensor * tensor) { - if (tensor->view_src != NULL && tensor->view_offs == 0) { - tensor->extra = tensor->view_src->extra; - } else { - ggml_backend_opencl_buffer_context * ctx = (ggml_backend_opencl_buffer_context *) buffer->context; - cl_buffer_region region = {(size_t)((char *)tensor->data - (char *)cl_ptr_base), ggml_nbytes(tensor)}; - cl_int err; - cl_mem sub_buffer = clCreateSubBuffer(ctx->buffer, CL_MEM_READ_WRITE, CL_BUFFER_CREATE_TYPE_REGION, ®ion, &err); - CL_CHECK(err); - ctx->sub_buffers.push_back(sub_buffer); - tensor->extra = sub_buffer; - } - tensor->backend = GGML_BACKEND_TYPE_GPU; -} - -static void ggml_backend_opencl_buffer_set_tensor(ggml_backend_buffer_t buffer, ggml_tensor * tensor, const void * data, size_t offset, size_t size) { - cl_mem tensor_buffer = (cl_mem) tensor->extra; - CL_CHECK(clEnqueueWriteBuffer(queue, tensor_buffer, true, offset, size, data, 0, NULL, NULL)); - CL_CHECK(clFinish(queue)); - - GGML_UNUSED(buffer); -} - -static void ggml_backend_opencl_buffer_get_tensor(ggml_backend_buffer_t buffer, const ggml_tensor * tensor, void * data, size_t offset, size_t size) { - cl_mem tensor_buffer = (cl_mem) tensor->extra; - CL_CHECK(clEnqueueReadBuffer(queue, tensor_buffer, true, offset, size, data, 0, NULL, NULL)); - CL_CHECK(clFinish(queue)); - - GGML_UNUSED(buffer); -} - -static void ggml_backend_opencl_buffer_clear(ggml_backend_buffer_t buffer, uint8_t value) { - ggml_backend_opencl_buffer_context * ctx = (ggml_backend_opencl_buffer_context *) buffer->context; - CL_CHECK(clEnqueueFillBuffer(queue, ctx->buffer, &value, sizeof(value), 0, buffer->size, 0, NULL, NULL)); - CL_CHECK(clFinish(queue)); -} - -static void ggml_backend_opencl_buffer_reset(ggml_backend_buffer_t buffer) { - ggml_backend_opencl_buffer_context * ctx = (ggml_backend_opencl_buffer_context *) buffer->context; - for (auto * sub_buffer : ctx->sub_buffers) { - clReleaseMemObject(sub_buffer); - } - ctx->sub_buffers.clear(); -} - -static ggml_backend_buffer_i ggml_backend_opencl_buffer_interface = { - /* .get_name = */ ggml_backend_opencl_buffer_get_name, - /* .free_buffer = */ ggml_backend_opencl_buffer_free_buffer, - /* .get_base = */ ggml_backend_opencl_buffer_get_base, - /* .init_tensor = */ ggml_backend_opencl_buffer_init_tensor, - /* .set_tensor = */ ggml_backend_opencl_buffer_set_tensor, - /* .get_tensor = */ ggml_backend_opencl_buffer_get_tensor, - /* .cpy_tensor = */ NULL, - /* .clear = */ ggml_backend_opencl_buffer_clear, - /* .reset = */ ggml_backend_opencl_buffer_reset, -}; - -// buffer type - -static const char * ggml_backend_opencl_buffer_type_name(ggml_backend_buffer_type_t buffer_type) { - return "OpenCL"; - - GGML_UNUSED(buffer_type); -} - -static ggml_backend_buffer_t ggml_backend_opencl_buffer_type_alloc_buffer(ggml_backend_buffer_type_t buffer_type, size_t size) { - ggml_cl_init(); - - cl_int err; - cl_mem mem = clCreateBuffer(context, CL_MEM_READ_WRITE, size, NULL, &err); - if (err != CL_SUCCESS) { - fprintf(stderr, "%s: failed to allocate %.2f MiB\n", __func__, size / 1024.0 / 1024.0); - return nullptr; - } - - ggml_backend_opencl_buffer_context * ctx = new ggml_backend_opencl_buffer_context{mem, {}}; - - return ggml_backend_buffer_init(buffer_type, ggml_backend_opencl_buffer_interface, ctx, size); -} - -static size_t ggml_backend_opencl_buffer_type_get_alignment(ggml_backend_buffer_type_t buffer_type) { - // FIXME: not thread safe, device may not be initialized yet - static cl_uint alignment = -1; - if (alignment == (cl_uint)-1) { - ggml_cl_init(); - clGetDeviceInfo(device, CL_DEVICE_MEM_BASE_ADDR_ALIGN, sizeof(cl_uint), &alignment, NULL); - alignment /= 8; // bits to bytes - } - return alignment; - - GGML_UNUSED(buffer_type); -} - -static size_t ggml_backend_opencl_buffer_type_get_max_size(ggml_backend_buffer_type_t buffer_type) { - static size_t max_size = -1; - if (max_size == (size_t)-1) { - ggml_cl_init(); - clGetDeviceInfo(device, CL_DEVICE_MAX_MEM_ALLOC_SIZE, sizeof(size_t), &max_size, NULL); - } - return max_size; -} - -static bool ggml_backend_opencl_buffer_type_supports_backend(ggml_backend_buffer_type_t buffer_type, ggml_backend_t backend) { - //return ggml_backend_is_opencl(backend); // opencl must be used through the cpu backend - return ggml_backend_is_cpu(backend); - - GGML_UNUSED(buffer_type); -} - -static ggml_backend_buffer_type_i ggml_backend_opencl_buffer_type_interface = { - /* .get_name = */ ggml_backend_opencl_buffer_type_name, - /* .alloc_buffer = */ ggml_backend_opencl_buffer_type_alloc_buffer, - /* .get_alignment = */ ggml_backend_opencl_buffer_type_get_alignment, - /* .get_max_size = */ ggml_backend_opencl_buffer_type_get_max_size, - /* .get_alloc_size = */ NULL, - /* .supports_backend = */ ggml_backend_opencl_buffer_type_supports_backend, - /* .is_host = */ NULL, -}; - - -ggml_backend_buffer_type_t ggml_backend_opencl_buffer_type() { - static ggml_backend_buffer_type buffer_type = { - /* .iface = */ ggml_backend_opencl_buffer_type_interface, - /* .context = */ nullptr, - }; - - return &buffer_type; -} - -#if 0 -// host buffer type - -static const char * ggml_backend_opencl_host_buffer_type_name(ggml_backend_buffer_type_t buft) { - return "CL_Host"; - - GGML_UNUSED(buft); -} - -static const char * ggml_backend_opencl_host_buffer_name(ggml_backend_buffer_t buffer) { - return "CL_Host"; - - GGML_UNUSED(buffer); -} - -static void ggml_backend_opencl_host_buffer_free_buffer(ggml_backend_buffer_t buffer) { - ggml_cl_host_free(buffer->context); -} - -static ggml_backend_buffer_t ggml_backend_opencl_host_buffer_type_alloc_buffer(ggml_backend_buffer_type_t buft, size_t size) { - void * ptr = ggml_cl_host_malloc(size); - - if (ptr == nullptr) { - // fallback to cpu buffer - return ggml_backend_buft_alloc_buffer(ggml_backend_cpu_buffer_type(), size); - } - - ggml_backend_buffer_t buffer = ggml_backend_cpu_buffer_from_ptr(ptr, size); - buffer->buft = buft; - buffer->iface.get_name = ggml_backend_opencl_host_buffer_name; - buffer->iface.free_buffer = ggml_backend_opencl_host_buffer_free_buffer; - - return buffer; -} - -ggml_backend_buffer_type_t ggml_backend_opencl_host_buffer_type() { - static struct ggml_backend_buffer_type ggml_backend_opencl_buffer_type_host = { - /* .iface = */ { - /* .get_name = */ ggml_backend_opencl_host_buffer_type_name, - /* .alloc_buffer = */ ggml_backend_opencl_host_buffer_type_alloc_buffer, - /* .get_alignment = */ ggml_backend_cpu_buffer_type()->iface.get_alignment, - /* .get_max_size = */ NULL, // defaults to SIZE_MAX - /* .get_alloc_size = */ ggml_backend_cpu_buffer_type()->iface.get_alloc_size, - /* .supports_backend = */ ggml_backend_cpu_buffer_type()->iface.supports_backend, - /* .is_host = */ ggml_backend_cpu_buffer_type()->iface.is_host, - }, - /* .context = */ nullptr, - }; - - return &ggml_backend_opencl_buffer_type_host; -} - -// backend - -static const char * ggml_backend_opencl_name(ggml_backend_t backend) { - return "OpenCL"; - - GGML_UNUSED(backend); -} - -static void ggml_backend_opencl_free(ggml_backend_t backend) { - GGML_UNUSED(backend); -} - -static ggml_backend_buffer_type_t ggml_backend_opencl_get_default_buffer_type(ggml_backend_t backend) { - return ggml_backend_opencl_buffer_type(); - - GGML_UNUSED(backend); -} - -static ggml_status ggml_backend_opencl_graph_compute(ggml_backend_t backend, ggml_cgraph * graph) { - for (int i = 0; i < graph->n_nodes; ++i) { - ggml_tensor * node = graph->nodes[i]; - - if (ggml_is_empty(node)) { - continue; - } - - switch (node->op) { - case GGML_OP_MUL_MAT: - ggml_cl_mul_mat(node->src[0], node->src[1], node, nullptr, 0); - break; - case GGML_OP_MUL: - ggml_cl_mul(node->src[0], node->src[1], node); - break; - default: - GGML_ASSERT(false); - } - } - - return GGML_STATUS_SUCCESS; - - GGML_UNUSED(backend); -} - -static bool ggml_backend_opencl_supports_op(ggml_backend_t backend, const ggml_tensor * op) { - switch (op->op) { - case GGML_OP_MUL_MAT: - return ggml_cl_can_mul_mat(op->src[0], op->src[1], op); - case GGML_OP_MUL: - // return ggml_can_repeat_rows(op->src[1], op->src[0]); - return true; - default: - return false; - } - - GGML_UNUSED(backend); -} - -static ggml_backend_i opencl_backend_i = { - /* .get_name = */ ggml_backend_opencl_name, - /* .free = */ ggml_backend_opencl_free, - /* .get_default_buffer_type = */ ggml_backend_opencl_get_default_buffer_type, - /* .set_tensor_async = */ NULL, - /* .get_tensor_async = */ NULL, - /* .cpy_tensor_from_async = */ NULL, - /* .cpy_tensor_to_async = */ NULL, - /* .synchronize = */ NULL, - /* .graph_plan_create = */ NULL, - /* .graph_plan_free = */ NULL, - /* .graph_plan_compute = */ NULL, - /* .graph_compute = */ ggml_backend_opencl_graph_compute, - /* .supports_op = */ ggml_backend_opencl_supports_op, -}; - -ggml_backend_t ggml_backend_opencl_init() { - ggml_backend_t backend = new ggml_backend { - /* .interface = */ opencl_backend_i, - /* .context = */ nullptr - }; - - return backend; -} - -bool ggml_backend_is_opencl(ggml_backend_t backend) { - return backend && backend->iface.get_name == ggml_backend_opencl_name; -} -#endif diff --git a/ggml-opencl.h b/ggml-opencl.h deleted file mode 100644 index 257a6be6af5ec..0000000000000 --- a/ggml-opencl.h +++ /dev/null @@ -1,36 +0,0 @@ -#pragma once - -#include "ggml.h" -#include "ggml-backend.h" - -#ifdef __cplusplus -extern "C" { -#endif - -GGML_API void ggml_cl_init(void); - -GGML_API void ggml_cl_mul(const struct ggml_tensor * src0, const struct ggml_tensor * src1, struct ggml_tensor * dst); -GGML_API void ggml_cl_add(const struct ggml_tensor * src0, const struct ggml_tensor * src1, struct ggml_tensor * dst); -GGML_API bool ggml_cl_can_mul_mat(const struct ggml_tensor * src0, const struct ggml_tensor * src1, const struct ggml_tensor * dst); -GGML_API size_t ggml_cl_mul_mat_get_wsize(const struct ggml_tensor * src0, const struct ggml_tensor * src1, struct ggml_tensor * dst); -GGML_API void ggml_cl_mul_mat(const struct ggml_tensor * src0, const struct ggml_tensor * src1, struct ggml_tensor * dst, void * wdata, size_t wsize); - -// GGML_API void * ggml_cl_host_malloc(size_t size); -// GGML_API void ggml_cl_host_free(void * ptr); - -GGML_API void ggml_cl_free_data(const struct ggml_tensor* tensor); - -GGML_API void ggml_cl_transform_tensor(void * data, struct ggml_tensor * tensor); - -// backend API - -// GGML_API ggml_backend_t ggml_backend_opencl_init(void); - -// GGML_API bool ggml_backend_is_opencl(ggml_backend_t backend); - -GGML_API ggml_backend_buffer_type_t ggml_backend_opencl_buffer_type(void); -// GGML_API ggml_backend_buffer_type_t ggml_backend_opencl_host_buffer_type(void); - -#ifdef __cplusplus -} -#endif diff --git a/ggml.c b/ggml.c index 8869e146ab2b8..11e5c34ab56ad 100644 --- a/ggml.c +++ b/ggml.c @@ -297,17 +297,12 @@ inline static void * ggml_calloc(size_t num, size_t size) { #if defined(GGML_USE_ACCELERATE) #include -#if defined(GGML_USE_CLBLAST) // allow usage of CLBlast alongside Accelerate functions -#include "ggml-opencl.h" -#endif #elif defined(GGML_USE_OPENBLAS) #if defined(GGML_BLAS_USE_MKL) #include #else #include #endif -#elif defined(GGML_USE_CLBLAST) -#include "ggml-opencl.h" #endif // floating point type used to accumulate sums @@ -3380,10 +3375,6 @@ struct ggml_context * ggml_init(struct ggml_init_params params) { GGML_PRINT_DEBUG("%s: g_state initialized in %f ms\n", __func__, (t_end - t_start)/1000.0f); } -#if defined(GGML_USE_CLBLAST) - ggml_cl_init(); -#endif - ggml_setup_op_has_task_pass(); is_first_call = false; @@ -9053,17 +9044,6 @@ static void ggml_compute_forward_add_f32( const int ith = params->ith; const int nth = params->nth; -#ifdef GGML_USE_CLBLAST - if (src1->backend == GGML_BACKEND_TYPE_GPU) { - // TODO: OpenCL kernel support full broadcast - GGML_ASSERT(ggml_can_repeat_rows(src1, src0)); - if (ith == 0) { - ggml_cl_add(src0, src1, dst); - } - return; - } -#endif - const int nr = ggml_nrows(src0); GGML_TENSOR_BINARY_OP_LOCALS @@ -10171,17 +10151,6 @@ static void ggml_compute_forward_mul_f32( const int ith = params->ith; const int nth = params->nth; -#if defined(GGML_USE_CLBLAST) - if (src1->backend == GGML_BACKEND_TYPE_GPU) { - // TODO: OpenCL kernel support full broadcast - GGML_ASSERT(ggml_can_repeat_rows(src1, src0)); - if (ith == 0) { - ggml_cl_mul(src0, src1, dst); - } - return; - } -#endif - const int64_t nr = ggml_nrows(src0); GGML_TENSOR_BINARY_OP_LOCALS @@ -12417,15 +12386,6 @@ static void ggml_compute_forward_mul_mat( // nb01 >= nb00 - src0 is not transposed // compute by src0 rows -#if defined(GGML_USE_CLBLAST) - if (ggml_cl_can_mul_mat(src0, src1, dst)) { - if (params->ith == 0 && params->type == GGML_TASK_TYPE_COMPUTE) { - ggml_cl_mul_mat(src0, src1, dst, params->wdata, params->wsize); - } - return; - } -#endif - #if defined(GGML_USE_ACCELERATE) || defined(GGML_USE_OPENBLAS) if (ggml_compute_forward_mul_mat_use_blas(dst)) { const int64_t ne_plane = ne01*ne00; @@ -12873,8 +12833,6 @@ static void ggml_compute_forward_out_prod_f32( // nb01 >= nb00 - src0 is not transposed // compute by src0 rows - // TODO: #if defined(GGML_USE_CLBLAST) - #if defined(GGML_USE_ACCELERATE) || defined(GGML_USE_OPENBLAS) bool use_blas = ggml_is_matrix(src0) && ggml_is_matrix(src1) && @@ -13072,7 +13030,7 @@ static void ggml_compute_forward_out_prod_q_f32( // nb01 >= nb00 - src0 is not transposed // compute by src0 rows - // TODO: #if defined(GGML_USE_ACCELERATE) || defined(GGML_USE_OPENBLAS) || defined(GGML_USE_CLBLAST) + // TODO: #if defined(GGML_USE_ACCELERATE) || defined(GGML_USE_OPENBLAS) if (params->type == GGML_TASK_TYPE_INIT) { if (ith != 0) { @@ -19546,11 +19504,6 @@ struct ggml_cplan ggml_graph_plan(const struct ggml_cgraph * cgraph, int n_threa { const enum ggml_type vec_dot_type = type_traits[node->src[0]->type].vec_dot_type; -#if defined(GGML_USE_CLBLAST) - if (ggml_cl_can_mul_mat(node->src[0], node->src[1], node)) { - cur = ggml_cl_mul_mat_get_wsize(node->src[0], node->src[1], node); - } else -#endif #if defined(GGML_USE_ACCELERATE) || defined(GGML_USE_OPENBLAS) if (ggml_compute_forward_mul_mat_use_blas(node)) { if (node->src[0]->type != GGML_TYPE_F32) { @@ -22859,7 +22812,7 @@ int ggml_cpu_has_wasm_simd(void) { } int ggml_cpu_has_blas(void) { -#if defined(GGML_USE_ACCELERATE) || defined(GGML_USE_OPENBLAS) || defined(GGML_USE_CUDA) || defined(GGML_USE_VULKAN) || defined(GGML_USE_CLBLAST) || defined(GGML_USE_SYCL) +#if defined(GGML_USE_ACCELERATE) || defined(GGML_USE_OPENBLAS) || defined(GGML_USE_CUDA) || defined(GGML_USE_VULKAN) || defined(GGML_USE_SYCL) return 1; #else return 0; @@ -22874,14 +22827,6 @@ int ggml_cpu_has_cuda(void) { #endif } -int ggml_cpu_has_clblast(void) { -#if defined(GGML_USE_CLBLAST) - return 1; -#else - return 0; -#endif -} - int ggml_cpu_has_vulkan(void) { #if defined(GGML_USE_VULKAN) return 1; @@ -22915,8 +22860,7 @@ int ggml_cpu_has_rpc(void) { } int ggml_cpu_has_gpublas(void) { - return ggml_cpu_has_cuda() || ggml_cpu_has_clblast() || ggml_cpu_has_vulkan() || ggml_cpu_has_kompute() || - ggml_cpu_has_sycl(); + return ggml_cpu_has_cuda() || ggml_cpu_has_vulkan() || ggml_cpu_has_kompute() || ggml_cpu_has_sycl(); } int ggml_cpu_has_sse3(void) { diff --git a/ggml.h b/ggml.h index f38699698b1e9..addcf1bfef673 100644 --- a/ggml.h +++ b/ggml.h @@ -2425,7 +2425,6 @@ extern "C" { GGML_API int ggml_cpu_has_wasm_simd (void); GGML_API int ggml_cpu_has_blas (void); GGML_API int ggml_cpu_has_cuda (void); - GGML_API int ggml_cpu_has_clblast (void); GGML_API int ggml_cpu_has_vulkan (void); GGML_API int ggml_cpu_has_kompute (void); GGML_API int ggml_cpu_has_gpublas (void); diff --git a/llama.cpp b/llama.cpp index 92c33f53e03ad..c05e2bdb7ae44 100644 --- a/llama.cpp +++ b/llama.cpp @@ -13,8 +13,6 @@ #ifdef GGML_USE_CUDA # include "ggml-cuda.h" -#elif defined(GGML_USE_CLBLAST) -# include "ggml-opencl.h" #elif defined(GGML_USE_VULKAN) # include "ggml-vulkan.h" #elif defined(GGML_USE_SYCL) @@ -2406,8 +2404,6 @@ static ggml_backend_buffer_type_t llama_default_buffer_type_offload(const llama_ buft = ggml_backend_vk_buffer_type(gpu); #elif defined(GGML_USE_SYCL) buft = ggml_backend_sycl_buffer_type(gpu); -#elif defined(GGML_USE_CLBLAST) - buft = ggml_backend_opencl_buffer_type(); #elif defined(GGML_USE_KOMPUTE) buft = ggml_backend_kompute_buffer_type(gpu); if (buft == nullptr) { @@ -2530,10 +2526,6 @@ static bool llama_kv_cache_init( } } -#ifdef GGML_USE_CLBLAST - offload = false; -#endif - // count used buffer types std::map buft_layer_count; if (offload) { @@ -15921,7 +15913,7 @@ bool llama_supports_mlock(void) { } bool llama_supports_gpu_offload(void) { -#if defined(GGML_USE_CUDA) || defined(GGML_USE_CLBLAST) || defined(GGML_USE_METAL) || defined(GGML_USE_VULKAN) || \ +#if defined(GGML_USE_CUDA) || defined(GGML_USE_METAL) || defined(GGML_USE_VULKAN) || \ defined(GGML_USE_SYCL) || defined(GGML_USE_KOMPUTE) || defined(GGML_USE_RPC) // Defined when llama.cpp is compiled with support for offloading model layers to GPU. return true; diff --git a/scripts/LlamaConfig.cmake.in b/scripts/LlamaConfig.cmake.in index 92e39708b7cf2..9311055d925d4 100644 --- a/scripts/LlamaConfig.cmake.in +++ b/scripts/LlamaConfig.cmake.in @@ -5,7 +5,6 @@ set(LLAMA_SHARED_LIB @BUILD_SHARED_LIBS@) set(LLAMA_BLAS @LLAMA_BLAS@) set(LLAMA_CUDA @LLAMA_CUDA@) set(LLAMA_METAL @LLAMA_METAL@) -set(LLAMA_CLBLAST @LLAMA_CLBLAST@) set(LLAMA_HIPBLAS @LLAMA_HIPBLAS@) set(LLAMA_ACCELERATE @LLAMA_ACCELERATE@) @@ -36,10 +35,6 @@ if (LLAMA_METAL) find_library(METALKIT_FRAMEWORK MetalKit REQUIRED) endif() -if (LLAMA_CLBLAST) - find_package(CLBlast REQUIRED) -endif() - if (LLAMA_HIPBLAS) find_package(hip REQUIRED) find_package(hipblas REQUIRED) diff --git a/scripts/compare-llama-bench.py b/scripts/compare-llama-bench.py index 6016eb2c08f80..513dde5e13f93 100755 --- a/scripts/compare-llama-bench.py +++ b/scripts/compare-llama-bench.py @@ -19,17 +19,17 @@ # Properties by which to differentiate results per commit: KEY_PROPERTIES = [ - "cpu_info", "gpu_info", "n_gpu_layers", "cuda", "opencl", "vulkan", "kompute", "metal", "sycl", "rpc", "gpu_blas", + "cpu_info", "gpu_info", "n_gpu_layers", "cuda", "vulkan", "kompute", "metal", "sycl", "rpc", "gpu_blas", "blas", "model_filename", "model_type", "model_size", "model_n_params", "n_batch", "n_ubatch", "embeddings", "n_threads", "type_k", "type_v", "use_mmap", "no_kv_offload", "split_mode", "main_gpu", "tensor_split", "flash_attn", "n_prompt", "n_gen" ] # Properties that are boolean and are converted to Yes/No for the table: -BOOL_PROPERTIES = ["cuda", "opencl", "vulkan", "kompute", "metal", "sycl", "gpu_blas", "blas", "embeddings", "use_mmap", "no_kv_offload", "flash_attn"] +BOOL_PROPERTIES = ["cuda", "vulkan", "kompute", "metal", "sycl", "gpu_blas", "blas", "embeddings", "use_mmap", "no_kv_offload", "flash_attn"] # Header names for the table: PRETTY_NAMES = { - "cuda": "CUDA", "opencl": "OpenCL", "vulkan": "Vulkan", "kompute": "Kompute", "metal": "Metal", "sycl": "SYCL", "rpc": "RPC", + "cuda": "CUDA", "vulkan": "Vulkan", "kompute": "Kompute", "metal": "Metal", "sycl": "SYCL", "rpc": "RPC", "gpu_blas": "GPU BLAS", "blas": "BLAS", "cpu_info": "CPU", "gpu_info": "GPU", "model_filename": "File", "model_type": "Model", "model_size": "Model Size [GiB]", "model_n_params": "Num. of Par.", "n_batch": "Batch size", "n_ubatch": "Microbatch size", "n_threads": "Threads", "type_k": "K type", "type_v": "V type", "n_gpu_layers": "GPU layers", "split_mode": "Split mode", diff --git a/scripts/server-llm.sh b/scripts/server-llm.sh index eb6ce458e5399..b3715e204b691 100644 --- a/scripts/server-llm.sh +++ b/scripts/server-llm.sh @@ -3,7 +3,7 @@ # Helper script for deploying llama.cpp server with a single Bash command # # - Works on Linux and macOS -# - Supports: CPU, CUDA, Metal, OpenCL +# - Supports: CPU, CUDA, Metal # - Can run all GGUF models from HuggingFace # - Can serve requests in parallel # - Always builds latest llama.cpp from GitHub @@ -19,7 +19,7 @@ # --port: port number, default is 8888 # --repo: path to a repo containing GGUF model files # --wtype: weights type (f16, q8_0, q4_0, q4_1), default is user-input -# --backend: cpu, cuda, metal, opencl, depends on the OS +# --backend: cpu, cuda, metal, depends on the OS # --gpu-id: gpu id, default is 0 # --n-parallel: number of parallel requests, default is 8 # --n-kv: KV cache size, default is 4096 @@ -72,7 +72,7 @@ function print_usage { printf " --port: port number, default is 8888\n" printf " --repo: path to a repo containing GGUF model files\n" printf " --wtype: weights type (f16, q8_0, q4_0, q4_1), default is user-input\n" - printf " --backend: cpu, cuda, metal, opencl, depends on the OS\n" + printf " --backend: cpu, cuda, metal, depends on the OS\n" printf " --gpu-id: gpu id, default is 0\n" printf " --n-parallel: number of parallel requests, default is 8\n" printf " --n-kv: KV cache size, default is 4096\n" @@ -387,9 +387,6 @@ elif [[ "$backend" == "cpu" ]]; then elif [[ "$backend" == "metal" ]]; then printf "[+] Building with Metal backend\n" make -j server $log -elif [[ "$backend" == "opencl" ]]; then - printf "[+] Building with OpenCL backend\n" - LLAMA_CLBLAST=1 make -j server $log else printf "[-] Unknown backend: %s\n" "$backend" exit 1 @@ -407,8 +404,6 @@ elif [[ "$backend" == "cpu" ]]; then args="-ngl 0" elif [[ "$backend" == "metal" ]]; then args="-ngl 999" -elif [[ "$backend" == "opencl" ]]; then - args="-ngl 999" else printf "[-] Unknown backend: %s\n" "$backend" exit 1 diff --git a/scripts/sync-ggml-am.sh b/scripts/sync-ggml-am.sh index 3f8ddf37ba4a7..9e34dc8b9a590 100755 --- a/scripts/sync-ggml-am.sh +++ b/scripts/sync-ggml-am.sh @@ -106,8 +106,6 @@ if [ -f $SRC_LLAMA/ggml-src.patch ]; then # src/ggml-kompute.h -> ggml-kompute.h # src/ggml-metal.h -> ggml-metal.h # src/ggml-metal.m -> ggml-metal.m - # src/ggml-opencl.cpp -> ggml-opencl.cpp - # src/ggml-opencl.h -> ggml-opencl.h # src/ggml-quants.c -> ggml-quants.c # src/ggml-quants.h -> ggml-quants.h # src/ggml-rpc.cpp -> ggml-rpc.cpp @@ -143,8 +141,6 @@ if [ -f $SRC_LLAMA/ggml-src.patch ]; then -e 's/src\/ggml-kompute\.h/ggml-kompute.h/g' \ -e 's/src\/ggml-metal\.h/ggml-metal.h/g' \ -e 's/src\/ggml-metal\.m/ggml-metal.m/g' \ - -e 's/src\/ggml-opencl\.cpp/ggml-opencl.cpp/g' \ - -e 's/src\/ggml-opencl\.h/ggml-opencl.h/g' \ -e 's/src\/ggml-quants\.c/ggml-quants.c/g' \ -e 's/src\/ggml-quants\.h/ggml-quants.h/g' \ -e 's/src\/ggml-rpc\.cpp/ggml-rpc.cpp/g' \ diff --git a/scripts/sync-ggml.sh b/scripts/sync-ggml.sh index fbae6b7f8e3e4..4843f8a4ae05e 100755 --- a/scripts/sync-ggml.sh +++ b/scripts/sync-ggml.sh @@ -14,8 +14,6 @@ cp -rpv ../ggml/src/ggml-kompute.h ./ggml-kompute.h cp -rpv ../ggml/src/ggml-metal.h ./ggml-metal.h cp -rpv ../ggml/src/ggml-metal.m ./ggml-metal.m cp -rpv ../ggml/src/ggml-metal.metal ./ggml-metal.metal -cp -rpv ../ggml/src/ggml-opencl.cpp ./ggml-opencl.cpp -cp -rpv ../ggml/src/ggml-opencl.h ./ggml-opencl.h cp -rpv ../ggml/src/ggml-quants.c ./ggml-quants.c cp -rpv ../ggml/src/ggml-quants.h ./ggml-quants.h cp -rpv ../ggml/src/ggml-rpc.cpp ./ggml-rpc.cpp From 1442677f92e45a475be7b4d056e3633d1d6f813b Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Tue, 4 Jun 2024 21:23:39 +0300 Subject: [PATCH 009/131] common : refactor cli arg parsing (#7675) * common : gpt_params_parse do not print usage * common : rework usage print (wip) * common : valign * common : rework print_usage * infill : remove cfg support * common : reorder args * server : deduplicate parameters ggml-ci * common : add missing header ggml-ci * common : remote --random-prompt usages ggml-ci * examples : migrate to gpt_params ggml-ci * batched-bench : migrate to gpt_params * retrieval : migrate to gpt_params * common : change defaults for escape and n_ctx * common : remove chatml and instruct params ggml-ci * common : passkey use gpt_params --- common/common.cpp | 823 +++++++++++++------ common/common.h | 105 ++- examples/batched-bench/README.md | 8 +- examples/batched-bench/batched-bench.cpp | 92 +-- examples/batched/README.md | 2 +- examples/batched/batched.cpp | 73 +- examples/embedding/embedding.cpp | 4 +- examples/eval-callback/eval-callback.cpp | 6 +- examples/gguf-split/tests.sh | 10 +- examples/gritlm/gritlm.cpp | 2 + examples/imatrix/imatrix.cpp | 8 +- examples/infill/infill.cpp | 134 +-- examples/llama-bench/llama-bench.cpp | 48 +- examples/llava/llava-cli.cpp | 14 +- examples/lookahead/lookahead.cpp | 3 +- examples/lookup/lookup-create.cpp | 2 + examples/lookup/lookup-stats.cpp | 1 + examples/lookup/lookup.cpp | 1 + examples/main/README.md | 5 +- examples/main/main.cpp | 69 +- examples/parallel/parallel.cpp | 3 +- examples/passkey/README.md | 2 +- examples/passkey/passkey.cpp | 66 +- examples/perplexity/perplexity.cpp | 12 +- examples/quantize/tests.sh | 4 +- examples/retrieval/retrieval.cpp | 90 +- examples/save-load-state/save-load-state.cpp | 1 + examples/server/server.cpp | 700 ++-------------- examples/server/utils.hpp | 7 - examples/simple/README.md | 2 +- examples/simple/simple.cpp | 50 +- examples/speculative/speculative.cpp | 3 +- llama.cpp | 2 +- scripts/run-with-preset.py | 4 +- 34 files changed, 900 insertions(+), 1456 deletions(-) diff --git a/common/common.cpp b/common/common.cpp index df583db8390d2..c8df9a4ce8ef5 100644 --- a/common/common.cpp +++ b/common/common.cpp @@ -7,20 +7,21 @@ #include #include +#include #include +#include +#include #include #include #include -#include #include +#include #include #include #include #include #include #include -#include -#include #if defined(__APPLE__) && defined(__MACH__) #include @@ -237,10 +238,7 @@ bool gpt_params_parse_ex(int argc, char ** argv, gpt_params & params) { } } - if (params.prompt_cache_all && - (params.interactive || params.interactive_first || - params.instruct)) { - + if (params.prompt_cache_all && (params.interactive || params.interactive_first)) { throw std::invalid_argument("error: --prompt-cache-all not supported in interactive mode yet\n"); } @@ -265,22 +263,25 @@ bool gpt_params_parse_ex(int argc, char ** argv, gpt_params & params) { } bool gpt_params_parse(int argc, char ** argv, gpt_params & params) { - bool result = true; + const auto params_org = params; // the example can modify the default params + try { - if (!gpt_params_parse_ex(argc, argv, params)) { - gpt_params_print_usage(argc, argv, gpt_params()); - exit(0); + if (!gpt_params_parse_ex(argc, argv, params) || params.usage) { + params = params_org; + params.usage = true; + return false; } - } - catch (const std::invalid_argument & ex) { + } catch (const std::invalid_argument & ex) { fprintf(stderr, "%s\n", ex.what()); - gpt_params_print_usage(argc, argv, gpt_params()); - exit(1); + return false; } - return result; + + return true; } bool gpt_params_find_arg(int argc, char ** argv, const std::string & arg, gpt_params & params, int & i, bool & invalid_param) { + const char split_delim = ','; + llama_sampling_params & sparams = params.sparams; if (arg == "-s" || arg == "--seed") { @@ -288,7 +289,7 @@ bool gpt_params_find_arg(int argc, char ** argv, const std::string & arg, gpt_pa invalid_param = true; return true; } - // This is temporary, in the future the samplign state will be moved fully to llama_sampling_context. + // TODO: this is temporary, in the future the sampling state will be moved fully to llama_sampling_context. params.seed = std::stoul(argv[i]); sparams.seed = std::stoul(argv[i]); return true; @@ -349,6 +350,10 @@ bool gpt_params_find_arg(int argc, char ** argv, const std::string & arg, gpt_pa params.escape = true; return true; } + if (arg == "--no-escape") { + params.escape = false; + return true; + } if (arg == "--prompt-cache") { if (++i >= argc) { invalid_param = true; @@ -403,7 +408,7 @@ bool gpt_params_find_arg(int argc, char ** argv, const std::string & arg, gpt_pa } return true; } - if (arg == "-n" || arg == "--n-predict") { + if (arg == "-n" || arg == "--predict" || arg == "--n-predict") { if (++i >= argc) { invalid_param = true; return true; @@ -900,34 +905,22 @@ bool gpt_params_find_arg(int argc, char ** argv, const std::string & arg, gpt_pa params.interactive = true; return true; } - if (arg == "--interactive-specials") { - params.interactive_specials = true; - return true; - } - if (arg == "--special") { + if (arg == "-sp" || arg == "--special") { params.special = true; return true; } - if (arg == "--embedding") { + if (arg == "--embedding" || arg == "--embeddings") { params.embedding = true; return true; } - if (arg == "--interactive-first") { + if (arg == "-if" || arg == "--interactive-first") { params.interactive_first = true; return true; } - if (arg == "-ins" || arg == "--instruct") { - params.instruct = true; - return true; - } if (arg == "-cnv" || arg == "--conversation") { params.conversation = true; return true; } - if (arg == "-cml" || arg == "--chatml") { - params.chatml = true; - return true; - } if (arg == "--infill") { params.infill = true; return true; @@ -964,7 +957,7 @@ bool gpt_params_find_arg(int argc, char ** argv, const std::string & arg, gpt_pa params.flash_attn = true; return true; } - if (arg == "--color") { + if (arg == "-co" || arg == "--color") { params.use_color = true; return true; } @@ -972,26 +965,26 @@ bool gpt_params_find_arg(int argc, char ** argv, const std::string & arg, gpt_pa params.use_mlock = true; return true; } - if (arg == "--gpu-layers" || arg == "-ngl" || arg == "--n-gpu-layers") { + if (arg == "-ngl" || arg == "--gpu-layers" || arg == "--n-gpu-layers") { if (++i >= argc) { invalid_param = true; return true; } params.n_gpu_layers = std::stoi(argv[i]); if (!llama_supports_gpu_offload()) { - fprintf(stderr, "warning: not compiled with GPU offload support, --n-gpu-layers option will be ignored\n"); + fprintf(stderr, "warning: not compiled with GPU offload support, --gpu-layers option will be ignored\n"); fprintf(stderr, "warning: see main README.md for information on enabling GPU BLAS support\n"); } return true; } - if (arg == "--gpu-layers-draft" || arg == "-ngld" || arg == "--n-gpu-layers-draft") { + if (arg == "-ngld" || arg == "--gpu-layers-draft" || arg == "--gpu-layers-draft") { if (++i >= argc) { invalid_param = true; return true; } params.n_gpu_layers_draft = std::stoi(argv[i]); if (!llama_supports_gpu_offload()) { - fprintf(stderr, "warning: not compiled with GPU offload support, --n-gpu-layers-draft option will be ignored\n"); + fprintf(stderr, "warning: not compiled with GPU offload support, --gpu-layers-draft option will be ignored\n"); fprintf(stderr, "warning: see main README.md for information on enabling GPU BLAS support\n"); } return true; @@ -1087,6 +1080,10 @@ bool gpt_params_find_arg(int argc, char ** argv, const std::string & arg, gpt_pa else { invalid_param = true; } return true; } + if (arg == "-v" || arg == "--verbose") { + params.verbose = true; + return true; + } if (arg == "--verbose-prompt") { params.verbose_prompt = true; return true; @@ -1151,24 +1148,24 @@ bool gpt_params_find_arg(int argc, char ** argv, const std::string & arg, gpt_pa params.ppl_stride = std::stoi(argv[i]); return true; } - if (arg == "-ptc" || arg == "--print-token-count") { + if (arg == "--ppl-output-type") { if (++i >= argc) { invalid_param = true; return true; } - params.n_print = std::stoi(argv[i]); - return true; - } - if (arg == "--check-tensors") { - params.check_tensors = true; + params.ppl_output_type = std::stoi(argv[i]); return true; } - if (arg == "--ppl-output-type") { + if (arg == "-ptc" || arg == "--print-token-count") { if (++i >= argc) { invalid_param = true; return true; } - params.ppl_output_type = std::stoi(argv[i]); + params.n_print = std::stoi(argv[i]); + return true; + } + if (arg == "--check-tensors") { + params.check_tensors = true; return true; } if (arg == "--hellaswag") { @@ -1242,19 +1239,15 @@ bool gpt_params_find_arg(int argc, char ** argv, const std::string & arg, gpt_pa } return true; } - if (arg == "-h" || arg == "--help") { - gpt_params_print_usage(argc, argv, gpt_params()); - exit(0); + if (arg == "-h" || arg == "--help" || arg == "--usage" ) { + params.usage = true; + return true; } if (arg == "--version") { fprintf(stderr, "version: %d (%s)\n", LLAMA_BUILD_NUMBER, LLAMA_COMMIT); fprintf(stderr, "built with %s for %s\n", LLAMA_COMPILER, LLAMA_BUILD_TARGET); exit(0); } - if (arg == "--random-prompt") { - params.random_prompt = true; - return true; - } if (arg == "--in-prefix-bos") { params.input_prefix_bos = true; return true; @@ -1321,6 +1314,229 @@ bool gpt_params_find_arg(int argc, char ** argv, const std::string & arg, gpt_pa } return true; } + if (arg == "--host") { + if (++i >= argc) { + invalid_param = true; + return true; + } + params.hostname = argv[i]; + return true; + } + if (arg == "--port") { + if (++i >= argc) { + invalid_param = true; + return true; + } + params.port = std::stoi(argv[i]); + return true; + } + if (arg == "--path") { + if (++i >= argc) { + invalid_param = true; + return true; + } + params.public_path = argv[i]; + return true; + } + if (arg == "--api-key") { + if (++i >= argc) { + invalid_param = true; + return true; + } + params.api_keys.push_back(argv[i]); + return true; + } + if (arg == "--api-key-file") { + if (++i >= argc) { + invalid_param = true; + return true; + } + std::ifstream key_file(argv[i]); + if (!key_file) { + fprintf(stderr, "error: failed to open file '%s'\n", argv[i]); + invalid_param = true; + return true; + } + std::string key; + while (std::getline(key_file, key)) { + if (!key.empty()) { + params.api_keys.push_back(key); + } + } + key_file.close(); + return true; + } + if (arg == "--ssl-key-file") { + if (++i >= argc) { + invalid_param = true; + return true; + } + params.ssl_file_key = argv[i]; + return true; + } + if (arg == "--ssl-cert-file") { + if (++i >= argc) { + invalid_param = true; + return true; + } + params.ssl_file_cert = argv[i]; + return true; + } + if (arg == "--timeout" || arg == "-to") { + if (++i >= argc) { + invalid_param = true; + return true; + } + params.timeout_read = std::stoi(argv[i]); + params.timeout_write = std::stoi(argv[i]); + return true; + } + if (arg == "-spf" || arg == "--system-prompt-file") { + if (++i >= argc) { + invalid_param = true; + return true; + } + std::ifstream file(argv[i]); + if (!file) { + fprintf(stderr, "error: failed to open file '%s'\n", argv[i]); + invalid_param = true; + return true; + } + std::string system_prompt; + std::copy( + std::istreambuf_iterator(file), + std::istreambuf_iterator(), + std::back_inserter(system_prompt) + ); + params.system_prompt = system_prompt; + return true; + } + if (arg == "--log-format") { + if (++i >= argc) { + invalid_param = true; + return true; + } + if (std::strcmp(argv[i], "json") == 0) { + params.log_json = true; + } else if (std::strcmp(argv[i], "text") == 0) { + params.log_json = false; + } else { + invalid_param = true; + return true; + } + return true; + } + if (arg == "--no-slots") { + params.endpoint_slots = false; + return true; + } + if (arg == "--metrics") { + params.endpoint_metrics = true; + return true; + } + if (arg == "--slot-save-path") { + if (++i >= argc) { + invalid_param = true; + return true; + } + params.slot_save_path = argv[i]; + // if doesn't end with DIRECTORY_SEPARATOR, add it + if (!params.slot_save_path.empty() && params.slot_save_path[params.slot_save_path.size() - 1] != DIRECTORY_SEPARATOR) { + params.slot_save_path += DIRECTORY_SEPARATOR; + } + return true; + } + if (arg == "--chat-template") { + if (++i >= argc) { + invalid_param = true; + return true; + } + if (!llama_chat_verify_template(argv[i])) { + fprintf(stderr, "error: the supplied chat template is not supported: %s\n", argv[i]); + fprintf(stderr, "note: llama.cpp does not use jinja parser, we only support commonly used templates\n"); + invalid_param = true; + return true; + } + params.chat_template = argv[i]; + return true; + } + if (arg == "-pps") { + params.is_pp_shared = true; + return true; + } + if (arg == "-npp") { + if (++i >= argc) { + invalid_param = true; + return true; + } + auto p = string_split(argv[i], split_delim); + params.n_pp.insert(params.n_pp.end(), p.begin(), p.end()); + return true; + } + if (arg == "-ntg") { + if (++i >= argc) { + invalid_param = true; + return true; + } + auto p = string_split(argv[i], split_delim); + params.n_tg.insert(params.n_tg.end(), p.begin(), p.end()); + return true; + } + if (arg == "-npl") { + if (++i >= argc) { + invalid_param = true; + return true; + } + auto p = string_split(argv[i], split_delim); + params.n_pl.insert(params.n_pl.end(), p.begin(), p.end()); + return true; + } + if (arg == "--context-file") { + if (++i >= argc) { + invalid_param = true; + return true; + } + std::ifstream file(argv[i], std::ios::binary); + if (!file) { + fprintf(stderr, "error: failed to open file '%s'\n", argv[i]); + invalid_param = true; + return true; + } + params.context_files.push_back(argv[i]); + return true; + } + if (arg == "--chunk-size") { + if (++i >= argc) { + invalid_param = true; + return true; + } + params.chunk_size = std::stoi(argv[i]); + return true; + } + if (arg == "--chunk-separator") { + if (++i >= argc) { + invalid_param = true; + return true; + } + params.chunk_separator = argv[i]; + return true; + } + if (arg == "--junk") { + if (++i >= argc) { + invalid_param = true; + return true; + } + params.n_junk = std::stoi(argv[i]); + return true; + } + if (arg == "--pos") { + if (++i >= argc) { + invalid_param = true; + return true; + } + params.i_pos = std::stoi(argv[i]); + return true; + } #ifndef LOG_DISABLE_LOGS // Parse args for logging parameters if (log_param_single_parse(argv[i])) { @@ -1348,6 +1564,16 @@ bool gpt_params_find_arg(int argc, char ** argv, const std::string & arg, gpt_pa return false; } +#ifdef __GNUC__ +#ifdef __MINGW32__ +#define LLAMA_COMMON_ATTRIBUTE_FORMAT(...) __attribute__((format(gnu_printf, __VA_ARGS__))) +#else +#define LLAMA_COMMON_ATTRIBUTE_FORMAT(...) __attribute__((format(printf, __VA_ARGS__))) +#endif +#else +#define LLAMA_COMMON_ATTRIBUTE_FORMAT(...) +#endif + void gpt_params_print_usage(int /*argc*/, char ** argv, const gpt_params & params) { const llama_sampling_params & sparams = params.sparams; @@ -1359,198 +1585,290 @@ void gpt_params_print_usage(int /*argc*/, char ** argv, const gpt_params & param } sampler_type_names.pop_back(); - printf("\n"); - printf("usage: %s [options]\n", argv[0]); - printf("\n"); - printf("options:\n"); - printf(" -h, --help show this help message and exit\n"); - printf(" --version show version and build info\n"); - printf(" -i, --interactive run in interactive mode\n"); - printf(" --special special tokens output enabled\n"); - printf(" --interactive-specials allow special tokens in user text, in interactive mode\n"); - printf(" --interactive-first run in interactive mode and wait for input right away\n"); - printf(" -cnv, --conversation run in conversation mode (does not print special tokens and suffix/prefix)\n"); - printf(" -ins, --instruct run in instruction mode (use with Alpaca models)\n"); - printf(" -cml, --chatml run in chatml mode (use with ChatML-compatible models)\n"); - printf(" --multiline-input allows you to write or paste multiple lines without ending each in '\\'\n"); - printf(" -r PROMPT, --reverse-prompt PROMPT\n"); - printf(" halt generation at PROMPT, return control in interactive mode\n"); - printf(" (can be specified more than once for multiple prompts).\n"); - printf(" --color colorise output to distinguish prompt and user input from generations\n"); - printf(" -s SEED, --seed SEED RNG seed (default: -1, use random seed for < 0)\n"); - printf(" -t N, --threads N number of threads to use during generation (default: %d)\n", params.n_threads); - printf(" -tb N, --threads-batch N\n"); - printf(" number of threads to use during batch and prompt processing (default: same as --threads)\n"); - printf(" -td N, --threads-draft N"); - printf(" number of threads to use during generation (default: same as --threads)\n"); - printf(" -tbd N, --threads-batch-draft N\n"); - printf(" number of threads to use during batch and prompt processing (default: same as --threads-draft)\n"); - printf(" -p PROMPT, --prompt PROMPT\n"); - printf(" prompt to start generation with (default: empty)\n"); - printf(" -e, --escape process prompt escapes sequences (\\n, \\r, \\t, \\', \\\", \\\\)\n"); - printf(" --prompt-cache FNAME file to cache prompt state for faster startup (default: none)\n"); - printf(" --prompt-cache-all if specified, saves user input and generations to cache as well.\n"); - printf(" not supported with --interactive or other interactive options\n"); - printf(" --prompt-cache-ro if specified, uses the prompt cache but does not update it.\n"); - printf(" --random-prompt start with a randomized prompt.\n"); - printf(" --in-prefix-bos prefix BOS to user inputs, preceding the `--in-prefix` string\n"); - printf(" --in-prefix STRING string to prefix user inputs with (default: empty)\n"); - printf(" --in-suffix STRING string to suffix after user inputs with (default: empty)\n"); - printf(" -f FNAME, --file FNAME\n"); - printf(" prompt file to start generation.\n"); - printf(" -bf FNAME, --binary-file FNAME\n"); - printf(" binary file containing multiple choice tasks.\n"); - printf(" -n N, --n-predict N number of tokens to predict (default: %d, -1 = infinity, -2 = until context filled)\n", params.n_predict); - printf(" -c N, --ctx-size N size of the prompt context (default: %d, 0 = loaded from model)\n", params.n_ctx); - printf(" -b N, --batch-size N logical maximum batch size (default: %d)\n", params.n_batch); - printf(" -ub N, --ubatch-size N\n"); - printf(" physical maximum batch size (default: %d)\n", params.n_ubatch); - printf(" --samplers samplers that will be used for generation in the order, separated by \';\'\n"); - printf(" (default: %s)\n", sampler_type_names.c_str()); - printf(" --sampling-seq simplified sequence for samplers that will be used (default: %s)\n", sampler_type_chars.c_str()); - printf(" --top-k N top-k sampling (default: %d, 0 = disabled)\n", sparams.top_k); - printf(" --top-p N top-p sampling (default: %.1f, 1.0 = disabled)\n", (double)sparams.top_p); - printf(" --min-p N min-p sampling (default: %.1f, 0.0 = disabled)\n", (double)sparams.min_p); - printf(" --tfs N tail free sampling, parameter z (default: %.1f, 1.0 = disabled)\n", (double)sparams.tfs_z); - printf(" --typical N locally typical sampling, parameter p (default: %.1f, 1.0 = disabled)\n", (double)sparams.typical_p); - printf(" --repeat-last-n N last n tokens to consider for penalize (default: %d, 0 = disabled, -1 = ctx_size)\n", sparams.penalty_last_n); - printf(" --repeat-penalty N penalize repeat sequence of tokens (default: %.1f, 1.0 = disabled)\n", (double)sparams.penalty_repeat); - printf(" --presence-penalty N repeat alpha presence penalty (default: %.1f, 0.0 = disabled)\n", (double)sparams.penalty_present); - printf(" --frequency-penalty N repeat alpha frequency penalty (default: %.1f, 0.0 = disabled)\n", (double)sparams.penalty_freq); - printf(" --dynatemp-range N dynamic temperature range (default: %.1f, 0.0 = disabled)\n", (double)sparams.dynatemp_range); - printf(" --dynatemp-exp N dynamic temperature exponent (default: %.1f)\n", (double)sparams.dynatemp_exponent); - printf(" --mirostat N use Mirostat sampling.\n"); - printf(" Top K, Nucleus, Tail Free and Locally Typical samplers are ignored if used.\n"); - printf(" (default: %d, 0 = disabled, 1 = Mirostat, 2 = Mirostat 2.0)\n", sparams.mirostat); - printf(" --mirostat-lr N Mirostat learning rate, parameter eta (default: %.1f)\n", (double)sparams.mirostat_eta); - printf(" --mirostat-ent N Mirostat target entropy, parameter tau (default: %.1f)\n", (double)sparams.mirostat_tau); - printf(" -l TOKEN_ID(+/-)BIAS, --logit-bias TOKEN_ID(+/-)BIAS\n"); - printf(" modifies the likelihood of token appearing in the completion,\n"); - printf(" i.e. `--logit-bias 15043+1` to increase likelihood of token ' Hello',\n"); - printf(" or `--logit-bias 15043-1` to decrease likelihood of token ' Hello'\n"); - printf(" --grammar GRAMMAR BNF-like grammar to constrain generations (see samples in grammars/ dir)\n"); - printf(" --grammar-file FNAME file to read grammar from\n"); - printf(" -j SCHEMA, --json-schema SCHEMA\n"); - printf(" JSON schema to constrain generations (https://json-schema.org/), e.g. `{}` for any JSON object.\n"); - printf(" For schemas w/ external $refs, use --grammar + example/json_schema_to_grammar.py instead\n"); - printf(" --cfg-negative-prompt PROMPT\n"); - printf(" negative prompt to use for guidance. (default: empty)\n"); - printf(" --cfg-negative-prompt-file FNAME\n"); - printf(" negative prompt file to use for guidance. (default: empty)\n"); - printf(" --cfg-scale N strength of guidance (default: %f, 1.0 = disable)\n", sparams.cfg_scale); - printf(" --rope-scaling {none,linear,yarn}\n"); - printf(" RoPE frequency scaling method, defaults to linear unless specified by the model\n"); - printf(" --rope-scale N RoPE context scaling factor, expands context by a factor of N\n"); - printf(" --rope-freq-base N RoPE base frequency, used by NTK-aware scaling (default: loaded from model)\n"); - printf(" --rope-freq-scale N RoPE frequency scaling factor, expands context by a factor of 1/N\n"); - printf(" --yarn-orig-ctx N YaRN: original context size of model (default: 0 = model training context size)\n"); - printf(" --yarn-ext-factor N YaRN: extrapolation mix factor (default: 1.0, 0.0 = full interpolation)\n"); - printf(" --yarn-attn-factor N YaRN: scale sqrt(t) or attention magnitude (default: 1.0)\n"); - printf(" --yarn-beta-slow N YaRN: high correction dim or alpha (default: %.1f)\n", params.yarn_beta_slow); - printf(" --yarn-beta-fast N YaRN: low correction dim or beta (default: %.1f)\n", params.yarn_beta_fast); - printf(" --pooling {none,mean,cls}\n"); - printf(" pooling type for embeddings, use model default if unspecified\n"); - printf(" -dt N, --defrag-thold N\n"); - printf(" KV cache defragmentation threshold (default: %.1f, < 0 - disabled)\n", params.defrag_thold); - printf(" --ignore-eos ignore end of stream token and continue generating (implies --logit-bias 2-inf)\n"); - printf(" --penalize-nl penalize newline tokens\n"); - printf(" --temp N temperature (default: %.1f)\n", (double)sparams.temp); - printf(" --all-logits return logits for all tokens in the batch (default: disabled)\n"); - printf(" --hellaswag compute HellaSwag score over random tasks from datafile supplied with -f\n"); - printf(" --hellaswag-tasks N number of tasks to use when computing the HellaSwag score (default: %zu)\n", params.hellaswag_tasks); - printf(" --winogrande compute Winogrande score over random tasks from datafile supplied with -f\n"); - printf(" --winogrande-tasks N number of tasks to use when computing the Winogrande score (default: %zu)\n", params.winogrande_tasks); - printf(" --multiple-choice compute multiple choice score over random tasks from datafile supplied with -f\n"); - printf(" --multiple-choice-tasks N number of tasks to use when computing the multiple choice score (default: %zu)\n", params.winogrande_tasks); - printf(" --kl-divergence computes KL-divergence to logits provided via --kl-divergence-base\n"); - printf(" --keep N number of tokens to keep from the initial prompt (default: %d, -1 = all)\n", params.n_keep); - printf(" --draft N number of tokens to draft for speculative decoding (default: %d)\n", params.n_draft); - printf(" --chunks N max number of chunks to process (default: %d, -1 = all)\n", params.n_chunks); - printf(" -np N, --parallel N number of parallel sequences to decode (default: %d)\n", params.n_parallel); - printf(" -ns N, --sequences N number of sequences to decode (default: %d)\n", params.n_sequences); - printf(" -ps N, --p-split N speculative decoding split probability (default: %.1f)\n", (double)params.p_split); - printf(" -cb, --cont-batching enable continuous batching (a.k.a dynamic batching) (default: disabled)\n"); - printf(" -fa, --flash-attn enable Flash Attention (default: %s)\n", params.flash_attn ? "enabled" : "disabled"); - printf(" --mmproj MMPROJ_FILE path to a multimodal projector file for LLaVA. see examples/llava/README.md\n"); - printf(" --image IMAGE_FILE path to an image file. use with multimodal models. Specify multiple times for batching\n"); + struct option_info { + LLAMA_COMMON_ATTRIBUTE_FORMAT(4, 5) + option_info(const std::string & tags, const char * args, const char * desc, ...) : tags(tags), args(args), desc(desc) { + va_list args_list; + va_start(args_list, desc); + char buffer[1024]; + vsnprintf(buffer, sizeof(buffer), desc, args_list); + va_end(args_list); + this->desc = buffer; + } + + option_info(const std::string & grp) : grp(grp) {} + + std::string tags; + std::string args; + std::string desc; + std::string grp; + }; + + std::vector options; + + // TODO: filter by tags + + options.push_back({ "general" }); + options.push_back({ "*", "-h, --help, --usage", "print usage and exit" }); + options.push_back({ "*", " --version", "show version and build info" }); + options.push_back({ "*", "-v, --verbose", "print verbose information" }); + options.push_back({ "*", " --verbose-prompt", "print a verbose prompt before generation (default: %s)", params.verbose_prompt ? "true" : "false" }); + options.push_back({ "*", " --no-display-prompt", "don't print prompt at generation (default: %s)", !params.display_prompt ? "true" : "false" }); + options.push_back({ "*", "-co, --color", "colorise output to distinguish prompt and user input from generations (default: %s)", params.use_color ? "true" : "false" }); + options.push_back({ "*", "-s, --seed SEED", "RNG seed (default: %d, use random seed for < 0)", params.seed }); + options.push_back({ "*", "-t, --threads N", "number of threads to use during generation (default: %d)", params.n_threads }); + options.push_back({ "*", "-tb, --threads-batch N", "number of threads to use during batch and prompt processing (default: same as --threads)" }); + options.push_back({ "speculative", "-td, --threads-draft N", "number of threads to use during generation (default: same as --threads)" }); + options.push_back({ "speculative", "-tbd, --threads-batch-draft N", + "number of threads to use during batch and prompt processing (default: same as --threads-draft)" }); + options.push_back({ "speculative", " --draft N", "number of tokens to draft for speculative decoding (default: %d)", params.n_draft }); + options.push_back({ "speculative", "-ps, --p-split N", "speculative decoding split probability (default: %.1f)", (double)params.p_split }); + options.push_back({ "*", "-lcs, --lookup-cache-static FNAME", + "path to static lookup cache to use for lookup decoding (not updated by generation)" }); + options.push_back({ "*", "-lcd, --lookup-cache-dynamic FNAME", + "path to dynamic lookup cache to use for lookup decoding (updated by generation)" }); + + options.push_back({ "*", "-c, --ctx-size N", "size of the prompt context (default: %d, 0 = loaded from model)", params.n_ctx }); + options.push_back({ "*", "-n, --predict N", "number of tokens to predict (default: %d, -1 = infinity, -2 = until context filled)", params.n_predict }); + options.push_back({ "*", "-b, --batch-size N", "logical maximum batch size (default: %d)", params.n_batch }); + options.push_back({ "*", "-ub, --ubatch-size N", "physical maximum batch size (default: %d)", params.n_ubatch }); + options.push_back({ "*", " --keep N", "number of tokens to keep from the initial prompt (default: %d, -1 = all)", params.n_keep }); + options.push_back({ "*", " --chunks N", "max number of chunks to process (default: %d, -1 = all)", params.n_chunks }); + options.push_back({ "*", "-fa, --flash-attn", "enable Flash Attention (default: %s)", params.flash_attn ? "enabled" : "disabled" }); + options.push_back({ "*", "-p, --prompt PROMPT", "prompt to start generation with (default: '%s')", params.prompt.c_str() }); + options.push_back({ "*", "-f, --file FNAME", "a file containing the prompt (default: none)" }); + options.push_back({ "*", "-bf, --binary-file FNAME", "binary file containing the prompt (default: none)" }); + options.push_back({ "*", "-e, --escape", "process escapes sequences (\\n, \\r, \\t, \\', \\\", \\\\) (default: %s)", params.escape ? "true" : "false" }); + options.push_back({ "*", " --no-escape", "do not process escape sequences" }); + options.push_back({ "main", "-ptc, --print-token-count N", "print token count every N tokens (default: %d)", params.n_print }); + options.push_back({ "main", " --prompt-cache FNAME", "file to cache prompt state for faster startup (default: none)" }); + options.push_back({ "main", " --prompt-cache-all", "if specified, saves user input and generations to cache as well\n" + "not supported with --interactive or other interactive options" }); + options.push_back({ "main", " --prompt-cache-ro", "if specified, uses the prompt cache but does not update it" }); + options.push_back({ "main", "-r, --reverse-prompt PROMPT", + "halt generation at PROMPT, return control in interactive mode\n" + "can be specified more than once for multiple prompts" }); + options.push_back({ "main", "-sp, --special", "special tokens output enabled (default: %s)", params.special ? "true" : "false" }); + options.push_back({ "main", "-cnv, --conversation", "run in conversation mode (does not print special tokens and suffix/prefix) (default: %s)", params.conversation ? "true" : "false" }); + options.push_back({ "main infill", "-i, --interactive", "run in interactive mode (default: %s)", params.interactive ? "true" : "false" }); + options.push_back({ "main infill", "-if, --interactive-first", "run in interactive mode and wait for input right away (default: %s)", params.interactive_first ? "true" : "false" }); + options.push_back({ "main infill", "-mli, --multiline-input", "allows you to write or paste multiple lines without ending each in '\\'" }); + options.push_back({ "main infill", " --in-prefix-bos", "prefix BOS to user inputs, preceding the `--in-prefix` string" }); + options.push_back({ "main infill", " --in-prefix STRING", "string to prefix user inputs with (default: empty)" }); + options.push_back({ "main infill", " --in-suffix STRING", "string to suffix after user inputs with (default: empty)" }); + + options.push_back({ "sampling" }); + options.push_back({ "*", " --samplers SAMPLERS", "samplers that will be used for generation in the order, separated by \';\'\n" + "(default: %s)", sampler_type_names.c_str() }); + options.push_back({ "*", " --sampling-seq SEQUENCE", + "simplified sequence for samplers that will be used (default: %s)", sampler_type_chars.c_str() }); + options.push_back({ "*", " --ignore-eos", "ignore end of stream token and continue generating (implies --logit-bias EOS-inf)" }); + options.push_back({ "*", " --penalize-nl", "penalize newline tokens (default: %s)", sparams.penalize_nl ? "true" : "false" }); + options.push_back({ "*", " --temp N", "temperature (default: %.1f)", (double)sparams.temp }); + options.push_back({ "*", " --top-k N", "top-k sampling (default: %d, 0 = disabled)", sparams.top_k }); + options.push_back({ "*", " --top-p N", "top-p sampling (default: %.1f, 1.0 = disabled)", (double)sparams.top_p }); + options.push_back({ "*", " --min-p N", "min-p sampling (default: %.1f, 0.0 = disabled)", (double)sparams.min_p }); + options.push_back({ "*", " --tfs N", "tail free sampling, parameter z (default: %.1f, 1.0 = disabled)", (double)sparams.tfs_z }); + options.push_back({ "*", " --typical N", "locally typical sampling, parameter p (default: %.1f, 1.0 = disabled)", (double)sparams.typical_p }); + options.push_back({ "*", " --repeat-last-n N", "last n tokens to consider for penalize (default: %d, 0 = disabled, -1 = ctx_size)", sparams.penalty_last_n }); + options.push_back({ "*", " --repeat-penalty N", "penalize repeat sequence of tokens (default: %.1f, 1.0 = disabled)", (double)sparams.penalty_repeat }); + options.push_back({ "*", " --presence-penalty N", "repeat alpha presence penalty (default: %.1f, 0.0 = disabled)", (double)sparams.penalty_present }); + options.push_back({ "*", " --frequency-penalty N", "repeat alpha frequency penalty (default: %.1f, 0.0 = disabled)", (double)sparams.penalty_freq }); + options.push_back({ "*", " --dynatemp-range N", "dynamic temperature range (default: %.1f, 0.0 = disabled)", (double)sparams.dynatemp_range }); + options.push_back({ "*", " --dynatemp-exp N", "dynamic temperature exponent (default: %.1f)", (double)sparams.dynatemp_exponent }); + options.push_back({ "*", " --mirostat N", "use Mirostat sampling.\n" + "Top K, Nucleus, Tail Free and Locally Typical samplers are ignored if used.\n" + "(default: %d, 0 = disabled, 1 = Mirostat, 2 = Mirostat 2.0)", sparams.mirostat }); + options.push_back({ "*", " --mirostat-lr N", "Mirostat learning rate, parameter eta (default: %.1f)", (double)sparams.mirostat_eta }); + options.push_back({ "*", " --mirostat-ent N", "Mirostat target entropy, parameter tau (default: %.1f)", (double)sparams.mirostat_tau }); + options.push_back({ "*", " -l TOKEN_ID(+/-)BIAS", "modifies the likelihood of token appearing in the completion,\n" + "i.e. `--logit-bias 15043+1` to increase likelihood of token ' Hello',\n" + "or `--logit-bias 15043-1` to decrease likelihood of token ' Hello'" }); + options.push_back({ "main", " --cfg-negative-prompt PROMPT", + "negative prompt to use for guidance (default: '%s')", sparams.cfg_negative_prompt.c_str() }); + options.push_back({ "main", " --cfg-negative-prompt-file FNAME", + "negative prompt file to use for guidance" }); + options.push_back({ "main", " --cfg-scale N", "strength of guidance (default: %.1f, 1.0 = disable)", (double)sparams.cfg_scale }); + + options.push_back({ "grammar" }); + options.push_back({ "*", " --grammar GRAMMAR", "BNF-like grammar to constrain generations (see samples in grammars/ dir) (default: '%s')", sparams.grammar.c_str() }); + options.push_back({ "*", " --grammar-file FNAME", "file to read grammar from" }); + options.push_back({ "*", "-j, --json-schema SCHEMA", + "JSON schema to constrain generations (https://json-schema.org/), e.g. `{}` for any JSON object\n" + "For schemas w/ external $refs, use --grammar + example/json_schema_to_grammar.py instead" }); + + options.push_back({ "embedding" }); + options.push_back({ "embedding", " --pooling {none,mean,cls}", + "pooling type for embeddings, use model default if unspecified" }); + + options.push_back({ "context hacking" }); + options.push_back({ "*", " --rope-scaling {none,linear,yarn}", + "RoPE frequency scaling method, defaults to linear unless specified by the model" }); + options.push_back({ "*", " --rope-scale N", "RoPE context scaling factor, expands context by a factor of N" }); + options.push_back({ "*", " --rope-freq-base N", "RoPE base frequency, used by NTK-aware scaling (default: loaded from model)" }); + options.push_back({ "*", " --rope-freq-scale N", "RoPE frequency scaling factor, expands context by a factor of 1/N" }); + options.push_back({ "*", " --yarn-orig-ctx N", "YaRN: original context size of model (default: %d = model training context size)", params.yarn_orig_ctx }); + options.push_back({ "*", " --yarn-ext-factor N", "YaRN: extrapolation mix factor (default: %.1f, 0.0 = full interpolation)", (double)params.yarn_ext_factor }); + options.push_back({ "*", " --yarn-attn-factor N", "YaRN: scale sqrt(t) or attention magnitude (default: %.1f)", (double)params.yarn_attn_factor }); + options.push_back({ "*", " --yarn-beta-slow N", "YaRN: high correction dim or alpha (default: %.1f)", (double)params.yarn_beta_slow }); + options.push_back({ "*", " --yarn-beta-fast N", "YaRN: low correction dim or beta (default: %.1f)", (double)params.yarn_beta_fast }); + options.push_back({ "*", "-gan, --grp-attn-n N", "group-attention factor (default: %d)", params.grp_attn_n }); + options.push_back({ "*", "-gaw, --grp-attn-w N", "group-attention width (default: %.1f)", (double)params.grp_attn_w }); + options.push_back({ "*", "-dkvc, --dump-kv-cache", "verbose print of the KV cache" }); + options.push_back({ "*", "-nkvo, --no-kv-offload", "disable KV offload" }); + options.push_back({ "*", "-ctk, --cache-type-k TYPE", "KV cache data type for K (default: %s)", params.cache_type_k.c_str() }); + options.push_back({ "*", "-ctv, --cache-type-v TYPE", "KV cache data type for V (default: %s)", params.cache_type_v.c_str() }); + + options.push_back({ "perplexity" }); + options.push_back({ "perplexity", " --all-logits", "return logits for all tokens in the batch (default: %s)", params.logits_all ? "true" : "false" }); + options.push_back({ "perplexity", " --hellaswag", "compute HellaSwag score over random tasks from datafile supplied with -f" }); + options.push_back({ "perplexity", " --hellaswag-tasks N", "number of tasks to use when computing the HellaSwag score (default: %zu)", params.hellaswag_tasks }); + options.push_back({ "perplexity", " --winogrande", "compute Winogrande score over random tasks from datafile supplied with -f" }); + options.push_back({ "perplexity", " --winogrande-tasks N", "number of tasks to use when computing the Winogrande score (default: %zu)", params.winogrande_tasks }); + options.push_back({ "perplexity", " --multiple-choice", "compute multiple choice score over random tasks from datafile supplied with -f" }); + options.push_back({ "perplexity", " --multiple-choice-tasks N", + "number of tasks to use when computing the multiple choice score (default: %zu)", params.multiple_choice_tasks }); + options.push_back({ "perplexity", " --kl-divergence", "computes KL-divergence to logits provided via --kl-divergence-base" }); + options.push_back({ "perplexity", " --ppl-stride N", "stride for perplexity calculation (default: %d)", params.ppl_stride }); + options.push_back({ "perplexity", " --ppl-output-type {0,1}", + "output type for perplexity calculation (default: %d)", params.ppl_output_type }); + + options.push_back({ "parallel" }); + options.push_back({ "*", "-dt, --defrag-thold N", "KV cache defragmentation threshold (default: %.1f, < 0 - disabled)", (double)params.defrag_thold }); + options.push_back({ "*", "-np, --parallel N", "number of parallel sequences to decode (default: %d)", params.n_parallel }); + options.push_back({ "*", "-ns, --sequences N", "number of sequences to decode (default: %d)", params.n_sequences }); + options.push_back({ "*", "-cb, --cont-batching", "enable continuous batching (a.k.a dynamic batching) (default: %s)", params.cont_batching ? "enabled" : "disabled" }); + + options.push_back({ "multi-modality" }); + options.push_back({ "*", " --mmproj FILE", "path to a multimodal projector file for LLaVA. see examples/llava/README.md" }); + options.push_back({ "*", " --image FILE", "path to an image file. use with multimodal models. Specify multiple times for batching" }); + + options.push_back({ "backend" }); + options.push_back({ "*", " --rpc SERVERS", "comma separated list of RPC servers" }); if (llama_supports_mlock()) { - printf(" --mlock force system to keep model in RAM rather than swapping or compressing\n"); + options.push_back({ "*", " --mlock", "force system to keep model in RAM rather than swapping or compressing" }); } if (llama_supports_mmap()) { - printf(" --no-mmap do not memory-map model (slower load but may reduce pageouts if not using mlock)\n"); - } - printf(" --numa TYPE attempt optimizations that help on some NUMA systems\n"); - printf(" - distribute: spread execution evenly over all nodes\n"); - printf(" - isolate: only spawn threads on CPUs on the node that execution started on\n"); - printf(" - numactl: use the CPU map provided by numactl\n"); - printf(" if run without this previously, it is recommended to drop the system page cache before using this\n"); - printf(" see https://github.com/ggerganov/llama.cpp/issues/1437\n"); + options.push_back({ "*", " --no-mmap", "do not memory-map model (slower load but may reduce pageouts if not using mlock)" }); + } + options.push_back({ "*", " --numa TYPE", "attempt optimizations that help on some NUMA systems\n" + " - distribute: spread execution evenly over all nodes\n" + " - isolate: only spawn threads on CPUs on the node that execution started on\n" + " - numactl: use the CPU map provided by numactl\n" + "if run without this previously, it is recommended to drop the system page cache before using this\n" + "see https://github.com/ggerganov/llama.cpp/issues/1437" }); + if (llama_supports_gpu_offload()) { - printf(" -ngl N, --n-gpu-layers N\n"); - printf(" number of layers to store in VRAM\n"); - printf(" -ngld N, --n-gpu-layers-draft N\n"); - printf(" number of layers to store in VRAM for the draft model\n"); - printf(" -sm SPLIT_MODE, --split-mode SPLIT_MODE\n"); - printf(" how to split the model across multiple GPUs, one of:\n"); - printf(" - none: use one GPU only\n"); - printf(" - layer (default): split layers and KV across GPUs\n"); - printf(" - row: split rows across GPUs\n"); - printf(" -ts SPLIT, --tensor-split SPLIT\n"); - printf(" fraction of the model to offload to each GPU, comma-separated list of proportions, e.g. 3,1\n"); - printf(" -mg i, --main-gpu i the GPU to use for the model (with split-mode = none),\n"); - printf(" or for intermediate results and KV (with split-mode = row) (default: %d)\n", params.main_gpu); - } - printf(" --rpc SERVERS comma separated list of RPC servers\n"); - printf(" --verbose-prompt print a verbose prompt before generation (default: %s)\n", params.verbose_prompt ? "true" : "false"); - printf(" --no-display-prompt don't print prompt at generation (default: %s)\n", !params.display_prompt ? "true" : "false"); - printf(" -gan N, --grp-attn-n N\n"); - printf(" group-attention factor (default: %d)\n", params.grp_attn_n); - printf(" -gaw N, --grp-attn-w N\n"); - printf(" group-attention width (default: %.1f)\n", (double)params.grp_attn_w); - printf(" -dkvc, --dump-kv-cache\n"); - printf(" verbose print of the KV cache\n"); - printf(" -nkvo, --no-kv-offload\n"); - printf(" disable KV offload\n"); - printf(" -ctk TYPE, --cache-type-k TYPE\n"); - printf(" KV cache data type for K (default: %s)\n", params.cache_type_k.c_str()); - printf(" -ctv TYPE, --cache-type-v TYPE\n"); - printf(" KV cache data type for V (default: %s)\n", params.cache_type_v.c_str()); - printf(" --simple-io use basic IO for better compatibility in subprocesses and limited consoles\n"); - printf(" --lora FNAME apply LoRA adapter (implies --no-mmap)\n"); - printf(" --lora-scaled FNAME S apply LoRA adapter with user defined scaling S (implies --no-mmap)\n"); - printf(" --lora-base FNAME optional model to use as a base for the layers modified by the LoRA adapter\n"); - printf(" --control-vector FNAME\n"); - printf(" add a control vector\n"); - printf(" --control-vector-scaled FNAME S\n"); - printf(" add a control vector with user defined scaling S\n"); - printf(" --control-vector-layer-range START END\n"); - printf(" layer range to apply the control vector(s) to, start and end inclusive\n"); - printf(" -m FNAME, --model FNAME\n"); - printf(" model path (default: models/$filename with filename from --hf-file or --model-url if set, otherwise %s)\n", DEFAULT_MODEL_PATH); - printf(" -md FNAME, --model-draft FNAME\n"); - printf(" draft model for speculative decoding (default: unused)\n"); - printf(" -mu MODEL_URL, --model-url MODEL_URL\n"); - printf(" model download url (default: unused)\n"); - printf(" -hfr REPO, --hf-repo REPO\n"); - printf(" Hugging Face model repository (default: unused)\n"); - printf(" -hff FILE, --hf-file FILE\n"); - printf(" Hugging Face model file (default: unused)\n"); - printf(" -ld LOGDIR, --logdir LOGDIR\n"); - printf(" path under which to save YAML logs (no logging if unset)\n"); - printf(" -lcs FNAME, --lookup-cache-static FNAME\n"); - printf(" path to static lookup cache to use for lookup decoding (not updated by generation)\n"); - printf(" -lcd FNAME, --lookup-cache-dynamic FNAME\n"); - printf(" path to dynamic lookup cache to use for lookup decoding (updated by generation)\n"); - printf(" --override-kv KEY=TYPE:VALUE\n"); - printf(" advanced option to override model metadata by key. may be specified multiple times.\n"); - printf(" types: int, float, bool, str. example: --override-kv tokenizer.ggml.add_bos_token=bool:false\n"); - printf(" -ptc N, --print-token-count N\n"); - printf(" print token count every N tokens (default: %d)\n", params.n_print); - printf(" --check-tensors check model tensor data for invalid values\n"); - printf("\n"); + options.push_back({ "*", "-ngl, --gpu-layers N", + "number of layers to store in VRAM" }); + options.push_back({ "*", "-ngld, --gpu-layers-draft N", + "number of layers to store in VRAM for the draft model" }); + options.push_back({ "*", "-sm, --split-mode SPLIT_MODE", + "how to split the model across multiple GPUs, one of:\n" + " - none: use one GPU only\n" + " - layer (default): split layers and KV across GPUs\n" + " - row: split rows across GPUs" }); + options.push_back({ "*", "-ts, --tensor-split SPLIT", + "fraction of the model to offload to each GPU, comma-separated list of proportions, e.g. 3,1" }); + options.push_back({ "*", "-mg, --main-gpu i", "the GPU to use for the model (with split-mode = none),\n" + "or for intermediate results and KV (with split-mode = row) (default: %d)", params.main_gpu }); + } + + options.push_back({ "model" }); + options.push_back({ "*", " --check-tensors", "check model tensor data for invalid values (default: %s)", params.check_tensors ? "true" : "false" }); + options.push_back({ "*", " --override-kv KEY=TYPE:VALUE", + "advanced option to override model metadata by key. may be specified multiple times.\n" + "types: int, float, bool, str. example: --override-kv tokenizer.ggml.add_bos_token=bool:false" }); + options.push_back({ "*", " --lora FNAME", "apply LoRA adapter (implies --no-mmap)" }); + options.push_back({ "*", " --lora-scaled FNAME S", "apply LoRA adapter with user defined scaling S (implies --no-mmap)" }); + options.push_back({ "*", " --lora-base FNAME", "optional model to use as a base for the layers modified by the LoRA adapter" }); + options.push_back({ "*", " --control-vector FNAME", "add a control vector" }); + options.push_back({ "*", " --control-vector-scaled FNAME SCALE", + "add a control vector with user defined scaling SCALE" }); + options.push_back({ "*", " --control-vector-layer-range START END", + "layer range to apply the control vector(s) to, start and end inclusive" }); + options.push_back({ "*", "-m, --model FNAME", "model path (default: models/$filename with filename from --hf-file\n" + "or --model-url if set, otherwise %s)", DEFAULT_MODEL_PATH }); + options.push_back({ "*", "-md, --model-draft FNAME", "draft model for speculative decoding (default: unused)" }); + options.push_back({ "*", "-mu, --model-url MODEL_URL", "model download url (default: unused)" }); + options.push_back({ "*", "-hfr, --hf-repo REPO", "Hugging Face model repository (default: unused)" }); + options.push_back({ "*", "-hff, --hf-file FILE", "Hugging Face model file (default: unused)" }); + + options.push_back({ "retrieval" }); + options.push_back({ "retrieval", " --context-file FNAME", "file to load context from (repeat to specify multiple files)" }); + options.push_back({ "retrieval", " --chunk-size N", "minimum length of embedded text chunks (default: %d)", params.chunk_size }); + options.push_back({ "retrieval", " --chunk-separator STRING", + "separator between chunks (default: '%s')", params.chunk_separator.c_str() }); + + options.push_back({ "passkey" }); + options.push_back({ "passkey", " --junk N", "number of times to repeat the junk text (default: %d)", params.n_junk }); + options.push_back({ "passkey", " --pos N", "position of the passkey in the junk text (default: %d)", params.i_pos }); + + options.push_back({ "bench" }); + options.push_back({ "bench", "-pps", "is the prompt shared across parallel sequences (default: %s)", params.is_pp_shared ? "true" : "false" }); + options.push_back({ "bench", "-npp n0,n1,...", "number of prompt tokens" }); + options.push_back({ "bench", "-ntg n0,n1,...", "number of text generation tokens" }); + options.push_back({ "bench", "-npl n0,n1,...", "number of parallel prompts" }); + + options.push_back({ "server" }); + options.push_back({ "server", " --host HOST", "ip address to listen (default: %s)", params.hostname.c_str() }); + options.push_back({ "server", " --port PORT", "port to listen (default: %d)", params.port }); + options.push_back({ "server", " --path PATH", "path to serve static files from (default: %s)", params.public_path.c_str() }); + options.push_back({ "server", " --embedding(s)", "enable embedding endpoint (default: %s)", params.embedding ? "enabled" : "disabled" }); + options.push_back({ "server", " --api-key KEY", "API key to use for authentication (default: none)" }); + options.push_back({ "server", " --api-key-file FNAME", "path to file containing API keys (default: none)" }); + options.push_back({ "server", " --ssl-key-file FNAME", "path to file a PEM-encoded SSL private key" }); + options.push_back({ "server", " --ssl-cert-file FNAME", "path to file a PEM-encoded SSL certificate" }); + options.push_back({ "server", " --timeout N", "server read/write timeout in seconds (default: %d)", params.timeout_read }); + options.push_back({ "server", " --system-prompt-file FNAME", + "set a file to load a system prompt (initial prompt of all slots), this is useful for chat applications" }); + options.push_back({ "server", " --log-format {text,json}", + "log output format: json or text (default: json)" }); + options.push_back({ "server", " --metrics", "enable prometheus compatible metrics endpoint (default: %s)", params.endpoint_metrics ? "enabled" : "disabled" }); + options.push_back({ "server", " --no-slots", "disables slots monitoring endpoint (default: %s)", params.endpoint_slots ? "enabled" : "disabled" }); + options.push_back({ "server", " --slot-save-path PATH", "path to save slot kv cache (default: disabled)" }); + options.push_back({ "server", " --chat-template JINJA_TEMPLATE", + "set custom jinja chat template (default: template taken from model's metadata)\n" + "only commonly used templates are accepted:\n" + "https://github.com/ggerganov/llama.cpp/wiki/Templates-supported-by-llama_chat_apply_template" }); + #ifndef LOG_DISABLE_LOGS - log_print_usage(); + options.push_back({ "logging" }); + options.push_back({ "*", " --simple-io", "use basic IO for better compatibility in subprocesses and limited consoles" }); + options.push_back({ "*", "-ld, --logdir LOGDIR", "path under which to save YAML logs (no logging if unset)" }); + options.push_back({ "logging", " --log-test", "Run simple logging test" }); + options.push_back({ "logging", " --log-disable", "Disable trace logs" }); + options.push_back({ "logging", " --log-enable", "Enable trace logs" }); + options.push_back({ "logging", " --log-file FNAME", "Specify a log filename (without extension)" }); + options.push_back({ "logging", " --log-new", "Create a separate new log file on start. " + "Each log file will have unique name: \"..log\"" }); + options.push_back({ "logging", " --log-append", "Don't truncate the old log file." }); #endif // LOG_DISABLE_LOGS + + printf("usage: %s [options]\n", argv[0]); + + for (const auto & o : options) { + if (!o.grp.empty()) { + printf("\n%s:\n\n", o.grp.c_str()); + continue; + } + printf(" %-32s", o.args.c_str()); + if (o.args.length() > 30) { + printf("\n%34s", ""); + } + + const auto desc = o.desc; + size_t start = 0; + size_t end = desc.find('\n'); + while (end != std::string::npos) { + printf("%s\n%34s", desc.substr(start, end - start).c_str(), ""); + start = end + 1; + end = desc.find('\n', start); + } + + printf("%s\n", desc.substr(start).c_str()); + } + printf("\n"); } std::string gpt_params_get_system_info(const gpt_params & params) { @@ -1610,24 +1928,6 @@ std::string string_get_sortable_timestamp() { return std::string(timestamp_no_ns) + "." + std::string(timestamp_ns); } -std::string string_random_prompt(std::mt19937 & rng) { - const int r = rng() % 10; - switch (r) { - case 0: return "So"; - case 1: return "Once upon a time"; - case 2: return "When"; - case 3: return "The"; - case 4: return "After"; - case 5: return "If"; - case 6: return "import"; - case 7: return "He"; - case 8: return "She"; - case 9: return "They"; - } - - GGML_UNREACHABLE(); -} - void string_process_escapes(std::string & input) { std::size_t input_len = input.length(); std::size_t output_idx = 0; @@ -2503,6 +2803,12 @@ bool llama_should_add_bos_token(const llama_model * model) { return add_bos != -1 ? bool(add_bos) : (llama_vocab_type(model) == LLAMA_VOCAB_TYPE_SPM); } +bool llama_chat_verify_template(const std::string & tmpl) { + llama_chat_message chat[] = {{"user", "test"}}; + int res = llama_chat_apply_template(nullptr, tmpl.c_str(), chat, 1, true, nullptr, 0); + return res >= 0; +} + // // KV cache utils // @@ -2902,9 +3208,7 @@ void yaml_dump_non_result_info(FILE * stream, const gpt_params & params, const l yaml_dump_string_multiline(stream, "in_prefix", params.input_prefix.c_str()); fprintf(stream, "in_prefix_bos: %s # default: false\n", params.input_prefix_bos ? "true" : "false"); yaml_dump_string_multiline(stream, "in_suffix", params.input_prefix.c_str()); - fprintf(stream, "instruct: %s # default: false\n", params.instruct ? "true" : "false"); fprintf(stream, "interactive: %s # default: false\n", params.interactive ? "true" : "false"); - fprintf(stream, "interactive_specials: %s # default: false\n", params.interactive_specials ? "true" : "false"); fprintf(stream, "interactive_first: %s # default: false\n", params.interactive_first ? "true" : "false"); fprintf(stream, "keep: %d # default: 0\n", params.n_keep); fprintf(stream, "logdir: %s # default: unset (no logging)\n", params.logdir.c_str()); @@ -2954,7 +3258,6 @@ void yaml_dump_non_result_info(FILE * stream, const gpt_params & params, const l fprintf(stream, "prompt_cache_all: %s # default: false\n", params.prompt_cache_all ? "true" : "false"); fprintf(stream, "prompt_cache_ro: %s # default: false\n", params.prompt_cache_ro ? "true" : "false"); yaml_dump_vector_int(stream, "prompt_tokens", prompt_tokens); - fprintf(stream, "random_prompt: %s # default: false\n", params.random_prompt ? "true" : "false"); fprintf(stream, "repeat_penalty: %f # default: 1.1\n", sparams.penalty_repeat); fprintf(stream, "reverse_prompt:\n"); diff --git a/common/common.h b/common/common.h index 264504830a7f0..e0a08a61b7424 100644 --- a/common/common.h +++ b/common/common.h @@ -60,7 +60,7 @@ struct gpt_params { int32_t n_threads_batch = -1; // number of threads to use for batch processing (-1 = use n_threads) int32_t n_threads_batch_draft = -1; int32_t n_predict = -1; // new tokens to predict - int32_t n_ctx = 512; // context size + int32_t n_ctx = 0; // context size int32_t n_batch = 2048; // logical batch size for prompt processing (must be >=32 to use BLAS) int32_t n_ubatch = 512; // physical batch size for prompt processing (must be >=32 to use BLAS) int32_t n_keep = 0; // number of tokens to keep from initial prompt @@ -99,23 +99,23 @@ struct gpt_params { // // sampling parameters struct llama_sampling_params sparams; - std::string model = ""; // model path - std::string model_draft = ""; // draft model for speculative decoding + std::string model = ""; // model path + std::string model_draft = ""; // draft model for speculative decoding std::string model_alias = "unknown"; // model alias - std::string model_url = ""; // model url to download - std::string hf_repo = ""; // HF repo - std::string hf_file = ""; // HF file + std::string model_url = ""; // model url to download + std::string hf_repo = ""; // HF repo + std::string hf_file = ""; // HF file std::string prompt = ""; - std::string prompt_file = ""; // store the external prompt file name - std::string path_prompt_cache = ""; // path to file for saving/loading prompt eval state - std::string input_prefix = ""; // string to prefix user inputs with - std::string input_suffix = ""; // string to suffix user inputs with - std::vector antiprompt; // string upon seeing which more user input is prompted - std::string logdir = ""; // directory in which to save YAML log files + std::string prompt_file = ""; // store the external prompt file name + std::string path_prompt_cache = ""; // path to file for saving/loading prompt eval state + std::string input_prefix = ""; // string to prefix user inputs with + std::string input_suffix = ""; // string to suffix user inputs with + std::string logdir = ""; // directory in which to save YAML log files std::string lookup_cache_static = ""; // path of static ngram cache file for lookup decoding std::string lookup_cache_dynamic = ""; // path of dynamic ngram cache file for lookup decoding - std::string logits_file = ""; // file for saving *all* logits + std::string logits_file = ""; // file for saving *all* logits + std::vector antiprompt; // strings upon which more user input is prompted (a.k.a. reverse prompts) std::vector kv_overrides; // TODO: avoid tuple, use struct @@ -127,8 +127,8 @@ struct gpt_params { int32_t control_vector_layer_start = -1; // layer range for control vector int32_t control_vector_layer_end = -1; // layer range for control vector - int ppl_stride = 0; // stride for perplexity calculations. If left at 0, the pre-existing approach will be used. - int ppl_output_type = 0; // = 0 -> ppl output is as usual, = 1 -> ppl output is num_tokens, ppl, one per line + int32_t ppl_stride = 0; // stride for perplexity calculations. If left at 0, the pre-existing approach will be used. + int32_t ppl_output_type = 0; // = 0 -> ppl output is as usual, = 1 -> ppl output is num_tokens, ppl, one per line // (which is more convenient to use for plotting) // bool hellaswag = false; // compute HellaSwag score over random tasks from datafile supplied in prompt @@ -142,19 +142,17 @@ struct gpt_params { bool kl_divergence = false; // compute KL divergence - bool random_prompt = false; // do not randomize prompt if none provided + bool usage = false; // print usage bool use_color = false; // use color to distinguish generations and inputs - bool interactive = false; // interactive mode - bool interactive_specials = false; // whether to allow special tokens from user, during interactive mode bool special = false; // enable special token output + bool interactive = false; // interactive mode + bool interactive_first = false; // wait for user input immediately bool conversation = false; // conversation mode (does not print special tokens and suffix/prefix) - bool chatml = false; // chatml mode (used for models trained on chatml syntax) bool prompt_cache_all = false; // save user input and generations to prompt cache bool prompt_cache_ro = false; // open the prompt cache read-only and do not update it bool embedding = false; // get only sentence embedding - bool escape = false; // escape "\n", "\r", "\t", "\'", "\"", and "\\" - bool interactive_first = false; // wait for user input immediately + bool escape = true; // escape "\n", "\r", "\t", "\'", "\"", and "\\" bool multiline_input = false; // reverse the usage of `\` bool simple_io = false; // improves compatibility with subprocesses and limited consoles bool cont_batching = true; // insert new sequences for decoding on-the-fly @@ -162,10 +160,10 @@ struct gpt_params { bool input_prefix_bos = false; // prefix BOS to user inputs, preceding input_prefix bool ignore_eos = false; // ignore generated EOS tokens - bool instruct = false; // instruction mode (used for Alpaca models) bool logits_all = false; // return logits for all tokens in the batch bool use_mmap = true; // use mmap for faster loads bool use_mlock = false; // use mlock to keep model in memory + bool verbose = false; bool verbose_prompt = false; // print prompt tokens before generation bool display_prompt = true; // print prompt before generation bool infill = false; // use infill mode @@ -180,6 +178,47 @@ struct gpt_params { // multimodal models (see examples/llava) std::string mmproj = ""; // path to multimodal projector std::vector image; // path to image file(s) + + // server params + int32_t port = 8080; + int32_t timeout_read = 600; + int32_t timeout_write = timeout_read; + int32_t n_threads_http = -1; + + std::string hostname = "127.0.0.1"; + std::string public_path = ""; + std::string chat_template = ""; + std::string system_prompt = ""; + + std::vector api_keys; + + std::string ssl_file_key = ""; + std::string ssl_file_cert = ""; + + bool endpoint_slots = true; + bool endpoint_metrics = false; + + bool log_json = false; + + std::string slot_save_path; + + // batched-bench params + bool is_pp_shared = false; + + std::vector n_pp; + std::vector n_tg; + std::vector n_pl; + + // retrieval params + std::vector context_files; // context files to embed + + int32_t chunk_size = 64; // chunk size for context embedding + + std::string chunk_separator = "\n"; // chunk separator for context embedding + + // passkey params + int32_t n_junk = 250; // number of times to repeat the junk text + int32_t i_pos = -1; // position of the passkey in the junk text }; void gpt_params_handle_model_default(gpt_params & params); @@ -199,7 +238,20 @@ std::vector string_split(std::string input, char separator); std::string string_strip(const std::string & str); std::string string_get_sortable_timestamp(); -std::string string_random_prompt(std::mt19937 & rng); + +template +static std::vector string_split(const std::string & str, char delim) { + std::vector values; + std::istringstream str_stream(str); + std::string token; + while (std::getline(str_stream, token, delim)) { + T value; + std::istringstream token_stream(token); + token_stream >> value; + values.push_back(value); + } + return values; +} bool string_parse_kv_override(const char * data, std::vector & overrides); void string_process_escapes(std::string & input); @@ -282,6 +334,13 @@ std::string llama_detokenize_bpe( // defaults to true when model type is SPM, otherwise false. bool llama_should_add_bos_token(const llama_model * model); +// +// Chat template utils +// + +// Check if the template supplied via "--chat-template" is supported or not. Returns true if it's valid +bool llama_chat_verify_template(const std::string & tmpl); + // // KV cache utils // diff --git a/examples/batched-bench/README.md b/examples/batched-bench/README.md index bf951baf7f096..fa4baf6403e9e 100644 --- a/examples/batched-bench/README.md +++ b/examples/batched-bench/README.md @@ -10,16 +10,16 @@ There are 2 modes of operation: - `prompt is shared` - there is a common prompt of size `PP` used by all batches (i.e. `N_KV = PP + B*TG`) ```bash -./batched-bench MODEL_PATH [N_KV_MAX] [N_BATCH] [N_UBATCH] [IS_PP_SHARED] [NGL] [MMQ] +./batched-bench -m model.gguf -c 2048 -b 2048 -ub 512 -npp 128,256,512 -ntg 128,256 -npl 1,2,4,8,16,32 [-pps] # LLaMA 7B, F16, N_KV_MAX = 16384 (8GB), prompt not shared -./batched-bench ./models/llama-7b/ggml-model-f16.gguf 16384 2048 512 0 99 +./batched-bench -m ./models/llama-7b/ggml-model-f16.gguf -c 16384 -b 2048 -ub 512 -ngl 99 # LLaMA 7B, Q8_0, N_KV_MAX = 16384 (8GB), prompt is shared -./batched-bench ./models/llama-7b/ggml-model-q8_0.gguf 16384 2048 512 1 99 +./batched-bench -m ./models/llama-7b/ggml-model-q8_0.gguf -c 16384 -b 2048 -ub 512 -ngl 99 -pps # custom set of batches -./batched-bench ./models/llama-7b/ggml-model-q8_0.gguf 2048 512 512 0 999 0 128,256,512 128,256 1,2,4,8,16,32 +./batched-bench -m ./models/llama-7b/ggml-model-q8_0.gguf -c 2048 -b 512 -ub 512 -ngl 999 -npp 128,256,512 -ntg 128,256 -npl 1,2,4,8,16,32 ``` ## Sample results diff --git a/examples/batched-bench/batched-bench.cpp b/examples/batched-bench/batched-bench.cpp index 2924d8116f44f..718f0a61a1878 100644 --- a/examples/batched-bench/batched-bench.cpp +++ b/examples/batched-bench/batched-bench.cpp @@ -28,67 +28,27 @@ static std::vector parse_list(char * p) { return ret; } -int main(int argc, char ** argv) { - gpt_params params; - - if (argc == 1 || argv[1][0] == '-') { - printf("usage: %s MODEL_PATH [N_KV_MAX] [N_BATCH] [N_UBATCH] [FATTN] [IS_PP_SHARED] [NGL] \n" , argv[0]); - printf(" , and PL are comma-separated lists of numbers without spaces\n\n"); - printf(" example: %s ggml-model-f16.gguf 2048 2048 512 0 999 128,256,512 128,256 1,2,4,8,16,32\n\n", argv[0]); - return 1 ; - } - - int n_kv_max = 2048; - int n_batch = 2048; - int n_ubatch = 512; - bool flash_attn = false; - int is_pp_shared = 0; - int n_gpu_layers = 0; - - std::vector n_pp = { 128, 256, 512, 1024, 2048, 3584, 7680, }; - std::vector n_tg = { 128, 256, }; - std::vector n_pl = { 1, 2, 4, 8, 16, 32, }; - //std::vector n_pl = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 32, }; - - if (argc >= 2) { - params.model = argv[1]; - } - - if (argc >= 3) { - n_kv_max = std::atoi(argv[2]); - } - - if (argc >= 4) { - n_batch = std::atoi(argv[3]); - } - - if (argc >= 5) { - n_ubatch = std::atoi(argv[4]); - } - - if (argc >= 6) { - flash_attn = std::atoi(argv[5]); - } +static void print_usage(int argc, char ** argv, const gpt_params & params) { + gpt_params_print_usage(argc, argv, params); - if (argc >= 7) { - is_pp_shared = std::atoi(argv[6]); - } + LOG_TEE("\nexample usage:\n"); + LOG_TEE("\n %s -m model.gguf -c 2048 -b 2048 -ub 512 -npp 128,256,512 -ntg 128,256 -npl 1,2,4,8,16,32 [-pps]\n", argv[0]); + LOG_TEE("\n"); +} - if (argc >= 8) { - n_gpu_layers = std::atoi(argv[7]); - } +int main(int argc, char ** argv) { + gpt_params params; - if (argc >= 9) { - n_pp = parse_list(argv[8]); + if (!gpt_params_parse(argc, argv, params)) { + print_usage(argc, argv, params); + return 1; } - if (argc >= 10) { - n_tg = parse_list(argv[9]); - } + int is_pp_shared = params.is_pp_shared; - if (argc >= 11) { - n_pl = parse_list(argv[10]); - } + std::vector n_pp = params.n_pp; + std::vector n_tg = params.n_tg; + std::vector n_pl = params.n_pl; // init LLM @@ -97,12 +57,7 @@ int main(int argc, char ** argv) { // initialize the model - llama_model_params model_params = llama_model_default_params(); - - const std::vector t_split(llama_max_devices(), 0.0f); - - model_params.n_gpu_layers = n_gpu_layers; - model_params.tensor_split = t_split.data(); + llama_model_params model_params = llama_model_params_from_gpt_params(params); llama_model * model = llama_load_model_from_file(params.model.c_str(), model_params); @@ -111,16 +66,7 @@ int main(int argc, char ** argv) { return 1; } - llama_context_params ctx_params = llama_context_default_params(); - - ctx_params.seed = 1234; - ctx_params.n_ctx = n_kv_max; - ctx_params.n_batch = n_batch; - ctx_params.n_ubatch = n_ubatch; - ctx_params.flash_attn = flash_attn; - - ctx_params.n_threads = params.n_threads; - ctx_params.n_threads_batch = params.n_threads_batch == -1 ? params.n_threads : params.n_threads_batch; + llama_context_params ctx_params = llama_context_params_from_gpt_params(params); // ensure enough sequences are available ctx_params.n_seq_max = *std::max_element(n_pl.begin(), n_pl.end()); @@ -132,6 +78,8 @@ int main(int argc, char ** argv) { return 1; } + const int32_t n_kv_max = llama_n_ctx(ctx); + llama_batch batch = llama_batch_init(n_kv_max, 0, 1); // decode in batches of ctx_params.n_batch tokens @@ -175,7 +123,7 @@ int main(int argc, char ** argv) { } LOG_TEE("\n"); - LOG_TEE("%s: n_kv_max = %d, n_batch = %d, n_ubatch = %d, flash_attn = %d, is_pp_shared = %d, n_gpu_layers = %d, n_threads = %u, n_threads_batch = %u\n", __func__, n_kv_max, n_batch, n_ubatch, flash_attn, is_pp_shared, n_gpu_layers, ctx_params.n_threads, ctx_params.n_threads_batch); + LOG_TEE("%s: n_kv_max = %d, n_batch = %d, n_ubatch = %d, flash_attn = %d, is_pp_shared = %d, n_gpu_layers = %d, n_threads = %u, n_threads_batch = %u\n", __func__, n_kv_max, params.n_batch, params.n_ubatch, params.flash_attn, params.is_pp_shared, params.n_gpu_layers, ctx_params.n_threads, ctx_params.n_threads_batch); LOG_TEE("\n"); LOG_TEE("|%6s | %6s | %4s | %6s | %8s | %8s | %8s | %8s | %8s | %8s |\n", "PP", "TG", "B", "N_KV", "T_PP s", "S_PP t/s", "T_TG s", "S_TG t/s", "T s", "S t/s"); diff --git a/examples/batched/README.md b/examples/batched/README.md index 5d730331769fb..ed204c3088882 100644 --- a/examples/batched/README.md +++ b/examples/batched/README.md @@ -3,7 +3,7 @@ The example demonstrates batched generation from a given prompt ```bash -./batched ./models/llama-7b-v2/ggml-model-f16.gguf "Hello my name is" 4 +./batched -m ./models/llama-7b-v2/ggml-model-f16.gguf -p "Hello my name is" -np 4 ... diff --git a/examples/batched/batched.cpp b/examples/batched/batched.cpp index 591bc6e57645c..62d9b144d3340 100644 --- a/examples/batched/batched.cpp +++ b/examples/batched/batched.cpp @@ -7,48 +7,31 @@ #include #include -int main(int argc, char ** argv) { - gpt_params params; - - if (argc == 1 || argv[1][0] == '-') { - printf("usage: %s MODEL_PATH [PROMPT] [PARALLEL] [LEN] [NGL]\n" , argv[0]); - return 1 ; - } - - // number of parallel batches - int n_parallel = 1; +static void print_usage(int argc, char ** argv, const gpt_params & params) { + gpt_params_print_usage(argc, argv, params); - // total length of the sequences including the prompt - int n_len = 32; - - // number of layers to offload to the GPU - int n_gpu_layers = 0; - - if (argc >= 2) { - params.model = argv[1]; - } + LOG_TEE("\nexample usage:\n"); + LOG_TEE("\n %s -m model.gguf -p \"Hello my name is\" -n 32 -np 4\n", argv[0]); + LOG_TEE("\n"); +} - if (argc >= 3) { - params.prompt = argv[2]; - } +int main(int argc, char ** argv) { + gpt_params params; - if (argc >= 4) { - n_parallel = std::atoi(argv[3]); - } + params.prompt = "Hello my name is"; + params.n_predict = 32; - if (argc >= 5) { - n_len = std::atoi(argv[4]); + if (!gpt_params_parse(argc, argv, params)) { + print_usage(argc, argv, params); + return 1; } - if (argc >= 6) { - n_gpu_layers = std::atoi(argv[5]); - } - if (params.prompt.empty()) { - params.prompt = "Hello my name is"; - } + // number of parallel batches + int n_parallel = params.n_parallel; - string_process_escapes(params.prompt); + // total length of the sequences including the prompt + int n_predict = 32; // init LLM @@ -57,9 +40,7 @@ int main(int argc, char ** argv) { // initialize the model - llama_model_params model_params = llama_model_default_params(); - - model_params.n_gpu_layers = n_gpu_layers; + llama_model_params model_params = llama_model_params_from_gpt_params(params); llama_model * model = llama_load_model_from_file(params.model.c_str(), model_params); @@ -73,18 +54,14 @@ int main(int argc, char ** argv) { std::vector tokens_list; tokens_list = ::llama_tokenize(model, params.prompt, true); - const int n_kv_req = tokens_list.size() + (n_len - tokens_list.size())*n_parallel; + const int n_kv_req = tokens_list.size() + (n_predict - tokens_list.size())*n_parallel; // initialize the context - llama_context_params ctx_params = llama_context_default_params(); + llama_context_params ctx_params = llama_context_params_from_gpt_params(params); - ctx_params.seed = 1234; ctx_params.n_ctx = n_kv_req; - ctx_params.n_batch = std::max(n_len, n_parallel); - ctx_params.n_seq_max = n_parallel; - ctx_params.n_threads = params.n_threads; - ctx_params.n_threads_batch = params.n_threads_batch == -1 ? params.n_threads : params.n_threads_batch; + ctx_params.n_batch = std::max(n_predict, n_parallel); llama_context * ctx = llama_new_context_with_model(model, ctx_params); @@ -93,9 +70,9 @@ int main(int argc, char ** argv) { return 1; } - const int n_ctx = llama_n_ctx(ctx); + const int n_ctx = llama_n_ctx(ctx); - LOG_TEE("\n%s: n_len = %d, n_ctx = %d, n_batch = %u, n_parallel = %d, n_kv_req = %d\n", __func__, n_len, n_ctx, ctx_params.n_batch, n_parallel, n_kv_req); + LOG_TEE("\n%s: n_predict = %d, n_ctx = %d, n_batch = %u, n_parallel = %d, n_kv_req = %d\n", __func__, n_predict, n_ctx, ctx_params.n_batch, n_parallel, n_kv_req); // make sure the KV cache is big enough to hold all the prompt and generated tokens if (n_kv_req > n_ctx) { @@ -156,7 +133,7 @@ int main(int argc, char ** argv) { const auto t_main_start = ggml_time_us(); - while (n_cur <= n_len) { + while (n_cur <= n_predict) { // prepare the next batch llama_batch_clear(batch); @@ -192,7 +169,7 @@ int main(int argc, char ** argv) { //const llama_token new_token_id = llama_sample_token_greedy(ctx, &candidates_p); // is it an end of generation? -> mark the stream as finished - if (llama_token_is_eog(model, new_token_id) || n_cur == n_len) { + if (llama_token_is_eog(model, new_token_id) || n_cur == n_predict) { i_batch[i] = -1; LOG_TEE("\n"); if (n_parallel > 1) { diff --git a/examples/embedding/embedding.cpp b/examples/embedding/embedding.cpp index 004399b5f7eb8..244751e003d9e 100644 --- a/examples/embedding/embedding.cpp +++ b/examples/embedding/embedding.cpp @@ -63,6 +63,7 @@ int main(int argc, char ** argv) { gpt_params params; if (!gpt_params_parse(argc, argv, params)) { + gpt_params_print_usage(argc, argv, params); return 1; } @@ -79,9 +80,6 @@ int main(int argc, char ** argv) { fprintf(stderr, "%s: seed = %u\n", __func__, params.seed); std::mt19937 rng(params.seed); - if (params.random_prompt) { - params.prompt = string_random_prompt(rng); - } llama_backend_init(); llama_numa_init(params.numa); diff --git a/examples/eval-callback/eval-callback.cpp b/examples/eval-callback/eval-callback.cpp index 51d67d6d97ae6..64cd338c26351 100644 --- a/examples/eval-callback/eval-callback.cpp +++ b/examples/eval-callback/eval-callback.cpp @@ -140,20 +140,18 @@ static bool run(llama_context * ctx, const gpt_params & params) { } int main(int argc, char ** argv) { - callback_data cb_data; gpt_params params; + if (!gpt_params_parse(argc, argv, params)) { + gpt_params_print_usage(argc, argv, params); return 1; } print_build_info(); std::mt19937 rng(params.seed); - if (params.random_prompt) { - params.prompt = string_random_prompt(rng); - } llama_backend_init(); llama_numa_init(params.numa); diff --git a/examples/gguf-split/tests.sh b/examples/gguf-split/tests.sh index 7ca6fa7f20de8..3bc0fa47110e3 100755 --- a/examples/gguf-split/tests.sh +++ b/examples/gguf-split/tests.sh @@ -41,7 +41,7 @@ echo PASS echo # 2b. Test the sharded model is loading properly -$MAIN --model $WORK_PATH/ggml-model-split-00001-of-00006.gguf --random-prompt --n-predict 32 +$MAIN --model $WORK_PATH/ggml-model-split-00001-of-00006.gguf --n-predict 32 echo PASS echo @@ -51,7 +51,7 @@ echo PASS echo # 3b. Test the merged model is loading properly -$MAIN --model $WORK_PATH/ggml-model-merge.gguf --random-prompt --n-predict 32 +$MAIN --model $WORK_PATH/ggml-model-merge.gguf --n-predict 32 echo PASS echo @@ -61,7 +61,7 @@ echo PASS echo # 4b. Test the sharded model is loading properly -$MAIN --model $WORK_PATH/ggml-model-split-32-tensors-00001-of-00007.gguf --random-prompt --n-predict 32 +$MAIN --model $WORK_PATH/ggml-model-split-32-tensors-00001-of-00007.gguf --n-predict 32 echo PASS echo @@ -71,7 +71,7 @@ echo #echo # 5b. Test the merged model is loading properly -#$MAIN --model $WORK_PATH/ggml-model-merge-2.gguf --random-prompt --n-predict 32 +#$MAIN --model $WORK_PATH/ggml-model-merge-2.gguf --n-predict 32 #echo PASS #echo @@ -81,7 +81,7 @@ echo PASS echo # 6b. Test the sharded model is loading properly -$MAIN --model $WORK_PATH/ggml-model-split-2G-00001-of-00002.gguf --random-prompt --n-predict 32 +$MAIN --model $WORK_PATH/ggml-model-split-2G-00001-of-00002.gguf --n-predict 32 echo PASS echo diff --git a/examples/gritlm/gritlm.cpp b/examples/gritlm/gritlm.cpp index 52fd719b38ee5..2135157916c97 100644 --- a/examples/gritlm/gritlm.cpp +++ b/examples/gritlm/gritlm.cpp @@ -153,7 +153,9 @@ static std::string gritlm_instruction(const std::string & instruction) { int main(int argc, char * argv[]) { gpt_params params; + if (!gpt_params_parse(argc, argv, params)) { + gpt_params_print_usage(argc, argv, params); return 1; } diff --git a/examples/imatrix/imatrix.cpp b/examples/imatrix/imatrix.cpp index 25a2351cc64d3..e050c09d2f38b 100644 --- a/examples/imatrix/imatrix.cpp +++ b/examples/imatrix/imatrix.cpp @@ -533,7 +533,6 @@ static bool compute_imatrix(llama_context * ctx, const gpt_params & params, bool } int main(int argc, char ** argv) { - StatParams sparams; std::string prev_result_file; std::string combine_files; @@ -581,7 +580,9 @@ int main(int argc, char ** argv) { gpt_params params; params.n_batch = 512; - if (!gpt_params_parse(args.size(), args.data(), params)) { + + if (!gpt_params_parse(argc, argv, params)) { + gpt_params_print_usage(argc, argv, params); return 1; } @@ -597,9 +598,6 @@ int main(int argc, char ** argv) { fprintf(stderr, "%s: seed = %u\n", __func__, params.seed); std::mt19937 rng(params.seed); - if (params.random_prompt) { - params.prompt = string_random_prompt(rng); - } sparams.dataset = params.prompt_file; g_collector.set_parameters(std::move(sparams)); diff --git a/examples/infill/infill.cpp b/examples/infill/infill.cpp index 539f781847893..0e4ec79c693fa 100644 --- a/examples/infill/infill.cpp +++ b/examples/infill/infill.cpp @@ -107,6 +107,7 @@ int main(int argc, char ** argv) { g_params = ¶ms; if (!gpt_params_parse(argc, argv, params)) { + gpt_params_print_usage(argc, argv, params); return 1; } @@ -139,27 +140,6 @@ int main(int argc, char ** argv) { LOG_TEE("%s: warning: minimum context size is 8, using minimum size.\n", __func__); params.n_ctx = 8; } - if (params.instruct) { - printf("\n************\n"); - printf("%s: please use the 'main' tool for instruct mode\n", __func__); - printf("************\n\n"); - - return 0; - } - if (params.chatml) { - printf("\n************\n"); - printf("%s: please use the 'main' tool for chatml mode\n", __func__); - printf("************\n\n"); - - return 0; - } - if (!params.antiprompt.empty()) { - printf("\n************\n"); - printf("%s: please use the 'main' tool for antiprompt mode\n", __func__); - printf("************\n\n"); - - return 0; - } if (!params.interactive_first && (params.input_prefix.empty() && params.input_suffix.empty())) { printf("\n************\n"); printf("%s: please use '--interactive_first' or specify '--in_prefix' and/or '--in_suffix'\n", __func__); @@ -167,20 +147,6 @@ int main(int argc, char ** argv) { return 0; } - if (params.random_prompt) { - printf("\n************\n"); - printf("%s: please use the 'main' tool for random prompt mode\n", __func__); - printf("************\n\n"); - - return 0; - } - if (!params.path_prompt_cache.empty()) { - printf("\n************\n"); - printf("%s: infill does not support prompt caching\n", __func__); - printf("************\n\n"); - - return 0; - } if (params.rope_freq_base != 0.0) { LOG_TEE("%s: warning: changing RoPE frequency base to %g.\n", __func__, params.rope_freq_base); @@ -207,17 +173,13 @@ int main(int argc, char ** argv) { llama_model * model; llama_context * ctx; - llama_context * ctx_guidance = NULL; + g_model = &model; g_ctx = &ctx; // load the model and apply lora adapter, if any LOG("%s: load the model and apply lora adapter, if any\n", __func__); std::tie(model, ctx) = llama_init_from_gpt_params(params); - if (sparams.cfg_scale > 1.f) { - struct llama_context_params lparams = llama_context_params_from_gpt_params(params); - ctx_guidance = llama_new_context_with_model(model, lparams); - } if (model == NULL) { LOG_TEE("%s: error: unable to load model\n", __func__); @@ -273,25 +235,6 @@ int main(int argc, char ** argv) { LOG("embd_inp was considered empty and bos was added: %s\n", LOG_TOKENS_TOSTR_PRETTY(ctx, embd_inp).c_str()); } - // Tokenize negative prompt - std::vector guidance_inp; - int guidance_offset = 0; - int original_prompt_len = 0; - if (ctx_guidance) { - LOG("cfg_negative_prompt: \"%s\"\n", log_tostr(sparams.cfg_negative_prompt)); - - guidance_inp = ::llama_tokenize(ctx_guidance, sparams.cfg_negative_prompt, true); - LOG("guidance_inp tokenized: %s\n", LOG_TOKENS_TOSTR_PRETTY(ctx_guidance, guidance_inp).c_str()); - - std::vector original_inp = ::llama_tokenize(ctx, params.prompt, true); - LOG("original_inp tokenized: %s\n", LOG_TOKENS_TOSTR_PRETTY(ctx, original_inp).c_str()); - - original_prompt_len = original_inp.size(); - guidance_offset = (int)guidance_inp.size() - original_prompt_len; - LOG("original_prompt_len: %s", log_tostr(original_prompt_len)); - LOG("guidance_offset: %s", log_tostr(guidance_offset)); - } - if ((int) embd_inp.size() > n_ctx - 4) { LOG_TEE("%s: error: prompt is too long (%d tokens, max %d)\n", __func__, (int) embd_inp.size(), n_ctx - 4); return 1; @@ -319,15 +262,6 @@ int main(int argc, char ** argv) { LOG_TEE("%6d -> '%s'\n", embd_inp[i], llama_token_to_piece(ctx, embd_inp[i]).c_str()); } - if (ctx_guidance) { - LOG_TEE("\n"); - LOG_TEE("%s: negative prompt: '%s'\n", __func__, sparams.cfg_negative_prompt.c_str()); - LOG_TEE("%s: number of tokens in negative prompt = %zu\n", __func__, guidance_inp.size()); - for (int i = 0; i < (int) guidance_inp.size(); i++) { - LOG_TEE("%6d -> '%s'\n", guidance_inp[i], llama_token_to_piece(ctx, guidance_inp[i]).c_str()); - } - } - if (params.n_keep > 0) { LOG_TEE("%s: static prompt based on n_keep: '", __func__); for (int i = 0; i < params.n_keep; i++) { @@ -395,12 +329,11 @@ int main(int argc, char ** argv) { is_interacting = params.interactive_first; } - bool input_echo = true; + bool input_echo = true; - int n_past = 0; - int n_remain = params.n_predict; - int n_consumed = 0; - int n_past_guidance = 0; + int n_past = 0; + int n_remain = params.n_predict; + int n_consumed = 0; std::vector input_tokens; g_input_tokens = &input_tokens; std::vector output_tokens; g_output_tokens = &output_tokens; @@ -410,7 +343,6 @@ int main(int argc, char ** argv) { console::set_display(console::prompt); std::vector embd; - std::vector embd_guidance; struct llama_sampling_context * ctx_sampling = llama_sampling_init(sparams); @@ -436,7 +368,7 @@ int main(int argc, char ** argv) { // if we run out of context: // - take the n_keep first tokens from the original prompt (via n_past) // - take half of the last (n_ctx - n_keep) tokens and recompute the logits in batches - if (n_past + (int) embd.size() + std::max(0, guidance_offset) > n_ctx) { + if (n_past + (int) embd.size() > n_ctx) { if (params.n_predict == -2) { LOG_TEE("\n\n%s: context full and n_predict == -%d => stopping\n", __func__, params.n_predict); break; @@ -453,11 +385,7 @@ int main(int argc, char ** argv) { n_past -= n_discard; - if (ctx_guidance) { - n_past_guidance -= n_discard; - } - - LOG("after swap: n_past = %d, n_past_guidance = %d\n", n_past, n_past_guidance); + LOG("after swap: n_past = %d\n", n_past); LOG("embd: %s\n", LOG_TOKENS_TOSTR_PRETTY(ctx, embd).c_str()); @@ -465,45 +393,6 @@ int main(int argc, char ** argv) { // evaluate tokens in batches // embd is typically prepared beforehand to fit within a batch, but not always - - if (ctx_guidance) { - int input_size = 0; - llama_token * input_buf = NULL; - - if (n_past_guidance < (int) guidance_inp.size()) { - // Guidance context should have the same data with these modifications: - // - // * Replace the initial prompt - // * Shift everything by guidance_offset - embd_guidance = guidance_inp; - if (embd.begin() + original_prompt_len < embd.end()) { - embd_guidance.insert( - embd_guidance.end(), - embd.begin() + original_prompt_len, - embd.end() - ); - } - - input_buf = embd_guidance.data(); - input_size = embd_guidance.size(); - - LOG("guidance context: %s\n", LOG_TOKENS_TOSTR_PRETTY(ctx, embd_guidance).c_str()); - } else { - input_buf = embd.data(); - input_size = embd.size(); - } - - for (int i = 0; i < input_size; i += params.n_batch) { - int n_eval = std::min(input_size - i, params.n_batch); - if (llama_decode(ctx_guidance, llama_batch_get_one(input_buf + i, n_eval, n_past_guidance, 0))) { - LOG_TEE("%s : failed to eval\n", __func__); - return 1; - } - - n_past_guidance += n_eval; - } - } - for (int i = 0; i < (int) embd.size(); i += params.n_batch) { int n_eval = (int) embd.size() - i; if (n_eval > params.n_batch) { @@ -525,11 +414,9 @@ int main(int argc, char ** argv) { } embd.clear(); - embd_guidance.clear(); if ((int) embd_inp.size() <= n_consumed && !is_interacting) { - - const llama_token id = llama_sampling_sample(ctx_sampling, ctx, ctx_guidance); + const llama_token id = llama_sampling_sample(ctx_sampling, ctx, nullptr); llama_sampling_accept(ctx_sampling, ctx, id, true); @@ -583,7 +470,6 @@ int main(int argc, char ** argv) { // if not currently processing queued inputs; if ((int) embd_inp.size() <= n_consumed) { - // deal with eot token in infill mode if ((llama_sampling_last(ctx_sampling) == llama_token_eot(model) || is_interacting) && params.interactive){ if (is_interacting && !params.interactive_first) { @@ -644,7 +530,6 @@ int main(int argc, char ** argv) { embd_inp.insert(embd_inp.end(), inp_sfx.begin(), inp_sfx.end()); embd_inp.push_back(llama_token_middle(model)); embd.clear(); - embd_guidance.clear(); n_remain = params.n_predict; n_past = 0; n_consumed = 0; @@ -751,7 +636,6 @@ int main(int argc, char ** argv) { llama_print_timings(ctx); write_logfile(ctx, params, model, input_tokens, output_ss.str(), output_tokens); - if (ctx_guidance) { llama_free(ctx_guidance); } llama_free(ctx); llama_free_model(model); diff --git a/examples/llama-bench/llama-bench.cpp b/examples/llama-bench/llama-bench.cpp index fa7ad1bdb9e4a..5c31548a6c25c 100644 --- a/examples/llama-bench/llama-bench.cpp +++ b/examples/llama-bench/llama-bench.cpp @@ -41,20 +41,6 @@ static std::string join(const std::vector & values, const std::string & delim return str.str(); } -template -static std::vector split(const std::string & str, char delim) { - std::vector values; - std::istringstream str_stream(str); - std::string token; - while (std::getline(str_stream, token, delim)) { - T value; - std::istringstream token_stream(token); - token_stream >> value; - values.push_back(value); - } - return values; -} - template static std::vector transform_to_str(const std::vector & values, F f) { std::vector str_values; @@ -322,28 +308,28 @@ static cmd_params parse_cmd_params(int argc, char ** argv) { invalid_param = true; break; } - auto p = split(argv[i], split_delim); + auto p = string_split(argv[i], split_delim); params.model.insert(params.model.end(), p.begin(), p.end()); } else if (arg == "-p" || arg == "--n-prompt") { if (++i >= argc) { invalid_param = true; break; } - auto p = split(argv[i], split_delim); + auto p = string_split(argv[i], split_delim); params.n_prompt.insert(params.n_prompt.end(), p.begin(), p.end()); } else if (arg == "-n" || arg == "--n-gen") { if (++i >= argc) { invalid_param = true; break; } - auto p = split(argv[i], split_delim); + auto p = string_split(argv[i], split_delim); params.n_gen.insert(params.n_gen.end(), p.begin(), p.end()); } else if (arg == "-pg") { if (++i >= argc) { invalid_param = true; break; } - auto p = split(argv[i], ','); + auto p = string_split(argv[i], ','); if (p.size() != 2) { invalid_param = true; break; @@ -354,21 +340,21 @@ static cmd_params parse_cmd_params(int argc, char ** argv) { invalid_param = true; break; } - auto p = split(argv[i], split_delim); + auto p = string_split(argv[i], split_delim); params.n_batch.insert(params.n_batch.end(), p.begin(), p.end()); } else if (arg == "-ub" || arg == "--ubatch-size") { if (++i >= argc) { invalid_param = true; break; } - auto p = split(argv[i], split_delim); + auto p = string_split(argv[i], split_delim); params.n_ubatch.insert(params.n_ubatch.end(), p.begin(), p.end()); } else if (arg == "-ctk" || arg == "--cache-type-k") { if (++i >= argc) { invalid_param = true; break; } - auto p = split(argv[i], split_delim); + auto p = string_split(argv[i], split_delim); std::vector types; for (const auto & t : p) { ggml_type gt = ggml_type_from_name(t); @@ -384,7 +370,7 @@ static cmd_params parse_cmd_params(int argc, char ** argv) { invalid_param = true; break; } - auto p = split(argv[i], split_delim); + auto p = string_split(argv[i], split_delim); std::vector types; for (const auto & t : p) { ggml_type gt = ggml_type_from_name(t); @@ -400,14 +386,14 @@ static cmd_params parse_cmd_params(int argc, char ** argv) { invalid_param = true; break; } - auto p = split(argv[i], split_delim); + auto p = string_split(argv[i], split_delim); params.n_threads.insert(params.n_threads.end(), p.begin(), p.end()); } else if (arg == "-ngl" || arg == "--n-gpu-layers") { if (++i >= argc) { invalid_param = true; break; } - auto p = split(argv[i], split_delim); + auto p = string_split(argv[i], split_delim); params.n_gpu_layers.insert(params.n_gpu_layers.end(), p.begin(), p.end()); } else if (arg == "-rpc" || arg == "--rpc") { if (++i >= argc) { @@ -420,7 +406,7 @@ static cmd_params parse_cmd_params(int argc, char ** argv) { invalid_param = true; break; } - auto p = split(argv[i], split_delim); + auto p = string_split(argv[i], split_delim); std::vector modes; for (const auto & m : p) { llama_split_mode mode; @@ -442,13 +428,13 @@ static cmd_params parse_cmd_params(int argc, char ** argv) { invalid_param = true; break; } - params.main_gpu = split(argv[i], split_delim); + params.main_gpu = string_split(argv[i], split_delim); } else if (arg == "-nkvo" || arg == "--no-kv-offload") { if (++i >= argc) { invalid_param = true; break; } - auto p = split(argv[i], split_delim); + auto p = string_split(argv[i], split_delim); params.no_kv_offload.insert(params.no_kv_offload.end(), p.begin(), p.end()); } else if (arg == "--numa") { if (++i >= argc) { @@ -466,28 +452,28 @@ static cmd_params parse_cmd_params(int argc, char ** argv) { invalid_param = true; break; } - auto p = split(argv[i], split_delim); + auto p = string_split(argv[i], split_delim); params.flash_attn.insert(params.flash_attn.end(), p.begin(), p.end()); } else if (arg == "-mmp" || arg == "--mmap") { if (++i >= argc) { invalid_param = true; break; } - auto p = split(argv[i], split_delim); + auto p = string_split(argv[i], split_delim); params.use_mmap.insert(params.use_mmap.end(), p.begin(), p.end()); } else if (arg == "-embd" || arg == "--embeddings") { if (++i >= argc) { invalid_param = true; break; } - auto p = split(argv[i], split_delim); + auto p = string_split(argv[i], split_delim); params.embeddings.insert(params.embeddings.end(), p.begin(), p.end()); } else if (arg == "-ts" || arg == "--tensor-split") { if (++i >= argc) { invalid_param = true; break; } - for (auto ts : split(argv[i], split_delim)) { + for (auto ts : string_split(argv[i], split_delim)) { // split string by ; and / const std::regex regex{R"([;/]+)"}; std::sregex_token_iterator it{ts.begin(), ts.end(), regex, -1}; diff --git a/examples/llava/llava-cli.cpp b/examples/llava/llava-cli.cpp index c974900f21e20..8c7dd2ae3d0dc 100644 --- a/examples/llava/llava-cli.cpp +++ b/examples/llava/llava-cli.cpp @@ -112,9 +112,12 @@ struct llava_context { struct llama_model * model = NULL; }; -static void show_additional_info(int /*argc*/, char ** argv) { - LOG_TEE("\n example usage: %s -m --mmproj --image --image [--temp 0.1] [-p \"describe the image in detail.\"]\n", argv[0]); - LOG_TEE(" note: a lower temperature value like 0.1 is recommended for better quality.\n"); +static void print_usage(int argc, char ** argv, const gpt_params & params) { + gpt_params_print_usage(argc, argv, params); + + LOG_TEE("\n example usage:\n"); + LOG_TEE("\n %s -m --mmproj --image --image [--temp 0.1] [-p \"describe the image in detail.\"]\n", argv[0]); + LOG_TEE("\n note: a lower temperature value like 0.1 is recommended for better quality.\n"); } static struct llava_image_embed * load_image(llava_context * ctx_llava, gpt_params * params, const std::string & fname) { @@ -278,7 +281,7 @@ int main(int argc, char ** argv) { gpt_params params; if (!gpt_params_parse(argc, argv, params)) { - show_additional_info(argc, argv); + print_usage(argc, argv, params); return 1; } @@ -290,8 +293,7 @@ int main(int argc, char ** argv) { #endif // LOG_DISABLE_LOGS if (params.mmproj.empty() || (params.image.empty() && !prompt_contains_image(params.prompt))) { - gpt_params_print_usage(argc, argv, params); - show_additional_info(argc, argv); + print_usage(argc, argv, {}); return 1; } auto model = llava_init(¶ms); diff --git a/examples/lookahead/lookahead.cpp b/examples/lookahead/lookahead.cpp index 54f060a85b263..fb20ad93f9c1d 100644 --- a/examples/lookahead/lookahead.cpp +++ b/examples/lookahead/lookahead.cpp @@ -37,7 +37,8 @@ struct ngram_container { int main(int argc, char ** argv) { gpt_params params; - if (gpt_params_parse(argc, argv, params) == false) { + if (!gpt_params_parse(argc, argv, params)) { + gpt_params_print_usage(argc, argv, params); return 1; } diff --git a/examples/lookup/lookup-create.cpp b/examples/lookup/lookup-create.cpp index 1c230c9667c71..d713f6f2194a8 100644 --- a/examples/lookup/lookup-create.cpp +++ b/examples/lookup/lookup-create.cpp @@ -14,8 +14,10 @@ int main(int argc, char ** argv){ gpt_params params; if (!gpt_params_parse(argc, argv, params)) { + gpt_params_print_usage(argc, argv, params); return 1; } + // init llama.cpp llama_backend_init(); llama_numa_init(params.numa); diff --git a/examples/lookup/lookup-stats.cpp b/examples/lookup/lookup-stats.cpp index 87ecc0a4f1394..0b171c87273d1 100644 --- a/examples/lookup/lookup-stats.cpp +++ b/examples/lookup/lookup-stats.cpp @@ -16,6 +16,7 @@ int main(int argc, char ** argv){ gpt_params params; if (!gpt_params_parse(argc, argv, params)) { + gpt_params_print_usage(argc, argv, params); return 1; } diff --git a/examples/lookup/lookup.cpp b/examples/lookup/lookup.cpp index 83dbee91a8362..80ecd925d5962 100644 --- a/examples/lookup/lookup.cpp +++ b/examples/lookup/lookup.cpp @@ -15,6 +15,7 @@ int main(int argc, char ** argv){ gpt_params params; if (!gpt_params_parse(argc, argv, params)) { + gpt_params_print_usage(argc, argv, params); return 1; } diff --git a/examples/main/README.md b/examples/main/README.md index ee930f4e79a0d..4eaa684758b3e 100644 --- a/examples/main/README.md +++ b/examples/main/README.md @@ -53,13 +53,13 @@ The following command generates "infinite" text from a starting prompt (you can #### Unix-based systems (Linux, macOS, etc.): ```bash -./main -m models/7B/ggml-model.bin --ignore-eos -n -1 --random-prompt +./main -m models/7B/ggml-model.bin --ignore-eos -n -1 ``` #### Windows: ```powershell -main.exe -m models\7B\ggml-model.bin --ignore-eos -n -1 --random-prompt +main.exe -m models\7B\ggml-model.bin --ignore-eos -n -1 ``` ## Common Options @@ -80,7 +80,6 @@ The `main` program provides several ways to interact with the LLaMA models using - `--prompt PROMPT`: Provide a prompt directly as a command-line option. - `--file FNAME`: Provide a file containing a prompt or multiple prompts. - `--interactive-first`: Run the program in interactive mode and wait for input right away. (More on this below.) -- `--random-prompt`: Start with a randomized prompt. ## Interaction diff --git a/examples/main/main.cpp b/examples/main/main.cpp index 44949ba869e70..b97b7b7937f02 100644 --- a/examples/main/main.cpp +++ b/examples/main/main.cpp @@ -122,8 +122,10 @@ int main(int argc, char ** argv) { g_params = ¶ms; if (!gpt_params_parse(argc, argv, params)) { + gpt_params_print_usage(argc, argv, params); return 1; } + llama_sampling_params & sparams = params.sparams; #ifndef LOG_DISABLE_LOGS @@ -180,9 +182,6 @@ int main(int argc, char ** argv) { LOG_TEE("%s: seed = %u\n", __func__, params.seed); std::mt19937 rng(params.seed); - if (params.random_prompt) { - params.prompt = string_random_prompt(rng); - } LOG("%s: llama backend init\n", __func__); llama_backend_init(); @@ -250,11 +249,8 @@ int main(int argc, char ** argv) { std::vector embd_inp; - if (params.interactive_first || params.instruct || params.chatml || !params.prompt.empty() || session_tokens.empty()) { + if (params.interactive_first || !params.prompt.empty() || session_tokens.empty()) { LOG("tokenize the prompt\n"); - if (params.chatml) { - params.prompt = "<|im_start|>system\n" + params.prompt + "<|im_end|>"; - } embd_inp = ::llama_tokenize(ctx, params.prompt, true, true); } else { LOG("use session tokens\n"); @@ -332,37 +328,13 @@ int main(int argc, char ** argv) { } // number of tokens to keep when resetting context - if (params.n_keep < 0 || params.n_keep > (int) embd_inp.size() || params.instruct || params.chatml) { + if (params.n_keep < 0 || params.n_keep > (int) embd_inp.size()) { params.n_keep = (int)embd_inp.size(); } else { params.n_keep += add_bos; // always keep the BOS token } - // prefix & suffix for instruct mode - const auto inp_pfx = ::llama_tokenize(ctx, "\n\n### Instruction:\n\n", true, true); - const auto inp_sfx = ::llama_tokenize(ctx, "\n\n### Response:\n\n", false, true); - - LOG("inp_pfx: %s\n", LOG_TOKENS_TOSTR_PRETTY(ctx, inp_pfx).c_str()); - LOG("inp_sfx: %s\n", LOG_TOKENS_TOSTR_PRETTY(ctx, inp_sfx).c_str()); - - // chatml prefix & suffix - const auto cml_pfx = ::llama_tokenize(ctx, "\n<|im_start|>user\n", true, true); - const auto cml_sfx = ::llama_tokenize(ctx, "<|im_end|>\n<|im_start|>assistant\n", false, true); - - LOG("cml_pfx: %s\n", LOG_TOKENS_TOSTR_PRETTY(ctx, cml_pfx).c_str()); - LOG("cml_sfx: %s\n", LOG_TOKENS_TOSTR_PRETTY(ctx, cml_sfx).c_str()); - - // in instruct mode, we inject a prefix and a suffix to each input by the user - if (params.instruct) { - params.interactive_first = true; - params.antiprompt.emplace_back("### Instruction:\n\n"); - } - // similar for chatml mode - else if (params.chatml) { - params.interactive_first = true; - params.antiprompt.emplace_back("<|im_start|>user\n"); - } - else if (params.conversation) { + if (params.conversation) { params.interactive_first = true; } @@ -823,15 +795,13 @@ int main(int argc, char ** argv) { is_interacting = true; printf("\n"); - } else if (params.instruct || params.chatml) { - is_interacting = true; } } if (n_past > 0 && is_interacting) { LOG("waiting for user input\n"); - if (params.conversation || params.instruct || params.chatml) { + if (params.conversation) { printf("\n> "); } @@ -874,24 +844,12 @@ int main(int argc, char ** argv) { const size_t original_size = embd_inp.size(); - // instruct mode: insert instruction prefix - if (params.instruct && !is_antiprompt) { - LOG("inserting instruction prefix\n"); - n_consumed = embd_inp.size(); - embd_inp.insert(embd_inp.end(), inp_pfx.begin(), inp_pfx.end()); - } - // chatml mode: insert user chat prefix - if (params.chatml && !is_antiprompt) { - LOG("inserting chatml prefix\n"); - n_consumed = embd_inp.size(); - embd_inp.insert(embd_inp.end(), cml_pfx.begin(), cml_pfx.end()); - } if (params.escape) { string_process_escapes(buffer); } const auto line_pfx = ::llama_tokenize(ctx, params.input_prefix, false, true); - const auto line_inp = ::llama_tokenize(ctx, buffer, false, params.interactive_specials); + const auto line_inp = ::llama_tokenize(ctx, buffer, false, false); const auto line_sfx = ::llama_tokenize(ctx, params.input_suffix, false, true); LOG("input tokens: %s\n", LOG_TOKENS_TOSTR_PRETTY(ctx, line_inp).c_str()); @@ -900,17 +858,6 @@ int main(int argc, char ** argv) { embd_inp.insert(embd_inp.end(), line_inp.begin(), line_inp.end()); embd_inp.insert(embd_inp.end(), line_sfx.begin(), line_sfx.end()); - // instruct mode: insert response suffix - if (params.instruct) { - LOG("inserting instruction suffix\n"); - embd_inp.insert(embd_inp.end(), inp_sfx.begin(), inp_sfx.end()); - } - // chatml mode: insert assistant chat suffix - if (params.chatml) { - LOG("inserting chatml suffix\n"); - embd_inp.insert(embd_inp.end(), cml_sfx.begin(), cml_sfx.end()); - } - for (size_t i = original_size; i < embd_inp.size(); ++i) { const llama_token token = embd_inp[i]; output_tokens.push_back(token); @@ -935,7 +882,7 @@ int main(int argc, char ** argv) { } // end of generation - if (!embd.empty() && llama_token_is_eog(model, embd.back()) && !(params.instruct || params.interactive || params.chatml)) { + if (!embd.empty() && llama_token_is_eog(model, embd.back()) && !(params.interactive)) { LOG_TEE(" [end of text]\n"); break; } diff --git a/examples/parallel/parallel.cpp b/examples/parallel/parallel.cpp index c731abb726dc2..7faeaec975ae3 100644 --- a/examples/parallel/parallel.cpp +++ b/examples/parallel/parallel.cpp @@ -100,7 +100,8 @@ int main(int argc, char ** argv) { gpt_params params; - if (gpt_params_parse(argc, argv, params) == false) { + if (!gpt_params_parse(argc, argv, params)) { + gpt_params_print_usage(argc, argv, params); return 1; } diff --git a/examples/passkey/README.md b/examples/passkey/README.md index 4a22bb55975be..9e7a119ba3e0b 100644 --- a/examples/passkey/README.md +++ b/examples/passkey/README.md @@ -8,5 +8,5 @@ See the following PRs for more info: ### Usage ```bash -make -j && ./passkey ./models/llama-7b-v2/ggml-model-f16.gguf 250 +make -j && ./passkey -m ./models/llama-7b-v2/ggml-model-f16.gguf --junk 250 ``` diff --git a/examples/passkey/passkey.cpp b/examples/passkey/passkey.cpp index f2ef9ca10d4a2..d03215cd1e0a9 100644 --- a/examples/passkey/passkey.cpp +++ b/examples/passkey/passkey.cpp @@ -6,46 +6,32 @@ #include #include -int main(int argc, char ** argv) { - gpt_params params; - - if (argc == 1 || argv[1][0] == '-') { - printf("usage: %s MODEL_PATH N_JUNK N_GRP I_POS SEED\n" , argv[0]); - return 1 ; - } - - int seed = -1; +static void print_usage(int argc, char ** argv, const gpt_params & params) { + gpt_params_print_usage(argc, argv, params); - int n_junk = 250; // number of times to repeat the junk text - int n_keep = 32; // number of tokens in the prompt prefix - int n_grp = 1; // if more than 1 - perform LongLM SelfExtend - int i_pos = -1; // position of the passkey in the junk text - - if (argc >= 2) { - params.model = argv[1]; - } - - if (argc >= 3) { - n_junk = std::stoi(argv[2]); - } + LOG_TEE("\nexample usage:\n"); + LOG_TEE("\n %s -m model.gguf --junk 250 --pos 90 --keep 32 --grp-attn-n 2 [--seed 1234]\n", argv[0]); + LOG_TEE("\n"); +} - if (argc >= 4) { - n_grp = std::stoi(argv[3]); - } +int main(int argc, char ** argv) { + gpt_params params; - if (argc >= 5) { - i_pos = std::stoi(argv[4]); - } + params.n_junk = 250; + params.n_keep = 32; + params.i_pos = -1; - if (argc >= 6) { - seed = std::stoi(argv[5]); + if (!gpt_params_parse(argc, argv, params)) { + print_usage(argc, argv, params); + return 1; } - if (seed == -1) { - seed = time(NULL); - } + srand(params.seed == LLAMA_DEFAULT_SEED ? time(NULL) : params.seed); - srand(seed); + int n_junk = params.n_junk; + int n_keep = params.n_keep; + int n_grp = params.grp_attn_n; + int i_pos = params.i_pos; if (i_pos == -1) { i_pos = rand() % n_junk; @@ -76,9 +62,7 @@ int main(int argc, char ** argv) { // initialize the model - llama_model_params model_params = llama_model_default_params(); - - model_params.n_gpu_layers = 99; // offload all layers to the GPU + llama_model_params model_params = llama_model_params_from_gpt_params(params); llama_model * model = llama_load_model_from_file(params.model.c_str(), model_params); @@ -89,13 +73,9 @@ int main(int argc, char ** argv) { // initialize the context - llama_context_params ctx_params = llama_context_default_params(); + llama_context_params ctx_params = llama_context_params_from_gpt_params(params); - ctx_params.seed = seed; - ctx_params.n_ctx = llama_n_ctx_train(model)*n_grp + n_keep; - ctx_params.n_batch = 512; - ctx_params.n_threads = params.n_threads; - ctx_params.n_threads_batch = params.n_threads_batch == -1 ? params.n_threads : params.n_threads_batch; + ctx_params.n_ctx = llama_n_ctx_train(model)*n_grp + n_keep; GGML_ASSERT(ctx_params.n_batch % n_grp == 0 && "n_batch must be divisible by n_grp"); @@ -135,7 +115,7 @@ int main(int argc, char ** argv) { LOG_TEE("prompt tokens: %d\n", n_tokens_all); //LOG_TEE("prompt: %s\n", params.prompt.c_str()); - llama_batch batch = llama_batch_init(512, 0, 1); + llama_batch batch = llama_batch_init(params.n_batch, 0, 1); int n_past = 0; diff --git a/examples/perplexity/perplexity.cpp b/examples/perplexity/perplexity.cpp index 30e5e282ef5cf..0bd78c21a86a1 100644 --- a/examples/perplexity/perplexity.cpp +++ b/examples/perplexity/perplexity.cpp @@ -1032,7 +1032,7 @@ struct winogrande_entry { std::vector seq_tokens[2]; }; -static std::vector load_winogrande_from_csv(const std::string& prompt) { +static std::vector load_winogrande_from_csv(const std::string & prompt) { std::vector result; std::istringstream in(prompt); std::string line; @@ -1964,12 +1964,14 @@ static void kl_divergence(llama_context * ctx, const gpt_params & params) { int main(int argc, char ** argv) { gpt_params params; + params.n_ctx = 512; + params.logits_all = true; + if (!gpt_params_parse(argc, argv, params)) { + gpt_params_print_usage(argc, argv, params); return 1; } - params.logits_all = true; - const int32_t n_ctx = params.n_ctx; if (n_ctx <= 0) { @@ -2006,9 +2008,6 @@ int main(int argc, char ** argv) { fprintf(stderr, "%s: seed = %u\n", __func__, params.seed); std::mt19937 rng(params.seed); - if (params.random_prompt) { - params.prompt = string_random_prompt(rng); - } llama_backend_init(); llama_numa_init(params.numa); @@ -2027,6 +2026,7 @@ int main(int argc, char ** argv) { } const int n_ctx_train = llama_n_ctx_train(model); + if (params.n_ctx > n_ctx_train) { fprintf(stderr, "%s: warning: model was trained on only %d context tokens (%d specified)\n", __func__, n_ctx_train, params.n_ctx); diff --git a/examples/quantize/tests.sh b/examples/quantize/tests.sh index a3ca74c68e7e5..38e28ffc365ee 100644 --- a/examples/quantize/tests.sh +++ b/examples/quantize/tests.sh @@ -47,7 +47,7 @@ echo PASS echo # 3a. Test the requanted model is loading properly -$MAIN --model $WORK_PATH/ggml-model-requant-00001-of-00006.gguf --random-prompt --n-predict 32 +$MAIN --model $WORK_PATH/ggml-model-requant-00001-of-00006.gguf --n-predict 32 echo PASS echo @@ -57,7 +57,7 @@ echo PASS echo # 4b. Test the requanted model is loading properly -$MAIN --model $WORK_PATH/ggml-model-requant-merge.gguf --random-prompt --n-predict 32 +$MAIN --model $WORK_PATH/ggml-model-requant-merge.gguf --n-predict 32 echo PASS echo diff --git a/examples/retrieval/retrieval.cpp b/examples/retrieval/retrieval.cpp index 4e7530706d4a9..55b7b2f70ae2a 100644 --- a/examples/retrieval/retrieval.cpp +++ b/examples/retrieval/retrieval.cpp @@ -4,72 +4,12 @@ #include #include -struct retrieval_params { - std::vector context_files; // context files to embed - int32_t chunk_size = 64; // chunk size for context embedding - std::string chunk_separator = "\n"; // chunk separator for context embedding -}; +static void print_usage(int argc, char ** argv, const gpt_params & params) { + gpt_params_print_usage(argc, argv, params); -static void retrieval_params_print_usage(int argc, char ** argv, gpt_params & gpt_params, retrieval_params & params) { - gpt_params_print_usage(argc, argv, gpt_params); - printf("retrieval options:\n"); - printf(" --context-file FNAME file containing context to embed.\n"); - printf(" specify multiple files by providing --context-file option multiple times.\n"); - printf(" --chunk-size N minimum length of embedded text chunk (default:%d)\n", params.chunk_size); - printf(" --chunk-separator STRING\n"); - printf(" string to separate chunks (default: \"\\n\")\n"); - printf("\n"); -} - -static void retrieval_params_parse(int argc, char ** argv, gpt_params & gpt_params, retrieval_params & retrieval_params) { - int i = 1; - std::string arg; - while (i < argc) { - arg = argv[i]; - bool invalid_gpt_param = false; - if(gpt_params_find_arg(argc, argv, argv[i], gpt_params, i, invalid_gpt_param)) { - if (invalid_gpt_param) { - fprintf(stderr, "error: invalid argument: %s\n", arg.c_str()); - retrieval_params_print_usage(argc, argv, gpt_params, retrieval_params); - exit(1); - } - // option was parsed by gpt_params_find_arg - } else if (arg == "--context-file") { - if (++i >= argc) { - fprintf(stderr, "error: missing argument for --context-file\n"); - retrieval_params_print_usage(argc, argv, gpt_params, retrieval_params); - exit(1); - } - std::ifstream file(argv[i]); - if (!file) { - fprintf(stderr, "error: failed to open file '%s'\n", argv[i]); - retrieval_params_print_usage(argc, argv, gpt_params, retrieval_params); - exit(1); - } - // store the external file name in params - retrieval_params.context_files.push_back(argv[i]); - } else if (arg == "--chunk-size") { - if (++i >= argc) { - fprintf(stderr, "error: missing argument for --chunk-size\n"); - retrieval_params_print_usage(argc, argv, gpt_params, retrieval_params); - exit(1); - } - retrieval_params.chunk_size = std::stoi(argv[i]); - } else if (arg == "--chunk-separator") { - if (++i >= argc) { - fprintf(stderr, "error: missing argument for --chunk-separator\n"); - retrieval_params_print_usage(argc, argv, gpt_params, retrieval_params); - exit(1); - } - retrieval_params.chunk_separator = argv[i]; - } else { - // unknown argument - fprintf(stderr, "error: unknown argument: %s\n", arg.c_str()); - retrieval_params_print_usage(argc, argv, gpt_params, retrieval_params); - exit(1); - } - i++; - } + LOG_TEE("\nexample usage:\n"); + LOG_TEE("\n %s --model ./models/bge-base-en-v1.5-f16.gguf --top-k 3 --context-file README.md --context-file License --chunk-size 100 --chunk-separator .\n", argv[0]); + LOG_TEE("\n"); } struct chunk { @@ -171,33 +111,35 @@ static void batch_decode(llama_context * ctx, llama_batch & batch, float * outpu int main(int argc, char ** argv) { gpt_params params; - retrieval_params retrieval_params; - retrieval_params_parse(argc, argv, params, retrieval_params); + if (!gpt_params_parse(argc, argv, params)) { + print_usage(argc, argv, params); + return 1; + } // For BERT models, batch size must be equal to ubatch size params.n_ubatch = params.n_batch; + params.embedding = true; - if (retrieval_params.chunk_size <= 0) { + if (params.chunk_size <= 0) { fprintf(stderr, "chunk_size must be positive\n"); return 1; } - if (retrieval_params.context_files.empty()) { + if (params.context_files.empty()) { fprintf(stderr, "context_files must be specified\n"); return 1; } - params.embedding = true; print_build_info(); printf("processing files:\n"); - for (auto & context_file : retrieval_params.context_files) { + for (auto & context_file : params.context_files) { printf("%s\n", context_file.c_str()); } std::vector chunks; - for (auto & context_file : retrieval_params.context_files) { - std::vector file_chunk = chunk_file(context_file, retrieval_params.chunk_size, retrieval_params.chunk_separator); + for (auto & context_file : params.context_files) { + std::vector file_chunk = chunk_file(context_file, params.chunk_size, params.chunk_separator); chunks.insert(chunks.end(), file_chunk.begin(), file_chunk.end()); } printf("Number of chunks: %ld\n", chunks.size()); @@ -242,7 +184,7 @@ int main(int argc, char ** argv) { return 1; } // add eos if not present - if (inp.empty() || inp.back() != llama_token_eos(model)) { + if (llama_token_eos(model) >= 0 && (inp.empty() || inp.back() != llama_token_eos(model))) { inp.push_back(llama_token_eos(model)); } chunk.tokens = inp; diff --git a/examples/save-load-state/save-load-state.cpp b/examples/save-load-state/save-load-state.cpp index c3b766882dbec..00c2277ac2827 100644 --- a/examples/save-load-state/save-load-state.cpp +++ b/examples/save-load-state/save-load-state.cpp @@ -11,6 +11,7 @@ int main(int argc, char ** argv) { params.prompt = "The quick brown fox"; if (!gpt_params_parse(argc, argv, params)) { + gpt_params_print_usage(argc, argv, params); return 1; } diff --git a/examples/server/server.cpp b/examples/server/server.cpp index fc6d90848f099..d581cad95974d 100644 --- a/examples/server/server.cpp +++ b/examples/server/server.cpp @@ -123,29 +123,6 @@ struct slot_params { json input_suffix; }; -struct server_params { - int32_t port = 8080; - int32_t read_timeout = 600; - int32_t write_timeout = 600; - int32_t n_threads_http = -1; - - std::string hostname = "127.0.0.1"; - std::string public_path = ""; - std::string chat_template = ""; - std::string system_prompt = ""; - - std::vector api_keys; - -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT - std::string ssl_key_file = ""; - std::string ssl_cert_file = ""; -#endif - - bool slots_endpoint = true; - bool metrics_endpoint = false; - std::string slot_save_path; -}; - struct server_slot { int id; int id_task = -1; @@ -1261,7 +1238,7 @@ struct server_context { } json get_formated_generation(const server_slot & slot) const { - const auto eos_bias = slot.sparams.logit_bias.find(llama_token_eos(model)); + const auto eos_bias = slot.sparams.logit_bias.find(llama_token_eos(model)); const bool ignore_eos = eos_bias != slot.sparams.logit_bias.end() && eos_bias->second < 0.0f && std::isinf(eos_bias->second); std::vector samplers_sequence; @@ -2334,561 +2311,6 @@ struct server_context { } }; -static void server_print_usage(const char * argv0, const gpt_params & params, const server_params & sparams) { - printf("usage: %s [options]\n", argv0); - printf("\n"); - printf("options:\n"); - printf(" -h, --help show this help message and exit\n"); - printf(" -v, --verbose verbose output (default: %s)\n", server_verbose ? "enabled" : "disabled"); - printf(" -t N, --threads N number of threads to use during computation (default: %d)\n", params.n_threads); - printf(" -tb N, --threads-batch N number of threads to use during batch and prompt processing (default: same as --threads)\n"); - printf(" --threads-http N number of threads in the http server pool to process requests (default: max(hardware concurrency - 1, --parallel N + 2))\n"); - printf(" -c N, --ctx-size N size of the prompt context (default: %d)\n", params.n_ctx); - printf(" --rope-scaling {none,linear,yarn}\n"); - printf(" RoPE frequency scaling method, defaults to linear unless specified by the model\n"); - printf(" --rope-freq-base N RoPE base frequency (default: loaded from model)\n"); - printf(" --rope-freq-scale N RoPE frequency scaling factor, expands context by a factor of 1/N\n"); - printf(" --yarn-ext-factor N YaRN: extrapolation mix factor (default: 1.0, 0.0 = full interpolation)\n"); - printf(" --yarn-attn-factor N YaRN: scale sqrt(t) or attention magnitude (default: 1.0)\n"); - printf(" --yarn-beta-slow N YaRN: high correction dim or alpha (default: %.1f)\n", params.yarn_beta_slow); - printf(" --yarn-beta-fast N YaRN: low correction dim or beta (default: %.1f)\n", params.yarn_beta_fast); - printf(" --pooling {none,mean,cls} pooling type for embeddings, use model default if unspecified\n"); - printf(" -dt N, --defrag-thold N\n"); - printf(" KV cache defragmentation threshold (default: %.1f, < 0 - disabled)\n", params.defrag_thold); - printf(" -b N, --batch-size N logical maximum batch size (default: %d)\n", params.n_batch); - printf(" -ub N, --ubatch-size N physical maximum batch size (default: %d)\n", params.n_ubatch); - if (llama_supports_mlock()) { - printf(" --mlock force system to keep model in RAM rather than swapping or compressing\n"); - } - if (llama_supports_mmap()) { - printf(" --no-mmap do not memory-map model (slower load but may reduce pageouts if not using mlock)\n"); - } - printf(" --numa TYPE attempt optimizations that help on some NUMA systems\n"); - printf(" - distribute: spread execution evenly over all nodes\n"); - printf(" - isolate: only spawn threads on CPUs on the node that execution started on\n"); - printf(" - numactl: use the CPU map provided my numactl\n"); - if (llama_supports_gpu_offload()) { - printf(" -ngl N, --n-gpu-layers N\n"); - printf(" number of layers to store in VRAM\n"); - printf(" -sm SPLIT_MODE, --split-mode SPLIT_MODE\n"); - printf(" how to split the model across multiple GPUs, one of:\n"); - printf(" - none: use one GPU only\n"); - printf(" - layer (default): split layers and KV across GPUs\n"); - printf(" - row: split rows across GPUs\n"); - printf(" -ts SPLIT --tensor-split SPLIT\n"); - printf(" fraction of the model to offload to each GPU, comma-separated list of proportions, e.g. 3,1\n"); - printf(" -mg i, --main-gpu i the GPU to use for the model (with split-mode = none),\n"); - printf(" or for intermediate results and KV (with split-mode = row)\n"); - printf(" -nkvo, --no-kv-offload\n"); - printf(" disable KV offload\n"); - } - printf(" -m FNAME, --model FNAME\n"); - printf(" model path (default: models/$filename with filename from --hf-file or --model-url if set, otherwise %s)\n", DEFAULT_MODEL_PATH); - printf(" -mu MODEL_URL, --model-url MODEL_URL\n"); - printf(" model download url (default: unused)\n"); - printf(" -hfr REPO, --hf-repo REPO\n"); - printf(" Hugging Face model repository (default: unused)\n"); - printf(" -hff FILE, --hf-file FILE\n"); - printf(" Hugging Face model file (default: unused)\n"); - printf(" -a ALIAS, --alias ALIAS\n"); - printf(" set an alias for the model, will be added as `model` field in completion response\n"); - printf(" --lora FNAME apply LoRA adapter (implies --no-mmap)\n"); - printf(" --lora-base FNAME optional model to use as a base for the layers modified by the LoRA adapter\n"); - printf(" --host ip address to listen (default (default: %s)\n", sparams.hostname.c_str()); - printf(" --port PORT port to listen (default (default: %d)\n", sparams.port); - printf(" --rpc SERVERS comma separated list of RPC servers\n"); - printf(" --path PUBLIC_PATH path from which to serve static files (default: disabled)\n"); - printf(" --api-key API_KEY optional api key to enhance server security. If set, requests must include this key for access.\n"); - printf(" --api-key-file FNAME path to file containing api keys delimited by new lines. If set, requests must include one of the keys for access.\n"); -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT - printf(" --ssl-key-file FNAME path to file a PEM-encoded SSL private key\n"); - printf(" --ssl-cert-file FNAME path to file a PEM-encoded SSL certificate\n"); -#endif - printf(" -to N, --timeout N server read/write timeout in seconds (default: %d)\n", sparams.read_timeout); - printf(" --embeddings enable embedding vector output (default: %s)\n", params.embedding ? "enabled" : "disabled"); - printf(" -np N, --parallel N number of slots for process requests (default: %d)\n", params.n_parallel); - printf(" -cb, --cont-batching enable continuous batching (a.k.a dynamic batching) (default: enabled)\n"); - printf(" -fa, --flash-attn enable Flash Attention (default: %s)\n", params.flash_attn ? "enabled" : "disabled"); - printf(" -spf FNAME, --system-prompt-file FNAME\n"); - printf(" set a file to load a system prompt (initial prompt of all slots), this is useful for chat applications.\n"); - printf(" -ctk TYPE, --cache-type-k TYPE\n"); - printf(" KV cache data type for K (default: f16)\n"); - printf(" -ctv TYPE, --cache-type-v TYPE\n"); - printf(" KV cache data type for V (default: f16)\n"); - printf(" --log-format log output format: json or text (default: json)\n"); - printf(" --log-disable disables logging to a file.\n"); - printf(" --slots-endpoint-disable disables slots monitoring endpoint.\n"); - printf(" --metrics enable prometheus compatible metrics endpoint (default: %s).\n", sparams.metrics_endpoint ? "enabled" : "disabled"); - printf(" --slot-save-path PATH path to save slot kv cache (default: disabled)\n"); - printf("\n"); - printf(" -n, --n-predict maximum tokens to predict (default: %d)\n", params.n_predict); - printf(" --override-kv KEY=TYPE:VALUE\n"); - printf(" advanced option to override model metadata by key. may be specified multiple times.\n"); - printf(" types: int, float, bool, str. example: --override-kv tokenizer.ggml.add_bos_token=bool:false\n"); - printf(" -gan N, --grp-attn-n N set the group attention factor to extend context size through self-extend(default: 1=disabled), used together with group attention width `--grp-attn-w`\n"); - printf(" -gaw N, --grp-attn-w N set the group attention width to extend context size through self-extend(default: 512), used together with group attention factor `--grp-attn-n`\n"); - printf(" --chat-template JINJA_TEMPLATE\n"); - printf(" set custom jinja chat template (default: template taken from model's metadata)\n"); - printf(" only commonly used templates are accepted:\n"); - printf(" https://github.com/ggerganov/llama.cpp/wiki/Templates-supported-by-llama_chat_apply_template\n"); - printf("\n"); -} - -static void server_params_parse(int argc, char ** argv, server_params & sparams, gpt_params & params) { - gpt_params default_params; - server_params default_sparams; - - std::string arg; - bool invalid_param = false; - - for (int i = 1; i < argc; i++) { - arg = argv[i]; - if (arg == "--port") { - if (++i >= argc) { - invalid_param = true; - break; - } - sparams.port = std::stoi(argv[i]); - } else if (arg == "--rpc") { - if (++i >= argc) { - invalid_param = true; - break; - } - params.rpc_servers = argv[i]; - } else if (arg == "--host") { - if (++i >= argc) { - invalid_param = true; - break; - } - sparams.hostname = argv[i]; - } else if (arg == "--path") { - if (++i >= argc) { - invalid_param = true; - break; - } - sparams.public_path = argv[i]; - } else if (arg == "--api-key") { - if (++i >= argc) { - invalid_param = true; - break; - } - sparams.api_keys.push_back(argv[i]); - } else if (arg == "--api-key-file") { - if (++i >= argc) { - invalid_param = true; - break; - } - std::ifstream key_file(argv[i]); - if (!key_file) { - fprintf(stderr, "error: failed to open file '%s'\n", argv[i]); - invalid_param = true; - break; - } - std::string key; - while (std::getline(key_file, key)) { - if (key.size() > 0) { - sparams.api_keys.push_back(key); - } - } - key_file.close(); - - } -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT - else if (arg == "--ssl-key-file") { - if (++i >= argc) { - invalid_param = true; - break; - } - sparams.ssl_key_file = argv[i]; - } else if (arg == "--ssl-cert-file") { - if (++i >= argc) { - invalid_param = true; - break; - } - sparams.ssl_cert_file = argv[i]; - } -#endif - else if (arg == "--timeout" || arg == "-to") { - if (++i >= argc) { - invalid_param = true; - break; - } - sparams.read_timeout = std::stoi(argv[i]); - sparams.write_timeout = std::stoi(argv[i]); - } else if (arg == "-m" || arg == "--model") { - if (++i >= argc) { - invalid_param = true; - break; - } - params.model = argv[i]; - } else if (arg == "-mu" || arg == "--model-url") { - if (++i >= argc) { - invalid_param = true; - break; - } - params.model_url = argv[i]; - } else if (arg == "-hfr" || arg == "--hf-repo") { - if (++i >= argc) { - invalid_param = true; - break; - } - params.hf_repo = argv[i]; - } else if (arg == "-hff" || arg == "--hf-file") { - if (++i >= argc) { - invalid_param = true; - break; - } - params.hf_file = argv[i]; - } else if (arg == "-a" || arg == "--alias") { - if (++i >= argc) { - invalid_param = true; - break; - } - params.model_alias = argv[i]; - } else if (arg == "-h" || arg == "--help") { - server_print_usage(argv[0], default_params, default_sparams); - exit(0); - } else if (arg == "-c" || arg == "--ctx-size" || arg == "--ctx_size") { - if (++i >= argc) { - invalid_param = true; - break; - } - params.n_ctx = std::stoi(argv[i]); - } else if (arg == "--rope-scaling") { - if (++i >= argc) { - invalid_param = true; - break; - } - std::string value(argv[i]); - /**/ if (value == "none") { params.rope_scaling_type = LLAMA_ROPE_SCALING_TYPE_NONE; } - else if (value == "linear") { params.rope_scaling_type = LLAMA_ROPE_SCALING_TYPE_LINEAR; } - else if (value == "yarn") { params.rope_scaling_type = LLAMA_ROPE_SCALING_TYPE_YARN; } - else { invalid_param = true; break; } - } else if (arg == "--rope-freq-base") { - if (++i >= argc) { - invalid_param = true; - break; - } - params.rope_freq_base = std::stof(argv[i]); - } else if (arg == "--rope-freq-scale") { - if (++i >= argc) { - invalid_param = true; - break; - } - params.rope_freq_scale = std::stof(argv[i]); - } else if (arg == "--yarn-ext-factor") { - if (++i >= argc) { - invalid_param = true; - break; - } - params.yarn_ext_factor = std::stof(argv[i]); - } - else if (arg == "--yarn-attn-factor") { - if (++i >= argc) { - invalid_param = true; - break; - } - params.yarn_attn_factor = std::stof(argv[i]); - } else if (arg == "--yarn-beta-fast") { - if (++i >= argc) { - invalid_param = true; - break; - } - params.yarn_beta_fast = std::stof(argv[i]); - } else if (arg == "--yarn-beta-slow") { - if (++i >= argc) { - invalid_param = true; - break; - } - params.yarn_beta_slow = std::stof(argv[i]); - } else if (arg == "--pooling") { - if (++i >= argc) { - invalid_param = true; - break; - } - std::string value(argv[i]); - /**/ if (value == "none") { params.pooling_type = LLAMA_POOLING_TYPE_NONE; } - else if (value == "mean") { params.pooling_type = LLAMA_POOLING_TYPE_MEAN; } - else if (value == "cls") { params.pooling_type = LLAMA_POOLING_TYPE_CLS; } - else { invalid_param = true; break; } - } else if (arg == "--defrag-thold" || arg == "-dt") { - if (++i >= argc) { - invalid_param = true; - break; - } - params.defrag_thold = std::stof(argv[i]); - } else if (arg == "--threads" || arg == "-t") { - if (++i >= argc) - { - invalid_param = true; - break; - } - params.n_threads = std::stoi(argv[i]); - } else if (arg == "--grp-attn-n" || arg == "-gan") { - if (++i >= argc) { - invalid_param = true; - break; - } - - params.grp_attn_n = std::stoi(argv[i]); - } else if (arg == "--grp-attn-w" || arg == "-gaw") { - if (++i >= argc) { - invalid_param = true; - break; - } - - params.grp_attn_w = std::stoi(argv[i]); - } else if (arg == "--threads-batch" || arg == "-tb") { - if (++i >= argc) { - invalid_param = true; - break; - } - params.n_threads_batch = std::stoi(argv[i]); - } else if (arg == "--threads-http") { - if (++i >= argc) { - invalid_param = true; - break; - } - sparams.n_threads_http = std::stoi(argv[i]); - } else if (arg == "-b" || arg == "--batch-size") { - if (++i >= argc) { - invalid_param = true; - break; - } - params.n_batch = std::stoi(argv[i]); - } else if (arg == "-ub" || arg == "--ubatch-size") { - if (++i >= argc) { - invalid_param = true; - break; - } - params.n_ubatch = std::stoi(argv[i]); - } else if (arg == "--gpu-layers" || arg == "-ngl" || arg == "--n-gpu-layers") { - if (++i >= argc) { - invalid_param = true; - break; - } - if (llama_supports_gpu_offload()) { - params.n_gpu_layers = std::stoi(argv[i]); - } else { - LOG_WARNING( - "Not compiled with GPU offload support, --n-gpu-layers option will be ignored. " - "See main README.md for information on enabling GPU BLAS support", - {{"n_gpu_layers", params.n_gpu_layers}}); - } - } else if (arg == "-nkvo" || arg == "--no-kv-offload") { - params.no_kv_offload = true; - } else if (arg == "--split-mode" || arg == "-sm") { - if (++i >= argc) { - invalid_param = true; - break; - } - std::string arg_next = argv[i]; - if (arg_next == "none") { - params.split_mode = LLAMA_SPLIT_MODE_NONE; - } else if (arg_next == "layer") { - params.split_mode = LLAMA_SPLIT_MODE_LAYER; - } else if (arg_next == "row") { - params.split_mode = LLAMA_SPLIT_MODE_ROW; - } else { - invalid_param = true; - break; - } -#ifndef GGML_USE_CUDA - fprintf(stderr, "warning: llama.cpp was compiled without CUDA. Setting the split mode has no effect.\n"); -#endif // GGML_USE_CUDA - } else if (arg == "--tensor-split" || arg == "-ts") { - if (++i >= argc) { - invalid_param = true; - break; - } -#if defined(GGML_USE_CUDA) || defined(GGML_USE_SYCL) - std::string arg_next = argv[i]; - - // split string by , and / - const std::regex regex{R"([,/]+)"}; - std::sregex_token_iterator it{arg_next.begin(), arg_next.end(), regex, -1}; - std::vector split_arg{it, {}}; - GGML_ASSERT(split_arg.size() <= llama_max_devices()); - - for (size_t i_device = 0; i_device < llama_max_devices(); ++i_device) { - if (i_device < split_arg.size()) { - params.tensor_split[i_device] = std::stof(split_arg[i_device]); - } else { - params.tensor_split[i_device] = 0.0f; - } - } -#else - LOG_WARNING("llama.cpp was compiled without CUDA. It is not possible to set a tensor split.\n", {}); -#endif // GGML_USE_CUDA - } else if (arg == "--main-gpu" || arg == "-mg") { - if (++i >= argc) { - invalid_param = true; - break; - } -#if defined(GGML_USE_CUDA) || defined(GGML_USE_SYCL) - params.main_gpu = std::stoi(argv[i]); -#else - LOG_WARNING("llama.cpp was compiled without CUDA. It is not possible to set a main GPU.", {}); -#endif - } else if (arg == "--lora") { - if (++i >= argc) { - invalid_param = true; - break; - } - params.lora_adapter.emplace_back(argv[i], 1.0f); - params.use_mmap = false; - } else if (arg == "--lora-scaled") { - if (++i >= argc) { - invalid_param = true; - break; - } - const char * lora_adapter = argv[i]; - if (++i >= argc) { - invalid_param = true; - break; - } - params.lora_adapter.emplace_back(lora_adapter, std::stof(argv[i])); - params.use_mmap = false; - } else if (arg == "--lora-base") { - if (++i >= argc) { - invalid_param = true; - break; - } - params.lora_base = argv[i]; - } else if (arg == "-v" || arg == "--verbose") { -#if SERVER_VERBOSE != 1 - LOG_WARNING("server.cpp is not built with verbose logging.", {}); -#else - server_verbose = true; -#endif - } else if (arg == "--mlock") { - params.use_mlock = true; - } else if (arg == "--no-mmap") { - params.use_mmap = false; - } else if (arg == "--numa") { - if (++i >= argc) { - invalid_param = true; - break; - } else { - std::string value(argv[i]); - /**/ if (value == "distribute" || value == "" ) { params.numa = GGML_NUMA_STRATEGY_DISTRIBUTE; } - else if (value == "isolate") { params.numa = GGML_NUMA_STRATEGY_ISOLATE; } - else if (value == "numactl") { params.numa = GGML_NUMA_STRATEGY_NUMACTL; } - else { invalid_param = true; break; } - } - } else if (arg == "--embedding" || arg == "--embeddings") { - params.embedding = true; - } else if (arg == "-cb" || arg == "--cont-batching") { - params.cont_batching = true; - } else if (arg == "-fa" || arg == "--flash-attn") { - params.flash_attn = true; - } else if (arg == "-np" || arg == "--parallel") { - if (++i >= argc) { - invalid_param = true; - break; - } - params.n_parallel = std::stoi(argv[i]); - } else if (arg == "-n" || arg == "--n-predict") { - if (++i >= argc) { - invalid_param = true; - break; - } - params.n_predict = std::stoi(argv[i]); - } else if (arg == "-spf" || arg == "--system-prompt-file") { - if (++i >= argc) { - invalid_param = true; - break; - } - std::ifstream file(argv[i]); - if (!file) { - fprintf(stderr, "error: failed to open file '%s'\n", argv[i]); - invalid_param = true; - break; - } - std::string system_prompt; - std::copy( - std::istreambuf_iterator(file), - std::istreambuf_iterator(), - std::back_inserter(system_prompt) - ); - sparams.system_prompt = system_prompt; - } else if (arg == "-ctk" || arg == "--cache-type-k") { - params.cache_type_k = argv[++i]; - } else if (arg == "-ctv" || arg == "--cache-type-v") { - params.cache_type_v = argv[++i]; - } else if (arg == "--log-format") { - if (++i >= argc) { - invalid_param = true; - break; - } - if (std::strcmp(argv[i], "json") == 0) { - server_log_json = true; - } else if (std::strcmp(argv[i], "text") == 0) { - server_log_json = false; - } else { - invalid_param = true; - break; - } - } else if (arg == "--log-disable") { - log_set_target(stdout); - LOG_INFO("logging to file is disabled.", {}); - } else if (arg == "--slots-endpoint-disable") { - sparams.slots_endpoint = false; - } else if (arg == "--metrics") { - sparams.metrics_endpoint = true; - } else if (arg == "--slot-save-path") { - if (++i >= argc) { - invalid_param = true; - break; - } - sparams.slot_save_path = argv[i]; - // if doesn't end with DIRECTORY_SEPARATOR, add it - if (!sparams.slot_save_path.empty() && sparams.slot_save_path[sparams.slot_save_path.size() - 1] != DIRECTORY_SEPARATOR) { - sparams.slot_save_path += DIRECTORY_SEPARATOR; - } - } else if (arg == "--chat-template") { - if (++i >= argc) { - invalid_param = true; - break; - } - if (!verify_custom_template(argv[i])) { - fprintf(stderr, "error: the supplied chat template is not supported: %s\n", argv[i]); - fprintf(stderr, "note: llama.cpp does not use jinja parser, we only support commonly used templates\n"); - invalid_param = true; - break; - } - sparams.chat_template = argv[i]; - } else if (arg == "--override-kv") { - if (++i >= argc) { - invalid_param = true; - break; - } - if (!string_parse_kv_override(argv[i], params.kv_overrides)) { - fprintf(stderr, "error: Invalid type for KV override: %s\n", argv[i]); - invalid_param = true; - break; - } - } else { - fprintf(stderr, "error: unknown argument: %s\n", arg.c_str()); - server_print_usage(argv[0], default_params, default_sparams); - exit(1); - } - } - - gpt_params_handle_model_default(params); - - if (!params.kv_overrides.empty()) { - params.kv_overrides.emplace_back(); - params.kv_overrides.back().key[0] = 0; - } - - if (invalid_param) { - fprintf(stderr, "error: invalid parameter for argument: %s\n", arg.c_str()); - server_print_usage(argv[0], default_params, default_sparams); - exit(1); - } -} - static void log_server_request(const httplib::Request & req, const httplib::Response & res) { // skip GH copilot requests when using default port if (req.path == "/v1/health" || req.path == "/v1/completions") { @@ -2929,16 +2351,22 @@ int main(int argc, char ** argv) { log_disable(); #endif // own arguments required by this example - gpt_params params; - server_params sparams; + gpt_params params; + + if (!gpt_params_parse(argc, argv, params)) { + gpt_params_print_usage(argc, argv, params); + return 1; + } + + // TODO: not great to use extern vars + server_log_json = params.log_json; + server_verbose = params.verbose; // struct that contains llama context and inference server_context ctx_server; - server_params_parse(argc, argv, sparams, params); - - if (!sparams.system_prompt.empty()) { - ctx_server.system_prompt_set(sparams.system_prompt); + if (!params.system_prompt.empty()) { + ctx_server.system_prompt_set(params.system_prompt); } if (params.model_alias == "unknown") { @@ -2962,10 +2390,10 @@ int main(int argc, char ** argv) { std::unique_ptr svr; #ifdef CPPHTTPLIB_OPENSSL_SUPPORT - if (sparams.ssl_key_file != "" && sparams.ssl_cert_file != "") { - LOG_INFO("Running with SSL", {{"key", sparams.ssl_key_file}, {"cert", sparams.ssl_cert_file}}); + if (params.ssl_file_key != "" && params.ssl_file_cert != "") { + LOG_INFO("Running with SSL", {{"key", params.ssl_file_key}, {"cert", params.ssl_file_cert}}); svr.reset( - new httplib::SSLServer(sparams.ssl_cert_file.c_str(), sparams.ssl_key_file.c_str()) + new httplib::SSLServer(params.ssl_file_cert.c_str(), params.ssl_file_key.c_str()) ); } else { LOG_INFO("Running without SSL", {}); @@ -3019,24 +2447,24 @@ int main(int argc, char ** argv) { }); // set timeouts and change hostname and port - svr->set_read_timeout (sparams.read_timeout); - svr->set_write_timeout(sparams.write_timeout); + svr->set_read_timeout (params.timeout_read); + svr->set_write_timeout(params.timeout_write); - if (!svr->bind_to_port(sparams.hostname, sparams.port)) { - fprintf(stderr, "\ncouldn't bind to server socket: hostname=%s port=%d\n\n", sparams.hostname.c_str(), sparams.port); + if (!svr->bind_to_port(params.hostname, params.port)) { + fprintf(stderr, "\ncouldn't bind to server socket: hostname=%s port=%d\n\n", params.hostname.c_str(), params.port); return 1; } std::unordered_map log_data; - log_data["hostname"] = sparams.hostname; - log_data["port"] = std::to_string(sparams.port); + log_data["hostname"] = params.hostname; + log_data["port"] = std::to_string(params.port); - if (sparams.api_keys.size() == 1) { - auto key = sparams.api_keys[0]; + if (params.api_keys.size() == 1) { + auto key = params.api_keys[0]; log_data["api_key"] = "api_key: ****" + key.substr(std::max((int)(key.length() - 4), 0)); - } else if (sparams.api_keys.size() > 1) { - log_data["api_key"] = "api_key: " + std::to_string(sparams.api_keys.size()) + " keys loaded"; + } else if (params.api_keys.size() > 1) { + log_data["api_key"] = "api_key: " + std::to_string(params.api_keys.size()) + " keys loaded"; } // load the model @@ -3053,10 +2481,10 @@ int main(int argc, char ** argv) { const auto model_meta = ctx_server.model_meta(); // if a custom chat template is not supplied, we will use the one that comes with the model (if any) - if (sparams.chat_template.empty()) { + if (params.chat_template.empty()) { if (!ctx_server.validate_model_chat_template()) { LOG_ERROR("The chat template that comes with this model is not yet supported, falling back to chatml. This may cause the model to output suboptimal responses", {}); - sparams.chat_template = "chatml"; + params.chat_template = "chatml"; } } @@ -3068,11 +2496,11 @@ int main(int argc, char ** argv) { chat.push_back({{"role", "assistant"}, {"content", "Hi there"}}); chat.push_back({{"role", "user"}, {"content", "How are you?"}}); - const std::string chat_example = format_chat(ctx_server.model, sparams.chat_template, chat); + const std::string chat_example = format_chat(ctx_server.model, params.chat_template, chat); LOG_INFO("chat template", { {"chat_example", chat_example}, - {"built_in", sparams.chat_template.empty()}, + {"built_in", params.chat_template.empty()}, }); } @@ -3080,7 +2508,7 @@ int main(int argc, char ** argv) { // Middlewares // - auto middleware_validate_api_key = [&sparams, &res_error](const httplib::Request & req, httplib::Response & res) { + auto middleware_validate_api_key = [¶ms, &res_error](const httplib::Request & req, httplib::Response & res) { // TODO: should we apply API key to all endpoints, including "/health" and "/models"? static const std::set protected_endpoints = { "/props", @@ -3098,7 +2526,7 @@ int main(int argc, char ** argv) { }; // If API key is not set, skip validation - if (sparams.api_keys.empty()) { + if (params.api_keys.empty()) { return true; } @@ -3113,7 +2541,7 @@ int main(int argc, char ** argv) { std::string prefix = "Bearer "; if (auth_header.substr(0, prefix.size()) == prefix) { std::string received_api_key = auth_header.substr(prefix.size()); - if (std::find(sparams.api_keys.begin(), sparams.api_keys.end(), received_api_key) != sparams.api_keys.end()) { + if (std::find(params.api_keys.begin(), params.api_keys.end(), received_api_key) != params.api_keys.end()) { return true; // API key is valid } } @@ -3168,7 +2596,7 @@ int main(int argc, char ** argv) { }; res.status = 200; // HTTP OK - if (sparams.slots_endpoint && req.has_param("include_slots")) { + if (params.endpoint_slots && req.has_param("include_slots")) { health["slots"] = result.data.at("slots"); } @@ -3194,7 +2622,7 @@ int main(int argc, char ** argv) { }; const auto handle_slots = [&](const httplib::Request &, httplib::Response & res) { - if (!sparams.slots_endpoint) { + if (!params.endpoint_slots) { res_error(res, format_error_response("This server does not support slots endpoint.", ERROR_TYPE_NOT_SUPPORTED)); return; } @@ -3218,7 +2646,7 @@ int main(int argc, char ** argv) { }; const auto handle_metrics = [&](const httplib::Request &, httplib::Response & res) { - if (!sparams.metrics_endpoint) { + if (!params.endpoint_metrics) { res_error(res, format_error_response("This server does not support metrics endpoint.", ERROR_TYPE_NOT_SUPPORTED)); return; } @@ -3318,14 +2746,14 @@ int main(int argc, char ** argv) { res.status = 200; // HTTP OK }; - const auto handle_slots_save = [&ctx_server, &res_error, &sparams](const httplib::Request & req, httplib::Response & res, int id_slot) { + const auto handle_slots_save = [&ctx_server, &res_error, ¶ms](const httplib::Request & req, httplib::Response & res, int id_slot) { json request_data = json::parse(req.body); std::string filename = request_data.at("filename"); if (!fs_validate_filename(filename)) { res_error(res, format_error_response("Invalid filename", ERROR_TYPE_INVALID_REQUEST)); return; } - std::string filepath = sparams.slot_save_path + filename; + std::string filepath = params.slot_save_path + filename; server_task task; task.type = SERVER_TASK_TYPE_SLOT_SAVE; @@ -3348,14 +2776,14 @@ int main(int argc, char ** argv) { } }; - const auto handle_slots_restore = [&ctx_server, &res_error, &sparams](const httplib::Request & req, httplib::Response & res, int id_slot) { + const auto handle_slots_restore = [&ctx_server, &res_error, ¶ms](const httplib::Request & req, httplib::Response & res, int id_slot) { json request_data = json::parse(req.body); std::string filename = request_data.at("filename"); if (!fs_validate_filename(filename)) { res_error(res, format_error_response("Invalid filename", ERROR_TYPE_INVALID_REQUEST)); return; } - std::string filepath = sparams.slot_save_path + filename; + std::string filepath = params.slot_save_path + filename; server_task task; task.type = SERVER_TASK_TYPE_SLOT_RESTORE; @@ -3530,9 +2958,9 @@ int main(int argc, char ** argv) { res.set_content(models.dump(), "application/json; charset=utf-8"); }; - const auto handle_chat_completions = [&ctx_server, &sparams, &res_error](const httplib::Request & req, httplib::Response & res) { + const auto handle_chat_completions = [&ctx_server, ¶ms, &res_error](const httplib::Request & req, httplib::Response & res) { res.set_header("Access-Control-Allow-Origin", req.get_header_value("Origin")); - json data = oaicompat_completion_params_parse(ctx_server.model, json::parse(req.body), sparams.chat_template); + json data = oaicompat_completion_params_parse(ctx_server.model, json::parse(req.body), params.chat_template); const int id_task = ctx_server.queue_tasks.get_new_id(); @@ -3757,29 +3185,29 @@ int main(int argc, char ** argv) { // // register static assets routes - if (!sparams.public_path.empty()) { + if (!params.public_path.empty()) { // Set the base directory for serving static files - svr->set_base_dir(sparams.public_path); + svr->set_base_dir(params.public_path); } + // using embedded static files - svr->Get("/", handle_static_file(index_html, index_html_len, "text/html; charset=utf-8")); - svr->Get("/index.js", handle_static_file(index_js, index_js_len, "text/javascript; charset=utf-8")); - svr->Get("/completion.js", handle_static_file(completion_js, completion_js_len, "text/javascript; charset=utf-8")); - svr->Get("/json-schema-to-grammar.mjs", handle_static_file( - json_schema_to_grammar_mjs, json_schema_to_grammar_mjs_len, "text/javascript; charset=utf-8")); + svr->Get("/", handle_static_file(index_html, index_html_len, "text/html; charset=utf-8")); + svr->Get("/index.js", handle_static_file(index_js, index_js_len, "text/javascript; charset=utf-8")); + svr->Get("/completion.js", handle_static_file(completion_js, completion_js_len, "text/javascript; charset=utf-8")); + svr->Get("/json-schema-to-grammar.mjs", handle_static_file(json_schema_to_grammar_mjs, json_schema_to_grammar_mjs_len, "text/javascript; charset=utf-8")); // add new-ui files - svr->Get("/colorthemes.css", handle_static_file(colorthemes_css, colorthemes_css_len, "text/css; charset=utf-8")); - svr->Get("/style.css", handle_static_file(style_css, style_css_len, "text/css; charset=utf-8")); + svr->Get("/colorthemes.css", handle_static_file(colorthemes_css, colorthemes_css_len, "text/css; charset=utf-8")); + svr->Get("/style.css", handle_static_file(style_css, style_css_len, "text/css; charset=utf-8")); svr->Get("/theme-beeninorder.css", handle_static_file(theme_beeninorder_css, theme_beeninorder_css_len, "text/css; charset=utf-8")); - svr->Get("/theme-ketivah.css", handle_static_file(theme_ketivah_css, theme_ketivah_css_len, "text/css; charset=utf-8")); - svr->Get("/theme-mangotango.css", handle_static_file(theme_mangotango_css, theme_mangotango_css_len, "text/css; charset=utf-8")); - svr->Get("/theme-playground.css", handle_static_file(theme_playground_css, theme_playground_css_len, "text/css; charset=utf-8")); - svr->Get("/theme-polarnight.css", handle_static_file(theme_polarnight_css, theme_polarnight_css_len, "text/css; charset=utf-8")); - svr->Get("/theme-snowstorm.css", handle_static_file(theme_snowstorm_css, theme_snowstorm_css_len, "text/css; charset=utf-8")); - svr->Get("/index-new.html", handle_static_file(index_new_html, index_new_html_len, "text/html; charset=utf-8")); - svr->Get("/system-prompts.js", handle_static_file(system_prompts_js, system_prompts_js_len, "text/javascript; charset=utf-8")); - svr->Get("/prompt-formats.js", handle_static_file(prompt_formats_js, prompt_formats_js_len, "text/javascript; charset=utf-8")); + svr->Get("/theme-ketivah.css", handle_static_file(theme_ketivah_css, theme_ketivah_css_len, "text/css; charset=utf-8")); + svr->Get("/theme-mangotango.css", handle_static_file(theme_mangotango_css, theme_mangotango_css_len, "text/css; charset=utf-8")); + svr->Get("/theme-playground.css", handle_static_file(theme_playground_css, theme_playground_css_len, "text/css; charset=utf-8")); + svr->Get("/theme-polarnight.css", handle_static_file(theme_polarnight_css, theme_polarnight_css_len, "text/css; charset=utf-8")); + svr->Get("/theme-snowstorm.css", handle_static_file(theme_snowstorm_css, theme_snowstorm_css_len, "text/css; charset=utf-8")); + svr->Get("/index-new.html", handle_static_file(index_new_html, index_new_html_len, "text/html; charset=utf-8")); + svr->Get("/system-prompts.js", handle_static_file(system_prompts_js, system_prompts_js_len, "text/javascript; charset=utf-8")); + svr->Get("/prompt-formats.js", handle_static_file(prompt_formats_js, prompt_formats_js_len, "text/javascript; charset=utf-8")); // register API routes svr->Get ("/health", handle_health); @@ -3798,7 +3226,7 @@ int main(int argc, char ** argv) { svr->Post("/v1/embeddings", handle_embeddings); svr->Post("/tokenize", handle_tokenize); svr->Post("/detokenize", handle_detokenize); - if (!sparams.slot_save_path.empty()) { + if (!params.slot_save_path.empty()) { // only enable slot endpoints if slot_save_path is set svr->Post("/slots/:id_slot", handle_slots_action); } @@ -3806,12 +3234,12 @@ int main(int argc, char ** argv) { // // Start the server // - if (sparams.n_threads_http < 1) { + if (params.n_threads_http < 1) { // +2 threads for monitoring endpoints - sparams.n_threads_http = std::max(params.n_parallel + 2, (int32_t) std::thread::hardware_concurrency() - 1); + params.n_threads_http = std::max(params.n_parallel + 2, (int32_t) std::thread::hardware_concurrency() - 1); } - log_data["n_threads_http"] = std::to_string(sparams.n_threads_http); - svr->new_task_queue = [&sparams] { return new httplib::ThreadPool(sparams.n_threads_http); }; + log_data["n_threads_http"] = std::to_string(params.n_threads_http); + svr->new_task_queue = [¶ms] { return new httplib::ThreadPool(params.n_threads_http); }; LOG_INFO("HTTP server listening", log_data); diff --git a/examples/server/utils.hpp b/examples/server/utils.hpp index d8a2286e4b1df..b7bfb41d35edc 100644 --- a/examples/server/utils.hpp +++ b/examples/server/utils.hpp @@ -116,13 +116,6 @@ static inline void server_log(const char * level, const char * function, int lin // chat template utils // -// Check if the template supplied via "--chat-template" is supported or not. Returns true if it's valid -inline bool verify_custom_template(const std::string & tmpl) { - llama_chat_message chat[] = {{"user", "test"}}; - int res = llama_chat_apply_template(nullptr, tmpl.c_str(), chat, 1, true, nullptr, 0); - return res >= 0; -} - // Format given chat. If tmpl is empty, we take the template from model metadata inline std::string format_chat(const struct llama_model * model, const std::string & tmpl, const std::vector & messages) { size_t alloc_size = 0; diff --git a/examples/simple/README.md b/examples/simple/README.md index 5d24b1046935c..49e24501cc02b 100644 --- a/examples/simple/README.md +++ b/examples/simple/README.md @@ -3,7 +3,7 @@ The purpose of this example is to demonstrate a minimal usage of llama.cpp for generating text with a given prompt. ```bash -./simple ./models/llama-7b-v2/ggml-model-f16.gguf "Hello my name is" +./simple -m ./models/llama-7b-v2/ggml-model-f16.gguf -p "Hello my name is" ... diff --git a/examples/simple/simple.cpp b/examples/simple/simple.cpp index b0f8e0fdc4987..69a92cf7dc0c0 100644 --- a/examples/simple/simple.cpp +++ b/examples/simple/simple.cpp @@ -6,28 +6,27 @@ #include #include -int main(int argc, char ** argv) { - gpt_params params; +static void print_usage(int argc, char ** argv, const gpt_params & params) { + gpt_params_print_usage(argc, argv, params); - if (argc == 1 || argv[1][0] == '-') { - printf("usage: %s MODEL_PATH [PROMPT]\n" , argv[0]); - return 1 ; - } + LOG_TEE("\nexample usage:\n"); + LOG_TEE("\n %s -m model.gguf -p \"Hello my name is\" -n 32\n", argv[0]); + LOG_TEE("\n"); +} - if (argc >= 2) { - params.model = argv[1]; - } +int main(int argc, char ** argv) { + gpt_params params; - if (argc >= 3) { - params.prompt = argv[2]; - } + params.prompt = "Hello my name is"; + params.n_predict = 32; - if (params.prompt.empty()) { - params.prompt = "Hello my name is"; + if (!gpt_params_parse(argc, argv, params)) { + print_usage(argc, argv, params); + return 1; } // total length of the sequence including the prompt - const int n_len = 32; + const int n_predict = params.n_predict; // init LLM @@ -36,9 +35,7 @@ int main(int argc, char ** argv) { // initialize the model - llama_model_params model_params = llama_model_default_params(); - - // model_params.n_gpu_layers = 99; // offload all layers to the GPU + llama_model_params model_params = llama_model_params_from_gpt_params(params); llama_model * model = llama_load_model_from_file(params.model.c_str(), model_params); @@ -49,12 +46,7 @@ int main(int argc, char ** argv) { // initialize the context - llama_context_params ctx_params = llama_context_default_params(); - - ctx_params.seed = 1234; - ctx_params.n_ctx = 2048; - ctx_params.n_threads = params.n_threads; - ctx_params.n_threads_batch = params.n_threads_batch == -1 ? params.n_threads : params.n_threads_batch; + llama_context_params ctx_params = llama_context_params_from_gpt_params(params); llama_context * ctx = llama_new_context_with_model(model, ctx_params); @@ -69,14 +61,14 @@ int main(int argc, char ** argv) { tokens_list = ::llama_tokenize(ctx, params.prompt, true); const int n_ctx = llama_n_ctx(ctx); - const int n_kv_req = tokens_list.size() + (n_len - tokens_list.size()); + const int n_kv_req = tokens_list.size() + (n_predict - tokens_list.size()); - LOG_TEE("\n%s: n_len = %d, n_ctx = %d, n_kv_req = %d\n", __func__, n_len, n_ctx, n_kv_req); + LOG_TEE("\n%s: n_predict = %d, n_ctx = %d, n_kv_req = %d\n", __func__, n_predict, n_ctx, n_kv_req); // make sure the KV cache is big enough to hold all the prompt and generated tokens if (n_kv_req > n_ctx) { LOG_TEE("%s: error: n_kv_req > n_ctx, the required KV cache size is not big enough\n", __func__); - LOG_TEE("%s: either reduce n_len or increase n_ctx\n", __func__); + LOG_TEE("%s: either reduce n_predict or increase n_ctx\n", __func__); return 1; } @@ -115,7 +107,7 @@ int main(int argc, char ** argv) { const auto t_main_start = ggml_time_us(); - while (n_cur <= n_len) { + while (n_cur <= n_predict) { // sample the next token { auto n_vocab = llama_n_vocab(model); @@ -134,7 +126,7 @@ int main(int argc, char ** argv) { const llama_token new_token_id = llama_sample_token_greedy(ctx, &candidates_p); // is it an end of generation? - if (llama_token_is_eog(model, new_token_id) || n_cur == n_len) { + if (llama_token_is_eog(model, new_token_id) || n_cur == n_predict) { LOG_TEE("\n"); break; diff --git a/examples/speculative/speculative.cpp b/examples/speculative/speculative.cpp index 12e46fbc91a24..0939a1a6a7a38 100644 --- a/examples/speculative/speculative.cpp +++ b/examples/speculative/speculative.cpp @@ -27,7 +27,8 @@ struct seq_draft { int main(int argc, char ** argv) { gpt_params params; - if (gpt_params_parse(argc, argv, params) == false) { + if (!gpt_params_parse(argc, argv, params)) { + gpt_params_print_usage(argc, argv, params); return 1; } diff --git a/llama.cpp b/llama.cpp index c05e2bdb7ae44..06889126ecdc4 100644 --- a/llama.cpp +++ b/llama.cpp @@ -108,7 +108,7 @@ // LLAMA_ATTRIBUTE_FORMAT(2, 3) -static void llama_log_internal (ggml_log_level level, const char* format, ...); +static void llama_log_internal (ggml_log_level level, const char * format, ...); static void llama_log_callback_default(ggml_log_level level, const char * text, void * user_data); #define LLAMA_LOG_INFO(...) llama_log_internal(GGML_LOG_LEVEL_INFO , __VA_ARGS__) diff --git a/scripts/run-with-preset.py b/scripts/run-with-preset.py index e986a36045549..0d7219113ec3f 100755 --- a/scripts/run-with-preset.py +++ b/scripts/run-with-preset.py @@ -13,12 +13,12 @@ CLI_ARGS_MAIN_PERPLEXITY = [ "batch-size", "cfg-negative-prompt", "cfg-scale", "chunks", "color", "ctx-size", "escape", "export", "file", "frequency-penalty", "grammar", "grammar-file", "hellaswag", - "hellaswag-tasks", "ignore-eos", "in-prefix", "in-prefix-bos", "in-suffix", "instruct", + "hellaswag-tasks", "ignore-eos", "in-prefix", "in-prefix-bos", "in-suffix", "interactive", "interactive-first", "keep", "logdir", "logit-bias", "lora", "lora-base", "low-vram", "main-gpu", "memory-f32", "mirostat", "mirostat-ent", "mirostat-lr", "mlock", "model", "multiline-input", "n-gpu-layers", "n-predict", "no-mmap", "no-mul-mat-q", "np-penalize-nl", "numa", "ppl-output-type", "ppl-stride", "presence-penalty", "prompt", - "prompt-cache", "prompt-cache-all", "prompt-cache-ro", "random-prompt", "repeat-last-n", + "prompt-cache", "prompt-cache-all", "prompt-cache-ro", "repeat-last-n", "repeat-penalty", "reverse-prompt", "rope-freq-base", "rope-freq-scale", "rope-scale", "seed", "simple-io", "tensor-split", "threads", "temp", "tfs", "top-k", "top-p", "typical", "verbose-prompt" From b90dc566c1c615289b05b50d61680f23744a21e7 Mon Sep 17 00:00:00 2001 From: agray3 Date: Tue, 4 Jun 2024 21:06:49 +0100 Subject: [PATCH 010/131] Allow number of nodes in CUDA graph to change (#7738) Previously the code would have failed to cope in the case that the number of nodes changes in an existing CUDA graph. This fixes the issue by removing an unnecessary conditional. --- ggml-cuda.cu | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/ggml-cuda.cu b/ggml-cuda.cu index daaa0cd6a5473..c81c6a0d783be 100644 --- a/ggml-cuda.cu +++ b/ggml-cuda.cu @@ -2702,10 +2702,8 @@ GGML_CALL static enum ggml_status ggml_backend_cuda_graph_compute(ggml_backend_t if (cuda_graph_update_required) { // Extract nodes from graph - if (cuda_ctx->cuda_graph->num_nodes == 0) { - // First call with null argument gets number of nodes in graph - CUDA_CHECK(cudaGraphGetNodes(cuda_ctx->cuda_graph->graph, nullptr, &cuda_ctx->cuda_graph->num_nodes)); - } + // First call with null argument gets number of nodes in graph + CUDA_CHECK(cudaGraphGetNodes(cuda_ctx->cuda_graph->graph, nullptr, &cuda_ctx->cuda_graph->num_nodes)); // Subsequent call with non-null argument gets nodes cuda_ctx->cuda_graph->nodes.resize(cuda_ctx->cuda_graph->num_nodes); cuda_ctx->cuda_graph->params.resize(cuda_ctx->cuda_graph->num_nodes); From c90dbe026b456a233f8f0fbe752212e6a0503ca2 Mon Sep 17 00:00:00 2001 From: jaime-m-p <167997752+jaime-m-p@users.noreply.github.com> Date: Wed, 5 Jun 2024 01:26:14 +0200 Subject: [PATCH 011/131] Fix per token atrributes bits (#7749) --- llama.h | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/llama.h b/llama.h index b2a302dad5388..9dcd67bef5036 100644 --- a/llama.h +++ b/llama.h @@ -109,16 +109,16 @@ extern "C" { enum llama_token_attr { LLAMA_TOKEN_ATTR_UNDEFINED = 0, - LLAMA_TOKEN_ATTR_UNKNOWN = 1 << 1, - LLAMA_TOKEN_ATTR_UNUSED = 1 << 2, - LLAMA_TOKEN_ATTR_NORMAL = 1 << 3, - LLAMA_TOKEN_ATTR_CONTROL = 1 << 4, // SPECIAL? - LLAMA_TOKEN_ATTR_USER_DEFINED = 1 << 5, - LLAMA_TOKEN_ATTR_BYTE = 1 << 6, - LLAMA_TOKEN_ATTR_NORMALIZED = 1 << 7, - LLAMA_TOKEN_ATTR_LSTRIP = 1 << 8, - LLAMA_TOKEN_ATTR_RSTRIP = 1 << 9, - LLAMA_TOKEN_ATTR_SINGLE_WORD = 1 << 10, + LLAMA_TOKEN_ATTR_UNKNOWN = 1 << 0, + LLAMA_TOKEN_ATTR_UNUSED = 1 << 1, + LLAMA_TOKEN_ATTR_NORMAL = 1 << 2, + LLAMA_TOKEN_ATTR_CONTROL = 1 << 3, // SPECIAL? + LLAMA_TOKEN_ATTR_USER_DEFINED = 1 << 4, + LLAMA_TOKEN_ATTR_BYTE = 1 << 5, + LLAMA_TOKEN_ATTR_NORMALIZED = 1 << 6, + LLAMA_TOKEN_ATTR_LSTRIP = 1 << 7, + LLAMA_TOKEN_ATTR_RSTRIP = 1 << 8, + LLAMA_TOKEN_ATTR_SINGLE_WORD = 1 << 9, }; // model file types From 9973e81c5ccf4f31b3980f5aa73f5cfea8699860 Mon Sep 17 00:00:00 2001 From: arch-btw <57669023+arch-btw@users.noreply.github.com> Date: Tue, 4 Jun 2024 23:40:49 -0700 Subject: [PATCH 012/131] readme : remove -ins (#7759) -ins and --instruct were moved in https://github.com/ggerganov/llama.cpp/pull/7675 I have adjusted the README accordingly. There was no trace of --chatml in the README. --- examples/main/README.md | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/examples/main/README.md b/examples/main/README.md index 4eaa684758b3e..cdc002f151d4a 100644 --- a/examples/main/README.md +++ b/examples/main/README.md @@ -69,7 +69,6 @@ In this section, we cover the most commonly used options for running the `main` - `-m FNAME, --model FNAME`: Specify the path to the LLaMA model file (e.g., `models/7B/ggml-model.gguf`; inferred from `--model-url` if set). - `-mu MODEL_URL --model-url MODEL_URL`: Specify a remote http url to download the file (e.g https://huggingface.co/ggml-org/models/resolve/main/phi-2/ggml-model-q4_0.gguf). - `-i, --interactive`: Run the program in interactive mode, allowing you to provide input directly and receive real-time responses. -- `-ins, --instruct`: Run the program in instruction mode, which is particularly useful when working with Alpaca models. - `-n N, --n-predict N`: Set the number of tokens to predict when generating text. Adjusting this value can influence the length of the generated text. - `-c N, --ctx-size N`: Set the size of the prompt context. The default is 512, but LLaMA models were built with a context of 2048, which will provide better results for longer input/inference. @@ -83,7 +82,7 @@ The `main` program provides several ways to interact with the LLaMA models using ## Interaction -The `main` program offers a seamless way to interact with LLaMA models, allowing users to engage in real-time conversations or provide instructions for specific tasks. The interactive mode can be triggered using various options, including `--interactive`, `--interactive-first`, and `--instruct`. +The `main` program offers a seamless way to interact with LLaMA models, allowing users to engage in real-time conversations or provide instructions for specific tasks. The interactive mode can be triggered using various options, including `--interactive` and `--interactive-first`. In interactive mode, users can participate in text generation by injecting their input during the process. Users can press `Ctrl+C` at any time to interject and type their input, followed by pressing `Return` to submit it to the LLaMA model. To submit additional lines without finalizing input, users can end the current line with a backslash (`\`) and continue typing. @@ -91,7 +90,6 @@ In interactive mode, users can participate in text generation by injecting their - `-i, --interactive`: Run the program in interactive mode, allowing users to engage in real-time conversations or provide specific instructions to the model. - `--interactive-first`: Run the program in interactive mode and immediately wait for user input before starting the text generation. -- `-ins, --instruct`: Run the program in instruction mode, which is specifically designed to work with Alpaca models that excel in completing tasks based on user instructions. - `--color`: Enable colorized output to differentiate visually distinguishing between prompts, user input, and generated text. By understanding and utilizing these interaction options, you can create engaging and dynamic experiences with the LLaMA models, tailoring the text generation process to your specific needs. @@ -120,16 +118,6 @@ The `--in-suffix` flag is used to add a suffix after your input. This is useful ./main -r "User:" --in-prefix " " --in-suffix "Assistant:" ``` -### Instruction Mode - -Instruction mode is particularly useful when working with Alpaca models, which are designed to follow user instructions for specific tasks: - -- `-ins, --instruct`: Enable instruction mode to leverage the capabilities of Alpaca models in completing tasks based on user-provided instructions. - -Technical detail: the user's input is internally prefixed with the reverse prompt (or `### Instruction:` as the default), and followed by `### Response:` (except if you just press Return without any input, to keep generating a longer response). - -By understanding and utilizing these interaction options, you can create engaging and dynamic experiences with the LLaMA models, tailoring the text generation process to your specific needs. - ## Context Management During text generation, LLaMA models have a limited context size, which means they can only consider a certain number of tokens from the input and generated text. When the context fills up, the model resets internally, potentially losing some information from the beginning of the conversation or instructions. Context management options help maintain continuity and coherence in these situations. From 2b3389677a833cee0880226533a1768b1a9508d2 Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Wed, 5 Jun 2024 11:29:20 +0300 Subject: [PATCH 013/131] ggml : refactor rope norm/neox (#7634) * ggml : unify rope norm/neox (CPU) * ggml : fix compile warning * ggml : remove GLM rope mode ggml-ci * metal : better rope implementation ggml-ci * cuda : better rope implementation ggml-ci * naming : n_orig_ctx -> n_ctx_orig ggml-ci * dev : add reminders to update backends ggml-ci * vulkan : fix ggml_rope_ext() usage * cuda : fix array size + indents ggml-ci --- examples/baby-llama/baby-llama.cpp | 12 +- examples/convert-legacy-llama.py | 12 +- examples/finetune/finetune.cpp | 2 +- .../train-text-from-scratch.cpp | 2 +- ggml-cuda/rope.cu | 273 ++++++--------- ggml-kompute.cpp | 13 +- ggml-metal.m | 52 +-- ggml-metal.metal | 142 ++++---- ggml-sycl.cpp | 74 +--- ggml-vulkan.cpp | 22 +- ggml.c | 330 +++++------------- ggml.h | 36 +- kompute-shaders/op_rope_f16.comp | 2 +- kompute-shaders/op_rope_f32.comp | 2 +- kompute-shaders/rope_common.comp | 12 +- llama.cpp | 124 +++---- tests/test-backend-ops.cpp | 31 +- tests/test-grad0.cpp | 4 +- tests/test-rope.cpp | 6 +- 19 files changed, 452 insertions(+), 699 deletions(-) diff --git a/examples/baby-llama/baby-llama.cpp b/examples/baby-llama/baby-llama.cpp index bf0125e753746..4f6c3746a106c 100644 --- a/examples/baby-llama/baby-llama.cpp +++ b/examples/baby-llama/baby-llama.cpp @@ -522,8 +522,8 @@ static struct ggml_tensor * forward( // wk shape [n_embd, n_embd, 1, 1] // Qcur shape [n_embd/n_head, n_head, N, 1] // Kcur shape [n_embd/n_head, n_head, N, 1] - struct ggml_tensor * Qcur = ggml_rope(ctx0, ggml_reshape_3d(ctx0, ggml_mul_mat(ctx0, model->layers[il].wq, cur), n_embd/n_head, n_head, N), KQ_pos, n_rot, 0, 0); - struct ggml_tensor * Kcur = ggml_rope(ctx0, ggml_reshape_3d(ctx0, ggml_mul_mat(ctx0, model->layers[il].wk, cur), n_embd/n_head, n_head, N), KQ_pos, n_rot, 0, 0); + struct ggml_tensor * Qcur = ggml_rope(ctx0, ggml_reshape_3d(ctx0, ggml_mul_mat(ctx0, model->layers[il].wq, cur), n_embd/n_head, n_head, N), KQ_pos, n_rot, 0); + struct ggml_tensor * Kcur = ggml_rope(ctx0, ggml_reshape_3d(ctx0, ggml_mul_mat(ctx0, model->layers[il].wk, cur), n_embd/n_head, n_head, N), KQ_pos, n_rot, 0); // store key and value to memory { @@ -759,8 +759,8 @@ static struct ggml_tensor * forward_batch( // wk shape [n_embd, n_embd, 1, 1] // Qcur shape [n_embd/n_head, n_head, N, n_batch] // Kcur shape [n_embd/n_head, n_head, N, n_batch] - struct ggml_tensor * Qcur = ggml_rope(ctx0, ggml_reshape_4d(ctx0, ggml_mul_mat(ctx0, model->layers[il].wq, cur), n_embd/n_head, n_head, N, n_batch), KQ_pos, n_rot, 0, 0); - struct ggml_tensor * Kcur = ggml_rope(ctx0, ggml_reshape_4d(ctx0, ggml_mul_mat(ctx0, model->layers[il].wk, cur), n_embd/n_head, n_head, N, n_batch), KQ_pos, n_rot, 0, 0); + struct ggml_tensor * Qcur = ggml_rope(ctx0, ggml_reshape_4d(ctx0, ggml_mul_mat(ctx0, model->layers[il].wq, cur), n_embd/n_head, n_head, N, n_batch), KQ_pos, n_rot, 0); + struct ggml_tensor * Kcur = ggml_rope(ctx0, ggml_reshape_4d(ctx0, ggml_mul_mat(ctx0, model->layers[il].wk, cur), n_embd/n_head, n_head, N, n_batch), KQ_pos, n_rot, 0); assert_shape_4d(Qcur, n_embd/n_head, n_head, N, n_batch); assert_shape_4d(Kcur, n_embd/n_head, n_head, N, n_batch); @@ -1056,7 +1056,7 @@ static struct ggml_tensor * forward_lora( model->layers[il].wqb, cur)), n_embd/n_head, n_head, N), - KQ_pos, n_rot, 0, 0); + KQ_pos, n_rot, 0); struct ggml_tensor * Kcur = ggml_rope(ctx0, ggml_reshape_3d(ctx0, ggml_mul_mat(ctx0, @@ -1065,7 +1065,7 @@ static struct ggml_tensor * forward_lora( model->layers[il].wkb, cur)), n_embd/n_head, n_head, N), - KQ_pos, n_rot, 0, 0); + KQ_pos, n_rot, 0); // store key and value to memory { diff --git a/examples/convert-legacy-llama.py b/examples/convert-legacy-llama.py index fd840101569a9..721a57c00299b 100755 --- a/examples/convert-legacy-llama.py +++ b/examples/convert-legacy-llama.py @@ -176,7 +176,7 @@ class Params: rope_scaling_type: gguf.RopeScalingType | None = None f_rope_freq_base: float | None = None f_rope_scale: float | None = None - n_orig_ctx: int | None = None + n_ctx_orig: int | None = None rope_finetuned: bool | None = None ftype: GGMLFileType | None = None @@ -226,7 +226,7 @@ def loadHFTransformerJson(model: LazyModel, config_path: Path) -> Params: with open(config_path) as f: config = json.load(f) - rope_scaling_type = f_rope_scale = n_orig_ctx = rope_finetuned = None + rope_scaling_type = f_rope_scale = n_ctx_orig = rope_finetuned = None rope_scaling = config.get("rope_scaling") if rope_scaling is not None and (typ := rope_scaling.get("type")): @@ -236,7 +236,7 @@ def loadHFTransformerJson(model: LazyModel, config_path: Path) -> Params: rope_scaling_type = gguf.RopeScalingType.LINEAR elif typ == "yarn": rope_scaling_type = gguf.RopeScalingType.YARN - n_orig_ctx = rope_scaling['original_max_position_embeddings'] + n_ctx_orig = rope_scaling['original_max_position_embeddings'] rope_finetuned = rope_scaling['finetuned'] else: raise NotImplementedError(f'Unknown rope scaling type: {typ}') @@ -272,7 +272,7 @@ def loadHFTransformerJson(model: LazyModel, config_path: Path) -> Params: f_rope_freq_base = config.get("rope_theta"), rope_scaling_type = rope_scaling_type, f_rope_scale = f_rope_scale, - n_orig_ctx = n_orig_ctx, + n_ctx_orig = n_ctx_orig, rope_finetuned = rope_finetuned, ) @@ -864,8 +864,8 @@ def add_meta_arch(self, params: Params) -> None: self.gguf.add_rope_scaling_type(params.rope_scaling_type) self.gguf.add_rope_scaling_factor(params.f_rope_scale) - if params.n_orig_ctx is not None: - self.gguf.add_rope_scaling_orig_ctx_len(params.n_orig_ctx) + if params.n_ctx_orig is not None: + self.gguf.add_rope_scaling_orig_ctx_len(params.n_ctx_orig) if params.rope_finetuned is not None: self.gguf.add_rope_scaling_finetuned(params.rope_finetuned) diff --git a/examples/finetune/finetune.cpp b/examples/finetune/finetune.cpp index 22425730f20eb..71a4333ee7908 100644 --- a/examples/finetune/finetune.cpp +++ b/examples/finetune/finetune.cpp @@ -564,7 +564,7 @@ static struct ggml_tensor * llama_build_lora_finetune_graphs( const int rope_mode = 0; return ggml_rope_ext(ctx, - t, KQ_pos, nullptr, n_rot, rope_mode, n_ctx, 0, + t, KQ_pos, nullptr, n_rot, rope_mode, n_ctx, rope_freq_base, rope_freq_scale, 0.0f, 1.0f, 0.0f, 0.0f ); }; diff --git a/examples/train-text-from-scratch/train-text-from-scratch.cpp b/examples/train-text-from-scratch/train-text-from-scratch.cpp index e2f85c68297b8..b779f6bd49876 100644 --- a/examples/train-text-from-scratch/train-text-from-scratch.cpp +++ b/examples/train-text-from-scratch/train-text-from-scratch.cpp @@ -302,7 +302,7 @@ static struct ggml_tensor * llama_build_train_graphs( const int rope_mode = 0; return ggml_rope_ext( - ctx, t, KQ_pos, nullptr, n_rot, rope_mode, n_ctx, 0, rope_freq_base, rope_freq_scale, 0.0f, 1.0f, 0.0f, 0.0f + ctx, t, KQ_pos, nullptr, n_rot, rope_mode, n_ctx, rope_freq_base, rope_freq_scale, 0.0f, 1.0f, 0.0f, 0.0f ); }; diff --git a/ggml-cuda/rope.cu b/ggml-cuda/rope.cu index 0dd07977ebab1..596fb7c135058 100644 --- a/ggml-cuda/rope.cu +++ b/ggml-cuda/rope.cu @@ -1,7 +1,7 @@ #include "rope.cuh" struct rope_corr_dims { - float v[4]; + float v[2]; }; static __device__ float rope_yarn_ramp(const float low, const float high, const int i0) { @@ -13,8 +13,7 @@ static __device__ float rope_yarn_ramp(const float low, const float high, const // MIT licensed. Copyright (c) 2023 Jeffrey Quesnelle and Bowen Peng. static __device__ void rope_yarn( float theta_extrap, float freq_scale, rope_corr_dims corr_dims, int64_t i0, float ext_factor, float mscale, - float * cos_theta, float * sin_theta -) { + float * cos_theta, float * sin_theta) { // Get n-d rotational scaling corrected for extrapolation float theta_interp = freq_scale * theta_extrap; float theta = theta_interp; @@ -29,27 +28,38 @@ static __device__ void rope_yarn( *sin_theta = sinf(theta) * mscale; } -// rope == RoPE == rotary positional embedding -template -static __global__ void rope( - const T * x, T * dst, int ncols, const int32_t * pos, float freq_scale, int p_delta_rows, float freq_base, - float ext_factor, float attn_factor, rope_corr_dims corr_dims -) { - const int col = 2*(blockDim.y*blockIdx.y + threadIdx.y); +template +static __global__ void rope_norm( + const T * x, T * dst, int ne0, int n_dims, const int32_t * pos, float freq_scale, int p_delta_rows, + float ext_factor, float attn_factor, rope_corr_dims corr_dims, float theta_scale, const float * freq_factors) { + const int i0 = 2*(blockDim.y*blockIdx.y + threadIdx.y); - if (col >= ncols) { + if (i0 >= ne0) { return; } const int row = blockDim.x*blockIdx.x + threadIdx.x; - const int i = row*ncols + col; + + if (i0 >= n_dims) { + const int i = row*ne0 + i0; + + dst[i + 0] = x[i + 0]; + dst[i + 1] = x[i + 1]; + + return; + } + + const int i = row*ne0 + i0; const int i2 = row/p_delta_rows; - const int p = has_pos ? pos[i2] : 0; - const float theta_base = p*powf(freq_base, -float(col)/ncols); + const float theta_base = pos[i2]*powf(theta_scale, i0/2.0f); + + const float freq_factor = has_ff ? freq_factors[i0/2] : 1.0f; - float cos_theta, sin_theta; - rope_yarn(theta_base, freq_scale, corr_dims, col, ext_factor, attn_factor, &cos_theta, &sin_theta); + float cos_theta; + float sin_theta; + + rope_yarn(theta_base/freq_factor, freq_scale, corr_dims, i0, ext_factor, attn_factor, &cos_theta, &sin_theta); const float x0 = x[i + 0]; const float x1 = x[i + 1]; @@ -58,23 +68,20 @@ static __global__ void rope( dst[i + 1] = x0*sin_theta + x1*cos_theta; } -template +template static __global__ void rope_neox( - const T * x, T * dst, int ncols, int n_dims, const int32_t * pos, float freq_scale, int p_delta_rows, - float ext_factor, float attn_factor, rope_corr_dims corr_dims, float theta_scale, const float * freq_factors -) { - const int col = 2*(blockDim.y*blockIdx.y + threadIdx.y); + const T * x, T * dst, int ne0, int n_dims, const int32_t * pos, float freq_scale, int p_delta_rows, + float ext_factor, float attn_factor, rope_corr_dims corr_dims, float theta_scale, const float * freq_factors) { + const int i0 = 2*(blockDim.y*blockIdx.y + threadIdx.y); - if (col >= ncols) { + if (i0 >= ne0) { return; } const int row = blockDim.x*blockIdx.x + threadIdx.x; - const int ib = col / n_dims; - const int ic = col % n_dims; - if (ib > 0) { - const int i = row*ncols + ib*n_dims + ic; + if (i0 >= n_dims) { + const int i = row*ne0 + i0; dst[i + 0] = x[i + 0]; dst[i + 1] = x[i + 1]; @@ -82,16 +89,17 @@ static __global__ void rope_neox( return; } - const int i = row*ncols + ib*n_dims + ic/2; + const int i = row*ne0 + i0/2; const int i2 = row/p_delta_rows; - const int p = has_pos ? pos[i2] : 0; - const float freq_factor = has_freq_facs ? freq_factors[ic/2] : 1.0f; + const float theta_base = pos[i2]*powf(theta_scale, i0/2.0f); - const float theta_base = p*powf(theta_scale, col/2.0f)/freq_factor; + const float freq_factor = has_ff ? freq_factors[i0/2] : 1.0f; - float cos_theta, sin_theta; - rope_yarn(theta_base, freq_scale, corr_dims, ic, ext_factor, attn_factor, &cos_theta, &sin_theta); + float cos_theta; + float sin_theta; + + rope_yarn(theta_base/freq_factor, freq_scale, corr_dims, i0, ext_factor, attn_factor, &cos_theta, &sin_theta); const float x0 = x[i + 0]; const float x1 = x[i + n_dims/2]; @@ -100,144 +108,81 @@ static __global__ void rope_neox( dst[i + n_dims/2] = x0*sin_theta + x1*cos_theta; } -static __global__ void rope_glm_f32( - const float * x, float * dst, int ncols, const int32_t * pos, float freq_scale, int p_delta_rows, float freq_base, - int n_ctx -) { - const int col = blockDim.x*blockIdx.x + threadIdx.x; - const int half_n_dims = ncols/4; - - if (col >= half_n_dims) { - return; - } - - const int row = blockDim.y*blockIdx.y + threadIdx.y; - const int i = row*ncols + col; - const int i2 = row/p_delta_rows; - - const float col_theta_scale = powf(freq_base, -2.0f*col/ncols); - // FIXME: this is likely wrong - const int p = pos != nullptr ? pos[i2] : 0; - - const float theta = min(p, n_ctx - 2)*freq_scale*col_theta_scale; - const float sin_theta = sinf(theta); - const float cos_theta = cosf(theta); - - const float x0 = x[i + 0]; - const float x1 = x[i + half_n_dims]; - - dst[i + 0] = x0*cos_theta - x1*sin_theta; - dst[i + half_n_dims] = x0*sin_theta + x1*cos_theta; - - const float block_theta = ((float)max(p - n_ctx - 2, 0))*col_theta_scale; - const float sin_block_theta = sinf(block_theta); - const float cos_block_theta = cosf(block_theta); - - const float x2 = x[i + half_n_dims * 2]; - const float x3 = x[i + half_n_dims * 3]; - - dst[i + half_n_dims * 2] = x2*cos_block_theta - x3*sin_block_theta; - dst[i + half_n_dims * 3] = x2*sin_block_theta + x3*cos_block_theta; -} - - template -static void rope_cuda( - const T * x, T * dst, int ncols, int nrows, const int32_t * pos, float freq_scale, int p_delta_rows, - float freq_base, float ext_factor, float attn_factor, rope_corr_dims corr_dims, cudaStream_t stream -) { - GGML_ASSERT(ncols % 2 == 0); +static void rope_norm_cuda( + const T * x, T * dst, int ne0, int n_dims, int nr, const int32_t * pos, float freq_scale, int p_delta_rows, + float freq_base, float ext_factor, float attn_factor, rope_corr_dims corr_dims, const float * freq_factors, cudaStream_t stream) { + GGML_ASSERT(ne0 % 2 == 0); const dim3 block_dims(1, CUDA_ROPE_BLOCK_SIZE, 1); - const int num_blocks_x = (ncols + 2*CUDA_ROPE_BLOCK_SIZE - 1) / (2*CUDA_ROPE_BLOCK_SIZE); - const dim3 block_nums(nrows, num_blocks_x, 1); - if (pos == nullptr) { - rope<<>>( - x, dst, ncols, pos, freq_scale, p_delta_rows, freq_base, ext_factor, attn_factor, corr_dims - ); + const int n_blocks_x = (ne0 + 2*CUDA_ROPE_BLOCK_SIZE - 1) / (2*CUDA_ROPE_BLOCK_SIZE); + const dim3 block_nums(nr, n_blocks_x, 1); + + const float theta_scale = powf(freq_base, -2.0f/n_dims); + + if (freq_factors == nullptr) { + rope_norm<<>>( + x, dst, ne0, n_dims, pos, freq_scale, p_delta_rows, ext_factor, attn_factor, corr_dims, + theta_scale, freq_factors + ); } else { - rope<<>>( - x, dst, ncols, pos, freq_scale, p_delta_rows, freq_base, ext_factor, attn_factor, corr_dims - ); + rope_norm<<>>( + x, dst, ne0, n_dims, pos, freq_scale, p_delta_rows, ext_factor, attn_factor, corr_dims, + theta_scale, freq_factors + ); } } template static void rope_neox_cuda( - const T * x, T * dst, int ncols, int n_dims, int nrows, const int32_t * pos, float freq_scale, int p_delta_rows, - float freq_base, float ext_factor, float attn_factor, rope_corr_dims corr_dims, const float * freq_factors, cudaStream_t stream -) { - GGML_ASSERT(ncols % 2 == 0); + const T * x, T * dst, int ne0, int n_dims, int nr, const int32_t * pos, float freq_scale, int p_delta_rows, + float freq_base, float ext_factor, float attn_factor, rope_corr_dims corr_dims, const float * freq_factors, cudaStream_t stream) { + GGML_ASSERT(ne0 % 2 == 0); const dim3 block_dims(1, CUDA_ROPE_BLOCK_SIZE, 1); - const int num_blocks_x = (ncols + 2*CUDA_ROPE_BLOCK_SIZE - 1) / (2*CUDA_ROPE_BLOCK_SIZE); - const dim3 block_nums(nrows, num_blocks_x, 1); + const int n_blocks_x = (ne0 + 2*CUDA_ROPE_BLOCK_SIZE - 1) / (2*CUDA_ROPE_BLOCK_SIZE); + const dim3 block_nums(nr, n_blocks_x, 1); const float theta_scale = powf(freq_base, -2.0f/n_dims); - if (pos == nullptr) { - if (freq_factors == nullptr) { - rope_neox<<>>( - x, dst, ncols, n_dims, pos, freq_scale, p_delta_rows, ext_factor, attn_factor, corr_dims, - theta_scale, freq_factors - ); - } else { - rope_neox<<>>( - x, dst, ncols, n_dims, pos, freq_scale, p_delta_rows, ext_factor, attn_factor, corr_dims, + if (freq_factors == nullptr) { + rope_neox<<>>( + x, dst, ne0, n_dims, pos, freq_scale, p_delta_rows, ext_factor, attn_factor, corr_dims, theta_scale, freq_factors ); - } } else { - if (freq_factors == nullptr) { - rope_neox<<>>( - x, dst, ncols, n_dims, pos, freq_scale, p_delta_rows, ext_factor, attn_factor, corr_dims, - theta_scale, freq_factors - ); - } else { - rope_neox<<>>( - x, dst, ncols, n_dims, pos, freq_scale, p_delta_rows, ext_factor, attn_factor, corr_dims, + rope_neox<<>>( + x, dst, ne0, n_dims, pos, freq_scale, p_delta_rows, ext_factor, attn_factor, corr_dims, theta_scale, freq_factors ); - } } } -static void rope_glm_f32_cuda( - const float * x, float * dst, int ncols, int nrows, const int32_t * pos, float freq_scale, int p_delta_rows, - float freq_base, int n_ctx, cudaStream_t stream -) { - GGML_ASSERT(ncols % 4 == 0); - const dim3 block_dims(CUDA_ROPE_BLOCK_SIZE/4, 1, 1); - const int num_blocks_x = (ncols + CUDA_ROPE_BLOCK_SIZE - 1) / CUDA_ROPE_BLOCK_SIZE; - const dim3 block_nums(num_blocks_x, nrows, 1); - rope_glm_f32<<>>(x, dst, ncols, pos, freq_scale, p_delta_rows, freq_base, n_ctx); -} - -static void rope_cuda_f16( - const half * x, half * dst, int ncols, int nrows, const int32_t * pos, float freq_scale, int p_delta_rows, - float freq_base, float ext_factor, float attn_factor, rope_corr_dims corr_dims, cudaStream_t stream) { +static void rope_norm_cuda_f16( + const half * x, half * dst, int ne0, int n_dims, int nr, const int32_t * pos, float freq_scale, int p_delta_rows, + float freq_base, float ext_factor, float attn_factor, rope_corr_dims corr_dims, const float * freq_factors, cudaStream_t stream) { - rope_cuda(x, dst, ncols, nrows, pos, freq_scale, p_delta_rows, freq_base, ext_factor, attn_factor, corr_dims, stream); + rope_norm_cuda(x, dst, ne0, n_dims, nr, pos, freq_scale, p_delta_rows, freq_base, ext_factor, attn_factor, corr_dims, freq_factors, stream); } -static void rope_cuda_f32( - const float * x, float * dst, int ncols, int nrows, const int32_t * pos, float freq_scale, int p_delta_rows, - float freq_base, float ext_factor, float attn_factor, rope_corr_dims corr_dims, cudaStream_t stream) { +static void rope_norm_cuda_f32( + const float * x, float * dst, int ne0, int n_dims, int nr, const int32_t * pos, float freq_scale, int p_delta_rows, + float freq_base, float ext_factor, float attn_factor, rope_corr_dims corr_dims, const float * freq_factors, cudaStream_t stream) { - rope_cuda(x, dst, ncols, nrows, pos, freq_scale, p_delta_rows, freq_base, ext_factor, attn_factor, corr_dims, stream); + rope_norm_cuda(x, dst, ne0, n_dims, nr, pos, freq_scale, p_delta_rows, freq_base, ext_factor, attn_factor, corr_dims, freq_factors, stream); } static void rope_neox_cuda_f16( - const half * x, half * dst, int ncols, int n_dims, int nrows, const int32_t * pos, float freq_scale, int p_delta_rows, + const half * x, half * dst, int ne0, int n_dims, int nr, const int32_t * pos, float freq_scale, int p_delta_rows, float freq_base, float ext_factor, float attn_factor, rope_corr_dims corr_dims, const float * freq_factors, cudaStream_t stream) { - rope_neox_cuda(x, dst, ncols, n_dims, nrows, pos, freq_scale, p_delta_rows, freq_base, ext_factor, attn_factor, corr_dims, freq_factors, stream); + rope_neox_cuda(x, dst, ne0, n_dims, nr, pos, freq_scale, p_delta_rows, freq_base, ext_factor, attn_factor, corr_dims, freq_factors, stream); } static void rope_neox_cuda_f32( - const float * x, float * dst, int ncols, int n_dims, int nrows, const int32_t * pos, float freq_scale, int p_delta_rows, + const float * x, float * dst, int ne0, int n_dims, int nr, const int32_t * pos, float freq_scale, int p_delta_rows, float freq_base, float ext_factor, float attn_factor, rope_corr_dims corr_dims, const float * freq_factors, cudaStream_t stream ) { - rope_neox_cuda(x, dst, ncols, n_dims, nrows, pos, freq_scale, p_delta_rows, freq_base, ext_factor, attn_factor, corr_dims, freq_factors, stream); + rope_neox_cuda(x, dst, ne0, n_dims, nr, pos, freq_scale, p_delta_rows, freq_base, ext_factor, attn_factor, corr_dims, freq_factors, stream); } void ggml_cuda_op_rope(ggml_backend_cuda_context & ctx, ggml_tensor * dst) { @@ -258,16 +203,22 @@ void ggml_cuda_op_rope(ggml_backend_cuda_context & ctx, ggml_tensor * dst) { const int64_t ne00 = src0->ne[0]; const int64_t ne01 = src0->ne[1]; - const int64_t nrows = ggml_nrows(src0); + const int64_t nr = ggml_nrows(src0); - //const int n_past = ((int32_t *) dst->op_params)[0]; - const int n_dims = ((int32_t *) dst->op_params)[1]; - const int mode = ((int32_t *) dst->op_params)[2]; - const int n_ctx = ((int32_t *) dst->op_params)[3]; - const int n_orig_ctx = ((int32_t *) dst->op_params)[4]; + //const int n_past = ((int32_t *) dst->op_params)[0]; + const int n_dims = ((int32_t *) dst->op_params)[1]; + const int mode = ((int32_t *) dst->op_params)[2]; + //const int n_ctx = ((int32_t *) dst->op_params)[3]; + const int n_ctx_orig = ((int32_t *) dst->op_params)[4]; // RoPE alteration for extended context - float freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow; + float freq_base; + float freq_scale; + float ext_factor; + float attn_factor; + float beta_fast; + float beta_slow; + memcpy(&freq_base, (int32_t *) dst->op_params + 5, sizeof(float)); memcpy(&freq_scale, (int32_t *) dst->op_params + 6, sizeof(float)); memcpy(&ext_factor, (int32_t *) dst->op_params + 7, sizeof(float)); @@ -275,38 +226,28 @@ void ggml_cuda_op_rope(ggml_backend_cuda_context & ctx, ggml_tensor * dst) { memcpy(&beta_fast, (int32_t *) dst->op_params + 9, sizeof(float)); memcpy(&beta_slow, (int32_t *) dst->op_params + 10, sizeof(float)); - const float * freq_factors = nullptr; - const int32_t * pos = nullptr; - const bool is_neox = mode & 2; - const bool is_glm = mode & 4; - pos = (const int32_t *) src1_d; + const int32_t * pos = (const int32_t *) src1_d; - if (is_neox) { - if (src2 != nullptr) { - freq_factors = (const float *) src2->data; - } - } else { - GGML_ASSERT(src2 == nullptr && "TODO: freq_factors not implemented for !is_neox"); + const float * freq_factors = nullptr; + if (src2 != nullptr) { + freq_factors = (const float *) src2->data; } rope_corr_dims corr_dims; - ggml_rope_yarn_corr_dims(n_dims, n_orig_ctx, freq_base, beta_fast, beta_slow, corr_dims.v); + ggml_rope_yarn_corr_dims(n_dims, n_ctx_orig, freq_base, beta_fast, beta_slow, corr_dims.v); // compute - if (is_glm) { - GGML_ASSERT(false); - rope_glm_f32_cuda(src0_d, dst_d, ne00, nrows, pos, freq_scale, ne01, freq_base, n_ctx, stream); - } else if (is_neox) { + if (is_neox) { if (src0->type == GGML_TYPE_F32) { rope_neox_cuda_f32( - (const float *)src0_d, (float *)dst_d, ne00, n_dims, nrows, pos, freq_scale, ne01, freq_base, ext_factor, + (const float *)src0_d, (float *)dst_d, ne00, n_dims, nr, pos, freq_scale, ne01, freq_base, ext_factor, attn_factor, corr_dims, freq_factors, stream ); } else if (src0->type == GGML_TYPE_F16) { rope_neox_cuda_f16( - (const half *)src0_d, (half *)dst_d, ne00, n_dims, nrows, pos, freq_scale, ne01, freq_base, ext_factor, + (const half *)src0_d, (half *)dst_d, ne00, n_dims, nr, pos, freq_scale, ne01, freq_base, ext_factor, attn_factor, corr_dims, freq_factors, stream ); } else { @@ -314,14 +255,14 @@ void ggml_cuda_op_rope(ggml_backend_cuda_context & ctx, ggml_tensor * dst) { } } else { if (src0->type == GGML_TYPE_F32) { - rope_cuda_f32( - (const float *)src0_d, (float *)dst_d, ne00, nrows, pos, freq_scale, ne01, freq_base, ext_factor, - attn_factor, corr_dims, stream + rope_norm_cuda_f32( + (const float *)src0_d, (float *)dst_d, ne00, n_dims, nr, pos, freq_scale, ne01, freq_base, ext_factor, + attn_factor, corr_dims, freq_factors, stream ); } else if (src0->type == GGML_TYPE_F16) { - rope_cuda_f16( - (const half *)src0_d, (half *)dst_d, ne00, nrows, pos, freq_scale, ne01, freq_base, ext_factor, - attn_factor, corr_dims, stream + rope_norm_cuda_f16( + (const half *)src0_d, (half *)dst_d, ne00, n_dims, nr, pos, freq_scale, ne01, freq_base, ext_factor, + attn_factor, corr_dims, freq_factors, stream ); } else { GGML_ASSERT(false); diff --git a/ggml-kompute.cpp b/ggml-kompute.cpp index eabd70d5eeed8..5592741be4255 100644 --- a/ggml-kompute.cpp +++ b/ggml-kompute.cpp @@ -1192,7 +1192,7 @@ static void ggml_vk_rope( const std::shared_ptr& inB, const std::shared_ptr& out, uint32_t inAOff, uint32_t inBOff, uint32_t outOff, - ggml_type src0t, int32_t n_dims, int32_t mode, int32_t n_orig_ctx, + ggml_type src0t, int32_t n_dims, int32_t mode, int32_t n_ctx_orig, float freq_base, float freq_scale, float ext_factor, float attn_factor, float beta_fast, float beta_slow, int32_t ne01, int32_t ne02, int32_t ne03, uint32_t nb00, uint32_t nb01, uint32_t nb02, uint32_t nb03, @@ -1221,14 +1221,14 @@ static void ggml_vk_rope( struct PushConstants { uint32_t inAOff, inBOff, outOff; - int32_t n_dims, mode, n_orig_ctx; + int32_t n_dims, mode, n_ctx_orig; float freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow; uint32_t nb00, nb01, nb02, nb03; int32_t ne0; uint32_t nb0, nb1, nb2, nb3; } pushConsts { safe_divide(inAOff, type_size), safe_divide(inBOff, 4), safe_divide(outOff, type_size), - n_dims, mode, n_orig_ctx, + n_dims, mode, n_ctx_orig, freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow, nb00, nb01, nb02, nb03, ne0, @@ -1692,13 +1692,16 @@ static void ggml_vk_graph_compute(struct ggml_kompute_context * ctx, struct ggml #pragma message(" https://github.com/ggerganov/llama.cpp/pull/7225") GGML_ASSERT(dst->src[2] == nullptr && "phi3 frequency factors not implemented yet"); +#pragma message("TODO: update rope NORM mode to match NEOX mode") +#pragma message(" https://github.com/ggerganov/llama.cpp/pull/7634") + GGML_ASSERT(ne10 == ne02); GGML_ASSERT(src0t == dstt); // const int n_past = ((int32_t *) dst->op_params)[0]; const int n_dims = ((int32_t *) dst->op_params)[1]; const int mode = ((int32_t *) dst->op_params)[2]; // skip 3, n_ctx used in GLM RoPE, unimplemented in Vulkan - const int n_orig_ctx = ((int32_t *) dst->op_params)[4]; + const int n_ctx_orig = ((int32_t *) dst->op_params)[4]; float freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow; memcpy(&freq_base, (int32_t *) dst->op_params + 5, sizeof(float)); @@ -1708,7 +1711,7 @@ static void ggml_vk_graph_compute(struct ggml_kompute_context * ctx, struct ggml memcpy(&beta_fast, (int32_t *) dst->op_params + 9, sizeof(float)); memcpy(&beta_slow, (int32_t *) dst->op_params + 10, sizeof(float)); ggml_vk_rope( - seq, id_src0, id_src1, id_dst, off_src0, off_src1, off_dst, src0t, n_dims, mode, n_orig_ctx, + seq, id_src0, id_src1, id_dst, off_src0, off_src1, off_dst, src0t, n_dims, mode, n_ctx_orig, freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow, ne01, ne02, ne03, nb00, nb01, nb02, nb03, ne0, nb0, nb1, nb2, nb3 ); diff --git a/ggml-metal.m b/ggml-metal.m index fddc44f78d8af..946f11813dcf9 100644 --- a/ggml-metal.m +++ b/ggml-metal.m @@ -172,8 +172,10 @@ GGML_METAL_KERNEL_TYPE_MUL_MM_ID_IQ1_M_F32, GGML_METAL_KERNEL_TYPE_MUL_MM_ID_IQ4_NL_F32, GGML_METAL_KERNEL_TYPE_MUL_MM_ID_IQ4_XS_F32, - GGML_METAL_KERNEL_TYPE_ROPE_F32, - GGML_METAL_KERNEL_TYPE_ROPE_F16, + GGML_METAL_KERNEL_TYPE_ROPE_NORM_F32, + GGML_METAL_KERNEL_TYPE_ROPE_NORM_F16, + GGML_METAL_KERNEL_TYPE_ROPE_NEOX_F32, + GGML_METAL_KERNEL_TYPE_ROPE_NEOX_F16, GGML_METAL_KERNEL_TYPE_IM2COL_F16, GGML_METAL_KERNEL_TYPE_IM2COL_F32, GGML_METAL_KERNEL_TYPE_UPSCALE_F32, @@ -626,8 +628,10 @@ static void ggml_metal_log(enum ggml_log_level level, const char * format, ...){ GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MM_ID_IQ1_M_F32, mul_mm_id_iq1_m_f32, ctx->support_simdgroup_mm); GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MM_ID_IQ4_NL_F32, mul_mm_id_iq4_nl_f32, ctx->support_simdgroup_mm); GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MM_ID_IQ4_XS_F32, mul_mm_id_iq4_xs_f32, ctx->support_simdgroup_mm); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_ROPE_F32, rope_f32, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_ROPE_F16, rope_f16, true); + GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_ROPE_NORM_F32, rope_norm_f32, true); + GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_ROPE_NORM_F16, rope_norm_f16, true); + GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_ROPE_NEOX_F32, rope_neox_f32, true); + GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_ROPE_NEOX_F16, rope_neox_f16, true); GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_IM2COL_F16, im2col_f16, true); GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_IM2COL_F32, im2col_f32, true); GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_UPSCALE_F32, upscale_f32, true); @@ -2285,7 +2289,7 @@ static enum ggml_status ggml_metal_graph_compute( const int n_dims = ((int32_t *) dst->op_params)[1]; const int mode = ((int32_t *) dst->op_params)[2]; // skip 3, n_ctx, used in GLM RoPE, unimplemented in metal - const int n_orig_ctx = ((int32_t *) dst->op_params)[4]; + const int n_ctx_orig = ((int32_t *) dst->op_params)[4]; float freq_base; float freq_scale; @@ -2302,22 +2306,23 @@ static enum ggml_status ggml_metal_graph_compute( memcpy(&beta_slow, (int32_t *) dst->op_params + 10, sizeof(float)); const bool is_neox = mode & 2; - const bool is_glm = mode & 4; - GGML_ASSERT(!is_glm && "GLM RoPE not implemented in Metal"); + id pipeline = nil; if (!is_neox) { - GGML_ASSERT(id_src2 == nil && "TODO: freq_factors not implemented for !is_neox"); + switch (src0->type) { + case GGML_TYPE_F32: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_ROPE_NORM_F32].pipeline; break; + case GGML_TYPE_F16: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_ROPE_NORM_F16].pipeline; break; + default: GGML_ASSERT(false); + }; + } else { + switch (src0->type) { + case GGML_TYPE_F32: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_ROPE_NEOX_F32].pipeline; break; + case GGML_TYPE_F16: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_ROPE_NEOX_F16].pipeline; break; + default: GGML_ASSERT(false); + }; } - id pipeline = nil; - - switch (src0->type) { - case GGML_TYPE_F32: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_ROPE_F32].pipeline; break; - case GGML_TYPE_F16: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_ROPE_F16].pipeline; break; - default: GGML_ASSERT(false); - }; - [encoder setComputePipelineState:pipeline]; [encoder setBuffer:id_src0 offset:offs_src0 atIndex:0]; [encoder setBuffer:id_src1 offset:offs_src1 atIndex:1]; @@ -2345,14 +2350,13 @@ static enum ggml_status ggml_metal_graph_compute( [encoder setBytes:&nb3 length:sizeof(uint64_t) atIndex:19]; [encoder setBytes:&n_past length:sizeof( int) atIndex:20]; [encoder setBytes:&n_dims length:sizeof( int) atIndex:21]; - [encoder setBytes:&mode length:sizeof( int) atIndex:22]; - [encoder setBytes:&n_orig_ctx length:sizeof( int) atIndex:23]; - [encoder setBytes:&freq_base length:sizeof( float) atIndex:24]; - [encoder setBytes:&freq_scale length:sizeof( float) atIndex:25]; - [encoder setBytes:&ext_factor length:sizeof( float) atIndex:26]; - [encoder setBytes:&attn_factor length:sizeof( float) atIndex:27]; - [encoder setBytes:&beta_fast length:sizeof( float) atIndex:28]; - [encoder setBytes:&beta_slow length:sizeof( float) atIndex:29]; + [encoder setBytes:&n_ctx_orig length:sizeof( int) atIndex:22]; + [encoder setBytes:&freq_base length:sizeof( float) atIndex:23]; + [encoder setBytes:&freq_scale length:sizeof( float) atIndex:24]; + [encoder setBytes:&ext_factor length:sizeof( float) atIndex:25]; + [encoder setBytes:&attn_factor length:sizeof( float) atIndex:26]; + [encoder setBytes:&beta_fast length:sizeof( float) atIndex:27]; + [encoder setBytes:&beta_slow length:sizeof( float) atIndex:28]; [encoder dispatchThreadgroups:MTLSizeMake(ne01, ne02, ne03) threadsPerThreadgroup:MTLSizeMake(nth, 1, 1)]; } break; diff --git a/ggml-metal.metal b/ggml-metal.metal index 0cb85e1a5bad4..e2796fd601281 100644 --- a/ggml-metal.metal +++ b/ggml-metal.metal @@ -1654,8 +1654,7 @@ static float rope_yarn_ramp(const float low, const float high, const int i0) { // MIT licensed. Copyright (c) 2023 Jeffrey Quesnelle and Bowen Peng. static void rope_yarn( float theta_extrap, float freq_scale, float corr_dims[2], int64_t i0, float ext_factor, float mscale, - thread float * cos_theta, thread float * sin_theta -) { + thread float * cos_theta, thread float * sin_theta) { // Get n-d rotational scaling corrected for extrapolation float theta_interp = freq_scale * theta_extrap; float theta = theta_interp; @@ -1672,19 +1671,20 @@ static void rope_yarn( // Apparently solving `n_rot = 2pi * x * base^((2 * max_pos_emb) / n_dims)` for x, we get // `corr_fac(n_rot) = n_dims * log(max_pos_emb / (n_rot * 2pi)) / (2 * log(base))` -static float rope_yarn_corr_factor(int n_dims, int n_orig_ctx, float n_rot, float base) { - return n_dims * log(n_orig_ctx / (n_rot * 2 * M_PI_F)) / (2 * log(base)); +static float rope_yarn_corr_factor(int n_dims, int n_ctx_orig, float n_rot, float base) { + return n_dims * log(n_ctx_orig / (n_rot * 2 * M_PI_F)) / (2 * log(base)); } static void rope_yarn_corr_dims( - int n_dims, int n_orig_ctx, float freq_base, float beta_fast, float beta_slow, float dims[2] + int n_dims, int n_ctx_orig, float freq_base, float beta_fast, float beta_slow, float dims[2] ) { // start and end correction dims - dims[0] = max(0.0f, floor(rope_yarn_corr_factor(n_dims, n_orig_ctx, beta_fast, freq_base))); - dims[1] = min(n_dims - 1.0f, ceil(rope_yarn_corr_factor(n_dims, n_orig_ctx, beta_slow, freq_base))); + dims[0] = max(0.0f, floor(rope_yarn_corr_factor(n_dims, n_ctx_orig, beta_fast, freq_base))); + dims[1] = min(n_dims - 1.0f, ceil(rope_yarn_corr_factor(n_dims, n_ctx_orig, beta_slow, freq_base))); } -typedef void (rope_t)( +template +kernel void kernel_rope_norm( device const void * src0, device const int32_t * src1, device const float * src2, @@ -1707,8 +1707,7 @@ typedef void (rope_t)( constant uint64_t & nb3, constant int & n_past, constant int & n_dims, - constant int & mode, - constant int & n_orig_ctx, + constant int & n_ctx_orig, constant float & freq_base, constant float & freq_scale, constant float & ext_factor, @@ -1717,10 +1716,52 @@ typedef void (rope_t)( constant float & beta_slow, uint tiitg[[thread_index_in_threadgroup]], uint3 tptg[[threads_per_threadgroup]], - uint3 tgpig[[threadgroup_position_in_grid]]); + uint3 tgpig[[threadgroup_position_in_grid]]) { + const int64_t i3 = tgpig[2]; + const int64_t i2 = tgpig[1]; + const int64_t i1 = tgpig[0]; + + float corr_dims[2]; + rope_yarn_corr_dims(n_dims, n_ctx_orig, freq_base, beta_fast, beta_slow, corr_dims); + + device const int32_t * pos = src1; + + const float theta_base = (float) pos[i2]; + const float inv_ndims = -1.f/n_dims; + + float cos_theta; + float sin_theta; + + for (int64_t i0 = 2*tiitg; i0 < ne0; i0 += 2*tptg.x) { + if (i0 < n_dims) { + const int64_t ic = i0/2; + + const float theta = theta_base * pow(freq_base, inv_ndims*i0); + + const float freq_factor = src2 != src0 ? src2[ic] : 1.0f; + + rope_yarn(theta/freq_factor, freq_scale, corr_dims, i0, ext_factor, attn_factor, &cos_theta, &sin_theta); + + device const T * const src = (device T *)((device char *) src0 + i3*nb03 + i2*nb02 + i1*nb01 + i0*nb00); + device T * dst_data = (device T *)((device char *) dst + i3*nb3 + i2*nb2 + i1*nb1 + i0*nb0); + + const float x0 = src[0]; + const float x1 = src[1]; + + dst_data[0] = x0*cos_theta - x1*sin_theta; + dst_data[1] = x0*sin_theta + x1*cos_theta; + } else { + device const T * const src = (device T *)((device char *) src0 + i3*nb03 + i2*nb02 + i1*nb01 + i0*nb00); + device T * dst_data = (device T *)((device char *) dst + i3*nb3 + i2*nb2 + i1*nb1 + i0*nb0); + + dst_data[0] = src[0]; + dst_data[1] = src[1]; + } + } +} template -kernel void kernel_rope( +kernel void kernel_rope_neox( device const void * src0, device const int32_t * src1, device const float * src2, @@ -1743,8 +1784,7 @@ kernel void kernel_rope( constant uint64_t & nb3, constant int & n_past, constant int & n_dims, - constant int & mode, - constant int & n_orig_ctx, + constant int & n_ctx_orig, constant float & freq_base, constant float & freq_scale, constant float & ext_factor, @@ -1758,69 +1798,53 @@ kernel void kernel_rope( const int64_t i2 = tgpig[1]; const int64_t i1 = tgpig[0]; - const bool is_neox = mode & 2; - float corr_dims[2]; - rope_yarn_corr_dims(n_dims, n_orig_ctx, freq_base, beta_fast, beta_slow, corr_dims); + rope_yarn_corr_dims(n_dims, n_ctx_orig, freq_base, beta_fast, beta_slow, corr_dims); device const int32_t * pos = src1; - const int64_t p = pos[i2]; - - const float theta_base = (float)p; + const float theta_base = (float) pos[i2]; const float inv_ndims = -1.f/n_dims; - if (!is_neox) { - for (int64_t i0 = 2*tiitg; i0 < ne0; i0 += 2*tptg.x) { - const float theta = theta_base * pow(freq_base, inv_ndims*i0); - - float cos_theta, sin_theta; - rope_yarn(theta, freq_scale, corr_dims, i0, ext_factor, attn_factor, &cos_theta, &sin_theta); - - device const T * const src = (device T *)((device char *) src0 + i3*nb03 + i2*nb02 + i1*nb01 + i0*nb00); - device T * dst_data = (device T *)((device char *) dst + i3*nb3 + i2*nb2 + i1*nb1 + i0*nb0); - - const T x0 = src[0]; - const T x1 = src[1]; + float cos_theta; + float sin_theta; - dst_data[0] = x0*cos_theta - x1*sin_theta; - dst_data[1] = x0*sin_theta + x1*cos_theta; - } - } else { - for (int64_t ic = 2*tiitg; ic < ne0; ic += 2*tptg.x) { - if (ic < n_dims) { - const int64_t i0 = ic/2; + for (int64_t i0 = 2*tiitg; i0 < ne0; i0 += 2*tptg.x) { + if (i0 < n_dims) { + const int64_t ic = i0/2; - const float freq_factor = src2 != src0 ? src2[i0] : 1.0f; - - const float theta = theta_base * pow(freq_base, inv_ndims*ic); + const float theta = theta_base * pow(freq_base, inv_ndims*i0); - float cos_theta, sin_theta; - rope_yarn(theta/freq_factor, freq_scale, corr_dims, ic, ext_factor, attn_factor, &cos_theta, &sin_theta); + const float freq_factor = src2 != src0 ? src2[ic] : 1.0f; - device const T * const src = (device T *)((device char *) src0 + i3*nb03 + i2*nb02 + i1*nb01 + i0*nb00); - device T * dst_data = (device T *)((device char *) dst + i3*nb3 + i2*nb2 + i1*nb1 + i0*nb0); + rope_yarn(theta/freq_factor, freq_scale, corr_dims, i0, ext_factor, attn_factor, &cos_theta, &sin_theta); - const float x0 = src[0]; - const float x1 = src[n_dims/2]; + device const T * const src = (device T *)((device char *) src0 + i3*nb03 + i2*nb02 + i1*nb01 + ic*nb00); + device T * dst_data = (device T *)((device char *) dst + i3*nb3 + i2*nb2 + i1*nb1 + ic*nb0); - dst_data[0] = x0*cos_theta - x1*sin_theta; - dst_data[n_dims/2] = x0*sin_theta + x1*cos_theta; - } else { - const int64_t i0 = ic; + const float x0 = src[0]; + const float x1 = src[n_dims/2]; - device const T * const src = (device T *)((device char *) src0 + i3*nb03 + i2*nb02 + i1*nb01 + i0*nb00); - device T * dst_data = (device T *)((device char *) dst + i3*nb3 + i2*nb2 + i1*nb1 + i0*nb0); + dst_data[0] = x0*cos_theta - x1*sin_theta; + dst_data[n_dims/2] = x0*sin_theta + x1*cos_theta; + } else { + device const T * const src = (device T *)((device char *) src0 + i3*nb03 + i2*nb02 + i1*nb01 + i0*nb00); + device T * dst_data = (device T *)((device char *) dst + i3*nb3 + i2*nb2 + i1*nb1 + i0*nb0); - dst_data[0] = src[0]; - dst_data[1] = src[1]; - } + dst_data[0] = src[0]; + dst_data[1] = src[1]; } } } -template [[host_name("kernel_rope_f32")]] kernel rope_t kernel_rope; -template [[host_name("kernel_rope_f16")]] kernel rope_t kernel_rope; +typedef decltype(kernel_rope_norm) kernel_rope_norm_t; +typedef decltype(kernel_rope_neox) kernel_rope_neox_t; + +template [[host_name("kernel_rope_norm_f32")]] kernel kernel_rope_norm_t kernel_rope_norm; +template [[host_name("kernel_rope_norm_f16")]] kernel kernel_rope_norm_t kernel_rope_norm; + +template [[host_name("kernel_rope_neox_f32")]] kernel kernel_rope_neox_t kernel_rope_neox; +template [[host_name("kernel_rope_neox_f16")]] kernel kernel_rope_neox_t kernel_rope_neox; typedef void (im2col_t)( device const float * x, diff --git a/ggml-sycl.cpp b/ggml-sycl.cpp index 5cd97e4ff98df..3ff76474d7e72 100644 --- a/ggml-sycl.cpp +++ b/ggml-sycl.cpp @@ -8928,49 +8928,6 @@ static void rope_neox( dst[i + n_dims/2] = x0*sin_theta + x1*cos_theta; } -static void rope_glm_f32( - const float * x, float * dst, int ncols, const int32_t * pos, float freq_scale, int p_delta_rows, float freq_base, - int n_ctx -, const sycl::nd_item<3> &item_ct1) { - const int col = item_ct1.get_local_range(2) * item_ct1.get_group(2) + - item_ct1.get_local_id(2); - const int half_n_dims = ncols/4; - - if (col >= half_n_dims) { - return; - } - - const int row = item_ct1.get_local_range(1) * item_ct1.get_group(1) + - item_ct1.get_local_id(1); - const int i = row*ncols + col; - const int i2 = row/p_delta_rows; - - const float col_theta_scale = dpct::pow(freq_base, -2.0f * col / ncols); - // FIXME: this is likely wrong - const int p = pos != nullptr ? pos[i2] : 0; - - const float theta = sycl::min(p, n_ctx - 2) * freq_scale * col_theta_scale; - const float sin_theta = sycl::sin((float)theta); - const float cos_theta = sycl::cos((float)theta); - - const float x0 = x[i + 0]; - const float x1 = x[i + half_n_dims]; - - dst[i + 0] = x0*cos_theta - x1*sin_theta; - dst[i + half_n_dims] = x0*sin_theta + x1*cos_theta; - - const float block_theta = - ((float)sycl::max(p - n_ctx - 2, 0)) * col_theta_scale; - const float sin_block_theta = sycl::sin((float)block_theta); - const float cos_block_theta = sycl::cos((float)block_theta); - - const float x2 = x[i + half_n_dims * 2]; - const float x3 = x[i + half_n_dims * 3]; - - dst[i + half_n_dims * 2] = x2*cos_block_theta - x3*sin_block_theta; - dst[i + half_n_dims * 3] = x2*sin_block_theta + x3*cos_block_theta; -} - static void k_sum_rows_f32(const float * x, float * dst, const int ncols, const sycl::nd_item<3> &item_ct1) { const int row = item_ct1.get_group(1); @@ -12520,22 +12477,6 @@ static void rope_neox_sycl(const T *x, T *dst, int ncols, int n_dims, int nrows, } } -static void rope_glm_f32_sycl(const float *x, float *dst, int ncols, int nrows, - const int32_t *pos, float freq_scale, - int p_delta_rows, float freq_base, int n_ctx, - dpct::queue_ptr stream) { - GGML_ASSERT(ncols % 4 == 0); - const sycl::range<3> block_dims(1, 1, SYCL_ROPE_BLOCK_SIZE / 4); - const int num_blocks_x = (ncols + SYCL_ROPE_BLOCK_SIZE - 1) / SYCL_ROPE_BLOCK_SIZE; - const sycl::range<3> block_nums(1, nrows, num_blocks_x); - stream->parallel_for(sycl::nd_range<3>(block_nums * block_dims, block_dims), - [=](sycl::nd_item<3> item_ct1) { - rope_glm_f32(x, dst, ncols, pos, freq_scale, - p_delta_rows, freq_base, n_ctx, - item_ct1); - }); -} - static void sum_rows_f32_sycl(const float *x, float *dst, const int ncols, const int nrows, dpct::queue_ptr stream) { const sycl::range<3> block_dims(1, 1, WARP_SIZE); @@ -14066,8 +14007,8 @@ inline void ggml_sycl_op_rope(const ggml_tensor *src0, const ggml_tensor *src1, //const int n_past = ((int32_t *) dst->op_params)[0]; const int n_dims = ((int32_t *) dst->op_params)[1]; const int mode = ((int32_t *) dst->op_params)[2]; - const int n_ctx = ((int32_t *) dst->op_params)[3]; - const int n_orig_ctx = ((int32_t *) dst->op_params)[4]; + //const int n_ctx = ((int32_t *) dst->op_params)[3]; + const int n_ctx_orig = ((int32_t *) dst->op_params)[4]; // RoPE alteration for extended context float freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow; @@ -14087,7 +14028,9 @@ inline void ggml_sycl_op_rope(const ggml_tensor *src0, const ggml_tensor *src1, } const bool is_neox = mode & 2; - const bool is_glm = mode & 4; + +#pragma message("TODO: update rope NORM mode to match NEOX mode") +#pragma message(" https://github.com/ggerganov/llama.cpp/pull/7634") if (is_neox) { pos = (const int32_t *) src1_dd; @@ -14100,13 +14043,10 @@ inline void ggml_sycl_op_rope(const ggml_tensor *src0, const ggml_tensor *src1, } rope_corr_dims corr_dims; - ggml_rope_yarn_corr_dims(n_dims, n_orig_ctx, freq_base, beta_fast, beta_slow, corr_dims.v); + ggml_rope_yarn_corr_dims(n_dims, n_ctx_orig, freq_base, beta_fast, beta_slow, corr_dims.v); // compute - if (is_glm) { - GGML_ASSERT(false); - rope_glm_f32_sycl(src0_dd, dst_dd, ne00, nrows, pos, freq_scale, ne01, freq_base, n_ctx, main_stream); - } else if (is_neox) { + if (is_neox) { if (src0->type == GGML_TYPE_F32) { rope_neox_sycl( (const float *)src0_dd, (float *)dst_dd, ne00, n_dims, nrows, pos, freq_scale, ne01, freq_base, ext_factor, diff --git a/ggml-vulkan.cpp b/ggml-vulkan.cpp index 5e12ea9dde4d7..e0c512c0dab0f 100644 --- a/ggml-vulkan.cpp +++ b/ggml-vulkan.cpp @@ -3898,11 +3898,6 @@ static vk_pipeline ggml_vk_op_get_pipeline(ggml_backend_vk_context * ctx, const { const int mode = ((const int32_t *) dst->op_params)[2]; const bool is_neox = mode & 2; - const bool is_glm = mode & 4; - - if (is_glm) { - return nullptr; - } if (is_neox) { if (src0->type == GGML_TYPE_F32 && dst->type == GGML_TYPE_F32) { @@ -4401,7 +4396,7 @@ static void ggml_vk_rope(ggml_backend_vk_context * ctx, vk_context * subctx, con const int n_dims = ((int32_t *) dst->op_params)[1]; const int mode = ((int32_t *) dst->op_params)[2]; // const int n_ctx = ((int32_t *) dst->op_params)[3]; - const int n_orig_ctx = ((int32_t *) dst->op_params)[4]; + const int n_ctx_orig = ((int32_t *) dst->op_params)[4]; const float freq_base = ((float *) dst->op_params)[5]; const float freq_scale = ((float *) dst->op_params)[6]; const float ext_factor = ((float *) dst->op_params)[7]; @@ -4410,12 +4405,12 @@ static void ggml_vk_rope(ggml_backend_vk_context * ctx, vk_context * subctx, con const float beta_slow = ((float *) dst->op_params)[10]; const bool is_neox = mode & 2; - const bool is_glm = mode & 4; - GGML_ASSERT(!is_glm); +#pragma message("TODO: update rope NORM mode to match NEOX mode") +#pragma message(" https://github.com/ggerganov/llama.cpp/pull/7634") float corr_dims[2]; - ggml_rope_yarn_corr_dims(n_dims, n_orig_ctx, freq_base, beta_fast, beta_slow, corr_dims); + ggml_rope_yarn_corr_dims(n_dims, n_ctx_orig, freq_base, beta_fast, beta_slow, corr_dims); if (is_neox) { const float theta_scale = powf(freq_base, -2.0f/n_dims); @@ -6485,9 +6480,8 @@ GGML_CALL static bool ggml_backend_vk_supports_op(ggml_backend_t backend, const case GGML_OP_ROPE: { const int mode = ((const int32_t *) op->op_params)[2]; - const bool is_glm = mode & 4; - return !is_glm; + return true; } break; case GGML_OP_NONE: case GGML_OP_RESHAPE: @@ -6992,15 +6986,15 @@ static void ggml_vk_check_results_0(ggml_backend_vk_context * ctx, ggml_compute_ } else if (tensor->op == GGML_OP_ROPE) { const int n_dims = ((int32_t *) tensor->op_params)[1]; const int mode = ((int32_t *) tensor->op_params)[2]; - const int n_ggml_ctx = ((int32_t *) tensor->op_params)[3]; - const int n_orig_ggml_ctx = ((int32_t *) tensor->op_params)[4]; + //const int n_ctx_ggml = ((int32_t *) tensor->op_params)[3]; + const int n_ctx_orig_ggml = ((int32_t *) tensor->op_params)[4]; float freq_base = ((float *) tensor->op_params)[5]; float freq_scale = ((float *) tensor->op_params)[6]; float ext_factor = ((float *) tensor->op_params)[7]; float attn_factor = ((float *) tensor->op_params)[8]; float beta_fast = ((float *) tensor->op_params)[9]; float beta_slow = ((float *) tensor->op_params)[10]; - tensor_clone = ggml_rope_ext(ggml_ctx, src0_clone, src1_clone, src2_clone, n_dims, mode, n_ggml_ctx, n_orig_ggml_ctx, freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow); + tensor_clone = ggml_rope_ext(ggml_ctx, src0_clone, src1_clone, src2_clone, n_dims, mode, n_ctx_orig_ggml, freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow); } else if (tensor->op == GGML_OP_UNARY) { switch (ggml_get_unary_op(tensor)) { case GGML_UNARY_OP_SILU: diff --git a/ggml.c b/ggml.c index 11e5c34ab56ad..1fc77743bc7b9 100644 --- a/ggml.c +++ b/ggml.c @@ -6250,16 +6250,13 @@ static struct ggml_tensor * ggml_rope_impl( struct ggml_tensor * c, int n_dims, int mode, - int n_ctx, - int n_orig_ctx, + int n_ctx_orig, float freq_base, float freq_scale, float ext_factor, float attn_factor, float beta_fast, float beta_slow, - float xpos_base, - bool xpos_down, bool inplace) { GGML_ASSERT((mode & 1) == 0 && "mode & 1 == 1 is no longer supported"); @@ -6280,15 +6277,13 @@ static struct ggml_tensor * ggml_rope_impl( struct ggml_tensor * result = inplace ? ggml_view_tensor(ctx, a) : ggml_dup_tensor(ctx, a); - int32_t params[13] = { /*n_past*/ 0, n_dims, mode, n_ctx, n_orig_ctx }; + int32_t params[11] = { /*n_past*/ 0, n_dims, mode, /*n_ctx*/ 0, n_ctx_orig }; memcpy(params + 5, &freq_base, sizeof(float)); memcpy(params + 6, &freq_scale, sizeof(float)); memcpy(params + 7, &ext_factor, sizeof(float)); memcpy(params + 8, &attn_factor, sizeof(float)); memcpy(params + 9, &beta_fast, sizeof(float)); memcpy(params + 10, &beta_slow, sizeof(float)); - memcpy(params + 11, &xpos_base, sizeof(float)); - memcpy(params + 12, &xpos_down, sizeof(bool)); ggml_set_op_params(result, params, sizeof(params)); result->op = GGML_OP_ROPE; @@ -6305,10 +6300,9 @@ struct ggml_tensor * ggml_rope( struct ggml_tensor * a, struct ggml_tensor * b, int n_dims, - int mode, - int n_ctx) { + int mode) { return ggml_rope_impl( - ctx, a, b, NULL, n_dims, mode, n_ctx, 0, 10000.0f, 1.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, false, false + ctx, a, b, NULL, n_dims, mode, 0, 10000.0f, 1.0f, 0.0f, 1.0f, 0.0f, 0.0f, false ); } @@ -6317,10 +6311,9 @@ struct ggml_tensor * ggml_rope_inplace( struct ggml_tensor * a, struct ggml_tensor * b, int n_dims, - int mode, - int n_ctx) { + int mode) { return ggml_rope_impl( - ctx, a, b, NULL, n_dims, mode, n_ctx, 0, 10000.0f, 1.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, false, true + ctx, a, b, NULL, n_dims, mode, 0, 10000.0f, 1.0f, 0.0f, 1.0f, 0.0f, 0.0f, true ); } @@ -6331,8 +6324,7 @@ struct ggml_tensor * ggml_rope_ext( struct ggml_tensor * c, int n_dims, int mode, - int n_ctx, - int n_orig_ctx, + int n_ctx_orig, float freq_base, float freq_scale, float ext_factor, @@ -6340,8 +6332,8 @@ struct ggml_tensor * ggml_rope_ext( float beta_fast, float beta_slow) { return ggml_rope_impl( - ctx, a, b, c, n_dims, mode, n_ctx, n_orig_ctx, freq_base, freq_scale, - ext_factor, attn_factor, beta_fast, beta_slow, 0.0f, false, false + ctx, a, b, c, n_dims, mode, n_ctx_orig, freq_base, freq_scale, + ext_factor, attn_factor, beta_fast, beta_slow, false ); } @@ -6352,8 +6344,7 @@ struct ggml_tensor * ggml_rope_ext_inplace( struct ggml_tensor * c, int n_dims, int mode, - int n_ctx, - int n_orig_ctx, + int n_ctx_orig, float freq_base, float freq_scale, float ext_factor, @@ -6361,8 +6352,8 @@ struct ggml_tensor * ggml_rope_ext_inplace( float beta_fast, float beta_slow) { return ggml_rope_impl( - ctx, a, b, c, n_dims, mode, n_ctx, n_orig_ctx, freq_base, freq_scale, - ext_factor, attn_factor, beta_fast, beta_slow, 0.0f, false, true + ctx, a, b, c, n_dims, mode, n_ctx_orig, freq_base, freq_scale, + ext_factor, attn_factor, beta_fast, beta_slow, true ); } @@ -6372,8 +6363,7 @@ struct ggml_tensor * ggml_rope_custom( struct ggml_tensor * b, int n_dims, int mode, - int n_ctx, - int n_orig_ctx, + int n_ctx_orig, float freq_base, float freq_scale, float ext_factor, @@ -6381,8 +6371,8 @@ struct ggml_tensor * ggml_rope_custom( float beta_fast, float beta_slow) { return ggml_rope_impl( - ctx, a, b, NULL, n_dims, mode, n_ctx, n_orig_ctx, freq_base, freq_scale, - ext_factor, attn_factor, beta_fast, beta_slow, 0.0f, false, false + ctx, a, b, NULL, n_dims, mode, n_ctx_orig, freq_base, freq_scale, + ext_factor, attn_factor, beta_fast, beta_slow, false ); } @@ -6392,8 +6382,7 @@ struct ggml_tensor * ggml_rope_custom_inplace( struct ggml_tensor * b, int n_dims, int mode, - int n_ctx, - int n_orig_ctx, + int n_ctx_orig, float freq_base, float freq_scale, float ext_factor, @@ -6401,21 +6390,11 @@ struct ggml_tensor * ggml_rope_custom_inplace( float beta_fast, float beta_slow) { return ggml_rope_impl( - ctx, a, b, NULL, n_dims, mode, n_ctx, n_orig_ctx, freq_base, freq_scale, - ext_factor, attn_factor, beta_fast, beta_slow, 0.0f, false, true + ctx, a, b, NULL, n_dims, mode, n_ctx_orig, freq_base, freq_scale, + ext_factor, attn_factor, beta_fast, beta_slow, true ); } -struct ggml_tensor * ggml_rope_xpos_inplace( - struct ggml_context * ctx, - struct ggml_tensor * a, - struct ggml_tensor * b, - int n_dims, - float base, - bool down) { - return ggml_rope_impl(ctx, a, b, NULL, n_dims, 0, 0, 0, 10000.0f, 1.0f, 0.0f, 1.0f, 0.0f, 0.0f, base, down, true); -} - // ggml_rope_back struct ggml_tensor * ggml_rope_back( @@ -6425,16 +6404,13 @@ struct ggml_tensor * ggml_rope_back( struct ggml_tensor * c, int n_dims, int mode, - int n_ctx, - int n_orig_ctx, + int n_ctx_orig, float freq_base, float freq_scale, float ext_factor, float attn_factor, float beta_fast, - float beta_slow, - float xpos_base, - bool xpos_down) { + float beta_slow) { GGML_ASSERT(ggml_is_vector(b)); GGML_ASSERT(b->type == GGML_TYPE_I32); GGML_ASSERT(a->ne[2] == b->ne[0]); @@ -6450,15 +6426,13 @@ struct ggml_tensor * ggml_rope_back( struct ggml_tensor * result = ggml_dup_tensor(ctx, a); - int32_t params[13] = { /*n_past*/ 0, n_dims, mode, n_ctx, n_orig_ctx }; + int32_t params[11] = { /*n_past*/ 0, n_dims, mode, /*n_ctx*/ 0, n_ctx_orig }; memcpy(params + 5, &freq_base, sizeof(float)); memcpy(params + 6, &freq_scale, sizeof(float)); memcpy(params + 7, &ext_factor, sizeof(float)); memcpy(params + 8, &attn_factor, sizeof(float)); memcpy(params + 9, &beta_fast, sizeof(float)); memcpy(params + 10, &beta_slow, sizeof(float)); - memcpy(params + 11, &xpos_base, sizeof(float)); - memcpy(params + 12, &xpos_down, sizeof(bool)); ggml_set_op_params(result, params, sizeof(params)); result->op = GGML_OP_ROPE_BACK; @@ -14227,8 +14201,7 @@ static float rope_yarn_ramp(const float low, const float high, const int i0) { // MIT licensed. Copyright (c) 2023 Jeffrey Quesnelle and Bowen Peng. static void rope_yarn( float theta_extrap, float freq_scale, float corr_dims[2], int64_t i0, float ext_factor, float mscale, - float * cos_theta, float * sin_theta -) { + float * cos_theta, float * sin_theta) { // Get n-d rotational scaling corrected for extrapolation float theta_interp = freq_scale * theta_extrap; float theta = theta_interp; @@ -14245,18 +14218,19 @@ static void rope_yarn( // Apparently solving `n_rot = 2pi * x * base^((2 * max_pos_emb) / n_dims)` for x, we get // `corr_dim(n_rot) = n_dims * log(max_pos_emb / (n_rot * 2pi)) / (2 * log(base))` -static float ggml_rope_yarn_corr_dim(int n_dims, int n_orig_ctx, float n_rot, float base) { - return n_dims * logf(n_orig_ctx / (n_rot * 2 * (float)M_PI)) / (2 * logf(base)); +static float ggml_rope_yarn_corr_dim(int n_dims, int n_ctx_orig, float n_rot, float base) { + return n_dims * logf(n_ctx_orig / (n_rot * 2 * (float)M_PI)) / (2 * logf(base)); } static void ggml_rope_cache_init( - float theta_base, float freq_scale, float corr_dims[2], int64_t ne0, float ext_factor, float mscale, - float * cache, float sin_sign, float theta_scale -) { + float theta_base, float freq_scale, const float * freq_factors, float corr_dims[2], int64_t ne0, float ext_factor, float mscale, + float * cache, float sin_sign, float theta_scale) { + // ref: https://github.com/jquesnelle/yarn/blob/master/scaled_rope/LlamaYaRNScaledRotaryEmbedding.py float theta = theta_base; for (int64_t i0 = 0; i0 < ne0; i0 += 2) { + const float ff = freq_factors ? freq_factors[i0/2] : 1.0f; rope_yarn( - theta, freq_scale, corr_dims, i0, ext_factor, mscale, &cache[i0 + 0], &cache[i0 + 1] + theta/ff, freq_scale, corr_dims, i0, ext_factor, mscale, &cache[i0 + 0], &cache[i0 + 1] ); cache[i0 + 1] *= sin_sign; @@ -14265,11 +14239,11 @@ static void ggml_rope_cache_init( } GGML_CALL void ggml_rope_yarn_corr_dims( - int n_dims, int n_orig_ctx, float freq_base, float beta_fast, float beta_slow, float dims[2] + int n_dims, int n_ctx_orig, float freq_base, float beta_fast, float beta_slow, float dims[2] ) { // start and end correction dims - float start = floorf(ggml_rope_yarn_corr_dim(n_dims, n_orig_ctx, beta_fast, freq_base)); - float end = ceilf(ggml_rope_yarn_corr_dim(n_dims, n_orig_ctx, beta_slow, freq_base)); + float start = floorf(ggml_rope_yarn_corr_dim(n_dims, n_ctx_orig, beta_fast, freq_base)); + float end = ceilf(ggml_rope_yarn_corr_dim(n_dims, n_ctx_orig, beta_slow, freq_base)); dims[0] = MAX(0, start); dims[1] = MIN(n_dims - 1, end); } @@ -14289,15 +14263,11 @@ static void ggml_compute_forward_rope_f32( float freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow; - // these two only relevant for xPos RoPE: - float xpos_base; - bool xpos_down; - //const int n_past = ((int32_t *) dst->op_params)[0]; const int n_dims = ((int32_t *) dst->op_params)[1]; const int mode = ((int32_t *) dst->op_params)[2]; - const int n_ctx = ((int32_t *) dst->op_params)[3]; - const int n_orig_ctx = ((int32_t *) dst->op_params)[4]; + //const int n_ctx = ((int32_t *) dst->op_params)[3]; + const int n_ctx_orig = ((int32_t *) dst->op_params)[4]; memcpy(&freq_base, (int32_t *) dst->op_params + 5, sizeof(float)); memcpy(&freq_scale, (int32_t *) dst->op_params + 6, sizeof(float)); @@ -14305,8 +14275,6 @@ static void ggml_compute_forward_rope_f32( memcpy(&attn_factor, (int32_t *) dst->op_params + 8, sizeof(float)); memcpy(&beta_fast, (int32_t *) dst->op_params + 9, sizeof(float)); memcpy(&beta_slow, (int32_t *) dst->op_params + 10, sizeof(float)); - memcpy(&xpos_base, (int32_t *) dst->op_params + 11, sizeof(float)); - memcpy(&xpos_down, (int32_t *) dst->op_params + 12, sizeof(bool)); GGML_TENSOR_UNARY_OP_LOCALS @@ -14336,20 +14304,15 @@ static void ggml_compute_forward_rope_f32( const float theta_scale = powf(freq_base, -2.0f/n_dims); float corr_dims[2]; - ggml_rope_yarn_corr_dims(n_dims, n_orig_ctx, freq_base, beta_fast, beta_slow, corr_dims); + ggml_rope_yarn_corr_dims(n_dims, n_ctx_orig, freq_base, beta_fast, beta_slow, corr_dims); const bool is_neox = mode & 2; - const bool is_glm = mode & 4; const float * freq_factors = NULL; - if (is_neox) { - if (src2 != NULL) { - GGML_ASSERT(src2->type == GGML_TYPE_F32); - GGML_ASSERT(src2->ne[0] >= n_dims / 2); - freq_factors = (const float *) src2->data; - } - } else { - GGML_ASSERT(src2 == NULL && "TODO: freq_factors not implemented for !is_neox"); + if (src2 != NULL) { + GGML_ASSERT(src2->type == GGML_TYPE_F32); + GGML_ASSERT(src2->ne[0] >= n_dims / 2); + freq_factors = (const float *) src2->data; } // backward process uses inverse rotation by cos and sin. @@ -14364,94 +14327,50 @@ static void ggml_compute_forward_rope_f32( const int64_t p = pos[i2]; float * cache = (float *) params->wdata + (ne0 + CACHE_LINE_SIZE_F32)*ith; - if (!is_glm && !is_neox) { // TODO: cache sin/cos for glm, neox - ggml_rope_cache_init(p, freq_scale, corr_dims, ne0, ext_factor, attn_factor, cache, sin_sign, theta_scale); - } + ggml_rope_cache_init(p, freq_scale, freq_factors, corr_dims, ne0, ext_factor, attn_factor, cache, sin_sign, theta_scale); for (int64_t i1 = 0; i1 < ne1; i1++) { if (ir++ < ir0) continue; if (ir > ir1) break; - float theta_base = (float)p; - - if (is_glm) { - theta_base = MIN(p, n_ctx - 2); - float block_theta = MAX(p - (n_ctx - 2), 0); - for (int64_t i0 = 0; i0 < ne0 / 4; i0++) { - const float cos_theta = cosf(theta_base); - const float sin_theta = sinf(theta_base) * sin_sign; - const float cos_block_theta = cosf(block_theta); - const float sin_block_theta = sinf(block_theta) * sin_sign; - - theta_base *= theta_scale; - block_theta *= theta_scale; - - const float * const src = (float *)((char *) src0->data + i3*nb03 + i2*nb02 + i1*nb01 + i0*nb00); - float * dst_data = (float *)((char *) dst->data + i3*nb3 + i2*nb2 + i1*nb1 + i0*nb0); - - const float x0 = src[0]; - const float x1 = src[n_dims/2]; - const float x2 = src[n_dims]; - const float x3 = src[n_dims/2*3]; - - dst_data[0] = x0*cos_theta - x1*sin_theta; - dst_data[n_dims/2] = x0*sin_theta + x1*cos_theta; - dst_data[n_dims] = x2*cos_block_theta - x3*sin_block_theta; - dst_data[n_dims/2*3] = x2*sin_block_theta + x3*cos_block_theta; - } - } else if (!is_neox) { - for (int64_t i0 = 0; i0 < ne0; i0 += 2) { + if (!is_neox) { + for (int64_t i0 = 0; i0 < n_dims; i0 += 2) { const float cos_theta = cache[i0 + 0]; const float sin_theta = cache[i0 + 1]; - // zeta scaling for xPos only: - float zeta = xpos_base != 0.0f ? powf((i0 + 0.4f * ne0) / (1.4f * ne0), p / xpos_base) : 1.0f; - if (xpos_down) zeta = 1.0f / zeta; - const float * const src = (float *)((char *) src0->data + i3*nb03 + i2*nb02 + i1*nb01 + i0*nb00); float * dst_data = (float *)((char *) dst->data + i3*nb3 + i2*nb2 + i1*nb1 + i0*nb0); const float x0 = src[0]; const float x1 = src[1]; - dst_data[0] = x0*cos_theta*zeta - x1*sin_theta*zeta; - dst_data[1] = x0*sin_theta*zeta + x1*cos_theta*zeta; + dst_data[0] = x0*cos_theta - x1*sin_theta; + dst_data[1] = x0*sin_theta + x1*cos_theta; } } else { - // ref: https://github.com/jquesnelle/yarn/blob/master/scaled_rope/LlamaYaRNScaledRotaryEmbedding.py - for (int64_t ic = 0; ic < ne0; ic += 2) { - if (ic < n_dims) { - const int64_t i0 = ic/2; - - const float freq_factor = freq_factors ? freq_factors[i0] : 1.0f; - - float cos_theta, sin_theta; - rope_yarn( - theta_base/freq_factor, freq_scale, corr_dims, ic, ext_factor, attn_factor, - &cos_theta, &sin_theta - ); + for (int64_t i0 = 0; i0 < n_dims; i0 += 2) { + const int64_t ic = i0/2; - sin_theta *= sin_sign; - theta_base *= theta_scale; + const float cos_theta = cache[i0 + 0]; + const float sin_theta = cache[i0 + 1]; - const float * const src = (float *)((char *) src0->data + i3*nb03 + i2*nb02 + i1*nb01 + i0*nb00); - float * dst_data = (float *)((char *) dst->data + i3*nb3 + i2*nb2 + i1*nb1 + i0*nb0); + const float * const src = (float *)((char *) src0->data + i3*nb03 + i2*nb02 + i1*nb01 + ic*nb00); + float * dst_data = (float *)((char *) dst->data + i3*nb3 + i2*nb2 + i1*nb1 + ic*nb0); - const float x0 = src[0]; - const float x1 = src[n_dims/2]; + const float x0 = src[0]; + const float x1 = src[n_dims/2]; - dst_data[0] = x0*cos_theta - x1*sin_theta; - dst_data[n_dims/2] = x0*sin_theta + x1*cos_theta; - } else { - const int64_t i0 = ic; + dst_data[0] = x0*cos_theta - x1*sin_theta; + dst_data[n_dims/2] = x0*sin_theta + x1*cos_theta; + } + } - const float * const src = (float *)((char *) src0->data + i3*nb03 + i2*nb02 + i1*nb01 + i0*nb00); - float * dst_data = (float *)((char *) dst->data + i3*nb3 + i2*nb2 + i1*nb1 + i0*nb0); + for (int64_t i0 = n_dims; i0 < ne0; i0 += 2) { + const float * const src = (float *)((char *) src0->data + i3*nb03 + i2*nb02 + i1*nb01 + i0*nb00); + float * dst_data = (float *)((char *) dst->data + i3*nb3 + i2*nb2 + i1*nb1 + i0*nb0); - dst_data[0] = src[0]; - dst_data[1] = src[1]; - } - } + dst_data[0] = src[0]; + dst_data[1] = src[1]; } } } @@ -14477,8 +14396,8 @@ static void ggml_compute_forward_rope_f16( //const int n_past = ((int32_t *) dst->op_params)[0]; const int n_dims = ((int32_t *) dst->op_params)[1]; const int mode = ((int32_t *) dst->op_params)[2]; - const int n_ctx = ((int32_t *) dst->op_params)[3]; - const int n_orig_ctx = ((int32_t *) dst->op_params)[4]; + //const int n_ctx = ((int32_t *) dst->op_params)[3]; + const int n_ctx_orig = ((int32_t *) dst->op_params)[4]; memcpy(&freq_base, (int32_t *) dst->op_params + 5, sizeof(float)); memcpy(&freq_scale, (int32_t *) dst->op_params + 6, sizeof(float)); memcpy(&ext_factor, (int32_t *) dst->op_params + 7, sizeof(float)); @@ -14514,20 +14433,15 @@ static void ggml_compute_forward_rope_f16( const float theta_scale = powf(freq_base, -2.0f/n_dims); float corr_dims[2]; - ggml_rope_yarn_corr_dims(n_dims, n_orig_ctx, freq_base, beta_fast, beta_slow, corr_dims); + ggml_rope_yarn_corr_dims(n_dims, n_ctx_orig, freq_base, beta_fast, beta_slow, corr_dims); const bool is_neox = mode & 2; - const bool is_glm = mode & 4; const float * freq_factors = NULL; - if (is_neox) { - if (src2 != NULL) { - GGML_ASSERT(src2->type == GGML_TYPE_F32); - GGML_ASSERT(src2->ne[0] >= n_dims / 2); - freq_factors = (const float *) src2->data; - } - } else { - GGML_ASSERT(src2 == NULL && "TODO: freq_factors not implemented for !is_neox"); + if (src2 != NULL) { + GGML_ASSERT(src2->type == GGML_TYPE_F32); + GGML_ASSERT(src2->ne[0] >= n_dims / 2); + freq_factors = (const float *) src2->data; } // backward process uses inverse rotation by cos and sin. @@ -14542,43 +14456,14 @@ static void ggml_compute_forward_rope_f16( const int64_t p = pos[i2]; float * cache = (float *) params->wdata + (ne0 + CACHE_LINE_SIZE_F32)*ith; - if (!is_glm && !is_neox) { // TODO: cache sin/cos for glm, neox - ggml_rope_cache_init(p, freq_scale, corr_dims, ne0, ext_factor, attn_factor, cache, sin_sign, theta_scale); - } + ggml_rope_cache_init(p, freq_scale, freq_factors, corr_dims, ne0, ext_factor, attn_factor, cache, sin_sign, theta_scale); for (int64_t i1 = 0; i1 < ne1; i1++) { if (ir++ < ir0) continue; if (ir > ir1) break; - float theta_base = (float)p; - - if (is_glm) { - theta_base = MIN(p, n_ctx - 2); - float block_theta = MAX(p - (n_ctx - 2), 0); - for (int64_t i0 = 0; i0 < ne0 / 4; i0++) { - const float cos_theta = cosf(theta_base); - const float sin_theta = sinf(theta_base) * sin_sign; - const float cos_block_theta = cosf(block_theta); - const float sin_block_theta = sinf(block_theta) * sin_sign; - - theta_base *= theta_scale; - block_theta *= theta_scale; - - const ggml_fp16_t * const src = (ggml_fp16_t *)((char *) src0->data + i3*nb03 + i2*nb02 + i1*nb01 + i0*nb00); - ggml_fp16_t * dst_data = (ggml_fp16_t *)((char *) dst->data + i3*nb3 + i2*nb2 + i1*nb1 + i0*nb0); - - const float x0 = GGML_FP16_TO_FP32(src[0]); - const float x1 = GGML_FP16_TO_FP32(src[n_dims/2]); - const float x2 = GGML_FP16_TO_FP32(src[n_dims]); - const float x3 = GGML_FP16_TO_FP32(src[n_dims/2*3]); - - dst_data[0] = GGML_FP32_TO_FP16(x0*cos_theta - x1*sin_theta); - dst_data[n_dims/2] = GGML_FP32_TO_FP16(x0*sin_theta + x1*cos_theta); - dst_data[n_dims] = GGML_FP32_TO_FP16(x2*cos_block_theta - x3*sin_block_theta); - dst_data[n_dims/2*3] = GGML_FP32_TO_FP16(x2*sin_block_theta + x3*cos_block_theta); - } - } else if (!is_neox) { - for (int64_t i0 = 0; i0 < ne0; i0 += 2) { + if (!is_neox) { + for (int64_t i0 = 0; i0 < n_dims; i0 += 2) { const float cos_theta = cache[i0 + 0]; const float sin_theta = cache[i0 + 1]; @@ -14592,40 +14477,29 @@ static void ggml_compute_forward_rope_f16( dst_data[1] = GGML_FP32_TO_FP16(x0*sin_theta + x1*cos_theta); } } else { - // ref: https://github.com/jquesnelle/yarn/blob/master/scaled_rope/LlamaYaRNScaledRotaryEmbedding.py - for (int64_t ic = 0; ic < ne0; ic += 2) { - if (ic < n_dims) { - const int64_t i0 = ic/2; - - const float freq_factor = freq_factors ? freq_factors[i0] : 1.0f; + for (int64_t i0 = 0; i0 < n_dims; i0 += 2) { + const int64_t ic = i0/2; - float cos_theta, sin_theta; - rope_yarn( - theta_base/freq_factor, freq_scale, corr_dims, ic, ext_factor, attn_factor, - &cos_theta, &sin_theta - ); - - sin_theta *= sin_sign; - theta_base *= theta_scale; + const float cos_theta = cache[i0 + 0]; + const float sin_theta = cache[i0 + 1]; - const ggml_fp16_t * const src = (ggml_fp16_t *)((char *) src0->data + i3*nb03 + i2*nb02 + i1*nb01 + i0*nb00); - ggml_fp16_t * dst_data = (ggml_fp16_t *)((char *) dst->data + i3*nb3 + i2*nb2 + i1*nb1 + i0*nb0); + const ggml_fp16_t * const src = (ggml_fp16_t *)((char *) src0->data + i3*nb03 + i2*nb02 + i1*nb01 + ic*nb00); + ggml_fp16_t * dst_data = (ggml_fp16_t *)((char *) dst->data + i3*nb3 + i2*nb2 + i1*nb1 + ic*nb0); - const float x0 = GGML_FP16_TO_FP32(src[0]); - const float x1 = GGML_FP16_TO_FP32(src[n_dims/2]); + const float x0 = GGML_FP16_TO_FP32(src[0]); + const float x1 = GGML_FP16_TO_FP32(src[n_dims/2]); - dst_data[0] = GGML_FP32_TO_FP16(x0*cos_theta - x1*sin_theta); - dst_data[n_dims/2] = GGML_FP32_TO_FP16(x0*sin_theta + x1*cos_theta); - } else { - const int64_t i0 = ic; + dst_data[0] = GGML_FP32_TO_FP16(x0*cos_theta - x1*sin_theta); + dst_data[n_dims/2] = GGML_FP32_TO_FP16(x0*sin_theta + x1*cos_theta); + } + } - const ggml_fp16_t * const src = (ggml_fp16_t *)((char *) src0->data + i3*nb03 + i2*nb02 + i1*nb01 + i0*nb00); - ggml_fp16_t * dst_data = (ggml_fp16_t *)((char *) dst->data + i3*nb3 + i2*nb2 + i1*nb1 + i0*nb0); + for (int64_t i0 = n_dims; i0 < ne0; i0 += 2) { + const ggml_fp16_t * const src = (ggml_fp16_t *)((char *) src0->data + i3*nb03 + i2*nb02 + i1*nb01 + i0*nb00); + ggml_fp16_t * dst_data = (ggml_fp16_t *)((char *) dst->data + i3*nb3 + i2*nb2 + i1*nb1 + i0*nb0); - dst_data[0] = src[0]; - dst_data[1] = src[1]; - } - } + dst_data[0] = src[0]; + dst_data[1] = src[1]; } } } @@ -18327,9 +18201,9 @@ static void ggml_compute_backward(struct ggml_context * ctx, struct ggml_tensor //const int n_past = ((int32_t *) tensor->op_params)[0]; const int n_dims = ((int32_t *) tensor->op_params)[1]; const int mode = ((int32_t *) tensor->op_params)[2]; - const int n_ctx = ((int32_t *) tensor->op_params)[3]; - const int n_orig_ctx = ((int32_t *) tensor->op_params)[4]; - float freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow, xpos_base, xpos_down; + //const int n_ctx = ((int32_t *) tensor->op_params)[3]; + const int n_ctx_orig = ((int32_t *) tensor->op_params)[4]; + float freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow; memcpy(&freq_base, (int32_t *) tensor->op_params + 5, sizeof(float)); memcpy(&freq_scale, (int32_t *) tensor->op_params + 6, sizeof(float)); @@ -18337,8 +18211,6 @@ static void ggml_compute_backward(struct ggml_context * ctx, struct ggml_tensor memcpy(&attn_factor, (int32_t *) tensor->op_params + 8, sizeof(float)); memcpy(&beta_fast, (int32_t *) tensor->op_params + 9, sizeof(float)); memcpy(&beta_slow, (int32_t *) tensor->op_params + 10, sizeof(float)); - memcpy(&xpos_base, (int32_t *) tensor->op_params + 11, sizeof(float)); - memcpy(&xpos_down, (int32_t *) tensor->op_params + 12, sizeof(bool)); src0->grad = ggml_add_or_set(ctx, src0->grad, @@ -18348,16 +18220,13 @@ static void ggml_compute_backward(struct ggml_context * ctx, struct ggml_tensor src2, n_dims, mode, - n_ctx, - n_orig_ctx, + n_ctx_orig, freq_base, freq_scale, ext_factor, attn_factor, beta_fast, - beta_slow, - xpos_base, - xpos_down), + beta_slow), zero_table); } } break; @@ -18367,9 +18236,9 @@ static void ggml_compute_backward(struct ggml_context * ctx, struct ggml_tensor //const int n_past = ((int32_t *) tensor->op_params)[0]; const int n_dims = ((int32_t *) tensor->op_params)[1]; const int mode = ((int32_t *) tensor->op_params)[2]; - const int n_ctx = ((int32_t *) tensor->op_params)[3]; - const int n_orig_ctx = ((int32_t *) tensor->op_params)[4]; - float freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow, xpos_base, xpos_down; + //const int n_ctx = ((int32_t *) tensor->op_params)[3]; + const int n_ctx_orig = ((int32_t *) tensor->op_params)[4]; + float freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow; memcpy(&freq_base, (int32_t *) tensor->op_params + 5, sizeof(float)); memcpy(&freq_scale, (int32_t *) tensor->op_params + 6, sizeof(float)); @@ -18377,8 +18246,6 @@ static void ggml_compute_backward(struct ggml_context * ctx, struct ggml_tensor memcpy(&attn_factor, (int32_t *) tensor->op_params + 8, sizeof(float)); memcpy(&beta_fast, (int32_t *) tensor->op_params + 9, sizeof(float)); memcpy(&beta_slow, (int32_t *) tensor->op_params + 10, sizeof(float)); - memcpy(&xpos_base, (int32_t *) tensor->op_params + 11, sizeof(float)); - memcpy(&xpos_down, (int32_t *) tensor->op_params + 12, sizeof(bool)); src0->grad = ggml_add_or_set(ctx, src0->grad, @@ -18388,16 +18255,13 @@ static void ggml_compute_backward(struct ggml_context * ctx, struct ggml_tensor src2, n_dims, mode, - n_ctx, - n_orig_ctx, + n_ctx_orig, freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow, - xpos_base, - xpos_down, false), zero_table); } diff --git a/ggml.h b/ggml.h index addcf1bfef673..13502a3622fc4 100644 --- a/ggml.h +++ b/ggml.h @@ -1465,7 +1465,6 @@ extern "C" { // rotary position embedding // if mode & 1 == 1, skip n_past elements (NOT SUPPORTED) // if mode & 2 == 1, GPT-NeoX style - // if mode & 4 == 1, ChatGLM style // // b is an int32 vector with size a->ne[2], it contains the positions // c is freq factors (e.g. phi3-128k), (optional) @@ -1474,8 +1473,7 @@ extern "C" { struct ggml_tensor * a, struct ggml_tensor * b, int n_dims, - int mode, - int n_ctx); + int mode); // in-place, returns view(a) GGML_API struct ggml_tensor * ggml_rope_inplace( @@ -1483,8 +1481,7 @@ extern "C" { struct ggml_tensor * a, struct ggml_tensor * b, int n_dims, - int mode, - int n_ctx); + int mode); // custom RoPE GGML_API struct ggml_tensor * ggml_rope_ext( @@ -1494,8 +1491,7 @@ extern "C" { struct ggml_tensor * c, int n_dims, int mode, - int n_ctx, - int n_orig_ctx, + int n_ctx_orig, float freq_base, float freq_scale, float ext_factor, @@ -1511,8 +1507,7 @@ extern "C" { struct ggml_tensor * c, int n_dims, int mode, - int n_ctx, - int n_orig_ctx, + int n_ctx_orig, float freq_base, float freq_scale, float ext_factor, @@ -1526,8 +1521,7 @@ extern "C" { struct ggml_tensor * b, int n_dims, int mode, - int n_ctx, - int n_orig_ctx, + int n_ctx_orig, float freq_base, float freq_scale, float ext_factor, @@ -1542,8 +1536,7 @@ extern "C" { struct ggml_tensor * b, int n_dims, int mode, - int n_ctx, - int n_orig_ctx, + int n_ctx_orig, float freq_base, float freq_scale, float ext_factor, @@ -1552,17 +1545,9 @@ extern "C" { float beta_slow), "use ggml_rope_ext_inplace instead"); - struct ggml_tensor * ggml_rope_xpos_inplace( - struct ggml_context * ctx, - struct ggml_tensor * a, - struct ggml_tensor * b, - int n_dims, - float base, - bool down); - // compute correction dims for YaRN RoPE scaling GGML_CALL void ggml_rope_yarn_corr_dims( - int n_dims, int n_orig_ctx, float freq_base, float beta_fast, float beta_slow, float dims[2]); + int n_dims, int n_ctx_orig, float freq_base, float beta_fast, float beta_slow, float dims[2]); // rotary position embedding backward, i.e compute dx from dy // a - dy @@ -1573,16 +1558,13 @@ extern "C" { struct ggml_tensor * c, int n_dims, int mode, - int n_ctx, - int n_orig_ctx, + int n_ctx_orig, float freq_base, float freq_scale, float ext_factor, float attn_factor, float beta_fast, - float beta_slow, - float xpos_base, - bool xpos_down); + float beta_slow); // clamp // in-place, returns view(a) diff --git a/kompute-shaders/op_rope_f16.comp b/kompute-shaders/op_rope_f16.comp index b446225849d5f..1a4058b3f1f10 100644 --- a/kompute-shaders/op_rope_f16.comp +++ b/kompute-shaders/op_rope_f16.comp @@ -14,7 +14,7 @@ void main() { const bool is_neox = (pcs.mode & 2) != 0; float corr_dims[2]; - rope_yarn_corr_dims(pcs.n_dims, pcs.n_orig_ctx, pcs.freq_base, pcs.beta_fast, pcs.beta_slow, corr_dims); + rope_yarn_corr_dims(pcs.n_dims, pcs.n_ctx_orig, pcs.freq_base, pcs.beta_fast, pcs.beta_slow, corr_dims); const float theta_scale = pow(pcs.freq_base, -2.0/pcs.n_dims); diff --git a/kompute-shaders/op_rope_f32.comp b/kompute-shaders/op_rope_f32.comp index 2c0235d75b6b6..65e03827a2660 100644 --- a/kompute-shaders/op_rope_f32.comp +++ b/kompute-shaders/op_rope_f32.comp @@ -14,7 +14,7 @@ void main() { const bool is_neox = (pcs.mode & 2) != 0; float corr_dims[2]; - rope_yarn_corr_dims(pcs.n_dims, pcs.n_orig_ctx, pcs.freq_base, pcs.beta_fast, pcs.beta_slow, corr_dims); + rope_yarn_corr_dims(pcs.n_dims, pcs.n_ctx_orig, pcs.freq_base, pcs.beta_fast, pcs.beta_slow, corr_dims); const float theta_scale = pow(pcs.freq_base, -2.0/pcs.n_dims); diff --git a/kompute-shaders/rope_common.comp b/kompute-shaders/rope_common.comp index 57ba6597a7eb2..7b9394cb2fffc 100644 --- a/kompute-shaders/rope_common.comp +++ b/kompute-shaders/rope_common.comp @@ -9,7 +9,7 @@ layout (push_constant) uniform parameter { uint outOff; int n_dims; int mode; - int n_orig_ctx; + int n_ctx_orig; float freq_base; float freq_scale; float ext_factor; @@ -54,14 +54,14 @@ void rope_yarn( // Apparently solving `n_rot = 2pi * x * base^((2 * max_pos_emb) / n_dims)` for x, we get // `corr_fac(n_rot) = n_dims * log(max_pos_emb / (n_rot * 2pi)) / (2 * log(base))` -float rope_yarn_corr_factor(int n_dims, int n_orig_ctx, float n_rot, float base) { - return n_dims * log(n_orig_ctx / (n_rot * TWOPI_F)) / (2 * log(base)); +float rope_yarn_corr_factor(int n_dims, int n_ctx_orig, float n_rot, float base) { + return n_dims * log(n_ctx_orig / (n_rot * TWOPI_F)) / (2 * log(base)); } void rope_yarn_corr_dims( - int n_dims, int n_orig_ctx, float freq_base, float beta_fast, float beta_slow, out float dims[2] + int n_dims, int n_ctx_orig, float freq_base, float beta_fast, float beta_slow, out float dims[2] ) { // start and end correction dims - dims[0] = max(0.0f, floor(rope_yarn_corr_factor(n_dims, n_orig_ctx, beta_fast, freq_base))); - dims[1] = min(n_dims - 1.0f, ceil(rope_yarn_corr_factor(n_dims, n_orig_ctx, beta_slow, freq_base))); + dims[0] = max(0.0f, floor(rope_yarn_corr_factor(n_dims, n_ctx_orig, beta_fast, freq_base))); + dims[1] = min(n_dims - 1.0f, ceil(rope_yarn_corr_factor(n_dims, n_ctx_orig, beta_slow, freq_base))); } diff --git a/llama.cpp b/llama.cpp index 06889126ecdc4..414d390e891a1 100644 --- a/llama.cpp +++ b/llama.cpp @@ -1848,7 +1848,7 @@ struct llama_hparams { float rope_attn_factor = 1.0f; float rope_freq_base_train; float rope_freq_scale_train; - uint32_t n_yarn_orig_ctx; + uint32_t n_ctx_orig_yarn; float rope_yarn_log_mul; // for State Space Models @@ -1890,7 +1890,7 @@ struct llama_hparams { if (this->n_expert_shared != other.n_expert_shared) return true; if (this->rope_finetuned != other.rope_finetuned) return true; - if (this->n_yarn_orig_ctx != other.n_yarn_orig_ctx) return true; + if (this->n_ctx_orig_yarn != other.n_ctx_orig_yarn) return true; if (this->ssm_d_conv != other.ssm_d_conv) return true; if (this->ssm_d_inner != other.ssm_d_inner) return true; @@ -1949,7 +1949,7 @@ struct llama_cparams { float rope_freq_base; float rope_freq_scale; - uint32_t n_yarn_orig_ctx; + uint32_t n_ctx_orig_yarn; // These hyperparameters are not exposed in GGUF, because all // existing YaRN models use the same values for them. float yarn_ext_factor; @@ -4005,8 +4005,8 @@ static void llm_load_hparams( ml.get_key(LLM_KV_ROPE_SCALING_FINETUNED, rope_finetuned, false); hparams.rope_finetuned = rope_finetuned; - hparams.n_yarn_orig_ctx = hparams.n_ctx_train; - ml.get_key(LLM_KV_ROPE_SCALING_ORIG_CTX_LEN, hparams.n_yarn_orig_ctx, false); + hparams.n_ctx_orig_yarn = hparams.n_ctx_train; + ml.get_key(LLM_KV_ROPE_SCALING_ORIG_CTX_LEN, hparams.n_ctx_orig_yarn, false); // rope_freq_base (optional) hparams.rope_freq_base_train = 10000.0f; @@ -4968,7 +4968,7 @@ static void llm_load_print_meta(llama_model_loader & ml, llama_model & model) { LLAMA_LOG_INFO("%s: rope scaling = %s\n", __func__, rope_scaling_type); LLAMA_LOG_INFO("%s: freq_base_train = %.1f\n", __func__, hparams.rope_freq_base_train); LLAMA_LOG_INFO("%s: freq_scale_train = %g\n", __func__, hparams.rope_freq_scale_train); - LLAMA_LOG_INFO("%s: n_yarn_orig_ctx = %u\n", __func__, hparams.n_yarn_orig_ctx); + LLAMA_LOG_INFO("%s: n_ctx_orig_yarn = %u\n", __func__, hparams.n_ctx_orig_yarn); LLAMA_LOG_INFO("%s: rope_finetuned = %s\n", __func__, hparams.rope_finetuned ? "yes" : "unknown"); LLAMA_LOG_INFO("%s: ssm_d_conv = %u\n", __func__, hparams.ssm_d_conv); LLAMA_LOG_INFO("%s: ssm_d_inner = %u\n", __func__, hparams.ssm_d_inner); @@ -7134,7 +7134,7 @@ struct llm_build_context { const int32_t n_kv; // size of KV cache to consider (n_kv <= kv_self.size) const int32_t n_outputs; const int32_t kv_head; // index of where we store new KV data in the cache - const int32_t n_orig_ctx; + const int32_t n_ctx_orig; const bool flash_attn; @@ -7183,7 +7183,7 @@ struct llm_build_context { n_kv (worst_case ? kv_self.size : kv_self.n), n_outputs (worst_case ? n_tokens : lctx.n_outputs), kv_head (worst_case ? (kv_self.recurrent ? 0 : kv_self.size - n_tokens) : kv_self.head), - n_orig_ctx (cparams.n_yarn_orig_ctx), + n_ctx_orig (cparams.n_ctx_orig_yarn), flash_attn (cparams.flash_attn), pooling_type (cparams.pooling_type), rope_type (hparams.rope_type), @@ -7241,7 +7241,7 @@ struct llm_build_context { ggml_row_size(kv_self.k_l[il]->type, n_embd_head_k), ggml_row_size(kv_self.k_l[il]->type, n_embd_k_gqa), 0), - lctx.inp_K_shift, rope_factors, n_rot, rope_type, 0, n_orig_ctx, freq_base, freq_scale, + lctx.inp_K_shift, rope_factors, n_rot, rope_type, n_ctx_orig, freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow); cb(tmp, "K_shifted", il); @@ -7350,7 +7350,7 @@ struct llm_build_context { // choose long/short freq factors based on the context size const auto n_ctx_pre_seq = cparams.n_ctx / cparams.n_seq_max; - if (n_ctx_pre_seq > hparams.n_yarn_orig_ctx) { + if (n_ctx_pre_seq > hparams.n_ctx_orig_yarn) { return model.layers[il].rope_long; } @@ -7466,14 +7466,14 @@ struct llm_build_context { Qcur = ggml_rope_ext( ctx0, ggml_reshape_3d(ctx0, Qcur, n_embd_head, n_head, n_tokens), inp_pos, nullptr, - n_rot, rope_type, 0, n_orig_ctx, freq_base, freq_scale, + n_rot, rope_type, n_ctx_orig, freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow ); cb(Qcur, "Qcur", il); Kcur = ggml_rope_ext( ctx0, ggml_reshape_3d(ctx0, Kcur, n_embd_head, n_head_kv, n_tokens), inp_pos, nullptr, - n_rot, rope_type, 0, n_orig_ctx, freq_base, freq_scale, + n_rot, rope_type, n_ctx_orig, freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow ); cb(Kcur, "Kcur", il); @@ -7597,12 +7597,12 @@ struct llm_build_context { case MODEL_7B: Qcur = ggml_rope_ext( ctx0, ggml_reshape_3d(ctx0, Qcur, n_embd_head, n_head, n_tokens), inp_pos, nullptr, - n_rot, rope_type, 0, n_orig_ctx, freq_base, freq_scale, + n_rot, rope_type, n_ctx_orig, freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow ); Kcur = ggml_rope_ext( ctx0, ggml_reshape_3d(ctx0, Kcur, n_embd_head, n_head_kv, n_tokens), inp_pos, nullptr, - n_rot, rope_type, 0, n_orig_ctx, freq_base, freq_scale, + n_rot, rope_type, n_ctx_orig, freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow ); break; @@ -7709,14 +7709,14 @@ struct llm_build_context { Qcur = ggml_rope_ext( ctx0, ggml_reshape_3d(ctx0, Qcur, n_embd_head, n_head, n_tokens), inp_pos, nullptr, - n_rot, rope_type, 0, n_orig_ctx, freq_base, freq_scale, + n_rot, rope_type, n_ctx_orig, freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow ); cb(Qcur, "Qcur", il); Kcur = ggml_rope_ext( ctx0, ggml_reshape_3d(ctx0, Kcur, n_embd_head, n_head_kv, n_tokens), inp_pos, nullptr, - n_rot, rope_type, 0, n_orig_ctx, freq_base, freq_scale, + n_rot, rope_type, n_ctx_orig, freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow ); cb(Kcur, "Kcur", il); @@ -7829,13 +7829,13 @@ struct llm_build_context { // using mode = 2 for neox mode Qcur = ggml_rope_ext( - ctx0, Qcur, inp_pos, nullptr, n_rot, rope_type, 0, n_orig_ctx, + ctx0, Qcur, inp_pos, nullptr, n_rot, rope_type, n_ctx_orig, freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow ); cb(Qcur, "Qcur", il); Kcur = ggml_rope_ext( - ctx0, Kcur, inp_pos, nullptr, n_rot, rope_type, 0, n_orig_ctx, + ctx0, Kcur, inp_pos, nullptr, n_rot, rope_type, n_ctx_orig, freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow ); cb(Kcur, "Kcur", il); @@ -7953,14 +7953,14 @@ struct llm_build_context { Qcur = ggml_rope_ext( ctx0, ggml_reshape_3d(ctx0, Qcur, n_embd_head, n_head, n_tokens), inp_pos, nullptr, - n_rot, rope_type, 0, n_orig_ctx, freq_base, freq_scale, + n_rot, rope_type, n_ctx_orig, freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow ); cb(Qcur, "Qcur", il); Kcur = ggml_rope_ext( ctx0, ggml_reshape_3d(ctx0, Kcur, n_embd_head, n_head_kv, n_tokens), inp_pos, nullptr, - n_rot, rope_type, 0, n_orig_ctx, freq_base, freq_scale, + n_rot, rope_type, n_ctx_orig, freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow ); cb(Kcur, "Kcur", il); @@ -8106,14 +8106,14 @@ struct llm_build_context { Qcur = ggml_rope_ext( ctx0, ggml_reshape_3d(ctx0, Qcur, n_embd_head, n_head, n_tokens), inp_pos, nullptr, - n_rot, rope_type, 0, n_orig_ctx, freq_base, freq_scale, + n_rot, rope_type, n_ctx_orig, freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow ); cb(Qcur, "Qcur", il); Kcur = ggml_rope_ext( ctx0, ggml_reshape_3d(ctx0, Kcur, n_embd_head, n_head_kv, n_tokens), inp_pos, nullptr, - n_rot, rope_type, 0, n_orig_ctx, freq_base, freq_scale, + n_rot, rope_type, n_ctx_orig, freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow ); cb(Kcur, "Kcur", il); @@ -8460,14 +8460,14 @@ struct llm_build_context { Qcur = ggml_rope_ext( ctx0, ggml_reshape_3d(ctx0, Qcur, n_embd_head, n_head, n_tokens), inp_pos, nullptr, - n_rot, rope_type, 0, n_orig_ctx, freq_base, freq_scale, + n_rot, rope_type, n_ctx_orig, freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow ); cb(Qcur, "Qcur", il); Kcur = ggml_rope_ext( ctx0, ggml_reshape_3d(ctx0, Kcur, n_embd_head, n_head_kv, n_tokens), inp_pos, nullptr, - n_rot, rope_type, 0, n_orig_ctx, freq_base, freq_scale, + n_rot, rope_type, n_ctx_orig, freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow ); cb(Kcur, "Kcur", il); @@ -8900,14 +8900,14 @@ struct llm_build_context { Qcur = ggml_rope_ext( ctx0, Qcur, inp_pos, nullptr, - n_rot, rope_type, 0, n_orig_ctx, freq_base, freq_scale, + n_rot, rope_type, n_ctx_orig, freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow ); cb(Qcur, "Qcur", il); Kcur = ggml_rope_ext( ctx0, Kcur, inp_pos, nullptr, - n_rot, rope_type, 0, n_orig_ctx, freq_base, freq_scale, + n_rot, rope_type, n_ctx_orig, freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow ); cb(Kcur, "Kcur", il); @@ -9019,13 +9019,13 @@ struct llm_build_context { // using mode = 2 for neox mode Qcur = ggml_rope_ext( - ctx0, Qcur, inp_pos, nullptr, n_rot, rope_type, 0, n_orig_ctx, + ctx0, Qcur, inp_pos, nullptr, n_rot, rope_type, n_ctx_orig, freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow ); cb(Qcur, "Qcur", il); Kcur = ggml_rope_ext( - ctx0, Kcur, inp_pos, nullptr, n_rot, rope_type, 0, n_orig_ctx, + ctx0, Kcur, inp_pos, nullptr, n_rot, rope_type, n_ctx_orig, freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow ); cb(Kcur, "Kcur", il); @@ -9131,14 +9131,14 @@ struct llm_build_context { Qcur = ggml_rope_ext( ctx0, ggml_reshape_3d(ctx0, Qcur, n_embd_head, n_head, n_tokens), inp_pos, nullptr, - n_rot, rope_type, 0, n_orig_ctx, freq_base, freq_scale, + n_rot, rope_type, n_ctx_orig, freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow ); cb(Qcur, "Qcur", il); Kcur = ggml_rope_ext( ctx0, ggml_reshape_3d(ctx0, Kcur, n_embd_head, n_head_kv, n_tokens), inp_pos, nullptr, - n_rot, rope_type, 0, n_orig_ctx, freq_base, freq_scale, + n_rot, rope_type, n_ctx_orig, freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow ); cb(Kcur, "Kcur", il); @@ -9245,14 +9245,14 @@ struct llm_build_context { Qcur = ggml_rope_ext( ctx0, ggml_reshape_3d(ctx0, Qcur, n_embd_head, n_head, n_tokens), inp_pos, nullptr, - n_rot, rope_type, 0, n_orig_ctx, freq_base, freq_scale, + n_rot, rope_type, n_ctx_orig, freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow ); cb(Qcur, "Qcur", il); Kcur = ggml_rope_ext( ctx0, ggml_reshape_3d(ctx0, Kcur, n_embd_head, n_head_kv, n_tokens), inp_pos, nullptr, - n_rot, rope_type, 0, n_orig_ctx, freq_base, freq_scale, + n_rot, rope_type, n_ctx_orig, freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow ); cb(Kcur, "Kcur", il); @@ -9397,7 +9397,7 @@ struct llm_build_context { Kcur = ggml_reshape_3d(ctx0, Kcur, n_embd_head, n_head_kv, n_tokens); Qcur = ggml_rope_ext( - ctx0, Qcur, inp_pos, nullptr, n_rot, rope_type, 0, n_orig_ctx, + ctx0, Qcur, inp_pos, nullptr, n_rot, rope_type, n_ctx_orig, freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow ); cb(Qcur, "Qcur", il); @@ -9408,7 +9408,7 @@ struct llm_build_context { cb(Qcur, "Qcur", il); Kcur = ggml_rope_ext( - ctx0, Kcur, inp_pos, nullptr, n_rot, rope_type, 0, n_orig_ctx, + ctx0, Kcur, inp_pos, nullptr, n_rot, rope_type, n_ctx_orig, freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow ); cb(Kcur, "Kcur", il); @@ -9519,7 +9519,7 @@ struct llm_build_context { Kcur = ggml_reshape_3d(ctx0, Kcur, n_embd_head, n_head_kv, n_tokens); Qcur = ggml_rope_ext( - ctx0, Qcur, inp_pos, rope_factors, n_rot, rope_type, 0, n_orig_ctx, + ctx0, Qcur, inp_pos, rope_factors, n_rot, rope_type, n_ctx_orig, freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow ); cb(Qcur, "Qcur", il); @@ -9528,7 +9528,7 @@ struct llm_build_context { cb(Qcur, "Qcur", il); Kcur = ggml_rope_ext( - ctx0, Kcur, inp_pos, rope_factors, n_rot, rope_type, 0, n_orig_ctx, + ctx0, Kcur, inp_pos, rope_factors, n_rot, rope_type, n_ctx_orig, freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow ); cb(Kcur, "Kcur", il); @@ -9636,13 +9636,13 @@ struct llm_build_context { Qcur = ggml_rope_ext( ctx0, ggml_reshape_3d(ctx0, Qcur, n_rot, n_head, n_tokens), inp_pos, nullptr, - n_embd_head, rope_type, 0, n_orig_ctx, freq_base, freq_scale, + n_embd_head, rope_type, n_ctx_orig, freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow); cb(Qcur, "Qcur", il); Kcur = ggml_rope_ext( ctx0, ggml_reshape_3d(ctx0, Kcur, n_rot, n_head_kv, n_tokens), inp_pos, nullptr, - n_embd_head, rope_type, 0, n_orig_ctx, freq_base, freq_scale, + n_embd_head, rope_type, n_ctx_orig, freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow); cb(Kcur, "Kcur", il); @@ -9844,14 +9844,14 @@ struct llm_build_context { struct ggml_tensor * Qcur = ggml_rope_ext( ctx0, ggml_reshape_3d(ctx0, tmpq, n_embd_head, n_head, n_tokens), inp_pos, nullptr, - n_rot, rope_type, 0, n_orig_ctx, freq_base, freq_scale, + n_rot, rope_type, n_ctx_orig, freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow ); cb(Qcur, "Qcur", il); struct ggml_tensor * Kcur = ggml_rope_ext( ctx0, ggml_reshape_3d(ctx0, tmpk, n_embd_head, n_head_kv, n_tokens), inp_pos, nullptr, - n_rot, rope_type, 0, n_orig_ctx, freq_base, freq_scale, + n_rot, rope_type, n_ctx_orig, freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow ); cb(Kcur, "Kcur", il); @@ -9960,14 +9960,14 @@ struct llm_build_context { Qcur = ggml_rope_ext( ctx0, ggml_reshape_3d(ctx0, Qcur, n_embd_head, n_head, n_tokens), inp_pos, nullptr, - n_rot, rope_type, 0, n_orig_ctx, freq_base, freq_scale, + n_rot, rope_type, n_ctx_orig, freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow ); cb(Qcur, "Qcur", il); Kcur = ggml_rope_ext( ctx0, ggml_reshape_3d(ctx0, Kcur, n_embd_head, n_head_kv, n_tokens), inp_pos, nullptr, - n_rot, rope_type, 0, n_orig_ctx, freq_base, freq_scale, + n_rot, rope_type, n_ctx_orig, freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow ); cb(Kcur, "Kcur", il); @@ -10077,14 +10077,14 @@ struct llm_build_context { Qcur = ggml_rope_ext( ctx0, ggml_reshape_3d(ctx0, Qcur, n_embd_head, n_head, n_tokens), inp_pos, nullptr, - n_rot, rope_type, 0, n_orig_ctx, freq_base, freq_scale, + n_rot, rope_type, n_ctx_orig, freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow ); cb(Qcur, "Qcur", il); Kcur = ggml_rope_ext( ctx0, ggml_reshape_3d(ctx0, Kcur, n_embd_head, n_head_kv, n_tokens), inp_pos, nullptr, - n_rot, rope_type, 0, n_orig_ctx, freq_base, freq_scale, + n_rot, rope_type, n_ctx_orig, freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow ); cb(Kcur, "Kcur", il); @@ -10207,14 +10207,14 @@ struct llm_build_context { Qcur = ggml_rope_ext( ctx0, ggml_reshape_3d(ctx0, Qcur, n_embd_head, n_head, n_tokens), inp_pos, nullptr, - n_rot, rope_type, 0, n_orig_ctx, freq_base, freq_scale, + n_rot, rope_type, n_ctx_orig, freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow ); cb(Qcur, "Qcur", il); Kcur = ggml_rope_ext( ctx0, ggml_reshape_3d(ctx0, Kcur, n_embd_head, n_head_kv, n_tokens), inp_pos, nullptr, - n_rot, rope_type, 0, n_orig_ctx, freq_base, freq_scale, + n_rot, rope_type, n_ctx_orig, freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow ); cb(Kcur, "Kcur", il); @@ -10327,7 +10327,7 @@ struct llm_build_context { Qcur = ggml_rope_ext( ctx0, ggml_reshape_3d(ctx0, Qcur, n_embd_head_k, n_head, n_tokens), inp_pos, nullptr, - n_embd_head_k, rope_type, 0, n_orig_ctx, freq_base, freq_scale, + n_embd_head_k, rope_type, n_ctx_orig, freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow); cb(Qcur, "Qcur", il); @@ -10336,7 +10336,7 @@ struct llm_build_context { Kcur = ggml_rope_ext( ctx0, ggml_reshape_3d(ctx0, Kcur, n_embd_head_k, n_head_kv, n_tokens), inp_pos, nullptr, - n_embd_head_k, rope_type, 0, n_orig_ctx, freq_base, freq_scale, + n_embd_head_k, rope_type, n_ctx_orig, freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow); cb(Kcur, "Kcur", il); @@ -10447,14 +10447,14 @@ struct llm_build_context { Qcur = ggml_rope_ext( ctx0, ggml_reshape_3d(ctx0, Qcur, n_embd_head, n_head, n_tokens), inp_pos, nullptr, - n_rot, rope_type, 0, n_orig_ctx, freq_base, freq_scale, + n_rot, rope_type, n_ctx_orig, freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow ); cb(Qcur, "Qcur", il); Kcur = ggml_rope_ext( ctx0, ggml_reshape_3d(ctx0, Kcur, n_embd_head, n_head_kv, n_tokens), inp_pos, nullptr, - n_rot, rope_type, 0, n_orig_ctx, freq_base, freq_scale, + n_rot, rope_type, n_ctx_orig, freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow ); cb(Kcur, "Kcur", il); @@ -10737,14 +10737,14 @@ struct llm_build_context { Qcur = ggml_rope_ext( ctx0, ggml_reshape_3d(ctx0, Qcur, n_embd_head, n_head, n_tokens), inp_pos, nullptr, - n_rot, rope_type, 0, n_orig_ctx, freq_base, freq_scale, + n_rot, rope_type, n_ctx_orig, freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow ); cb(Qcur, "Qcur", il); Kcur = ggml_rope_ext( ctx0, ggml_reshape_3d(ctx0, Kcur, n_embd_head, n_head_kv, n_tokens), inp_pos, nullptr, - n_rot, rope_type, 0, n_orig_ctx, freq_base, freq_scale, + n_rot, rope_type, n_ctx_orig, freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow ); cb(Kcur, "Kcur", il); @@ -10868,14 +10868,14 @@ struct llm_build_context { Qcur = ggml_rope_ext( ctx0, ggml_reshape_3d(ctx0, Qcur, n_embd_head, n_head, n_tokens), inp_pos, nullptr, - n_rot, rope_type, 0, n_orig_ctx, freq_base, freq_scale, + n_rot, rope_type, n_ctx_orig, freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow ); cb(Qcur, "Qcur", il); Kcur = ggml_rope_ext( ctx0, ggml_reshape_3d(ctx0, Kcur, n_embd_head, n_head_kv, n_tokens), inp_pos, nullptr, - n_rot, rope_type, 0, n_orig_ctx, freq_base, freq_scale, + n_rot, rope_type, n_ctx_orig, freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow ); cb(Kcur, "Kcur", il); @@ -10982,14 +10982,14 @@ struct llm_build_context { Qcur = ggml_rope_ext( ctx0, ggml_reshape_3d(ctx0, Qcur, n_embd_head, n_head, n_tokens), inp_pos, nullptr, - n_rot, rope_type, 0, n_orig_ctx, freq_base, freq_scale, + n_rot, rope_type, n_ctx_orig, freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow ); cb(Qcur, "Qcur", il); Kcur = ggml_rope_ext( ctx0, ggml_reshape_3d(ctx0, Kcur, n_embd_head, n_head_kv, n_tokens), inp_pos, nullptr, - n_rot, rope_type, 0, n_orig_ctx, freq_base, freq_scale, + n_rot, rope_type, n_ctx_orig, freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow ); cb(Kcur, "Kcur", il); @@ -11117,14 +11117,14 @@ struct llm_build_context { Qcur = ggml_rope_ext( ctx0, ggml_reshape_3d(ctx0, Qcur, n_embd_head, n_head, n_tokens), inp_pos, nullptr, - n_rot, rope_type, 0, n_orig_ctx, freq_base, freq_scale, + n_rot, rope_type, n_ctx_orig, freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow ); cb(Qcur, "Qcur", il); Kcur = ggml_rope_ext( ctx0, ggml_reshape_3d(ctx0, Kcur, n_embd_head, n_head_kv, n_tokens), inp_pos, nullptr, - n_rot, rope_type, 0, n_orig_ctx, freq_base, freq_scale, + n_rot, rope_type, n_ctx_orig, freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow ); cb(Kcur, "Kcur", il); @@ -11334,7 +11334,7 @@ struct llm_build_context { q_pe = ggml_cont(ctx0, q_pe); // TODO: the CUDA backend does not support non-contiguous RoPE q_pe = ggml_rope_ext( ctx0, q_pe, inp_pos, nullptr, - n_rot, rope_type, 0, n_orig_ctx, freq_base, freq_scale, + n_rot, rope_type, n_ctx_orig, freq_base, freq_scale, ext_factor, attn_factor_scaled, beta_fast, beta_slow ); cb(q_pe, "q_pe", il); @@ -11343,7 +11343,7 @@ struct llm_build_context { k_pe = ggml_cont(ctx0, k_pe); // TODO: the CUDA backend does not support non-contiguous RoPE k_pe = ggml_rope_ext( ctx0, k_pe, inp_pos, nullptr, - n_rot, rope_type, 0, n_orig_ctx, freq_base, freq_scale, + n_rot, rope_type, n_ctx_orig, freq_base, freq_scale, ext_factor, attn_factor_scaled, beta_fast, beta_slow ); cb(k_pe, "k_pe", il); @@ -16067,8 +16067,8 @@ struct llama_context * llama_new_context_with_model( cparams.n_ubatch = std::min(cparams.n_batch, params.n_ubatch == 0 ? params.n_batch : params.n_ubatch); - cparams.n_yarn_orig_ctx = params.yarn_orig_ctx != 0 ? params.yarn_orig_ctx : - hparams.n_yarn_orig_ctx != 0 ? hparams.n_yarn_orig_ctx : + cparams.n_ctx_orig_yarn = params.yarn_orig_ctx != 0 ? params.yarn_orig_ctx : + hparams.n_ctx_orig_yarn != 0 ? hparams.n_ctx_orig_yarn : hparams.n_ctx_train; cparams.cb_eval = params.cb_eval; diff --git a/tests/test-backend-ops.cpp b/tests/test-backend-ops.cpp index 8dc90a45dd872..ce406a8af867a 100644 --- a/tests/test-backend-ops.cpp +++ b/tests/test-backend-ops.cpp @@ -1141,7 +1141,7 @@ struct test_rope : public test_case { const std::array ne_a; int n_dims; int mode; - int n_ctx; + int n_ctx; // used to generate positions float fs; // freq_scale float ef; // ext_factor float af; // attn_factor @@ -1168,7 +1168,7 @@ struct test_rope : public test_case { } ggml_tensor * pos = ggml_new_tensor_1d(ctx, GGML_TYPE_I32, ne_a[2]); ggml_tensor * freq = ff ? ggml_new_tensor_1d(ctx, GGML_TYPE_F32, n_dims/2) : nullptr; - ggml_tensor * out = ggml_rope_ext(ctx, a, pos, freq, n_dims, mode, n_ctx, 0, 10000.0f, fs, ef, af, 1.0f, 1.0f); + ggml_tensor * out = ggml_rope_ext(ctx, a, pos, freq, n_dims, mode, 0, 10000.0f, fs, ef, af, 1.0f, 1.0f); return out; } @@ -1615,7 +1615,7 @@ struct llama_hparams { // cparams static constexpr uint32_t n_ctx = 512; // user-specified context size - static constexpr uint32_t n_orig_ctx = n_ctx; + static constexpr uint32_t n_ctx_orig = n_ctx; // batch int32_t n_tokens; @@ -1806,13 +1806,13 @@ struct test_llama : public test_llm { Qcur = ggml_rope_ext( ctx, ggml_reshape_3d(ctx, Qcur, hp.n_embd_head, hp.n_head, hp.n_tokens), inp_pos, nullptr, - hp.n_rot, 0, 0, hp.n_orig_ctx, freq_base, freq_scale, + hp.n_rot, 0, hp.n_ctx_orig, freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow ); Kcur = ggml_rope_ext( ctx, ggml_reshape_3d(ctx, Kcur, hp.n_embd_head, hp.n_head_kv, hp.n_tokens), inp_pos, nullptr, - hp.n_rot, 0, 0, hp.n_orig_ctx, freq_base, freq_scale, + hp.n_rot, 0, hp.n_ctx_orig, freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow ); @@ -1931,12 +1931,12 @@ struct test_falcon : public test_llm { // using mode = 2 for neox mode Qcur = ggml_rope_ext( - ctx, Qcur, inp_pos, nullptr, hp.n_rot, 2, 0, hp.n_orig_ctx, + ctx, Qcur, inp_pos, nullptr, hp.n_rot, 2, hp.n_ctx_orig, freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow ); Kcur = ggml_rope_ext( - ctx, Kcur, inp_pos, nullptr, hp.n_rot, 2, 0, hp.n_orig_ctx, + ctx, Kcur, inp_pos, nullptr, hp.n_rot, 2, hp.n_ctx_orig, freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow ); @@ -2236,15 +2236,15 @@ static bool test_backend(ggml_backend_t backend, test_mode mode, const char * op for (float ef : { 0.0f, 0.7465f }) { for (float af : { 1.0f, 1.4245f }) { for (ggml_type type : {GGML_TYPE_F32, GGML_TYPE_F16}) { - // TODO: ff not supported yet for !neox - test_cases.emplace_back(new test_rope(type, {128, 32, 10, 1}, 128, 0, 512, fs, ef, af, false, v)); // llama 7B - if (all) { - test_cases.emplace_back(new test_rope(type, {128, 40, 10, 1}, 128, 0, 512, fs, ef, af, false, v)); // llama 13B - test_cases.emplace_back(new test_rope(type, {128, 52, 10, 1}, 128, 0, 512, fs, ef, af, false, v)); // llama 30B - test_cases.emplace_back(new test_rope(type, {128, 64, 10, 1}, 128, 0, 512, fs, ef, af, false, v)); // llama 65B - } - for (bool ff : {false, true}) { // freq_factors + test_cases.emplace_back(new test_rope(type, {128, 32, 10, 1}, 128, 0, 512, fs, ef, af, ff, v)); // llama 7B + + if (all) { + test_cases.emplace_back(new test_rope(type, {128, 40, 10, 1}, 128, 0, 512, fs, ef, af, ff, v)); // llama 13B + test_cases.emplace_back(new test_rope(type, {128, 52, 10, 1}, 128, 0, 512, fs, ef, af, ff, v)); // llama 30B + test_cases.emplace_back(new test_rope(type, {128, 64, 10, 1}, 128, 0, 512, fs, ef, af, ff, v)); // llama 65B + } + if (all) { test_cases.emplace_back(new test_rope(type, { 64, 1, 10, 1}, 64, 2, 512, fs, ef, af, ff, v)); // neox (falcon 7B) test_cases.emplace_back(new test_rope(type, { 64, 71, 10, 1}, 64, 2, 512, fs, ef, af, ff, v)); // neox (falcon 7B) @@ -2256,6 +2256,7 @@ static bool test_backend(ggml_backend_t backend, test_mode mode, const char * op test_cases.emplace_back(new test_rope(type, { 64, 128, 10, 1}, 64, 2, 512, fs, ef, af, ff, v)); // neox (falcon 40B) } } + all = false; } } diff --git a/tests/test-grad0.cpp b/tests/test-grad0.cpp index 21ca43be3a963..a353276459b2d 100644 --- a/tests/test-grad0.cpp +++ b/tests/test-grad0.cpp @@ -1465,7 +1465,7 @@ int main(int argc, const char ** argv) { continue; } - struct ggml_tensor * f = ggml_sum(ctx0, ggml_rope(ctx0, x[0], p, n_rot, mode, 0)); + struct ggml_tensor * f = ggml_sum(ctx0, ggml_rope(ctx0, x[0], p, n_rot, mode)); GGML_PRINT_DEBUG("rope f32: n_past: %d n_rot: %d mode: %d\n", n_past, n_rot, mode); check_gradient("rope f32", ctx0, x, f, ndims, nargs, 1e-2f, 1e-3f, INFINITY); @@ -1505,7 +1505,7 @@ int main(int argc, const char ** argv) { continue; } - struct ggml_tensor * f = ggml_sum(ctx0, ggml_rope(ctx0, x[0], p, n_rot, mode, 0)); + struct ggml_tensor * f = ggml_sum(ctx0, ggml_rope(ctx0, x[0], p, n_rot, mode)); GGML_PRINT_DEBUG("rope f16: n_past: %d n_rot: %d mode: %d\n", n_past, n_rot, mode); check_gradient("rope f16", ctx0, x, f, ndims, nargs, 1e-1f, 1e-1f, INFINITY); diff --git a/tests/test-rope.cpp b/tests/test-rope.cpp index 26c1f42dc0e95..f0895ffaad6a1 100644 --- a/tests/test-rope.cpp +++ b/tests/test-rope.cpp @@ -162,12 +162,12 @@ int main(int /*argc*/, const char ** /*argv*/) { x = get_random_tensor_f32(ctx0, ndims, ne, -1.0f, 1.0f); // 100, 101, 102, ..., 172 - struct ggml_tensor * r0 = ggml_rope(ctx0, x, p0, n_rot, mode, 1024); + struct ggml_tensor * r0 = ggml_rope(ctx0, x, p0, n_rot, mode); // -67, -67, -67, ..., -67 - struct ggml_tensor * r1 = ggml_rope(ctx0, r0, p1, n_rot, mode, 1024); // "context swap", i.e. forget n_past_0 - n_past_2 tokens + struct ggml_tensor * r1 = ggml_rope(ctx0, r0, p1, n_rot, mode); // "context swap", i.e. forget n_past_0 - n_past_2 tokens // 33, 34, 35, ..., 105 - struct ggml_tensor * r2 = ggml_rope(ctx0, x, p2, n_rot, mode, 1024); + struct ggml_tensor * r2 = ggml_rope(ctx0, x, p2, n_rot, mode); ggml_cgraph * gf = ggml_new_graph(ctx0); From 7d1a378b8fb266782d9248538a661405aad80768 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20G=C3=A4=C3=9Fler?= Date: Wed, 5 Jun 2024 16:53:00 +0200 Subject: [PATCH 014/131] CUDA: refactor mmq, dmmv, mmvq (#7716) * CUDA: refactor mmq, dmmv, mmvq * fix out-of-bounds write * struct for qk, qr, qi * fix cmake build * mmq_type_traits --- CMakeLists.txt | 4 + Makefile | 1 + ggml-common.h | 6 + ggml-cuda.cu | 84 +- ggml-cuda/common.cuh | 157 +- ggml-cuda/dmmv.cu | 30 +- ggml-cuda/mmq.cu | 1505 +---------------- ggml-cuda/mmq.cuh | 1300 ++++++++++++++ ggml-cuda/mmvq.cu | 137 +- .../fattn-vec-f16-instance-hs128-f16-f16.cu | 2 +- .../fattn-vec-f16-instance-hs128-f16-q4_0.cu | 2 +- .../fattn-vec-f16-instance-hs128-f16-q4_1.cu | 2 +- .../fattn-vec-f16-instance-hs128-f16-q5_0.cu | 2 +- .../fattn-vec-f16-instance-hs128-f16-q5_1.cu | 2 +- .../fattn-vec-f16-instance-hs128-f16-q8_0.cu | 2 +- .../fattn-vec-f16-instance-hs128-q4_0-f16.cu | 2 +- .../fattn-vec-f16-instance-hs128-q4_0-q4_0.cu | 2 +- .../fattn-vec-f16-instance-hs128-q4_0-q4_1.cu | 2 +- .../fattn-vec-f16-instance-hs128-q4_0-q5_0.cu | 2 +- .../fattn-vec-f16-instance-hs128-q4_0-q5_1.cu | 2 +- .../fattn-vec-f16-instance-hs128-q4_0-q8_0.cu | 2 +- .../fattn-vec-f16-instance-hs128-q4_1-f16.cu | 2 +- .../fattn-vec-f16-instance-hs128-q4_1-q4_0.cu | 2 +- .../fattn-vec-f16-instance-hs128-q4_1-q4_1.cu | 2 +- .../fattn-vec-f16-instance-hs128-q4_1-q5_0.cu | 2 +- .../fattn-vec-f16-instance-hs128-q4_1-q5_1.cu | 2 +- .../fattn-vec-f16-instance-hs128-q4_1-q8_0.cu | 2 +- .../fattn-vec-f16-instance-hs128-q5_0-f16.cu | 2 +- .../fattn-vec-f16-instance-hs128-q5_0-q4_0.cu | 2 +- .../fattn-vec-f16-instance-hs128-q5_0-q4_1.cu | 2 +- .../fattn-vec-f16-instance-hs128-q5_0-q5_0.cu | 2 +- .../fattn-vec-f16-instance-hs128-q5_0-q5_1.cu | 2 +- .../fattn-vec-f16-instance-hs128-q5_0-q8_0.cu | 2 +- .../fattn-vec-f16-instance-hs128-q5_1-f16.cu | 2 +- .../fattn-vec-f16-instance-hs128-q5_1-q4_0.cu | 2 +- .../fattn-vec-f16-instance-hs128-q5_1-q4_1.cu | 2 +- .../fattn-vec-f16-instance-hs128-q5_1-q5_0.cu | 2 +- .../fattn-vec-f16-instance-hs128-q5_1-q5_1.cu | 2 +- .../fattn-vec-f16-instance-hs128-q5_1-q8_0.cu | 2 +- .../fattn-vec-f16-instance-hs128-q8_0-f16.cu | 2 +- .../fattn-vec-f16-instance-hs128-q8_0-q4_0.cu | 2 +- .../fattn-vec-f16-instance-hs128-q8_0-q4_1.cu | 2 +- .../fattn-vec-f16-instance-hs128-q8_0-q5_0.cu | 2 +- .../fattn-vec-f16-instance-hs128-q8_0-q5_1.cu | 2 +- .../fattn-vec-f16-instance-hs128-q8_0-q8_0.cu | 2 +- .../fattn-vec-f16-instance-hs256-f16-f16.cu | 2 +- .../fattn-vec-f16-instance-hs64-f16-f16.cu | 2 +- .../fattn-vec-f16-instance-hs64-f16-q4_0.cu | 2 +- .../fattn-vec-f16-instance-hs64-f16-q4_1.cu | 2 +- .../fattn-vec-f16-instance-hs64-f16-q5_0.cu | 2 +- .../fattn-vec-f16-instance-hs64-f16-q5_1.cu | 2 +- .../fattn-vec-f16-instance-hs64-f16-q8_0.cu | 2 +- .../fattn-vec-f32-instance-hs128-f16-f16.cu | 2 +- .../fattn-vec-f32-instance-hs128-f16-q4_0.cu | 2 +- .../fattn-vec-f32-instance-hs128-f16-q4_1.cu | 2 +- .../fattn-vec-f32-instance-hs128-f16-q5_0.cu | 2 +- .../fattn-vec-f32-instance-hs128-f16-q5_1.cu | 2 +- .../fattn-vec-f32-instance-hs128-f16-q8_0.cu | 2 +- .../fattn-vec-f32-instance-hs128-q4_0-f16.cu | 2 +- .../fattn-vec-f32-instance-hs128-q4_0-q4_0.cu | 2 +- .../fattn-vec-f32-instance-hs128-q4_0-q4_1.cu | 2 +- .../fattn-vec-f32-instance-hs128-q4_0-q5_0.cu | 2 +- .../fattn-vec-f32-instance-hs128-q4_0-q5_1.cu | 2 +- .../fattn-vec-f32-instance-hs128-q4_0-q8_0.cu | 2 +- .../fattn-vec-f32-instance-hs128-q4_1-f16.cu | 2 +- .../fattn-vec-f32-instance-hs128-q4_1-q4_0.cu | 2 +- .../fattn-vec-f32-instance-hs128-q4_1-q4_1.cu | 2 +- .../fattn-vec-f32-instance-hs128-q4_1-q5_0.cu | 2 +- .../fattn-vec-f32-instance-hs128-q4_1-q5_1.cu | 2 +- .../fattn-vec-f32-instance-hs128-q4_1-q8_0.cu | 2 +- .../fattn-vec-f32-instance-hs128-q5_0-f16.cu | 2 +- .../fattn-vec-f32-instance-hs128-q5_0-q4_0.cu | 2 +- .../fattn-vec-f32-instance-hs128-q5_0-q4_1.cu | 2 +- .../fattn-vec-f32-instance-hs128-q5_0-q5_0.cu | 2 +- .../fattn-vec-f32-instance-hs128-q5_0-q5_1.cu | 2 +- .../fattn-vec-f32-instance-hs128-q5_0-q8_0.cu | 2 +- .../fattn-vec-f32-instance-hs128-q5_1-f16.cu | 2 +- .../fattn-vec-f32-instance-hs128-q5_1-q4_0.cu | 2 +- .../fattn-vec-f32-instance-hs128-q5_1-q4_1.cu | 2 +- .../fattn-vec-f32-instance-hs128-q5_1-q5_0.cu | 2 +- .../fattn-vec-f32-instance-hs128-q5_1-q5_1.cu | 2 +- .../fattn-vec-f32-instance-hs128-q5_1-q8_0.cu | 2 +- .../fattn-vec-f32-instance-hs128-q8_0-f16.cu | 2 +- .../fattn-vec-f32-instance-hs128-q8_0-q4_0.cu | 2 +- .../fattn-vec-f32-instance-hs128-q8_0-q4_1.cu | 2 +- .../fattn-vec-f32-instance-hs128-q8_0-q5_0.cu | 2 +- .../fattn-vec-f32-instance-hs128-q8_0-q5_1.cu | 2 +- .../fattn-vec-f32-instance-hs128-q8_0-q8_0.cu | 2 +- .../fattn-vec-f32-instance-hs256-f16-f16.cu | 2 +- .../fattn-vec-f32-instance-hs64-f16-f16.cu | 2 +- .../fattn-vec-f32-instance-hs64-f16-q4_0.cu | 2 +- .../fattn-vec-f32-instance-hs64-f16-q4_1.cu | 2 +- .../fattn-vec-f32-instance-hs64-f16-q5_0.cu | 2 +- .../fattn-vec-f32-instance-hs64-f16-q5_1.cu | 2 +- .../fattn-vec-f32-instance-hs64-f16-q8_0.cu | 2 +- .../fattn-wmma-f16-instance-kqfloat-cpb16.cu | 2 +- .../fattn-wmma-f16-instance-kqfloat-cpb32.cu | 2 +- .../fattn-wmma-f16-instance-kqhalf-cpb16.cu | 2 +- .../fattn-wmma-f16-instance-kqhalf-cpb32.cu | 2 +- .../fattn-wmma-f16-instance-kqhalf-cpb8.cu | 2 +- .../template-instances/generate_cu_files.py | 16 + .../template-instances/mmq-instance-q2_k.cu | 5 + .../template-instances/mmq-instance-q3_k.cu | 5 + .../template-instances/mmq-instance-q4_0.cu | 5 + .../template-instances/mmq-instance-q4_1.cu | 5 + .../template-instances/mmq-instance-q4_k.cu | 5 + .../template-instances/mmq-instance-q5_0.cu | 5 + .../template-instances/mmq-instance-q5_1.cu | 5 + .../template-instances/mmq-instance-q5_k.cu | 5 + .../template-instances/mmq-instance-q6_k.cu | 5 + .../template-instances/mmq-instance-q8_0.cu | 5 + ggml-cuda/vecdotq.cuh | 78 +- 112 files changed, 1783 insertions(+), 1767 deletions(-) create mode 100644 ggml-cuda/template-instances/mmq-instance-q2_k.cu create mode 100644 ggml-cuda/template-instances/mmq-instance-q3_k.cu create mode 100644 ggml-cuda/template-instances/mmq-instance-q4_0.cu create mode 100644 ggml-cuda/template-instances/mmq-instance-q4_1.cu create mode 100644 ggml-cuda/template-instances/mmq-instance-q4_k.cu create mode 100644 ggml-cuda/template-instances/mmq-instance-q5_0.cu create mode 100644 ggml-cuda/template-instances/mmq-instance-q5_1.cu create mode 100644 ggml-cuda/template-instances/mmq-instance-q5_k.cu create mode 100644 ggml-cuda/template-instances/mmq-instance-q6_k.cu create mode 100644 ggml-cuda/template-instances/mmq-instance-q8_0.cu diff --git a/CMakeLists.txt b/CMakeLists.txt index cf37d5bb242ac..b1d6afbbcfa8d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -416,6 +416,8 @@ if (LLAMA_CUDA) list(APPEND GGML_SOURCES_CUDA "ggml-cuda.cu") file(GLOB SRCS "ggml-cuda/template-instances/fattn-wmma*.cu") list(APPEND GGML_SOURCES_CUDA ${SRCS}) + file(GLOB SRCS "ggml-cuda/template-instances/mmq*.cu") + list(APPEND GGML_SOURCES_CUDA ${SRCS}) add_compile_definitions(GGML_USE_CUDA) add_compile_definitions(GGML_CUDA_USE_GRAPHS) @@ -588,6 +590,8 @@ if (LLAMA_HIPBLAS) list(APPEND GGML_SOURCES_ROCM "ggml-cuda.cu") file(GLOB SRCS "ggml-cuda/template-instances/fattn-wmma*.cu") list(APPEND GGML_SOURCES_ROCM ${SRCS}) + file(GLOB SRCS "ggml-cuda/template-instances/mmq*.cu") + list(APPEND GGML_SOURCES_ROCM ${SRCS}) add_compile_definitions(GGML_USE_HIPBLAS GGML_USE_CUDA) diff --git a/Makefile b/Makefile index 802ee6a47654c..895c62f84def0 100644 --- a/Makefile +++ b/Makefile @@ -444,6 +444,7 @@ ifdef LLAMA_CUBLAS endif OBJS_CUDA_TEMP_INST = $(patsubst %.cu,%.o,$(wildcard ggml-cuda/template-instances/fattn-wmma*.cu)) +OBJS_CUDA_TEMP_INST += $(patsubst %.cu,%.o,$(wildcard ggml-cuda/template-instances/mmq*.cu)) ifdef LLAMA_CUDA_FA_ALL_QUANTS OBJS_CUDA_TEMP_INST += $(patsubst %.cu,%.o,$(wildcard ggml-cuda/template-instances/fattn-vec*.cu)) else diff --git a/ggml-common.h b/ggml-common.h index 77e6bfba4b11b..e8efceb760d40 100644 --- a/ggml-common.h +++ b/ggml-common.h @@ -123,12 +123,18 @@ typedef sycl::half2 ggml_half2; #define QI1_S (QK_K / (4*QR1_S)) #define QR1_S 8 +#define QI1_M (QK_K / (4*QR1_M)) +#define QR1_M 8 + #define QI4_NL (QK4_NL / (4*QR4_NL)) #define QR4_NL 2 #define QI4_XS (QK_K / (4*QR4_XS)) #define QR4_XS 8 +#define QI3_S (QK_K / (4*QR3_S)) +#define QR3_S 8 + #endif // GGML_COMMON_DECL_CUDA || GGML_COMMON_DECL_HIP #define QK4_0 32 diff --git a/ggml-cuda.cu b/ggml-cuda.cu index c81c6a0d783be..dad8a9e2dafe7 100644 --- a/ggml-cuda.cu +++ b/ggml-cuda.cu @@ -633,88 +633,22 @@ GGML_CALL ggml_backend_buffer_type_t ggml_backend_cuda_buffer_type(int device) { // cuda split buffer -static int64_t get_row_rounding(ggml_type type, const std::array & tensor_split) { - int64_t min_compute_capability = INT_MAX; - int64_t max_compute_capability = INT_MIN; +static int64_t get_row_rounding(const std::array & tensor_split) { + int64_t row_rounding = 0; for (int id = 0; id < ggml_backend_cuda_get_device_count(); ++id) { - if (tensor_split[id] < (id + 1 < ggml_backend_cuda_get_device_count() ? tensor_split[id + 1] : 1.0f)) { - if (min_compute_capability > ggml_cuda_info().devices[id].cc) { - min_compute_capability = ggml_cuda_info().devices[id].cc; - } - if (max_compute_capability < ggml_cuda_info().devices[id].cc) { - max_compute_capability = ggml_cuda_info().devices[id].cc; - } + if (tensor_split[id] >= (id + 1 < ggml_backend_cuda_get_device_count() ? tensor_split[id + 1] : 1.0f)) { + continue; } - } -#if defined(GGML_USE_HIPBLAS) && defined(__HIP_PLATFORM_AMD__) - switch(type) { - case GGML_TYPE_Q4_0: - case GGML_TYPE_Q4_1: - case GGML_TYPE_Q5_0: - case GGML_TYPE_Q5_1: - case GGML_TYPE_Q8_0: - return max_compute_capability >= CC_RDNA2 ? 128 : 64; - case GGML_TYPE_F16: - case GGML_TYPE_F32: - return 1; - case GGML_TYPE_Q2_K: - return max_compute_capability >= CC_RDNA2 ? 128 : 32; - case GGML_TYPE_Q3_K: - return min_compute_capability < CC_RDNA2 ? 128 : 64; - case GGML_TYPE_Q4_K: - case GGML_TYPE_Q5_K: - case GGML_TYPE_Q6_K: - case GGML_TYPE_IQ2_XXS: - case GGML_TYPE_IQ2_XS: - case GGML_TYPE_IQ2_S: - case GGML_TYPE_IQ3_XXS: - case GGML_TYPE_IQ1_S: - case GGML_TYPE_IQ1_M: - case GGML_TYPE_IQ4_NL: - case GGML_TYPE_IQ4_XS: - case GGML_TYPE_IQ3_S: - return max_compute_capability >= CC_RDNA2 ? 128 : 64; - default: - GGML_ASSERT(false); - } -#else - switch(type) { - case GGML_TYPE_Q4_0: - case GGML_TYPE_Q4_1: - return max_compute_capability >= CC_VOLTA ? 128 : 64; - case GGML_TYPE_Q5_0: - case GGML_TYPE_Q5_1: - case GGML_TYPE_Q8_0: - return 64; - case GGML_TYPE_F16: - case GGML_TYPE_F32: - return 1; - case GGML_TYPE_Q2_K: - case GGML_TYPE_Q3_K: - case GGML_TYPE_Q4_K: - case GGML_TYPE_Q5_K: - case GGML_TYPE_IQ2_XXS: - case GGML_TYPE_IQ2_XS: - case GGML_TYPE_IQ2_S: - case GGML_TYPE_IQ3_XXS: - case GGML_TYPE_IQ1_S: - case GGML_TYPE_IQ1_M: - case GGML_TYPE_IQ4_NL: - case GGML_TYPE_IQ4_XS: - case GGML_TYPE_IQ3_S: - return max_compute_capability >= CC_VOLTA ? 128 : 64; - case GGML_TYPE_Q6_K: - return 64; - default: - GGML_ASSERT(false); + const int cc = ggml_cuda_info().devices[id].cc; + row_rounding = std::max(row_rounding, (int64_t)get_mmq_y_host(cc, get_mmq_x_max_host(cc))); } -#endif // defined(GGML_USE_HIPBLAS) && defined(__HIP_PLATFORM_AMD__) + return row_rounding; } static void get_row_split(int64_t * row_low, int64_t * row_high, const ggml_tensor * tensor, const std::array & tensor_split, int id) { const int64_t nrows = ggml_nrows(tensor); - const int64_t rounding = get_row_rounding(tensor->type, tensor_split); + const int64_t rounding = get_row_rounding(tensor_split); *row_low = id == 0 ? 0 : nrows*tensor_split[id]; *row_low -= *row_low % rounding; @@ -1499,7 +1433,7 @@ static void ggml_cuda_op_mul_mat( // for multi GPU, get the row boundaries from tensor split // and round to mul_mat_q tile sizes if (split) { - const int64_t rounding = get_row_rounding(src0->type, tensor_split); + const int64_t rounding = get_row_rounding(tensor_split); if (id != 0) { dev[id].row_low = ne01*tensor_split[id]; diff --git a/ggml-cuda/common.cuh b/ggml-cuda/common.cuh index 22872ca5c1d81..90a0a81ead789 100644 --- a/ggml-cuda/common.cuh +++ b/ggml-cuda/common.cuh @@ -160,7 +160,7 @@ #endif #define MMVQ_MAX_BATCH_SIZE 8 // max batch size to use MMVQ kernels -#define MMQ_MAX_BATCH_SIZE 32 // max batch size to use MMQ kernels when tensor cores are available +#define MMQ_MAX_BATCH_SIZE 64 // max batch size to use MMQ kernels when tensor cores are available #define MATRIX_ROW_PADDING 512 // last row of quant. matrices is a multiple of this to avoid out-of-bounds memory accesses @@ -484,6 +484,161 @@ static __device__ __forceinline__ float get_alibi_slope( return powf(base, exph); } +template +struct ggml_cuda_type_traits; + +template<> +struct ggml_cuda_type_traits { + static constexpr int qk = 1; + static constexpr int qr = 1; +}; + +template<> +struct ggml_cuda_type_traits { + static constexpr int qk = QK4_0; + static constexpr int qr = QR4_0; + static constexpr int qi = QI4_0; +}; + +template<> +struct ggml_cuda_type_traits { + static constexpr int qk = QK4_1; + static constexpr int qr = QR4_1; + static constexpr int qi = QI4_1; +}; + +template<> +struct ggml_cuda_type_traits { + static constexpr int qk = QK5_0; + static constexpr int qr = QR5_0; + static constexpr int qi = QI5_0; +}; + +template<> +struct ggml_cuda_type_traits { + static constexpr int qk = QK5_1; + static constexpr int qr = QR5_1; + static constexpr int qi = QI5_1; +}; + +template<> +struct ggml_cuda_type_traits { + static constexpr int qk = QK8_0; + static constexpr int qr = QR8_0; + static constexpr int qi = QI8_0; +}; + +template<> +struct ggml_cuda_type_traits { + static constexpr int qk = QK_K; + static constexpr int qr = QR2_K; + static constexpr int qi = QI2_K; +}; + +template<> +struct ggml_cuda_type_traits { + static constexpr int qk = QK_K; + static constexpr int qr = QR3_K; + static constexpr int qi = QI3_K; +}; + +template<> +struct ggml_cuda_type_traits { + static constexpr int qk = QK_K; + static constexpr int qr = QR4_K; + static constexpr int qi = QI4_K; +}; + +template<> +struct ggml_cuda_type_traits { + static constexpr int qk = QK_K; + static constexpr int qr = QR5_K; + static constexpr int qi = QI5_K; +}; + +template<> +struct ggml_cuda_type_traits { + static constexpr int qk = QK_K; + static constexpr int qr = QR6_K; + static constexpr int qi = QI6_K; +}; + +template<> +struct ggml_cuda_type_traits { + static constexpr int qk = QK_K; + static constexpr int qr = QR2_XXS; + static constexpr int qi = QI2_XXS; +}; + +template<> +struct ggml_cuda_type_traits { + static constexpr int qk = QK_K; + static constexpr int qr = QR2_XS; + static constexpr int qi = QI2_XS; +}; + +template<> +struct ggml_cuda_type_traits { + static constexpr int qk = QK_K; + static constexpr int qr = QR2_S; + static constexpr int qi = QI2_S; +}; + +template<> +struct ggml_cuda_type_traits { + static constexpr int qk = QK_K; + static constexpr int qr = QR3_XXS; + static constexpr int qi = QI3_XXS; +}; + +template<> +struct ggml_cuda_type_traits { + static constexpr int qk = QK_K; + static constexpr int qr = QR1_S; + static constexpr int qi = QI1_S; +}; + +template<> +struct ggml_cuda_type_traits { + static constexpr int qk = QK_K; + static constexpr int qr = QR1_M; + static constexpr int qi = QI1_M; +}; + +template<> +struct ggml_cuda_type_traits { + static constexpr int qk = QK4_NL; + static constexpr int qr = QR4_NL; + static constexpr int qi = QI4_NL; +}; + +template<> +struct ggml_cuda_type_traits { + static constexpr int qk = QK_K; + static constexpr int qr = QR4_XS; + static constexpr int qi = QI4_XS; +}; + +template<> +struct ggml_cuda_type_traits { + static constexpr int qk = QK_K; + static constexpr int qr = QR3_S; + static constexpr int qi = QI3_S; +}; + +static int get_mmq_x_max_host(const int cc) { +#ifdef CUDA_USE_TENSOR_CORES + return cc >= CC_VOLTA && cc < CC_OFFSET_AMD ? MMQ_MAX_BATCH_SIZE : 64; +#else + return cc >= CC_VOLTA && cc < CC_OFFSET_AMD ? 128 : 64; +#endif // CUDA_USE_TENSOR_CORES +} + +// Round rows to this value for --split-mode row: +static int get_mmq_y_host(const int cc, const int mmq_x) { + return cc >= CC_VOLTA && mmq_x >= 32 ? 128 : 64; +} + ////////////////////// struct ggml_cuda_device_info { diff --git a/ggml-cuda/dmmv.cu b/ggml-cuda/dmmv.cu index 47d4d5d9e91da..174489e0665d3 100644 --- a/ggml-cuda/dmmv.cu +++ b/ggml-cuda/dmmv.cu @@ -422,10 +422,22 @@ static __device__ void convert_f16(const void * vx, const int64_t ib, const int v.y = x[ib + iqs + 1]; } -template +static constexpr __device__ dequantize_kernel_t get_dequantize_kernel(ggml_type type) { + return type == GGML_TYPE_Q4_0 ? dequantize_q4_0 : + type == GGML_TYPE_Q4_1 ? dequantize_q4_1 : + type == GGML_TYPE_Q5_0 ? dequantize_q5_0 : + type == GGML_TYPE_Q5_1 ? dequantize_q5_1 : + type == GGML_TYPE_Q8_0 ? dequantize_q8_0 : + type == GGML_TYPE_F16 ? convert_f16 : + nullptr; +} + +template static __global__ void dequantize_mul_mat_vec(const void * __restrict__ vx, const dfloat * __restrict__ y, float * __restrict__ dst, const int ncols, const int nrows) { - // qk = quantized weights per x block - // qr = number of quantized weights per data value in x block + constexpr int qk = ggml_cuda_type_traits::qk; // quantized weights per x block + constexpr int qr = ggml_cuda_type_traits::qr; // number of quantized weights per data value in x block + constexpr dequantize_kernel_t dequantize_kernel = get_dequantize_kernel(type); + const int64_t row = (int64_t)blockIdx.x*blockDim.y + threadIdx.y; if (row >= nrows) { @@ -493,7 +505,7 @@ static void dequantize_mul_mat_vec_q4_0_cuda(const void * vx, const dfloat * y, // the number of rows may exceed maximum grid size in the y or z dimensions, use the x dimension instead const dim3 block_nums(block_num_y, 1, 1); const dim3 block_dims(WARP_SIZE, GGML_CUDA_MMV_Y, 1); - dequantize_mul_mat_vec + dequantize_mul_mat_vec <<>>(vx, y, dst, ncols, nrows); } @@ -502,7 +514,7 @@ static void dequantize_mul_mat_vec_q4_1_cuda(const void * vx, const dfloat * y, const int block_num_y = (nrows + GGML_CUDA_MMV_Y - 1) / GGML_CUDA_MMV_Y; const dim3 block_nums(block_num_y, 1, 1); const dim3 block_dims(WARP_SIZE, GGML_CUDA_MMV_Y, 1); - dequantize_mul_mat_vec + dequantize_mul_mat_vec <<>>(vx, y, dst, ncols, nrows); } @@ -511,7 +523,7 @@ static void dequantize_mul_mat_vec_q5_0_cuda(const void * vx, const dfloat * y, const int block_num_y = (nrows + GGML_CUDA_MMV_Y - 1) / GGML_CUDA_MMV_Y; const dim3 block_nums(block_num_y, 1, 1); const dim3 block_dims(WARP_SIZE, GGML_CUDA_MMV_Y, 1); - dequantize_mul_mat_vec + dequantize_mul_mat_vec <<>>(vx, y, dst, ncols, nrows); } @@ -520,7 +532,7 @@ static void dequantize_mul_mat_vec_q5_1_cuda(const void * vx, const dfloat * y, const int block_num_y = (nrows + GGML_CUDA_MMV_Y - 1) / GGML_CUDA_MMV_Y; const dim3 block_nums(block_num_y, 1, 1); const dim3 block_dims(WARP_SIZE, GGML_CUDA_MMV_Y, 1); - dequantize_mul_mat_vec + dequantize_mul_mat_vec <<>>(vx, y, dst, ncols, nrows); } @@ -529,7 +541,7 @@ static void dequantize_mul_mat_vec_q8_0_cuda(const void * vx, const dfloat * y, const int block_num_y = (nrows + GGML_CUDA_MMV_Y - 1) / GGML_CUDA_MMV_Y; const dim3 block_nums(block_num_y, 1, 1); const dim3 block_dims(WARP_SIZE, GGML_CUDA_MMV_Y, 1); - dequantize_mul_mat_vec + dequantize_mul_mat_vec <<>>(vx, y, dst, ncols, nrows); } @@ -580,7 +592,7 @@ static void convert_mul_mat_vec_f16_cuda(const void * vx, const dfloat * y, floa const int block_num_y = (nrows + GGML_CUDA_MMV_Y - 1) / GGML_CUDA_MMV_Y; const dim3 block_nums(block_num_y, 1, 1); const dim3 block_dims(WARP_SIZE, GGML_CUDA_MMV_Y, 1); - dequantize_mul_mat_vec<1, 1, convert_f16> + dequantize_mul_mat_vec <<>>(vx, y, dst, ncols, nrows); } diff --git a/ggml-cuda/mmq.cu b/ggml-cuda/mmq.cu index ebe1dc5c8bb22..58799e4caf6f8 100644 --- a/ggml-cuda/mmq.cu +++ b/ggml-cuda/mmq.cu @@ -1,1450 +1,4 @@ #include "mmq.cuh" -#include "vecdotq.cuh" - -typedef void (*allocate_tiles_cuda_t)(int ** x_ql, half2 ** x_dm, int ** x_qh, int ** x_sc); -typedef void (*load_tiles_cuda_t)( - const void * __restrict__ vx, int * __restrict__ x_ql, half2 * __restrict__ x_dm, int * __restrict__ x_qh, - int * __restrict__ x_sc, const int & i_offset, const int & i_max, const int & k, const int & blocks_per_row); -typedef float (*vec_dot_q_mul_mat_cuda_t)( - const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc, - const int * __restrict__ y_qs, const half2 * __restrict__ y_ms, const int & i, const int & j, const int & k); -typedef void (*dot_kernel_k_t)(const void * __restrict__ vx, const int ib, const int iqs, const float * __restrict__ y, float & v); -typedef void (mul_mat_q_t)( - const void * __restrict__ vx, const void * __restrict__ vy, float * __restrict__ dst, - const int ncols_x, const int nrows_x, const int ncols_y, const int nrows_y, const int nrows_dst); - -struct mmq_arch_config_t { - int x; - int y; - int nwarps; -}; - -struct mmq_config_t { - mmq_arch_config_t rdna2; - mmq_arch_config_t rdna1; - mmq_arch_config_t ampere; - mmq_arch_config_t pascal; -}; - -constexpr mmq_config_t MMQ_CONFIG_Q4_0 = { -// x y nwarps - { 64, 128, 8}, - { 64, 64, 8}, -#ifdef CUDA_USE_TENSOR_CORES - { 4, 32, 4}, -#else - { 64, 128, 4}, -#endif // CUDA_USE_TENSOR_CORES - { 64, 64, 8}, -}; -constexpr mmq_config_t MMQ_CONFIG_Q4_1 = { -// x y nwarps - { 64, 128, 8}, - { 64, 64, 8}, -#ifdef CUDA_USE_TENSOR_CORES - { 4, 32, 4}, -#else - { 64, 128, 4}, -#endif // CUDA_USE_TENSOR_CORES - { 64, 64, 8}, -}; -constexpr mmq_config_t MMQ_CONFIG_Q5_0 = { -// x y nwarps - { 64, 128, 8}, - { 64, 64, 8}, -#ifdef CUDA_USE_TENSOR_CORES - { 4, 32, 4}, -#else - {128, 64, 4}, -#endif // CUDA_USE_TENSOR_CORES - { 64, 64, 8}, -}; -constexpr mmq_config_t MMQ_CONFIG_Q5_1 = { -// x y nwarps - { 64, 128, 8}, - { 64, 64, 8}, -#ifdef CUDA_USE_TENSOR_CORES - { 4, 32, 4}, -#else - {128, 64, 4}, -#endif // CUDA_USE_TENSOR_CORES - { 64, 64, 8}, -}; -constexpr mmq_config_t MMQ_CONFIG_Q8_0 = { -// x y nwarps - { 64, 128, 8}, - { 64, 64, 8}, -#ifdef CUDA_USE_TENSOR_CORES - { 4, 32, 4}, -#else - {128, 64, 4}, -#endif // CUDA_USE_TENSOR_CORES - { 64, 64, 8}, -}; -constexpr mmq_config_t MMQ_CONFIG_Q2_K = { -// x y nwarps - { 64, 128, 8}, - {128, 32, 8}, -#ifdef CUDA_USE_TENSOR_CORES - { 4, 32, 4}, -#else - { 64, 128, 4}, -#endif // CUDA_USE_TENSOR_CORES - { 64, 64, 8}, -}; -constexpr mmq_config_t MMQ_CONFIG_Q3_K = { -// x y nwarps - {128, 64, 8}, - { 32, 128, 8}, -#ifdef CUDA_USE_TENSOR_CORES - { 4, 32, 4}, -#else - {128, 128, 4}, -#endif // CUDA_USE_TENSOR_CORES - { 64, 64, 8}, -}; -constexpr mmq_config_t MMQ_CONFIG_Q4_K = { -// x y nwarps - { 64, 128, 8}, - { 32, 64, 8}, -#ifdef CUDA_USE_TENSOR_CORES - { 4, 32, 4}, -#else - { 64, 128, 4}, -#endif // CUDA_USE_TENSOR_CORES - { 64, 64, 8}, -}; -constexpr mmq_config_t MMQ_CONFIG_Q5_K = { -// x y nwarps - { 64, 128, 8}, - { 32, 64, 8}, -#ifdef CUDA_USE_TENSOR_CORES - { 4, 32, 4}, -#else - { 64, 128, 4}, -#endif // CUDA_USE_TENSOR_CORES - { 64, 64, 8}, -}; -constexpr mmq_config_t MMQ_CONFIG_Q6_K = { -// x y nwarps - { 64, 128, 8}, - { 32, 64, 8}, -#ifdef CUDA_USE_TENSOR_CORES - { 4, 32, 4}, -#else - { 64, 64, 4}, -#endif // CUDA_USE_TENSOR_CORES - { 64, 64, 8}, -}; - -// ------------------------------------------------------------ - -template static __device__ __forceinline__ void allocate_tiles_q4_0(int ** x_ql, half2 ** x_dm, int ** x_qh, int ** x_sc) { - GGML_UNUSED(x_qh); - GGML_UNUSED(x_sc); - - __shared__ int tile_x_qs[mmq_y * (WARP_SIZE) + mmq_y]; - __shared__ float tile_x_d[mmq_y * (WARP_SIZE/QI4_0) + mmq_y/QI4_0]; - - *x_ql = tile_x_qs; - *x_dm = (half2 *) tile_x_d; -} - -template static __device__ __forceinline__ void load_tiles_q4_0( - const void * __restrict__ vx, int * __restrict__ x_ql, half2 * __restrict__ x_dm, int * __restrict__ x_qh, - int * __restrict__ x_sc, const int & i_offset, const int & i_max, const int & k, const int & blocks_per_row) { - GGML_UNUSED(x_qh); GGML_UNUSED(x_sc); - GGML_CUDA_ASSUME(i_offset >= 0); - GGML_CUDA_ASSUME(i_offset < nwarps); - GGML_CUDA_ASSUME(k >= 0); - GGML_CUDA_ASSUME(k < WARP_SIZE); - - const int kbx = k / QI4_0; - const int kqsx = k % QI4_0; - - const block_q4_0 * bx0 = (const block_q4_0 *) vx; - - float * x_dmf = (float *) x_dm; - -#pragma unroll - for (int i0 = 0; i0 < mmq_y; i0 += nwarps) { - int i = i0 + i_offset; - - if (need_check) { - i = min(i, i_max); - } - - const block_q4_0 * bxi = bx0 + i*blocks_per_row + kbx; - - x_ql[i * (WARP_SIZE + 1) + k] = get_int_from_uint8(bxi->qs, kqsx); - // x_dmf[i * (WARP_SIZE/QI4_0) + i / QI4_0 + kbx] = bxi->d; - } - - const int blocks_per_tile_x_row = WARP_SIZE / QI4_0; - const int kbxd = k % blocks_per_tile_x_row; - -#pragma unroll - for (int i0 = 0; i0 < mmq_y; i0 += nwarps * QI4_0) { - int i = i0 + i_offset * QI4_0 + k / blocks_per_tile_x_row; - - if (need_check) { - i = min(i, i_max); - } - - const block_q4_0 * bxi = bx0 + i*blocks_per_row + kbxd; - - x_dmf[i * (WARP_SIZE/QI4_0) + i / QI4_0 + kbxd] = bxi->d; - } -} - -static __device__ __forceinline__ float vec_dot_q4_0_q8_1_mul_mat( - const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc, - const int * __restrict__ y_qs, const half2 * __restrict__ y_ds, const int & i, const int & j, const int & k) { - GGML_UNUSED(x_qh); GGML_UNUSED(x_sc); - - const int kyqs = k % (QI8_1/2) + QI8_1 * (k / (QI8_1/2)); - const float * x_dmf = (const float *) x_dm; - - int u[2*VDR_Q4_0_Q8_1_MMQ]; - -#pragma unroll - for (int l = 0; l < VDR_Q4_0_Q8_1_MMQ; ++l) { - u[2*l+0] = y_qs[j * WARP_SIZE + (kyqs + l) % WARP_SIZE]; - u[2*l+1] = y_qs[j * WARP_SIZE + (kyqs + l + QI4_0) % WARP_SIZE]; - } - - return vec_dot_q4_0_q8_1_impl - (&x_ql[i * (WARP_SIZE + 1) + k], u, x_dmf[i * (WARP_SIZE/QI4_0) + i/QI4_0 + k/QI4_0], - y_ds[j * (WARP_SIZE/QI8_1) + (2*k/QI8_1) % (WARP_SIZE/QI8_1)]); -} - -template static __device__ __forceinline__ void allocate_tiles_q4_1(int ** x_ql, half2 ** x_dm, int ** x_qh, int ** x_sc) { - GGML_UNUSED(x_qh); GGML_UNUSED(x_sc); - - __shared__ int tile_x_qs[mmq_y * (WARP_SIZE) + + mmq_y]; - __shared__ half2 tile_x_dm[mmq_y * (WARP_SIZE/QI4_1) + mmq_y/QI4_1]; - - *x_ql = tile_x_qs; - *x_dm = tile_x_dm; -} - -template static __device__ __forceinline__ void load_tiles_q4_1( - const void * __restrict__ vx, int * __restrict__ x_ql, half2 * __restrict__ x_dm, int * __restrict__ x_qh, - int * __restrict__ x_sc, const int & i_offset, const int & i_max, const int & k, const int & blocks_per_row) { - GGML_UNUSED(x_qh); GGML_UNUSED(x_sc); - - GGML_CUDA_ASSUME(i_offset >= 0); - GGML_CUDA_ASSUME(i_offset < nwarps); - GGML_CUDA_ASSUME(k >= 0); - GGML_CUDA_ASSUME(k < WARP_SIZE); - - const int kbx = k / QI4_1; - const int kqsx = k % QI4_1; - - const block_q4_1 * bx0 = (const block_q4_1 *) vx; - -#pragma unroll - for (int i0 = 0; i0 < mmq_y; i0 += nwarps) { - int i = i0 + i_offset; - - if (need_check) { - i = min(i, i_max); - } - - const block_q4_1 * bxi = bx0 + i*blocks_per_row + kbx; - - x_ql[i * (WARP_SIZE + 1) + k] = get_int_from_uint8_aligned(bxi->qs, kqsx); - } - - const int blocks_per_tile_x_row = WARP_SIZE / QI4_1; - const int kbxd = k % blocks_per_tile_x_row; - -#pragma unroll - for (int i0 = 0; i0 < mmq_y; i0 += nwarps * QI4_1) { - int i = i0 + i_offset * QI4_1 + k / blocks_per_tile_x_row; - - if (need_check) { - i = min(i, i_max); - } - - const block_q4_1 * bxi = bx0 + i*blocks_per_row + kbxd; - - x_dm[i * (WARP_SIZE/QI4_1) + i / QI4_1 + kbxd] = bxi->dm; - } -} - -static __device__ __forceinline__ float vec_dot_q4_1_q8_1_mul_mat( - const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc, - const int * __restrict__ y_qs, const half2 * __restrict__ y_ds, const int & i, const int & j, const int & k) { - GGML_UNUSED(x_qh); GGML_UNUSED(x_sc); - - const int kyqs = k % (QI8_1/2) + QI8_1 * (k / (QI8_1/2)); - - int u[2*VDR_Q4_1_Q8_1_MMQ]; - -#pragma unroll - for (int l = 0; l < VDR_Q4_1_Q8_1_MMQ; ++l) { - u[2*l+0] = y_qs[j * WARP_SIZE + (kyqs + l) % WARP_SIZE]; - u[2*l+1] = y_qs[j * WARP_SIZE + (kyqs + l + QI4_1) % WARP_SIZE]; - } - - return vec_dot_q4_1_q8_1_impl - (&x_ql[i * (WARP_SIZE + 1) + k], u, x_dm[i * (WARP_SIZE/QI4_1) + i/QI4_1 + k/QI4_1], - y_ds[j * (WARP_SIZE/QI8_1) + (2*k/QI8_1) % (WARP_SIZE/QI8_1)]); -} - -template static __device__ __forceinline__ void allocate_tiles_q5_0(int ** x_ql, half2 ** x_dm, int ** x_qh, int ** x_sc) { - GGML_UNUSED(x_qh); GGML_UNUSED(x_sc); - - __shared__ int tile_x_ql[mmq_y * (2*WARP_SIZE) + mmq_y]; - __shared__ float tile_x_d[mmq_y * (WARP_SIZE/QI5_0) + mmq_y/QI5_0]; - - *x_ql = tile_x_ql; - *x_dm = (half2 *) tile_x_d; -} - -template static __device__ __forceinline__ void load_tiles_q5_0( - const void * __restrict__ vx, int * __restrict__ x_ql, half2 * __restrict__ x_dm, int * __restrict__ x_qh, - int * __restrict__ x_sc, const int & i_offset, const int & i_max, const int & k, const int & blocks_per_row) { - GGML_UNUSED(x_qh); GGML_UNUSED(x_sc); - - GGML_CUDA_ASSUME(i_offset >= 0); - GGML_CUDA_ASSUME(i_offset < nwarps); - GGML_CUDA_ASSUME(k >= 0); - GGML_CUDA_ASSUME(k < WARP_SIZE); - - const int kbx = k / QI5_0; - const int kqsx = k % QI5_0; - - const block_q5_0 * bx0 = (const block_q5_0 *) vx; - -#pragma unroll - for (int i0 = 0; i0 < mmq_y; i0 += nwarps) { - int i = i0 + i_offset; - - if (need_check) { - i = min(i, i_max); - } - - const block_q5_0 * bxi = bx0 + i*blocks_per_row + kbx; - - const int ql = get_int_from_uint8(bxi->qs, kqsx); - const int qh = get_int_from_uint8(bxi->qh, 0) >> (4 * (k % QI5_0)); - - int qs0 = (ql >> 0) & 0x0F0F0F0F; - qs0 |= (qh << 4) & 0x00000010; // 0 -> 4 - qs0 |= (qh << 11) & 0x00001000; // 1 -> 12 - qs0 |= (qh << 18) & 0x00100000; // 2 -> 20 - qs0 |= (qh << 25) & 0x10000000; // 3 -> 28 - qs0 = __vsubss4(qs0, 0x10101010); // subtract 16 - - x_ql[i * (2*WARP_SIZE + 1) + 2*k+0] = qs0; - - int qs1 = (ql >> 4) & 0x0F0F0F0F; - qs1 |= (qh >> 12) & 0x00000010; // 16 -> 4 - qs1 |= (qh >> 5) & 0x00001000; // 17 -> 12 - qs1 |= (qh << 2) & 0x00100000; // 18 -> 20 - qs1 |= (qh << 9) & 0x10000000; // 19 -> 28 - qs1 = __vsubss4(qs1, 0x10101010); // subtract 16 - - x_ql[i * (2*WARP_SIZE + 1) + 2*k+1] = qs1; - } - - const int blocks_per_tile_x_row = WARP_SIZE / QI5_0; - const int kbxd = k % blocks_per_tile_x_row; - float * x_dmf = (float *) x_dm; - -#pragma unroll - for (int i0 = 0; i0 < mmq_y; i0 += nwarps * QI5_0) { - int i = i0 + i_offset * QI5_0 + k / blocks_per_tile_x_row; - - if (need_check) { - i = min(i, i_max); - } - - const block_q5_0 * bxi = bx0 + i*blocks_per_row + kbxd; - - x_dmf[i * (WARP_SIZE/QI5_0) + i / QI5_0 + kbxd] = bxi->d; - } -} - -static __device__ __forceinline__ float vec_dot_q5_0_q8_1_mul_mat( - const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc, - const int * __restrict__ y_qs, const half2 * __restrict__ y_ds, const int & i, const int & j, const int & k) { - GGML_UNUSED(x_qh); GGML_UNUSED(x_sc); - - const int kyqs = k % (QI8_1/2) + QI8_1 * (k / (QI8_1/2)); - const int index_bx = i * (WARP_SIZE/QI5_0) + i/QI5_0 + k/QI5_0; - const float * x_dmf = (const float *) x_dm; - const float * y_df = (const float *) y_ds; - - int u[2*VDR_Q5_0_Q8_1_MMQ]; - -#pragma unroll - for (int l = 0; l < VDR_Q5_0_Q8_1_MMQ; ++l) { - u[2*l+0] = y_qs[j * WARP_SIZE + (kyqs + l) % WARP_SIZE]; - u[2*l+1] = y_qs[j * WARP_SIZE + (kyqs + l + QI5_0) % WARP_SIZE]; - } - - return vec_dot_q8_0_q8_1_impl - (&x_ql[i * (2*WARP_SIZE + 1) + 2 * k], u, x_dmf[index_bx], y_df[j * (WARP_SIZE/QI8_1) + (2*k/QI8_1) % (WARP_SIZE/QI8_1)]); -} - - -template static __device__ __forceinline__ void allocate_tiles_q5_1(int ** x_ql, half2 ** x_dm, int ** x_qh, int ** x_sc) { - GGML_UNUSED(x_qh); GGML_UNUSED(x_sc); - - __shared__ int tile_x_ql[mmq_y * (2*WARP_SIZE) + mmq_y]; - __shared__ half2 tile_x_dm[mmq_y * (WARP_SIZE/QI5_1) + mmq_y/QI5_1]; - - *x_ql = tile_x_ql; - *x_dm = tile_x_dm; -} - -template static __device__ __forceinline__ void load_tiles_q5_1( - const void * __restrict__ vx, int * __restrict__ x_ql, half2 * __restrict__ x_dm, int * __restrict__ x_qh, - int * __restrict__ x_sc, const int & i_offset, const int & i_max, const int & k, const int & blocks_per_row) { - GGML_UNUSED(x_qh); GGML_UNUSED(x_sc); - - GGML_CUDA_ASSUME(i_offset >= 0); - GGML_CUDA_ASSUME(i_offset < nwarps); - GGML_CUDA_ASSUME(k >= 0); - GGML_CUDA_ASSUME(k < WARP_SIZE); - - const int kbx = k / QI5_1; - const int kqsx = k % QI5_1; - - const block_q5_1 * bx0 = (const block_q5_1 *) vx; - -#pragma unroll - for (int i0 = 0; i0 < mmq_y; i0 += nwarps) { - int i = i0 + i_offset; - - if (need_check) { - i = min(i, i_max); - } - - const block_q5_1 * bxi = bx0 + i*blocks_per_row + kbx; - - const int ql = get_int_from_uint8_aligned(bxi->qs, kqsx); - const int qh = get_int_from_uint8_aligned(bxi->qh, 0) >> (4 * (k % QI5_1)); - - int qs0 = (ql >> 0) & 0x0F0F0F0F; - qs0 |= (qh << 4) & 0x00000010; // 0 -> 4 - qs0 |= (qh << 11) & 0x00001000; // 1 -> 12 - qs0 |= (qh << 18) & 0x00100000; // 2 -> 20 - qs0 |= (qh << 25) & 0x10000000; // 3 -> 28 - - x_ql[i * (2*WARP_SIZE + 1) + 2*k+0] = qs0; - - int qs1 = (ql >> 4) & 0x0F0F0F0F; - qs1 |= (qh >> 12) & 0x00000010; // 16 -> 4 - qs1 |= (qh >> 5) & 0x00001000; // 17 -> 12 - qs1 |= (qh << 2) & 0x00100000; // 18 -> 20 - qs1 |= (qh << 9) & 0x10000000; // 19 -> 28 - - x_ql[i * (2*WARP_SIZE + 1) + 2*k+1] = qs1; - } - - const int blocks_per_tile_x_row = WARP_SIZE / QI5_1; - const int kbxd = k % blocks_per_tile_x_row; - -#pragma unroll - for (int i0 = 0; i0 < mmq_y; i0 += nwarps * QI5_1) { - int i = i0 + i_offset * QI5_1 + k / blocks_per_tile_x_row; - - if (need_check) { - i = min(i, i_max); - } - - const block_q5_1 * bxi = bx0 + i*blocks_per_row + kbxd; - - x_dm[i * (WARP_SIZE/QI5_1) + i / QI5_1 + kbxd] = bxi->dm; - } -} - -static __device__ __forceinline__ float vec_dot_q5_1_q8_1_mul_mat( - const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc, - const int * __restrict__ y_qs, const half2 * __restrict__ y_ds, const int & i, const int & j, const int & k) { - GGML_UNUSED(x_qh); GGML_UNUSED(x_sc); - - const int kyqs = k % (QI8_1/2) + QI8_1 * (k / (QI8_1/2)); - const int index_bx = i * (WARP_SIZE/QI5_1) + + i/QI5_1 + k/QI5_1; - - int u[2*VDR_Q5_1_Q8_1_MMQ]; - -#pragma unroll - for (int l = 0; l < VDR_Q5_1_Q8_1_MMQ; ++l) { - u[2*l+0] = y_qs[j * WARP_SIZE + (kyqs + l) % WARP_SIZE]; - u[2*l+1] = y_qs[j * WARP_SIZE + (kyqs + l + QI5_1) % WARP_SIZE]; - } - - return vec_dot_q8_1_q8_1_impl - (&x_ql[i * (2*WARP_SIZE + 1) + 2 * k], u, x_dm[index_bx], y_ds[j * (WARP_SIZE/QI8_1) + (2*k/QI8_1) % (WARP_SIZE/QI8_1)]); -} - -template static __device__ __forceinline__ void allocate_tiles_q8_0(int ** x_ql, half2 ** x_dm, int ** x_qh, int ** x_sc) { - GGML_UNUSED(x_qh); GGML_UNUSED(x_sc); - - __shared__ int tile_x_qs[mmq_y * (WARP_SIZE) + mmq_y]; - __shared__ float tile_x_d[mmq_y * (WARP_SIZE/QI8_0) + mmq_y/QI8_0]; - - *x_ql = tile_x_qs; - *x_dm = (half2 *) tile_x_d; -} - -template static __device__ __forceinline__ void load_tiles_q8_0( - const void * __restrict__ vx, int * __restrict__ x_ql, half2 * __restrict__ x_dm, int * __restrict__ x_qh, - int * __restrict__ x_sc, const int & i_offset, const int & i_max, const int & k, const int & blocks_per_row) { - GGML_UNUSED(x_qh); GGML_UNUSED(x_sc); - - GGML_CUDA_ASSUME(i_offset >= 0); - GGML_CUDA_ASSUME(i_offset < nwarps); - GGML_CUDA_ASSUME(k >= 0); - GGML_CUDA_ASSUME(k < WARP_SIZE); - - const int kbx = k / QI8_0; - const int kqsx = k % QI8_0; - float * x_dmf = (float *) x_dm; - - const block_q8_0 * bx0 = (const block_q8_0 *) vx; - -#pragma unroll - for (int i0 = 0; i0 < mmq_y; i0 += nwarps) { - int i = i0 + i_offset; - - if (need_check) { - i = min(i, i_max); - } - - const block_q8_0 * bxi = bx0 + i*blocks_per_row + kbx; - - x_ql[i * (WARP_SIZE + 1) + k] = get_int_from_int8(bxi->qs, kqsx); - } - - const int blocks_per_tile_x_row = WARP_SIZE / QI8_0; - const int kbxd = k % blocks_per_tile_x_row; - -#pragma unroll - for (int i0 = 0; i0 < mmq_y; i0 += nwarps * QI8_0) { - int i = i0 + i_offset * QI8_0 + k / blocks_per_tile_x_row; - - if (need_check) { - i = min(i, i_max); - } - - const block_q8_0 * bxi = bx0 + i*blocks_per_row + kbxd; - - x_dmf[i * (WARP_SIZE/QI8_0) + i / QI8_0 + kbxd] = bxi->d; - } -} - -static __device__ __forceinline__ float vec_dot_q8_0_q8_1_mul_mat( - const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc, - const int * __restrict__ y_qs, const half2 * __restrict__ y_ds, const int & i, const int & j, const int & k) { - GGML_UNUSED(x_qh); GGML_UNUSED(x_sc); - - const float * x_dmf = (const float *) x_dm; - const float * y_df = (const float *) y_ds; - - return vec_dot_q8_0_q8_1_impl - (&x_ql[i * (WARP_SIZE + 1) + k], &y_qs[j * WARP_SIZE + k], x_dmf[i * (WARP_SIZE/QI8_0) + i/QI8_0 + k/QI8_0], - y_df[j * (WARP_SIZE/QI8_1) + k/QI8_1]); -} - -template static __device__ __forceinline__ void allocate_tiles_q2_K(int ** x_ql, half2 ** x_dm, int ** x_qh, int ** x_sc) { - GGML_UNUSED(x_qh); - - __shared__ int tile_x_ql[mmq_y * (WARP_SIZE) + mmq_y]; - __shared__ half2 tile_x_dm[mmq_y * (WARP_SIZE/QI2_K) + mmq_y/QI2_K]; - __shared__ int tile_x_sc[mmq_y * (WARP_SIZE/4) + mmq_y/4]; - - *x_ql = tile_x_ql; - *x_dm = tile_x_dm; - *x_sc = tile_x_sc; -} - -template static __device__ __forceinline__ void load_tiles_q2_K( - const void * __restrict__ vx, int * __restrict__ x_ql, half2 * __restrict__ x_dm, int * __restrict__ x_qh, - int * __restrict__ x_sc, const int & i_offset, const int & i_max, const int & k, const int & blocks_per_row) { - GGML_UNUSED(x_qh); - - GGML_CUDA_ASSUME(i_offset >= 0); - GGML_CUDA_ASSUME(i_offset < nwarps); - GGML_CUDA_ASSUME(k >= 0); - GGML_CUDA_ASSUME(k < WARP_SIZE); - - const int kbx = k / QI2_K; - const int kqsx = k % QI2_K; - - const block_q2_K * bx0 = (const block_q2_K *) vx; - -#pragma unroll - for (int i0 = 0; i0 < mmq_y; i0 += nwarps) { - int i = i0 + i_offset; - - if (need_check) { - i = min(i, i_max); - } - - const block_q2_K * bxi = bx0 + i*blocks_per_row + kbx; - - x_ql[i * (WARP_SIZE + 1) + k] = get_int_from_uint8_aligned(bxi->qs, kqsx); - } - - const int blocks_per_tile_x_row = WARP_SIZE / QI2_K; - const int kbxd = k % blocks_per_tile_x_row; - -#pragma unroll - for (int i0 = 0; i0 < mmq_y; i0 += nwarps * QI2_K) { - int i = (i0 + i_offset * QI2_K + k / blocks_per_tile_x_row) % mmq_y; - - if (need_check) { - i = min(i, i_max); - } - - const block_q2_K * bxi = bx0 + i*blocks_per_row + kbxd; - - x_dm[i * (WARP_SIZE/QI2_K) + i / QI2_K + kbxd] = bxi->dm; - } - -#pragma unroll - for (int i0 = 0; i0 < mmq_y; i0 += nwarps * 4) { - int i = i0 + i_offset * 4 + k / (WARP_SIZE/4); - - if (need_check) { - i = min(i, i_max); - } - - const block_q2_K * bxi = bx0 + i*blocks_per_row + (k % (WARP_SIZE/4)) / (QI2_K/4); - - x_sc[i * (WARP_SIZE/4) + i / 4 + k % (WARP_SIZE/4)] = get_int_from_uint8_aligned(bxi->scales, k % (QI2_K/4)); - } -} - -static __device__ __forceinline__ float vec_dot_q2_K_q8_1_mul_mat( - const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc, - const int * __restrict__ y_qs, const half2 * __restrict__ y_ds, const int & i, const int & j, const int & k) { - GGML_UNUSED(x_qh); - - const int kbx = k / QI2_K; - const int ky = (k % QI2_K) * QR2_K; - const float * y_df = (const float *) y_ds; - - int v[QR2_K*VDR_Q2_K_Q8_1_MMQ]; - - const int kqsx = i * (WARP_SIZE + 1) + kbx*QI2_K + (QI2_K/2) * (ky/(2*QI2_K)) + ky % (QI2_K/2); - const int shift = 2 * ((ky % (2*QI2_K)) / (QI2_K/2)); - -#pragma unroll - for (int l = 0; l < QR2_K*VDR_Q2_K_Q8_1_MMQ; ++l) { - v[l] = (x_ql[kqsx + l] >> shift) & 0x03030303; - } - - const uint8_t * scales = ((const uint8_t *) &x_sc[i * (WARP_SIZE/4) + i/4 + kbx*4]) + ky/4; - - const int index_y = j * WARP_SIZE + (QR2_K*k) % WARP_SIZE; - return vec_dot_q2_K_q8_1_impl_mmq(v, &y_qs[index_y], scales, x_dm[i * (WARP_SIZE/QI2_K) + i/QI2_K + kbx], y_df[index_y/QI8_1]); -} - -template static __device__ __forceinline__ void allocate_tiles_q3_K(int ** x_ql, half2 ** x_dm, int ** x_qh, int ** x_sc) { - - __shared__ int tile_x_ql[mmq_y * (WARP_SIZE) + mmq_y]; - __shared__ half2 tile_x_dm[mmq_y * (WARP_SIZE/QI3_K) + mmq_y/QI3_K]; - __shared__ int tile_x_qh[mmq_y * (WARP_SIZE/2) + mmq_y/2]; - __shared__ int tile_x_sc[mmq_y * (WARP_SIZE/4) + mmq_y/4]; - - *x_ql = tile_x_ql; - *x_dm = tile_x_dm; - *x_qh = tile_x_qh; - *x_sc = tile_x_sc; -} - -template static __device__ __forceinline__ void load_tiles_q3_K( - const void * __restrict__ vx, int * __restrict__ x_ql, half2 * __restrict__ x_dm, int * __restrict__ x_qh, - int * __restrict__ x_sc, const int & i_offset, const int & i_max, const int & k, const int & blocks_per_row) { - - GGML_CUDA_ASSUME(i_offset >= 0); - GGML_CUDA_ASSUME(i_offset < nwarps); - GGML_CUDA_ASSUME(k >= 0); - GGML_CUDA_ASSUME(k < WARP_SIZE); - - const int kbx = k / QI3_K; - const int kqsx = k % QI3_K; - - const block_q3_K * bx0 = (const block_q3_K *) vx; - -#pragma unroll - for (int i0 = 0; i0 < mmq_y; i0 += nwarps) { - int i = i0 + i_offset; - - if (need_check) { - i = min(i, i_max); - } - - const block_q3_K * bxi = bx0 + i*blocks_per_row + kbx; - - x_ql[i * (WARP_SIZE + 1) + k] = get_int_from_uint8(bxi->qs, kqsx); - } - - const int blocks_per_tile_x_row = WARP_SIZE / QI3_K; - const int kbxd = k % blocks_per_tile_x_row; - float * x_dmf = (float *) x_dm; - -#pragma unroll - for (int i0 = 0; i0 < mmq_y; i0 += nwarps * QI3_K) { - int i = (i0 + i_offset * QI3_K + k / blocks_per_tile_x_row) % mmq_y; - - if (need_check) { - i = min(i, i_max); - } - - const block_q3_K * bxi = bx0 + i*blocks_per_row + kbxd; - - x_dmf[i * (WARP_SIZE/QI3_K) + i / QI3_K + kbxd] = bxi->d; - } - -#pragma unroll - for (int i0 = 0; i0 < mmq_y; i0 += nwarps * 2) { - int i = i0 + i_offset * 2 + k / (WARP_SIZE/2); - - if (need_check) { - i = min(i, i_max); - } - - const block_q3_K * bxi = bx0 + i*blocks_per_row + (k % (WARP_SIZE/2)) / (QI3_K/2); - - // invert the mask with ~ so that a 0/1 results in 4/0 being subtracted - x_qh[i * (WARP_SIZE/2) + i / 2 + k % (WARP_SIZE/2)] = ~get_int_from_uint8(bxi->hmask, k % (QI3_K/2)); - } - -#pragma unroll - for (int i0 = 0; i0 < mmq_y; i0 += nwarps * 4) { - int i = i0 + i_offset * 4 + k / (WARP_SIZE/4); - - if (need_check) { - i = min(i, i_max); - } - - const block_q3_K * bxi = bx0 + i*blocks_per_row + (k % (WARP_SIZE/4)) / (QI3_K/4); - - const int ksc = k % (QI3_K/4); - - const int ksc_low = ksc % (QI3_K/8); - const int shift_low = 4 * (ksc / (QI3_K/8)); - const int sc_low = (get_int_from_uint8(bxi->scales, ksc_low) >> shift_low) & 0x0F0F0F0F; - - const int ksc_high = QI3_K/8; - const int shift_high = 2 * ksc; - const int sc_high = ((get_int_from_uint8(bxi->scales, ksc_high) >> shift_high) << 4) & 0x30303030; - - const int sc = __vsubss4(sc_low | sc_high, 0x20202020); - - x_sc[i * (WARP_SIZE/4) + i / 4 + k % (WARP_SIZE/4)] = sc; - } -} - -static __device__ __forceinline__ float vec_dot_q3_K_q8_1_mul_mat( - const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc, - const int * __restrict__ y_qs, const half2 * __restrict__ y_ds, const int & i, const int & j, const int & k) { - - const int kbx = k / QI3_K; - const int ky = (k % QI3_K) * QR3_K; - const float * x_dmf = (const float *) x_dm; - const float * y_df = (const float *) y_ds; - - const int8_t * scales = ((const int8_t *) (x_sc + i * (WARP_SIZE/4) + i/4 + kbx*4)) + ky/4; - - int v[QR3_K*VDR_Q3_K_Q8_1_MMQ]; - -#pragma unroll - for (int l = 0; l < QR3_K*VDR_Q3_K_Q8_1_MMQ; ++l) { - const int kqsx = i * (WARP_SIZE + 1) + kbx*QI3_K + (QI3_K/2) * (ky/(2*QI3_K)) + ky % (QI3_K/2); - const int shift = 2 * ((ky % 32) / 8); - const int vll = (x_ql[kqsx + l] >> shift) & 0x03030303; - - const int vh = x_qh[i * (WARP_SIZE/2) + i/2 + kbx * (QI3_K/2) + (ky+l)%8] >> ((ky+l) / 8); - const int vlh = (vh << 2) & 0x04040404; - - v[l] = __vsubss4(vll, vlh); - } - - const int index_y = j * WARP_SIZE + (k*QR3_K) % WARP_SIZE; - return vec_dot_q3_K_q8_1_impl_mmq(v, &y_qs[index_y], scales, x_dmf[i * (WARP_SIZE/QI3_K) + i/QI3_K + kbx], y_df[index_y/QI8_1]); -} - -template static __device__ __forceinline__ void allocate_tiles_q4_K(int ** x_ql, half2 ** x_dm, int ** x_qh, int ** x_sc) { - GGML_UNUSED(x_qh); - - __shared__ int tile_x_ql[mmq_y * (WARP_SIZE) + mmq_y]; - __shared__ half2 tile_x_dm[mmq_y * (WARP_SIZE/QI4_K) + mmq_y/QI4_K]; - __shared__ int tile_x_sc[mmq_y * (WARP_SIZE/8) + mmq_y/8]; - - *x_ql = tile_x_ql; - *x_dm = tile_x_dm; - *x_sc = tile_x_sc; -} - -template static __device__ __forceinline__ void load_tiles_q4_K( - const void * __restrict__ vx, int * __restrict__ x_ql, half2 * __restrict__ x_dm, int * __restrict__ x_qh, - int * __restrict__ x_sc, const int & i_offset, const int & i_max, const int & k, const int & blocks_per_row) { - GGML_UNUSED(x_qh); - - GGML_CUDA_ASSUME(i_offset >= 0); - GGML_CUDA_ASSUME(i_offset < nwarps); - GGML_CUDA_ASSUME(k >= 0); - GGML_CUDA_ASSUME(k < WARP_SIZE); - - const int kbx = k / QI4_K; // == 0 if QK_K == 256 - const int kqsx = k % QI4_K; // == k if QK_K == 256 - - const block_q4_K * bx0 = (const block_q4_K *) vx; - -#pragma unroll - for (int i0 = 0; i0 < mmq_y; i0 += nwarps) { - int i = i0 + i_offset; - - if (need_check) { - i = min(i, i_max); - } - - const block_q4_K * bxi = bx0 + i*blocks_per_row + kbx; - - x_ql[i * (WARP_SIZE + 1) + k] = get_int_from_uint8_aligned(bxi->qs, kqsx); - } - - const int blocks_per_tile_x_row = WARP_SIZE / QI4_K; // == 1 if QK_K == 256 - const int kbxd = k % blocks_per_tile_x_row; // == 0 if QK_K == 256 - -#pragma unroll - for (int i0 = 0; i0 < mmq_y; i0 += nwarps * QI4_K) { - int i = (i0 + i_offset * QI4_K + k / blocks_per_tile_x_row) % mmq_y; - - if (need_check) { - i = min(i, i_max); - } - - const block_q4_K * bxi = bx0 + i*blocks_per_row + kbxd; - - x_dm[i * (WARP_SIZE/QI4_K) + i / QI4_K + kbxd] = bxi->dm; - } - -#pragma unroll - for (int i0 = 0; i0 < mmq_y; i0 += nwarps * 8) { - int i = (i0 + i_offset * 8 + k / (WARP_SIZE/8)) % mmq_y; - - if (need_check) { - i = min(i, i_max); - } - - const block_q4_K * bxi = bx0 + i*blocks_per_row + (k % (WARP_SIZE/8)) / (QI4_K/8); - - const int * scales = (const int *) bxi->scales; - - const int ksc = k % (WARP_SIZE/8); - - // scale arrangement after the following two lines: sc0,...,sc3, sc4,...,sc7, m0,...,m3, m4,...,m8 - int scales8 = (scales[(ksc%2) + (ksc!=0)] >> (4 * (ksc & (ksc/2)))) & 0x0F0F0F0F; // lower 4 bits - scales8 |= (scales[ksc/2] >> (2 * (ksc % 2))) & 0x30303030; // upper 2 bits - - x_sc[i * (WARP_SIZE/8) + i / 8 + ksc] = scales8; - } -} - -static __device__ __forceinline__ float vec_dot_q4_K_q8_1_mul_mat( - const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc, - const int * __restrict__ y_qs, const half2 * __restrict__ y_ds, const int & i, const int & j, const int & k) { - GGML_UNUSED(x_qh); - - const uint8_t * sc = ((const uint8_t *) &x_sc[i * (WARP_SIZE/8) + i/8 + k/16]) + 2*((k % 16) / 8); - - const int index_y = j * WARP_SIZE + (QR4_K*k) % WARP_SIZE; - return vec_dot_q4_K_q8_1_impl_mmq(&x_ql[i * (WARP_SIZE + 1) + k], &y_qs[index_y], sc, sc+8, - x_dm[i * (WARP_SIZE/QI4_K) + i/QI4_K], &y_ds[index_y/QI8_1]); -} - -template static __device__ __forceinline__ void allocate_tiles_q5_K(int ** x_ql, half2 ** x_dm, int ** x_qh, int ** x_sc) { - GGML_UNUSED(x_qh); - - __shared__ int tile_x_ql[mmq_y * (2*WARP_SIZE) + mmq_y]; - __shared__ half2 tile_x_dm[mmq_y * (WARP_SIZE/QI5_K) + mmq_y/QI5_K]; - __shared__ int tile_x_sc[mmq_y * (WARP_SIZE/8) + mmq_y/8]; - - *x_ql = tile_x_ql; - *x_dm = tile_x_dm; - *x_sc = tile_x_sc; -} - -template static __device__ __forceinline__ void load_tiles_q5_K( - const void * __restrict__ vx, int * __restrict__ x_ql, half2 * __restrict__ x_dm, int * __restrict__ x_qh, - int * __restrict__ x_sc, const int & i_offset, const int & i_max, const int & k, const int & blocks_per_row) { - GGML_UNUSED(x_qh); - - GGML_CUDA_ASSUME(i_offset >= 0); - GGML_CUDA_ASSUME(i_offset < nwarps); - GGML_CUDA_ASSUME(k >= 0); - GGML_CUDA_ASSUME(k < WARP_SIZE); - - const int kbx = k / QI5_K; // == 0 if QK_K == 256 - const int kqsx = k % QI5_K; // == k if QK_K == 256 - - const block_q5_K * bx0 = (const block_q5_K *) vx; - -#pragma unroll - for (int i0 = 0; i0 < mmq_y; i0 += nwarps) { - int i = i0 + i_offset; - - if (need_check) { - i = min(i, i_max); - } - - const block_q5_K * bxi = bx0 + i*blocks_per_row + kbx; - const int ky = QR5_K*kqsx; - - const int ql = get_int_from_uint8_aligned(bxi->qs, kqsx); - const int ql0 = (ql >> 0) & 0x0F0F0F0F; - const int ql1 = (ql >> 4) & 0x0F0F0F0F; - - const int qh = get_int_from_uint8_aligned(bxi->qh, kqsx % (QI5_K/4)); - const int qh0 = ((qh >> (2 * (kqsx / (QI5_K/4)) + 0)) << 4) & 0x10101010; - const int qh1 = ((qh >> (2 * (kqsx / (QI5_K/4)) + 1)) << 4) & 0x10101010; - - const int kq0 = ky - ky % (QI5_K/2) + k % (QI5_K/4) + 0; - const int kq1 = ky - ky % (QI5_K/2) + k % (QI5_K/4) + (QI5_K/4); - - x_ql[i * (2*WARP_SIZE + 1) + kq0] = ql0 | qh0; - x_ql[i * (2*WARP_SIZE + 1) + kq1] = ql1 | qh1; - } - - const int blocks_per_tile_x_row = WARP_SIZE / QI5_K; // == 1 if QK_K == 256 - const int kbxd = k % blocks_per_tile_x_row; // == 0 if QK_K == 256 - -#pragma unroll - for (int i0 = 0; i0 < mmq_y; i0 += nwarps * QI5_K) { - int i = (i0 + i_offset * QI5_K + k / blocks_per_tile_x_row) % mmq_y; - - if (need_check) { - i = min(i, i_max); - } - - const block_q5_K * bxi = bx0 + i*blocks_per_row + kbxd; - - x_dm[i * (WARP_SIZE/QI5_K) + i / QI5_K + kbxd] = bxi->dm; - } - -#pragma unroll - for (int i0 = 0; i0 < mmq_y; i0 += nwarps * 8) { - int i = (i0 + i_offset * 8 + k / (WARP_SIZE/8)) % mmq_y; - - if (need_check) { - i = min(i, i_max); - } - - const block_q5_K * bxi = bx0 + i*blocks_per_row + (k % (WARP_SIZE/8)) / (QI5_K/8); - - const int * scales = (const int *) bxi->scales; - - const int ksc = k % (WARP_SIZE/8); - - // scale arrangement after the following two lines: sc0,...,sc3, sc4,...,sc7, m0,...,m3, m4,...,m8 - int scales8 = (scales[(ksc%2) + (ksc!=0)] >> (4 * (ksc & (ksc/2)))) & 0x0F0F0F0F; // lower 4 bits - scales8 |= (scales[ksc/2] >> (2 * (ksc % 2))) & 0x30303030; // upper 2 bits - - x_sc[i * (WARP_SIZE/8) + i / 8 + ksc] = scales8; - } -} - -static __device__ __forceinline__ float vec_dot_q5_K_q8_1_mul_mat( - const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc, - const int * __restrict__ y_qs, const half2 * __restrict__ y_ds, const int & i, const int & j, const int & k) { - GGML_UNUSED(x_qh); - - const uint8_t * sc = ((const uint8_t *) &x_sc[i * (WARP_SIZE/8) + i/8 + k/16]) + 2 * ((k % 16) / 8); - - const int index_x = i * (QR5_K*WARP_SIZE + 1) + QR5_K*k; - const int index_y = j * WARP_SIZE + (QR5_K*k) % WARP_SIZE; - return vec_dot_q5_K_q8_1_impl_mmq(&x_ql[index_x], &y_qs[index_y], sc, sc+8, - x_dm[i * (WARP_SIZE/QI5_K) + i/QI5_K], &y_ds[index_y/QI8_1]); -} - -template static __device__ __forceinline__ void allocate_tiles_q6_K(int ** x_ql, half2 ** x_dm, int ** x_qh, int ** x_sc) { - GGML_UNUSED(x_qh); - - __shared__ int tile_x_ql[mmq_y * (2*WARP_SIZE) + mmq_y]; - __shared__ half2 tile_x_dm[mmq_y * (WARP_SIZE/QI6_K) + mmq_y/QI6_K]; - __shared__ int tile_x_sc[mmq_y * (WARP_SIZE/8) + mmq_y/8]; - - *x_ql = tile_x_ql; - *x_dm = tile_x_dm; - *x_sc = tile_x_sc; -} - -template static __device__ __forceinline__ void load_tiles_q6_K( - const void * __restrict__ vx, int * __restrict__ x_ql, half2 * __restrict__ x_dm, int * __restrict__ x_qh, - int * __restrict__ x_sc, const int & i_offset, const int & i_max, const int & k, const int & blocks_per_row) { - GGML_UNUSED(x_qh); - - GGML_CUDA_ASSUME(i_offset >= 0); - GGML_CUDA_ASSUME(i_offset < nwarps); - GGML_CUDA_ASSUME(k >= 0); - GGML_CUDA_ASSUME(k < WARP_SIZE); - - const int kbx = k / QI6_K; // == 0 if QK_K == 256 - const int kqsx = k % QI6_K; // == k if QK_K == 256 - - const block_q6_K * bx0 = (const block_q6_K *) vx; - -#pragma unroll - for (int i0 = 0; i0 < mmq_y; i0 += nwarps) { - int i = i0 + i_offset; - - if (need_check) { - i = min(i, i_max); - } - - const block_q6_K * bxi = bx0 + i*blocks_per_row + kbx; - const int ky = QR6_K*kqsx; - - const int ql = get_int_from_uint8(bxi->ql, kqsx); - const int ql0 = (ql >> 0) & 0x0F0F0F0F; - const int ql1 = (ql >> 4) & 0x0F0F0F0F; - - const int qh = get_int_from_uint8(bxi->qh, (QI6_K/4) * (kqsx / (QI6_K/2)) + kqsx % (QI6_K/4)); - const int qh0 = ((qh >> (2 * ((kqsx % (QI6_K/2)) / (QI6_K/4)))) << 4) & 0x30303030; - const int qh1 = (qh >> (2 * ((kqsx % (QI6_K/2)) / (QI6_K/4)))) & 0x30303030; - - const int kq0 = ky - ky % QI6_K + k % (QI6_K/2) + 0; - const int kq1 = ky - ky % QI6_K + k % (QI6_K/2) + (QI6_K/2); - - x_ql[i * (2*WARP_SIZE + 1) + kq0] = __vsubss4(ql0 | qh0, 0x20202020); - x_ql[i * (2*WARP_SIZE + 1) + kq1] = __vsubss4(ql1 | qh1, 0x20202020); - } - - const int blocks_per_tile_x_row = WARP_SIZE / QI6_K; // == 1 if QK_K == 256 - const int kbxd = k % blocks_per_tile_x_row; // == 0 if QK_K == 256 - float * x_dmf = (float *) x_dm; - -#pragma unroll - for (int i0 = 0; i0 < mmq_y; i0 += nwarps * QI6_K) { - int i = (i0 + i_offset * QI6_K + k / blocks_per_tile_x_row) % mmq_y; - - if (need_check) { - i = min(i, i_max); - } - - const block_q6_K * bxi = bx0 + i*blocks_per_row + kbxd; - - x_dmf[i * (WARP_SIZE/QI6_K) + i / QI6_K + kbxd] = bxi->d; - } - -#pragma unroll - for (int i0 = 0; i0 < mmq_y; i0 += nwarps * 8) { - int i = (i0 + i_offset * 8 + k / (WARP_SIZE/8)) % mmq_y; - - if (need_check) { - i = min(i, i_max); - } - - const block_q6_K * bxi = bx0 + i*blocks_per_row + (k % (WARP_SIZE/8)) / 4; - - x_sc[i * (WARP_SIZE/8) + i / 8 + k % (WARP_SIZE/8)] = get_int_from_int8(bxi->scales, k % (QI6_K/8)); - } -} - -static __device__ __forceinline__ float vec_dot_q6_K_q8_1_mul_mat( - const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc, - const int * __restrict__ y_qs, const half2 * __restrict__ y_ds, const int & i, const int & j, const int & k) { - GGML_UNUSED(x_qh); - - const float * x_dmf = (const float *) x_dm; - const float * y_df = (const float *) y_ds; - - const int8_t * sc = ((const int8_t *) &x_sc[i * (WARP_SIZE/8) + i/8 + k/8]); - - const int index_x = i * (QR6_K*WARP_SIZE + 1) + QR6_K*k; - const int index_y = j * WARP_SIZE + (QR6_K*k) % WARP_SIZE; - return vec_dot_q6_K_q8_1_impl_mmq(&x_ql[index_x], &y_qs[index_y], sc, x_dmf[i * (WARP_SIZE/QI6_K) + i/QI6_K], &y_df[index_y/QI8_1]); -} - -template -static __device__ __forceinline__ void mul_mat_q( - const void * __restrict__ vx, const void * __restrict__ vy, float * __restrict__ dst, - const int ncols_x, const int nrows_x, const int ncols_y, const int nrows_y, const int nrows_dst) { - - const block_q_t * x = (const block_q_t *) vx; - const block_q8_1 * y = (const block_q8_1 *) vy; - - const int blocks_per_row_x = ncols_x / qk; - const int blocks_per_col_y = nrows_y / QK8_1; - const int blocks_per_warp = WARP_SIZE / qi; - - const int & ncols_dst = ncols_y; - - const int row_dst_0 = blockIdx.x*mmq_y; - const int & row_x_0 = row_dst_0; - - const int col_dst_0 = blockIdx.y*mmq_x; - const int & col_y_0 = col_dst_0; - - int * tile_x_ql = nullptr; - half2 * tile_x_dm = nullptr; - int * tile_x_qh = nullptr; - int * tile_x_sc = nullptr; - - allocate_tiles(&tile_x_ql, &tile_x_dm, &tile_x_qh, &tile_x_sc); - - __shared__ int tile_y_qs[mmq_x * WARP_SIZE]; - __shared__ half2 tile_y_ds[mmq_x * WARP_SIZE/QI8_1]; - - float sum[mmq_y/WARP_SIZE][mmq_x/nwarps] = {{0.0f}}; - - for (int ib0 = 0; ib0 < blocks_per_row_x; ib0 += blocks_per_warp) { - - load_tiles(x + row_x_0*blocks_per_row_x + ib0, tile_x_ql, tile_x_dm, tile_x_qh, tile_x_sc, - threadIdx.y, nrows_x-row_x_0-1, threadIdx.x, blocks_per_row_x); - -#pragma unroll - for (int ir = 0; ir < qr; ++ir) { - const int kqs = ir*WARP_SIZE + threadIdx.x; - const int kbxd = kqs / QI8_1; - -#pragma unroll - for (int i = 0; i < mmq_x; i += nwarps) { - const int col_y_eff = min(col_y_0 + threadIdx.y + i, ncols_y-1); // to prevent out-of-bounds memory accesses - - const block_q8_1 * by0 = &y[col_y_eff*blocks_per_col_y + ib0 * (qk/QK8_1) + kbxd]; - - const int index_y = (threadIdx.y + i) * WARP_SIZE + kqs % WARP_SIZE; - tile_y_qs[index_y] = get_int_from_int8_aligned(by0->qs, threadIdx.x % QI8_1); - } - -#pragma unroll - for (int ids0 = 0; ids0 < mmq_x; ids0 += nwarps * QI8_1) { - const int ids = (ids0 + threadIdx.y * QI8_1 + threadIdx.x / (WARP_SIZE/QI8_1)) % mmq_x; - const int kby = threadIdx.x % (WARP_SIZE/QI8_1); - const int col_y_eff = min(col_y_0 + ids, ncols_y-1); - - // if the sum is not needed it's faster to transform the scale to f32 ahead of time - const half2 * dsi_src = &y[col_y_eff*blocks_per_col_y + ib0 * (qk/QK8_1) + ir*(WARP_SIZE/QI8_1) + kby].ds; - half2 * dsi_dst = &tile_y_ds[ids * (WARP_SIZE/QI8_1) + kby]; - if (need_sum) { - *dsi_dst = *dsi_src; - } else { - float * dfi_dst = (float *) dsi_dst; - *dfi_dst = __low2float(*dsi_src); - } - } - - __syncthreads(); - -// #pragma unroll // unrolling this loop causes too much register pressure - for (int k = ir*WARP_SIZE/qr; k < (ir+1)*WARP_SIZE/qr; k += vdr) { -#pragma unroll - for (int j = 0; j < mmq_x; j += nwarps) { -#pragma unroll - for (int i = 0; i < mmq_y; i += WARP_SIZE) { - sum[i/WARP_SIZE][j/nwarps] += vec_dot( - tile_x_ql, tile_x_dm, tile_x_qh, tile_x_sc, tile_y_qs, tile_y_ds, - threadIdx.x + i, threadIdx.y + j, k); - } - } - } - - __syncthreads(); - } - } - -#pragma unroll - for (int j = 0; j < mmq_x; j += nwarps) { - const int col_dst = col_dst_0 + j + threadIdx.y; - - if (col_dst >= ncols_dst) { - return; - } - -#pragma unroll - for (int i = 0; i < mmq_y; i += WARP_SIZE) { - const int row_dst = row_dst_0 + threadIdx.x + i; - - if (row_dst >= nrows_dst) { - continue; - } - - dst[col_dst*nrows_dst + row_dst] = sum[i/WARP_SIZE][j/nwarps]; - } - } -} - -static constexpr __device__ mmq_arch_config_t get_arch_config_device(mmq_config_t mmq_config) { - -#if defined(GGML_USE_HIPBLAS) && defined(__HIP_PLATFORM_AMD__) - -#if defined(RDNA3) || defined(RDNA2) - return mmq_config.rdna2; -#else - return mmq_config.rdna1; -#endif // defined(RDNA3) || defined(RDNA2) - -#else - -#if __CUDA_ARCH__ >= CC_VOLTA - return mmq_config.ampere; -#else - return mmq_config.pascal; -#endif // __CUDA_ARCH__ >= CC_VOLTA - -#endif // defined(GGML_USE_HIPBLAS) && defined(__HIP_PLATFORM_AMD__) -} - -template static __global__ void -#if defined(GGML_USE_HIPBLAS) && defined(__HIP_PLATFORM_AMD__) -#if defined(RDNA3) || defined(RDNA2) - __launch_bounds__(WARP_SIZE*MMQ_CONFIG_Q4_0.rdna2.nwarps, 2) -#endif // defined(RDNA3) || defined(RDNA2) -#endif // defined(GGML_USE_HIPBLAS) && defined(__HIP_PLATFORM_AMD__) - mul_mat_q4_0( - const void * __restrict__ vx, const void * __restrict__ vy, float * __restrict__ dst, - const int ncols_x, const int nrows_x, const int ncols_y, const int nrows_y, const int nrows_dst) { - -#if __CUDA_ARCH__ >= MIN_CC_DP4A - constexpr mmq_arch_config_t arch_config = get_arch_config_device(MMQ_CONFIG_Q4_0); - - mul_mat_q, - load_tiles_q4_0, VDR_Q4_0_Q8_1_MMQ, vec_dot_q4_0_q8_1_mul_mat> - (vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, nrows_dst); -#else - GGML_UNUSED(get_arch_config_device); - GGML_UNUSED(vec_dot_q4_0_q8_1_mul_mat); - NO_DEVICE_CODE; -#endif // __CUDA_ARCH__ >= MIN_CC_DP4A -} - -template static __global__ void -#if defined(GGML_USE_HIPBLAS) && defined(__HIP_PLATFORM_AMD__) -#if defined(RDNA3) || defined(RDNA2) - __launch_bounds__(WARP_SIZE*MMQ_CONFIG_Q4_1.rdna2.nwarps, 2) -#endif // defined(RDNA3) || defined(RDNA2) -#elif __CUDA_ARCH__ < CC_VOLTA - __launch_bounds__(WARP_SIZE*MMQ_CONFIG_Q4_1.pascal.nwarps, 2) -#endif // __CUDA_ARCH__ < CC_VOLTA - mul_mat_q4_1( - const void * __restrict__ vx, const void * __restrict__ vy, float * __restrict__ dst, - const int ncols_x, const int nrows_x, const int ncols_y, const int nrows_y, const int nrows_dst) { - -#if __CUDA_ARCH__ >= MIN_CC_DP4A - constexpr mmq_arch_config_t arch_config = get_arch_config_device(MMQ_CONFIG_Q4_1); - - mul_mat_q, - load_tiles_q4_1, VDR_Q4_1_Q8_1_MMQ, vec_dot_q4_1_q8_1_mul_mat> - (vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, nrows_dst); -#else - GGML_UNUSED(get_arch_config_device); - GGML_UNUSED(vec_dot_q4_1_q8_1_mul_mat); - NO_DEVICE_CODE; -#endif // __CUDA_ARCH__ >= MIN_CC_DP4A -} - -template static __global__ void -#if defined(GGML_USE_HIPBLAS) && defined(__HIP_PLATFORM_AMD__) -#if defined(RDNA3) || defined(RDNA2) - __launch_bounds__(WARP_SIZE*MMQ_CONFIG_Q5_0.rdna2.nwarps, 2) -#endif // defined(RDNA3) || defined(RDNA2) -#endif // defined(GGML_USE_HIPBLAS) && defined(__HIP_PLATFORM_AMD__) - mul_mat_q5_0( - const void * __restrict__ vx, const void * __restrict__ vy, float * __restrict__ dst, - const int ncols_x, const int nrows_x, const int ncols_y, const int nrows_y, const int nrows_dst) { - -#if __CUDA_ARCH__ >= MIN_CC_DP4A - constexpr mmq_arch_config_t arch_config = get_arch_config_device(MMQ_CONFIG_Q5_0); - - mul_mat_q, - load_tiles_q5_0, VDR_Q5_0_Q8_1_MMQ, vec_dot_q5_0_q8_1_mul_mat> - (vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, nrows_dst); -#else - GGML_UNUSED(get_arch_config_device); - GGML_UNUSED(vec_dot_q5_0_q8_1_mul_mat); - NO_DEVICE_CODE; -#endif // __CUDA_ARCH__ >= MIN_CC_DP4A -} - -template static __global__ void -#if defined(GGML_USE_HIPBLAS) && defined(__HIP_PLATFORM_AMD__) -#if defined(RDNA3) || defined(RDNA2) - __launch_bounds__(WARP_SIZE*MMQ_CONFIG_Q5_1.rdna2.nwarps, 2) -#endif // defined(RDNA3) || defined(RDNA2) -#endif // defined(GGML_USE_HIPBLAS) && defined(__HIP_PLATFORM_AMD__) -mul_mat_q5_1( - const void * __restrict__ vx, const void * __restrict__ vy, float * __restrict__ dst, - const int ncols_x, const int nrows_x, const int ncols_y, const int nrows_y, const int nrows_dst) { - -#if __CUDA_ARCH__ >= MIN_CC_DP4A - constexpr mmq_arch_config_t arch_config = get_arch_config_device(MMQ_CONFIG_Q5_1); - - mul_mat_q, - load_tiles_q5_1, VDR_Q5_1_Q8_1_MMQ, vec_dot_q5_1_q8_1_mul_mat> - (vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, nrows_dst); -#else - GGML_UNUSED(get_arch_config_device); - GGML_UNUSED(vec_dot_q5_1_q8_1_mul_mat); - NO_DEVICE_CODE; -#endif // __CUDA_ARCH__ >= MIN_CC_DP4A -} - -template static __global__ void -#if defined(GGML_USE_HIPBLAS) && defined(__HIP_PLATFORM_AMD__) -#if defined(RDNA3) || defined(RDNA2) - __launch_bounds__(WARP_SIZE*MMQ_CONFIG_Q8_0.rdna2.nwarps, 2) -#endif // defined(RDNA3) || defined(RDNA2) -#endif // defined(GGML_USE_HIPBLAS) && defined(__HIP_PLATFORM_AMD__) - mul_mat_q8_0( - const void * __restrict__ vx, const void * __restrict__ vy, float * __restrict__ dst, - const int ncols_x, const int nrows_x, const int ncols_y, const int nrows_y, const int nrows_dst) { - -#if __CUDA_ARCH__ >= MIN_CC_DP4A - constexpr mmq_arch_config_t arch_config = get_arch_config_device(MMQ_CONFIG_Q8_0); - - mul_mat_q, - load_tiles_q8_0, VDR_Q8_0_Q8_1_MMQ, vec_dot_q8_0_q8_1_mul_mat> - (vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, nrows_dst); -#else - GGML_UNUSED(get_arch_config_device); - GGML_UNUSED(vec_dot_q8_0_q8_1_mul_mat); - NO_DEVICE_CODE; -#endif // __CUDA_ARCH__ >= MIN_CC_DP4A -} - -template static __global__ void -#if defined(GGML_USE_HIPBLAS) && defined(__HIP_PLATFORM_AMD__) -#if defined(RDNA3) || defined(RDNA2) - __launch_bounds__(WARP_SIZE*MMQ_CONFIG_Q2_K.rdna2.nwarps, 2) -#endif // defined(RDNA3) || defined(RDNA2) -#endif // defined(GGML_USE_HIPBLAS) && defined(__HIP_PLATFORM_AMD__) -mul_mat_q2_K( - const void * __restrict__ vx, const void * __restrict__ vy, float * __restrict__ dst, - const int ncols_x, const int nrows_x, const int ncols_y, const int nrows_y, const int nrows_dst) { - -#if __CUDA_ARCH__ >= MIN_CC_DP4A - constexpr mmq_arch_config_t arch_config = get_arch_config_device(MMQ_CONFIG_Q2_K); - - mul_mat_q, - load_tiles_q2_K, VDR_Q2_K_Q8_1_MMQ, vec_dot_q2_K_q8_1_mul_mat> - (vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, nrows_dst); -#else - GGML_UNUSED(get_arch_config_device); - GGML_UNUSED(vec_dot_q2_K_q8_1_mul_mat); - NO_DEVICE_CODE; -#endif // __CUDA_ARCH__ >= MIN_CC_DP4A -} - -template static __global__ void -#if defined(GGML_USE_HIPBLAS) && defined(__HIP_PLATFORM_AMD__) -#if defined(RDNA3) || defined(RDNA2) - __launch_bounds__(WARP_SIZE*MMQ_CONFIG_Q3_K.rdna2.nwarps, 2) -#endif // defined(RDNA3) || defined(RDNA2) -#elif __CUDA_ARCH__ < CC_VOLTA - __launch_bounds__(WARP_SIZE*MMQ_CONFIG_Q3_K.pascal.nwarps, 2) -#endif // __CUDA_ARCH__ < CC_VOLTA - mul_mat_q3_K( - const void * __restrict__ vx, const void * __restrict__ vy, float * __restrict__ dst, - const int ncols_x, const int nrows_x, const int ncols_y, const int nrows_y, const int nrows_dst) { - -#if __CUDA_ARCH__ >= MIN_CC_DP4A - constexpr mmq_arch_config_t arch_config = get_arch_config_device(MMQ_CONFIG_Q3_K); - - mul_mat_q, - load_tiles_q3_K, VDR_Q3_K_Q8_1_MMQ, vec_dot_q3_K_q8_1_mul_mat> - (vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, nrows_dst); -#else - GGML_UNUSED(get_arch_config_device); - GGML_UNUSED(vec_dot_q3_K_q8_1_mul_mat); - NO_DEVICE_CODE; -#endif // __CUDA_ARCH__ >= MIN_CC_DP4A -} - -template static __global__ void -#if defined(GGML_USE_HIPBLAS) && defined(__HIP_PLATFORM_AMD__) -#if defined(RDNA3) || defined(RDNA2) - __launch_bounds__(WARP_SIZE*MMQ_CONFIG_Q4_K.rdna2.nwarps, 2) -#endif // defined(RDNA3) || defined(RDNA2) -#elif __CUDA_ARCH__ < CC_VOLTA - __launch_bounds__(WARP_SIZE*MMQ_CONFIG_Q4_K.pascal.nwarps, 2) -#endif // __CUDA_ARCH__ < CC_VOLTA - mul_mat_q4_K( - const void * __restrict__ vx, const void * __restrict__ vy, float * __restrict__ dst, - const int ncols_x, const int nrows_x, const int ncols_y, const int nrows_y, const int nrows_dst) { - -#if __CUDA_ARCH__ >= MIN_CC_DP4A - constexpr mmq_arch_config_t arch_config = get_arch_config_device(MMQ_CONFIG_Q4_K); - - mul_mat_q, - load_tiles_q4_K, VDR_Q4_K_Q8_1_MMQ, vec_dot_q4_K_q8_1_mul_mat> - (vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, nrows_dst); -#else - GGML_UNUSED(get_arch_config_device); - GGML_UNUSED(vec_dot_q4_K_q8_1_mul_mat); - NO_DEVICE_CODE; -#endif // __CUDA_ARCH__ >= MIN_CC_DP4A -} - -template static __global__ void -#if defined(GGML_USE_HIPBLAS) && defined(__HIP_PLATFORM_AMD__) -#if defined(RDNA3) || defined(RDNA2) - __launch_bounds__(WARP_SIZE*MMQ_CONFIG_Q5_K.rdna2.nwarps, 2) -#endif // defined(RDNA3) || defined(RDNA2) -#endif // defined(GGML_USE_HIPBLAS) && defined(__HIP_PLATFORM_AMD__) -mul_mat_q5_K( - const void * __restrict__ vx, const void * __restrict__ vy, float * __restrict__ dst, - const int ncols_x, const int nrows_x, const int ncols_y, const int nrows_y, const int nrows_dst) { - -#if __CUDA_ARCH__ >= MIN_CC_DP4A - constexpr mmq_arch_config_t arch_config = get_arch_config_device(MMQ_CONFIG_Q5_K); - - mul_mat_q, - load_tiles_q5_K, VDR_Q5_K_Q8_1_MMQ, vec_dot_q5_K_q8_1_mul_mat> - (vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, nrows_dst); -#else - GGML_UNUSED(get_arch_config_device); - GGML_UNUSED(vec_dot_q5_K_q8_1_mul_mat); - NO_DEVICE_CODE; -#endif // __CUDA_ARCH__ >= MIN_CC_DP4A -} - -template static __global__ void -#if defined(GGML_USE_HIPBLAS) && defined(__HIP_PLATFORM_AMD__) -#if defined(RDNA3) || defined(RDNA2) - __launch_bounds__(WARP_SIZE*MMQ_CONFIG_Q6_K.rdna2.nwarps, 2) -#endif // defined(RDNA3) || defined(RDNA2) -#elif __CUDA_ARCH__ < CC_VOLTA - __launch_bounds__(WARP_SIZE*MMQ_CONFIG_Q4_K.pascal.nwarps, 2) -#endif // __CUDA_ARCH__ < CC_VOLTA - mul_mat_q6_K( - const void * __restrict__ vx, const void * __restrict__ vy, float * __restrict__ dst, - const int ncols_x, const int nrows_x, const int ncols_y, const int nrows_y, const int nrows_dst) { - -#if __CUDA_ARCH__ >= MIN_CC_DP4A - constexpr mmq_arch_config_t arch_config = get_arch_config_device(MMQ_CONFIG_Q6_K); - - mul_mat_q, - load_tiles_q6_K, VDR_Q6_K_Q8_1_MMQ, vec_dot_q6_K_q8_1_mul_mat> - (vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, nrows_dst); -#else - GGML_UNUSED(get_arch_config_device); - GGML_UNUSED(vec_dot_q6_K_q8_1_mul_mat); - NO_DEVICE_CODE; -#endif // __CUDA_ARCH__ >= MIN_CC_DP4A -} - -#define MMQ_SWITCH_CASE(type_suffix) \ - case GGML_TYPE_Q##type_suffix: if (row_diff % arch_config.y == 0) { \ - const bool need_check = false; \ - mul_mat_q##type_suffix<<>> \ - (src0_dd_i, src1_ddq_i, dst_dd_i, ne00, row_diff, src1_ncols, src1_padded_row_size, nrows_dst); \ - } else { \ - const bool need_check = true; \ - mul_mat_q##type_suffix<<>> \ - (src0_dd_i, src1_ddq_i, dst_dd_i, ne00, row_diff, src1_ncols, src1_padded_row_size, nrows_dst); \ - } break; \ void ggml_cuda_op_mul_mat_q( ggml_backend_cuda_context & ctx, @@ -1454,12 +8,15 @@ void ggml_cuda_op_mul_mat_q( const int64_t ne00 = src0->ne[0]; + const int64_t nb01 = src0->nb[1]; + const int64_t ne10 = src1->ne[0]; GGML_ASSERT(ne10 % QK8_1 == 0); const int64_t ne0 = dst->ne[0]; const int64_t row_diff = row_high - row_low; + const int64_t stride00 = nb01 / ggml_type_size(src0->type); int id = ggml_cuda_get_device(); const int compute_capability = ggml_cuda_info().devices[id].cc; @@ -1468,73 +25,39 @@ void ggml_cuda_op_mul_mat_q( // nrows_dst == nrows of the matrix that the kernel writes into const int64_t nrows_dst = id == ctx.device ? ne0 : row_diff; - mmq_config_t mmq_config; + const mmq_args args = {src0_dd_i, src1_ddq_i, dst_dd_i, ne00, row_diff, stride00, src1_padded_row_size, src1_ncols, nrows_dst}; switch (src0->type) { case GGML_TYPE_Q4_0: - mmq_config = MMQ_CONFIG_Q4_0; + mul_mat_q_case(args, stream); break; case GGML_TYPE_Q4_1: - mmq_config = MMQ_CONFIG_Q4_1; + mul_mat_q_case(args, stream); break; case GGML_TYPE_Q5_0: - mmq_config = MMQ_CONFIG_Q5_0; + mul_mat_q_case(args, stream); break; case GGML_TYPE_Q5_1: - mmq_config = MMQ_CONFIG_Q5_1; + mul_mat_q_case(args, stream); break; case GGML_TYPE_Q8_0: - mmq_config = MMQ_CONFIG_Q8_0; + mul_mat_q_case(args, stream); break; case GGML_TYPE_Q2_K: - mmq_config = MMQ_CONFIG_Q2_K; + mul_mat_q_case(args, stream); break; case GGML_TYPE_Q3_K: - mmq_config = MMQ_CONFIG_Q3_K; + mul_mat_q_case(args, stream); break; case GGML_TYPE_Q4_K: - mmq_config = MMQ_CONFIG_Q4_K; + mul_mat_q_case(args, stream); break; case GGML_TYPE_Q5_K: - mmq_config = MMQ_CONFIG_Q5_K; + mul_mat_q_case(args, stream); break; case GGML_TYPE_Q6_K: - mmq_config = MMQ_CONFIG_Q6_K; - break; - default: - GGML_ASSERT(false); + mul_mat_q_case(args, stream); break; - } - - mmq_arch_config_t arch_config; - if (compute_capability >= CC_RDNA2) { - arch_config = mmq_config.rdna2; - } else if (compute_capability >= CC_OFFSET_AMD) { - arch_config = mmq_config.rdna1; - } else if (compute_capability >= CC_VOLTA) { - arch_config = mmq_config.ampere; - } else if (compute_capability >= MIN_CC_DP4A) { - arch_config = mmq_config.pascal; - } else { - GGML_ASSERT(false); - } - - const int block_num_x = (row_diff + arch_config.y - 1) / arch_config.y; - const int block_num_y = (src1_ncols + arch_config.x - 1) / arch_config.x; - const dim3 block_nums(block_num_x, block_num_y, 1); - const dim3 block_dims(WARP_SIZE, arch_config.nwarps, 1); - - switch (src0->type) { - MMQ_SWITCH_CASE(4_0) - MMQ_SWITCH_CASE(4_1) - MMQ_SWITCH_CASE(5_0) - MMQ_SWITCH_CASE(5_1) - MMQ_SWITCH_CASE(8_0) - MMQ_SWITCH_CASE(2_K) - MMQ_SWITCH_CASE(3_K) - MMQ_SWITCH_CASE(4_K) - MMQ_SWITCH_CASE(5_K) - MMQ_SWITCH_CASE(6_K) default: GGML_ASSERT(false); break; diff --git a/ggml-cuda/mmq.cuh b/ggml-cuda/mmq.cuh index 807817c4a715f..6744cce6d785f 100644 --- a/ggml-cuda/mmq.cuh +++ b/ggml-cuda/mmq.cuh @@ -1,4 +1,1304 @@ #include "common.cuh" +#include "vecdotq.cuh" + +#include +#include + +typedef void (*load_tiles_mmq_t)( + const char * __restrict__ x, int * __restrict__ x_ql, half2 * __restrict__ x_dm, int * __restrict__ x_qh, + int * __restrict__ x_sc, const int & kbx0, const int & i_max, const int & stride); +typedef void (*vec_dot_mmq_t)( + const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc, + const int * __restrict__ y_qs, const half2 * __restrict__ y_ms, float * __restrict__ sum, const int & k0); + +struct tile_x_sizes { + int ql; + int dm; + int qh; + int sc; +}; + +// get_mmq_x_max_host is in common.cuh so that it can be used to determine the correct way to round for --split-mode row + +static constexpr __device__ int get_mmq_x_max_device() { +#if defined(GGML_USE_HIPBLAS) && defined(__HIP_PLATFORM_AMD__) + return 64; +#else +#if __CUDA_ARCH__ >= CC_VOLTA +#ifdef CUDA_USE_TENSOR_CORES + return MMQ_MAX_BATCH_SIZE; +#else + return 128; +#endif // CUDA_USE_TENSOR_CORES +#else + return 64; +#endif // __CUDA_ARCH__ >= CC_VOLTA +#endif // defined(GGML_USE_HIPBLAS) && defined(__HIP_PLATFORM_AMD__) +} + +// get_mmq_y_host is in common.cuh so that it can be used to determine the correct way to round for --split-mode row + +#if defined(GGML_USE_HIPBLAS) && defined(__HIP_PLATFORM_AMD__) +static constexpr __device__ int get_mmq_y_device(int mmq_x) { + return mmq_x >= 32 ? 128 : 64; +} +#else +#if __CUDA_ARCH__ >= CC_VOLTA +static constexpr __device__ int get_mmq_y_device(int mmq_x) { + return mmq_x >= 32 ? 128 : 64; +} +#else +static constexpr __device__ int get_mmq_y_device(int /*mmq_x*/) { + return 64; +} +#endif // __CUDA_ARCH__ >= CC_VOLTA +#endif // defined(GGML_USE_HIPBLAS) && defined(__HIP_PLATFORM_AMD__) + +#define TILE_X_SIZES_Q4_0 tile_x_sizes{mmq_y*WARP_SIZE + mmq_y, mmq_y*WARP_SIZE/QI4_0 + mmq_y/QI4_0, 0, 0} +#define TILE_X_SIZES_Q4_1 tile_x_sizes{mmq_y*WARP_SIZE + mmq_y, mmq_y*WARP_SIZE/QI4_1 + mmq_y/QI4_1, 0, 0} +#define TILE_X_SIZES_Q5_0 tile_x_sizes{mmq_y*WARP_SIZE*2 + mmq_y, mmq_y*WARP_SIZE/QI5_0 + mmq_y/QI5_0, 0, 0} +#define TILE_X_SIZES_Q5_1 tile_x_sizes{mmq_y*WARP_SIZE*2 + mmq_y, mmq_y*WARP_SIZE/QI5_1 + mmq_y/QI5_1, 0, 0} +#define TILE_X_SIZES_Q8_0 tile_x_sizes{mmq_y*WARP_SIZE + mmq_y, mmq_y*WARP_SIZE/QI8_0 + mmq_y/QI8_0, 0, 0} +#define TILE_X_SIZES_Q2_K tile_x_sizes{mmq_y*WARP_SIZE + mmq_y, mmq_y*WARP_SIZE/QI2_K + mmq_y/QI2_K, 0, mmq_y*WARP_SIZE/4 + mmq_y/4} +#define TILE_X_SIZES_Q3_K tile_x_sizes{mmq_y*WARP_SIZE + mmq_y, mmq_y*WARP_SIZE/QI3_K + mmq_y/QI3_K, mmq_y*WARP_SIZE/2 + mmq_y/2, mmq_y*WARP_SIZE/4 + mmq_y/4} +#define TILE_X_SIZES_Q4_K tile_x_sizes{mmq_y*WARP_SIZE + mmq_y, mmq_y*WARP_SIZE/QI4_K + mmq_y/QI4_K, 0, mmq_y*WARP_SIZE/8 + mmq_y/8} +#define TILE_X_SIZES_Q5_K tile_x_sizes{mmq_y*WARP_SIZE*2 + mmq_y, mmq_y*WARP_SIZE/QI5_K + mmq_y/QI5_K, 0, mmq_y*WARP_SIZE/8 + mmq_y/8} +#define TILE_X_SIZES_Q6_K tile_x_sizes{mmq_y*WARP_SIZE*2 + mmq_y, mmq_y*WARP_SIZE/QI6_K + mmq_y/QI6_K, 0, mmq_y*WARP_SIZE/8 + mmq_y/8} + +#define GET_TILE_X_SIZES_BODY \ + return type == GGML_TYPE_Q4_0 ? TILE_X_SIZES_Q4_0 : \ + type == GGML_TYPE_Q4_1 ? TILE_X_SIZES_Q4_1 : \ + type == GGML_TYPE_Q5_0 ? TILE_X_SIZES_Q5_0 : \ + type == GGML_TYPE_Q5_1 ? TILE_X_SIZES_Q5_1 : \ + type == GGML_TYPE_Q8_0 ? TILE_X_SIZES_Q8_0 : \ + type == GGML_TYPE_Q2_K ? TILE_X_SIZES_Q2_K : \ + type == GGML_TYPE_Q3_K ? TILE_X_SIZES_Q3_K : \ + type == GGML_TYPE_Q4_K ? TILE_X_SIZES_Q4_K : \ + type == GGML_TYPE_Q5_K ? TILE_X_SIZES_Q5_K : \ + type == GGML_TYPE_Q6_K ? TILE_X_SIZES_Q6_K : \ + tile_x_sizes{0, 0, 0, 0} + +static tile_x_sizes get_tile_x_sizes_host(const ggml_type type, const int mmq_y) { + GET_TILE_X_SIZES_BODY; +} + +template +static constexpr __device__ tile_x_sizes get_tile_x_sizes_device(ggml_type type) { + GET_TILE_X_SIZES_BODY; +} + +// ------------------------------------------------------------ + +template static __device__ __forceinline__ void load_tiles_q4_0( + const char * __restrict__ x, int * __restrict__ x_ql, half2 * __restrict__ x_dm, int * __restrict__ x_qh, + int * __restrict__ x_sc, const int & kbx0, const int & i_max, const int & stride) { + GGML_UNUSED(x_qh); GGML_UNUSED(x_sc); + + const int kbx = threadIdx.x / QI4_0; + const int kqsx = threadIdx.x % QI4_0; + + float * x_dmf = (float *) x_dm; + +#pragma unroll + for (int i0 = 0; i0 < mmq_y; i0 += nwarps) { + int i = i0 + threadIdx.y; + + if (need_check) { + i = min(i, i_max); + } + + const block_q4_0 * bxi = (const block_q4_0 *) x + kbx0 + i*stride + kbx; + + x_ql[i * (WARP_SIZE + 1) + threadIdx.x] = get_int_from_uint8(bxi->qs, kqsx); + } + + const int blocks_per_tile_x_row = WARP_SIZE / QI4_0; + const int kbxd = threadIdx.x % blocks_per_tile_x_row; + +#pragma unroll + for (int i0 = 0; i0 < mmq_y; i0 += nwarps * QI4_0) { + int i = i0 + threadIdx.y * QI4_0 + threadIdx.x / blocks_per_tile_x_row; + + if (need_check) { + i = min(i, i_max); + } + + const block_q4_0 * bxi = (const block_q4_0 *) x + kbx0 + i*stride + kbxd; + + x_dmf[i * (WARP_SIZE/QI4_0) + i / QI4_0 + kbxd] = bxi->d; + } +} + +template +static __device__ __forceinline__ void vec_dot_q4_0_q8_1_mul_mat( + const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc, + const int * __restrict__ y_qs, const half2 * __restrict__ y_ds, float * __restrict__ sum, const int & k0) { + + GGML_UNUSED(x_qh); GGML_UNUSED(x_sc); + +#pragma unroll + for (int j0 = 0; j0 < mmq_x; j0 += nwarps) { + const int j = j0 + threadIdx.y; + +#pragma unroll + for (int i0 = 0; i0 < mmq_y; i0 += WARP_SIZE) { + const int i = i0 + threadIdx.x; + + const int kyqs = k0 % (QI8_1/2) + QI8_1 * (k0 / (QI8_1/2)); + const float * x_dmf = (const float *) x_dm; + + int u[2*VDR_Q4_0_Q8_1_MMQ]; + +#pragma unroll + for (int l = 0; l < VDR_Q4_0_Q8_1_MMQ; ++l) { + u[2*l+0] = y_qs[j * WARP_SIZE + (kyqs + l) % WARP_SIZE]; + u[2*l+1] = y_qs[j * WARP_SIZE + (kyqs + l + QI4_0) % WARP_SIZE]; + } + + sum[j0/nwarps*mmq_y/WARP_SIZE + i0/WARP_SIZE] += vec_dot_q4_0_q8_1_impl + (&x_ql[i * (WARP_SIZE + 1) + k0], u, x_dmf[i * (WARP_SIZE/QI4_0) + i/QI4_0 + k0/QI4_0], + y_ds[j * (WARP_SIZE/QI8_1) + (2*k0/QI8_1) % (WARP_SIZE/QI8_1)]); + } + } +} + +template static __device__ __forceinline__ void load_tiles_q4_1( + const char * __restrict__ x, int * __restrict__ x_ql, half2 * __restrict__ x_dm, int * __restrict__ x_qh, + int * __restrict__ x_sc, const int & kbx0, const int & i_max, const int & stride) { + GGML_UNUSED(x_qh); GGML_UNUSED(x_sc); + + const int kbx = threadIdx.x / QI4_1; + const int kqsx = threadIdx.x % QI4_1; + +#pragma unroll + for (int i0 = 0; i0 < mmq_y; i0 += nwarps) { + int i = i0 + threadIdx.y; + + if (need_check) { + i = min(i, i_max); + } + + const block_q4_1 * bxi = (const block_q4_1 *) x + kbx0 + i*stride + kbx; + + x_ql[i * (WARP_SIZE + 1) + threadIdx.x] = get_int_from_uint8_aligned(bxi->qs, kqsx); + } + + const int blocks_per_tile_x_row = WARP_SIZE / QI4_1; + const int kbxd = threadIdx.x % blocks_per_tile_x_row; + +#pragma unroll + for (int i0 = 0; i0 < mmq_y; i0 += nwarps * QI4_1) { + int i = i0 + threadIdx.y * QI4_1 + threadIdx.x / blocks_per_tile_x_row; + + if (need_check) { + i = min(i, i_max); + } + + const block_q4_1 * bxi = (const block_q4_1 *) x + kbx0 + i*stride + kbxd; + + x_dm[i * (WARP_SIZE/QI4_1) + i / QI4_1 + kbxd] = bxi->dm; + } +} + +template +static __device__ __forceinline__ void vec_dot_q4_1_q8_1_mul_mat( + const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc, + const int * __restrict__ y_qs, const half2 * __restrict__ y_ds, float * __restrict__ sum, const int & k0) { + + GGML_UNUSED(x_qh); GGML_UNUSED(x_sc); + +#pragma unroll + for (int j0 = 0; j0 < mmq_x; j0 += nwarps) { + const int j = j0 + threadIdx.y; + +#pragma unroll + for (int i0 = 0; i0 < mmq_y; i0 += WARP_SIZE) { + const int i = i0 + threadIdx.x; + + const int kyqs = k0 % (QI8_1/2) + QI8_1 * (k0 / (QI8_1/2)); + + int u[2*VDR_Q4_1_Q8_1_MMQ]; + +#pragma unroll + for (int l = 0; l < VDR_Q4_1_Q8_1_MMQ; ++l) { + u[2*l+0] = y_qs[j * WARP_SIZE + (kyqs + l) % WARP_SIZE]; + u[2*l+1] = y_qs[j * WARP_SIZE + (kyqs + l + QI4_1) % WARP_SIZE]; + } + + sum[j0/nwarps*mmq_y/WARP_SIZE + i0/WARP_SIZE] += vec_dot_q4_1_q8_1_impl + (&x_ql[i * (WARP_SIZE + 1) + k0], u, x_dm[i * (WARP_SIZE/QI4_1) + i/QI4_1 + k0/QI4_1], + y_ds[j * (WARP_SIZE/QI8_1) + (2*k0/QI8_1) % (WARP_SIZE/QI8_1)]); + } + } +} + +template static __device__ __forceinline__ void load_tiles_q5_0( + const char * __restrict__ x, int * __restrict__ x_ql, half2 * __restrict__ x_dm, int * __restrict__ x_qh, + int * __restrict__ x_sc, const int & kbx0, const int & i_max, const int & stride) { + GGML_UNUSED(x_qh); GGML_UNUSED(x_sc); + + const int kbx = threadIdx.x / QI5_0; + const int kqsx = threadIdx.x % QI5_0; + +#pragma unroll + for (int i0 = 0; i0 < mmq_y; i0 += nwarps) { + int i = i0 + threadIdx.y; + + if (need_check) { + i = min(i, i_max); + } + + const block_q5_0 * bxi = (const block_q5_0 *) x + kbx0 + i*stride + kbx; + + const int ql = get_int_from_uint8(bxi->qs, kqsx); + const int qh = get_int_from_uint8(bxi->qh, 0) >> (4 * (threadIdx.x % QI5_0)); + + int qs0 = (ql >> 0) & 0x0F0F0F0F; + qs0 |= (qh << 4) & 0x00000010; // 0 -> 4 + qs0 |= (qh << 11) & 0x00001000; // 1 -> 12 + qs0 |= (qh << 18) & 0x00100000; // 2 -> 20 + qs0 |= (qh << 25) & 0x10000000; // 3 -> 28 + qs0 = __vsubss4(qs0, 0x10101010); // subtract 16 + + x_ql[i * (2*WARP_SIZE + 1) + 2*threadIdx.x+0] = qs0; + + int qs1 = (ql >> 4) & 0x0F0F0F0F; + qs1 |= (qh >> 12) & 0x00000010; // 16 -> 4 + qs1 |= (qh >> 5) & 0x00001000; // 17 -> 12 + qs1 |= (qh << 2) & 0x00100000; // 18 -> 20 + qs1 |= (qh << 9) & 0x10000000; // 19 -> 28 + qs1 = __vsubss4(qs1, 0x10101010); // subtract 16 + + x_ql[i * (2*WARP_SIZE + 1) + 2*threadIdx.x+1] = qs1; + } + + const int blocks_per_tile_x_row = WARP_SIZE / QI5_0; + const int kbxd = threadIdx.x % blocks_per_tile_x_row; + float * x_dmf = (float *) x_dm; + +#pragma unroll + for (int i0 = 0; i0 < mmq_y; i0 += nwarps * QI5_0) { + int i = i0 + threadIdx.y * QI5_0 + threadIdx.x / blocks_per_tile_x_row; + + if (need_check) { + i = min(i, i_max); + } + + const block_q5_0 * bxi = (const block_q5_0 *) x + kbx0 + i*stride + kbxd; + + x_dmf[i * (WARP_SIZE/QI5_0) + i / QI5_0 + kbxd] = bxi->d; + } +} + +template +static __device__ __forceinline__ void vec_dot_q5_0_q8_1_mul_mat( + const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc, + const int * __restrict__ y_qs, const half2 * __restrict__ y_ds, float * __restrict__ sum, const int & k0) { + + GGML_UNUSED(x_qh); GGML_UNUSED(x_sc); + +#pragma unroll + for (int j0 = 0; j0 < mmq_x; j0 += nwarps) { + const int j = j0 + threadIdx.y; + +#pragma unroll + for (int i0 = 0; i0 < mmq_y; i0 += WARP_SIZE) { + const int i = i0 + threadIdx.x; + + const int kyqs = k0 % (QI8_1/2) + QI8_1 * (k0 / (QI8_1/2)); + const int index_bx = i * (WARP_SIZE/QI5_0) + i/QI5_0 + k0/QI5_0; + const float * x_dmf = (const float *) x_dm; + const float * y_df = (const float *) y_ds; + + int u[2*VDR_Q5_0_Q8_1_MMQ]; + +#pragma unroll + for (int l = 0; l < VDR_Q5_0_Q8_1_MMQ; ++l) { + u[2*l+0] = y_qs[j * WARP_SIZE + (kyqs + l) % WARP_SIZE]; + u[2*l+1] = y_qs[j * WARP_SIZE + (kyqs + l + QI5_0) % WARP_SIZE]; + } + + sum[j0/nwarps*mmq_y/WARP_SIZE + i0/WARP_SIZE] += vec_dot_q8_0_q8_1_impl + (&x_ql[i * (2*WARP_SIZE + 1) + 2 * k0], u, x_dmf[index_bx], y_df[j * (WARP_SIZE/QI8_1) + (2*k0/QI8_1) % (WARP_SIZE/QI8_1)]); + } + } +} + + +template static __device__ __forceinline__ void load_tiles_q5_1( + const char * __restrict__ x, int * __restrict__ x_ql, half2 * __restrict__ x_dm, int * __restrict__ x_qh, + int * __restrict__ x_sc, const int & kbx0, const int & i_max, const int & stride) { + GGML_UNUSED(x_qh); GGML_UNUSED(x_sc); + + const int kbx = threadIdx.x / QI5_1; + const int kqsx = threadIdx.x % QI5_1; + +#pragma unroll + for (int i0 = 0; i0 < mmq_y; i0 += nwarps) { + int i = i0 + threadIdx.y; + + if (need_check) { + i = min(i, i_max); + } + + const block_q5_1 * bxi = (const block_q5_1 *) x + kbx0 + i*stride + kbx; + + const int ql = get_int_from_uint8_aligned(bxi->qs, kqsx); + const int qh = get_int_from_uint8_aligned(bxi->qh, 0) >> (4 * (threadIdx.x % QI5_1)); + + int qs0 = (ql >> 0) & 0x0F0F0F0F; + qs0 |= (qh << 4) & 0x00000010; // 0 -> 4 + qs0 |= (qh << 11) & 0x00001000; // 1 -> 12 + qs0 |= (qh << 18) & 0x00100000; // 2 -> 20 + qs0 |= (qh << 25) & 0x10000000; // 3 -> 28 + + x_ql[i * (2*WARP_SIZE + 1) + 2*threadIdx.x+0] = qs0; + + int qs1 = (ql >> 4) & 0x0F0F0F0F; + qs1 |= (qh >> 12) & 0x00000010; // 16 -> 4 + qs1 |= (qh >> 5) & 0x00001000; // 17 -> 12 + qs1 |= (qh << 2) & 0x00100000; // 18 -> 20 + qs1 |= (qh << 9) & 0x10000000; // 19 -> 28 + + x_ql[i * (2*WARP_SIZE + 1) + 2*threadIdx.x+1] = qs1; + } + + const int blocks_per_tile_x_row = WARP_SIZE / QI5_1; + const int kbxd = threadIdx.x % blocks_per_tile_x_row; + +#pragma unroll + for (int i0 = 0; i0 < mmq_y; i0 += nwarps * QI5_1) { + int i = i0 + threadIdx.y * QI5_1 + threadIdx.x / blocks_per_tile_x_row; + + if (need_check) { + i = min(i, i_max); + } + + const block_q5_1 * bxi = (const block_q5_1 *) x + kbx0 + i*stride + kbxd; + + x_dm[i * (WARP_SIZE/QI5_1) + i / QI5_1 + kbxd] = bxi->dm; + } +} + +template +static __device__ __forceinline__ void vec_dot_q5_1_q8_1_mul_mat( + const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc, + const int * __restrict__ y_qs, const half2 * __restrict__ y_ds, float * __restrict__ sum, const int & k0) { + + GGML_UNUSED(x_qh); GGML_UNUSED(x_sc); + +#pragma unroll + for (int j0 = 0; j0 < mmq_x; j0 += nwarps) { + const int j = j0 + threadIdx.y; + +#pragma unroll + for (int i0 = 0; i0 < mmq_y; i0 += WARP_SIZE) { + const int i = i0 + threadIdx.x; + + const int kyqs = k0 % (QI8_1/2) + QI8_1 * (k0 / (QI8_1/2)); + const int index_bx = i * (WARP_SIZE/QI5_1) + + i/QI5_1 + k0/QI5_1; + + int u[2*VDR_Q5_1_Q8_1_MMQ]; + +#pragma unroll + for (int l = 0; l < VDR_Q5_1_Q8_1_MMQ; ++l) { + u[2*l+0] = y_qs[j * WARP_SIZE + (kyqs + l) % WARP_SIZE]; + u[2*l+1] = y_qs[j * WARP_SIZE + (kyqs + l + QI5_1) % WARP_SIZE]; + } + + sum[j0/nwarps*mmq_y/WARP_SIZE + i0/WARP_SIZE] += vec_dot_q8_1_q8_1_impl + (&x_ql[i * (2*WARP_SIZE + 1) + 2 * k0], u, x_dm[index_bx], y_ds[j * (WARP_SIZE/QI8_1) + (2*k0/QI8_1) % (WARP_SIZE/QI8_1)]); + } + } +} + +template static __device__ __forceinline__ void load_tiles_q8_0( + const char * __restrict__ x, int * __restrict__ x_ql, half2 * __restrict__ x_dm, int * __restrict__ x_qh, + int * __restrict__ x_sc, const int & kbx0, const int & i_max, const int & stride) { + + GGML_UNUSED(x_qh); GGML_UNUSED(x_sc); + + const int kbx = threadIdx.x / QI8_0; + const int kqsx = threadIdx.x % QI8_0; + float * x_dmf = (float *) x_dm; + +#pragma unroll + for (int i0 = 0; i0 < mmq_y; i0 += nwarps) { + int i = i0 + threadIdx.y; + + if (need_check) { + i = min(i, i_max); + } + + const block_q8_0 * bxi = (const block_q8_0 *) x + kbx0 + i*stride + kbx; + + x_ql[i * (WARP_SIZE + 1) + threadIdx.x] = get_int_from_int8(bxi->qs, kqsx); + } + + const int blocks_per_tile_x_row = WARP_SIZE / QI8_0; + const int kbxd = threadIdx.x % blocks_per_tile_x_row; + +#pragma unroll + for (int i0 = 0; i0 < mmq_y; i0 += nwarps * QI8_0) { + int i = i0 + threadIdx.y * QI8_0 + threadIdx.x / blocks_per_tile_x_row; + + if (need_check) { + i = min(i, i_max); + } + + const block_q8_0 * bxi = (const block_q8_0 *) x + kbx0 + i*stride + kbxd; + + x_dmf[i * (WARP_SIZE/QI8_0) + i / QI8_0 + kbxd] = bxi->d; + } +} + +template +static __device__ __forceinline__ void vec_dot_q8_0_q8_1_mul_mat( + const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc, + const int * __restrict__ y_qs, const half2 * __restrict__ y_ds, float * __restrict__ sum, const int & k0) { + + GGML_UNUSED(x_qh); GGML_UNUSED(x_sc); + +#pragma unroll + for (int j0 = 0; j0 < mmq_x; j0 += nwarps) { + const int j = j0 + threadIdx.y; + +#pragma unroll + for (int i0 = 0; i0 < mmq_y; i0 += WARP_SIZE) { + const int i = i0 + threadIdx.x; + + const float * x_dmf = (const float *) x_dm; + const float * y_df = (const float *) y_ds; + + sum[j0/nwarps*mmq_y/WARP_SIZE + i0/WARP_SIZE] += vec_dot_q8_0_q8_1_impl + (&x_ql[i * (WARP_SIZE + 1) + k0], &y_qs[j * WARP_SIZE + k0], x_dmf[i * (WARP_SIZE/QI8_0) + i/QI8_0 + k0/QI8_0], + y_df[j * (WARP_SIZE/QI8_1) + k0/QI8_1]); + } + } +} + +template static __device__ __forceinline__ void load_tiles_q2_K( + const char * __restrict__ x, int * __restrict__ x_ql, half2 * __restrict__ x_dm, int * __restrict__ x_qh, + int * __restrict__ x_sc, const int & kbx0, const int & i_max, const int & stride) { + GGML_UNUSED(x_qh); + + const int kbx = threadIdx.x / QI2_K; + const int kqsx = threadIdx.x % QI2_K; + +#pragma unroll + for (int i0 = 0; i0 < mmq_y; i0 += nwarps) { + int i = i0 + threadIdx.y; + + if (need_check) { + i = min(i, i_max); + } + + const block_q2_K * bxi = (const block_q2_K *) x + kbx0 + i*stride + kbx; + + x_ql[i * (WARP_SIZE + 1) + threadIdx.x] = get_int_from_uint8_aligned(bxi->qs, kqsx); + } + + const int blocks_per_tile_x_row = WARP_SIZE / QI2_K; + const int kbxd = threadIdx.x % blocks_per_tile_x_row; + +#pragma unroll + for (int i0 = 0; i0 < mmq_y; i0 += nwarps * QI2_K) { + int i = (i0 + threadIdx.y * QI2_K + threadIdx.x / blocks_per_tile_x_row) % mmq_y; + + if (need_check) { + i = min(i, i_max); + } + + const block_q2_K * bxi = (const block_q2_K *) x + kbx0 + i*stride + kbxd; + + x_dm[i * (WARP_SIZE/QI2_K) + i / QI2_K + kbxd] = bxi->dm; + } + +#pragma unroll + for (int i0 = 0; i0 < mmq_y; i0 += nwarps * 4) { + int i = i0 + threadIdx.y * 4 + threadIdx.x / (WARP_SIZE/4); + + if (need_check) { + i = min(i, i_max); + } + + const block_q2_K * bxi = (const block_q2_K *) x + kbx0 + i*stride + (threadIdx.x % (WARP_SIZE/4)) / (QI2_K/4); + + x_sc[i * (WARP_SIZE/4) + i / 4 + threadIdx.x % (WARP_SIZE/4)] = get_int_from_uint8_aligned(bxi->scales, threadIdx.x % (QI2_K/4)); + } +} + +template +static __device__ __forceinline__ void vec_dot_q2_K_q8_1_mul_mat( + const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc, + const int * __restrict__ y_qs, const half2 * __restrict__ y_ds, float * __restrict__ sum, const int & k0) { + + GGML_UNUSED(x_qh); + +#pragma unroll + for (int j0 = 0; j0 < mmq_x; j0 += nwarps) { + const int j = j0 + threadIdx.y; + +#pragma unroll + for (int i0 = 0; i0 < mmq_y; i0 += WARP_SIZE) { + const int i = i0 + threadIdx.x; + + const int kbx = k0 / QI2_K; + const int ky = (k0 % QI2_K) * QR2_K; + const float * y_df = (const float *) y_ds; + + int v[QR2_K*VDR_Q2_K_Q8_1_MMQ]; + + const int kqsx = i * (WARP_SIZE + 1) + kbx*QI2_K + (QI2_K/2) * (ky/(2*QI2_K)) + ky % (QI2_K/2); + const int shift = 2 * ((ky % (2*QI2_K)) / (QI2_K/2)); + +#pragma unroll + for (int l = 0; l < QR2_K*VDR_Q2_K_Q8_1_MMQ; ++l) { + v[l] = (x_ql[kqsx + l] >> shift) & 0x03030303; + } + + const uint8_t * scales = ((const uint8_t *) &x_sc[i * (WARP_SIZE/4) + i/4 + kbx*4]) + ky/4; + + const int index_y = j * WARP_SIZE + (QR2_K*k0) % WARP_SIZE; + sum[j0/nwarps*mmq_y/WARP_SIZE + i0/WARP_SIZE] += vec_dot_q2_K_q8_1_impl_mmq( + v, &y_qs[index_y], scales, x_dm[i * (WARP_SIZE/QI2_K) + i/QI2_K + kbx], y_df[index_y/QI8_1]); + } + } +} + +template static __device__ __forceinline__ void load_tiles_q3_K( + const char * __restrict__ x, int * __restrict__ x_ql, half2 * __restrict__ x_dm, int * __restrict__ x_qh, + int * __restrict__ x_sc, const int & kbx0, const int & i_max, const int & stride) { + + const int kbx = threadIdx.x / QI3_K; + const int kqsx = threadIdx.x % QI3_K; + +#pragma unroll + for (int i0 = 0; i0 < mmq_y; i0 += nwarps) { + int i = i0 + threadIdx.y; + + if (need_check) { + i = min(i, i_max); + } + + const block_q3_K * bxi = (const block_q3_K *) x + kbx0 + i*stride + kbx; + + x_ql[i * (WARP_SIZE + 1) + threadIdx.x] = get_int_from_uint8(bxi->qs, kqsx); + } + + const int blocks_per_tile_x_row = WARP_SIZE / QI3_K; + const int kbxd = threadIdx.x % blocks_per_tile_x_row; + float * x_dmf = (float *) x_dm; + +#pragma unroll + for (int i0 = 0; i0 < mmq_y; i0 += nwarps * QI3_K) { + int i = (i0 + threadIdx.y * QI3_K + threadIdx.x / blocks_per_tile_x_row) % mmq_y; + + if (need_check) { + i = min(i, i_max); + } + + const block_q3_K * bxi = (const block_q3_K *) x + kbx0 + i*stride + kbxd; + + x_dmf[i * (WARP_SIZE/QI3_K) + i / QI3_K + kbxd] = bxi->d; + } + +#pragma unroll + for (int i0 = 0; i0 < mmq_y; i0 += nwarps * 2) { + int i = i0 + threadIdx.y * 2 + threadIdx.x / (WARP_SIZE/2); + + if (need_check) { + i = min(i, i_max); + } + + const block_q3_K * bxi = (const block_q3_K *) x + kbx0 + i*stride + (threadIdx.x % (WARP_SIZE/2)) / (QI3_K/2); + + // invert the mask with ~ so that a 0/1 results in 4/0 being subtracted + x_qh[i * (WARP_SIZE/2) + i / 2 + threadIdx.x % (WARP_SIZE/2)] = ~get_int_from_uint8(bxi->hmask, threadIdx.x % (QI3_K/2)); + } + +#pragma unroll + for (int i0 = 0; i0 < mmq_y; i0 += nwarps * 4) { + int i = i0 + threadIdx.y * 4 + threadIdx.x / (WARP_SIZE/4); + + if (need_check) { + i = min(i, i_max); + } + + const block_q3_K * bxi = (const block_q3_K *) x + kbx0 + i*stride + (threadIdx.x % (WARP_SIZE/4)) / (QI3_K/4); + + const int ksc = threadIdx.x % (QI3_K/4); + + const int ksc_low = ksc % (QI3_K/8); + const int shift_low = 4 * (ksc / (QI3_K/8)); + const int sc_low = (get_int_from_uint8(bxi->scales, ksc_low) >> shift_low) & 0x0F0F0F0F; + + const int ksc_high = QI3_K/8; + const int shift_high = 2 * ksc; + const int sc_high = ((get_int_from_uint8(bxi->scales, ksc_high) >> shift_high) << 4) & 0x30303030; + + const int sc = __vsubss4(sc_low | sc_high, 0x20202020); + + x_sc[i * (WARP_SIZE/4) + i / 4 + threadIdx.x % (WARP_SIZE/4)] = sc; + } +} + +template +static __device__ __forceinline__ void vec_dot_q3_K_q8_1_mul_mat( + const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc, + const int * __restrict__ y_qs, const half2 * __restrict__ y_ds, float * __restrict__ sum, const int & k0) { + +#pragma unroll + for (int j0 = 0; j0 < mmq_x; j0 += nwarps) { + const int j = j0 + threadIdx.y; + +#pragma unroll + for (int i0 = 0; i0 < mmq_y; i0 += WARP_SIZE) { + const int i = i0 + threadIdx.x; + + const int kbx = k0 / QI3_K; + const int ky = (k0 % QI3_K) * QR3_K; + const float * x_dmf = (const float *) x_dm; + const float * y_df = (const float *) y_ds; + + const int8_t * scales = ((const int8_t *) (x_sc + i * (WARP_SIZE/4) + i/4 + kbx*4)) + ky/4; + + int v[QR3_K*VDR_Q3_K_Q8_1_MMQ]; + +#pragma unroll + for (int l = 0; l < QR3_K*VDR_Q3_K_Q8_1_MMQ; ++l) { + const int kqsx = i * (WARP_SIZE + 1) + kbx*QI3_K + (QI3_K/2) * (ky/(2*QI3_K)) + ky % (QI3_K/2); + const int shift = 2 * ((ky % 32) / 8); + const int vll = (x_ql[kqsx + l] >> shift) & 0x03030303; + + const int vh = x_qh[i * (WARP_SIZE/2) + i/2 + kbx * (QI3_K/2) + (ky+l)%8] >> ((ky+l) / 8); + const int vlh = (vh << 2) & 0x04040404; + + v[l] = __vsubss4(vll, vlh); + } + + const int index_y = j * WARP_SIZE + (k0*QR3_K) % WARP_SIZE; + sum[j0/nwarps*mmq_y/WARP_SIZE + i0/WARP_SIZE] += vec_dot_q3_K_q8_1_impl_mmq( + v, &y_qs[index_y], scales, x_dmf[i * (WARP_SIZE/QI3_K) + i/QI3_K + kbx], y_df[index_y/QI8_1]); + } + } +} + +template static __device__ __forceinline__ void load_tiles_q4_K( + const char * __restrict__ x, int * __restrict__ x_ql, half2 * __restrict__ x_dm, int * __restrict__ x_qh, + int * __restrict__ x_sc, const int & kbx0, const int & i_max, const int & stride) { + GGML_UNUSED(x_qh); + + const int kbx = 0; // threadIdx.x / QI4_K + const int kqsx = threadIdx.x; // threadIdx.x % QI4_K + +#pragma unroll + for (int i0 = 0; i0 < mmq_y; i0 += nwarps) { + int i = i0 + threadIdx.y; + + if (need_check) { + i = min(i, i_max); + } + + const block_q4_K * bxi = (const block_q4_K *) x + kbx0 + i*stride + kbx; + + x_ql[i * (WARP_SIZE + 1) + threadIdx.x] = get_int_from_uint8_aligned(bxi->qs, kqsx); + } + + const int blocks_per_tile_x_row = WARP_SIZE / QI4_K; // == 1 if QK_K == 256 + const int kbxd = threadIdx.x % blocks_per_tile_x_row; // == 0 if QK_K == 256 + +#pragma unroll + for (int i0 = 0; i0 < mmq_y; i0 += nwarps * QI4_K) { + int i = (i0 + threadIdx.y * QI4_K + threadIdx.x / blocks_per_tile_x_row) % mmq_y; + + if (need_check) { + i = min(i, i_max); + } + + const block_q4_K * bxi = (const block_q4_K *) x + kbx0 + i*stride + kbxd; + + x_dm[i * (WARP_SIZE/QI4_K) + i / QI4_K + kbxd] = bxi->dm; + } + +#pragma unroll + for (int i0 = 0; i0 < mmq_y; i0 += nwarps * 8) { + int i = (i0 + threadIdx.y * 8 + threadIdx.x / (WARP_SIZE/8)) % mmq_y; + + if (need_check) { + i = min(i, i_max); + } + + const block_q4_K * bxi = (const block_q4_K *) x + kbx0 + i*stride + (threadIdx.x % (WARP_SIZE/8)) / (QI4_K/8); + + const int * scales = (const int *) bxi->scales; + + const int ksc = threadIdx.x % (WARP_SIZE/8); + + // scale arrangement after the following two lines: sc0,...,sc3, sc4,...,sc7, m0,...,m3, m4,...,m8 + int scales8 = (scales[(ksc%2) + (ksc!=0)] >> (4 * (ksc & (ksc/2)))) & 0x0F0F0F0F; // lower 4 bits + scales8 |= (scales[ksc/2] >> (2 * (ksc % 2))) & 0x30303030; // upper 2 bits + + x_sc[i * (WARP_SIZE/8) + i / 8 + ksc] = scales8; + } +} + +template +static __device__ __forceinline__ void vec_dot_q4_K_q8_1_mul_mat( + const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc, + const int * __restrict__ y_qs, const half2 * __restrict__ y_ds, float * __restrict__ sum, const int & k0) { + + GGML_UNUSED(x_qh); + +#pragma unroll + for (int j0 = 0; j0 < mmq_x; j0 += nwarps) { + const int j = j0 + threadIdx.y; + +#pragma unroll + for (int i0 = 0; i0 < mmq_y; i0 += WARP_SIZE) { + const int i = i0 + threadIdx.x; + + const uint8_t * sc = ((const uint8_t *) &x_sc[i * (WARP_SIZE/8) + i/8 + k0/16]) + 2*((k0 % 16) / 8); + + const int index_y = j * WARP_SIZE + (QR4_K*k0) % WARP_SIZE; + sum[j0/nwarps*mmq_y/WARP_SIZE + i0/WARP_SIZE] += vec_dot_q4_K_q8_1_impl_mmq( + &x_ql[i * (WARP_SIZE + 1) + k0], &y_qs[index_y], sc, sc+8, x_dm[i * (WARP_SIZE/QI4_K) + i/QI4_K], &y_ds[index_y/QI8_1]); + } + } +} + +template static __device__ __forceinline__ void load_tiles_q5_K( + const char * __restrict__ x, int * __restrict__ x_ql, half2 * __restrict__ x_dm, int * __restrict__ x_qh, + int * __restrict__ x_sc, const int & kbx0, const int & i_max, const int & stride) { + GGML_UNUSED(x_qh); + + const int kbx = 0; // threadIdx.x / QI5_K + const int kqsx = threadIdx.x; // threadIdx.x % QI5_K + +#pragma unroll + for (int i0 = 0; i0 < mmq_y; i0 += nwarps) { + int i = i0 + threadIdx.y; + + if (need_check) { + i = min(i, i_max); + } + + const block_q5_K * bxi = (const block_q5_K *) x + kbx0 + i*stride + kbx; + const int ky = QR5_K*kqsx; + + const int ql = get_int_from_uint8_aligned(bxi->qs, kqsx); + const int ql0 = (ql >> 0) & 0x0F0F0F0F; + const int ql1 = (ql >> 4) & 0x0F0F0F0F; + + const int qh = get_int_from_uint8_aligned(bxi->qh, kqsx % (QI5_K/4)); + const int qh0 = ((qh >> (2 * (kqsx / (QI5_K/4)) + 0)) << 4) & 0x10101010; + const int qh1 = ((qh >> (2 * (kqsx / (QI5_K/4)) + 1)) << 4) & 0x10101010; + + const int kq0 = ky - ky % (QI5_K/2) + threadIdx.x % (QI5_K/4) + 0; + const int kq1 = ky - ky % (QI5_K/2) + threadIdx.x % (QI5_K/4) + (QI5_K/4); + + x_ql[i * (2*WARP_SIZE + 1) + kq0] = ql0 | qh0; + x_ql[i * (2*WARP_SIZE + 1) + kq1] = ql1 | qh1; + } + + const int blocks_per_tile_x_row = WARP_SIZE / QI5_K; // == 1 if QK_K == 256 + const int kbxd = threadIdx.x % blocks_per_tile_x_row; // == 0 if QK_K == 256 + +#pragma unroll + for (int i0 = 0; i0 < mmq_y; i0 += nwarps * QI5_K) { + int i = (i0 + threadIdx.y * QI5_K + threadIdx.x / blocks_per_tile_x_row) % mmq_y; + + if (need_check) { + i = min(i, i_max); + } + + const block_q5_K * bxi = (const block_q5_K *) x + kbx0 + i*stride + kbxd; + + x_dm[i * (WARP_SIZE/QI5_K) + i / QI5_K + kbxd] = bxi->dm; + } + +#pragma unroll + for (int i0 = 0; i0 < mmq_y; i0 += nwarps * 8) { + int i = (i0 + threadIdx.y * 8 + threadIdx.x / (WARP_SIZE/8)) % mmq_y; + + if (need_check) { + i = min(i, i_max); + } + + const block_q5_K * bxi = (const block_q5_K *) x + kbx0 + i*stride + (threadIdx.x % (WARP_SIZE/8)) / (QI5_K/8); + + const int * scales = (const int *) bxi->scales; + + const int ksc = threadIdx.x % (WARP_SIZE/8); + + // scale arrangement after the following two lines: sc0,...,sc3, sc4,...,sc7, m0,...,m3, m4,...,m8 + int scales8 = (scales[(ksc%2) + (ksc!=0)] >> (4 * (ksc & (ksc/2)))) & 0x0F0F0F0F; // lower 4 bits + scales8 |= (scales[ksc/2] >> (2 * (ksc % 2))) & 0x30303030; // upper 2 bits + + x_sc[i * (WARP_SIZE/8) + i / 8 + ksc] = scales8; + } +} + +template +static __device__ __forceinline__ void vec_dot_q5_K_q8_1_mul_mat( + const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc, + const int * __restrict__ y_qs, const half2 * __restrict__ y_ds, float * __restrict__ sum, const int & k0) { + + GGML_UNUSED(x_qh); + +#pragma unroll + for (int j0 = 0; j0 < mmq_x; j0 += nwarps) { + const int j = j0 + threadIdx.y; + +#pragma unroll + for (int i0 = 0; i0 < mmq_y; i0 += WARP_SIZE) { + const int i = i0 + threadIdx.x; + + const uint8_t * sc = ((const uint8_t *) &x_sc[i * (WARP_SIZE/8) + i/8 + k0/16]) + 2 * ((k0 % 16) / 8); + + const int index_x = i * (QR5_K*WARP_SIZE + 1) + QR5_K*k0; + const int index_y = j * WARP_SIZE + (QR5_K*k0) % WARP_SIZE; + sum[j0/nwarps*mmq_y/WARP_SIZE + i0/WARP_SIZE] += vec_dot_q5_K_q8_1_impl_mmq( + &x_ql[index_x], &y_qs[index_y], sc, sc+8, x_dm[i * (WARP_SIZE/QI5_K) + i/QI5_K], &y_ds[index_y/QI8_1]); + } + } +} + +template static __device__ __forceinline__ void load_tiles_q6_K( + const char * __restrict__ x, int * __restrict__ x_ql, half2 * __restrict__ x_dm, int * __restrict__ x_qh, + int * __restrict__ x_sc, const int & kbx0, const int & i_max, const int & stride) { + GGML_UNUSED(x_qh); + + const int kbx = 0; // threadIdx.x / QI6_K + const int kqsx = threadIdx.x; // threadIdx.x % QI6_K + +#pragma unroll + for (int i0 = 0; i0 < mmq_y; i0 += nwarps) { + int i = i0 + threadIdx.y; + + if (need_check) { + i = min(i, i_max); + } + + const block_q6_K * bxi = (const block_q6_K *) x + kbx0 + i*stride + kbx; + const int ky = QR6_K*kqsx; + + const int ql = get_int_from_uint8(bxi->ql, kqsx); + const int ql0 = (ql >> 0) & 0x0F0F0F0F; + const int ql1 = (ql >> 4) & 0x0F0F0F0F; + + const int qh = get_int_from_uint8(bxi->qh, (QI6_K/4) * (kqsx / (QI6_K/2)) + kqsx % (QI6_K/4)); + const int qh0 = ((qh >> (2 * ((kqsx % (QI6_K/2)) / (QI6_K/4)))) << 4) & 0x30303030; + const int qh1 = (qh >> (2 * ((kqsx % (QI6_K/2)) / (QI6_K/4)))) & 0x30303030; + + const int kq0 = ky - ky % QI6_K + threadIdx.x % (QI6_K/2) + 0; + const int kq1 = ky - ky % QI6_K + threadIdx.x % (QI6_K/2) + (QI6_K/2); + + x_ql[i * (2*WARP_SIZE + 1) + kq0] = __vsubss4(ql0 | qh0, 0x20202020); + x_ql[i * (2*WARP_SIZE + 1) + kq1] = __vsubss4(ql1 | qh1, 0x20202020); + } + + const int blocks_per_tile_x_row = WARP_SIZE / QI6_K; // == 1 if QK_K == 256 + const int kbxd = threadIdx.x % blocks_per_tile_x_row; // == 0 if QK_K == 256 + float * x_dmf = (float *) x_dm; + +#pragma unroll + for (int i0 = 0; i0 < mmq_y; i0 += nwarps * QI6_K) { + int i = (i0 + threadIdx.y * QI6_K + threadIdx.x / blocks_per_tile_x_row) % mmq_y; + + if (need_check) { + i = min(i, i_max); + } + + const block_q6_K * bxi = (const block_q6_K *) x + kbx0 + i*stride + kbxd; + + x_dmf[i * (WARP_SIZE/QI6_K) + i / QI6_K + kbxd] = bxi->d; + } + +#pragma unroll + for (int i0 = 0; i0 < mmq_y; i0 += nwarps * 8) { + int i = (i0 + threadIdx.y * 8 + threadIdx.x / (WARP_SIZE/8)) % mmq_y; + + if (need_check) { + i = min(i, i_max); + } + + const block_q6_K * bxi = (const block_q6_K *) x + kbx0 + i*stride + (threadIdx.x % (WARP_SIZE/8)) / 4; + + x_sc[i * (WARP_SIZE/8) + i / 8 + threadIdx.x % (WARP_SIZE/8)] = get_int_from_int8(bxi->scales, threadIdx.x % (QI6_K/8)); + } +} + +template +static __device__ __forceinline__ void vec_dot_q6_K_q8_1_mul_mat( + const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc, + const int * __restrict__ y_qs, const half2 * __restrict__ y_ds, float * __restrict__ sum, const int & k0) { + + GGML_UNUSED(x_qh); + +#pragma unroll + for (int j0 = 0; j0 < mmq_x; j0 += nwarps) { + const int j = j0 + threadIdx.y; + +#pragma unroll + for (int i0 = 0; i0 < mmq_y; i0 += WARP_SIZE) { + const int i = i0 + threadIdx.x; + + const float * x_dmf = (const float *) x_dm; + const float * y_df = (const float *) y_ds; + + const int8_t * sc = ((const int8_t *) &x_sc[i * (WARP_SIZE/8) + i/8 + k0/8]); + + const int index_x = i * (QR6_K*WARP_SIZE + 1) + QR6_K*k0; + const int index_y = j * WARP_SIZE + (QR6_K*k0) % WARP_SIZE; + sum[j0/nwarps*mmq_y/WARP_SIZE + i0/WARP_SIZE] += vec_dot_q6_K_q8_1_impl_mmq( + &x_ql[index_x], &y_qs[index_y], sc, x_dmf[i * (WARP_SIZE/QI6_K) + i/QI6_K], &y_df[index_y/QI8_1]); + } + } +} + +// ------------------------------------------------------------------------------------------------------------------------------------- + +template +struct mmq_type_traits; + +template +struct mmq_type_traits { + static constexpr bool need_sum = true; + static constexpr int vdr = VDR_Q4_0_Q8_1_MMQ; + static constexpr load_tiles_mmq_t load_tiles = load_tiles_q4_0; + static constexpr vec_dot_mmq_t vec_dot = vec_dot_q4_0_q8_1_mul_mat; +}; + +template +struct mmq_type_traits { + static constexpr bool need_sum = true; + static constexpr int vdr = VDR_Q4_1_Q8_1_MMQ; + static constexpr load_tiles_mmq_t load_tiles = load_tiles_q4_1; + static constexpr vec_dot_mmq_t vec_dot = vec_dot_q4_1_q8_1_mul_mat; +}; + +template +struct mmq_type_traits { + static constexpr bool need_sum = false; + static constexpr int vdr = VDR_Q5_0_Q8_1_MMQ; + static constexpr load_tiles_mmq_t load_tiles = load_tiles_q5_0; + static constexpr vec_dot_mmq_t vec_dot = vec_dot_q5_0_q8_1_mul_mat; +}; + +template +struct mmq_type_traits { + static constexpr bool need_sum = true; + static constexpr int vdr = VDR_Q5_1_Q8_1_MMQ; + static constexpr load_tiles_mmq_t load_tiles = load_tiles_q5_1; + static constexpr vec_dot_mmq_t vec_dot = vec_dot_q5_1_q8_1_mul_mat; +}; + +template +struct mmq_type_traits { + static constexpr bool need_sum = false; + static constexpr int vdr = VDR_Q8_0_Q8_1_MMQ; + static constexpr load_tiles_mmq_t load_tiles = load_tiles_q8_0; + static constexpr vec_dot_mmq_t vec_dot = vec_dot_q8_0_q8_1_mul_mat; +}; + +template +struct mmq_type_traits { + static constexpr bool need_sum = false; + static constexpr int vdr = VDR_Q2_K_Q8_1_MMQ; + static constexpr load_tiles_mmq_t load_tiles = load_tiles_q2_K; + static constexpr vec_dot_mmq_t vec_dot = vec_dot_q2_K_q8_1_mul_mat; +}; + +template +struct mmq_type_traits { + static constexpr bool need_sum = false; + static constexpr int vdr = VDR_Q3_K_Q8_1_MMQ; + static constexpr load_tiles_mmq_t load_tiles = load_tiles_q3_K; + static constexpr vec_dot_mmq_t vec_dot = vec_dot_q3_K_q8_1_mul_mat; +}; + +template +struct mmq_type_traits { + static constexpr bool need_sum = true; + static constexpr int vdr = VDR_Q4_K_Q8_1_MMQ; + static constexpr load_tiles_mmq_t load_tiles = load_tiles_q4_K; + static constexpr vec_dot_mmq_t vec_dot = vec_dot_q4_K_q8_1_mul_mat; +}; + +template +struct mmq_type_traits { + static constexpr bool need_sum = true; + static constexpr int vdr = VDR_Q5_K_Q8_1_MMQ; + static constexpr load_tiles_mmq_t load_tiles = load_tiles_q5_K; + static constexpr vec_dot_mmq_t vec_dot = vec_dot_q5_K_q8_1_mul_mat; +}; + +template +struct mmq_type_traits { + static constexpr bool need_sum = false; + static constexpr int vdr = VDR_Q6_K_Q8_1_MMQ; + static constexpr load_tiles_mmq_t load_tiles = load_tiles_q6_K; + static constexpr vec_dot_mmq_t vec_dot = vec_dot_q6_K_q8_1_mul_mat; +}; + +template +#if defined(GGML_USE_HIPBLAS) && defined(__HIP_PLATFORM_AMD__) +#if defined(RDNA3) || defined(RDNA2) + __launch_bounds__(WARP_SIZE*nwarps, 2) +#endif // defined(RDNA3) || defined(RDNA2) +#else +#if __CUDA_ARCH__ >= CC_VOLTA + __launch_bounds__(WARP_SIZE*nwarps, 1) +#else + __launch_bounds__(WARP_SIZE*nwarps, type == GGML_TYPE_Q2_K ? 1 : 2) +#endif // __CUDA_ARCH__ >= CC_VOLTA +#endif // defined(GGML_USE_HIPBLAS) && defined(__HIP_PLATFORM_AMD__) +static __global__ void mul_mat_q( + const char * __restrict__ x, const char * __restrict__ yc, float * __restrict__ dst, + const int ne00, const int ne01, const int stride00, const int ne10, const int ne11, const int ne0) { + + // Skip unused template specializations for faster compilation: + if (mmq_x > get_mmq_x_max_device()) { + NO_DEVICE_CODE; + return; + } + + constexpr int qk = ggml_cuda_type_traits::qk; + constexpr int qr = ggml_cuda_type_traits::qr; + constexpr int qi = ggml_cuda_type_traits::qi; + constexpr int mmq_y = get_mmq_y_device(mmq_x); + constexpr bool need_sum = mmq_type_traits::need_sum; + constexpr int vdr = mmq_type_traits::vdr; + constexpr load_tiles_mmq_t load_tiles = mmq_type_traits::load_tiles; + constexpr vec_dot_mmq_t vec_dot = mmq_type_traits::vec_dot; + + constexpr tile_x_sizes txs = get_tile_x_sizes_device(type); + + extern __shared__ char data_mul_mat_q[]; + int * tile_x_ql = (int *) data_mul_mat_q; + half2 * tile_x_dm = (half2 *) (tile_x_ql + txs.ql); + int * tile_x_qh = (int *) (tile_x_dm + txs.dm); + int * tile_x_sc = (int *) (tile_x_qh + txs.qh); + int * tile_y_qs = (int *) (tile_x_sc + txs.sc); // [mmq_x * WARP_SIZE] + half2 * tile_y_ds = (half2 *) (tile_y_qs + mmq_x*WARP_SIZE); // [mmq_x * WARP_SIZE/QI8_1]; + + const block_q8_1 * y = (const block_q8_1 *) yc; + + const int blocks_per_row_x = ne00 / qk; + const int blocks_per_col_y = ne10 / QK8_1; + const int blocks_per_warp = WARP_SIZE / qi; + + const int & ne1 = ne11; + + const int tile_x_max_i = ne01 - blockIdx.x*mmq_y - 1; + + float sum[(mmq_x/nwarps) * (mmq_y/WARP_SIZE)] = {0.0f}; + + for (int kb0 = 0; kb0 < blocks_per_row_x; kb0 += blocks_per_warp) { + + load_tiles(x, tile_x_ql, tile_x_dm, tile_x_qh, tile_x_sc, stride00*blockIdx.x*mmq_y + kb0, tile_x_max_i, stride00); + +#pragma unroll + for (int kr = 0; kr < qr; ++kr) { + const int kqs = kr*WARP_SIZE + threadIdx.x; + const int kbxd = kqs / QI8_1; + +#pragma unroll + for (int i0 = 0; i0 < mmq_x; i0 += nwarps) { + const int i = min(blockIdx.y*mmq_x + threadIdx.y + i0, ne11-1); // to prevent out-of-bounds memory accesses + + const block_q8_1 * by0 = &y[i*blocks_per_col_y + kb0 * (qk/QK8_1) + kbxd]; + + const int index_y = (i0 + threadIdx.y) * WARP_SIZE + kqs % WARP_SIZE; + tile_y_qs[index_y] = get_int_from_int8_aligned(by0->qs, threadIdx.x % QI8_1); + } + +#pragma unroll + for (int ids0 = 0; ids0 < mmq_x; ids0 += nwarps * QI8_1) { + const int ids = (ids0 + threadIdx.y * QI8_1 + threadIdx.x / (WARP_SIZE/QI8_1)) % mmq_x; + const int kby = threadIdx.x % (WARP_SIZE/QI8_1); + const int i_y_eff = min(blockIdx.y*mmq_x + ids, ne11-1); + + // if the sum is not needed it's faster to transform the scale to f32 ahead of time + const half2 * dsi_src = &y[i_y_eff*blocks_per_col_y + kb0 * (qk/QK8_1) + kr*(WARP_SIZE/QI8_1) + kby].ds; + half2 * dsi_dst = &tile_y_ds[ids * (WARP_SIZE/QI8_1) + kby]; + if (need_sum) { + *dsi_dst = *dsi_src; + } else { + float * dfi_dst = (float *) dsi_dst; + *dfi_dst = __low2float(*dsi_src); + } + } + + __syncthreads(); + +// #pragma unroll // unrolling this loop causes too much register pressure + for (int k0 = kr*WARP_SIZE/qr; k0 < (kr+1)*WARP_SIZE/qr; k0 += vdr) { + vec_dot(tile_x_ql, tile_x_dm, tile_x_qh, tile_x_sc, tile_y_qs, tile_y_ds, sum, k0); + } + + __syncthreads(); + } + } + +#pragma unroll + for (int j0 = 0; j0 < mmq_x; j0 += nwarps) { + const int j = blockIdx.y*mmq_x + j0 + threadIdx.y; + + if (j >= ne1) { + return; + } + +#pragma unroll + for (int i0 = 0; i0 < mmq_y; i0 += WARP_SIZE) { + const int i = blockIdx.x*mmq_y + i0 + threadIdx.x; + + if (need_check && i >= ne0) { + continue; + } + + dst[j*ne0 + i] = sum[(j0/nwarps) * (mmq_y/WARP_SIZE) + i0/WARP_SIZE]; + } + } +} + +struct mmq_args { + const char * x; const char * y; float * dst; + int64_t ne00; int64_t ne01; int64_t stride00; + int64_t ne10; int64_t ne11; + int64_t ne0; +}; + +template +static void launch_mul_mat_q(const mmq_args & args, cudaStream_t stream) { + const int id = ggml_cuda_get_device(); + const int cc = ggml_cuda_info().devices[id].cc; + const int mmq_y = get_mmq_y_host(cc, mmq_x); + + const int block_num_x = (args.ne01 + mmq_y - 1) / mmq_y; + const int block_num_y = (args.ne11 + mmq_x - 1) / mmq_x; + const dim3 block_nums(block_num_x, block_num_y, 1); + const dim3 block_dims(WARP_SIZE, nwarps, 1); + + const tile_x_sizes txs = get_tile_x_sizes_host(type, mmq_y); + const int shmem_x = txs.ql*sizeof(int) + txs.dm*sizeof(half2) + txs.qh*sizeof(int) + txs.sc*sizeof(int); + const int shmem_y = mmq_x*WARP_SIZE*sizeof(int) + mmq_x*(WARP_SIZE/QI8_1)*sizeof(half2); + const int shmem = shmem_x + shmem_y; + +#if !(defined(GGML_USE_HIPBLAS) && defined(__HIP_PLATFORM_AMD__)) + static bool shmem_limit_raised[GGML_CUDA_MAX_DEVICES] = {false}; + if (!shmem_limit_raised[id]) { + CUDA_CHECK(cudaFuncSetAttribute(mul_mat_q, cudaFuncAttributeMaxDynamicSharedMemorySize, shmem)); + CUDA_CHECK(cudaFuncSetAttribute(mul_mat_q, cudaFuncAttributeMaxDynamicSharedMemorySize, shmem)); + shmem_limit_raised[id] = true; + } +#endif // !(defined(GGML_USE_HIPBLAS) && defined(__HIP_PLATFORM_AMD__)) + + if (args.ne01 % mmq_y == 0) { + const bool need_check = false; + mul_mat_q<<>> + (args.x, args.y, args.dst, args.ne00, args.ne01, args.stride00, args.ne10, args.ne11, args.ne0); + } else { + const bool need_check = true; + mul_mat_q<<>> + (args.x, args.y, args.dst, args.ne00, args.ne01, args.stride00, args.ne10, args.ne11, args.ne0); + } +} + +template +void mul_mat_q_case(const mmq_args & args, cudaStream_t stream) { + const int id = ggml_cuda_get_device(); + const int nsm = ggml_cuda_info().devices[id].nsm; + const int cc = ggml_cuda_info().devices[id].cc; + + const int mmq_x_max = get_mmq_x_max_host(cc); + const int mmq_y = get_mmq_y_host(cc, mmq_x_max); + const int block_num_y = (args.ne01 + mmq_y - 1) / mmq_y; + + int mmq_x_best = 0; + int nwaves_best = INT_MAX; + + for (int mmq_x = 8; mmq_x <= mmq_x_max && nwaves_best > 1; mmq_x += 8) { + const int block_num_x = (args.ne11 + mmq_x - 1) / mmq_x; + const int nwaves = (block_num_x*block_num_y + nsm - 1) / nsm; + + if (nwaves < nwaves_best) { + mmq_x_best = mmq_x; + nwaves_best = nwaves; + } + } + + switch (mmq_x_best) { + case 8: + launch_mul_mat_q(args, stream); + break; + case 16: + launch_mul_mat_q(args, stream); + break; + case 24: + launch_mul_mat_q(args, stream); + break; + case 32: + launch_mul_mat_q(args, stream); + break; + case 40: + launch_mul_mat_q(args, stream); + break; + case 48: + launch_mul_mat_q(args, stream); + break; + case 56: + launch_mul_mat_q(args, stream); + break; + case 64: + launch_mul_mat_q(args, stream); + break; + case 72: + launch_mul_mat_q(args, stream); + break; + case 80: + launch_mul_mat_q(args, stream); + break; + case 88: + launch_mul_mat_q(args, stream); + break; + case 96: + launch_mul_mat_q(args, stream); + break; + case 104: + launch_mul_mat_q(args, stream); + break; + case 112: + launch_mul_mat_q(args, stream); + break; + case 120: + launch_mul_mat_q(args, stream); + break; + case 128: + launch_mul_mat_q(args, stream); + break; + default: + GGML_ASSERT(false); + break; + } +} + +#define DECL_MMQ_CASE(type) \ + template void mul_mat_q_case(const mmq_args & args, cudaStream_t stream) \ + +extern DECL_MMQ_CASE(GGML_TYPE_Q4_0); +extern DECL_MMQ_CASE(GGML_TYPE_Q4_1); +extern DECL_MMQ_CASE(GGML_TYPE_Q5_0); +extern DECL_MMQ_CASE(GGML_TYPE_Q5_1); +extern DECL_MMQ_CASE(GGML_TYPE_Q8_0); +extern DECL_MMQ_CASE(GGML_TYPE_Q2_K); +extern DECL_MMQ_CASE(GGML_TYPE_Q3_K); +extern DECL_MMQ_CASE(GGML_TYPE_Q4_K); +extern DECL_MMQ_CASE(GGML_TYPE_Q5_K); +extern DECL_MMQ_CASE(GGML_TYPE_Q6_K); + +// ------------------------------------------------------------------------------------------------------------------------- void ggml_cuda_op_mul_mat_q( ggml_backend_cuda_context & ctx, diff --git a/ggml-cuda/mmvq.cu b/ggml-cuda/mmvq.cu index 65cc1bcaad697..5f056e91e5460 100644 --- a/ggml-cuda/mmvq.cu +++ b/ggml-cuda/mmvq.cu @@ -1,9 +1,47 @@ #include "mmvq.cuh" #include "vecdotq.cuh" -typedef float (*vec_dot_q_cuda_t)(const void * __restrict__ vbq, const block_q8_1 * __restrict__ bq8_1, const int & iqs); +typedef float (*vec_dot_q_cuda_t)(const void * __restrict__ vbq, const block_q8_1 * __restrict__ bq8_1, const int & kbx, const int & iqs); + +static constexpr __device__ vec_dot_q_cuda_t get_vec_dot_q_cuda(ggml_type type) { + return type == GGML_TYPE_Q4_0 ? vec_dot_q4_0_q8_1 : + type == GGML_TYPE_Q4_1 ? vec_dot_q4_1_q8_1 : + type == GGML_TYPE_Q5_0 ? vec_dot_q5_0_q8_1 : + type == GGML_TYPE_Q5_1 ? vec_dot_q5_1_q8_1 : + type == GGML_TYPE_Q8_0 ? vec_dot_q8_0_q8_1 : + type == GGML_TYPE_Q2_K ? vec_dot_q2_K_q8_1 : + type == GGML_TYPE_Q3_K ? vec_dot_q3_K_q8_1 : + type == GGML_TYPE_Q4_K ? vec_dot_q4_K_q8_1 : + type == GGML_TYPE_Q5_K ? vec_dot_q5_K_q8_1 : + type == GGML_TYPE_Q6_K ? vec_dot_q6_K_q8_1 : + type == GGML_TYPE_IQ2_XXS ? vec_dot_iq2_xxs_q8_1 : + type == GGML_TYPE_IQ2_XS ? vec_dot_iq2_xs_q8_1 : + type == GGML_TYPE_IQ2_S ? vec_dot_iq2_s_q8_1 : + type == GGML_TYPE_IQ3_XXS ? vec_dot_iq3_xxs_q8_1 : + type == GGML_TYPE_IQ1_S ? vec_dot_iq1_s_q8_1 : + type == GGML_TYPE_IQ1_M ? vec_dot_iq1_m_q8_1 : + type == GGML_TYPE_IQ4_NL ? vec_dot_iq4_nl_q8_1 : + type == GGML_TYPE_IQ4_XS ? vec_dot_iq4_xs_q8_1 : + type == GGML_TYPE_IQ3_S ? vec_dot_iq3_s_q8_1 : + nullptr; +} + +static constexpr __device__ int get_vdr_mmvq(ggml_type type) { + return type == GGML_TYPE_Q4_0 ? VDR_Q4_0_Q8_1_MMVQ : + type == GGML_TYPE_Q4_1 ? VDR_Q4_1_Q8_1_MMVQ : + type == GGML_TYPE_Q5_0 ? VDR_Q5_0_Q8_1_MMVQ : + type == GGML_TYPE_Q5_1 ? VDR_Q5_1_Q8_1_MMVQ : + type == GGML_TYPE_Q8_0 ? VDR_Q8_0_Q8_1_MMVQ : + type == GGML_TYPE_Q2_K ? VDR_Q2_K_Q8_1_MMVQ : + type == GGML_TYPE_Q3_K ? VDR_Q3_K_Q8_1_MMVQ : + type == GGML_TYPE_Q4_K ? VDR_Q4_K_Q8_1_MMVQ : + type == GGML_TYPE_Q5_K ? VDR_Q5_K_Q8_1_MMVQ : + type == GGML_TYPE_Q6_K ? VDR_Q6_K_Q8_1_MMVQ : + type == GGML_TYPE_IQ4_NL ? VDR_Q4_K_Q8_1_MMVQ : + 1; +} -template +template #if !(defined(GGML_USE_HIPBLAS) && defined(__HIP_PLATFORM_AMD__)) // tell the compiler to use as many registers as it wants, see nwarps definition below __launch_bounds__((ncols_y <= 4 ? 4 : 2)*WARP_SIZE, 1) @@ -12,6 +50,12 @@ static __global__ void mul_mat_vec_q( const void * __restrict__ vx, const void * __restrict__ vy, float * __restrict__ dst, const int ncols_x, const int nrows_x, const int nrows_y, const int nrows_dst) { + constexpr int qk = ggml_cuda_type_traits::qk; + constexpr int qi = ggml_cuda_type_traits::qi; + constexpr int vdr = get_vdr_mmvq(type); + + constexpr vec_dot_q_cuda_t vec_dot_q_cuda = get_vec_dot_q_cuda(type); + #if defined(GGML_USE_HIPBLAS) && defined(__HIP_PLATFORM_AMD__) && (defined(RDNA2) || defined(RDNA3)) constexpr int nwarps = 1; constexpr int rows_per_cuda_block = 1; @@ -29,7 +73,6 @@ static __global__ void mul_mat_vec_q( // partial sum for each thread float tmp[ncols_y][rows_per_cuda_block] = {0.0f}; - const block_q_t * x = (const block_q_t *) vx; const block_q8_1 * y = (const block_q8_1 *) vy; for (int kbx = tid / (qi/vdr); kbx < blocks_per_row_x; kbx += blocks_per_iter) { @@ -42,8 +85,7 @@ static __global__ void mul_mat_vec_q( for (int j = 0; j < ncols_y; ++j) { #pragma unroll for (int i = 0; i < rows_per_cuda_block; ++i) { - tmp[j][i] += vec_dot_q_cuda( - &x[kbx + (row0 + i)*blocks_per_row_x], &y[j*blocks_per_col_y + kby], kqs); + tmp[j][i] += vec_dot_q_cuda(vx, &y[j*blocks_per_col_y + kby], (row0 + i)*blocks_per_row_x + kbx, kqs); } } } @@ -81,12 +123,12 @@ static __global__ void mul_mat_vec_q( } } -template +template static void mul_mat_vec_q_cuda( const void * vx, const void * vy, float * dst, const int ncols_x, const int nrows_x, const int nrows_y, const int ncols_y, const int nrows_dst, cudaStream_t stream) { - GGML_ASSERT(ncols_x % qk == 0); + GGML_ASSERT(ncols_x % ggml_blck_size(type) == 0); GGML_ASSERT(ncols_y <= MMVQ_MAX_BATCH_SIZE); int id = ggml_cuda_get_device(); @@ -124,36 +166,28 @@ static void mul_mat_vec_q_cuda( switch (ncols_y) { case 1: - mul_mat_vec_q<1, qk, qi, block_q_t, vdr, vec_dot> - <<>>(vx, vy, dst, ncols_x, nrows_x, nrows_y, nrows_dst); + mul_mat_vec_q<<>>(vx, vy, dst, ncols_x, nrows_x, nrows_y, nrows_dst); break; case 2: - mul_mat_vec_q<2, qk, qi, block_q_t, vdr, vec_dot> - <<>>(vx, vy, dst, ncols_x, nrows_x, nrows_y, nrows_dst); + mul_mat_vec_q<<>>(vx, vy, dst, ncols_x, nrows_x, nrows_y, nrows_dst); break; case 3: - mul_mat_vec_q<3, qk, qi, block_q_t, vdr, vec_dot> - <<>>(vx, vy, dst, ncols_x, nrows_x, nrows_y, nrows_dst); + mul_mat_vec_q<<>>(vx, vy, dst, ncols_x, nrows_x, nrows_y, nrows_dst); break; case 4: - mul_mat_vec_q<4, qk, qi, block_q_t, vdr, vec_dot> - <<>>(vx, vy, dst, ncols_x, nrows_x, nrows_y, nrows_dst); + mul_mat_vec_q<<>>(vx, vy, dst, ncols_x, nrows_x, nrows_y, nrows_dst); break; case 5: - mul_mat_vec_q<5, qk, qi, block_q_t, vdr, vec_dot> - <<>>(vx, vy, dst, ncols_x, nrows_x, nrows_y, nrows_dst); + mul_mat_vec_q<<>>(vx, vy, dst, ncols_x, nrows_x, nrows_y, nrows_dst); break; case 6: - mul_mat_vec_q<6, qk, qi, block_q_t, vdr, vec_dot> - <<>>(vx, vy, dst, ncols_x, nrows_x, nrows_y, nrows_dst); + mul_mat_vec_q<<>>(vx, vy, dst, ncols_x, nrows_x, nrows_y, nrows_dst); break; case 7: - mul_mat_vec_q<7, qk, qi, block_q_t, vdr, vec_dot> - <<>>(vx, vy, dst, ncols_x, nrows_x, nrows_y, nrows_dst); + mul_mat_vec_q<<>>(vx, vy, dst, ncols_x, nrows_x, nrows_y, nrows_dst); break; case 8: - mul_mat_vec_q<8, qk, qi, block_q_t, vdr, vec_dot> - <<>>(vx, vy, dst, ncols_x, nrows_x, nrows_y, nrows_dst); + mul_mat_vec_q<<>>(vx, vy, dst, ncols_x, nrows_x, nrows_y, nrows_dst); break; default: GGML_ASSERT(false); @@ -165,152 +199,133 @@ static void mul_mat_vec_q4_0_q8_1_cuda( const void * vx, const void * vy, float * dst, const int ncols_x, const int nrows_x, const int nrows_y, const int ncols_y, const int nrows_dst, cudaStream_t stream) { - mul_mat_vec_q_cuda - (vx, vy, dst, ncols_x, nrows_x, nrows_y, ncols_y, nrows_dst, stream); + mul_mat_vec_q_cuda(vx, vy, dst, ncols_x, nrows_x, nrows_y, ncols_y, nrows_dst, stream); } static void mul_mat_vec_q4_1_q8_1_cuda( const void * vx, const void * vy, float * dst, const int ncols_x, const int nrows_x, const int nrows_y, const int ncols_y, const int nrows_dst, cudaStream_t stream) { - mul_mat_vec_q_cuda - (vx, vy, dst, ncols_x, nrows_x, nrows_y, ncols_y, nrows_dst, stream); + mul_mat_vec_q_cuda(vx, vy, dst, ncols_x, nrows_x, nrows_y, ncols_y, nrows_dst, stream); } static void mul_mat_vec_q5_0_q8_1_cuda( const void * vx, const void * vy, float * dst, const int ncols_x, const int nrows_x, const int nrows_y, const int ncols_y, const int nrows_dst, cudaStream_t stream) { - mul_mat_vec_q_cuda - (vx, vy, dst, ncols_x, nrows_x, nrows_y, ncols_y, nrows_dst, stream); + mul_mat_vec_q_cuda(vx, vy, dst, ncols_x, nrows_x, nrows_y, ncols_y, nrows_dst, stream); } static void mul_mat_vec_q5_1_q8_1_cuda( const void * vx, const void * vy, float * dst, const int ncols_x, const int nrows_x, const int nrows_y, const int ncols_y, const int nrows_dst, cudaStream_t stream) { - mul_mat_vec_q_cuda - (vx, vy, dst, ncols_x, nrows_x, nrows_y, ncols_y, nrows_dst, stream); + mul_mat_vec_q_cuda(vx, vy, dst, ncols_x, nrows_x, nrows_y, ncols_y, nrows_dst, stream); } static void mul_mat_vec_q8_0_q8_1_cuda( const void * vx, const void * vy, float * dst, const int ncols_x, const int nrows_x, const int nrows_y, const int ncols_y, const int nrows_dst, cudaStream_t stream) { - mul_mat_vec_q_cuda - (vx, vy, dst, ncols_x, nrows_x, nrows_y, ncols_y, nrows_dst, stream); + mul_mat_vec_q_cuda(vx, vy, dst, ncols_x, nrows_x, nrows_y, ncols_y, nrows_dst, stream); } static void mul_mat_vec_q2_K_q8_1_cuda( const void * vx, const void * vy, float * dst, const int ncols_x, const int nrows_x, const int nrows_y, const int ncols_y, const int nrows_dst, cudaStream_t stream) { - mul_mat_vec_q_cuda - (vx, vy, dst, ncols_x, nrows_x, nrows_y, ncols_y, nrows_dst, stream); + mul_mat_vec_q_cuda(vx, vy, dst, ncols_x, nrows_x, nrows_y, ncols_y, nrows_dst, stream); } static void mul_mat_vec_q3_K_q8_1_cuda( const void * vx, const void * vy, float * dst, const int ncols_x, const int nrows_x, const int nrows_y, const int ncols_y, const int nrows_dst, cudaStream_t stream) { - mul_mat_vec_q_cuda - (vx, vy, dst, ncols_x, nrows_x, nrows_y, ncols_y, nrows_dst, stream); + mul_mat_vec_q_cuda(vx, vy, dst, ncols_x, nrows_x, nrows_y, ncols_y, nrows_dst, stream); } static void mul_mat_vec_q4_K_q8_1_cuda( const void * vx, const void * vy, float * dst, const int ncols_x, const int nrows_x, const int nrows_y, const int ncols_y, const int nrows_dst, cudaStream_t stream) { - mul_mat_vec_q_cuda - (vx, vy, dst, ncols_x, nrows_x, nrows_y, ncols_y, nrows_dst, stream); + mul_mat_vec_q_cuda(vx, vy, dst, ncols_x, nrows_x, nrows_y, ncols_y, nrows_dst, stream); } static void mul_mat_vec_q5_K_q8_1_cuda( const void * vx, const void * vy, float * dst, const int ncols_x, const int nrows_x, const int nrows_y, const int ncols_y, const int nrows_dst, cudaStream_t stream) { - mul_mat_vec_q_cuda - (vx, vy, dst, ncols_x, nrows_x, nrows_y, ncols_y, nrows_dst, stream); + mul_mat_vec_q_cuda(vx, vy, dst, ncols_x, nrows_x, nrows_y, ncols_y, nrows_dst, stream); } static void mul_mat_vec_q6_K_q8_1_cuda( const void * vx, const void * vy, float * dst, const int ncols_x, const int nrows_x, const int nrows_y, const int ncols_y, const int nrows_dst, cudaStream_t stream) { - mul_mat_vec_q_cuda - (vx, vy, dst, ncols_x, nrows_x, nrows_y, ncols_y, nrows_dst, stream); + mul_mat_vec_q_cuda(vx, vy, dst, ncols_x, nrows_x, nrows_y, ncols_y, nrows_dst, stream); } static void mul_mat_vec_iq2_xxs_q8_1_cuda( const void * vx, const void * vy, float * dst, const int ncols_x, const int nrows_x, const int nrows_y, const int ncols_y, const int nrows_dst, cudaStream_t stream) { - mul_mat_vec_q_cuda - (vx, vy, dst, ncols_x, nrows_x, nrows_y, ncols_y, nrows_dst, stream); + mul_mat_vec_q_cuda(vx, vy, dst, ncols_x, nrows_x, nrows_y, ncols_y, nrows_dst, stream); } static void mul_mat_vec_iq2_xs_q8_1_cuda( const void * vx, const void * vy, float * dst, const int ncols_x, const int nrows_x, const int nrows_y, const int ncols_y, const int nrows_dst, cudaStream_t stream) { - mul_mat_vec_q_cuda - (vx, vy, dst, ncols_x, nrows_x, nrows_y, ncols_y, nrows_dst, stream); + mul_mat_vec_q_cuda(vx, vy, dst, ncols_x, nrows_x, nrows_y, ncols_y, nrows_dst, stream); } static void mul_mat_vec_iq2_s_q8_1_cuda( const void * vx, const void * vy, float * dst, const int ncols_x, const int nrows_x, const int nrows_y, const int ncols_y, const int nrows_dst, cudaStream_t stream) { - mul_mat_vec_q_cuda - (vx, vy, dst, ncols_x, nrows_x, nrows_y, ncols_y, nrows_dst, stream); + mul_mat_vec_q_cuda(vx, vy, dst, ncols_x, nrows_x, nrows_y, ncols_y, nrows_dst, stream); } static void mul_mat_vec_iq3_xxs_q8_1_cuda( const void * vx, const void * vy, float * dst, const int ncols_x, const int nrows_x, const int nrows_y, const int ncols_y, const int nrows_dst, cudaStream_t stream) { - mul_mat_vec_q_cuda - (vx, vy, dst, ncols_x, nrows_x, nrows_y, ncols_y, nrows_dst, stream); + mul_mat_vec_q_cuda(vx, vy, dst, ncols_x, nrows_x, nrows_y, ncols_y, nrows_dst, stream); } static void mul_mat_vec_iq1_s_q8_1_cuda( const void * vx, const void * vy, float * dst, const int ncols_x, const int nrows_x, const int nrows_y, const int ncols_y, const int nrows_dst, cudaStream_t stream) { - mul_mat_vec_q_cuda - (vx, vy, dst, ncols_x, nrows_x, nrows_y, ncols_y, nrows_dst, stream); + mul_mat_vec_q_cuda(vx, vy, dst, ncols_x, nrows_x, nrows_y, ncols_y, nrows_dst, stream); } static void mul_mat_vec_iq1_m_q8_1_cuda( const void * vx, const void * vy, float * dst, const int ncols_x, const int nrows_x, const int nrows_y, const int ncols_y, const int nrows_dst, cudaStream_t stream) { - mul_mat_vec_q_cuda - (vx, vy, dst, ncols_x, nrows_x, nrows_y, ncols_y, nrows_dst, stream); + mul_mat_vec_q_cuda(vx, vy, dst, ncols_x, nrows_x, nrows_y, ncols_y, nrows_dst, stream); } static void mul_mat_vec_iq4_nl_q8_1_cuda( const void * vx, const void * vy, float * dst, const int ncols_x, const int nrows_x, const int nrows_y, const int ncols_y, const int nrows_dst, cudaStream_t stream) { - mul_mat_vec_q_cuda - (vx, vy, dst, ncols_x, nrows_x, nrows_y, ncols_y, nrows_dst, stream); + mul_mat_vec_q_cuda(vx, vy, dst, ncols_x, nrows_x, nrows_y, ncols_y, nrows_dst, stream); } static void mul_mat_vec_iq4_xs_q8_1_cuda( const void * vx, const void * vy, float * dst, const int ncols_x, const int nrows_x, const int nrows_y, const int ncols_y, const int nrows_dst, cudaStream_t stream) { - mul_mat_vec_q_cuda - (vx, vy, dst, ncols_x, nrows_x, nrows_y, ncols_y, nrows_dst, stream); + mul_mat_vec_q_cuda(vx, vy, dst, ncols_x, nrows_x, nrows_y, ncols_y, nrows_dst, stream); } static void mul_mat_vec_iq3_s_q8_1_cuda( const void * vx, const void * vy, float * dst, const int ncols_x, const int nrows_x, const int nrows_y, const int ncols_y, const int nrows_dst, cudaStream_t stream) { - mul_mat_vec_q_cuda - (vx, vy, dst, ncols_x, nrows_x, nrows_y, ncols_y, nrows_dst, stream); + mul_mat_vec_q_cuda(vx, vy, dst, ncols_x, nrows_x, nrows_y, ncols_y, nrows_dst, stream); } void ggml_cuda_op_mul_mat_vec_q( diff --git a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-f16-f16.cu b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-f16-f16.cu index d7f1034751cc1..6696a238476d8 100644 --- a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-f16-f16.cu +++ b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-f16-f16.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f16.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-f16-q4_0.cu b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-f16-q4_0.cu index f3d8d2eda4991..dd070db2853f5 100644 --- a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-f16-q4_0.cu +++ b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-f16-q4_0.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f16.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-f16-q4_1.cu b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-f16-q4_1.cu index 9beb05ca23597..54dcde6f52324 100644 --- a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-f16-q4_1.cu +++ b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-f16-q4_1.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f16.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-f16-q5_0.cu b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-f16-q5_0.cu index 0c163dcba0613..4ec22f791912d 100644 --- a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-f16-q5_0.cu +++ b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-f16-q5_0.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f16.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-f16-q5_1.cu b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-f16-q5_1.cu index 3980167b3db91..3c15bf7f0ef16 100644 --- a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-f16-q5_1.cu +++ b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-f16-q5_1.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f16.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-f16-q8_0.cu b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-f16-q8_0.cu index fe099921d08db..7e61b5fdcdbca 100644 --- a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-f16-q8_0.cu +++ b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-f16-q8_0.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f16.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_0-f16.cu b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_0-f16.cu index d4d5e7999e393..fdb15b580cff8 100644 --- a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_0-f16.cu +++ b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_0-f16.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f16.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_0-q4_0.cu b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_0-q4_0.cu index f08b10c4d53c1..0f7c417d2c0c8 100644 --- a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_0-q4_0.cu +++ b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_0-q4_0.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f16.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_0-q4_1.cu b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_0-q4_1.cu index e8c3f8adc2a1e..851f33c43f040 100644 --- a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_0-q4_1.cu +++ b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_0-q4_1.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f16.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_0-q5_0.cu b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_0-q5_0.cu index c01416a13f6ac..763809cbeb44c 100644 --- a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_0-q5_0.cu +++ b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_0-q5_0.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f16.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_0-q5_1.cu b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_0-q5_1.cu index 46615f281cb18..f2a276e50e5fa 100644 --- a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_0-q5_1.cu +++ b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_0-q5_1.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f16.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_0-q8_0.cu b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_0-q8_0.cu index 72dcc1a2fe563..cb227f6f5ce1f 100644 --- a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_0-q8_0.cu +++ b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_0-q8_0.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f16.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_1-f16.cu b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_1-f16.cu index 9fa8a377d0c6f..97ac0520c71d1 100644 --- a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_1-f16.cu +++ b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_1-f16.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f16.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_1-q4_0.cu b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_1-q4_0.cu index 20ea86c6dcb89..c772b42634fe6 100644 --- a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_1-q4_0.cu +++ b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_1-q4_0.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f16.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_1-q4_1.cu b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_1-q4_1.cu index ed815957cb212..5cb7430819e4e 100644 --- a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_1-q4_1.cu +++ b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_1-q4_1.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f16.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_1-q5_0.cu b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_1-q5_0.cu index bbe9e6a1c8e61..98a709d171446 100644 --- a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_1-q5_0.cu +++ b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_1-q5_0.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f16.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_1-q5_1.cu b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_1-q5_1.cu index d12a616996a9b..4f2f947ae81e6 100644 --- a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_1-q5_1.cu +++ b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_1-q5_1.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f16.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_1-q8_0.cu b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_1-q8_0.cu index 1e901afcbbc99..11f96b6f65cee 100644 --- a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_1-q8_0.cu +++ b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_1-q8_0.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f16.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_0-f16.cu b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_0-f16.cu index a3f98ce37456c..b39bdc0611c0d 100644 --- a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_0-f16.cu +++ b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_0-f16.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f16.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_0-q4_0.cu b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_0-q4_0.cu index 1bae97243a062..bbd6a2c7f491c 100644 --- a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_0-q4_0.cu +++ b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_0-q4_0.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f16.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_0-q4_1.cu b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_0-q4_1.cu index 7258e9775da09..9d84ff2b19175 100644 --- a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_0-q4_1.cu +++ b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_0-q4_1.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f16.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_0-q5_0.cu b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_0-q5_0.cu index 08435c005e81c..bc8a5bff684ff 100644 --- a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_0-q5_0.cu +++ b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_0-q5_0.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f16.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_0-q5_1.cu b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_0-q5_1.cu index 17864e8e9cdf3..a679100c83807 100644 --- a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_0-q5_1.cu +++ b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_0-q5_1.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f16.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_0-q8_0.cu b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_0-q8_0.cu index 9239138c962ae..8f21bccf7f8da 100644 --- a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_0-q8_0.cu +++ b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_0-q8_0.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f16.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_1-f16.cu b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_1-f16.cu index e387d9c1da3e2..858b00fd74191 100644 --- a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_1-f16.cu +++ b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_1-f16.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f16.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_1-q4_0.cu b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_1-q4_0.cu index d69d3bbd683aa..0fc8011fac5fc 100644 --- a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_1-q4_0.cu +++ b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_1-q4_0.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f16.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_1-q4_1.cu b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_1-q4_1.cu index 61a4788166ed7..261fdf623e098 100644 --- a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_1-q4_1.cu +++ b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_1-q4_1.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f16.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_1-q5_0.cu b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_1-q5_0.cu index 89995080ac5f7..0fb8247383063 100644 --- a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_1-q5_0.cu +++ b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_1-q5_0.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f16.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_1-q5_1.cu b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_1-q5_1.cu index 9e6a58dff6759..a9d9d089bd314 100644 --- a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_1-q5_1.cu +++ b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_1-q5_1.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f16.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_1-q8_0.cu b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_1-q8_0.cu index 153cbfd86c82d..7d7b27920aa3e 100644 --- a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_1-q8_0.cu +++ b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_1-q8_0.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f16.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q8_0-f16.cu b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q8_0-f16.cu index 09d5765582c8f..a092ee2d50957 100644 --- a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q8_0-f16.cu +++ b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q8_0-f16.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f16.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q8_0-q4_0.cu b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q8_0-q4_0.cu index 3e3c91e68c219..db55927a19457 100644 --- a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q8_0-q4_0.cu +++ b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q8_0-q4_0.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f16.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q8_0-q4_1.cu b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q8_0-q4_1.cu index 7b973058f4a89..c3c21cefae047 100644 --- a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q8_0-q4_1.cu +++ b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q8_0-q4_1.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f16.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q8_0-q5_0.cu b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q8_0-q5_0.cu index a43a475d44439..35dd9f520802c 100644 --- a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q8_0-q5_0.cu +++ b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q8_0-q5_0.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f16.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q8_0-q5_1.cu b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q8_0-q5_1.cu index 5b570c0a3df41..050c22ac7c6c7 100644 --- a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q8_0-q5_1.cu +++ b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q8_0-q5_1.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f16.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q8_0-q8_0.cu b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q8_0-q8_0.cu index bf2cc684ef459..de4866c5e65ce 100644 --- a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q8_0-q8_0.cu +++ b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q8_0-q8_0.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f16.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs256-f16-f16.cu b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs256-f16-f16.cu index 7428e45ea2621..57a10bc4be4a3 100644 --- a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs256-f16-f16.cu +++ b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs256-f16-f16.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f16.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs64-f16-f16.cu b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs64-f16-f16.cu index 4aee830de1228..e0f08b46a7e35 100644 --- a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs64-f16-f16.cu +++ b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs64-f16-f16.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f16.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs64-f16-q4_0.cu b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs64-f16-q4_0.cu index 36acb63191518..1c8e8a467a8aa 100644 --- a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs64-f16-q4_0.cu +++ b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs64-f16-q4_0.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f16.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs64-f16-q4_1.cu b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs64-f16-q4_1.cu index a4090c3905507..cefed83fb9562 100644 --- a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs64-f16-q4_1.cu +++ b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs64-f16-q4_1.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f16.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs64-f16-q5_0.cu b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs64-f16-q5_0.cu index 17b6b2d117b52..aede6e3588195 100644 --- a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs64-f16-q5_0.cu +++ b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs64-f16-q5_0.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f16.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs64-f16-q5_1.cu b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs64-f16-q5_1.cu index 549e1cea1f379..1a1a92c788fbd 100644 --- a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs64-f16-q5_1.cu +++ b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs64-f16-q5_1.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f16.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs64-f16-q8_0.cu b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs64-f16-q8_0.cu index 66bcd820f9a20..ad667473d110b 100644 --- a/ggml-cuda/template-instances/fattn-vec-f16-instance-hs64-f16-q8_0.cu +++ b/ggml-cuda/template-instances/fattn-vec-f16-instance-hs64-f16-q8_0.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f16.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-f16-f16.cu b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-f16-f16.cu index 15933a29977d0..c499f455da971 100644 --- a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-f16-f16.cu +++ b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-f16-f16.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f32.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-f16-q4_0.cu b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-f16-q4_0.cu index 8aa7855839516..8286ebf373627 100644 --- a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-f16-q4_0.cu +++ b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-f16-q4_0.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f32.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-f16-q4_1.cu b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-f16-q4_1.cu index bde3924fd7a28..4587868825d21 100644 --- a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-f16-q4_1.cu +++ b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-f16-q4_1.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f32.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-f16-q5_0.cu b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-f16-q5_0.cu index 1708181c15874..d89103ce0c68f 100644 --- a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-f16-q5_0.cu +++ b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-f16-q5_0.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f32.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-f16-q5_1.cu b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-f16-q5_1.cu index 30fa6fa4cebf0..bb75fd42ff17d 100644 --- a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-f16-q5_1.cu +++ b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-f16-q5_1.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f32.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-f16-q8_0.cu b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-f16-q8_0.cu index 69673d50f4b3c..b1629817e79e3 100644 --- a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-f16-q8_0.cu +++ b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-f16-q8_0.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f32.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_0-f16.cu b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_0-f16.cu index d8b2b2e18496e..d8657604dab80 100644 --- a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_0-f16.cu +++ b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_0-f16.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f32.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_0-q4_0.cu b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_0-q4_0.cu index 01cce7ab50a7a..2e5bd2f1a3acc 100644 --- a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_0-q4_0.cu +++ b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_0-q4_0.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f32.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_0-q4_1.cu b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_0-q4_1.cu index fd5563b395a5f..be5f302d9f1d4 100644 --- a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_0-q4_1.cu +++ b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_0-q4_1.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f32.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_0-q5_0.cu b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_0-q5_0.cu index b13cc4a0c7e8d..8dd91cd72eb60 100644 --- a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_0-q5_0.cu +++ b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_0-q5_0.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f32.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_0-q5_1.cu b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_0-q5_1.cu index 86f1fc63701f3..4cb791502a157 100644 --- a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_0-q5_1.cu +++ b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_0-q5_1.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f32.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_0-q8_0.cu b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_0-q8_0.cu index 26e7df4be61f1..09dea426736e9 100644 --- a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_0-q8_0.cu +++ b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_0-q8_0.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f32.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_1-f16.cu b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_1-f16.cu index e4fda8952c75f..0fbb607694f25 100644 --- a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_1-f16.cu +++ b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_1-f16.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f32.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_1-q4_0.cu b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_1-q4_0.cu index bd15117b40db7..2aeab83b20d21 100644 --- a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_1-q4_0.cu +++ b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_1-q4_0.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f32.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_1-q4_1.cu b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_1-q4_1.cu index cb6c6a7606aac..599415b494741 100644 --- a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_1-q4_1.cu +++ b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_1-q4_1.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f32.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_1-q5_0.cu b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_1-q5_0.cu index 201b6641de102..e4f8e3083bb6b 100644 --- a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_1-q5_0.cu +++ b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_1-q5_0.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f32.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_1-q5_1.cu b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_1-q5_1.cu index 6da57a44aea08..34d166527e93a 100644 --- a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_1-q5_1.cu +++ b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_1-q5_1.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f32.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_1-q8_0.cu b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_1-q8_0.cu index 47623c9bff42c..4bebef45a37cb 100644 --- a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_1-q8_0.cu +++ b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_1-q8_0.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f32.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_0-f16.cu b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_0-f16.cu index 82c6861d24f7a..326468da2fb24 100644 --- a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_0-f16.cu +++ b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_0-f16.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f32.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_0-q4_0.cu b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_0-q4_0.cu index 24a80c2b042f5..511b58f4ecc72 100644 --- a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_0-q4_0.cu +++ b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_0-q4_0.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f32.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_0-q4_1.cu b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_0-q4_1.cu index b95eaf7e18ccb..d9906d142e159 100644 --- a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_0-q4_1.cu +++ b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_0-q4_1.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f32.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_0-q5_0.cu b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_0-q5_0.cu index 275f2efccd18a..f61c183abbaf7 100644 --- a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_0-q5_0.cu +++ b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_0-q5_0.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f32.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_0-q5_1.cu b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_0-q5_1.cu index 3673f7fd55316..c10450fd29e76 100644 --- a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_0-q5_1.cu +++ b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_0-q5_1.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f32.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_0-q8_0.cu b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_0-q8_0.cu index 2c4d59947b1eb..2d5cb195c41dc 100644 --- a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_0-q8_0.cu +++ b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_0-q8_0.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f32.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_1-f16.cu b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_1-f16.cu index 2457cdf3fe77d..b384f34d7d921 100644 --- a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_1-f16.cu +++ b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_1-f16.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f32.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_1-q4_0.cu b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_1-q4_0.cu index b3b411ed368b8..446e293b16edc 100644 --- a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_1-q4_0.cu +++ b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_1-q4_0.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f32.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_1-q4_1.cu b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_1-q4_1.cu index b7f308a4d0b7e..6f430298899c7 100644 --- a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_1-q4_1.cu +++ b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_1-q4_1.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f32.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_1-q5_0.cu b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_1-q5_0.cu index 7396866975b97..1cd8ba88fd650 100644 --- a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_1-q5_0.cu +++ b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_1-q5_0.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f32.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_1-q5_1.cu b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_1-q5_1.cu index 708d03113e500..1ee2eab65a1c9 100644 --- a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_1-q5_1.cu +++ b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_1-q5_1.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f32.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_1-q8_0.cu b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_1-q8_0.cu index df891be6031ce..2bc77816a5d4e 100644 --- a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_1-q8_0.cu +++ b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_1-q8_0.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f32.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q8_0-f16.cu b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q8_0-f16.cu index f49b6d1f9ef8f..d55ced08bc940 100644 --- a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q8_0-f16.cu +++ b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q8_0-f16.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f32.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q8_0-q4_0.cu b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q8_0-q4_0.cu index 1de92148b714f..8361e99c4e4a4 100644 --- a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q8_0-q4_0.cu +++ b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q8_0-q4_0.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f32.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q8_0-q4_1.cu b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q8_0-q4_1.cu index 7a1ba7f8de4b7..7507a67c4c5e9 100644 --- a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q8_0-q4_1.cu +++ b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q8_0-q4_1.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f32.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q8_0-q5_0.cu b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q8_0-q5_0.cu index 25493e4bac9ee..61f050b235ff2 100644 --- a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q8_0-q5_0.cu +++ b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q8_0-q5_0.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f32.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q8_0-q5_1.cu b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q8_0-q5_1.cu index 3cd650c7bc3e4..d4a49d9c9912a 100644 --- a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q8_0-q5_1.cu +++ b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q8_0-q5_1.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f32.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q8_0-q8_0.cu b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q8_0-q8_0.cu index 88ffa43d6f161..d146278976211 100644 --- a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q8_0-q8_0.cu +++ b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q8_0-q8_0.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f32.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs256-f16-f16.cu b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs256-f16-f16.cu index 8c7bac6c2d7d9..e73f917a1f186 100644 --- a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs256-f16-f16.cu +++ b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs256-f16-f16.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f32.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs64-f16-f16.cu b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs64-f16-f16.cu index a28f62e7b8202..d40825dfc21f0 100644 --- a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs64-f16-f16.cu +++ b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs64-f16-f16.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f32.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs64-f16-q4_0.cu b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs64-f16-q4_0.cu index d39838b96fa9d..b5c6869f4ec42 100644 --- a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs64-f16-q4_0.cu +++ b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs64-f16-q4_0.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f32.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs64-f16-q4_1.cu b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs64-f16-q4_1.cu index 834d40f6c8392..4e21b0ccaef16 100644 --- a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs64-f16-q4_1.cu +++ b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs64-f16-q4_1.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f32.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs64-f16-q5_0.cu b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs64-f16-q5_0.cu index f7d54668b9d86..2eac321b370df 100644 --- a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs64-f16-q5_0.cu +++ b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs64-f16-q5_0.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f32.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs64-f16-q5_1.cu b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs64-f16-q5_1.cu index 59e00ad83414c..f7d2c3b4e0a12 100644 --- a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs64-f16-q5_1.cu +++ b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs64-f16-q5_1.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f32.cuh" diff --git a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs64-f16-q8_0.cu b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs64-f16-q8_0.cu index 6e63893debd6b..a013f400bd33b 100644 --- a/ggml-cuda/template-instances/fattn-vec-f32-instance-hs64-f16-q8_0.cu +++ b/ggml-cuda/template-instances/fattn-vec-f32-instance-hs64-f16-q8_0.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-vec-f32.cuh" diff --git a/ggml-cuda/template-instances/fattn-wmma-f16-instance-kqfloat-cpb16.cu b/ggml-cuda/template-instances/fattn-wmma-f16-instance-kqfloat-cpb16.cu index ca356ad6c9ca0..2d94e65c28c29 100644 --- a/ggml-cuda/template-instances/fattn-wmma-f16-instance-kqfloat-cpb16.cu +++ b/ggml-cuda/template-instances/fattn-wmma-f16-instance-kqfloat-cpb16.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-wmma-f16.cuh" diff --git a/ggml-cuda/template-instances/fattn-wmma-f16-instance-kqfloat-cpb32.cu b/ggml-cuda/template-instances/fattn-wmma-f16-instance-kqfloat-cpb32.cu index 430ee64eb29a5..c3d9df3c44313 100644 --- a/ggml-cuda/template-instances/fattn-wmma-f16-instance-kqfloat-cpb32.cu +++ b/ggml-cuda/template-instances/fattn-wmma-f16-instance-kqfloat-cpb32.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-wmma-f16.cuh" diff --git a/ggml-cuda/template-instances/fattn-wmma-f16-instance-kqhalf-cpb16.cu b/ggml-cuda/template-instances/fattn-wmma-f16-instance-kqhalf-cpb16.cu index d421d17ccc5fd..bb680e401f7da 100644 --- a/ggml-cuda/template-instances/fattn-wmma-f16-instance-kqhalf-cpb16.cu +++ b/ggml-cuda/template-instances/fattn-wmma-f16-instance-kqhalf-cpb16.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-wmma-f16.cuh" diff --git a/ggml-cuda/template-instances/fattn-wmma-f16-instance-kqhalf-cpb32.cu b/ggml-cuda/template-instances/fattn-wmma-f16-instance-kqhalf-cpb32.cu index deacd5f58eec9..073f71b1f3e26 100644 --- a/ggml-cuda/template-instances/fattn-wmma-f16-instance-kqhalf-cpb32.cu +++ b/ggml-cuda/template-instances/fattn-wmma-f16-instance-kqhalf-cpb32.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-wmma-f16.cuh" diff --git a/ggml-cuda/template-instances/fattn-wmma-f16-instance-kqhalf-cpb8.cu b/ggml-cuda/template-instances/fattn-wmma-f16-instance-kqhalf-cpb8.cu index 282896733473f..d30710c5fa21b 100644 --- a/ggml-cuda/template-instances/fattn-wmma-f16-instance-kqhalf-cpb8.cu +++ b/ggml-cuda/template-instances/fattn-wmma-f16-instance-kqhalf-cpb8.cu @@ -1,4 +1,4 @@ -// This file has been autogenerated by generate-variants.py, do not edit manually. +// This file has been autogenerated by generate_cu_files.py, do not edit manually. #include "../fattn-wmma-f16.cuh" diff --git a/ggml-cuda/template-instances/generate_cu_files.py b/ggml-cuda/template-instances/generate_cu_files.py index ee5b460e07986..ea58d09680231 100755 --- a/ggml-cuda/template-instances/generate_cu_files.py +++ b/ggml-cuda/template-instances/generate_cu_files.py @@ -20,6 +20,18 @@ SOURCE_FATTN_WMMA_CASE = "DECL_FATTN_WMMA_F16_CASE({head_size}, {cols_per_block}, {kq_acc_t});\n" +TYPES_MMQ = [ + "GGML_TYPE_Q4_0", "GGML_TYPE_Q4_1", "GGML_TYPE_Q5_0", "GGML_TYPE_Q5_1", "GGML_TYPE_Q8_0", + "GGML_TYPE_Q2_K", "GGML_TYPE_Q3_K", "GGML_TYPE_Q4_K", "GGML_TYPE_Q5_K", "GGML_TYPE_Q6_K" +] + +SOURCE_MMQ = """// This file has been autogenerated by generate_cu_files.py, do not edit manually. + +#include "../mmq.cuh" + +DECL_MMQ_CASE({type}); +""" + def get_short_name(long_quant_name): return long_quant_name.replace("GGML_TYPE_", "").lower() @@ -57,3 +69,7 @@ def get_head_sizes(type_k, type_v): if kq_acc_t == "float" and cols_per_block == 32 and head_size == 256: # register spilling, bad performance continue f.write(SOURCE_FATTN_WMMA_CASE.format(kq_acc_t=kq_acc_t, cols_per_block=cols_per_block, head_size=head_size)) + +for type in TYPES_MMQ: + with open(f"mmq-instance-{get_short_name(type)}.cu", "w") as f: + f.write(SOURCE_MMQ.format(type=type)) diff --git a/ggml-cuda/template-instances/mmq-instance-q2_k.cu b/ggml-cuda/template-instances/mmq-instance-q2_k.cu new file mode 100644 index 0000000000000..6415369dc1d95 --- /dev/null +++ b/ggml-cuda/template-instances/mmq-instance-q2_k.cu @@ -0,0 +1,5 @@ +// This file has been autogenerated by generate_cu_files.py, do not edit manually. + +#include "../mmq.cuh" + +DECL_MMQ_CASE(GGML_TYPE_Q2_K); diff --git a/ggml-cuda/template-instances/mmq-instance-q3_k.cu b/ggml-cuda/template-instances/mmq-instance-q3_k.cu new file mode 100644 index 0000000000000..ffb6213af83ea --- /dev/null +++ b/ggml-cuda/template-instances/mmq-instance-q3_k.cu @@ -0,0 +1,5 @@ +// This file has been autogenerated by generate_cu_files.py, do not edit manually. + +#include "../mmq.cuh" + +DECL_MMQ_CASE(GGML_TYPE_Q3_K); diff --git a/ggml-cuda/template-instances/mmq-instance-q4_0.cu b/ggml-cuda/template-instances/mmq-instance-q4_0.cu new file mode 100644 index 0000000000000..0c0b0c8a8ed22 --- /dev/null +++ b/ggml-cuda/template-instances/mmq-instance-q4_0.cu @@ -0,0 +1,5 @@ +// This file has been autogenerated by generate_cu_files.py, do not edit manually. + +#include "../mmq.cuh" + +DECL_MMQ_CASE(GGML_TYPE_Q4_0); diff --git a/ggml-cuda/template-instances/mmq-instance-q4_1.cu b/ggml-cuda/template-instances/mmq-instance-q4_1.cu new file mode 100644 index 0000000000000..ee67f6942a8fc --- /dev/null +++ b/ggml-cuda/template-instances/mmq-instance-q4_1.cu @@ -0,0 +1,5 @@ +// This file has been autogenerated by generate_cu_files.py, do not edit manually. + +#include "../mmq.cuh" + +DECL_MMQ_CASE(GGML_TYPE_Q4_1); diff --git a/ggml-cuda/template-instances/mmq-instance-q4_k.cu b/ggml-cuda/template-instances/mmq-instance-q4_k.cu new file mode 100644 index 0000000000000..9eeb3cd7f3cc1 --- /dev/null +++ b/ggml-cuda/template-instances/mmq-instance-q4_k.cu @@ -0,0 +1,5 @@ +// This file has been autogenerated by generate_cu_files.py, do not edit manually. + +#include "../mmq.cuh" + +DECL_MMQ_CASE(GGML_TYPE_Q4_K); diff --git a/ggml-cuda/template-instances/mmq-instance-q5_0.cu b/ggml-cuda/template-instances/mmq-instance-q5_0.cu new file mode 100644 index 0000000000000..cc57fb9753c9e --- /dev/null +++ b/ggml-cuda/template-instances/mmq-instance-q5_0.cu @@ -0,0 +1,5 @@ +// This file has been autogenerated by generate_cu_files.py, do not edit manually. + +#include "../mmq.cuh" + +DECL_MMQ_CASE(GGML_TYPE_Q5_0); diff --git a/ggml-cuda/template-instances/mmq-instance-q5_1.cu b/ggml-cuda/template-instances/mmq-instance-q5_1.cu new file mode 100644 index 0000000000000..721ac790c44f4 --- /dev/null +++ b/ggml-cuda/template-instances/mmq-instance-q5_1.cu @@ -0,0 +1,5 @@ +// This file has been autogenerated by generate_cu_files.py, do not edit manually. + +#include "../mmq.cuh" + +DECL_MMQ_CASE(GGML_TYPE_Q5_1); diff --git a/ggml-cuda/template-instances/mmq-instance-q5_k.cu b/ggml-cuda/template-instances/mmq-instance-q5_k.cu new file mode 100644 index 0000000000000..a2e90ffd5d0aa --- /dev/null +++ b/ggml-cuda/template-instances/mmq-instance-q5_k.cu @@ -0,0 +1,5 @@ +// This file has been autogenerated by generate_cu_files.py, do not edit manually. + +#include "../mmq.cuh" + +DECL_MMQ_CASE(GGML_TYPE_Q5_K); diff --git a/ggml-cuda/template-instances/mmq-instance-q6_k.cu b/ggml-cuda/template-instances/mmq-instance-q6_k.cu new file mode 100644 index 0000000000000..470938fef8a05 --- /dev/null +++ b/ggml-cuda/template-instances/mmq-instance-q6_k.cu @@ -0,0 +1,5 @@ +// This file has been autogenerated by generate_cu_files.py, do not edit manually. + +#include "../mmq.cuh" + +DECL_MMQ_CASE(GGML_TYPE_Q6_K); diff --git a/ggml-cuda/template-instances/mmq-instance-q8_0.cu b/ggml-cuda/template-instances/mmq-instance-q8_0.cu new file mode 100644 index 0000000000000..974477bbb73a8 --- /dev/null +++ b/ggml-cuda/template-instances/mmq-instance-q8_0.cu @@ -0,0 +1,5 @@ +// This file has been autogenerated by generate_cu_files.py, do not edit manually. + +#include "../mmq.cuh" + +DECL_MMQ_CASE(GGML_TYPE_Q8_0); diff --git a/ggml-cuda/vecdotq.cuh b/ggml-cuda/vecdotq.cuh index df9752390509d..b9573a7c7d053 100644 --- a/ggml-cuda/vecdotq.cuh +++ b/ggml-cuda/vecdotq.cuh @@ -566,9 +566,9 @@ static __device__ __forceinline__ float vec_dot_q6_K_q8_1_impl_mmq( } static __device__ __forceinline__ float vec_dot_q4_0_q8_1( - const void * __restrict__ vbq, const block_q8_1 * __restrict__ bq8_1, const int & iqs) { + const void * __restrict__ vbq, const block_q8_1 * __restrict__ bq8_1, const int & kbx, const int & iqs) { - const block_q4_0 * bq4_0 = (const block_q4_0 *) vbq; + const block_q4_0 * bq4_0 = (const block_q4_0 *) vbq + kbx; int v[VDR_Q4_0_Q8_1_MMVQ]; int u[2*VDR_Q4_0_Q8_1_MMVQ]; @@ -585,9 +585,9 @@ static __device__ __forceinline__ float vec_dot_q4_0_q8_1( static __device__ __forceinline__ float vec_dot_q4_1_q8_1( - const void * __restrict__ vbq, const block_q8_1 * __restrict__ bq8_1, const int & iqs) { + const void * __restrict__ vbq, const block_q8_1 * __restrict__ bq8_1, const int & kbx, const int & iqs) { - const block_q4_1 * bq4_1 = (const block_q4_1 *) vbq; + const block_q4_1 * bq4_1 = (const block_q4_1 *) vbq + kbx; int v[VDR_Q4_1_Q8_1_MMVQ]; int u[2*VDR_Q4_1_Q8_1_MMVQ]; @@ -603,9 +603,9 @@ static __device__ __forceinline__ float vec_dot_q4_1_q8_1( } static __device__ __forceinline__ float vec_dot_q5_0_q8_1( - const void * __restrict__ vbq, const block_q8_1 * __restrict__ bq8_1, const int & iqs) { + const void * __restrict__ vbq, const block_q8_1 * __restrict__ bq8_1, const int & kbx, const int & iqs) { - const block_q5_0 * bq5_0 = (const block_q5_0 *) vbq; + const block_q5_0 * bq5_0 = (const block_q5_0 *) vbq + kbx; int vl[VDR_Q5_0_Q8_1_MMVQ]; int vh[VDR_Q5_0_Q8_1_MMVQ]; @@ -623,9 +623,9 @@ static __device__ __forceinline__ float vec_dot_q5_0_q8_1( } static __device__ __forceinline__ float vec_dot_q5_1_q8_1( - const void * __restrict__ vbq, const block_q8_1 * __restrict__ bq8_1, const int & iqs) { + const void * __restrict__ vbq, const block_q8_1 * __restrict__ bq8_1, const int & kbx, const int & iqs) { - const block_q5_1 * bq5_1 = (const block_q5_1 *) vbq; + const block_q5_1 * bq5_1 = (const block_q5_1 *) vbq + kbx; int vl[VDR_Q5_1_Q8_1_MMVQ]; int vh[VDR_Q5_1_Q8_1_MMVQ]; @@ -643,9 +643,9 @@ static __device__ __forceinline__ float vec_dot_q5_1_q8_1( } static __device__ __forceinline__ float vec_dot_q8_0_q8_1( - const void * __restrict__ vbq, const block_q8_1 * __restrict__ bq8_1, const int & iqs) { + const void * __restrict__ vbq, const block_q8_1 * __restrict__ bq8_1, const int & kbx, const int & iqs) { - const block_q8_0 * bq8_0 = (const block_q8_0 *) vbq; + const block_q8_0 * bq8_0 = (const block_q8_0 *) vbq + kbx; int v[VDR_Q8_0_Q8_1_MMVQ]; int u[VDR_Q8_0_Q8_1_MMVQ]; @@ -660,9 +660,9 @@ static __device__ __forceinline__ float vec_dot_q8_0_q8_1( } static __device__ __forceinline__ float vec_dot_q2_K_q8_1( - const void * __restrict__ vbq, const block_q8_1 * __restrict__ bq8_1, const int & iqs) { + const void * __restrict__ vbq, const block_q8_1 * __restrict__ bq8_1, const int & kbx, const int & iqs) { - const block_q2_K * bq2_K = (const block_q2_K *) vbq; + const block_q2_K * bq2_K = (const block_q2_K *) vbq + kbx; const int bq8_offset = QR2_K * (iqs / QI8_1); const int scale_offset = iqs - iqs % QI8_1 + (iqs % QI8_1) / (QI8_1/2); @@ -683,9 +683,9 @@ static __device__ __forceinline__ float vec_dot_q2_K_q8_1( } static __device__ __forceinline__ float vec_dot_q3_K_q8_1( - const void * __restrict__ vbq, const block_q8_1 * __restrict__ bq8_1, const int & iqs) { + const void * __restrict__ vbq, const block_q8_1 * __restrict__ bq8_1, const int & kbx, const int & iqs) { - const block_q3_K * bq3_K = (const block_q3_K *) vbq; + const block_q3_K * bq3_K = (const block_q3_K *) vbq + kbx; const int bq8_offset = QR3_K * (iqs / (QI3_K/2)); const int scale_offset = iqs - iqs % QI8_1 + (iqs % QI8_1) / (QI8_1/2); @@ -710,9 +710,9 @@ static __device__ __forceinline__ float vec_dot_q3_K_q8_1( } static __device__ __forceinline__ float vec_dot_q4_K_q8_1( - const void * __restrict__ vbq, const block_q8_1 * __restrict__ bq8_1, const int & iqs) { + const void * __restrict__ vbq, const block_q8_1 * __restrict__ bq8_1, const int & kbx, const int & iqs) { - const block_q4_K * bq4_K = (const block_q4_K *) vbq; + const block_q4_K * bq4_K = (const block_q4_K *) vbq + kbx; int v[2]; int u[2*QR4_K]; @@ -756,9 +756,9 @@ static __device__ __forceinline__ float vec_dot_q4_K_q8_1( } static __device__ __forceinline__ float vec_dot_q5_K_q8_1( - const void * __restrict__ vbq, const block_q8_1 * __restrict__ bq8_1, const int & iqs) { + const void * __restrict__ vbq, const block_q8_1 * __restrict__ bq8_1, const int & kbx, const int & iqs) { - const block_q5_K * bq5_K = (const block_q5_K *) vbq; + const block_q5_K * bq5_K = (const block_q5_K *) vbq + kbx; int vl[2]; int vh[2]; @@ -802,9 +802,9 @@ static __device__ __forceinline__ float vec_dot_q5_K_q8_1( } static __device__ __forceinline__ float vec_dot_q6_K_q8_1( - const void * __restrict__ vbq, const block_q8_1 * __restrict__ bq8_1, const int & iqs) { + const void * __restrict__ vbq, const block_q8_1 * __restrict__ bq8_1, const int & kbx, const int & iqs) { - const block_q6_K * bq6_K = (const block_q6_K *) vbq; + const block_q6_K * bq6_K = (const block_q6_K *) vbq + kbx; const int bq8_offset = 2 * QR6_K * (iqs / (QI6_K/2)) + (iqs % (QI6_K/2)) / (QI6_K/4); const int scale_offset = (QI6_K/4) * (iqs / (QI6_K/2)) + (iqs % (QI6_K/2)) / (QI6_K/8); @@ -828,8 +828,8 @@ static __device__ __forceinline__ float vec_dot_q6_K_q8_1( } static __device__ __forceinline__ float vec_dot_iq2_xxs_q8_1( - const void * __restrict__ vbq, const block_q8_1 * __restrict__ bq8_1, const int & iqs) { - const block_iq2_xxs * bq2 = (const block_iq2_xxs *) vbq; + const void * __restrict__ vbq, const block_q8_1 * __restrict__ bq8_1, const int & kbx, const int & iqs) { + const block_iq2_xxs * bq2 = (const block_iq2_xxs *) vbq + kbx; #if QR2_XXS == 8 const int ib32 = iqs; @@ -872,9 +872,9 @@ static __device__ __forceinline__ float vec_dot_iq2_xxs_q8_1( } static __device__ __forceinline__ float vec_dot_iq2_xs_q8_1( - const void * __restrict__ vbq, const block_q8_1 * __restrict__ bq8_1, const int & iqs) { + const void * __restrict__ vbq, const block_q8_1 * __restrict__ bq8_1, const int & kbx, const int & iqs) { #if __CUDA_ARCH__ >= MIN_CC_DP4A // lowest compute capability for integer intrinsics - const block_iq2_xs * bq2 = (const block_iq2_xs *) vbq; + const block_iq2_xs * bq2 = (const block_iq2_xs *) vbq + kbx; const int ib32 = iqs; const uint16_t * q2 = bq2->qs + 4*ib32; @@ -911,9 +911,9 @@ static __device__ __forceinline__ float vec_dot_iq2_xs_q8_1( // TODO static __device__ __forceinline__ float vec_dot_iq2_s_q8_1( - const void * __restrict__ vbq, const block_q8_1 * __restrict__ bq8_1, const int & iqs) { + const void * __restrict__ vbq, const block_q8_1 * __restrict__ bq8_1, const int & kbx, const int & iqs) { #if __CUDA_ARCH__ >= MIN_CC_DP4A // lowest compute capability for integer intrinsics - const block_iq2_s * bq2 = (const block_iq2_s *) vbq; + const block_iq2_s * bq2 = (const block_iq2_s *) vbq + kbx; const int ib32 = iqs; const int8_t * q8 = bq8_1[ib32].qs; @@ -951,9 +951,9 @@ static __device__ __forceinline__ float vec_dot_iq2_s_q8_1( } static __device__ __forceinline__ float vec_dot_iq3_xxs_q8_1( - const void * __restrict__ vbq, const block_q8_1 * __restrict__ bq8_1, const int & iqs) { + const void * __restrict__ vbq, const block_q8_1 * __restrict__ bq8_1, const int & kbx, const int & iqs) { #if __CUDA_ARCH__ >= MIN_CC_DP4A // lowest compute capability for integer intrinsics - const block_iq3_xxs * bq2 = (const block_iq3_xxs *) vbq; + const block_iq3_xxs * bq2 = (const block_iq3_xxs *) vbq + kbx; const int ib32 = iqs; const uint8_t * q3 = bq2->qs + 8*ib32; @@ -981,9 +981,9 @@ static __device__ __forceinline__ float vec_dot_iq3_xxs_q8_1( // TODO: don't use lookup table for signs static __device__ __forceinline__ float vec_dot_iq3_s_q8_1( - const void * __restrict__ vbq, const block_q8_1 * __restrict__ bq8_1, const int & iqs) { + const void * __restrict__ vbq, const block_q8_1 * __restrict__ bq8_1, const int & kbx, const int & iqs) { #if __CUDA_ARCH__ >= MIN_CC_DP4A // lowest compute capability for integer intrinsics - const block_iq3_s * bq2 = (const block_iq3_s *) vbq; + const block_iq3_s * bq2 = (const block_iq3_s *) vbq + kbx; const int ib32 = iqs; const uint8_t * qs = bq2->qs + 8*ib32; @@ -1008,8 +1008,8 @@ static __device__ __forceinline__ float vec_dot_iq3_s_q8_1( } static __device__ __forceinline__ float vec_dot_iq1_s_q8_1( - const void * __restrict__ vbq, const block_q8_1 * __restrict__ bq8_1, const int & iqs) { - const block_iq1_s * bq1 = (const block_iq1_s *) vbq; + const void * __restrict__ vbq, const block_q8_1 * __restrict__ bq8_1, const int & kbx, const int & iqs) { + const block_iq1_s * bq1 = (const block_iq1_s *) vbq + kbx; const int ib32 = iqs; int sumi = 0; @@ -1039,8 +1039,8 @@ static __device__ __forceinline__ float vec_dot_iq1_s_q8_1( } static __device__ __forceinline__ float vec_dot_iq1_m_q8_1( - const void * __restrict__ vbq, const block_q8_1 * __restrict__ bq8_1, const int & iqs) { - const block_iq1_m * bq1 = (const block_iq1_m *) vbq; + const void * __restrict__ vbq, const block_q8_1 * __restrict__ bq8_1, const int & kbx, const int & iqs) { + const block_iq1_m * bq1 = (const block_iq1_m *) vbq + kbx; const int ib32 = iqs; int sumi[2] = {0, 0}; @@ -1094,9 +1094,9 @@ static __device__ __forceinline__ void get_int_from_table_16(const uint32_t & q4 #endif static __device__ __forceinline__ float vec_dot_iq4_nl_q8_1( - const void * __restrict__ vbq, const block_q8_1 * __restrict__ bq8_1, const int & iqs) { + const void * __restrict__ vbq, const block_q8_1 * __restrict__ bq8_1, const int & kbx, const int & iqs) { - const block_iq4_nl * bq = (const block_iq4_nl *) vbq; + const block_iq4_nl * bq = (const block_iq4_nl *) vbq + kbx; #if __CUDA_ARCH__ >= MIN_CC_DP4A // lowest compute capability for integer intrinsics const uint16_t * q4 = (const uint16_t *)bq->qs + 2*iqs; @@ -1128,10 +1128,10 @@ static __device__ __forceinline__ float vec_dot_iq4_nl_q8_1( } static __device__ __forceinline__ float vec_dot_iq4_xs_q8_1( - const void * __restrict__ vbq, const block_q8_1 * __restrict__ bq8_1, const int & iqs) { + const void * __restrict__ vbq, const block_q8_1 * __restrict__ bq8_1, const int & kbx, const int & iqs) { #if __CUDA_ARCH__ >= MIN_CC_DP4A // lowest compute capability for integer intrinsics - const block_iq4_xs * bq4 = (const block_iq4_xs *) vbq; + const block_iq4_xs * bq4 = (const block_iq4_xs *) vbq + kbx; const uint8_t * values = (const uint8_t *)kvalues_iq4nl; // iqs is 0...7 @@ -1149,6 +1149,6 @@ static __device__ __forceinline__ float vec_dot_iq4_xs_q8_1( } return d * (sumi1 + sumi2); #else - return vec_dot_iq4_xs_q8_1(vbq, bq8_1, iqs); + return vec_dot_iq4_xs_q8_1(vbq, bq8_1, kbx, iqs); #endif } From 7672adeec7a79ea271058c63106c142ba84f951a Mon Sep 17 00:00:00 2001 From: Galunid Date: Wed, 5 Jun 2024 19:07:24 +0200 Subject: [PATCH 015/131] Fix encoding in python scripts (#7733) --- convert-hf-to-gguf-update.py | 1 + convert-hf-to-gguf.py | 1 + 2 files changed, 2 insertions(+) diff --git a/convert-hf-to-gguf-update.py b/convert-hf-to-gguf-update.py index 84b72348dc579..6dae1a59465e0 100755 --- a/convert-hf-to-gguf-update.py +++ b/convert-hf-to-gguf-update.py @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# -*- coding: utf-8 -*- # This script downloads the tokenizer models of the specified models from Huggingface and # generates the get_vocab_base_pre() function for convert-hf-to-gguf.py diff --git a/convert-hf-to-gguf.py b/convert-hf-to-gguf.py index ad071b97404f7..afb9704c8e218 100755 --- a/convert-hf-to-gguf.py +++ b/convert-hf-to-gguf.py @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# -*- coding: utf-8 -*- from __future__ import annotations From d67caea0d6e6c303d31b01d0a010973e6c908dff Mon Sep 17 00:00:00 2001 From: slaren Date: Thu, 6 Jun 2024 07:17:21 +0200 Subject: [PATCH 016/131] docker : add openmp lib (#7780) --- .devops/full-cuda.Dockerfile | 2 +- .devops/full.Dockerfile | 2 +- .devops/main-cuda.Dockerfile | 3 +++ .devops/main-vulkan.Dockerfile | 2 +- .devops/main.Dockerfile | 3 +++ .devops/server-cuda.Dockerfile | 2 +- .devops/server.Dockerfile | 2 +- 7 files changed, 11 insertions(+), 5 deletions(-) diff --git a/.devops/full-cuda.Dockerfile b/.devops/full-cuda.Dockerfile index c01006efe09ad..f6073f6622b5a 100644 --- a/.devops/full-cuda.Dockerfile +++ b/.devops/full-cuda.Dockerfile @@ -12,7 +12,7 @@ FROM ${BASE_CUDA_DEV_CONTAINER} as build ARG CUDA_DOCKER_ARCH=all RUN apt-get update && \ - apt-get install -y build-essential python3 python3-pip git libcurl4-openssl-dev + apt-get install -y build-essential python3 python3-pip git libcurl4-openssl-dev libgomp1 COPY requirements.txt requirements.txt COPY requirements requirements diff --git a/.devops/full.Dockerfile b/.devops/full.Dockerfile index 6d5943a2f76bd..6f19afa9c37f1 100644 --- a/.devops/full.Dockerfile +++ b/.devops/full.Dockerfile @@ -3,7 +3,7 @@ ARG UBUNTU_VERSION=22.04 FROM ubuntu:$UBUNTU_VERSION as build RUN apt-get update && \ - apt-get install -y build-essential python3 python3-pip git libcurl4-openssl-dev + apt-get install -y build-essential python3 python3-pip git libcurl4-openssl-dev libgomp1 COPY requirements.txt requirements.txt COPY requirements requirements diff --git a/.devops/main-cuda.Dockerfile b/.devops/main-cuda.Dockerfile index 23f4289447c3a..5bcd45fe81eb5 100644 --- a/.devops/main-cuda.Dockerfile +++ b/.devops/main-cuda.Dockerfile @@ -27,6 +27,9 @@ RUN make -j$(nproc) FROM ${BASE_CUDA_RUN_CONTAINER} as runtime +RUN apt-get update && \ + apt-get install -y libgomp1 + COPY --from=build /app/main /main ENTRYPOINT [ "/main" ] diff --git a/.devops/main-vulkan.Dockerfile b/.devops/main-vulkan.Dockerfile index 6c2b2ed5b05d8..1bdb528035cd4 100644 --- a/.devops/main-vulkan.Dockerfile +++ b/.devops/main-vulkan.Dockerfile @@ -3,7 +3,7 @@ ARG UBUNTU_VERSION=jammy FROM ubuntu:$UBUNTU_VERSION as build # Install build tools -RUN apt update && apt install -y git build-essential cmake wget +RUN apt update && apt install -y git build-essential cmake wget libgomp1 # Install Vulkan SDK RUN wget -qO - https://packages.lunarg.com/lunarg-signing-key-pub.asc | apt-key add - && \ diff --git a/.devops/main.Dockerfile b/.devops/main.Dockerfile index 763d75fced311..98a58a4b9a801 100644 --- a/.devops/main.Dockerfile +++ b/.devops/main.Dockerfile @@ -13,6 +13,9 @@ RUN make -j$(nproc) FROM ubuntu:$UBUNTU_VERSION as runtime +RUN apt-get update && \ + apt-get install -y libgomp1 + COPY --from=build /app/main /main ENV LC_ALL=C.utf8 diff --git a/.devops/server-cuda.Dockerfile b/.devops/server-cuda.Dockerfile index 7f52281857566..2532e69e87388 100644 --- a/.devops/server-cuda.Dockerfile +++ b/.devops/server-cuda.Dockerfile @@ -30,7 +30,7 @@ RUN make -j$(nproc) FROM ${BASE_CUDA_RUN_CONTAINER} as runtime RUN apt-get update && \ - apt-get install -y libcurl4-openssl-dev + apt-get install -y libcurl4-openssl-dev libgomp1 COPY --from=build /app/server /server diff --git a/.devops/server.Dockerfile b/.devops/server.Dockerfile index 0d09d3627dabf..a41c16b654dab 100644 --- a/.devops/server.Dockerfile +++ b/.devops/server.Dockerfile @@ -16,7 +16,7 @@ RUN make -j$(nproc) FROM ubuntu:$UBUNTU_VERSION as runtime RUN apt-get update && \ - apt-get install -y libcurl4-openssl-dev + apt-get install -y libcurl4-openssl-dev libgomp1 COPY --from=build /app/server /server From 2d08b7fbb483c14bd2b173d4cd51ea3a4f862e8f Mon Sep 17 00:00:00 2001 From: slaren Date: Thu, 6 Jun 2024 07:19:49 +0200 Subject: [PATCH 017/131] docker : build only main and server in their images (#7782) * add openmp lib to dockerfiles * build only main and server in their docker images --- .devops/main-cuda.Dockerfile | 2 +- .devops/main-rocm.Dockerfile | 2 +- .devops/main.Dockerfile | 2 +- .devops/server-cuda.Dockerfile | 2 +- .devops/server.Dockerfile | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.devops/main-cuda.Dockerfile b/.devops/main-cuda.Dockerfile index 5bcd45fe81eb5..2aec4a85dbfe2 100644 --- a/.devops/main-cuda.Dockerfile +++ b/.devops/main-cuda.Dockerfile @@ -23,7 +23,7 @@ ENV CUDA_DOCKER_ARCH=${CUDA_DOCKER_ARCH} # Enable CUDA ENV LLAMA_CUDA=1 -RUN make -j$(nproc) +RUN make -j$(nproc) main FROM ${BASE_CUDA_RUN_CONTAINER} as runtime diff --git a/.devops/main-rocm.Dockerfile b/.devops/main-rocm.Dockerfile index 37576d68ee4f4..dcaeb3e727ae9 100644 --- a/.devops/main-rocm.Dockerfile +++ b/.devops/main-rocm.Dockerfile @@ -40,6 +40,6 @@ ENV LLAMA_HIPBLAS=1 ENV CC=/opt/rocm/llvm/bin/clang ENV CXX=/opt/rocm/llvm/bin/clang++ -RUN make -j$(nproc) +RUN make -j$(nproc) main ENTRYPOINT [ "/app/main" ] diff --git a/.devops/main.Dockerfile b/.devops/main.Dockerfile index 98a58a4b9a801..d2514c4ba5755 100644 --- a/.devops/main.Dockerfile +++ b/.devops/main.Dockerfile @@ -9,7 +9,7 @@ WORKDIR /app COPY . . -RUN make -j$(nproc) +RUN make -j$(nproc) main FROM ubuntu:$UBUNTU_VERSION as runtime diff --git a/.devops/server-cuda.Dockerfile b/.devops/server-cuda.Dockerfile index 2532e69e87388..4e9747b823196 100644 --- a/.devops/server-cuda.Dockerfile +++ b/.devops/server-cuda.Dockerfile @@ -25,7 +25,7 @@ ENV LLAMA_CUDA=1 # Enable cURL ENV LLAMA_CURL=1 -RUN make -j$(nproc) +RUN make -j$(nproc) server FROM ${BASE_CUDA_RUN_CONTAINER} as runtime diff --git a/.devops/server.Dockerfile b/.devops/server.Dockerfile index a41c16b654dab..bee63b966d5c0 100644 --- a/.devops/server.Dockerfile +++ b/.devops/server.Dockerfile @@ -11,7 +11,7 @@ COPY . . ENV LLAMA_CURL=1 -RUN make -j$(nproc) +RUN make -j$(nproc) server FROM ubuntu:$UBUNTU_VERSION as runtime From f5d7b268ec4bf8628aa6ccc9f6631d0230dde76f Mon Sep 17 00:00:00 2001 From: Joan Fontanals Date: Thu, 6 Jun 2024 09:22:41 +0200 Subject: [PATCH 018/131] llama : add jina v2 base code (#7596) * feat: add changes to handle jina v2 base code * fix: do not complicate things * fix: fix the usage of the code model * fix: fix comments * fix: fix linting issues * fix: remove ollama patches * style : minor --------- Co-authored-by: Georgi Gerganov --- convert-hf-to-gguf-update.py | 1 + convert-hf-to-gguf.py | 7 ++++++- gguf-py/gguf/constants.py | 1 + gguf-py/gguf/tensor_mapping.py | 3 +++ llama.cpp | 17 +++++++++++++---- 5 files changed, 24 insertions(+), 5 deletions(-) diff --git a/convert-hf-to-gguf-update.py b/convert-hf-to-gguf-update.py index 6dae1a59465e0..f43b15760e1b2 100755 --- a/convert-hf-to-gguf-update.py +++ b/convert-hf-to-gguf-update.py @@ -83,6 +83,7 @@ class TOKENIZER_TYPE(IntEnum): {"name": "jina-v2-es", "tokt": TOKENIZER_TYPE.BPE, "repo": "https://huggingface.co/jinaai/jina-embeddings-v2-base-es", }, {"name": "jina-v2-de", "tokt": TOKENIZER_TYPE.BPE, "repo": "https://huggingface.co/jinaai/jina-embeddings-v2-base-de", }, {"name": "smaug-bpe", "tokt": TOKENIZER_TYPE.BPE, "repo": "https://huggingface.co/abacusai/Smaug-Llama-3-70B-Instruct", }, + {"name": "jina-v2-code", "tokt": TOKENIZER_TYPE.BPE, "repo": "https://huggingface.co/jinaai/jina-embeddings-v2-base-code", }, ] diff --git a/convert-hf-to-gguf.py b/convert-hf-to-gguf.py index afb9704c8e218..a86864f04861b 100755 --- a/convert-hf-to-gguf.py +++ b/convert-hf-to-gguf.py @@ -475,6 +475,9 @@ def get_vocab_base_pre(self, tokenizer) -> str: if chkhsh == "c136ed14d01c2745d4f60a9596ae66800e2b61fa45643e72436041855ad4089d": # ref: https://huggingface.co/abacusai/Smaug-Llama-3-70B-Instruct res = "smaug-bpe" + if chkhsh == "7967bfa498ade6b757b064f31e964dddbb80f8f9a4d68d4ba7998fcf281c531a": + # ref: https://huggingface.co/jinaai/jina-embeddings-v2-base-code + res = "jina-v2-code" if res is None: logger.warning("\n") @@ -2452,11 +2455,13 @@ def __init__(self, *args, **kwargs): def get_tensors(self): for name, data in super().get_tensors(): - if 'gated_layers' in name: + if 'gated_layer' in name: d1 = data[:self.intermediate_size, :] name1 = name.replace('gated_layers', 'gated_layers_w') + name1 = name1.replace('up_gated_layer', 'gated_layers_v') d2 = data[self.intermediate_size:, :] name2 = name.replace('gated_layers', 'gated_layers_v') + name2 = name2.replace('up_gated_layer', 'gated_layers_w') yield name1, d1 yield name2, d2 continue diff --git a/gguf-py/gguf/constants.py b/gguf-py/gguf/constants.py index a3c024c8975f5..8908585ccf957 100644 --- a/gguf-py/gguf/constants.py +++ b/gguf-py/gguf/constants.py @@ -415,6 +415,7 @@ class MODEL_TENSOR(IntEnum): MODEL_TENSOR.TOKEN_EMBD, MODEL_TENSOR.TOKEN_EMBD_NORM, MODEL_TENSOR.TOKEN_TYPES, + MODEL_TENSOR.ATTN_NORM_2, MODEL_TENSOR.ATTN_OUT_NORM, MODEL_TENSOR.ATTN_Q, MODEL_TENSOR.ATTN_Q_NORM, diff --git a/gguf-py/gguf/tensor_mapping.py b/gguf-py/gguf/tensor_mapping.py index 83e3c4c3381a0..81b4992a51eed 100644 --- a/gguf-py/gguf/tensor_mapping.py +++ b/gguf-py/gguf/tensor_mapping.py @@ -102,6 +102,7 @@ class TensorNameMap: # Attention norm 2 MODEL_TENSOR.ATTN_NORM_2: ( "transformer.h.{bid}.ln_attn", # falcon40b + "encoder.layer.{bid}.layer_norm_1", # jina-v2-code ), # Attention query-key-value @@ -311,6 +312,7 @@ class TensorNameMap: "model.layers.{bid}.mlp.c_proj", # starcoder2 "encoder.layer.{bid}.mlp.wo", # jina-bert-v2 "model.layers.{bid}.residual_mlp.w2", # arctic + "encoder.layer.{bid}.mlp.down_layer", # jina-bert-v2 ), MODEL_TENSOR.FFN_DOWN_EXP: ( @@ -350,6 +352,7 @@ class TensorNameMap: "encoder.layers.{bid}.norm2", # nomic-bert "transformer.decoder_layer.{bid}.rms_norm_3", # Grok "encoder.layer.{bid}.mlp.layernorm", # jina-bert-v2 + "encoder.layer.{bid}.layer_norm_2" # jina-v2-code ), MODEL_TENSOR.SSM_IN: ( diff --git a/llama.cpp b/llama.cpp index 414d390e891a1..cefb4d1d52dc3 100644 --- a/llama.cpp +++ b/llama.cpp @@ -704,6 +704,7 @@ static const std::map> LLM_TENSOR_NA { LLM_TENSOR_TOKEN_EMBD, "token_embd" }, { LLM_TENSOR_TOKEN_EMBD_NORM, "token_embd_norm" }, { LLM_TENSOR_TOKEN_TYPES, "token_types" }, + { LLM_TENSOR_ATTN_NORM_2, "blk.%d.attn_norm_2" }, { LLM_TENSOR_ATTN_OUT_NORM, "blk.%d.attn_output_norm" }, { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" }, { LLM_TENSOR_ATTN_Q_NORM, "blk.%d.attn_q_norm" }, @@ -4653,8 +4654,7 @@ static void llm_load_vocab( LLAMA_LOG_WARN("%s: ************************************ \n", __func__); LLAMA_LOG_WARN("%s: \n", __func__); vocab.type_pre = LLAMA_VOCAB_PRE_TYPE_DEFAULT; - } else if ( - tokenizer_pre == "default") { + } else if (tokenizer_pre == "default") { vocab.type_pre = LLAMA_VOCAB_PRE_TYPE_DEFAULT; } else if ( tokenizer_pre == "llama3" || @@ -4681,7 +4681,8 @@ static void llm_load_vocab( tokenizer_pre == "jina-es" || tokenizer_pre == "jina-de" || tokenizer_pre == "jina-v2-es" || - tokenizer_pre == "jina-v2-de") { + tokenizer_pre == "jina-v2-de" || + tokenizer_pre == "jina-v2-code") { vocab.type_pre = LLAMA_VOCAB_PRE_TYPE_GPT2; } else if ( tokenizer_pre == "refact") { @@ -5515,7 +5516,7 @@ static bool llm_load_tensors( layer.ffn_down_b = ml.create_tensor(ctx_layer, tn(LLM_TENSOR_FFN_DOWN, "bias", i), {n_embd}); } else { - layer.ffn_gate = ml.create_tensor(ctx_split, tn(LLM_TENSOR_FFN_GATE, "weight", i), {n_embd, n_ff}); + layer.ffn_gate = ml.create_tensor(ctx_split, tn(LLM_TENSOR_FFN_GATE, "weight", i), {n_embd, n_ff}); } layer.layer_out_norm = ml.create_tensor(ctx_layer, tn(LLM_TENSOR_LAYER_OUT_NORM, "weight", i), {n_embd}); @@ -5556,6 +5557,9 @@ static bool llm_load_tensors( layer.attn_out_norm = ml.create_tensor(ctx_layer, tn(LLM_TENSOR_ATTN_OUT_NORM, "weight", i), {n_embd}); //output_norm layer.attn_out_norm_b = ml.create_tensor(ctx_layer, tn(LLM_TENSOR_ATTN_OUT_NORM, "bias", i), {n_embd}); + layer.attn_norm_2 = ml.create_tensor(ctx_layer, tn(LLM_TENSOR_ATTN_NORM_2, "weight", i), {n_embd}, llama_model_loader::TENSOR_NOT_REQUIRED); + layer.attn_norm_2_b = ml.create_tensor(ctx_layer, tn(LLM_TENSOR_ATTN_NORM_2, "bias", i), {n_embd}, llama_model_loader::TENSOR_NOT_REQUIRED); + layer.ffn_up = ml.create_tensor(ctx_split, tn(LLM_TENSOR_FFN_UP, "weight", i), {n_embd, n_ff}); layer.ffn_gate = ml.create_tensor(ctx_split, tn(LLM_TENSOR_FFN_GATE, "weight", i), {n_embd, n_ff}); @@ -8519,6 +8523,11 @@ struct llm_build_context { // attention layer norm cur = llm_build_norm(ctx0, cur, hparams, model.layers[il].attn_out_norm, model.layers[il].attn_out_norm_b, LLM_NORM, cb, il); + if (model.layers[il].attn_norm_2 != nullptr) { + cur = ggml_add(ctx0, cur, inpL); // re-add the layer input + cur = llm_build_norm(ctx0, cur, hparams, model.layers[il].attn_norm_2, model.layers[il].attn_norm_2_b, LLM_NORM, cb, il); + } + struct ggml_tensor * ffn_inp = cur; cb(ffn_inp, "ffn_inp", il); From 55b2d0849d3ec9e45e4a4d9e480f5fa7977872a6 Mon Sep 17 00:00:00 2001 From: Olivier Chafik Date: Thu, 6 Jun 2024 10:07:06 +0100 Subject: [PATCH 019/131] grammars: x{min,max} repetition operator (#6640) * grammars: x{min,max} repetition operator + tweak +/*/? to avoid duplication of original over alternates * grammars: handle `x{n}` and fix `x{n,n}` * grammars: document new repetition operators * grammars: uniform use of int for min & max * grammars: refactor parser test * grammar: parsing tests w/ natural pretty print of updated expectations * grammars: much prettier print of expectations (+ TEST_GRAMMAR_PARSER_PRINT_ALL=1 to force all) * grammars: improve test pretty print again * grammars: pretty print rules and chars * grammars: fix copy rule skipping * grammars: disallow `a{,}` (not allowed in regexps) * Update common/grammar-parser.cpp Co-authored-by: Clint Herron * grammars: fix copy rule skipping (again) & display of expectations * grammars: more test cases * grammars: update reps parsing to bring ? / * / + closer to before * json: use new GBNF repetitions{m,n} syntax * grammars: update performance gotchas w/ repetition advice * Update examples/json_schema_to_grammar.py Co-authored-by: Clint Herron * Update examples/server/public/json-schema-to-grammar.mjs Co-authored-by: Clint Herron * grammars: comment on rule repetitions * grammars: ensure unambiguous number alternatives * grammar: nit typo switched error msgs * grammar: nit numbering in comment * json: update numeric rule to be unambiguous * Apply suggestions from code review Co-authored-by: Clint Herron * Update examples/server/public/json-schema-to-grammar.mjs Co-authored-by: Clint Herron * json: fix integral-part * grammar: add repetition tests --------- Co-authored-by: Clint Herron --- common/grammar-parser.cpp | 138 ++++- common/json-schema-to-grammar.cpp | 78 +-- examples/json_schema_to_grammar.py | 68 +- examples/pydantic_models_to_grammar.py | 2 +- .../server/public/json-schema-to-grammar.mjs | 67 +- grammars/README.md | 12 +- tests/test-grammar-integration.cpp | 76 +++ tests/test-grammar-parser.cpp | 581 +++++++++++++----- tests/test-json-schema-to-grammar.cpp | 112 ++-- 9 files changed, 726 insertions(+), 408 deletions(-) diff --git a/common/grammar-parser.cpp b/common/grammar-parser.cpp index b5bc7d49b5f36..79d2b0354b90c 100644 --- a/common/grammar-parser.cpp +++ b/common/grammar-parser.cpp @@ -46,8 +46,12 @@ namespace grammar_parser { state.rules[rule_id] = rule; } + static bool is_digit_char(char c) { + return '0' <= c && c <= '9'; + } + static bool is_word_char(char c) { - return ('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z') || c == '-' || ('0' <= c && c <= '9'); + return ('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z') || c == '-' || is_digit_char(c); } static std::pair parse_hex(const char * src, int size) { @@ -99,6 +103,17 @@ namespace grammar_parser { return pos; } + static const char * parse_int(const char * src) { + const char * pos = src; + while (is_digit_char(*pos)) { + pos++; + } + if (pos == src) { + throw std::runtime_error(std::string("expecting integer at ") + src); + } + return pos; + } + static std::pair parse_char(const char * src) { if (*src == '\\') { switch (src[1]) { @@ -137,6 +152,60 @@ namespace grammar_parser { bool is_nested) { size_t last_sym_start = out_elements.size(); const char * pos = src; + + auto handle_repetitions = [&](int min_times, int max_times) { + + if (last_sym_start == out_elements.size()) { + throw std::runtime_error(std::string("expecting preceding item to */+/?/{ at ") + pos); + } + + // apply transformation to previous symbol (last_sym_start to end) according to + // the following rewrite rules: + // S{m,n} --> S S S (m times) S'(n-m) + // S'(x) ::= S S'(x-1) | + // (... n-m definitions of these S' rules ...) + // S'(1) ::= S | + // S{m,} --> S S S (m times) S' + // S' ::= S S' | + // S* --> S{0,} + // --> S' ::= S S' | + // S+ --> S{1,} + // --> S S' + // S' ::= S S' | + // S? --> S{0,1} + // --> S' + // S' ::= S | + + std::vector previous_elements(out_elements.begin() + last_sym_start, out_elements.end()); + if (min_times == 0) { + out_elements.resize(last_sym_start); + } else { + // Repeat the previous elements (min_times - 1) times + for (int i = 1; i < min_times; i++) { + out_elements.insert(out_elements.end(), previous_elements.begin(), previous_elements.end()); + } + } + + uint32_t last_rec_rule_id = 0; + auto n_opt = max_times < 0 ? 1 : max_times - min_times; + + std::vector rec_rule(previous_elements); + for (int i = 0; i < n_opt; i++) { + rec_rule.resize(previous_elements.size()); + uint32_t rec_rule_id = generate_symbol_id(state, rule_name); + if (i > 0 || max_times < 0) { + rec_rule.push_back({LLAMA_GRETYPE_RULE_REF, max_times < 0 ? rec_rule_id : last_rec_rule_id}); + } + rec_rule.push_back({LLAMA_GRETYPE_ALT, 0}); + rec_rule.push_back({LLAMA_GRETYPE_END, 0}); + add_rule(state, rec_rule_id, rec_rule); + last_rec_rule_id = rec_rule_id; + } + if (n_opt > 0) { + out_elements.push_back({LLAMA_GRETYPE_RULE_REF, last_rec_rule_id}); + } + }; + while (*pos) { if (*pos == '"') { // literal string pos++; @@ -197,40 +266,47 @@ namespace grammar_parser { throw std::runtime_error(std::string("expecting ')' at ") + pos); } pos = parse_space(pos + 1, is_nested); - } else if (*pos == '*' || *pos == '+' || *pos == '?') { // repetition operator - if (last_sym_start == out_elements.size()) { - throw std::runtime_error(std::string("expecting preceding item to */+/? at ") + pos); - } + } else if (*pos == '*') { + pos = parse_space(pos + 1, is_nested); + handle_repetitions(0, -1); + } else if (*pos == '+') { + pos = parse_space(pos + 1, is_nested); + handle_repetitions(1, -1); + } else if (*pos == '?') { + pos = parse_space(pos + 1, is_nested); + handle_repetitions(0, 1); + } else if (*pos == '{') { + pos = parse_space(pos + 1, is_nested); - // apply transformation to previous symbol (last_sym_start to end) according to - // rewrite rules: - // S* --> S' ::= S S' | - // S+ --> S' ::= S S' | S - // S? --> S' ::= S | - uint32_t sub_rule_id = generate_symbol_id(state, rule_name); - std::vector sub_rule; - // add preceding symbol to generated rule - sub_rule.insert( - sub_rule.end(), out_elements.begin() + last_sym_start, out_elements.end()); - if (*pos == '*' || *pos == '+') { - // cause generated rule to recurse - sub_rule.push_back({LLAMA_GRETYPE_RULE_REF, sub_rule_id}); - } - // mark start of alternate def - sub_rule.push_back({LLAMA_GRETYPE_ALT, 0}); - if (*pos == '+') { - // add preceding symbol as alternate only for '+' (otherwise empty) - sub_rule.insert( - sub_rule.end(), out_elements.begin() + last_sym_start, out_elements.end()); + if (!is_digit_char(*pos)) { + throw std::runtime_error(std::string("expecting an int at ") + pos); } - sub_rule.push_back({LLAMA_GRETYPE_END, 0}); - add_rule(state, sub_rule_id, sub_rule); + const char * int_end = parse_int(pos); + int min_times = std::stoul(std::string(pos, int_end - pos)); + pos = parse_space(int_end, is_nested); - // in original rule, replace previous symbol with reference to generated rule - out_elements.resize(last_sym_start); - out_elements.push_back({LLAMA_GRETYPE_RULE_REF, sub_rule_id}); + int max_times = -1; - pos = parse_space(pos + 1, is_nested); + if (*pos == '}') { + max_times = min_times; + pos = parse_space(pos + 1, is_nested); + } else if (*pos == ',') { + pos = parse_space(pos + 1, is_nested); + + if (is_digit_char(*pos)) { + const char * int_end = parse_int(pos); + max_times = std::stoul(std::string(pos, int_end - pos)); + pos = parse_space(int_end, is_nested); + } + + if (*pos != '}') { + throw std::runtime_error(std::string("expecting '}' at ") + pos); + } + pos = parse_space(pos + 1, is_nested); + } else { + throw std::runtime_error(std::string("expecting ',' at ") + pos); + } + handle_repetitions(min_times, max_times); } else { break; } diff --git a/common/json-schema-to-grammar.cpp b/common/json-schema-to-grammar.cpp index 9a71f5d8d76ba..737bae27c7206 100644 --- a/common/json-schema-to-grammar.cpp +++ b/common/json-schema-to-grammar.cpp @@ -16,58 +16,27 @@ static std::string join(Iterator begin, Iterator end, const std::string & separa static std::string repeat(const std::string & str, size_t n); -static std::string build_repetition(const std::string & item_rule, int min_items, int max_items, const std::string & separator_rule = "", bool item_rule_is_literal = false) { - if (separator_rule.empty()) { - if (min_items == 0 && max_items == 1) { - return item_rule + "?"; - } else if (min_items == 1 && max_items == std::numeric_limits::max()) { - return item_rule + "+"; - } - } +static std::string build_repetition(const std::string & item_rule, int min_items, int max_items, const std::string & separator_rule = "") { + auto has_max = max_items != std::numeric_limits::max(); - std::string result; - if (min_items > 0) { - if (item_rule_is_literal && separator_rule.empty()) { - result = "\"" + repeat(std::string(item_rule.begin() + 1, item_rule.end() - 1), min_items) + "\""; - } else { - std::vector items(min_items, item_rule); - result = join(items.begin(), items.end(), separator_rule.empty() ? " " : " " + separator_rule + " "); - } + if (min_items == 0 && max_items == 1) { + return item_rule + "?"; } - std::function opt_repetitions = [&](int up_to_n, bool prefix_with_sep) -> std::string { - auto content = prefix_with_sep && !separator_rule.empty() ? separator_rule + " " + item_rule : item_rule; - - if (up_to_n == 0) { - return ""; - } else if (up_to_n == 1) { - return "(" + content + ")?"; - } else if (!separator_rule.empty() && !prefix_with_sep) { - return "(" + content + " " + opt_repetitions(up_to_n - 1, true) + ")?"; + if (separator_rule.empty()) { + if (min_items == 1 && !has_max) { + return item_rule + "+"; + } else if (min_items == 0 && !has_max) { + return item_rule + "*"; } else { - std::string res = repeat("(" + content + " ", up_to_n); - // strip trailing space - res = res.substr(0, res.length() - 1); - res += repeat(")?", up_to_n); - return res; + return item_rule + "{" + std::to_string(min_items) + "," + (has_max ? std::to_string(max_items) : "") + "}"; } - }; - - if (min_items > 0 && max_items != min_items) { - result += " "; } - if (max_items != std::numeric_limits::max()) { - result += opt_repetitions(max_items - min_items, min_items > 0); - } else { - std::string item_operator = "(" + (separator_rule.empty() ? "" : separator_rule + " ") + item_rule + ")"; - if (min_items == 0 && !separator_rule.empty()) { - result = "(" + item_rule + " " + item_operator + "*)?"; - } else { - result += item_operator + "*"; - } + auto result = item_rule + " " + build_repetition("(" + separator_rule + " " + item_rule + ")", min_items == 0 ? 0 : min_items - 1, has_max ? max_items - 1 : max_items); + if (min_items == 0) { + result = "(" + result + ")?"; } - return result; } @@ -78,30 +47,24 @@ struct BuiltinRule { std::vector deps; }; -const std::string _up_to_15_digits = build_repetition("[0-9]", 0, 15); - std::unordered_map PRIMITIVE_RULES = { {"boolean", {"(\"true\" | \"false\") space", {}}}, - {"decimal-part", {"[0-9] " + _up_to_15_digits, {}}}, - {"integral-part", {"[0-9] | [1-9] " + _up_to_15_digits, {}}}, + {"decimal-part", {"[0-9]{1,16}", {}}}, + {"integral-part", {"[0] | [1-9] [0-9]{0,15}", {}}}, {"number", {"(\"-\"? integral-part) (\".\" decimal-part)? ([eE] [-+]? integral-part)? space", {"integral-part", "decimal-part"}}}, {"integer", {"(\"-\"? integral-part) space", {"integral-part"}}}, {"value", {"object | array | string | number | boolean | null", {"object", "array", "string", "number", "boolean", "null"}}}, {"object", {"\"{\" space ( string \":\" space value (\",\" space string \":\" space value)* )? \"}\" space", {"string", "value"}}}, {"array", {"\"[\" space ( value (\",\" space value)* )? \"]\" space", {"value"}}}, - {"uuid", {"\"\\\"\" [0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F] " - "\"-\" [0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F] " - "\"-\" [0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F] " - "\"-\" [0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F] " - "\"-\" [0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F] \"\\\"\" space", {}}}, - {"char", {"[^\"\\\\] | \"\\\\\" ([\"\\\\/bfnrt] | \"u\" [0-9a-fA-F] [0-9a-fA-F] [0-9a-fA-F] [0-9a-fA-F])", {}}}, + {"uuid", {"\"\\\"\" [0-9a-fA-F]{8} \"-\" [0-9a-fA-F]{4} \"-\" [0-9a-fA-F]{4} \"-\" [0-9a-fA-F]{4} \"-\" [0-9a-fA-F]{12} \"\\\"\" space", {}}}, + {"char", {"[^\"\\\\] | \"\\\\\" ([\"\\\\/bfnrt] | \"u\" [0-9a-fA-F]{4})", {}}}, {"string", {"\"\\\"\" char* \"\\\"\" space", {"char"}}}, {"null", {"\"null\" space", {}}}, }; std::unordered_map STRING_FORMAT_RULES = { - {"date", {"[0-9] [0-9] [0-9] [0-9] \"-\" ( \"0\" [1-9] | \"1\" [0-2] ) \"-\" ( \"0\" [1-9] | [1-2] [0-9] | \"3\" [0-1] )", {}}}, - {"time", {"([01] [0-9] | \"2\" [0-3]) \":\" [0-5] [0-9] \":\" [0-5] [0-9] ( \".\" [0-9] [0-9] [0-9] )? ( \"Z\" | ( \"+\" | \"-\" ) ( [01] [0-9] | \"2\" [0-3] ) \":\" [0-5] [0-9] )", {}}}, + {"date", {"[0-9]{4} \"-\" ( \"0\" [1-9] | \"1\" [0-2] ) \"-\" ( \"0\" [1-9] | [1-2] [0-9] | \"3\" [0-1] )", {}}}, + {"time", {"([01] [0-9] | \"2\" [0-3]) \":\" [0-5] [0-9] \":\" [0-5] [0-9] ( \".\" [0-9]{3} )? ( \"Z\" | ( \"+\" | \"-\" ) ( [01] [0-9] | \"2\" [0-3] ) \":\" [0-5] [0-9] )", {}}}, {"date-time", {"date \"T\" time", {"date", "time"}}}, {"date-string", {"\"\\\"\" date \"\\\"\" space", {"date"}}}, {"time-string", {"\"\\\"\" time \"\\\"\" space", {"time"}}}, @@ -385,8 +348,7 @@ class SchemaConverter { sub_is_literal ? "\"" + sub + "\"" : sub, min_times, max_times, - "", - sub_is_literal + "" ); seq.back().second = false; } else { diff --git a/examples/json_schema_to_grammar.py b/examples/json_schema_to_grammar.py index 826cd3f7271d1..7d889c3fe1287 100755 --- a/examples/json_schema_to_grammar.py +++ b/examples/json_schema_to_grammar.py @@ -6,52 +6,22 @@ import sys from typing import Any, Dict, List, Set, Tuple, Union -def _build_repetition(item_rule, min_items, max_items, separator_rule=None, item_rule_is_literal=False): - if not separator_rule: - if min_items == 0 and max_items == 1: - return f'{item_rule}?' - elif min_items == 1 and max_items is None: - return f'{item_rule}+' - - result = '' - - if min_items > 0: - if item_rule_is_literal and separator_rule is None: - result = '"' + (item_rule[1:-1] * min_items) + '"' - else: - result = (f' {separator_rule} ' if separator_rule else ' ').join([item_rule] * min_items) - - def opt_repetitions(up_to_n, prefix_with_sep=False): - ''' - - n=4, no sep: '(a (a (a (a)?)?)?)?' - - n=4, sep=',', prefix: '("," a ("," a ("," a ("," a)?)?)?)?' - - n=4, sep=',', no prefix: '(a ("," a ("," a ("," a)?)?)?)?' - ''' - - content = f'{separator_rule} {item_rule}' if prefix_with_sep and separator_rule else item_rule - if up_to_n == 0: - return '' - elif up_to_n == 1: - return f'({content})?' - elif separator_rule and not prefix_with_sep: - return f'({content} {opt_repetitions(up_to_n - 1, prefix_with_sep=True)})?' - else: - return (f'({content} ' * up_to_n).rstrip() + (')?' * up_to_n) - if min_items > 0 and max_items != min_items: - result += ' ' +def _build_repetition(item_rule, min_items, max_items, separator_rule=None): - if max_items is not None: - result += opt_repetitions(max_items - min_items, prefix_with_sep=min_items > 0) - else: - item_operator = f'({separator_rule + " " if separator_rule else ""}{item_rule})' + if min_items == 0 and max_items == 1: + return f'{item_rule}?' - if min_items == 0 and separator_rule: - result = f'({item_rule} {item_operator}*)?' + if not separator_rule: + if min_items == 1 and max_items is None: + return f'{item_rule}+' + elif min_items == 0 and max_items is None: + return f'{item_rule}*' else: - result += f'{item_operator}*' + return f'{item_rule}{{{min_items},{max_items if max_items is not None else ""}}}' - return result + result = item_rule + ' ' + _build_repetition(f'({separator_rule} {item_rule})', min_items - 1 if min_items > 0 else 0, max_items - 1 if max_items is not None else None) + return f'({result})?' if min_items == 0 else result class BuiltinRule: @@ -59,31 +29,29 @@ def __init__(self, content: str, deps: list = None): self.content = content self.deps = deps or [] -_up_to_15_digits = _build_repetition('[0-9]', 0, 15) - # whitespace is constrained to a single space char to prevent model "running away" in # whitespace. Also maybe improves generation quality? SPACE_RULE = '" "?' PRIMITIVE_RULES = { 'boolean' : BuiltinRule('("true" | "false") space', []), - 'decimal-part' : BuiltinRule('[0-9] ' + _up_to_15_digits, []), - 'integral-part': BuiltinRule('[0-9] | [1-9] ' + _up_to_15_digits, []), + 'decimal-part' : BuiltinRule('[0-9]{1,16}', []), + 'integral-part': BuiltinRule('[0] | [1-9] [0-9]{0,15}', []), 'number' : BuiltinRule('("-"? integral-part) ("." decimal-part)? ([eE] [-+]? integral-part)? space', ['integral-part', 'decimal-part']), 'integer' : BuiltinRule('("-"? integral-part) space', ['integral-part']), 'value' : BuiltinRule('object | array | string | number | boolean | null', ['object', 'array', 'string', 'number', 'boolean', 'null']), 'object' : BuiltinRule('"{" space ( string ":" space value ("," space string ":" space value)* )? "}" space', ['string', 'value']), 'array' : BuiltinRule('"[" space ( value ("," space value)* )? "]" space', ['value']), - 'uuid' : BuiltinRule(r'"\"" ' + ' "-" '.join('[0-9a-fA-F]' * n for n in [8, 4, 4, 4, 12]) + r' "\"" space', []), - 'char' : BuiltinRule(r'[^"\\] | "\\" (["\\/bfnrt] | "u" [0-9a-fA-F] [0-9a-fA-F] [0-9a-fA-F] [0-9a-fA-F])', []), + 'uuid' : BuiltinRule(r'"\"" [0-9a-fA-F]{8} "-" [0-9a-fA-F]{4} "-" [0-9a-fA-F]{4} "-" [0-9a-fA-F]{4} "-" [0-9a-fA-F]{12} "\"" space', []), + 'char' : BuiltinRule(r'[^"\\] | "\\" (["\\/bfnrt] | "u" [0-9a-fA-F]{4})', []), 'string' : BuiltinRule(r'"\"" char* "\"" space', ['char']), 'null' : BuiltinRule('"null" space', []), } # TODO: support "uri", "email" string formats STRING_FORMAT_RULES = { - 'date' : BuiltinRule('[0-9] [0-9] [0-9] [0-9] "-" ( "0" [1-9] | "1" [0-2] ) "-" ( \"0\" [1-9] | [1-2] [0-9] | "3" [0-1] )', []), - 'time' : BuiltinRule('([01] [0-9] | "2" [0-3]) ":" [0-5] [0-9] ":" [0-5] [0-9] ( "." [0-9] [0-9] [0-9] )? ( "Z" | ( "+" | "-" ) ( [01] [0-9] | "2" [0-3] ) ":" [0-5] [0-9] )', []), + 'date' : BuiltinRule('[0-9]{4} "-" ( "0" [1-9] | "1" [0-2] ) "-" ( \"0\" [1-9] | [1-2] [0-9] | "3" [0-1] )', []), + 'time' : BuiltinRule('([01] [0-9] | "2" [0-3]) ":" [0-5] [0-9] ":" [0-5] [0-9] ( "." [0-9]{3} )? ( "Z" | ( "+" | "-" ) ( [01] [0-9] | "2" [0-3] ) ":" [0-5] [0-9] )', []), 'date-time' : BuiltinRule('date "T" time', ['date', 'time']), 'date-string' : BuiltinRule('"\\"" date "\\"" space', ['date']), 'time-string' : BuiltinRule('"\\"" time "\\"" space', ['time']), @@ -333,7 +301,7 @@ def join_seq(): sub_rule_ids[sub] = id sub = id - seq[-1] = (_build_repetition(f'"{sub}"' if sub_is_literal else sub, min_times, max_times, item_rule_is_literal=sub_is_literal), False) + seq[-1] = (_build_repetition(f'"{sub}"' if sub_is_literal else sub, min_times, max_times), False) else: literal = '' while i < length: diff --git a/examples/pydantic_models_to_grammar.py b/examples/pydantic_models_to_grammar.py index 9acc7cc6dcd85..f029c73a2582d 100644 --- a/examples/pydantic_models_to_grammar.py +++ b/examples/pydantic_models_to_grammar.py @@ -624,7 +624,7 @@ def get_primitive_grammar(grammar): "\\" (["\\/bfnrt] | "u" [0-9a-fA-F] [0-9a-fA-F] [0-9a-fA-F] [0-9a-fA-F]) )* "\"" ws ws ::= ([ \t\n] ws)? -float ::= ("-"? ([0-9] | [1-9] [0-9]*)) ("." [0-9]+)? ([eE] [-+]? [0-9]+)? ws +float ::= ("-"? ([0] | [1-9] [0-9]*)) ("." [0-9]+)? ([eE] [-+]? [0-9]+)? ws integer ::= [0-9]+""" diff --git a/examples/server/public/json-schema-to-grammar.mjs b/examples/server/public/json-schema-to-grammar.mjs index 8e0be1b405e3c..cef11eab83a46 100644 --- a/examples/server/public/json-schema-to-grammar.mjs +++ b/examples/server/public/json-schema-to-grammar.mjs @@ -2,57 +2,26 @@ const SPACE_RULE = '" "?'; function _buildRepetition(itemRule, minItems, maxItems, opts={}) { + if (minItems === 0 && maxItems === 1) { + return `${itemRule}?`; + } + + const separatorRule = opts.separatorRule ?? ''; const itemRuleIsLiteral = opts.itemRuleIsLiteral ?? false if (separatorRule === '') { - if (minItems === 0 && maxItems === 1) { - return `${itemRule}?`; - } else if (minItems === 1 && maxItems === undefined) { + if (minItems === 1 && maxItems === undefined) { return `${itemRule}+`; - } - } - - let result = ''; - if (minItems > 0) { - if (itemRuleIsLiteral && separatorRule === '') { - result = `"${itemRule.slice(1, -1).repeat(minItems)}"`; + } else if (minItems === 0 && maxItems === undefined) { + return `${itemRule}*`; } else { - result = Array.from({ length: minItems }, () => itemRule) - .join(separatorRule !== '' ? ` ${separatorRule} ` : ' '); + return `${itemRule}{${minItems},${maxItems !== undefined ? maxItems : ''}}`; } } - const optRepetitions = (upToN, prefixWithSep=false) => { - const content = separatorRule !== '' && prefixWithSep ? `${separatorRule} ${itemRule}` : itemRule; - if (upToN === 0) { - return ''; - } else if (upToN === 1) { - return `(${content})?`; - } else if (separatorRule !== '' && !prefixWithSep) { - return `(${content} ${optRepetitions(upToN - 1, true)})?`; - } else { - return Array.from({ length: upToN }, () => `(${content}`).join(' ').trim() + Array.from({ length: upToN }, () => ')?').join(''); - } - }; - - if (minItems > 0 && maxItems !== minItems) { - result += ' '; - } - - if (maxItems !== undefined) { - result += optRepetitions(maxItems - minItems, minItems > 0); - } else { - const itemOperator = `(${separatorRule !== '' ? separatorRule + ' ' : ''}${itemRule})`; - - if (minItems === 0 && separatorRule !== '') { - result = `(${itemRule} ${itemOperator}*)?`; - } else { - result += `${itemOperator}*`; - } - } - - return result; + const result = itemRule + ' ' + _buildRepetition(`(${separatorRule} ${itemRule})`, minItems > 0 ? minItems - 1 : 0, maxItems !== undefined ? maxItems - 1 : undefined); + return minItems === 0 ? `(${result})?` : result; } class BuiltinRule { @@ -62,27 +31,25 @@ class BuiltinRule { } } -const UP_TO_15_DIGITS = _buildRepetition('[0-9]', 0, 15); - const PRIMITIVE_RULES = { boolean : new BuiltinRule('("true" | "false") space', []), - 'decimal-part' : new BuiltinRule('[0-9] ' + UP_TO_15_DIGITS, []), - 'integral-part': new BuiltinRule('[0-9] | [1-9] ' + UP_TO_15_DIGITS, []), + 'decimal-part' : new BuiltinRule('[0-9]{1,16}', []), + 'integral-part': new BuiltinRule('[0] | [1-9] [0-9]{0,15}', []), number : new BuiltinRule('("-"? integral-part) ("." decimal-part)? ([eE] [-+]? integral-part)? space', ['integral-part', 'decimal-part']), integer : new BuiltinRule('("-"? integral-part) space', ['integral-part']), value : new BuiltinRule('object | array | string | number | boolean | null', ['object', 'array', 'string', 'number', 'boolean', 'null']), object : new BuiltinRule('"{" space ( string ":" space value ("," space string ":" space value)* )? "}" space', ['string', 'value']), array : new BuiltinRule('"[" space ( value ("," space value)* )? "]" space', ['value']), - uuid : new BuiltinRule('"\\"" ' + [8, 4, 4, 4, 12].map(n => [...new Array(n)].map(_ => '[0-9a-fA-F]').join('')).join(' "-" ') + ' "\\"" space', []), - char : new BuiltinRule(`[^"\\\\] | "\\\\" (["\\\\/bfnrt] | "u" [0-9a-fA-F] [0-9a-fA-F] [0-9a-fA-F] [0-9a-fA-F])`, []), + uuid : new BuiltinRule('"\\"" [0-9a-fA-F]{8} "-" [0-9a-fA-F]{4} "-" [0-9a-fA-F]{4} "-" [0-9a-fA-F]{4} "-" [0-9a-fA-F]{12} "\\"" space', []), + char : new BuiltinRule(`[^"\\\\] | "\\\\" (["\\\\/bfnrt] | "u" [0-9a-fA-F]{4})`, []), string : new BuiltinRule(`"\\"" char* "\\"" space`, ['char']), null : new BuiltinRule('"null" space', []), }; // TODO: support "uri", "email" string formats const STRING_FORMAT_RULES = { - 'date' : new BuiltinRule('[0-9] [0-9] [0-9] [0-9] "-" ( "0" [1-9] | "1" [0-2] ) "-" ( \"0\" [1-9] | [1-2] [0-9] | "3" [0-1] )', []), - 'time' : new BuiltinRule('([01] [0-9] | "2" [0-3]) ":" [0-5] [0-9] ":" [0-5] [0-9] ( "." [0-9] [0-9] [0-9] )? ( "Z" | ( "+" | "-" ) ( [01] [0-9] | "2" [0-3] ) ":" [0-5] [0-9] )', []), + 'date' : new BuiltinRule('[0-9]{4} "-" ( "0" [1-9] | "1" [0-2] ) "-" ( \"0\" [1-9] | [1-2] [0-9] | "3" [0-1] )', []), + 'time' : new BuiltinRule('([01] [0-9] | "2" [0-3]) ":" [0-5] [0-9] ":" [0-5] [0-9] ( "." [0-9]{3} )? ( "Z" | ( "+" | "-" ) ( [01] [0-9] | "2" [0-3] ) ":" [0-5] [0-9] )', []), 'date-time' : new BuiltinRule('date "T" time', ['date', 'time']), 'date-string' : new BuiltinRule('"\\"" date "\\"" space', ['date']), 'time-string' : new BuiltinRule('"\\"" time "\\"" space', ['time']), diff --git a/grammars/README.md b/grammars/README.md index 2b8384d9d330e..3ffc7cec09257 100644 --- a/grammars/README.md +++ b/grammars/README.md @@ -59,9 +59,13 @@ Parentheses `()` can be used to group sequences, which allows for embedding alte ## Repetition and Optional Symbols -- `*` after a symbol or sequence means that it can be repeated zero or more times. -- `+` denotes that the symbol or sequence should appear one or more times. -- `?` makes the preceding symbol or sequence optional. +- `*` after a symbol or sequence means that it can be repeated zero or more times (equivalent to `{0,}`). +- `+` denotes that the symbol or sequence should appear one or more times (equivalent to `{1,}`). +- `?` makes the preceding symbol or sequence optional (equivalent to `{0,1}`). +- `{m}` repeats the precedent symbol or sequence exactly `m` times +- `{m,}` repeats the precedent symbol or sequence at least `m` times +- `{m,n}` repeats the precedent symbol or sequence at between `m` and `n` times (included) +- `{0,n}` repeats the precedent symbol or sequence at most `n` times (included) ## Comments and newlines @@ -98,4 +102,4 @@ Grammars currently have performance gotchas (see https://github.com/ggerganov/ll A common pattern is to allow repetitions of a pattern `x` up to N times. -While semantically correct, the syntax `x? x? x?.... x?` (with N repetitions) will result in extremely slow inference. Instead, you can write `(x (x (x ... (x)?...)?)?)?` (w/ N-deep nesting) +While semantically correct, the syntax `x? x? x?.... x?` (with N repetitions) may result in extremely slow sampling. Instead, you can write `x{0,N}` (or `(x (x (x ... (x)?...)?)?)?` w/ N-deep nesting in earlier llama.cpp versions). diff --git a/tests/test-grammar-integration.cpp b/tests/test-grammar-integration.cpp index 01c5bb27aabb9..9bdab05af7259 100644 --- a/tests/test-grammar-integration.cpp +++ b/tests/test-grammar-integration.cpp @@ -292,6 +292,82 @@ static void test_quantifiers() { "catyyy", } ); + test_grammar( + "simple exact repetition", + // Grammar + R"""( + root ::= [ab]{4} + )""", + // Passing strings + { + "aaaa", + "bbbb", + "abab", + }, + // Failing strings + { + "a", + "b", + "aaaaa", + } + ); + test_grammar( + "simple min repetition", + // Grammar + R"""( + root ::= [ab]{4,} + )""", + // Passing strings + { + "aaaa", + "aaaaab", + "bbbb", + "ababab", + }, + // Failing strings + { + "", + "aba", + } + ); + test_grammar( + "simple max repetition", + // Grammar + R"""( + root ::= [ab]{0,4} + )""", + // Passing strings + { + "", + "a", + "aa", + "aaa", + "aaab", + }, + // Failing strings + { + "aaaaa", + } + ); + test_grammar( + "min / max repetition", + // Grammar + R"""( + root ::= ("0x" [A-F0-9]{2} " "?){3,5} + )""", + // Passing strings + { + "0xFF 0x12 0xAB", + "0xFF 0x12 0xAB 0x00 0x00", + }, + // Failing strings + { + "", + "0xFF", + "0xFF 0x12", + "0xFF 0x12 0xAB 0x00 0x00 0x00", + } + ); } static void test_failure_missing_root() { diff --git a/tests/test-grammar-parser.cpp b/tests/test-grammar-parser.cpp index 91939e276df07..5df5abb25394c 100644 --- a/tests/test-grammar-parser.cpp +++ b/tests/test-grammar-parser.cpp @@ -7,28 +7,79 @@ #include -int main() -{ - grammar_parser::parse_state parsed_grammar; +static const char * type_str(llama_gretype type) { + switch (type) { + case LLAMA_GRETYPE_CHAR: return "LLAMA_GRETYPE_CHAR"; + case LLAMA_GRETYPE_CHAR_NOT: return "LLAMA_GRETYPE_CHAR_NOT"; + case LLAMA_GRETYPE_CHAR_ALT: return "LLAMA_GRETYPE_CHAR_ALT"; + case LLAMA_GRETYPE_CHAR_RNG_UPPER: return "LLAMA_GRETYPE_CHAR_RNG_UPPER"; + case LLAMA_GRETYPE_RULE_REF: return "LLAMA_GRETYPE_RULE_REF"; + case LLAMA_GRETYPE_ALT: return "LLAMA_GRETYPE_ALT"; + case LLAMA_GRETYPE_END: return "LLAMA_GRETYPE_END"; + default: return "?"; + } +} - const char *grammar_bytes = R"""(root ::= (expr "=" term "\n")+ -expr ::= term ([-+*/] term)* -term ::= [0-9]+)"""; +static void verify_parsing(const char *grammar_bytes, const std::vector> expected, const std::vector &expected_rules) { + uint32_t index = 0; + grammar_parser::parse_state parsed_grammar = grammar_parser::parse(grammar_bytes); - parsed_grammar = grammar_parser::parse(grammar_bytes); + std::map symbol_names; + for (auto it = parsed_grammar.symbol_ids.begin(); it != parsed_grammar.symbol_ids.end(); ++it) { + symbol_names[it->second] = it->first; + } - std::vector> expected = { - {"expr", 2}, - {"expr_5", 5}, - {"expr_6", 6}, - {"root", 0}, - {"root_1", 1}, - {"root_4", 4}, - {"term", 3}, - {"term_7", 7}, + auto print_all = [&]() { + fprintf(stderr, " verify_parsing(R\"\"\"(%s)\"\"\", {\n", grammar_bytes); + for (auto it = parsed_grammar.symbol_ids.begin(); it != parsed_grammar.symbol_ids.end(); ++it) { + fprintf(stderr, " {\"%s\", %u},\n", it->first.c_str(), it->second); + } + fprintf(stderr, " }, {\n"); + for (size_t i_rule = 0; i_rule < parsed_grammar.rules.size(); i_rule++) { + fprintf(stderr, " // %s (index %zu)\n", symbol_names[i_rule].c_str(), i_rule); + auto & rule = parsed_grammar.rules[i_rule]; + for (uint32_t i = 0; i < rule.size(); i++) { + std::string rule_str; + fprintf(stderr, " {%s, ", type_str(rule[i].type)); + if (rule[i].type == LLAMA_GRETYPE_CHAR || rule[i].type == LLAMA_GRETYPE_CHAR_ALT || + rule[i].type == LLAMA_GRETYPE_CHAR_NOT || rule[i].type == LLAMA_GRETYPE_CHAR_RNG_UPPER) { + char c = rule[i].value; + if (c == '\n') { + fprintf(stderr, "'\\n'"); + } else if (c == '\t') { + fprintf(stderr, "'\\t'"); + } else if (c == '\r') { + fprintf(stderr, "'\\r'"); + } else if (c == '\0') { + fprintf(stderr, "'\\0'"); + } else { + fprintf(stderr, "'%c'", c); + } + } else if (rule[i].type == LLAMA_GRETYPE_RULE_REF) { + fprintf(stderr, "/* %s */ %u", symbol_names[rule[i].value].c_str(), rule[i].value); + } else { + fprintf(stderr, "%u", rule[i].value); + } + fprintf(stderr, "},\n"); + } + } + fprintf(stderr, " });\n"); }; - uint32_t index = 0; + if (getenv("TEST_GRAMMAR_PARSER_PRINT_ALL")) { + print_all(); + fprintf(stderr, "\n"); + return; + } + + fprintf(stderr, "Testing grammar:%s\n", grammar_bytes); + + if (parsed_grammar.symbol_ids.size() != expected.size()) { + fprintf(stderr, "Code to update expectation (set TEST_GRAMMAR_PARSER_PRINT_ALL=1 to print all):\n"); + print_all(); + assert(parsed_grammar.symbol_ids.size() == expected.size()); + } + for (auto it = parsed_grammar.symbol_ids.begin(); it != parsed_grammar.symbol_ids.end(); ++it) { std::string key = it->first; @@ -38,51 +89,18 @@ term ::= [0-9]+)"""; // pretty print error message before asserting if (expected_pair.first != key || expected_pair.second != value) { + fprintf(stderr, "index: %u\n", index); fprintf(stderr, "expected_pair: %s, %u\n", expected_pair.first.c_str(), expected_pair.second); fprintf(stderr, "actual_pair: %s, %u\n", key.c_str(), value); fprintf(stderr, "expected_pair != actual_pair\n"); + fprintf(stderr, "Code to update expectation (set TEST_GRAMMAR_PARSER_PRINT_ALL=1 to print all):\n"); + print_all(); } assert(expected_pair.first == key && expected_pair.second == value); index++; } - std::vector expected_rules = { - {LLAMA_GRETYPE_RULE_REF, 4}, - {LLAMA_GRETYPE_END, 0}, - {LLAMA_GRETYPE_RULE_REF, 2}, - {LLAMA_GRETYPE_CHAR, 61}, - {LLAMA_GRETYPE_RULE_REF, 3}, - {LLAMA_GRETYPE_CHAR, 10}, - {LLAMA_GRETYPE_END, 0}, - {LLAMA_GRETYPE_RULE_REF, 3}, - {LLAMA_GRETYPE_RULE_REF, 6}, - {LLAMA_GRETYPE_END, 0}, - {LLAMA_GRETYPE_RULE_REF, 7}, - {LLAMA_GRETYPE_END, 0}, - {LLAMA_GRETYPE_RULE_REF, 1}, - {LLAMA_GRETYPE_RULE_REF, 4}, - {LLAMA_GRETYPE_ALT, 0}, - {LLAMA_GRETYPE_RULE_REF, 1}, - {LLAMA_GRETYPE_END, 0}, - {LLAMA_GRETYPE_CHAR, 45}, - {LLAMA_GRETYPE_CHAR_ALT, 43}, - {LLAMA_GRETYPE_CHAR_ALT, 42}, - {LLAMA_GRETYPE_CHAR_ALT, 47}, - {LLAMA_GRETYPE_RULE_REF, 3}, - {LLAMA_GRETYPE_END, 0}, - {LLAMA_GRETYPE_RULE_REF, 5}, - {LLAMA_GRETYPE_RULE_REF, 6}, - {LLAMA_GRETYPE_ALT, 0}, - {LLAMA_GRETYPE_END, 0}, - {LLAMA_GRETYPE_CHAR, 48}, - {LLAMA_GRETYPE_CHAR_RNG_UPPER, 57}, - {LLAMA_GRETYPE_RULE_REF, 7}, - {LLAMA_GRETYPE_ALT, 0}, - {LLAMA_GRETYPE_CHAR, 48}, - {LLAMA_GRETYPE_CHAR_RNG_UPPER, 57}, - {LLAMA_GRETYPE_END, 0}, - }; index = 0; for (auto rule : parsed_grammar.rules) @@ -97,28 +115,306 @@ term ::= [0-9]+)"""; if (expected_element.type != element.type || expected_element.value != element.value) { fprintf(stderr, "index: %u\n", index); - fprintf(stderr, "expected_element: %d, %u\n", expected_element.type, expected_element.value); - fprintf(stderr, "actual_element: %d, %u\n", element.type, element.value); + fprintf(stderr, "expected_element: %s, %u\n", type_str(expected_element.type), expected_element.value); + fprintf(stderr, "actual_element: %s, %u\n", type_str(element.type), element.value); fprintf(stderr, "expected_element != actual_element\n"); + fprintf(stderr, "all elements:\n"); + fprintf(stderr, "Code to update expectation (set TEST_GRAMMAR_PARSER_PRINT_ALL=1 to print all):\n"); + print_all(); } assert(expected_element.type == element.type && expected_element.value == element.value); index++; } } +} + +static void verify_failure(const char *grammar_bytes) { + fprintf(stderr, "Testing expected failure:%s\n", grammar_bytes); + auto result = grammar_parser::parse(grammar_bytes); + assert(result.rules.empty() && "should have failed"); +} + +int main() +{ + verify_failure(R"""( + root ::= "a"{,}" + )"""); + + verify_failure(R"""( + root ::= "a"{,10}" + )"""); - const char *longer_grammar_bytes = R"""( - root ::= (expr "=" ws term "\n")+ - expr ::= term ([-+*/] term)* - term ::= ident | num | "(" ws expr ")" ws - ident ::= [a-z] [a-z0-9_]* ws - num ::= [0-9]+ ws - ws ::= [ \t\n]* - )"""; + verify_parsing(R"""( + root ::= "a" + )""", { + {"root", 0}, + }, { + // root (index 0) + {LLAMA_GRETYPE_CHAR, 'a'}, + {LLAMA_GRETYPE_END, 0}, + }); + + verify_parsing(R"""( + root ::= "a" | [bdx-z] | [^1-3] + )""", { + {"root", 0}, + }, { + // root (index 0) + {LLAMA_GRETYPE_CHAR, 'a'}, + {LLAMA_GRETYPE_ALT, 0}, + {LLAMA_GRETYPE_CHAR, 'b'}, + {LLAMA_GRETYPE_CHAR_ALT, 'd'}, + {LLAMA_GRETYPE_CHAR_ALT, 'x'}, + {LLAMA_GRETYPE_CHAR_RNG_UPPER, 'z'}, + {LLAMA_GRETYPE_ALT, 0}, + {LLAMA_GRETYPE_CHAR_NOT, '1'}, + {LLAMA_GRETYPE_CHAR_RNG_UPPER, '3'}, + {LLAMA_GRETYPE_END, 0}, + }); + + verify_parsing(R"""( + root ::= a+ + a ::= "a" + )""", { + {"a", 1}, + {"root", 0}, + {"root_2", 2}, + }, { + // root (index 0) + {LLAMA_GRETYPE_RULE_REF, /* a */ 1}, + {LLAMA_GRETYPE_RULE_REF, /* root_2 */ 2}, + {LLAMA_GRETYPE_END, 0}, + // a (index 1) + {LLAMA_GRETYPE_CHAR, 'a'}, + {LLAMA_GRETYPE_END, 0}, + // root_2 (index 2) + {LLAMA_GRETYPE_RULE_REF, /* a */ 1}, + {LLAMA_GRETYPE_RULE_REF, /* root_2 */ 2}, + {LLAMA_GRETYPE_ALT, 0}, + {LLAMA_GRETYPE_END, 0}, + }); + + verify_parsing(R"""( + root ::= "a"+ + )""", { + {"root", 0}, + {"root_1", 1}, + }, { + // root (index 0) + {LLAMA_GRETYPE_CHAR, 'a'}, + {LLAMA_GRETYPE_RULE_REF, /* root_1 */ 1}, + {LLAMA_GRETYPE_END, 0}, + // root_1 (index 1) + {LLAMA_GRETYPE_CHAR, 'a'}, + {LLAMA_GRETYPE_RULE_REF, /* root_1 */ 1}, + {LLAMA_GRETYPE_ALT, 0}, + {LLAMA_GRETYPE_END, 0}, + }); + + verify_parsing(R"""( + root ::= a? + a ::= "a" + )""", { + {"a", 1}, + {"root", 0}, + {"root_2", 2}, + }, { + // root (index 0) + {LLAMA_GRETYPE_RULE_REF, /* root_2 */ 2}, + {LLAMA_GRETYPE_END, 0}, + // a (index 1) + {LLAMA_GRETYPE_CHAR, 'a'}, + {LLAMA_GRETYPE_END, 0}, + // root_2 (index 2) + {LLAMA_GRETYPE_RULE_REF, /* a */ 1}, + {LLAMA_GRETYPE_ALT, 0}, + {LLAMA_GRETYPE_END, 0}, + }); - parsed_grammar = grammar_parser::parse(longer_grammar_bytes); + verify_parsing(R"""( + root ::= "a"? + )""", { + {"root", 0}, + {"root_1", 1}, + }, { + // root (index 0) + {LLAMA_GRETYPE_RULE_REF, /* root_1 */ 1}, + {LLAMA_GRETYPE_END, 0}, + // root_1 (index 1) + {LLAMA_GRETYPE_CHAR, 'a'}, + {LLAMA_GRETYPE_ALT, 0}, + {LLAMA_GRETYPE_END, 0}, + }); + + verify_parsing(R"""( + root ::= a* + a ::= "a" + )""", { + {"a", 1}, + {"root", 0}, + {"root_2", 2}, + }, { + // root (index 0) + {LLAMA_GRETYPE_RULE_REF, /* root_2 */ 2}, + {LLAMA_GRETYPE_END, 0}, + // a (index 1) + {LLAMA_GRETYPE_CHAR, 'a'}, + {LLAMA_GRETYPE_END, 0}, + // root_2 (index 2) + {LLAMA_GRETYPE_RULE_REF, /* a */ 1}, + {LLAMA_GRETYPE_RULE_REF, /* root_2 */ 2}, + {LLAMA_GRETYPE_ALT, 0}, + {LLAMA_GRETYPE_END, 0}, + }); + + verify_parsing(R"""( + root ::= "a"* + )""", { + {"root", 0}, + {"root_1", 1}, + }, { + // root (index 0) + {LLAMA_GRETYPE_RULE_REF, /* root_1 */ 1}, + {LLAMA_GRETYPE_END, 0}, + // root_1 (index 1) + {LLAMA_GRETYPE_CHAR, 'a'}, + {LLAMA_GRETYPE_RULE_REF, /* root_1 */ 1}, + {LLAMA_GRETYPE_ALT, 0}, + {LLAMA_GRETYPE_END, 0}, + }); - expected = { + verify_parsing(R"""( + root ::= "a"{2} + )""", { + {"root", 0}, + }, { + // root (index 0) + {LLAMA_GRETYPE_CHAR, 'a'}, + {LLAMA_GRETYPE_CHAR, 'a'}, + {LLAMA_GRETYPE_END, 0}, + }); + + verify_parsing(R"""( + root ::= "a"{2,} + )""", { + {"root", 0}, + {"root_1", 1}, + }, { + // root (index 0) + {LLAMA_GRETYPE_CHAR, 'a'}, + {LLAMA_GRETYPE_CHAR, 'a'}, + {LLAMA_GRETYPE_RULE_REF, /* root_1 */ 1}, + {LLAMA_GRETYPE_END, 0}, + // root_1 (index 1) + {LLAMA_GRETYPE_CHAR, 'a'}, + {LLAMA_GRETYPE_RULE_REF, /* root_1 */ 1}, + {LLAMA_GRETYPE_ALT, 0}, + {LLAMA_GRETYPE_END, 0}, + }); + + verify_parsing(R"""( + root ::= "a"{ 4} + )""", { + {"root", 0}, + }, { + // root (index 0) + {LLAMA_GRETYPE_CHAR, 'a'}, + {LLAMA_GRETYPE_CHAR, 'a'}, + {LLAMA_GRETYPE_CHAR, 'a'}, + {LLAMA_GRETYPE_CHAR, 'a'}, + {LLAMA_GRETYPE_END, 0}, + }); + + verify_parsing(R"""( + root ::= "a"{2,4} + )""", { + {"root", 0}, + {"root_1", 1}, + {"root_2", 2}, + }, { + // root (index 0) + {LLAMA_GRETYPE_CHAR, 'a'}, + {LLAMA_GRETYPE_CHAR, 'a'}, + {LLAMA_GRETYPE_RULE_REF, /* root_2 */ 2}, + {LLAMA_GRETYPE_END, 0}, + // root_1 (index 1) + {LLAMA_GRETYPE_CHAR, 'a'}, + {LLAMA_GRETYPE_ALT, 0}, + {LLAMA_GRETYPE_END, 0}, + // root_2 (index 2) + {LLAMA_GRETYPE_CHAR, 'a'}, + {LLAMA_GRETYPE_RULE_REF, /* root_1 */ 1}, + {LLAMA_GRETYPE_ALT, 0}, + {LLAMA_GRETYPE_END, 0}, + }); + + verify_parsing(R"""( + root ::= (expr "=" term "\n")+ + expr ::= term ([-+*/] term)* + term ::= [0-9]+ + )""", { + {"expr", 2}, + {"expr_5", 5}, + {"expr_6", 6}, + {"root", 0}, + {"root_1", 1}, + {"root_4", 4}, + {"term", 3}, + {"term_7", 7}, + }, { + // root (index 0) + {LLAMA_GRETYPE_RULE_REF, /* root_1 */ 1}, + {LLAMA_GRETYPE_RULE_REF, /* root_4 */ 4}, + {LLAMA_GRETYPE_END, 0}, + // root_1 (index 1) + {LLAMA_GRETYPE_RULE_REF, /* expr */ 2}, + {LLAMA_GRETYPE_CHAR, '='}, + {LLAMA_GRETYPE_RULE_REF, /* term */ 3}, + {LLAMA_GRETYPE_CHAR, '\n'}, + {LLAMA_GRETYPE_END, 0}, + // expr (index 2) + {LLAMA_GRETYPE_RULE_REF, /* term */ 3}, + {LLAMA_GRETYPE_RULE_REF, /* expr_6 */ 6}, + {LLAMA_GRETYPE_END, 0}, + // term (index 3) + {LLAMA_GRETYPE_CHAR, '0'}, + {LLAMA_GRETYPE_CHAR_RNG_UPPER, '9'}, + {LLAMA_GRETYPE_RULE_REF, /* term_7 */ 7}, + {LLAMA_GRETYPE_END, 0}, + // root_4 (index 4) + {LLAMA_GRETYPE_RULE_REF, /* root_1 */ 1}, + {LLAMA_GRETYPE_RULE_REF, /* root_4 */ 4}, + {LLAMA_GRETYPE_ALT, 0}, + {LLAMA_GRETYPE_END, 0}, + // expr_5 (index 5) + {LLAMA_GRETYPE_CHAR, '-'}, + {LLAMA_GRETYPE_CHAR_ALT, '+'}, + {LLAMA_GRETYPE_CHAR_ALT, '*'}, + {LLAMA_GRETYPE_CHAR_ALT, '/'}, + {LLAMA_GRETYPE_RULE_REF, /* term */ 3}, + {LLAMA_GRETYPE_END, 0}, + // expr_6 (index 6) + {LLAMA_GRETYPE_RULE_REF, /* expr_5 */ 5}, + {LLAMA_GRETYPE_RULE_REF, /* expr_6 */ 6}, + {LLAMA_GRETYPE_ALT, 0}, + {LLAMA_GRETYPE_END, 0}, + // term_7 (index 7) + {LLAMA_GRETYPE_CHAR, '0'}, + {LLAMA_GRETYPE_CHAR_RNG_UPPER, '9'}, + {LLAMA_GRETYPE_RULE_REF, /* term_7 */ 7}, + {LLAMA_GRETYPE_ALT, 0}, + {LLAMA_GRETYPE_END, 0}, + }); + + verify_parsing(R"""( + root ::= (expr "=" ws term "\n")+ + expr ::= term ([-+*/] term)* + term ::= ident | num | "(" ws expr ")" ws + ident ::= [a-z] [a-z0-9_]* ws + num ::= [0-9]+ ws + ws ::= [ \t\n]* + )""", { {"expr", 2}, {"expr_6", 6}, {"expr_7", 7}, @@ -132,119 +428,88 @@ term ::= [0-9]+)"""; {"term", 4}, {"ws", 3}, {"ws_12", 12}, - }; - - index = 0; - for (auto it = parsed_grammar.symbol_ids.begin(); it != parsed_grammar.symbol_ids.end(); ++it) - { - std::string key = it->first; - uint32_t value = it->second; - std::pair expected_pair = expected[index]; - - // pretty print error message before asserting - if (expected_pair.first != key || expected_pair.second != value) - { - fprintf(stderr, "expected_pair: %s, %u\n", expected_pair.first.c_str(), expected_pair.second); - fprintf(stderr, "actual_pair: %s, %u\n", key.c_str(), value); - fprintf(stderr, "expected_pair != actual_pair\n"); - } - - assert(expected_pair.first == key && expected_pair.second == value); - - index++; - } - expected_rules = { - {LLAMA_GRETYPE_RULE_REF, 5}, + }, { + // root (index 0) + {LLAMA_GRETYPE_RULE_REF, /* root_1 */ 1}, + {LLAMA_GRETYPE_RULE_REF, /* root_5 */ 5}, {LLAMA_GRETYPE_END, 0}, - {LLAMA_GRETYPE_RULE_REF, 2}, - {LLAMA_GRETYPE_CHAR, 61}, - {LLAMA_GRETYPE_RULE_REF, 3}, - {LLAMA_GRETYPE_RULE_REF, 4}, - {LLAMA_GRETYPE_CHAR, 10}, + // root_1 (index 1) + {LLAMA_GRETYPE_RULE_REF, /* expr */ 2}, + {LLAMA_GRETYPE_CHAR, '='}, + {LLAMA_GRETYPE_RULE_REF, /* ws */ 3}, + {LLAMA_GRETYPE_RULE_REF, /* term */ 4}, + {LLAMA_GRETYPE_CHAR, '\n'}, {LLAMA_GRETYPE_END, 0}, - {LLAMA_GRETYPE_RULE_REF, 4}, - {LLAMA_GRETYPE_RULE_REF, 7}, + // expr (index 2) + {LLAMA_GRETYPE_RULE_REF, /* term */ 4}, + {LLAMA_GRETYPE_RULE_REF, /* expr_7 */ 7}, {LLAMA_GRETYPE_END, 0}, - {LLAMA_GRETYPE_RULE_REF, 12}, + // ws (index 3) + {LLAMA_GRETYPE_RULE_REF, /* ws_12 */ 12}, {LLAMA_GRETYPE_END, 0}, - {LLAMA_GRETYPE_RULE_REF, 8}, + // term (index 4) + {LLAMA_GRETYPE_RULE_REF, /* ident */ 8}, {LLAMA_GRETYPE_ALT, 0}, - {LLAMA_GRETYPE_RULE_REF, 9}, + {LLAMA_GRETYPE_RULE_REF, /* num */ 9}, {LLAMA_GRETYPE_ALT, 0}, - {LLAMA_GRETYPE_CHAR, 40}, - {LLAMA_GRETYPE_RULE_REF, 3}, - {LLAMA_GRETYPE_RULE_REF, 2}, - {LLAMA_GRETYPE_CHAR, 41}, - {LLAMA_GRETYPE_RULE_REF, 3}, + {LLAMA_GRETYPE_CHAR, '('}, + {LLAMA_GRETYPE_RULE_REF, /* ws */ 3}, + {LLAMA_GRETYPE_RULE_REF, /* expr */ 2}, + {LLAMA_GRETYPE_CHAR, ')'}, + {LLAMA_GRETYPE_RULE_REF, /* ws */ 3}, {LLAMA_GRETYPE_END, 0}, - {LLAMA_GRETYPE_RULE_REF, 1}, - {LLAMA_GRETYPE_RULE_REF, 5}, + // root_5 (index 5) + {LLAMA_GRETYPE_RULE_REF, /* root_1 */ 1}, + {LLAMA_GRETYPE_RULE_REF, /* root_5 */ 5}, {LLAMA_GRETYPE_ALT, 0}, - {LLAMA_GRETYPE_RULE_REF, 1}, {LLAMA_GRETYPE_END, 0}, - {LLAMA_GRETYPE_CHAR, 45}, - {LLAMA_GRETYPE_CHAR_ALT, 43}, - {LLAMA_GRETYPE_CHAR_ALT, 42}, - {LLAMA_GRETYPE_CHAR_ALT, 47}, - {LLAMA_GRETYPE_RULE_REF, 4}, + // expr_6 (index 6) + {LLAMA_GRETYPE_CHAR, '-'}, + {LLAMA_GRETYPE_CHAR_ALT, '+'}, + {LLAMA_GRETYPE_CHAR_ALT, '*'}, + {LLAMA_GRETYPE_CHAR_ALT, '/'}, + {LLAMA_GRETYPE_RULE_REF, /* term */ 4}, {LLAMA_GRETYPE_END, 0}, - {LLAMA_GRETYPE_RULE_REF, 6}, - {LLAMA_GRETYPE_RULE_REF, 7}, + // expr_7 (index 7) + {LLAMA_GRETYPE_RULE_REF, /* expr_6 */ 6}, + {LLAMA_GRETYPE_RULE_REF, /* expr_7 */ 7}, {LLAMA_GRETYPE_ALT, 0}, {LLAMA_GRETYPE_END, 0}, - {LLAMA_GRETYPE_CHAR, 97}, - {LLAMA_GRETYPE_CHAR_RNG_UPPER, 122}, - {LLAMA_GRETYPE_RULE_REF, 10}, - {LLAMA_GRETYPE_RULE_REF, 3}, + // ident (index 8) + {LLAMA_GRETYPE_CHAR, 'a'}, + {LLAMA_GRETYPE_CHAR_RNG_UPPER, 'z'}, + {LLAMA_GRETYPE_RULE_REF, /* ident_10 */ 10}, + {LLAMA_GRETYPE_RULE_REF, /* ws */ 3}, {LLAMA_GRETYPE_END, 0}, - {LLAMA_GRETYPE_RULE_REF, 11}, - {LLAMA_GRETYPE_RULE_REF, 3}, + // num (index 9) + {LLAMA_GRETYPE_CHAR, '0'}, + {LLAMA_GRETYPE_CHAR_RNG_UPPER, '9'}, + {LLAMA_GRETYPE_RULE_REF, /* num_11 */ 11}, + {LLAMA_GRETYPE_RULE_REF, /* ws */ 3}, {LLAMA_GRETYPE_END, 0}, - {LLAMA_GRETYPE_CHAR, 97}, - {LLAMA_GRETYPE_CHAR_RNG_UPPER, 122}, - {LLAMA_GRETYPE_CHAR_ALT, 48}, - {LLAMA_GRETYPE_CHAR_RNG_UPPER, 57}, - {LLAMA_GRETYPE_CHAR_ALT, 95}, - {LLAMA_GRETYPE_RULE_REF, 10}, + // ident_10 (index 10) + {LLAMA_GRETYPE_CHAR, 'a'}, + {LLAMA_GRETYPE_CHAR_RNG_UPPER, 'z'}, + {LLAMA_GRETYPE_CHAR_ALT, '0'}, + {LLAMA_GRETYPE_CHAR_RNG_UPPER, '9'}, + {LLAMA_GRETYPE_CHAR_ALT, '_'}, + {LLAMA_GRETYPE_RULE_REF, /* ident_10 */ 10}, {LLAMA_GRETYPE_ALT, 0}, {LLAMA_GRETYPE_END, 0}, - {LLAMA_GRETYPE_CHAR, 48}, - {LLAMA_GRETYPE_CHAR_RNG_UPPER, 57}, - {LLAMA_GRETYPE_RULE_REF, 11}, + // num_11 (index 11) + {LLAMA_GRETYPE_CHAR, '0'}, + {LLAMA_GRETYPE_CHAR_RNG_UPPER, '9'}, + {LLAMA_GRETYPE_RULE_REF, /* num_11 */ 11}, {LLAMA_GRETYPE_ALT, 0}, - {LLAMA_GRETYPE_CHAR, 48}, - {LLAMA_GRETYPE_CHAR_RNG_UPPER, 57}, {LLAMA_GRETYPE_END, 0}, - {LLAMA_GRETYPE_CHAR, 32}, - {LLAMA_GRETYPE_CHAR_ALT, 9}, - {LLAMA_GRETYPE_CHAR_ALT, 10}, - {LLAMA_GRETYPE_RULE_REF, 12}, + // ws_12 (index 12) + {LLAMA_GRETYPE_CHAR, ' '}, + {LLAMA_GRETYPE_CHAR_ALT, '\t'}, + {LLAMA_GRETYPE_CHAR_ALT, '\n'}, + {LLAMA_GRETYPE_RULE_REF, /* ws_12 */ 12}, {LLAMA_GRETYPE_ALT, 0}, {LLAMA_GRETYPE_END, 0}, - }; - - index = 0; - for (auto rule : parsed_grammar.rules) - { - // compare rule to expected rule - for (uint32_t i = 0; i < rule.size(); i++) - { - llama_grammar_element element = rule[i]; - llama_grammar_element expected_element = expected_rules[index]; - - // pretty print error message before asserting - if (expected_element.type != element.type || expected_element.value != element.value) - { - fprintf(stderr, "index: %u\n", index); - fprintf(stderr, "expected_element: %d, %u\n", expected_element.type, expected_element.value); - fprintf(stderr, "actual_element: %d, %u\n", element.type, element.value); - fprintf(stderr, "expected_element != actual_element\n"); - } - - assert(expected_element.type == element.type && expected_element.value == element.value); - index++; - } - } + }); return 0; } diff --git a/tests/test-json-schema-to-grammar.cpp b/tests/test-json-schema-to-grammar.cpp index c5361b5b8912c..052c0807310ce 100755 --- a/tests/test-json-schema-to-grammar.cpp +++ b/tests/test-json-schema-to-grammar.cpp @@ -105,9 +105,9 @@ static void test_all(const std::string & lang, std::function Date: Thu, 6 Jun 2024 09:17:54 -0300 Subject: [PATCH 020/131] README minor fixes (#7798) [no ci] derievatives --> derivatives --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9d2a59d89d6f8..09e8cad31bf62 100644 --- a/README.md +++ b/README.md @@ -598,7 +598,7 @@ Building the program with BLAS support may lead to some performance improvements To obtain the official LLaMA 2 weights please see the Obtaining and using the Facebook LLaMA 2 model section. There is also a large selection of pre-quantized `gguf` models available on Hugging Face. -Note: `convert.py` has been moved to `examples/convert-legacy-llama.py` and shouldn't be used for anything other than `Llama/Llama2/Mistral` models and their derievatives. +Note: `convert.py` has been moved to `examples/convert-legacy-llama.py` and shouldn't be used for anything other than `Llama/Llama2/Mistral` models and their derivatives. It does not support LLaMA 3, you can use `convert-hf-to-gguf.py` with LLaMA 3 downloaded from Hugging Face. ```bash From ad675e1c67a05b16e4e12abe30dbecfc808e7b7e Mon Sep 17 00:00:00 2001 From: Clint Herron Date: Thu, 6 Jun 2024 06:08:52 -0700 Subject: [PATCH 021/131] Added support for . (any character) token in grammar engine. (#6467) * Added support for . (any characer) token in grammar engine. * Add integration tests for any-character symbol. --- common/grammar-parser.cpp | 11 +++++++++++ llama.cpp | 12 ++++++++++-- llama.h | 3 +++ tests/test-grammar-integration.cpp | 28 ++++++++++++++++++++++++++++ 4 files changed, 52 insertions(+), 2 deletions(-) diff --git a/common/grammar-parser.cpp b/common/grammar-parser.cpp index 79d2b0354b90c..a518b766dc33e 100644 --- a/common/grammar-parser.cpp +++ b/common/grammar-parser.cpp @@ -266,6 +266,10 @@ namespace grammar_parser { throw std::runtime_error(std::string("expecting ')' at ") + pos); } pos = parse_space(pos + 1, is_nested); + } else if (*pos == '.') { // any char + last_sym_start = out_elements.size(); + out_elements.push_back({LLAMA_GRETYPE_CHAR_ANY, 0}); + pos = parse_space(pos + 1, is_nested); } else if (*pos == '*') { pos = parse_space(pos + 1, is_nested); handle_repetitions(0, -1); @@ -401,6 +405,7 @@ namespace grammar_parser { case LLAMA_GRETYPE_CHAR_NOT: return true; case LLAMA_GRETYPE_CHAR_ALT: return true; case LLAMA_GRETYPE_CHAR_RNG_UPPER: return true; + case LLAMA_GRETYPE_CHAR_ANY: return true; default: return false; } } @@ -415,6 +420,7 @@ namespace grammar_parser { case LLAMA_GRETYPE_CHAR_NOT: fprintf(file, "CHAR_NOT"); break; case LLAMA_GRETYPE_CHAR_RNG_UPPER: fprintf(file, "CHAR_RNG_UPPER"); break; case LLAMA_GRETYPE_CHAR_ALT: fprintf(file, "CHAR_ALT"); break; + case LLAMA_GRETYPE_CHAR_ANY: fprintf(file, "CHAR_ANY"); break; } switch (elem.type) { case LLAMA_GRETYPE_END: @@ -426,6 +432,7 @@ namespace grammar_parser { case LLAMA_GRETYPE_CHAR_NOT: case LLAMA_GRETYPE_CHAR_RNG_UPPER: case LLAMA_GRETYPE_CHAR_ALT: + case LLAMA_GRETYPE_CHAR_ANY: fprintf(file, "(\""); print_grammar_char(file, elem.value); fprintf(file, "\") "); @@ -483,11 +490,15 @@ namespace grammar_parser { } print_grammar_char(file, elem.value); break; + case LLAMA_GRETYPE_CHAR_ANY: + fprintf(file, "."); + break; } if (is_char_element(elem)) { switch (rule[i + 1].type) { case LLAMA_GRETYPE_CHAR_ALT: case LLAMA_GRETYPE_CHAR_RNG_UPPER: + case LLAMA_GRETYPE_CHAR_ANY: break; default: fprintf(file, "] "); diff --git a/llama.cpp b/llama.cpp index cefb4d1d52dc3..32264a0082a90 100644 --- a/llama.cpp +++ b/llama.cpp @@ -13640,7 +13640,7 @@ static std::pair llama_grammar_match_char( const uint32_t chr) { bool found = false; - bool is_positive_char = pos->type == LLAMA_GRETYPE_CHAR; + bool is_positive_char = pos->type == LLAMA_GRETYPE_CHAR || pos->type == LLAMA_GRETYPE_CHAR_ANY; GGML_ASSERT(is_positive_char || pos->type == LLAMA_GRETYPE_CHAR_NOT); // NOLINT @@ -13649,6 +13649,10 @@ static std::pair llama_grammar_match_char( // inclusive range, e.g. [a-z] found = found || (pos->value <= chr && chr <= pos[1].value); pos += 2; + } else if (pos->type == LLAMA_GRETYPE_CHAR_ANY) { + // Any character matches "." + found = true; + pos += 1; } else { // exact char match, e.g. [a] or "a" found = found || pos->value == chr; @@ -13666,7 +13670,7 @@ static bool llama_grammar_match_partial_char( const llama_grammar_element * pos, const llama_partial_utf8 partial_utf8) { - bool is_positive_char = pos->type == LLAMA_GRETYPE_CHAR; + bool is_positive_char = pos->type == LLAMA_GRETYPE_CHAR || pos->type == LLAMA_GRETYPE_CHAR_ANY; GGML_ASSERT(is_positive_char || pos->type == LLAMA_GRETYPE_CHAR_NOT); uint32_t partial_value = partial_utf8.value; @@ -13696,6 +13700,9 @@ static bool llama_grammar_match_partial_char( return is_positive_char; } pos += 2; + } else if (pos->type == LLAMA_GRETYPE_CHAR_ANY) { + // Any character matches "." + return true; } else { // exact char match, e.g. [a] or "a" if (low <= pos->value && pos->value <= high) { @@ -13756,6 +13763,7 @@ static void llama_grammar_advance_stack( } case LLAMA_GRETYPE_CHAR: case LLAMA_GRETYPE_CHAR_NOT: + case LLAMA_GRETYPE_CHAR_ANY: if (std::find(new_stacks.begin(), new_stacks.end(), stack) == new_stacks.end()) { // only add the stack if it's not a duplicate of one we already have new_stacks.emplace_back(stack); diff --git a/llama.h b/llama.h index 9dcd67bef5036..62908261f2791 100644 --- a/llama.h +++ b/llama.h @@ -365,6 +365,9 @@ extern "C" { // modifies a preceding LLAMA_GRETYPE_CHAR or // LLAMA_GRETYPE_CHAR_RNG_UPPER to add an alternate char to match ([ab], [a-zA]) LLAMA_GRETYPE_CHAR_ALT = 6, + + // any character (.) + LLAMA_GRETYPE_CHAR_ANY = 7, }; typedef struct llama_grammar_element { diff --git a/tests/test-grammar-integration.cpp b/tests/test-grammar-integration.cpp index 9bdab05af7259..8787fb1ec6987 100644 --- a/tests/test-grammar-integration.cpp +++ b/tests/test-grammar-integration.cpp @@ -205,6 +205,33 @@ static void test_complex_grammar() { ); } +static void test_special_chars() { + // A collection of tests to exercise special characters such as "." + test_grammar( + "special characters", + // Grammar + R"""( + root ::= ... "abc" ... + )""", + // Passing strings + { + "abcabcabc", + "aaaabcccc", + // NOTE: Also ensures that multi-byte characters still count as a single character + "🔵🟠✅abc❌🟠🔵" + }, + // Failing strings + { + "aaabcccc", + "aaaaabcccc", + "aaaabccc", + "aaaabccccc", + "🔵🟠✅❌abc❌✅🟠🔵" + "🔵🟠abc🟠🔵" + } + ); +} + static void test_quantifiers() { // A collection of tests to exercise * + and ? quantifiers @@ -445,6 +472,7 @@ int main() { fprintf(stdout, "Running grammar integration tests...\n"); test_simple_grammar(); test_complex_grammar(); + test_special_chars(); test_quantifiers(); test_failure_missing_root(); test_failure_missing_reference(); From f83351f9a62a6262f1fc3d08f320033089cddfb5 Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Thu, 6 Jun 2024 16:30:58 +0300 Subject: [PATCH 022/131] imatrix : migrate to gpt_params (#7771) * imatrix : migrate to gpt_params ggml-ci * imatrix : add --save-frequency cli arg * common : fix --no-ppl --- common/common.cpp | 75 ++++++++++- common/common.h | 99 ++++++++------- examples/imatrix/README.md | 11 +- examples/imatrix/imatrix.cpp | 239 +++++++++++------------------------ examples/server/server.cpp | 2 +- 5 files changed, 212 insertions(+), 214 deletions(-) diff --git a/common/common.cpp b/common/common.cpp index c8df9a4ce8ef5..601bd216430db 100644 --- a/common/common.cpp +++ b/common/common.cpp @@ -273,6 +273,7 @@ bool gpt_params_parse(int argc, char ** argv, gpt_params & params) { } } catch (const std::invalid_argument & ex) { fprintf(stderr, "%s\n", ex.what()); + params = params_org; return false; } @@ -408,6 +409,20 @@ bool gpt_params_find_arg(int argc, char ** argv, const std::string & arg, gpt_pa } return true; } + if (arg == "--in-file") { + if (++i >= argc) { + invalid_param = true; + return true; + } + std::ifstream file(argv[i]); + if (!file) { + fprintf(stderr, "error: failed to open file '%s'\n", argv[i]); + invalid_param = true; + return true; + } + params.in_files.push_back(argv[i]); + return true; + } if (arg == "-n" || arg == "--predict" || arg == "--n-predict") { if (++i >= argc) { invalid_param = true; @@ -1081,7 +1096,15 @@ bool gpt_params_find_arg(int argc, char ** argv, const std::string & arg, gpt_pa return true; } if (arg == "-v" || arg == "--verbose") { - params.verbose = true; + params.verbosity = 1; + return true; + } + if (arg == "--verbosity") { + if (++i >= argc) { + invalid_param = true; + return true; + } + params.verbosity = std::stoi(argv[i]); return true; } if (arg == "--verbose-prompt") { @@ -1537,6 +1560,46 @@ bool gpt_params_find_arg(int argc, char ** argv, const std::string & arg, gpt_pa params.i_pos = std::stoi(argv[i]); return true; } + if (arg == "-o" || arg == "--output" || arg == "--output-file") { + if (++i >= argc) { + invalid_param = true; + return true; + } + params.out_file = argv[i]; + return true; + } + if (arg == "-ofreq" || arg == "--output-frequency") { + if (++i >= argc) { + invalid_param = true; + return true; + } + params.n_out_freq = std::stoi(argv[i]); + return true; + } + if (arg == "--save-frequency") { + if (++i >= argc) { + invalid_param = true; + return true; + } + params.n_save_freq = std::stoi(argv[i]); + return true; + } + if (arg == "--process-output") { + params.process_output = true; + return true; + } + if (arg == "--no-ppl") { + params.compute_ppl = false; + return true; + } + if (arg == "--chunk" || arg == "--from-chunk") { + if (++i >= argc) { + invalid_param = true; + return true; + } + params.i_chunk = std::stoi(argv[i]); + return true; + } #ifndef LOG_DISABLE_LOGS // Parse args for logging parameters if (log_param_single_parse(argv[i])) { @@ -1612,6 +1675,7 @@ void gpt_params_print_usage(int /*argc*/, char ** argv, const gpt_params & param options.push_back({ "*", "-h, --help, --usage", "print usage and exit" }); options.push_back({ "*", " --version", "show version and build info" }); options.push_back({ "*", "-v, --verbose", "print verbose information" }); + options.push_back({ "*", " --verbosity N", "set specific verbosity level (default: %d)", params.verbosity }); options.push_back({ "*", " --verbose-prompt", "print a verbose prompt before generation (default: %s)", params.verbose_prompt ? "true" : "false" }); options.push_back({ "*", " --no-display-prompt", "don't print prompt at generation (default: %s)", !params.display_prompt ? "true" : "false" }); options.push_back({ "*", "-co, --color", "colorise output to distinguish prompt and user input from generations (default: %s)", params.use_color ? "true" : "false" }); @@ -1637,6 +1701,7 @@ void gpt_params_print_usage(int /*argc*/, char ** argv, const gpt_params & param options.push_back({ "*", "-fa, --flash-attn", "enable Flash Attention (default: %s)", params.flash_attn ? "enabled" : "disabled" }); options.push_back({ "*", "-p, --prompt PROMPT", "prompt to start generation with (default: '%s')", params.prompt.c_str() }); options.push_back({ "*", "-f, --file FNAME", "a file containing the prompt (default: none)" }); + options.push_back({ "*", " --in-file FNAME", "an input file (repeat to specify multiple files)" }); options.push_back({ "*", "-bf, --binary-file FNAME", "binary file containing the prompt (default: none)" }); options.push_back({ "*", "-e, --escape", "process escapes sequences (\\n, \\r, \\t, \\', \\\", \\\\) (default: %s)", params.escape ? "true" : "false" }); options.push_back({ "*", " --no-escape", "do not process escape sequences" }); @@ -1804,6 +1869,14 @@ void gpt_params_print_usage(int /*argc*/, char ** argv, const gpt_params & param options.push_back({ "passkey", " --junk N", "number of times to repeat the junk text (default: %d)", params.n_junk }); options.push_back({ "passkey", " --pos N", "position of the passkey in the junk text (default: %d)", params.i_pos }); + options.push_back({ "imatrix" }); + options.push_back({ "imatrix", "-o, --output FNAME", "output file (default: '%s')", params.out_file.c_str() }); + options.push_back({ "imatrix", " --output-frequency N", "output the imatrix every N iterations (default: %d)", params.n_out_freq }); + options.push_back({ "imatrix", " --save-frequency N", "save an imatrix copy every N iterations (default: %d)", params.n_save_freq }); + options.push_back({ "imatrix", " --process-output", "collect data for the output tensor (default: %s)", params.process_output ? "true" : "false" }); + options.push_back({ "imatrix", " --no-ppl", "do not compute perplexity (default: %s)", params.compute_ppl ? "true" : "false" }); + options.push_back({ "imatrix", " --chunk N", "start processing the input from chunk N (default: %d)", params.i_chunk }); + options.push_back({ "bench" }); options.push_back({ "bench", "-pps", "is the prompt shared across parallel sequences (default: %s)", params.is_pp_shared ? "true" : "false" }); options.push_back({ "bench", "-npp n0,n1,...", "number of prompt tokens" }); diff --git a/common/common.h b/common/common.h index e0a08a61b7424..de6238e27f756 100644 --- a/common/common.h +++ b/common/common.h @@ -56,43 +56,42 @@ struct gpt_params { uint32_t seed = LLAMA_DEFAULT_SEED; // RNG seed int32_t n_threads = cpu_get_num_math(); - int32_t n_threads_draft = -1; - int32_t n_threads_batch = -1; // number of threads to use for batch processing (-1 = use n_threads) - int32_t n_threads_batch_draft = -1; - int32_t n_predict = -1; // new tokens to predict - int32_t n_ctx = 0; // context size - int32_t n_batch = 2048; // logical batch size for prompt processing (must be >=32 to use BLAS) - int32_t n_ubatch = 512; // physical batch size for prompt processing (must be >=32 to use BLAS) - int32_t n_keep = 0; // number of tokens to keep from initial prompt - int32_t n_draft = 5; // number of tokens to draft during speculative decoding - int32_t n_chunks = -1; // max number of chunks to process (-1 = unlimited) - int32_t n_parallel = 1; // number of parallel sequences to decode - int32_t n_sequences = 1; // number of sequences to decode - float p_split = 0.1f; // speculative decoding split probability - int32_t n_gpu_layers = -1; // number of layers to store in VRAM (-1 - use default) - int32_t n_gpu_layers_draft = -1; // number of layers to store in VRAM for the draft model (-1 - use default) - llama_split_mode split_mode = LLAMA_SPLIT_MODE_LAYER; // how to split the model across GPUs - int32_t main_gpu = 0; // the GPU that is used for scratch and small tensors - float tensor_split[128] = {0}; // how split tensors should be distributed across GPUs - int32_t n_beams = 0; // if non-zero then use beam search of given width. - int32_t grp_attn_n = 1; // group-attention factor - int32_t grp_attn_w = 512; // group-attention width - int32_t n_print = -1; // print token count every n tokens (-1 = disabled) - float rope_freq_base = 0.0f; // RoPE base frequency - float rope_freq_scale = 0.0f; // RoPE frequency scaling factor + int32_t n_threads_draft = -1; + int32_t n_threads_batch = -1; // number of threads to use for batch processing (-1 = use n_threads) + int32_t n_threads_batch_draft = -1; + int32_t n_predict = -1; // new tokens to predict + int32_t n_ctx = 0; // context size + int32_t n_batch = 2048; // logical batch size for prompt processing (must be >=32 to use BLAS) + int32_t n_ubatch = 512; // physical batch size for prompt processing (must be >=32 to use BLAS) + int32_t n_keep = 0; // number of tokens to keep from initial prompt + int32_t n_draft = 5; // number of tokens to draft during speculative decoding + int32_t n_chunks = -1; // max number of chunks to process (-1 = unlimited) + int32_t n_parallel = 1; // number of parallel sequences to decode + int32_t n_sequences = 1; // number of sequences to decode + float p_split = 0.1f; // speculative decoding split probability + int32_t n_gpu_layers = -1; // number of layers to store in VRAM (-1 - use default) + int32_t n_gpu_layers_draft = -1; // number of layers to store in VRAM for the draft model (-1 - use default) + int32_t main_gpu = 0; // the GPU that is used for scratch and small tensors + float tensor_split[128] = {0}; // how split tensors should be distributed across GPUs + int32_t n_beams = 0; // if non-zero then use beam search of given width. + int32_t grp_attn_n = 1; // group-attention factor + int32_t grp_attn_w = 512; // group-attention width + int32_t n_print = -1; // print token count every n tokens (-1 = disabled) + float rope_freq_base = 0.0f; // RoPE base frequency + float rope_freq_scale = 0.0f; // RoPE frequency scaling factor float yarn_ext_factor = -1.0f; // YaRN extrapolation mix factor - float yarn_attn_factor = 1.0f; // YaRN magnitude scaling factor + float yarn_attn_factor = 1.0f; // YaRN magnitude scaling factor float yarn_beta_fast = 32.0f; // YaRN low correction dim - float yarn_beta_slow = 1.0f; // YaRN high correction dim - int32_t yarn_orig_ctx = 0; // YaRN original context length + float yarn_beta_slow = 1.0f; // YaRN high correction dim + int32_t yarn_orig_ctx = 0; // YaRN original context length float defrag_thold = -1.0f; // KV cache defragmentation threshold - std::string rpc_servers = ""; // comma separated list of RPC servers ggml_backend_sched_eval_callback cb_eval = nullptr; void * cb_eval_user_data = nullptr; ggml_numa_strategy numa = GGML_NUMA_STRATEGY_DISABLED; + enum llama_split_mode split_mode = LLAMA_SPLIT_MODE_LAYER; // how to split the model across GPUs enum llama_rope_scaling_type rope_scaling_type = LLAMA_ROPE_SCALING_TYPE_UNSPECIFIED; enum llama_pooling_type pooling_type = LLAMA_POOLING_TYPE_UNSPECIFIED; // pooling type for embeddings @@ -114,7 +113,9 @@ struct gpt_params { std::string lookup_cache_static = ""; // path of static ngram cache file for lookup decoding std::string lookup_cache_dynamic = ""; // path of dynamic ngram cache file for lookup decoding std::string logits_file = ""; // file for saving *all* logits + std::string rpc_servers = ""; // comma separated list of RPC servers + std::vector in_files; // all input files std::vector antiprompt; // strings upon which more user input is prompted (a.k.a. reverse prompts) std::vector kv_overrides; @@ -124,23 +125,24 @@ struct gpt_params { std::vector control_vectors; // control vector with user defined scale + int32_t verbosity = 0; int32_t control_vector_layer_start = -1; // layer range for control vector int32_t control_vector_layer_end = -1; // layer range for control vector - int32_t ppl_stride = 0; // stride for perplexity calculations. If left at 0, the pre-existing approach will be used. - int32_t ppl_output_type = 0; // = 0 -> ppl output is as usual, = 1 -> ppl output is num_tokens, ppl, one per line - // (which is more convenient to use for plotting) - // - bool hellaswag = false; // compute HellaSwag score over random tasks from datafile supplied in prompt - size_t hellaswag_tasks = 400; // number of tasks to use when computing the HellaSwag score + int32_t ppl_stride = 0; // stride for perplexity calculations. If left at 0, the pre-existing approach will be used. + int32_t ppl_output_type = 0; // = 0 -> ppl output is as usual, = 1 -> ppl output is num_tokens, ppl, one per line + // (which is more convenient to use for plotting) + // + bool hellaswag = false; // compute HellaSwag score over random tasks from datafile supplied in prompt + size_t hellaswag_tasks = 400; // number of tasks to use when computing the HellaSwag score - bool winogrande = false; // compute Winogrande score over random tasks from datafile supplied in prompt - size_t winogrande_tasks= 0; // number of tasks to use when computing the Winogrande score. If 0, all tasks will be computed + bool winogrande = false; // compute Winogrande score over random tasks from datafile supplied in prompt + size_t winogrande_tasks = 0; // number of tasks to use when computing the Winogrande score. If 0, all tasks will be computed - bool multiple_choice = false; // compute TruthfulQA score over random tasks from datafile supplied in prompt - size_t multiple_choice_tasks = 0; // number of tasks to use when computing the TruthfulQA score. If 0, all tasks will be computed + bool multiple_choice = false; // compute TruthfulQA score over random tasks from datafile supplied in prompt + size_t multiple_choice_tasks = 0; // number of tasks to use when computing the TruthfulQA score. If 0, all tasks will be computed - bool kl_divergence = false; // compute KL divergence + bool kl_divergence = false; // compute KL divergence bool usage = false; // print usage bool use_color = false; // use color to distinguish generations and inputs @@ -163,7 +165,6 @@ struct gpt_params { bool logits_all = false; // return logits for all tokens in the batch bool use_mmap = true; // use mmap for faster loads bool use_mlock = false; // use mlock to keep model in memory - bool verbose = false; bool verbose_prompt = false; // print prompt tokens before generation bool display_prompt = true; // print prompt before generation bool infill = false; // use infill mode @@ -180,10 +181,10 @@ struct gpt_params { std::vector image; // path to image file(s) // server params - int32_t port = 8080; - int32_t timeout_read = 600; - int32_t timeout_write = timeout_read; - int32_t n_threads_http = -1; + int32_t port = 8080; // server listens on this network port + int32_t timeout_read = 600; // http read timeout in seconds + int32_t timeout_write = timeout_read; // http write timeout in seconds + int32_t n_threads_http = -1; // number of threads to use for http server (-1 = use n_threads) std::string hostname = "127.0.0.1"; std::string public_path = ""; @@ -219,6 +220,16 @@ struct gpt_params { // passkey params int32_t n_junk = 250; // number of times to repeat the junk text int32_t i_pos = -1; // position of the passkey in the junk text + + // imatrix params + std::string out_file = "imatrix.dat"; // save the resulting imatrix to this file + + int32_t n_out_freq = 10; // output the imatrix every n_out_freq iterations + int32_t n_save_freq = 0; // save the imatrix every n_save_freq iterations + int32_t i_chunk = 0; // start processing from this chunk + + bool process_output = false; // collect data for the output tensor + bool compute_ppl = true; // whether to compute perplexity }; void gpt_params_handle_model_default(gpt_params & params); diff --git a/examples/imatrix/README.md b/examples/imatrix/README.md index 458c01b8751f1..866ca9f5682ac 100644 --- a/examples/imatrix/README.md +++ b/examples/imatrix/README.md @@ -6,16 +6,19 @@ More information is available here: https://github.com/ggerganov/llama.cpp/pull/ ## Usage ``` -./imatrix -m -f [-o ] [--verbosity ] - [-ofreq num_chunks] [-ow <0 or 1>] [other common params] +./imatrix \ + -m model.gguf -f some-text.txt [-o imatrix.dat] [--process-output] [--verbosity 1] \ + [--no-ppl] [--chunk 123] [--output-frequency 10] [--save-frequency 0] \ + [--in-file imatrix-prev-0.dat --in-file imatrix-prev-1.dat ...] ``` Here `-m` with a model name and `-f` with a file containing training data (such as e.g. `wiki.train.raw`) are mandatory. The parameters in square brackets are optional and have the following meaning: * `-o` (or `--output-file`) specifies the name of the file where the computed data will be stored. If missing `imatrix.dat` is used. * `--verbosity` specifies the verbosity level. If set to `0`, no output other than the perplexity of the processed chunks will be generated. If set to `1`, each time the results are saved a message is written to `stderr`. If `>=2`, a message is output each time data is collected for any tensor. Default verbosity level is `1`. -* `-ofreq` (or `--output-frequency`) specifies how often the so far computed result is saved to disk. Default is 10 (i.e., every 10 chunks) -* `-ow` (or `--output-weight`) specifies if data will be collected for the `output.weight` tensor. My experience is that it is better to not utilize the importance matrix when quantizing `output.weight`, so this is set to `false` by default. +* `--output-frequency` specifies how often the so far computed result is saved to disk. Default is 10 (i.e., every 10 chunks) +* `--save-frequency` specifies how often to save a copy of the imatrix in a separate file. Default is 0 (i.e., never) +* `--process-output` specifies if data will be collected for the `output.weight` tensor. My experience is that it is better to not utilize the importance matrix when quantizing `output.weight`, so this is set to `false` by default. For faster computation, make sure to use GPU offloading via the `-ngl` argument diff --git a/examples/imatrix/imatrix.cpp b/examples/imatrix/imatrix.cpp index e050c09d2f38b..38420041c4781 100644 --- a/examples/imatrix/imatrix.cpp +++ b/examples/imatrix/imatrix.cpp @@ -17,39 +17,37 @@ #pragma warning(disable: 4244 4267) // possible loss of data #endif +static void print_usage(int argc, char ** argv, const gpt_params & params) { + gpt_params_print_usage(argc, argv, params); + + LOG_TEE("\nexample usage:\n"); + LOG_TEE("\n %s \\\n" + " -m model.gguf -f some-text.txt [-o imatrix.dat] [--process-output] [--verbosity 1] \\\n" + " [--no-ppl] [--chunk 123] [--output-frequency 10] [--save-frequency 0] \\\n" + " [--in-file imatrix-prev-0.dat --in-file imatrix-prev-1.dat ...]\n" , argv[0]); + LOG_TEE("\n"); +} + struct Stats { std::vector values; std::vector counts; int ncall = 0; }; -struct StatParams { - std::string dataset; - std::string ofile = "imatrix.dat"; - int n_output_frequency = 10; - int verbosity = 1; - int keep_every = 0; - bool collect_output_weight = false; -}; - class IMatrixCollector { public: IMatrixCollector() = default; - void set_parameters(StatParams&& params) { m_params = std::move(params); } + void set_params(gpt_params params) { m_params = std::move(params); } bool collect_imatrix(struct ggml_tensor * t, bool ask, void * user_data); - void save_imatrix() const; - bool load_imatrix(const char * file_name, bool add); - static bool load_imatrix(const char * file_name, std::unordered_map& imatrix); + void save_imatrix(int ncall = -1) const; + bool load_imatrix(const char * file_name); private: std::unordered_map m_stats; - StatParams m_params; + gpt_params m_params; std::mutex m_mutex; int m_last_call = 0; std::vector m_src1_data; std::vector m_ids; // the expert ids from ggml_mul_mat_id - // - void save_imatrix(const char * file_name, const char * dataset) const; - void keep_imatrix(int ncall) const; }; // remove any prefix and suffixes from the name @@ -85,7 +83,7 @@ bool IMatrixCollector::collect_imatrix(struct ggml_tensor * t, bool ask, void * if (t->op != GGML_OP_MUL_MAT) return false; // why are small batches ignored (<16 tokens)? if (src1->ne[1] < 16 || src1->type != GGML_TYPE_F32) return false; - if (!(wname.substr(0, 4) == "blk." || (m_params.collect_output_weight && wname == "output.weight"))) return false; + if (!(wname.substr(0, 4) == "blk." || (m_params.process_output && wname == "output.weight"))) return false; return true; } @@ -158,16 +156,16 @@ bool IMatrixCollector::collect_imatrix(struct ggml_tensor * t, bool ask, void * } if (e.ncall > m_last_call) { m_last_call = e.ncall; - if (m_last_call % m_params.n_output_frequency == 0) { + if (m_last_call % m_params.n_out_freq == 0) { save_imatrix(); } - if (m_params.keep_every > 0 && m_last_call%m_params.keep_every == 0) { - keep_imatrix(m_last_call); + if (m_params.n_save_freq > 0 && m_last_call%m_params.n_save_freq == 0) { + save_imatrix(m_last_call); } } } } else { - auto& e = m_stats[wname]; + auto & e = m_stats[wname]; if (e.values.empty()) { e.values.resize(src1->ne[0], 0); e.counts.resize(src1->ne[0], 0); @@ -189,11 +187,11 @@ bool IMatrixCollector::collect_imatrix(struct ggml_tensor * t, bool ask, void * } if (e.ncall > m_last_call) { m_last_call = e.ncall; - if (m_last_call % m_params.n_output_frequency == 0) { + if (m_last_call % m_params.n_out_freq == 0) { save_imatrix(); } - if (m_params.keep_every > 0 && m_last_call%m_params.keep_every == 0) { - keep_imatrix(m_last_call); + if (m_params.n_save_freq > 0 && m_last_call%m_params.n_save_freq == 0) { + save_imatrix(m_last_call); } } } @@ -201,19 +199,17 @@ bool IMatrixCollector::collect_imatrix(struct ggml_tensor * t, bool ask, void * return true; } -void IMatrixCollector::save_imatrix() const { - save_imatrix(m_params.ofile.empty() ? "imatrix.dat" : m_params.ofile.c_str(), m_params.dataset.c_str()); -} +void IMatrixCollector::save_imatrix(int ncall) const { + auto fname = m_params.out_file; + if (fname.empty()) { + fname = "imatrix.dat"; + } -void IMatrixCollector::keep_imatrix(int ncall) const { - auto file_name = m_params.ofile; - if (file_name.empty()) file_name = "imatrix.dat"; - file_name += ".at_"; - file_name += std::to_string(ncall); - save_imatrix(file_name.c_str(), m_params.dataset.c_str()); -} + if (ncall > 0) { + fname += ".at_"; + fname += std::to_string(ncall); + } -void IMatrixCollector::save_imatrix(const char * fname, const char * dataset) const { std::ofstream out(fname, std::ios::binary); int n_entries = m_stats.size(); out.write((const char *) &n_entries, sizeof(n_entries)); @@ -236,26 +232,28 @@ void IMatrixCollector::save_imatrix(const char * fname, const char * dataset) co // Write the number of call the matrix was computed with out.write((const char *) &m_last_call, sizeof(m_last_call)); - // Write the dataset name at the end of the file to later on specify it in quantize - int n_dataset = strlen(dataset); - out.write((const char *) &n_dataset, sizeof(n_dataset)); - out.write(dataset, n_dataset); + // Write the input filename at the end of the file to later on specify it in quantize + { + int len = m_params.prompt_file.size(); + out.write((const char *) &len, sizeof(len)); + out.write(m_params.prompt_file.c_str(), len); + } if (m_params.verbosity > 0) { - fprintf(stderr, "\n%s: stored collected data after %d chunks in %s\n", __func__, m_last_call, fname); + fprintf(stderr, "\n%s: stored collected data after %d chunks in %s\n", __func__, m_last_call, fname.c_str()); } } -bool IMatrixCollector::load_imatrix(const char * imatrix_file, std::unordered_map& imatrix_data) { - std::ifstream in(imatrix_file, std::ios::binary); +bool IMatrixCollector::load_imatrix(const char * fname) { + std::ifstream in(fname, std::ios::binary); if (!in) { - printf("%s: failed to open %s\n",__func__,imatrix_file); + printf("%s: failed to open %s\n",__func__, fname); return false; } int n_entries; in.read((char*)&n_entries, sizeof(n_entries)); if (in.fail() || n_entries < 1) { - printf("%s: no data in file %s\n", __func__, imatrix_file); + printf("%s: no data in file %s\n", __func__, fname); return false; } for (int i = 0; i < n_entries; ++i) { @@ -263,23 +261,22 @@ bool IMatrixCollector::load_imatrix(const char * imatrix_file, std::unordered_ma std::vector name_as_vec(len+1); in.read((char *)name_as_vec.data(), len); if (in.fail()) { - printf("%s: failed reading name for entry %d from %s\n",__func__,i+1,imatrix_file); + printf("%s: failed reading name for entry %d from %s\n",__func__,i+1, fname); return false; } name_as_vec[len] = 0; std::string name{name_as_vec.data()}; - auto& e = imatrix_data[std::move(name)]; + auto & e = m_stats[std::move(name)]; int ncall; in.read((char*)&ncall, sizeof(ncall)); int nval; in.read((char *)&nval, sizeof(nval)); if (in.fail() || nval < 1) { printf("%s: failed reading number of values for entry %d\n",__func__,i); - imatrix_data = {}; + m_stats = {}; return false; } - // When re-called from load_imatrix() with add set, this will already be created. if (e.values.empty()) { e.values.resize(nval, 0); e.counts.resize(nval, 0); @@ -289,7 +286,7 @@ bool IMatrixCollector::load_imatrix(const char * imatrix_file, std::unordered_ma in.read((char*)tmp.data(), nval*sizeof(float)); if (in.fail()) { printf("%s: failed reading data for entry %d\n",__func__,i); - imatrix_data = {}; + m_stats = {}; return false; } @@ -304,13 +301,6 @@ bool IMatrixCollector::load_imatrix(const char * imatrix_file, std::unordered_ma return true; } -bool IMatrixCollector::load_imatrix(const char * file_name, bool add) { - if (!add) { - m_stats.clear(); - } - return load_imatrix(file_name, m_stats); -} - static IMatrixCollector g_collector; static bool ik_collect_imatrix(struct ggml_tensor * t, bool ask, void * user_data) { @@ -324,7 +314,7 @@ struct results_log_softmax { float prob; }; -static std::vector softmax(const std::vector& logits) { +static std::vector softmax(const std::vector & logits) { std::vector probs(logits.size()); float max_logit = logits[0]; for (float v : logits) { @@ -358,8 +348,7 @@ static results_log_softmax log_softmax(int n_vocab, const float * logits, int to static void process_logits( int n_vocab, const float * logits, const int * tokens, int n_token, std::vector & workers, - double & nll, double & nll2, float * logit_history, float * prob_history -) { + double & nll, double & nll2, float * logit_history, float * prob_history) { std::mutex mutex; int counter = 0; auto compute = [&mutex, &counter, &nll, &nll2, logit_history, prob_history, n_vocab, logits, tokens, n_token] () { @@ -391,8 +380,7 @@ static void process_logits( } } -static bool compute_imatrix(llama_context * ctx, const gpt_params & params, bool compute_ppl, int from_chunk) { - +static bool compute_imatrix(llama_context * ctx, const gpt_params & params) { const bool add_bos = llama_should_add_bos_token(llama_get_model(ctx)); GGML_ASSERT(llama_add_eos_token(llama_get_model(ctx)) != 1); const int n_ctx = llama_n_ctx(ctx); @@ -405,13 +393,13 @@ static bool compute_imatrix(llama_context * ctx, const gpt_params & params, bool auto tim2 = std::chrono::high_resolution_clock::now(); fprintf(stderr, "%s: tokenization took %g ms\n",__func__,1e-3*std::chrono::duration_cast(tim2-tim1).count()); - if (from_chunk > 0) { - if (size_t((from_chunk + 2)*n_ctx) >= tokens.size()) { - fprintf(stderr, "%s: there will be not enough tokens left after removing %d chunks\n", __func__, from_chunk); + if (params.i_chunk > 0) { + if (size_t((params.i_chunk + 2)*n_ctx) >= tokens.size()) { + fprintf(stderr, "%s: there will be not enough tokens left after removing %d chunks\n", __func__, params.i_chunk); return false; } - fprintf(stderr, "%s: removing initial %d chunks (%d tokens)\n", __func__, from_chunk, from_chunk*n_ctx); - tokens.erase(tokens.begin(), tokens.begin() + from_chunk*n_ctx); + fprintf(stderr, "%s: removing initial %d chunks (%d tokens)\n", __func__, params.i_chunk, params.i_chunk*n_ctx); + tokens.erase(tokens.begin(), tokens.begin() + params.i_chunk*n_ctx); } if (int(tokens.size()) < 2*n_ctx) { @@ -424,7 +412,7 @@ static bool compute_imatrix(llama_context * ctx, const gpt_params & params, bool std::vector logit_history; std::vector prob_history; - if (compute_ppl) { + if (params.compute_ppl) { logit_history.resize(tokens.size()); prob_history.resize(tokens.size()); } @@ -446,7 +434,7 @@ static bool compute_imatrix(llama_context * ctx, const gpt_params & params, bool const int num_batches = (n_ctx + n_batch - 1) / n_batch; std::vector logits; - if (compute_ppl && num_batches > 1) { + if (params.compute_ppl && num_batches > 1) { logits.reserve((size_t)n_ctx * n_vocab); } @@ -482,7 +470,7 @@ static bool compute_imatrix(llama_context * ctx, const gpt_params & params, bool // restore the original token in case it was set to BOS tokens[batch_start] = token_org; - if (compute_ppl && num_batches > 1) { + if (params.compute_ppl && num_batches > 1) { const auto * batch_logits = llama_get_logits(ctx); logits.insert(logits.end(), batch_logits, batch_logits + batch_size * n_vocab); } @@ -501,7 +489,7 @@ static bool compute_imatrix(llama_context * ctx, const gpt_params & params, bool fprintf(stderr, "%.2f minutes\n", total_seconds / 60.0); } - if (compute_ppl) { + if (params.compute_ppl) { const int first = n_ctx/2; const auto all_logits = num_batches > 1 ? logits.data() : llama_get_logits(ctx); process_logits(n_vocab, all_logits + first*n_vocab, tokens.data() + start + first, n_ctx - 1 - first, @@ -516,7 +504,7 @@ static bool compute_imatrix(llama_context * ctx, const gpt_params & params, bool } printf("\n"); - if (compute_ppl) { + if (params.compute_ppl) { nll2 /= count; nll /= count; const double ppl = exp(nll); @@ -533,109 +521,32 @@ static bool compute_imatrix(llama_context * ctx, const gpt_params & params, bool } int main(int argc, char ** argv) { - StatParams sparams; - std::string prev_result_file; - std::string combine_files; - bool compute_ppl = true; - int from_chunk = 0; - std::vector args; - args.push_back(argv[0]); - int iarg = 1; - for (; iarg < argc-1; ++iarg) { - std::string arg{argv[iarg]}; - if (arg == "-o" || arg == "--output-file") { - sparams.ofile = argv[++iarg]; - } - else if (arg == "-ofreq" || arg == "--output-frequency") { - sparams.n_output_frequency = std::stoi(argv[++iarg]); - } - else if (arg == "-ow" || arg == "--output-weight") { - sparams.collect_output_weight = std::stoi(argv[++iarg]); - } - else if (arg == "--verbosity") { - sparams.verbosity = std::stoi(argv[++iarg]); - } else if (arg == "--no-ppl") { - compute_ppl = false; - } else if (arg == "--keep-imatrix") { - sparams.keep_every = std::stoi(argv[++iarg]); - } else if (arg == "--continue-from") { - prev_result_file = argv[++iarg]; - } else if (arg == "--combine") { - combine_files = argv[++iarg]; - } - else if (arg == "--from-chunk") { - from_chunk = std::stoi(argv[++iarg]); - } else { - args.push_back(argv[iarg]); - } - } - if (iarg < argc) { - std::string arg{argv[iarg]}; - if (arg == "--no-ppl") { - compute_ppl = false; - } else { - args.push_back(argv[iarg]); - } - } - gpt_params params; - params.n_batch = 512; + + params.n_ctx = 512; + params.logits_all = true; + params.verbosity = 1; if (!gpt_params_parse(argc, argv, params)) { - gpt_params_print_usage(argc, argv, params); + print_usage(argc, argv, params); return 1; } - params.logits_all = true; params.n_batch = std::min(params.n_batch, params.n_ctx); - print_build_info(); - - if (params.seed == LLAMA_DEFAULT_SEED) { - params.seed = time(NULL); - } - - fprintf(stderr, "%s: seed = %u\n", __func__, params.seed); - - std::mt19937 rng(params.seed); - - sparams.dataset = params.prompt_file; - g_collector.set_parameters(std::move(sparams)); + g_collector.set_params(params); - if (!combine_files.empty()) { - std::vector files; - size_t pos = 0; - while (true) { - auto new_pos = combine_files.find(',', pos); - if (new_pos != std::string::npos) { - files.emplace_back(combine_files.substr(pos, new_pos - pos)); - pos = new_pos + 1; - } else { - files.emplace_back(combine_files.substr(pos)); - break; - } - } - if (files.size() < 2) { - fprintf(stderr, "You must provide at least two comma separated files to use --combine\n"); + for (const auto & in_file : params.in_files) { + printf("%s : loading imatrix from '%s'\n", __func__, in_file.c_str()); + if (!g_collector.load_imatrix(in_file.c_str())) { + fprintf(stderr, "%s : failed to load %s\n", __func__, in_file.c_str()); return 1; } - printf("Combining the following %d files\n", int(files.size())); - for (auto& file : files) { - printf(" %s\n", file.c_str()); - if (!g_collector.load_imatrix(file.c_str(), true)) { - fprintf(stderr, "Failed to load %s\n", file.c_str()); - return 1; - } - } - g_collector.save_imatrix(); - return 0; } - if (!prev_result_file.empty()) { - if (!g_collector.load_imatrix(prev_result_file.c_str(), false)) { - fprintf(stderr, "=============== Failed to load %s\n", prev_result_file.c_str()); - return 1; - } + if (params.in_files.size() > 1) { + printf("%s : saving combined imatrix to '%s'\n", __func__, params.out_file.c_str()); + g_collector.save_imatrix(); } llama_backend_init(); @@ -650,6 +561,7 @@ int main(int argc, char ** argv) { // init llama_model * model; llama_context * ctx; + std::tie(model, ctx) = llama_init_from_gpt_params(params); if (model == nullptr || ctx == nullptr) { fprintf(stderr, "%s : failed to init\n", __func__); @@ -668,8 +580,7 @@ int main(int argc, char ** argv) { fprintf(stderr, "%s\n", gpt_params_get_system_info(params).c_str()); } - bool OK = compute_imatrix(ctx, params, compute_ppl, from_chunk); - if (!OK) { + if (!compute_imatrix(ctx, params)) { return 1; } diff --git a/examples/server/server.cpp b/examples/server/server.cpp index d581cad95974d..74da81dadb49d 100644 --- a/examples/server/server.cpp +++ b/examples/server/server.cpp @@ -2360,7 +2360,7 @@ int main(int argc, char ** argv) { // TODO: not great to use extern vars server_log_json = params.log_json; - server_verbose = params.verbose; + server_verbose = params.verbosity > 0; // struct that contains llama context and inference server_context ctx_server; From ee459f40f65810a810151b24eba5b8bd174ceffe Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Thu, 6 Jun 2024 19:19:59 +0300 Subject: [PATCH 023/131] server : fix --threads-http arg (#7801) --- common/common.cpp | 9 +++++++++ common/common.h | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/common/common.cpp b/common/common.cpp index 601bd216430db..cdcb352b5a8ae 100644 --- a/common/common.cpp +++ b/common/common.cpp @@ -1414,6 +1414,14 @@ bool gpt_params_find_arg(int argc, char ** argv, const std::string & arg, gpt_pa params.timeout_write = std::stoi(argv[i]); return true; } + if (arg == "--threads-http") { + if (++i >= argc) { + invalid_param = true; + return true; + } + params.n_threads_http = std::stoi(argv[i]); + return true; + } if (arg == "-spf" || arg == "--system-prompt-file") { if (++i >= argc) { invalid_param = true; @@ -1893,6 +1901,7 @@ void gpt_params_print_usage(int /*argc*/, char ** argv, const gpt_params & param options.push_back({ "server", " --ssl-key-file FNAME", "path to file a PEM-encoded SSL private key" }); options.push_back({ "server", " --ssl-cert-file FNAME", "path to file a PEM-encoded SSL certificate" }); options.push_back({ "server", " --timeout N", "server read/write timeout in seconds (default: %d)", params.timeout_read }); + options.push_back({ "server", " --threads-http N", "number of threads used to process HTTP requests (default: %d)", params.n_threads_http }); options.push_back({ "server", " --system-prompt-file FNAME", "set a file to load a system prompt (initial prompt of all slots), this is useful for chat applications" }); options.push_back({ "server", " --log-format {text,json}", diff --git a/common/common.h b/common/common.h index de6238e27f756..35f5311e10fe1 100644 --- a/common/common.h +++ b/common/common.h @@ -184,7 +184,7 @@ struct gpt_params { int32_t port = 8080; // server listens on this network port int32_t timeout_read = 600; // http read timeout in seconds int32_t timeout_write = timeout_read; // http write timeout in seconds - int32_t n_threads_http = -1; // number of threads to use for http server (-1 = use n_threads) + int32_t n_threads_http = -1; // number of threads to process HTTP requests std::string hostname = "127.0.0.1"; std::string public_path = ""; From c9ee7118d5644dd3df70ea6878b36a9761616aab Mon Sep 17 00:00:00 2001 From: slaren Date: Fri, 7 Jun 2024 08:01:29 +0200 Subject: [PATCH 024/131] check for nans in imatrix and quantize (#7807) * imatrix : detect nan/inf values * quantize : check imatrix for nan/inf values --- examples/imatrix/imatrix.cpp | 8 ++++++++ llama.cpp | 8 ++++++++ 2 files changed, 16 insertions(+) diff --git a/examples/imatrix/imatrix.cpp b/examples/imatrix/imatrix.cpp index 38420041c4781..e18f495630616 100644 --- a/examples/imatrix/imatrix.cpp +++ b/examples/imatrix/imatrix.cpp @@ -151,6 +151,10 @@ bool IMatrixCollector::collect_imatrix(struct ggml_tensor * t, bool ask, void * for (int j = 0; j < (int)src1->ne[0]; ++j) { e.values[e_start + j] += x[j]*x[j]; e.counts[e_start + j]++; + if (!std::isfinite(e.values[e_start + j])) { + fprintf(stderr, "%f detected in %s\n", e.values[e_start + j], wname.c_str()); + exit(1); + } } } } @@ -183,6 +187,10 @@ bool IMatrixCollector::collect_imatrix(struct ggml_tensor * t, bool ask, void * for (int j = 0; j < (int)src1->ne[0]; ++j) { e.values[j] += x[j]*x[j]; e.counts[j]++; + if (!std::isfinite(e.values[j])) { + fprintf(stderr, "%f detected in %s\n", e.values[j], wname.c_str()); + exit(1); + } } } if (e.ncall > m_last_call) { diff --git a/llama.cpp b/llama.cpp index 32264a0082a90..8b675ea993a38 100644 --- a/llama.cpp +++ b/llama.cpp @@ -15237,6 +15237,14 @@ static void llama_model_quantize_internal(const std::string & fname_inp, const s if (imatrix_data) { LLAMA_LOG_INFO("================================ Have weights data with %d entries\n",int(imatrix_data->size())); qs.has_imatrix = true; + // check imatrix for nans or infs + for (const auto & kv : *imatrix_data) { + for (float f : kv.second) { + if (!std::isfinite(f)) { + throw std::runtime_error(format("imatrix contains non-finite value %f\n", f)); + } + } + } } } From d5c938cd7716b9a2ace49a43a469dfbffcff4d28 Mon Sep 17 00:00:00 2001 From: pengxin99 Date: Fri, 7 Jun 2024 14:28:26 +0800 Subject: [PATCH 025/131] [SYCL] fix softmax r2r result wrong issue (#7811) --- ggml-sycl.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/ggml-sycl.cpp b/ggml-sycl.cpp index 3ff76474d7e72..0a645b2e1db80 100644 --- a/ggml-sycl.cpp +++ b/ggml-sycl.cpp @@ -9108,6 +9108,7 @@ static void soft_max_f32(const float * x, const float * mask, float * dst, const // find the sum of exps in the block tmp = warp_reduce_sum(tmp, item_ct1); if (block_size > WARP_SIZE) { + item_ct1.barrier(sycl::access::fence_space::local_space); if (warp_id == 0) { buf[lane_id] = 0.f; } From a5cabd76491f07494c5b8267f921c73f5e2bbfb4 Mon Sep 17 00:00:00 2001 From: woodx <124784234+woodx9@users.noreply.github.com> Date: Fri, 7 Jun 2024 15:09:45 +0800 Subject: [PATCH 026/131] server : do not get prompt in infill mode (#7286) * avoid to get prompt in infill mode and embedding mode * remove embedding mode * refactor format --------- Co-authored-by: wudexiang --- examples/server/server.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/server/server.cpp b/examples/server/server.cpp index 74da81dadb49d..528220607a4f6 100644 --- a/examples/server/server.cpp +++ b/examples/server/server.cpp @@ -888,7 +888,7 @@ struct server_context { slot.params.input_suffix = json_value(data, "input_suffix", default_params.input_suffix); // get prompt - { + if (!task.infill) { const auto & prompt = data.find("prompt"); if (prompt == data.end()) { send_error(task, "Either \"prompt\" or \"messages\" must be provided", ERROR_TYPE_INVALID_REQUEST); From 7027b27d765db95d4ac6b569d976e387a8715881 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20G=C3=A4=C3=9Fler?= Date: Fri, 7 Jun 2024 11:15:49 +0200 Subject: [PATCH 027/131] server: update cache_prompt documentation [no ci] (#7745) --- examples/server/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/server/README.md b/examples/server/README.md index 0c3db8c84c69d..ccbdcdbdb2ddb 100644 --- a/examples/server/README.md +++ b/examples/server/README.md @@ -279,7 +279,7 @@ node index.js `id_slot`: Assign the completion task to an specific slot. If is -1 the task will be assigned to a Idle slot. Default: `-1` - `cache_prompt`: Re-use previously cached prompt from the last request if possible. This may prevent re-caching the prompt from scratch. Default: `false` + `cache_prompt`: Re-use KV cache from a previous request if possible. This way the common prefix does not have to be re-processed, only the suffix that differs between the requests. Because (depending on the backend) the logits are **not** guaranteed to be bit-for-bit identical for different batch sizes (prompt processing vs. token generation) enabling this option can cause nondeterministic results. Default: `false` `system_prompt`: Change the system prompt (initial prompt of all slots), this is useful for chat applications. [See more](#change-system-prompt-on-runtime) From 27615f5ab21060d96953c9c1e223051ab2188f57 Mon Sep 17 00:00:00 2001 From: intelmatt <61025942+intelmatt@users.noreply.github.com> Date: Fri, 7 Jun 2024 05:15:07 -0700 Subject: [PATCH 028/131] cmake : fix BUILD_SHARED_LIBS=ON build (#7784) common depends on pthreads in Linux --- common/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/CMakeLists.txt b/common/CMakeLists.txt index 0ec8d6d8d03b5..171530c915332 100644 --- a/common/CMakeLists.txt +++ b/common/CMakeLists.txt @@ -84,4 +84,4 @@ endif () target_include_directories(${TARGET} PUBLIC .) target_compile_features(${TARGET} PUBLIC cxx_std_11) -target_link_libraries(${TARGET} PRIVATE ${LLAMA_COMMON_EXTRA_LIBS} PUBLIC llama) +target_link_libraries(${TARGET} PRIVATE ${LLAMA_COMMON_EXTRA_LIBS} PUBLIC llama Threads::Threads) From c00fad71e507ff386d42bd74846fe06d19dd63a4 Mon Sep 17 00:00:00 2001 From: Christian Zhou-Zheng <59622928+christianazinn@users.noreply.github.com> Date: Fri, 7 Jun 2024 08:56:01 -0400 Subject: [PATCH 029/131] gguf-split : change binary multi-byte units to decimal (#7803) --- examples/gguf-split/gguf-split.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/gguf-split/gguf-split.cpp b/examples/gguf-split/gguf-split.cpp index e04feeae39188..881f0451c1455 100644 --- a/examples/gguf-split/gguf-split.cpp +++ b/examples/gguf-split/gguf-split.cpp @@ -61,10 +61,10 @@ static size_t split_str_to_n_bytes(std::string str) { int n; if (str.back() == 'M') { sscanf(str.c_str(), "%d", &n); - n_bytes = (size_t)n * 1024 * 1024; // megabytes + n_bytes = (size_t)n * 1000 * 1000; // megabytes } else if (str.back() == 'G') { sscanf(str.c_str(), "%d", &n); - n_bytes = (size_t)n * 1024 * 1024 * 1024; // gigabytes + n_bytes = (size_t)n * 1000 * 1000 * 1000; // gigabytes } else { throw std::invalid_argument("error: supported units are M (megabytes) or G (gigabytes), but got: " + std::string(1, str.back())); } @@ -284,7 +284,7 @@ struct split_strategy { struct ggml_tensor * t = ggml_get_tensor(ctx_meta, gguf_get_tensor_name(ctx_out, i)); total_size += ggml_nbytes(t); } - total_size = total_size / 1024 / 1024; // convert to megabytes + total_size = total_size / 1000 / 1000; // convert to megabytes printf("split %05d: n_tensors = %d, total_size = %ldM\n", i_split + 1, gguf_get_n_tensors(ctx_out), total_size); i_split++; } From da799b41891e34aac86ce4e173f9c4c0afd4fab3 Mon Sep 17 00:00:00 2001 From: slaren Date: Fri, 7 Jun 2024 19:47:49 +0200 Subject: [PATCH 030/131] vulkan : reuse parent extra for views (#7806) * vulkan : reuse parent extra for views * Fix validation error when multiple compute contexts are used in a graph --------- Co-authored-by: 0cc4m --- ggml-vulkan.cpp | 128 +++++++++++++++++++++--------------------------- 1 file changed, 56 insertions(+), 72 deletions(-) diff --git a/ggml-vulkan.cpp b/ggml-vulkan.cpp index e0c512c0dab0f..128769177f102 100644 --- a/ggml-vulkan.cpp +++ b/ggml-vulkan.cpp @@ -345,15 +345,12 @@ struct vk_context { }; struct ggml_tensor_extra_gpu { - bool ready; - size_t ctx_idx; vk_buffer_ref buffer_gpu; uint64_t offset; void reset() { - ready = false; ctx_idx = 0; buffer_gpu.reset(); offset = 0; @@ -2949,7 +2946,7 @@ static void ggml_vk_mul_mat_q_f16(ggml_backend_vk_context * ctx, vk_context * su const uint64_t d_sz = sizeof(float) * d_ne; vk_buffer d_D = extra->buffer_gpu.lock(); - const uint64_t d_buf_offset = extra->offset; + const uint64_t d_buf_offset = extra->offset + dst->view_offs; GGML_ASSERT(d_D != nullptr); GGML_ASSERT(d_D->size >= d_buf_offset + d_sz * ne02 * ne03); vk_buffer d_X; @@ -2958,12 +2955,12 @@ static void ggml_vk_mul_mat_q_f16(ggml_backend_vk_context * ctx, vk_context * su uint64_t y_buf_offset = 0; if (!src0_uma) { d_Qx = extra_src0->buffer_gpu.lock(); - qx_buf_offset = extra_src0->offset; + qx_buf_offset = extra_src0->offset + src0->view_offs; GGML_ASSERT(d_Qx != nullptr); } if (!src1_uma) { d_Qy = extra_src1->buffer_gpu.lock(); - qy_buf_offset = extra_src1->offset; + qy_buf_offset = extra_src1->offset + src1->view_offs; GGML_ASSERT(d_Qy != nullptr); } if (qx_needs_dequant) { @@ -3114,7 +3111,7 @@ static void ggml_vk_mul_mat_vec_q_f16(ggml_backend_vk_context * ctx, vk_context const uint64_t d_sz = sizeof(float) * d_ne; vk_buffer d_D = extra->buffer_gpu.lock(); - const uint64_t d_buf_offset = extra->offset; + const uint64_t d_buf_offset = extra->offset + dst->view_offs; GGML_ASSERT(d_D != nullptr); vk_buffer d_X; uint64_t x_buf_offset = 0; @@ -3122,12 +3119,12 @@ static void ggml_vk_mul_mat_vec_q_f16(ggml_backend_vk_context * ctx, vk_context uint64_t y_buf_offset = 0; if(!src0_uma) { d_Qx = extra_src0->buffer_gpu.lock(); - qx_buf_offset = extra_src0->offset; + qx_buf_offset = extra_src0->offset + src0->view_offs; GGML_ASSERT(d_Qx != nullptr); } if(!src1_uma) { d_Qy = extra_src1->buffer_gpu.lock(); - qy_buf_offset = extra_src1->offset; + qy_buf_offset = extra_src1->offset + src1->view_offs; GGML_ASSERT(d_Qy != nullptr); } if (qx_needs_dequant) { @@ -3246,14 +3243,14 @@ static void ggml_vk_mul_mat_vec_p021_f16_f32(ggml_backend_vk_context * ctx, vk_c const uint64_t d_sz = sizeof(float) * d_ne; vk_buffer d_D = extra->buffer_gpu.lock(); - const uint64_t d_buf_offset = extra->offset; + const uint64_t d_buf_offset = extra->offset + dst->view_offs; GGML_ASSERT(d_D != nullptr); vk_buffer d_Qx = extra_src0->buffer_gpu.lock(); - const uint64_t qx_buf_offset = extra_src0->offset; + const uint64_t qx_buf_offset = extra_src0->offset + src0->view_offs; GGML_ASSERT(d_Qx != nullptr); if (!src1_uma) { d_Qy = extra_src1->buffer_gpu.lock(); - qy_buf_offset = extra_src1->offset; + qy_buf_offset = extra_src1->offset + src1->view_offs; GGML_ASSERT(d_Qx != nullptr); } @@ -3323,14 +3320,14 @@ static void ggml_vk_mul_mat_vec_nc_f16_f32(ggml_backend_vk_context * ctx, vk_con const uint64_t d_sz = sizeof(float) * d_ne; vk_buffer d_D = extra->buffer_gpu.lock(); - const uint64_t d_buf_offset = extra->offset; + const uint64_t d_buf_offset = extra->offset + dst->view_offs; GGML_ASSERT(d_D != nullptr); vk_buffer d_Qx = extra_src0->buffer_gpu.lock(); - const uint64_t qx_buf_offset = extra_src0->offset; + const uint64_t qx_buf_offset = extra_src0->offset + src0->view_offs; GGML_ASSERT(d_Qx != nullptr); if (!src1_uma) { d_Qy = extra_src1->buffer_gpu.lock(); - qy_buf_offset = extra_src1->offset; + qy_buf_offset = extra_src1->offset + src1->view_offs; GGML_ASSERT(d_Qx != nullptr); } @@ -3459,7 +3456,7 @@ static void ggml_vk_mul_mat_id_q_f16(ggml_backend_vk_context * ctx, vk_context * const uint64_t d_sz = sizeof(float) * d_ne; vk_buffer d_D = extra->buffer_gpu.lock(); - const uint64_t d_buf_offset = extra->offset; + const uint64_t d_buf_offset = extra->offset + dst->view_offs; GGML_ASSERT(d_D != nullptr); vk_buffer d_X; uint64_t x_buf_offset = 0; @@ -3467,17 +3464,17 @@ static void ggml_vk_mul_mat_id_q_f16(ggml_backend_vk_context * ctx, vk_context * uint64_t y_buf_offset = 0; if (!src0_uma) { d_Qx = extra_src0->buffer_gpu.lock(); - qx_buf_offset = extra_src0->offset; + qx_buf_offset = extra_src0->offset + src0->view_offs; GGML_ASSERT(d_Qx != nullptr); } if (!src1_uma) { d_Qy = extra_src1->buffer_gpu.lock(); - qy_buf_offset = extra_src1->offset; + qy_buf_offset = extra_src1->offset + src1->view_offs; GGML_ASSERT(d_Qy != nullptr); } if (!ids_uma) { d_ids = extra_ids->buffer_gpu.lock(); - ids_buf_offset = extra_ids->offset; + ids_buf_offset = extra_ids->offset + ids->view_offs; GGML_ASSERT(d_ids != nullptr); } if (qx_needs_dequant) { @@ -3636,7 +3633,7 @@ static void ggml_vk_mul_mat_vec_id_q_f16(ggml_backend_vk_context * ctx, vk_conte const uint64_t d_sz = sizeof(float) * d_ne; vk_buffer d_D = extra->buffer_gpu.lock(); - const uint64_t d_buf_offset = extra->offset; + const uint64_t d_buf_offset = extra->offset + dst->view_offs; GGML_ASSERT(d_D != nullptr); vk_buffer d_X; uint64_t x_buf_offset = 0; @@ -3644,17 +3641,17 @@ static void ggml_vk_mul_mat_vec_id_q_f16(ggml_backend_vk_context * ctx, vk_conte uint64_t y_buf_offset = 0; if(!src0_uma) { d_Qx = extra_src0->buffer_gpu.lock(); - qx_buf_offset = extra_src0->offset; + qx_buf_offset = extra_src0->offset + src0->view_offs; GGML_ASSERT(d_Qx != nullptr); } if(!src1_uma) { d_Qy = extra_src1->buffer_gpu.lock(); - qy_buf_offset = extra_src1->offset; + qy_buf_offset = extra_src1->offset + src1->view_offs; GGML_ASSERT(d_Qy != nullptr); } if(!ids_uma) { d_ids = extra_ids->buffer_gpu.lock(); - ids_buf_offset = extra_ids->offset; + ids_buf_offset = extra_ids->offset + ids->view_offs; GGML_ASSERT(d_ids != nullptr); } if (qx_needs_dequant) { @@ -3769,9 +3766,9 @@ static void ggml_vk_op_repeat(ggml_backend_vk_context * ctx, vk_context * subctx ggml_tensor_extra_gpu * extra_src0 = (ggml_tensor_extra_gpu *) src0->extra; const vk_buffer src_buf = extra_src0->buffer_gpu.lock(); - const uint64_t src_offset = extra_src0->offset; + const uint64_t src_offset = extra_src0->offset + src0->view_offs; vk_buffer dst_buf = extra->buffer_gpu.lock(); - const uint64_t dst_offset = extra->offset; + const uint64_t dst_offset = extra->offset + dst->view_offs; std::vector copies; @@ -4062,21 +4059,21 @@ static void ggml_vk_op_f32(ggml_backend_vk_context * ctx, vk_context * subctx, c } GGML_ASSERT(d_D != nullptr); - uint64_t d_buf_offset = (extra->offset / ctx->device->properties.limits.minStorageBufferOffsetAlignment) * ctx->device->properties.limits.minStorageBufferOffsetAlignment; + uint64_t d_buf_offset = ((extra->offset + dst->view_offs) / ctx->device->properties.limits.minStorageBufferOffsetAlignment) * ctx->device->properties.limits.minStorageBufferOffsetAlignment; GGML_ASSERT(d_buf_offset == extra->offset || op == GGML_OP_CPY); // NOLINT if(!src0_uma) { d_X = extra_src0->buffer_gpu.lock(); - x_buf_offset = extra_src0->offset; + x_buf_offset = extra_src0->offset + src0->view_offs; GGML_ASSERT(d_X != nullptr); } if (use_src1 && !src1_uma) { d_Y = extra_src1->buffer_gpu.lock(); - y_buf_offset = extra_src1->offset; + y_buf_offset = extra_src1->offset + src1->view_offs; GGML_ASSERT(d_Y != nullptr); } if (use_src2 && !src2_uma) { d_Z = extra_src2->buffer_gpu.lock(); - z_buf_offset = extra_src2->offset; + z_buf_offset = extra_src2->offset + src2->view_offs; GGML_ASSERT(d_Z != nullptr); } @@ -4336,7 +4333,7 @@ static void ggml_vk_cpy(ggml_backend_vk_context * ctx, vk_context * subctx, cons ggml_tensor_extra_gpu * extra = (ggml_tensor_extra_gpu *) dst->extra; const uint32_t src0_type_size = ggml_type_size(src0->type); const uint32_t dst_type_size = ggml_type_size(dst->type); - const uint32_t d_offset = (extra->offset % ctx->device->properties.limits.minStorageBufferOffsetAlignment) / dst_type_size; + const uint32_t d_offset = ((extra->offset + dst->view_offs) % ctx->device->properties.limits.minStorageBufferOffsetAlignment) / dst_type_size; ggml_vk_op_f32(ctx, subctx, src0, nullptr, nullptr, dst, GGML_OP_CPY, { (uint32_t)ggml_nelements(src0), @@ -5569,6 +5566,13 @@ static void ggml_vk_build_graph(ggml_backend_vk_context * ctx, ggml_tensor * nod const ggml_tensor * src2 = node->src[2]; switch (node->op) { + // Return on empty ops to avoid generating a compute_ctx and setting exit_tensor + case GGML_OP_RESHAPE: + case GGML_OP_VIEW: + case GGML_OP_PERMUTE: + case GGML_OP_TRANSPOSE: + case GGML_OP_NONE: + return; case GGML_OP_UNARY: switch (ggml_get_unary_op(node)) { case GGML_UNARY_OP_SILU: @@ -5590,10 +5594,6 @@ static void ggml_vk_build_graph(ggml_backend_vk_context * ctx, ggml_tensor * nod case GGML_OP_CPY: case GGML_OP_CONT: case GGML_OP_DUP: - case GGML_OP_RESHAPE: - case GGML_OP_VIEW: - case GGML_OP_PERMUTE: - case GGML_OP_TRANSPOSE: case GGML_OP_NORM: case GGML_OP_RMS_NORM: case GGML_OP_DIAG_MASK_INF: @@ -5601,7 +5601,6 @@ static void ggml_vk_build_graph(ggml_backend_vk_context * ctx, ggml_tensor * nod case GGML_OP_ROPE: case GGML_OP_MUL_MAT: case GGML_OP_MUL_MAT_ID: - case GGML_OP_NONE: case GGML_OP_ARGSORT: case GGML_OP_SUM_ROWS: break; @@ -5654,12 +5653,6 @@ static void ggml_vk_build_graph(ggml_backend_vk_context * ctx, ggml_tensor * nod case GGML_OP_DUP: ggml_vk_cpy(ctx, ctx->compute_ctx, src0, node); - break; - case GGML_OP_RESHAPE: - case GGML_OP_VIEW: - case GGML_OP_PERMUTE: - case GGML_OP_TRANSPOSE: - case GGML_OP_NONE: break; case GGML_OP_NORM: ggml_vk_norm(ctx, ctx->compute_ctx, src0, node); @@ -5712,7 +5705,6 @@ static void ggml_vk_build_graph(ggml_backend_vk_context * ctx, ggml_tensor * nod return; } - extra->ready = true; extra->ctx_idx = ctx->compute_ctx->idx; #ifdef GGML_VULKAN_CHECK_RESULTS @@ -5796,8 +5788,6 @@ static bool ggml_vk_compute_forward(ggml_backend_vk_context * ctx, ggml_compute_ ggml_vk_check_results_0(ctx, params, tensor); #endif - GGML_ASSERT(extra->ready); - vk_context& subctx = ctx->gc.contexts[extra->ctx_idx]; // Only run if ctx hasn't been submitted yet @@ -5822,8 +5812,6 @@ static bool ggml_vk_compute_forward(ggml_backend_vk_context * ctx, ggml_compute_ subctx.out_memcpys.clear(); } - extra->ready = false; - return true; } @@ -5943,7 +5931,9 @@ struct ggml_backend_vk_buffer_context { ~ggml_backend_vk_buffer_context() { ggml_vk_destroy_buffer(dev_buffer); - delete[] temp_tensor_extras; + if (temp_tensor_extras != nullptr) { + delete[] temp_tensor_extras; + } } ggml_tensor_extra_gpu * ggml_vk_alloc_temp_tensor_extra() { @@ -5990,18 +5980,16 @@ GGML_CALL static void ggml_backend_vk_buffer_init_tensor(ggml_backend_buffer_t b #endif ggml_backend_vk_buffer_context * ctx = (ggml_backend_vk_buffer_context *)buffer->context; - ggml_tensor_extra_gpu * extra = ctx->ggml_vk_alloc_temp_tensor_extra(); - if (tensor->view_src != nullptr && tensor->view_src->extra != nullptr) { + if (tensor->view_src != nullptr) { GGML_ASSERT(tensor->view_src->buffer->buft == buffer->buft); - ggml_tensor_extra_gpu * extra_view = (ggml_tensor_extra_gpu *) tensor->view_src->extra; - extra->buffer_gpu = extra_view->buffer_gpu; - extra->offset = extra_view->offset + tensor->view_offs; + GGML_ASSERT(tensor->view_src->extra != nullptr); + tensor->extra = tensor->view_src->extra; } else { + ggml_tensor_extra_gpu * extra = ctx->ggml_vk_alloc_temp_tensor_extra(); extra->buffer_gpu = ctx->dev_buffer; extra->offset = (uint8_t *) tensor->data - (uint8_t *) vk_ptr_base; + tensor->extra = extra; } - - tensor->extra = extra; } GGML_CALL static void ggml_backend_vk_buffer_set_tensor(ggml_backend_buffer_t buffer, ggml_tensor * tensor, const void * data, size_t offset, size_t size) { @@ -6014,7 +6002,7 @@ GGML_CALL static void ggml_backend_vk_buffer_set_tensor(ggml_backend_buffer_t bu vk_buffer buf = extra->buffer_gpu.lock(); - ggml_vk_buffer_write(ctx->ctx, buf, extra->offset + offset, data, size); + ggml_vk_buffer_write(ctx->ctx, buf, extra->offset + tensor->view_offs + offset, data, size); } GGML_CALL static void ggml_backend_vk_buffer_get_tensor(ggml_backend_buffer_t buffer, const ggml_tensor * tensor, void * data, size_t offset, size_t size) { @@ -6027,7 +6015,7 @@ GGML_CALL static void ggml_backend_vk_buffer_get_tensor(ggml_backend_buffer_t bu vk_buffer buf = extra->buffer_gpu.lock(); - ggml_vk_buffer_read(ctx->ctx, buf, extra->offset + offset, data, size); + ggml_vk_buffer_read(ctx->ctx, buf, extra->offset + tensor->view_offs + offset, data, size); } GGML_CALL static bool ggml_backend_vk_buffer_cpy_tensor(ggml_backend_buffer_t buffer, const ggml_tensor * src, ggml_tensor * dst) { @@ -6038,7 +6026,7 @@ GGML_CALL static bool ggml_backend_vk_buffer_cpy_tensor(ggml_backend_buffer_t bu vk_buffer src_buf = src_extra->buffer_gpu.lock(); vk_buffer dst_buf = dst_extra->buffer_gpu.lock(); - ggml_vk_buffer_copy(dst_buf, dst_extra->offset, src_buf, src_extra->offset, ggml_nbytes(src)); + ggml_vk_buffer_copy(dst_buf, dst_extra->offset + dst->view_offs, src_buf, src_extra->offset + src->view_offs, ggml_nbytes(src)); return true; } @@ -6264,7 +6252,7 @@ GGML_CALL static void ggml_backend_vk_set_tensor_async(ggml_backend_t backend, g vk_buffer buf = extra->buffer_gpu.lock(); - ggml_vk_buffer_write_async(ctx, ctx->transfer_ctx, buf, extra->offset + offset, data, size); + ggml_vk_buffer_write_async(ctx, ctx->transfer_ctx, buf, extra->offset + tensor->view_offs + offset, data, size); } GGML_CALL static void ggml_backend_vk_get_tensor_async(ggml_backend_t backend, const ggml_tensor * tensor, void * data, size_t offset, size_t size) { @@ -6284,7 +6272,7 @@ GGML_CALL static void ggml_backend_vk_get_tensor_async(ggml_backend_t backend, c vk_buffer buf = extra->buffer_gpu.lock(); - ggml_vk_buffer_read_async(ctx, ctx->transfer_ctx, buf, extra->offset + offset, data, size); + ggml_vk_buffer_read_async(ctx, ctx->transfer_ctx, buf, extra->offset + tensor->view_offs + offset, data, size); } GGML_CALL static bool ggml_backend_vk_cpy_tensor_async(ggml_backend_t backend, const ggml_tensor * src, ggml_tensor * dst) { @@ -6305,7 +6293,7 @@ GGML_CALL static bool ggml_backend_vk_cpy_tensor_async(ggml_backend_t backend, c vk_buffer src_buf = src_extra->buffer_gpu.lock(); vk_buffer dst_buf = dst_extra->buffer_gpu.lock(); - ggml_vk_buffer_copy_async(ctx->transfer_ctx, dst_buf, dst_extra->offset, src_buf, src_extra->offset, ggml_nbytes(src)); + ggml_vk_buffer_copy_async(ctx->transfer_ctx, dst_buf, dst_extra->offset + dst->view_offs, src_buf, src_extra->offset + src->view_offs, ggml_nbytes(src)); return true; } @@ -6478,11 +6466,7 @@ GGML_CALL static bool ggml_backend_vk_supports_op(ggml_backend_t backend, const // return src0_type != GGML_TYPE_I32 && src0_type != GGML_TYPE_I16; // } break; case GGML_OP_ROPE: - { - const int mode = ((const int32_t *) op->op_params)[2]; - - return true; - } break; + return true; case GGML_OP_NONE: case GGML_OP_RESHAPE: case GGML_OP_VIEW: @@ -6725,7 +6709,7 @@ static void ggml_vk_print_tensor(ggml_backend_vk_context * ctx, const ggml_tenso ggml_tensor_extra_gpu * extra = (ggml_tensor_extra_gpu *) tensor->extra; vk_buffer buffer_gpu = extra->buffer_gpu.lock(); - ggml_vk_buffer_read(ctx, buffer_gpu, extra->offset, tensor_data, tensor_size); + ggml_vk_buffer_read(ctx, buffer_gpu, extra->offset + tensor->view_offs, tensor_data, tensor_size); } std::cerr << "TENSOR CHECK " << name << " (" << tensor->name << "): " << ggml_op_name(tensor->op) << std::endl; @@ -6809,7 +6793,7 @@ static void ggml_vk_check_results_0(ggml_backend_vk_context * ctx, ggml_compute_ } else if (ggml_backend_buffer_is_vk(src0->buffer)) { ggml_tensor_extra_gpu * extra = (ggml_tensor_extra_gpu *) src0->extra; vk_buffer buffer_gpu = extra->buffer_gpu.lock(); - uint64_t offset = extra->offset; + uint64_t offset = extra->offset + src0->view_offs; if (!ggml_is_contiguous(src0) && ggml_vk_dim01_contiguous(src0)) { for (int i3 = 0; i3 < src0->ne[3]; i3++) { for (int i2 = 0; i2 < src0->ne[2]; i2++) { @@ -6851,7 +6835,7 @@ static void ggml_vk_check_results_0(ggml_backend_vk_context * ctx, ggml_compute_ } else if (ggml_backend_buffer_is_vk(src1->buffer)) { ggml_tensor_extra_gpu * extra = (ggml_tensor_extra_gpu *) src1->extra; vk_buffer buffer_gpu = extra->buffer_gpu.lock(); - uint64_t offset = extra->offset; + uint64_t offset = extra->offset + src1->view_offs; if (!ggml_is_contiguous(src1) && ggml_vk_dim01_contiguous(src1)) { for (int i3 = 0; i3 < src1->ne[3]; i3++) { for (int i2 = 0; i2 < src1->ne[2]; i2++) { @@ -6909,7 +6893,7 @@ static void ggml_vk_check_results_0(ggml_backend_vk_context * ctx, ggml_compute_ } else if (ggml_backend_buffer_is_vk(src2->buffer)) { ggml_tensor_extra_gpu * extra = (ggml_tensor_extra_gpu *) src2->extra; vk_buffer buffer_gpu = extra->buffer_gpu.lock(); - uint64_t offset = extra->offset; + uint64_t offset = extra->offset + src2->view_offs; if (!ggml_is_contiguous(src2) && ggml_vk_dim01_contiguous(src2)) { for (int i3 = 0; i3 < src2->ne[3]; i3++) { for (int i2 = 0; i2 < src2->ne[2]; i2++) { @@ -7092,11 +7076,11 @@ static void ggml_vk_check_results_1(ggml_backend_vk_context * ctx, ggml_compute_ ggml_tensor_extra_gpu * extra = (ggml_tensor_extra_gpu *) tensor->extra; vk_buffer buffer_gpu = extra->buffer_gpu.lock(); - if (extra->offset + tensor_size >= buffer_gpu->size) { - tensor_size = buffer_gpu->size - (extra->offset); + if (extra->offset + tensor->view_offs + tensor_size >= buffer_gpu->size) { + tensor_size = buffer_gpu->size - (extra->offset + tensor->view_offs); } - ggml_vk_buffer_read(ctx, buffer_gpu, extra->offset, tensor_data, tensor_size); + ggml_vk_buffer_read(ctx, buffer_gpu, extra->offset + tensor->view_offs, tensor_data, tensor_size); } float first_error_result = -1.0f; From 7a16ce7db2a74a223f0f3b9cee66d4539c5bce8f Mon Sep 17 00:00:00 2001 From: sasha0552 Date: Sat, 8 Jun 2024 07:50:31 +0000 Subject: [PATCH 031/131] server : smart slot selection using Longest Common Prefix (#7728) * server : Smart selection of available slot using Longest Common Substring * add usage * remove trailing whitespaces * Use Longest Common Prefix (LCP) instead of LCS * Rename argument --- common/common.cpp | 10 +++ common/common.h | 2 + examples/server/server.cpp | 134 ++++++++++++++++++++++++++++++++----- examples/server/utils.hpp | 7 ++ 4 files changed, 138 insertions(+), 15 deletions(-) diff --git a/common/common.cpp b/common/common.cpp index cdcb352b5a8ae..d2a8bb69e728f 100644 --- a/common/common.cpp +++ b/common/common.cpp @@ -1491,6 +1491,14 @@ bool gpt_params_find_arg(int argc, char ** argv, const std::string & arg, gpt_pa params.chat_template = argv[i]; return true; } + if (arg == "--slot-prompt-similarity" || arg == "-sps") { + if (++i >= argc) { + invalid_param = true; + return true; + } + params.slot_prompt_similarity = std::stof(argv[i]); + return true; + } if (arg == "-pps") { params.is_pp_shared = true; return true; @@ -1913,6 +1921,8 @@ void gpt_params_print_usage(int /*argc*/, char ** argv, const gpt_params & param "set custom jinja chat template (default: template taken from model's metadata)\n" "only commonly used templates are accepted:\n" "https://github.com/ggerganov/llama.cpp/wiki/Templates-supported-by-llama_chat_apply_template" }); + options.push_back({ "server", "-sps, --slot-prompt-similarity SIMILARITY", + "how much the prompt of a request must match the prompt of a slot in order to use that slot (default: %.2f, 0.0 = disabled)\n", params.slot_prompt_similarity }); #ifndef LOG_DISABLE_LOGS options.push_back({ "logging" }); diff --git a/common/common.h b/common/common.h index 35f5311e10fe1..038f9084f3424 100644 --- a/common/common.h +++ b/common/common.h @@ -203,6 +203,8 @@ struct gpt_params { std::string slot_save_path; + float slot_prompt_similarity = 0.5f; + // batched-bench params bool is_pp_shared = false; diff --git a/examples/server/server.cpp b/examples/server/server.cpp index 528220607a4f6..6ffaa8d9fe637 100644 --- a/examples/server/server.cpp +++ b/examples/server/server.cpp @@ -647,6 +647,9 @@ struct server_context { server_metrics metrics; + // Necessary similarity of prompt for slot selection + float slot_prompt_similarity = 0.0f; + ~server_context() { if (ctx) { llama_free(ctx); @@ -795,24 +798,88 @@ struct server_context { return prompt_tokens; } - server_slot * get_slot(int id) { - int64_t t_last = ggml_time_us(); - - server_slot * last_used = nullptr; - + server_slot * get_slot_by_id(int id) { for (server_slot & slot : slots) { - if (slot.id == id && slot.available()) { + if (slot.id == id) { return &slot; } + } + + return nullptr; + } + + server_slot * get_available_slot(const std::string & prompt) { + server_slot * ret = nullptr; + + // find the slot that has at least n% prompt similarity + if (ret == nullptr && slot_prompt_similarity != 0.0f && !prompt.empty()) { + int max_lcp_len = 0; + float similarity = 0; + + for (server_slot & slot : slots) { + // skip the slot if it is not available + if (!slot.available()) { + continue; + } + + // skip the slot if it does not contains prompt + if (!slot.prompt.is_string()) { + continue; + } + + // current slot's prompt + std::string slot_prompt = slot.prompt.get(); + + // length of the current slot's prompt + int slot_prompt_len = slot_prompt.size(); + + // length of the Longest Common Prefix between the current slot's prompt and the input prompt + int lcp_len = common_part(slot_prompt, prompt); + + // fraction of the common substring length compared to the current slot's prompt length + similarity = static_cast(lcp_len) / slot_prompt_len; + + // select the current slot if the criteria match + if (lcp_len > max_lcp_len && similarity > slot_prompt_similarity) { + max_lcp_len = lcp_len; + ret = &slot; + } + } - // among all available slots, find the one that has been least recently used - if (slot.available() && slot.t_last_used < t_last) { - last_used = &slot; - t_last = slot.t_last_used; + if (ret != nullptr) { + LOG_VERBOSE("selected slot by lcp similarity", { + {"id_slot", ret->id}, + {"max_lcp_len", max_lcp_len}, + {"similarity", similarity}, + }); } } - return last_used; + // find the slot that has been least recently used + if (ret == nullptr) { + int64_t t_last = ggml_time_us(); + for (server_slot & slot : slots) { + // skip the slot if it is not available + if (!slot.available()) { + continue; + } + + // select the current slot if the criteria match + if (slot.t_last_used < t_last) { + t_last = slot.t_last_used; + ret = &slot; + } + } + + if (ret != nullptr) { + LOG_VERBOSE("selected slot by lru", { + {"id_slot", ret->id}, + {"t_last", t_last}, + }); + } + } + + return ret; } bool launch_slot_with_task(server_slot & slot, const server_task & task) { @@ -1515,13 +1582,29 @@ struct server_context { switch (task.type) { case SERVER_TASK_TYPE_COMPLETION: { - server_slot * slot = get_slot(json_value(task.data, "id_slot", -1)); + int id_slot = json_value(task.data, "id_slot", -1); + std::string prompt = json_value(task.data, "prompt", std::string()); + + server_slot * slot; + + if (id_slot != -1) { + slot = get_slot_by_id(id_slot); + } else { + slot = get_available_slot(prompt); + } + if (slot == nullptr) { // if no slot is available, we defer this task for processing later LOG_VERBOSE("no slot is available", {{"id_task", task.id}}); queue_tasks.defer(task); break; } + if (!slot->available()) { + // if requested slot is unavailable, we defer this task for processing later + LOG_VERBOSE("requested slot is unavailable", {{"id_task", task.id}}); + queue_tasks.defer(task); + break; + } if (task.data.contains("system_prompt")) { std::string sys_prompt = json_value(task.data, "system_prompt", std::string()); @@ -1638,11 +1721,17 @@ struct server_context { case SERVER_TASK_TYPE_SLOT_SAVE: { int id_slot = task.data.at("id_slot"); - server_slot * slot = get_slot(id_slot); + server_slot * slot = get_slot_by_id(id_slot); if (slot == nullptr) { send_error(task, "Invalid slot ID", ERROR_TYPE_INVALID_REQUEST); break; } + if (!slot->available()) { + // if requested slot is unavailable, we defer this task for processing later + LOG_VERBOSE("requested slot is unavailable", {{"id_task", task.id}}); + queue_tasks.defer(task); + break; + } const size_t token_count = slot->cache_tokens.size(); const int64_t t_start = ggml_time_us(); @@ -1673,11 +1762,17 @@ struct server_context { case SERVER_TASK_TYPE_SLOT_RESTORE: { int id_slot = task.data.at("id_slot"); - server_slot * slot = get_slot(id_slot); + server_slot * slot = get_slot_by_id(id_slot); if (slot == nullptr) { send_error(task, "Invalid slot ID", ERROR_TYPE_INVALID_REQUEST); break; } + if (!slot->available()) { + // if requested slot is unavailable, we defer this task for processing later + LOG_VERBOSE("requested slot is unavailable", {{"id_task", task.id}}); + queue_tasks.defer(task); + break; + } const int64_t t_start = ggml_time_us(); @@ -1715,11 +1810,17 @@ struct server_context { case SERVER_TASK_TYPE_SLOT_ERASE: { int id_slot = task.data.at("id_slot"); - server_slot * slot = get_slot(id_slot); + server_slot * slot = get_slot_by_id(id_slot); if (slot == nullptr) { send_error(task, "Invalid slot ID", ERROR_TYPE_INVALID_REQUEST); break; } + if (!slot->available()) { + // if requested slot is unavailable, we defer this task for processing later + LOG_VERBOSE("requested slot is unavailable", {{"id_task", task.id}}); + queue_tasks.defer(task); + break; + } // Erase token cache const size_t n_erased = slot->cache_tokens.size(); @@ -2467,6 +2568,9 @@ int main(int argc, char ** argv) { log_data["api_key"] = "api_key: " + std::to_string(params.api_keys.size()) + " keys loaded"; } + // Necessary similarity of prompt for slot selection + ctx_server.slot_prompt_similarity = params.slot_prompt_similarity; + // load the model if (!ctx_server.load_model(params)) { state.store(SERVER_STATE_ERROR); diff --git a/examples/server/utils.hpp b/examples/server/utils.hpp index b7bfb41d35edc..63fde9c9faabe 100644 --- a/examples/server/utils.hpp +++ b/examples/server/utils.hpp @@ -253,6 +253,13 @@ static size_t common_part(const std::vector & a, const std::vector< return i; } +static size_t common_part(const std::string & a, const std::string & b) { + size_t i; + for (i = 0; i < a.size() && i < b.size() && a[i] == b[i]; i++) {} + + return i; +} + static bool ends_with(const std::string & str, const std::string & suffix) { return str.size() >= suffix.size() && 0 == str.compare(str.size() - suffix.size(), suffix.size(), suffix); } From d4d915d351d1f1270d56184bdd46672893e8a5d8 Mon Sep 17 00:00:00 2001 From: Olivier Chafik Date: Sat, 8 Jun 2024 20:21:08 +0100 Subject: [PATCH 032/131] url: save -mu downloads to new cache location (#7826) * url: save -mu download to new cache location * url: fs_get_cache_file_path util * url: tweak sig of fs_get_cache_file --- common/common.cpp | 20 ++++++++++++-------- common/common.h | 1 + 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/common/common.cpp b/common/common.cpp index d2a8bb69e728f..1591790e6df4c 100644 --- a/common/common.cpp +++ b/common/common.cpp @@ -200,19 +200,13 @@ void gpt_params_handle_model_default(gpt_params & params) { } params.hf_file = params.model; } else if (params.model.empty()) { - std::string cache_directory = fs_get_cache_directory(); - const bool success = fs_create_directory_with_parents(cache_directory); - if (!success) { - throw std::runtime_error("failed to create cache directory: " + cache_directory); - } - params.model = cache_directory + string_split(params.hf_file, '/').back(); + params.model = fs_get_cache_file(string_split(params.hf_file, '/').back()); } } else if (!params.model_url.empty()) { if (params.model.empty()) { auto f = string_split(params.model_url, '#').front(); f = string_split(f, '?').front(); - f = string_split(f, '/').back(); - params.model = "models/" + f; + params.model = fs_get_cache_file(string_split(f, '/').back()); } } else if (params.model.empty()) { params.model = DEFAULT_MODEL_PATH; @@ -2279,6 +2273,16 @@ std::string fs_get_cache_directory() { return ensure_trailing_slash(cache_directory); } +std::string fs_get_cache_file(const std::string & filename) { + GGML_ASSERT(filename.find(DIRECTORY_SEPARATOR) == std::string::npos); + std::string cache_directory = fs_get_cache_directory(); + const bool success = fs_create_directory_with_parents(cache_directory); + if (!success) { + throw std::runtime_error("failed to create cache directory: " + cache_directory); + } + return cache_directory + filename; +} + // // Model utils diff --git a/common/common.h b/common/common.h index 038f9084f3424..2345d855eed3c 100644 --- a/common/common.h +++ b/common/common.h @@ -277,6 +277,7 @@ bool fs_validate_filename(const std::string & filename); bool fs_create_directory_with_parents(const std::string & path); std::string fs_get_cache_directory(); +std::string fs_get_cache_file(const std::string & filename); // // Model utils From fe1e3917cfa0f9397a765cfd0aef880674d938d5 Mon Sep 17 00:00:00 2001 From: slaren Date: Sun, 9 Jun 2024 01:43:39 +0200 Subject: [PATCH 033/131] Revert "[SYCL] Update rpc-server.cpp to include SYCL backend (#7682)" (#7808) This reverts commit 9422c5e34bbd302493b77a8f6d546154a1f4fe82. --- examples/rpc/rpc-server.cpp | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/examples/rpc/rpc-server.cpp b/examples/rpc/rpc-server.cpp index 62d8282501768..7c15d2aa4acfb 100644 --- a/examples/rpc/rpc-server.cpp +++ b/examples/rpc/rpc-server.cpp @@ -6,10 +6,6 @@ #include "ggml-metal.h" #endif -#ifdef GGML_USE_SYCL -#include "ggml-sycl.h" -#endif - #include "ggml-rpc.h" #ifdef _WIN32 # include @@ -83,12 +79,6 @@ static ggml_backend_t create_backend() { if (!backend) { fprintf(stderr, "%s: ggml_backend_metal_init() failed\n", __func__); } -#elif GGML_USE_SYCL - fprintf(stderr, "%s: using SYCL backend\n", __func__); - backend = ggml_backend_sycl_init(0); // init device 0 - if (!backend) { - fprintf(stderr, "%s: ggml_backend_sycl_init() failed\n", __func__); - } #endif // if there aren't GPU Backends fallback to CPU backend From ed9f2521185706481501a5e6d5315397b11802ff Mon Sep 17 00:00:00 2001 From: compilade Date: Sat, 8 Jun 2024 22:34:29 -0400 Subject: [PATCH 034/131] gguf-py : decouple adding metadata from writing in GGUFWriter (#7827) Main changes of this PR is to consolidate GGUFWriter.add_key and GGUFWriter.add_val into GGUFWriter.add_key_value. In addition use_temp_file is now opt-in instead of opt-out defaulting to False. Also GGUFWriter now does not require output file name until when actually writing to it. And GGUFWriter doesn't really need to eagerly prepare the data layout of the metadata --- convert-hf-to-gguf.py | 8 +- gguf-py/gguf/gguf_writer.py | 272 +++++++++++++++------------ gguf-py/scripts/gguf-new-metadata.py | 6 +- 3 files changed, 161 insertions(+), 125 deletions(-) diff --git a/convert-hf-to-gguf.py b/convert-hf-to-gguf.py index a86864f04861b..0327712d75d37 100755 --- a/convert-hf-to-gguf.py +++ b/convert-hf-to-gguf.py @@ -47,7 +47,7 @@ class Model: _model_classes: dict[str, type[Model]] = {} dir_model: Path - ftype: int + ftype: gguf.LlamaFileType is_big_endian: bool endianess: gguf.GGUFEndian use_temp_file: bool @@ -94,7 +94,7 @@ def __init__(self, dir_model: Path, ftype: gguf.LlamaFileType, fname_out: Path, ftype_lw: str = ftype_up.lower() # allow templating the file name with the output ftype, useful with the "auto" ftype self.fname_out = fname_out.parent / fname_out.name.format(ftype_lw, outtype=ftype_lw, ftype=ftype_lw, OUTTYPE=ftype_up, FTYPE=ftype_up) - self.gguf_writer = gguf.GGUFWriter(self.fname_out, gguf.MODEL_ARCH_NAMES[self.model_arch], endianess=self.endianess, use_temp_file=self.use_temp_file) + self.gguf_writer = gguf.GGUFWriter(path=None, arch=gguf.MODEL_ARCH_NAMES[self.model_arch], endianess=self.endianess, use_temp_file=self.use_temp_file) @classmethod def __init_subclass__(cls): @@ -324,13 +324,13 @@ def write_tensors(self): def write(self): self.write_tensors() - self.gguf_writer.write_header_to_file() + self.gguf_writer.write_header_to_file(self.fname_out) self.gguf_writer.write_kv_data_to_file() self.gguf_writer.write_tensors_to_file(progress=True) self.gguf_writer.close() def write_vocab(self): - self.gguf_writer.write_header_to_file() + self.gguf_writer.write_header_to_file(self.fname_out) self.gguf_writer.write_kv_data_to_file() self.gguf_writer.close() diff --git a/gguf-py/gguf/gguf_writer.py b/gguf-py/gguf/gguf_writer.py index b93747aff58b3..ed56abfb3c2ea 100644 --- a/gguf-py/gguf/gguf_writer.py +++ b/gguf-py/gguf/gguf_writer.py @@ -5,6 +5,7 @@ import shutil import struct import tempfile +from dataclasses import dataclass from enum import Enum, auto from io import BufferedWriter from typing import IO, Any, Sequence, Mapping @@ -30,17 +31,36 @@ logger = logging.getLogger(__name__) +@dataclass +class TensorInfo: + shape: Sequence[int] + dtype: GGMLQuantizationType + nbytes: int + tensor: np.ndarray[Any, Any] | None = None + + +@dataclass +class GGUFValue: + value: Any + type: GGUFValueType + + class WriterState(Enum): + NO_FILE = auto() EMPTY = auto() HEADER = auto() KV_DATA = auto() TI_DATA = auto() + WEIGHTS = auto() class GGUFWriter: - fout: BufferedWriter + fout: BufferedWriter | None + path: os.PathLike[str] | str | None temp_file: tempfile.SpooledTemporaryFile[bytes] | None - tensors: list[np.ndarray[Any, Any]] + tensors: dict[str, TensorInfo] + kv_data: dict[str, GGUFValue] + state: WriterState _simple_value_packing = { GGUFValueType.UINT8: "B", GGUFValueType.INT8: "b", @@ -56,141 +76,140 @@ class GGUFWriter: } def __init__( - self, path: os.PathLike[str] | str, arch: str, use_temp_file: bool = True, + self, path: os.PathLike[str] | str | None, arch: str, use_temp_file: bool = False, endianess: GGUFEndian = GGUFEndian.LITTLE, ): - self.fout = open(path, "wb") + self.fout = None + self.path = path self.arch = arch self.endianess = endianess - self.offset_tensor = 0 self.data_alignment = GGUF_DEFAULT_ALIGNMENT - self.kv_data = bytearray() - self.kv_data_count = 0 - self.ti_data = bytearray() - self.ti_data_count = 0 - self.ti_names = set() self.use_temp_file = use_temp_file self.temp_file = None - self.tensors = [] + self.tensors = dict() + self.kv_data = dict() logger.info("gguf: This GGUF file is for {0} Endian only".format( "Big" if self.endianess == GGUFEndian.BIG else "Little", )) - self.state = WriterState.EMPTY + self.state = WriterState.NO_FILE self.add_architecture() - def write_header_to_file(self) -> None: + def open_output_file(self, path: os.PathLike[str] | str | None = None) -> None: + if self.state is WriterState.EMPTY and self.fout is not None and (path is None or path == self.path): + # allow calling this multiple times as long as the path is the same + return + if self.state is not WriterState.NO_FILE: + raise ValueError(f'Expected output file to be not yet opened, got {self.state}') + + if path is not None: + self.path = path + + if self.path is not None: + if self.fout is not None: + self.fout.close() + self.fout = open(self.path, "wb") + self.state = WriterState.EMPTY + + def write_header_to_file(self, path: os.PathLike[str] | str | None = None) -> None: + self.open_output_file(path) + if self.state is not WriterState.EMPTY: raise ValueError(f'Expected output file to be empty, got {self.state}') self._write_packed(" None: if self.state is not WriterState.HEADER: raise ValueError(f'Expected output file to contain the header, got {self.state}') + assert self.fout is not None + + kv_data = bytearray() + + for key, val in self.kv_data.items(): + kv_data += self._pack_val(key, GGUFValueType.STRING, add_vtype=False) + kv_data += self._pack_val(val.value, val.type, add_vtype=True) - self.fout.write(self.kv_data) + self.fout.write(kv_data) self.flush() self.state = WriterState.KV_DATA def write_ti_data_to_file(self) -> None: if self.state is not WriterState.KV_DATA: raise ValueError(f'Expected output file to contain KV data, got {self.state}') - - self.fout.write(self.ti_data) + assert self.fout is not None + + ti_data = bytearray() + offset_tensor = 0 + + for name, ti in self.tensors.items(): + ti_data += self._pack_val(name, GGUFValueType.STRING, add_vtype=False) + n_dims = len(ti.shape) + ti_data += self._pack("I", n_dims) + for i in range(n_dims): + ti_data += self._pack("Q", ti.shape[n_dims - 1 - i]) + ti_data += self._pack("I", ti.dtype) + ti_data += self._pack("Q", offset_tensor) + offset_tensor += GGUFWriter.ggml_pad(ti.nbytes, self.data_alignment) + + self.fout.write(ti_data) self.flush() self.state = WriterState.TI_DATA - def add_key(self, key: str) -> None: - self.add_val(key, GGUFValueType.STRING, add_vtype=False) + def add_key_value(self, key: str, val: Any, vtype: GGUFValueType) -> None: + if key in self.kv_data: + raise ValueError(f'Duplicated key name {key!r}') + + self.kv_data[key] = GGUFValue(value=val, type=vtype) def add_uint8(self, key: str, val: int) -> None: - self.add_key(key) - self.add_val(val, GGUFValueType.UINT8) + self.add_key_value(key,val, GGUFValueType.UINT8) def add_int8(self, key: str, val: int) -> None: - self.add_key(key) - self.add_val(val, GGUFValueType.INT8) + self.add_key_value(key, val, GGUFValueType.INT8) def add_uint16(self, key: str, val: int) -> None: - self.add_key(key) - self.add_val(val, GGUFValueType.UINT16) + self.add_key_value(key, val, GGUFValueType.UINT16) def add_int16(self, key: str, val: int) -> None: - self.add_key(key) - self.add_val(val, GGUFValueType.INT16) + self.add_key_value(key, val, GGUFValueType.INT16) def add_uint32(self, key: str, val: int) -> None: - self.add_key(key) - self.add_val(val, GGUFValueType.UINT32) + self.add_key_value(key, val, GGUFValueType.UINT32) def add_int32(self, key: str, val: int) -> None: - self.add_key(key) - self.add_val(val, GGUFValueType.INT32) + self.add_key_value(key, val, GGUFValueType.INT32) def add_float32(self, key: str, val: float) -> None: - self.add_key(key) - self.add_val(val, GGUFValueType.FLOAT32) + self.add_key_value(key, val, GGUFValueType.FLOAT32) def add_uint64(self, key: str, val: int) -> None: - self.add_key(key) - self.add_val(val, GGUFValueType.UINT64) + self.add_key_value(key, val, GGUFValueType.UINT64) def add_int64(self, key: str, val: int) -> None: - self.add_key(key) - self.add_val(val, GGUFValueType.INT64) + self.add_key_value(key, val, GGUFValueType.INT64) def add_float64(self, key: str, val: float) -> None: - self.add_key(key) - self.add_val(val, GGUFValueType.FLOAT64) + self.add_key_value(key, val, GGUFValueType.FLOAT64) def add_bool(self, key: str, val: bool) -> None: - self.add_key(key) - self.add_val(val, GGUFValueType.BOOL) + self.add_key_value(key, val, GGUFValueType.BOOL) def add_string(self, key: str, val: str) -> None: if not val: return - self.add_key(key) - self.add_val(val, GGUFValueType.STRING) + self.add_key_value(key, val, GGUFValueType.STRING) def add_array(self, key: str, val: Sequence[Any]) -> None: if not isinstance(val, Sequence): raise ValueError("Value must be a sequence for array type") - self.add_key(key) - self.add_val(val, GGUFValueType.ARRAY) - - def add_val(self, val: Any, vtype: GGUFValueType | None = None, add_vtype: bool = True) -> None: - if vtype is None: - vtype = GGUFValueType.get_type(val) - - if add_vtype: - self.kv_data += self._pack("I", vtype) - self.kv_data_count += 1 - - pack_fmt = self._simple_value_packing.get(vtype) - if pack_fmt is not None: - self.kv_data += self._pack(pack_fmt, val, skip_pack_prefix = vtype == GGUFValueType.BOOL) - elif vtype == GGUFValueType.STRING: - encoded_val = val.encode("utf-8") if isinstance(val, str) else val - self.kv_data += self._pack("Q", len(encoded_val)) - self.kv_data += encoded_val - elif vtype == GGUFValueType.ARRAY and isinstance(val, Sequence) and val: - ltype = GGUFValueType.get_type(val[0]) - if not all(GGUFValueType.get_type(i) is ltype for i in val[1:]): - raise ValueError("All items in a GGUF array should be of the same type") - self.kv_data += self._pack("I", ltype) - self.kv_data += self._pack("Q", len(val)) - for item in val: - self.add_val(item, add_vtype=False) - else: - raise ValueError("Invalid GGUF metadata value type or value") + self.add_key_value(key, val, GGUFValueType.ARRAY) @staticmethod def ggml_pad(x: int, n: int) -> int: @@ -200,16 +219,12 @@ def add_tensor_info( self, name: str, tensor_shape: Sequence[int], tensor_dtype: np.dtype, tensor_nbytes: int, raw_dtype: GGMLQuantizationType | None = None, ) -> None: - if self.state is not WriterState.EMPTY: - raise ValueError(f'Expected output file to be empty, got {self.state}') + if self.state is not WriterState.NO_FILE: + raise ValueError(f'Expected output file to be not yet opened, got {self.state}') - if name in self.ti_names: - raise ValueError(f'Duplicated tensor name {name}') - self.ti_names.add(name) + if name in self.tensors: + raise ValueError(f'Duplicated tensor name {name!r}') - encoded_name = name.encode("utf-8") - self.ti_data += self._pack("Q", len(encoded_name)) - self.ti_data += encoded_name if raw_dtype is None: if tensor_dtype == np.float16: dtype = GGMLQuantizationType.F16 @@ -231,14 +246,8 @@ def add_tensor_info( dtype = raw_dtype if tensor_dtype == np.uint8: tensor_shape = quant_shape_from_byte_shape(tensor_shape, raw_dtype) - n_dims = len(tensor_shape) - self.ti_data += self._pack("I", n_dims) - for i in range(n_dims): - self.ti_data += self._pack("Q", tensor_shape[n_dims - 1 - i]) - self.ti_data += self._pack("I", dtype) - self.ti_data += self._pack("Q", self.offset_tensor) - self.offset_tensor += GGUFWriter.ggml_pad(tensor_nbytes, self.data_alignment) - self.ti_data_count += 1 + + self.tensors[name] = TensorInfo(shape=tensor_shape, dtype=dtype, nbytes=tensor_nbytes) def add_tensor( self, name: str, tensor: np.ndarray[Any, Any], raw_shape: Sequence[int] | None = None, @@ -252,10 +261,10 @@ def add_tensor( self.temp_file = fp shape: Sequence[int] = raw_shape if raw_shape is not None else tensor.shape - self.add_tensor_info(name, shape, tensor.dtype, tensor.nbytes, raw_dtype = raw_dtype) + self.add_tensor_info(name, shape, tensor.dtype, tensor.nbytes, raw_dtype=raw_dtype) if self.temp_file is None: - self.tensors.append(tensor) + self.tensors[name].tensor = tensor return tensor.tofile(self.temp_file) @@ -267,8 +276,9 @@ def write_padding(self, fp: IO[bytes], n: int, align: int | None = None) -> None fp.write(bytes([0] * pad)) def write_tensor_data(self, tensor: np.ndarray[Any, Any]) -> None: - if self.state is not WriterState.TI_DATA: - raise ValueError(f'Expected output file to contain tensor info, got {self.state}') + if self.state is not WriterState.TI_DATA and self.state is not WriterState.WEIGHTS: + raise ValueError(f'Expected output file to contain tensor info or weights, got {self.state}') + assert self.fout is not None if self.endianess == GGUFEndian.BIG: tensor.byteswap(inplace=True) @@ -276,50 +286,51 @@ def write_tensor_data(self, tensor: np.ndarray[Any, Any]) -> None: tensor.tofile(self.fout) self.write_padding(self.fout, tensor.nbytes) + self.state = WriterState.WEIGHTS + def write_tensors_to_file(self, *, progress: bool = False) -> None: self.write_ti_data_to_file() + assert self.fout is not None + self.write_padding(self.fout, self.fout.tell()) if self.temp_file is None: - self.tensors.reverse() # to pop from the "beginning" in constant time + bar = None if progress: from tqdm import tqdm - total_bytes = sum(t.nbytes for t in self.tensors) + total_bytes = sum(t.nbytes for t in self.tensors.values()) bar = tqdm(desc="Writing", total=total_bytes, unit="byte", unit_scale=True) - while True: - try: - tensor = self.tensors.pop() - except IndexError: - break - tensor.tofile(self.fout) - bar.update(tensor.nbytes) - self.write_padding(self.fout, tensor.nbytes) - return - while True: - try: - tensor = self.tensors.pop() - except IndexError: - break - tensor.tofile(self.fout) - self.write_padding(self.fout, tensor.nbytes) - return + # relying on the fact that Python dicts preserve insertion order (since 3.7) + for ti in self.tensors.values(): + assert ti.tensor is not None # can only iterate once over the tensors + assert ti.tensor.nbytes == ti.nbytes + ti.tensor.tofile(self.fout) + if bar is not None: + bar.update(ti.nbytes) + self.write_padding(self.fout, ti.nbytes) + ti.tensor = None + else: + self.temp_file.seek(0) - self.temp_file.seek(0) + shutil.copyfileobj(self.temp_file, self.fout) + self.flush() + self.temp_file.close() - shutil.copyfileobj(self.temp_file, self.fout) - self.flush() - self.temp_file.close() + self.state = WriterState.WEIGHTS def flush(self) -> None: + assert self.fout is not None self.fout.flush() def close(self) -> None: - self.fout.close() + if self.fout is not None: + self.fout.close() + self.fout = None def add_architecture(self) -> None: self.add_string(Keys.General.ARCHITECTURE, self.arch) @@ -449,7 +460,7 @@ def add_rope_scaling_type(self, value: RopeScalingType) -> None: def add_rope_scaling_factor(self, value: float) -> None: self.add_float32(Keys.Rope.SCALING_FACTOR.format(arch=self.arch), value) - def add_rope_scaling_attn_factors(self, value: Sequence[float]) -> None: + def add_rope_scaling_attn_factors(self, value: float) -> None: self.add_float32(Keys.Rope.SCALING_ATTN_FACTOR.format(arch=self.arch), value) def add_rope_scaling_orig_ctx_len(self, value: int) -> None: @@ -571,5 +582,32 @@ def _pack(self, fmt: str, value: Any, skip_pack_prefix: bool = False) -> bytes: pack_prefix = '<' if self.endianess == GGUFEndian.LITTLE else '>' return struct.pack(f'{pack_prefix}{fmt}', value) + def _pack_val(self, val: Any, vtype: GGUFValueType, add_vtype: bool) -> bytes: + kv_data = bytearray() + + if add_vtype: + kv_data += self._pack("I", vtype) + + pack_fmt = self._simple_value_packing.get(vtype) + if pack_fmt is not None: + kv_data += self._pack(pack_fmt, val, skip_pack_prefix = vtype == GGUFValueType.BOOL) + elif vtype == GGUFValueType.STRING: + encoded_val = val.encode("utf-8") if isinstance(val, str) else val + kv_data += self._pack("Q", len(encoded_val)) + kv_data += encoded_val + elif vtype == GGUFValueType.ARRAY and isinstance(val, Sequence) and val: + ltype = GGUFValueType.get_type(val[0]) + if not all(GGUFValueType.get_type(i) is ltype for i in val[1:]): + raise ValueError("All items in a GGUF array should be of the same type") + kv_data += self._pack("I", ltype) + kv_data += self._pack("Q", len(val)) + for item in val: + kv_data += self._pack_val(item, ltype, add_vtype=False) + else: + raise ValueError("Invalid GGUF metadata value type or value") + + return kv_data + def _write_packed(self, fmt: str, value: Any, skip_pack_prefix: bool = False) -> None: + assert self.fout is not None self.fout.write(self._pack(fmt, value, skip_pack_prefix)) diff --git a/gguf-py/scripts/gguf-new-metadata.py b/gguf-py/scripts/gguf-new-metadata.py index 21e91180cd340..c4b90d5810a65 100755 --- a/gguf-py/scripts/gguf-new-metadata.py +++ b/gguf-py/scripts/gguf-new-metadata.py @@ -101,8 +101,7 @@ def copy_with_new_metadata(reader: gguf.GGUFReader, writer: gguf.GGUFWriter, new logger.debug(f'Copying {field.name}') if val.value is not None: - writer.add_key(field.name) - writer.add_val(val.value, val.type) + writer.add_key_value(field.name, val.value, val.type) if gguf.Keys.Tokenizer.CHAT_TEMPLATE in new_metadata: logger.debug('Adding chat template(s)') @@ -111,8 +110,7 @@ def copy_with_new_metadata(reader: gguf.GGUFReader, writer: gguf.GGUFWriter, new for key, val in new_metadata.items(): logger.debug(f'Adding {key}: "{val.value}" {val.description}') - writer.add_key(key) - writer.add_val(val.value, val.type) + writer.add_key_value(key, val.value, val.type) total_bytes = 0 From 5795b941827fdec6c1662986de962badff456718 Mon Sep 17 00:00:00 2001 From: compilade Date: Sat, 8 Jun 2024 22:47:25 -0400 Subject: [PATCH 035/131] convert-hf : match model part name prefix and suffix (#7687) In #7075, to fix the conversion of (some) models using model-00001-of-00001.safetensors instead of model.safetensors for a single model part we simply used the same logic as the part count to get the part names. But this doesn't always work correctly, like when unusual additional model files like consolidated.safetensors in https://huggingface.co/mistralai/Mistral-7B-Instruct-v0.3 are present. This commit matching both the prefix and the suffix of the model part names should fix this problem without breaking any previously-supported upstream models. But according to report by @teleprint-me there is still some persistent problem, but shall do in the meantime. --- convert-hf-to-gguf.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/convert-hf-to-gguf.py b/convert-hf-to-gguf.py index 0327712d75d37..b38f48edfdf84 100755 --- a/convert-hf-to-gguf.py +++ b/convert-hf-to-gguf.py @@ -73,10 +73,10 @@ def __init__(self, dir_model: Path, ftype: gguf.LlamaFileType, fname_out: Path, self.endianess = gguf.GGUFEndian.BIG if is_big_endian else gguf.GGUFEndian.LITTLE self.use_temp_file = use_temp_file self.lazy = not eager - self.part_names = Model.get_model_part_names(self.dir_model, ".safetensors") + self.part_names = Model.get_model_part_names(self.dir_model, "model", ".safetensors") self.is_safetensors = len(self.part_names) > 0 if not self.is_safetensors: - self.part_names = Model.get_model_part_names(self.dir_model, ".bin") + self.part_names = Model.get_model_part_names(self.dir_model, "pytorch_model", ".bin") self.hparams = Model.load_hparams(self.dir_model) self.block_count = self.find_hparam(["n_layers", "num_hidden_layers", "n_layer"]) self.tensor_map = gguf.get_tensor_name_map(self.model_arch, self.block_count) @@ -335,10 +335,10 @@ def write_vocab(self): self.gguf_writer.close() @staticmethod - def get_model_part_names(dir_model: Path, suffix: str) -> list[str]: + def get_model_part_names(dir_model: Path, prefix: str, suffix: str) -> list[str]: part_names: list[str] = [] for filename in os.listdir(dir_model): - if filename.endswith(suffix): + if filename.startswith(prefix) and filename.endswith(suffix): part_names.append(filename) part_names.sort() From 2decf57bc6e4a6b45176c3727d964a01161beecc Mon Sep 17 00:00:00 2001 From: sasha0552 Date: Sun, 9 Jun 2024 06:39:25 +0000 Subject: [PATCH 036/131] convert-hf : set the model name based on cli arg, if present (#7693) `--model-name` argument was added a while ago but did not do anything. This commit fixes this issue and enables this feature. --- convert-hf-to-gguf.py | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/convert-hf-to-gguf.py b/convert-hf-to-gguf.py index b38f48edfdf84..025405a2c6ce1 100755 --- a/convert-hf-to-gguf.py +++ b/convert-hf-to-gguf.py @@ -52,6 +52,7 @@ class Model: endianess: gguf.GGUFEndian use_temp_file: bool lazy: bool + model_name: str | None part_names: list[str] is_safetensors: bool hparams: dict[str, Any] @@ -64,7 +65,7 @@ class Model: # subclasses should define this! model_arch: gguf.MODEL_ARCH - def __init__(self, dir_model: Path, ftype: gguf.LlamaFileType, fname_out: Path, is_big_endian: bool, use_temp_file: bool, eager: bool): + def __init__(self, dir_model: Path, ftype: gguf.LlamaFileType, fname_out: Path, is_big_endian: bool, use_temp_file: bool, eager: bool, model_name: str | None): if type(self) is Model: raise TypeError(f"{type(self).__name__!r} should not be directly instantiated") self.dir_model = dir_model @@ -73,6 +74,7 @@ def __init__(self, dir_model: Path, ftype: gguf.LlamaFileType, fname_out: Path, self.endianess = gguf.GGUFEndian.BIG if is_big_endian else gguf.GGUFEndian.LITTLE self.use_temp_file = use_temp_file self.lazy = not eager + self.model_name = model_name self.part_names = Model.get_model_part_names(self.dir_model, "model", ".safetensors") self.is_safetensors = len(self.part_names) > 0 if not self.is_safetensors: @@ -182,7 +184,7 @@ def map_tensor_name(self, name: str, try_suffixes: Sequence[str] = (".weight", " return new_name def set_gguf_parameters(self): - self.gguf_writer.add_name(self.dir_model.name) + self.gguf_writer.add_name(self.dir_model.name if self.model_name is None else self.model_name) self.gguf_writer.add_block_count(self.block_count) if (n_ctx := self.find_hparam(["max_position_embeddings", "n_ctx"], optional=True)) is not None: @@ -665,7 +667,7 @@ class GPTNeoXModel(Model): def set_gguf_parameters(self): block_count = self.hparams["num_hidden_layers"] - self.gguf_writer.add_name(self.dir_model.name) + self.gguf_writer.add_name(self.dir_model.name if self.model_name is None else self.model_name) self.gguf_writer.add_context_length(self.hparams["max_position_embeddings"]) self.gguf_writer.add_embedding_length(self.hparams["hidden_size"]) self.gguf_writer.add_block_count(block_count) @@ -798,7 +800,7 @@ def set_vocab(self): def set_gguf_parameters(self): block_count = self.hparams["n_layers"] - self.gguf_writer.add_name(self.dir_model.name) + self.gguf_writer.add_name(self.dir_model.name if self.model_name is None else self.model_name) self.gguf_writer.add_context_length(self.hparams["max_seq_len"]) self.gguf_writer.add_embedding_length(self.hparams["d_model"]) self.gguf_writer.add_block_count(block_count) @@ -850,7 +852,7 @@ def set_gguf_parameters(self): raise ValueError("gguf: can not find ctx length parameter.") self.gguf_writer.add_file_type(self.ftype) - self.gguf_writer.add_name(self.dir_model.name) + self.gguf_writer.add_name(self.dir_model.name if self.model_name is None else self.model_name) self.gguf_writer.add_source_hf_repo(hf_repo) self.gguf_writer.add_tensor_data_layout("Meta AI original pth") self.gguf_writer.add_context_length(ctx_length) @@ -887,7 +889,7 @@ def set_gguf_parameters(self): else: raise ValueError("gguf: can not find ctx length parameter.") - self.gguf_writer.add_name(self.dir_model.name) + self.gguf_writer.add_name(self.dir_model.name if self.model_name is None else self.model_name) self.gguf_writer.add_source_hf_repo(hf_repo) self.gguf_writer.add_tensor_data_layout("Meta AI original pth") self.gguf_writer.add_context_length(ctx_length) @@ -1010,7 +1012,7 @@ def set_gguf_parameters(self): else: raise ValueError("gguf: can not find ctx length parameter.") - self.gguf_writer.add_name(self.dir_model.name) + self.gguf_writer.add_name(self.dir_model.name if self.model_name is None else self.model_name) self.gguf_writer.add_source_hf_repo(hf_repo) self.gguf_writer.add_tensor_data_layout("Meta AI original pth") self.gguf_writer.add_context_length(ctx_length) @@ -1206,7 +1208,7 @@ def set_gguf_parameters(self): hparams = self.hparams block_count = hparams["num_hidden_layers"] - self.gguf_writer.add_name(self.dir_model.name) + self.gguf_writer.add_name(self.dir_model.name if self.model_name is None else self.model_name) self.gguf_writer.add_context_length(hparams["max_position_embeddings"]) self.gguf_writer.add_embedding_length(hparams["hidden_size"]) self.gguf_writer.add_block_count(block_count) @@ -1681,7 +1683,7 @@ class GPT2Model(Model): model_arch = gguf.MODEL_ARCH.GPT2 def set_gguf_parameters(self): - self.gguf_writer.add_name(self.dir_model.name) + self.gguf_writer.add_name(self.dir_model.name if self.model_name is None else self.model_name) self.gguf_writer.add_block_count(self.hparams["n_layer"]) self.gguf_writer.add_context_length(self.hparams["n_ctx"]) self.gguf_writer.add_embedding_length(self.hparams["n_embd"]) @@ -2248,7 +2250,7 @@ def set_gguf_parameters(self): hparams = self.hparams block_count = hparams["num_hidden_layers"] - self.gguf_writer.add_name(self.dir_model.name) + self.gguf_writer.add_name(self.dir_model.name if self.model_name is None else self.model_name) self.gguf_writer.add_context_length(hparams["max_position_embeddings"]) self.gguf_writer.add_embedding_length(hparams["hidden_size"]) self.gguf_writer.add_block_count(block_count) @@ -2348,7 +2350,7 @@ def set_gguf_parameters(self): # Fail early for models which don't have a block expansion factor of 2 assert d_inner == 2 * d_model - self.gguf_writer.add_name(self.dir_model.name) + self.gguf_writer.add_name(self.dir_model.name if self.model_name is None else self.model_name) self.gguf_writer.add_context_length(2**20) # arbitrary value; for those who use the default self.gguf_writer.add_embedding_length(d_model) self.gguf_writer.add_feed_forward_length(0) # unused, but seemingly required when loading @@ -2852,7 +2854,7 @@ def main() -> None: logger.error(f"Model {hparams['architectures'][0]} is not supported") sys.exit(1) - model_instance = model_class(dir_model, ftype_map[args.outtype], fname_out, args.bigendian, args.use_temp_file, args.no_lazy) + model_instance = model_class(dir_model, ftype_map[args.outtype], fname_out, args.bigendian, args.use_temp_file, args.no_lazy, args.model_name) logger.info("Set model parameters") model_instance.set_gguf_parameters() From 42b53d192f4e3abf1b7c8e424628424504ea5dc5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20G=C3=A4=C3=9Fler?= Date: Sun, 9 Jun 2024 09:42:25 +0200 Subject: [PATCH 037/131] CUDA: revise q8_1 data layout for mul_mat_q (#7824) --- ggml-cuda.cu | 88 +++++++++------ ggml-cuda/mmq.cu | 3 +- ggml-cuda/mmq.cuh | 236 ++++++++++++++++++++++------------------- ggml-cuda/quantize.cu | 87 +++++++++++++-- ggml-cuda/quantize.cuh | 17 ++- 5 files changed, 281 insertions(+), 150 deletions(-) diff --git a/ggml-cuda.cu b/ggml-cuda.cu index dad8a9e2dafe7..af10f21a0a92a 100644 --- a/ggml-cuda.cu +++ b/ggml-cuda.cu @@ -1347,10 +1347,30 @@ static void ggml_cuda_set_peer_access(const int n_tokens, int main_device) { GGML_UNUSED(main_device); } +static cudaError_t ggml_cuda_Memcpy2DPeerAsync( + void * dst, int dstDevice, size_t dpitch, void * src, int srcDevice, size_t spitch, size_t width, size_t height, cudaStream_t stream) { + +#if !defined(GGML_USE_HIPBLAS) + // cudaMemcpy2DAsync may fail with copies between vmm pools of different devices + cudaMemcpy3DPeerParms p = {}; + p.dstDevice = dstDevice; + p.dstPtr = make_cudaPitchedPtr(dst, dpitch, dpitch, height); + p.srcDevice = srcDevice; + p.srcPtr = make_cudaPitchedPtr(src, spitch, spitch, height); + p.extent = make_cudaExtent(width, height, 1); + return cudaMemcpy3DPeerAsync(&p, stream); +#else + // HIP does not support cudaMemcpy3DPeerAsync or vmm pools + GGML_UNUSED(dstDevice); + GGML_UNUSED(srcDevice); + return cudaMemcpy2DAsync(dst, dpitch, src, spitch, width, height, cudaMemcpyDeviceToDevice, stream); +#endif // !defined(GGML_USE_HIPBLAS) +} + static void ggml_cuda_op_mul_mat( ggml_backend_cuda_context & ctx, const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst, ggml_cuda_op_mul_mat_t op, - const bool convert_src1_to_q8_1) { + quantize_cuda_t quantize_src1) { const int64_t ne00 = src0->ne[0]; const int64_t ne01 = src0->ne[1]; @@ -1407,7 +1427,9 @@ static void ggml_cuda_op_mul_mat( } struct dev_data { - ggml_cuda_pool_alloc src0_dd_alloc; + int cc; + + ggml_cuda_pool_alloc src0_dd_alloc; ggml_cuda_pool_alloc src1_ddf_alloc; ggml_cuda_pool_alloc src1_ddq_alloc; ggml_cuda_pool_alloc dst_dd_alloc; @@ -1426,6 +1448,8 @@ static void ggml_cuda_op_mul_mat( int used_devices = 0; for (int id = 0; id < ggml_backend_cuda_get_device_count(); ++id) { + dev[id].cc = ggml_cuda_info().devices[id].cc; + // by default, use all rows dev[id].row_low = 0; dev[id].row_high = ne01; @@ -1476,11 +1500,15 @@ static void ggml_cuda_op_mul_mat( dev[id].src1_ddf = dev[id].src1_ddf_alloc.alloc(ctx.pool(id), ggml_nelements(src1)); } - if (convert_src1_to_q8_1) { - dev[id].src1_ddq = dev[id].src1_ddq_alloc.alloc(ctx.pool(id), nrows1*src1_padded_col_size*q8_1_ts/q8_1_bs); + if (quantize_src1) { + size_t src_1_ddq_size = nrows1*src1_padded_col_size*q8_1_ts/q8_1_bs; + if (quantize_src1 == quantize_mmq_q8_1_cuda) { + src_1_ddq_size += get_mmq_x_max_host(dev[id].cc)*sizeof(block_q8_1_mmq); + } + dev[id].src1_ddq = dev[id].src1_ddq_alloc.alloc(ctx.pool(id), src_1_ddq_size); if (src1_on_device && src1_is_contiguous) { - quantize_row_q8_1_cuda(dev[id].src1_ddf, dev[id].src1_ddq, ne10, nrows1, src1_padded_col_size, stream); + quantize_src1(dev[id].src1_ddf, dev[id].src1_ddq, ne10, ne11, ne12*ne13, src1_padded_col_size, src0->type, stream); CUDA_CHECK(cudaGetLastError()); } } @@ -1526,7 +1554,12 @@ static void ggml_cuda_op_mul_mat( const int64_t i03 = i0 / ne12; const int64_t i02 = i0 % ne12; - const size_t src1_ddq_i_offset = (i0*ne11 + src1_col_0) * src1_padded_col_size*q8_1_ts/q8_1_bs; + size_t src1_ddq_i_offset = i0*ne11 * src1_padded_col_size*q8_1_ts/q8_1_bs; + if (quantize_src1 == quantize_mmq_q8_1_cuda) { + src1_ddq_i_offset += src1_col_0 * sizeof(block_q8_1_mmq); + } else { + src1_ddq_i_offset += src1_col_0 * src1_padded_col_size*q8_1_ts/q8_1_bs; + } // for split tensors the data begins at i0 == i0_offset_low char * src0_dd_i = dev[id].src0_dd + (i0/i02_divisor) * (ne01*ne00*src0_ts)/src0_bs; @@ -1543,10 +1576,17 @@ static void ggml_cuda_op_mul_mat( // copy src0, src1 to device if necessary if (src1_is_contiguous) { if (id != ctx.device) { - if (convert_src1_to_q8_1) { + if (quantize_src1) { char * src1_ddq_i_source = dev[ctx.device].src1_ddq + src1_ddq_i_offset; - CUDA_CHECK(cudaMemcpyPeerAsync(src1_ddq_i, id, src1_ddq_i_source, ctx.device, - src1_ncols*src1_padded_col_size*q8_1_ts/q8_1_bs, stream)); + if (quantize_src1 == quantize_mmq_q8_1_cuda) { + const size_t pitch = ne11*sizeof(block_q8_1_mmq); + const size_t width = src1_ncols*sizeof(block_q8_1_mmq); + const size_t height = src1_padded_col_size/(4*QK8_1); + CUDA_CHECK(ggml_cuda_Memcpy2DPeerAsync(src1_ddq_i, id, pitch, src1_ddq_i_source, ctx.device, pitch, width, height, stream)); + } else { + CUDA_CHECK(cudaMemcpyPeerAsync( + src1_ddq_i, id, src1_ddq_i_source, ctx.device, src1_ncols*src1_padded_col_size*q8_1_ts/q8_1_bs, stream)); + } } else { float * src1_ddf_i_source = (float *) src1->data; src1_ddf_i_source += (i0*ne11 + src1_col_0) * ne10; @@ -1561,8 +1601,8 @@ static void ggml_cuda_op_mul_mat( GGML_ASSERT(false); } - if (convert_src1_to_q8_1 && !src1_is_contiguous) { - quantize_row_q8_1_cuda(src1_ddf_i, src1_ddq_i, ne10, src1_ncols, src1_padded_col_size, stream); + if (quantize_src1 && !src1_is_contiguous) { + quantize_src1(src1_ddf_i, src1_ddq_i, ne10, src1_ncols, 1, src1_padded_col_size, src0->type, stream); CUDA_CHECK(cudaGetLastError()); } @@ -1587,22 +1627,8 @@ static void ggml_cuda_op_mul_mat( float * dhf_dst_i = (float *) ((char *) dst_off_device + i02*nb2 + i03*nb3); GGML_ASSERT(dst->nb[1] == ne0*sizeof(float)); dhf_dst_i += src1_col_0*ne0 + dev[id].row_low; -#if !defined(GGML_USE_HIPBLAS) - // cudaMemcpy2DAsync may fail with copies between vmm pools of different devices - cudaMemcpy3DPeerParms p = {}; - p.dstDevice = ctx.device; - p.dstPtr = make_cudaPitchedPtr(dhf_dst_i, ne0*sizeof(float), row_diff, src1_ncols); - p.srcDevice = id; - p.srcPtr = make_cudaPitchedPtr(dst_dd_i, row_diff*sizeof(float), row_diff, src1_ncols); - p.extent = make_cudaExtent(row_diff*sizeof(float), src1_ncols, 1); - CUDA_CHECK(cudaMemcpy3DPeerAsync(&p, stream)); -#else - // HIP does not support cudaMemcpy3DPeerAsync or vmm pools - CUDA_CHECK(cudaMemcpy2DAsync(dhf_dst_i, ne0*sizeof(float), - dst_dd_i, row_diff*sizeof(float), - row_diff*sizeof(float), src1_ncols, - cudaMemcpyDeviceToDevice, stream)); -#endif + CUDA_CHECK(ggml_cuda_Memcpy2DPeerAsync( + dhf_dst_i, ctx.device, ne0*sizeof(float), dst_dd_i, id, row_diff*sizeof(float), row_diff*sizeof(float), src1_ncols, stream)); } else { float * dhf_dst_i = (float *) ((char *) dst_off_device + i02*nb2 + i03*nb3); GGML_ASSERT(dst->nb[1] == ne0*sizeof(float)); @@ -1941,13 +1967,13 @@ static void ggml_cuda_mul_mat(ggml_backend_cuda_context & ctx, const ggml_tensor // KQ + KQV multi-batch ggml_cuda_mul_mat_batched_cublas(ctx, src0, src1, dst); } else if (use_dequantize_mul_mat_vec) { - ggml_cuda_op_mul_mat(ctx, src0, src1, dst, ggml_cuda_op_dequantize_mul_mat_vec, false); + ggml_cuda_op_mul_mat(ctx, src0, src1, dst, ggml_cuda_op_dequantize_mul_mat_vec, nullptr); } else if (use_mul_mat_vec_q) { - ggml_cuda_op_mul_mat(ctx, src0, src1, dst, ggml_cuda_op_mul_mat_vec_q, true); + ggml_cuda_op_mul_mat(ctx, src0, src1, dst, ggml_cuda_op_mul_mat_vec_q, quantize_row_q8_1_cuda); } else if (use_mul_mat_q) { - ggml_cuda_op_mul_mat(ctx, src0, src1, dst, ggml_cuda_op_mul_mat_q, true); + ggml_cuda_op_mul_mat(ctx, src0, src1, dst, ggml_cuda_op_mul_mat_q, quantize_mmq_q8_1_cuda); } else { - ggml_cuda_op_mul_mat(ctx, src0, src1, dst, ggml_cuda_op_mul_mat_cublas, false); + ggml_cuda_op_mul_mat(ctx, src0, src1, dst, ggml_cuda_op_mul_mat_cublas, nullptr); } } diff --git a/ggml-cuda/mmq.cu b/ggml-cuda/mmq.cu index 58799e4caf6f8..1d6b9e6982b6e 100644 --- a/ggml-cuda/mmq.cu +++ b/ggml-cuda/mmq.cu @@ -11,6 +11,7 @@ void ggml_cuda_op_mul_mat_q( const int64_t nb01 = src0->nb[1]; const int64_t ne10 = src1->ne[0]; + const int64_t ne11 = src1->ne[1]; GGML_ASSERT(ne10 % QK8_1 == 0); const int64_t ne0 = dst->ne[0]; @@ -25,7 +26,7 @@ void ggml_cuda_op_mul_mat_q( // nrows_dst == nrows of the matrix that the kernel writes into const int64_t nrows_dst = id == ctx.device ? ne0 : row_diff; - const mmq_args args = {src0_dd_i, src1_ddq_i, dst_dd_i, ne00, row_diff, stride00, src1_padded_row_size, src1_ncols, nrows_dst}; + const mmq_args args = {src0_dd_i, src1_ddq_i, dst_dd_i, ne00, row_diff, stride00, src1_padded_row_size, src1_ncols, ne11, nrows_dst}; switch (src0->type) { case GGML_TYPE_Q4_0: diff --git a/ggml-cuda/mmq.cuh b/ggml-cuda/mmq.cuh index 6744cce6d785f..3ccae8a0c36fa 100644 --- a/ggml-cuda/mmq.cuh +++ b/ggml-cuda/mmq.cuh @@ -1,15 +1,26 @@ +#pragma once + #include "common.cuh" #include "vecdotq.cuh" #include #include +#define MMQ_TILE_Y_K (WARP_SIZE + WARP_SIZE/QI8_1) + typedef void (*load_tiles_mmq_t)( const char * __restrict__ x, int * __restrict__ x_ql, half2 * __restrict__ x_dm, int * __restrict__ x_qh, int * __restrict__ x_sc, const int & kbx0, const int & i_max, const int & stride); typedef void (*vec_dot_mmq_t)( const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc, - const int * __restrict__ y_qs, const half2 * __restrict__ y_ms, float * __restrict__ sum, const int & k0); + const int * __restrict__ y, float * __restrict__ sum, const int & k0); + +struct block_q8_1_mmq { + half2 ds[4]; + int8_t qs[4*QK8_1]; +}; +static_assert(sizeof(block_q8_1_mmq) == 4*QK8_1 + 4*sizeof(half2), "Unexpected block_q8_1_mmq size"); +static_assert(sizeof(block_q8_1_mmq) == 4*sizeof(block_q8_1), "Unexpected block_q8_1_mmq size"); struct tile_x_sizes { int ql; @@ -132,10 +143,14 @@ template static __device__ __forceinlin template static __device__ __forceinline__ void vec_dot_q4_0_q8_1_mul_mat( const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc, - const int * __restrict__ y_qs, const half2 * __restrict__ y_ds, float * __restrict__ sum, const int & k0) { + const int * __restrict__ y, float * __restrict__ sum, const int & k0) { GGML_UNUSED(x_qh); GGML_UNUSED(x_sc); + const float * x_dmf = (const float *) x_dm; + const int * y_qs = (const int *) y + 4; + const half2 * y_ds = (const half2 *) y; + #pragma unroll for (int j0 = 0; j0 < mmq_x; j0 += nwarps) { const int j = j0 + threadIdx.y; @@ -145,19 +160,18 @@ static __device__ __forceinline__ void vec_dot_q4_0_q8_1_mul_mat( const int i = i0 + threadIdx.x; const int kyqs = k0 % (QI8_1/2) + QI8_1 * (k0 / (QI8_1/2)); - const float * x_dmf = (const float *) x_dm; int u[2*VDR_Q4_0_Q8_1_MMQ]; #pragma unroll for (int l = 0; l < VDR_Q4_0_Q8_1_MMQ; ++l) { - u[2*l+0] = y_qs[j * WARP_SIZE + (kyqs + l) % WARP_SIZE]; - u[2*l+1] = y_qs[j * WARP_SIZE + (kyqs + l + QI4_0) % WARP_SIZE]; + u[2*l+0] = y_qs[j*MMQ_TILE_Y_K + (kyqs + l) % WARP_SIZE]; + u[2*l+1] = y_qs[j*MMQ_TILE_Y_K + (kyqs + l + QI4_0) % WARP_SIZE]; } sum[j0/nwarps*mmq_y/WARP_SIZE + i0/WARP_SIZE] += vec_dot_q4_0_q8_1_impl - (&x_ql[i * (WARP_SIZE + 1) + k0], u, x_dmf[i * (WARP_SIZE/QI4_0) + i/QI4_0 + k0/QI4_0], - y_ds[j * (WARP_SIZE/QI8_1) + (2*k0/QI8_1) % (WARP_SIZE/QI8_1)]); + (&x_ql[i*(WARP_SIZE + 1) + k0], u, x_dmf[i*(WARP_SIZE/QI4_0) + i/QI4_0 + k0/QI4_0], + y_ds[j*MMQ_TILE_Y_K + (2*k0/QI8_1) % (WARP_SIZE/QI8_1)]); } } } @@ -203,10 +217,13 @@ template static __device__ __forceinlin template static __device__ __forceinline__ void vec_dot_q4_1_q8_1_mul_mat( const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc, - const int * __restrict__ y_qs, const half2 * __restrict__ y_ds, float * __restrict__ sum, const int & k0) { + const int * __restrict__ y, float * __restrict__ sum, const int & k0) { GGML_UNUSED(x_qh); GGML_UNUSED(x_sc); + const int * y_qs = (const int *) y + 4; + const half2 * y_ds = (const half2 *) y; + #pragma unroll for (int j0 = 0; j0 < mmq_x; j0 += nwarps) { const int j = j0 + threadIdx.y; @@ -221,13 +238,13 @@ static __device__ __forceinline__ void vec_dot_q4_1_q8_1_mul_mat( #pragma unroll for (int l = 0; l < VDR_Q4_1_Q8_1_MMQ; ++l) { - u[2*l+0] = y_qs[j * WARP_SIZE + (kyqs + l) % WARP_SIZE]; - u[2*l+1] = y_qs[j * WARP_SIZE + (kyqs + l + QI4_1) % WARP_SIZE]; + u[2*l+0] = y_qs[j*MMQ_TILE_Y_K + (kyqs + l) % WARP_SIZE]; + u[2*l+1] = y_qs[j*MMQ_TILE_Y_K + (kyqs + l + QI4_1) % WARP_SIZE]; } sum[j0/nwarps*mmq_y/WARP_SIZE + i0/WARP_SIZE] += vec_dot_q4_1_q8_1_impl - (&x_ql[i * (WARP_SIZE + 1) + k0], u, x_dm[i * (WARP_SIZE/QI4_1) + i/QI4_1 + k0/QI4_1], - y_ds[j * (WARP_SIZE/QI8_1) + (2*k0/QI8_1) % (WARP_SIZE/QI8_1)]); + (&x_ql[i*(WARP_SIZE + 1) + k0], u, x_dm[i*(WARP_SIZE/QI4_1) + i/QI4_1 + k0/QI4_1], + y_ds[j*MMQ_TILE_Y_K + (2*k0/QI8_1) % (WARP_SIZE/QI8_1)]); } } } @@ -293,10 +310,14 @@ template static __device__ __forceinlin template static __device__ __forceinline__ void vec_dot_q5_0_q8_1_mul_mat( const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc, - const int * __restrict__ y_qs, const half2 * __restrict__ y_ds, float * __restrict__ sum, const int & k0) { + const int * __restrict__ y, float * __restrict__ sum, const int & k0) { GGML_UNUSED(x_qh); GGML_UNUSED(x_sc); + const float * x_dmf = (const float *) x_dm; + const int * y_qs = (const int *) y + 4; + const float * y_df = (const float *) y; + #pragma unroll for (int j0 = 0; j0 < mmq_x; j0 += nwarps) { const int j = j0 + threadIdx.y; @@ -306,20 +327,18 @@ static __device__ __forceinline__ void vec_dot_q5_0_q8_1_mul_mat( const int i = i0 + threadIdx.x; const int kyqs = k0 % (QI8_1/2) + QI8_1 * (k0 / (QI8_1/2)); - const int index_bx = i * (WARP_SIZE/QI5_0) + i/QI5_0 + k0/QI5_0; - const float * x_dmf = (const float *) x_dm; - const float * y_df = (const float *) y_ds; + const int index_bx = i*(WARP_SIZE/QI5_0) + i/QI5_0 + k0/QI5_0; int u[2*VDR_Q5_0_Q8_1_MMQ]; #pragma unroll for (int l = 0; l < VDR_Q5_0_Q8_1_MMQ; ++l) { - u[2*l+0] = y_qs[j * WARP_SIZE + (kyqs + l) % WARP_SIZE]; - u[2*l+1] = y_qs[j * WARP_SIZE + (kyqs + l + QI5_0) % WARP_SIZE]; + u[2*l+0] = y_qs[j*MMQ_TILE_Y_K + (kyqs + l) % WARP_SIZE]; + u[2*l+1] = y_qs[j*MMQ_TILE_Y_K + (kyqs + l + QI5_0) % WARP_SIZE]; } sum[j0/nwarps*mmq_y/WARP_SIZE + i0/WARP_SIZE] += vec_dot_q8_0_q8_1_impl - (&x_ql[i * (2*WARP_SIZE + 1) + 2 * k0], u, x_dmf[index_bx], y_df[j * (WARP_SIZE/QI8_1) + (2*k0/QI8_1) % (WARP_SIZE/QI8_1)]); + (&x_ql[i*(2*WARP_SIZE + 1) + 2*k0], u, x_dmf[index_bx], y_df[j*MMQ_TILE_Y_K + (2*k0/QI8_1) % (WARP_SIZE/QI8_1)]); } } } @@ -383,10 +402,13 @@ template static __device__ __forceinlin template static __device__ __forceinline__ void vec_dot_q5_1_q8_1_mul_mat( const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc, - const int * __restrict__ y_qs, const half2 * __restrict__ y_ds, float * __restrict__ sum, const int & k0) { + const int * __restrict__ y, float * __restrict__ sum, const int & k0) { GGML_UNUSED(x_qh); GGML_UNUSED(x_sc); + const int * y_qs = (const int *) y + 4; + const half2 * y_ds = (const half2 *) y; + #pragma unroll for (int j0 = 0; j0 < mmq_x; j0 += nwarps) { const int j = j0 + threadIdx.y; @@ -396,18 +418,18 @@ static __device__ __forceinline__ void vec_dot_q5_1_q8_1_mul_mat( const int i = i0 + threadIdx.x; const int kyqs = k0 % (QI8_1/2) + QI8_1 * (k0 / (QI8_1/2)); - const int index_bx = i * (WARP_SIZE/QI5_1) + + i/QI5_1 + k0/QI5_1; + const int index_bx = i*(WARP_SIZE/QI5_1) + i/QI5_1 + k0/QI5_1; int u[2*VDR_Q5_1_Q8_1_MMQ]; #pragma unroll for (int l = 0; l < VDR_Q5_1_Q8_1_MMQ; ++l) { - u[2*l+0] = y_qs[j * WARP_SIZE + (kyqs + l) % WARP_SIZE]; - u[2*l+1] = y_qs[j * WARP_SIZE + (kyqs + l + QI5_1) % WARP_SIZE]; + u[2*l+0] = y_qs[j*MMQ_TILE_Y_K + (kyqs + l) % WARP_SIZE]; + u[2*l+1] = y_qs[j*MMQ_TILE_Y_K + (kyqs + l + QI5_1) % WARP_SIZE]; } sum[j0/nwarps*mmq_y/WARP_SIZE + i0/WARP_SIZE] += vec_dot_q8_1_q8_1_impl - (&x_ql[i * (2*WARP_SIZE + 1) + 2 * k0], u, x_dm[index_bx], y_ds[j * (WARP_SIZE/QI8_1) + (2*k0/QI8_1) % (WARP_SIZE/QI8_1)]); + (&x_ql[i*(2*WARP_SIZE + 1) + 2*k0], u, x_dm[index_bx], y_ds[j*MMQ_TILE_Y_K + (2*k0/QI8_1) % (WARP_SIZE/QI8_1)]); } } } @@ -455,10 +477,14 @@ template static __device__ __forceinlin template static __device__ __forceinline__ void vec_dot_q8_0_q8_1_mul_mat( const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc, - const int * __restrict__ y_qs, const half2 * __restrict__ y_ds, float * __restrict__ sum, const int & k0) { + const int * __restrict__ y, float * __restrict__ sum, const int & k0) { GGML_UNUSED(x_qh); GGML_UNUSED(x_sc); + const float * x_dmf = (const float *) x_dm; + const int * y_qs = (const int *) y + 4; + const float * y_df = (const float *) y; + #pragma unroll for (int j0 = 0; j0 < mmq_x; j0 += nwarps) { const int j = j0 + threadIdx.y; @@ -467,12 +493,9 @@ static __device__ __forceinline__ void vec_dot_q8_0_q8_1_mul_mat( for (int i0 = 0; i0 < mmq_y; i0 += WARP_SIZE) { const int i = i0 + threadIdx.x; - const float * x_dmf = (const float *) x_dm; - const float * y_df = (const float *) y_ds; - sum[j0/nwarps*mmq_y/WARP_SIZE + i0/WARP_SIZE] += vec_dot_q8_0_q8_1_impl - (&x_ql[i * (WARP_SIZE + 1) + k0], &y_qs[j * WARP_SIZE + k0], x_dmf[i * (WARP_SIZE/QI8_0) + i/QI8_0 + k0/QI8_0], - y_df[j * (WARP_SIZE/QI8_1) + k0/QI8_1]); + (&x_ql[i*(WARP_SIZE + 1) + k0], &y_qs[j*MMQ_TILE_Y_K + k0], x_dmf[i*(WARP_SIZE/QI8_0) + i/QI8_0 + k0/QI8_0], + y_df[j*MMQ_TILE_Y_K + k0/QI8_1]); } } } @@ -531,10 +554,13 @@ template static __device__ __forceinlin template static __device__ __forceinline__ void vec_dot_q2_K_q8_1_mul_mat( const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc, - const int * __restrict__ y_qs, const half2 * __restrict__ y_ds, float * __restrict__ sum, const int & k0) { + const int * __restrict__ y, float * __restrict__ sum, const int & k0) { GGML_UNUSED(x_qh); + const int * y_qs = (const int *) y + 4; + const float * y_df = (const float *) y; + #pragma unroll for (int j0 = 0; j0 < mmq_x; j0 += nwarps) { const int j = j0 + threadIdx.y; @@ -545,11 +571,10 @@ static __device__ __forceinline__ void vec_dot_q2_K_q8_1_mul_mat( const int kbx = k0 / QI2_K; const int ky = (k0 % QI2_K) * QR2_K; - const float * y_df = (const float *) y_ds; int v[QR2_K*VDR_Q2_K_Q8_1_MMQ]; - const int kqsx = i * (WARP_SIZE + 1) + kbx*QI2_K + (QI2_K/2) * (ky/(2*QI2_K)) + ky % (QI2_K/2); + const int kqsx = i*(WARP_SIZE + 1) + kbx*QI2_K + (QI2_K/2) * (ky/(2*QI2_K)) + ky % (QI2_K/2); const int shift = 2 * ((ky % (2*QI2_K)) / (QI2_K/2)); #pragma unroll @@ -557,11 +582,11 @@ static __device__ __forceinline__ void vec_dot_q2_K_q8_1_mul_mat( v[l] = (x_ql[kqsx + l] >> shift) & 0x03030303; } - const uint8_t * scales = ((const uint8_t *) &x_sc[i * (WARP_SIZE/4) + i/4 + kbx*4]) + ky/4; + const uint8_t * scales = ((const uint8_t *) &x_sc[i*(WARP_SIZE/4) + i/4 + kbx*4]) + ky/4; - const int index_y = j * WARP_SIZE + (QR2_K*k0) % WARP_SIZE; sum[j0/nwarps*mmq_y/WARP_SIZE + i0/WARP_SIZE] += vec_dot_q2_K_q8_1_impl_mmq( - v, &y_qs[index_y], scales, x_dm[i * (WARP_SIZE/QI2_K) + i/QI2_K + kbx], y_df[index_y/QI8_1]); + v, &y_qs[j*MMQ_TILE_Y_K + (QR2_K*k0) % WARP_SIZE], scales, + x_dm[i*(WARP_SIZE/QI2_K) + i/QI2_K + kbx], y_df[j*MMQ_TILE_Y_K + ((QR2_K*k0) % WARP_SIZE)/QI8_1]); } } } @@ -646,7 +671,11 @@ template static __device__ __forceinlin template static __device__ __forceinline__ void vec_dot_q3_K_q8_1_mul_mat( const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc, - const int * __restrict__ y_qs, const half2 * __restrict__ y_ds, float * __restrict__ sum, const int & k0) { + const int * __restrict__ y, float * __restrict__ sum, const int & k0) { + + const float * x_dmf = (const float *) x_dm; + const int * y_qs = (const int *) y + 4; + const float * y_df = (const float *) y; #pragma unroll for (int j0 = 0; j0 < mmq_x; j0 += nwarps) { @@ -658,8 +687,6 @@ static __device__ __forceinline__ void vec_dot_q3_K_q8_1_mul_mat( const int kbx = k0 / QI3_K; const int ky = (k0 % QI3_K) * QR3_K; - const float * x_dmf = (const float *) x_dm; - const float * y_df = (const float *) y_ds; const int8_t * scales = ((const int8_t *) (x_sc + i * (WARP_SIZE/4) + i/4 + kbx*4)) + ky/4; @@ -667,19 +694,19 @@ static __device__ __forceinline__ void vec_dot_q3_K_q8_1_mul_mat( #pragma unroll for (int l = 0; l < QR3_K*VDR_Q3_K_Q8_1_MMQ; ++l) { - const int kqsx = i * (WARP_SIZE + 1) + kbx*QI3_K + (QI3_K/2) * (ky/(2*QI3_K)) + ky % (QI3_K/2); + const int kqsx = i*(WARP_SIZE + 1) + kbx*QI3_K + (QI3_K/2) * (ky/(2*QI3_K)) + ky % (QI3_K/2); const int shift = 2 * ((ky % 32) / 8); const int vll = (x_ql[kqsx + l] >> shift) & 0x03030303; - const int vh = x_qh[i * (WARP_SIZE/2) + i/2 + kbx * (QI3_K/2) + (ky+l)%8] >> ((ky+l) / 8); + const int vh = x_qh[i*(WARP_SIZE/2) + i/2 + kbx * (QI3_K/2) + (ky+l)%8] >> ((ky+l) / 8); const int vlh = (vh << 2) & 0x04040404; v[l] = __vsubss4(vll, vlh); } - const int index_y = j * WARP_SIZE + (k0*QR3_K) % WARP_SIZE; sum[j0/nwarps*mmq_y/WARP_SIZE + i0/WARP_SIZE] += vec_dot_q3_K_q8_1_impl_mmq( - v, &y_qs[index_y], scales, x_dmf[i * (WARP_SIZE/QI3_K) + i/QI3_K + kbx], y_df[index_y/QI8_1]); + v, &y_qs[j*MMQ_TILE_Y_K + (k0*QR3_K) % WARP_SIZE], scales, + x_dmf[i*(WARP_SIZE/QI3_K) + i/QI3_K + kbx], y_df[j*MMQ_TILE_Y_K + ((k0*QR3_K) % WARP_SIZE)/QI8_1]); } } } @@ -746,10 +773,13 @@ template static __device__ __forceinlin template static __device__ __forceinline__ void vec_dot_q4_K_q8_1_mul_mat( const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc, - const int * __restrict__ y_qs, const half2 * __restrict__ y_ds, float * __restrict__ sum, const int & k0) { + const int * __restrict__ y, float * __restrict__ sum, const int & k0) { GGML_UNUSED(x_qh); + const int * y_qs = (const int *) y + 4; + const half2 * y_ds = (const half2 *) y; + #pragma unroll for (int j0 = 0; j0 < mmq_x; j0 += nwarps) { const int j = j0 + threadIdx.y; @@ -760,9 +790,9 @@ static __device__ __forceinline__ void vec_dot_q4_K_q8_1_mul_mat( const uint8_t * sc = ((const uint8_t *) &x_sc[i * (WARP_SIZE/8) + i/8 + k0/16]) + 2*((k0 % 16) / 8); - const int index_y = j * WARP_SIZE + (QR4_K*k0) % WARP_SIZE; sum[j0/nwarps*mmq_y/WARP_SIZE + i0/WARP_SIZE] += vec_dot_q4_K_q8_1_impl_mmq( - &x_ql[i * (WARP_SIZE + 1) + k0], &y_qs[index_y], sc, sc+8, x_dm[i * (WARP_SIZE/QI4_K) + i/QI4_K], &y_ds[index_y/QI8_1]); + &x_ql[i*(WARP_SIZE + 1) + k0], &y_qs[j*MMQ_TILE_Y_K + (QR4_K*k0) % WARP_SIZE], sc, sc+8, + x_dm[i*(WARP_SIZE/QI4_K) + i/QI4_K], &y_ds[j*MMQ_TILE_Y_K + ((QR4_K*k0) % WARP_SIZE)/QI8_1]); } } } @@ -842,10 +872,13 @@ template static __device__ __forceinlin template static __device__ __forceinline__ void vec_dot_q5_K_q8_1_mul_mat( const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc, - const int * __restrict__ y_qs, const half2 * __restrict__ y_ds, float * __restrict__ sum, const int & k0) { + const int * __restrict__ y, float * __restrict__ sum, const int & k0) { GGML_UNUSED(x_qh); + const int * y_qs = (const int *) y + 4; + const half2 * y_ds = (const half2 *) y; + #pragma unroll for (int j0 = 0; j0 < mmq_x; j0 += nwarps) { const int j = j0 + threadIdx.y; @@ -856,10 +889,9 @@ static __device__ __forceinline__ void vec_dot_q5_K_q8_1_mul_mat( const uint8_t * sc = ((const uint8_t *) &x_sc[i * (WARP_SIZE/8) + i/8 + k0/16]) + 2 * ((k0 % 16) / 8); - const int index_x = i * (QR5_K*WARP_SIZE + 1) + QR5_K*k0; - const int index_y = j * WARP_SIZE + (QR5_K*k0) % WARP_SIZE; sum[j0/nwarps*mmq_y/WARP_SIZE + i0/WARP_SIZE] += vec_dot_q5_K_q8_1_impl_mmq( - &x_ql[index_x], &y_qs[index_y], sc, sc+8, x_dm[i * (WARP_SIZE/QI5_K) + i/QI5_K], &y_ds[index_y/QI8_1]); + &x_ql[i*(QR5_K*WARP_SIZE + 1) + QR5_K*k0], &y_qs[j*MMQ_TILE_Y_K + (QR5_K*k0) % WARP_SIZE], sc, sc+8, + x_dm[i*(WARP_SIZE/QI5_K) + i/QI5_K], &y_ds[j*MMQ_TILE_Y_K + ((QR5_K*k0) % WARP_SIZE)/QI8_1]); } } } @@ -932,10 +964,14 @@ template static __device__ __forceinlin template static __device__ __forceinline__ void vec_dot_q6_K_q8_1_mul_mat( const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc, - const int * __restrict__ y_qs, const half2 * __restrict__ y_ds, float * __restrict__ sum, const int & k0) { + const int * __restrict__ y, float * __restrict__ sum, const int & k0) { GGML_UNUSED(x_qh); + const float * x_dmf = (const float *) x_dm; + const int * y_qs = (const int *) y + 4; + const float * y_df = (const float *) y; + #pragma unroll for (int j0 = 0; j0 < mmq_x; j0 += nwarps) { const int j = j0 + threadIdx.y; @@ -944,15 +980,11 @@ static __device__ __forceinline__ void vec_dot_q6_K_q8_1_mul_mat( for (int i0 = 0; i0 < mmq_y; i0 += WARP_SIZE) { const int i = i0 + threadIdx.x; - const float * x_dmf = (const float *) x_dm; - const float * y_df = (const float *) y_ds; - const int8_t * sc = ((const int8_t *) &x_sc[i * (WARP_SIZE/8) + i/8 + k0/8]); - const int index_x = i * (QR6_K*WARP_SIZE + 1) + QR6_K*k0; - const int index_y = j * WARP_SIZE + (QR6_K*k0) % WARP_SIZE; sum[j0/nwarps*mmq_y/WARP_SIZE + i0/WARP_SIZE] += vec_dot_q6_K_q8_1_impl_mmq( - &x_ql[index_x], &y_qs[index_y], sc, x_dmf[i * (WARP_SIZE/QI6_K) + i/QI6_K], &y_df[index_y/QI8_1]); + &x_ql[i*(QR6_K*WARP_SIZE + 1) + QR6_K*k0], &y_qs[j*MMQ_TILE_Y_K + (QR6_K*k0) % WARP_SIZE], sc, + x_dmf[i*(WARP_SIZE/QI6_K) + i/QI6_K], &y_df[j*MMQ_TILE_Y_K + ((QR6_K*k0) % WARP_SIZE)/QI8_1]); } } } @@ -964,7 +996,6 @@ struct mmq_type_traits; template struct mmq_type_traits { - static constexpr bool need_sum = true; static constexpr int vdr = VDR_Q4_0_Q8_1_MMQ; static constexpr load_tiles_mmq_t load_tiles = load_tiles_q4_0; static constexpr vec_dot_mmq_t vec_dot = vec_dot_q4_0_q8_1_mul_mat; @@ -972,7 +1003,6 @@ struct mmq_type_traits { template struct mmq_type_traits { - static constexpr bool need_sum = true; static constexpr int vdr = VDR_Q4_1_Q8_1_MMQ; static constexpr load_tiles_mmq_t load_tiles = load_tiles_q4_1; static constexpr vec_dot_mmq_t vec_dot = vec_dot_q4_1_q8_1_mul_mat; @@ -980,7 +1010,6 @@ struct mmq_type_traits { template struct mmq_type_traits { - static constexpr bool need_sum = false; static constexpr int vdr = VDR_Q5_0_Q8_1_MMQ; static constexpr load_tiles_mmq_t load_tiles = load_tiles_q5_0; static constexpr vec_dot_mmq_t vec_dot = vec_dot_q5_0_q8_1_mul_mat; @@ -988,7 +1017,6 @@ struct mmq_type_traits { template struct mmq_type_traits { - static constexpr bool need_sum = true; static constexpr int vdr = VDR_Q5_1_Q8_1_MMQ; static constexpr load_tiles_mmq_t load_tiles = load_tiles_q5_1; static constexpr vec_dot_mmq_t vec_dot = vec_dot_q5_1_q8_1_mul_mat; @@ -996,7 +1024,6 @@ struct mmq_type_traits { template struct mmq_type_traits { - static constexpr bool need_sum = false; static constexpr int vdr = VDR_Q8_0_Q8_1_MMQ; static constexpr load_tiles_mmq_t load_tiles = load_tiles_q8_0; static constexpr vec_dot_mmq_t vec_dot = vec_dot_q8_0_q8_1_mul_mat; @@ -1004,7 +1031,6 @@ struct mmq_type_traits { template struct mmq_type_traits { - static constexpr bool need_sum = false; static constexpr int vdr = VDR_Q2_K_Q8_1_MMQ; static constexpr load_tiles_mmq_t load_tiles = load_tiles_q2_K; static constexpr vec_dot_mmq_t vec_dot = vec_dot_q2_K_q8_1_mul_mat; @@ -1012,7 +1038,6 @@ struct mmq_type_traits { template struct mmq_type_traits { - static constexpr bool need_sum = false; static constexpr int vdr = VDR_Q3_K_Q8_1_MMQ; static constexpr load_tiles_mmq_t load_tiles = load_tiles_q3_K; static constexpr vec_dot_mmq_t vec_dot = vec_dot_q3_K_q8_1_mul_mat; @@ -1020,7 +1045,6 @@ struct mmq_type_traits { template struct mmq_type_traits { - static constexpr bool need_sum = true; static constexpr int vdr = VDR_Q4_K_Q8_1_MMQ; static constexpr load_tiles_mmq_t load_tiles = load_tiles_q4_K; static constexpr vec_dot_mmq_t vec_dot = vec_dot_q4_K_q8_1_mul_mat; @@ -1028,7 +1052,6 @@ struct mmq_type_traits { template struct mmq_type_traits { - static constexpr bool need_sum = true; static constexpr int vdr = VDR_Q5_K_Q8_1_MMQ; static constexpr load_tiles_mmq_t load_tiles = load_tiles_q5_K; static constexpr vec_dot_mmq_t vec_dot = vec_dot_q5_K_q8_1_mul_mat; @@ -1036,12 +1059,36 @@ struct mmq_type_traits { template struct mmq_type_traits { - static constexpr bool need_sum = false; static constexpr int vdr = VDR_Q6_K_Q8_1_MMQ; static constexpr load_tiles_mmq_t load_tiles = load_tiles_q6_K; static constexpr vec_dot_mmq_t vec_dot = vec_dot_q6_K_q8_1_mul_mat; }; +static int mmq_need_sum(const ggml_type type_x) { + switch (type_x) { + case GGML_TYPE_Q4_0: + case GGML_TYPE_Q4_1: + return true; + case GGML_TYPE_Q5_0: + return false; + case GGML_TYPE_Q5_1: + return true; + case GGML_TYPE_Q8_0: + case GGML_TYPE_Q2_K: + case GGML_TYPE_Q3_K: + return false; + case GGML_TYPE_Q4_K: + case GGML_TYPE_Q5_K: + return true; + case GGML_TYPE_Q6_K: + return false; + default: + GGML_ASSERT(false); + break; + } + return false; +} + template #if defined(GGML_USE_HIPBLAS) && defined(__HIP_PLATFORM_AMD__) #if defined(RDNA3) || defined(RDNA2) @@ -1056,7 +1103,7 @@ template #endif // defined(GGML_USE_HIPBLAS) && defined(__HIP_PLATFORM_AMD__) static __global__ void mul_mat_q( const char * __restrict__ x, const char * __restrict__ yc, float * __restrict__ dst, - const int ne00, const int ne01, const int stride00, const int ne10, const int ne11, const int ne0) { + const int ne00, const int ne01, const int stride01, const int ne10, const int ne11, const int stride11, const int ne0) { // Skip unused template specializations for faster compilation: if (mmq_x > get_mmq_x_max_device()) { @@ -1068,7 +1115,6 @@ static __global__ void mul_mat_q( constexpr int qr = ggml_cuda_type_traits::qr; constexpr int qi = ggml_cuda_type_traits::qi; constexpr int mmq_y = get_mmq_y_device(mmq_x); - constexpr bool need_sum = mmq_type_traits::need_sum; constexpr int vdr = mmq_type_traits::vdr; constexpr load_tiles_mmq_t load_tiles = mmq_type_traits::load_tiles; constexpr vec_dot_mmq_t vec_dot = mmq_type_traits::vec_dot; @@ -1080,62 +1126,38 @@ static __global__ void mul_mat_q( half2 * tile_x_dm = (half2 *) (tile_x_ql + txs.ql); int * tile_x_qh = (int *) (tile_x_dm + txs.dm); int * tile_x_sc = (int *) (tile_x_qh + txs.qh); - int * tile_y_qs = (int *) (tile_x_sc + txs.sc); // [mmq_x * WARP_SIZE] - half2 * tile_y_ds = (half2 *) (tile_y_qs + mmq_x*WARP_SIZE); // [mmq_x * WARP_SIZE/QI8_1]; - - const block_q8_1 * y = (const block_q8_1 *) yc; + int * tile_y = (int *) (tile_x_sc + txs.sc); // [mmq_x * (WARP_SIZE + WARP_SIZE/QI8_1)] const int blocks_per_row_x = ne00 / qk; - const int blocks_per_col_y = ne10 / QK8_1; const int blocks_per_warp = WARP_SIZE / qi; const int & ne1 = ne11; const int tile_x_max_i = ne01 - blockIdx.x*mmq_y - 1; + const int * y = (const int *) yc + blockIdx.y*(mmq_x*sizeof(block_q8_1_mmq)/sizeof(int)); + float sum[(mmq_x/nwarps) * (mmq_y/WARP_SIZE)] = {0.0f}; for (int kb0 = 0; kb0 < blocks_per_row_x; kb0 += blocks_per_warp) { - load_tiles(x, tile_x_ql, tile_x_dm, tile_x_qh, tile_x_sc, stride00*blockIdx.x*mmq_y + kb0, tile_x_max_i, stride00); + load_tiles(x, tile_x_ql, tile_x_dm, tile_x_qh, tile_x_sc, stride01*blockIdx.x*mmq_y + kb0, tile_x_max_i, stride01); #pragma unroll for (int kr = 0; kr < qr; ++kr) { - const int kqs = kr*WARP_SIZE + threadIdx.x; - const int kbxd = kqs / QI8_1; - + const int * by0 = y + stride11*(kb0*(qk*sizeof(block_q8_1_mmq) / (4*QK8_1*sizeof(int))) + kr*sizeof(block_q8_1_mmq)/sizeof(int)); #pragma unroll - for (int i0 = 0; i0 < mmq_x; i0 += nwarps) { - const int i = min(blockIdx.y*mmq_x + threadIdx.y + i0, ne11-1); // to prevent out-of-bounds memory accesses - - const block_q8_1 * by0 = &y[i*blocks_per_col_y + kb0 * (qk/QK8_1) + kbxd]; + for (int l0 = 0; l0 < mmq_x*MMQ_TILE_Y_K; l0 += nwarps*WARP_SIZE) { + int l = l0 + threadIdx.y*WARP_SIZE + threadIdx.x; - const int index_y = (i0 + threadIdx.y) * WARP_SIZE + kqs % WARP_SIZE; - tile_y_qs[index_y] = get_int_from_int8_aligned(by0->qs, threadIdx.x % QI8_1); - } - -#pragma unroll - for (int ids0 = 0; ids0 < mmq_x; ids0 += nwarps * QI8_1) { - const int ids = (ids0 + threadIdx.y * QI8_1 + threadIdx.x / (WARP_SIZE/QI8_1)) % mmq_x; - const int kby = threadIdx.x % (WARP_SIZE/QI8_1); - const int i_y_eff = min(blockIdx.y*mmq_x + ids, ne11-1); - - // if the sum is not needed it's faster to transform the scale to f32 ahead of time - const half2 * dsi_src = &y[i_y_eff*blocks_per_col_y + kb0 * (qk/QK8_1) + kr*(WARP_SIZE/QI8_1) + kby].ds; - half2 * dsi_dst = &tile_y_ds[ids * (WARP_SIZE/QI8_1) + kby]; - if (need_sum) { - *dsi_dst = *dsi_src; - } else { - float * dfi_dst = (float *) dsi_dst; - *dfi_dst = __low2float(*dsi_src); - } + tile_y[l] = by0[l]; } __syncthreads(); // #pragma unroll // unrolling this loop causes too much register pressure for (int k0 = kr*WARP_SIZE/qr; k0 < (kr+1)*WARP_SIZE/qr; k0 += vdr) { - vec_dot(tile_x_ql, tile_x_dm, tile_x_qh, tile_x_sc, tile_y_qs, tile_y_ds, sum, k0); + vec_dot(tile_x_ql, tile_x_dm, tile_x_qh, tile_x_sc, tile_y, sum, k0); } __syncthreads(); @@ -1165,8 +1187,8 @@ static __global__ void mul_mat_q( struct mmq_args { const char * x; const char * y; float * dst; - int64_t ne00; int64_t ne01; int64_t stride00; - int64_t ne10; int64_t ne11; + int64_t ne00; int64_t ne01; int64_t stride01; + int64_t ne10; int64_t ne11; int64_t stride11; int64_t ne0; }; @@ -1184,7 +1206,7 @@ static void launch_mul_mat_q(const mmq_args & args, cudaStream_t stream) { const tile_x_sizes txs = get_tile_x_sizes_host(type, mmq_y); const int shmem_x = txs.ql*sizeof(int) + txs.dm*sizeof(half2) + txs.qh*sizeof(int) + txs.sc*sizeof(int); const int shmem_y = mmq_x*WARP_SIZE*sizeof(int) + mmq_x*(WARP_SIZE/QI8_1)*sizeof(half2); - const int shmem = shmem_x + shmem_y; + const int shmem = shmem_x + GGML_PAD(shmem_y, nwarps*WARP_SIZE*sizeof(int)); #if !(defined(GGML_USE_HIPBLAS) && defined(__HIP_PLATFORM_AMD__)) static bool shmem_limit_raised[GGML_CUDA_MAX_DEVICES] = {false}; @@ -1198,11 +1220,11 @@ static void launch_mul_mat_q(const mmq_args & args, cudaStream_t stream) { if (args.ne01 % mmq_y == 0) { const bool need_check = false; mul_mat_q<<>> - (args.x, args.y, args.dst, args.ne00, args.ne01, args.stride00, args.ne10, args.ne11, args.ne0); + (args.x, args.y, args.dst, args.ne00, args.ne01, args.stride01, args.ne10, args.ne11, args.stride11, args.ne0); } else { const bool need_check = true; mul_mat_q<<>> - (args.x, args.y, args.dst, args.ne00, args.ne01, args.stride00, args.ne10, args.ne11, args.ne0); + (args.x, args.y, args.dst, args.ne00, args.ne01, args.stride01, args.ne10, args.ne11, args.stride11, args.ne0); } } diff --git a/ggml-cuda/quantize.cu b/ggml-cuda/quantize.cu index 7578c4b6c7cab..b4678682238d3 100644 --- a/ggml-cuda/quantize.cu +++ b/ggml-cuda/quantize.cu @@ -1,22 +1,23 @@ #include "quantize.cuh" +#include -static __global__ void quantize_q8_1(const float * __restrict__ x, void * __restrict__ vy, const int64_t kx, const int64_t kx_padded) { - const int64_t ix = (int64_t)blockDim.x*blockIdx.x + threadIdx.x; +static __global__ void quantize_q8_1(const float * __restrict__ x, void * __restrict__ vy, const int64_t kx, const int64_t kx0_padded) { + const int64_t ix0 = (int64_t)blockDim.x*blockIdx.x + threadIdx.x; - if (ix >= kx_padded) { + if (ix0 >= kx0_padded) { return; } - const int64_t iy = (int64_t)blockDim.y*blockIdx.y + threadIdx.y; + const int64_t ix1 = blockIdx.y; - const int64_t i_padded = (int64_t)iy*kx_padded + ix; + const int64_t i_padded = ix1*kx0_padded + ix0; block_q8_1 * y = (block_q8_1 *) vy; const int64_t ib = i_padded / QK8_1; // block index const int64_t iqs = i_padded % QK8_1; // quant index - const float xi = ix < kx ? x[iy*kx + ix] : 0.0f; + const float xi = ix0 < kx ? x[ix1*kx + ix0] : 0.0f; float amax = fabsf(xi); float sum = xi; @@ -36,10 +37,76 @@ static __global__ void quantize_q8_1(const float * __restrict__ x, void * __rest reinterpret_cast(y[ib].ds.y) = sum; } -void quantize_row_q8_1_cuda(const float * x, void * vy, const int64_t kx, const int64_t ky, const int64_t kx_padded, cudaStream_t stream) { - const int64_t block_num_x = (kx_padded + CUDA_QUANTIZE_BLOCK_SIZE - 1) / CUDA_QUANTIZE_BLOCK_SIZE; - const dim3 num_blocks(block_num_x, ky, 1); +template +static __global__ void quantize_mmq_q8_1( + const float * __restrict__ x, void * __restrict__ vy, const int64_t kx0, const int64_t kx1, const int64_t kx0_padded) { + + const int64_t ix0 = (int64_t)blockDim.x*blockIdx.x + threadIdx.x; + + if (ix0 >= kx0_padded) { + return; + } + + const int64_t ix1 = kx1*blockIdx.z + blockIdx.y; + + block_q8_1_mmq * y = (block_q8_1_mmq *) vy; + + const int64_t ib0 = blockIdx.z*(gridDim.y*gridDim.x*blockDim.x/(4*QK8_1)); // first block of channel + const int64_t ib = ib0 + (ix0 / (4*QK8_1))*kx1 + blockIdx.y; // block index in channel + const int64_t iqs = ix0 % (4*QK8_1); // quant index in block + + const float xi = ix0 < kx0 ? x[ix1*kx0 + ix0] : 0.0f; + float amax = fabsf(xi); + + amax = warp_reduce_max(amax); + + float sum; + if (need_sum) { + sum = warp_reduce_sum(xi); + } + + const float d = amax / 127; + const int8_t q = amax == 0.0f ? 0 : roundf(xi / d); + + y[ib].qs[iqs] = q; + + if (iqs % QK8_1 != 0) { + return; + } + + if (need_sum) { + y[ib].ds[iqs/QK8_1] = make_half2(d, sum); + } else { + ((float *) y[ib].ds)[iqs/QK8_1] = d; + } +} + +void quantize_row_q8_1_cuda( + const float * x, void * vy, const int64_t kx0, const int64_t kx1, const int64_t channels, + const int64_t kx0_padded, const ggml_type type_x, cudaStream_t stream) { + + GGML_ASSERT(kx0_padded % QK8_1 == 0); + + const int64_t block_num_x = (kx0_padded + CUDA_QUANTIZE_BLOCK_SIZE - 1) / CUDA_QUANTIZE_BLOCK_SIZE; + const dim3 num_blocks(block_num_x, kx1*channels, 1); const dim3 block_size(CUDA_QUANTIZE_BLOCK_SIZE, 1, 1); - quantize_q8_1<<>>(x, vy, kx, kx_padded); + quantize_q8_1<<>>(x, vy, kx0, kx0_padded); + + GGML_UNUSED(type_x); } +void quantize_mmq_q8_1_cuda( + const float * x, void * vy, const int64_t kx0, const int64_t kx1, const int64_t channels, + const int64_t kx0_padded, const ggml_type type_x, cudaStream_t stream) { + + GGML_ASSERT(kx0_padded % (4*QK8_1) == 0); + + const int64_t block_num_x = (kx0_padded + CUDA_QUANTIZE_BLOCK_SIZE - 1) / CUDA_QUANTIZE_BLOCK_SIZE; + const dim3 num_blocks(block_num_x, kx1, channels); + const dim3 block_size(CUDA_QUANTIZE_BLOCK_SIZE, 1, 1); + if (mmq_need_sum(type_x)) { + quantize_mmq_q8_1<<>>(x, vy, kx0, kx1, kx0_padded); + } else { + quantize_mmq_q8_1<<>>(x, vy, kx0, kx1, kx0_padded); + } +} diff --git a/ggml-cuda/quantize.cuh b/ggml-cuda/quantize.cuh index b37a4752f2d24..486c9360a46fd 100644 --- a/ggml-cuda/quantize.cuh +++ b/ggml-cuda/quantize.cuh @@ -1,5 +1,20 @@ +#pragma once + #include "common.cuh" +#include "mmq.cuh" + +#include #define CUDA_QUANTIZE_BLOCK_SIZE 256 -void quantize_row_q8_1_cuda(const float * x, void * vy, const int64_t kx, const int64_t ky, const int64_t kx_padded, cudaStream_t stream); +typedef void (*quantize_cuda_t)( + const float * x, void * vy, const int64_t kx0, const int64_t kx1, const int64_t channels, const int64_t kx0_padded, + const ggml_type type_x, cudaStream_t stream); + +void quantize_row_q8_1_cuda( + const float * x, void * vy, const int64_t kx0, const int64_t kx1, const int64_t channels, const int64_t kx0_padded, + const ggml_type type_x, cudaStream_t stream); + +void quantize_mmq_q8_1_cuda( + const float * x, void * vy, const int64_t kx0, const int64_t kx1, const int64_t channels, const int64_t kx0_padded, + const ggml_type type_x, cudaStream_t stream); From 3e2ee443159724e2d3a0741f6b167e599ec088aa Mon Sep 17 00:00:00 2001 From: mgroeber9110 <45620825+mgroeber9110@users.noreply.github.com> Date: Sun, 9 Jun 2024 12:50:35 +0200 Subject: [PATCH 038/131] server: do not remove whitespace at the start of a completion chunk (#7830) --- examples/server/public/index-new.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/server/public/index-new.html b/examples/server/public/index-new.html index d571c27791c72..19c9f643d3027 100644 --- a/examples/server/public/index-new.html +++ b/examples/server/public/index-new.html @@ -416,7 +416,7 @@ message = html`<${Probabilities} data=${data} />` } else { const text = isArrayMessage ? - data.map(msg => msg.content).join('').replace(/^\s+/, '') : + data.map(msg => msg.content).join('') : data; message = isCompletionMode ? text : From 57bf62ce7cb75cca589943e2050d29bff4026e76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=A1s=20P=C3=A9rez?= Date: Sun, 9 Jun 2024 11:24:29 -0400 Subject: [PATCH 039/131] docs: Added initial PR template with directions for doc only changes and squash merges [no ci] (#7700) This commit adds pull_request_template.md and CONTRIBUTING.md . It focuses on explaining to contributors the need to rate PR complexity level, when to add [no ci] and how to format PR title and descriptions. Co-authored-by: Brian Co-authored-by: compilade --- .../PULL_REQUEST_TEMPLATE/pull_request_template.md | 5 +++++ CONTRIBUTING.md | 14 ++++++++++++++ 2 files changed, 19 insertions(+) create mode 100644 .github/PULL_REQUEST_TEMPLATE/pull_request_template.md create mode 100644 CONTRIBUTING.md diff --git a/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md b/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md new file mode 100644 index 0000000000000..0852fded5867e --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md @@ -0,0 +1,5 @@ +- Self Reported Review Complexity: + - [ ] Review Complexity : Low + - [ ] Review Complexity : Medium + - [ ] Review Complexity : High +- [ ] I have read the [contributing guidelines](CONTRIBUTING.md) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000000000..991d85e493be4 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,14 @@ +# Contributing Guidelines + +## Checklist + +* Make sure your PR follows the [coding guidelines](https://github.com/ggerganov/llama.cpp/blob/master/README.md#coding-guidelines) +* Test your changes using the commands in the [`tests`](tests) folder. For instance, running the `./tests/test-backend-ops` command tests different backend implementations of the GGML library +* Execute [the full CI locally on your machine](ci/README.md) before publishing + +## PR formatting + +* Please rate the complexity of your PR (i.e. `Review Complexity : Low`, `Review Complexity : Medium`, `Review Complexity : High`). This makes it easier for maintainers to triage the PRs. + - The PR template has a series of review complexity checkboxes `[ ]` that you can mark as `[X]` for your conveience. Refer to [About task lists](https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/about-task-lists) for more information. +* If the pull request only contains documentation changes (e.g., updating READMEs, adding new wiki pages), please add `[no ci]` to the commit title. This will skip unnecessary CI checks and help reduce build times. +* When squashing multiple commits on merge, use the following format for your commit title: ` : (#)`. For example: `utils : Fix typo in utils.py (#1234)` From e95beeb1fc4621826ddd616776dbdf717366bf5c Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Sun, 9 Jun 2024 20:19:35 +0300 Subject: [PATCH 040/131] imatrix : handle partial entries (#7833) --- examples/imatrix/imatrix.cpp | 58 +++++++++++++++++++++++++++++++----- 1 file changed, 51 insertions(+), 7 deletions(-) diff --git a/examples/imatrix/imatrix.cpp b/examples/imatrix/imatrix.cpp index e18f495630616..574f5ed9c2e65 100644 --- a/examples/imatrix/imatrix.cpp +++ b/examples/imatrix/imatrix.cpp @@ -218,20 +218,64 @@ void IMatrixCollector::save_imatrix(int ncall) const { fname += std::to_string(ncall); } + // avoid writing imatrix entries that do not have full data + // this can happen with MoE models where some of the experts end up not being exercised by the provided training data + + int n_entries = 0; + std::vector to_store; + + bool is_first = true; // for printing + for (const auto & kv : m_stats) { + const int n_all = kv.second.counts.size(); + + if (n_all == 0) { + continue; + } + + int n_zeros = 0; + for (const int c : kv.second.counts) { + if (c == 0) { + n_zeros++; + } + } + + if (n_zeros != 0 && is_first) { + fprintf(stderr, "\n"); + is_first = false; + } + + if (n_zeros == n_all) { + fprintf(stderr, "%s: entry '%40s' has no data - skipping\n", __func__, kv.first.c_str()); + continue; + } + + if (n_zeros > 0) { + fprintf(stderr, "%s: entry '%40s' has partial data (%.2f%%) - skipping\n", __func__, kv.first.c_str(), 100.0f * (n_all - n_zeros) / n_all); + continue; + } + + n_entries++; + to_store.push_back(kv.first); + } + + if (to_store.size() < m_stats.size()) { + fprintf(stderr, "%s: warning: storing only %zu out of %zu entries\n", __func__, to_store.size(), m_stats.size()); + } + std::ofstream out(fname, std::ios::binary); - int n_entries = m_stats.size(); out.write((const char *) &n_entries, sizeof(n_entries)); - for (const auto & p : m_stats) { - int len = p.first.size(); + for (const auto & name : to_store) { + const auto & stat = m_stats.at(name); + int len = name.size(); out.write((const char *) &len, sizeof(len)); - out.write(p.first.c_str(), len); - out.write((const char *) &p.second.ncall, sizeof(p.second.ncall)); - int nval = p.second.values.size(); + out.write(name.c_str(), len); + out.write((const char *) &stat.ncall, sizeof(stat.ncall)); + int nval = stat.values.size(); out.write((const char *) &nval, sizeof(nval)); if (nval > 0) { std::vector tmp(nval); for (int i = 0; i < nval; i++) { - tmp[i] = (p.second.values[i] / static_cast(p.second.counts[i])) * static_cast(p.second.ncall); + tmp[i] = (stat.values[i] / static_cast(stat.counts[i])) * static_cast(stat.ncall); } out.write((const char*)tmp.data(), nval*sizeof(float)); } From 10ceba354a3b152ff425e9fa97f9caaef99a46b1 Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Mon, 10 Jun 2024 02:04:50 +0300 Subject: [PATCH 041/131] flake.lock: Update (#7838) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Flake lock file updates: • Updated input 'nixpkgs': 'github:NixOS/nixpkgs/ad57eef4ef0659193044870c731987a6df5cf56b?narHash=sha256-SzDKxseEcHR5KzPXLwsemyTR/kaM9whxeiJohbL04rs%3D' (2024-05-29) → 'github:NixOS/nixpkgs/051f920625ab5aabe37c920346e3e69d7d34400e?narHash=sha256-4q0s6m0GUcN7q%2BY2DqD27iLvbcd1G50T2lv08kKxkSI%3D' (2024-06-07) Co-authored-by: github-actions[bot] --- flake.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.lock b/flake.lock index 09047ab10ad1d..7272e65fa8fa5 100644 --- a/flake.lock +++ b/flake.lock @@ -20,11 +20,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1716948383, - "narHash": "sha256-SzDKxseEcHR5KzPXLwsemyTR/kaM9whxeiJohbL04rs=", + "lastModified": 1717786204, + "narHash": "sha256-4q0s6m0GUcN7q+Y2DqD27iLvbcd1G50T2lv08kKxkSI=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "ad57eef4ef0659193044870c731987a6df5cf56b", + "rev": "051f920625ab5aabe37c920346e3e69d7d34400e", "type": "github" }, "original": { From af4ae502ddaeb03cd5861273ca2e9a5ae4551db7 Mon Sep 17 00:00:00 2001 From: Ben Ashbaugh Date: Mon, 10 Jun 2024 02:21:31 -0700 Subject: [PATCH 042/131] use the correct SYCL context for host USM allocations (#7777) Signed-off-by: Ben Ashbaugh --- ggml-sycl.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/ggml-sycl.cpp b/ggml-sycl.cpp index 0a645b2e1db80..42fc0df203537 100644 --- a/ggml-sycl.cpp +++ b/ggml-sycl.cpp @@ -13089,10 +13089,12 @@ void *ggml_sycl_host_malloc(size_t size) try { return nullptr; } + ggml_sycl_set_device(g_main_device); + dpct::queue_ptr main_stream = g_syclStreams[g_main_device][0]; + void * ptr = nullptr; - //allow to use dpct::get_in_order_queue() for host malloc dpct::err0 err = CHECK_TRY_ERROR( - ptr = (void *)sycl::malloc_host(size, dpct::get_in_order_queue())); + ptr = (void *)sycl::malloc_host(size, *main_stream)); if (err != 0) { // clear the error @@ -13113,8 +13115,9 @@ catch (sycl::exception const &exc) { } void ggml_sycl_host_free(void *ptr) try { - //allow to use dpct::get_in_order_queue() for host malloc - SYCL_CHECK(CHECK_TRY_ERROR(sycl::free(ptr, dpct::get_in_order_queue()))); + ggml_sycl_set_device(g_main_device); + dpct::queue_ptr main_stream = g_syclStreams[g_main_device][0]; + SYCL_CHECK(CHECK_TRY_ERROR(sycl::free(ptr, *main_stream))); } catch (sycl::exception const &exc) { std::cerr << exc.what() << "Exception caught at file:" << __FILE__ From 1f0dabda8d5c131f9d4632aa41de74317cdd61fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20G=C3=A4=C3=9Fler?= Date: Mon, 10 Jun 2024 11:45:13 +0200 Subject: [PATCH 043/131] CUDA: use tensor cores for MMQ (#7676) * CUDA: int8 tensor cores for MMQ (legacy quants) * fix out-of-bounds writes * __builtin_assume -> GGML_CUDA_ASSUME * fix writeback returning too early --- ggml-cuda/common.cuh | 21 +- ggml-cuda/fattn-common.cuh | 20 +- ggml-cuda/fattn-tile-f16.cu | 2 +- ggml-cuda/fattn-vec-f16.cuh | 2 +- ggml-cuda/fattn-wmma-f16.cuh | 6 +- ggml-cuda/mma.cuh | 95 ++++++++ ggml-cuda/mmq.cuh | 459 ++++++++++++++++++++++++++++++++--- 7 files changed, 550 insertions(+), 55 deletions(-) create mode 100644 ggml-cuda/mma.cuh diff --git a/ggml-cuda/common.cuh b/ggml-cuda/common.cuh index 90a0a81ead789..7f4764d60e854 100644 --- a/ggml-cuda/common.cuh +++ b/ggml-cuda/common.cuh @@ -139,6 +139,7 @@ #define CC_PASCAL 600 #define MIN_CC_DP4A 610 // minimum compute capability for __dp4a, an intrinsic for byte-wise dot products #define CC_VOLTA 700 +#define CC_TURING 750 #define CC_AMPERE 800 #define CC_OFFSET_AMD 1000000 #define CC_RDNA1 (CC_OFFSET_AMD + 1010) @@ -326,9 +327,17 @@ static __device__ __forceinline__ half2 __shfl_xor(half2 var, int laneMask, int #endif // defined(__HIP_PLATFORM_AMD__) && HIP_VERSION < 50600000 #endif // defined(GGML_USE_HIPBLAS) -#define FP16_AVAILABLE (defined(GGML_USE_HIPBLAS) && defined(__HIP_PLATFORM_AMD__)) || __CUDA_ARCH__ >= CC_PASCAL +#if (defined(GGML_USE_HIPBLAS) && defined(__HIP_PLATFORM_AMD__)) || __CUDA_ARCH__ >= CC_PASCAL +#define FP16_AVAILABLE +#endif // (defined(GGML_USE_HIPBLAS) && defined(__HIP_PLATFORM_AMD__)) || __CUDA_ARCH__ >= CC_PASCAL -#define FP16_MMA_AVAILABLE !(defined(GGML_USE_HIPBLAS) && defined(__HIP_PLATFORM_AMD__)) && __CUDA_ARCH__ >= CC_VOLTA +#if !(defined(GGML_USE_HIPBLAS) && defined(__HIP_PLATFORM_AMD__)) && __CUDA_ARCH__ >= CC_VOLTA +#define FP16_MMA_AVAILABLE +#endif // !(defined(GGML_USE_HIPBLAS) && defined(__HIP_PLATFORM_AMD__)) && __CUDA_ARCH__ >= CC_VOLTA + +#if !(defined(GGML_USE_HIPBLAS) && defined(__HIP_PLATFORM_AMD__)) && __CUDA_ARCH__ >= CC_TURING +#define INT8_MMA_AVAILABLE +#endif // !(defined(GGML_USE_HIPBLAS) && defined(__HIP_PLATFORM_AMD__)) && __CUDA_ARCH__ >= CC_TURING static bool fast_fp16_available(const int cc) { return cc >= CC_PASCAL && cc != 610; @@ -338,6 +347,10 @@ static bool fp16_mma_available(const int cc) { return cc < CC_OFFSET_AMD && cc >= CC_VOLTA; } +static bool int8_mma_available(const int cc) { + return cc < CC_OFFSET_AMD && cc >= CC_TURING; +} + [[noreturn]] static __device__ void no_device_code( const char * file_name, const int line, const char * function_name, const int arch, const char * arch_list) { @@ -379,7 +392,7 @@ static __device__ __forceinline__ float2 warp_reduce_sum(float2 a) { } static __device__ __forceinline__ half2 warp_reduce_sum(half2 a) { -#if FP16_AVAILABLE +#ifdef FP16_AVAILABLE #if defined(GGML_USE_HIPBLAS) && defined(__HIP_PLATFORM_AMD__) #pragma unroll @@ -412,7 +425,7 @@ static __device__ __forceinline__ float warp_reduce_max(float x) { } static __device__ __forceinline__ half ggml_cuda_hmax(const half a, const half b) { -#if FP16_AVAILABLE +#ifdef FP16_AVAILABLE #if !(defined(GGML_USE_HIPBLAS) && defined(__HIP_PLATFORM_AMD__)) && CUDART_VERSION < CUDART_HMAX return __float2half(fmaxf(__half2float(a), __half2float(b))); diff --git a/ggml-cuda/fattn-common.cuh b/ggml-cuda/fattn-common.cuh index c00f8606a5c85..37b3b99323b20 100644 --- a/ggml-cuda/fattn-common.cuh +++ b/ggml-cuda/fattn-common.cuh @@ -74,7 +74,7 @@ static __device__ __forceinline__ T vec_dot_fattn_vec_KQ_q4_0( const int sumi = __dp4a(v, u, 0); -#if FP16_AVAILABLE +#ifdef FP16_AVAILABLE if (std::is_same::value) { const half2 * Q_ds = (const half2 *) Q_ds_v; @@ -122,7 +122,7 @@ static __device__ __forceinline__ T vec_dot_fattn_vec_KQ_q4_1( const int sumi = __dp4a(v, u, 0); -#if FP16_AVAILABLE +#ifdef FP16_AVAILABLE if (std::is_same::value) { const half2 * Q_ds = (const half2 *) Q_ds_v; @@ -181,7 +181,7 @@ static __device__ __forceinline__ T vec_dot_fattn_vec_KQ_q5_0( const int sumi = __dp4a(v, u, 0); -#if FP16_AVAILABLE +#ifdef FP16_AVAILABLE if (std::is_same::value) { const half2 * Q_ds = (const half2 *) Q_ds_v; @@ -236,7 +236,7 @@ static __device__ __forceinline__ T vec_dot_fattn_vec_KQ_q5_1( const int sumi = __dp4a(v, u, 0); -#if FP16_AVAILABLE +#ifdef FP16_AVAILABLE if (std::is_same::value) { const half2 * Q_ds = (const half2 *) Q_ds_v; @@ -314,7 +314,7 @@ static __device__ __forceinline__ T vec_dot_fattn_vec_KQ_f16( GGML_UNUSED(Q_q8); GGML_UNUSED(Q_ds_v); -#if FP16_AVAILABLE +#ifdef FP16_AVAILABLE if (std::is_same::value) { const half2 * Q_h2 = (const half2 *) Q_v; @@ -407,7 +407,7 @@ static __device__ __forceinline__ T dequantize_1_q4_0(const void * __restrict__ const int q0 = x[ib].qs[iqs]; const int q = ((q0 >> (4*shift)) & 0x0F) - 8; -#if FP16_AVAILABLE +#ifdef FP16_AVAILABLE if (std::is_same::value) { return ((half) d)*((half) q); } @@ -428,7 +428,7 @@ static __device__ __forceinline__ T dequantize_1_q4_1(const void * __restrict__ const int q0 = x[ib].qs[iqs]; const int q = ((q0 >> (4*shift)) & 0x0F); -#if FP16_AVAILABLE +#ifdef FP16_AVAILABLE if (std::is_same::value) { return __low2half(dm)*((half) q) + __high2half(dm); } @@ -453,7 +453,7 @@ static __device__ __forceinline__ T dequantize_1_q5_0(const void * __restrict__ const int qh = ((qh0 >> idq) << 4) & 0x10; const int q = (ql | qh) - 16; -#if FP16_AVAILABLE +#ifdef FP16_AVAILABLE if (std::is_same::value) { return ((half) d)*((half) q); } @@ -478,7 +478,7 @@ static __device__ __forceinline__ T dequantize_1_q5_1(const void * __restrict__ const int qh = ((qh0 >> idq) << 4) & 0x10; const int q = (ql | qh); -#if FP16_AVAILABLE +#ifdef FP16_AVAILABLE if (std::is_same::value) { return __low2half(dm)*((half) q) + __high2half(dm); } @@ -497,7 +497,7 @@ static __device__ __forceinline__ T dequantize_1_q8_0(const void * __restrict__ const T d = x[ib].d; const int q = x[ib].qs[iqs]; -#if FP16_AVAILABLE +#ifdef FP16_AVAILABLE if (std::is_same::value) { return ((half) d)*((half) q); } diff --git a/ggml-cuda/fattn-tile-f16.cu b/ggml-cuda/fattn-tile-f16.cu index cb11d7212ca28..c6c35134d4db5 100644 --- a/ggml-cuda/fattn-tile-f16.cu +++ b/ggml-cuda/fattn-tile-f16.cu @@ -43,7 +43,7 @@ static __global__ void flash_attn_tile_ext_f16( const int ne1, const int ne2, const int ne3) { -#if FP16_AVAILABLE +#ifdef FP16_AVAILABLE //In this kernel Q, K, V are matrices while i, j, k are matrix indices. const int ic0 = (blockIdx.x / parallel_blocks) * ncols; // Index of the Q/QKV column to work on. diff --git a/ggml-cuda/fattn-vec-f16.cuh b/ggml-cuda/fattn-vec-f16.cuh index 9e1aa2c6b6885..02a4ad072bbd6 100644 --- a/ggml-cuda/fattn-vec-f16.cuh +++ b/ggml-cuda/fattn-vec-f16.cuh @@ -40,7 +40,7 @@ static __global__ void flash_attn_vec_ext_f16( const int ne1, const int ne2, const int ne3) { -#if FP16_AVAILABLE +#ifdef FP16_AVAILABLE //In this kernel Q, K, V are matrices while i, j, k are matrix indices. constexpr vec_dot_KQ_f16_t vec_dot_KQ = get_vec_dot_KQ_f16(type_K); diff --git a/ggml-cuda/fattn-wmma-f16.cuh b/ggml-cuda/fattn-wmma-f16.cuh index 59cd30d7837c9..ae23222426097 100644 --- a/ggml-cuda/fattn-wmma-f16.cuh +++ b/ggml-cuda/fattn-wmma-f16.cuh @@ -1,9 +1,9 @@ #include "common.cuh" #include "fattn-common.cuh" -#if FP16_MMA_AVAILABLE +#ifdef FP16_MMA_AVAILABLE #include -#endif +#endif // FP16_MMA_AVAILABLE // D == head size, VKQ_stride == num VKQ rows calculated in parallel: template @@ -45,7 +45,7 @@ static __global__ void flash_attn_ext_f16( const int ne1, const int ne2, const int ne3) { -#if FP16_MMA_AVAILABLE +#ifdef FP16_MMA_AVAILABLE //In this kernel Q, K, V are matrices while i, j, k are matrix indices. const int ic0 = ncols*(blockIdx.x / parallel_blocks); // Index of the first Q/QKV column to work on. diff --git a/ggml-cuda/mma.cuh b/ggml-cuda/mma.cuh new file mode 100644 index 0000000000000..71e8e342918aa --- /dev/null +++ b/ggml-cuda/mma.cuh @@ -0,0 +1,95 @@ +#include "common.cuh" + +struct mma_int_A_I16K8 { + static constexpr int I = 16; + static constexpr int K = 8; + static constexpr int ne = 4; + + int x[ne] = {0}; + + static __device__ __forceinline__ int get_i(const int l) { + const int ret = (l%2) * (I/2) + threadIdx.x / (K/2); + GGML_CUDA_ASSUME(ret >= 0); + GGML_CUDA_ASSUME(ret < I); + return ret; + } + + static __device__ __forceinline__ int get_k(const int l) { + const int ret = (l/2) * (K/2) + threadIdx.x % (K/2); + GGML_CUDA_ASSUME(ret >= 0); + GGML_CUDA_ASSUME(ret < K); + return ret; + } +}; + +struct mma_int_B_J8K8 { + static constexpr int J = 8; + static constexpr int K = 8; + static constexpr int ne = 2; + + int x[ne] = {0}; + + static __device__ __forceinline__ int get_j(const int /* l */) { + const int ret = threadIdx.x / (K/2); + GGML_CUDA_ASSUME(ret >= 0); + GGML_CUDA_ASSUME(ret < J); + return ret; + } + + static __device__ __forceinline__ int get_k(const int l) { + const int ret = l * (K/2) + threadIdx.x % (K/2); + GGML_CUDA_ASSUME(ret >= 0); + GGML_CUDA_ASSUME(ret < K); + return ret; + } +}; + +struct mma_int_C_I16J8 { + static constexpr int I = 16; + static constexpr int J = 8; + static constexpr int ne = 4; + + int x[ne] = {0}; + + static __device__ __forceinline__ int get_i(const int l) { + const int ret = (l/2) * (I/2) + threadIdx.x / (J/2); + GGML_CUDA_ASSUME(ret >= 0); + GGML_CUDA_ASSUME(ret < I); + return ret; + } + + static __device__ __forceinline__ int get_j(const int l) { + const int ret = 2 * (threadIdx.x % (J/2)) + l%2; + GGML_CUDA_ASSUME(ret >= 0); + GGML_CUDA_ASSUME(ret < J); + return ret; + } + + __device__ __forceinline__ void mma_K8(const mma_int_A_I16K8 & mma_A, const mma_int_B_J8K8 & mma_B) { +#ifdef INT8_MMA_AVAILABLE +#if __CUDA_ARCH__ >= CC_AMPERE + asm("mma.sync.aligned.m16n8k32.row.col.s32.s8.s8.s32 {%0, %1, %2, %3}, {%4, %5, %6, %7}, {%8, %9}, {%0, %1, %2, %3};" + : "+r"(x[0]), "+r"(x[1]), "+r"(x[2]), "+r"(x[3]) + : "r"(mma_A.x[0]), "r"(mma_A.x[1]), "r"(mma_A.x[2]), "r"(mma_A.x[3]), "r"(mma_B.x[0]), "r"(mma_B.x[1])); +#else + // On Turing m16n8k32 mma is not available, use 4x m8n8k16 mma instead: + asm("mma.sync.aligned.m8n8k16.row.col.s32.s8.s8.s32 {%0, %1}, {%2}, {%3}, {%0, %1};" + : "+r"(x[0]), "+r"(x[1]) + : "r"(mma_A.x[0]), "r"(mma_B.x[0])); + asm("mma.sync.aligned.m8n8k16.row.col.s32.s8.s8.s32 {%0, %1}, {%2}, {%3}, {%0, %1};" + : "+r"(x[2]), "+r"(x[3]) + : "r"(mma_A.x[1]), "r"(mma_B.x[0])); + asm("mma.sync.aligned.m8n8k16.row.col.s32.s8.s8.s32 {%0, %1}, {%2}, {%3}, {%0, %1};" + : "+r"(x[0]), "+r"(x[1]) + : "r"(mma_A.x[2]), "r"(mma_B.x[1])); + asm("mma.sync.aligned.m8n8k16.row.col.s32.s8.s8.s32 {%0, %1}, {%2}, {%3}, {%0, %1};" + : "+r"(x[2]), "+r"(x[3]) + : "r"(mma_A.x[3]), "r"(mma_B.x[1])); +#endif // __CUDA_ARCH__ >= CC_AMPERE +#else + GGML_UNUSED(mma_A); + GGML_UNUSED(mma_B); + NO_DEVICE_CODE; +#endif // INT8_MMA_AVAILABLE + } +}; diff --git a/ggml-cuda/mmq.cuh b/ggml-cuda/mmq.cuh index 3ccae8a0c36fa..62111f376ec81 100644 --- a/ggml-cuda/mmq.cuh +++ b/ggml-cuda/mmq.cuh @@ -2,6 +2,7 @@ #include "common.cuh" #include "vecdotq.cuh" +#include "mma.cuh" #include #include @@ -14,6 +15,7 @@ typedef void (*load_tiles_mmq_t)( typedef void (*vec_dot_mmq_t)( const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc, const int * __restrict__ y, float * __restrict__ sum, const int & k0); +typedef void (*mmq_write_back_t)(const float * __restrict__ sum, float * __restrict__ dst, const int & ne0, const int & ne1); struct block_q8_1_mmq { half2 ds[4]; @@ -141,15 +143,15 @@ template static __device__ __forceinlin } template -static __device__ __forceinline__ void vec_dot_q4_0_q8_1_mul_mat( +static __device__ __forceinline__ void vec_dot_q4_0_q8_1_dp4a( const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc, const int * __restrict__ y, float * __restrict__ sum, const int & k0) { GGML_UNUSED(x_qh); GGML_UNUSED(x_sc); - const float * x_dmf = (const float *) x_dm; - const int * y_qs = (const int *) y + 4; - const half2 * y_ds = (const half2 *) y; + const float * x_df = (const float *) x_dm; + const int * y_qs = (const int *) y + 4; + const half2 * y_ds = (const half2 *) y; #pragma unroll for (int j0 = 0; j0 < mmq_x; j0 += nwarps) { @@ -170,12 +172,76 @@ static __device__ __forceinline__ void vec_dot_q4_0_q8_1_mul_mat( } sum[j0/nwarps*mmq_y/WARP_SIZE + i0/WARP_SIZE] += vec_dot_q4_0_q8_1_impl - (&x_ql[i*(WARP_SIZE + 1) + k0], u, x_dmf[i*(WARP_SIZE/QI4_0) + i/QI4_0 + k0/QI4_0], + (&x_ql[i*(WARP_SIZE + 1) + k0], u, x_df[i*(WARP_SIZE/QI4_0) + i/QI4_0 + k0/QI4_0], y_ds[j*MMQ_TILE_Y_K + (2*k0/QI8_1) % (WARP_SIZE/QI8_1)]); } } } +template +static __device__ __forceinline__ void vec_dot_q4_0_q8_1_mma( + const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc, + const int * __restrict__ y, float * __restrict__ sum, const int & k0) { + + GGML_UNUSED(x_qh); GGML_UNUSED(x_sc); + + typedef mma_int_A_I16K8 mma_A; + typedef mma_int_B_J8K8 mma_B; + typedef mma_int_C_I16J8 mma_C; + + const float * x_df = (const float *) x_dm; + const int * y_qs = (const int *) y + 4; + const half2 * y_ds = (const half2 *) y; + + mma_A A; + float dA[mma_C::ne/2]; + + const int i0 = threadIdx.y*mma_A::I; + static_assert(nwarps*mma_A::I == mmq_y, "nwarps*mma_A::I != mmq_y"); + +#pragma unroll + for (int l = 0; l < mma_A::ne; ++l) { + const int i = i0 + mma_A::get_i(l); + const int k = k0 + mma_A::get_k(l) % QI4_0; + const int shift = 4*(mma_A::get_k(l) / QI4_0); + + A.x[l] = __vsubss4((x_ql[i*(WARP_SIZE + 1) + k] >> shift) & 0x0F0F0F0F, 0x08080808); + } +#pragma unroll + for (int l = 0; l < mma_C::ne/2; ++l) { + const int i = i0 + mma_C::get_i(2*l); + + dA[l] = x_df[i*(WARP_SIZE/QI4_0) + i/QI4_0 + k0/QI4_0]; + } + + for (int j0 = 0; j0 < mmq_x; j0 += mma_int_B_J8K8::J) { + mma_C C; + mma_B B; + half2 dsB[mma_C::ne/2]; + +#pragma unroll + for (int l = 0; l < mma_B::ne; ++l) { + const int j = j0 + mma_B::get_j(l); + const int k = (2*k0 + mma_B::get_k(l)) % WARP_SIZE; + + B.x[l] = y_qs[j*MMQ_TILE_Y_K + k]; + } +#pragma unroll + for (int l = 0; l < mma_C::ne/2; ++l) { + const int j = j0 + mma_C::get_j(l); + + dsB[l] = y_ds[j*MMQ_TILE_Y_K + (2*k0/QI8_1) % (WARP_SIZE/QI8_1)]; + } + + C.mma_K8(A, B); + +#pragma unroll + for (int l = 0; l < mma_C::ne; ++l) { + sum[(j0/B.J)*C.ne + l] += dA[l/2]*__low2float(dsB[l%2])*C.x[l]; + } + } +} + template static __device__ __forceinline__ void load_tiles_q4_1( const char * __restrict__ x, int * __restrict__ x_ql, half2 * __restrict__ x_dm, int * __restrict__ x_qh, int * __restrict__ x_sc, const int & kbx0, const int & i_max, const int & stride) { @@ -215,7 +281,7 @@ template static __device__ __forceinlin } template -static __device__ __forceinline__ void vec_dot_q4_1_q8_1_mul_mat( +static __device__ __forceinline__ void vec_dot_q4_1_q8_1_dp4a( const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc, const int * __restrict__ y, float * __restrict__ sum, const int & k0) { @@ -249,6 +315,70 @@ static __device__ __forceinline__ void vec_dot_q4_1_q8_1_mul_mat( } } +template +static __device__ __forceinline__ void vec_dot_q4_1_q8_1_mma( + const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc, + const int * __restrict__ y, float * __restrict__ sum, const int & k0) { + + GGML_UNUSED(x_qh); GGML_UNUSED(x_sc); + + typedef mma_int_A_I16K8 mma_A; + typedef mma_int_B_J8K8 mma_B; + typedef mma_int_C_I16J8 mma_C; + + const int * y_qs = (const int *) y + 4; + const half2 * y_ds = (const half2 *) y; + + mma_A A; + half2 dmA[mma_C::ne/2]; + + const int i0 = threadIdx.y*mma_A::I; + static_assert(nwarps*mma_A::I == mmq_y, "nwarps*mma_A::I != mmq_y"); + +#pragma unroll + for (int l = 0; l < mma_A::ne; ++l) { + const int i = i0 + mma_A::get_i(l); + const int k = k0 + mma_A::get_k(l) % QI4_0; + const int shift = 4*(mma_A::get_k(l) / QI4_0); + + A.x[l] = (x_ql[i*(WARP_SIZE + 1) + k] >> shift) & 0x0F0F0F0F; + } +#pragma unroll + for (int l = 0; l < mma_C::ne/2; ++l) { + const int i = i0 + mma_C::get_i(2*l); + + dmA[l] = x_dm[i*(WARP_SIZE/QI4_0) + i/QI4_0 + k0/QI4_0]; + } + + for (int j0 = 0; j0 < mmq_x; j0 += mma_int_B_J8K8::J) { + mma_C C; + mma_B B; + half2 dsB[mma_C::ne/2]; + +#pragma unroll + for (int l = 0; l < mma_B::ne; ++l) { + const int j = j0 + mma_B::get_j(l); + const int k = (2*k0 + mma_B::get_k(l)) % WARP_SIZE; + + B.x[l] = y_qs[j*MMQ_TILE_Y_K + k]; + } +#pragma unroll + for (int l = 0; l < mma_C::ne/2; ++l) { + const int j = j0 + mma_C::get_j(l); + + dsB[l] = y_ds[j*MMQ_TILE_Y_K + (2*k0/QI8_1) % (WARP_SIZE/QI8_1)]; + } + + C.mma_K8(A, B); + +#pragma unroll + for (int l = 0; l < mma_C::ne; ++l) { + const half2 dmA_dsB = dmA[l/2]*dsB[l%2]; + sum[(j0/B.J)*C.ne + l] += __low2float(dmA_dsB)*C.x[l] + __high2float(dmA_dsB); + } + } +} + template static __device__ __forceinline__ void load_tiles_q5_0( const char * __restrict__ x, int * __restrict__ x_ql, half2 * __restrict__ x_dm, int * __restrict__ x_qh, int * __restrict__ x_sc, const int & kbx0, const int & i_max, const int & stride) { @@ -308,7 +438,7 @@ template static __device__ __forceinlin } template -static __device__ __forceinline__ void vec_dot_q5_0_q8_1_mul_mat( +static __device__ __forceinline__ void vec_dot_q5_0_q8_1_dp4a( const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc, const int * __restrict__ y, float * __restrict__ sum, const int & k0) { @@ -343,6 +473,68 @@ static __device__ __forceinline__ void vec_dot_q5_0_q8_1_mul_mat( } } +template +static __device__ __forceinline__ void vec_dot_q5_0_q8_1_mma( + const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc, + const int * __restrict__ y, float * __restrict__ sum, const int & k0) { + + GGML_UNUSED(x_qh); GGML_UNUSED(x_sc); + + typedef mma_int_A_I16K8 mma_A; + typedef mma_int_B_J8K8 mma_B; + typedef mma_int_C_I16J8 mma_C; + + const float * x_df = (const float *) x_dm; + const int * y_qs = (const int *) y + 4; + const float * y_df = (const float *) y; + + mma_A A; + float dA[mma_C::ne/2]; + + const int i0 = threadIdx.y*mma_A::I; + static_assert(nwarps*mma_A::I == mmq_y, "nwarps*mma_A::I != mmq_y"); + +#pragma unroll + for (int l = 0; l < mma_A::ne; ++l) { + const int i = i0 + mma_A::get_i(l); + const int k = 2*(k0 + mma_A::get_k(l) % QI5_0) + mma_A::get_k(l) / QI5_0; + + A.x[l] = x_ql[i*(2*WARP_SIZE + 1) + k]; + } +#pragma unroll + for (int l = 0; l < mma_C::ne/2; ++l) { + const int i = i0 + mma_C::get_i(2*l); + + dA[l] = x_df[i*(WARP_SIZE/QI5_0) + i/QI5_0 + k0/QI5_0]; + } + + for (int j0 = 0; j0 < mmq_x; j0 += mma_int_B_J8K8::J) { + mma_C C; + mma_B B; + float dB[mma_C::ne/2]; + +#pragma unroll + for (int l = 0; l < mma_B::ne; ++l) { + const int j = j0 + mma_B::get_j(l); + const int k = (2*k0 + mma_B::get_k(l)) % WARP_SIZE; + + B.x[l] = y_qs[j*MMQ_TILE_Y_K + k]; + } +#pragma unroll + for (int l = 0; l < mma_C::ne/2; ++l) { + const int j = j0 + mma_C::get_j(l); + + dB[l] = y_df[j*MMQ_TILE_Y_K + (2*k0/QI8_1) % (WARP_SIZE/QI8_1)]; + } + + C.mma_K8(A, B); + +#pragma unroll + for (int l = 0; l < mma_C::ne; ++l) { + sum[(j0/B.J)*C.ne + l] += dA[l/2]*dB[l%2]*C.x[l]; + } + } +} template static __device__ __forceinline__ void load_tiles_q5_1( const char * __restrict__ x, int * __restrict__ x_ql, half2 * __restrict__ x_dm, int * __restrict__ x_qh, @@ -400,7 +592,7 @@ template static __device__ __forceinlin } template -static __device__ __forceinline__ void vec_dot_q5_1_q8_1_mul_mat( +static __device__ __forceinline__ void vec_dot_q5_1_q8_1_dp4a( const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc, const int * __restrict__ y, float * __restrict__ sum, const int & k0) { @@ -434,6 +626,69 @@ static __device__ __forceinline__ void vec_dot_q5_1_q8_1_mul_mat( } } +template +static __device__ __forceinline__ void vec_dot_q5_1_q8_1_mma( + const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc, + const int * __restrict__ y, float * __restrict__ sum, const int & k0) { + + GGML_UNUSED(x_qh); GGML_UNUSED(x_sc); + + typedef mma_int_A_I16K8 mma_A; + typedef mma_int_B_J8K8 mma_B; + typedef mma_int_C_I16J8 mma_C; + + const int * y_qs = (const int *) y + 4; + const half2 * y_ds = (const half2 *) y; + + mma_A A; + half2 dmA[mma_C::ne/2]; + + const int i0 = threadIdx.y*mma_A::I; + static_assert(nwarps*mma_A::I == mmq_y, "nwarps*mma_A::I != mmq_y"); + +#pragma unroll + for (int l = 0; l < mma_A::ne; ++l) { + const int i = i0 + mma_A::get_i(l); + const int k = 2*(k0 + mma_A::get_k(l) % QI5_1) + mma_A::get_k(l) / QI5_1; + + A.x[l] = x_ql[i*(2*WARP_SIZE + 1) + k]; + } +#pragma unroll + for (int l = 0; l < mma_C::ne/2; ++l) { + const int i = i0 + mma_C::get_i(2*l); + + dmA[l] = x_dm[i*(WARP_SIZE/QI5_1) + i/QI5_1 + k0/QI5_1]; + } + + for (int j0 = 0; j0 < mmq_x; j0 += mma_int_B_J8K8::J) { + mma_C C; + mma_B B; + half2 dsB[mma_C::ne/2]; + +#pragma unroll + for (int l = 0; l < mma_B::ne; ++l) { + const int j = j0 + mma_B::get_j(l); + const int k = (2*k0 + mma_B::get_k(l)) % WARP_SIZE; + + B.x[l] = y_qs[j*MMQ_TILE_Y_K + k]; + } +#pragma unroll + for (int l = 0; l < mma_C::ne/2; ++l) { + const int j = j0 + mma_C::get_j(l); + + dsB[l] = y_ds[j*MMQ_TILE_Y_K + (2*k0/QI8_1) % (WARP_SIZE/QI8_1)]; + } + + C.mma_K8(A, B); + +#pragma unroll + for (int l = 0; l < mma_C::ne; ++l) { + const half2 dmA_dsB = dmA[l/2]*dsB[l%2]; + sum[(j0/B.J)*C.ne + l] += __low2float(dmA_dsB)*C.x[l] + __high2float(dmA_dsB); + } + } +} + template static __device__ __forceinline__ void load_tiles_q8_0( const char * __restrict__ x, int * __restrict__ x_ql, half2 * __restrict__ x_dm, int * __restrict__ x_qh, int * __restrict__ x_sc, const int & kbx0, const int & i_max, const int & stride) { @@ -475,7 +730,7 @@ template static __device__ __forceinlin } template -static __device__ __forceinline__ void vec_dot_q8_0_q8_1_mul_mat( +static __device__ __forceinline__ void vec_dot_q8_0_q8_1_dp4a( const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc, const int * __restrict__ y, float * __restrict__ sum, const int & k0) { @@ -500,6 +755,69 @@ static __device__ __forceinline__ void vec_dot_q8_0_q8_1_mul_mat( } } +template +static __device__ __forceinline__ void vec_dot_q8_0_q8_1_mma( + const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc, + const int * __restrict__ y, float * __restrict__ sum, const int & k0) { + + GGML_UNUSED(x_qh); GGML_UNUSED(x_sc); + + typedef mma_int_A_I16K8 mma_A; + typedef mma_int_B_J8K8 mma_B; + typedef mma_int_C_I16J8 mma_C; + + const float * x_df = (const float *) x_dm; + const int * y_qs = (const int *) y + 4; + const float * y_df = (const float *) y; + + mma_A A; + float dA[mma_C::ne/2]; + + const int i0 = threadIdx.y*mma_A::I; + static_assert(nwarps*mma_A::I == mmq_y, "nwarps*mma_A::I != mmq_y"); + +#pragma unroll + for (int l = 0; l < mma_A::ne; ++l) { + const int i = i0 + mma_A::get_i(l); + const int k = k0 + mma_A::get_k(l); + + A.x[l] = x_ql[i*(WARP_SIZE + 1) + k]; + } +#pragma unroll + for (int l = 0; l < mma_C::ne/2; ++l) { + const int i = i0 + mma_C::get_i(2*l); + + dA[l] = x_df[i*(WARP_SIZE/QI8_0) + i/QI8_0 + k0/QI8_0]; + } + + for (int j0 = 0; j0 < mmq_x; j0 += mma_int_B_J8K8::J) { + mma_C C; + mma_B B; + float dB[mma_C::ne/2]; + +#pragma unroll + for (int l = 0; l < mma_B::ne; ++l) { + const int j = j0 + mma_B::get_j(l); + const int k = k0 + mma_B::get_k(l); + + B.x[l] = y_qs[j*MMQ_TILE_Y_K + k]; + } +#pragma unroll + for (int l = 0; l < mma_C::ne/2; ++l) { + const int j = j0 + mma_C::get_j(l); + + dB[l] = y_df[j*MMQ_TILE_Y_K + k0/QI8_1]; + } + + C.mma_K8(A, B); + +#pragma unroll + for (int l = 0; l < mma_C::ne; ++l) { + sum[(j0/B.J)*C.ne + l] += C.x[l]*dA[l/2]*dB[l%2]; + } + } +} + template static __device__ __forceinline__ void load_tiles_q2_K( const char * __restrict__ x, int * __restrict__ x_ql, half2 * __restrict__ x_dm, int * __restrict__ x_qh, int * __restrict__ x_sc, const int & kbx0, const int & i_max, const int & stride) { @@ -989,6 +1307,57 @@ static __device__ __forceinline__ void vec_dot_q6_K_q8_1_mul_mat( } } +template +static __device__ __forceinline__ void mmq_write_back_dp4a(const float * __restrict__ sum, float * __restrict__ dst, const int & ne0, const int & ne1) { +#pragma unroll + for (int j0 = 0; j0 < mmq_x; j0 += nwarps) { + const int j = blockIdx.y*mmq_x + j0 + threadIdx.y; + + if (j >= ne1) { + return; + } + +#pragma unroll + for (int i0 = 0; i0 < mmq_y; i0 += WARP_SIZE) { + const int i = blockIdx.x*mmq_y + i0 + threadIdx.x; + + if (need_check && i >= ne0) { + continue; + } + + dst[j*ne0 + i] = sum[(j0/nwarps) * (mmq_y/WARP_SIZE) + i0/WARP_SIZE]; + } + } +} + +template +static __device__ __forceinline__ void mmq_write_back_mma(const float * __restrict__ sum, float * __restrict__ dst, const int & ne0, const int & ne1) { + typedef mma_int_C_I16J8 mma_C; + + const int i0 = threadIdx.y*mma_C::I; + static_assert(nwarps*mma_C::I == mmq_y, "nwarps*mma_C::I != mmq_y"); + +#pragma unroll + for (int j0 = 0; j0 < mmq_x; j0 += mma_C::J) { +#pragma unroll + for (int l = 0; l < mma_C::ne; ++l) { + const int j = blockIdx.y*mmq_x + j0 + mma_C::get_j(l); + + if (j >= ne1) { + continue; + } + + const int i = blockIdx.x*mmq_y + i0 + mma_C::get_i(l); + + if (need_check && i >= ne0) { + continue; + } + + dst[j*ne0 + i] = sum[(j0/mma_C::J)*mma_C::ne + l]; + } + } +} + // ------------------------------------------------------------------------------------------------------------------------------------- template @@ -998,35 +1367,65 @@ template struct mmq_type_traits { static constexpr int vdr = VDR_Q4_0_Q8_1_MMQ; static constexpr load_tiles_mmq_t load_tiles = load_tiles_q4_0; - static constexpr vec_dot_mmq_t vec_dot = vec_dot_q4_0_q8_1_mul_mat; +#ifdef INT8_MMA_AVAILABLE + static constexpr vec_dot_mmq_t vec_dot = vec_dot_q4_0_q8_1_mma; + static constexpr mmq_write_back_t write_back = mmq_write_back_mma; +#else + static constexpr vec_dot_mmq_t vec_dot = vec_dot_q4_0_q8_1_dp4a; + static constexpr mmq_write_back_t write_back = mmq_write_back_dp4a; +#endif // INT8_MMA_AVAILABLE }; template struct mmq_type_traits { static constexpr int vdr = VDR_Q4_1_Q8_1_MMQ; static constexpr load_tiles_mmq_t load_tiles = load_tiles_q4_1; - static constexpr vec_dot_mmq_t vec_dot = vec_dot_q4_1_q8_1_mul_mat; +#ifdef INT8_MMA_AVAILABLE + static constexpr vec_dot_mmq_t vec_dot = vec_dot_q4_1_q8_1_mma; + static constexpr mmq_write_back_t write_back = mmq_write_back_mma; +#else + static constexpr vec_dot_mmq_t vec_dot = vec_dot_q4_1_q8_1_dp4a; + static constexpr mmq_write_back_t write_back = mmq_write_back_dp4a; +#endif // INT8_MMA_AVAILABLE }; template struct mmq_type_traits { static constexpr int vdr = VDR_Q5_0_Q8_1_MMQ; static constexpr load_tiles_mmq_t load_tiles = load_tiles_q5_0; - static constexpr vec_dot_mmq_t vec_dot = vec_dot_q5_0_q8_1_mul_mat; +#ifdef INT8_MMA_AVAILABLE + static constexpr vec_dot_mmq_t vec_dot = vec_dot_q5_0_q8_1_mma; + static constexpr mmq_write_back_t write_back = mmq_write_back_mma; +#else + static constexpr vec_dot_mmq_t vec_dot = vec_dot_q5_0_q8_1_dp4a; + static constexpr mmq_write_back_t write_back = mmq_write_back_dp4a; +#endif // INT8_MMA_AVAILABLE }; template struct mmq_type_traits { static constexpr int vdr = VDR_Q5_1_Q8_1_MMQ; static constexpr load_tiles_mmq_t load_tiles = load_tiles_q5_1; - static constexpr vec_dot_mmq_t vec_dot = vec_dot_q5_1_q8_1_mul_mat; +#ifdef INT8_MMA_AVAILABLE + static constexpr vec_dot_mmq_t vec_dot = vec_dot_q5_1_q8_1_mma; + static constexpr mmq_write_back_t write_back = mmq_write_back_mma; +#else + static constexpr vec_dot_mmq_t vec_dot = vec_dot_q5_1_q8_1_dp4a; + static constexpr mmq_write_back_t write_back = mmq_write_back_dp4a; +#endif // INT8_MMA_AVAILABLE }; template struct mmq_type_traits { static constexpr int vdr = VDR_Q8_0_Q8_1_MMQ; static constexpr load_tiles_mmq_t load_tiles = load_tiles_q8_0; - static constexpr vec_dot_mmq_t vec_dot = vec_dot_q8_0_q8_1_mul_mat; +#ifdef INT8_MMA_AVAILABLE + static constexpr vec_dot_mmq_t vec_dot = vec_dot_q8_0_q8_1_mma; + static constexpr mmq_write_back_t write_back = mmq_write_back_mma; +#else + static constexpr vec_dot_mmq_t vec_dot = vec_dot_q8_0_q8_1_dp4a; + static constexpr mmq_write_back_t write_back = mmq_write_back_dp4a; +#endif // INT8_MMA_AVAILABLE }; template @@ -1034,6 +1433,7 @@ struct mmq_type_traits { static constexpr int vdr = VDR_Q2_K_Q8_1_MMQ; static constexpr load_tiles_mmq_t load_tiles = load_tiles_q2_K; static constexpr vec_dot_mmq_t vec_dot = vec_dot_q2_K_q8_1_mul_mat; + static constexpr mmq_write_back_t write_back = mmq_write_back_dp4a; }; template @@ -1041,6 +1441,7 @@ struct mmq_type_traits { static constexpr int vdr = VDR_Q3_K_Q8_1_MMQ; static constexpr load_tiles_mmq_t load_tiles = load_tiles_q3_K; static constexpr vec_dot_mmq_t vec_dot = vec_dot_q3_K_q8_1_mul_mat; + static constexpr mmq_write_back_t write_back = mmq_write_back_dp4a; }; template @@ -1048,6 +1449,7 @@ struct mmq_type_traits { static constexpr int vdr = VDR_Q4_K_Q8_1_MMQ; static constexpr load_tiles_mmq_t load_tiles = load_tiles_q4_K; static constexpr vec_dot_mmq_t vec_dot = vec_dot_q4_K_q8_1_mul_mat; + static constexpr mmq_write_back_t write_back = mmq_write_back_dp4a; }; template @@ -1055,6 +1457,7 @@ struct mmq_type_traits { static constexpr int vdr = VDR_Q5_K_Q8_1_MMQ; static constexpr load_tiles_mmq_t load_tiles = load_tiles_q5_K; static constexpr vec_dot_mmq_t vec_dot = vec_dot_q5_K_q8_1_mul_mat; + static constexpr mmq_write_back_t write_back = mmq_write_back_dp4a; }; template @@ -1062,6 +1465,7 @@ struct mmq_type_traits { static constexpr int vdr = VDR_Q6_K_Q8_1_MMQ; static constexpr load_tiles_mmq_t load_tiles = load_tiles_q6_K; static constexpr vec_dot_mmq_t vec_dot = vec_dot_q6_K_q8_1_mul_mat; + static constexpr mmq_write_back_t write_back = mmq_write_back_dp4a; }; static int mmq_need_sum(const ggml_type type_x) { @@ -1118,6 +1522,7 @@ static __global__ void mul_mat_q( constexpr int vdr = mmq_type_traits::vdr; constexpr load_tiles_mmq_t load_tiles = mmq_type_traits::load_tiles; constexpr vec_dot_mmq_t vec_dot = mmq_type_traits::vec_dot; + constexpr mmq_write_back_t write_back = mmq_type_traits::write_back; constexpr tile_x_sizes txs = get_tile_x_sizes_device(type); @@ -1137,7 +1542,7 @@ static __global__ void mul_mat_q( const int * y = (const int *) yc + blockIdx.y*(mmq_x*sizeof(block_q8_1_mmq)/sizeof(int)); - float sum[(mmq_x/nwarps) * (mmq_y/WARP_SIZE)] = {0.0f}; + float sum[mmq_x*mmq_y / (nwarps*WARP_SIZE)] = {0.0f}; for (int kb0 = 0; kb0 < blocks_per_row_x; kb0 += blocks_per_warp) { @@ -1164,25 +1569,7 @@ static __global__ void mul_mat_q( } } -#pragma unroll - for (int j0 = 0; j0 < mmq_x; j0 += nwarps) { - const int j = blockIdx.y*mmq_x + j0 + threadIdx.y; - - if (j >= ne1) { - return; - } - -#pragma unroll - for (int i0 = 0; i0 < mmq_y; i0 += WARP_SIZE) { - const int i = blockIdx.x*mmq_y + i0 + threadIdx.x; - - if (need_check && i >= ne0) { - continue; - } - - dst[j*ne0 + i] = sum[(j0/nwarps) * (mmq_y/WARP_SIZE) + i0/WARP_SIZE]; - } - } + write_back(sum, dst, ne0, ne1); } struct mmq_args { @@ -1256,10 +1643,10 @@ void mul_mat_q_case(const mmq_args & args, cudaStream_t stream) { launch_mul_mat_q(args, stream); break; case 16: - launch_mul_mat_q(args, stream); + launch_mul_mat_q(args, stream); break; case 24: - launch_mul_mat_q(args, stream); + launch_mul_mat_q(args, stream); break; case 32: launch_mul_mat_q(args, stream); From d9da0e4986f121c727bdd9579a6688097b11602c Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Mon, 10 Jun 2024 14:59:55 +0300 Subject: [PATCH 044/131] server : improve "prompt" handling (#7847) --- examples/server/server.cpp | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/examples/server/server.cpp b/examples/server/server.cpp index 6ffaa8d9fe637..80714fa58360b 100644 --- a/examples/server/server.cpp +++ b/examples/server/server.cpp @@ -147,7 +147,7 @@ struct server_slot { int32_t n_prompt_tokens = 0; int32_t n_prompt_tokens_processed = 0; - json prompt; + std::string prompt; // when a task is submitted, we first tokenize the prompt and store it here std::vector prompt_tokens; @@ -822,13 +822,8 @@ struct server_context { continue; } - // skip the slot if it does not contains prompt - if (!slot.prompt.is_string()) { - continue; - } - // current slot's prompt - std::string slot_prompt = slot.prompt.get(); + std::string slot_prompt = slot.prompt; // length of the current slot's prompt int slot_prompt_len = slot_prompt.size(); @@ -958,13 +953,16 @@ struct server_context { if (!task.infill) { const auto & prompt = data.find("prompt"); if (prompt == data.end()) { - send_error(task, "Either \"prompt\" or \"messages\" must be provided", ERROR_TYPE_INVALID_REQUEST); + send_error(task, "\"prompt\" must be provided", ERROR_TYPE_INVALID_REQUEST); return false; - } else { - slot.prompt = *prompt; } - if (slot.prompt.is_array() && slot.prompt.size() == 0) { - send_error(task, "\"prompt\" cannot be an empty array", ERROR_TYPE_INVALID_REQUEST); + + if (prompt->is_string()) { + slot.prompt = prompt->get(); + } else if (prompt->is_array() && prompt->size() == 1 && prompt->at(0).is_string()) { + slot.prompt = prompt->at(0).get(); + } else { + send_error(task, "\"prompt\" must be a string or an array of strings", ERROR_TYPE_INVALID_REQUEST); return false; } } @@ -1582,14 +1580,18 @@ struct server_context { switch (task.type) { case SERVER_TASK_TYPE_COMPLETION: { - int id_slot = json_value(task.data, "id_slot", -1); - std::string prompt = json_value(task.data, "prompt", std::string()); + const int id_slot = json_value(task.data, "id_slot", -1); server_slot * slot; if (id_slot != -1) { slot = get_slot_by_id(id_slot); } else { + std::string prompt; + if (task.data.contains("prompt") && task.data.at("prompt").is_string()) { + json_value(task.data, "prompt", std::string()); + } + slot = get_available_slot(prompt); } From c28a83902cf6ab6a9e085ad6d4cc2e95c4ccfe40 Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Mon, 10 Jun 2024 15:00:15 +0300 Subject: [PATCH 045/131] examples : remove --instruct remnants (#7846) --- README.md | 29 ----------------------------- examples/alpaca.sh | 19 ------------------- examples/gpt4all.sh | 15 --------------- examples/llama2-13b.sh | 18 ------------------ examples/llama2.sh | 18 ------------------ 5 files changed, 99 deletions(-) delete mode 100755 examples/alpaca.sh delete mode 100755 examples/gpt4all.sh delete mode 100755 examples/llama2-13b.sh delete mode 100755 examples/llama2.sh diff --git a/README.md b/README.md index 09e8cad31bf62..ecb9d00db7957 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,6 @@ Inference of Meta's [LLaMA](https://arxiv.org/abs/2302.13971) model (and others)
  • Quantization
  • Interactive mode
  • Constrained output with grammars
  • -
  • Instruct mode
  • Obtaining and using the Facebook LLaMA 2 model
  • Seminal papers and background on the models
  • Perplexity (measuring model quality)
  • @@ -769,34 +768,6 @@ The `grammars/` folder contains a handful of sample grammars. To write your own, For authoring more complex JSON grammars, you can also check out https://grammar.intrinsiclabs.ai/, a browser app that lets you write TypeScript interfaces which it compiles to GBNF grammars that you can save for local use. Note that the app is built and maintained by members of the community, please file any issues or FRs on [its repo](http://github.com/intrinsiclabsai/gbnfgen) and not this one. -### Instruct mode - -1. First, download and place the `ggml` model into the `./models` folder -2. Run the `main` tool like this: - -``` -./examples/alpaca.sh -``` - -Sample run: - -``` -== Running in interactive mode. == - - Press Ctrl+C to interject at any time. - - Press Return to return control to LLaMA. - - If you want to submit another line, end your input in '\'. - - Below is an instruction that describes a task. Write a response that appropriately completes the request. - -> How many letters are there in the English alphabet? -There 26 letters in the English Alphabet -> What is the most common way of transportation in Amsterdam? -The majority (54%) are using public transit. This includes buses, trams and metros with over 100 lines throughout the city which make it very accessible for tourists to navigate around town as well as locals who commute by tram or metro on a daily basis -> List 5 words that start with "ca". -cadaver, cauliflower, cabbage (vegetable), catalpa (tree) and Cailleach. -> -``` - ### Obtaining and using the Facebook LLaMA 2 model - Refer to [Facebook's LLaMA download page](https://ai.meta.com/resources/models-and-libraries/llama-downloads/) if you want to access the model data. diff --git a/examples/alpaca.sh b/examples/alpaca.sh deleted file mode 100755 index 8d2bae6918b62..0000000000000 --- a/examples/alpaca.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash - -# -# Temporary script - will be removed in the future -# - -cd `dirname $0` -cd .. - -./main -m ./models/alpaca.13b.ggmlv3.q8_0.bin \ - --color \ - -f ./prompts/alpaca.txt \ - --ctx_size 2048 \ - -n -1 \ - -ins -b 256 \ - --top_k 10000 \ - --temp 0.2 \ - --repeat_penalty 1.1 \ - -t 7 diff --git a/examples/gpt4all.sh b/examples/gpt4all.sh deleted file mode 100755 index 5fd739e55c554..0000000000000 --- a/examples/gpt4all.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash - -# -# Temporary script - will be removed in the future -# - -cd `dirname $0` -cd .. - -./main --color --instruct --threads 4 \ - --model ./models/gpt4all-7B/gpt4all-lora-quantized.bin \ - --file ./prompts/alpaca.txt \ - --batch_size 8 --ctx_size 2048 -n -1 \ - --repeat_last_n 64 --repeat_penalty 1.3 \ - --n_predict 128 --temp 0.1 --top_k 40 --top_p 0.95 diff --git a/examples/llama2-13b.sh b/examples/llama2-13b.sh deleted file mode 100755 index 92b3f6dd8b0ec..0000000000000 --- a/examples/llama2-13b.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/bash - -# -# Temporary script - will be removed in the future -# - -cd `dirname $0` -cd .. - -./main -m models/available/Llama2/13B/llama-2-13b.ggmlv3.q4_0.bin \ - --color \ - --ctx_size 2048 \ - -n -1 \ - -ins -b 256 \ - --top_k 10000 \ - --temp 0.2 \ - --repeat_penalty 1.1 \ - -t 8 diff --git a/examples/llama2.sh b/examples/llama2.sh deleted file mode 100755 index 221b37553cfe7..0000000000000 --- a/examples/llama2.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/bash - -# -# Temporary script - will be removed in the future -# - -cd `dirname $0` -cd .. - -./main -m models/available/Llama2/7B/llama-2-7b.ggmlv3.q4_0.bin \ - --color \ - --ctx_size 2048 \ - -n -1 \ - -ins -b 256 \ - --top_k 10000 \ - --temp 0.2 \ - --repeat_penalty 1.1 \ - -t 8 From fd5ea0f897ecb3659d6c269ef6f3d833e865ead7 Mon Sep 17 00:00:00 2001 From: slaren Date: Mon, 10 Jun 2024 14:18:41 +0200 Subject: [PATCH 046/131] ci : try win-2019 on server windows test (#7854) --- .github/workflows/server.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/server.yml b/.github/workflows/server.yml index 0789efd18a1ab..0d16ef5f110f9 100644 --- a/.github/workflows/server.yml +++ b/.github/workflows/server.yml @@ -16,11 +16,9 @@ on: branches: - master paths: ['.github/workflows/server.yml', '**/CMakeLists.txt', '**/Makefile', '**/*.h', '**/*.hpp', '**/*.c', '**/*.cpp', '**/*.cu', '**/*.swift', '**/*.m', 'examples/server/**.*'] - pull_request_target: + pull_request: types: [opened, synchronize, reopened] paths: ['.github/workflows/server.yml', '**/CMakeLists.txt', '**/Makefile', '**/*.h', '**/*.hpp', '**/*.c', '**/*.cpp', '**/*.cu', '**/*.swift', '**/*.m', 'examples/server/**.*'] - schedule: - - cron: '2 4 * * *' concurrency: group: ${{ github.workflow }}-${{ github.ref }}-${{ github.head_ref || github.run_id }} @@ -115,7 +113,7 @@ jobs: server-windows: - runs-on: windows-latest + runs-on: windows-2019 steps: - name: Clone From 864a99e7a01d9422d2f55618dbe62c8099a2175c Mon Sep 17 00:00:00 2001 From: Jared Van Bortel Date: Mon, 10 Jun 2024 18:32:10 -0400 Subject: [PATCH 047/131] cmake : fix CMake requirement for CUDA (#7821) --- CMakeLists.txt | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b1d6afbbcfa8d..8e280f87d9dd1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -402,12 +402,26 @@ if (LLAMA_CUBLAS) endif() if (LLAMA_CUDA) - cmake_minimum_required(VERSION 3.17) + cmake_minimum_required(VERSION 3.18) # for CMAKE_CUDA_ARCHITECTURES find_package(CUDAToolkit) if (CUDAToolkit_FOUND) message(STATUS "CUDA found") + if (NOT DEFINED CMAKE_CUDA_ARCHITECTURES) + # 52 == lowest CUDA 12 standard + # 60 == f16 CUDA intrinsics + # 61 == integer CUDA intrinsics + # 70 == compute capability at which unrolling a loop in mul_mat_q kernels is faster + if (LLAMA_CUDA_F16 OR LLAMA_CUDA_DMMV_F16) + set(CMAKE_CUDA_ARCHITECTURES "60;61;70") # needed for f16 CUDA intrinsics + else() + set(CMAKE_CUDA_ARCHITECTURES "52;61;70") # lowest CUDA 12 standard + lowest for integer intrinsics + #set(CMAKE_CUDA_ARCHITECTURES "OFF") # use this to compile much faster, but only F16 models work + endif() + endif() + message(STATUS "Using CUDA architectures: ${CMAKE_CUDA_ARCHITECTURES}") + enable_language(CUDA) set(GGML_HEADERS_CUDA ggml-cuda.h) @@ -472,21 +486,6 @@ if (LLAMA_CUDA) else() set(LLAMA_EXTRA_LIBS ${LLAMA_EXTRA_LIBS} CUDA::cuda_driver) # required by cuDeviceGetAttribute(), cuMemGetAllocationGranularity(...), ... endif() - - if (NOT DEFINED CMAKE_CUDA_ARCHITECTURES) - # 52 == lowest CUDA 12 standard - # 60 == f16 CUDA intrinsics - # 61 == integer CUDA intrinsics - # 70 == compute capability at which unrolling a loop in mul_mat_q kernels is faster - if (LLAMA_CUDA_F16 OR LLAMA_CUDA_DMMV_F16) - set(CMAKE_CUDA_ARCHITECTURES "60;61;70") # needed for f16 CUDA intrinsics - else() - set(CMAKE_CUDA_ARCHITECTURES "52;61;70") # lowest CUDA 12 standard + lowest for integer intrinsics - #set(CMAKE_CUDA_ARCHITECTURES "") # use this to compile much faster, but only F16 models work - endif() - endif() - message(STATUS "Using CUDA architectures: ${CMAKE_CUDA_ARCHITECTURES}") - else() message(WARNING "CUDA not found") endif() From 396b18dfec2c56846e80362db70af09b9e1d70ba Mon Sep 17 00:00:00 2001 From: Olivier Chafik Date: Tue, 11 Jun 2024 01:00:30 +0100 Subject: [PATCH 048/131] `json`: document schema conversion in GBNF readme, align manual grammar examples & converters (#7841) * json: fix char pattern in grammar converters * json: prevent number precision & whitespace runaways in example grammars * json: add doc to grammar readme --- common/json-schema-to-grammar.cpp | 2 +- examples/json_schema_to_grammar.py | 2 +- .../server/public/json-schema-to-grammar.mjs | 2 +- grammars/README.md | 39 +++++++++++++++++++ grammars/json.gbnf | 6 +-- grammars/json_arr.gbnf | 6 +-- tests/test-json-schema-to-grammar.cpp | 38 +++++++++--------- 7 files changed, 67 insertions(+), 28 deletions(-) diff --git a/common/json-schema-to-grammar.cpp b/common/json-schema-to-grammar.cpp index 737bae27c7206..11221a32fdcac 100644 --- a/common/json-schema-to-grammar.cpp +++ b/common/json-schema-to-grammar.cpp @@ -57,7 +57,7 @@ std::unordered_map PRIMITIVE_RULES = { {"object", {"\"{\" space ( string \":\" space value (\",\" space string \":\" space value)* )? \"}\" space", {"string", "value"}}}, {"array", {"\"[\" space ( value (\",\" space value)* )? \"]\" space", {"value"}}}, {"uuid", {"\"\\\"\" [0-9a-fA-F]{8} \"-\" [0-9a-fA-F]{4} \"-\" [0-9a-fA-F]{4} \"-\" [0-9a-fA-F]{4} \"-\" [0-9a-fA-F]{12} \"\\\"\" space", {}}}, - {"char", {"[^\"\\\\] | \"\\\\\" ([\"\\\\/bfnrt] | \"u\" [0-9a-fA-F]{4})", {}}}, + {"char", {"[^\"\\\\\\x7F\\x00-\\x1F] | [\\\\] ([\"\\\\bfnrt] | \"u\" [0-9a-fA-F]{4})", {}}}, {"string", {"\"\\\"\" char* \"\\\"\" space", {"char"}}}, {"null", {"\"null\" space", {}}}, }; diff --git a/examples/json_schema_to_grammar.py b/examples/json_schema_to_grammar.py index 7d889c3fe1287..cd444d0103467 100755 --- a/examples/json_schema_to_grammar.py +++ b/examples/json_schema_to_grammar.py @@ -43,7 +43,7 @@ def __init__(self, content: str, deps: list = None): 'object' : BuiltinRule('"{" space ( string ":" space value ("," space string ":" space value)* )? "}" space', ['string', 'value']), 'array' : BuiltinRule('"[" space ( value ("," space value)* )? "]" space', ['value']), 'uuid' : BuiltinRule(r'"\"" [0-9a-fA-F]{8} "-" [0-9a-fA-F]{4} "-" [0-9a-fA-F]{4} "-" [0-9a-fA-F]{4} "-" [0-9a-fA-F]{12} "\"" space', []), - 'char' : BuiltinRule(r'[^"\\] | "\\" (["\\/bfnrt] | "u" [0-9a-fA-F]{4})', []), + 'char' : BuiltinRule(r'[^"\\\x7F\x00-\x1F] | [\\] (["\\bfnrt] | "u" [0-9a-fA-F]{4})', []), 'string' : BuiltinRule(r'"\"" char* "\"" space', ['char']), 'null' : BuiltinRule('"null" space', []), } diff --git a/examples/server/public/json-schema-to-grammar.mjs b/examples/server/public/json-schema-to-grammar.mjs index cef11eab83a46..dc24683962208 100644 --- a/examples/server/public/json-schema-to-grammar.mjs +++ b/examples/server/public/json-schema-to-grammar.mjs @@ -41,7 +41,7 @@ const PRIMITIVE_RULES = { object : new BuiltinRule('"{" space ( string ":" space value ("," space string ":" space value)* )? "}" space', ['string', 'value']), array : new BuiltinRule('"[" space ( value ("," space value)* )? "]" space', ['value']), uuid : new BuiltinRule('"\\"" [0-9a-fA-F]{8} "-" [0-9a-fA-F]{4} "-" [0-9a-fA-F]{4} "-" [0-9a-fA-F]{4} "-" [0-9a-fA-F]{12} "\\"" space', []), - char : new BuiltinRule(`[^"\\\\] | "\\\\" (["\\\\/bfnrt] | "u" [0-9a-fA-F]{4})`, []), + char : new BuiltinRule(`[^"\\\\\\x7F\\x00-\\x1F] | [\\\\] (["\\\\bfnrt] | "u" [0-9a-fA-F]{4})`, []), string : new BuiltinRule(`"\\"" char* "\\"" space`, ['char']), null : new BuiltinRule('"null" space', []), }; diff --git a/grammars/README.md b/grammars/README.md index 3ffc7cec09257..2ec21a4c091cf 100644 --- a/grammars/README.md +++ b/grammars/README.md @@ -94,6 +94,8 @@ This guide provides a brief overview. Check out the GBNF files in this directory ./main -m --grammar-file grammars/some-grammar.gbnf -p 'Some prompt' ``` +`llama.cpp` can also convert JSON schemas to grammars either ahead of time or at each request, see below. + ## Troubleshooting Grammars currently have performance gotchas (see https://github.com/ggerganov/llama.cpp/issues/4218). @@ -103,3 +105,40 @@ Grammars currently have performance gotchas (see https://github.com/ggerganov/ll A common pattern is to allow repetitions of a pattern `x` up to N times. While semantically correct, the syntax `x? x? x?.... x?` (with N repetitions) may result in extremely slow sampling. Instead, you can write `x{0,N}` (or `(x (x (x ... (x)?...)?)?)?` w/ N-deep nesting in earlier llama.cpp versions). + +## Using GBNF grammars + +You can use GBNF grammars: + +- In the [server](../examples/server)'s completion endpoints, passed as the `grammar` body field +- In the [main](../examples/main) CLI, passed as the `--grammar` & `--grammar-file` flags +- With the [gbnf-validator](../examples/gbnf-validator) tool, to test them against strings. + +## JSON Schemas → GBNF + +`llama.cpp` supports converting a subset of https://json-schema.org/ to GBNF grammars: + +- In the [server](../examples/server): + - For any completion endpoints, passed as the `json_schema` body field + - For the `/chat/completions` endpoint, passed inside the `result_format` body field (e.g. `{"type", "json_object", "schema": {"items": {}}}`) +- In the [main](../examples/main) CLI, passed as the `--json` / `-j` flag +- To convert to a grammar ahead of time: + - in CLI, with [json_schema_to_grammar.py](../examples/json_schema_to_grammar.py) + - in JavaScript with [json-schema-to-grammar.mjs](../examples/server/public/json-schema-to-grammar.mjs) (this is used by the [server](../examples/server)'s Web UI) + +Take a look at [tests](../../tests/test-json-schema-to-grammar.cpp) to see which features are likely supported (you'll also find usage examples in https://github.com/ggerganov/llama.cpp/pull/5978, https://github.com/ggerganov/llama.cpp/pull/6659 & https://github.com/ggerganov/llama.cpp/pull/6555). + +Here is also a non-exhaustive list of **unsupported** features: + +- `additionalProperties`: to be fixed in https://github.com/ggerganov/llama.cpp/pull/7840 +- `minimum`, `exclusiveMinimum`, `maximum`, `exclusiveMaximum` + - `integer` constraints to be implemented in https://github.com/ggerganov/llama.cpp/pull/7797 +- Remote `$ref`s in the C++ version (Python & JavaScript versions fetch https refs) +- Mixing `properties` w/ `anyOf` / `oneOf` in the same type (https://github.com/ggerganov/llama.cpp/issues/7703) +- `string` formats `uri`, `email` +- [`contains`](https://json-schema.org/draft/2020-12/json-schema-core#name-contains) / `minContains` +- `uniqueItems` +- `$anchor` (cf. [dereferencing](https://json-schema.org/draft/2020-12/json-schema-core#name-dereferencing)) +- [`not`](https://json-schema.org/draft/2020-12/json-schema-core#name-not) +- [Conditionals](https://json-schema.org/draft/2020-12/json-schema-core#name-keywords-for-applying-subsche) `if` / `then` / `else` / `dependentSchemas` +- [`patternProperties`](https://json-schema.org/draft/2020-12/json-schema-core#name-patternproperties) diff --git a/grammars/json.gbnf b/grammars/json.gbnf index a8a80752e6562..064a53f8ad8ca 100644 --- a/grammars/json.gbnf +++ b/grammars/json.gbnf @@ -16,10 +16,10 @@ array ::= string ::= "\"" ( [^"\\\x7F\x00-\x1F] | - "\\" (["\\/bfnrt] | "u" [0-9a-fA-F] [0-9a-fA-F] [0-9a-fA-F] [0-9a-fA-F]) # escapes + "\\" (["\\bfnrt] | "u" [0-9a-fA-F]{4}) # escapes )* "\"" ws -number ::= ("-"? ([0-9] | [1-9] [0-9]*)) ("." [0-9]+)? ([eE] [-+]? [0-9]+)? ws +number ::= ("-"? ([0-9] | [1-9] [0-9]{0,15})) ("." [0-9]+)? ([eE] [-+]? [0-9] [1-9]{0,15})? ws # Optional space: by convention, applied in this grammar after literal chars when allowed -ws ::= ([ \t\n] ws)? +ws ::= [ \t\n]{0,20} diff --git a/grammars/json_arr.gbnf b/grammars/json_arr.gbnf index 31a3202f863c1..bd1312d96735e 100644 --- a/grammars/json_arr.gbnf +++ b/grammars/json_arr.gbnf @@ -25,10 +25,10 @@ array ::= string ::= "\"" ( [^"\\\x7F\x00-\x1F] | - "\\" (["\\/bfnrt] | "u" [0-9a-fA-F] [0-9a-fA-F] [0-9a-fA-F] [0-9a-fA-F]) # escapes + "\\" (["\\bfnrt] | "u" [0-9a-fA-F]{4}) # escapes )* "\"" ws -number ::= ("-"? ([0-9] | [1-9] [0-9]*)) ("." [0-9]+)? ([eE] [-+]? [0-9]+)? ws +number ::= ("-"? ([0-9] | [1-9] [0-9]{0,15})) ("." [0-9]+)? ([eE] [-+]? [1-9] [0-9]{0,15})? ws # Optional space: by convention, applied in this grammar after literal chars when allowed -ws ::= ([ \t\n] ws)? +ws ::= [ \t\n]{0,20} diff --git a/tests/test-json-schema-to-grammar.cpp b/tests/test-json-schema-to-grammar.cpp index 052c0807310ce..bea876bd15241 100755 --- a/tests/test-json-schema-to-grammar.cpp +++ b/tests/test-json-schema-to-grammar.cpp @@ -105,7 +105,7 @@ static void test_all(const std::string & lang, std::function Date: Tue, 11 Jun 2024 02:22:57 +0100 Subject: [PATCH 049/131] json: refine constraint for whitespace to avoid runaways yet allow pretty print (#7866) --- common/json-schema-to-grammar.cpp | 2 +- examples/json_schema_to_grammar.py | 5 +- .../server/public/json-schema-to-grammar.mjs | 2 +- grammars/json.gbnf | 2 +- grammars/json_arr.gbnf | 2 +- tests/test-json-schema-to-grammar.cpp | 76 +++++++++---------- 6 files changed, 44 insertions(+), 45 deletions(-) diff --git a/common/json-schema-to-grammar.cpp b/common/json-schema-to-grammar.cpp index 11221a32fdcac..10b9b3d1d4d41 100644 --- a/common/json-schema-to-grammar.cpp +++ b/common/json-schema-to-grammar.cpp @@ -40,7 +40,7 @@ static std::string build_repetition(const std::string & item_rule, int min_items return result; } -const std::string SPACE_RULE = "\" \"?"; +const std::string SPACE_RULE = "| \" \" | \"\\n\" [ \\t]{0,20}"; struct BuiltinRule { std::string content; diff --git a/examples/json_schema_to_grammar.py b/examples/json_schema_to_grammar.py index cd444d0103467..ab19e20df658e 100755 --- a/examples/json_schema_to_grammar.py +++ b/examples/json_schema_to_grammar.py @@ -29,9 +29,8 @@ def __init__(self, content: str, deps: list = None): self.content = content self.deps = deps or [] -# whitespace is constrained to a single space char to prevent model "running away" in -# whitespace. Also maybe improves generation quality? -SPACE_RULE = '" "?' +# Constraining spaces to prevent model "running away". +SPACE_RULE = '| " " | "\\n" [ \\t]{0,20}' PRIMITIVE_RULES = { 'boolean' : BuiltinRule('("true" | "false") space', []), diff --git a/examples/server/public/json-schema-to-grammar.mjs b/examples/server/public/json-schema-to-grammar.mjs index dc24683962208..faed6a32cfc4c 100644 --- a/examples/server/public/json-schema-to-grammar.mjs +++ b/examples/server/public/json-schema-to-grammar.mjs @@ -1,5 +1,5 @@ // WARNING: This file was ported from json_schema_to_grammar.py, please fix bugs / add features there first. -const SPACE_RULE = '" "?'; +const SPACE_RULE = '| " " | "\\n" [ \\t]{0,20}'; function _buildRepetition(itemRule, minItems, maxItems, opts={}) { if (minItems === 0 && maxItems === 1) { diff --git a/grammars/json.gbnf b/grammars/json.gbnf index 064a53f8ad8ca..b6448c87b72ec 100644 --- a/grammars/json.gbnf +++ b/grammars/json.gbnf @@ -22,4 +22,4 @@ string ::= number ::= ("-"? ([0-9] | [1-9] [0-9]{0,15})) ("." [0-9]+)? ([eE] [-+]? [0-9] [1-9]{0,15})? ws # Optional space: by convention, applied in this grammar after literal chars when allowed -ws ::= [ \t\n]{0,20} +ws ::= | " " | "\n" [ \t]{0,20} diff --git a/grammars/json_arr.gbnf b/grammars/json_arr.gbnf index bd1312d96735e..b3dc6f9b16277 100644 --- a/grammars/json_arr.gbnf +++ b/grammars/json_arr.gbnf @@ -31,4 +31,4 @@ string ::= number ::= ("-"? ([0-9] | [1-9] [0-9]{0,15})) ("." [0-9]+)? ([eE] [-+]? [1-9] [0-9]{0,15})? ws # Optional space: by convention, applied in this grammar after literal chars when allowed -ws ::= [ \t\n]{0,20} +ws ::= | " " | "\n" [ \t]{0,20} diff --git a/tests/test-json-schema-to-grammar.cpp b/tests/test-json-schema-to-grammar.cpp index bea876bd15241..a33104dea3598 100755 --- a/tests/test-json-schema-to-grammar.cpp +++ b/tests/test-json-schema-to-grammar.cpp @@ -112,7 +112,7 @@ static void test_all(const std::string & lang, std::function Date: Tue, 11 Jun 2024 07:59:20 +0200 Subject: [PATCH 050/131] fix CUDA CI by using a windows-2019 image (#7861) * try to fix CUDA ci with --allow-unsupported-compiler * trigger when build.yml changes * another test * try exllama/bdashore3 method * install vs build tools before cuda toolkit * try win-2019 --- .github/workflows/build.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 93669d5312214..3c04cfc295fb8 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -13,7 +13,7 @@ on: paths: ['.github/workflows/**', '**/CMakeLists.txt', '**/Makefile', '**/*.h', '**/*.hpp', '**/*.c', '**/*.cpp', '**/*.cu', '**/*.swift', '**/*.m'] pull_request: types: [opened, synchronize, reopened] - paths: ['**/CMakeLists.txt', '**/Makefile', '**/*.h', '**/*.hpp', '**/*.c', '**/*.cpp', '**/*.cu', '**/*.swift', '**/*.m'] + paths: ['.github/workflows/build.yml', '**/CMakeLists.txt', '**/Makefile', '**/*.h', '**/*.hpp', '**/*.c', '**/*.cpp', '**/*.cu', '**/*.cuh', '**/*.swift', '**/*.m'] concurrency: group: ${{ github.workflow }}-${{ github.head_ref && github.ref || github.run_id }} @@ -684,7 +684,7 @@ jobs: cmake --build build --config ${{ matrix.build }} -j $(nproc) windows-latest-cmake: - runs-on: windows-latest + runs-on: windows-2019 env: OPENBLAS_VERSION: 0.3.23 @@ -829,7 +829,7 @@ jobs: name: llama-bin-win-${{ matrix.build }}.zip windows-latest-cmake-cuda: - runs-on: windows-latest + runs-on: windows-2019 strategy: matrix: @@ -843,8 +843,9 @@ jobs: with: fetch-depth: 0 - - uses: Jimver/cuda-toolkit@v0.2.11 + - name: Install CUDA toolkit id: cuda-toolkit + uses: Jimver/cuda-toolkit@v0.2.15 with: cuda: ${{ matrix.cuda }} method: 'network' From bdcb8f42221bc40c411150a009a3d3a30fa74722 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20G=C3=A4=C3=9Fler?= Date: Tue, 11 Jun 2024 08:26:07 +0200 Subject: [PATCH 051/131] CUDA: int8 tensor cores for MMQ (q4_K, q5_K, q6_K) (#7860) --- ggml-cuda/mma.cuh | 66 ++++++++++ ggml-cuda/mmq.cuh | 300 +++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 360 insertions(+), 6 deletions(-) diff --git a/ggml-cuda/mma.cuh b/ggml-cuda/mma.cuh index 71e8e342918aa..63e07fbc21291 100644 --- a/ggml-cuda/mma.cuh +++ b/ggml-cuda/mma.cuh @@ -1,5 +1,27 @@ #include "common.cuh" +struct mma_int_A_I16K4 { + static constexpr int I = 16; + static constexpr int K = 4; + static constexpr int ne = 2; + + int x[ne] = {0}; + + static __device__ __forceinline__ int get_i(const int l) { + const int ret = (l%2) * (I/2) + threadIdx.x / K; + GGML_CUDA_ASSUME(ret >= 0); + GGML_CUDA_ASSUME(ret < I); + return ret; + } + + static __device__ __forceinline__ int get_k(const int /* l */) { + const int ret = threadIdx.x % K; + GGML_CUDA_ASSUME(ret >= 0); + GGML_CUDA_ASSUME(ret < K); + return ret; + } +}; + struct mma_int_A_I16K8 { static constexpr int I = 16; static constexpr int K = 8; @@ -22,6 +44,28 @@ struct mma_int_A_I16K8 { } }; +struct mma_int_B_J8K4 { + static constexpr int J = 8; + static constexpr int K = 4; + static constexpr int ne = 1; + + int x[ne] = {0}; + + static __device__ __forceinline__ int get_j(const int /* l */) { + const int ret = threadIdx.x / K; + GGML_CUDA_ASSUME(ret >= 0); + GGML_CUDA_ASSUME(ret < J); + return ret; + } + + static __device__ __forceinline__ int get_k(const int /* l */) { + const int ret = threadIdx.x % K; + GGML_CUDA_ASSUME(ret >= 0); + GGML_CUDA_ASSUME(ret < K); + return ret; + } +}; + struct mma_int_B_J8K8 { static constexpr int J = 8; static constexpr int K = 8; @@ -65,6 +109,28 @@ struct mma_int_C_I16J8 { return ret; } + __device__ __forceinline__ void mma_K4(const mma_int_A_I16K4 & mma_A, const mma_int_B_J8K4 & mma_B) { +#ifdef INT8_MMA_AVAILABLE +#if __CUDA_ARCH__ >= CC_AMPERE + asm("mma.sync.aligned.m16n8k16.row.col.s32.s8.s8.s32 {%0, %1, %2, %3}, {%4, %5}, {%6}, {%0, %1, %2, %3};" + : "+r"(x[0]), "+r"(x[1]), "+r"(x[2]), "+r"(x[3]) + : "r"(mma_A.x[0]), "r"(mma_A.x[1]), "r"(mma_B.x[0])); +#else + // On Turing m16n8k16 mma is not available, use 2x m8n8k16 mma instead: + asm("mma.sync.aligned.m8n8k16.row.col.s32.s8.s8.s32 {%0, %1}, {%2}, {%3}, {%0, %1};" + : "+r"(x[0]), "+r"(x[1]) + : "r"(mma_A.x[0]), "r"(mma_B.x[0])); + asm("mma.sync.aligned.m8n8k16.row.col.s32.s8.s8.s32 {%0, %1}, {%2}, {%3}, {%0, %1};" + : "+r"(x[2]), "+r"(x[3]) + : "r"(mma_A.x[1]), "r"(mma_B.x[0])); +#endif // __CUDA_ARCH__ >= CC_AMPERE +#else + GGML_UNUSED(mma_A); + GGML_UNUSED(mma_B); + NO_DEVICE_CODE; +#endif // INT8_MMA_AVAILABLE + } + __device__ __forceinline__ void mma_K8(const mma_int_A_I16K8 & mma_A, const mma_int_B_J8K8 & mma_B) { #ifdef INT8_MMA_AVAILABLE #if __CUDA_ARCH__ >= CC_AMPERE diff --git a/ggml-cuda/mmq.cuh b/ggml-cuda/mmq.cuh index 62111f376ec81..01e2086b41646 100644 --- a/ggml-cuda/mmq.cuh +++ b/ggml-cuda/mmq.cuh @@ -1089,7 +1089,7 @@ template static __device__ __forceinlin } template -static __device__ __forceinline__ void vec_dot_q4_K_q8_1_mul_mat( +static __device__ __forceinline__ void vec_dot_q4_K_q8_1_dp4a( const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc, const int * __restrict__ y, float * __restrict__ sum, const int & k0) { @@ -1115,6 +1115,97 @@ static __device__ __forceinline__ void vec_dot_q4_K_q8_1_mul_mat( } } +template +static __device__ __forceinline__ void vec_dot_q4_K_q8_1_mma( + const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc, + const int * __restrict__ y, float * __restrict__ sum, const int & k0) { + + GGML_UNUSED(x_qh); GGML_UNUSED(x_sc); + + typedef mma_int_A_I16K8 mma_A; + typedef mma_int_B_J8K8 mma_B; + typedef mma_int_C_I16J8 mma_C; + + const int * y_qs = (const int *) y + 4; + const half2 * y_ds = (const half2 *) y; + + const int i0 = threadIdx.y*mma_A::I; + static_assert(nwarps*mma_A::I == mmq_y, "nwarps*mma_A::I != mmq_y"); + + mma_A A[2]; + int scA[mma_C::ne/2][2]; + int mA[mma_C::ne/2][2]; + half2 dmA[mma_C::ne/2]; +#pragma unroll + for (int kvdr = 0; kvdr < VDR_Q4_K_Q8_1_MMQ; kvdr += 4) { +#pragma unroll + for (int l = 0; l < mma_A::ne; ++l) { + const int i = i0 + mma_A::get_i(l); + const int k = k0 + mma_A::get_k(l); + + A[kvdr/4].x[l] = (x_ql[i*(WARP_SIZE + 1) + k] >> kvdr) & 0x0F0F0F0F; + } + +#pragma unroll + for (int l = 0; l < mma_C::ne/2; ++l) { + const int i = i0 + mma_C::get_i(2*l); + + const uint8_t * sc = ((const uint8_t *) &x_sc[i * (WARP_SIZE/8) + i/8 + k0/16]) + 2 * ((k0 % 16) / 8); + const uint8_t * m = sc + 8; + + scA[l][kvdr/4] = sc[kvdr/4]; + mA[l][kvdr/4] = m[kvdr/4]; + } + } + +#pragma unroll + for (int l = 0; l < mma_C::ne/2; ++l) { + const int i = i0 + mma_C::get_i(2*l); + + dmA[l] = x_dm[i*(WARP_SIZE/QI5_K) + i/QI5_K + k0/QI5_K]; + } + +#pragma unroll + for (int j0 = 0; j0 < mmq_x; j0 += mma_int_B_J8K8::J) { + float tmpd[mma_C::ne] = {0.0f}; + float tmpm[mma_C::ne] = {0.0f}; + +#pragma unroll + for (int kvdr = 0; kvdr < VDR_Q5_K_Q8_1_MMQ; kvdr += 4) { + mma_C C; + mma_B B; + half2 dsB[mma_C::ne/2]; + +#pragma unroll + for (int l = 0; l < mma_B::ne; ++l) { + const int j = j0 + mma_B::get_j(l); + const int k = (2*k0 + 2*kvdr + mma_B::get_k(l)) % WARP_SIZE; + + B.x[l] = y_qs[j*MMQ_TILE_Y_K + k]; + } +#pragma unroll + for (int l = 0; l < mma_C::ne/2; ++l) { + const int j = j0 + mma_C::get_j(l); + + dsB[l] = y_ds[j*MMQ_TILE_Y_K + ((2*k0 + 2*kvdr)/QI8_1) % (WARP_SIZE/QI8_1)]; + } + + C.mma_K8(A[kvdr/4], B); + +#pragma unroll + for (int l = 0; l < mma_C::ne; ++l) { + tmpd[l] += (C.x[l]*scA[l/2][kvdr/4]) * __low2float(dsB[l%2]); + tmpm[l] += mA[l/2][kvdr/4] * __high2float(dsB[l%2]); + } + } + +#pragma unroll + for (int l = 0; l < mma_C::ne; ++l) { + sum[(j0/mma_B::J)*mma_C::ne + l] += __low2float(dmA[l/2])*tmpd[l] - __high2float(dmA[l/2])*tmpm[l]; + } + } +} + template static __device__ __forceinline__ void load_tiles_q5_K( const char * __restrict__ x, int * __restrict__ x_ql, half2 * __restrict__ x_dm, int * __restrict__ x_qh, int * __restrict__ x_sc, const int & kbx0, const int & i_max, const int & stride) { @@ -1188,7 +1279,7 @@ template static __device__ __forceinlin } template -static __device__ __forceinline__ void vec_dot_q5_K_q8_1_mul_mat( +static __device__ __forceinline__ void vec_dot_q5_K_q8_1_dp4a( const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc, const int * __restrict__ y, float * __restrict__ sum, const int & k0) { @@ -1214,6 +1305,97 @@ static __device__ __forceinline__ void vec_dot_q5_K_q8_1_mul_mat( } } +template +static __device__ __forceinline__ void vec_dot_q5_K_q8_1_mma( + const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc, + const int * __restrict__ y, float * __restrict__ sum, const int & k0) { + + GGML_UNUSED(x_qh); GGML_UNUSED(x_sc); + + typedef mma_int_A_I16K8 mma_A; + typedef mma_int_B_J8K8 mma_B; + typedef mma_int_C_I16J8 mma_C; + + const int * y_qs = (const int *) y + 4; + const half2 * y_ds = (const half2 *) y; + + const int i0 = threadIdx.y*mma_A::I; + static_assert(nwarps*mma_A::I == mmq_y, "nwarps*mma_A::I != mmq_y"); + + mma_A A[2]; + int scA[mma_C::ne/2][2]; + int mA[mma_C::ne/2][2]; + half2 dmA[mma_C::ne/2]; +#pragma unroll + for (int kvdr = 0; kvdr < VDR_Q5_K_Q8_1_MMQ; kvdr += 4) { +#pragma unroll + for (int l = 0; l < mma_A::ne; ++l) { + const int i = i0 + mma_A::get_i(l); + const int k = QR5_K*k0 + QR5_K*kvdr + mma_A::get_k(l); + + A[kvdr/4].x[l] = x_ql[i*(QR5_K*WARP_SIZE + 1) + k]; + } + +#pragma unroll + for (int l = 0; l < mma_C::ne/2; ++l) { + const int i = i0 + mma_C::get_i(2*l); + + const uint8_t * sc = ((const uint8_t *) &x_sc[i * (WARP_SIZE/8) + i/8 + k0/16]) + 2 * ((k0 % 16) / 8); + const uint8_t * m = sc + 8; + + scA[l][kvdr/4] = sc[kvdr/4]; + mA[l][kvdr/4] = m[kvdr/4]; + } + } + +#pragma unroll + for (int l = 0; l < mma_C::ne/2; ++l) { + const int i = i0 + mma_C::get_i(2*l); + + dmA[l] = x_dm[i*(WARP_SIZE/QI5_K) + i/QI5_K + k0/QI5_K]; + } + +#pragma unroll + for (int j0 = 0; j0 < mmq_x; j0 += mma_int_B_J8K8::J) { + float tmpd[mma_C::ne] = {0.0f}; + float tmpm[mma_C::ne] = {0.0f}; + +#pragma unroll + for (int kvdr = 0; kvdr < VDR_Q5_K_Q8_1_MMQ; kvdr += 4) { + mma_C C; + mma_B B; + half2 dsB[mma_C::ne/2]; + +#pragma unroll + for (int l = 0; l < mma_B::ne; ++l) { + const int j = j0 + mma_B::get_j(l); + const int k = (2*k0 + 2*kvdr + mma_B::get_k(l)) % WARP_SIZE; + + B.x[l] = y_qs[j*MMQ_TILE_Y_K + k]; + } +#pragma unroll + for (int l = 0; l < mma_C::ne/2; ++l) { + const int j = j0 + mma_C::get_j(l); + + dsB[l] = y_ds[j*MMQ_TILE_Y_K + ((2*k0 + 2*kvdr)/QI8_1) % (WARP_SIZE/QI8_1)]; + } + + C.mma_K8(A[kvdr/4], B); + +#pragma unroll + for (int l = 0; l < mma_C::ne; ++l) { + tmpd[l] += (C.x[l]*scA[l/2][kvdr/4]) * __low2float(dsB[l%2]); + tmpm[l] += mA[l/2][kvdr/4] * __high2float(dsB[l%2]); + } + } + +#pragma unroll + for (int l = 0; l < mma_C::ne; ++l) { + sum[(j0/mma_B::J)*mma_C::ne + l] += __low2float(dmA[l/2])*tmpd[l] - __high2float(dmA[l/2])*tmpm[l]; + } + } +} + template static __device__ __forceinline__ void load_tiles_q6_K( const char * __restrict__ x, int * __restrict__ x_ql, half2 * __restrict__ x_dm, int * __restrict__ x_qh, int * __restrict__ x_sc, const int & kbx0, const int & i_max, const int & stride) { @@ -1280,7 +1462,7 @@ template static __device__ __forceinlin } template -static __device__ __forceinline__ void vec_dot_q6_K_q8_1_mul_mat( +static __device__ __forceinline__ void vec_dot_q6_K_q8_1_dp4a( const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc, const int * __restrict__ y, float * __restrict__ sum, const int & k0) { @@ -1307,6 +1489,97 @@ static __device__ __forceinline__ void vec_dot_q6_K_q8_1_mul_mat( } } +template +static __device__ __forceinline__ void vec_dot_q6_K_q8_1_mma( + const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc, + const int * __restrict__ y, float * __restrict__ sum, const int & k0) { + + GGML_UNUSED(x_qh); GGML_UNUSED(x_sc); + + typedef mma_int_A_I16K4 mma_A; + typedef mma_int_B_J8K4 mma_B; + typedef mma_int_C_I16J8 mma_C; + + const float * x_df = (const float *) x_dm; + const int * y_qs = (const int *) y + 4; + const float * y_df = (const float *) y; + + const int i0 = threadIdx.y*mma_A::I; + static_assert(nwarps*mma_A::I == mmq_y, "nwarps*mma_A::I != mmq_y"); + + mma_A A[4]; + int scA[mma_C::ne/2][4]; + float dA[mma_C::ne/2]; +#pragma unroll + for (int kvdr = 0; kvdr < VDR_Q6_K_Q8_1_MMQ; kvdr += 4) { +#pragma unroll + for (int l = 0; l < mma_A::ne; ++l) { + const int i = i0 + mma_A::get_i(l); + const int k = QR6_K*k0 + QR6_K*kvdr + mma_A::get_k(l); + + A[kvdr/2 + 0].x[l] = x_ql[i*(QR6_K*WARP_SIZE + 1) + k + 0]; + A[kvdr/2 + 1].x[l] = x_ql[i*(QR6_K*WARP_SIZE + 1) + k + mma_A::K]; + } + +#pragma unroll + for (int l = 0; l < mma_C::ne/2; ++l) { + const int i = i0 + mma_C::get_i(2*l); + + const int8_t * sc = ((const int8_t *) &x_sc[i * (WARP_SIZE/8) + i/8 + k0/8]); + + scA[l][kvdr/2 + 0] = sc[kvdr/2 + 0]; + scA[l][kvdr/2 + 1] = sc[kvdr/2 + 1]; + } + } + +#pragma unroll + for (int l = 0; l < mma_C::ne/2; ++l) { + const int i = i0 + mma_C::get_i(2*l); + + dA[l] = x_df[i*(WARP_SIZE/QI6_K) + i/QI6_K + k0/QI6_K]; + } + +#pragma unroll + for (int j0 = 0; j0 < mmq_x; j0 += mma_int_B_J8K8::J) { + float tmp[mma_C::ne] = {0.0f}; + +#pragma unroll + for (int kvdr = 0; kvdr < VDR_Q6_K_Q8_1_MMQ; kvdr += 4) { + mma_C C[2]; + mma_B B[2]; + float dB[mma_C::ne/2]; + +#pragma unroll + for (int l = 0; l < mma_B::ne; ++l) { + const int j = j0 + mma_B::get_j(l); + const int k = (2*k0 + 2*kvdr + mma_B::get_k(l)) % WARP_SIZE; + + B[0].x[l] = y_qs[j*MMQ_TILE_Y_K + k + 0]; + B[1].x[l] = y_qs[j*MMQ_TILE_Y_K + k + mma_B::K]; + } +#pragma unroll + for (int l = 0; l < mma_C::ne/2; ++l) { + const int j = j0 + mma_C::get_j(l); + + dB[l] = y_df[j*MMQ_TILE_Y_K + ((2*k0 + 2*kvdr)/QI8_1) % (WARP_SIZE/QI8_1)]; + } + + C[0].mma_K4(A[kvdr/2 + 0], B[0]); + C[1].mma_K4(A[kvdr/2 + 1], B[1]); + +#pragma unroll + for (int l = 0; l < mma_C::ne; ++l) { + tmp[l] += (C[0].x[l]*scA[l/2][kvdr/2 + 0] + C[1].x[l]*scA[l/2][kvdr/2 + 1])*dB[l%2]; + } + } + +#pragma unroll + for (int l = 0; l < mma_C::ne; ++l) { + sum[(j0/mma_B::J)*mma_C::ne + l] += tmp[l]*dA[l/2]; + } + } +} + template static __device__ __forceinline__ void mmq_write_back_dp4a(const float * __restrict__ sum, float * __restrict__ dst, const int & ne0, const int & ne1) { #pragma unroll @@ -1448,24 +1721,39 @@ template struct mmq_type_traits { static constexpr int vdr = VDR_Q4_K_Q8_1_MMQ; static constexpr load_tiles_mmq_t load_tiles = load_tiles_q4_K; - static constexpr vec_dot_mmq_t vec_dot = vec_dot_q4_K_q8_1_mul_mat; +#ifdef INT8_MMA_AVAILABLE + static constexpr vec_dot_mmq_t vec_dot = vec_dot_q4_K_q8_1_mma; + static constexpr mmq_write_back_t write_back = mmq_write_back_mma; +#else + static constexpr vec_dot_mmq_t vec_dot = vec_dot_q4_K_q8_1_dp4a; static constexpr mmq_write_back_t write_back = mmq_write_back_dp4a; +#endif // INT8_MMA_AVAILABLE }; template struct mmq_type_traits { static constexpr int vdr = VDR_Q5_K_Q8_1_MMQ; static constexpr load_tiles_mmq_t load_tiles = load_tiles_q5_K; - static constexpr vec_dot_mmq_t vec_dot = vec_dot_q5_K_q8_1_mul_mat; +#ifdef INT8_MMA_AVAILABLE + static constexpr vec_dot_mmq_t vec_dot = vec_dot_q5_K_q8_1_mma; + static constexpr mmq_write_back_t write_back = mmq_write_back_mma; +#else + static constexpr vec_dot_mmq_t vec_dot = vec_dot_q5_K_q8_1_dp4a; static constexpr mmq_write_back_t write_back = mmq_write_back_dp4a; +#endif // INT8_MMA_AVAILABLE }; template struct mmq_type_traits { static constexpr int vdr = VDR_Q6_K_Q8_1_MMQ; static constexpr load_tiles_mmq_t load_tiles = load_tiles_q6_K; - static constexpr vec_dot_mmq_t vec_dot = vec_dot_q6_K_q8_1_mul_mat; +#ifdef INT8_MMA_AVAILABLE + static constexpr vec_dot_mmq_t vec_dot = vec_dot_q6_K_q8_1_mma; + static constexpr mmq_write_back_t write_back = mmq_write_back_mma; +#else + static constexpr vec_dot_mmq_t vec_dot = vec_dot_q6_K_q8_1_dp4a; static constexpr mmq_write_back_t write_back = mmq_write_back_dp4a; +#endif // INT8_MMA_AVAILABLE }; static int mmq_need_sum(const ggml_type type_x) { From 4bfe50f741479c1df1c377260c3ff5702586719e Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Tue, 11 Jun 2024 10:10:20 +0300 Subject: [PATCH 052/131] tests : check the Python version (#7872) ggml-ci --- tests/test-json-schema-to-grammar.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/test-json-schema-to-grammar.cpp b/tests/test-json-schema-to-grammar.cpp index a33104dea3598..87bc66b691784 100755 --- a/tests/test-json-schema-to-grammar.cpp +++ b/tests/test-json-schema-to-grammar.cpp @@ -870,7 +870,7 @@ int main() { } }); - if (getenv("LLAMA_PYTHON_AVAILABLE") || (std::system("python --version") == 0)) { + if (getenv("LLAMA_PYTHON_AVAILABLE") || (std::system("python -c \"import sys; exit(1) if sys.version_info < (3, 8) else print('Python version is sufficient')\"") == 0)) { test_all("Python", [](const TestCase & tc) { write("test-json-schema-input.tmp", tc.schema); tc.verify_status(std::system( @@ -878,7 +878,7 @@ int main() { tc.verify(read("test-grammar-output.tmp")); }); } else { - fprintf(stderr, "\033[33mWARNING: Python not found, skipping Python JSON schema -> grammar tests.\n\033[0m"); + fprintf(stderr, "\033[33mWARNING: Python not found (min version required is 3.8), skipping Python JSON schema -> grammar tests.\n\033[0m"); } if (getenv("LLAMA_NODE_AVAILABLE") || (std::system("node --version") == 0)) { From 148995e5e57b313cce2672f75610db58c6327a51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20G=C3=A4=C3=9Fler?= Date: Tue, 11 Jun 2024 14:45:40 +0200 Subject: [PATCH 053/131] llama-bench: more compact markdown tables (#7879) --- examples/llama-bench/llama-bench.cpp | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/examples/llama-bench/llama-bench.cpp b/examples/llama-bench/llama-bench.cpp index 5c31548a6c25c..61f5a5a0928a2 100644 --- a/examples/llama-bench/llama-bench.cpp +++ b/examples/llama-bench/llama-bench.cpp @@ -1033,6 +1033,27 @@ struct markdown_printer : public printer { if (field == "n_gpu_layers") { return 3; } + if (field == "n_threads") { + return 7; + } + if (field == "n_batch") { + return 7; + } + if (field == "n_ubatch") { + return 8; + } + if (field == "type_k" || field == "type_v") { + return 6; + } + if (field == "split_mode") { + return 5; + } + if (field == "flash_attn") { + return 2; + } + if (field == "use_mmap") { + return 4; + } if (field == "test") { return 13; } From 6fe42d073f0554eada93ac9d40574025aeedb703 Mon Sep 17 00:00:00 2001 From: Brian Date: Wed, 12 Jun 2024 00:43:41 +1000 Subject: [PATCH 054/131] github: move PR template to .github/ root (#7868) --- .github/{PULL_REQUEST_TEMPLATE => }/pull_request_template.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .github/{PULL_REQUEST_TEMPLATE => }/pull_request_template.md (100%) diff --git a/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md b/.github/pull_request_template.md similarity index 100% rename from .github/PULL_REQUEST_TEMPLATE/pull_request_template.md rename to .github/pull_request_template.md From 14f83526cd27f638c856ea6eff08110b9860eb2a Mon Sep 17 00:00:00 2001 From: Deven Mistry <31466137+deven367@users.noreply.github.com> Date: Tue, 11 Jun 2024 12:18:58 -0400 Subject: [PATCH 055/131] fix broken link in pr template (#7880) [no ci] * fix broken link in pr template * Update pull_request_template.md [no ci] --------- Co-authored-by: Brian --- .github/pull_request_template.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 0852fded5867e..e6d032d87df57 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -2,4 +2,4 @@ - [ ] Review Complexity : Low - [ ] Review Complexity : Medium - [ ] Review Complexity : High -- [ ] I have read the [contributing guidelines](CONTRIBUTING.md) +- [ ] I have read the [contributing guidelines](https://github.com/ggerganov/llama.cpp/blob/master/CONTRIBUTING.md) From ef52d1d16afc695d798396cdd13594ea5e45a9dd Mon Sep 17 00:00:00 2001 From: 0cc4m Date: Tue, 11 Jun 2024 21:20:29 +0200 Subject: [PATCH 056/131] Update Vulkan RoPE implementation (#7818) * Update Vulkan RoPE implementation * Return nullptr on alloc_buffer when allocation fails, instead of throwing an exception Minor fixes * Fix segfault when running out of VRAM Co-authored-by: slaren --------- Co-authored-by: slaren --- ggml-alloc.c | 2 +- ggml-vulkan-shaders.hpp | 2359 ++++++++++++++++++----------------- ggml-vulkan.cpp | 93 +- ggml_vk_generate_shaders.py | 66 +- 4 files changed, 1302 insertions(+), 1218 deletions(-) diff --git a/ggml-alloc.c b/ggml-alloc.c index 73a3c15756ba1..eb75962d49cc3 100644 --- a/ggml-alloc.c +++ b/ggml-alloc.c @@ -886,7 +886,7 @@ static bool alloc_tensor_range(struct ggml_context * ctx, fprintf(stderr, "%s: failed to allocate %s buffer of size %zu\n", __func__, ggml_backend_buft_name(buft), size); #endif for (size_t i = 0; i < *n_buffers; i++) { - ggml_backend_buffer_free(*buffers[i]); + ggml_backend_buffer_free((*buffers)[i]); } free(*buffers); return false; diff --git a/ggml-vulkan-shaders.hpp b/ggml-vulkan-shaders.hpp index b50f55860cc52..4a8ee34157086 100644 --- a/ggml-vulkan-shaders.hpp +++ b/ggml-vulkan-shaders.hpp @@ -137706,126 +137706,149 @@ unsigned char rms_norm_f32_data[] = { }; const uint64_t rms_norm_f32_len = 2344; -unsigned char rope_f16_data[] = { +unsigned char rope_neox_f16_data[] = { 0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00, -0x1c,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, +0x50,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, 0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x51,0x11,0x00,0x00, 0x0b,0x00,0x06,0x00,0x01,0x00,0x00,0x00,0x47,0x4c,0x53,0x4c, 0x2e,0x73,0x74,0x64,0x2e,0x34,0x35,0x30,0x00,0x00,0x00,0x00, 0x0e,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x0f,0x00,0x0a,0x00,0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x6d,0x61,0x69,0x6e,0x00,0x00,0x00,0x00,0x2c,0x00,0x00,0x00, -0x67,0x00,0x00,0x00,0x8b,0x00,0x00,0x00,0xad,0x00,0x00,0x00, -0xbd,0x00,0x00,0x00,0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00, -0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x01,0x00,0x00, -0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x29,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x2a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x2a,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x2a,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x2a,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x2a,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x2a,0x00,0x00,0x00,0x05,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x2a,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x2a,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x67,0x00,0x00,0x00, -0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x88,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0x89,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x89,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0x89,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x8b,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x8b,0x00,0x00,0x00, -0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xaa,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0xab,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xab,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0xab,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xad,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xad,0x00,0x00,0x00, -0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xba,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x19,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xbb,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0xbb,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xbd,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xbd,0x00,0x00,0x00, -0x21,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xd5,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00, -0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00, -0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x16,0x00,0x03,0x00, -0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x15,0x00,0x04,0x00, -0x07,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x07,0x00,0x00,0x00,0x17,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x1b,0x00,0x00,0x00,0x6f,0x12,0x83,0x3a,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,0x00,0x00,0x80,0x3f, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00, +0x0f,0x00,0x0b,0x00,0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x6d,0x61,0x69,0x6e,0x00,0x00,0x00,0x00,0x2b,0x00,0x00,0x00, +0x67,0x00,0x00,0x00,0x8a,0x00,0x00,0x00,0x90,0x00,0x00,0x00, +0xb1,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,0x10,0x00,0x06,0x00, +0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x28,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x29,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x29,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x29,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x29,0x00,0x00,0x00,0x03,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x29,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x29,0x00,0x00,0x00, +0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x29,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x29,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x29,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x29,0x00,0x00,0x00,0x09,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0x29,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x67,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x87,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x88,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x88,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x8a,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x8a,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x03,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x8d,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x8e,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x8e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x8e,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x90,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x90,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xae,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0xaf,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0xaf,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0xaf,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xb1,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xb1,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xc8,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0xc9,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0xc9,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0xc9,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xcb,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xcb,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x07,0x01,0x00,0x00,0x0b,0x00,0x00,0x00, +0x19,0x00,0x00,0x00,0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00, +0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x16,0x00,0x03,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00, +0x15,0x00,0x04,0x00,0x07,0x00,0x00,0x00,0x20,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x07,0x00,0x00,0x00, -0x28,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, -0x29,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x28,0x00,0x00,0x00, -0x1e,0x00,0x09,0x00,0x2a,0x00,0x00,0x00,0x07,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x29,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x2b,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x2a,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x2b,0x00,0x00,0x00, -0x2c,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x15,0x00,0x04,0x00, -0x2d,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x2d,0x00,0x00,0x00,0x2e,0x00,0x00,0x00, -0x05,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x2f,0x00,0x00,0x00, +0x17,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x6f,0x12,0x83,0x3a, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x1f,0x00,0x00,0x00, +0x00,0x00,0x80,0x3f,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, +0x28,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x17,0x00,0x00,0x00, +0x1e,0x00,0x0c,0x00,0x29,0x00,0x00,0x00,0x07,0x00,0x00,0x00, +0x07,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x07,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x28,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x07,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x2a,0x00,0x00,0x00,0x09,0x00,0x00,0x00, +0x29,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x2a,0x00,0x00,0x00, +0x2b,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x15,0x00,0x04,0x00, +0x2c,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x2c,0x00,0x00,0x00,0x2d,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x2e,0x00,0x00,0x00, 0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x2d,0x00,0x00,0x00,0x33,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x2d,0x00,0x00,0x00,0x39,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x14,0x00,0x02,0x00,0x3c,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x2d,0x00,0x00,0x00,0x41,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x2d,0x00,0x00,0x00, -0x42,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x52,0x00,0x00,0x00,0xcd,0xcc,0xcc,0x3d, -0x17,0x00,0x04,0x00,0x65,0x00,0x00,0x00,0x07,0x00,0x00,0x00, -0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x66,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x65,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x66,0x00,0x00,0x00,0x67,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x07,0x00,0x00,0x00,0x68,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x69,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x07,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x72,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x2d,0x00,0x00,0x00, -0x82,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, -0x88,0x00,0x00,0x00,0x2d,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, -0x89,0x00,0x00,0x00,0x88,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x8a,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x89,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0x8a,0x00,0x00,0x00,0x8b,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x8d,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0x2d,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x2d,0x00,0x00,0x00,0x93,0x00,0x00,0x00,0x03,0x00,0x00,0x00, -0x16,0x00,0x03,0x00,0xa9,0x00,0x00,0x00,0x10,0x00,0x00,0x00, -0x1d,0x00,0x03,0x00,0xaa,0x00,0x00,0x00,0xa9,0x00,0x00,0x00, -0x1e,0x00,0x03,0x00,0xab,0x00,0x00,0x00,0xaa,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0xac,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0xab,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xac,0x00,0x00,0x00, -0xad,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0xb0,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xa9,0x00,0x00,0x00, -0x1d,0x00,0x03,0x00,0xba,0x00,0x00,0x00,0xa9,0x00,0x00,0x00, -0x1e,0x00,0x03,0x00,0xbb,0x00,0x00,0x00,0xba,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0xbc,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0xbb,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xbc,0x00,0x00,0x00, -0xbd,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x07,0x00,0x00,0x00,0xd4,0x00,0x00,0x00,0x00,0x01,0x00,0x00, -0x2c,0x00,0x06,0x00,0x65,0x00,0x00,0x00,0xd5,0x00,0x00,0x00, -0x68,0x00,0x00,0x00,0xd4,0x00,0x00,0x00,0x68,0x00,0x00,0x00, +0x2c,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x2c,0x00,0x00,0x00,0x38,0x00,0x00,0x00, +0x05,0x00,0x00,0x00,0x14,0x00,0x02,0x00,0x3b,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x2c,0x00,0x00,0x00,0x40,0x00,0x00,0x00, +0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x2c,0x00,0x00,0x00, +0x41,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x2c,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x52,0x00,0x00,0x00, +0xcd,0xcc,0xcc,0x3d,0x17,0x00,0x04,0x00,0x65,0x00,0x00,0x00, +0x07,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x66,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x65,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x66,0x00,0x00,0x00,0x67,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x07,0x00,0x00,0x00, +0x68,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x69,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x07,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x07,0x00,0x00,0x00,0x6e,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x72,0x00,0x00,0x00, +0x09,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x16,0x00,0x03,0x00, +0x86,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, +0x87,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, +0x88,0x00,0x00,0x00,0x87,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x89,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x88,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x89,0x00,0x00,0x00,0x8a,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x8d,0x00,0x00,0x00, +0x86,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x8e,0x00,0x00,0x00, +0x8d,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x8f,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0x8f,0x00,0x00,0x00,0x90,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x93,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x86,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x2c,0x00,0x00,0x00, +0xa9,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, +0xae,0x00,0x00,0x00,0x2c,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, +0xaf,0x00,0x00,0x00,0xae,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0xb0,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xaf,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0xb0,0x00,0x00,0x00,0xb1,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xb3,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x2c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x2c,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x2c,0x00,0x00,0x00,0xc1,0x00,0x00,0x00, +0x09,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0xc8,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xc9,0x00,0x00,0x00, +0xc8,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xca,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0xca,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0xce,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x07,0x00,0x00,0x00, +0x06,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x2c,0x00,0x06,0x00, +0x65,0x00,0x00,0x00,0x07,0x01,0x00,0x00,0x68,0x00,0x00,0x00, +0x06,0x01,0x00,0x00,0x68,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x4d,0x01,0x00,0x00,0x00,0x00,0x00,0x3f, 0x36,0x00,0x05,0x00,0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0x05,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0xd6,0x00,0x00,0x00, +0x05,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0x08,0x01,0x00,0x00, 0x00,0x00,0x00,0x00,0xfb,0x00,0x03,0x00,0x6e,0x00,0x00,0x00, -0xd7,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xd7,0x00,0x00,0x00, +0x09,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x09,0x01,0x00,0x00, 0x41,0x00,0x05,0x00,0x69,0x00,0x00,0x00,0x6a,0x00,0x00,0x00, 0x67,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, 0x07,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,0x6a,0x00,0x00,0x00, @@ -137834,198 +137857,581 @@ unsigned char rope_f16_data[] = { 0x69,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x67,0x00,0x00,0x00, 0x6e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x07,0x00,0x00,0x00, 0x70,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x41,0x00,0x05,0x00, -0x72,0x00,0x00,0x00,0x73,0x00,0x00,0x00,0x2c,0x00,0x00,0x00, -0x42,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x07,0x00,0x00,0x00, +0x72,0x00,0x00,0x00,0x73,0x00,0x00,0x00,0x2b,0x00,0x00,0x00, +0x41,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x07,0x00,0x00,0x00, 0x74,0x00,0x00,0x00,0x73,0x00,0x00,0x00,0xae,0x00,0x05,0x00, -0x3c,0x00,0x00,0x00,0x75,0x00,0x00,0x00,0x6c,0x00,0x00,0x00, +0x3b,0x00,0x00,0x00,0x75,0x00,0x00,0x00,0x6c,0x00,0x00,0x00, 0x74,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0x77,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x75,0x00,0x00,0x00, 0x76,0x00,0x00,0x00,0x77,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0x76,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xd6,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0x77,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x07,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,0x70,0x00,0x00,0x00, -0x74,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x07,0x00,0x00,0x00, -0x7f,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,0x6c,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x72,0x00,0x00,0x00,0x83,0x00,0x00,0x00, -0x2c,0x00,0x00,0x00,0x82,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x07,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x83,0x00,0x00,0x00, -0x86,0x00,0x05,0x00,0x07,0x00,0x00,0x00,0x85,0x00,0x00,0x00, -0x70,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x41,0x00,0x06,0x00, -0x8d,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,0x8b,0x00,0x00,0x00, -0x42,0x00,0x00,0x00,0x85,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x2d,0x00,0x00,0x00,0x8f,0x00,0x00,0x00,0x8e,0x00,0x00,0x00, -0x6f,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x92,0x00,0x00,0x00, -0x8f,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x2f,0x00,0x00,0x00, -0x94,0x00,0x00,0x00,0x2c,0x00,0x00,0x00,0x93,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x95,0x00,0x00,0x00, -0x94,0x00,0x00,0x00,0x70,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x97,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x7f,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x98,0x00,0x00,0x00,0x97,0x00,0x00,0x00, -0x70,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x9b,0x00,0x00,0x00, -0x74,0x00,0x00,0x00,0x88,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x9c,0x00,0x00,0x00,0x98,0x00,0x00,0x00,0x9b,0x00,0x00,0x00, -0x0c,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x9d,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x95,0x00,0x00,0x00, -0x9c,0x00,0x00,0x00,0x85,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x9e,0x00,0x00,0x00,0x92,0x00,0x00,0x00,0x9d,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x2f,0x00,0x00,0x00,0xe1,0x00,0x00,0x00, -0x2c,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xe2,0x00,0x00,0x00,0xe1,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x2f,0x00,0x00,0x00,0xe3,0x00,0x00,0x00, -0x2c,0x00,0x00,0x00,0x33,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xe4,0x00,0x00,0x00,0xe3,0x00,0x00,0x00, -0x85,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe5,0x00,0x00,0x00, -0xe4,0x00,0x00,0x00,0x9e,0x00,0x00,0x00,0x41,0x00,0x05,0x00, -0x2f,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,0x2c,0x00,0x00,0x00, -0x39,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xe8,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,0xb7,0x00,0x05,0x00, -0x3c,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,0xe8,0x00,0x00,0x00, -0x20,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0x02,0x01,0x00,0x00, -0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xe9,0x00,0x00,0x00, -0xea,0x00,0x00,0x00,0x02,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, -0xea,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x2f,0x00,0x00,0x00, -0xeb,0x00,0x00,0x00,0x2c,0x00,0x00,0x00,0x41,0x00,0x00,0x00, -0x42,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xec,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0x41,0x00,0x06,0x00, -0x2f,0x00,0x00,0x00,0xed,0x00,0x00,0x00,0x2c,0x00,0x00,0x00, -0x41,0x00,0x00,0x00,0x33,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0xed,0x00,0x00,0x00, -0x86,0x00,0x05,0x00,0x07,0x00,0x00,0x00,0x0e,0x01,0x00,0x00, -0x6c,0x00,0x00,0x00,0x17,0x00,0x00,0x00,0x70,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x0f,0x01,0x00,0x00,0x0e,0x01,0x00,0x00, -0x83,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x10,0x01,0x00,0x00, -0x0f,0x01,0x00,0x00,0xec,0x00,0x00,0x00,0x83,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x11,0x01,0x00,0x00,0xee,0x00,0x00,0x00, -0xec,0x00,0x00,0x00,0x0c,0x00,0x07,0x00,0x06,0x00,0x00,0x00, -0x12,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x28,0x00,0x00,0x00, -0x1b,0x00,0x00,0x00,0x11,0x01,0x00,0x00,0x88,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x13,0x01,0x00,0x00,0x10,0x01,0x00,0x00, -0x12,0x01,0x00,0x00,0x0c,0x00,0x07,0x00,0x06,0x00,0x00,0x00, -0x15,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x28,0x00,0x00,0x00, -0x20,0x00,0x00,0x00,0x13,0x01,0x00,0x00,0x0c,0x00,0x07,0x00, -0x06,0x00,0x00,0x00,0x16,0x01,0x00,0x00,0x01,0x00,0x00,0x00, -0x25,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,0x15,0x01,0x00,0x00, -0x83,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x17,0x01,0x00,0x00, -0x1f,0x00,0x00,0x00,0x16,0x01,0x00,0x00,0x85,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xf2,0x00,0x00,0x00,0x17,0x01,0x00,0x00, -0xe8,0x00,0x00,0x00,0x83,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x1a,0x01,0x00,0x00,0x16,0x01,0x00,0x00,0x1f,0x00,0x00,0x00, -0x0c,0x00,0x08,0x00,0x06,0x00,0x00,0x00,0xf5,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x1a,0x01,0x00,0x00, -0xe8,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,0x85,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0x9e,0x00,0x00,0x00, -0xf2,0x00,0x00,0x00,0x0c,0x00,0x08,0x00,0x06,0x00,0x00,0x00, -0xf9,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0xe5,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,0xf8,0x00,0x00,0x00, -0x88,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfc,0x00,0x00,0x00, -0x1f,0x00,0x00,0x00,0xe4,0x00,0x00,0x00,0x0c,0x00,0x06,0x00, -0x06,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x0c,0x00,0x08,0x00, -0x06,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0x52,0x00,0x00,0x00,0xfd,0x00,0x00,0x00, +0x76,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x08,0x01,0x00,0x00, +0xf8,0x00,0x02,0x00,0x77,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0x72,0x00,0x00,0x00,0x7a,0x00,0x00,0x00,0x2b,0x00,0x00,0x00, +0x44,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x07,0x00,0x00,0x00, +0x7b,0x00,0x00,0x00,0x7a,0x00,0x00,0x00,0xae,0x00,0x05,0x00, +0x3b,0x00,0x00,0x00,0x7c,0x00,0x00,0x00,0x6c,0x00,0x00,0x00, +0x7b,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0x7e,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x7c,0x00,0x00,0x00, +0x7d,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0x7d,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x07,0x00,0x00,0x00, +0x83,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x74,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x07,0x00,0x00,0x00,0x85,0x00,0x00,0x00, +0x83,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x41,0x00,0x06,0x00, +0x93,0x00,0x00,0x00,0x94,0x00,0x00,0x00,0x90,0x00,0x00,0x00, +0x41,0x00,0x00,0x00,0x85,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x86,0x00,0x00,0x00,0x95,0x00,0x00,0x00,0x94,0x00,0x00,0x00, +0x41,0x00,0x06,0x00,0x93,0x00,0x00,0x00,0x96,0x00,0x00,0x00, +0x8a,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x85,0x00,0x00,0x00, +0x3e,0x00,0x03,0x00,0x96,0x00,0x00,0x00,0x95,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x07,0x00,0x00,0x00,0x98,0x00,0x00,0x00, +0x85,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x41,0x00,0x06,0x00, +0x93,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,0x90,0x00,0x00,0x00, +0x41,0x00,0x00,0x00,0x98,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x86,0x00,0x00,0x00,0x9c,0x00,0x00,0x00,0x9b,0x00,0x00,0x00, +0x41,0x00,0x06,0x00,0x93,0x00,0x00,0x00,0x9d,0x00,0x00,0x00, +0x8a,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x98,0x00,0x00,0x00, +0x3e,0x00,0x03,0x00,0x9d,0x00,0x00,0x00,0x9c,0x00,0x00,0x00, +0xf9,0x00,0x02,0x00,0x08,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, +0x7e,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x07,0x00,0x00,0x00, +0xa3,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x74,0x00,0x00,0x00, +0x86,0x00,0x05,0x00,0x07,0x00,0x00,0x00,0xa5,0x00,0x00,0x00, +0x6c,0x00,0x00,0x00,0x17,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x07,0x00,0x00,0x00,0xa6,0x00,0x00,0x00,0xa3,0x00,0x00,0x00, +0xa5,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x72,0x00,0x00,0x00, +0xaa,0x00,0x00,0x00,0x2b,0x00,0x00,0x00,0xa9,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x07,0x00,0x00,0x00,0xab,0x00,0x00,0x00, +0xaa,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x07,0x00,0x00,0x00, +0xac,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0xab,0x00,0x00,0x00, +0x41,0x00,0x06,0x00,0xb3,0x00,0x00,0x00,0xb4,0x00,0x00,0x00, +0xb1,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0xac,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x2c,0x00,0x00,0x00,0xb5,0x00,0x00,0x00, +0xb4,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xb6,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0x2e,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0x2b,0x00,0x00,0x00, +0xb7,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xb9,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0x70,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0x6c,0x00,0x00,0x00, +0x85,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbd,0x00,0x00,0x00, +0xbb,0x00,0x00,0x00,0x4d,0x01,0x00,0x00,0x0c,0x00,0x07,0x00, +0x06,0x00,0x00,0x00,0xbe,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x1a,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0xbd,0x00,0x00,0x00, +0x85,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbf,0x00,0x00,0x00, +0xb6,0x00,0x00,0x00,0xbe,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0x72,0x00,0x00,0x00,0xc2,0x00,0x00,0x00,0x2b,0x00,0x00,0x00, +0xc1,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x07,0x00,0x00,0x00, +0xc3,0x00,0x00,0x00,0xc2,0x00,0x00,0x00,0xab,0x00,0x05,0x00, +0x3b,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,0xc3,0x00,0x00,0x00, +0x6e,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0xc7,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xc4,0x00,0x00,0x00, +0xc6,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xc6,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xce,0x00,0x00,0x00, +0xcf,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,0x41,0x00,0x00,0x00, +0xa5,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xd0,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, +0xc7,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xd1,0x00,0x00,0x00, +0xf9,0x00,0x02,0x00,0xc7,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xc7,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00, +0x4a,0x01,0x00,0x00,0xd0,0x00,0x00,0x00,0xc6,0x00,0x00,0x00, +0x1f,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,0x88,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0xbf,0x00,0x00,0x00, +0x4a,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x2e,0x00,0x00,0x00, +0x13,0x01,0x00,0x00,0x2b,0x00,0x00,0x00,0x2d,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x14,0x01,0x00,0x00, +0x13,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x2e,0x00,0x00,0x00, +0x15,0x01,0x00,0x00,0x2b,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x16,0x01,0x00,0x00, +0x15,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x17,0x01,0x00,0x00,0x16,0x01,0x00,0x00,0xd5,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x2e,0x00,0x00,0x00,0x19,0x01,0x00,0x00, +0x2b,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x1a,0x01,0x00,0x00,0x19,0x01,0x00,0x00, +0xb7,0x00,0x05,0x00,0x3b,0x00,0x00,0x00,0x1b,0x01,0x00,0x00, +0x1a,0x01,0x00,0x00,0x20,0x00,0x00,0x00,0xf7,0x00,0x03,0x00, +0x34,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, +0x1b,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,0x34,0x01,0x00,0x00, +0xf8,0x00,0x02,0x00,0x1c,0x01,0x00,0x00,0x41,0x00,0x06,0x00, +0x2e,0x00,0x00,0x00,0x1d,0x01,0x00,0x00,0x2b,0x00,0x00,0x00, +0x40,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x1e,0x01,0x00,0x00,0x1d,0x01,0x00,0x00, +0x41,0x00,0x06,0x00,0x2e,0x00,0x00,0x00,0x1f,0x01,0x00,0x00, +0x2b,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x44,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x20,0x01,0x00,0x00, +0x1f,0x01,0x00,0x00,0x70,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x41,0x01,0x00,0x00,0xa5,0x00,0x00,0x00,0x83,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x42,0x01,0x00,0x00,0x41,0x01,0x00,0x00, +0x1e,0x01,0x00,0x00,0x83,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x43,0x01,0x00,0x00,0x20,0x01,0x00,0x00,0x1e,0x01,0x00,0x00, +0x0c,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x44,0x01,0x00,0x00, +0x01,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x1b,0x00,0x00,0x00, +0x43,0x01,0x00,0x00,0x88,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x45,0x01,0x00,0x00,0x42,0x01,0x00,0x00,0x44,0x01,0x00,0x00, +0x0c,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x47,0x01,0x00,0x00, +0x01,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x20,0x00,0x00,0x00, +0x45,0x01,0x00,0x00,0x0c,0x00,0x07,0x00,0x06,0x00,0x00,0x00, +0x48,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x25,0x00,0x00,0x00, +0x1f,0x00,0x00,0x00,0x47,0x01,0x00,0x00,0x83,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x49,0x01,0x00,0x00,0x1f,0x00,0x00,0x00, +0x48,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x24,0x01,0x00,0x00,0x49,0x01,0x00,0x00,0x1a,0x01,0x00,0x00, +0x83,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4e,0x01,0x00,0x00, +0x48,0x01,0x00,0x00,0x1f,0x00,0x00,0x00,0x0c,0x00,0x08,0x00, +0x06,0x00,0x00,0x00,0x27,0x01,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x4e,0x01,0x00,0x00,0x1a,0x01,0x00,0x00, 0x1f,0x00,0x00,0x00,0x85,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x01,0x01,0x00,0x00,0xe2,0x00,0x00,0x00,0xff,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0x02,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, -0x02,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00, -0x19,0x01,0x00,0x00,0xe2,0x00,0x00,0x00,0x77,0x00,0x00,0x00, -0x01,0x01,0x00,0x00,0xea,0x00,0x00,0x00,0xf5,0x00,0x07,0x00, -0x06,0x00,0x00,0x00,0x18,0x01,0x00,0x00,0xe5,0x00,0x00,0x00, -0x77,0x00,0x00,0x00,0xf9,0x00,0x00,0x00,0xea,0x00,0x00,0x00, -0x0c,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x04,0x01,0x00,0x00, -0x01,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x18,0x01,0x00,0x00, -0x85,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x06,0x01,0x00,0x00, -0x04,0x01,0x00,0x00,0x19,0x01,0x00,0x00,0x0c,0x00,0x06,0x00, -0x06,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x01,0x00,0x00,0x00, -0x0d,0x00,0x00,0x00,0x18,0x01,0x00,0x00,0x85,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x0a,0x01,0x00,0x00,0x08,0x01,0x00,0x00, -0x19,0x01,0x00,0x00,0x41,0x00,0x06,0x00,0xb0,0x00,0x00,0x00, -0xb1,0x00,0x00,0x00,0xad,0x00,0x00,0x00,0x42,0x00,0x00,0x00, -0x7f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xa9,0x00,0x00,0x00, -0xb2,0x00,0x00,0x00,0xb1,0x00,0x00,0x00,0x73,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,0xb2,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x07,0x00,0x00,0x00,0xb6,0x00,0x00,0x00, -0x7f,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x41,0x00,0x06,0x00, -0xb0,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,0xad,0x00,0x00,0x00, -0x42,0x00,0x00,0x00,0xb6,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0xa9,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0xb7,0x00,0x00,0x00, -0x73,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xb9,0x00,0x00,0x00, -0xb8,0x00,0x00,0x00,0x85,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xc5,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0x0a,0x01,0x00,0x00, -0x7f,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x1b,0x01,0x00,0x00, -0xc5,0x00,0x00,0x00,0x0c,0x00,0x08,0x00,0x06,0x00,0x00,0x00, -0xc6,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0xb3,0x00,0x00,0x00,0x06,0x01,0x00,0x00,0x1b,0x01,0x00,0x00, -0x73,0x00,0x04,0x00,0xa9,0x00,0x00,0x00,0xc7,0x00,0x00,0x00, -0xc6,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xb0,0x00,0x00,0x00, -0xc8,0x00,0x00,0x00,0xbd,0x00,0x00,0x00,0x42,0x00,0x00,0x00, -0x7f,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0xc8,0x00,0x00,0x00, -0xc7,0x00,0x00,0x00,0x85,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xd0,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0x06,0x01,0x00,0x00, -0x0c,0x00,0x08,0x00,0x06,0x00,0x00,0x00,0xd1,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xb3,0x00,0x00,0x00, -0x0a,0x01,0x00,0x00,0xd0,0x00,0x00,0x00,0x73,0x00,0x04,0x00, -0xa9,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,0xd1,0x00,0x00,0x00, -0x41,0x00,0x06,0x00,0xb0,0x00,0x00,0x00,0xd3,0x00,0x00,0x00, -0xbd,0x00,0x00,0x00,0x42,0x00,0x00,0x00,0xb6,0x00,0x00,0x00, -0x3e,0x00,0x03,0x00,0xd3,0x00,0x00,0x00,0xd2,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0xd6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0xd6,0x00,0x00,0x00,0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00, - +0x2a,0x01,0x00,0x00,0xd5,0x00,0x00,0x00,0x24,0x01,0x00,0x00, +0x0c,0x00,0x08,0x00,0x06,0x00,0x00,0x00,0x2b,0x01,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x17,0x01,0x00,0x00, +0x27,0x01,0x00,0x00,0x2a,0x01,0x00,0x00,0x88,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x2e,0x01,0x00,0x00,0x1f,0x00,0x00,0x00, +0x16,0x01,0x00,0x00,0x0c,0x00,0x06,0x00,0x06,0x00,0x00,0x00, +0x2f,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0x2e,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0x06,0x00,0x00,0x00, +0x31,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0x52,0x00,0x00,0x00,0x2f,0x01,0x00,0x00,0x1f,0x00,0x00,0x00, +0x85,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x33,0x01,0x00,0x00, +0x14,0x01,0x00,0x00,0x31,0x01,0x00,0x00,0xf9,0x00,0x02,0x00, +0x34,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x34,0x01,0x00,0x00, +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x4c,0x01,0x00,0x00, +0x14,0x01,0x00,0x00,0xc7,0x00,0x00,0x00,0x33,0x01,0x00,0x00, +0x1c,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00, +0x4b,0x01,0x00,0x00,0x17,0x01,0x00,0x00,0xc7,0x00,0x00,0x00, +0x2b,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,0x0c,0x00,0x06,0x00, +0x06,0x00,0x00,0x00,0x36,0x01,0x00,0x00,0x01,0x00,0x00,0x00, +0x0e,0x00,0x00,0x00,0x4b,0x01,0x00,0x00,0x85,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x38,0x01,0x00,0x00,0x36,0x01,0x00,0x00, +0x4c,0x01,0x00,0x00,0x0c,0x00,0x06,0x00,0x06,0x00,0x00,0x00, +0x3a,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x0d,0x00,0x00,0x00, +0x4b,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x3c,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,0x4c,0x01,0x00,0x00, +0x41,0x00,0x06,0x00,0x93,0x00,0x00,0x00,0xe1,0x00,0x00,0x00, +0x90,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0xa6,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x86,0x00,0x00,0x00,0xe2,0x00,0x00,0x00, +0xe1,0x00,0x00,0x00,0x73,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xe3,0x00,0x00,0x00,0xe2,0x00,0x00,0x00,0x86,0x00,0x05,0x00, +0x07,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0x7b,0x00,0x00,0x00, +0x17,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x07,0x00,0x00,0x00, +0xe9,0x00,0x00,0x00,0xa6,0x00,0x00,0x00,0xe8,0x00,0x00,0x00, +0x41,0x00,0x06,0x00,0x93,0x00,0x00,0x00,0xea,0x00,0x00,0x00, +0x90,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0xe9,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x86,0x00,0x00,0x00,0xeb,0x00,0x00,0x00, +0xea,0x00,0x00,0x00,0x73,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xec,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0x85,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,0xec,0x00,0x00,0x00, +0x3c,0x01,0x00,0x00,0x7f,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x4f,0x01,0x00,0x00,0xf4,0x00,0x00,0x00,0x0c,0x00,0x08,0x00, +0x06,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0xe3,0x00,0x00,0x00,0x38,0x01,0x00,0x00, +0x4f,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x86,0x00,0x00,0x00, +0xf6,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,0x41,0x00,0x06,0x00, +0x93,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,0x8a,0x00,0x00,0x00, +0x41,0x00,0x00,0x00,0xa6,0x00,0x00,0x00,0x3e,0x00,0x03,0x00, +0xf7,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,0x85,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x02,0x01,0x00,0x00,0xec,0x00,0x00,0x00, +0x38,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0x06,0x00,0x00,0x00, +0x03,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0xe3,0x00,0x00,0x00,0x3c,0x01,0x00,0x00,0x02,0x01,0x00,0x00, +0x73,0x00,0x04,0x00,0x86,0x00,0x00,0x00,0x04,0x01,0x00,0x00, +0x03,0x01,0x00,0x00,0x41,0x00,0x06,0x00,0x93,0x00,0x00,0x00, +0x05,0x01,0x00,0x00,0x8a,0x00,0x00,0x00,0x41,0x00,0x00,0x00, +0xe9,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0x05,0x01,0x00,0x00, +0x04,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x08,0x01,0x00,0x00, +0xf8,0x00,0x02,0x00,0x08,0x01,0x00,0x00,0xfd,0x00,0x01,0x00, +0x38,0x00,0x01,0x00, }; -const uint64_t rope_f16_len = 3156; +const uint64_t rope_neox_f16_len = 3952; -unsigned char rope_f32_data[] = { +unsigned char rope_neox_f32_data[] = { 0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00, -0x17,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, +0x4a,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, 0x01,0x00,0x00,0x00,0x0b,0x00,0x06,0x00,0x01,0x00,0x00,0x00, 0x47,0x4c,0x53,0x4c,0x2e,0x73,0x74,0x64,0x2e,0x34,0x35,0x30, 0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00,0x00,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x0f,0x00,0x0a,0x00,0x05,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x0f,0x00,0x0b,0x00,0x05,0x00,0x00,0x00, 0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e,0x00,0x00,0x00,0x00, -0x2c,0x00,0x00,0x00,0x67,0x00,0x00,0x00,0x8b,0x00,0x00,0x00, -0xac,0x00,0x00,0x00,0xba,0x00,0x00,0x00,0x10,0x00,0x06,0x00, +0x2b,0x00,0x00,0x00,0x67,0x00,0x00,0x00,0x89,0x00,0x00,0x00, +0x8f,0x00,0x00,0x00,0xb0,0x00,0x00,0x00,0xca,0x00,0x00,0x00, +0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x28,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x29,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x29,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x29,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x29,0x00,0x00,0x00, +0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x29,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x29,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x29,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x29,0x00,0x00,0x00,0x07,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x29,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x24,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x29,0x00,0x00,0x00, +0x09,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x28,0x00,0x00,0x00, +0x47,0x00,0x03,0x00,0x29,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x67,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x86,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00, +0x87,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x87,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0x87,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x89,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x89,0x00,0x00,0x00,0x21,0x00,0x00,0x00, +0x03,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x8c,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00, +0x8d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x8d,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0x8d,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x8f,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x8f,0x00,0x00,0x00,0x21,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xad,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00, +0xae,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0xae,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0xae,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xb0,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xb0,0x00,0x00,0x00,0x21,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xc7,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00, +0xc8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0xc8,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0xc8,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xca,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xca,0x00,0x00,0x00,0x21,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x01,0x01,0x00,0x00, +0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x13,0x00,0x02,0x00, +0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0x06,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x07,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x07,0x00,0x00,0x00,0x17,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x1b,0x00,0x00,0x00, +0x6f,0x12,0x83,0x3a,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x1f,0x00,0x00,0x00,0x00,0x00,0x80,0x3f,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x1c,0x00,0x04,0x00,0x28,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x17,0x00,0x00,0x00,0x1e,0x00,0x0c,0x00,0x29,0x00,0x00,0x00, +0x07,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x07,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x07,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x2a,0x00,0x00,0x00, +0x09,0x00,0x00,0x00,0x29,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0x2a,0x00,0x00,0x00,0x2b,0x00,0x00,0x00,0x09,0x00,0x00,0x00, +0x15,0x00,0x04,0x00,0x2c,0x00,0x00,0x00,0x20,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x2c,0x00,0x00,0x00, +0x2d,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x2e,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x2c,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x2c,0x00,0x00,0x00, +0x38,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x14,0x00,0x02,0x00, +0x3b,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x2c,0x00,0x00,0x00, +0x40,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x2c,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x2c,0x00,0x00,0x00,0x44,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x52,0x00,0x00,0x00,0xcd,0xcc,0xcc,0x3d,0x17,0x00,0x04,0x00, +0x65,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x03,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x66,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x65,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x66,0x00,0x00,0x00, +0x67,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x07,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x69,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x07,0x00,0x00,0x00, +0x6e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x72,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x07,0x00,0x00,0x00, +0x1d,0x00,0x03,0x00,0x86,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x1e,0x00,0x03,0x00,0x87,0x00,0x00,0x00,0x86,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x88,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x87,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x88,0x00,0x00,0x00, +0x89,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, +0x8c,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, +0x8d,0x00,0x00,0x00,0x8c,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x8e,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x8d,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x8e,0x00,0x00,0x00,0x8f,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x92,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x2c,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,0x03,0x00,0x00,0x00, +0x1d,0x00,0x03,0x00,0xad,0x00,0x00,0x00,0x2c,0x00,0x00,0x00, +0x1e,0x00,0x03,0x00,0xae,0x00,0x00,0x00,0xad,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0xaf,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0xae,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xaf,0x00,0x00,0x00, +0xb0,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0xb2,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x2c,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x2c,0x00,0x00,0x00,0xb6,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x2c,0x00,0x00,0x00, +0xc0,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, +0xc7,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, +0xc8,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0xc9,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xc8,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0xc9,0x00,0x00,0x00,0xca,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x07,0x00,0x00,0x00, +0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x2c,0x00,0x06,0x00, +0x65,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x68,0x00,0x00,0x00, +0x00,0x01,0x00,0x00,0x68,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x47,0x01,0x00,0x00,0x00,0x00,0x00,0x3f, +0x36,0x00,0x05,0x00,0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0x05,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0x02,0x01,0x00,0x00, +0x00,0x00,0x00,0x00,0xfb,0x00,0x03,0x00,0x6e,0x00,0x00,0x00, +0x03,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x03,0x01,0x00,0x00, +0x41,0x00,0x05,0x00,0x69,0x00,0x00,0x00,0x6a,0x00,0x00,0x00, +0x67,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x07,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,0x6a,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x07,0x00,0x00,0x00,0x6c,0x00,0x00,0x00, +0x6b,0x00,0x00,0x00,0x17,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0x69,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x67,0x00,0x00,0x00, +0x6e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x07,0x00,0x00,0x00, +0x70,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0x72,0x00,0x00,0x00,0x73,0x00,0x00,0x00,0x2b,0x00,0x00,0x00, +0x41,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x07,0x00,0x00,0x00, +0x74,0x00,0x00,0x00,0x73,0x00,0x00,0x00,0xae,0x00,0x05,0x00, +0x3b,0x00,0x00,0x00,0x75,0x00,0x00,0x00,0x6c,0x00,0x00,0x00, +0x74,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0x77,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x75,0x00,0x00,0x00, +0x76,0x00,0x00,0x00,0x77,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0x76,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x02,0x01,0x00,0x00, +0xf8,0x00,0x02,0x00,0x77,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0x72,0x00,0x00,0x00,0x7a,0x00,0x00,0x00,0x2b,0x00,0x00,0x00, +0x44,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x07,0x00,0x00,0x00, +0x7b,0x00,0x00,0x00,0x7a,0x00,0x00,0x00,0xae,0x00,0x05,0x00, +0x3b,0x00,0x00,0x00,0x7c,0x00,0x00,0x00,0x6c,0x00,0x00,0x00, +0x7b,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0x7e,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x7c,0x00,0x00,0x00, +0x7d,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0x7d,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x07,0x00,0x00,0x00, +0x83,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x74,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x07,0x00,0x00,0x00,0x85,0x00,0x00,0x00, +0x83,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x41,0x00,0x06,0x00, +0x92,0x00,0x00,0x00,0x93,0x00,0x00,0x00,0x8f,0x00,0x00,0x00, +0x41,0x00,0x00,0x00,0x85,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x94,0x00,0x00,0x00,0x93,0x00,0x00,0x00, +0x41,0x00,0x06,0x00,0x92,0x00,0x00,0x00,0x95,0x00,0x00,0x00, +0x89,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x85,0x00,0x00,0x00, +0x3e,0x00,0x03,0x00,0x95,0x00,0x00,0x00,0x94,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x07,0x00,0x00,0x00,0x97,0x00,0x00,0x00, +0x85,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x41,0x00,0x06,0x00, +0x92,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,0x8f,0x00,0x00,0x00, +0x41,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,0x9a,0x00,0x00,0x00, +0x41,0x00,0x06,0x00,0x92,0x00,0x00,0x00,0x9c,0x00,0x00,0x00, +0x89,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x97,0x00,0x00,0x00, +0x3e,0x00,0x03,0x00,0x9c,0x00,0x00,0x00,0x9b,0x00,0x00,0x00, +0xf9,0x00,0x02,0x00,0x02,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, +0x7e,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x07,0x00,0x00,0x00, +0xa2,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x74,0x00,0x00,0x00, +0x86,0x00,0x05,0x00,0x07,0x00,0x00,0x00,0xa4,0x00,0x00,0x00, +0x6c,0x00,0x00,0x00,0x17,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x07,0x00,0x00,0x00,0xa5,0x00,0x00,0x00,0xa2,0x00,0x00,0x00, +0xa4,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x72,0x00,0x00,0x00, +0xa9,0x00,0x00,0x00,0x2b,0x00,0x00,0x00,0xa8,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x07,0x00,0x00,0x00,0xaa,0x00,0x00,0x00, +0xa9,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x07,0x00,0x00,0x00, +0xab,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0xaa,0x00,0x00,0x00, +0x41,0x00,0x06,0x00,0xb2,0x00,0x00,0x00,0xb3,0x00,0x00,0x00, +0xb0,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0xab,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x2c,0x00,0x00,0x00,0xb4,0x00,0x00,0x00, +0xb3,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xb5,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0x2e,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,0x2b,0x00,0x00,0x00, +0xb6,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xb8,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,0x70,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xba,0x00,0x00,0x00,0x6c,0x00,0x00,0x00, +0x85,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbc,0x00,0x00,0x00, +0xba,0x00,0x00,0x00,0x47,0x01,0x00,0x00,0x0c,0x00,0x07,0x00, +0x06,0x00,0x00,0x00,0xbd,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x1a,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0xbc,0x00,0x00,0x00, +0x85,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbe,0x00,0x00,0x00, +0xb5,0x00,0x00,0x00,0xbd,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0x72,0x00,0x00,0x00,0xc1,0x00,0x00,0x00,0x2b,0x00,0x00,0x00, +0xc0,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x07,0x00,0x00,0x00, +0xc2,0x00,0x00,0x00,0xc1,0x00,0x00,0x00,0xab,0x00,0x05,0x00, +0x3b,0x00,0x00,0x00,0xc3,0x00,0x00,0x00,0xc2,0x00,0x00,0x00, +0x6e,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0xc6,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xc3,0x00,0x00,0x00, +0xc5,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xc5,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x92,0x00,0x00,0x00, +0xcd,0x00,0x00,0x00,0xca,0x00,0x00,0x00,0x41,0x00,0x00,0x00, +0xa4,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xce,0x00,0x00,0x00,0xcd,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, +0xc6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xcf,0x00,0x00,0x00, +0xf9,0x00,0x02,0x00,0xc6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xc6,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00, +0x44,0x01,0x00,0x00,0xce,0x00,0x00,0x00,0xc5,0x00,0x00,0x00, +0x1f,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x88,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,0xbe,0x00,0x00,0x00, +0x44,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x2e,0x00,0x00,0x00, +0x0d,0x01,0x00,0x00,0x2b,0x00,0x00,0x00,0x2d,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x0e,0x01,0x00,0x00, +0x0d,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x2e,0x00,0x00,0x00, +0x0f,0x01,0x00,0x00,0x2b,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x10,0x01,0x00,0x00, +0x0f,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x11,0x01,0x00,0x00,0x10,0x01,0x00,0x00,0xd3,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x2e,0x00,0x00,0x00,0x13,0x01,0x00,0x00, +0x2b,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x14,0x01,0x00,0x00,0x13,0x01,0x00,0x00, +0xb7,0x00,0x05,0x00,0x3b,0x00,0x00,0x00,0x15,0x01,0x00,0x00, +0x14,0x01,0x00,0x00,0x20,0x00,0x00,0x00,0xf7,0x00,0x03,0x00, +0x2e,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, +0x15,0x01,0x00,0x00,0x16,0x01,0x00,0x00,0x2e,0x01,0x00,0x00, +0xf8,0x00,0x02,0x00,0x16,0x01,0x00,0x00,0x41,0x00,0x06,0x00, +0x2e,0x00,0x00,0x00,0x17,0x01,0x00,0x00,0x2b,0x00,0x00,0x00, +0x40,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x18,0x01,0x00,0x00,0x17,0x01,0x00,0x00, +0x41,0x00,0x06,0x00,0x2e,0x00,0x00,0x00,0x19,0x01,0x00,0x00, +0x2b,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x44,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x1a,0x01,0x00,0x00, +0x19,0x01,0x00,0x00,0x70,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x3b,0x01,0x00,0x00,0xa4,0x00,0x00,0x00,0x83,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x3c,0x01,0x00,0x00,0x3b,0x01,0x00,0x00, +0x18,0x01,0x00,0x00,0x83,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x3d,0x01,0x00,0x00,0x1a,0x01,0x00,0x00,0x18,0x01,0x00,0x00, +0x0c,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x3e,0x01,0x00,0x00, +0x01,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x1b,0x00,0x00,0x00, +0x3d,0x01,0x00,0x00,0x88,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x3f,0x01,0x00,0x00,0x3c,0x01,0x00,0x00,0x3e,0x01,0x00,0x00, +0x0c,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x41,0x01,0x00,0x00, +0x01,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x20,0x00,0x00,0x00, +0x3f,0x01,0x00,0x00,0x0c,0x00,0x07,0x00,0x06,0x00,0x00,0x00, +0x42,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x25,0x00,0x00,0x00, +0x1f,0x00,0x00,0x00,0x41,0x01,0x00,0x00,0x83,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x43,0x01,0x00,0x00,0x1f,0x00,0x00,0x00, +0x42,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x1e,0x01,0x00,0x00,0x43,0x01,0x00,0x00,0x14,0x01,0x00,0x00, +0x83,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x48,0x01,0x00,0x00, +0x42,0x01,0x00,0x00,0x1f,0x00,0x00,0x00,0x0c,0x00,0x08,0x00, +0x06,0x00,0x00,0x00,0x21,0x01,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x48,0x01,0x00,0x00,0x14,0x01,0x00,0x00, +0x1f,0x00,0x00,0x00,0x85,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x24,0x01,0x00,0x00,0xd3,0x00,0x00,0x00,0x1e,0x01,0x00,0x00, +0x0c,0x00,0x08,0x00,0x06,0x00,0x00,0x00,0x25,0x01,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x11,0x01,0x00,0x00, +0x21,0x01,0x00,0x00,0x24,0x01,0x00,0x00,0x88,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x28,0x01,0x00,0x00,0x1f,0x00,0x00,0x00, +0x10,0x01,0x00,0x00,0x0c,0x00,0x06,0x00,0x06,0x00,0x00,0x00, +0x29,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0x28,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0x06,0x00,0x00,0x00, +0x2b,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0x52,0x00,0x00,0x00,0x29,0x01,0x00,0x00,0x1f,0x00,0x00,0x00, +0x85,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2d,0x01,0x00,0x00, +0x0e,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,0xf9,0x00,0x02,0x00, +0x2e,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x2e,0x01,0x00,0x00, +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x46,0x01,0x00,0x00, +0x0e,0x01,0x00,0x00,0xc6,0x00,0x00,0x00,0x2d,0x01,0x00,0x00, +0x16,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00, +0x45,0x01,0x00,0x00,0x11,0x01,0x00,0x00,0xc6,0x00,0x00,0x00, +0x25,0x01,0x00,0x00,0x16,0x01,0x00,0x00,0x0c,0x00,0x06,0x00, +0x06,0x00,0x00,0x00,0x30,0x01,0x00,0x00,0x01,0x00,0x00,0x00, +0x0e,0x00,0x00,0x00,0x45,0x01,0x00,0x00,0x85,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x32,0x01,0x00,0x00,0x30,0x01,0x00,0x00, +0x46,0x01,0x00,0x00,0x0c,0x00,0x06,0x00,0x06,0x00,0x00,0x00, +0x34,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x0d,0x00,0x00,0x00, +0x45,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x36,0x01,0x00,0x00,0x34,0x01,0x00,0x00,0x46,0x01,0x00,0x00, +0x41,0x00,0x06,0x00,0x92,0x00,0x00,0x00,0xdf,0x00,0x00,0x00, +0x8f,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0xa5,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xe0,0x00,0x00,0x00, +0xdf,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x07,0x00,0x00,0x00, +0xe5,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,0x17,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x07,0x00,0x00,0x00,0xe6,0x00,0x00,0x00, +0xa5,0x00,0x00,0x00,0xe5,0x00,0x00,0x00,0x41,0x00,0x06,0x00, +0x92,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,0x8f,0x00,0x00,0x00, +0x41,0x00,0x00,0x00,0xe6,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0xe7,0x00,0x00,0x00, +0x85,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf0,0x00,0x00,0x00, +0xe8,0x00,0x00,0x00,0x36,0x01,0x00,0x00,0x7f,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x49,0x01,0x00,0x00,0xf0,0x00,0x00,0x00, +0x0c,0x00,0x08,0x00,0x06,0x00,0x00,0x00,0xf1,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xe0,0x00,0x00,0x00, +0x32,0x01,0x00,0x00,0x49,0x01,0x00,0x00,0x41,0x00,0x06,0x00, +0x92,0x00,0x00,0x00,0xf2,0x00,0x00,0x00,0x89,0x00,0x00,0x00, +0x41,0x00,0x00,0x00,0xa5,0x00,0x00,0x00,0x3e,0x00,0x03,0x00, +0xf2,0x00,0x00,0x00,0xf1,0x00,0x00,0x00,0x85,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,0xe8,0x00,0x00,0x00, +0x32,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0x06,0x00,0x00,0x00, +0xfe,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0xe0,0x00,0x00,0x00,0x36,0x01,0x00,0x00,0xfd,0x00,0x00,0x00, +0x41,0x00,0x06,0x00,0x92,0x00,0x00,0x00,0xff,0x00,0x00,0x00, +0x89,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0xe6,0x00,0x00,0x00, +0x3e,0x00,0x03,0x00,0xff,0x00,0x00,0x00,0xfe,0x00,0x00,0x00, +0xf9,0x00,0x02,0x00,0x02,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, +0x02,0x01,0x00,0x00,0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00, + +}; +const uint64_t rope_neox_f32_len = 3852; + +unsigned char rope_norm_f16_data[] = { +0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00, +0x49,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, +0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x51,0x11,0x00,0x00, +0x0b,0x00,0x06,0x00,0x01,0x00,0x00,0x00,0x47,0x4c,0x53,0x4c, +0x2e,0x73,0x74,0x64,0x2e,0x34,0x35,0x30,0x00,0x00,0x00,0x00, +0x0e,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x0f,0x00,0x0b,0x00,0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x6d,0x61,0x69,0x6e,0x00,0x00,0x00,0x00,0x2b,0x00,0x00,0x00, +0x67,0x00,0x00,0x00,0x8a,0x00,0x00,0x00,0x90,0x00,0x00,0x00, +0xb0,0x00,0x00,0x00,0xca,0x00,0x00,0x00,0x10,0x00,0x06,0x00, 0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00, 0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x29,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x2a,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x28,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x29,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x2a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x2a,0x00,0x00,0x00, +0x29,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x29,0x00,0x00,0x00, 0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x2a,0x00,0x00,0x00,0x03,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x29,0x00,0x00,0x00,0x03,0x00,0x00,0x00, 0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x2a,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x2a,0x00,0x00,0x00, +0x29,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x29,0x00,0x00,0x00, 0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x2a,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x47,0x00,0x03,0x00, -0x2a,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x48,0x00,0x05,0x00,0x29,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x29,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x29,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x29,0x00,0x00,0x00,0x09,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0x29,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, 0x67,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x88,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x89,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x87,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x88,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x88,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x8a,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x8a,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x03,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x8d,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x8e,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x89,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x89,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x8b,0x00,0x00,0x00, +0x8e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x8e,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x90,0x00,0x00,0x00, 0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x8b,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xa9,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0xaa,0x00,0x00,0x00, +0x90,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xad,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0xae,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0xaa,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0xaa,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xac,0x00,0x00,0x00, +0xae,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0xae,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xb0,0x00,0x00,0x00, 0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xac,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xb7,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0xb8,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0xb8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0xb8,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xba,0x00,0x00,0x00, +0xb0,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xc7,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0xc8,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0xc8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0xc8,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xca,0x00,0x00,0x00, 0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xba,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xd0,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, +0xca,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x00,0x01,0x00,0x00,0x0b,0x00,0x00,0x00, 0x19,0x00,0x00,0x00,0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00, 0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00, 0x16,0x00,0x03,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00, @@ -138035,25 +138441,26 @@ unsigned char rope_f32_data[] = { 0x06,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x6f,0x12,0x83,0x3a, 0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x1f,0x00,0x00,0x00, 0x00,0x00,0x80,0x3f,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x07,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x1c,0x00,0x04,0x00,0x29,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x28,0x00,0x00,0x00,0x1e,0x00,0x09,0x00,0x2a,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, +0x28,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x17,0x00,0x00,0x00, +0x1e,0x00,0x0c,0x00,0x29,0x00,0x00,0x00,0x07,0x00,0x00,0x00, 0x07,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x07,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x29,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x2b,0x00,0x00,0x00, -0x09,0x00,0x00,0x00,0x2a,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x2b,0x00,0x00,0x00,0x2c,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x15,0x00,0x04,0x00,0x2d,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x2d,0x00,0x00,0x00, -0x2e,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x2f,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x2d,0x00,0x00,0x00,0x33,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x2d,0x00,0x00,0x00, -0x39,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x14,0x00,0x02,0x00, -0x3c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x2d,0x00,0x00,0x00, -0x41,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x2d,0x00,0x00,0x00,0x42,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x28,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x07,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x2a,0x00,0x00,0x00,0x09,0x00,0x00,0x00, +0x29,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x2a,0x00,0x00,0x00, +0x2b,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x15,0x00,0x04,0x00, +0x2c,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x2c,0x00,0x00,0x00,0x2d,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x2e,0x00,0x00,0x00, +0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x2c,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x2c,0x00,0x00,0x00,0x38,0x00,0x00,0x00, +0x05,0x00,0x00,0x00,0x14,0x00,0x02,0x00,0x3b,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x2c,0x00,0x00,0x00,0x40,0x00,0x00,0x00, +0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x2c,0x00,0x00,0x00, +0x41,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x2c,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x01,0x00,0x00,0x00, 0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x52,0x00,0x00,0x00, 0xcd,0xcc,0xcc,0x3d,0x17,0x00,0x04,0x00,0x65,0x00,0x00,0x00, 0x07,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00, @@ -138064,866 +138471,560 @@ unsigned char rope_f32_data[] = { 0x69,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x07,0x00,0x00,0x00, 0x2b,0x00,0x04,0x00,0x07,0x00,0x00,0x00,0x6e,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x72,0x00,0x00,0x00, -0x09,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x2d,0x00,0x00,0x00,0x82,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x1d,0x00,0x03,0x00,0x88,0x00,0x00,0x00,0x2d,0x00,0x00,0x00, -0x1e,0x00,0x03,0x00,0x89,0x00,0x00,0x00,0x88,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x8a,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x89,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x8a,0x00,0x00,0x00, -0x8b,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x8d,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x2d,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x2d,0x00,0x00,0x00,0x93,0x00,0x00,0x00, -0x03,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0xa9,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xaa,0x00,0x00,0x00, -0xa9,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xab,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0xaa,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0xab,0x00,0x00,0x00,0xac,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0xaf,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0xb7,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xb8,0x00,0x00,0x00, -0xb7,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xb9,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0xb9,0x00,0x00,0x00,0xba,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x07,0x00,0x00,0x00,0xcf,0x00,0x00,0x00, -0x00,0x01,0x00,0x00,0x2c,0x00,0x06,0x00,0x65,0x00,0x00,0x00, -0xd0,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0xcf,0x00,0x00,0x00, -0x68,0x00,0x00,0x00,0x36,0x00,0x05,0x00,0x02,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00,0xf7,0x00,0x03,0x00, -0xd1,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfb,0x00,0x03,0x00, -0x6e,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0xd2,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x69,0x00,0x00,0x00, -0x6a,0x00,0x00,0x00,0x67,0x00,0x00,0x00,0x68,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x07,0x00,0x00,0x00,0x6b,0x00,0x00,0x00, -0x6a,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x07,0x00,0x00,0x00, -0x6c,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,0x17,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x69,0x00,0x00,0x00,0x6f,0x00,0x00,0x00, -0x67,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x07,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x6f,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x72,0x00,0x00,0x00,0x73,0x00,0x00,0x00, -0x2c,0x00,0x00,0x00,0x42,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x07,0x00,0x00,0x00,0x74,0x00,0x00,0x00,0x73,0x00,0x00,0x00, -0xae,0x00,0x05,0x00,0x3c,0x00,0x00,0x00,0x75,0x00,0x00,0x00, -0x6c,0x00,0x00,0x00,0x74,0x00,0x00,0x00,0xf7,0x00,0x03,0x00, -0x77,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, -0x75,0x00,0x00,0x00,0x76,0x00,0x00,0x00,0x77,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0x76,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, -0xd1,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x77,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x07,0x00,0x00,0x00,0x7d,0x00,0x00,0x00, -0x70,0x00,0x00,0x00,0x74,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x07,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,0x7d,0x00,0x00,0x00, -0x6c,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x72,0x00,0x00,0x00, -0x83,0x00,0x00,0x00,0x2c,0x00,0x00,0x00,0x82,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x07,0x00,0x00,0x00,0x84,0x00,0x00,0x00, -0x83,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x07,0x00,0x00,0x00, -0x85,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x84,0x00,0x00,0x00, -0x41,0x00,0x06,0x00,0x8d,0x00,0x00,0x00,0x8e,0x00,0x00,0x00, -0x8b,0x00,0x00,0x00,0x42,0x00,0x00,0x00,0x85,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x2d,0x00,0x00,0x00,0x8f,0x00,0x00,0x00, -0x8e,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x92,0x00,0x00,0x00,0x8f,0x00,0x00,0x00,0x41,0x00,0x05,0x00, -0x2f,0x00,0x00,0x00,0x94,0x00,0x00,0x00,0x2c,0x00,0x00,0x00, -0x93,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x95,0x00,0x00,0x00,0x94,0x00,0x00,0x00,0x70,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x6c,0x00,0x00,0x00, -0x7f,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x98,0x00,0x00,0x00, -0x97,0x00,0x00,0x00,0x70,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x9b,0x00,0x00,0x00,0x74,0x00,0x00,0x00,0x88,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x9c,0x00,0x00,0x00,0x98,0x00,0x00,0x00, -0x9b,0x00,0x00,0x00,0x0c,0x00,0x07,0x00,0x06,0x00,0x00,0x00, -0x9d,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, -0x95,0x00,0x00,0x00,0x9c,0x00,0x00,0x00,0x85,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x9e,0x00,0x00,0x00,0x92,0x00,0x00,0x00, -0x9d,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x2f,0x00,0x00,0x00, -0xdc,0x00,0x00,0x00,0x2c,0x00,0x00,0x00,0x2e,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xdd,0x00,0x00,0x00, -0xdc,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x2f,0x00,0x00,0x00, -0xde,0x00,0x00,0x00,0x2c,0x00,0x00,0x00,0x33,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xdf,0x00,0x00,0x00, -0xde,0x00,0x00,0x00,0x85,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xe0,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0x9e,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x2f,0x00,0x00,0x00,0xe2,0x00,0x00,0x00, -0x2c,0x00,0x00,0x00,0x39,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xe3,0x00,0x00,0x00,0xe2,0x00,0x00,0x00, -0xb7,0x00,0x05,0x00,0x3c,0x00,0x00,0x00,0xe4,0x00,0x00,0x00, -0xe3,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0xf7,0x00,0x03,0x00, -0xfd,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, -0xe4,0x00,0x00,0x00,0xe5,0x00,0x00,0x00,0xfd,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0xe5,0x00,0x00,0x00,0x41,0x00,0x06,0x00, -0x2f,0x00,0x00,0x00,0xe6,0x00,0x00,0x00,0x2c,0x00,0x00,0x00, -0x41,0x00,0x00,0x00,0x42,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,0xe6,0x00,0x00,0x00, -0x41,0x00,0x06,0x00,0x2f,0x00,0x00,0x00,0xe8,0x00,0x00,0x00, -0x2c,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x33,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xe9,0x00,0x00,0x00, -0xe8,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x07,0x00,0x00,0x00, -0x09,0x01,0x00,0x00,0x6c,0x00,0x00,0x00,0x17,0x00,0x00,0x00, -0x70,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x0a,0x01,0x00,0x00, -0x09,0x01,0x00,0x00,0x83,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x0b,0x01,0x00,0x00,0x0a,0x01,0x00,0x00,0xe7,0x00,0x00,0x00, -0x83,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0c,0x01,0x00,0x00, -0xe9,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,0x0c,0x00,0x07,0x00, -0x06,0x00,0x00,0x00,0x0d,0x01,0x00,0x00,0x01,0x00,0x00,0x00, -0x28,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x0c,0x01,0x00,0x00, -0x88,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0e,0x01,0x00,0x00, -0x0b,0x01,0x00,0x00,0x0d,0x01,0x00,0x00,0x0c,0x00,0x07,0x00, -0x06,0x00,0x00,0x00,0x10,0x01,0x00,0x00,0x01,0x00,0x00,0x00, -0x28,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x0e,0x01,0x00,0x00, -0x0c,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x11,0x01,0x00,0x00, +0x09,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x16,0x00,0x03,0x00, +0x86,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, +0x87,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, +0x88,0x00,0x00,0x00,0x87,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x89,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x88,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x89,0x00,0x00,0x00,0x8a,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x8d,0x00,0x00,0x00, +0x86,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x8e,0x00,0x00,0x00, +0x8d,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x8f,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0x8f,0x00,0x00,0x00,0x90,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x93,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x86,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x2c,0x00,0x00,0x00, +0xa8,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, +0xad,0x00,0x00,0x00,0x2c,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, +0xae,0x00,0x00,0x00,0xad,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0xaf,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xae,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0xaf,0x00,0x00,0x00,0xb0,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xb2,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x2c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x2c,0x00,0x00,0x00,0xb6,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x2c,0x00,0x00,0x00,0xc0,0x00,0x00,0x00, +0x09,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0xc7,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xc8,0x00,0x00,0x00, +0xc7,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xc9,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0xc9,0x00,0x00,0x00,0xca,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0xcd,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x07,0x00,0x00,0x00, +0xff,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x2c,0x00,0x06,0x00, +0x65,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x68,0x00,0x00,0x00, +0xff,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x46,0x01,0x00,0x00,0x00,0x00,0x00,0x3f, +0x36,0x00,0x05,0x00,0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0x05,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0x01,0x01,0x00,0x00, +0x00,0x00,0x00,0x00,0xfb,0x00,0x03,0x00,0x6e,0x00,0x00,0x00, +0x02,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x02,0x01,0x00,0x00, +0x41,0x00,0x05,0x00,0x69,0x00,0x00,0x00,0x6a,0x00,0x00,0x00, +0x67,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x07,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,0x6a,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x07,0x00,0x00,0x00,0x6c,0x00,0x00,0x00, +0x6b,0x00,0x00,0x00,0x17,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0x69,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x67,0x00,0x00,0x00, +0x6e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x07,0x00,0x00,0x00, +0x70,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0x72,0x00,0x00,0x00,0x73,0x00,0x00,0x00,0x2b,0x00,0x00,0x00, +0x41,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x07,0x00,0x00,0x00, +0x74,0x00,0x00,0x00,0x73,0x00,0x00,0x00,0xae,0x00,0x05,0x00, +0x3b,0x00,0x00,0x00,0x75,0x00,0x00,0x00,0x6c,0x00,0x00,0x00, +0x74,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0x77,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x75,0x00,0x00,0x00, +0x76,0x00,0x00,0x00,0x77,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0x76,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x01,0x01,0x00,0x00, +0xf8,0x00,0x02,0x00,0x77,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0x72,0x00,0x00,0x00,0x7a,0x00,0x00,0x00,0x2b,0x00,0x00,0x00, +0x44,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x07,0x00,0x00,0x00, +0x7b,0x00,0x00,0x00,0x7a,0x00,0x00,0x00,0xae,0x00,0x05,0x00, +0x3b,0x00,0x00,0x00,0x7c,0x00,0x00,0x00,0x6c,0x00,0x00,0x00, +0x7b,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0x7e,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x7c,0x00,0x00,0x00, +0x7d,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0x7d,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x07,0x00,0x00,0x00, +0x83,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x74,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x07,0x00,0x00,0x00,0x85,0x00,0x00,0x00, +0x83,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x41,0x00,0x06,0x00, +0x93,0x00,0x00,0x00,0x94,0x00,0x00,0x00,0x90,0x00,0x00,0x00, +0x41,0x00,0x00,0x00,0x85,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x86,0x00,0x00,0x00,0x95,0x00,0x00,0x00,0x94,0x00,0x00,0x00, +0x41,0x00,0x06,0x00,0x93,0x00,0x00,0x00,0x96,0x00,0x00,0x00, +0x8a,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x85,0x00,0x00,0x00, +0x3e,0x00,0x03,0x00,0x96,0x00,0x00,0x00,0x95,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x07,0x00,0x00,0x00,0x98,0x00,0x00,0x00, +0x85,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x41,0x00,0x06,0x00, +0x93,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,0x90,0x00,0x00,0x00, +0x41,0x00,0x00,0x00,0x98,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x86,0x00,0x00,0x00,0x9c,0x00,0x00,0x00,0x9b,0x00,0x00,0x00, +0x41,0x00,0x06,0x00,0x93,0x00,0x00,0x00,0x9d,0x00,0x00,0x00, +0x8a,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x98,0x00,0x00,0x00, +0x3e,0x00,0x03,0x00,0x9d,0x00,0x00,0x00,0x9c,0x00,0x00,0x00, +0xf9,0x00,0x02,0x00,0x01,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, +0x7e,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x07,0x00,0x00,0x00, +0xa3,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x74,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x07,0x00,0x00,0x00,0xa5,0x00,0x00,0x00, +0xa3,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0x72,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,0x2b,0x00,0x00,0x00, +0xa8,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x07,0x00,0x00,0x00, +0xaa,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,0x86,0x00,0x05,0x00, +0x07,0x00,0x00,0x00,0xab,0x00,0x00,0x00,0x70,0x00,0x00,0x00, +0xaa,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xb2,0x00,0x00,0x00, +0xb3,0x00,0x00,0x00,0xb0,0x00,0x00,0x00,0x41,0x00,0x00,0x00, +0xab,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x2c,0x00,0x00,0x00, +0xb4,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,0xb4,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x2e,0x00,0x00,0x00,0xb7,0x00,0x00,0x00, +0x2b,0x00,0x00,0x00,0xb6,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0xb7,0x00,0x00,0x00, +0x70,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xba,0x00,0x00,0x00, +0x6c,0x00,0x00,0x00,0x85,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xbc,0x00,0x00,0x00,0xba,0x00,0x00,0x00,0x46,0x01,0x00,0x00, +0x0c,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xbd,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0xb8,0x00,0x00,0x00, +0xbc,0x00,0x00,0x00,0x85,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xbe,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,0xbd,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x72,0x00,0x00,0x00,0xc1,0x00,0x00,0x00, +0x2b,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x07,0x00,0x00,0x00,0xc2,0x00,0x00,0x00,0xc1,0x00,0x00,0x00, +0xab,0x00,0x05,0x00,0x3b,0x00,0x00,0x00,0xc3,0x00,0x00,0x00, +0xc2,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0xf7,0x00,0x03,0x00, +0xc6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, +0xc3,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0xd0,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0xc5,0x00,0x00,0x00,0x86,0x00,0x05,0x00, +0x07,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,0x6c,0x00,0x00,0x00, +0x17,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xcd,0x00,0x00,0x00, +0xce,0x00,0x00,0x00,0xca,0x00,0x00,0x00,0x41,0x00,0x00,0x00, +0xcc,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xcf,0x00,0x00,0x00,0xce,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, +0xc6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xd0,0x00,0x00,0x00, +0xf9,0x00,0x02,0x00,0xc6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xc6,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00, +0x43,0x01,0x00,0x00,0xcf,0x00,0x00,0x00,0xc5,0x00,0x00,0x00, +0x1f,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0x88,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xd4,0x00,0x00,0x00,0xbe,0x00,0x00,0x00, +0x43,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x2e,0x00,0x00,0x00, +0x0c,0x01,0x00,0x00,0x2b,0x00,0x00,0x00,0x2d,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x0d,0x01,0x00,0x00, +0x0c,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x2e,0x00,0x00,0x00, +0x0e,0x01,0x00,0x00,0x2b,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x0f,0x01,0x00,0x00, +0x0e,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x10,0x01,0x00,0x00,0x0f,0x01,0x00,0x00,0xd4,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x2e,0x00,0x00,0x00,0x12,0x01,0x00,0x00, +0x2b,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x13,0x01,0x00,0x00,0x12,0x01,0x00,0x00, +0xb7,0x00,0x05,0x00,0x3b,0x00,0x00,0x00,0x14,0x01,0x00,0x00, +0x13,0x01,0x00,0x00,0x20,0x00,0x00,0x00,0xf7,0x00,0x03,0x00, +0x2d,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, +0x14,0x01,0x00,0x00,0x15,0x01,0x00,0x00,0x2d,0x01,0x00,0x00, +0xf8,0x00,0x02,0x00,0x15,0x01,0x00,0x00,0x41,0x00,0x06,0x00, +0x2e,0x00,0x00,0x00,0x16,0x01,0x00,0x00,0x2b,0x00,0x00,0x00, +0x40,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x17,0x01,0x00,0x00,0x16,0x01,0x00,0x00, +0x41,0x00,0x06,0x00,0x2e,0x00,0x00,0x00,0x18,0x01,0x00,0x00, +0x2b,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x44,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x19,0x01,0x00,0x00, +0x18,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x07,0x00,0x00,0x00, +0x39,0x01,0x00,0x00,0x6c,0x00,0x00,0x00,0x17,0x00,0x00,0x00, +0x70,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x3a,0x01,0x00,0x00, +0x39,0x01,0x00,0x00,0x83,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x3b,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,0x17,0x01,0x00,0x00, +0x83,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3c,0x01,0x00,0x00, +0x19,0x01,0x00,0x00,0x17,0x01,0x00,0x00,0x0c,0x00,0x07,0x00, +0x06,0x00,0x00,0x00,0x3d,0x01,0x00,0x00,0x01,0x00,0x00,0x00, +0x28,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x3c,0x01,0x00,0x00, +0x88,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3e,0x01,0x00,0x00, +0x3b,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,0x0c,0x00,0x07,0x00, +0x06,0x00,0x00,0x00,0x40,0x01,0x00,0x00,0x01,0x00,0x00,0x00, +0x28,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x3e,0x01,0x00,0x00, +0x0c,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x41,0x01,0x00,0x00, 0x01,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x1f,0x00,0x00,0x00, -0x10,0x01,0x00,0x00,0x83,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x12,0x01,0x00,0x00,0x1f,0x00,0x00,0x00,0x11,0x01,0x00,0x00, -0x85,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xed,0x00,0x00,0x00, -0x12,0x01,0x00,0x00,0xe3,0x00,0x00,0x00,0x83,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x15,0x01,0x00,0x00,0x11,0x01,0x00,0x00, +0x40,0x01,0x00,0x00,0x83,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x42,0x01,0x00,0x00,0x1f,0x00,0x00,0x00,0x41,0x01,0x00,0x00, +0x85,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1d,0x01,0x00,0x00, +0x42,0x01,0x00,0x00,0x13,0x01,0x00,0x00,0x83,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x47,0x01,0x00,0x00,0x41,0x01,0x00,0x00, 0x1f,0x00,0x00,0x00,0x0c,0x00,0x08,0x00,0x06,0x00,0x00,0x00, -0xf0,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x15,0x01,0x00,0x00,0xe3,0x00,0x00,0x00,0x1f,0x00,0x00,0x00, -0x85,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf3,0x00,0x00,0x00, -0x9e,0x00,0x00,0x00,0xed,0x00,0x00,0x00,0x0c,0x00,0x08,0x00, -0x06,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0xe0,0x00,0x00,0x00,0xf0,0x00,0x00,0x00, -0xf3,0x00,0x00,0x00,0x88,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xf7,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,0xdf,0x00,0x00,0x00, -0x0c,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xf8,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xf7,0x00,0x00,0x00, -0x0c,0x00,0x08,0x00,0x06,0x00,0x00,0x00,0xfa,0x00,0x00,0x00, +0x20,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0x47,0x01,0x00,0x00,0x13,0x01,0x00,0x00,0x1f,0x00,0x00,0x00, +0x85,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x23,0x01,0x00,0x00, +0xd4,0x00,0x00,0x00,0x1d,0x01,0x00,0x00,0x0c,0x00,0x08,0x00, +0x06,0x00,0x00,0x00,0x24,0x01,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x10,0x01,0x00,0x00,0x20,0x01,0x00,0x00, +0x23,0x01,0x00,0x00,0x88,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x27,0x01,0x00,0x00,0x1f,0x00,0x00,0x00,0x0f,0x01,0x00,0x00, +0x0c,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x28,0x01,0x00,0x00, +0x01,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x27,0x01,0x00,0x00, +0x0c,0x00,0x08,0x00,0x06,0x00,0x00,0x00,0x2a,0x01,0x00,0x00, 0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x52,0x00,0x00,0x00, -0xf8,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,0x85,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0xdd,0x00,0x00,0x00, -0xfa,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xfd,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0xfd,0x00,0x00,0x00,0xf5,0x00,0x07,0x00, -0x06,0x00,0x00,0x00,0x14,0x01,0x00,0x00,0xdd,0x00,0x00,0x00, -0x77,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0xe5,0x00,0x00,0x00, -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x13,0x01,0x00,0x00, -0xe0,0x00,0x00,0x00,0x77,0x00,0x00,0x00,0xf4,0x00,0x00,0x00, -0xe5,0x00,0x00,0x00,0x0c,0x00,0x06,0x00,0x06,0x00,0x00,0x00, -0xff,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0e,0x00,0x00,0x00, -0x13,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x01,0x01,0x00,0x00,0xff,0x00,0x00,0x00,0x14,0x01,0x00,0x00, -0x0c,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x03,0x01,0x00,0x00, -0x01,0x00,0x00,0x00,0x0d,0x00,0x00,0x00,0x13,0x01,0x00,0x00, -0x85,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x05,0x01,0x00,0x00, -0x03,0x01,0x00,0x00,0x14,0x01,0x00,0x00,0x41,0x00,0x06,0x00, -0xaf,0x00,0x00,0x00,0xb0,0x00,0x00,0x00,0xac,0x00,0x00,0x00, -0x42,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xb1,0x00,0x00,0x00,0xb0,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x07,0x00,0x00,0x00,0xb4,0x00,0x00,0x00, -0x7f,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x41,0x00,0x06,0x00, -0xaf,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,0xac,0x00,0x00,0x00, -0x42,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xb6,0x00,0x00,0x00,0xb5,0x00,0x00,0x00, -0x85,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc2,0x00,0x00,0x00, -0xb6,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0x7f,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x16,0x01,0x00,0x00,0xc2,0x00,0x00,0x00, -0x0c,0x00,0x08,0x00,0x06,0x00,0x00,0x00,0xc3,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xb1,0x00,0x00,0x00, -0x01,0x01,0x00,0x00,0x16,0x01,0x00,0x00,0x41,0x00,0x06,0x00, -0xaf,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,0xba,0x00,0x00,0x00, -0x42,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,0x3e,0x00,0x03,0x00, -0xc4,0x00,0x00,0x00,0xc3,0x00,0x00,0x00,0x85,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,0xb6,0x00,0x00,0x00, -0x01,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0x06,0x00,0x00,0x00, -0xcd,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0xb1,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0xcc,0x00,0x00,0x00, -0x41,0x00,0x06,0x00,0xaf,0x00,0x00,0x00,0xce,0x00,0x00,0x00, -0xba,0x00,0x00,0x00,0x42,0x00,0x00,0x00,0xb4,0x00,0x00,0x00, -0x3e,0x00,0x03,0x00,0xce,0x00,0x00,0x00,0xcd,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0xd1,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0xd1,0x00,0x00,0x00,0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00, - -}; -const uint64_t rope_f32_len = 3072; - -unsigned char rope_neox_f16_data[] = { -0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00, -0x69,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, -0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x51,0x11,0x00,0x00, -0x0b,0x00,0x06,0x00,0x01,0x00,0x00,0x00,0x47,0x4c,0x53,0x4c, -0x2e,0x73,0x74,0x64,0x2e,0x34,0x35,0x30,0x00,0x00,0x00,0x00, -0x0e,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x0f,0x00,0x0b,0x00,0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x6d,0x61,0x69,0x6e,0x00,0x00,0x00,0x00,0x2c,0x00,0x00,0x00, -0x68,0x00,0x00,0x00,0x98,0x00,0x00,0x00,0x9e,0x00,0x00,0x00, -0xc5,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0x10,0x00,0x06,0x00, -0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x29,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x2a,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x2a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x2a,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x2a,0x00,0x00,0x00,0x03,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x2a,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x2a,0x00,0x00,0x00, -0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x2a,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x2a,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x2a,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x2c,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x2a,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x2a,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x34,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x2a,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x68,0x00,0x00,0x00, -0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x95,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0x96,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x19,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x96,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0x96,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x98,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x98,0x00,0x00,0x00, -0x21,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x9b,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0x9c,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x9c,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0x9c,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x9e,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x9e,0x00,0x00,0x00, -0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xc2,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xc3,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0xc3,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xc5,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xc5,0x00,0x00,0x00, -0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xd2,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0xd3,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xd3,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0xd3,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xd5,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xd5,0x00,0x00,0x00, -0x21,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x20,0x01,0x00,0x00,0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00, -0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00, -0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x16,0x00,0x03,0x00, -0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x15,0x00,0x04,0x00, -0x07,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x07,0x00,0x00,0x00,0x17,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x1b,0x00,0x00,0x00,0x6f,0x12,0x83,0x3a,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,0x00,0x00,0x80,0x3f, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x07,0x00,0x00,0x00, -0x28,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, -0x29,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x28,0x00,0x00,0x00, -0x1e,0x00,0x0d,0x00,0x2a,0x00,0x00,0x00,0x07,0x00,0x00,0x00, -0x07,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x07,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x29,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x07,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x2b,0x00,0x00,0x00, -0x09,0x00,0x00,0x00,0x2a,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x2b,0x00,0x00,0x00,0x2c,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x15,0x00,0x04,0x00,0x2d,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x2d,0x00,0x00,0x00, -0x2e,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x2f,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x2d,0x00,0x00,0x00,0x33,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x2d,0x00,0x00,0x00, -0x39,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x14,0x00,0x02,0x00, -0x3c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x2d,0x00,0x00,0x00, -0x41,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x2d,0x00,0x00,0x00,0x42,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x2d,0x00,0x00,0x00,0x45,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x53,0x00,0x00,0x00,0xcd,0xcc,0xcc,0x3d,0x17,0x00,0x04,0x00, -0x66,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x03,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x67,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x66,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x67,0x00,0x00,0x00, -0x68,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x07,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x6a,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x07,0x00,0x00,0x00, -0x6f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x73,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x07,0x00,0x00,0x00, -0x16,0x00,0x03,0x00,0x94,0x00,0x00,0x00,0x10,0x00,0x00,0x00, -0x1d,0x00,0x03,0x00,0x95,0x00,0x00,0x00,0x94,0x00,0x00,0x00, -0x1e,0x00,0x03,0x00,0x96,0x00,0x00,0x00,0x95,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x96,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x97,0x00,0x00,0x00, -0x98,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, -0x9b,0x00,0x00,0x00,0x94,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, -0x9c,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x9d,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x9c,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0x9e,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xa1,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0x94,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x2d,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,0x03,0x00,0x00,0x00, -0x1d,0x00,0x03,0x00,0xc2,0x00,0x00,0x00,0x2d,0x00,0x00,0x00, -0x1e,0x00,0x03,0x00,0xc3,0x00,0x00,0x00,0xc2,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0xc3,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xc4,0x00,0x00,0x00, -0xc5,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0xc7,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x2d,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x2d,0x00,0x00,0x00,0xcb,0x00,0x00,0x00, -0x0a,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0xd2,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xd3,0x00,0x00,0x00, -0xd2,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xd4,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0xd4,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0xd8,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x2d,0x00,0x00,0x00, -0xe3,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x07,0x00,0x00,0x00,0x1f,0x01,0x00,0x00,0x00,0x01,0x00,0x00, -0x2c,0x00,0x06,0x00,0x66,0x00,0x00,0x00,0x20,0x01,0x00,0x00, -0x69,0x00,0x00,0x00,0x1f,0x01,0x00,0x00,0x69,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x66,0x01,0x00,0x00, -0x00,0x00,0x00,0x3f,0x36,0x00,0x05,0x00,0x02,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00,0xf7,0x00,0x03,0x00, -0x21,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfb,0x00,0x03,0x00, -0x6f,0x00,0x00,0x00,0x22,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, -0x22,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x6a,0x00,0x00,0x00, -0x6b,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x69,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x07,0x00,0x00,0x00,0x6c,0x00,0x00,0x00, -0x6b,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x07,0x00,0x00,0x00, -0x6d,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x17,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x6a,0x00,0x00,0x00,0x70,0x00,0x00,0x00, -0x68,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x07,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x70,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x73,0x00,0x00,0x00,0x74,0x00,0x00,0x00, -0x2c,0x00,0x00,0x00,0x42,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x07,0x00,0x00,0x00,0x75,0x00,0x00,0x00,0x74,0x00,0x00,0x00, -0xae,0x00,0x05,0x00,0x3c,0x00,0x00,0x00,0x76,0x00,0x00,0x00, -0x6d,0x00,0x00,0x00,0x75,0x00,0x00,0x00,0xf7,0x00,0x03,0x00, -0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, -0x76,0x00,0x00,0x00,0x77,0x00,0x00,0x00,0x78,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0x77,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, -0x21,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x78,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x73,0x00,0x00,0x00,0x7c,0x00,0x00,0x00, -0x2c,0x00,0x00,0x00,0x45,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x07,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,0x7c,0x00,0x00,0x00, -0x86,0x00,0x05,0x00,0x07,0x00,0x00,0x00,0x7e,0x00,0x00,0x00, -0x6d,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,0x89,0x00,0x05,0x00, -0x07,0x00,0x00,0x00,0x83,0x00,0x00,0x00,0x6d,0x00,0x00,0x00, -0x7d,0x00,0x00,0x00,0xac,0x00,0x05,0x00,0x3c,0x00,0x00,0x00, -0x85,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x6f,0x00,0x00,0x00, -0xf7,0x00,0x03,0x00,0x87,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0xfa,0x00,0x04,0x00,0x85,0x00,0x00,0x00,0x86,0x00,0x00,0x00, -0x87,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x86,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x07,0x00,0x00,0x00,0x8c,0x00,0x00,0x00, -0x71,0x00,0x00,0x00,0x75,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x07,0x00,0x00,0x00,0x90,0x00,0x00,0x00,0x7e,0x00,0x00,0x00, -0x7d,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x07,0x00,0x00,0x00, -0x91,0x00,0x00,0x00,0x8c,0x00,0x00,0x00,0x90,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x07,0x00,0x00,0x00,0x93,0x00,0x00,0x00, -0x91,0x00,0x00,0x00,0x83,0x00,0x00,0x00,0x41,0x00,0x06,0x00, -0xa1,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,0x9e,0x00,0x00,0x00, -0x42,0x00,0x00,0x00,0x93,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x94,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0xa2,0x00,0x00,0x00, -0x41,0x00,0x06,0x00,0xa1,0x00,0x00,0x00,0xa4,0x00,0x00,0x00, -0x98,0x00,0x00,0x00,0x42,0x00,0x00,0x00,0x93,0x00,0x00,0x00, -0x3e,0x00,0x03,0x00,0xa4,0x00,0x00,0x00,0xa3,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x07,0x00,0x00,0x00,0xa6,0x00,0x00,0x00, -0x93,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0x41,0x00,0x06,0x00, -0xa1,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,0x9e,0x00,0x00,0x00, -0x42,0x00,0x00,0x00,0xa6,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x94,0x00,0x00,0x00,0xaa,0x00,0x00,0x00,0xa9,0x00,0x00,0x00, -0x41,0x00,0x06,0x00,0xa1,0x00,0x00,0x00,0xab,0x00,0x00,0x00, -0x98,0x00,0x00,0x00,0x42,0x00,0x00,0x00,0xa6,0x00,0x00,0x00, -0x3e,0x00,0x03,0x00,0xab,0x00,0x00,0x00,0xaa,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0x21,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, -0x87,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x07,0x00,0x00,0x00, -0xb1,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x75,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x07,0x00,0x00,0x00,0xb5,0x00,0x00,0x00, -0x7e,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x07,0x00,0x00,0x00,0xb6,0x00,0x00,0x00,0xb1,0x00,0x00,0x00, -0xb5,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x07,0x00,0x00,0x00, -0xb8,0x00,0x00,0x00,0x83,0x00,0x00,0x00,0x17,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x07,0x00,0x00,0x00,0xb9,0x00,0x00,0x00, -0xb6,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0x41,0x00,0x05,0x00, -0x73,0x00,0x00,0x00,0xbd,0x00,0x00,0x00,0x2c,0x00,0x00,0x00, -0xbc,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x07,0x00,0x00,0x00, -0xbe,0x00,0x00,0x00,0xbd,0x00,0x00,0x00,0x86,0x00,0x05,0x00, -0x07,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0x71,0x00,0x00,0x00, -0xbe,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xc7,0x00,0x00,0x00, -0xc8,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0x42,0x00,0x00,0x00, -0xbf,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x2d,0x00,0x00,0x00, -0xc9,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x41,0x00,0x05,0x00, -0x73,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,0x2c,0x00,0x00,0x00, -0xcb,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x07,0x00,0x00,0x00, -0xcd,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,0xab,0x00,0x05,0x00, -0x3c,0x00,0x00,0x00,0xce,0x00,0x00,0x00,0xcd,0x00,0x00,0x00, -0x6f,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0xd1,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xce,0x00,0x00,0x00, -0xd0,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0xd0,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xd8,0x00,0x00,0x00, -0xd9,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0x42,0x00,0x00,0x00, -0xb8,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xda,0x00,0x00,0x00,0xd9,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, -0xd1,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xdb,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0xd1,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0xd1,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00, -0x63,0x01,0x00,0x00,0xda,0x00,0x00,0x00,0xd0,0x00,0x00,0x00, -0x1f,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0xc9,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x2f,0x00,0x00,0x00,0xe0,0x00,0x00,0x00, -0x2c,0x00,0x00,0x00,0x33,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xe1,0x00,0x00,0x00,0xe0,0x00,0x00,0x00, -0x85,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe2,0x00,0x00,0x00, -0xdf,0x00,0x00,0x00,0xe1,0x00,0x00,0x00,0x41,0x00,0x05,0x00, -0x2f,0x00,0x00,0x00,0xe4,0x00,0x00,0x00,0x2c,0x00,0x00,0x00, -0xe3,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xe5,0x00,0x00,0x00,0xe4,0x00,0x00,0x00,0x70,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,0x6d,0x00,0x00,0x00, -0x85,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe9,0x00,0x00,0x00, -0xe7,0x00,0x00,0x00,0x66,0x01,0x00,0x00,0x0c,0x00,0x07,0x00, -0x06,0x00,0x00,0x00,0xea,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x1a,0x00,0x00,0x00,0xe5,0x00,0x00,0x00,0xe9,0x00,0x00,0x00, -0x85,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xeb,0x00,0x00,0x00, -0xe2,0x00,0x00,0x00,0xea,0x00,0x00,0x00,0x88,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xed,0x00,0x00,0x00,0xeb,0x00,0x00,0x00, -0x63,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x2f,0x00,0x00,0x00, -0x2c,0x01,0x00,0x00,0x2c,0x00,0x00,0x00,0x2e,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x2d,0x01,0x00,0x00, -0x2c,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x30,0x01,0x00,0x00,0xe1,0x00,0x00,0x00,0xed,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x2f,0x00,0x00,0x00,0x32,0x01,0x00,0x00, -0x2c,0x00,0x00,0x00,0x39,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x33,0x01,0x00,0x00,0x32,0x01,0x00,0x00, -0xb7,0x00,0x05,0x00,0x3c,0x00,0x00,0x00,0x34,0x01,0x00,0x00, -0x33,0x01,0x00,0x00,0x20,0x00,0x00,0x00,0xf7,0x00,0x03,0x00, -0x4d,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, -0x34,0x01,0x00,0x00,0x35,0x01,0x00,0x00,0x4d,0x01,0x00,0x00, -0xf8,0x00,0x02,0x00,0x35,0x01,0x00,0x00,0x41,0x00,0x06,0x00, -0x2f,0x00,0x00,0x00,0x36,0x01,0x00,0x00,0x2c,0x00,0x00,0x00, -0x41,0x00,0x00,0x00,0x42,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x37,0x01,0x00,0x00,0x36,0x01,0x00,0x00, -0x41,0x00,0x06,0x00,0x2f,0x00,0x00,0x00,0x38,0x01,0x00,0x00, -0x2c,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x45,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x39,0x01,0x00,0x00, -0x38,0x01,0x00,0x00,0x70,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x5a,0x01,0x00,0x00,0xb8,0x00,0x00,0x00,0x83,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x5b,0x01,0x00,0x00,0x5a,0x01,0x00,0x00, -0x37,0x01,0x00,0x00,0x83,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x5c,0x01,0x00,0x00,0x39,0x01,0x00,0x00,0x37,0x01,0x00,0x00, -0x0c,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x5d,0x01,0x00,0x00, -0x01,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x1b,0x00,0x00,0x00, -0x5c,0x01,0x00,0x00,0x88,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x5e,0x01,0x00,0x00,0x5b,0x01,0x00,0x00,0x5d,0x01,0x00,0x00, -0x0c,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x60,0x01,0x00,0x00, -0x01,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x5e,0x01,0x00,0x00,0x0c,0x00,0x07,0x00,0x06,0x00,0x00,0x00, -0x61,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x25,0x00,0x00,0x00, -0x1f,0x00,0x00,0x00,0x60,0x01,0x00,0x00,0x83,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x62,0x01,0x00,0x00,0x1f,0x00,0x00,0x00, -0x61,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x3d,0x01,0x00,0x00,0x62,0x01,0x00,0x00,0x33,0x01,0x00,0x00, -0x83,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x67,0x01,0x00,0x00, -0x61,0x01,0x00,0x00,0x1f,0x00,0x00,0x00,0x0c,0x00,0x08,0x00, -0x06,0x00,0x00,0x00,0x40,0x01,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0x67,0x01,0x00,0x00,0x33,0x01,0x00,0x00, -0x1f,0x00,0x00,0x00,0x85,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x43,0x01,0x00,0x00,0xed,0x00,0x00,0x00,0x3d,0x01,0x00,0x00, -0x0c,0x00,0x08,0x00,0x06,0x00,0x00,0x00,0x44,0x01,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x30,0x01,0x00,0x00, -0x40,0x01,0x00,0x00,0x43,0x01,0x00,0x00,0x88,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x47,0x01,0x00,0x00,0x1f,0x00,0x00,0x00, -0xe1,0x00,0x00,0x00,0x0c,0x00,0x06,0x00,0x06,0x00,0x00,0x00, -0x48,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x47,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0x06,0x00,0x00,0x00, -0x4a,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x53,0x00,0x00,0x00,0x48,0x01,0x00,0x00,0x1f,0x00,0x00,0x00, -0x85,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4c,0x01,0x00,0x00, -0x2d,0x01,0x00,0x00,0x4a,0x01,0x00,0x00,0xf9,0x00,0x02,0x00, -0x4d,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x4d,0x01,0x00,0x00, -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x65,0x01,0x00,0x00, -0x2d,0x01,0x00,0x00,0xd1,0x00,0x00,0x00,0x4c,0x01,0x00,0x00, -0x35,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00, -0x64,0x01,0x00,0x00,0x30,0x01,0x00,0x00,0xd1,0x00,0x00,0x00, -0x44,0x01,0x00,0x00,0x35,0x01,0x00,0x00,0x0c,0x00,0x06,0x00, -0x06,0x00,0x00,0x00,0x4f,0x01,0x00,0x00,0x01,0x00,0x00,0x00, -0x0e,0x00,0x00,0x00,0x64,0x01,0x00,0x00,0x85,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x51,0x01,0x00,0x00,0x4f,0x01,0x00,0x00, -0x65,0x01,0x00,0x00,0x0c,0x00,0x06,0x00,0x06,0x00,0x00,0x00, -0x53,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x0d,0x00,0x00,0x00, -0x64,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x55,0x01,0x00,0x00,0x53,0x01,0x00,0x00,0x65,0x01,0x00,0x00, -0x41,0x00,0x06,0x00,0xa1,0x00,0x00,0x00,0xfa,0x00,0x00,0x00, -0x9e,0x00,0x00,0x00,0x42,0x00,0x00,0x00,0xb9,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x94,0x00,0x00,0x00,0xfb,0x00,0x00,0x00, -0xfa,0x00,0x00,0x00,0x73,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xfc,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0x86,0x00,0x05,0x00, -0x07,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x7d,0x00,0x00,0x00, -0x17,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x07,0x00,0x00,0x00, -0x02,0x01,0x00,0x00,0xb9,0x00,0x00,0x00,0x01,0x01,0x00,0x00, -0x41,0x00,0x06,0x00,0xa1,0x00,0x00,0x00,0x03,0x01,0x00,0x00, -0x9e,0x00,0x00,0x00,0x42,0x00,0x00,0x00,0x02,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0x94,0x00,0x00,0x00,0x04,0x01,0x00,0x00, -0x03,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x05,0x01,0x00,0x00,0x04,0x01,0x00,0x00,0x85,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x0d,0x01,0x00,0x00,0x05,0x01,0x00,0x00, -0x55,0x01,0x00,0x00,0x7f,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x68,0x01,0x00,0x00,0x0d,0x01,0x00,0x00,0x0c,0x00,0x08,0x00, -0x06,0x00,0x00,0x00,0x0e,0x01,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x51,0x01,0x00,0x00, -0x68,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x94,0x00,0x00,0x00, -0x0f,0x01,0x00,0x00,0x0e,0x01,0x00,0x00,0x41,0x00,0x06,0x00, -0xa1,0x00,0x00,0x00,0x10,0x01,0x00,0x00,0x98,0x00,0x00,0x00, -0x42,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0x3e,0x00,0x03,0x00, -0x10,0x01,0x00,0x00,0x0f,0x01,0x00,0x00,0x85,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x1b,0x01,0x00,0x00,0x05,0x01,0x00,0x00, -0x51,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0x06,0x00,0x00,0x00, -0x1c,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0xfc,0x00,0x00,0x00,0x55,0x01,0x00,0x00,0x1b,0x01,0x00,0x00, -0x73,0x00,0x04,0x00,0x94,0x00,0x00,0x00,0x1d,0x01,0x00,0x00, -0x1c,0x01,0x00,0x00,0x41,0x00,0x06,0x00,0xa1,0x00,0x00,0x00, -0x1e,0x01,0x00,0x00,0x98,0x00,0x00,0x00,0x42,0x00,0x00,0x00, -0x02,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x1e,0x01,0x00,0x00, -0x1d,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x21,0x01,0x00,0x00, -0xf8,0x00,0x02,0x00,0x21,0x01,0x00,0x00,0xfd,0x00,0x01,0x00, +0x28,0x01,0x00,0x00,0x1f,0x00,0x00,0x00,0x85,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x2c,0x01,0x00,0x00,0x0d,0x01,0x00,0x00, +0x2a,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x2d,0x01,0x00,0x00, +0xf8,0x00,0x02,0x00,0x2d,0x01,0x00,0x00,0xf5,0x00,0x07,0x00, +0x06,0x00,0x00,0x00,0x45,0x01,0x00,0x00,0x0d,0x01,0x00,0x00, +0xc6,0x00,0x00,0x00,0x2c,0x01,0x00,0x00,0x15,0x01,0x00,0x00, +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x44,0x01,0x00,0x00, +0x10,0x01,0x00,0x00,0xc6,0x00,0x00,0x00,0x24,0x01,0x00,0x00, +0x15,0x01,0x00,0x00,0x0c,0x00,0x06,0x00,0x06,0x00,0x00,0x00, +0x2f,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x0e,0x00,0x00,0x00, +0x44,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x31,0x01,0x00,0x00,0x2f,0x01,0x00,0x00,0x45,0x01,0x00,0x00, +0x0c,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x33,0x01,0x00,0x00, +0x01,0x00,0x00,0x00,0x0d,0x00,0x00,0x00,0x44,0x01,0x00,0x00, +0x85,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x35,0x01,0x00,0x00, +0x33,0x01,0x00,0x00,0x45,0x01,0x00,0x00,0x41,0x00,0x06,0x00, +0x93,0x00,0x00,0x00,0xe0,0x00,0x00,0x00,0x90,0x00,0x00,0x00, +0x41,0x00,0x00,0x00,0xa5,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x86,0x00,0x00,0x00,0xe1,0x00,0x00,0x00,0xe0,0x00,0x00,0x00, +0x73,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xe2,0x00,0x00,0x00, +0xe1,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x07,0x00,0x00,0x00, +0xe5,0x00,0x00,0x00,0xa5,0x00,0x00,0x00,0x68,0x00,0x00,0x00, +0x41,0x00,0x06,0x00,0x93,0x00,0x00,0x00,0xe6,0x00,0x00,0x00, +0x90,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0xe5,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x86,0x00,0x00,0x00,0xe7,0x00,0x00,0x00, +0xe6,0x00,0x00,0x00,0x73,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xe8,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,0x85,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0xe8,0x00,0x00,0x00, +0x35,0x01,0x00,0x00,0x7f,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x48,0x01,0x00,0x00,0xf0,0x00,0x00,0x00,0x0c,0x00,0x08,0x00, +0x06,0x00,0x00,0x00,0xf1,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0xe2,0x00,0x00,0x00,0x31,0x01,0x00,0x00, +0x48,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x86,0x00,0x00,0x00, +0xf2,0x00,0x00,0x00,0xf1,0x00,0x00,0x00,0x41,0x00,0x06,0x00, +0x93,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,0x8a,0x00,0x00,0x00, +0x41,0x00,0x00,0x00,0xa5,0x00,0x00,0x00,0x3e,0x00,0x03,0x00, +0xf3,0x00,0x00,0x00,0xf2,0x00,0x00,0x00,0x85,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0xe8,0x00,0x00,0x00, +0x31,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0x06,0x00,0x00,0x00, +0xfc,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0xe2,0x00,0x00,0x00,0x35,0x01,0x00,0x00,0xfb,0x00,0x00,0x00, +0x73,0x00,0x04,0x00,0x86,0x00,0x00,0x00,0xfd,0x00,0x00,0x00, +0xfc,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x93,0x00,0x00,0x00, +0xfe,0x00,0x00,0x00,0x8a,0x00,0x00,0x00,0x41,0x00,0x00,0x00, +0xe5,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0xfe,0x00,0x00,0x00, +0xfd,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x01,0x01,0x00,0x00, +0xf8,0x00,0x02,0x00,0x01,0x01,0x00,0x00,0xfd,0x00,0x01,0x00, 0x38,0x00,0x01,0x00, }; -const uint64_t rope_neox_f16_len = 4132; +const uint64_t rope_norm_f16_len = 3952; -unsigned char rope_neox_f32_data[] = { +unsigned char rope_norm_f32_data[] = { 0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00, -0x63,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, +0x43,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, 0x01,0x00,0x00,0x00,0x0b,0x00,0x06,0x00,0x01,0x00,0x00,0x00, 0x47,0x4c,0x53,0x4c,0x2e,0x73,0x74,0x64,0x2e,0x34,0x35,0x30, 0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00,0x00,0x00,0x00,0x00, 0x01,0x00,0x00,0x00,0x0f,0x00,0x0b,0x00,0x05,0x00,0x00,0x00, 0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e,0x00,0x00,0x00,0x00, -0x2c,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x97,0x00,0x00,0x00, -0x9d,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,0xd4,0x00,0x00,0x00, +0x2b,0x00,0x00,0x00,0x67,0x00,0x00,0x00,0x89,0x00,0x00,0x00, +0x8f,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0xc9,0x00,0x00,0x00, 0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00, 0x01,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x29,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x2a,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x28,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x29,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x2a,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x29,0x00,0x00,0x00,0x01,0x00,0x00,0x00, 0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x2a,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x2a,0x00,0x00,0x00, +0x29,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x29,0x00,0x00,0x00, 0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x2a,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x29,0x00,0x00,0x00,0x04,0x00,0x00,0x00, 0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x2a,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x2a,0x00,0x00,0x00, +0x29,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x29,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x2a,0x00,0x00,0x00,0x07,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x29,0x00,0x00,0x00,0x07,0x00,0x00,0x00, 0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x2a,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x2c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x2a,0x00,0x00,0x00, -0x09,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x30,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x2a,0x00,0x00,0x00,0x0a,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x47,0x00,0x03,0x00, -0x2a,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x68,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x94,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x95,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x95,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x95,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x97,0x00,0x00,0x00, -0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x97,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x03,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x9a,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x9b,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x9b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x9b,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, -0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x9d,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xc1,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0xc2,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0xc2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0xc2,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xc4,0x00,0x00,0x00, -0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xc4,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xd1,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0xd2,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0xd2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0xd2,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xd4,0x00,0x00,0x00, -0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xd4,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x1a,0x01,0x00,0x00,0x0b,0x00,0x00,0x00, -0x19,0x00,0x00,0x00,0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00, -0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x16,0x00,0x03,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x15,0x00,0x04,0x00,0x07,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x07,0x00,0x00,0x00, -0x17,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x6f,0x12,0x83,0x3a, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x1f,0x00,0x00,0x00, -0x00,0x00,0x80,0x3f,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x29,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x24,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x29,0x00,0x00,0x00, +0x09,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x28,0x00,0x00,0x00, +0x47,0x00,0x03,0x00,0x29,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x67,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x86,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00, +0x87,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x87,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0x87,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x89,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x89,0x00,0x00,0x00,0x21,0x00,0x00,0x00, +0x03,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x8c,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00, +0x8d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x8d,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0x8d,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x8f,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x8f,0x00,0x00,0x00,0x21,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xac,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00, +0xad,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0xad,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0xad,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xaf,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xaf,0x00,0x00,0x00,0x21,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xc6,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00, +0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0xc7,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xc9,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xc9,0x00,0x00,0x00,0x21,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xfa,0x00,0x00,0x00, +0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x13,0x00,0x02,0x00, +0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0x06,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x07,0x00,0x00,0x00, 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x07,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x1c,0x00,0x04,0x00,0x29,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x28,0x00,0x00,0x00,0x1e,0x00,0x0d,0x00,0x2a,0x00,0x00,0x00, +0x07,0x00,0x00,0x00,0x17,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x1b,0x00,0x00,0x00, +0x6f,0x12,0x83,0x3a,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x1f,0x00,0x00,0x00,0x00,0x00,0x80,0x3f,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x1c,0x00,0x04,0x00,0x28,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x17,0x00,0x00,0x00,0x1e,0x00,0x0c,0x00,0x29,0x00,0x00,0x00, 0x07,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x06,0x00,0x00,0x00, 0x07,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x29,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x2b,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x2a,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0x2b,0x00,0x00,0x00,0x2c,0x00,0x00,0x00, -0x09,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x2d,0x00,0x00,0x00, -0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x2d,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x2f,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x2d,0x00,0x00,0x00, -0x33,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x2d,0x00,0x00,0x00,0x39,0x00,0x00,0x00,0x05,0x00,0x00,0x00, -0x14,0x00,0x02,0x00,0x3c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x2d,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x07,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x2d,0x00,0x00,0x00,0x42,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x2d,0x00,0x00,0x00, -0x45,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x53,0x00,0x00,0x00,0xcd,0xcc,0xcc,0x3d, -0x17,0x00,0x04,0x00,0x66,0x00,0x00,0x00,0x07,0x00,0x00,0x00, -0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x67,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x66,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x67,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x07,0x00,0x00,0x00,0x69,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x6a,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x07,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x73,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x07,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x94,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x95,0x00,0x00,0x00, -0x94,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x96,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0x95,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x96,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x1d,0x00,0x03,0x00,0x9a,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x1e,0x00,0x03,0x00,0x9b,0x00,0x00,0x00,0x9a,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x9c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x9b,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x9c,0x00,0x00,0x00, -0x9d,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0xa0,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x2d,0x00,0x00,0x00,0xbb,0x00,0x00,0x00, -0x03,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0xc1,0x00,0x00,0x00, -0x2d,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xc2,0x00,0x00,0x00, -0xc1,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xc3,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0xc2,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0xc3,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0xc6,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x2d,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x2d,0x00,0x00,0x00, -0xca,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, -0xd1,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, -0xd2,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0xd3,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xd2,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0xd3,0x00,0x00,0x00,0xd4,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x2d,0x00,0x00,0x00, -0xe1,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x07,0x00,0x00,0x00,0x19,0x01,0x00,0x00,0x00,0x01,0x00,0x00, -0x2c,0x00,0x06,0x00,0x66,0x00,0x00,0x00,0x1a,0x01,0x00,0x00, -0x69,0x00,0x00,0x00,0x19,0x01,0x00,0x00,0x69,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x60,0x01,0x00,0x00, -0x00,0x00,0x00,0x3f,0x36,0x00,0x05,0x00,0x02,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00,0xf7,0x00,0x03,0x00, -0x1b,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfb,0x00,0x03,0x00, -0x6f,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, -0x1c,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x6a,0x00,0x00,0x00, -0x6b,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x69,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x07,0x00,0x00,0x00,0x6c,0x00,0x00,0x00, -0x6b,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x07,0x00,0x00,0x00, -0x6d,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x17,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x6a,0x00,0x00,0x00,0x70,0x00,0x00,0x00, -0x68,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x07,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x70,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x73,0x00,0x00,0x00,0x74,0x00,0x00,0x00, -0x2c,0x00,0x00,0x00,0x42,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x07,0x00,0x00,0x00,0x75,0x00,0x00,0x00,0x74,0x00,0x00,0x00, -0xae,0x00,0x05,0x00,0x3c,0x00,0x00,0x00,0x76,0x00,0x00,0x00, -0x6d,0x00,0x00,0x00,0x75,0x00,0x00,0x00,0xf7,0x00,0x03,0x00, -0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, -0x76,0x00,0x00,0x00,0x77,0x00,0x00,0x00,0x78,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0x77,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, -0x1b,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x78,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x73,0x00,0x00,0x00,0x7c,0x00,0x00,0x00, -0x2c,0x00,0x00,0x00,0x45,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x07,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,0x7c,0x00,0x00,0x00, -0x86,0x00,0x05,0x00,0x07,0x00,0x00,0x00,0x7e,0x00,0x00,0x00, -0x6d,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,0x89,0x00,0x05,0x00, -0x07,0x00,0x00,0x00,0x83,0x00,0x00,0x00,0x6d,0x00,0x00,0x00, -0x7d,0x00,0x00,0x00,0xac,0x00,0x05,0x00,0x3c,0x00,0x00,0x00, -0x85,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x6f,0x00,0x00,0x00, -0xf7,0x00,0x03,0x00,0x87,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0xfa,0x00,0x04,0x00,0x85,0x00,0x00,0x00,0x86,0x00,0x00,0x00, -0x87,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x86,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x07,0x00,0x00,0x00,0x8c,0x00,0x00,0x00, -0x71,0x00,0x00,0x00,0x75,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x07,0x00,0x00,0x00,0x90,0x00,0x00,0x00,0x7e,0x00,0x00,0x00, -0x7d,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x07,0x00,0x00,0x00, -0x91,0x00,0x00,0x00,0x8c,0x00,0x00,0x00,0x90,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x07,0x00,0x00,0x00,0x93,0x00,0x00,0x00, -0x91,0x00,0x00,0x00,0x83,0x00,0x00,0x00,0x41,0x00,0x06,0x00, -0xa0,0x00,0x00,0x00,0xa1,0x00,0x00,0x00,0x9d,0x00,0x00,0x00, -0x42,0x00,0x00,0x00,0x93,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,0xa1,0x00,0x00,0x00, -0x41,0x00,0x06,0x00,0xa0,0x00,0x00,0x00,0xa3,0x00,0x00,0x00, -0x97,0x00,0x00,0x00,0x42,0x00,0x00,0x00,0x93,0x00,0x00,0x00, -0x3e,0x00,0x03,0x00,0xa3,0x00,0x00,0x00,0xa2,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x07,0x00,0x00,0x00,0xa5,0x00,0x00,0x00, -0x93,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0x41,0x00,0x06,0x00, -0xa0,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,0x9d,0x00,0x00,0x00, -0x42,0x00,0x00,0x00,0xa5,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,0xa8,0x00,0x00,0x00, -0x41,0x00,0x06,0x00,0xa0,0x00,0x00,0x00,0xaa,0x00,0x00,0x00, -0x97,0x00,0x00,0x00,0x42,0x00,0x00,0x00,0xa5,0x00,0x00,0x00, -0x3e,0x00,0x03,0x00,0xaa,0x00,0x00,0x00,0xa9,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0x1b,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, -0x87,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x07,0x00,0x00,0x00, -0xb0,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x75,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x07,0x00,0x00,0x00,0xb4,0x00,0x00,0x00, -0x7e,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x07,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,0xb0,0x00,0x00,0x00, -0xb4,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x07,0x00,0x00,0x00, -0xb7,0x00,0x00,0x00,0x83,0x00,0x00,0x00,0x17,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x07,0x00,0x00,0x00,0xb8,0x00,0x00,0x00, -0xb5,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,0x41,0x00,0x05,0x00, -0x73,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,0x2c,0x00,0x00,0x00, -0xbb,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x07,0x00,0x00,0x00, -0xbd,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,0x86,0x00,0x05,0x00, -0x07,0x00,0x00,0x00,0xbe,0x00,0x00,0x00,0x71,0x00,0x00,0x00, -0xbd,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xc6,0x00,0x00,0x00, -0xc7,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,0x42,0x00,0x00,0x00, -0xbe,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x2d,0x00,0x00,0x00, -0xc8,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,0x41,0x00,0x05,0x00, -0x73,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,0x2c,0x00,0x00,0x00, -0xca,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x07,0x00,0x00,0x00, -0xcc,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,0xab,0x00,0x05,0x00, -0x3c,0x00,0x00,0x00,0xcd,0x00,0x00,0x00,0xcc,0x00,0x00,0x00, -0x6f,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0xd0,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xcd,0x00,0x00,0x00, -0xcf,0x00,0x00,0x00,0xd9,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0xcf,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xa0,0x00,0x00,0x00, -0xd7,0x00,0x00,0x00,0xd4,0x00,0x00,0x00,0x42,0x00,0x00,0x00, -0xb7,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xd8,0x00,0x00,0x00,0xd7,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, -0xd0,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xd9,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0xd0,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0xd0,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00, -0x5d,0x01,0x00,0x00,0xd8,0x00,0x00,0x00,0xcf,0x00,0x00,0x00, -0x1f,0x00,0x00,0x00,0xd9,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xdd,0x00,0x00,0x00,0xc8,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x2f,0x00,0x00,0x00,0xde,0x00,0x00,0x00, -0x2c,0x00,0x00,0x00,0x33,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0xde,0x00,0x00,0x00, -0x85,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe0,0x00,0x00,0x00, -0xdd,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0x41,0x00,0x05,0x00, -0x2f,0x00,0x00,0x00,0xe2,0x00,0x00,0x00,0x2c,0x00,0x00,0x00, -0xe1,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xe3,0x00,0x00,0x00,0xe2,0x00,0x00,0x00,0x70,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xe5,0x00,0x00,0x00,0x6d,0x00,0x00,0x00, -0x85,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe7,0x00,0x00,0x00, -0xe5,0x00,0x00,0x00,0x60,0x01,0x00,0x00,0x0c,0x00,0x07,0x00, -0x06,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x1a,0x00,0x00,0x00,0xe3,0x00,0x00,0x00,0xe7,0x00,0x00,0x00, -0x85,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe9,0x00,0x00,0x00, -0xe0,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0x88,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0xe9,0x00,0x00,0x00, -0x5d,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x2f,0x00,0x00,0x00, -0x26,0x01,0x00,0x00,0x2c,0x00,0x00,0x00,0x2e,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x27,0x01,0x00,0x00, -0x26,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x2a,0x01,0x00,0x00,0xdf,0x00,0x00,0x00,0xeb,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x2f,0x00,0x00,0x00,0x2c,0x01,0x00,0x00, -0x2c,0x00,0x00,0x00,0x39,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x2d,0x01,0x00,0x00,0x2c,0x01,0x00,0x00, -0xb7,0x00,0x05,0x00,0x3c,0x00,0x00,0x00,0x2e,0x01,0x00,0x00, -0x2d,0x01,0x00,0x00,0x20,0x00,0x00,0x00,0xf7,0x00,0x03,0x00, -0x47,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, -0x2e,0x01,0x00,0x00,0x2f,0x01,0x00,0x00,0x47,0x01,0x00,0x00, -0xf8,0x00,0x02,0x00,0x2f,0x01,0x00,0x00,0x41,0x00,0x06,0x00, -0x2f,0x00,0x00,0x00,0x30,0x01,0x00,0x00,0x2c,0x00,0x00,0x00, -0x41,0x00,0x00,0x00,0x42,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x31,0x01,0x00,0x00,0x30,0x01,0x00,0x00, -0x41,0x00,0x06,0x00,0x2f,0x00,0x00,0x00,0x32,0x01,0x00,0x00, -0x2c,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x45,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x33,0x01,0x00,0x00, -0x32,0x01,0x00,0x00,0x70,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x54,0x01,0x00,0x00,0xb7,0x00,0x00,0x00,0x83,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x55,0x01,0x00,0x00,0x54,0x01,0x00,0x00, -0x31,0x01,0x00,0x00,0x83,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x56,0x01,0x00,0x00,0x33,0x01,0x00,0x00,0x31,0x01,0x00,0x00, -0x0c,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x57,0x01,0x00,0x00, -0x01,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x1b,0x00,0x00,0x00, -0x56,0x01,0x00,0x00,0x88,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x58,0x01,0x00,0x00,0x55,0x01,0x00,0x00,0x57,0x01,0x00,0x00, -0x0c,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x5a,0x01,0x00,0x00, -0x01,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x58,0x01,0x00,0x00,0x0c,0x00,0x07,0x00,0x06,0x00,0x00,0x00, -0x5b,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x25,0x00,0x00,0x00, -0x1f,0x00,0x00,0x00,0x5a,0x01,0x00,0x00,0x83,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x5c,0x01,0x00,0x00,0x1f,0x00,0x00,0x00, -0x5b,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x37,0x01,0x00,0x00,0x5c,0x01,0x00,0x00,0x2d,0x01,0x00,0x00, -0x83,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x61,0x01,0x00,0x00, -0x5b,0x01,0x00,0x00,0x1f,0x00,0x00,0x00,0x0c,0x00,0x08,0x00, +0x06,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x07,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x2a,0x00,0x00,0x00, +0x09,0x00,0x00,0x00,0x29,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0x2a,0x00,0x00,0x00,0x2b,0x00,0x00,0x00,0x09,0x00,0x00,0x00, +0x15,0x00,0x04,0x00,0x2c,0x00,0x00,0x00,0x20,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x2c,0x00,0x00,0x00, +0x2d,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x2e,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x2c,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x2c,0x00,0x00,0x00, +0x38,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x14,0x00,0x02,0x00, +0x3b,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x2c,0x00,0x00,0x00, +0x40,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x2c,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x2c,0x00,0x00,0x00,0x44,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x52,0x00,0x00,0x00,0xcd,0xcc,0xcc,0x3d,0x17,0x00,0x04,0x00, +0x65,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x03,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x66,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x65,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x66,0x00,0x00,0x00, +0x67,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x07,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x69,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x07,0x00,0x00,0x00, +0x6e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x72,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x07,0x00,0x00,0x00, +0x1d,0x00,0x03,0x00,0x86,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x1e,0x00,0x03,0x00,0x87,0x00,0x00,0x00,0x86,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x88,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x87,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x88,0x00,0x00,0x00, +0x89,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, +0x8c,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, +0x8d,0x00,0x00,0x00,0x8c,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x8e,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x8d,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x8e,0x00,0x00,0x00,0x8f,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x92,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x2c,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,0x03,0x00,0x00,0x00, +0x1d,0x00,0x03,0x00,0xac,0x00,0x00,0x00,0x2c,0x00,0x00,0x00, +0x1e,0x00,0x03,0x00,0xad,0x00,0x00,0x00,0xac,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0xae,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0xad,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xae,0x00,0x00,0x00, +0xaf,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0xb1,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x2c,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x2c,0x00,0x00,0x00,0xb5,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x2c,0x00,0x00,0x00, +0xbf,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, +0xc6,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, +0xc7,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0xc8,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xc7,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0xc8,0x00,0x00,0x00,0xc9,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x07,0x00,0x00,0x00, +0xf9,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x2c,0x00,0x06,0x00, +0x65,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,0x68,0x00,0x00,0x00, +0xf9,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x40,0x01,0x00,0x00,0x00,0x00,0x00,0x3f, +0x36,0x00,0x05,0x00,0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0x05,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0xfb,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0xfb,0x00,0x03,0x00,0x6e,0x00,0x00,0x00, +0xfc,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xfc,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x69,0x00,0x00,0x00,0x6a,0x00,0x00,0x00, +0x67,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x07,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,0x6a,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x07,0x00,0x00,0x00,0x6c,0x00,0x00,0x00, +0x6b,0x00,0x00,0x00,0x17,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0x69,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x67,0x00,0x00,0x00, +0x6e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x07,0x00,0x00,0x00, +0x70,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0x72,0x00,0x00,0x00,0x73,0x00,0x00,0x00,0x2b,0x00,0x00,0x00, +0x41,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x07,0x00,0x00,0x00, +0x74,0x00,0x00,0x00,0x73,0x00,0x00,0x00,0xae,0x00,0x05,0x00, +0x3b,0x00,0x00,0x00,0x75,0x00,0x00,0x00,0x6c,0x00,0x00,0x00, +0x74,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0x77,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x75,0x00,0x00,0x00, +0x76,0x00,0x00,0x00,0x77,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0x76,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xfb,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0x77,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0x72,0x00,0x00,0x00,0x7a,0x00,0x00,0x00,0x2b,0x00,0x00,0x00, +0x44,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x07,0x00,0x00,0x00, +0x7b,0x00,0x00,0x00,0x7a,0x00,0x00,0x00,0xae,0x00,0x05,0x00, +0x3b,0x00,0x00,0x00,0x7c,0x00,0x00,0x00,0x6c,0x00,0x00,0x00, +0x7b,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0x7e,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x7c,0x00,0x00,0x00, +0x7d,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0x7d,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x07,0x00,0x00,0x00, +0x83,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x74,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x07,0x00,0x00,0x00,0x85,0x00,0x00,0x00, +0x83,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x41,0x00,0x06,0x00, +0x92,0x00,0x00,0x00,0x93,0x00,0x00,0x00,0x8f,0x00,0x00,0x00, +0x41,0x00,0x00,0x00,0x85,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x94,0x00,0x00,0x00,0x93,0x00,0x00,0x00, +0x41,0x00,0x06,0x00,0x92,0x00,0x00,0x00,0x95,0x00,0x00,0x00, +0x89,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x85,0x00,0x00,0x00, +0x3e,0x00,0x03,0x00,0x95,0x00,0x00,0x00,0x94,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x07,0x00,0x00,0x00,0x97,0x00,0x00,0x00, +0x85,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x41,0x00,0x06,0x00, +0x92,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,0x8f,0x00,0x00,0x00, +0x41,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,0x9a,0x00,0x00,0x00, +0x41,0x00,0x06,0x00,0x92,0x00,0x00,0x00,0x9c,0x00,0x00,0x00, +0x89,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x97,0x00,0x00,0x00, +0x3e,0x00,0x03,0x00,0x9c,0x00,0x00,0x00,0x9b,0x00,0x00,0x00, +0xf9,0x00,0x02,0x00,0xfb,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0x7e,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x07,0x00,0x00,0x00, +0xa2,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x74,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x07,0x00,0x00,0x00,0xa4,0x00,0x00,0x00, +0xa2,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0x72,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,0x2b,0x00,0x00,0x00, +0xa7,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x07,0x00,0x00,0x00, +0xa9,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,0x86,0x00,0x05,0x00, +0x07,0x00,0x00,0x00,0xaa,0x00,0x00,0x00,0x70,0x00,0x00,0x00, +0xa9,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xb1,0x00,0x00,0x00, +0xb2,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0x41,0x00,0x00,0x00, +0xaa,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x2c,0x00,0x00,0x00, +0xb3,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,0xb3,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x2e,0x00,0x00,0x00,0xb6,0x00,0x00,0x00, +0x2b,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,0xb6,0x00,0x00,0x00, +0x70,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xb9,0x00,0x00,0x00, +0x6c,0x00,0x00,0x00,0x85,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xbb,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0x40,0x01,0x00,0x00, +0x0c,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xbc,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0xb7,0x00,0x00,0x00, +0xbb,0x00,0x00,0x00,0x85,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xbd,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,0xbc,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x72,0x00,0x00,0x00,0xc0,0x00,0x00,0x00, +0x2b,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x07,0x00,0x00,0x00,0xc1,0x00,0x00,0x00,0xc0,0x00,0x00,0x00, +0xab,0x00,0x05,0x00,0x3b,0x00,0x00,0x00,0xc2,0x00,0x00,0x00, +0xc1,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0xf7,0x00,0x03,0x00, +0xc5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, +0xc2,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,0xce,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0xc4,0x00,0x00,0x00,0x86,0x00,0x05,0x00, +0x07,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,0x6c,0x00,0x00,0x00, +0x17,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x92,0x00,0x00,0x00, +0xcc,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0x41,0x00,0x00,0x00, +0xcb,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xcd,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, +0xc5,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xce,0x00,0x00,0x00, +0xf9,0x00,0x02,0x00,0xc5,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xc5,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00, +0x3d,0x01,0x00,0x00,0xcd,0x00,0x00,0x00,0xc4,0x00,0x00,0x00, +0x1f,0x00,0x00,0x00,0xce,0x00,0x00,0x00,0x88,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,0xbd,0x00,0x00,0x00, +0x3d,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x2e,0x00,0x00,0x00, +0x06,0x01,0x00,0x00,0x2b,0x00,0x00,0x00,0x2d,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x07,0x01,0x00,0x00, +0x06,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x2e,0x00,0x00,0x00, +0x08,0x01,0x00,0x00,0x2b,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x09,0x01,0x00,0x00, +0x08,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x0a,0x01,0x00,0x00,0x09,0x01,0x00,0x00,0xd2,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x2e,0x00,0x00,0x00,0x0c,0x01,0x00,0x00, +0x2b,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x0d,0x01,0x00,0x00,0x0c,0x01,0x00,0x00, +0xb7,0x00,0x05,0x00,0x3b,0x00,0x00,0x00,0x0e,0x01,0x00,0x00, +0x0d,0x01,0x00,0x00,0x20,0x00,0x00,0x00,0xf7,0x00,0x03,0x00, +0x27,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, +0x0e,0x01,0x00,0x00,0x0f,0x01,0x00,0x00,0x27,0x01,0x00,0x00, +0xf8,0x00,0x02,0x00,0x0f,0x01,0x00,0x00,0x41,0x00,0x06,0x00, +0x2e,0x00,0x00,0x00,0x10,0x01,0x00,0x00,0x2b,0x00,0x00,0x00, +0x40,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x11,0x01,0x00,0x00,0x10,0x01,0x00,0x00, +0x41,0x00,0x06,0x00,0x2e,0x00,0x00,0x00,0x12,0x01,0x00,0x00, +0x2b,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x44,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x13,0x01,0x00,0x00, +0x12,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x07,0x00,0x00,0x00, +0x33,0x01,0x00,0x00,0x6c,0x00,0x00,0x00,0x17,0x00,0x00,0x00, +0x70,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x34,0x01,0x00,0x00, +0x33,0x01,0x00,0x00,0x83,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x35,0x01,0x00,0x00,0x34,0x01,0x00,0x00,0x11,0x01,0x00,0x00, +0x83,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x36,0x01,0x00,0x00, +0x13,0x01,0x00,0x00,0x11,0x01,0x00,0x00,0x0c,0x00,0x07,0x00, +0x06,0x00,0x00,0x00,0x37,0x01,0x00,0x00,0x01,0x00,0x00,0x00, +0x28,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x36,0x01,0x00,0x00, +0x88,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x38,0x01,0x00,0x00, +0x35,0x01,0x00,0x00,0x37,0x01,0x00,0x00,0x0c,0x00,0x07,0x00, 0x06,0x00,0x00,0x00,0x3a,0x01,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0x61,0x01,0x00,0x00,0x2d,0x01,0x00,0x00, -0x1f,0x00,0x00,0x00,0x85,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x3d,0x01,0x00,0x00,0xeb,0x00,0x00,0x00,0x37,0x01,0x00,0x00, -0x0c,0x00,0x08,0x00,0x06,0x00,0x00,0x00,0x3e,0x01,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x2a,0x01,0x00,0x00, -0x3a,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,0x88,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x41,0x01,0x00,0x00,0x1f,0x00,0x00,0x00, -0xdf,0x00,0x00,0x00,0x0c,0x00,0x06,0x00,0x06,0x00,0x00,0x00, -0x42,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x41,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0x06,0x00,0x00,0x00, -0x44,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x53,0x00,0x00,0x00,0x42,0x01,0x00,0x00,0x1f,0x00,0x00,0x00, -0x85,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x46,0x01,0x00,0x00, -0x27,0x01,0x00,0x00,0x44,0x01,0x00,0x00,0xf9,0x00,0x02,0x00, -0x47,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x47,0x01,0x00,0x00, -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x5f,0x01,0x00,0x00, -0x27,0x01,0x00,0x00,0xd0,0x00,0x00,0x00,0x46,0x01,0x00,0x00, -0x2f,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00, -0x5e,0x01,0x00,0x00,0x2a,0x01,0x00,0x00,0xd0,0x00,0x00,0x00, -0x3e,0x01,0x00,0x00,0x2f,0x01,0x00,0x00,0x0c,0x00,0x06,0x00, -0x06,0x00,0x00,0x00,0x49,0x01,0x00,0x00,0x01,0x00,0x00,0x00, -0x0e,0x00,0x00,0x00,0x5e,0x01,0x00,0x00,0x85,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x4b,0x01,0x00,0x00,0x49,0x01,0x00,0x00, -0x5f,0x01,0x00,0x00,0x0c,0x00,0x06,0x00,0x06,0x00,0x00,0x00, -0x4d,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x0d,0x00,0x00,0x00, -0x5e,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x4f,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,0x5f,0x01,0x00,0x00, -0x41,0x00,0x06,0x00,0xa0,0x00,0x00,0x00,0xf8,0x00,0x00,0x00, -0x9d,0x00,0x00,0x00,0x42,0x00,0x00,0x00,0xb8,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xf9,0x00,0x00,0x00, -0xf8,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x07,0x00,0x00,0x00, -0xfe,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,0x17,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x07,0x00,0x00,0x00,0xff,0x00,0x00,0x00, -0xb8,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0x41,0x00,0x06,0x00, -0xa0,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x9d,0x00,0x00,0x00, -0x42,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x01,0x00,0x00, -0x85,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x09,0x01,0x00,0x00, -0x01,0x01,0x00,0x00,0x4f,0x01,0x00,0x00,0x7f,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x62,0x01,0x00,0x00,0x09,0x01,0x00,0x00, -0x0c,0x00,0x08,0x00,0x06,0x00,0x00,0x00,0x0a,0x01,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xf9,0x00,0x00,0x00, -0x4b,0x01,0x00,0x00,0x62,0x01,0x00,0x00,0x41,0x00,0x06,0x00, -0xa0,0x00,0x00,0x00,0x0b,0x01,0x00,0x00,0x97,0x00,0x00,0x00, -0x42,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0x3e,0x00,0x03,0x00, -0x0b,0x01,0x00,0x00,0x0a,0x01,0x00,0x00,0x85,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x16,0x01,0x00,0x00,0x01,0x01,0x00,0x00, -0x4b,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0x06,0x00,0x00,0x00, -0x17,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0xf9,0x00,0x00,0x00,0x4f,0x01,0x00,0x00,0x16,0x01,0x00,0x00, -0x41,0x00,0x06,0x00,0xa0,0x00,0x00,0x00,0x18,0x01,0x00,0x00, -0x97,0x00,0x00,0x00,0x42,0x00,0x00,0x00,0xff,0x00,0x00,0x00, -0x3e,0x00,0x03,0x00,0x18,0x01,0x00,0x00,0x17,0x01,0x00,0x00, -0xf9,0x00,0x02,0x00,0x1b,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, -0x1b,0x01,0x00,0x00,0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00, +0x28,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x38,0x01,0x00,0x00, +0x0c,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x3b,0x01,0x00,0x00, +0x01,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x1f,0x00,0x00,0x00, +0x3a,0x01,0x00,0x00,0x83,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x3c,0x01,0x00,0x00,0x1f,0x00,0x00,0x00,0x3b,0x01,0x00,0x00, +0x85,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x17,0x01,0x00,0x00, +0x3c,0x01,0x00,0x00,0x0d,0x01,0x00,0x00,0x83,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x41,0x01,0x00,0x00,0x3b,0x01,0x00,0x00, +0x1f,0x00,0x00,0x00,0x0c,0x00,0x08,0x00,0x06,0x00,0x00,0x00, +0x1a,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0x41,0x01,0x00,0x00,0x0d,0x01,0x00,0x00,0x1f,0x00,0x00,0x00, +0x85,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1d,0x01,0x00,0x00, +0xd2,0x00,0x00,0x00,0x17,0x01,0x00,0x00,0x0c,0x00,0x08,0x00, +0x06,0x00,0x00,0x00,0x1e,0x01,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x0a,0x01,0x00,0x00,0x1a,0x01,0x00,0x00, +0x1d,0x01,0x00,0x00,0x88,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x21,0x01,0x00,0x00,0x1f,0x00,0x00,0x00,0x09,0x01,0x00,0x00, +0x0c,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x22,0x01,0x00,0x00, +0x01,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x21,0x01,0x00,0x00, +0x0c,0x00,0x08,0x00,0x06,0x00,0x00,0x00,0x24,0x01,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x52,0x00,0x00,0x00, +0x22,0x01,0x00,0x00,0x1f,0x00,0x00,0x00,0x85,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x26,0x01,0x00,0x00,0x07,0x01,0x00,0x00, +0x24,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x27,0x01,0x00,0x00, +0xf8,0x00,0x02,0x00,0x27,0x01,0x00,0x00,0xf5,0x00,0x07,0x00, +0x06,0x00,0x00,0x00,0x3f,0x01,0x00,0x00,0x07,0x01,0x00,0x00, +0xc5,0x00,0x00,0x00,0x26,0x01,0x00,0x00,0x0f,0x01,0x00,0x00, +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x3e,0x01,0x00,0x00, +0x0a,0x01,0x00,0x00,0xc5,0x00,0x00,0x00,0x1e,0x01,0x00,0x00, +0x0f,0x01,0x00,0x00,0x0c,0x00,0x06,0x00,0x06,0x00,0x00,0x00, +0x29,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x0e,0x00,0x00,0x00, +0x3e,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x2b,0x01,0x00,0x00,0x29,0x01,0x00,0x00,0x3f,0x01,0x00,0x00, +0x0c,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x2d,0x01,0x00,0x00, +0x01,0x00,0x00,0x00,0x0d,0x00,0x00,0x00,0x3e,0x01,0x00,0x00, +0x85,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2f,0x01,0x00,0x00, +0x2d,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,0x41,0x00,0x06,0x00, +0x92,0x00,0x00,0x00,0xde,0x00,0x00,0x00,0x8f,0x00,0x00,0x00, +0x41,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0xde,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x07,0x00,0x00,0x00,0xe2,0x00,0x00,0x00, +0xa4,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x41,0x00,0x06,0x00, +0x92,0x00,0x00,0x00,0xe3,0x00,0x00,0x00,0x8f,0x00,0x00,0x00, +0x41,0x00,0x00,0x00,0xe2,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xe4,0x00,0x00,0x00,0xe3,0x00,0x00,0x00, +0x85,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xec,0x00,0x00,0x00, +0xe4,0x00,0x00,0x00,0x2f,0x01,0x00,0x00,0x7f,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x42,0x01,0x00,0x00,0xec,0x00,0x00,0x00, +0x0c,0x00,0x08,0x00,0x06,0x00,0x00,0x00,0xed,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xdf,0x00,0x00,0x00, +0x2b,0x01,0x00,0x00,0x42,0x01,0x00,0x00,0x41,0x00,0x06,0x00, +0x92,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0x89,0x00,0x00,0x00, +0x41,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,0x3e,0x00,0x03,0x00, +0xee,0x00,0x00,0x00,0xed,0x00,0x00,0x00,0x85,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,0xe4,0x00,0x00,0x00, +0x2b,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0x06,0x00,0x00,0x00, +0xf7,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0xdf,0x00,0x00,0x00,0x2f,0x01,0x00,0x00,0xf6,0x00,0x00,0x00, +0x41,0x00,0x06,0x00,0x92,0x00,0x00,0x00,0xf8,0x00,0x00,0x00, +0x89,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0xe2,0x00,0x00,0x00, +0x3e,0x00,0x03,0x00,0xf8,0x00,0x00,0x00,0xf7,0x00,0x00,0x00, +0xf9,0x00,0x02,0x00,0xfb,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xfb,0x00,0x00,0x00,0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00, }; -const uint64_t rope_neox_f32_len = 4032; +const uint64_t rope_norm_f32_len = 3852; unsigned char scale_f32_data[] = { 0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00, diff --git a/ggml-vulkan.cpp b/ggml-vulkan.cpp index 128769177f102..05cfa31597558 100644 --- a/ggml-vulkan.cpp +++ b/ggml-vulkan.cpp @@ -150,7 +150,7 @@ struct vk_device { vk_pipeline pipeline_relu_f32; vk_pipeline pipeline_diag_mask_inf_f32; vk_pipeline pipeline_soft_max_f32, pipeline_soft_max_f32_f16; - vk_pipeline pipeline_rope_f32, pipeline_rope_f16; + vk_pipeline pipeline_rope_norm_f32, pipeline_rope_norm_f16; vk_pipeline pipeline_rope_neox_f32, pipeline_rope_neox_f16; vk_pipeline pipeline_argsort_f32; vk_pipeline pipeline_sum_rows_f32; @@ -283,26 +283,15 @@ struct vk_op_diag_mask_push_constants { struct vk_op_rope_push_constants { uint32_t ncols; + uint32_t n_dims; float freq_scale; uint32_t p_delta_rows; float freq_base; float ext_factor; float attn_factor; - float corr_dims[4]; -}; - -struct vk_op_rope_neox_push_constants { - uint32_t ncols; - uint32_t ndims; - float freq_scale; - uint32_t p_delta_rows; - float freq_base; - float ext_factor; - float attn_factor; - float corr_dims[4]; + float corr_dims[2]; float theta_scale; - float inv_ndims; - uint32_t has_freq_facs; + uint32_t has_ff; }; struct vk_op_soft_max_push_constants { @@ -1534,11 +1523,11 @@ static void ggml_vk_load_shaders(ggml_backend_vk_context * ctx) { ggml_vk_create_pipeline(ctx, ctx->device->pipeline_soft_max_f32, "soft_max_f32", soft_max_f32_len, soft_max_f32_data, "main", 3, sizeof(vk_op_soft_max_push_constants), {1, 1, 1}, {}, 1); ggml_vk_create_pipeline(ctx, ctx->device->pipeline_soft_max_f32_f16, "soft_max_f32_f16", soft_max_f32_f16_len, soft_max_f32_f16_data, "main", 3, sizeof(vk_op_soft_max_push_constants), {1, 1, 1}, {}, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_rope_f32, "rope_f32", rope_f32_len, rope_f32_data, "main", 3, sizeof(vk_op_rope_push_constants), {1, 512, 1}, {}, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_rope_f16, "rope_f16", rope_f16_len, rope_f16_data, "main", 3, sizeof(vk_op_rope_push_constants), {1, 512, 1}, {}, 1); + ggml_vk_create_pipeline(ctx, ctx->device->pipeline_rope_norm_f32, "rope_norm_f32", rope_norm_f32_len, rope_norm_f32_data, "main", 4, sizeof(vk_op_rope_push_constants), {1, 512, 1}, {}, 1); + ggml_vk_create_pipeline(ctx, ctx->device->pipeline_rope_norm_f16, "rope_norm_f16", rope_norm_f16_len, rope_norm_f16_data, "main", 4, sizeof(vk_op_rope_push_constants), {1, 512, 1}, {}, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_rope_neox_f32, "rope_neox_f32", rope_neox_f32_len, rope_neox_f32_data, "main", 4, sizeof(vk_op_rope_neox_push_constants), {1, 512, 1}, {}, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_rope_neox_f16, "rope_neox_f16", rope_neox_f16_len, rope_neox_f16_data, "main", 4, sizeof(vk_op_rope_neox_push_constants), {1, 512, 1}, {}, 1); + ggml_vk_create_pipeline(ctx, ctx->device->pipeline_rope_neox_f32, "rope_neox_f32", rope_neox_f32_len, rope_neox_f32_data, "main", 4, sizeof(vk_op_rope_push_constants), {1, 512, 1}, {}, 1); + ggml_vk_create_pipeline(ctx, ctx->device->pipeline_rope_neox_f16, "rope_neox_f16", rope_neox_f16_len, rope_neox_f16_data, "main", 4, sizeof(vk_op_rope_push_constants), {1, 512, 1}, {}, 1); ggml_vk_create_pipeline(ctx, ctx->device->pipeline_argsort_f32, "argsort_f32", argsort_f32_len, argsort_f32_data, "main", 2, sizeof(vk_op_argsort_push_constants), {1024, 1, 1}, {}, 1); @@ -3905,10 +3894,10 @@ static vk_pipeline ggml_vk_op_get_pipeline(ggml_backend_vk_context * ctx, const } } else { if (src0->type == GGML_TYPE_F32 && dst->type == GGML_TYPE_F32) { - return ctx->device->pipeline_rope_f32; + return ctx->device->pipeline_rope_norm_f32; } if (src0->type == GGML_TYPE_F16 && dst->type == GGML_TYPE_F16) { - return ctx->device->pipeline_rope_f16; + return ctx->device->pipeline_rope_norm_f16; } } return nullptr; @@ -4152,24 +4141,16 @@ static void ggml_vk_op_f32(ggml_backend_vk_context * ctx, vk_context * subctx, c ggml_vk_sync_buffers(subctx); ggml_vk_dispatch_pipeline(ctx, subctx, pipeline, { { d_X, x_buf_offset, x_sz }, subbuf_y, { d_D, d_buf_offset, d_sz } }, sizeof(PC), &pc, elements); } else if (op == GGML_OP_ROPE) { - const int mode = ((int32_t *) dst->op_params)[2]; - const bool is_neox = mode & 2; - - if (is_neox) { - // Empty src2 is possible in rope, but the shader needs a buffer - vk_subbuffer subbuf_z; - if (use_src2) { - subbuf_z = { d_Z, z_buf_offset, z_sz }; - } else { - subbuf_z = { d_X, 0, d_X->size }; - } - - ggml_vk_sync_buffers(subctx); - ggml_vk_dispatch_pipeline(ctx, subctx, pipeline, { { d_X, x_buf_offset, x_sz }, { d_Y, y_buf_offset, y_sz }, subbuf_z, { d_D, d_buf_offset, d_sz } }, sizeof(PC), &pc, elements); + // Empty src2 is possible in rope, but the shader needs a buffer + vk_subbuffer subbuf_z; + if (use_src2) { + subbuf_z = { d_Z, z_buf_offset, z_sz }; } else { - ggml_vk_sync_buffers(subctx); - ggml_vk_dispatch_pipeline(ctx, subctx, pipeline, { { d_X, x_buf_offset, x_sz }, { d_Y, y_buf_offset, y_sz }, { d_D, d_buf_offset, d_sz } }, sizeof(PC), &pc, elements); + subbuf_z = { d_X, 0, d_X->size }; } + + ggml_vk_sync_buffers(subctx); + ggml_vk_dispatch_pipeline(ctx, subctx, pipeline, { { d_X, x_buf_offset, x_sz }, { d_Y, y_buf_offset, y_sz }, subbuf_z, { d_D, d_buf_offset, d_sz } }, sizeof(PC), &pc, elements); } else if (use_src2) { ggml_vk_sync_buffers(subctx); ggml_vk_dispatch_pipeline(ctx, subctx, pipeline, { { d_X, x_buf_offset, x_sz }, { d_Y, y_buf_offset, y_sz }, { d_Z, z_buf_offset, z_sz }, { d_D, d_buf_offset, d_sz } }, sizeof(PC), &pc, elements); @@ -4391,7 +4372,7 @@ static void ggml_vk_soft_max(ggml_backend_vk_context * ctx, vk_context * subctx, static void ggml_vk_rope(ggml_backend_vk_context * ctx, vk_context * subctx, const ggml_tensor * src0, const ggml_tensor * src1, const ggml_tensor * src2, ggml_tensor * dst) { const int n_dims = ((int32_t *) dst->op_params)[1]; - const int mode = ((int32_t *) dst->op_params)[2]; + // const int mode = ((int32_t *) dst->op_params)[2]; // const int n_ctx = ((int32_t *) dst->op_params)[3]; const int n_ctx_orig = ((int32_t *) dst->op_params)[4]; const float freq_base = ((float *) dst->op_params)[5]; @@ -4401,28 +4382,16 @@ static void ggml_vk_rope(ggml_backend_vk_context * ctx, vk_context * subctx, con const float beta_fast = ((float *) dst->op_params)[9]; const float beta_slow = ((float *) dst->op_params)[10]; - const bool is_neox = mode & 2; - -#pragma message("TODO: update rope NORM mode to match NEOX mode") -#pragma message(" https://github.com/ggerganov/llama.cpp/pull/7634") - float corr_dims[2]; ggml_rope_yarn_corr_dims(n_dims, n_ctx_orig, freq_base, beta_fast, beta_slow, corr_dims); - if (is_neox) { - const float theta_scale = powf(freq_base, -2.0f/n_dims); - const float inv_ndims = -1.0f / n_dims; - ggml_vk_op_f32(ctx, subctx, src0, src1, src2, dst, GGML_OP_ROPE, { - (uint32_t)src0->ne[0], (uint32_t)n_dims, freq_scale, (uint32_t)src0->ne[1], - freq_base, ext_factor, attn_factor, {corr_dims[0], corr_dims[1], 0.0f, 0.0f}, theta_scale, inv_ndims, - src2 != nullptr, - }); - } else { - ggml_vk_op_f32(ctx, subctx, src0, src1, src2, dst, GGML_OP_ROPE, { - (uint32_t)src0->ne[0], freq_scale, (uint32_t)src0->ne[1], - freq_base, ext_factor, attn_factor, {corr_dims[0], corr_dims[1], 0.0f, 0.0f} - }); - } + const float theta_scale = powf(freq_base, -2.0f/n_dims); + + ggml_vk_op_f32(ctx, subctx, src0, src1, src2, dst, GGML_OP_ROPE, { + (uint32_t)src0->ne[0], (uint32_t)n_dims, freq_scale, (uint32_t)src0->ne[1], + freq_base, ext_factor, attn_factor, {corr_dims[0], corr_dims[1]}, theta_scale, + src2 != nullptr, + }); } static void ggml_vk_argsort(ggml_backend_vk_context * ctx, vk_context * subctx, const ggml_tensor * src0, ggml_tensor * dst) { @@ -6070,7 +6039,13 @@ GGML_CALL static ggml_backend_buffer_t ggml_backend_vk_buffer_type_alloc_buffer( std::cerr << "ggml_backend_vk_buffer_type_alloc_buffer(" << size << ")" << std::endl; #endif ggml_backend_vk_buffer_type_context * ctx = (ggml_backend_vk_buffer_type_context *) buft->context; - vk_buffer dev_buffer = ggml_vk_create_buffer_device(ctx->ctx, size); + + vk_buffer dev_buffer = nullptr; + try { + dev_buffer = ggml_vk_create_buffer_device(ctx->ctx, size); + } catch (const vk::SystemError& e) { + return nullptr; + } ggml_backend_vk_buffer_context * bufctx = new ggml_backend_vk_buffer_context(ctx->ctx, std::move(dev_buffer), ctx->name); @@ -6466,7 +6441,7 @@ GGML_CALL static bool ggml_backend_vk_supports_op(ggml_backend_t backend, const // return src0_type != GGML_TYPE_I32 && src0_type != GGML_TYPE_I16; // } break; case GGML_OP_ROPE: - return true; + return ggml_is_contiguous(op->src[0]); case GGML_OP_NONE: case GGML_OP_RESHAPE: case GGML_OP_VIEW: diff --git a/ggml_vk_generate_shaders.py b/ggml_vk_generate_shaders.py index a905f570cfb14..400a63f579c2a 100644 --- a/ggml_vk_generate_shaders.py +++ b/ggml_vk_generate_shaders.py @@ -2400,7 +2400,7 @@ """ # ROPE -rope_src = """ +rope_norm_src = """ #version 450 #extension GL_EXT_shader_16bit_storage : require @@ -2408,17 +2408,21 @@ layout(local_size_x = 1, local_size_y = 256, local_size_z = 1) in; layout (binding = 0) readonly buffer X {A_TYPE data_a[];}; -layout (binding = 1) readonly buffer Y {int data_b[];}; -layout (binding = 2) writeonly buffer D {D_TYPE data_d[];}; +layout (binding = 1) readonly buffer Y {int data_pos[];}; +layout (binding = 2) readonly buffer Z {float data_ff[];}; +layout (binding = 3) writeonly buffer D {D_TYPE data_d[];}; layout (push_constant) uniform parameter { uint ncols; + uint n_dims; float freq_scale; uint p_delta_rows; float freq_base; float ext_factor; float attn_factor; - float corr_dims[4]; + float corr_dims[2]; + float theta_scale; + uint has_ff; } p; float rope_yarn_ramp(const float low, const float high, const uint i0) { @@ -2450,14 +2454,24 @@ return; } + if (col >= p.n_dims) { + const uint i = row*p.ncols + col; + + data_d[i + 0] = data_a[i + 0]; + data_d[i + 1] = data_a[i + 1]; + + return; + } + const uint i = row*p.ncols + col; const uint i2 = row/p.p_delta_rows; - const int pos = data_b[i2]; - const float theta_base = pos * pow(p.freq_base, -float(col)/p.ncols); + const float theta_base = data_pos[i2] * pow(p.theta_scale, col/2.0f); + + const float freq_factor = p.has_ff != 0 ? data_ff[col/2] : 1.0f; float cos_theta, sin_theta; - rope_yarn(theta_base, col, cos_theta, sin_theta); + rope_yarn(theta_base / freq_factor, col, cos_theta, sin_theta); const float x0 = float(data_a[i + 0]); const float x1 = float(data_a[i + 1]); @@ -2475,22 +2489,21 @@ layout(local_size_x = 1, local_size_y = 256, local_size_z = 1) in; layout (binding = 0) readonly buffer X {A_TYPE data_a[];}; -layout (binding = 1) readonly buffer Y {int data_b[];}; -layout (binding = 2) readonly buffer Z {float data_freq_factors[];}; +layout (binding = 1) readonly buffer Y {int data_pos[];}; +layout (binding = 2) readonly buffer Z {float data_ff[];}; layout (binding = 3) writeonly buffer D {D_TYPE data_d[];}; layout (push_constant) uniform parameter { uint ncols; - uint ndims; + uint n_dims; float freq_scale; uint p_delta_rows; float freq_base; float ext_factor; float attn_factor; - float corr_dims[4]; + float corr_dims[2]; float theta_scale; - float inv_ndims; - uint has_freq_facs; + uint has_ff; } p; float rope_yarn_ramp(const float low, const float high, const uint i0) { @@ -2522,11 +2535,8 @@ return; } - const uint ib = col / p.ndims; - const uint ic = col % p.ndims; - - if (ib > 0) { - const uint i = row*p.ncols + ib*p.ndims + ic; + if (col >= p.n_dims) { + const uint i = row*p.ncols + col; data_d[i + 0] = data_a[i + 0]; data_d[i + 1] = data_a[i + 1]; @@ -2534,29 +2544,27 @@ return; } - const uint i = row*p.ncols + ib*p.ndims + ic/2; + const uint i = row*p.ncols + col/2; const uint i2 = row/p.p_delta_rows; - const int pos = data_b[i2]; - const float freq_factor = p.has_freq_facs != 0 ? data_freq_factors[ic/2] : 1.0f; - const float theta_base = pos*p.freq_scale*pow(p.theta_scale, col/2.0f) / freq_factor; + const float theta_base = data_pos[i2] * pow(p.theta_scale, col/2.0f); + + const float freq_factor = p.has_ff != 0 ? data_ff[col/2] : 1.0f; float cos_theta, sin_theta; - rope_yarn(theta_base, ic, cos_theta, sin_theta); + rope_yarn(theta_base / freq_factor, col, cos_theta, sin_theta); const float x0 = float(data_a[i + 0]); - const float x1 = float(data_a[i + p.ndims/2]); + const float x1 = float(data_a[i + p.n_dims/2]); data_d[i + 0] = D_TYPE(x0*cos_theta - x1*sin_theta); - data_d[i + p.ndims/2] = D_TYPE(x0*sin_theta + x1*cos_theta); + data_d[i + p.n_dims/2] = D_TYPE(x0*sin_theta + x1*cos_theta); } """ argsort_src = """ #version 450 -#extension GL_EXT_shader_16bit_storage : require - #define BLOCK_SIZE 1024 #define ASC 0 @@ -3039,8 +3047,8 @@ async def main(): tasks.append(string_to_spv("soft_max_f32", f"{soft_max_head}\n{shader_f32}\n{soft_max_body}", {"A_TYPE": "float", "B_TYPE": "float", "C_TYPE": "float", "D_TYPE": "float"})) tasks.append(string_to_spv("soft_max_f32_f16", f"{soft_max_head}\n{shader_f32}\n{soft_max_body}", {"A_TYPE": "float", "B_TYPE": "float16_t", "C_TYPE": "float16_t", "D_TYPE": "float"})) - tasks.append(string_to_spv("rope_f32", rope_src, {"A_TYPE": "float", "D_TYPE": "float"})) - tasks.append(string_to_spv("rope_f16", rope_src, {"A_TYPE": "float16_t", "D_TYPE": "float16_t"})) + tasks.append(string_to_spv("rope_norm_f32", rope_norm_src, {"A_TYPE": "float", "D_TYPE": "float"})) + tasks.append(string_to_spv("rope_norm_f16", rope_norm_src, {"A_TYPE": "float16_t", "D_TYPE": "float16_t"})) tasks.append(string_to_spv("rope_neox_f32", rope_neox_src, {"A_TYPE": "float", "D_TYPE": "float"})) tasks.append(string_to_spv("rope_neox_f16", rope_neox_src, {"A_TYPE": "float16_t", "D_TYPE": "float16_t"})) From 73bac2b11d7d3e20982fc9ee607625836387db8b Mon Sep 17 00:00:00 2001 From: "k.h.lai" Date: Wed, 12 Jun 2024 03:26:05 +0800 Subject: [PATCH 057/131] vulkan: select only one device for single gpu with multiple drivers (#7582) --- ggml-vulkan.cpp | 82 ++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 78 insertions(+), 4 deletions(-) diff --git a/ggml-vulkan.cpp b/ggml-vulkan.cpp index 05cfa31597558..06ba23313955b 100644 --- a/ggml-vulkan.cpp +++ b/ggml-vulkan.cpp @@ -1,5 +1,5 @@ #include "ggml-vulkan.h" - +#include #ifdef GGML_VULKAN_RUN_TESTS #include #endif @@ -9,12 +9,13 @@ #include #include #include -#include #include #include #include #include #include +#include +#include #include "ggml.h" #include "ggml-backend-impl.h" @@ -1555,8 +1556,10 @@ static void ggml_vk_print_gpu_info(size_t idx) { vk::PhysicalDeviceProperties2 props2; vk::PhysicalDeviceMaintenance3Properties props3; vk::PhysicalDeviceSubgroupProperties subgroup_props; + vk::PhysicalDeviceDriverProperties driver_props; props2.pNext = &props3; props3.pNext = &subgroup_props; + subgroup_props.pNext = &driver_props; physical_device.getProperties2(&props2); const size_t subgroup_size = subgroup_props.subgroupSize; @@ -1600,7 +1603,7 @@ static void ggml_vk_print_gpu_info(size_t idx) { fp16 = fp16 && vk12_features.shaderFloat16; std::string device_name = props2.properties.deviceName.data(); - std::cerr << GGML_VK_NAME << idx << ": " << device_name << " | uma: " << uma << " | fp16: " << fp16 << " | warp size: " << subgroup_size << std::endl; + std::cerr << GGML_VK_NAME << idx << ": " << device_name << " (" << driver_props.driverName << ") | uma: " << uma << " | fp16: " << fp16 << " | warp size: " << subgroup_size << std::endl; if (props2.properties.deviceType == vk::PhysicalDeviceType::eCpu) { std::cerr << "ggml_vulkan: Warning: Device type is CPU. This is probably not the device you want." << std::endl; @@ -1696,7 +1699,78 @@ void ggml_vk_instance_init() { vk::PhysicalDeviceProperties props = devices[i].getProperties(); if (props.deviceType == vk::PhysicalDeviceType::eDiscreteGpu) { - vk_instance.device_indices.push_back(i); + // Check if there are two physical devices corresponding to the same GPU + auto old_device = std::find_if( + vk_instance.device_indices.begin(), + vk_instance.device_indices.end(), + [&devices, &props](const size_t k){ return devices[k].getProperties().deviceID == props.deviceID; } + ); + if (old_device == vk_instance.device_indices.end()) { + vk_instance.device_indices.push_back(i); + } else { + // There can be two physical devices corresponding to the same GPU if there are 2 different drivers + // This can cause error when splitting layers aross the devices, need to keep only 1 +#ifdef GGML_VULKAN_DEBUG + std::cerr << "Device " << i << " and device " << *old_device << " have the same device id" << std::endl; +#endif + + vk::PhysicalDeviceProperties2 old_prop; + vk::PhysicalDeviceDriverProperties old_driver; + old_prop.pNext = &old_driver; + devices[*old_device].getProperties2(&old_prop); + + vk::PhysicalDeviceProperties2 new_prop; + vk::PhysicalDeviceDriverProperties new_driver; + new_prop.pNext = &new_driver; + devices[i].getProperties2(&new_prop); + + std::map driver_priorities {}; + int old_priority = std::numeric_limits::max(); + int new_priority = std::numeric_limits::max(); + + // Check https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDriverId.html for the list of driver id + // Smaller number -> higher priority + switch (old_prop.properties.vendorID) { + case VK_VENDOR_ID_AMD: + driver_priorities[vk::DriverId::eMesaRadv] = 1; + driver_priorities[vk::DriverId::eAmdOpenSource] = 2; + driver_priorities[vk::DriverId::eAmdProprietary] = 3; + break; + case VK_VENDOR_ID_INTEL: + driver_priorities[vk::DriverId::eIntelOpenSourceMESA] = 1; + driver_priorities[vk::DriverId::eIntelProprietaryWindows] = 2; + break; + case VK_VENDOR_ID_NVIDIA: + driver_priorities[vk::DriverId::eNvidiaProprietary] = 1; +#if defined(VK_API_VERSION_1_3) && VK_HEADER_VERSION >= 235 + driver_priorities[vk::DriverId::eMesaNvk] = 2; +#endif + break; + } + + if (driver_priorities.count(old_driver.driverID)) { + old_priority = driver_priorities[old_driver.driverID]; + } + if (driver_priorities.count(new_driver.driverID)) { + new_priority = driver_priorities[new_driver.driverID]; + } + + if (new_priority < old_priority) { + auto r = std::remove(vk_instance.device_indices.begin(), vk_instance.device_indices.end(), *old_device); + vk_instance.device_indices.erase(r, vk_instance.device_indices.end()); + vk_instance.device_indices.push_back(i); + +#ifdef GGML_VULKAN_DEBUG + std::cerr << "Prioritize device " << i << " driver " << new_driver.driverName << " over device " << *old_device << " driver " << old_driver.driverName << std::endl; +#endif + } +#ifdef GGML_VULKAN_DEBUG + else { + std::cerr << "Prioritize device " << *old_device << " driver " << old_driver.driverName << " over device " << i << " driver " << new_driver.driverName << std::endl; + + } +#endif + } } } From f2b5764beb35583295e2475479c18f249b139b58 Mon Sep 17 00:00:00 2001 From: Patrice Ferlet Date: Wed, 12 Jun 2024 03:18:16 +0200 Subject: [PATCH 058/131] Fix a typo and add Fedora 40 pacakge to install for Vulkan (#7794) [no ci] Fix "appropiate" to "appropriate" and add Fedora 40 packages to install to compile with Vulkan support --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index ecb9d00db7957..8c065aace09be 100644 --- a/README.md +++ b/README.md @@ -576,7 +576,9 @@ Building the program with BLAS support may lead to some performance improvements vulkaninfo ``` - Alternatively your package manager might be able to provide the appropiate libraries. For example for Ubuntu 22.04 you can install `libvulkan-dev` instead. + Alternatively your package manager might be able to provide the appropriate libraries. + For example for Ubuntu 22.04 you can install `libvulkan-dev` instead. + For Fedora 40, you can install `vulkan-devel`, `glslc` and `glslang` packages. Then, build llama.cpp using the cmake command below: From dcf752707d96eb305f546526c7bc5d01f0831130 Mon Sep 17 00:00:00 2001 From: "Meng, Hengyu" Date: Wed, 12 Jun 2024 17:05:35 +0800 Subject: [PATCH 059/131] update intel docker oneapi-basekit to 2024.1.1-devel-ubuntu22.04 (#7894) In addition this reverts a workaround we had to do to workaround the upstream issue with expired intel GPG package keys in 2024.0.1-devel-ubuntu22.04 --- .devops/main-intel.Dockerfile | 10 +--------- .devops/server-intel.Dockerfile | 18 +----------------- 2 files changed, 2 insertions(+), 26 deletions(-) diff --git a/.devops/main-intel.Dockerfile b/.devops/main-intel.Dockerfile index 7516c8313c1d6..b7992f47b8f92 100644 --- a/.devops/main-intel.Dockerfile +++ b/.devops/main-intel.Dockerfile @@ -1,15 +1,7 @@ -ARG ONEAPI_VERSION=2024.0.1-devel-ubuntu22.04 +ARG ONEAPI_VERSION=2024.1.1-devel-ubuntu22.04 FROM intel/oneapi-basekit:$ONEAPI_VERSION as build -RUN wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | gpg --dearmor | tee /usr/share/keyrings/intel-oneapi-archive-keyring.gpg > /dev/null && \ - echo "deb [signed-by=/usr/share/keyrings/intel-oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main " | tee /etc/apt/sources.list.d/oneAPI.list && \ - chmod 644 /usr/share/keyrings/intel-oneapi-archive-keyring.gpg && \ - rm /etc/apt/sources.list.d/intel-graphics.list && \ - wget -O- https://repositories.intel.com/graphics/intel-graphics.key | gpg --dearmor | tee /usr/share/keyrings/intel-graphics.gpg > /dev/null && \ - echo "deb [arch=amd64,i386 signed-by=/usr/share/keyrings/intel-graphics.gpg] https://repositories.intel.com/graphics/ubuntu jammy arc" | tee /etc/apt/sources.list.d/intel.gpu.jammy.list && \ - chmod 644 /usr/share/keyrings/intel-graphics.gpg - ARG LLAMA_SYCL_F16=OFF RUN apt-get update && \ apt-get install -y git diff --git a/.devops/server-intel.Dockerfile b/.devops/server-intel.Dockerfile index 13d00b7371744..c5adcb6da0408 100644 --- a/.devops/server-intel.Dockerfile +++ b/.devops/server-intel.Dockerfile @@ -1,15 +1,7 @@ -ARG ONEAPI_VERSION=2024.0.1-devel-ubuntu22.04 +ARG ONEAPI_VERSION=2024.1.1-devel-ubuntu22.04 FROM intel/oneapi-basekit:$ONEAPI_VERSION as build -RUN wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | gpg --dearmor | tee /usr/share/keyrings/intel-oneapi-archive-keyring.gpg > /dev/null && \ - echo "deb [signed-by=/usr/share/keyrings/intel-oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main " | tee /etc/apt/sources.list.d/oneAPI.list && \ - chmod 644 /usr/share/keyrings/intel-oneapi-archive-keyring.gpg && \ - rm /etc/apt/sources.list.d/intel-graphics.list && \ - wget -O- https://repositories.intel.com/graphics/intel-graphics.key | gpg --dearmor | tee /usr/share/keyrings/intel-graphics.gpg > /dev/null && \ - echo "deb [arch=amd64,i386 signed-by=/usr/share/keyrings/intel-graphics.gpg] https://repositories.intel.com/graphics/ubuntu jammy arc" | tee /etc/apt/sources.list.d/intel.gpu.jammy.list && \ - chmod 644 /usr/share/keyrings/intel-graphics.gpg - ARG LLAMA_SYCL_F16=OFF RUN apt-get update && \ apt-get install -y git libcurl4-openssl-dev @@ -27,14 +19,6 @@ RUN if [ "${LLAMA_SYCL_F16}" = "ON" ]; then \ FROM intel/oneapi-basekit:$ONEAPI_VERSION as runtime -RUN wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | gpg --dearmor | tee /usr/share/keyrings/intel-oneapi-archive-keyring.gpg > /dev/null && \ - echo "deb [signed-by=/usr/share/keyrings/intel-oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main " | tee /etc/apt/sources.list.d/oneAPI.list && \ - chmod 644 /usr/share/keyrings/intel-oneapi-archive-keyring.gpg && \ - rm /etc/apt/sources.list.d/intel-graphics.list && \ - wget -O- https://repositories.intel.com/graphics/intel-graphics.key | gpg --dearmor | tee /usr/share/keyrings/intel-graphics.gpg > /dev/null && \ - echo "deb [arch=amd64,i386 signed-by=/usr/share/keyrings/intel-graphics.gpg] https://repositories.intel.com/graphics/ubuntu jammy arc" | tee /etc/apt/sources.list.d/intel.gpu.jammy.list && \ - chmod 644 /usr/share/keyrings/intel-graphics.gpg - RUN apt-get update && \ apt-get install -y libcurl4-openssl-dev From 704a35b183748954013bd875bbbfdd9eaca14e62 Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Wed, 12 Jun 2024 14:42:29 +0300 Subject: [PATCH 060/131] server : restore numeric prompts (#7883) --- examples/server/server.cpp | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/examples/server/server.cpp b/examples/server/server.cpp index 80714fa58360b..919078f2bd920 100644 --- a/examples/server/server.cpp +++ b/examples/server/server.cpp @@ -147,7 +147,7 @@ struct server_slot { int32_t n_prompt_tokens = 0; int32_t n_prompt_tokens_processed = 0; - std::string prompt; + json prompt; // can be either a string, array of strings or array of token ids // when a task is submitted, we first tokenize the prompt and store it here std::vector prompt_tokens; @@ -822,8 +822,13 @@ struct server_context { continue; } + // skip the slot if it does not contains prompt + if (!slot.prompt.is_string()) { + continue; + } + // current slot's prompt - std::string slot_prompt = slot.prompt; + std::string slot_prompt = slot.prompt.get(); // length of the current slot's prompt int slot_prompt_len = slot_prompt.size(); @@ -957,12 +962,12 @@ struct server_context { return false; } - if (prompt->is_string()) { - slot.prompt = prompt->get(); - } else if (prompt->is_array() && prompt->size() == 1 && prompt->at(0).is_string()) { - slot.prompt = prompt->at(0).get(); + if ((prompt->is_string()) || + (prompt->is_array() && prompt->size() == 1 && prompt->at(0).is_string()) || + (prompt->is_array() && !prompt->empty() && prompt->at(0).is_number_integer())) { + slot.prompt = *prompt; } else { - send_error(task, "\"prompt\" must be a string or an array of strings", ERROR_TYPE_INVALID_REQUEST); + send_error(task, "\"prompt\" must be a string or an array of integers", ERROR_TYPE_INVALID_REQUEST); return false; } } From bfaa676b0841617d4ef3596e63aca6be1a8eb1b5 Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Wed, 12 Jun 2024 15:24:20 +0300 Subject: [PATCH 061/131] ggml : improve ggml_is_contiguous logic (#7856) * ggml : improve ggml_is_contiguous logic ggml-ci * ggml : support more contiguous cases ggml-ci --- ggml.c | 75 +++++++++++++++++++++++++++------------------------------- 1 file changed, 35 insertions(+), 40 deletions(-) diff --git a/ggml.c b/ggml.c index 1fc77743bc7b9..5fb9e9a327d22 100644 --- a/ggml.c +++ b/ggml.c @@ -3212,35 +3212,42 @@ GGML_CALL bool ggml_is_transposed(const struct ggml_tensor * tensor) { return tensor->nb[0] > tensor->nb[1]; } -GGML_CALL bool ggml_is_contiguous(const struct ggml_tensor * tensor) { - static_assert(GGML_MAX_DIMS == 4, "GGML_MAX_DIMS is not 4 - update this function"); +static bool ggml_is_contiguous_n(const struct ggml_tensor * tensor, int n) { + size_t next_nb = ggml_type_size(tensor->type); + if (tensor->ne[0] != ggml_blck_size(tensor->type) && tensor->nb[0] != next_nb) { + return false; + } + next_nb *= tensor->ne[0]/ggml_blck_size(tensor->type); + for (int i = 1; i < GGML_MAX_DIMS; i++) { + if (tensor->ne[i] != 1) { + if (i > n) { + if (tensor->nb[i] != next_nb) { + return false; + } + next_nb *= tensor->ne[i]; + } else { + // this dimension does not need to be contiguous + next_nb = tensor->ne[i]*tensor->nb[i]; + } + } + } + return true; +} - return - tensor->nb[0] == ggml_type_size(tensor->type) && - tensor->nb[1] == (tensor->nb[0]*tensor->ne[0])/ggml_blck_size(tensor->type) && - tensor->nb[2] == tensor->nb[1]*tensor->ne[1] && - tensor->nb[3] == tensor->nb[2]*tensor->ne[2]; +GGML_CALL bool ggml_is_contiguous(const struct ggml_tensor * tensor) { + return ggml_is_contiguous_0(tensor); } GGML_CALL bool ggml_is_contiguous_0(const struct ggml_tensor * tensor) { - return ggml_is_contiguous(tensor); + return ggml_is_contiguous_n(tensor, 0); } GGML_CALL bool ggml_is_contiguous_1(const struct ggml_tensor * tensor) { - static_assert(GGML_MAX_DIMS == 4, "GGML_MAX_DIMS is not 4 - update this function"); - - return - tensor->nb[0] == ggml_type_size(tensor->type) && - tensor->nb[2] == tensor->nb[1]*tensor->ne[1] && - tensor->nb[3] == tensor->nb[2]*tensor->ne[2]; + return ggml_is_contiguous_n(tensor, 1); } GGML_CALL bool ggml_is_contiguous_2(const struct ggml_tensor * tensor) { - static_assert(GGML_MAX_DIMS == 4, "GGML_MAX_DIMS is not 4 - update this function"); - - return - tensor->nb[0] == ggml_type_size(tensor->type) && - tensor->nb[3] == tensor->nb[2]*tensor->ne[2]; + return ggml_is_contiguous_n(tensor, 2); } GGML_CALL bool ggml_is_permuted(const struct ggml_tensor * tensor) { @@ -3272,20 +3279,20 @@ bool ggml_are_same_shape(const struct ggml_tensor * t0, const struct ggml_tensor static_assert(GGML_MAX_DIMS == 4, "GGML_MAX_DIMS is not 4 - update this function"); return - (t0->ne[0] == t1->ne[0] ) && - (t0->ne[1] == t1->ne[1] ) && - (t0->ne[2] == t1->ne[2] ) && - (t0->ne[3] == t1->ne[3] ); + (t0->ne[0] == t1->ne[0]) && + (t0->ne[1] == t1->ne[1]) && + (t0->ne[2] == t1->ne[2]) && + (t0->ne[3] == t1->ne[3]); } bool ggml_are_same_stride(const struct ggml_tensor * t0, const struct ggml_tensor * t1) { static_assert(GGML_MAX_DIMS == 4, "GGML_MAX_DIMS is not 4 - update this function"); return - (t0->nb[0] == t1->nb[0] ) && - (t0->nb[1] == t1->nb[1] ) && - (t0->nb[2] == t1->nb[2] ) && - (t0->nb[3] == t1->nb[3] ); + (t0->nb[0] == t1->nb[0]) && + (t0->nb[1] == t1->nb[1]) && + (t0->nb[2] == t1->nb[2]) && + (t0->nb[3] == t1->nb[3]); } // check if t1 can be represented as a repeatition of t0 @@ -4078,32 +4085,26 @@ float ggml_get_f32_1d(const struct ggml_tensor * tensor, int i) { switch (tensor->type) { case GGML_TYPE_I8: { - GGML_ASSERT(tensor->nb[0] == sizeof(int8_t)); return ((int8_t *)(tensor->data))[i]; } case GGML_TYPE_I16: { - GGML_ASSERT(tensor->nb[0] == sizeof(int16_t)); return ((int16_t *)(tensor->data))[i]; } case GGML_TYPE_I32: { - GGML_ASSERT(tensor->nb[0] == sizeof(int32_t)); return ((int32_t *)(tensor->data))[i]; } case GGML_TYPE_F16: { - GGML_ASSERT(tensor->nb[0] == sizeof(ggml_fp16_t)); return GGML_FP16_TO_FP32(((ggml_fp16_t *)(tensor->data))[i]); } case GGML_TYPE_BF16: { - GGML_ASSERT(tensor->nb[0] == sizeof(ggml_bf16_t)); return GGML_BF16_TO_FP32(((ggml_bf16_t *)(tensor->data))[i]); } case GGML_TYPE_F32: { - GGML_ASSERT(tensor->nb[0] == sizeof(float)); return ((float *)(tensor->data))[i]; } default: @@ -4125,32 +4126,26 @@ void ggml_set_f32_1d(const struct ggml_tensor * tensor, int i, float value) { switch (tensor->type) { case GGML_TYPE_I8: { - GGML_ASSERT(tensor->nb[0] == sizeof(int8_t)); ((int8_t *)(tensor->data))[i] = value; } break; case GGML_TYPE_I16: { - GGML_ASSERT(tensor->nb[0] == sizeof(int16_t)); ((int16_t *)(tensor->data))[i] = value; } break; case GGML_TYPE_I32: { - GGML_ASSERT(tensor->nb[0] == sizeof(int32_t)); ((int32_t *)(tensor->data))[i] = value; } break; case GGML_TYPE_F16: { - GGML_ASSERT(tensor->nb[0] == sizeof(ggml_fp16_t)); ((ggml_fp16_t *)(tensor->data))[i] = GGML_FP32_TO_FP16(value); } break; case GGML_TYPE_BF16: { - GGML_ASSERT(tensor->nb[0] == sizeof(ggml_bf16_t)); ((ggml_bf16_t *)(tensor->data))[i] = GGML_FP32_TO_BF16(value); } break; case GGML_TYPE_F32: { - GGML_ASSERT(tensor->nb[0] == sizeof(float)); ((float *)(tensor->data))[i] = value; } break; default: @@ -7343,7 +7338,7 @@ struct ggml_tensor * ggml_add_rel_pos_inplace( return ggml_add_rel_pos_impl(ctx, a, pw, ph, true); } -// gmml_unary +// ggml_unary static struct ggml_tensor * ggml_unary_impl( struct ggml_context * ctx, From a9cae48003dfc4fe95b8f5c81682fc6e63425235 Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Wed, 12 Jun 2024 16:00:22 +0300 Subject: [PATCH 062/131] tests : add non-cont unary tests (#7857) * tests : add non-cont unary tests * ggml : update unary asserts and "supports_op" ggml-ci --- ggml-cuda.cu | 2 +- ggml-cuda/unary.cu | 20 ++++++++ ggml-kompute.cpp | 2 +- ggml-metal.m | 2 +- ggml-sycl.cpp | 2 +- ggml-vulkan.cpp | 2 +- ggml.c | 97 ++++++++++++++++++-------------------- tests/test-backend-ops.cpp | 29 ++++++++---- 8 files changed, 90 insertions(+), 66 deletions(-) diff --git a/ggml-cuda.cu b/ggml-cuda.cu index af10f21a0a92a..c6bc3f64c90de 100644 --- a/ggml-cuda.cu +++ b/ggml-cuda.cu @@ -2740,7 +2740,7 @@ GGML_CALL static bool ggml_backend_cuda_supports_op(ggml_backend_t backend, cons case GGML_UNARY_OP_HARDSWISH: case GGML_UNARY_OP_GELU_QUICK: case GGML_UNARY_OP_TANH: - return true; + return ggml_is_contiguous(op->src[0]); default: return false; } diff --git a/ggml-cuda/unary.cu b/ggml-cuda/unary.cu index ac03d5c6fce54..a5ff96320f23f 100644 --- a/ggml-cuda/unary.cu +++ b/ggml-cuda/unary.cu @@ -148,6 +148,8 @@ void ggml_cuda_op_gelu(ggml_backend_cuda_context & ctx, ggml_tensor * dst) { float * dst_d = (float *)dst->data; cudaStream_t stream = ctx.stream(); + GGML_ASSERT(ggml_is_contiguous(src0)); + GGML_ASSERT(src0->type == GGML_TYPE_F32); GGML_ASSERT( dst->type == GGML_TYPE_F32); @@ -160,6 +162,8 @@ void ggml_cuda_op_silu(ggml_backend_cuda_context & ctx, ggml_tensor * dst) { float * dst_d = (float *)dst->data; cudaStream_t stream = ctx.stream(); + GGML_ASSERT(ggml_is_contiguous(src0)); + GGML_ASSERT(src0->type == GGML_TYPE_F32); GGML_ASSERT( dst->type == GGML_TYPE_F32); @@ -172,6 +176,8 @@ void ggml_cuda_op_gelu_quick(ggml_backend_cuda_context & ctx, ggml_tensor * dst) float * dst_d = (float *)dst->data; cudaStream_t stream = ctx.stream(); + GGML_ASSERT(ggml_is_contiguous(src0)); + GGML_ASSERT(src0->type == GGML_TYPE_F32); GGML_ASSERT( dst->type == GGML_TYPE_F32); @@ -184,6 +190,8 @@ void ggml_cuda_op_tanh(ggml_backend_cuda_context & ctx, ggml_tensor * dst) { float * dst_d = (float *)dst->data; cudaStream_t stream = ctx.stream(); + GGML_ASSERT(ggml_is_contiguous(src0)); + GGML_ASSERT(src0->type == GGML_TYPE_F32); GGML_ASSERT( dst->type == GGML_TYPE_F32); @@ -196,6 +204,8 @@ void ggml_cuda_op_relu(ggml_backend_cuda_context & ctx, ggml_tensor * dst) { float * dst_d = (float *)dst->data; cudaStream_t stream = ctx.stream(); + GGML_ASSERT(ggml_is_contiguous(src0)); + GGML_ASSERT(src0->type == GGML_TYPE_F32); GGML_ASSERT( dst->type == GGML_TYPE_F32); @@ -208,6 +218,8 @@ void ggml_cuda_op_sigmoid(ggml_backend_cuda_context & ctx, ggml_tensor * dst) { float * dst_d = (float *)dst->data; cudaStream_t stream = ctx.stream(); + GGML_ASSERT(ggml_is_contiguous(src0)); + GGML_ASSERT(src0->type == GGML_TYPE_F32); GGML_ASSERT( dst->type == GGML_TYPE_F32); @@ -220,6 +232,8 @@ void ggml_cuda_op_hardsigmoid(ggml_backend_cuda_context & ctx, ggml_tensor * dst float * dst_d = (float *)dst->data; cudaStream_t stream = ctx.stream(); + GGML_ASSERT(ggml_is_contiguous(src0)); + GGML_ASSERT(src0->type == GGML_TYPE_F32); GGML_ASSERT( dst->type == GGML_TYPE_F32); @@ -232,6 +246,8 @@ void ggml_cuda_op_hardswish(ggml_backend_cuda_context & ctx, ggml_tensor * dst) float * dst_d = (float *)dst->data; cudaStream_t stream = ctx.stream(); + GGML_ASSERT(ggml_is_contiguous(src0)); + GGML_ASSERT(src0->type == GGML_TYPE_F32); GGML_ASSERT( dst->type == GGML_TYPE_F32); @@ -244,6 +260,8 @@ void ggml_cuda_op_leaky_relu(ggml_backend_cuda_context & ctx, ggml_tensor * dst) float * dst_d = (float *)dst->data; cudaStream_t stream = ctx.stream(); + GGML_ASSERT(ggml_is_contiguous(src0)); + GGML_ASSERT(src0->type == GGML_TYPE_F32); GGML_ASSERT( dst->type == GGML_TYPE_F32); @@ -259,6 +277,8 @@ void ggml_cuda_op_sqr(ggml_backend_cuda_context & ctx, ggml_tensor * dst) { float * dst_d = (float *)dst->data; cudaStream_t stream = ctx.stream(); + GGML_ASSERT(ggml_is_contiguous(src0)); + GGML_ASSERT(src0->type == GGML_TYPE_F32); GGML_ASSERT( dst->type == GGML_TYPE_F32); diff --git a/ggml-kompute.cpp b/ggml-kompute.cpp index 5592741be4255..18c6f4a104f36 100644 --- a/ggml-kompute.cpp +++ b/ggml-kompute.cpp @@ -1340,7 +1340,7 @@ static bool ggml_vk_supports_op(const struct ggml_tensor * op) { case GGML_UNARY_OP_RELU: case GGML_UNARY_OP_GELU: case GGML_UNARY_OP_SILU: - return true; + return ggml_is_contiguous(op->src[0]); default: ; } diff --git a/ggml-metal.m b/ggml-metal.m index 946f11813dcf9..b5c287347e7c9 100644 --- a/ggml-metal.m +++ b/ggml-metal.m @@ -744,7 +744,7 @@ static bool ggml_metal_supports_op(const struct ggml_metal_context * ctx, const case GGML_UNARY_OP_GELU: case GGML_UNARY_OP_GELU_QUICK: case GGML_UNARY_OP_SILU: - return true; + return ggml_is_contiguous(op->src[0]); default: return false; } diff --git a/ggml-sycl.cpp b/ggml-sycl.cpp index 42fc0df203537..e7d260bd4ebe3 100644 --- a/ggml-sycl.cpp +++ b/ggml-sycl.cpp @@ -17190,7 +17190,7 @@ GGML_CALL static bool ggml_backend_sycl_supports_op(ggml_backend_t backend, cons case GGML_UNARY_OP_HARDSWISH: case GGML_UNARY_OP_GELU_QUICK: case GGML_UNARY_OP_TANH: - return true; + return ggml_is_contiguous(op->src[0]); default: return false; } diff --git a/ggml-vulkan.cpp b/ggml-vulkan.cpp index 06ba23313955b..5b92804915658 100644 --- a/ggml-vulkan.cpp +++ b/ggml-vulkan.cpp @@ -6439,7 +6439,7 @@ GGML_CALL static bool ggml_backend_vk_supports_op(ggml_backend_t backend, const case GGML_UNARY_OP_GELU: case GGML_UNARY_OP_SILU: case GGML_UNARY_OP_RELU: - return true; + return ggml_is_contiguous(op->src[0]); default: return false; } diff --git a/ggml.c b/ggml.c index 5fb9e9a327d22..2ea1d76773893 100644 --- a/ggml.c +++ b/ggml.c @@ -7345,6 +7345,8 @@ static struct ggml_tensor * ggml_unary_impl( struct ggml_tensor * a, enum ggml_unary_op op, bool inplace) { + GGML_ASSERT(ggml_is_contiguous_1(a)); + bool is_node = false; if (!inplace && (a->grad)) { @@ -11009,6 +11011,8 @@ static void ggml_compute_forward_abs_f32( const struct ggml_tensor * src0 = dst->src[0]; assert(params->ith == 0); + assert(ggml_is_contiguous_1(src0)); + assert(ggml_is_contiguous_1(dst)); assert(ggml_are_same_shape(src0, dst)); if (params->type == GGML_TASK_TYPE_INIT || params->type == GGML_TASK_TYPE_FINALIZE) { @@ -11018,9 +11022,6 @@ static void ggml_compute_forward_abs_f32( const int n = ggml_nrows(src0); const int nc = src0->ne[0]; - assert(dst->nb[0] == sizeof(float)); - assert(src0->nb[0] == sizeof(float)); - for (int i = 0; i < n; i++) { ggml_vec_abs_f32(nc, (float *) ((char *) dst->data + i*( dst->nb[1])), @@ -11055,6 +11056,8 @@ static void ggml_compute_forward_sgn_f32( const struct ggml_tensor * src0 = dst->src[0]; assert(params->ith == 0); + assert(ggml_is_contiguous_1(src0)); + assert(ggml_is_contiguous_1(dst)); assert(ggml_are_same_shape(src0, dst)); if (params->type == GGML_TASK_TYPE_INIT || params->type == GGML_TASK_TYPE_FINALIZE) { @@ -11064,9 +11067,6 @@ static void ggml_compute_forward_sgn_f32( const int n = ggml_nrows(src0); const int nc = src0->ne[0]; - assert(dst->nb[0] == sizeof(float)); - assert(src0->nb[0] == sizeof(float)); - for (int i = 0; i < n; i++) { ggml_vec_sgn_f32(nc, (float *) ((char *) dst->data + i*( dst->nb[1])), @@ -11101,6 +11101,8 @@ static void ggml_compute_forward_neg_f32( const struct ggml_tensor * src0 = dst->src[0]; assert(params->ith == 0); + assert(ggml_is_contiguous_1(src0)); + assert(ggml_is_contiguous_1(dst)); assert(ggml_are_same_shape(src0, dst)); if (params->type == GGML_TASK_TYPE_INIT || params->type == GGML_TASK_TYPE_FINALIZE) { @@ -11110,9 +11112,6 @@ static void ggml_compute_forward_neg_f32( const int n = ggml_nrows(src0); const int nc = src0->ne[0]; - assert(dst->nb[0] == sizeof(float)); - assert(src0->nb[0] == sizeof(float)); - for (int i = 0; i < n; i++) { ggml_vec_neg_f32(nc, (float *) ((char *) dst->data + i*( dst->nb[1])), @@ -11147,6 +11146,8 @@ static void ggml_compute_forward_step_f32( const struct ggml_tensor * src0 = dst->src[0]; assert(params->ith == 0); + assert(ggml_is_contiguous_1(src0)); + assert(ggml_is_contiguous_1(dst)); assert(ggml_are_same_shape(src0, dst)); if (params->type == GGML_TASK_TYPE_INIT || params->type == GGML_TASK_TYPE_FINALIZE) { @@ -11156,9 +11157,6 @@ static void ggml_compute_forward_step_f32( const int n = ggml_nrows(src0); const int nc = src0->ne[0]; - assert(dst->nb[0] == sizeof(float)); - assert(src0->nb[0] == sizeof(float)); - for (int i = 0; i < n; i++) { ggml_vec_step_f32(nc, (float *) ((char *) dst->data + i*( dst->nb[1])), @@ -11193,6 +11191,8 @@ static void ggml_compute_forward_tanh_f32( const struct ggml_tensor * src0 = dst->src[0]; assert(params->ith == 0); + assert(ggml_is_contiguous_1(src0)); + assert(ggml_is_contiguous_1(dst)); assert(ggml_are_same_shape(src0, dst)); if (params->type == GGML_TASK_TYPE_INIT || params->type == GGML_TASK_TYPE_FINALIZE) { @@ -11202,9 +11202,6 @@ static void ggml_compute_forward_tanh_f32( const int n = ggml_nrows(src0); const int nc = src0->ne[0]; - assert(dst->nb[0] == sizeof(float)); - assert(src0->nb[0] == sizeof(float)); - for (int i = 0; i < n; i++) { ggml_vec_tanh_f32(nc, (float *) ((char *) dst->data + i*( dst->nb[1])), @@ -11239,6 +11236,8 @@ static void ggml_compute_forward_elu_f32( const struct ggml_tensor * src0 = dst->src[0]; assert(params->ith == 0); + assert(ggml_is_contiguous_1(src0)); + assert(ggml_is_contiguous_1(dst)); assert(ggml_are_same_shape(src0, dst)); if (params->type == GGML_TASK_TYPE_INIT || params->type == GGML_TASK_TYPE_FINALIZE) { @@ -11248,9 +11247,6 @@ static void ggml_compute_forward_elu_f32( const int n = ggml_nrows(src0); const int nc = src0->ne[0]; - assert(dst->nb[0] == sizeof(float)); - assert(src0->nb[0] == sizeof(float)); - for (int i = 0; i < n; i++) { ggml_vec_elu_f32(nc, (float *) ((char *) dst->data + i*( dst->nb[1])), @@ -11285,6 +11281,8 @@ static void ggml_compute_forward_relu_f32( const struct ggml_tensor * src0 = dst->src[0]; assert(params->ith == 0); + assert(ggml_is_contiguous_1(src0)); + assert(ggml_is_contiguous_1(dst)); assert(ggml_are_same_shape(src0, dst)); if (params->type == GGML_TASK_TYPE_INIT || params->type == GGML_TASK_TYPE_FINALIZE) { @@ -11294,9 +11292,6 @@ static void ggml_compute_forward_relu_f32( const int n = ggml_nrows(src0); const int nc = src0->ne[0]; - assert(dst->nb[0] == sizeof(float)); - assert(src0->nb[0] == sizeof(float)); - for (int i = 0; i < n; i++) { ggml_vec_relu_f32(nc, (float *) ((char *) dst->data + i*( dst->nb[1])), @@ -11331,6 +11326,8 @@ static void ggml_compute_forward_sigmoid_f32( const struct ggml_tensor * src0 = dst->src[0]; assert(params->ith == 0); + assert(ggml_is_contiguous_1(src0)); + assert(ggml_is_contiguous_1(dst)); assert(ggml_are_same_shape(src0, dst)); if (params->type == GGML_TASK_TYPE_INIT || params->type == GGML_TASK_TYPE_FINALIZE) { @@ -11340,9 +11337,6 @@ static void ggml_compute_forward_sigmoid_f32( const int n = ggml_nrows(src0); const int nc = src0->ne[0]; - assert(dst->nb[0] == sizeof(float)); - assert(src0->nb[0] == sizeof(float)); - for (int i = 0; i < n; i++) { ggml_vec_sigmoid_f32(nc, (float *) ((char *) dst->data + i*( dst->nb[1])), @@ -11376,9 +11370,9 @@ static void ggml_compute_forward_gelu_f32( const struct ggml_tensor * src0 = dst->src[0]; - GGML_ASSERT(ggml_is_contiguous_1(src0)); - GGML_ASSERT(ggml_is_contiguous_1(dst)); - GGML_ASSERT(ggml_are_same_shape(src0, dst)); + assert(ggml_is_contiguous_1(src0)); + assert(ggml_is_contiguous_1(dst)); + assert(ggml_are_same_shape(src0, dst)); if (params->type == GGML_TASK_TYPE_INIT || params->type == GGML_TASK_TYPE_FINALIZE) { return; @@ -11439,9 +11433,9 @@ static void ggml_compute_forward_gelu_quick_f32( const struct ggml_tensor * src0 = dst->src[0]; - GGML_ASSERT(ggml_is_contiguous_1(src0)); - GGML_ASSERT(ggml_is_contiguous_1(dst)); - GGML_ASSERT(ggml_are_same_shape(src0, dst)); + assert(ggml_is_contiguous_1(src0)); + assert(ggml_is_contiguous_1(dst)); + assert(ggml_are_same_shape(src0, dst)); if (params->type == GGML_TASK_TYPE_INIT || params->type == GGML_TASK_TYPE_FINALIZE) { return; @@ -11502,9 +11496,9 @@ static void ggml_compute_forward_silu_f32( const struct ggml_tensor * src0 = dst->src[0]; - GGML_ASSERT(ggml_is_contiguous_1(src0)); - GGML_ASSERT(ggml_is_contiguous_1(dst)); - GGML_ASSERT(ggml_are_same_shape(src0, dst)); + assert(ggml_is_contiguous_1(src0)); + assert(ggml_is_contiguous_1(dst)); + assert(ggml_are_same_shape(src0, dst)); if (params->type == GGML_TASK_TYPE_INIT || params->type == GGML_TASK_TYPE_FINALIZE) { return; @@ -11565,6 +11559,8 @@ static void ggml_compute_forward_leaky_relu_f32( const struct ggml_tensor * src0 = dst->src[0]; assert(params->ith == 0); + assert(ggml_is_contiguous_1(src0)); + assert(ggml_is_contiguous_1(dst)); assert(ggml_are_same_shape(src0, dst)); if (params->type == GGML_TASK_TYPE_INIT || params->type == GGML_TASK_TYPE_FINALIZE) { @@ -11614,11 +11610,11 @@ static void ggml_compute_forward_silu_back_f32( const struct ggml_tensor * src0 = dst->src[0]; const struct ggml_tensor * grad = dst->src[1]; - GGML_ASSERT(ggml_is_contiguous_1(grad)); - GGML_ASSERT(ggml_is_contiguous_1(src0)); - GGML_ASSERT(ggml_is_contiguous_1(dst)); - GGML_ASSERT(ggml_are_same_shape(src0, dst)); - GGML_ASSERT(ggml_are_same_shape(src0, grad)); + assert(ggml_is_contiguous_1(grad)); + assert(ggml_is_contiguous_1(src0)); + assert(ggml_is_contiguous_1(dst)); + assert(ggml_are_same_shape(src0, dst)); + assert(ggml_are_same_shape(src0, grad)); if (params->type == GGML_TASK_TYPE_INIT || params->type == GGML_TASK_TYPE_FINALIZE) { return; @@ -11680,6 +11676,8 @@ static void ggml_compute_forward_hardswish_f32( const struct ggml_tensor * src0 = dst->src[0]; assert(params->ith == 0); + assert(ggml_is_contiguous_1(src0)); + assert(ggml_is_contiguous_1(dst)); assert(ggml_are_same_shape(src0, dst)); if (params->type == GGML_TASK_TYPE_INIT || params->type == GGML_TASK_TYPE_FINALIZE) { @@ -11689,9 +11687,6 @@ static void ggml_compute_forward_hardswish_f32( const int n = ggml_nrows(src0); const int nc = src0->ne[0]; - assert(dst->nb[0] == sizeof(float)); - assert(src0->nb[0] == sizeof(float)); - for (int i = 0; i < n; i++) { ggml_vec_hardswish_f32(nc, (float *) ((char *) dst->data + i*( dst->nb[1])), @@ -11723,6 +11718,8 @@ static void ggml_compute_forward_hardsigmoid_f32( const struct ggml_tensor * src0 = dst->src[0]; assert(params->ith == 0); + assert(ggml_is_contiguous_1(src0)); + assert(ggml_is_contiguous_1(dst)); assert(ggml_are_same_shape(src0, dst)); if (params->type == GGML_TASK_TYPE_INIT || params->type == GGML_TASK_TYPE_FINALIZE) { @@ -11732,9 +11729,6 @@ static void ggml_compute_forward_hardsigmoid_f32( const int n = ggml_nrows(src0); const int nc = src0->ne[0]; - assert(dst->nb[0] == sizeof(float)); - assert(src0->nb[0] == sizeof(float)); - for (int i = 0; i < n; i++) { ggml_vec_hardsigmoid_f32(nc, (float *) ((char *) dst->data + i*( dst->nb[1])), @@ -16681,7 +16675,10 @@ static void ggml_compute_forward_map_unary_f32( const struct ggml_tensor * src0 = dst->src[0]; - GGML_ASSERT(ggml_are_same_shape(src0, dst)); + assert(params->ith == 0); + assert(ggml_is_contiguous_1(src0)); + assert(ggml_is_contiguous_1(dst)); + assert(ggml_are_same_shape(src0, dst)); if (params->type == GGML_TASK_TYPE_INIT || params->type == GGML_TASK_TYPE_FINALIZE) { return; @@ -16690,9 +16687,6 @@ static void ggml_compute_forward_map_unary_f32( const int n = ggml_nrows(src0); const int nc = src0->ne[0]; - assert( dst->nb[0] == sizeof(float)); - assert(src0->nb[0] == sizeof(float)); - for (int i = 0; i < n; i++) { fun(nc, (float *) ((char *) dst->data + i*( dst->nb[1])), @@ -16730,6 +16724,9 @@ static void ggml_compute_forward_map_binary_f32( const struct ggml_tensor * src1 = dst->src[1]; assert(params->ith == 0); + assert(ggml_is_contiguous_1(src0)); + assert(ggml_is_contiguous_1(src1)); + assert(ggml_is_contiguous_1(dst)); assert(ggml_are_same_shape(src0, src1) && ggml_are_same_shape(src0, dst)); if (params->type == GGML_TASK_TYPE_INIT || params->type == GGML_TASK_TYPE_FINALIZE) { @@ -16739,10 +16736,6 @@ static void ggml_compute_forward_map_binary_f32( const int n = ggml_nrows(src0); const int nc = src0->ne[0]; - assert( dst->nb[0] == sizeof(float)); - assert(src0->nb[0] == sizeof(float)); - assert(src1->nb[0] == sizeof(float)); - for (int i = 0; i < n; i++) { fun(nc, (float *) ((char *) dst->data + i*( dst->nb[1])), diff --git a/tests/test-backend-ops.cpp b/tests/test-backend-ops.cpp index ce406a8af867a..2b48e623e3476 100644 --- a/tests/test-backend-ops.cpp +++ b/tests/test-backend-ops.cpp @@ -642,20 +642,29 @@ struct test_case { struct test_unary : public test_case { const ggml_unary_op op; const ggml_type type; - const std::array ne; + const std::array ne_a; + int v; // view (1 : non-contiguous a) std::string vars() override { - return VARS_TO_STR2(type, ne); + return VARS_TO_STR3(type, ne_a, v); } test_unary(ggml_unary_op op, ggml_type type = GGML_TYPE_F32, - std::array ne = {128, 10, 10, 10}) - : op(op), type(type), ne(ne) {} + std::array ne_a = {128, 10, 10, 10}, + int v = 0) + : op(op), type(type), ne_a(ne_a), v(v) {} ggml_tensor * build_graph(ggml_context * ctx) override { - ggml_tensor * in = ggml_new_tensor(ctx, type, 4, ne.data()); - ggml_tensor * out = ggml_unary(ctx, in, op); + ggml_tensor * a; + if (v & 1) { + auto ne = ne_a; ne[0] *= 3; + a = ggml_new_tensor(ctx, type, 4, ne.data()); + a = ggml_view_4d(ctx, a, ne_a[0], ne_a[1], ne_a[2], ne_a[3], a->nb[1], a->nb[2], a->nb[3], 0); + } else { + a = ggml_new_tensor(ctx, type, 4, ne_a.data()); + } + ggml_tensor * out = ggml_unary(ctx, a, op); return out; } @@ -2016,9 +2025,11 @@ static bool test_backend(ggml_backend_t backend, test_mode mode, const char * op }; // unary ops - for (int op = 0; op < GGML_UNARY_OP_COUNT; op++) { - test_cases.emplace_back(new test_unary((ggml_unary_op) op)); - test_cases.emplace_back(new test_unary((ggml_unary_op) op, GGML_TYPE_F32, { 7, 13, 19, 23 })); + for (int v : {0, 1}) { + for (int op = 0; op < GGML_UNARY_OP_COUNT; op++) { + test_cases.emplace_back(new test_unary((ggml_unary_op) op, GGML_TYPE_F32, { 128, 10, 10, 10 }, v)); + test_cases.emplace_back(new test_unary((ggml_unary_op) op, GGML_TYPE_F32, { 7, 13, 19, 23 }, v)); + } } test_cases.emplace_back(new test_get_rows(GGML_TYPE_F32, 1, 8, 2, 1, false)); From 963552903f51043ee947a8deeaaa7ec00bc3f1a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20G=C3=A4=C3=9Fler?= Date: Wed, 12 Jun 2024 17:41:51 +0200 Subject: [PATCH 063/131] CUDA: fix broken oob check for FA vec f32 kernel (#7904) --- ggml-cuda/fattn-vec-f32.cuh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ggml-cuda/fattn-vec-f32.cuh b/ggml-cuda/fattn-vec-f32.cuh index ddf0c83740f5a..11a5e355fd40b 100644 --- a/ggml-cuda/fattn-vec-f32.cuh +++ b/ggml-cuda/fattn-vec-f32.cuh @@ -149,7 +149,7 @@ static __global__ void flash_attn_vec_ext_f32( for (int i0 = 0; i0 < D/2; i0 += WARP_SIZE) { const int i = i0 + threadIdx.x; - Q_f2[j][i0/WARP_SIZE] = ncols <= 2 || ic0 + j ? Q_f2_j[i] : make_float2(0.0f, 0.0f); + Q_f2[j][i0/WARP_SIZE] = ncols <= 2 || ic0 + j < ne01 ? Q_f2_j[i] : make_float2(0.0f, 0.0f); Q_f2[j][i0/WARP_SIZE].x *= scale; Q_f2[j][i0/WARP_SIZE].y *= scale; } From 1c641e6aac5c18b964e7b32d9dbbb4bf5301d0d7 Mon Sep 17 00:00:00 2001 From: Olivier Chafik Date: Thu, 13 Jun 2024 00:41:52 +0100 Subject: [PATCH 064/131] =?UTF-8?q?`build`:=20rename=20main=20=E2=86=92=20?= =?UTF-8?q?llama-cli,=20server=20=E2=86=92=20llama-server,=20llava-cli=20?= =?UTF-8?q?=E2=86=92=20llama-llava-cli,=20etc...=20(#7809)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * `main`/`server`: rename to `llama` / `llama-server` for consistency w/ homebrew * server: update refs -> llama-server gitignore llama-server * server: simplify nix package * main: update refs -> llama fix examples/main ref * main/server: fix targets * update more names * Update build.yml * rm accidentally checked in bins * update straggling refs * Update .gitignore * Update server-llm.sh * main: target name -> llama-cli * Prefix all example bins w/ llama- * fix main refs * rename {main->llama}-cmake-pkg binary * prefix more cmake targets w/ llama- * add/fix gbnf-validator subfolder to cmake * sort cmake example subdirs * rm bin files * fix llama-lookup-* Makefile rules * gitignore /llama-* * rename Dockerfiles * rename llama|main -> llama-cli; consistent RPM bin prefixes * fix some missing -cli suffixes * rename dockerfile w/ llama-cli * rename(make): llama-baby-llama * update dockerfile refs * more llama-cli(.exe) * fix test-eval-callback * rename: llama-cli-cmake-pkg(.exe) * address gbnf-validator unused fread warning (switched to C++ / ifstream) * add two missing llama- prefixes * Updating docs for eval-callback binary to use new `llama-` prefix. * Updating a few lingering doc references for rename of main to llama-cli * Updating `run-with-preset.py` to use new binary names. Updating docs around `perplexity` binary rename. * Updating documentation references for lookup-merge and export-lora * Updating two small `main` references missed earlier in the finetune docs. * Update apps.nix * update grammar/README.md w/ new llama-* names * update llama-rpc-server bin name + doc * Revert "update llama-rpc-server bin name + doc" This reverts commit e474ef1df481fd8936cd7d098e3065d7de378930. * add hot topic notice to README.md * Update README.md * Update README.md * rename gguf-split & quantize bins refs in **/tests.sh --------- Co-authored-by: HanClinto --- .devops/cloud-v-pipeline | 2 +- ...a.Dockerfile => llama-cli-cuda.Dockerfile} | 6 +- ....Dockerfile => llama-cli-intel.Dockerfile} | 6 +- ...m.Dockerfile => llama-cli-rocm.Dockerfile} | 4 +- ...Dockerfile => llama-cli-vulkan.Dockerfile} | 6 +- .../{main.Dockerfile => llama-cli.Dockerfile} | 6 +- .devops/llama-cpp-clblast.srpm.spec | 14 +- .devops/llama-cpp-cuda.srpm.spec | 14 +- .devops/llama-cpp.srpm.spec | 14 +- ...ockerfile => llama-server-cuda.Dockerfile} | 6 +- ...ckerfile => llama-server-intel.Dockerfile} | 6 +- ...ockerfile => llama-server-rocm.Dockerfile} | 4 +- ...kerfile => llama-server-vulkan.Dockerfile} | 6 +- ...ver.Dockerfile => llama-server.Dockerfile} | 6 +- .devops/nix/apps.nix | 6 +- .devops/nix/package.nix | 4 +- .devops/tools.sh | 10 +- .dockerignore | 4 +- .github/ISSUE_TEMPLATE/01-bug-low.yml | 2 +- .github/ISSUE_TEMPLATE/02-bug-medium.yml | 2 +- .github/ISSUE_TEMPLATE/03-bug-high.yml | 2 +- .github/ISSUE_TEMPLATE/04-bug-critical.yml | 2 +- .github/workflows/bench.yml | 2 +- .github/workflows/build.yml | 10 +- .github/workflows/docker.yml | 16 +- .github/workflows/server.yml | 4 +- .gitignore | 43 +-- Makefile | 134 ++++++---- README-sycl.md | 18 +- README.md | 33 +-- ci/run.sh | 248 +++++++++--------- docs/HOWTO-add-model.md | 2 +- docs/token_generation_performance_tips.md | 4 +- examples/CMakeLists.txt | 39 +-- examples/Miku.sh | 2 +- examples/baby-llama/CMakeLists.txt | 2 +- examples/base-translate.sh | 2 +- examples/batched-bench/CMakeLists.txt | 2 +- examples/batched-bench/README.md | 8 +- examples/batched.swift/Makefile | 6 +- examples/batched.swift/Package.swift | 4 +- examples/batched.swift/README.md | 2 +- examples/batched/CMakeLists.txt | 2 +- examples/batched/README.md | 2 +- examples/benchmark/CMakeLists.txt | 2 +- examples/chat-13B.sh | 2 +- examples/chat-persistent.sh | 10 +- examples/chat-vicuna.sh | 2 +- examples/chat.sh | 2 +- .../convert-llama2c-to-ggml/CMakeLists.txt | 2 +- examples/convert-llama2c-to-ggml/README.md | 6 +- examples/embedding/CMakeLists.txt | 2 +- examples/embedding/README.md | 4 +- examples/eval-callback/CMakeLists.txt | 4 +- examples/eval-callback/README.md | 2 +- examples/export-lora/CMakeLists.txt | 2 +- examples/export-lora/README.md | 4 +- examples/finetune/CMakeLists.txt | 2 +- examples/finetune/README.md | 12 +- examples/finetune/finetune.sh | 2 +- examples/gbnf-validator/CMakeLists.txt | 4 +- examples/gbnf-validator/gbnf-validator.cpp | 36 ++- examples/gguf-split/CMakeLists.txt | 2 +- examples/gguf-split/tests.sh | 4 +- examples/gguf/CMakeLists.txt | 2 +- examples/gritlm/CMakeLists.txt | 2 +- examples/gritlm/README.md | 2 +- examples/imatrix/CMakeLists.txt | 2 +- examples/imatrix/README.md | 6 +- examples/infill/CMakeLists.txt | 2 +- examples/infill/README.md | 2 +- examples/jeopardy/jeopardy.sh | 2 +- examples/json-schema-pydantic-example.py | 2 +- examples/json_schema_to_grammar.py | 2 +- examples/llama-bench/README.md | 2 +- examples/llava/CMakeLists.txt | 11 +- examples/llava/MobileVLM-README.md | 18 +- examples/llava/README.md | 10 +- examples/llava/android/adb_run.sh | 2 +- examples/lookahead/CMakeLists.txt | 2 +- examples/lookup/CMakeLists.txt | 8 +- examples/lookup/lookup-merge.cpp | 8 +- examples/main-cmake-pkg/CMakeLists.txt | 8 +- examples/main-cmake-pkg/README.md | 4 +- examples/main/CMakeLists.txt | 2 +- examples/main/README.md | 24 +- examples/parallel/CMakeLists.txt | 2 +- examples/passkey/CMakeLists.txt | 2 +- examples/passkey/README.md | 2 +- examples/perplexity/CMakeLists.txt | 2 +- examples/perplexity/perplexity.cpp | 2 +- examples/quantize-stats/CMakeLists.txt | 2 +- examples/quantize/CMakeLists.txt | 2 +- examples/quantize/tests.sh | 6 +- examples/reason-act.sh | 2 +- examples/retrieval/CMakeLists.txt | 2 +- examples/retrieval/README.md | 2 +- examples/rpc/README.md | 2 +- examples/save-load-state/CMakeLists.txt | 2 +- examples/server-llama2-13B.sh | 2 +- examples/server/CMakeLists.txt | 2 +- examples/server/README.md | 22 +- examples/server/bench/README.md | 2 +- examples/server/bench/bench.py | 2 +- examples/server/public_simplechat/readme.md | 4 +- examples/server/tests/README.md | 8 +- examples/server/tests/features/steps/steps.py | 4 +- examples/simple/CMakeLists.txt | 2 +- examples/speculative/CMakeLists.txt | 2 +- examples/sycl/CMakeLists.txt | 2 +- examples/sycl/README.md | 6 +- examples/sycl/run-llama2.sh | 8 +- examples/tokenize/CMakeLists.txt | 2 +- .../train-text-from-scratch/CMakeLists.txt | 2 +- examples/train-text-from-scratch/README.md | 4 +- flake.nix | 2 +- grammars/README.md | 14 +- pocs/vdot/CMakeLists.txt | 4 +- scripts/get-hellaswag.sh | 2 +- scripts/get-wikitext-103.sh | 2 +- scripts/get-wikitext-2.sh | 2 +- scripts/get-winogrande.sh | 2 +- scripts/hf.sh | 6 +- scripts/pod-llama.sh | 56 ++-- scripts/qnt-all.sh | 2 +- scripts/run-all-ppl.sh | 2 +- scripts/run-with-preset.py | 16 +- scripts/server-llm.sh | 8 +- 128 files changed, 584 insertions(+), 584 deletions(-) rename .devops/{main-cuda.Dockerfile => llama-cli-cuda.Dockerfile} (88%) rename .devops/{main-intel.Dockerfile => llama-cli-intel.Dockerfile} (78%) rename .devops/{main-rocm.Dockerfile => llama-cli-rocm.Dockerfile} (94%) rename .devops/{main-vulkan.Dockerfile => llama-cli-vulkan.Dockerfile} (81%) rename .devops/{main.Dockerfile => llama-cli.Dockerfile} (72%) rename .devops/{server-cuda.Dockerfile => llama-server-cuda.Dockerfile} (88%) rename .devops/{server-intel.Dockerfile => llama-server-intel.Dockerfile} (80%) rename .devops/{server-rocm.Dockerfile => llama-server-rocm.Dockerfile} (94%) rename .devops/{server-vulkan.Dockerfile => llama-server-vulkan.Dockerfile} (82%) rename .devops/{server.Dockerfile => llama-server.Dockerfile} (74%) diff --git a/.devops/cloud-v-pipeline b/.devops/cloud-v-pipeline index f3a4944f8a419..af8c0cea6155c 100644 --- a/.devops/cloud-v-pipeline +++ b/.devops/cloud-v-pipeline @@ -15,7 +15,7 @@ node('x86_runner1'){ // Running on x86 runner containing latest vecto stage('Running llama.cpp'){ sh'''#!/bin/bash module load gnu-bin2/0.1 # loading latest versions of vector qemu and vector gcc - qemu-riscv64 -L /softwares/gnu-bin2/sysroot -cpu rv64,v=true,vlen=256,elen=64,vext_spec=v1.0 ./main -m /home/alitariq/codellama-7b.Q4_K_M.gguf -p "Anything" -n 9 > llama_log.txt # Running llama.cpp on vector qemu-riscv64 + qemu-riscv64 -L /softwares/gnu-bin2/sysroot -cpu rv64,v=true,vlen=256,elen=64,vext_spec=v1.0 ./llama-cli -m /home/alitariq/codellama-7b.Q4_K_M.gguf -p "Anything" -n 9 > llama_log.txt # Running llama.cpp on vector qemu-riscv64 cat llama_log.txt # Printing results ''' } diff --git a/.devops/main-cuda.Dockerfile b/.devops/llama-cli-cuda.Dockerfile similarity index 88% rename from .devops/main-cuda.Dockerfile rename to .devops/llama-cli-cuda.Dockerfile index 2aec4a85dbfe2..d5ce538f61554 100644 --- a/.devops/main-cuda.Dockerfile +++ b/.devops/llama-cli-cuda.Dockerfile @@ -23,13 +23,13 @@ ENV CUDA_DOCKER_ARCH=${CUDA_DOCKER_ARCH} # Enable CUDA ENV LLAMA_CUDA=1 -RUN make -j$(nproc) main +RUN make -j$(nproc) llama-cli FROM ${BASE_CUDA_RUN_CONTAINER} as runtime RUN apt-get update && \ apt-get install -y libgomp1 -COPY --from=build /app/main /main +COPY --from=build /app/llama-cli /llama-cli -ENTRYPOINT [ "/main" ] +ENTRYPOINT [ "/llama-cli" ] diff --git a/.devops/main-intel.Dockerfile b/.devops/llama-cli-intel.Dockerfile similarity index 78% rename from .devops/main-intel.Dockerfile rename to .devops/llama-cli-intel.Dockerfile index b7992f47b8f92..6789e17afcc6e 100644 --- a/.devops/main-intel.Dockerfile +++ b/.devops/llama-cli-intel.Dockerfile @@ -15,12 +15,12 @@ RUN if [ "${LLAMA_SYCL_F16}" = "ON" ]; then \ export OPT_SYCL_F16="-DLLAMA_SYCL_F16=ON"; \ fi && \ cmake -B build -DLLAMA_SYCL=ON -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icpx ${OPT_SYCL_F16} && \ - cmake --build build --config Release --target main + cmake --build build --config Release --target llama-cli FROM intel/oneapi-basekit:$ONEAPI_VERSION as runtime -COPY --from=build /app/build/bin/main /main +COPY --from=build /app/build/bin/llama-cli /llama-cli ENV LC_ALL=C.utf8 -ENTRYPOINT [ "/main" ] +ENTRYPOINT [ "/llama-cli" ] diff --git a/.devops/main-rocm.Dockerfile b/.devops/llama-cli-rocm.Dockerfile similarity index 94% rename from .devops/main-rocm.Dockerfile rename to .devops/llama-cli-rocm.Dockerfile index dcaeb3e727ae9..7e8a6f0fa208c 100644 --- a/.devops/main-rocm.Dockerfile +++ b/.devops/llama-cli-rocm.Dockerfile @@ -40,6 +40,6 @@ ENV LLAMA_HIPBLAS=1 ENV CC=/opt/rocm/llvm/bin/clang ENV CXX=/opt/rocm/llvm/bin/clang++ -RUN make -j$(nproc) main +RUN make -j$(nproc) llama-cli -ENTRYPOINT [ "/app/main" ] +ENTRYPOINT [ "/app/llama-cli" ] diff --git a/.devops/main-vulkan.Dockerfile b/.devops/llama-cli-vulkan.Dockerfile similarity index 81% rename from .devops/main-vulkan.Dockerfile rename to .devops/llama-cli-vulkan.Dockerfile index 1bdb528035cd4..7a0abe71f1587 100644 --- a/.devops/main-vulkan.Dockerfile +++ b/.devops/llama-cli-vulkan.Dockerfile @@ -15,13 +15,13 @@ RUN wget -qO - https://packages.lunarg.com/lunarg-signing-key-pub.asc | apt-key WORKDIR /app COPY . . RUN cmake -B build -DLLAMA_VULKAN=1 && \ - cmake --build build --config Release --target main + cmake --build build --config Release --target llama-cli # Clean up WORKDIR / -RUN cp /app/build/bin/main /main && \ +RUN cp /app/build/bin/llama-cli /llama-cli && \ rm -rf /app ENV LC_ALL=C.utf8 -ENTRYPOINT [ "/main" ] +ENTRYPOINT [ "/llama-cli" ] diff --git a/.devops/main.Dockerfile b/.devops/llama-cli.Dockerfile similarity index 72% rename from .devops/main.Dockerfile rename to .devops/llama-cli.Dockerfile index d2514c4ba5755..38382bfc9add2 100644 --- a/.devops/main.Dockerfile +++ b/.devops/llama-cli.Dockerfile @@ -9,15 +9,15 @@ WORKDIR /app COPY . . -RUN make -j$(nproc) main +RUN make -j$(nproc) llama-cli FROM ubuntu:$UBUNTU_VERSION as runtime RUN apt-get update && \ apt-get install -y libgomp1 -COPY --from=build /app/main /main +COPY --from=build /app/llama-cli /llama-cli ENV LC_ALL=C.utf8 -ENTRYPOINT [ "/main" ] +ENTRYPOINT [ "/llama-cli" ] diff --git a/.devops/llama-cpp-clblast.srpm.spec b/.devops/llama-cpp-clblast.srpm.spec index 774f63ddd5c4e..013952191127f 100644 --- a/.devops/llama-cpp-clblast.srpm.spec +++ b/.devops/llama-cpp-clblast.srpm.spec @@ -36,9 +36,9 @@ make -j LLAMA_CLBLAST=1 %install mkdir -p %{buildroot}%{_bindir}/ -cp -p main %{buildroot}%{_bindir}/llamaclblast -cp -p server %{buildroot}%{_bindir}/llamaclblastserver -cp -p simple %{buildroot}%{_bindir}/llamaclblastsimple +cp -p llama-cli %{buildroot}%{_bindir}/llama-clblast-cli +cp -p llama-server %{buildroot}%{_bindir}/llama-clblast-server +cp -p llama-simple %{buildroot}%{_bindir}/llama-clblast-simple mkdir -p %{buildroot}/usr/lib/systemd/system %{__cat} < %{buildroot}/usr/lib/systemd/system/llamaclblast.service @@ -49,7 +49,7 @@ After=syslog.target network.target local-fs.target remote-fs.target nss-lookup.t [Service] Type=simple EnvironmentFile=/etc/sysconfig/llama -ExecStart=/usr/bin/llamaclblastserver $LLAMA_ARGS +ExecStart=/usr/bin/llama-clblast-server $LLAMA_ARGS ExecReload=/bin/kill -s HUP $MAINPID Restart=never @@ -67,9 +67,9 @@ rm -rf %{buildroot} rm -rf %{_builddir}/* %files -%{_bindir}/llamaclblast -%{_bindir}/llamaclblastserver -%{_bindir}/llamaclblastsimple +%{_bindir}/llama-clblast-cli +%{_bindir}/llama-clblast-server +%{_bindir}/llama-clblast-simple /usr/lib/systemd/system/llamaclblast.service %config /etc/sysconfig/llama diff --git a/.devops/llama-cpp-cuda.srpm.spec b/.devops/llama-cpp-cuda.srpm.spec index ba9cb7cbb824f..cbdf4362629d3 100644 --- a/.devops/llama-cpp-cuda.srpm.spec +++ b/.devops/llama-cpp-cuda.srpm.spec @@ -36,9 +36,9 @@ make -j LLAMA_CUDA=1 %install mkdir -p %{buildroot}%{_bindir}/ -cp -p main %{buildroot}%{_bindir}/llamacppcuda -cp -p server %{buildroot}%{_bindir}/llamacppcudaserver -cp -p simple %{buildroot}%{_bindir}/llamacppcudasimple +cp -p llama-cli %{buildroot}%{_bindir}/llama-cuda-cli +cp -p llama-server %{buildroot}%{_bindir}/llama-cuda-server +cp -p llama-simple %{buildroot}%{_bindir}/llama-cuda-simple mkdir -p %{buildroot}/usr/lib/systemd/system %{__cat} < %{buildroot}/usr/lib/systemd/system/llamacuda.service @@ -49,7 +49,7 @@ After=syslog.target network.target local-fs.target remote-fs.target nss-lookup.t [Service] Type=simple EnvironmentFile=/etc/sysconfig/llama -ExecStart=/usr/bin/llamacppcudaserver $LLAMA_ARGS +ExecStart=/usr/bin/llama-cuda-server $LLAMA_ARGS ExecReload=/bin/kill -s HUP $MAINPID Restart=never @@ -67,9 +67,9 @@ rm -rf %{buildroot} rm -rf %{_builddir}/* %files -%{_bindir}/llamacppcuda -%{_bindir}/llamacppcudaserver -%{_bindir}/llamacppcudasimple +%{_bindir}/llama-cuda-cli +%{_bindir}/llama-cuda-server +%{_bindir}/llama-cuda-simple /usr/lib/systemd/system/llamacuda.service %config /etc/sysconfig/llama diff --git a/.devops/llama-cpp.srpm.spec b/.devops/llama-cpp.srpm.spec index 1d9e4f425b43a..4d5560089816c 100644 --- a/.devops/llama-cpp.srpm.spec +++ b/.devops/llama-cpp.srpm.spec @@ -38,9 +38,9 @@ make -j %install mkdir -p %{buildroot}%{_bindir}/ -cp -p main %{buildroot}%{_bindir}/llama -cp -p server %{buildroot}%{_bindir}/llamaserver -cp -p simple %{buildroot}%{_bindir}/llamasimple +cp -p llama-cli %{buildroot}%{_bindir}/llama-cli +cp -p llama-server %{buildroot}%{_bindir}/llama-server +cp -p llama-simple %{buildroot}%{_bindir}/llama-simple mkdir -p %{buildroot}/usr/lib/systemd/system %{__cat} < %{buildroot}/usr/lib/systemd/system/llama.service @@ -51,7 +51,7 @@ After=syslog.target network.target local-fs.target remote-fs.target nss-lookup.t [Service] Type=simple EnvironmentFile=/etc/sysconfig/llama -ExecStart=/usr/bin/llamaserver $LLAMA_ARGS +ExecStart=/usr/bin/llama-server $LLAMA_ARGS ExecReload=/bin/kill -s HUP $MAINPID Restart=never @@ -69,9 +69,9 @@ rm -rf %{buildroot} rm -rf %{_builddir}/* %files -%{_bindir}/llama -%{_bindir}/llamaserver -%{_bindir}/llamasimple +%{_bindir}/llama-cli +%{_bindir}/llama-server +%{_bindir}/llama-simple /usr/lib/systemd/system/llama.service %config /etc/sysconfig/llama diff --git a/.devops/server-cuda.Dockerfile b/.devops/llama-server-cuda.Dockerfile similarity index 88% rename from .devops/server-cuda.Dockerfile rename to .devops/llama-server-cuda.Dockerfile index 4e9747b823196..0010ffd4c5465 100644 --- a/.devops/server-cuda.Dockerfile +++ b/.devops/llama-server-cuda.Dockerfile @@ -25,13 +25,13 @@ ENV LLAMA_CUDA=1 # Enable cURL ENV LLAMA_CURL=1 -RUN make -j$(nproc) server +RUN make -j$(nproc) llama-server FROM ${BASE_CUDA_RUN_CONTAINER} as runtime RUN apt-get update && \ apt-get install -y libcurl4-openssl-dev libgomp1 -COPY --from=build /app/server /server +COPY --from=build /app/llama-server /llama-server -ENTRYPOINT [ "/server" ] +ENTRYPOINT [ "/llama-server" ] diff --git a/.devops/server-intel.Dockerfile b/.devops/llama-server-intel.Dockerfile similarity index 80% rename from .devops/server-intel.Dockerfile rename to .devops/llama-server-intel.Dockerfile index c5adcb6da0408..cec43645233d1 100644 --- a/.devops/server-intel.Dockerfile +++ b/.devops/llama-server-intel.Dockerfile @@ -15,15 +15,15 @@ RUN if [ "${LLAMA_SYCL_F16}" = "ON" ]; then \ export OPT_SYCL_F16="-DLLAMA_SYCL_F16=ON"; \ fi && \ cmake -B build -DLLAMA_SYCL=ON -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icpx -DLLAMA_CURL=ON ${OPT_SYCL_F16} && \ - cmake --build build --config Release --target server + cmake --build build --config Release --target llama-server FROM intel/oneapi-basekit:$ONEAPI_VERSION as runtime RUN apt-get update && \ apt-get install -y libcurl4-openssl-dev -COPY --from=build /app/build/bin/server /server +COPY --from=build /app/build/bin/llama-server /llama-server ENV LC_ALL=C.utf8 -ENTRYPOINT [ "/server" ] +ENTRYPOINT [ "/llama-server" ] diff --git a/.devops/server-rocm.Dockerfile b/.devops/llama-server-rocm.Dockerfile similarity index 94% rename from .devops/server-rocm.Dockerfile rename to .devops/llama-server-rocm.Dockerfile index a6b76dee8494f..f88cf20e5b981 100644 --- a/.devops/server-rocm.Dockerfile +++ b/.devops/llama-server-rocm.Dockerfile @@ -45,6 +45,6 @@ ENV LLAMA_CURL=1 RUN apt-get update && \ apt-get install -y libcurl4-openssl-dev -RUN make -j$(nproc) +RUN make -j$(nproc) llama-server -ENTRYPOINT [ "/app/server" ] +ENTRYPOINT [ "/app/llama-server" ] diff --git a/.devops/server-vulkan.Dockerfile b/.devops/llama-server-vulkan.Dockerfile similarity index 82% rename from .devops/server-vulkan.Dockerfile rename to .devops/llama-server-vulkan.Dockerfile index 6e757e171efee..b0fa0b8e656b5 100644 --- a/.devops/server-vulkan.Dockerfile +++ b/.devops/llama-server-vulkan.Dockerfile @@ -19,13 +19,13 @@ RUN apt-get update && \ WORKDIR /app COPY . . RUN cmake -B build -DLLAMA_VULKAN=1 -DLLAMA_CURL=1 && \ - cmake --build build --config Release --target server + cmake --build build --config Release --target llama-server # Clean up WORKDIR / -RUN cp /app/build/bin/server /server && \ +RUN cp /app/build/bin/llama-server /llama-server && \ rm -rf /app ENV LC_ALL=C.utf8 -ENTRYPOINT [ "/server" ] +ENTRYPOINT [ "/llama-server" ] diff --git a/.devops/server.Dockerfile b/.devops/llama-server.Dockerfile similarity index 74% rename from .devops/server.Dockerfile rename to .devops/llama-server.Dockerfile index bee63b966d5c0..aa93369bebebe 100644 --- a/.devops/server.Dockerfile +++ b/.devops/llama-server.Dockerfile @@ -11,15 +11,15 @@ COPY . . ENV LLAMA_CURL=1 -RUN make -j$(nproc) server +RUN make -j$(nproc) llama-server FROM ubuntu:$UBUNTU_VERSION as runtime RUN apt-get update && \ apt-get install -y libcurl4-openssl-dev libgomp1 -COPY --from=build /app/server /server +COPY --from=build /app/llama-server /llama-server ENV LC_ALL=C.utf8 -ENTRYPOINT [ "/server" ] +ENTRYPOINT [ "/llama-server" ] diff --git a/.devops/nix/apps.nix b/.devops/nix/apps.nix index b8a12cc0a0463..897fce4d324c1 100644 --- a/.devops/nix/apps.nix +++ b/.devops/nix/apps.nix @@ -6,11 +6,11 @@ let inherit (config.packages) default; binaries = [ - "llama" + "llama-cli" "llama-embedding" "llama-server" - "quantize" - "train-text-from-scratch" + "llama-quantize" + "llama-train-text-from-scratch" ]; mkApp = name: { type = "app"; diff --git a/.devops/nix/package.nix b/.devops/nix/package.nix index e8d5b0bd92d2c..87bb3a20f2a28 100644 --- a/.devops/nix/package.nix +++ b/.devops/nix/package.nix @@ -243,8 +243,6 @@ effectiveStdenv.mkDerivation ( # TODO(SomeoneSerge): It's better to add proper install targets at the CMake level, # if they haven't been added yet. postInstall = '' - mv $out/bin/main${executableSuffix} $out/bin/llama${executableSuffix} - mv $out/bin/server${executableSuffix} $out/bin/llama-server${executableSuffix} mkdir -p $out/include cp $src/llama.h $out/include/ ''; @@ -294,7 +292,7 @@ effectiveStdenv.mkDerivation ( license = lib.licenses.mit; # Accommodates `nix run` and `lib.getExe` - mainProgram = "llama"; + mainProgram = "llama-cli"; # These people might respond, on the best effort basis, if you ping them # in case of Nix-specific regressions or for reviewing Nix-specific PRs. diff --git a/.devops/tools.sh b/.devops/tools.sh index 97424c3aa746a..335382f69ee1f 100755 --- a/.devops/tools.sh +++ b/.devops/tools.sh @@ -10,11 +10,11 @@ shift if [[ "$arg1" == '--convert' || "$arg1" == '-c' ]]; then python3 ./convert-hf-to-gguf.py "$@" elif [[ "$arg1" == '--quantize' || "$arg1" == '-q' ]]; then - ./quantize "$@" + ./llama-quantize "$@" elif [[ "$arg1" == '--run' || "$arg1" == '-r' ]]; then - ./main "$@" + ./llama-cli "$@" elif [[ "$arg1" == '--finetune' || "$arg1" == '-f' ]]; then - ./finetune "$@" + ./llama-finetune "$@" elif [[ "$arg1" == '--all-in-one' || "$arg1" == '-a' ]]; then echo "Converting PTH to GGML..." for i in `ls $1/$2/ggml-model-f16.bin*`; do @@ -22,11 +22,11 @@ elif [[ "$arg1" == '--all-in-one' || "$arg1" == '-a' ]]; then echo "Skip model quantization, it already exists: ${i/f16/q4_0}" else echo "Converting PTH to GGML: $i into ${i/f16/q4_0}..." - ./quantize "$i" "${i/f16/q4_0}" q4_0 + ./llama-quantize "$i" "${i/f16/q4_0}" q4_0 fi done elif [[ "$arg1" == '--server' || "$arg1" == '-s' ]]; then - ./server "$@" + ./llama-server "$@" else echo "Unknown command: $arg1" echo "Available commands: " diff --git a/.dockerignore b/.dockerignore index 633bbc3a971c1..8916e2a660732 100644 --- a/.dockerignore +++ b/.dockerignore @@ -12,8 +12,8 @@ build*/ models/* -/main -/quantize +/llama-cli +/llama-quantize arm_neon.h compile_commands.json diff --git a/.github/ISSUE_TEMPLATE/01-bug-low.yml b/.github/ISSUE_TEMPLATE/01-bug-low.yml index bfb9d9a0692c4..54785854f776e 100644 --- a/.github/ISSUE_TEMPLATE/01-bug-low.yml +++ b/.github/ISSUE_TEMPLATE/01-bug-low.yml @@ -24,7 +24,7 @@ body: label: Name and Version description: Which executable and which version of our software are you running? (use `--version` to get a version string) placeholder: | - $./main --version + $./llama-cli --version version: 2999 (42b4109e) built with cc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0 for x86_64-linux-gnu validations: diff --git a/.github/ISSUE_TEMPLATE/02-bug-medium.yml b/.github/ISSUE_TEMPLATE/02-bug-medium.yml index e8297eea03551..a6285c6f05bac 100644 --- a/.github/ISSUE_TEMPLATE/02-bug-medium.yml +++ b/.github/ISSUE_TEMPLATE/02-bug-medium.yml @@ -24,7 +24,7 @@ body: label: Name and Version description: Which executable and which version of our software are you running? (use `--version` to get a version string) placeholder: | - $./main --version + $./llama-cli --version version: 2999 (42b4109e) built with cc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0 for x86_64-linux-gnu validations: diff --git a/.github/ISSUE_TEMPLATE/03-bug-high.yml b/.github/ISSUE_TEMPLATE/03-bug-high.yml index 3c9d50d169720..ff816b93769c3 100644 --- a/.github/ISSUE_TEMPLATE/03-bug-high.yml +++ b/.github/ISSUE_TEMPLATE/03-bug-high.yml @@ -24,7 +24,7 @@ body: label: Name and Version description: Which executable and which version of our software are you running? (use `--version` to get a version string) placeholder: | - $./main --version + $./llama-cli --version version: 2999 (42b4109e) built with cc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0 for x86_64-linux-gnu validations: diff --git a/.github/ISSUE_TEMPLATE/04-bug-critical.yml b/.github/ISSUE_TEMPLATE/04-bug-critical.yml index d089d5fa10cfc..7af42a80b3b93 100644 --- a/.github/ISSUE_TEMPLATE/04-bug-critical.yml +++ b/.github/ISSUE_TEMPLATE/04-bug-critical.yml @@ -24,7 +24,7 @@ body: label: Name and Version description: Which executable and which version of our software are you running? (use `--version` to get a version string) placeholder: | - $./main --version + $./llama-cli --version version: 2999 (42b4109e) built with cc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0 for x86_64-linux-gnu validations: diff --git a/.github/workflows/bench.yml b/.github/workflows/bench.yml index de0d994c80e9d..88ab4844ef123 100644 --- a/.github/workflows/bench.yml +++ b/.github/workflows/bench.yml @@ -119,7 +119,7 @@ jobs: -DLLAMA_FATAL_WARNINGS=OFF \ -DLLAMA_ALL_WARNINGS=OFF \ -DCMAKE_BUILD_TYPE=Release; - cmake --build build --config Release -j $(nproc) --target server + cmake --build build --config Release -j $(nproc) --target llama-server - name: Download the dataset id: download_dataset diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3c04cfc295fb8..81ce770cce3a1 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -103,12 +103,10 @@ jobs: id: cmake_build run: | sysctl -a - mkdir build - cd build # Metal is disabled due to intermittent failures with Github runners not having a GPU: # https://github.com/ggerganov/llama.cpp/actions/runs/8635935781/job/23674807267#step:5:2313 - cmake -DLLAMA_FATAL_WARNINGS=ON -DLLAMA_METAL=OFF -DLLAMA_CURL=ON .. - cmake --build . --config Release -j $(sysctl -n hw.logicalcpu) + cmake -B build -DLLAMA_FATAL_WARNINGS=ON -DLLAMA_METAL=OFF -DLLAMA_CURL=ON + cmake --build build --config Release -j $(sysctl -n hw.logicalcpu) - name: Test id: cmake_test @@ -241,8 +239,8 @@ jobs: wget https://huggingface.co/karpathy/tinyllamas/resolve/main/stories260K/tok512.bin echo "Fetch llama2c model" wget https://huggingface.co/karpathy/tinyllamas/resolve/main/stories260K/stories260K.bin - ./bin/convert-llama2c-to-ggml --copy-vocab-from-model ./tok512.bin --llama2c-model stories260K.bin --llama2c-output-model stories260K.gguf - ./bin/main -m stories260K.gguf -p "One day, Lily met a Shoggoth" -n 500 -c 256 + ./bin/llama-convert-llama2c-to-ggml --copy-vocab-from-model ./tok512.bin --llama2c-model stories260K.bin --llama2c-output-model stories260K.gguf + ./bin/llama-cli -m stories260K.gguf -p "One day, Lily met a Shoggoth" -n 500 -c 256 - name: Determine tag name id: tag diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 9b03d19bc77c6..6244b481210a0 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -30,20 +30,20 @@ jobs: strategy: matrix: config: - - { tag: "light", dockerfile: ".devops/main.Dockerfile", platforms: "linux/amd64,linux/arm64" } + - { tag: "light", dockerfile: ".devops/llama-cli.Dockerfile", platforms: "linux/amd64,linux/arm64" } + - { tag: "server", dockerfile: ".devops/llama-server.Dockerfile", platforms: "linux/amd64,linux/arm64" } - { tag: "full", dockerfile: ".devops/full.Dockerfile", platforms: "linux/amd64,linux/arm64" } - - { tag: "server", dockerfile: ".devops/server.Dockerfile", platforms: "linux/amd64,linux/arm64" } # NOTE(canardletter): The CUDA builds on arm64 are very slow, so I # have disabled them for now until the reason why # is understood. - - { tag: "light-cuda", dockerfile: ".devops/main-cuda.Dockerfile", platforms: "linux/amd64" } + - { tag: "light-cuda", dockerfile: ".devops/llama-cli-cuda.Dockerfile", platforms: "linux/amd64" } + - { tag: "server-cuda", dockerfile: ".devops/llama-server-cuda.Dockerfile", platforms: "linux/amd64" } - { tag: "full-cuda", dockerfile: ".devops/full-cuda.Dockerfile", platforms: "linux/amd64" } - - { tag: "server-cuda", dockerfile: ".devops/server-cuda.Dockerfile", platforms: "linux/amd64" } - - { tag: "light-rocm", dockerfile: ".devops/main-rocm.Dockerfile", platforms: "linux/amd64,linux/arm64" } + - { tag: "light-rocm", dockerfile: ".devops/llama-cli-rocm.Dockerfile", platforms: "linux/amd64,linux/arm64" } + - { tag: "server-rocm", dockerfile: ".devops/llama-server-rocm.Dockerfile", platforms: "linux/amd64,linux/arm64" } - { tag: "full-rocm", dockerfile: ".devops/full-rocm.Dockerfile", platforms: "linux/amd64,linux/arm64" } - - { tag: "server-rocm", dockerfile: ".devops/server-rocm.Dockerfile", platforms: "linux/amd64,linux/arm64" } - - { tag: "light-intel", dockerfile: ".devops/main-intel.Dockerfile", platforms: "linux/amd64" } - - { tag: "server-intel", dockerfile: ".devops/server-intel.Dockerfile", platforms: "linux/amd64" } + - { tag: "light-intel", dockerfile: ".devops/llama-cli-intel.Dockerfile", platforms: "linux/amd64" } + - { tag: "server-intel", dockerfile: ".devops/llama-server-intel.Dockerfile", platforms: "linux/amd64" } steps: - name: Check out the repo uses: actions/checkout@v4 diff --git a/.github/workflows/server.yml b/.github/workflows/server.yml index 0d16ef5f110f9..1fee9ac281943 100644 --- a/.github/workflows/server.yml +++ b/.github/workflows/server.yml @@ -96,7 +96,7 @@ jobs: -DLLAMA_CURL=ON \ -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \ -DLLAMA_SANITIZE_${{ matrix.sanitizer }}=ON ; - cmake --build build --config ${{ matrix.build_type }} -j $(nproc) --target server + cmake --build build --config ${{ matrix.build_type }} -j $(nproc) --target llama-server - name: Tests id: server_integration_tests @@ -136,7 +136,7 @@ jobs: id: cmake_build run: | cmake -B build -DLLAMA_CURL=ON -DCURL_LIBRARY="$env:RUNNER_TEMP/libcurl/lib/libcurl.dll.a" -DCURL_INCLUDE_DIR="$env:RUNNER_TEMP/libcurl/include" - cmake --build build --config Release -j ${env:NUMBER_OF_PROCESSORS} --target server + cmake --build build --config Release -j ${env:NUMBER_OF_PROCESSORS} --target llama-server - name: Python setup id: setup_python diff --git a/.gitignore b/.gitignore index 5223c6963b155..5296594952c4a 100644 --- a/.gitignore +++ b/.gitignore @@ -46,48 +46,9 @@ models/* models-mnt /Pipfile -/baby-llama -/beam-search -/benchmark-matmult -/convert-llama2c-to-ggml -/embd-input-test -/embedding -/eval-callback -/gguf -/gguf-llama-simple -/gguf-split -/gritlm -/imatrix -/infill /libllama.so -/llama-bench -/llava-cli -/lookahead -/lookup -/lookup-create -/lookup-merge -/lookup-stats -/main -/metal -/passkey -/perplexity -/q8dot -/quantize -/quantize-stats -/result -/save-load-state -/server -/simple -/batched -/batched-bench -/export-lora -/finetune -/retrieval -/speculative -/parallel -/train-text-from-scratch -/tokenize -/vdot +/llama-* +llama-batched-swift /common/build-info.cpp arm_neon.h compile_commands.json diff --git a/Makefile b/Makefile index 895c62f84def0..a4cab1bb208bc 100644 --- a/Makefile +++ b/Makefile @@ -1,8 +1,44 @@ # Define the default target now so that it is always the first target BUILD_TARGETS = \ - main quantize quantize-stats perplexity imatrix embedding vdot q8dot train-text-from-scratch convert-llama2c-to-ggml \ - simple batched batched-bench save-load-state server gguf gguf-split eval-callback llama-bench libllava.a llava-cli baby-llama \ - retrieval speculative infill tokenize benchmark-matmult parallel finetune export-lora lookahead lookup passkey gritlm tests/test-c.o + libllava.a \ + llama-baby-llama \ + llama-batched \ + llama-batched-bench \ + llama-bench \ + llama-benchmark-matmult \ + llama-cli \ + llama-convert-llama2c-to-ggml \ + llama-embedding \ + llama-eval-callback \ + llama-export-lora \ + llama-finetune \ + llama-gbnf-validator \ + llama-gguf \ + llama-gguf-split \ + llama-gritlm \ + llama-imatrix \ + llama-infill \ + llama-llava-cli \ + llama-lookahead \ + llama-lookup \ + llama-lookup-create \ + llama-lookup-merge \ + llama-lookup-stats \ + llama-parallel \ + llama-passkey \ + llama-perplexity \ + llama-q8dot \ + llama-quantize \ + llama-quantize-stats \ + llama-retrieval \ + llama-save-load-state \ + llama-server \ + llama-simple \ + llama-speculative \ + llama-tokenize \ + llama-train-text-from-scratch \ + llama-vdot \ + tests/test-c.o # Binaries only useful for tests TEST_TARGETS = \ @@ -777,7 +813,7 @@ libllama.a: llama.o ggml.o $(OBJS) $(COMMON_DEPS) ar rcs libllama.a llama.o ggml.o $(OBJS) $(COMMON_DEPS) clean: - rm -vrf *.o tests/*.o *.so *.a *.dll benchmark-matmult lookup-create lookup-merge lookup-stats common/build-info.cpp *.dot $(COV_TARGETS) $(BUILD_TARGETS) $(TEST_TARGETS) + rm -vrf *.o tests/*.o *.so *.a *.dll common/build-info.cpp *.dot $(COV_TARGETS) $(BUILD_TARGETS) $(TEST_TARGETS) rm -vrf ggml-cuda/*.o rm -vrf ggml-cuda/template-instances/*.o find examples pocs -type f -name "*.o" -delete @@ -793,62 +829,62 @@ clean: # Helper function that replaces .c, .cpp, and .cu file endings with .o: GET_OBJ_FILE = $(patsubst %.c,%.o,$(patsubst %.cpp,%.o,$(patsubst %.cu,%.o,$(1)))) -main: examples/main/main.cpp ggml.o llama.o $(COMMON_DEPS) console.o grammar-parser.o $(OBJS) +llama-cli: examples/main/main.cpp ggml.o llama.o $(COMMON_DEPS) console.o grammar-parser.o $(OBJS) $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) @echo - @echo '==== Run ./main -h for help. ====' + @echo '==== Run ./llama-cli -h for help. ====' @echo -infill: examples/infill/infill.cpp ggml.o llama.o $(COMMON_DEPS) console.o grammar-parser.o $(OBJS) +llama-infill: examples/infill/infill.cpp ggml.o llama.o $(COMMON_DEPS) console.o grammar-parser.o $(OBJS) $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) -simple: examples/simple/simple.cpp ggml.o llama.o $(COMMON_DEPS) $(OBJS) +llama-simple: examples/simple/simple.cpp ggml.o llama.o $(COMMON_DEPS) $(OBJS) $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) -tokenize: examples/tokenize/tokenize.cpp ggml.o llama.o $(COMMON_DEPS) $(OBJS) +llama-tokenize: examples/tokenize/tokenize.cpp ggml.o llama.o $(COMMON_DEPS) $(OBJS) $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) -batched: examples/batched/batched.cpp ggml.o llama.o $(COMMON_DEPS) $(OBJS) +llama-batched: examples/batched/batched.cpp ggml.o llama.o $(COMMON_DEPS) $(OBJS) $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) -batched-bench: examples/batched-bench/batched-bench.cpp build-info.o ggml.o llama.o $(COMMON_DEPS) $(OBJS) +llama-batched-bench: examples/batched-bench/batched-bench.cpp build-info.o ggml.o llama.o $(COMMON_DEPS) $(OBJS) $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) -quantize: examples/quantize/quantize.cpp ggml.o llama.o $(COMMON_DEPS) $(OBJS) +llama-quantize: examples/quantize/quantize.cpp ggml.o llama.o $(COMMON_DEPS) $(OBJS) $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) -quantize-stats: examples/quantize-stats/quantize-stats.cpp build-info.o ggml.o llama.o $(OBJS) +llama-quantize-stats: examples/quantize-stats/quantize-stats.cpp build-info.o ggml.o llama.o $(OBJS) $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) -perplexity: examples/perplexity/perplexity.cpp ggml.o llama.o $(COMMON_DEPS) $(OBJS) +llama-perplexity: examples/perplexity/perplexity.cpp ggml.o llama.o $(COMMON_DEPS) $(OBJS) $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) -imatrix: examples/imatrix/imatrix.cpp ggml.o llama.o $(COMMON_DEPS) $(OBJS) +llama-imatrix: examples/imatrix/imatrix.cpp ggml.o llama.o $(COMMON_DEPS) $(OBJS) $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) -embedding: examples/embedding/embedding.cpp ggml.o llama.o $(COMMON_DEPS) $(OBJS) +llama-embedding: examples/embedding/embedding.cpp ggml.o llama.o $(COMMON_DEPS) $(OBJS) $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) -gritlm: examples/gritlm/gritlm.cpp ggml.o llama.o $(COMMON_DEPS) $(OBJS) +llama-gritlm: examples/gritlm/gritlm.cpp ggml.o llama.o $(COMMON_DEPS) $(OBJS) $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) -save-load-state: examples/save-load-state/save-load-state.cpp ggml.o llama.o $(COMMON_DEPS) $(OBJS) +llama-save-load-state: examples/save-load-state/save-load-state.cpp ggml.o llama.o $(COMMON_DEPS) $(OBJS) $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) -server: examples/server/server.cpp examples/server/utils.hpp examples/server/httplib.h common/json.hpp examples/server/colorthemes.css.hpp examples/server/style.css.hpp examples/server/theme-beeninorder.css.hpp examples/server/theme-ketivah.css.hpp examples/server/theme-mangotango.css.hpp examples/server/theme-playground.css.hpp examples/server/theme-polarnight.css.hpp examples/server/theme-snowstorm.css.hpp examples/server/index.html.hpp examples/server/index-new.html.hpp examples/server/index.js.hpp examples/server/completion.js.hpp examples/server/system-prompts.js.hpp examples/server/prompt-formats.js.hpp examples/server/json-schema-to-grammar.mjs.hpp common/stb_image.h ggml.o llama.o $(COMMON_DEPS) grammar-parser.o $(OBJS) +llama-server: examples/server/server.cpp examples/server/utils.hpp examples/server/httplib.h common/json.hpp examples/server/colorthemes.css.hpp examples/server/style.css.hpp examples/server/theme-beeninorder.css.hpp examples/server/theme-ketivah.css.hpp examples/server/theme-mangotango.css.hpp examples/server/theme-playground.css.hpp examples/server/theme-polarnight.css.hpp examples/server/theme-snowstorm.css.hpp examples/server/index.html.hpp examples/server/index-new.html.hpp examples/server/index.js.hpp examples/server/completion.js.hpp examples/server/system-prompts.js.hpp examples/server/prompt-formats.js.hpp examples/server/json-schema-to-grammar.mjs.hpp common/stb_image.h ggml.o llama.o $(COMMON_DEPS) grammar-parser.o $(OBJS) $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) $(CXX) $(CXXFLAGS) $(filter-out %.h %.hpp $<,$^) -Iexamples/server $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) $(LWINSOCK2) @@ -861,23 +897,23 @@ examples/server/%.hpp: examples/server/public/% Makefile echo "unsigned int $${NAME}_len = $(shell cat $< | wc -c );" \ ) > $@ -gguf: examples/gguf/gguf.cpp ggml.o $(OBJS) +llama-gguf: examples/gguf/gguf.cpp ggml.o $(OBJS) $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) -gguf-split: examples/gguf-split/gguf-split.cpp ggml.o llama.o $(COMMON_DEPS) $(OBJS) +llama-gguf-split: examples/gguf-split/gguf-split.cpp ggml.o llama.o $(COMMON_DEPS) $(OBJS) $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) -eval-callback: examples/eval-callback/eval-callback.cpp ggml.o llama.o $(COMMON_DEPS) $(OBJS) +llama-eval-callback: examples/eval-callback/eval-callback.cpp ggml.o llama.o $(COMMON_DEPS) $(OBJS) $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) -train-text-from-scratch: examples/train-text-from-scratch/train-text-from-scratch.cpp ggml.o llama.o $(COMMON_DEPS) train.o $(OBJS) +llama-train-text-from-scratch: examples/train-text-from-scratch/train-text-from-scratch.cpp ggml.o llama.o $(COMMON_DEPS) train.o $(OBJS) $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) -convert-llama2c-to-ggml: examples/convert-llama2c-to-ggml/convert-llama2c-to-ggml.cpp ggml.o llama.o $(OBJS) +llama-convert-llama2c-to-ggml: examples/convert-llama2c-to-ggml/convert-llama2c-to-ggml.cpp ggml.o llama.o $(OBJS) $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) @@ -888,55 +924,61 @@ llama-bench: examples/llama-bench/llama-bench.cpp ggml.o llama.o $(COMMON_DEPS) libllava.a: examples/llava/llava.cpp examples/llava/llava.h examples/llava/clip.cpp examples/llava/clip.h common/stb_image.h common/base64.hpp ggml.o llama.o $(COMMON_DEPS) $(OBJS) $(CXX) $(CXXFLAGS) -static -fPIC -c $< -o $@ -Wno-cast-qual -llava-cli: examples/llava/llava-cli.cpp examples/llava/clip.h examples/llava/clip.cpp examples/llava/llava.h examples/llava/llava.cpp ggml.o llama.o $(COMMON_DEPS) $(OBJS) +llama-llava-cli: examples/llava/llava-cli.cpp examples/llava/clip.h examples/llava/clip.cpp examples/llava/llava.h examples/llava/llava.cpp ggml.o llama.o $(COMMON_DEPS) $(OBJS) $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) $(CXX) $(CXXFLAGS) -c examples/llava/clip.cpp -o $(call GET_OBJ_FILE, examples/llava/clip.cpp) -Wno-cast-qual $(CXX) $(CXXFLAGS) -c examples/llava/llava.cpp -o $(call GET_OBJ_FILE, examples/llava/llava.cpp) $(CXX) $(CXXFLAGS) $(filter-out %.h $< examples/llava/clip.cpp examples/llava/llava.cpp,$^) $(call GET_OBJ_FILE, $<) $(call GET_OBJ_FILE, examples/llava/clip.cpp) $(call GET_OBJ_FILE, examples/llava/llava.cpp) -o $@ $(LDFLAGS) -baby-llama: examples/baby-llama/baby-llama.cpp ggml.o llama.o $(COMMON_DEPS) train.o $(OBJS) +llama-baby-llama: examples/baby-llama/baby-llama.cpp ggml.o llama.o $(COMMON_DEPS) train.o $(OBJS) $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) -finetune: examples/finetune/finetune.cpp ggml.o llama.o $(COMMON_DEPS) train.o $(OBJS) +llama-finetune: examples/finetune/finetune.cpp ggml.o llama.o $(COMMON_DEPS) train.o $(OBJS) $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) -export-lora: examples/export-lora/export-lora.cpp ggml.o common/common.h $(OBJS) +llama-export-lora: examples/export-lora/export-lora.cpp ggml.o common/common.h $(OBJS) $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) -retrieval: examples/retrieval/retrieval.cpp ggml.o llama.o $(COMMON_DEPS) $(OBJS) +llama-retrieval: examples/retrieval/retrieval.cpp ggml.o llama.o $(COMMON_DEPS) $(OBJS) $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) -speculative: examples/speculative/speculative.cpp ggml.o llama.o $(COMMON_DEPS) grammar-parser.o $(OBJS) +llama-speculative: examples/speculative/speculative.cpp ggml.o llama.o $(COMMON_DEPS) grammar-parser.o $(OBJS) $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) -parallel: examples/parallel/parallel.cpp ggml.o llama.o $(COMMON_DEPS) $(OBJS) +llama-parallel: examples/parallel/parallel.cpp ggml.o llama.o $(COMMON_DEPS) $(OBJS) $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) -lookahead: examples/lookahead/lookahead.cpp ggml.o llama.o $(COMMON_DEPS) $(OBJS) +llama-lookahead: examples/lookahead/lookahead.cpp ggml.o llama.o $(COMMON_DEPS) $(OBJS) $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) -lookup: examples/lookup/lookup.cpp ggml.o llama.o ngram-cache.o $(COMMON_DEPS) $(OBJS) +llama-lookup: examples/lookup/lookup.cpp ggml.o llama.o ngram-cache.o $(COMMON_DEPS) $(OBJS) $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) - $(CXX) $(CXXFLAGS) -c examples/lookup/lookup-create.cpp -o $(call GET_OBJ_FILE, examples/lookup/lookup-create.cpp) - $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, examples/lookup/lookup-create.cpp) -o lookup-create $(LDFLAGS) - $(CXX) $(CXXFLAGS) -c examples/lookup/lookup-merge.cpp -o $(call GET_OBJ_FILE, examples/lookup/lookup-merge.cpp) - $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, examples/lookup/lookup-merge.cpp) -o lookup-merge $(LDFLAGS) - $(CXX) $(CXXFLAGS) -c examples/lookup/lookup-stats.cpp -o $(call GET_OBJ_FILE, examples/lookup/lookup-stats.cpp) - $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, examples/lookup/lookup-stats.cpp) -o lookup-stats $(LDFLAGS) - -passkey: examples/passkey/passkey.cpp ggml.o llama.o $(COMMON_DEPS) $(OBJS) + +llama-lookup-create: examples/lookup/lookup-create.cpp ggml.o llama.o ngram-cache.o $(COMMON_DEPS) $(OBJS) + $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) + $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) + +llama-lookup-merge: examples/lookup/lookup-merge.cpp ggml.o llama.o ngram-cache.o $(COMMON_DEPS) $(OBJS) + $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) + $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) + +llama-lookup-stats: examples/lookup/lookup-stats.cpp ggml.o llama.o ngram-cache.o $(COMMON_DEPS) $(OBJS) + $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) + $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) + +llama-passkey: examples/passkey/passkey.cpp ggml.o llama.o $(COMMON_DEPS) $(OBJS) $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) -gbnf-validator: examples/gbnf-validator/gbnf-validator.cpp ggml.o llama.o $(COMMON_DEPS) grammar-parser.o $(OBJS) +llama-gbnf-validator: examples/gbnf-validator/gbnf-validator.cpp ggml.o llama.o $(COMMON_DEPS) grammar-parser.o $(OBJS) $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) @@ -962,20 +1004,20 @@ build-info.o: common/build-info.cpp tests: $(TEST_TARGETS) -benchmark-matmult: examples/benchmark/benchmark-matmult.cpp build-info.o ggml.o $(OBJS) +llama-benchmark-matmult: examples/benchmark/benchmark-matmult.cpp build-info.o ggml.o $(OBJS) $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) -run-benchmark-matmult: benchmark-matmult +run-benchmark-matmult: llama-benchmark-matmult ./$@ .PHONY: run-benchmark-matmult swift -vdot: pocs/vdot/vdot.cpp ggml.o $(OBJS) +llama-vdot: pocs/vdot/vdot.cpp ggml.o $(OBJS) $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) $(CXX) $(CXXFLAGS) $(filter-out $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) -q8dot: pocs/vdot/q8dot.cpp ggml.o $(OBJS) +llama-q8dot: pocs/vdot/q8dot.cpp ggml.o $(OBJS) $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) $(CXX) $(CXXFLAGS) $(filter-out $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) diff --git a/README-sycl.md b/README-sycl.md index 62b38135c01c0..93b623daf6a1a 100644 --- a/README-sycl.md +++ b/README-sycl.md @@ -77,7 +77,7 @@ It has the similar design of other llama.cpp BLAS-based paths such as *OpenBLAS, *Notes:* - **Memory** - - The device memory is a limitation when running a large model. The loaded model size, *`llm_load_tensors: buffer_size`*, is displayed in the log when running `./bin/main`. + - The device memory is a limitation when running a large model. The loaded model size, *`llm_load_tensors: buffer_size`*, is displayed in the log when running `./bin/llama-cli`. - Please make sure the GPU shared memory from the host is large enough to account for the model's size. For e.g. the *llama-2-7b.Q4_0* requires at least 8.0GB for integrated GPU and 4.0GB for discrete GPU. @@ -99,14 +99,14 @@ The docker build option is currently limited to *intel GPU* targets. ### Build image ```sh # Using FP16 -docker build -t llama-cpp-sycl --build-arg="LLAMA_SYCL_F16=ON" -f .devops/main-intel.Dockerfile . +docker build -t llama-cpp-sycl --build-arg="LLAMA_SYCL_F16=ON" -f .devops/llama-cli-intel.Dockerfile . ``` *Notes*: To build in default FP32 *(Slower than FP16 alternative)*, you can remove the `--build-arg="LLAMA_SYCL_F16=ON"` argument from the previous command. -You can also use the `.devops/server-intel.Dockerfile`, which builds the *"server"* alternative. +You can also use the `.devops/llama-server-intel.Dockerfile`, which builds the *"server"* alternative. ### Run container @@ -275,7 +275,7 @@ source /opt/intel/oneapi/setvars.sh Similar to the native `sycl-ls`, available SYCL devices can be queried as follow: ```sh -./build/bin/ls-sycl-device +./build/bin/llama-ls-sycl-device ``` A example of such log in a system with 1 *intel CPU* and 1 *intel GPU* can look like the following: ``` @@ -313,7 +313,7 @@ Examples: - Use device 0: ```sh -ZES_ENABLE_SYSMAN=1 ./build/bin/main -m models/llama-2-7b.Q4_0.gguf -p "Building a website can be done in 10 simple steps:" -n 400 -e -ngl 33 -sm none -mg 0 +ZES_ENABLE_SYSMAN=1 ./build/bin/llama-cli -m models/llama-2-7b.Q4_0.gguf -p "Building a website can be done in 10 simple steps:" -n 400 -e -ngl 33 -sm none -mg 0 ``` or run by script: @@ -324,7 +324,7 @@ or run by script: - Use multiple devices: ```sh -ZES_ENABLE_SYSMAN=1 ./build/bin/main -m models/llama-2-7b.Q4_0.gguf -p "Building a website can be done in 10 simple steps:" -n 400 -e -ngl 33 -sm layer +ZES_ENABLE_SYSMAN=1 ./build/bin/llama-cli -m models/llama-2-7b.Q4_0.gguf -p "Building a website can be done in 10 simple steps:" -n 400 -e -ngl 33 -sm layer ``` Otherwise, you can run the script: @@ -427,7 +427,7 @@ Otherwise, run the `win-build-sycl.bat` wrapper which encapsulates the former in *Notes:* -- By default, calling `make` will build all target binary files. In case of a minimal experimental setup, the user can build the inference executable only through `make main`. +- By default, calling `make` will build all target binary files. In case of a minimal experimental setup, the user can build the inference executable only through `make llama-cli`. ### III. Run the inference @@ -488,13 +488,13 @@ Examples: - Use device 0: ``` -build\bin\main.exe -m models\llama-2-7b.Q4_0.gguf -p "Building a website can be done in 10 simple steps:\nStep 1:" -n 400 -e -ngl 33 -s 0 -sm none -mg 0 +build\bin\llama-cli.exe -m models\llama-2-7b.Q4_0.gguf -p "Building a website can be done in 10 simple steps:\nStep 1:" -n 400 -e -ngl 33 -s 0 -sm none -mg 0 ``` - Use multiple devices: ``` -build\bin\main.exe -m models\llama-2-7b.Q4_0.gguf -p "Building a website can be done in 10 simple steps:\nStep 1:" -n 400 -e -ngl 33 -s 0 -sm layer +build\bin\llama-cli.exe -m models\llama-2-7b.Q4_0.gguf -p "Building a website can be done in 10 simple steps:\nStep 1:" -n 400 -e -ngl 33 -s 0 -sm layer ``` Otherwise, run the following wrapper script: diff --git a/README.md b/README.md index 8c065aace09be..d1c6190ddfd7b 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,9 @@ Inference of Meta's [LLaMA](https://arxiv.org/abs/2302.13971) model (and others) in pure C/C++ +> [!IMPORTANT] +[2024 Jun 12] Binaries have been renamed w/ a `llama-` prefix. `main` is now `llama-cli`, `server` is `llama-server`, etc (https://github.com/ggerganov/llama.cpp/pull/7809) + ### Recent API changes - [2024 Apr 21] `llama_token_to_piece` can now optionally render special tokens https://github.com/ggerganov/llama.cpp/pull/6807 @@ -217,7 +220,7 @@ Unless otherwise noted these projects are open-source with permissive licensing: Here is a typical run using LLaMA v2 13B on M2 Ultra: ``` -$ make -j && ./main -m models/llama-13b-v2/ggml-model-q4_0.gguf -p "Building a website can be done in 10 simple steps:\nStep 1:" -n 400 -e +$ make -j && ./llama-cli -m models/llama-13b-v2/ggml-model-q4_0.gguf -p "Building a website can be done in 10 simple steps:\nStep 1:" -n 400 -e I llama.cpp build info: I UNAME_S: Darwin I UNAME_P: arm @@ -555,7 +558,7 @@ Building the program with BLAS support may lead to some performance improvements ```sh # Build the image - docker build -t llama-cpp-vulkan -f .devops/main-vulkan.Dockerfile . + docker build -t llama-cpp-vulkan -f .devops/llama-cli-vulkan.Dockerfile . # Then, use it: docker run -it --rm -v "$(pwd):/app:Z" --device /dev/dri/renderD128:/dev/dri/renderD128 --device /dev/dri/card1:/dev/dri/card1 llama-cpp-vulkan -m "/app/models/YOUR_MODEL_FILE" -p "Building a website can be done in 10 simple steps:" -n 400 -e -ngl 33 @@ -586,7 +589,7 @@ Building the program with BLAS support may lead to some performance improvements cmake -B build -DLLAMA_VULKAN=1 cmake --build build --config Release # Test the output binary (with "-ngl 33" to offload all layers to GPU) - ./bin/main -m "PATH_TO_MODEL" -p "Hi you how are you" -n 50 -e -ngl 33 -t 4 + ./bin/llama-cli -m "PATH_TO_MODEL" -p "Hi you how are you" -n 50 -e -ngl 33 -t 4 # You should see in the output, ggml_vulkan detected your GPU. For example: # ggml_vulkan: Using Intel(R) Graphics (ADL GT2) | uma: 1 | fp16: 1 | warp size: 32 @@ -623,17 +626,17 @@ python3 convert-hf-to-gguf.py models/mymodel/ python convert-hf-to-gguf.py models/mymodel/ --vocab-type bpe # quantize the model to 4-bits (using Q4_K_M method) -./quantize ./models/mymodel/ggml-model-f16.gguf ./models/mymodel/ggml-model-Q4_K_M.gguf Q4_K_M +./llama-quantize ./models/mymodel/ggml-model-f16.gguf ./models/mymodel/ggml-model-Q4_K_M.gguf Q4_K_M # update the gguf filetype to current version if older version is now unsupported -./quantize ./models/mymodel/ggml-model-Q4_K_M.gguf ./models/mymodel/ggml-model-Q4_K_M-v2.gguf COPY +./llama-quantize ./models/mymodel/ggml-model-Q4_K_M.gguf ./models/mymodel/ggml-model-Q4_K_M-v2.gguf COPY ``` ### Run the quantized model ```bash # start inference on a gguf model -./main -m ./models/mymodel/ggml-model-Q4_K_M.gguf -n 128 +./llama-cli -m ./models/mymodel/ggml-model-Q4_K_M.gguf -n 128 ``` When running the larger models, make sure you have enough disk space to store all the intermediate files. @@ -708,7 +711,7 @@ The time per token is measured on a MacBook M1 Pro 32GB RAM using 4 and 8 thread #### How to run 1. Download/extract: https://huggingface.co/datasets/ggml-org/ci/resolve/main/wikitext-2-raw-v1.zip -2. Run `./perplexity -m models/7B/ggml-model-q4_0.gguf -f wiki.test.raw` +2. Run `./llama-perplexity -m models/7B/ggml-model-q4_0.gguf -f wiki.test.raw` 3. Output: ``` perplexity : calculating perplexity over 655 chunks @@ -732,16 +735,16 @@ Here is an example of a few-shot interaction, invoked with the command ./examples/chat-13B.sh # custom arguments using a 13B model -./main -m ./models/13B/ggml-model-q4_0.gguf -n 256 --repeat_penalty 1.0 --color -i -r "User:" -f prompts/chat-with-bob.txt +./llama-cli -m ./models/13B/ggml-model-q4_0.gguf -n 256 --repeat_penalty 1.0 --color -i -r "User:" -f prompts/chat-with-bob.txt ``` -Note the use of `--color` to distinguish between user input and generated text. Other parameters are explained in more detail in the [README](examples/main/README.md) for the `main` example program. +Note the use of `--color` to distinguish between user input and generated text. Other parameters are explained in more detail in the [README](examples/main/README.md) for the `llama-cli` example program. ![image](https://user-images.githubusercontent.com/1991296/224575029-2af3c7dc-5a65-4f64-a6bb-517a532aea38.png) ### Persistent Interaction -The prompt, user inputs, and model generations can be saved and resumed across calls to `./main` by leveraging `--prompt-cache` and `--prompt-cache-all`. The `./examples/chat-persistent.sh` script demonstrates this with support for long-running, resumable chat sessions. To use this example, you must provide a file to cache the initial chat prompt and a directory to save the chat session, and may optionally provide the same variables as `chat-13B.sh`. The same prompt cache can be reused for new chat sessions. Note that both prompt cache and chat directory are tied to the initial prompt (`PROMPT_TEMPLATE`) and the model file. +The prompt, user inputs, and model generations can be saved and resumed across calls to `./llama-cli` by leveraging `--prompt-cache` and `--prompt-cache-all`. The `./examples/chat-persistent.sh` script demonstrates this with support for long-running, resumable chat sessions. To use this example, you must provide a file to cache the initial chat prompt and a directory to save the chat session, and may optionally provide the same variables as `chat-13B.sh`. The same prompt cache can be reused for new chat sessions. Note that both prompt cache and chat directory are tied to the initial prompt (`PROMPT_TEMPLATE`) and the model file. ```bash # Start a new chat @@ -763,7 +766,7 @@ PROMPT_TEMPLATE=./prompts/chat-with-bob.txt PROMPT_CACHE_FILE=bob.prompt.bin \ `llama.cpp` supports grammars to constrain model output. For example, you can force the model to output JSON only: ```bash -./main -m ./models/13B/ggml-model-q4_0.gguf -n 256 --grammar-file grammars/json.gbnf -p 'Request: schedule a call at 8pm; Command:' +./llama-cli -m ./models/13B/ggml-model-q4_0.gguf -n 256 --grammar-file grammars/json.gbnf -p 'Request: schedule a call at 8pm; Command:' ``` The `grammars/` folder contains a handful of sample grammars. To write your own, check out the [GBNF Guide](./grammars/README.md). @@ -842,7 +845,7 @@ $mv /sdcard/llama.cpp/llama-2-7b-chat.Q4_K_M.gguf /data/data/com.termux/files/ho Now, you can start chatting: ``` $cd /data/data/com.termux/files/home/bin -$./main -m ../model/llama-2-7b-chat.Q4_K_M.gguf -n 128 -cml +$./llama-cli -m ../model/llama-2-7b-chat.Q4_K_M.gguf -n 128 -cml ``` Here's a demo of an interactive session running on Pixel 5 phone: @@ -909,8 +912,8 @@ Assuming one has the [nvidia-container-toolkit](https://github.com/NVIDIA/nvidia ```bash docker build -t local/llama.cpp:full-cuda -f .devops/full-cuda.Dockerfile . -docker build -t local/llama.cpp:light-cuda -f .devops/main-cuda.Dockerfile . -docker build -t local/llama.cpp:server-cuda -f .devops/server-cuda.Dockerfile . +docker build -t local/llama.cpp:light-cuda -f .devops/llama-cli-cuda.Dockerfile . +docker build -t local/llama.cpp:server-cuda -f .devops/llama-server-cuda.Dockerfile . ``` You may want to pass in some different `ARGS`, depending on the CUDA environment supported by your container host, as well as the GPU architecture. @@ -960,7 +963,7 @@ docker run --gpus all -v /path/to/models:/models local/llama.cpp:server-cuda -m ### Docs -- [main](./examples/main/README.md) +- [main (cli)](./examples/main/README.md) - [server](./examples/server/README.md) - [jeopardy](./examples/jeopardy/README.md) - [BLIS](./docs/BLIS.md) diff --git a/ci/run.sh b/ci/run.sh index 3fc5f48b2e2af..291c44f47b86d 100755 --- a/ci/run.sh +++ b/ci/run.sh @@ -303,47 +303,47 @@ function gg_run_open_llama_7b_v2 { wiki_test="${path_wiki}/wiki.test.raw" - ./bin/quantize ${model_f16} ${model_q8_0} q8_0 - ./bin/quantize ${model_f16} ${model_q4_0} q4_0 - ./bin/quantize ${model_f16} ${model_q4_1} q4_1 - ./bin/quantize ${model_f16} ${model_q5_0} q5_0 - ./bin/quantize ${model_f16} ${model_q5_1} q5_1 - ./bin/quantize ${model_f16} ${model_q2_k} q2_k - ./bin/quantize ${model_f16} ${model_q3_k} q3_k - ./bin/quantize ${model_f16} ${model_q4_k} q4_k - ./bin/quantize ${model_f16} ${model_q5_k} q5_k - ./bin/quantize ${model_f16} ${model_q6_k} q6_k - - (time ./bin/main --model ${model_f16} -t 1 -ngl 999 -s 1234 -n 256 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-f16.log - (time ./bin/main --model ${model_q8_0} -t 1 -ngl 999 -s 1234 -n 256 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q8_0.log - (time ./bin/main --model ${model_q4_0} -t 1 -ngl 999 -s 1234 -n 256 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q4_0.log - (time ./bin/main --model ${model_q4_1} -t 1 -ngl 999 -s 1234 -n 256 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q4_1.log - (time ./bin/main --model ${model_q5_0} -t 1 -ngl 999 -s 1234 -n 256 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q5_0.log - (time ./bin/main --model ${model_q5_1} -t 1 -ngl 999 -s 1234 -n 256 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q5_1.log - (time ./bin/main --model ${model_q2_k} -t 1 -ngl 999 -s 1234 -n 256 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q2_k.log - (time ./bin/main --model ${model_q3_k} -t 1 -ngl 999 -s 1234 -n 256 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q3_k.log - (time ./bin/main --model ${model_q4_k} -t 1 -ngl 999 -s 1234 -n 256 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q4_k.log - (time ./bin/main --model ${model_q5_k} -t 1 -ngl 999 -s 1234 -n 256 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q5_k.log - (time ./bin/main --model ${model_q6_k} -t 1 -ngl 999 -s 1234 -n 256 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q6_k.log - - (time ./bin/perplexity --model ${model_f16} -f ${wiki_test} -t 1 -ngl 999 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-tg-f16.log - (time ./bin/perplexity --model ${model_q8_0} -f ${wiki_test} -t 1 -ngl 999 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-tg-q8_0.log - (time ./bin/perplexity --model ${model_q4_0} -f ${wiki_test} -t 1 -ngl 999 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-tg-q4_0.log - (time ./bin/perplexity --model ${model_q4_1} -f ${wiki_test} -t 1 -ngl 999 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-tg-q4_1.log - (time ./bin/perplexity --model ${model_q5_0} -f ${wiki_test} -t 1 -ngl 999 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-tg-q5_0.log - (time ./bin/perplexity --model ${model_q5_1} -f ${wiki_test} -t 1 -ngl 999 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-tg-q5_1.log - (time ./bin/perplexity --model ${model_q2_k} -f ${wiki_test} -t 1 -ngl 999 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-tg-q2_k.log - (time ./bin/perplexity --model ${model_q3_k} -f ${wiki_test} -t 1 -ngl 999 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-tg-q3_k.log - (time ./bin/perplexity --model ${model_q4_k} -f ${wiki_test} -t 1 -ngl 999 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-tg-q4_k.log - (time ./bin/perplexity --model ${model_q5_k} -f ${wiki_test} -t 1 -ngl 999 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-tg-q5_k.log - (time ./bin/perplexity --model ${model_q6_k} -f ${wiki_test} -t 1 -ngl 999 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-tg-q6_k.log - - (time ./bin/imatrix --model ${model_f16} -f ${wiki_test} -t 1 -ngl 999 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-imatrix.log - - (time ./bin/save-load-state -ngl 10 --model ${model_q4_0} ) 2>&1 | tee -a $OUT/${ci}-save-load-state.log - (time ./bin/save-load-state -fa -ngl 10 --model ${model_q4_0} ) 2>&1 | tee -a $OUT/${ci}-save-load-state.log - (time ./bin/save-load-state -ngl 99 --model ${model_q4_0} ) 2>&1 | tee -a $OUT/${ci}-save-load-state.log - (time ./bin/save-load-state -fa -ngl 99 --model ${model_q4_0} ) 2>&1 | tee -a $OUT/${ci}-save-load-state.log + ./bin/llama-quantize ${model_f16} ${model_q8_0} q8_0 + ./bin/llama-quantize ${model_f16} ${model_q4_0} q4_0 + ./bin/llama-quantize ${model_f16} ${model_q4_1} q4_1 + ./bin/llama-quantize ${model_f16} ${model_q5_0} q5_0 + ./bin/llama-quantize ${model_f16} ${model_q5_1} q5_1 + ./bin/llama-quantize ${model_f16} ${model_q2_k} q2_k + ./bin/llama-quantize ${model_f16} ${model_q3_k} q3_k + ./bin/llama-quantize ${model_f16} ${model_q4_k} q4_k + ./bin/llama-quantize ${model_f16} ${model_q5_k} q5_k + ./bin/llama-quantize ${model_f16} ${model_q6_k} q6_k + + (time ./bin/llama-cli --model ${model_f16} -t 1 -ngl 999 -s 1234 -n 256 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-f16.log + (time ./bin/llama-cli --model ${model_q8_0} -t 1 -ngl 999 -s 1234 -n 256 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q8_0.log + (time ./bin/llama-cli --model ${model_q4_0} -t 1 -ngl 999 -s 1234 -n 256 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q4_0.log + (time ./bin/llama-cli --model ${model_q4_1} -t 1 -ngl 999 -s 1234 -n 256 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q4_1.log + (time ./bin/llama-cli --model ${model_q5_0} -t 1 -ngl 999 -s 1234 -n 256 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q5_0.log + (time ./bin/llama-cli --model ${model_q5_1} -t 1 -ngl 999 -s 1234 -n 256 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q5_1.log + (time ./bin/llama-cli --model ${model_q2_k} -t 1 -ngl 999 -s 1234 -n 256 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q2_k.log + (time ./bin/llama-cli --model ${model_q3_k} -t 1 -ngl 999 -s 1234 -n 256 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q3_k.log + (time ./bin/llama-cli --model ${model_q4_k} -t 1 -ngl 999 -s 1234 -n 256 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q4_k.log + (time ./bin/llama-cli --model ${model_q5_k} -t 1 -ngl 999 -s 1234 -n 256 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q5_k.log + (time ./bin/llama-cli --model ${model_q6_k} -t 1 -ngl 999 -s 1234 -n 256 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q6_k.log + + (time ./bin/llama-perplexity --model ${model_f16} -f ${wiki_test} -t 1 -ngl 999 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-tg-f16.log + (time ./bin/llama-perplexity --model ${model_q8_0} -f ${wiki_test} -t 1 -ngl 999 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-tg-q8_0.log + (time ./bin/llama-perplexity --model ${model_q4_0} -f ${wiki_test} -t 1 -ngl 999 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-tg-q4_0.log + (time ./bin/llama-perplexity --model ${model_q4_1} -f ${wiki_test} -t 1 -ngl 999 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-tg-q4_1.log + (time ./bin/llama-perplexity --model ${model_q5_0} -f ${wiki_test} -t 1 -ngl 999 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-tg-q5_0.log + (time ./bin/llama-perplexity --model ${model_q5_1} -f ${wiki_test} -t 1 -ngl 999 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-tg-q5_1.log + (time ./bin/llama-perplexity --model ${model_q2_k} -f ${wiki_test} -t 1 -ngl 999 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-tg-q2_k.log + (time ./bin/llama-perplexity --model ${model_q3_k} -f ${wiki_test} -t 1 -ngl 999 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-tg-q3_k.log + (time ./bin/llama-perplexity --model ${model_q4_k} -f ${wiki_test} -t 1 -ngl 999 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-tg-q4_k.log + (time ./bin/llama-perplexity --model ${model_q5_k} -f ${wiki_test} -t 1 -ngl 999 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-tg-q5_k.log + (time ./bin/llama-perplexity --model ${model_q6_k} -f ${wiki_test} -t 1 -ngl 999 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-tg-q6_k.log + + (time ./bin/llama-imatrix --model ${model_f16} -f ${wiki_test} -t 1 -ngl 999 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-imatrix.log + + (time ./bin/llama-save-load-state -ngl 10 --model ${model_q4_0} ) 2>&1 | tee -a $OUT/${ci}-save-load-state.log + (time ./bin/llama-save-load-state -fa -ngl 10 --model ${model_q4_0} ) 2>&1 | tee -a $OUT/${ci}-save-load-state.log + (time ./bin/llama-save-load-state -ngl 99 --model ${model_q4_0} ) 2>&1 | tee -a $OUT/${ci}-save-load-state.log + (time ./bin/llama-save-load-state -fa -ngl 99 --model ${model_q4_0} ) 2>&1 | tee -a $OUT/${ci}-save-load-state.log function check_ppl { qnt="$1" @@ -437,45 +437,45 @@ function gg_run_pythia_1_4b { wiki_test_60="${path_wiki}/wiki.test-60.raw" - ./bin/quantize ${model_f16} ${model_q8_0} q8_0 - ./bin/quantize ${model_f16} ${model_q4_0} q4_0 - ./bin/quantize ${model_f16} ${model_q4_1} q4_1 - ./bin/quantize ${model_f16} ${model_q5_0} q5_0 - ./bin/quantize ${model_f16} ${model_q5_1} q5_1 - ./bin/quantize ${model_f16} ${model_q2_k} q2_k - ./bin/quantize ${model_f16} ${model_q3_k} q3_k - ./bin/quantize ${model_f16} ${model_q4_k} q4_k - ./bin/quantize ${model_f16} ${model_q5_k} q5_k - ./bin/quantize ${model_f16} ${model_q6_k} q6_k - - (time ./bin/main --model ${model_f16} -s 1234 -n 64 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-f16.log - (time ./bin/main --model ${model_q8_0} -s 1234 -n 64 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q8_0.log - (time ./bin/main --model ${model_q4_0} -s 1234 -n 64 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q4_0.log - (time ./bin/main --model ${model_q4_1} -s 1234 -n 64 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q4_1.log - (time ./bin/main --model ${model_q5_0} -s 1234 -n 64 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q5_0.log - (time ./bin/main --model ${model_q5_1} -s 1234 -n 64 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q5_1.log - (time ./bin/main --model ${model_q2_k} -s 1234 -n 64 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q2_k.log - (time ./bin/main --model ${model_q3_k} -s 1234 -n 64 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q3_k.log - (time ./bin/main --model ${model_q4_k} -s 1234 -n 64 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q4_k.log - (time ./bin/main --model ${model_q5_k} -s 1234 -n 64 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q5_k.log - (time ./bin/main --model ${model_q6_k} -s 1234 -n 64 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q6_k.log - - (time ./bin/perplexity --model ${model_f16} -f ${wiki_test_60} -c 128 -b 128 --chunks 1 ) 2>&1 | tee -a $OUT/${ci}-tg-f16.log - (time ./bin/perplexity --model ${model_q8_0} -f ${wiki_test_60} -c 128 -b 128 --chunks 1 ) 2>&1 | tee -a $OUT/${ci}-tg-q8_0.log - (time ./bin/perplexity --model ${model_q4_0} -f ${wiki_test_60} -c 128 -b 128 --chunks 1 ) 2>&1 | tee -a $OUT/${ci}-tg-q4_0.log - (time ./bin/perplexity --model ${model_q4_1} -f ${wiki_test_60} -c 128 -b 128 --chunks 1 ) 2>&1 | tee -a $OUT/${ci}-tg-q4_1.log - (time ./bin/perplexity --model ${model_q5_0} -f ${wiki_test_60} -c 128 -b 128 --chunks 1 ) 2>&1 | tee -a $OUT/${ci}-tg-q5_0.log - (time ./bin/perplexity --model ${model_q5_1} -f ${wiki_test_60} -c 128 -b 128 --chunks 1 ) 2>&1 | tee -a $OUT/${ci}-tg-q5_1.log - (time ./bin/perplexity --model ${model_q2_k} -f ${wiki_test_60} -c 128 -b 128 --chunks 1 ) 2>&1 | tee -a $OUT/${ci}-tg-q2_k.log - (time ./bin/perplexity --model ${model_q3_k} -f ${wiki_test_60} -c 128 -b 128 --chunks 1 ) 2>&1 | tee -a $OUT/${ci}-tg-q3_k.log - (time ./bin/perplexity --model ${model_q4_k} -f ${wiki_test_60} -c 128 -b 128 --chunks 1 ) 2>&1 | tee -a $OUT/${ci}-tg-q4_k.log - (time ./bin/perplexity --model ${model_q5_k} -f ${wiki_test_60} -c 128 -b 128 --chunks 1 ) 2>&1 | tee -a $OUT/${ci}-tg-q5_k.log - (time ./bin/perplexity --model ${model_q6_k} -f ${wiki_test_60} -c 128 -b 128 --chunks 1 ) 2>&1 | tee -a $OUT/${ci}-tg-q6_k.log - - (time ./bin/imatrix --model ${model_f16} -f ${wiki_test_60} -c 128 -b 128 --chunks 1 ) 2>&1 | tee -a $OUT/${ci}-imatrix.log - - (time ./bin/save-load-state --model ${model_q4_0} ) 2>&1 | tee -a $OUT/${ci}-save-load-state.log - (time ./bin/save-load-state -fa --model ${model_q4_0} ) 2>&1 | tee -a $OUT/${ci}-save-load-state.log + ./bin/llama-quantize ${model_f16} ${model_q8_0} q8_0 + ./bin/llama-quantize ${model_f16} ${model_q4_0} q4_0 + ./bin/llama-quantize ${model_f16} ${model_q4_1} q4_1 + ./bin/llama-quantize ${model_f16} ${model_q5_0} q5_0 + ./bin/llama-quantize ${model_f16} ${model_q5_1} q5_1 + ./bin/llama-quantize ${model_f16} ${model_q2_k} q2_k + ./bin/llama-quantize ${model_f16} ${model_q3_k} q3_k + ./bin/llama-quantize ${model_f16} ${model_q4_k} q4_k + ./bin/llama-quantize ${model_f16} ${model_q5_k} q5_k + ./bin/llama-quantize ${model_f16} ${model_q6_k} q6_k + + (time ./bin/llama-cli --model ${model_f16} -s 1234 -n 64 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-f16.log + (time ./bin/llama-cli --model ${model_q8_0} -s 1234 -n 64 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q8_0.log + (time ./bin/llama-cli --model ${model_q4_0} -s 1234 -n 64 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q4_0.log + (time ./bin/llama-cli --model ${model_q4_1} -s 1234 -n 64 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q4_1.log + (time ./bin/llama-cli --model ${model_q5_0} -s 1234 -n 64 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q5_0.log + (time ./bin/llama-cli --model ${model_q5_1} -s 1234 -n 64 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q5_1.log + (time ./bin/llama-cli --model ${model_q2_k} -s 1234 -n 64 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q2_k.log + (time ./bin/llama-cli --model ${model_q3_k} -s 1234 -n 64 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q3_k.log + (time ./bin/llama-cli --model ${model_q4_k} -s 1234 -n 64 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q4_k.log + (time ./bin/llama-cli --model ${model_q5_k} -s 1234 -n 64 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q5_k.log + (time ./bin/llama-cli --model ${model_q6_k} -s 1234 -n 64 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q6_k.log + + (time ./bin/llama-perplexity --model ${model_f16} -f ${wiki_test_60} -c 128 -b 128 --chunks 1 ) 2>&1 | tee -a $OUT/${ci}-tg-f16.log + (time ./bin/llama-perplexity --model ${model_q8_0} -f ${wiki_test_60} -c 128 -b 128 --chunks 1 ) 2>&1 | tee -a $OUT/${ci}-tg-q8_0.log + (time ./bin/llama-perplexity --model ${model_q4_0} -f ${wiki_test_60} -c 128 -b 128 --chunks 1 ) 2>&1 | tee -a $OUT/${ci}-tg-q4_0.log + (time ./bin/llama-perplexity --model ${model_q4_1} -f ${wiki_test_60} -c 128 -b 128 --chunks 1 ) 2>&1 | tee -a $OUT/${ci}-tg-q4_1.log + (time ./bin/llama-perplexity --model ${model_q5_0} -f ${wiki_test_60} -c 128 -b 128 --chunks 1 ) 2>&1 | tee -a $OUT/${ci}-tg-q5_0.log + (time ./bin/llama-perplexity --model ${model_q5_1} -f ${wiki_test_60} -c 128 -b 128 --chunks 1 ) 2>&1 | tee -a $OUT/${ci}-tg-q5_1.log + (time ./bin/llama-perplexity --model ${model_q2_k} -f ${wiki_test_60} -c 128 -b 128 --chunks 1 ) 2>&1 | tee -a $OUT/${ci}-tg-q2_k.log + (time ./bin/llama-perplexity --model ${model_q3_k} -f ${wiki_test_60} -c 128 -b 128 --chunks 1 ) 2>&1 | tee -a $OUT/${ci}-tg-q3_k.log + (time ./bin/llama-perplexity --model ${model_q4_k} -f ${wiki_test_60} -c 128 -b 128 --chunks 1 ) 2>&1 | tee -a $OUT/${ci}-tg-q4_k.log + (time ./bin/llama-perplexity --model ${model_q5_k} -f ${wiki_test_60} -c 128 -b 128 --chunks 1 ) 2>&1 | tee -a $OUT/${ci}-tg-q5_k.log + (time ./bin/llama-perplexity --model ${model_q6_k} -f ${wiki_test_60} -c 128 -b 128 --chunks 1 ) 2>&1 | tee -a $OUT/${ci}-tg-q6_k.log + + (time ./bin/llama-imatrix --model ${model_f16} -f ${wiki_test_60} -c 128 -b 128 --chunks 1 ) 2>&1 | tee -a $OUT/${ci}-imatrix.log + + (time ./bin/llama-save-load-state --model ${model_q4_0} ) 2>&1 | tee -a $OUT/${ci}-save-load-state.log + (time ./bin/llama-save-load-state -fa --model ${model_q4_0} ) 2>&1 | tee -a $OUT/${ci}-save-load-state.log function check_ppl { qnt="$1" @@ -569,47 +569,47 @@ function gg_run_pythia_2_8b { wiki_test="${path_wiki}/wiki.test.raw" - ./bin/quantize ${model_f16} ${model_q8_0} q8_0 - ./bin/quantize ${model_f16} ${model_q4_0} q4_0 - ./bin/quantize ${model_f16} ${model_q4_1} q4_1 - ./bin/quantize ${model_f16} ${model_q5_0} q5_0 - ./bin/quantize ${model_f16} ${model_q5_1} q5_1 - ./bin/quantize ${model_f16} ${model_q2_k} q2_k - ./bin/quantize ${model_f16} ${model_q3_k} q3_k - ./bin/quantize ${model_f16} ${model_q4_k} q4_k - ./bin/quantize ${model_f16} ${model_q5_k} q5_k - ./bin/quantize ${model_f16} ${model_q6_k} q6_k - - (time ./bin/main --model ${model_f16} -t 1 -ngl 999 -s 1234 -n 256 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-f16.log - (time ./bin/main --model ${model_q8_0} -t 1 -ngl 999 -s 1234 -n 256 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q8_0.log - (time ./bin/main --model ${model_q4_0} -t 1 -ngl 999 -s 1234 -n 256 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q4_0.log - (time ./bin/main --model ${model_q4_1} -t 1 -ngl 999 -s 1234 -n 256 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q4_1.log - (time ./bin/main --model ${model_q5_0} -t 1 -ngl 999 -s 1234 -n 256 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q5_0.log - (time ./bin/main --model ${model_q5_1} -t 1 -ngl 999 -s 1234 -n 256 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q5_1.log - (time ./bin/main --model ${model_q2_k} -t 1 -ngl 999 -s 1234 -n 256 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q2_k.log - (time ./bin/main --model ${model_q3_k} -t 1 -ngl 999 -s 1234 -n 256 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q3_k.log - (time ./bin/main --model ${model_q4_k} -t 1 -ngl 999 -s 1234 -n 256 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q4_k.log - (time ./bin/main --model ${model_q5_k} -t 1 -ngl 999 -s 1234 -n 256 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q5_k.log - (time ./bin/main --model ${model_q6_k} -t 1 -ngl 999 -s 1234 -n 256 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q6_k.log - - (time ./bin/perplexity --model ${model_f16} -f ${wiki_test} -t 1 -ngl 999 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-tg-f16.log - (time ./bin/perplexity --model ${model_q8_0} -f ${wiki_test} -t 1 -ngl 999 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-tg-q8_0.log - (time ./bin/perplexity --model ${model_q4_0} -f ${wiki_test} -t 1 -ngl 999 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-tg-q4_0.log - (time ./bin/perplexity --model ${model_q4_1} -f ${wiki_test} -t 1 -ngl 999 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-tg-q4_1.log - (time ./bin/perplexity --model ${model_q5_0} -f ${wiki_test} -t 1 -ngl 999 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-tg-q5_0.log - (time ./bin/perplexity --model ${model_q5_1} -f ${wiki_test} -t 1 -ngl 999 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-tg-q5_1.log - (time ./bin/perplexity --model ${model_q2_k} -f ${wiki_test} -t 1 -ngl 999 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-tg-q2_k.log - (time ./bin/perplexity --model ${model_q3_k} -f ${wiki_test} -t 1 -ngl 999 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-tg-q3_k.log - (time ./bin/perplexity --model ${model_q4_k} -f ${wiki_test} -t 1 -ngl 999 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-tg-q4_k.log - (time ./bin/perplexity --model ${model_q5_k} -f ${wiki_test} -t 1 -ngl 999 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-tg-q5_k.log - (time ./bin/perplexity --model ${model_q6_k} -f ${wiki_test} -t 1 -ngl 999 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-tg-q6_k.log - - (time ./bin/imatrix --model ${model_f16} -f ${wiki_test} -t 1 -ngl 999 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-imatrix.log - - (time ./bin/save-load-state -ngl 10 --model ${model_q4_0} ) 2>&1 | tee -a $OUT/${ci}-save-load-state.log - (time ./bin/save-load-state -fa -ngl 10 --model ${model_q4_0} ) 2>&1 | tee -a $OUT/${ci}-save-load-state.log - (time ./bin/save-load-state -ngl 99 --model ${model_q4_0} ) 2>&1 | tee -a $OUT/${ci}-save-load-state.log - (time ./bin/save-load-state -fa -ngl 99 --model ${model_q4_0} ) 2>&1 | tee -a $OUT/${ci}-save-load-state.log + ./bin/llama-quantize ${model_f16} ${model_q8_0} q8_0 + ./bin/llama-quantize ${model_f16} ${model_q4_0} q4_0 + ./bin/llama-quantize ${model_f16} ${model_q4_1} q4_1 + ./bin/llama-quantize ${model_f16} ${model_q5_0} q5_0 + ./bin/llama-quantize ${model_f16} ${model_q5_1} q5_1 + ./bin/llama-quantize ${model_f16} ${model_q2_k} q2_k + ./bin/llama-quantize ${model_f16} ${model_q3_k} q3_k + ./bin/llama-quantize ${model_f16} ${model_q4_k} q4_k + ./bin/llama-quantize ${model_f16} ${model_q5_k} q5_k + ./bin/llama-quantize ${model_f16} ${model_q6_k} q6_k + + (time ./bin/llama-cli --model ${model_f16} -t 1 -ngl 999 -s 1234 -n 256 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-f16.log + (time ./bin/llama-cli --model ${model_q8_0} -t 1 -ngl 999 -s 1234 -n 256 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q8_0.log + (time ./bin/llama-cli --model ${model_q4_0} -t 1 -ngl 999 -s 1234 -n 256 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q4_0.log + (time ./bin/llama-cli --model ${model_q4_1} -t 1 -ngl 999 -s 1234 -n 256 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q4_1.log + (time ./bin/llama-cli --model ${model_q5_0} -t 1 -ngl 999 -s 1234 -n 256 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q5_0.log + (time ./bin/llama-cli --model ${model_q5_1} -t 1 -ngl 999 -s 1234 -n 256 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q5_1.log + (time ./bin/llama-cli --model ${model_q2_k} -t 1 -ngl 999 -s 1234 -n 256 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q2_k.log + (time ./bin/llama-cli --model ${model_q3_k} -t 1 -ngl 999 -s 1234 -n 256 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q3_k.log + (time ./bin/llama-cli --model ${model_q4_k} -t 1 -ngl 999 -s 1234 -n 256 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q4_k.log + (time ./bin/llama-cli --model ${model_q5_k} -t 1 -ngl 999 -s 1234 -n 256 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q5_k.log + (time ./bin/llama-cli --model ${model_q6_k} -t 1 -ngl 999 -s 1234 -n 256 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q6_k.log + + (time ./bin/llama-perplexity --model ${model_f16} -f ${wiki_test} -t 1 -ngl 999 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-tg-f16.log + (time ./bin/llama-perplexity --model ${model_q8_0} -f ${wiki_test} -t 1 -ngl 999 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-tg-q8_0.log + (time ./bin/llama-perplexity --model ${model_q4_0} -f ${wiki_test} -t 1 -ngl 999 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-tg-q4_0.log + (time ./bin/llama-perplexity --model ${model_q4_1} -f ${wiki_test} -t 1 -ngl 999 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-tg-q4_1.log + (time ./bin/llama-perplexity --model ${model_q5_0} -f ${wiki_test} -t 1 -ngl 999 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-tg-q5_0.log + (time ./bin/llama-perplexity --model ${model_q5_1} -f ${wiki_test} -t 1 -ngl 999 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-tg-q5_1.log + (time ./bin/llama-perplexity --model ${model_q2_k} -f ${wiki_test} -t 1 -ngl 999 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-tg-q2_k.log + (time ./bin/llama-perplexity --model ${model_q3_k} -f ${wiki_test} -t 1 -ngl 999 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-tg-q3_k.log + (time ./bin/llama-perplexity --model ${model_q4_k} -f ${wiki_test} -t 1 -ngl 999 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-tg-q4_k.log + (time ./bin/llama-perplexity --model ${model_q5_k} -f ${wiki_test} -t 1 -ngl 999 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-tg-q5_k.log + (time ./bin/llama-perplexity --model ${model_q6_k} -f ${wiki_test} -t 1 -ngl 999 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-tg-q6_k.log + + (time ./bin/llama-imatrix --model ${model_f16} -f ${wiki_test} -t 1 -ngl 999 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-imatrix.log + + (time ./bin/llama-save-load-state -ngl 10 --model ${model_q4_0} ) 2>&1 | tee -a $OUT/${ci}-save-load-state.log + (time ./bin/llama-save-load-state -fa -ngl 10 --model ${model_q4_0} ) 2>&1 | tee -a $OUT/${ci}-save-load-state.log + (time ./bin/llama-save-load-state -ngl 99 --model ${model_q4_0} ) 2>&1 | tee -a $OUT/${ci}-save-load-state.log + (time ./bin/llama-save-load-state -fa -ngl 99 --model ${model_q4_0} ) 2>&1 | tee -a $OUT/${ci}-save-load-state.log function check_ppl { qnt="$1" @@ -693,10 +693,10 @@ function gg_run_embd_bge_small { model_f16="${path_models}/ggml-model-f16.gguf" model_q8_0="${path_models}/ggml-model-q8_0.gguf" - ./bin/quantize ${model_f16} ${model_q8_0} q8_0 + ./bin/llama-quantize ${model_f16} ${model_q8_0} q8_0 - (time ./bin/embedding --model ${model_f16} -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-f16.log - (time ./bin/embedding --model ${model_q8_0} -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q8_0.log + (time ./bin/llama-embedding --model ${model_f16} -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-f16.log + (time ./bin/llama-embedding --model ${model_q8_0} -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q8_0.log set +e } diff --git a/docs/HOWTO-add-model.md b/docs/HOWTO-add-model.md index 1381242485960..3eec077ea7bd9 100644 --- a/docs/HOWTO-add-model.md +++ b/docs/HOWTO-add-model.md @@ -100,7 +100,7 @@ Have a look at existing implementation like `build_llama`, `build_dbrx` or `buil When implementing a new graph, please note that the underlying `ggml` backends might not support them all, support for missing backend operations can be added in another PR. -Note: to debug the inference graph: you can use [eval-callback](../examples/eval-callback). +Note: to debug the inference graph: you can use [llama-eval-callback](../examples/eval-callback). ## GGUF specification diff --git a/docs/token_generation_performance_tips.md b/docs/token_generation_performance_tips.md index 3c43431471243..c0840cad57fb3 100644 --- a/docs/token_generation_performance_tips.md +++ b/docs/token_generation_performance_tips.md @@ -3,7 +3,7 @@ ## Verifying that the model is running on the GPU with CUDA Make sure you compiled llama with the correct env variables according to [this guide](../README.md#CUDA), so that llama accepts the `-ngl N` (or `--n-gpu-layers N`) flag. When running llama, you may configure `N` to be very large, and llama will offload the maximum possible number of layers to the GPU, even if it's less than the number you configured. For example: ```shell -./main -m "path/to/model.gguf" -ngl 200000 -p "Please sir, may I have some " +./llama-cli -m "path/to/model.gguf" -ngl 200000 -p "Please sir, may I have some " ``` When running llama, before it starts the inference work, it will output diagnostic information that shows whether cuBLAS is offloading work to the GPU. Look for these lines: @@ -27,7 +27,7 @@ RAM: 32GB Model: `TheBloke_Wizard-Vicuna-30B-Uncensored-GGML/Wizard-Vicuna-30B-Uncensored.q4_0.gguf` (30B parameters, 4bit quantization, GGML) -Run command: `./main -m "path/to/model.gguf" -p "An extremely detailed description of the 10 best ethnic dishes will follow, with recipes: " -n 1000 [additional benchmark flags]` +Run command: `./llama-cli -m "path/to/model.gguf" -p "An extremely detailed description of the 10 best ethnic dishes will follow, with recipes: " -n 1000 [additional benchmark flags]` Result: diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index 53002f8e1ce76..d6ce35f4cc4e9 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -13,42 +13,43 @@ include_directories(${CMAKE_CURRENT_SOURCE_DIR}) if (EMSCRIPTEN) else() add_subdirectory(baby-llama) - add_subdirectory(batched) add_subdirectory(batched-bench) + add_subdirectory(batched) add_subdirectory(benchmark) add_subdirectory(convert-llama2c-to-ggml) add_subdirectory(embedding) add_subdirectory(eval-callback) + add_subdirectory(export-lora) add_subdirectory(finetune) - add_subdirectory(gritlm) + add_subdirectory(gbnf-validator) add_subdirectory(gguf-split) + add_subdirectory(gguf) + add_subdirectory(gritlm) + add_subdirectory(imatrix) add_subdirectory(infill) add_subdirectory(llama-bench) add_subdirectory(llava) - if (LLAMA_SYCL) - add_subdirectory(sycl) - endif() + add_subdirectory(lookahead) + add_subdirectory(lookup) add_subdirectory(main) - add_subdirectory(tokenize) add_subdirectory(parallel) + add_subdirectory(passkey) add_subdirectory(perplexity) - add_subdirectory(quantize) add_subdirectory(quantize-stats) + add_subdirectory(quantize) add_subdirectory(retrieval) + if (LLAMA_RPC) + add_subdirectory(rpc) + endif() + if (LLAMA_BUILD_SERVER) + add_subdirectory(server) + endif() + if (LLAMA_SYCL) + add_subdirectory(sycl) + endif() add_subdirectory(save-load-state) add_subdirectory(simple) - add_subdirectory(passkey) add_subdirectory(speculative) - add_subdirectory(lookahead) - add_subdirectory(lookup) - add_subdirectory(gguf) + add_subdirectory(tokenize) add_subdirectory(train-text-from-scratch) - add_subdirectory(imatrix) - if (LLAMA_BUILD_SERVER) - add_subdirectory(server) - endif() - add_subdirectory(export-lora) - if (LLAMA_RPC) - add_subdirectory(rpc) - endif() endif() diff --git a/examples/Miku.sh b/examples/Miku.sh index b9174b4e6e126..0f6c8c8787107 100755 --- a/examples/Miku.sh +++ b/examples/Miku.sh @@ -22,7 +22,7 @@ if [ -n "$N_THREAD" ]; then GEN_OPTIONS+=(--threads "$N_THREAD") fi -./main "${GEN_OPTIONS[@]}" \ +./llama-cli "${GEN_OPTIONS[@]}" \ --model "$MODEL" \ --in-prefix " " \ --in-suffix "${AI_NAME}:" \ diff --git a/examples/baby-llama/CMakeLists.txt b/examples/baby-llama/CMakeLists.txt index 7b70227a525e1..71b82105c8863 100644 --- a/examples/baby-llama/CMakeLists.txt +++ b/examples/baby-llama/CMakeLists.txt @@ -1,4 +1,4 @@ -set(TARGET baby-llama) +set(TARGET llama-baby-llama) add_executable(${TARGET} baby-llama.cpp) install(TARGETS ${TARGET} RUNTIME) target_link_libraries(${TARGET} PRIVATE common llama ${CMAKE_THREAD_LIBS_INIT}) diff --git a/examples/base-translate.sh b/examples/base-translate.sh index 00dedd0df7dde..103a52f55e6db 100755 --- a/examples/base-translate.sh +++ b/examples/base-translate.sh @@ -58,4 +58,4 @@ echo "$2 model=$1 # generate the most likely continuation until the string "===" is found -./main -m $model -f $ftmp -n 64 --temp 0 --repeat-penalty 1.0 --no-penalize-nl -r "===" $eargs +./llama-cli -m $model -f $ftmp -n 64 --temp 0 --repeat-penalty 1.0 --no-penalize-nl -r "===" $eargs diff --git a/examples/batched-bench/CMakeLists.txt b/examples/batched-bench/CMakeLists.txt index 40a032c514d11..959acaeeebc38 100644 --- a/examples/batched-bench/CMakeLists.txt +++ b/examples/batched-bench/CMakeLists.txt @@ -1,4 +1,4 @@ -set(TARGET batched-bench) +set(TARGET llama-batched-bench) add_executable(${TARGET} batched-bench.cpp) install(TARGETS ${TARGET} RUNTIME) target_link_libraries(${TARGET} PRIVATE common llama ${CMAKE_THREAD_LIBS_INIT}) diff --git a/examples/batched-bench/README.md b/examples/batched-bench/README.md index fa4baf6403e9e..4a07fe6bbf268 100644 --- a/examples/batched-bench/README.md +++ b/examples/batched-bench/README.md @@ -10,16 +10,16 @@ There are 2 modes of operation: - `prompt is shared` - there is a common prompt of size `PP` used by all batches (i.e. `N_KV = PP + B*TG`) ```bash -./batched-bench -m model.gguf -c 2048 -b 2048 -ub 512 -npp 128,256,512 -ntg 128,256 -npl 1,2,4,8,16,32 [-pps] +./llama-batched-bench -m model.gguf -c 2048 -b 2048 -ub 512 -npp 128,256,512 -ntg 128,256 -npl 1,2,4,8,16,32 [-pps] # LLaMA 7B, F16, N_KV_MAX = 16384 (8GB), prompt not shared -./batched-bench -m ./models/llama-7b/ggml-model-f16.gguf -c 16384 -b 2048 -ub 512 -ngl 99 +./llama-batched-bench -m ./models/llama-7b/ggml-model-f16.gguf -c 16384 -b 2048 -ub 512 -ngl 99 # LLaMA 7B, Q8_0, N_KV_MAX = 16384 (8GB), prompt is shared -./batched-bench -m ./models/llama-7b/ggml-model-q8_0.gguf -c 16384 -b 2048 -ub 512 -ngl 99 -pps +./llama-batched-bench -m ./models/llama-7b/ggml-model-q8_0.gguf -c 16384 -b 2048 -ub 512 -ngl 99 -pps # custom set of batches -./batched-bench -m ./models/llama-7b/ggml-model-q8_0.gguf -c 2048 -b 512 -ub 512 -ngl 999 -npp 128,256,512 -ntg 128,256 -npl 1,2,4,8,16,32 +./llama-batched-bench -m ./models/llama-7b/ggml-model-q8_0.gguf -c 2048 -b 512 -ub 512 -ngl 999 -npp 128,256,512 -ntg 128,256 -npl 1,2,4,8,16,32 ``` ## Sample results diff --git a/examples/batched.swift/Makefile b/examples/batched.swift/Makefile index 2afb24fb85a1a..1f9156e583fdd 100755 --- a/examples/batched.swift/Makefile +++ b/examples/batched.swift/Makefile @@ -1,6 +1,6 @@ .PHONY: build build: - xcodebuild -scheme batched_swift -destination "generic/platform=macOS" -derivedDataPath build - rm -f ./batched_swift - ln -s ./build/Build/Products/Debug/batched_swift ./batched_swift + xcodebuild -scheme llama-batched-swift -destination "generic/platform=macOS" -derivedDataPath build + rm -f ./llama-batched-swift + ln -s ./build/Build/Products/Debug/llama-batched-swift ./llama-batched-swift diff --git a/examples/batched.swift/Package.swift b/examples/batched.swift/Package.swift index 826491defd863..7e8afd0843c5b 100644 --- a/examples/batched.swift/Package.swift +++ b/examples/batched.swift/Package.swift @@ -4,7 +4,7 @@ import PackageDescription let package = Package( - name: "batched_swift", + name: "llama-batched-swift", platforms: [.macOS(.v12)], dependencies: [ .package(name: "llama", path: "../../"), @@ -13,7 +13,7 @@ let package = Package( // Targets are the basic building blocks of a package, defining a module or a test suite. // Targets can depend on other targets in this package and products from dependencies. .executableTarget( - name: "batched_swift", + name: "llama-batched-swift", dependencies: ["llama"], path: "Sources", linkerSettings: [.linkedFramework("Foundation"), .linkedFramework("AppKit")] diff --git a/examples/batched.swift/README.md b/examples/batched.swift/README.md index 4c2721fe85b00..7f2e2fcdcf4a7 100644 --- a/examples/batched.swift/README.md +++ b/examples/batched.swift/README.md @@ -1,4 +1,4 @@ This is a swift clone of `examples/batched`. $ `make` -$ `./batched_swift MODEL_PATH [PROMPT] [PARALLEL]` +$ `./llama-batched-swift MODEL_PATH [PROMPT] [PARALLEL]` diff --git a/examples/batched/CMakeLists.txt b/examples/batched/CMakeLists.txt index 6aa178d4d5911..77e33343b6673 100644 --- a/examples/batched/CMakeLists.txt +++ b/examples/batched/CMakeLists.txt @@ -1,4 +1,4 @@ -set(TARGET batched) +set(TARGET llama-batched) add_executable(${TARGET} batched.cpp) install(TARGETS ${TARGET} RUNTIME) target_link_libraries(${TARGET} PRIVATE common llama ${CMAKE_THREAD_LIBS_INIT}) diff --git a/examples/batched/README.md b/examples/batched/README.md index ed204c3088882..6013aab01fddc 100644 --- a/examples/batched/README.md +++ b/examples/batched/README.md @@ -3,7 +3,7 @@ The example demonstrates batched generation from a given prompt ```bash -./batched -m ./models/llama-7b-v2/ggml-model-f16.gguf -p "Hello my name is" -np 4 +./llama-batched -m ./models/llama-7b-v2/ggml-model-f16.gguf -p "Hello my name is" -np 4 ... diff --git a/examples/benchmark/CMakeLists.txt b/examples/benchmark/CMakeLists.txt index 2bb47bab5a868..34a58cc02abaf 100644 --- a/examples/benchmark/CMakeLists.txt +++ b/examples/benchmark/CMakeLists.txt @@ -1,4 +1,4 @@ -set(TARGET benchmark) +set(TARGET llama-bench-matmult) add_executable(${TARGET} benchmark-matmult.cpp) install(TARGETS ${TARGET} RUNTIME) target_link_libraries(${TARGET} PRIVATE llama build_info ${CMAKE_THREAD_LIBS_INIT}) diff --git a/examples/chat-13B.sh b/examples/chat-13B.sh index 35c089d57d253..1828903c31670 100755 --- a/examples/chat-13B.sh +++ b/examples/chat-13B.sh @@ -30,7 +30,7 @@ sed -e "s/\[\[USER_NAME\]\]/$USER_NAME/g" \ $PROMPT_TEMPLATE > $PROMPT_FILE # shellcheck disable=SC2086 # Intended splitting of GEN_OPTIONS -./main $GEN_OPTIONS \ +./llama-cli $GEN_OPTIONS \ --model "$MODEL" \ --threads "$N_THREAD" \ --n_predict "$N_PREDICTS" \ diff --git a/examples/chat-persistent.sh b/examples/chat-persistent.sh index 22f5b83d3da06..d9cab9836482e 100755 --- a/examples/chat-persistent.sh +++ b/examples/chat-persistent.sh @@ -62,7 +62,7 @@ fi if [[ ! -e "$PROMPT_CACHE_FILE" ]]; then echo 'Prompt cache does not exist, building...' # Default batch_size to 64 here for better user feedback during initial prompt processing - ./main 2>>"$LOG" \ + ./llama-cli 2>>"$LOG" \ --batch_size 64 \ "${OPTS[@]}" \ --prompt-cache "$PROMPT_CACHE_FILE" \ @@ -109,13 +109,13 @@ while read -e line; do printf '%s: ' "$AI_NAME" >>"$CUR_PROMPT_FILE" - ./main 2>>"$LOG" "${OPTS[@]}" \ + ./llama-cli 2>>"$LOG" "${OPTS[@]}" \ --prompt-cache "$CUR_PROMPT_CACHE" \ --prompt-cache-all \ --file "$CUR_PROMPT_FILE" \ --reverse-prompt "${USER_NAME}:" \ --n_predict "$n_predict" | - skip_bytes 1 | # skip BOS token added by ./main + skip_bytes 1 | # skip BOS token added by ./llama-cli tee "$CUR_PROMPT_FILE.tmp" | # save prompt + generation to tmp file skip_bytes "$n_prompt_len_pre" # print generation @@ -133,7 +133,7 @@ while read -e line; do # TODO get both messages in one go if ! session_size_msg="$(tail -n30 "$LOG" | grep -oE "$SESSION_SIZE_MSG_PATTERN")" || ! sample_time_msg="$(tail -n10 "$LOG" | grep -oE "$SAMPLE_TIME_MSG_PATTERN")"; then - echo >&2 "Couldn't get number of tokens from ./main output!" + echo >&2 "Couldn't get number of tokens from ./llama-cli output!" exit 1 fi @@ -144,7 +144,7 @@ while read -e line; do fi # Update cache for next prompt in background, ideally during user input - ./main >>"$LOG_BG" 2>&1 "${OPTS[@]}" \ + ./llama-cli >>"$LOG_BG" 2>&1 "${OPTS[@]}" \ --prompt-cache "$NEXT_PROMPT_CACHE" \ --file "$NEXT_PROMPT_FILE" \ --n_predict 1 & diff --git a/examples/chat-vicuna.sh b/examples/chat-vicuna.sh index 8c7b7bef42784..ffdd200849503 100755 --- a/examples/chat-vicuna.sh +++ b/examples/chat-vicuna.sh @@ -30,7 +30,7 @@ sed -e "s/\[\[USER_NAME\]\]/$USER_NAME/g" \ $PROMPT_TEMPLATE > $PROMPT_FILE # shellcheck disable=SC2086 # Intended splitting of GEN_OPTIONS -./bin/main $GEN_OPTIONS \ +./bin/llama-cli $GEN_OPTIONS \ --model "$MODEL" \ --threads "$N_THREAD" \ --n_predict "$N_PREDICTS" \ diff --git a/examples/chat.sh b/examples/chat.sh index d567acecdff11..9f85d1e265d00 100755 --- a/examples/chat.sh +++ b/examples/chat.sh @@ -11,6 +11,6 @@ cd .. # # "--keep 48" is based on the contents of prompts/chat-with-bob.txt # -./main -m ./models/llama-7b/ggml-model-q4_0.gguf -c 512 -b 1024 -n 256 --keep 48 \ +./llama-cli -m ./models/llama-7b/ggml-model-q4_0.gguf -c 512 -b 1024 -n 256 --keep 48 \ --repeat_penalty 1.0 --color -i \ -r "User:" -f prompts/chat-with-bob.txt diff --git a/examples/convert-llama2c-to-ggml/CMakeLists.txt b/examples/convert-llama2c-to-ggml/CMakeLists.txt index e262d44f98496..a6790e617217e 100644 --- a/examples/convert-llama2c-to-ggml/CMakeLists.txt +++ b/examples/convert-llama2c-to-ggml/CMakeLists.txt @@ -1,4 +1,4 @@ -set(TARGET convert-llama2c-to-ggml) +set(TARGET llama-convert-llama2c-to-ggml) add_executable(${TARGET} convert-llama2c-to-ggml.cpp) install(TARGETS ${TARGET} RUNTIME) target_link_libraries(${TARGET} PRIVATE common llama ${CMAKE_THREAD_LIBS_INIT}) diff --git a/examples/convert-llama2c-to-ggml/README.md b/examples/convert-llama2c-to-ggml/README.md index 742dcf7a35b50..5774ac83c32c8 100644 --- a/examples/convert-llama2c-to-ggml/README.md +++ b/examples/convert-llama2c-to-ggml/README.md @@ -8,7 +8,7 @@ To convert the model first download the models from the [llama2.c](https://githu After successful compilation, following usage options are available: ``` -usage: ./convert-llama2c-to-ggml [options] +usage: ./llama-convert-llama2c-to-ggml [options] options: -h, --help show this help message and exit @@ -19,10 +19,10 @@ options: An example command using a model from [karpathy/tinyllamas](https://huggingface.co/karpathy/tinyllamas) is as follows: -`$ ./convert-llama2c-to-ggml --copy-vocab-from-model llama-2-7b-chat.gguf.q2_K.bin --llama2c-model stories42M.bin --llama2c-output-model stories42M.gguf.bin` +`$ ./llama-convert-llama2c-to-ggml --copy-vocab-from-model llama-2-7b-chat.gguf.q2_K.bin --llama2c-model stories42M.bin --llama2c-output-model stories42M.gguf.bin` Note: The vocabulary for `stories260K.bin` should be its own tokenizer `tok512.bin` found in [karpathy/tinyllamas/stories260K](https://huggingface.co/karpathy/tinyllamas/tree/main/stories260K). Now you can use the model with a command like: -`$ ./main -m stories42M.gguf.bin -p "One day, Lily met a Shoggoth" -n 500 -c 256` +`$ ./llama-cli -m stories42M.gguf.bin -p "One day, Lily met a Shoggoth" -n 500 -c 256` diff --git a/examples/embedding/CMakeLists.txt b/examples/embedding/CMakeLists.txt index 8ffc33868401f..8256e789ad33a 100644 --- a/examples/embedding/CMakeLists.txt +++ b/examples/embedding/CMakeLists.txt @@ -1,4 +1,4 @@ -set(TARGET embedding) +set(TARGET llama-embedding) add_executable(${TARGET} embedding.cpp) install(TARGETS ${TARGET} RUNTIME) target_link_libraries(${TARGET} PRIVATE common llama ${CMAKE_THREAD_LIBS_INIT}) diff --git a/examples/embedding/README.md b/examples/embedding/README.md index 6929454c5e549..2298ec3e7fcb3 100644 --- a/examples/embedding/README.md +++ b/examples/embedding/README.md @@ -9,13 +9,13 @@ To get started right away, run the following command, making sure to use the cor ### Unix-based systems (Linux, macOS, etc.): ```bash -./embedding -m ./path/to/model --log-disable -p "Hello World!" 2>/dev/null +./llama-embedding -m ./path/to/model --log-disable -p "Hello World!" 2>/dev/null ``` ### Windows: ```powershell -embedding.exe -m ./path/to/model --log-disable -p "Hello World!" 2>$null +llama-embedding.exe -m ./path/to/model --log-disable -p "Hello World!" 2>$null ``` The above command will output space-separated float values. diff --git a/examples/eval-callback/CMakeLists.txt b/examples/eval-callback/CMakeLists.txt index c56ba780b215f..a48753d38e16e 100644 --- a/examples/eval-callback/CMakeLists.txt +++ b/examples/eval-callback/CMakeLists.txt @@ -1,9 +1,9 @@ -set(TARGET eval-callback) +set(TARGET llama-eval-callback) add_executable(${TARGET} eval-callback.cpp) install(TARGETS ${TARGET} RUNTIME) target_link_libraries(${TARGET} PRIVATE common llama ${CMAKE_THREAD_LIBS_INIT}) target_compile_features(${TARGET} PRIVATE cxx_std_11) set(TEST_TARGET test-eval-callback) -add_test(NAME ${TEST_TARGET} COMMAND eval-callback --hf-repo ggml-org/models --hf-file tinyllamas/stories260K.gguf --model stories260K.gguf --prompt hello --seed 42 -ngl 0) +add_test(NAME ${TEST_TARGET} COMMAND llama-eval-callback --hf-repo ggml-org/models --hf-file tinyllamas/stories260K.gguf --model stories260K.gguf --prompt hello --seed 42 -ngl 0) set_property(TEST ${TEST_TARGET} PROPERTY LABELS eval-callback curl) diff --git a/examples/eval-callback/README.md b/examples/eval-callback/README.md index 66a37e8783a9b..63a57ad6b68e5 100644 --- a/examples/eval-callback/README.md +++ b/examples/eval-callback/README.md @@ -6,7 +6,7 @@ It simply prints to the console all operations and tensor data. Usage: ```shell -eval-callback \ +llama-eval-callback \ --hf-repo ggml-org/models \ --hf-file phi-2/ggml-model-q4_0.gguf \ --model phi-2-q4_0.gguf \ diff --git a/examples/export-lora/CMakeLists.txt b/examples/export-lora/CMakeLists.txt index cbbdaec67488d..1cef6e71694e2 100644 --- a/examples/export-lora/CMakeLists.txt +++ b/examples/export-lora/CMakeLists.txt @@ -1,4 +1,4 @@ -set(TARGET export-lora) +set(TARGET llama-export-lora) add_executable(${TARGET} export-lora.cpp) install(TARGETS ${TARGET} RUNTIME) target_link_libraries(${TARGET} PRIVATE common llama ${CMAKE_THREAD_LIBS_INIT}) diff --git a/examples/export-lora/README.md b/examples/export-lora/README.md index 0cf3e8e4549bb..1fb17feeca627 100644 --- a/examples/export-lora/README.md +++ b/examples/export-lora/README.md @@ -3,7 +3,7 @@ Apply LORA adapters to base model and export the resulting model. ``` -usage: export-lora [options] +usage: llama-export-lora [options] options: -h, --help show this help message and exit @@ -17,7 +17,7 @@ options: For example: ```bash -./bin/export-lora \ +./bin/llama-export-lora \ -m open-llama-3b-v2-q8_0.gguf \ -o open-llama-3b-v2-q8_0-english2tokipona-chat.gguf \ -l lora-open-llama-3b-v2-q8_0-english2tokipona-chat-LATEST.bin diff --git a/examples/finetune/CMakeLists.txt b/examples/finetune/CMakeLists.txt index 2b52d21cfb381..64afe6ddc647a 100644 --- a/examples/finetune/CMakeLists.txt +++ b/examples/finetune/CMakeLists.txt @@ -1,4 +1,4 @@ -set(TARGET finetune) +set(TARGET llama-finetune) add_executable(${TARGET} finetune.cpp) install(TARGETS ${TARGET} RUNTIME) target_link_libraries(${TARGET} PRIVATE common llama ${CMAKE_THREAD_LIBS_INIT}) diff --git a/examples/finetune/README.md b/examples/finetune/README.md index 2fafd505e5447..a6ae64983bc0a 100644 --- a/examples/finetune/README.md +++ b/examples/finetune/README.md @@ -7,7 +7,7 @@ Basic usage instructions: wget https://raw.githubusercontent.com/brunoklein99/deep-learning-notes/master/shakespeare.txt # finetune LORA adapter -./bin/finetune \ +./bin/llama-finetune \ --model-base open-llama-3b-v2-q8_0.gguf \ --checkpoint-in chk-lora-open-llama-3b-v2-q8_0-shakespeare-LATEST.gguf \ --checkpoint-out chk-lora-open-llama-3b-v2-q8_0-shakespeare-ITERATION.gguf \ @@ -18,7 +18,7 @@ wget https://raw.githubusercontent.com/brunoklein99/deep-learning-notes/master/s --use-checkpointing # predict -./bin/main -m open-llama-3b-v2-q8_0.gguf --lora lora-open-llama-3b-v2-q8_0-shakespeare-LATEST.bin +./bin/llama-cli -m open-llama-3b-v2-q8_0.gguf --lora lora-open-llama-3b-v2-q8_0-shakespeare-LATEST.bin ``` **Only llama based models are supported!** The output files will be saved every N iterations (config with `--save-every N`). @@ -38,14 +38,14 @@ After 10 more iterations: Checkpoint files (`--checkpoint-in FN`, `--checkpoint-out FN`) store the training process. When the input checkpoint file does not exist, it will begin finetuning a new randomly initialized adapter. llama.cpp compatible LORA adapters will be saved with filename specified by `--lora-out FN`. -These LORA adapters can then be used by `main` together with the base model, like in the 'predict' example command above. +These LORA adapters can then be used by `llama-cli` together with the base model, like in the 'predict' example command above. -In `main` you can also load multiple LORA adapters, which will then be mixed together. +In `llama-cli` you can also load multiple LORA adapters, which will then be mixed together. For example if you have two LORA adapters `lora-open-llama-3b-v2-q8_0-shakespeare-LATEST.bin` and `lora-open-llama-3b-v2-q8_0-bible-LATEST.bin`, you can mix them together like this: ```bash -./bin/main -m open-llama-3b-v2-q8_0.gguf \ +./bin/llama-cli -m open-llama-3b-v2-q8_0.gguf \ --lora lora-open-llama-3b-v2-q8_0-shakespeare-LATEST.bin \ --lora lora-open-llama-3b-v2-q8_0-bible-LATEST.bin ``` @@ -55,7 +55,7 @@ You can change how strong each LORA adapter is applied to the base model by usin For example to apply 40% of the 'shakespeare' LORA adapter, 80% of the 'bible' LORA adapter and 100% of yet another one: ```bash -./bin/main -m open-llama-3b-v2-q8_0.gguf \ +./bin/llama-cli -m open-llama-3b-v2-q8_0.gguf \ --lora-scaled lora-open-llama-3b-v2-q8_0-shakespeare-LATEST.bin 0.4 \ --lora-scaled lora-open-llama-3b-v2-q8_0-bible-LATEST.bin 0.8 \ --lora lora-open-llama-3b-v2-q8_0-yet-another-one-LATEST.bin diff --git a/examples/finetune/finetune.sh b/examples/finetune/finetune.sh index 079bfa1139d5b..d7f2165e5cb3a 100644 --- a/examples/finetune/finetune.sh +++ b/examples/finetune/finetune.sh @@ -2,7 +2,7 @@ cd `dirname $0` cd ../.. -EXE="./finetune" +EXE="./llama-finetune" if [[ ! $LLAMA_MODEL_DIR ]]; then LLAMA_MODEL_DIR="./models"; fi if [[ ! $LLAMA_TRAINING_DIR ]]; then LLAMA_TRAINING_DIR="."; fi diff --git a/examples/gbnf-validator/CMakeLists.txt b/examples/gbnf-validator/CMakeLists.txt index 166e3ad2ae7dd..4edd6ec7394c5 100644 --- a/examples/gbnf-validator/CMakeLists.txt +++ b/examples/gbnf-validator/CMakeLists.txt @@ -1,5 +1,5 @@ -set(TARGET gbnf-validator) +set(TARGET llama-gbnf-validator) add_executable(${TARGET} gbnf-validator.cpp) install(TARGETS ${TARGET} RUNTIME) -target_link_libraries(${TARGET} PRIVATE common grammar-parser llama ${CMAKE_THREAD_LIBS_INIT}) +target_link_libraries(${TARGET} PRIVATE common llama ${CMAKE_THREAD_LIBS_INIT}) target_compile_features(${TARGET} PRIVATE cxx_std_11) diff --git a/examples/gbnf-validator/gbnf-validator.cpp b/examples/gbnf-validator/gbnf-validator.cpp index 091069ffa699c..0406dc3398b8a 100644 --- a/examples/gbnf-validator/gbnf-validator.cpp +++ b/examples/gbnf-validator/gbnf-validator.cpp @@ -7,6 +7,8 @@ #include #include +#include +#include #include #include @@ -69,13 +71,14 @@ int main(int argc, char** argv) { return 1; } - fseek(grammar_file, 0, SEEK_END); - size_t grammar_size = ftell(grammar_file); - fseek(grammar_file, 0, SEEK_SET); - - std::string grammar_str(grammar_size, ' '); - fread(&grammar_str[0], 1, grammar_size, grammar_file); - fclose(grammar_file); + std::string grammar_str; + { + std::ifstream grammar_file(grammar_filename); + GGML_ASSERT(grammar_file.is_open() && "Failed to open grammar file"); + std::stringstream buffer; + buffer << grammar_file.rdbuf(); + grammar_str = buffer.str(); + } // Parse the GBNF grammar auto parsed_grammar = grammar_parser::parse(grammar_str.c_str()); @@ -100,20 +103,15 @@ int main(int argc, char** argv) { grammar_rules.size(), parsed_grammar.symbol_ids.at("root")); // Read the input file - FILE* input_file = fopen(input_filename.c_str(), "r"); - if (!input_file) { - fprintf(stdout, "Failed to open input file: %s\n", input_filename.c_str()); - return 1; + std::string input_str; + { + std::ifstream input_file(input_filename); + GGML_ASSERT(input_file.is_open() && "Failed to open input file"); + std::stringstream buffer; + buffer << input_file.rdbuf(); + input_str = buffer.str(); } - fseek(input_file, 0, SEEK_END); - size_t input_size = ftell(input_file); - fseek(input_file, 0, SEEK_SET); - - std::string input_str(input_size, ' '); - fread(&input_str[0], 1, input_size, input_file); - fclose(input_file); - // Validate the input string against the grammar size_t error_pos; std::string error_msg; diff --git a/examples/gguf-split/CMakeLists.txt b/examples/gguf-split/CMakeLists.txt index 828e624352c8d..f63887da7dfca 100644 --- a/examples/gguf-split/CMakeLists.txt +++ b/examples/gguf-split/CMakeLists.txt @@ -1,4 +1,4 @@ -set(TARGET gguf-split) +set(TARGET llama-gguf-split) add_executable(${TARGET} gguf-split.cpp) install(TARGETS ${TARGET} RUNTIME) target_link_libraries(${TARGET} PRIVATE common llama ${CMAKE_THREAD_LIBS_INIT}) diff --git a/examples/gguf-split/tests.sh b/examples/gguf-split/tests.sh index 3bc0fa47110e3..d5a92d6051063 100755 --- a/examples/gguf-split/tests.sh +++ b/examples/gguf-split/tests.sh @@ -18,8 +18,8 @@ fi set -x -SPLIT=$1/gguf-split -MAIN=$1/main +SPLIT=$1/llama-gguf-split +MAIN=$1/llama-cli WORK_PATH=$TMP_DIR/gguf-split ROOT_DIR=$(realpath $(dirname $0)/../../) diff --git a/examples/gguf/CMakeLists.txt b/examples/gguf/CMakeLists.txt index 6481f087bc997..a9569b411956b 100644 --- a/examples/gguf/CMakeLists.txt +++ b/examples/gguf/CMakeLists.txt @@ -1,4 +1,4 @@ -set(TARGET gguf) +set(TARGET llama-gguf) add_executable(${TARGET} gguf.cpp) install(TARGETS ${TARGET} RUNTIME) target_link_libraries(${TARGET} PRIVATE ggml ${CMAKE_THREAD_LIBS_INIT}) diff --git a/examples/gritlm/CMakeLists.txt b/examples/gritlm/CMakeLists.txt index ac4a5ae7937ea..86dfddca346fe 100644 --- a/examples/gritlm/CMakeLists.txt +++ b/examples/gritlm/CMakeLists.txt @@ -1,4 +1,4 @@ -set(TARGET gritlm) +set(TARGET llama-gritlm) add_executable(${TARGET} gritlm.cpp) install(TARGETS ${TARGET} RUNTIME) target_link_libraries(${TARGET} PRIVATE common llama ${CMAKE_THREAD_LIBS_INIT}) diff --git a/examples/gritlm/README.md b/examples/gritlm/README.md index a3a3c1389ca27..786ba57363def 100644 --- a/examples/gritlm/README.md +++ b/examples/gritlm/README.md @@ -26,7 +26,7 @@ $ scripts/hf.sh --repo cohesionet/GritLM-7B_gguf --file gritlm-7b_q4_1.gguf --ou Run the example using the downloaded model: ```console -$ ./gritlm -m models/gritlm-7b_q4_1.gguf +$ ./llama-gritlm -m models/gritlm-7b_q4_1.gguf Cosine similarity between "Bitcoin: A Peer-to-Peer Electronic Cash System" and "A purely peer-to-peer version of electronic cash w" is: 0.605 Cosine similarity between "Bitcoin: A Peer-to-Peer Electronic Cash System" and "All text-based language problems can be reduced to" is: 0.103 diff --git a/examples/imatrix/CMakeLists.txt b/examples/imatrix/CMakeLists.txt index d688a16209049..d4c8265bdb9d2 100644 --- a/examples/imatrix/CMakeLists.txt +++ b/examples/imatrix/CMakeLists.txt @@ -1,4 +1,4 @@ -set(TARGET imatrix) +set(TARGET llama-imatrix) add_executable(${TARGET} imatrix.cpp) install(TARGETS ${TARGET} RUNTIME) target_link_libraries(${TARGET} PRIVATE common llama ${CMAKE_THREAD_LIBS_INIT}) diff --git a/examples/imatrix/README.md b/examples/imatrix/README.md index 866ca9f5682ac..38b36ee5a26fd 100644 --- a/examples/imatrix/README.md +++ b/examples/imatrix/README.md @@ -6,7 +6,7 @@ More information is available here: https://github.com/ggerganov/llama.cpp/pull/ ## Usage ``` -./imatrix \ +./llama-imatrix \ -m model.gguf -f some-text.txt [-o imatrix.dat] [--process-output] [--verbosity 1] \ [--no-ppl] [--chunk 123] [--output-frequency 10] [--save-frequency 0] \ [--in-file imatrix-prev-0.dat --in-file imatrix-prev-1.dat ...] @@ -28,8 +28,8 @@ For faster computation, make sure to use GPU offloading via the `-ngl` argument LLAMA_CUDA=1 make -j # generate importance matrix (imatrix.dat) -./imatrix -m ggml-model-f16.gguf -f train-data.txt -ngl 99 +./llama-imatrix -m ggml-model-f16.gguf -f train-data.txt -ngl 99 # use the imatrix to perform a Q4_K_M quantization -./quantize --imatrix imatrix.dat ggml-model-f16.gguf ./ggml-model-q4_k_m.gguf q4_k_m +./llama-quantize --imatrix imatrix.dat ggml-model-f16.gguf ./ggml-model-q4_k_m.gguf q4_k_m ``` diff --git a/examples/infill/CMakeLists.txt b/examples/infill/CMakeLists.txt index e4e8028da09da..9b1aa3b63c920 100644 --- a/examples/infill/CMakeLists.txt +++ b/examples/infill/CMakeLists.txt @@ -1,4 +1,4 @@ -set(TARGET infill) +set(TARGET llama-infill) add_executable(${TARGET} infill.cpp) install(TARGETS ${TARGET} RUNTIME) target_link_libraries(${TARGET} PRIVATE common llama ${CMAKE_THREAD_LIBS_INIT}) diff --git a/examples/infill/README.md b/examples/infill/README.md index 6b076c8390abf..74f42d2fc2696 100644 --- a/examples/infill/README.md +++ b/examples/infill/README.md @@ -42,5 +42,5 @@ scripts/hf.sh --repo TheBloke/CodeLlama-13B-GGUF --file codellama-13b.Q5_K_S.ggu ``` ```bash -./infill -t 10 -ngl 0 -m models/codellama-13b.Q5_K_S.gguf -c 4096 --temp 0.7 --repeat_penalty 1.1 -n 20 --in-prefix "def helloworld():\n print(\"hell" --in-suffix "\n print(\"goodbye world\")\n " +./llama-infill -t 10 -ngl 0 -m models/codellama-13b.Q5_K_S.gguf -c 4096 --temp 0.7 --repeat_penalty 1.1 -n 20 --in-prefix "def helloworld():\n print(\"hell" --in-suffix "\n print(\"goodbye world\")\n " ``` diff --git a/examples/jeopardy/jeopardy.sh b/examples/jeopardy/jeopardy.sh index 9bdbc755c13a7..07bcb3b8d78ac 100755 --- a/examples/jeopardy/jeopardy.sh +++ b/examples/jeopardy/jeopardy.sh @@ -21,7 +21,7 @@ counter=1 echo 'Running' while IFS= read -r question do - exe_cmd="./main -p "\"$prefix$introduction$nl$prefix$question\"" "$opts" -m ""\"$MODEL\""" >> ""\"$output_file\"" + exe_cmd="./llama-cli -p "\"$prefix$introduction$nl$prefix$question\"" "$opts" -m ""\"$MODEL\""" >> ""\"$output_file\"" echo $counter echo "Current Question: $question" eval "$exe_cmd" diff --git a/examples/json-schema-pydantic-example.py b/examples/json-schema-pydantic-example.py index 69ebfd4093824..cc64e572bac07 100644 --- a/examples/json-schema-pydantic-example.py +++ b/examples/json-schema-pydantic-example.py @@ -1,5 +1,5 @@ # Usage: -#! ./server -m some-model.gguf & +#! ./llama-server -m some-model.gguf & #! pip install pydantic #! python json-schema-pydantic-example.py diff --git a/examples/json_schema_to_grammar.py b/examples/json_schema_to_grammar.py index ab19e20df658e..b588497b99f90 100755 --- a/examples/json_schema_to_grammar.py +++ b/examples/json_schema_to_grammar.py @@ -523,7 +523,7 @@ def format_grammar(self): def main(args_in = None): parser = argparse.ArgumentParser( description=''' - Generates a grammar (suitable for use in ./main) that produces JSON conforming to a + Generates a grammar (suitable for use in ./llama-cli) that produces JSON conforming to a given JSON schema. Only a subset of JSON schema features are supported; more may be added in the future. ''', diff --git a/examples/llama-bench/README.md b/examples/llama-bench/README.md index fd95b35f46595..52b0e74d3dbf9 100644 --- a/examples/llama-bench/README.md +++ b/examples/llama-bench/README.md @@ -1,4 +1,4 @@ -# llama.cpp/example/llama-bench +# llama.cpp/examples/llama-bench Performance testing tool for llama.cpp. diff --git a/examples/llava/CMakeLists.txt b/examples/llava/CMakeLists.txt index 2985caff8379a..e9fa73acb097b 100644 --- a/examples/llava/CMakeLists.txt +++ b/examples/llava/CMakeLists.txt @@ -30,8 +30,9 @@ if(TARGET BUILD_INFO) add_dependencies(llava BUILD_INFO) endif() -set(TARGET llava-cli) -add_executable(llava-cli llava-cli.cpp) -install(TARGETS llava-cli RUNTIME) -target_link_libraries(llava-cli PRIVATE common llava ${CMAKE_THREAD_LIBS_INIT}) -target_compile_features(llava PRIVATE cxx_std_11) +set(TARGET llama-llava-cli) +add_executable(${TARGET} llava-cli.cpp) +set_target_properties(${TARGET} PROPERTIES OUTPUT_NAME llama-llava-cli) +install(TARGETS ${TARGET} RUNTIME) +target_link_libraries(${TARGET} PRIVATE common llava ${CMAKE_THREAD_LIBS_INIT}) +target_compile_features(${TARGET} PRIVATE cxx_std_11) diff --git a/examples/llava/MobileVLM-README.md b/examples/llava/MobileVLM-README.md index 74f021dec5e17..05a8207e67b88 100644 --- a/examples/llava/MobileVLM-README.md +++ b/examples/llava/MobileVLM-README.md @@ -9,12 +9,12 @@ The implementation is based on llava, and is compatible with llava and mobileVLM Notice: The overall process of model inference for both **MobileVLM** and **MobileVLM_V2** models is the same, but the process of model conversion is a little different. Therefore, using **MobileVLM-1.7B** as an example, the different conversion step will be shown. ## Usage -Build with cmake or run `make llava-cli` to build it. +Build with cmake or run `make llama-llava-cli` to build it. -After building, run: `./llava-cli` to see the usage. For example: +After building, run: `./llama-llava-cli` to see the usage. For example: ```sh -./llava-cli -m MobileVLM-1.7B/ggml-model-q4_k.gguf \ +./llama-llava-cli -m MobileVLM-1.7B/ggml-model-q4_k.gguf \ --mmproj MobileVLM-1.7B/mmproj-model-f16.gguf \ --image path/to/an/image.jpg \ -p "A chat between a curious user and an artificial intelligence assistant. The assistant gives helpful, detailed, and polite answers to the user's questions. USER: \nWho is the author of this book? Answer the question using a single word or phrase. ASSISTANT:" @@ -62,7 +62,7 @@ python ./examples/convert-legacy-llama.py path/to/MobileVLM-1.7B 5. Use `quantize` to convert LLaMA part's DataType from `fp16` to `q4_k` ```sh -./quantize path/to/MobileVLM-1.7B/ggml-model-f16.gguf path/to/MobileVLM-1.7B/ggml-model-q4_k.gguf q4_k_s +./llama-quantize path/to/MobileVLM-1.7B/ggml-model-f16.gguf path/to/MobileVLM-1.7B/ggml-model-q4_k.gguf q4_k_s ``` Now both the LLaMA part and the image encoder is in the `MobileVLM-1.7B` directory. @@ -82,7 +82,7 @@ refer to `android/adb_run.sh`, modify resources' `name` and `path` ### case 1 **input** ```sh -/data/local/tmp/llava-cli \ +/data/local/tmp/llama-llava-cli \ -m /data/local/tmp/ggml-model-q4_k.gguf \ --mmproj /data/local/tmp/mmproj-model-f16.gguf \ -t 4 \ @@ -102,7 +102,7 @@ llama_print_timings: total time = 34731.93 ms ### case 2 **input** ```sh -/data/local/tmp/llava-cli \ +/data/local/tmp/llama-llava-cli \ -m /data/local/tmp/ggml-model-q4_k.gguf \ --mmproj /data/local/tmp/mmproj-model-f16.gguf \ -t 4 \ @@ -126,7 +126,7 @@ llama_print_timings: total time = 34570.79 ms #### llava-cli release-b2005 **input** ```sh -/data/local/tmp/llava-cli \ +/data/local/tmp/llama-llava-cli \ -m /data/local/tmp/ggml-model-q4_k.gguf \ --mmproj /data/local/tmp/mmproj-model-f16.gguf \ -t 4 \ @@ -200,7 +200,7 @@ make LLAMA_CUDA=1 CUDA_DOCKER_ARCH=sm_87 LLAMA_CUDA_F16=1 -j 32 ### case 1 **input** ```sh -./llava-cli \ +./llama-llava-cli \ -m /data/local/tmp/ggml-model-q4_k.gguf \ --mmproj /data/local/tmp/mmproj-model-f16.gguf \ --image /data/local/tmp/demo.jpeg \ @@ -224,7 +224,7 @@ llama_print_timings: total time = 1352.63 ms / 252 tokens ### case 2 **input** ```sh -./llava-cli \ +./llama-llava-cli \ -m /data/local/tmp/ggml-model-q4_k.gguf \ --mmproj /data/local/tmp/mmproj-model-f16.gguf \ -p "A chat between a curious user and an artificial intelligence assistant. The assistant gives helpful, detailed, and polite answers to the user's questions. USER: \nWhat is in the image? ASSISTANT:" \ diff --git a/examples/llava/README.md b/examples/llava/README.md index 8d1ae5270e458..f4554de676e4c 100644 --- a/examples/llava/README.md +++ b/examples/llava/README.md @@ -11,12 +11,12 @@ For llava-1.6 a variety of prepared gguf models are available as well [7b-34b](h After API is confirmed, more models will be supported / uploaded. ## Usage -Build with cmake or run `make llava-cli` to build it. +Build with cmake or run `make llama-llava-cli` to build it. -After building, run: `./llava-cli` to see the usage. For example: +After building, run: `./llama-llava-cli` to see the usage. For example: ```sh -./llava-cli -m ../llava-v1.5-7b/ggml-model-f16.gguf --mmproj ../llava-v1.5-7b/mmproj-model-f16.gguf --image path/to/an/image.jpg +./llama-llava-cli -m ../llava-v1.5-7b/ggml-model-f16.gguf --mmproj ../llava-v1.5-7b/mmproj-model-f16.gguf --image path/to/an/image.jpg ``` **note**: A lower temperature like 0.1 is recommended for better quality. add `--temp 0.1` to the command to do so. @@ -95,9 +95,9 @@ python ./examples/llava/convert-image-encoder-to-gguf.py -m vit --llava-projecto python ./examples/convert-legacy-llama.py ../llava-v1.6-vicuna-7b/ --skip-unknown ``` -7) And finally we can run the llava-cli using the 1.6 model version: +7) And finally we can run the llava cli using the 1.6 model version: ```console -./llava-cli -m ../llava-v1.6-vicuna-7b/ggml-model-f16.gguf --mmproj vit/mmproj-model-f16.gguf --image some-image.jpg -c 4096 +./llama-llava-cli -m ../llava-v1.6-vicuna-7b/ggml-model-f16.gguf --mmproj vit/mmproj-model-f16.gguf --image some-image.jpg -c 4096 ``` **note** llava-1.6 needs more context than llava-1.5, at least 3000 is needed (just run it at -c 4096) diff --git a/examples/llava/android/adb_run.sh b/examples/llava/android/adb_run.sh index f73623ae3b129..45ccf8d70d863 100755 --- a/examples/llava/android/adb_run.sh +++ b/examples/llava/android/adb_run.sh @@ -10,7 +10,7 @@ prompt="A chat between a curious user and an artificial intelligence assistant. # prompt="A chat between a curious user and an artificial intelligence assistant. The assistant gives helpful, detailed, and polite answers to the user's questions. USER: \nWhat is in the image? ASSISTANT:" program_dir="build_64/bin" -binName="llava-cli" +binName="llama-llava-cli" n_threads=4 diff --git a/examples/lookahead/CMakeLists.txt b/examples/lookahead/CMakeLists.txt index 8827e3f11ecd6..f0ae5cd89244c 100644 --- a/examples/lookahead/CMakeLists.txt +++ b/examples/lookahead/CMakeLists.txt @@ -1,4 +1,4 @@ -set(TARGET lookahead) +set(TARGET llama-lookahead) add_executable(${TARGET} lookahead.cpp) install(TARGETS ${TARGET} RUNTIME) target_link_libraries(${TARGET} PRIVATE common llama ${CMAKE_THREAD_LIBS_INIT}) diff --git a/examples/lookup/CMakeLists.txt b/examples/lookup/CMakeLists.txt index b91633f63e4ee..ef19fe25e31a3 100644 --- a/examples/lookup/CMakeLists.txt +++ b/examples/lookup/CMakeLists.txt @@ -1,22 +1,22 @@ -set(TARGET lookup) +set(TARGET llama-lookup) add_executable(${TARGET} lookup.cpp) install(TARGETS ${TARGET} RUNTIME) target_link_libraries(${TARGET} PRIVATE common llama ${CMAKE_THREAD_LIBS_INIT}) target_compile_features(${TARGET} PRIVATE cxx_std_11) -set(TARGET lookup-create) +set(TARGET llama-lookup-create) add_executable(${TARGET} lookup-create.cpp) install(TARGETS ${TARGET} RUNTIME) target_link_libraries(${TARGET} PRIVATE common llama ${CMAKE_THREAD_LIBS_INIT}) target_compile_features(${TARGET} PRIVATE cxx_std_11) -set(TARGET lookup-merge) +set(TARGET llama-lookup-merge) add_executable(${TARGET} lookup-merge.cpp) install(TARGETS ${TARGET} RUNTIME) target_link_libraries(${TARGET} PRIVATE common llama ${CMAKE_THREAD_LIBS_INIT}) target_compile_features(${TARGET} PRIVATE cxx_std_11) -set(TARGET lookup-stats) +set(TARGET llama-lookup-stats) add_executable(${TARGET} lookup-stats.cpp) install(TARGETS ${TARGET} RUNTIME) target_link_libraries(${TARGET} PRIVATE common llama ${CMAKE_THREAD_LIBS_INIT}) diff --git a/examples/lookup/lookup-merge.cpp b/examples/lookup/lookup-merge.cpp index 07c93eb8d057b..81e2b04369b90 100644 --- a/examples/lookup/lookup-merge.cpp +++ b/examples/lookup/lookup-merge.cpp @@ -11,14 +11,14 @@ #include #include -static void print_usage() { +static void print_usage(char* argv0) { fprintf(stderr, "Merges multiple lookup cache files into a single one.\n"); - fprintf(stderr, "Usage: lookup-merge [--help] lookup_part_1.bin lookup_part_2.bin ... lookup_merged.bin\n"); + fprintf(stderr, "Usage: %s [--help] lookup_part_1.bin lookup_part_2.bin ... lookup_merged.bin\n", argv0); } int main(int argc, char ** argv){ if (argc < 3) { - print_usage(); + print_usage(argv[0]); exit(1); } @@ -27,7 +27,7 @@ int main(int argc, char ** argv){ for (int i = 0; i < argc-1; ++i) { args[i] = argv[i+1]; if (args[i] == "-h" || args[i] == "--help") { - print_usage(); + print_usage(argv[0]); exit(0); } } diff --git a/examples/main-cmake-pkg/CMakeLists.txt b/examples/main-cmake-pkg/CMakeLists.txt index deb77d588ea9f..a97ded3653f0c 100644 --- a/examples/main-cmake-pkg/CMakeLists.txt +++ b/examples/main-cmake-pkg/CMakeLists.txt @@ -1,12 +1,12 @@ cmake_minimum_required(VERSION 3.12) -project("main-cmake-pkg" C CXX) -set(TARGET main-cmake-pkg) +project("llama-cli-cmake-pkg" C CXX) +set(TARGET llama-cli-cmake-pkg) find_package(Llama 0.0.1 REQUIRED) # Bake common functionality in with target. Because applications # using the relocatable Llama package should be outside of the -# source tree, main-cmake-pkg pretends the dependencies are built-in. +# source tree, llama-cli-cmake-pkg pretends the dependencies are built-in. set(_common_path "${CMAKE_CURRENT_LIST_DIR}/../../common") add_library(common OBJECT) file(GLOB _common_files @@ -15,7 +15,7 @@ file(GLOB _common_files ) target_sources(common PRIVATE ${_common_files}) -# If the common project was part of "main-cmake-pkg" the transient +# If the common project was part of "llama-cli-cmake-pkg" the transient # defines would automatically be attached. Because the common func- # tionality is separate, but dependent upon the defines, it must be # explicitly extracted from the "llama" target. diff --git a/examples/main-cmake-pkg/README.md b/examples/main-cmake-pkg/README.md index a88e92f23981f..08d83dd08636a 100644 --- a/examples/main-cmake-pkg/README.md +++ b/examples/main-cmake-pkg/README.md @@ -1,6 +1,6 @@ # llama.cpp/example/main-cmake-pkg -This program builds the [main](../main) application using a relocatable CMake package. It serves as an example of using the `find_package()` CMake command to conveniently include [llama.cpp](https://github.com/ggerganov/llama.cpp) in projects which live outside of the source tree. +This program builds [llama-cli](../main) using a relocatable CMake package. It serves as an example of using the `find_package()` CMake command to conveniently include [llama.cpp](https://github.com/ggerganov/llama.cpp) in projects which live outside of the source tree. ## Building @@ -20,7 +20,7 @@ cmake --build build --config Release cmake --install build --prefix C:/LlamaCPP ``` -### Build main-cmake-pkg +### Build llama-cli-cmake-pkg ```cmd diff --git a/examples/main/CMakeLists.txt b/examples/main/CMakeLists.txt index d532980b76da8..5f6efaa9aa94b 100644 --- a/examples/main/CMakeLists.txt +++ b/examples/main/CMakeLists.txt @@ -1,4 +1,4 @@ -set(TARGET main) +set(TARGET llama-cli) add_executable(${TARGET} main.cpp) install(TARGETS ${TARGET} RUNTIME) target_link_libraries(${TARGET} PRIVATE common llama ${CMAKE_THREAD_LIBS_INIT}) diff --git a/examples/main/README.md b/examples/main/README.md index cdc002f151d4a..61e4a42f7e02c 100644 --- a/examples/main/README.md +++ b/examples/main/README.md @@ -1,4 +1,4 @@ -# llama.cpp/example/main +# llama.cpp/examples/main This example program allows you to use various LLaMA language models in an easy and efficient way. It is specifically designed to work with the [llama.cpp](https://github.com/ggerganov/llama.cpp) project, which provides a plain C/C++ implementation with optional 4-bit quantization support for faster, lower memory inference, and is optimized for desktop CPUs. This program can be used to perform various inference tasks with LLaMA models, including generating text based on user-provided prompts and chat-like interactions with reverse prompts. @@ -20,13 +20,13 @@ To get started right away, run the following command, making sure to use the cor #### Unix-based systems (Linux, macOS, etc.): ```bash -./main -m models/7B/ggml-model.bin --prompt "Once upon a time" +./llama-cli -m models/7B/ggml-model.bin --prompt "Once upon a time" ``` #### Windows: ```powershell -main.exe -m models\7B\ggml-model.bin --prompt "Once upon a time" +llama-cli.exe -m models\7B\ggml-model.bin --prompt "Once upon a time" ``` For an interactive experience, try this command: @@ -34,7 +34,7 @@ For an interactive experience, try this command: #### Unix-based systems (Linux, macOS, etc.): ```bash -./main -m models/7B/ggml-model.bin -n -1 --color -r "User:" --in-prefix " " -i -p \ +./llama-cli -m models/7B/ggml-model.bin -n -1 --color -r "User:" --in-prefix " " -i -p \ 'User: Hi AI: Hello. I am an AI chatbot. Would you like to talk? User: Sure! @@ -45,7 +45,7 @@ User:' #### Windows: ```powershell -main.exe -m models\7B\ggml-model.bin -n -1 --color -r "User:" --in-prefix " " -i -e -p "User: Hi\nAI: Hello. I am an AI chatbot. Would you like to talk?\nUser: Sure!\nAI: What would you like to talk about?\nUser:" +llama-cli.exe -m models\7B\ggml-model.bin -n -1 --color -r "User:" --in-prefix " " -i -e -p "User: Hi\nAI: Hello. I am an AI chatbot. Would you like to talk?\nUser: Sure!\nAI: What would you like to talk about?\nUser:" ``` The following command generates "infinite" text from a starting prompt (you can use `Ctrl-C` to stop it): @@ -53,18 +53,18 @@ The following command generates "infinite" text from a starting prompt (you can #### Unix-based systems (Linux, macOS, etc.): ```bash -./main -m models/7B/ggml-model.bin --ignore-eos -n -1 +./llama-cli -m models/7B/ggml-model.bin --ignore-eos -n -1 ``` #### Windows: ```powershell -main.exe -m models\7B\ggml-model.bin --ignore-eos -n -1 +llama-cli.exe -m models\7B\ggml-model.bin --ignore-eos -n -1 ``` ## Common Options -In this section, we cover the most commonly used options for running the `main` program with the LLaMA models: +In this section, we cover the most commonly used options for running the `llama-cli` program with the LLaMA models: - `-m FNAME, --model FNAME`: Specify the path to the LLaMA model file (e.g., `models/7B/ggml-model.gguf`; inferred from `--model-url` if set). - `-mu MODEL_URL --model-url MODEL_URL`: Specify a remote http url to download the file (e.g https://huggingface.co/ggml-org/models/resolve/main/phi-2/ggml-model-q4_0.gguf). @@ -74,7 +74,7 @@ In this section, we cover the most commonly used options for running the `main` ## Input Prompts -The `main` program provides several ways to interact with the LLaMA models using input prompts: +The `llama-cli` program provides several ways to interact with the LLaMA models using input prompts: - `--prompt PROMPT`: Provide a prompt directly as a command-line option. - `--file FNAME`: Provide a file containing a prompt or multiple prompts. @@ -82,7 +82,7 @@ The `main` program provides several ways to interact with the LLaMA models using ## Interaction -The `main` program offers a seamless way to interact with LLaMA models, allowing users to engage in real-time conversations or provide instructions for specific tasks. The interactive mode can be triggered using various options, including `--interactive` and `--interactive-first`. +The `llama-cli` program offers a seamless way to interact with LLaMA models, allowing users to engage in real-time conversations or provide instructions for specific tasks. The interactive mode can be triggered using various options, including `--interactive` and `--interactive-first`. In interactive mode, users can participate in text generation by injecting their input during the process. Users can press `Ctrl+C` at any time to interject and type their input, followed by pressing `Return` to submit it to the LLaMA model. To submit additional lines without finalizing input, users can end the current line with a backslash (`\`) and continue typing. @@ -107,7 +107,7 @@ To overcome this limitation, you can use the `--in-prefix` flag to add a space o The `--in-prefix` flag is used to add a prefix to your input, primarily, this is used to insert a space after the reverse prompt. Here's an example of how to use the `--in-prefix` flag in conjunction with the `--reverse-prompt` flag: ```sh -./main -r "User:" --in-prefix " " +./llama-cli -r "User:" --in-prefix " " ``` ### In-Suffix @@ -115,7 +115,7 @@ The `--in-prefix` flag is used to add a prefix to your input, primarily, this is The `--in-suffix` flag is used to add a suffix after your input. This is useful for adding an "Assistant:" prompt after the user's input. It's added after the new-line character (`\n`) that's automatically added to the end of the user's input. Here's an example of how to use the `--in-suffix` flag in conjunction with the `--reverse-prompt` flag: ```sh -./main -r "User:" --in-prefix " " --in-suffix "Assistant:" +./llama-cli -r "User:" --in-prefix " " --in-suffix "Assistant:" ``` ## Context Management diff --git a/examples/parallel/CMakeLists.txt b/examples/parallel/CMakeLists.txt index 319535a6e9054..c13557bac2bac 100644 --- a/examples/parallel/CMakeLists.txt +++ b/examples/parallel/CMakeLists.txt @@ -1,4 +1,4 @@ -set(TARGET parallel) +set(TARGET llama-parallel) add_executable(${TARGET} parallel.cpp) install(TARGETS ${TARGET} RUNTIME) target_link_libraries(${TARGET} PRIVATE common llama ${CMAKE_THREAD_LIBS_INIT}) diff --git a/examples/passkey/CMakeLists.txt b/examples/passkey/CMakeLists.txt index 3161bf3ef9a45..dc467a5d3e411 100644 --- a/examples/passkey/CMakeLists.txt +++ b/examples/passkey/CMakeLists.txt @@ -1,4 +1,4 @@ -set(TARGET passkey) +set(TARGET llama-passkey) add_executable(${TARGET} passkey.cpp) install(TARGETS ${TARGET} RUNTIME) target_link_libraries(${TARGET} PRIVATE common llama ${CMAKE_THREAD_LIBS_INIT}) diff --git a/examples/passkey/README.md b/examples/passkey/README.md index 9e7a119ba3e0b..a48a6283a0b27 100644 --- a/examples/passkey/README.md +++ b/examples/passkey/README.md @@ -8,5 +8,5 @@ See the following PRs for more info: ### Usage ```bash -make -j && ./passkey -m ./models/llama-7b-v2/ggml-model-f16.gguf --junk 250 +make -j && ./llama-passkey -m ./models/llama-7b-v2/ggml-model-f16.gguf --junk 250 ``` diff --git a/examples/perplexity/CMakeLists.txt b/examples/perplexity/CMakeLists.txt index 3c76d3221416b..be0f2fd029e67 100644 --- a/examples/perplexity/CMakeLists.txt +++ b/examples/perplexity/CMakeLists.txt @@ -1,4 +1,4 @@ -set(TARGET perplexity) +set(TARGET llama-perplexity) add_executable(${TARGET} perplexity.cpp) install(TARGETS ${TARGET} RUNTIME) target_link_libraries(${TARGET} PRIVATE common llama ${CMAKE_THREAD_LIBS_INIT}) diff --git a/examples/perplexity/perplexity.cpp b/examples/perplexity/perplexity.cpp index 0bd78c21a86a1..efde8dfdff47b 100644 --- a/examples/perplexity/perplexity.cpp +++ b/examples/perplexity/perplexity.cpp @@ -476,7 +476,7 @@ static results_perplexity perplexity(llama_context * ctx, const gpt_params & par } // Download: https://huggingface.co/datasets/ggml-org/ci/resolve/main/wikitext-2-raw-v1.zip - // Run `./perplexity -m models/7B/ggml-model-q4_0.bin -f wiki.test.raw` + // Run `./llama-perplexity -m models/7B/ggml-model-q4_0.bin -f wiki.test.raw` // Output: `perplexity: 13.5106 [114/114]` // BOS tokens will be added for each chunk before eval diff --git a/examples/quantize-stats/CMakeLists.txt b/examples/quantize-stats/CMakeLists.txt index e31cf5e3809c1..bb986a716883d 100644 --- a/examples/quantize-stats/CMakeLists.txt +++ b/examples/quantize-stats/CMakeLists.txt @@ -1,4 +1,4 @@ -set(TARGET quantize-stats) +set(TARGET llama-quantize-stats) add_executable(${TARGET} quantize-stats.cpp) install(TARGETS ${TARGET} RUNTIME) target_link_libraries(${TARGET} PRIVATE llama build_info ${CMAKE_THREAD_LIBS_INIT}) diff --git a/examples/quantize/CMakeLists.txt b/examples/quantize/CMakeLists.txt index 6b977fde86ab2..3ee4eb9719fc4 100644 --- a/examples/quantize/CMakeLists.txt +++ b/examples/quantize/CMakeLists.txt @@ -1,4 +1,4 @@ -set(TARGET quantize) +set(TARGET llama-quantize) add_executable(${TARGET} quantize.cpp) install(TARGETS ${TARGET} RUNTIME) target_link_libraries(${TARGET} PRIVATE llama common ${CMAKE_THREAD_LIBS_INIT}) diff --git a/examples/quantize/tests.sh b/examples/quantize/tests.sh index 38e28ffc365ee..24bc970e8632b 100644 --- a/examples/quantize/tests.sh +++ b/examples/quantize/tests.sh @@ -18,9 +18,9 @@ fi set -x -SPLIT=$1/gguf-split -QUANTIZE=$1/quantize -MAIN=$1/main +SPLIT=$1/llama-gguf-split +QUANTIZE=$1/llama-quantize +MAIN=$1/llama-cli WORK_PATH=$TMP_DIR/quantize ROOT_DIR=$(realpath $(dirname $0)/../../) diff --git a/examples/reason-act.sh b/examples/reason-act.sh index 046c48db584bc..06d592799cf12 100755 --- a/examples/reason-act.sh +++ b/examples/reason-act.sh @@ -8,7 +8,7 @@ if [ "$1" == "-m" ]; then MODEL="-m $2 " fi -./main $MODEL --color \ +./llama-cli $MODEL --color \ -f ./prompts/reason-act.txt \ -i --interactive-first \ --top_k 10000 --temp 0.2 --repeat_penalty 1 -t 7 -c 2048 \ diff --git a/examples/retrieval/CMakeLists.txt b/examples/retrieval/CMakeLists.txt index eaabae08d5583..66610f3111405 100644 --- a/examples/retrieval/CMakeLists.txt +++ b/examples/retrieval/CMakeLists.txt @@ -1,4 +1,4 @@ -set(TARGET retrieval) +set(TARGET llama-retrieval) add_executable(${TARGET} retrieval.cpp) install(TARGETS ${TARGET} RUNTIME) target_link_libraries(${TARGET} PRIVATE common llama ${CMAKE_THREAD_LIBS_INIT}) diff --git a/examples/retrieval/README.md b/examples/retrieval/README.md index 2b2595c468046..bc5f22e2ff156 100644 --- a/examples/retrieval/README.md +++ b/examples/retrieval/README.md @@ -15,7 +15,7 @@ https://github.com/ggerganov/llama.cpp/pull/6193 `retrieval` example can be tested as follows: ```bash -make -j && ./retrieval --model ./models/bge-base-en-v1.5-f16.gguf --top-k 3 --context-file README.md --context-file License --chunk-size 100 --chunk-separator . +make -j && ./llama-retrieval --model ./models/bge-base-en-v1.5-f16.gguf --top-k 3 --context-file README.md --context-file License --chunk-size 100 --chunk-separator . ``` This chunks and embeds all given files and starts a loop requesting query inputs: diff --git a/examples/rpc/README.md b/examples/rpc/README.md index eeec71a8ee0c2..86544e3fea2c3 100644 --- a/examples/rpc/README.md +++ b/examples/rpc/README.md @@ -70,5 +70,5 @@ cmake --build . --config Release Finally, use the `--rpc` option to specify the host and port of each `rpc-server`: ```bash -$ bin/main -m ../models/tinyllama-1b/ggml-model-f16.gguf -p "Hello, my name is" --repeat-penalty 1.0 -n 64 --rpc 192.168.88.10:50052,192.168.88.11:50052 -ngl 99 +$ bin/llama-cli -m ../models/tinyllama-1b/ggml-model-f16.gguf -p "Hello, my name is" --repeat-penalty 1.0 -n 64 --rpc 192.168.88.10:50052,192.168.88.11:50052 -ngl 99 ``` diff --git a/examples/save-load-state/CMakeLists.txt b/examples/save-load-state/CMakeLists.txt index cc6ed8554a6e3..0fb5e359bc9ad 100644 --- a/examples/save-load-state/CMakeLists.txt +++ b/examples/save-load-state/CMakeLists.txt @@ -1,4 +1,4 @@ -set(TARGET save-load-state) +set(TARGET llama-save-load-state) add_executable(${TARGET} save-load-state.cpp) install(TARGETS ${TARGET} RUNTIME) target_link_libraries(${TARGET} PRIVATE common llama ${CMAKE_THREAD_LIBS_INIT}) diff --git a/examples/server-llama2-13B.sh b/examples/server-llama2-13B.sh index 17fedc2b176f6..4ce79b7fac477 100755 --- a/examples/server-llama2-13B.sh +++ b/examples/server-llama2-13B.sh @@ -16,7 +16,7 @@ GEN_OPTIONS="${GEN_OPTIONS:---ctx_size 4096 --batch-size 1024}" # shellcheck disable=SC2086 # Intended splitting of GEN_OPTIONS -./server $GEN_OPTIONS \ +./llama-server $GEN_OPTIONS \ --model "$MODEL" \ --threads "$N_THREAD" \ --rope-freq-scale 1.0 \ diff --git a/examples/server/CMakeLists.txt b/examples/server/CMakeLists.txt index dab709619ae34..8365f9510ceae 100644 --- a/examples/server/CMakeLists.txt +++ b/examples/server/CMakeLists.txt @@ -1,4 +1,4 @@ -set(TARGET server) +set(TARGET llama-server) option(LLAMA_SERVER_VERBOSE "Build verbose logging option for Server" ON) option(LLAMA_SERVER_SSL "Build SSL support for the server" OFF) include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}) diff --git a/examples/server/README.md b/examples/server/README.md index ccbdcdbdb2ddb..e7fb0bf64c0e1 100644 --- a/examples/server/README.md +++ b/examples/server/README.md @@ -80,26 +80,26 @@ The project is under active development, and we are [looking for feedback and co ## Build -`server` is built alongside everything else from the root of the project +`llama-server` is built alongside everything else from the root of the project - Using `make`: ```bash - make server + make llama-server ``` - Using `CMake`: ```bash cmake -B build - cmake --build build --config Release -t server + cmake --build build --config Release -t llama-server ``` - Binary is at `./build/bin/server` + Binary is at `./build/bin/llama-server` ## Build with SSL -`server` can also be built with SSL support using OpenSSL 3 +`llama-server` can also be built with SSL support using OpenSSL 3 - Using `make`: @@ -107,14 +107,14 @@ The project is under active development, and we are [looking for feedback and co # NOTE: For non-system openssl, use the following: # CXXFLAGS="-I /path/to/openssl/include" # LDFLAGS="-L /path/to/openssl/lib" - make LLAMA_SERVER_SSL=true server + make LLAMA_SERVER_SSL=true llama-server ``` - Using `CMake`: ```bash cmake -B build -DLLAMA_SERVER_SSL=ON - cmake --build build --config Release -t server + cmake --build build --config Release -t llama-server ``` ## Quick Start @@ -124,13 +124,13 @@ To get started right away, run the following command, making sure to use the cor ### Unix-based systems (Linux, macOS, etc.) ```bash -./server -m models/7B/ggml-model.gguf -c 2048 +./llama-server -m models/7B/ggml-model.gguf -c 2048 ``` ### Windows ```powershell -server.exe -m models\7B\ggml-model.gguf -c 2048 +llama-server.exe -m models\7B\ggml-model.gguf -c 2048 ``` The above command will start a server that by default listens on `127.0.0.1:8080`. @@ -629,11 +629,11 @@ bash chat.sh ### OAI-like API -The HTTP `server` supports an OAI-like API: https://github.com/openai/openai-openapi +The HTTP `llama-server` supports an OAI-like API: https://github.com/openai/openai-openapi ### API errors -`server` returns errors in the same format as OAI: https://github.com/openai/openai-openapi +`llama-server` returns errors in the same format as OAI: https://github.com/openai/openai-openapi Example of an error: diff --git a/examples/server/bench/README.md b/examples/server/bench/README.md index 23a3ec97523ef..0f18ca39651d2 100644 --- a/examples/server/bench/README.md +++ b/examples/server/bench/README.md @@ -99,7 +99,7 @@ The `bench.py` script does several steps: It aims to be used in the CI, but you can run it manually: ```shell -LLAMA_SERVER_BIN_PATH=../../../cmake-build-release/bin/server python bench.py \ +LLAMA_SERVER_BIN_PATH=../../../cmake-build-release/bin/llama-server python bench.py \ --runner-label local \ --name local \ --branch `git rev-parse --abbrev-ref HEAD` \ diff --git a/examples/server/bench/bench.py b/examples/server/bench/bench.py index 86c5de101445c..4fbbb203267f4 100644 --- a/examples/server/bench/bench.py +++ b/examples/server/bench/bench.py @@ -245,7 +245,7 @@ def start_server(args): def start_server_background(args): # Start the server - server_path = '../../../build/bin/server' + server_path = '../../../build/bin/llama-server' if 'LLAMA_SERVER_BIN_PATH' in os.environ: server_path = os.environ['LLAMA_SERVER_BIN_PATH'] server_args = [ diff --git a/examples/server/public_simplechat/readme.md b/examples/server/public_simplechat/readme.md index 36a46885d71df..2dc1778255256 100644 --- a/examples/server/public_simplechat/readme.md +++ b/examples/server/public_simplechat/readme.md @@ -44,12 +44,12 @@ http module. ### running using examples/server -bin/server -m path/model.gguf --path ../examples/server/public_simplechat [--port PORT] +./llama-server -m path/model.gguf --path examples/server/public_simplechat [--port PORT] ### running using python3's server module first run examples/server -* bin/server -m path/model.gguf +* ./llama-server -m path/model.gguf next run this web front end in examples/server/public_simplechat * cd ../examples/server/public_simplechat diff --git a/examples/server/tests/README.md b/examples/server/tests/README.md index 83c0208f36c09..5e6cb277bc813 100644 --- a/examples/server/tests/README.md +++ b/examples/server/tests/README.md @@ -27,10 +27,8 @@ To mitigate it, you can increase values in `n_predict`, `kv_size`. ```shell cd ../../.. -mkdir build -cd build -cmake -DLLAMA_CURL=ON ../ -cmake --build . --target server +cmake -B build -DLLAMA_CURL=ON +cmake --build build --target llama-server ``` 2. Start the test: `./tests.sh` @@ -40,7 +38,7 @@ It's possible to override some scenario steps values with environment variables: | variable | description | |--------------------------|------------------------------------------------------------------------------------------------| | `PORT` | `context.server_port` to set the listening port of the server during scenario, default: `8080` | -| `LLAMA_SERVER_BIN_PATH` | to change the server binary path, default: `../../../build/bin/server` | +| `LLAMA_SERVER_BIN_PATH` | to change the server binary path, default: `../../../build/bin/llama-server` | | `DEBUG` | "ON" to enable steps and server verbose mode `--verbose` | | `SERVER_LOG_FORMAT_JSON` | if set switch server logs to json format | | `N_GPU_LAYERS` | number of model layers to offload to VRAM `-ngl --n-gpu-layers` | diff --git a/examples/server/tests/features/steps/steps.py b/examples/server/tests/features/steps/steps.py index 26d9359d7f3f8..7b5dabb019e75 100644 --- a/examples/server/tests/features/steps/steps.py +++ b/examples/server/tests/features/steps/steps.py @@ -1272,9 +1272,9 @@ def context_text(context): def start_server_background(context): if os.name == 'nt': - context.server_path = '../../../build/bin/Release/server.exe' + context.server_path = '../../../build/bin/Release/llama-server.exe' else: - context.server_path = '../../../build/bin/server' + context.server_path = '../../../build/bin/llama-server' if 'LLAMA_SERVER_BIN_PATH' in os.environ: context.server_path = os.environ['LLAMA_SERVER_BIN_PATH'] server_listen_addr = context.server_fqdn diff --git a/examples/simple/CMakeLists.txt b/examples/simple/CMakeLists.txt index 7da5ff6f3ac04..070cfbe7ad525 100644 --- a/examples/simple/CMakeLists.txt +++ b/examples/simple/CMakeLists.txt @@ -1,4 +1,4 @@ -set(TARGET simple) +set(TARGET llama-simple) add_executable(${TARGET} simple.cpp) install(TARGETS ${TARGET} RUNTIME) target_link_libraries(${TARGET} PRIVATE common llama ${CMAKE_THREAD_LIBS_INIT}) diff --git a/examples/speculative/CMakeLists.txt b/examples/speculative/CMakeLists.txt index 810f3c46ac4aa..aa208e7aaeeb0 100644 --- a/examples/speculative/CMakeLists.txt +++ b/examples/speculative/CMakeLists.txt @@ -1,4 +1,4 @@ -set(TARGET speculative) +set(TARGET llama-speculative) add_executable(${TARGET} speculative.cpp) install(TARGETS ${TARGET} RUNTIME) target_link_libraries(${TARGET} PRIVATE common llama ${CMAKE_THREAD_LIBS_INIT}) diff --git a/examples/sycl/CMakeLists.txt b/examples/sycl/CMakeLists.txt index 69cf8932eb5c7..e4d5083e6e502 100644 --- a/examples/sycl/CMakeLists.txt +++ b/examples/sycl/CMakeLists.txt @@ -2,7 +2,7 @@ # Copyright (C) 2024 Intel Corporation # SPDX-License-Identifier: MIT -set(TARGET ls-sycl-device) +set(TARGET llama-ls-sycl-device) add_executable(${TARGET} ls-sycl-device.cpp) install(TARGETS ${TARGET} RUNTIME) target_link_libraries(${TARGET} PRIVATE common llama ${CMAKE_THREAD_LIBS_INIT}) diff --git a/examples/sycl/README.md b/examples/sycl/README.md index c589c2d3a489c..0e3acd35b616a 100644 --- a/examples/sycl/README.md +++ b/examples/sycl/README.md @@ -6,9 +6,9 @@ This example program provides the tools for llama.cpp for SYCL on Intel GPU. |Tool Name| Function|Status| |-|-|-| -|ls-sycl-device| List all SYCL devices with ID, compute capability, max work group size, ect.|Support| +|llama-ls-sycl-device| List all SYCL devices with ID, compute capability, max work group size, ect.|Support| -### ls-sycl-device +### llama-ls-sycl-device List all SYCL devices with ID, compute capability, max work group size, ect. @@ -23,7 +23,7 @@ source /opt/intel/oneapi/setvars.sh 3. Execute ``` -./build/bin/ls-sycl-device +./build/bin/llama-ls-sycl-device ``` Check the ID in startup log, like: diff --git a/examples/sycl/run-llama2.sh b/examples/sycl/run-llama2.sh index 7b39a18c0681d..da0e4aaba688c 100755 --- a/examples/sycl/run-llama2.sh +++ b/examples/sycl/run-llama2.sh @@ -23,15 +23,15 @@ fi if [ $GGML_SYCL_SINGLE_GPU -eq 1 ]; then echo "use $GGML_SYCL_DEVICE as main GPU" #use signle GPU only - ZES_ENABLE_SYSMAN=1 ./build/bin/main -m models/llama-2-7b.Q4_0.gguf -p "${INPUT2}" -n 400 -e -ngl 33 -s 0 -mg $GGML_SYCL_DEVICE -sm none + ZES_ENABLE_SYSMAN=1 ./build/bin/llama-cli -m models/llama-2-7b.Q4_0.gguf -p "${INPUT2}" -n 400 -e -ngl 33 -s 0 -mg $GGML_SYCL_DEVICE -sm none else #use multiple GPUs with same max compute units - ZES_ENABLE_SYSMAN=1 ./build/bin/main -m models/llama-2-7b.Q4_0.gguf -p "${INPUT2}" -n 400 -e -ngl 33 -s 0 + ZES_ENABLE_SYSMAN=1 ./build/bin/llama-cli -m models/llama-2-7b.Q4_0.gguf -p "${INPUT2}" -n 400 -e -ngl 33 -s 0 fi #use main GPU only -#ZES_ENABLE_SYSMAN=1 ./build/bin/main -m models/llama-2-7b.Q4_0.gguf -p "${INPUT2}" -n 400 -e -ngl 33 -s 0 -mg $GGML_SYCL_DEVICE -sm none +#ZES_ENABLE_SYSMAN=1 ./build/bin/llama-cli -m models/llama-2-7b.Q4_0.gguf -p "${INPUT2}" -n 400 -e -ngl 33 -s 0 -mg $GGML_SYCL_DEVICE -sm none #use multiple GPUs with same max compute units -#ZES_ENABLE_SYSMAN=1 ./build/bin/main -m models/llama-2-7b.Q4_0.gguf -p "${INPUT2}" -n 400 -e -ngl 33 -s 0 +#ZES_ENABLE_SYSMAN=1 ./build/bin/llama-cli -m models/llama-2-7b.Q4_0.gguf -p "${INPUT2}" -n 400 -e -ngl 33 -s 0 diff --git a/examples/tokenize/CMakeLists.txt b/examples/tokenize/CMakeLists.txt index 5e6654d7e5988..b704dcae18c52 100644 --- a/examples/tokenize/CMakeLists.txt +++ b/examples/tokenize/CMakeLists.txt @@ -1,4 +1,4 @@ -set(TARGET tokenize) +set(TARGET llama-tokenize) add_executable(${TARGET} tokenize.cpp) install(TARGETS ${TARGET} RUNTIME) target_link_libraries(${TARGET} PRIVATE common llama ${CMAKE_THREAD_LIBS_INIT}) diff --git a/examples/train-text-from-scratch/CMakeLists.txt b/examples/train-text-from-scratch/CMakeLists.txt index 4459516d093d6..9a1d2a35e7731 100644 --- a/examples/train-text-from-scratch/CMakeLists.txt +++ b/examples/train-text-from-scratch/CMakeLists.txt @@ -1,4 +1,4 @@ -set(TARGET train-text-from-scratch) +set(TARGET llama-train-text-from-scratch) add_executable(${TARGET} train-text-from-scratch.cpp) install(TARGETS ${TARGET} RUNTIME) target_link_libraries(${TARGET} PRIVATE common llama ${CMAKE_THREAD_LIBS_INIT}) diff --git a/examples/train-text-from-scratch/README.md b/examples/train-text-from-scratch/README.md index 1b3454069e9a3..3abae238036dc 100644 --- a/examples/train-text-from-scratch/README.md +++ b/examples/train-text-from-scratch/README.md @@ -7,7 +7,7 @@ Basic usage instructions: wget https://raw.githubusercontent.com/brunoklein99/deep-learning-notes/master/shakespeare.txt # train -./bin/train-text-from-scratch \ +./bin/llama-train-text-from-scratch \ --vocab-model ../models/ggml-vocab-llama.gguf \ --ctx 64 --embd 256 --head 8 --layer 16 \ --checkpoint-in chk-shakespeare-256x16-LATEST.gguf \ @@ -18,7 +18,7 @@ wget https://raw.githubusercontent.com/brunoklein99/deep-learning-notes/master/s --no-checkpointing # predict -./bin/main -m ggml-shakespeare-256x16-f32.gguf +./bin/llama-cli -m ggml-shakespeare-256x16-f32.gguf ``` Output files will be saved every N iterations (config with `--save-every N`). diff --git a/flake.nix b/flake.nix index 0a52ea52ea9d9..c69637d111784 100644 --- a/flake.nix +++ b/flake.nix @@ -63,7 +63,7 @@ # nix-repl> :lf github:ggerganov/llama.cpp # Added 13 variables. # nix-repl> outputs.apps.x86_64-linux.quantize - # { program = "/nix/store/00000000000000000000000000000000-llama.cpp/bin/quantize"; type = "app"; } + # { program = "/nix/store/00000000000000000000000000000000-llama.cpp/bin/llama-quantize"; type = "app"; } # ``` outputs = { self, flake-parts, ... }@inputs: diff --git a/grammars/README.md b/grammars/README.md index 2ec21a4c091cf..2f685eb6de004 100644 --- a/grammars/README.md +++ b/grammars/README.md @@ -91,7 +91,7 @@ item ::= [^\n]+ "\n" This guide provides a brief overview. Check out the GBNF files in this directory (`grammars/`) for examples of full grammars. You can try them out with: ``` -./main -m --grammar-file grammars/some-grammar.gbnf -p 'Some prompt' +./llama-cli -m --grammar-file grammars/some-grammar.gbnf -p 'Some prompt' ``` `llama.cpp` can also convert JSON schemas to grammars either ahead of time or at each request, see below. @@ -110,20 +110,20 @@ While semantically correct, the syntax `x? x? x?.... x?` (with N repetitions) ma You can use GBNF grammars: -- In the [server](../examples/server)'s completion endpoints, passed as the `grammar` body field -- In the [main](../examples/main) CLI, passed as the `--grammar` & `--grammar-file` flags -- With the [gbnf-validator](../examples/gbnf-validator) tool, to test them against strings. +- In [llama-server](../examples/server)'s completion endpoints, passed as the `grammar` body field +- In [llama-cli](../examples/main), passed as the `--grammar` & `--grammar-file` flags +- With [llama-gbnf-validator](../examples/gbnf-validator) tool, to test them against strings. ## JSON Schemas → GBNF `llama.cpp` supports converting a subset of https://json-schema.org/ to GBNF grammars: -- In the [server](../examples/server): +- In [llama-server](../examples/server): - For any completion endpoints, passed as the `json_schema` body field - For the `/chat/completions` endpoint, passed inside the `result_format` body field (e.g. `{"type", "json_object", "schema": {"items": {}}}`) -- In the [main](../examples/main) CLI, passed as the `--json` / `-j` flag +- In [llama-cli](../examples/main), passed as the `--json` / `-j` flag - To convert to a grammar ahead of time: - - in CLI, with [json_schema_to_grammar.py](../examples/json_schema_to_grammar.py) + - in CLI, with [examples/json_schema_to_grammar.py](../examples/json_schema_to_grammar.py) - in JavaScript with [json-schema-to-grammar.mjs](../examples/server/public/json-schema-to-grammar.mjs) (this is used by the [server](../examples/server)'s Web UI) Take a look at [tests](../../tests/test-json-schema-to-grammar.cpp) to see which features are likely supported (you'll also find usage examples in https://github.com/ggerganov/llama.cpp/pull/5978, https://github.com/ggerganov/llama.cpp/pull/6659 & https://github.com/ggerganov/llama.cpp/pull/6555). diff --git a/pocs/vdot/CMakeLists.txt b/pocs/vdot/CMakeLists.txt index fb89a1cd4e833..d5405ad2991d1 100644 --- a/pocs/vdot/CMakeLists.txt +++ b/pocs/vdot/CMakeLists.txt @@ -1,9 +1,9 @@ -set(TARGET vdot) +set(TARGET llama-vdot) add_executable(${TARGET} vdot.cpp) target_link_libraries(${TARGET} PRIVATE common llama ${CMAKE_THREAD_LIBS_INIT}) target_compile_features(${TARGET} PRIVATE cxx_std_11) -set(TARGET q8dot) +set(TARGET llama-q8dot) add_executable(${TARGET} q8dot.cpp) target_link_libraries(${TARGET} PRIVATE common llama ${CMAKE_THREAD_LIBS_INIT}) target_compile_features(${TARGET} PRIVATE cxx_std_11) diff --git a/scripts/get-hellaswag.sh b/scripts/get-hellaswag.sh index 121979fe2b069..4e1b1cc15f01a 100755 --- a/scripts/get-hellaswag.sh +++ b/scripts/get-hellaswag.sh @@ -4,7 +4,7 @@ wget https://raw.githubusercontent.com/klosax/hellaswag_text_data/main/hellaswag echo "Usage:" echo "" -echo " ./perplexity -m model.gguf -f hellaswag_val_full.txt --hellaswag [--hellaswag-tasks N] [other params]" +echo " ./llama-perplexity -m model.gguf -f hellaswag_val_full.txt --hellaswag [--hellaswag-tasks N] [other params]" echo "" exit 0 diff --git a/scripts/get-wikitext-103.sh b/scripts/get-wikitext-103.sh index 880dd5cbe2230..9c65fafbcc50b 100755 --- a/scripts/get-wikitext-103.sh +++ b/scripts/get-wikitext-103.sh @@ -4,7 +4,7 @@ wget https://s3.amazonaws.com/research.metamind.io/wikitext/wikitext-103-raw-v1. echo "Usage:" echo "" -echo " ./perplexity -m model.gguf -f wiki.test.raw [other params]" +echo " ./llama-perplexity -m model.gguf -f wiki.test.raw [other params]" echo "" exit 0 diff --git a/scripts/get-wikitext-2.sh b/scripts/get-wikitext-2.sh index b01476a46015a..5f3845ef59a9e 100755 --- a/scripts/get-wikitext-2.sh +++ b/scripts/get-wikitext-2.sh @@ -5,7 +5,7 @@ unzip wikitext-2-raw-v1.zip echo "Usage:" echo "" -echo " ./perplexity -m model.gguf -f wikitext-2-raw/wiki.test.raw [other params]" +echo " ./llama-perplexity -m model.gguf -f wikitext-2-raw/wiki.test.raw [other params]" echo "" exit 0 diff --git a/scripts/get-winogrande.sh b/scripts/get-winogrande.sh index 5f234468e1643..f1fc0e2d47adb 100755 --- a/scripts/get-winogrande.sh +++ b/scripts/get-winogrande.sh @@ -4,7 +4,7 @@ wget https://huggingface.co/datasets/ikawrakow/winogrande-eval-for-llama.cpp/raw echo "Usage:" echo "" -echo " ./perplexity -m model.gguf -f winogrande-debiased-eval.csv --winogrande [--winogrande-tasks N] [other params]" +echo " ./llama-perplexity -m model.gguf -f winogrande-debiased-eval.csv --winogrande [--winogrande-tasks N] [other params]" echo "" exit 0 diff --git a/scripts/hf.sh b/scripts/hf.sh index 58f83d6fe92a5..85c2c4d9a952e 100755 --- a/scripts/hf.sh +++ b/scripts/hf.sh @@ -3,9 +3,9 @@ # Shortcut for downloading HF models # # Usage: -# ./main -m $(./scripts/hf.sh https://huggingface.co/TheBloke/Mixtral-8x7B-v0.1-GGUF/resolve/main/mixtral-8x7b-v0.1.Q4_K_M.gguf) -# ./main -m $(./scripts/hf.sh --url https://huggingface.co/TheBloke/Mixtral-8x7B-v0.1-GGUF/blob/main/mixtral-8x7b-v0.1.Q4_K_M.gguf) -# ./main -m $(./scripts/hf.sh --repo TheBloke/Mixtral-8x7B-v0.1-GGUF --file mixtral-8x7b-v0.1.Q4_K_M.gguf) +# ./llama-cli -m $(./scripts/hf.sh https://huggingface.co/TheBloke/Mixtral-8x7B-v0.1-GGUF/resolve/main/mixtral-8x7b-v0.1.Q4_K_M.gguf) +# ./llama-cli -m $(./scripts/hf.sh --url https://huggingface.co/TheBloke/Mixtral-8x7B-v0.1-GGUF/blob/main/mixtral-8x7b-v0.1.Q4_K_M.gguf) +# ./llama-cli -m $(./scripts/hf.sh --repo TheBloke/Mixtral-8x7B-v0.1-GGUF --file mixtral-8x7b-v0.1.Q4_K_M.gguf) # # all logs go to stderr diff --git a/scripts/pod-llama.sh b/scripts/pod-llama.sh index 5dabbf60e6fc8..6ba499a2a2521 100644 --- a/scripts/pod-llama.sh +++ b/scripts/pod-llama.sh @@ -77,9 +77,9 @@ if [ "$1" -eq "1" ]; then python3 examples/convert-legacy-llama.py ./models/tinyllama-1b --outfile ./models/tinyllama-1b/ggml-model-f16.gguf --outtype f16 - ./quantize ./models/tinyllama-1b/ggml-model-f16.gguf ./models/tinyllama-1b/ggml-model-q4_0.gguf q4_0 - ./quantize ./models/tinyllama-1b/ggml-model-f16.gguf ./models/tinyllama-1b/ggml-model-q4_k.gguf q4_k - ./quantize ./models/tinyllama-1b/ggml-model-f16.gguf ./models/tinyllama-1b/ggml-model-q8_0.gguf q8_0 + ./llama-quantize ./models/tinyllama-1b/ggml-model-f16.gguf ./models/tinyllama-1b/ggml-model-q4_0.gguf q4_0 + ./llama-quantize ./models/tinyllama-1b/ggml-model-f16.gguf ./models/tinyllama-1b/ggml-model-q4_k.gguf q4_k + ./llama-quantize ./models/tinyllama-1b/ggml-model-f16.gguf ./models/tinyllama-1b/ggml-model-q8_0.gguf q8_0 fi if [ "$1" -eq "2" ]; then @@ -92,9 +92,9 @@ if [ "$1" -eq "2" ]; then python3 examples/convert-legacy-llama.py ./models/codellama-7b --outfile ./models/codellama-7b/ggml-model-f16.gguf --outtype f16 - ./quantize ./models/codellama-7b/ggml-model-f16.gguf ./models/codellama-7b/ggml-model-q4_0.gguf q4_0 - ./quantize ./models/codellama-7b/ggml-model-f16.gguf ./models/codellama-7b/ggml-model-q4_k.gguf q4_k - ./quantize ./models/codellama-7b/ggml-model-f16.gguf ./models/codellama-7b/ggml-model-q8_0.gguf q8_0 + ./llama-quantize ./models/codellama-7b/ggml-model-f16.gguf ./models/codellama-7b/ggml-model-q4_0.gguf q4_0 + ./llama-quantize ./models/codellama-7b/ggml-model-f16.gguf ./models/codellama-7b/ggml-model-q4_k.gguf q4_k + ./llama-quantize ./models/codellama-7b/ggml-model-f16.gguf ./models/codellama-7b/ggml-model-q8_0.gguf q8_0 fi if [ "$1" -eq "3" ]; then @@ -107,9 +107,9 @@ if [ "$1" -eq "3" ]; then python3 examples/convert-legacy-llama.py ./models/codellama-13b --outfile ./models/codellama-13b/ggml-model-f16.gguf --outtype f16 - ./quantize ./models/codellama-13b/ggml-model-f16.gguf ./models/codellama-13b/ggml-model-q4_0.gguf q4_0 - ./quantize ./models/codellama-13b/ggml-model-f16.gguf ./models/codellama-13b/ggml-model-q4_k.gguf q4_k - ./quantize ./models/codellama-13b/ggml-model-f16.gguf ./models/codellama-13b/ggml-model-q8_0.gguf q8_0 + ./llama-quantize ./models/codellama-13b/ggml-model-f16.gguf ./models/codellama-13b/ggml-model-q4_0.gguf q4_0 + ./llama-quantize ./models/codellama-13b/ggml-model-f16.gguf ./models/codellama-13b/ggml-model-q4_k.gguf q4_k + ./llama-quantize ./models/codellama-13b/ggml-model-f16.gguf ./models/codellama-13b/ggml-model-q8_0.gguf q8_0 fi if [ "$1" -eq "4" ]; then @@ -122,9 +122,9 @@ if [ "$1" -eq "4" ]; then python3 examples/convert-legacy-llama.py ./models/codellama-34b --outfile ./models/codellama-34b/ggml-model-f16.gguf --outtype f16 - ./quantize ./models/codellama-34b/ggml-model-f16.gguf ./models/codellama-34b/ggml-model-q4_0.gguf q4_0 - ./quantize ./models/codellama-34b/ggml-model-f16.gguf ./models/codellama-34b/ggml-model-q4_k.gguf q4_k - ./quantize ./models/codellama-34b/ggml-model-f16.gguf ./models/codellama-34b/ggml-model-q8_0.gguf q8_0 + ./llama-quantize ./models/codellama-34b/ggml-model-f16.gguf ./models/codellama-34b/ggml-model-q4_0.gguf q4_0 + ./llama-quantize ./models/codellama-34b/ggml-model-f16.gguf ./models/codellama-34b/ggml-model-q4_k.gguf q4_k + ./llama-quantize ./models/codellama-34b/ggml-model-f16.gguf ./models/codellama-34b/ggml-model-q8_0.gguf q8_0 fi if [ "$1" -eq "5" ]; then @@ -137,9 +137,9 @@ if [ "$1" -eq "5" ]; then python3 examples/convert-legacy-llama.py ./models/codellama-7b-instruct --outfile ./models/codellama-7b-instruct/ggml-model-f16.gguf --outtype f16 - ./quantize ./models/codellama-7b-instruct/ggml-model-f16.gguf ./models/codellama-7b-instruct/ggml-model-q4_0.gguf q4_0 - ./quantize ./models/codellama-7b-instruct/ggml-model-f16.gguf ./models/codellama-7b-instruct/ggml-model-q4_k.gguf q4_k - ./quantize ./models/codellama-7b-instruct/ggml-model-f16.gguf ./models/codellama-7b-instruct/ggml-model-q8_0.gguf q8_0 + ./llama-quantize ./models/codellama-7b-instruct/ggml-model-f16.gguf ./models/codellama-7b-instruct/ggml-model-q4_0.gguf q4_0 + ./llama-quantize ./models/codellama-7b-instruct/ggml-model-f16.gguf ./models/codellama-7b-instruct/ggml-model-q4_k.gguf q4_k + ./llama-quantize ./models/codellama-7b-instruct/ggml-model-f16.gguf ./models/codellama-7b-instruct/ggml-model-q8_0.gguf q8_0 fi if [ "$1" -eq "6" ]; then @@ -152,9 +152,9 @@ if [ "$1" -eq "6" ]; then python3 examples/convert-legacy-llama.py ./models/codellama-13b-instruct --outfile ./models/codellama-13b-instruct/ggml-model-f16.gguf --outtype f16 - ./quantize ./models/codellama-13b-instruct/ggml-model-f16.gguf ./models/codellama-13b-instruct/ggml-model-q4_0.gguf q4_0 - ./quantize ./models/codellama-13b-instruct/ggml-model-f16.gguf ./models/codellama-13b-instruct/ggml-model-q4_k.gguf q4_k - ./quantize ./models/codellama-13b-instruct/ggml-model-f16.gguf ./models/codellama-13b-instruct/ggml-model-q8_0.gguf q8_0 + ./llama-quantize ./models/codellama-13b-instruct/ggml-model-f16.gguf ./models/codellama-13b-instruct/ggml-model-q4_0.gguf q4_0 + ./llama-quantize ./models/codellama-13b-instruct/ggml-model-f16.gguf ./models/codellama-13b-instruct/ggml-model-q4_k.gguf q4_k + ./llama-quantize ./models/codellama-13b-instruct/ggml-model-f16.gguf ./models/codellama-13b-instruct/ggml-model-q8_0.gguf q8_0 fi if [ "$1" -eq "7" ]; then @@ -167,9 +167,9 @@ if [ "$1" -eq "7" ]; then python3 examples/convert-legacy-llama.py ./models/codellama-34b-instruct --outfile ./models/codellama-34b-instruct/ggml-model-f16.gguf --outtype f16 - ./quantize ./models/codellama-34b-instruct/ggml-model-f16.gguf ./models/codellama-34b-instruct/ggml-model-q4_0.gguf q4_0 - ./quantize ./models/codellama-34b-instruct/ggml-model-f16.gguf ./models/codellama-34b-instruct/ggml-model-q4_k.gguf q4_k - ./quantize ./models/codellama-34b-instruct/ggml-model-f16.gguf ./models/codellama-34b-instruct/ggml-model-q8_0.gguf q8_0 + ./llama-quantize ./models/codellama-34b-instruct/ggml-model-f16.gguf ./models/codellama-34b-instruct/ggml-model-q4_0.gguf q4_0 + ./llama-quantize ./models/codellama-34b-instruct/ggml-model-f16.gguf ./models/codellama-34b-instruct/ggml-model-q4_k.gguf q4_k + ./llama-quantize ./models/codellama-34b-instruct/ggml-model-f16.gguf ./models/codellama-34b-instruct/ggml-model-q8_0.gguf q8_0 fi if [ "$1" -eq "1" ]; then @@ -181,22 +181,22 @@ if [ "$1" -eq "1" ]; then ../scripts/get-wikitext-2.sh unzip wikitext-2-raw-v1.zip - make -j && ./bin/perplexity -m ../models/tinyllama-1b/ggml-model-f16.gguf -f ./wikitext-2-raw/wiki.test.raw -ngl 100 --chunks 32 + make -j && ./bin/llama-perplexity -m ../models/tinyllama-1b/ggml-model-f16.gguf -f ./wikitext-2-raw/wiki.test.raw -ngl 100 --chunks 32 # batched cd /workspace/llama.cpp - LLAMA_CUDA=1 make -j && ./batched ./models/tinyllama-1b/ggml-model-f16.gguf "Hello, my name is" 8 128 999 + LLAMA_CUDA=1 make -j && ./llama-batched ./models/tinyllama-1b/ggml-model-f16.gguf "Hello, my name is" 8 128 999 # batched-bench cd /workspace/llama.cpp - LLAMA_CUDA=1 make -j && ./batched-bench ./models/tinyllama-1b/ggml-model-f16.gguf 4608 1 99 0 512 128 1,2,3,4,5,6,7,8,16,32 + LLAMA_CUDA=1 make -j && ./llama-batched-bench ./models/tinyllama-1b/ggml-model-f16.gguf 4608 1 99 0 512 128 1,2,3,4,5,6,7,8,16,32 # parallel cd /workspace/llama.cpp - LLAMA_CUDA=1 make -j && ./parallel -m ./models/tinyllama-1b/ggml-model-f16.gguf -t 1 -ngl 100 -c 4096 -b 512 -s 1 -np 8 -ns 128 -n 100 -cb + LLAMA_CUDA=1 make -j && ./llama-parallel -m ./models/tinyllama-1b/ggml-model-f16.gguf -t 1 -ngl 100 -c 4096 -b 512 -s 1 -np 8 -ns 128 -n 100 -cb fi @@ -204,10 +204,10 @@ fi #if [ "$1" -eq "7" ]; then # cd /workspace/llama.cpp # -# LLAMA_CUDA=1 make -j && ./speculative -m ./models/codellama-34b-instruct/ggml-model-f16.gguf -md ./models/codellama-7b-instruct/ggml-model-q4_0.gguf -p "# Dijkstra's shortest path algorithm in Python (4 spaces indentation) + complexity analysis:\n\n" -e -ngl 999 -ngld 999 -t 4 -n 512 -c 4096 -s 21 --draft 16 -np 1 --temp 0.0 +# LLAMA_CUDA=1 make -j && ./llama-speculative -m ./models/codellama-34b-instruct/ggml-model-f16.gguf -md ./models/codellama-7b-instruct/ggml-model-q4_0.gguf -p "# Dijkstra's shortest path algorithm in Python (4 spaces indentation) + complexity analysis:\n\n" -e -ngl 999 -ngld 999 -t 4 -n 512 -c 4096 -s 21 --draft 16 -np 1 --temp 0.0 #fi # more benches -#LLAMA_CUDA=1 make -j && ./batched-bench ./models/codellama-7b/ggml-model-q4_k.gguf 4096 1 99 1 512,3200 128,128,800 1 -#LLAMA_CUDA=1 make -j && ./batched-bench ./models/codellama-13b/ggml-model-q4_k.gguf 4096 1 99 1 512,3200 128,128,800 1 +#LLAMA_CUDA=1 make -j && ./llama-batched-bench ./models/codellama-7b/ggml-model-q4_k.gguf 4096 1 99 1 512,3200 128,128,800 1 +#LLAMA_CUDA=1 make -j && ./llama-batched-bench ./models/codellama-13b/ggml-model-q4_k.gguf 4096 1 99 1 512,3200 128,128,800 1 diff --git a/scripts/qnt-all.sh b/scripts/qnt-all.sh index b4c2a159e2bf5..bc43738a2f498 100755 --- a/scripts/qnt-all.sh +++ b/scripts/qnt-all.sh @@ -26,5 +26,5 @@ set -e mkdir -p ${out} for q in ${qnt[@]}; do - time ./bin/quantize ../models/${model}/ggml-model-f16.gguf ../models/${model}/ggml-model-${q}.gguf ${q} 2>&1 ${args} | tee ${out}/qnt-${q}.txt + time ./bin/llama-quantize ../models/${model}/ggml-model-f16.gguf ../models/${model}/ggml-model-${q}.gguf ${q} 2>&1 ${args} | tee ${out}/qnt-${q}.txt done diff --git a/scripts/run-all-ppl.sh b/scripts/run-all-ppl.sh index e04d61d7fe091..e15f74f1b666d 100755 --- a/scripts/run-all-ppl.sh +++ b/scripts/run-all-ppl.sh @@ -26,5 +26,5 @@ out="../tmp/results-${model}" mkdir -p ${out} for q in ${qnt[@]}; do - time ./bin/perplexity -m ../models/${model}/ggml-model-f16.gguf -f ./wiki.test.raw ${args} 2>&1 | tee ${out}/ppl-${q}.txt + time ./bin/llama-perplexity -m ../models/${model}/ggml-model-f16.gguf -f ./wiki.test.raw ${args} 2>&1 | tee ${out}/ppl-${q}.txt done diff --git a/scripts/run-with-preset.py b/scripts/run-with-preset.py index 0d7219113ec3f..ee21eab371418 100755 --- a/scripts/run-with-preset.py +++ b/scripts/run-with-preset.py @@ -10,7 +10,7 @@ logger = logging.getLogger("run-with-preset") -CLI_ARGS_MAIN_PERPLEXITY = [ +CLI_ARGS_LLAMA_CLI_PERPLEXITY = [ "batch-size", "cfg-negative-prompt", "cfg-scale", "chunks", "color", "ctx-size", "escape", "export", "file", "frequency-penalty", "grammar", "grammar-file", "hellaswag", "hellaswag-tasks", "ignore-eos", "in-prefix", "in-prefix-bos", "in-suffix", @@ -29,7 +29,7 @@ "n-prompt", "output", "repetitions", "tensor-split", "threads", "verbose" ] -CLI_ARGS_SERVER = [ +CLI_ARGS_LLAMA_SERVER = [ "alias", "batch-size", "ctx-size", "embedding", "host", "memory-f32", "lora", "lora-base", "low-vram", "main-gpu", "mlock", "model", "n-gpu-layers", "n-probs", "no-mmap", "no-mul-mat-q", "numa", "path", "port", "rope-freq-base", "timeout", "rope-freq-scale", "tensor-split", @@ -37,7 +37,7 @@ ] description = """Run llama.cpp binaries with presets from YAML file(s). -To specify which binary should be run, specify the "binary" property (main, perplexity, llama-bench, and server are supported). +To specify which binary should be run, specify the "binary" property (llama-cli, llama-perplexity, llama-bench, and llama-server are supported). To get a preset file template, run a llama.cpp binary with the "--logdir" CLI argument. Formatting considerations: @@ -77,19 +77,19 @@ props = {prop.replace("_", "-"): val for prop, val in props.items()} -binary = props.pop("binary", "main") +binary = props.pop("binary", "llama-cli") if known_args.binary: binary = known_args.binary if os.path.exists(f"./{binary}"): binary = f"./{binary}" -if binary.lower().endswith("main") or binary.lower().endswith("perplexity"): - cli_args = CLI_ARGS_MAIN_PERPLEXITY +if binary.lower().endswith("llama-cli") or binary.lower().endswith("llama-perplexity"): + cli_args = CLI_ARGS_LLAMA_CLI_PERPLEXITY elif binary.lower().endswith("llama-bench"): cli_args = CLI_ARGS_LLAMA_BENCH -elif binary.lower().endswith("server"): - cli_args = CLI_ARGS_SERVER +elif binary.lower().endswith("llama-server"): + cli_args = CLI_ARGS_LLAMA_SERVER else: logger.error(f"Unknown binary: {binary}") sys.exit(1) diff --git a/scripts/server-llm.sh b/scripts/server-llm.sh index b3715e204b691..199232440449b 100644 --- a/scripts/server-llm.sh +++ b/scripts/server-llm.sh @@ -380,13 +380,13 @@ fi if [[ "$backend" == "cuda" ]]; then printf "[+] Building with CUDA backend\n" - LLAMA_CUDA=1 make -j server $log + LLAMA_CUDA=1 make -j llama-server $log elif [[ "$backend" == "cpu" ]]; then printf "[+] Building with CPU backend\n" - make -j server $log + make -j llama-server $log elif [[ "$backend" == "metal" ]]; then printf "[+] Building with Metal backend\n" - make -j server $log + make -j llama-server $log else printf "[-] Unknown backend: %s\n" "$backend" exit 1 @@ -413,6 +413,6 @@ if [[ $verbose -eq 1 ]]; then args="$args --verbose" fi -./server -m "../$wfile" --host 0.0.0.0 --port "$port" -c $n_kv -np "$n_parallel" $args +./llama-server -m "../$wfile" --host 0.0.0.0 --port "$port" -c $n_kv -np "$n_parallel" $args exit 0 From f578b86b2123d0f92afbaa98a031df4d4464e582 Mon Sep 17 00:00:00 2001 From: slaren Date: Thu, 13 Jun 2024 03:11:35 +0200 Subject: [PATCH 065/131] move BLAS to a separate backend (#6210) * move BLAS to a separate backend * rename GGML_USE_OPENBLAS to GGML_USE_BLAS * alloc : reuse same buffer when the same buffer type if used multiple times * set number of threads automatically for openblas and blis * sched : print assignments when GGML_SCHED_DEBUG env variable is set * sched : allow ops with weights on an incompatible buffer type This will cause the weight to be copied to a backend that supports the op, which is very costly. The weight should have been stored in a buffer of a backend that can run the op, but llama.cpp cannot do this automatically at the moment. --------- Co-authored-by: Georgi Gerganov --- CMakeLists.txt | 23 +- Makefile | 27 +- examples/llama-bench/llama-bench.cpp | 1 + ggml-alloc.c | 98 ++++++-- ggml-backend-impl.h | 28 ++- ggml-backend.c | 242 +++++++++++++----- ggml-backend.h | 6 +- ggml-blas.cpp | 363 +++++++++++++++++++++++++++ ggml-blas.h | 23 ++ ggml-cuda.cu | 44 ++-- ggml-kompute.cpp | 13 +- ggml-metal.m | 15 +- ggml-rpc.cpp | 21 +- ggml-sycl.cpp | 28 +-- ggml-vulkan.cpp | 26 +- ggml.c | 205 ++------------- llama.cpp | 37 ++- 17 files changed, 821 insertions(+), 379 deletions(-) create mode 100644 ggml-blas.cpp create mode 100644 ggml-blas.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 8e280f87d9dd1..08481334f18f5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -39,8 +39,12 @@ endif() if (APPLE) set(LLAMA_METAL_DEFAULT ON) + set(LLAMA_BLAS_DEFAULT ON) + set(LLAMA_BLAS_VENDOR_DEFAULT "Apple") else() set(LLAMA_METAL_DEFAULT OFF) + set(LLAMA_BLAS_DEFAULT OFF) + set(LLAMA_BLAS_VENDOR_DEFAULT "Generic") endif() set(LLAMA_LLAMAFILE_DEFAULT ON) @@ -91,9 +95,10 @@ endif() # 3rd party libs option(LLAMA_ACCELERATE "llama: enable Accelerate framework" ON) -option(LLAMA_BLAS "llama: use BLAS" OFF) +option(LLAMA_BLAS "llama: use BLAS" ${LLAMA_BLAS_DEFAULT}) +set(LLAMA_BLAS_VENDOR ${LLAMA_BLAS_VENDOR_DEFAULT} CACHE STRING + "llama: BLAS library vendor") option(LLAMA_LLAMAFILE "llama: use llamafile SGEMM" ${LLAMA_LLAMAFILE_DEFAULT}) -set(LLAMA_BLAS_VENDOR "Generic" CACHE STRING "llama: BLAS library vendor") option(LLAMA_CUDA "llama: use CUDA" OFF) option(LLAMA_CUBLAS "llama: use CUDA (deprecated, use LLAMA_CUDA)" OFF) option(LLAMA_CUDA_FORCE_DMMV "llama: use dmmv instead of mmvq CUDA kernels" OFF) @@ -311,9 +316,9 @@ if (LLAMA_BLAS) if (LLAMA_STATIC) set(BLA_STATIC ON) endif() - if (CMAKE_VERSION VERSION_GREATER_EQUAL 3.22) - set(BLA_SIZEOF_INTEGER 8) - endif() + #if (CMAKE_VERSION VERSION_GREATER_EQUAL 3.22) + # set(BLA_SIZEOF_INTEGER 8) + #endif() set(BLA_VENDOR ${LLAMA_BLAS_VENDOR}) find_package(BLAS) @@ -321,7 +326,7 @@ if (LLAMA_BLAS) if (BLAS_FOUND) message(STATUS "BLAS found, Libraries: ${BLAS_LIBRARIES}") - if ("${BLAS_INCLUDE_DIRS}" STREQUAL "") + if (("${BLAS_INCLUDE_DIRS}" STREQUAL "") AND NOT (${LLAMA_BLAS_VENDOR} MATCHES "Apple")) # BLAS_INCLUDE_DIRS is missing in FindBLAS.cmake. # see https://gitlab.kitware.com/cmake/cmake/-/issues/20268 find_package(PkgConfig REQUIRED) @@ -374,12 +379,15 @@ if (LLAMA_BLAS) add_compile_options(${BLAS_LINKER_FLAGS}) - add_compile_definitions(GGML_USE_OPENBLAS) + add_compile_definitions(GGML_USE_BLAS) if (${BLAS_INCLUDE_DIRS} MATCHES "mkl" AND (${LLAMA_BLAS_VENDOR} MATCHES "Generic" OR ${LLAMA_BLAS_VENDOR} MATCHES "Intel")) add_compile_definitions(GGML_BLAS_USE_MKL) endif() + set(GGML_HEADERS_BLAS ggml-blas.h) + set(GGML_SOURCES_BLAS ggml-blas.cpp) + set(LLAMA_EXTRA_LIBS ${LLAMA_EXTRA_LIBS} ${BLAS_LIBRARIES}) set(LLAMA_EXTRA_INCLUDES ${LLAMA_EXTRA_INCLUDES} ${BLAS_INCLUDE_DIRS}) else() @@ -1258,6 +1266,7 @@ add_library(ggml OBJECT ${GGML_SOURCES_KOMPUTE} ${GGML_HEADERS_KOMPUTE} ${GGML_SOURCES_VULKAN} ${GGML_HEADERS_VULKAN} ${GGML_SOURCES_ROCM} ${GGML_HEADERS_ROCM} + ${GGML_SOURCES_BLAS} ${GGML_HEADERS_BLAS} ${GGML_SOURCES_LLAMAFILE} ${GGML_HEADERS_LLAMAFILE} ) diff --git a/Makefile b/Makefile index a4cab1bb208bc..744fe5739e95c 100644 --- a/Makefile +++ b/Makefile @@ -440,10 +440,11 @@ ifndef LLAMA_NO_ACCELERATE # Mac OS - include Accelerate framework. # `-framework Accelerate` works both with Apple Silicon and Mac Intel ifeq ($(UNAME_S),Darwin) - MK_CPPFLAGS += -DGGML_USE_ACCELERATE + MK_CPPFLAGS += -DGGML_USE_ACCELERATE -DGGML_USE_BLAS MK_CPPFLAGS += -DACCELERATE_NEW_LAPACK MK_CPPFLAGS += -DACCELERATE_LAPACK_ILP64 MK_LDFLAGS += -framework Accelerate + OBJS += ggml-blas.o endif endif # LLAMA_NO_ACCELERATE @@ -454,21 +455,30 @@ ifndef LLAMA_NO_OPENMP endif # LLAMA_NO_OPENMP ifdef LLAMA_OPENBLAS - MK_CPPFLAGS += -DGGML_USE_OPENBLAS $(shell pkg-config --cflags-only-I openblas) + MK_CPPFLAGS += -DGGML_USE_BLAS $(shell pkg-config --cflags-only-I openblas) MK_CFLAGS += $(shell pkg-config --cflags-only-other openblas) MK_LDFLAGS += $(shell pkg-config --libs openblas) + OBJS += ggml-blas.o endif # LLAMA_OPENBLAS -ifndef LLAMA_NO_LLAMAFILE - MK_CPPFLAGS += -DGGML_USE_LLAMAFILE - OBJS += sgemm.o -endif +ifdef LLAMA_OPENBLAS64 + MK_CPPFLAGS += -DGGML_USE_BLAS $(shell pkg-config --cflags-only-I openblas64) + MK_CFLAGS += $(shell pkg-config --cflags-only-other openblas64) + MK_LDFLAGS += $(shell pkg-config --libs openblas64) + OBJS += ggml-blas.o +endif # LLAMA_OPENBLAS64 ifdef LLAMA_BLIS - MK_CPPFLAGS += -DGGML_USE_OPENBLAS -I/usr/local/include/blis -I/usr/include/blis + MK_CPPFLAGS += -DGGML_USE_BLAS -I/usr/local/include/blis -I/usr/include/blis MK_LDFLAGS += -lblis -L/usr/local/lib + OBJS += ggml-blas.o endif # LLAMA_BLIS +ifndef LLAMA_NO_LLAMAFILE + MK_CPPFLAGS += -DGGML_USE_LLAMAFILE + OBJS += sgemm.o +endif + ifdef LLAMA_RPC MK_CPPFLAGS += -DGGML_USE_RPC OBJS += ggml-rpc.o @@ -776,6 +786,9 @@ ggml-backend.o: ggml-backend.c ggml.h ggml-backend.h ggml-quants.o: ggml-quants.c ggml.h ggml-quants.h ggml-common.h $(CC) $(CFLAGS) -c $< -o $@ +ggml-blas.o: ggml-blas.cpp ggml-blas.h + $(CXX) $(CXXFLAGS) -c $< -o $@ + unicode.o: unicode.cpp unicode.h $(CXX) $(CXXFLAGS) -c $< -o $@ diff --git a/examples/llama-bench/llama-bench.cpp b/examples/llama-bench/llama-bench.cpp index 61f5a5a0928a2..61dd1d71ab5e9 100644 --- a/examples/llama-bench/llama-bench.cpp +++ b/examples/llama-bench/llama-bench.cpp @@ -293,6 +293,7 @@ static cmd_params parse_cmd_params(int argc, char ** argv) { params.output_format = cmd_params_defaults.output_format; params.output_format_stderr = cmd_params_defaults.output_format_stderr; params.reps = cmd_params_defaults.reps; + params.numa = cmd_params_defaults.numa; for (int i = 1; i < argc; i++) { arg = argv[i]; diff --git a/ggml-alloc.c b/ggml-alloc.c index eb75962d49cc3..bd367c42df44e 100644 --- a/ggml-alloc.c +++ b/ggml-alloc.c @@ -339,6 +339,7 @@ struct hash_node { }; struct tensor_alloc { + int buffer_id; size_t offset; size_t size_max; // 0 = pre-allocated, unused, or view }; @@ -349,7 +350,6 @@ struct leaf_alloc { }; struct node_alloc { - int buffer_id; struct tensor_alloc dst; struct tensor_alloc src[GGML_MAX_SRC]; }; @@ -386,8 +386,19 @@ ggml_gallocr_t ggml_gallocr_new_n(ggml_backend_buffer_type_t * bufts, int n_bufs for (int i = 0; i < n_bufs; i++) { galloc->bufts[i] = bufts[i]; galloc->buffers[i] = NULL; - size_t alignment = ggml_backend_buft_get_alignment(bufts[i]); - galloc->buf_tallocs[i] = ggml_dyn_tallocr_new(alignment); + + // check if the same buffer type is used multiple times and reuse the same allocator + for (int j = 0; j < i; j++) { + if (bufts[i] == bufts[j]) { + galloc->buf_tallocs[i] = galloc->buf_tallocs[j]; + break; + } + } + + if (galloc->buf_tallocs[i] == NULL) { + size_t alignment = ggml_backend_buft_get_alignment(bufts[i]); + galloc->buf_tallocs[i] = ggml_dyn_tallocr_new(alignment); + } } galloc->n_buffers = n_bufs; @@ -405,10 +416,30 @@ void ggml_gallocr_free(ggml_gallocr_t galloc) { for (int i = 0; i < galloc->n_buffers; i++) { if (galloc->buffers != NULL) { - ggml_backend_buffer_free(galloc->buffers[i]); + // skip if already freed + bool freed = false; + for (int j = 0; j < i; j++) { + if (galloc->buffers[j] == galloc->buffers[i]) { + freed = true; + break; + } + } + if (!freed) { + ggml_backend_buffer_free(galloc->buffers[i]); + } } if (galloc->buf_tallocs != NULL) { - ggml_dyn_tallocr_free(galloc->buf_tallocs[i]); + // skip if already freed + bool freed = false; + for (int j = 0; j < i; j++) { + if (galloc->buf_tallocs[j] == galloc->buf_tallocs[i]) { + freed = true; + break; + } + } + if (!freed) { + ggml_dyn_tallocr_free(galloc->buf_tallocs[i]); + } } } @@ -511,17 +542,18 @@ static void ggml_gallocr_allocate_node(ggml_gallocr_t galloc, struct ggml_tensor } } -static void ggml_gallocr_free_node(ggml_gallocr_t galloc, struct ggml_tensor * node, int buffer_id) { +static void ggml_gallocr_free_node(ggml_gallocr_t galloc, struct ggml_tensor * node) { // graph outputs are never freed if (node->flags & GGML_TENSOR_FLAG_OUTPUT) { AT_PRINTF("not freeing output %s\n", node->name); return; } - struct ggml_dyn_tallocr * alloc = galloc->buf_tallocs[buffer_id]; - ggml_backend_buffer_type_t buft = galloc->bufts[buffer_id]; struct hash_node * hn = ggml_gallocr_hash_get(galloc, node); size_t offset = hn->offset; + int buffer_id = hn->buffer_id; + struct ggml_dyn_tallocr * alloc = galloc->buf_tallocs[buffer_id]; + ggml_backend_buffer_type_t buft = galloc->bufts[buffer_id]; size_t size = ggml_backend_buft_get_alloc_size(buft, node); ggml_dyn_tallocr_free_tensor(alloc, offset, size, node); hn->allocated = false; @@ -626,11 +658,11 @@ static void ggml_gallocr_alloc_graph_impl(ggml_gallocr_t galloc, struct ggml_cgr AT_PRINTF("view_src %s: %d children, %d views\n", view_src->name, view_src_hn->n_children, view_src_hn->n_views); if (view_src_hn->n_views == 0 && view_src_hn->n_children == 0 && view_src_hn->allocated) { - ggml_gallocr_free_node(galloc, view_src, buffer_id); + ggml_gallocr_free_node(galloc, view_src); } } else if (p_hn->allocated) { - ggml_gallocr_free_node(galloc, parent, buffer_id); + ggml_gallocr_free_node(galloc, parent); } } AT_PRINTF("\n"); @@ -674,22 +706,25 @@ bool ggml_gallocr_reserve_n(ggml_gallocr_t galloc, struct ggml_cgraph * graph, c for (int i = 0; i < graph->n_nodes; i++) { struct ggml_tensor * node = graph->nodes[i]; struct node_alloc * node_alloc = &galloc->node_allocs[i]; - node_alloc->buffer_id = get_node_buffer_id(node_buffer_ids, i); if (node->view_src || node->data) { + node_alloc->dst.buffer_id = -1; node_alloc->dst.offset = SIZE_MAX; node_alloc->dst.size_max = 0; } else { struct hash_node * hn = ggml_gallocr_hash_get(galloc, node); - node_alloc->dst.offset = hn->offset; - node_alloc->dst.size_max = ggml_backend_buft_get_alloc_size(galloc->bufts[hn->buffer_id], node); + node_alloc->dst.buffer_id = hn->buffer_id; + node_alloc->dst.offset = hn->offset; + node_alloc->dst.size_max = ggml_backend_buft_get_alloc_size(galloc->bufts[hn->buffer_id], node); } for (int j = 0; j < GGML_MAX_SRC; j++) { struct ggml_tensor * src = node->src[j]; if (!src || src->view_src || src->data) { + node_alloc->src[j].buffer_id = -1; node_alloc->src[j].offset = SIZE_MAX; node_alloc->src[j].size_max = 0; } else { struct hash_node * hn = ggml_gallocr_hash_get(galloc, src); + node_alloc->src[j].buffer_id = hn->buffer_id; node_alloc->src[j].offset = hn->offset; node_alloc->src[j].size_max = ggml_backend_buft_get_alloc_size(galloc->bufts[hn->buffer_id], src); } @@ -706,9 +741,11 @@ bool ggml_gallocr_reserve_n(ggml_gallocr_t galloc, struct ggml_cgraph * graph, c struct hash_node * hn = ggml_gallocr_hash_get(galloc, leaf); galloc->leaf_allocs[i].buffer_id = hn->buffer_id; if (leaf->view_src || leaf->data) { + galloc->leaf_allocs[i].leaf.buffer_id = -1; galloc->leaf_allocs[i].leaf.offset = SIZE_MAX; galloc->leaf_allocs[i].leaf.size_max = 0; } else { + galloc->leaf_allocs[i].leaf.buffer_id = hn->buffer_id; galloc->leaf_allocs[i].leaf.offset = hn->offset; galloc->leaf_allocs[i].leaf.size_max = ggml_backend_buft_get_alloc_size(galloc->bufts[hn->buffer_id], leaf); } @@ -716,6 +753,14 @@ bool ggml_gallocr_reserve_n(ggml_gallocr_t galloc, struct ggml_cgraph * graph, c // reallocate buffers if needed for (int i = 0; i < galloc->n_buffers; i++) { + // if the buffer type is used multiple times, we reuse the same buffer + for (int j = 0; j < i; j++) { + if (galloc->buf_tallocs[j] == galloc->buf_tallocs[i]) { + galloc->buffers[i] = galloc->buffers[j]; + break; + } + } + size_t cur_size = galloc->buffers[i] ? ggml_backend_buffer_get_size(galloc->buffers[i]) : 0; size_t new_size = ggml_dyn_tallocr_max_size(galloc->buf_tallocs[i]); @@ -724,6 +769,7 @@ bool ggml_gallocr_reserve_n(ggml_gallocr_t galloc, struct ggml_cgraph * graph, c #ifndef NDEBUG fprintf(stderr, "%s: reallocating %s buffer from size %.02f MiB to %.02f MiB\n", __func__, ggml_backend_buft_name(galloc->bufts[i]), cur_size / 1024.0 / 1024.0, new_size / 1024.0 / 1024.0); #endif + ggml_backend_buffer_free(galloc->buffers[i]); galloc->buffers[i] = ggml_backend_buft_alloc_buffer(galloc->bufts[i], new_size); if (galloc->buffers[i] == NULL) { @@ -740,7 +786,8 @@ bool ggml_gallocr_reserve(ggml_gallocr_t galloc, struct ggml_cgraph *graph) { return ggml_gallocr_reserve_n(galloc, graph, NULL, NULL); } -static void ggml_gallocr_init_tensor(ggml_gallocr_t galloc, struct ggml_tensor * tensor, int buffer_id, struct tensor_alloc * tensor_alloc) { +static void ggml_gallocr_init_tensor(ggml_gallocr_t galloc, struct ggml_tensor * tensor, struct tensor_alloc * tensor_alloc) { + int buffer_id = tensor_alloc->buffer_id; assert(tensor->data || tensor->view_src || ggml_backend_buffer_get_alloc_size(galloc->buffers[buffer_id], tensor) <= tensor_alloc->size_max); if (tensor->view_src != NULL) { @@ -768,8 +815,8 @@ static void ggml_gallocr_init_tensor(ggml_gallocr_t galloc, struct ggml_tensor * } } -static bool ggml_gallocr_node_needs_realloc(ggml_gallocr_t galloc, struct ggml_tensor * node, struct node_alloc * nalloc, struct tensor_alloc * talloc) { - ggml_backend_buffer_type_t buft = galloc->bufts[nalloc->buffer_id]; +static bool ggml_gallocr_node_needs_realloc(ggml_gallocr_t galloc, struct ggml_tensor * node, struct tensor_alloc * talloc) { + ggml_backend_buffer_type_t buft = talloc->buffer_id != -1 ? galloc->bufts[talloc->buffer_id] : NULL; size_t node_size = (node->data || node->view_src) ? 0 : ggml_backend_buft_get_alloc_size(buft, node); return talloc->size_max >= node_size; } @@ -793,7 +840,7 @@ static bool ggml_gallocr_needs_realloc(ggml_gallocr_t galloc, struct ggml_cgraph struct ggml_tensor * node = graph->nodes[i]; struct node_alloc * node_alloc = &galloc->node_allocs[i]; - if (!ggml_gallocr_node_needs_realloc(galloc, node, node_alloc, &node_alloc->dst)) { + if (!ggml_gallocr_node_needs_realloc(galloc, node, &node_alloc->dst)) { #ifndef NDEBUG fprintf(stderr, "%s: node %s is not valid\n", __func__, node->name); #endif @@ -805,7 +852,7 @@ static bool ggml_gallocr_needs_realloc(ggml_gallocr_t galloc, struct ggml_cgraph if (src == NULL) { continue; } - if (!ggml_gallocr_node_needs_realloc(galloc, src, node_alloc, &node_alloc->src[j])) { + if (!ggml_gallocr_node_needs_realloc(galloc, src, &node_alloc->src[j])) { #ifndef NDEBUG fprintf(stderr, "%s: src %d (%s) of node %s is not valid\n", __func__, j, src->name, node->name); #endif @@ -846,7 +893,7 @@ bool ggml_gallocr_alloc_graph(ggml_gallocr_t galloc, struct ggml_cgraph * graph) for (int i = 0; i < graph->n_leafs; i++) { struct ggml_tensor * leaf = graph->leafs[i]; struct leaf_alloc * leaf_alloc = &galloc->leaf_allocs[i]; - ggml_gallocr_init_tensor(galloc, leaf, leaf_alloc->buffer_id, &leaf_alloc->leaf); + ggml_gallocr_init_tensor(galloc, leaf, &leaf_alloc->leaf); } // nodes for (int i = 0; i < graph->n_nodes; i++) { @@ -857,9 +904,9 @@ bool ggml_gallocr_alloc_graph(ggml_gallocr_t galloc, struct ggml_cgraph * graph) if (src == NULL) { continue; } - ggml_gallocr_init_tensor(galloc, src, node_alloc->buffer_id, &node_alloc->src[j]); + ggml_gallocr_init_tensor(galloc, src, &node_alloc->src[j]); } - ggml_gallocr_init_tensor(galloc, node, node_alloc->buffer_id, &node_alloc->dst); + ggml_gallocr_init_tensor(galloc, node, &node_alloc->dst); } return true; @@ -871,6 +918,15 @@ size_t ggml_gallocr_get_buffer_size(ggml_gallocr_t galloc, int buffer_id) { if (galloc->buffers[buffer_id] == NULL) { return 0; } + + for (int i = 0; i < buffer_id; i++) { + if (galloc->buffers[i] == galloc->buffers[buffer_id]) { + // this buffer is the same as a previous one due to the same buffer type being used multiple times + // only return the buffer size the first time it appears to avoid double counting + return 0; + } + } + return ggml_backend_buffer_get_size(galloc->buffers[buffer_id]); } diff --git a/ggml-backend-impl.h b/ggml-backend-impl.h index f121e1de420fa..36ca370867c9e 100644 --- a/ggml-backend-impl.h +++ b/ggml-backend-impl.h @@ -17,13 +17,15 @@ extern "C" { struct ggml_backend_buffer_type_i { const char * (*GGML_CALL get_name) (ggml_backend_buffer_type_t buft); + // allocate a buffer of this type ggml_backend_buffer_t (*GGML_CALL alloc_buffer) (ggml_backend_buffer_type_t buft, size_t size); - size_t (*GGML_CALL get_alignment) (ggml_backend_buffer_type_t buft); // tensor alignment - size_t (*GGML_CALL get_max_size) (ggml_backend_buffer_type_t buft); // allocation max size - size_t (*GGML_CALL get_alloc_size) (ggml_backend_buffer_type_t buft, const struct ggml_tensor * tensor); // data size needed to allocate the tensor, including padding - bool (*GGML_CALL supports_backend)(ggml_backend_buffer_type_t buft, ggml_backend_t backend); // check if the buffer type is usable by the backend + // tensor alignment + size_t (*GGML_CALL get_alignment) (ggml_backend_buffer_type_t buft); + // max buffer size that can be allocated + size_t (*GGML_CALL get_max_size) (ggml_backend_buffer_type_t buft); + // data size needed to allocate the tensor, including padding + size_t (*GGML_CALL get_alloc_size) (ggml_backend_buffer_type_t buft, const struct ggml_tensor * tensor); // check if tensor data is in host memory - // should be equivalent to supports_backend(buft, ggml_backend_cpu_init()) bool (*GGML_CALL is_host) (ggml_backend_buffer_type_t buft); }; @@ -92,27 +94,37 @@ extern "C" { void (*GGML_CALL synchronize)(ggml_backend_t backend); // compute graph with a plan (not used currently) + // create a new plan for a graph ggml_backend_graph_plan_t (*GGML_CALL graph_plan_create) (ggml_backend_t backend, const struct ggml_cgraph * cgraph); void (*GGML_CALL graph_plan_free) (ggml_backend_t backend, ggml_backend_graph_plan_t plan); + // update the plan with a new graph - this should be faster than creating a new plan when the graph has the same topology + void (*GGML_CALL graph_plan_update) (ggml_backend_t backend, ggml_backend_graph_plan_t plan, const struct ggml_cgraph * cgraph); + // compute the graph with the plan + enum ggml_status (*GGML_CALL graph_plan_compute)(ggml_backend_t backend, ggml_backend_graph_plan_t plan); - // compute graph with a plan - enum ggml_status (*GGML_CALL graph_plan_compute)(ggml_backend_t backend, ggml_backend_graph_plan_t plan); // compute graph without a plan (async) enum ggml_status (*GGML_CALL graph_compute) (ggml_backend_t backend, struct ggml_cgraph * cgraph); - // check if the backend supports an operation + // check if the backend can compute an operation bool (*GGML_CALL supports_op)(ggml_backend_t backend, const struct ggml_tensor * op); + // check if the backend can use tensors allocated in a buffer type + bool (*GGML_CALL supports_buft)(ggml_backend_t backend, ggml_backend_buffer_type_t buft); + // check if the backend wants to run an operation, even if the weights are allocated in a CPU buffer // these should be expensive operations with large batch sizes that may benefit from running on this backend // even if the weight has to be copied from the CPU temporarily bool (*GGML_CALL offload_op)(ggml_backend_t backend, const struct ggml_tensor * op); // (optional) event synchronization + // create a new event that can record events on this backend instance ggml_backend_event_t (*GGML_CALL event_new) (ggml_backend_t backend); void (*GGML_CALL event_free) (ggml_backend_event_t event); + // record an event on the backend instance that created it void (*GGML_CALL event_record) (ggml_backend_event_t event); + // wait for an event on on a different backend instance void (*GGML_CALL event_wait) (ggml_backend_t backend, ggml_backend_event_t event); + // block until an event is recorded void (*GGML_CALL event_synchronize) (ggml_backend_event_t event); }; diff --git a/ggml-backend.c b/ggml-backend.c index 05737ed696954..2bec7bea38a85 100644 --- a/ggml-backend.c +++ b/ggml-backend.c @@ -44,10 +44,6 @@ GGML_CALL size_t ggml_backend_buft_get_alloc_size(ggml_backend_buffer_type_t buf return ggml_nbytes(tensor); } -bool ggml_backend_buft_supports_backend(ggml_backend_buffer_type_t buft, ggml_backend_t backend) { - return buft->iface.supports_backend(buft, backend); -} - bool ggml_backend_buft_is_host(ggml_backend_buffer_type_t buft) { if (buft->iface.is_host) { return buft->iface.is_host(buft); @@ -286,6 +282,10 @@ bool ggml_backend_supports_op(ggml_backend_t backend, const struct ggml_tensor * return backend->iface.supports_op(backend, op); } +bool ggml_backend_supports_buft(ggml_backend_t backend, ggml_backend_buffer_type_t buft) { + return backend->iface.supports_buft(backend, buft); +} + bool ggml_backend_offload_op(ggml_backend_t backend, const struct ggml_tensor * op) { if (backend->iface.offload_op != NULL) { return backend->iface.offload_op(backend, op); @@ -639,12 +639,6 @@ GGML_CALL static size_t ggml_backend_cpu_buffer_type_get_alignment(ggml_backend_ GGML_UNUSED(buft); } -GGML_CALL static bool ggml_backend_cpu_buffer_type_supports_backend(ggml_backend_buffer_type_t buft, ggml_backend_t backend) { - return ggml_backend_is_cpu(backend); - - GGML_UNUSED(buft); -} - GGML_CALL static bool ggml_backend_cpu_buffer_type_is_host(ggml_backend_buffer_type_t buft) { return true; @@ -659,7 +653,6 @@ GGML_CALL ggml_backend_buffer_type_t ggml_backend_cpu_buffer_type(void) { /* .get_alignment = */ ggml_backend_cpu_buffer_type_get_alignment, /* .get_max_size = */ NULL, // defaults to SIZE_MAX /* .get_alloc_size = */ NULL, // defaults to ggml_nbytes - /* .supports_backend = */ ggml_backend_cpu_buffer_type_supports_backend, /* .is_host = */ ggml_backend_cpu_buffer_type_is_host, }, /* .context = */ NULL, @@ -715,7 +708,6 @@ ggml_backend_buffer_type_t ggml_backend_cpu_hbm_buffer_type(void) { /* .get_alignment = */ ggml_backend_cpu_buffer_type_get_alignment, /* .get_max_size = */ NULL, // defaults to SIZE_MAX /* .get_alloc_size = */ NULL, // defaults to ggml_nbytes - /* .supports_backend = */ ggml_backend_cpu_buffer_type_supports_backend, /* .is_host = */ ggml_backend_cpu_buffer_type_is_host, }, /* .context = */ NULL, @@ -836,6 +828,12 @@ GGML_CALL static bool ggml_backend_cpu_supports_op(ggml_backend_t backend, const GGML_UNUSED(backend); } +GGML_CALL static bool ggml_backend_cpu_supports_buft(ggml_backend_t backend, ggml_backend_buffer_type_t buft) { + return ggml_backend_buft_is_host(buft); + + GGML_UNUSED(backend); +} + static struct ggml_backend_i cpu_backend_i = { /* .get_name = */ ggml_backend_cpu_name, /* .free = */ ggml_backend_cpu_free, @@ -846,9 +844,11 @@ static struct ggml_backend_i cpu_backend_i = { /* .synchronize = */ NULL, /* .graph_plan_create = */ ggml_backend_cpu_graph_plan_create, /* .graph_plan_free = */ ggml_backend_cpu_graph_plan_free, + /* .graph_plan_update = */ NULL, /* .graph_plan_compute = */ ggml_backend_cpu_graph_plan_compute, /* .graph_compute = */ ggml_backend_cpu_graph_compute, /* .supports_op = */ ggml_backend_cpu_supports_op, + /* .supports_buft = */ ggml_backend_cpu_supports_buft, /* .offload_op = */ NULL, /* .event_new = */ NULL, /* .event_free = */ NULL, @@ -1055,6 +1055,9 @@ struct ggml_backend_sched { int * node_backend_ids; // [graph_size] int * leaf_backend_ids; // [graph_size] + int * prev_node_backend_ids; // [graph_size] + int * prev_leaf_backend_ids; // [graph_size] + // copy of the graph with modified inputs struct ggml_cgraph * graph; @@ -1075,6 +1078,8 @@ struct ggml_backend_sched { ggml_backend_sched_eval_callback callback_eval; void * callback_eval_user_data; + bool debug; + // align context_buffer to GGML_MEM_ALIGN #ifdef _MSC_VER __declspec(align(GGML_MEM_ALIGN)) @@ -1097,22 +1102,24 @@ static int ggml_backend_sched_backend_id(ggml_backend_sched_t sched, ggml_backen return -1; } -static int ggml_backend_sched_backend_from_buffer(ggml_backend_sched_t sched, const struct ggml_tensor * tensor) { +static int ggml_backend_sched_backend_from_buffer(ggml_backend_sched_t sched, const struct ggml_tensor * tensor, const struct ggml_tensor * op) { ggml_backend_buffer_t buffer = tensor->buffer; if (buffer == NULL) { return -1; } - // find highest prio backend that supports the buffer type + // find highest prio backend that supports the buffer type and the op for (int i = 0; i < sched->n_backends; i++) { - if (ggml_backend_buft_supports_backend(buffer->buft, sched->backends[i])) { + if (ggml_backend_supports_buft(sched->backends[i], buffer->buft) && + ggml_backend_supports_op(sched->backends[i], op)) { return i; } } - fprintf(stderr, "%s: error: no backend supports buffer type %s used in tensor %s\n", - __func__, ggml_backend_buffer_name(buffer), tensor->name); - GGML_ASSERT(false); +#ifndef NDEBUG + fprintf(stderr, "%s: warning: no backend supports op %s with a weight with buffer type %s used in tensor %s, the weight will need to be copied\n", + __func__, ggml_op_desc(tensor), ggml_backend_buffer_name(buffer), tensor->name); +#endif return -1; } @@ -1131,7 +1138,7 @@ static int ggml_backend_sched_backend_id_from_cur(ggml_backend_sched_t sched, st // TODO: use supports_op to check if the backend supports the op // assign pre-allocated nodes to their backend - int cur_backend_id = ggml_backend_sched_backend_from_buffer(sched, tensor); + int cur_backend_id = ggml_backend_sched_backend_from_buffer(sched, tensor, tensor); if (cur_backend_id != -1) { SET_CAUSE(tensor, "1.dst"); return cur_backend_id; @@ -1139,7 +1146,7 @@ static int ggml_backend_sched_backend_id_from_cur(ggml_backend_sched_t sched, st // view_src if (tensor->view_src != NULL) { - cur_backend_id = ggml_backend_sched_backend_from_buffer(sched, tensor->view_src); + cur_backend_id = ggml_backend_sched_backend_from_buffer(sched, tensor->view_src, tensor); if (cur_backend_id != -1) { SET_CAUSE(tensor, "1.vsrc"); return cur_backend_id; @@ -1161,7 +1168,7 @@ static int ggml_backend_sched_backend_id_from_cur(ggml_backend_sched_t sched, st continue; } if (src->buffer != NULL && src->buffer->usage == GGML_BACKEND_BUFFER_USAGE_WEIGHTS) { - int src_backend_id = ggml_backend_sched_backend_from_buffer(sched, src); + int src_backend_id = ggml_backend_sched_backend_from_buffer(sched, src, tensor); // check if a backend with higher prio wants to offload the op if (src_backend_id == sched->n_backends - 1) { for (int b = 0; b < src_backend_id; b++) { @@ -1223,10 +1230,33 @@ static void ggml_backend_sched_print_assignments(ggml_backend_sched_t sched, str } } -//#define DEBUG_PASS1 -//#define DEBUG_PASS2 -//#define DEBUG_PASS3 -//#define DEBUG_PASS4 +static bool ggml_backend_sched_buffer_supported(ggml_backend_sched_t sched, struct ggml_tensor * t, int backend_id) { + ggml_backend_buffer_t buf = t->view_src ? t->view_src->buffer : t->buffer; + ggml_backend_buffer_type_t buft = NULL; + + if (buf) { + // the tensor is already allocated + buft = buf->buft; + } else { + // see if the tensor already has a backend assigned, and use the buffer type of that backend + int tensor_backend_id = tensor_backend_id(t); + if (tensor_backend_id == -1 && t->view_src) { + tensor_backend_id = tensor_backend_id(t->view_src); + } + if (tensor_backend_id != -1) { + buft = sched->bufts[tensor_backend_id]; + } + } + + return buft != NULL && ggml_backend_supports_buft(sched->backends[backend_id], buft); +} + +static void ggml_backend_sched_set_if_supported(ggml_backend_sched_t sched, struct ggml_tensor * node, int cur_backend_id, int * node_backend_id) { + if (ggml_backend_supports_op(sched->backends[cur_backend_id], node)) { + *node_backend_id = cur_backend_id; + SET_CAUSE(node, "2.sup"); + } +} // assigns backends to ops and splits the graph into subgraphs that can be computed on the same backend static void ggml_backend_sched_split_graph(ggml_backend_sched_t sched, struct ggml_cgraph * graph) { @@ -1280,17 +1310,13 @@ static void ggml_backend_sched_split_graph(ggml_backend_sched_t sched, struct gg } } } -#ifdef DEBUG_PASS1 - fprintf(stderr, "PASS 1 ASSIGNMENTS\n"); ggml_backend_sched_print_assignments(sched, graph); -#endif // pass 2: expand current backend assignments // assign the same backend to adjacent nodes // expand gpu backends (i.e. non last prio) up and down, ignoring cpu (the lowest priority backend) // thus, cpu will never be used unless weights are on cpu, or there are no gpu ops between cpu ops - - - // pass 2.2 expand gpu down + // ops unsupported by the backend being expanded will be left unassigned so that they can be assigned later when the locations of its inputs are known + // expand gpu down { int cur_backend_id = -1; for (int i = 0; i < graph->n_nodes; i++) { @@ -1306,13 +1332,12 @@ static void ggml_backend_sched_split_graph(ggml_backend_sched_t sched, struct gg } else { cur_backend_id = *node_backend_id; } - } else { - *node_backend_id = cur_backend_id; - SET_CAUSE(node, "2.2"); + } else if (cur_backend_id != -1) { + ggml_backend_sched_set_if_supported(sched, node, cur_backend_id, node_backend_id); } } } - // pass 2.1 expand gpu up + // expand gpu up { int cur_backend_id = -1; for (int i = graph->n_nodes - 1; i >= 0; i--) { @@ -1328,13 +1353,12 @@ static void ggml_backend_sched_split_graph(ggml_backend_sched_t sched, struct gg } else { cur_backend_id = *node_backend_id; } - } else { - *node_backend_id = cur_backend_id; - SET_CAUSE(node, "2.1"); + } else if (cur_backend_id != -1) { + ggml_backend_sched_set_if_supported(sched, node, cur_backend_id, node_backend_id); } } } - // pass 2.4 expand rest down + // expand rest down { int cur_backend_id = -1; for (int i = 0; i < graph->n_nodes; i++) { @@ -1345,13 +1369,12 @@ static void ggml_backend_sched_split_graph(ggml_backend_sched_t sched, struct gg int * node_backend_id = &tensor_backend_id(node); if (*node_backend_id != -1) { cur_backend_id = *node_backend_id; - } else { - *node_backend_id = cur_backend_id; - SET_CAUSE(node, "2.4"); + } else if (cur_backend_id != -1) { + ggml_backend_sched_set_if_supported(sched, node, cur_backend_id, node_backend_id); } } } - // pass 2.3 expand rest up + // expand rest up { int cur_backend_id = -1; for (int i = graph->n_nodes - 1; i >= 0; i--) { @@ -1362,24 +1385,80 @@ static void ggml_backend_sched_split_graph(ggml_backend_sched_t sched, struct gg int * node_backend_id = &tensor_backend_id(node); if (*node_backend_id != -1) { cur_backend_id = *node_backend_id; - } else { - *node_backend_id = cur_backend_id; - SET_CAUSE(node, "2.3"); + } else if (cur_backend_id != -1) { + ggml_backend_sched_set_if_supported(sched, node, cur_backend_id, node_backend_id); } } } -#ifdef DEBUG_PASS2 - fprintf(stderr, "PASS 2 ASSIGNMENTS\n"); ggml_backend_sched_print_assignments(sched, graph); -#endif + // pass 3: upgrade nodes to higher prio backends with compatible buffer types + // if the tensor is already in the same buffer type (*) as another higher priority backend, we should move it there + // however, we also need to verify that the sources are in compatible buffer types + // (*) the actual requirement is more relaxed, the buffer type of the backend should be supported by all the users of this tensor further down the graph + // however, this is slow to verify, so we have a more strict requirement that the buffer type is the same + // this is not uncommon since multiple backends can use host memory, with the same buffer type (eg. BLAS and CPU) + // additionally, set remaining unassigned nodes to the backend with the most supported inputs + // only nodes that could not be assigned during expansion due to the backend not supporting the op should be unassigned at this point + for (int i = 0; i < graph->n_nodes; i++) { + struct ggml_tensor * node = graph->nodes[i]; + if (ggml_is_view_op(node->op)) { + continue; + } + int * node_backend_id = &tensor_backend_id(node); + if (*node_backend_id == -1) { + // unassigned node: find the backend with the most supported inputs + int n_supported_best = -1; + for (int b = 0; b < sched->n_backends; b++) { + if (ggml_backend_supports_op(sched->backends[b], node)) { + int n_supported = 0; + for (int j = 0; j < GGML_MAX_SRC; j++) { + struct ggml_tensor * src = node->src[j]; + if (src == NULL) { + continue; + } + if ((tensor_backend_id(src) != -1 || tensor_backend_id(src->view_src) != -1) && ggml_backend_sched_buffer_supported(sched, src, b)) { + n_supported++; + } + } + if (n_supported > n_supported_best) { + n_supported_best = n_supported; + *node_backend_id = b; + SET_CAUSE(node, "3.best"); + } + } + } + } else { + // assigned node: upgrade to higher prio backend if possible + for (int b = 0; b < *node_backend_id; b++) { + if (sched->bufts[b] == sched->bufts[*node_backend_id] && ggml_backend_supports_op(sched->backends[b], node)) { + bool supported = true; + for (int j = 0; j < GGML_MAX_SRC; j++) { + struct ggml_tensor * src = node->src[j]; + if (src == NULL) { + continue; + } + if (!ggml_backend_sched_buffer_supported(sched, src, b)) { + supported = false; + break; + } + } + if (supported) { + *node_backend_id = b; + SET_CAUSE(node, "3.upg"); + break; + } + } + } + } + } - // pass 3: assign backends to remaining src from dst and view_src + // pass 4: assign backends to remaining src from dst and view_src for (int i = 0; i < graph->n_nodes; i++) { struct ggml_tensor * node = graph->nodes[i]; int * cur_backend_id = &tensor_backend_id(node); if (node->view_src != NULL && *cur_backend_id == -1) { *cur_backend_id = tensor_backend_id(node->view_src); - SET_CAUSE(node, "3.vsrc"); + SET_CAUSE(node, "4.vsrc"); } for (int j = 0; j < GGML_MAX_SRC; j++) { struct ggml_tensor * src = node->src[j]; @@ -1391,17 +1470,14 @@ static void ggml_backend_sched_split_graph(ggml_backend_sched_t sched, struct gg if (src->view_src != NULL) { // views are always on the same backend as the source *src_backend_id = tensor_backend_id(src->view_src); - SET_CAUSE(src, "3.vsrc"); + SET_CAUSE(src, "4.vsrc"); } else { *src_backend_id = *cur_backend_id; - SET_CAUSE(src, "3.cur"); + SET_CAUSE(src, "4.cur"); } } } } -#ifdef DEBUG_PASS3 - fprintf(stderr, "PASS 3 ASSIGNMENTS\n"); ggml_backend_sched_print_assignments(sched, graph); -#endif // pass 4: split graph, find tensors that need to be copied { @@ -1448,10 +1524,12 @@ static void ggml_backend_sched_split_graph(ggml_backend_sched_t sched, struct gg } } // check if the split has too many inputs + // FIXME: count the number of inputs instead of only checking when full if (split->n_inputs == GGML_SCHED_MAX_SPLIT_INPUTS) { const size_t id = hash_id(src); int src_backend_id = sched->tensor_backend_id[id]; - if (src_backend_id != cur_backend_id && sched->tensor_copies[hash_id(src)][cur_backend_id][0] == NULL) { + bool supported = ggml_backend_sched_buffer_supported(sched, src, cur_backend_id); + if (src_backend_id != cur_backend_id && sched->tensor_copies[hash_id(src)][cur_backend_id][0] == NULL && !supported) { //printf("starting new split because of too many inputs: node %s, input %s\n", node->name, src->name); need_new_split = true; break; @@ -1486,7 +1564,7 @@ static void ggml_backend_sched_split_graph(ggml_backend_sched_t sched, struct gg const int src_backend_id = tensor_backend_id(src); assert(src_backend_id != -1); // all inputs should be assigned by now - if (src->flags & GGML_TENSOR_FLAG_INPUT && sched->n_copies > 1) { + if (src->flags & GGML_TENSOR_FLAG_INPUT && sched->n_copies > 1) { size_t id = hash_id(src); if (sched->tensor_copies[id][src_backend_id][0] == NULL) { ggml_backend_t backend = sched->backends[src_backend_id]; @@ -1511,7 +1589,8 @@ static void ggml_backend_sched_split_graph(ggml_backend_sched_t sched, struct gg } } - if (src_backend_id != node_backend_id) { + bool supported = ggml_backend_sched_buffer_supported(sched, src, cur_backend_id); + if (src_backend_id != cur_backend_id && !supported) { // create a copy of the input in the split's backend const size_t id = hash_id(src); if (sched->tensor_copies[id][cur_backend_id][0] == NULL) { @@ -1537,9 +1616,21 @@ static void ggml_backend_sched_split_graph(ggml_backend_sched_t sched, struct gg split->i_end = graph->n_nodes; sched->n_splits = i_split + 1; } -#ifdef DEBUG_PASS4 - fprintf(stderr, "PASS 4 ASSIGNMENTS\n"); ggml_backend_sched_print_assignments(sched, graph); -#endif + + if (sched->debug) { + ggml_backend_sched_print_assignments(sched, graph); + } + + // swap node_backend_ids and leaf_backend_ids and prevs + { + int * tmp = sched->node_backend_ids; + sched->node_backend_ids = sched->prev_node_backend_ids; + sched->prev_node_backend_ids = tmp; + + tmp = sched->leaf_backend_ids; + sched->leaf_backend_ids = sched->prev_leaf_backend_ids; + sched->prev_leaf_backend_ids = tmp; + } // create copies of the graph for each split // TODO: avoid this copy @@ -1613,8 +1704,24 @@ static void ggml_backend_sched_split_graph(ggml_backend_sched_t sched, struct gg } static bool ggml_backend_sched_alloc_splits(ggml_backend_sched_t sched) { + bool backend_ids_changed = false; + for (int i = 0; i < sched->graph->n_nodes; i++) { + if (sched->node_backend_ids[i] != sched->prev_node_backend_ids[i]) { + backend_ids_changed = true; + break; + } + } + if (!backend_ids_changed) { + for (int i = 0; i < sched->graph->n_leafs; i++) { + if (sched->leaf_backend_ids[i] != sched->prev_leaf_backend_ids[i]) { + backend_ids_changed = true; + break; + } + } + } + // allocate graph - if (!ggml_gallocr_alloc_graph(sched->galloc, sched->graph)) { + if (backend_ids_changed || !ggml_gallocr_alloc_graph(sched->galloc, sched->graph)) { // the re-allocation may cause the split inputs to be moved to a different address ggml_backend_sched_synchronize(sched); #ifndef NDEBUG @@ -1727,6 +1834,8 @@ ggml_backend_sched_t ggml_backend_sched_new( struct ggml_backend_sched * sched = calloc(1, sizeof(struct ggml_backend_sched)); + sched->debug = getenv("GGML_SCHED_DEBUG") != NULL; + // initialize hash table sched->hash_set = ggml_hash_set_new(graph_size); sched->tensor_backend_id = calloc(sched->hash_set.size, sizeof(sched->tensor_backend_id[0])); @@ -1735,6 +1844,8 @@ ggml_backend_sched_t ggml_backend_sched_new( const size_t nodes_size = graph_size + GGML_SCHED_MAX_SPLITS*GGML_SCHED_MAX_SPLIT_INPUTS*2; sched->node_backend_ids = calloc(nodes_size, sizeof(sched->node_backend_ids[0])); sched->leaf_backend_ids = calloc(nodes_size, sizeof(sched->leaf_backend_ids[0])); + sched->prev_node_backend_ids = calloc(nodes_size, sizeof(sched->prev_node_backend_ids[0])); + sched->prev_leaf_backend_ids = calloc(nodes_size, sizeof(sched->prev_leaf_backend_ids[0])); sched->n_backends = n_backends; @@ -1747,7 +1858,7 @@ ggml_backend_sched_t ggml_backend_sched_new( for (int b = 0; b < n_backends; b++) { sched->backends[b] = backends[b]; sched->bufts[b] = bufts ? bufts[b] : ggml_backend_get_default_buffer_type(backends[b]); - GGML_ASSERT(ggml_backend_buft_supports_backend(sched->bufts[b], backends[b])); + GGML_ASSERT(ggml_backend_supports_buft(backends[b], sched->bufts[b])); if (sched->n_copies > 1) { for (int c = 0; c < sched->n_copies; c++) { sched->events[b][c] = ggml_backend_event_new(backends[b]); @@ -1779,6 +1890,8 @@ void ggml_backend_sched_free(ggml_backend_sched_t sched) { free(sched->tensor_copies); free(sched->node_backend_ids); free(sched->leaf_backend_ids); + free(sched->prev_node_backend_ids); + free(sched->prev_leaf_backend_ids); free(sched); } @@ -1875,6 +1988,7 @@ void ggml_backend_sched_set_tensor_backend(ggml_backend_sched_t sched, struct gg int backend_index = ggml_backend_sched_backend_id(sched, backend); GGML_ASSERT(backend_index >= 0 && backend_index < sched->n_backends); tensor_backend_id(node) = backend_index; + SET_CAUSE(node, "usr"); } ggml_backend_t ggml_backend_sched_get_tensor_backend(ggml_backend_sched_t sched, struct ggml_tensor * node) { diff --git a/ggml-backend.h b/ggml-backend.h index c582b06850ed1..47fd814751795 100644 --- a/ggml-backend.h +++ b/ggml-backend.h @@ -23,7 +23,6 @@ extern "C" { GGML_API size_t ggml_backend_buft_get_alignment (ggml_backend_buffer_type_t buft); GGML_API size_t ggml_backend_buft_get_max_size (ggml_backend_buffer_type_t buft); GGML_API GGML_CALL size_t ggml_backend_buft_get_alloc_size (ggml_backend_buffer_type_t buft, struct ggml_tensor * tensor); - GGML_API bool ggml_backend_buft_supports_backend(ggml_backend_buffer_type_t buft, ggml_backend_t backend); GGML_API bool ggml_backend_buft_is_host (ggml_backend_buffer_type_t buft); // buffer @@ -74,6 +73,7 @@ extern "C" { GGML_API enum ggml_status ggml_backend_graph_compute (ggml_backend_t backend, struct ggml_cgraph * cgraph); GGML_API enum ggml_status ggml_backend_graph_compute_async(ggml_backend_t backend, struct ggml_cgraph * cgraph); GGML_API bool ggml_backend_supports_op(ggml_backend_t backend, const struct ggml_tensor * op); + GGML_API bool ggml_backend_supports_buft(ggml_backend_t backend, ggml_backend_buffer_type_t buft); GGML_API bool ggml_backend_offload_op(ggml_backend_t backend, const struct ggml_tensor * op); // tensor copy between different backends @@ -90,7 +90,7 @@ extern "C" { GGML_API void ggml_backend_event_free (ggml_backend_event_t event); GGML_API void ggml_backend_event_record (ggml_backend_event_t event); GGML_API void ggml_backend_event_synchronize(ggml_backend_event_t event); - GGML_API void ggml_backend_event_wait (ggml_backend_t backend, ggml_backend_event_t event); // wait async on event + GGML_API void ggml_backend_event_wait (ggml_backend_t backend, ggml_backend_event_t event); // // CPU backend @@ -119,7 +119,7 @@ extern "C" { GGML_API size_t ggml_backend_reg_get_count(void); GGML_API size_t ggml_backend_reg_find_by_name(const char * name); - GGML_API ggml_backend_t ggml_backend_reg_init_backend_from_str(const char * backend_str); // str is name[:params] + GGML_API ggml_backend_t ggml_backend_reg_init_backend_from_str(const char * backend_str); // str is backend_name:params (params is optional) GGML_API const char * ggml_backend_reg_get_name(size_t i); GGML_API ggml_backend_t ggml_backend_reg_init_backend(size_t i, const char * params); // params is backend-specific GGML_API ggml_backend_buffer_type_t ggml_backend_reg_get_default_buffer_type(size_t i); diff --git a/ggml-blas.cpp b/ggml-blas.cpp new file mode 100644 index 0000000000000..d709a357bbf29 --- /dev/null +++ b/ggml-blas.cpp @@ -0,0 +1,363 @@ +#include "ggml-blas.h" +#include "ggml-backend-impl.h" + +#include +#include + +#if defined(GGML_USE_ACCELERATE) +# include +#elif defined(GGML_BLAS_USE_MKL) +# include +#else +# include +# ifdef BLIS_ENABLE_CBLAS +# include +# endif +#endif + +struct ggml_backend_blas_context { + int n_threads = GGML_DEFAULT_N_THREADS; + std::unique_ptr work_data; + size_t work_size = 0; +#ifndef GGML_USE_OPENMP + std::vector> tasks; +#endif +}; + +// helper function to determine if it is better to use BLAS or not +// for large matrices, BLAS is faster +static bool ggml_backend_blas_use_blas(const struct ggml_tensor * dst) { + const struct ggml_tensor * src0 = dst->src[0]; + const struct ggml_tensor * src1 = dst->src[1]; + + const int64_t ne10 = src1->ne[0]; + + const int64_t ne0 = dst->ne[0]; + const int64_t ne1 = dst->ne[1]; + + // TODO: find the optimal values for these + if (ggml_is_contiguous(src0) && + ggml_is_contiguous(src1) && + src1->type == GGML_TYPE_F32 && + (ne0 >= 32 && ne1 >= 32 && ne10 >= 32)) { + + /*printf("BLAS: %d %d %d %d %d\n", ne0, ne1, ne10, ne00, ne01);*/ + return true; + } + + return false; +} + +static void ggml_backend_blas_mul_mat(ggml_backend_blas_context * ctx, struct ggml_tensor * dst) { + const struct ggml_tensor * src0 = dst->src[0]; + const struct ggml_tensor * src1 = dst->src[1]; + + GGML_TENSOR_BINARY_OP_LOCALS + + const enum ggml_type type = src0->type; + + GGML_ASSERT(ne0 == ne01); + GGML_ASSERT(ne1 == ne11); + GGML_ASSERT(ne2 == ne12); + GGML_ASSERT(ne3 == ne13); + + // we don't support permuted src0 or src1 + GGML_ASSERT(nb00 == ggml_type_size(type)); + GGML_ASSERT(nb10 == ggml_type_size(src1->type)); + + // dst cannot be transposed or permuted + GGML_ASSERT(nb0 == sizeof(float)); + GGML_ASSERT(nb0 <= nb1); + GGML_ASSERT(nb1 <= nb2); + GGML_ASSERT(nb2 <= nb3); + + // broadcast factors + const int64_t r2 = ne12/ne02; + const int64_t r3 = ne13/ne03; + + const int64_t ne_plane = ne01*ne00; + const size_t desired_wsize = type == GGML_TYPE_F32 ? 0 : ne03*ne02*ne_plane*sizeof(float); + + if (ctx->work_size < desired_wsize) { + ctx->work_data.reset(new char[desired_wsize]); + ctx->work_size = desired_wsize; + } + void * wdata = ctx->work_data.get(); + + // convert src0 to float + if (type != GGML_TYPE_F32) { + ggml_type_traits_t type_traits = ggml_internal_get_type_traits(type); + ggml_to_float_t const to_float = type_traits.to_float; + + for (int64_t i03 = 0; i03 < ne03; i03++) { + for (int64_t i02 = 0; i02 < ne02; i02++) { + const void * x = (char *) src0->data + i02*nb02 + i03*nb03; + float * const wplane = (float *) wdata + i02*ne_plane + i03*ne02*ne_plane; + + const int min_cols_per_thread = 4096; + const int min_rows_per_thread = std::max((int)(min_cols_per_thread/ne00), 1); + const int n_threads = std::max(std::min(ctx->n_threads, (int)(ne01/min_rows_per_thread)), 1); + +#ifdef GGML_USE_OPENMP + #pragma omp parallel for num_threads(n_threads) + for (int64_t i01 = 0; i01 < ne01; i01++) { + to_float((const char *) x + i01*nb01, wplane + i01*ne00, ne00); + } +#else + for (int i = 1; i < n_threads; i++) { + const int64_t start = i*ne01/n_threads; + const int64_t end = (i + 1)*ne01/n_threads; + if (start < end) { + ctx->tasks.push_back(std::async(std::launch::async, [=]() { + for (int64_t i01 = start; i01 < end; i01++) { + to_float((const char *) x + i01*nb01, wplane + i01*ne00, ne00); + } + })); + } + } + { + // reuse the current thread for the first task + const int64_t start = 0; + const int64_t end = ne01/n_threads; + for (int64_t i01 = start; i01 < end; i01++) { + to_float((const char *) x + i01*nb01, wplane + i01*ne00, ne00); + } + } +#endif + } + } + +#ifndef GGML_USE_OPENMP + // wait for all tasks to finish + for (auto & task : ctx->tasks) { + task.get(); + } + ctx->tasks.clear(); +#endif + } + +#if defined(OPENBLAS_VERSION) + openblas_set_num_threads(ctx->n_threads); +#endif + +#if defined(BLIS_ENABLE_CBLAS) + bli_thread_set_num_threads(ctx->n_threads); +#endif + + for (int64_t i13 = 0; i13 < ne13; i13++) { + for (int64_t i12 = 0; i12 < ne12; i12++) { + const int64_t i03 = i13/r3; + const int64_t i02 = i12/r2; + + const float * x = (float *) ((char *) src0->data + i02*nb02 + i03*nb03); + const float * y = (float *) ((char *) src1->data + i12*nb12 + i13*nb13); + float * d = (float *) ((char *) dst->data + i12*nb2 + i13*nb3); + + if (type != GGML_TYPE_F32) { + x = (float *) wdata + i02*ne_plane + i03*ne02*ne_plane; + } + + cblas_sgemm(CblasRowMajor, CblasNoTrans, CblasTrans, + ne1, ne01, ne10, + 1.0f, y, ne10, + x, ne00, + 0.0f, d, ne01); + } + } +} + +static void ggml_backend_blas_out_prod(ggml_backend_blas_context * ctx, struct ggml_tensor * dst) { + const struct ggml_tensor * src0 = dst->src[0]; + const struct ggml_tensor * src1 = dst->src[1]; + + GGML_TENSOR_BINARY_OP_LOCALS + + GGML_ASSERT(ne0 == ne00); + GGML_ASSERT(ne1 == ne10); + GGML_ASSERT(ne2 == ne02); + GGML_ASSERT(ne02 == ne12); + GGML_ASSERT(ne3 == ne13); + GGML_ASSERT(ne03 == ne13); + + // we don't support permuted src0 or src1 + GGML_ASSERT(nb00 == sizeof(float)); + + // dst cannot be transposed or permuted + GGML_ASSERT(nb0 == sizeof(float)); + // GGML_ASSERT(nb0 <= nb1); + // GGML_ASSERT(nb1 <= nb2); + // GGML_ASSERT(nb2 <= nb3); + + // Arguments to ggml_compute_forward_out_prod (expressed as major,minor) + // src0: (k,n) + // src1: (k,m) + // dst: (m,n) + // + // Arguments to sgemm (see https://github.com/Reference-LAPACK/lapack/blob/master/BLAS/SRC/sgemm.f) + // Also expressed as (major,minor) + // a: (m,k): so src1 transposed + // b: (k,n): so src0 + // c: (m,n) + // + // However, if ggml_is_transposed(src1) is true, then + // src1->data already contains a transposed version, so sgemm mustn't + // transpose it further. + + int n = src0->ne[0]; + int k = src0->ne[1]; + int m = src1->ne[0]; + + CBLAS_TRANSPOSE transposeA; + int lda; + + if (!ggml_is_transposed(src1)) { + transposeA = CblasTrans; + lda = m; + } else { + transposeA = CblasNoTrans; + lda = k; + } + + float * a = (float *) ((char *) src1->data); + float * b = (float *) ((char *) src0->data); + float * c = (float *) ((char *) dst->data); + + cblas_sgemm(CblasRowMajor, transposeA, CblasNoTrans, m, n, k, 1.0, a, lda, b, n, 0.0, c, n); + + GGML_UNUSED(ctx); +} + +// backend interface + +GGML_CALL static const char * ggml_backend_blas_name(ggml_backend_t backend) { + return "BLAS"; + + GGML_UNUSED(backend); +} + +GGML_CALL static void ggml_backend_blas_free(ggml_backend_t backend) { + ggml_backend_blas_context * ctx = (ggml_backend_blas_context *)backend->context; + delete ctx; + delete backend; +} + +GGML_CALL static ggml_backend_buffer_type_t ggml_backend_blas_get_default_buffer_type(ggml_backend_t backend) { + return ggml_backend_cpu_buffer_type(); + + GGML_UNUSED(backend); +} + +GGML_CALL static enum ggml_status ggml_backend_blas_graph_compute(ggml_backend_t backend, struct ggml_cgraph * cgraph) { + ggml_backend_blas_context * ctx = (ggml_backend_blas_context *)backend->context; + + for (int i = 0; i < cgraph->n_nodes; i++) { + struct ggml_tensor * node = cgraph->nodes[i]; + + switch (node->op) { + case GGML_OP_MUL_MAT: + ggml_backend_blas_mul_mat(ctx, node); + break; + + case GGML_OP_OUT_PROD: + ggml_backend_blas_out_prod(ctx, node); + break; + + case GGML_OP_NONE: + case GGML_OP_RESHAPE: + case GGML_OP_VIEW: + case GGML_OP_PERMUTE: + case GGML_OP_TRANSPOSE: + break; + + default: + fprintf(stderr, "%s: unsupported op %s\n", __func__, ggml_op_desc(node)); + GGML_ASSERT(false); + } + } + + return GGML_STATUS_SUCCESS; + + GGML_UNUSED(backend); +} + +GGML_CALL static bool ggml_backend_blas_supports_op(ggml_backend_t backend, const struct ggml_tensor * op) { + const struct ggml_tensor * src0 = op->src[0]; + const struct ggml_tensor * src1 = op->src[1]; + + return (op->op == GGML_OP_MUL_MAT && ggml_backend_blas_use_blas(op)) || + (op->op == GGML_OP_OUT_PROD && op->src[0]->type == GGML_TYPE_F32 && + op->src[1]->type == GGML_TYPE_F32 && + ggml_is_matrix(src0) && + ggml_is_matrix(src1) && + ggml_is_contiguous(src0) && + (ggml_is_contiguous(src1) || ggml_is_transposed(src1))); + + GGML_UNUSED(backend); +} + +GGML_CALL static bool ggml_backend_blas_supports_buft(ggml_backend_t backend, ggml_backend_buffer_type_t buft) { + return ggml_backend_buft_is_host(buft); + + GGML_UNUSED(backend); +} + +static struct ggml_backend_i blas_backend_i = { + /* .get_name = */ ggml_backend_blas_name, + /* .free = */ ggml_backend_blas_free, + /* .get_default_buffer_type = */ ggml_backend_blas_get_default_buffer_type, + /* .set_tensor_async = */ NULL, + /* .get_tensor_async = */ NULL, + /* .cpy_tensor_async = */ NULL, + /* .synchronize = */ NULL, + /* .graph_plan_create = */ NULL, + /* .graph_plan_free = */ NULL, + /* .graph_plan_update = */ NULL, + /* .graph_plan_compute = */ NULL, + /* .graph_compute = */ ggml_backend_blas_graph_compute, + /* .supports_op = */ ggml_backend_blas_supports_op, + /* .supports_buft = */ ggml_backend_blas_supports_buft, + /* .offload_op = */ NULL, + /* .event_new = */ NULL, + /* .event_free = */ NULL, + /* .event_record = */ NULL, + /* .event_wait = */ NULL, + /* .event_synchronize = */ NULL, +}; + +static ggml_guid_t ggml_backend_blas_guid(void) { + static ggml_guid guid = { 0x12, 0xa8, 0xae, 0xf4, 0xc0, 0x1e, 0x61, 0x97, 0x8f, 0xeb, 0x33, 0x04, 0xa1, 0x33, 0x51, 0x2d }; + return &guid; +} + +ggml_backend_t ggml_backend_blas_init(void) { + ggml_backend_blas_context * ctx = new ggml_backend_blas_context; + + ggml_backend_t backend = new ggml_backend { + /* .guid = */ ggml_backend_blas_guid(), + /* .interface = */ blas_backend_i, + /* .context = */ ctx, + }; + +#if !defined(NDEBUG) && defined(OPENBLAS_VERSION) && defined(GGML_USE_OPENMP) + if (openblas_get_parallel() != OPENBLAS_OPENMP) { + fprintf(stderr, "%s: warning: ggml is using OpenMP, but OpenBLAS was compiled without OpenMP support\n", __func__); + } +#endif + +#if !defined(NDEBUG) && defined(BLIS_ENABLE_CBLAS) && defined(GGML_USE_OPENMP) && !defined(BLIS_ENABLE_OPENMP) + fprintf(stderr, "%s: warning: ggml is using OpenMP, but BLIS was compiled without OpenMP support\n", __func__); +#endif + + return backend; +} + +GGML_CALL bool ggml_backend_is_blas(ggml_backend_t backend) { + return backend != NULL && ggml_guid_matches(backend->guid, ggml_backend_blas_guid()); +} + +void ggml_backend_blas_set_n_threads(ggml_backend_t backend_blas, int n_threads) { + GGML_ASSERT(ggml_backend_is_blas(backend_blas)); + + ggml_backend_blas_context * ctx = (ggml_backend_blas_context *)backend_blas->context; + ctx->n_threads = n_threads; +} diff --git a/ggml-blas.h b/ggml-blas.h new file mode 100644 index 0000000000000..f2e37de06f609 --- /dev/null +++ b/ggml-blas.h @@ -0,0 +1,23 @@ +#pragma once + +#include "ggml.h" +#include "ggml-backend.h" + + +#ifdef __cplusplus +extern "C" { +#endif + +// backend API +GGML_API GGML_CALL ggml_backend_t ggml_backend_blas_init(void); + +GGML_API GGML_CALL bool ggml_backend_is_blas(ggml_backend_t backend); + +// number of threads used for conversion to float +// for openblas and blis, this will also set the number of threads used for blas operations +GGML_API GGML_CALL void ggml_backend_blas_set_n_threads(ggml_backend_t backend_blas, int n_threads); + + +#ifdef __cplusplus +} +#endif diff --git a/ggml-cuda.cu b/ggml-cuda.cu index c6bc3f64c90de..64d3b6747fc41 100644 --- a/ggml-cuda.cu +++ b/ggml-cuda.cu @@ -543,6 +543,10 @@ GGML_CALL static const char * ggml_backend_cuda_buffer_type_name(ggml_backend_bu return ctx->name.c_str(); } +static bool ggml_backend_buft_is_cuda(ggml_backend_buffer_type_t buft) { + return buft->iface.get_name == ggml_backend_cuda_buffer_type_name; +} + GGML_CALL static ggml_backend_buffer_t ggml_backend_cuda_buffer_type_alloc_buffer(ggml_backend_buffer_type_t buft, size_t size) { ggml_backend_cuda_buffer_type_context * buft_ctx = (ggml_backend_cuda_buffer_type_context *)buft->context; @@ -585,24 +589,12 @@ GGML_CALL static size_t ggml_backend_cuda_buffer_type_get_alloc_size(ggml_backen GGML_UNUSED(buft); } -GGML_CALL static bool ggml_backend_cuda_buffer_type_supports_backend(ggml_backend_buffer_type_t buft, ggml_backend_t backend) { - if (!ggml_backend_is_cuda(backend)) { - return false; - } - - ggml_backend_cuda_buffer_type_context * buft_ctx = (ggml_backend_cuda_buffer_type_context *)buft->context; - ggml_backend_cuda_context * cuda_ctx = (ggml_backend_cuda_context *)backend->context; - - return buft_ctx->device == cuda_ctx->device; -} - static ggml_backend_buffer_type_i ggml_backend_cuda_buffer_type_interface = { /* .get_name = */ ggml_backend_cuda_buffer_type_name, /* .alloc_buffer = */ ggml_backend_cuda_buffer_type_alloc_buffer, /* .get_alignment = */ ggml_backend_cuda_buffer_type_get_alignment, /* .get_max_size = */ NULL, // defaults to SIZE_MAX /* .get_alloc_size = */ ggml_backend_cuda_buffer_type_get_alloc_size, - /* .supports_backend = */ ggml_backend_cuda_buffer_type_supports_backend, /* .is_host = */ NULL, }; @@ -863,6 +855,10 @@ GGML_CALL static const char * ggml_backend_cuda_split_buffer_type_name(ggml_back GGML_UNUSED(buft); } +static bool ggml_backend_buft_is_cuda_split(ggml_backend_buffer_type_t buft) { + return buft->iface.get_name == ggml_backend_cuda_split_buffer_type_name; +} + GGML_CALL static ggml_backend_buffer_t ggml_backend_cuda_split_buffer_type_alloc_buffer(ggml_backend_buffer_type_t buft, size_t size) { // since we don't know the exact split after rounding, we cannot allocate the device buffers at this point // instead, we allocate them for each tensor separately in init_tensor @@ -906,12 +902,6 @@ GGML_CALL static size_t ggml_backend_cuda_split_buffer_type_get_alloc_size(ggml_ return total_size; } -GGML_CALL static bool ggml_backend_cuda_split_buffer_type_supports_backend(ggml_backend_buffer_type_t buft, ggml_backend_t backend) { - return ggml_backend_is_cuda(backend); - - GGML_UNUSED(buft); -} - GGML_CALL static bool ggml_backend_cuda_split_buffer_type_is_host(ggml_backend_buffer_type_t buft) { return false; @@ -924,7 +914,6 @@ static ggml_backend_buffer_type_i ggml_backend_cuda_split_buffer_type_interface /* .get_alignment = */ ggml_backend_cuda_split_buffer_type_get_alignment, /* .get_max_size = */ NULL, // defaults to SIZE_MAX /* .get_alloc_size = */ ggml_backend_cuda_split_buffer_type_get_alloc_size, - /* .supports_backend = */ ggml_backend_cuda_split_buffer_type_supports_backend, /* .is_host = */ ggml_backend_cuda_split_buffer_type_is_host, }; @@ -1024,7 +1013,6 @@ GGML_CALL ggml_backend_buffer_type_t ggml_backend_cuda_host_buffer_type() { /* .get_alignment = */ ggml_backend_cpu_buffer_type()->iface.get_alignment, /* .get_max_size = */ NULL, // defaults to SIZE_MAX /* .get_alloc_size = */ ggml_backend_cpu_buffer_type()->iface.get_alloc_size, - /* .supports_backend = */ ggml_backend_cpu_buffer_type()->iface.supports_backend, /* .is_host = */ ggml_backend_cpu_buffer_type()->iface.is_host, }, /* .context = */ nullptr, @@ -2879,6 +2867,20 @@ GGML_CALL static bool ggml_backend_cuda_supports_op(ggml_backend_t backend, cons GGML_UNUSED(backend); } +GGML_CALL static bool ggml_backend_cuda_supports_buft(ggml_backend_t backend, ggml_backend_buffer_type_t buft) { + if (ggml_backend_buft_is_cuda_split(buft)) { + return true; + } + + if (ggml_backend_buft_is_cuda(buft)) { + ggml_backend_cuda_context * cuda_ctx = (ggml_backend_cuda_context *)backend->context; + ggml_backend_cuda_buffer_type_context * buft_ctx = (ggml_backend_cuda_buffer_type_context *)buft->context; + return buft_ctx->device == cuda_ctx->device; + } + + return false; +} + GGML_CALL static bool ggml_backend_cuda_offload_op(ggml_backend_t backend, const ggml_tensor * op) { const int min_batch_size = 32; @@ -2951,9 +2953,11 @@ static ggml_backend_i ggml_backend_cuda_interface = { /* .synchronize = */ ggml_backend_cuda_synchronize, /* .graph_plan_create = */ NULL, /* .graph_plan_free = */ NULL, + /* .graph_plan_update = */ NULL, /* .graph_plan_compute = */ NULL, /* .graph_compute = */ ggml_backend_cuda_graph_compute, /* .supports_op = */ ggml_backend_cuda_supports_op, + /* .supports_buft = */ ggml_backend_cuda_supports_buft, /* .offload_op = */ ggml_backend_cuda_offload_op, /* .event_new = */ ggml_backend_cuda_event_new, /* .event_free = */ ggml_backend_cuda_event_free, diff --git a/ggml-kompute.cpp b/ggml-kompute.cpp index 18c6f4a104f36..ed5f2e3494ba4 100644 --- a/ggml-kompute.cpp +++ b/ggml-kompute.cpp @@ -1902,18 +1902,12 @@ static size_t ggml_backend_vk_buffer_type_get_max_size(ggml_backend_buffer_type_ return ctx->max_alloc; } -static bool ggml_backend_kompute_buffer_type_supports_backend(ggml_backend_buffer_type_t buft, ggml_backend_t backend) { - GGML_UNUSED(buft); - return ggml_backend_is_kompute(backend); -} - static ggml_backend_buffer_type_i ggml_backend_kompute_buffer_type_interface = { /* .get_name = */ ggml_backend_kompute_buffer_type_get_name, /* .alloc_buffer = */ ggml_backend_kompute_buffer_type_alloc_buffer, /* .get_alignment = */ ggml_backend_kompute_buffer_type_get_alignment, /* .get_max_size = */ ggml_backend_vk_buffer_type_get_max_size, /* .get_alloc_size = */ NULL, // defaults to ggml_nbytes - /* .supports_backend = */ ggml_backend_kompute_buffer_type_supports_backend, /* .is_host = */ NULL, }; @@ -1973,6 +1967,11 @@ static bool ggml_backend_kompute_supports_op(ggml_backend_t backend, const struc return ggml_vk_supports_op(op); } +static bool ggml_backend_kompute_supports_buft(ggml_backend_t backend, ggml_backend_buffer_type_t buft) { + GGML_UNUSED(backend); + return buft->iface.get_name == ggml_backend_kompute_buffer_type_get_name; +} + static struct ggml_backend_i kompute_backend_i = { /* .get_name = */ ggml_backend_kompute_name, /* .free = */ ggml_backend_kompute_free, @@ -1983,9 +1982,11 @@ static struct ggml_backend_i kompute_backend_i = { /* .synchronize = */ NULL, /* .graph_plan_create = */ NULL, /* .graph_plan_free = */ NULL, + /* .graph_plan_update = */ NULL, /* .graph_plan_compute = */ NULL, /* .graph_compute = */ ggml_backend_kompute_graph_compute, /* .supports_op = */ ggml_backend_kompute_supports_op, + /* .supports_buft = */ ggml_backend_kompute_supports_buft, /* .offload_op = */ NULL, /* .event_new = */ NULL, /* .event_free = */ NULL, diff --git a/ggml-metal.m b/ggml-metal.m index b5c287347e7c9..ec9e95302096c 100644 --- a/ggml-metal.m +++ b/ggml-metal.m @@ -3044,12 +3044,6 @@ GGML_CALL static size_t ggml_backend_metal_buffer_type_get_max_size(ggml_backend UNUSED(buft); } -GGML_CALL static bool ggml_backend_metal_buffer_type_supports_backend(ggml_backend_buffer_type_t buft, ggml_backend_t backend) { - return ggml_backend_is_metal(backend) || ggml_backend_is_cpu(backend); - - UNUSED(buft); -} - GGML_CALL static bool ggml_backend_metal_buffer_type_is_host(ggml_backend_buffer_type_t buft) { return true; @@ -3064,7 +3058,6 @@ GGML_CALL ggml_backend_buffer_type_t ggml_backend_metal_buffer_type(void) { /* .get_alignment = */ ggml_backend_metal_buffer_type_get_alignment, /* .get_max_size = */ ggml_backend_metal_buffer_type_get_max_size, /* .get_alloc_size = */ NULL, // defaults to ggml_nbytes - /* .supports_backend = */ ggml_backend_metal_buffer_type_supports_backend, /* .is_host = */ ggml_backend_metal_buffer_type_is_host, }, /* .context = */ NULL, @@ -3179,6 +3172,12 @@ GGML_CALL static bool ggml_backend_metal_supports_op(ggml_backend_t backend, con return ggml_metal_supports_op(metal_ctx, op); } +GGML_CALL static bool ggml_backend_metal_supports_buft(ggml_backend_t backend, ggml_backend_buffer_type_t buft) { + return buft->iface.get_name == ggml_backend_metal_buffer_type_get_name; + + UNUSED(backend); +} + static struct ggml_backend_i ggml_backend_metal_i = { /* .get_name = */ ggml_backend_metal_name, /* .free = */ ggml_backend_metal_free, @@ -3189,9 +3188,11 @@ GGML_CALL static bool ggml_backend_metal_supports_op(ggml_backend_t backend, con /* .synchronize = */ NULL, /* .graph_plan_create = */ NULL, /* .graph_plan_free = */ NULL, + /* .graph_plan_update = */ NULL, /* .graph_plan_compute = */ NULL, /* .graph_compute = */ ggml_backend_metal_graph_compute, /* .supports_op = */ ggml_backend_metal_supports_op, + /* .supports_buft = */ ggml_backend_metal_supports_buft, /* .offload_op = */ NULL, /* .event_new = */ NULL, /* .event_free = */ NULL, diff --git a/ggml-rpc.cpp b/ggml-rpc.cpp index 679ce4f280c5f..9b95193d3229d 100644 --- a/ggml-rpc.cpp +++ b/ggml-rpc.cpp @@ -540,22 +540,12 @@ GGML_CALL static size_t ggml_backend_rpc_buffer_type_get_alloc_size(ggml_backend return ggml_nbytes(tensor); } -GGML_CALL static bool ggml_backend_rpc_buffer_type_supports_backend(ggml_backend_buffer_type_t buft, ggml_backend_t backend) { - if (!ggml_backend_is_rpc(backend)) { - return false; - } - ggml_backend_rpc_buffer_type_context * buft_ctx = (ggml_backend_rpc_buffer_type_context *)buft->context; - ggml_backend_rpc_context * rpc_ctx = (ggml_backend_rpc_context *)backend->context; - return buft_ctx->endpoint == rpc_ctx->endpoint; -} - static ggml_backend_buffer_type_i ggml_backend_rpc_buffer_type_interface = { /* .get_name = */ ggml_backend_rpc_buffer_type_name, /* .alloc_buffer = */ ggml_backend_rpc_buffer_type_alloc_buffer, /* .get_alignment = */ ggml_backend_rpc_buffer_type_get_alignment, /* .get_max_size = */ ggml_backend_rpc_get_max_size, /* .get_alloc_size = */ ggml_backend_rpc_buffer_type_get_alloc_size, - /* .supports_backend = */ ggml_backend_rpc_buffer_type_supports_backend, /* .is_host = */ NULL, }; @@ -638,6 +628,15 @@ GGML_CALL static bool ggml_backend_rpc_supports_op(ggml_backend_t backend, const return false; } +GGML_CALL static bool ggml_backend_rpc_supports_buft(ggml_backend_t backend, ggml_backend_buffer_type_t buft) { + if (buft->iface.get_name == ggml_backend_rpc_buffer_type_name) { + return false; + } + ggml_backend_rpc_buffer_type_context * buft_ctx = (ggml_backend_rpc_buffer_type_context *)buft->context; + ggml_backend_rpc_context * rpc_ctx = (ggml_backend_rpc_context *)backend->context; + return buft_ctx->endpoint == rpc_ctx->endpoint; +} + static ggml_backend_i ggml_backend_rpc_interface = { /* .get_name = */ ggml_backend_rpc_name, /* .free = */ ggml_backend_rpc_free, @@ -648,9 +647,11 @@ static ggml_backend_i ggml_backend_rpc_interface = { /* .synchronize = */ ggml_backend_rpc_synchronize, /* .graph_plan_create = */ NULL, /* .graph_plan_free = */ NULL, + /* .graph_plan_update = */ NULL, /* .graph_plan_compute = */ NULL, /* .graph_compute = */ ggml_backend_rpc_graph_compute, /* .supports_op = */ ggml_backend_rpc_supports_op, + /* .supports_buft = */ ggml_backend_rpc_supports_buft, /* .offload_op = */ NULL, /* .event_new = */ NULL, /* .event_free = */ NULL, diff --git a/ggml-sycl.cpp b/ggml-sycl.cpp index e7d260bd4ebe3..6f41ed2723794 100644 --- a/ggml-sycl.cpp +++ b/ggml-sycl.cpp @@ -16575,22 +16575,12 @@ GGML_CALL static size_t ggml_backend_sycl_buffer_type_get_alloc_size(ggml_backen UNUSED(buft); } -GGML_CALL static bool ggml_backend_sycl_buffer_type_supports_backend(ggml_backend_buffer_type_t buft, ggml_backend_t backend) { - if (!ggml_backend_is_sycl(backend)) { - return false; - } - ggml_backend_sycl_buffer_type_context * buft_ctx = (ggml_backend_sycl_buffer_type_context *)buft->context; - ggml_backend_sycl_context * sycl_ctx = (ggml_backend_sycl_context *)backend->context; - return buft_ctx->device == sycl_ctx->device; -} - static ggml_backend_buffer_type_i ggml_backend_sycl_buffer_type_interface = { /* .get_name = */ ggml_backend_sycl_buffer_type_name, /* .alloc_buffer = */ ggml_backend_sycl_buffer_type_alloc_buffer, /* .get_alignment = */ ggml_backend_sycl_buffer_type_get_alignment, /* .get_max_size = */ ggml_backend_sycl_buffer_type_get_max_size, /* .get_alloc_size = */ ggml_backend_sycl_buffer_type_get_alloc_size, - /* .supports_backend = */ ggml_backend_sycl_buffer_type_supports_backend, /* .is_host = */ nullptr, }; @@ -16942,12 +16932,6 @@ GGML_CALL static size_t ggml_backend_sycl_split_buffer_type_get_alloc_size(ggml_ return total_size; } -GGML_CALL static bool ggml_backend_sycl_split_buffer_type_supports_backend(ggml_backend_buffer_type_t buft, ggml_backend_t backend) { - return ggml_backend_is_sycl(backend); - - UNUSED(buft); -} - GGML_CALL static bool ggml_backend_sycl_split_buffer_type_is_host(ggml_backend_buffer_type_t buft) { return false; @@ -16960,7 +16944,6 @@ static ggml_backend_buffer_type_i ggml_backend_sycl_split_buffer_type_interface /* .get_alignment = */ ggml_backend_sycl_split_buffer_type_get_alignment, /* .get_max_size = */ NULL, // defaults to SIZE_MAX /* .get_alloc_size = */ ggml_backend_sycl_split_buffer_type_get_alloc_size, - /* .supports_backend = */ ggml_backend_sycl_split_buffer_type_supports_backend, /* .is_host = */ ggml_backend_sycl_split_buffer_type_is_host, }; @@ -17046,7 +17029,6 @@ ggml_backend_buffer_type_t ggml_backend_sycl_host_buffer_type() { /* .get_alignment = */ ggml_backend_cpu_buffer_type()->iface.get_alignment, /* .get_max_size = */ NULL, // TODO: return device.maxBufferLength /* .get_alloc_size = */ ggml_backend_cpu_buffer_type()->iface.get_alloc_size, - /* .supports_backend = */ ggml_backend_cpu_buffer_type()->iface.supports_backend, /* .is_host = */ ggml_backend_cpu_buffer_type()->iface.is_host, }, /* .context = */ nullptr, @@ -17311,6 +17293,14 @@ GGML_CALL static bool ggml_backend_sycl_offload_op(ggml_backend_t backend, const GGML_UNUSED(backend); } +GGML_CALL static bool ggml_backend_sycl_supports_buft(ggml_backend_t backend, ggml_backend_buffer_type_t buft) { + if (buft->iface.get_name != ggml_backend_sycl_buffer_type_name) { + return false; + } + ggml_backend_sycl_buffer_type_context * buft_ctx = (ggml_backend_sycl_buffer_type_context *)buft->context; + ggml_backend_sycl_context * sycl_ctx = (ggml_backend_sycl_context *)backend->context; + return buft_ctx->device == sycl_ctx->device; +} static ggml_backend_i ggml_backend_sycl_interface = { /* .get_name = */ ggml_backend_sycl_name, @@ -17322,9 +17312,11 @@ static ggml_backend_i ggml_backend_sycl_interface = { /* .synchronize = */ ggml_backend_sycl_synchronize, /* .graph_plan_create = */ NULL, /* .graph_plan_free = */ NULL, + /* .graph_plan_update = */ NULL, /* .graph_plan_compute = */ NULL, /* .graph_compute = */ ggml_backend_sycl_graph_compute, /* .supports_op = */ ggml_backend_sycl_supports_op, + /* .supports_buft = */ ggml_backend_sycl_supports_buft, /* .offload_op = */ ggml_backend_sycl_offload_op, /* .event_new = */ NULL, /* .event_free = */ NULL, diff --git a/ggml-vulkan.cpp b/ggml-vulkan.cpp index 5b92804915658..e2d17a3523a48 100644 --- a/ggml-vulkan.cpp +++ b/ggml-vulkan.cpp @@ -6142,24 +6142,12 @@ GGML_CALL static size_t ggml_backend_vk_buffer_type_get_alloc_size(ggml_backend_ UNUSED(buft); } -GGML_CALL static bool ggml_backend_vk_buffer_type_supports_backend(ggml_backend_buffer_type_t buft, ggml_backend_t backend) { - if (!ggml_backend_is_vk(backend)) { - return false; - } - - ggml_backend_vk_buffer_type_context * buft_ctx = (ggml_backend_vk_buffer_type_context *)buft->context; - ggml_backend_vk_context * ctx = (ggml_backend_vk_context *)backend->context; - - return buft_ctx->ctx->idx == ctx->idx; -} - static ggml_backend_buffer_type_i ggml_backend_vk_buffer_type_interface = { /* .get_name = */ ggml_backend_vk_buffer_type_name, /* .alloc_buffer = */ ggml_backend_vk_buffer_type_alloc_buffer, /* .get_alignment = */ ggml_backend_vk_buffer_type_get_alignment, /* .get_max_size = */ ggml_backend_vk_buffer_type_get_max_size, /* .get_alloc_size = */ ggml_backend_vk_buffer_type_get_alloc_size, - /* .supports_backend = */ ggml_backend_vk_buffer_type_supports_backend, /* .is_host = */ NULL, }; @@ -6235,7 +6223,6 @@ GGML_CALL ggml_backend_buffer_type_t ggml_backend_vk_host_buffer_type() { /* .get_alignment = */ ggml_backend_vk_host_buffer_type_get_alignment, /* .get_max_size = */ NULL, // defaults to SIZE_MAX /* .get_alloc_size = */ ggml_backend_cpu_buffer_type()->iface.get_alloc_size, - /* .supports_backend = */ ggml_backend_cpu_buffer_type()->iface.supports_backend, /* .is_host = */ ggml_backend_cpu_buffer_type()->iface.is_host, }, /* .context = */ nullptr, @@ -6551,6 +6538,17 @@ GGML_CALL static bool ggml_backend_vk_offload_op(ggml_backend_t backend, const g UNUSED(backend); } +GGML_CALL static bool ggml_backend_vk_supports_buft(ggml_backend_t backend, ggml_backend_buffer_type_t buft) { + if (buft->iface.get_name != ggml_backend_vk_buffer_type_name) { + return false; + } + + ggml_backend_vk_buffer_type_context * buft_ctx = (ggml_backend_vk_buffer_type_context *)buft->context; + ggml_backend_vk_context * ctx = (ggml_backend_vk_context *)backend->context; + + return buft_ctx->ctx->idx == ctx->idx; +} + // TODO: enable async and synchronize static ggml_backend_i ggml_backend_vk_interface = { /* .get_name = */ ggml_backend_vk_name, @@ -6562,9 +6560,11 @@ static ggml_backend_i ggml_backend_vk_interface = { /* .synchronize = */ NULL, // ggml_backend_vk_synchronize, /* .graph_plan_create = */ NULL, /* .graph_plan_free = */ NULL, + /* .graph_plan_update = */ NULL, /* .graph_plan_compute = */ NULL, /* .graph_compute = */ ggml_backend_vk_graph_compute, /* .supports_op = */ ggml_backend_vk_supports_op, + /* .supports_buft = */ ggml_backend_vk_supports_buft, /* .offload_op = */ ggml_backend_vk_offload_op, /* .event_new = */ NULL, /* .event_free = */ NULL, diff --git a/ggml.c b/ggml.c index 2ea1d76773893..d5d33c2ba1029 100644 --- a/ggml.c +++ b/ggml.c @@ -297,12 +297,6 @@ inline static void * ggml_calloc(size_t num, size_t size) { #if defined(GGML_USE_ACCELERATE) #include -#elif defined(GGML_USE_OPENBLAS) -#if defined(GGML_BLAS_USE_MKL) -#include -#else -#include -#endif #endif // floating point type used to accumulate sums @@ -12179,39 +12173,6 @@ static void ggml_compute_forward_group_norm( // ggml_compute_forward_mul_mat -#if defined(GGML_USE_ACCELERATE) || defined(GGML_USE_OPENBLAS) -// helper function to determine if it is better to use BLAS or not -// for large matrices, BLAS is faster -static bool ggml_compute_forward_mul_mat_use_blas(struct ggml_tensor * dst) { - const struct ggml_tensor * src0 = dst->src[0]; - const struct ggml_tensor * src1 = dst->src[1]; - - //const int64_t ne00 = src0->ne[0]; - //const int64_t ne01 = src0->ne[1]; - - const int64_t ne10 = src1->ne[0]; - - const int64_t ne0 = dst->ne[0]; - const int64_t ne1 = dst->ne[1]; - - // NOTE: with GGML_OP_MUL_MAT_ID we don't want to go through the BLAS branch because it will dequantize (to_float) - // all the experts for each batch element and the processing would become incredibly slow - // TODO: find the optimal values for these - if (dst->op != GGML_OP_MUL_MAT_ID && - ggml_is_contiguous(src0) && - ggml_is_contiguous(src1) && - //src0->type == GGML_TYPE_F32 && - src1->type == GGML_TYPE_F32 && - (ne0 >= 32 && ne1 >= 32 && ne10 >= 32)) { - - /*printf("BLAS: %d %d %d %d %d\n", ne0, ne1, ne10, ne00, ne01);*/ - return true; - } - - return false; -} -#endif - static void ggml_compute_forward_mul_mat_one_chunk( const struct ggml_compute_params * params, struct ggml_tensor * dst, @@ -12349,73 +12310,6 @@ static void ggml_compute_forward_mul_mat( // nb01 >= nb00 - src0 is not transposed // compute by src0 rows -#if defined(GGML_USE_ACCELERATE) || defined(GGML_USE_OPENBLAS) - if (ggml_compute_forward_mul_mat_use_blas(dst)) { - const int64_t ne_plane = ne01*ne00; - const size_t desired_wsize = ne13*ne12*ne_plane*sizeof(float); - UNUSED(desired_wsize); - - if (params->type == GGML_TASK_TYPE_INIT) { - if (type != GGML_TYPE_F32) { - assert(params->wsize >= desired_wsize); - // parallelize by src0 rows - for (int64_t i13 = 0; i13 < ne13; i13++) { - for (int64_t i12 = 0; i12 < ne12; i12++) { - // broadcast src0 into src1 across 2nd,3rd dimension - const int64_t i03 = i13/r3; - const int64_t i02 = i12/r2; - - const void * x = (char *) src0->data + i02*nb02 + i03*nb03; - float * const wdata = (float *) params->wdata + i13*ne12*ne_plane + i12*ne_plane; - ggml_to_float_t const to_float = type_traits[type].to_float; - - for (int64_t i01 = ith; i01 < ne01; i01 += nth) { - to_float((const char *) x + i01*nb01, wdata + i01*ne00, ne00); - } - } - } - } - return; - } - - if (params->type == GGML_TASK_TYPE_FINALIZE) { - return; - } - - // perform sgemm, parallelization controlled by blas lib - if (ith != 0) { - return; - } - - //const int64_t tgemm0 = ggml_perf_time_us(); - for (int64_t i13 = 0; i13 < ne13; i13++) { - for (int64_t i12 = 0; i12 < ne12; i12++) { - const int64_t i03 = i13/r3; - const int64_t i02 = i12/r2; - - const void * x = (char *) src0->data + i02*nb02 + i03*nb03; - const float * y = (float *) ((char *) src1->data + i12*nb12 + i13*nb13); - float * d = (float *) ((char *) dst->data + i12*nb2 + i13*nb3); - - if (type != GGML_TYPE_F32) { - x = (float *) params->wdata + i13*ne12*ne_plane + i12*ne_plane; - } - - cblas_sgemm(CblasRowMajor, CblasNoTrans, CblasTrans, - ne1, ne01, ne10, - 1.0f, y, ne10, - x, ne00, - 0.0f, d, ne01); - } - } - //printf("cblas_sgemm = %.3f ms, %lld flops\n", (ggml_perf_time_us() - tgemm0)/1000.0, ne13*ne12*ne1*ne01*ne10*2); - - //printf("CBLAS = %f ms, %d x %d x %d x %d\n", (ggml_perf_time_us() - t0)/1000.0, ne0, ne1, ne2, ne3); - - return; - } -#endif - #if GGML_USE_LLAMAFILE const bool src1_cont = ggml_is_contiguous(src1); @@ -12796,19 +12690,7 @@ static void ggml_compute_forward_out_prod_f32( // nb01 >= nb00 - src0 is not transposed // compute by src0 rows -#if defined(GGML_USE_ACCELERATE) || defined(GGML_USE_OPENBLAS) - bool use_blas = ggml_is_matrix(src0) && - ggml_is_matrix(src1) && - ggml_is_contiguous(src0) && - (ggml_is_contiguous(src1) || ggml_is_transposed(src1)); -#endif - if (params->type == GGML_TASK_TYPE_INIT) { -#if defined(GGML_USE_ACCELERATE) || defined(GGML_USE_OPENBLAS) // gemm beta will zero dst - if (use_blas) { - return; - } -#endif if (ith != 0) { return; } @@ -12820,50 +12702,6 @@ static void ggml_compute_forward_out_prod_f32( return; } -#if defined(GGML_USE_ACCELERATE) || defined(GGML_USE_OPENBLAS) - if (use_blas) { - if (params->ith != 0) { // All threads other than the first do no work. - return; - } - // Arguments to ggml_compute_forward_out_prod (expressed as major,minor) - // src0: (k,n) - // src1: (k,m) - // dst: (m,n) - // - // Arguments to sgemm (see https://github.com/Reference-LAPACK/lapack/blob/master/BLAS/SRC/sgemm.f) - // Also expressed as (major,minor) - // a: (m,k): so src1 transposed - // b: (k,n): so src0 - // c: (m,n) - // - // However, if ggml_is_transposed(src1) is true, then - // src1->data already contains a transposed version, so sgemm mustn't - // transpose it further. - - int n = src0->ne[0]; - int k = src0->ne[1]; - int m = src1->ne[0]; - - int transposeA, lda; - - if (!ggml_is_transposed(src1)) { - transposeA = CblasTrans; - lda = m; - } else { - transposeA = CblasNoTrans; - lda = k; - } - - float * a = (float *) ((char *) src1->data); - float * b = (float *) ((char *) src0->data); - float * c = (float *) ((char *) dst->data); - - cblas_sgemm(CblasRowMajor, transposeA, CblasNoTrans, m, n, k, 1.0, a, lda, b, n, 0.0, c, n); - - return; - } -#endif - // dst[:,:,:,:] = 0 // for i2,i3: // for i1: @@ -12993,8 +12831,6 @@ static void ggml_compute_forward_out_prod_q_f32( // nb01 >= nb00 - src0 is not transposed // compute by src0 rows - // TODO: #if defined(GGML_USE_ACCELERATE) || defined(GGML_USE_OPENBLAS) - if (params->type == GGML_TASK_TYPE_INIT) { if (ith != 0) { return; @@ -13391,6 +13227,8 @@ static void ggml_compute_forward_get_rows_q( const int64_t i10 = (i - i12*ne11*ne10 - i11*ne10); const int64_t i01 = *(int32_t *) ((char *) src1->data + i10*nb10 + i11*nb11 + i12*nb12); + assert(i01 >= 0 && i01 < ne01); + dequantize_row_q( (const void *) ((char *) src0->data + i01*nb01 + i11*nb02 + i12*nb03), (float *) ((char *) dst->data + i10*nb1 + i11*nb2 + i12*nb3), nc); @@ -13434,6 +13272,8 @@ static void ggml_compute_forward_get_rows_f16( const int64_t i10 = (i - i12*ne11*ne10 - i11*ne10); const int64_t i01 = *(int32_t *) ((char *) src1->data + i10*nb10 + i11*nb11 + i12*nb12); + assert(i01 >= 0 && i01 < ne01); + ggml_fp16_to_fp32_row( (const void *) ((char *) src0->data + i01*nb01 + i11*nb02 + i12*nb03), (float *) ((char *) dst->data + i10*nb1 + i11*nb2 + i12*nb3), nc); @@ -13477,7 +13317,9 @@ static void ggml_compute_forward_get_rows_bf16( const int64_t i10 = (i - i12*ne11*ne10 - i11*ne10); const int64_t i01 = *(int32_t *) ((char *) src1->data + i10*nb10 + i11*nb11 + i12*nb12); - ggml_bf16_to_fp32_row( + assert(i01 >= 0 && i01 < ne01); + + ggml_bf16_to_fp32_row( (const void *) ((char *) src0->data + i01*nb01 + i11*nb02 + i12*nb03), (float *) ((char *) dst->data + i10*nb1 + i11*nb2 + i12*nb3), nc); } @@ -13520,6 +13362,8 @@ static void ggml_compute_forward_get_rows_f32( const int64_t i10 = (i - i12*ne11*ne10 - i11*ne10); const int64_t i01 = *(int32_t *) ((char *) src1->data + i10*nb10 + i11*nb11 + i12*nb12); + assert(i01 >= 0 && i01 < ne01); + ggml_vec_cpy_f32(nc, (float *) ((char *) dst->data + i10*nb1 + i11*nb2 + i12*nb3), (float *) ((char *) src0->data + i01*nb01 + i11*nb02 + i12*nb03)); @@ -18893,6 +18737,7 @@ static int ggml_get_n_tasks(struct ggml_tensor * node, int n_threads, int n_cur_ switch (node->op) { case GGML_OP_CPY: case GGML_OP_DUP: + case GGML_OP_CONT: case GGML_OP_ADD: case GGML_OP_ADD1: case GGML_OP_ACC: @@ -18977,7 +18822,6 @@ static int ggml_get_n_tasks(struct ggml_tensor * node, int n_threads, int n_cur_ } break; case GGML_OP_SCALE: case GGML_OP_SET: - case GGML_OP_CONT: case GGML_OP_RESHAPE: case GGML_OP_VIEW: case GGML_OP_PERMUTE: @@ -19137,8 +18981,11 @@ static void ggml_graph_compute_thread_sync_node(int * node_n, struct ggml_comput sched_yield(); } - * node_n = atomic_load(&state->shared->node_n); - if (* node_n != last_node_n) break; + *node_n = atomic_load(&state->shared->node_n); + if (*node_n != last_node_n) { + break; + } + #if defined(__SSE3__) // Tell the processor we're spinning. It's a processor hint for spinlocks. _mm_pause(); @@ -19148,15 +18995,18 @@ static void ggml_graph_compute_thread_sync_node(int * node_n, struct ggml_comput static void ggml_graph_compute_thread_sync_task(int * task_phase, struct ggml_compute_state * state, const bool do_yield) { // wait for other threads to finish - const int last_task_phase = * task_phase; + const int last_task_phase = *task_phase; while (true) { if (do_yield) { sched_yield(); } - * task_phase = atomic_load(&state->shared->node_task); - if (* task_phase != last_task_phase) break; + *task_phase = atomic_load(&state->shared->node_task); + if (*task_phase != last_task_phase) { + break; + } + #if defined(__SSE3__) // Tell the processor we're spinning. It's a processor hint for spinlocks. _mm_pause(); @@ -19356,17 +19206,6 @@ struct ggml_cplan ggml_graph_plan(const struct ggml_cgraph * cgraph, int n_threa { const enum ggml_type vec_dot_type = type_traits[node->src[0]->type].vec_dot_type; -#if defined(GGML_USE_ACCELERATE) || defined(GGML_USE_OPENBLAS) - if (ggml_compute_forward_mul_mat_use_blas(node)) { - if (node->src[0]->type != GGML_TYPE_F32) { - // here we need memory for fully dequantized matrix from src0 - // take into account that src0 can be broadcasted into src1[2,3] - cur = ggml_type_size(GGML_TYPE_F32) - * node->src[0]->ne[0]*node->src[0]->ne[1] - * node->src[1]->ne[2]*node->src[1]->ne[3]; - } - } else -#endif if (node->src[1]->type != vec_dot_type) { cur = ggml_row_size(vec_dot_type, ggml_nelements(node->src[1])); } @@ -22664,7 +22503,7 @@ int ggml_cpu_has_wasm_simd(void) { } int ggml_cpu_has_blas(void) { -#if defined(GGML_USE_ACCELERATE) || defined(GGML_USE_OPENBLAS) || defined(GGML_USE_CUDA) || defined(GGML_USE_VULKAN) || defined(GGML_USE_SYCL) +#if defined(GGML_USE_BLAS) || defined(GGML_USE_CUDA) || defined(GGML_USE_VULKAN) || defined(GGML_USE_SYCL) return 1; #else return 0; diff --git a/llama.cpp b/llama.cpp index 8b675ea993a38..225ea977f4612 100644 --- a/llama.cpp +++ b/llama.cpp @@ -21,6 +21,10 @@ # include "ggml-kompute.h" #endif +#ifdef GGML_USE_BLAS +# include "ggml-blas.h" +#endif + #ifdef GGML_USE_METAL # include "ggml-metal.h" #endif @@ -2299,9 +2303,13 @@ struct llama_context { std::vector backends; #ifdef GGML_USE_METAL ggml_backend_t backend_metal = nullptr; +#endif +#ifdef GGML_USE_BLAS + ggml_backend_t backend_blas = nullptr; #endif ggml_backend_t backend_cpu = nullptr; + const llama_model & model; // key + value cache for the self attention @@ -11529,7 +11537,8 @@ static struct ggml_cgraph * llama_build_graph( if (batch.n_tokens < 32 || full_offload) { if (il != -1 && strcmp(name, "norm") == 0) { for (auto * backend : lctx.backends) { - if (ggml_backend_buft_supports_backend(lctx.model.buft_layer[il].buft, backend)) { + if (ggml_backend_supports_buft(backend, lctx.model.buft_layer[il].buft) && + (ggml_backend_supports_op(backend, cur) || ggml_backend_offload_op(backend, cur))) { ggml_backend_sched_set_tensor_backend(lctx.sched, cur, backend); break; } @@ -12026,6 +12035,11 @@ static void llama_graph_compute( ggml_backend_cpu_set_n_threads(lctx.backend_cpu, n_threads); ggml_backend_cpu_set_abort_callback(lctx.backend_cpu, lctx.abort_callback, lctx.abort_callback_data); } +#ifdef GGML_USE_BLAS + if (lctx.backend_blas != nullptr) { + ggml_backend_blas_set_n_threads(lctx.backend_blas, n_threads); + } +#endif ggml_backend_sched_graph_compute_async(lctx.sched, gf); @@ -12248,17 +12262,6 @@ static int llama_decode_internal( } // LLAMA_LOG_INFO("graph build time: %.3f ms (%d nodes, %d leafs)\n", (ggml_time_us() - t_start_us)/1000.0, gf->n_nodes, gf->n_leafs); - // for big prompts, if BLAS is enabled, it is better to use only one thread - // otherwise, the threads are spin-lock waiting for the BLAS calls and are degrading the performance - // TODO: this is mostly important for Apple Silicon where CBLAS is still performing very well - // we still need some threads to process all non-mul_mat ops, but not too much to avoid interfering - // with the BLAS calls. need a better solution - // MoE Special Case: This logic applies when hparams.n_expert == 0, i.e. the model is NOT an MoE model. When an MoE is - // being processed then Accelerate/BLAS will not be involved, so capping would limit performance. - if (n_tokens >= 32 && hparams.n_expert == 0 && ggml_cpu_has_blas() && !ggml_cpu_has_gpublas()) { - n_threads = std::min(4, n_threads); - } - ggml_backend_sched_alloc_graph(lctx.sched, gf); llama_set_inputs(lctx, u_batch); @@ -16251,6 +16254,16 @@ struct llama_context * llama_new_context_with_model( ctx->backends.push_back(backend); } #endif + +#ifdef GGML_USE_BLAS + ctx->backend_blas = ggml_backend_blas_init(); + if (ctx->backend_blas == nullptr) { + LLAMA_LOG_WARN("%s: failed to initialize BLAS backend\n", __func__); + } else { + ctx->backends.push_back(ctx->backend_blas); + } +#endif + #if defined(GGML_USE_RPC) if (model->n_gpu_layers > 0) { for (const auto & endpoint : model->rpc_servers) { From a55eb1bf0fa2fd84147bdfd384391e029d988253 Mon Sep 17 00:00:00 2001 From: Galunid Date: Thu, 13 Jun 2024 09:42:41 +0200 Subject: [PATCH 066/131] readme : Remove outdated instructions from README.md (#7914) [no ci] --- README.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/README.md b/README.md index d1c6190ddfd7b..6c24135d61934 100644 --- a/README.md +++ b/README.md @@ -622,9 +622,6 @@ python3 -m pip install -r requirements.txt # convert the model to ggml FP16 format python3 convert-hf-to-gguf.py models/mymodel/ -# [Optional] for models using BPE tokenizers -python convert-hf-to-gguf.py models/mymodel/ --vocab-type bpe - # quantize the model to 4-bits (using Q4_K_M method) ./llama-quantize ./models/mymodel/ggml-model-f16.gguf ./models/mymodel/ggml-model-Q4_K_M.gguf Q4_K_M From 172c8256840ffd882ab9992ecedbb587d9b21f15 Mon Sep 17 00:00:00 2001 From: Radoslav Gerganov Date: Thu, 13 Jun 2024 15:18:44 +0300 Subject: [PATCH 067/131] rpc : fix ggml_backend_rpc_supports_buft() (#7918) --- ggml-rpc.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ggml-rpc.cpp b/ggml-rpc.cpp index 9b95193d3229d..22d9524b8d764 100644 --- a/ggml-rpc.cpp +++ b/ggml-rpc.cpp @@ -624,12 +624,12 @@ GGML_CALL static enum ggml_status ggml_backend_rpc_graph_compute(ggml_backend_t GGML_CALL static bool ggml_backend_rpc_supports_op(ggml_backend_t backend, const ggml_tensor * op) { UNUSED(backend); UNUSED(op); - GGML_ASSERT(false && "not implemented"); - return false; + //TODO: call the remote backend and cache the results + return true; } GGML_CALL static bool ggml_backend_rpc_supports_buft(ggml_backend_t backend, ggml_backend_buffer_type_t buft) { - if (buft->iface.get_name == ggml_backend_rpc_buffer_type_name) { + if (buft->iface.get_name != ggml_backend_rpc_buffer_type_name) { return false; } ggml_backend_rpc_buffer_type_context * buft_ctx = (ggml_backend_rpc_buffer_type_context *)buft->context; From 41b9260f18eb7f325c952006ac46afc1d0d8ad2f Mon Sep 17 00:00:00 2001 From: Elaine Date: Fri, 14 Jun 2024 13:16:49 +0300 Subject: [PATCH 068/131] convert : add Poro-34B-chat tokenizer support (#7713) * support for Poro chat pre-tokenizer * add support for Poro pre-tokenizer * Update convert-hf-to-gguf-update.py Co-authored-by: Georgi Gerganov * Change Poro-34B-chat to poro-chat * Change Poro-34B-chat to poro-chat * Update convert-hf-to-gguf-update.py * Update llama.cpp --------- Co-authored-by: Georgi Gerganov --- convert-hf-to-gguf-update.py | 1 + convert-hf-to-gguf.py | 3 +++ llama.cpp | 8 ++++++++ llama.h | 1 + 4 files changed, 13 insertions(+) diff --git a/convert-hf-to-gguf-update.py b/convert-hf-to-gguf-update.py index f43b15760e1b2..fbf1e1ea3de37 100755 --- a/convert-hf-to-gguf-update.py +++ b/convert-hf-to-gguf-update.py @@ -83,6 +83,7 @@ class TOKENIZER_TYPE(IntEnum): {"name": "jina-v2-es", "tokt": TOKENIZER_TYPE.BPE, "repo": "https://huggingface.co/jinaai/jina-embeddings-v2-base-es", }, {"name": "jina-v2-de", "tokt": TOKENIZER_TYPE.BPE, "repo": "https://huggingface.co/jinaai/jina-embeddings-v2-base-de", }, {"name": "smaug-bpe", "tokt": TOKENIZER_TYPE.BPE, "repo": "https://huggingface.co/abacusai/Smaug-Llama-3-70B-Instruct", }, + {"name": "poro-chat", "tokt": TOKENIZER_TYPE.BPE, "repo": "https://huggingface.co/LumiOpen/Poro-34B-chat", }, {"name": "jina-v2-code", "tokt": TOKENIZER_TYPE.BPE, "repo": "https://huggingface.co/jinaai/jina-embeddings-v2-base-code", }, ] diff --git a/convert-hf-to-gguf.py b/convert-hf-to-gguf.py index 025405a2c6ce1..55ce502dba1c7 100755 --- a/convert-hf-to-gguf.py +++ b/convert-hf-to-gguf.py @@ -477,6 +477,9 @@ def get_vocab_base_pre(self, tokenizer) -> str: if chkhsh == "c136ed14d01c2745d4f60a9596ae66800e2b61fa45643e72436041855ad4089d": # ref: https://huggingface.co/abacusai/Smaug-Llama-3-70B-Instruct res = "smaug-bpe" + if chkhsh == "c7ea5862a53e4272c035c8238367063e2b270d51faa48c0f09e9d5b54746c360": + # ref: https://huggingface.co/LumiOpen/Poro-34B-chat + res = "poro-chat" if chkhsh == "7967bfa498ade6b757b064f31e964dddbb80f8f9a4d68d4ba7998fcf281c531a": # ref: https://huggingface.co/jinaai/jina-embeddings-v2-base-code res = "jina-v2-code" diff --git a/llama.cpp b/llama.cpp index 225ea977f4612..7f8c259a8f750 100644 --- a/llama.cpp +++ b/llama.cpp @@ -4713,6 +4713,9 @@ static void llm_load_vocab( } else if ( tokenizer_pre == "smaug-bpe") { vocab.type_pre = LLAMA_VOCAB_PRE_TYPE_SMAUG; + } else if ( + tokenizer_pre == "poro-chat") { + vocab.type_pre = LLAMA_VOCAB_PRE_TYPE_PORO; } else { throw std::runtime_error(format("unknown pre-tokenizer type: '%s'", tokenizer_pre.c_str())); } @@ -13028,6 +13031,11 @@ struct llm_tokenizer_bpe { "(?:'[sS]|'[tT]|'[rR][eE]|'[vV][eE]|'[mM]|'[lL][lL]|'[dD])|[^\\r\\n\\p{L}\\p{N}]?\\p{L}+|\\p{N}| ?[^\\s\\p{L}\\p{N}]+[\\r\\n]*|\\s*[\\r\\n]+|\\s+(?!\\S)|\\s+", }); break; + case LLAMA_VOCAB_PRE_TYPE_PORO: + word_collection = unicode_regex_split(text, { + " ?[^(\\s|.,!?…。,、।۔،)]+", + }); + break; default: // default regex for BPE tokenization pre-processing word_collection = unicode_regex_split(text, { diff --git a/llama.h b/llama.h index 62908261f2791..da310ffaf9ad9 100644 --- a/llama.h +++ b/llama.h @@ -86,6 +86,7 @@ extern "C" { LLAMA_VOCAB_PRE_TYPE_OLMO = 12, LLAMA_VOCAB_PRE_TYPE_DBRX = 13, LLAMA_VOCAB_PRE_TYPE_SMAUG = 14, + LLAMA_VOCAB_PRE_TYPE_PORO = 15, }; // note: these values should be synchronized with ggml_rope From 6fcd1331efbfbb89c8c96eba2321bb7b4d0c40e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sigbj=C3=B8rn=20Skj=C3=A6ret?= Date: Fri, 14 Jun 2024 12:20:04 +0200 Subject: [PATCH 069/131] llama : more checks before assuming FIM tokens (#7644) * More checks before assuming FIM tokens for Llama arch * extensive token check --- llama.cpp | 68 +++++++++++++++++++++++++++++++------------------------ 1 file changed, 39 insertions(+), 29 deletions(-) diff --git a/llama.cpp b/llama.cpp index 7f8c259a8f750..05591aa4389a7 100644 --- a/llama.cpp +++ b/llama.cpp @@ -4561,35 +4561,6 @@ static void llm_load_vocab( vocab.special_cls_id = -1; vocab.special_mask_id = -1; - // For Fill-In-the-Middle (FIM)/infill models which where converted - // prior to support of FIM special tokens in GGUF, the following - // will allow those models to continue to work. The general names - // of the known models are currently CodeLlama (LLM_ARCH_LLAMA) and - // CodeGemma (LLM_ARCH_GEMMA). This can potentially be removed once - // new versions of these models have been published. - std::string gen_name; - ml.get_key(LLM_KV_GENERAL_NAME, gen_name, false); - - std::transform(gen_name.begin(), gen_name.end(), gen_name.begin(), - [](unsigned char c){ return std::tolower(c); }); - - if (gen_name.find("code") != std::string::npos) { - if (model.arch == LLM_ARCH_LLAMA) { - vocab.special_prefix_id = 32007; - vocab.special_suffix_id = 32008; - vocab.special_middle_id = 32009; - vocab.special_eot_id = 32010; - } else if (model.arch == LLM_ARCH_GEMMA) { - vocab.special_prefix_id = 67; - vocab.special_suffix_id = 69; - vocab.special_middle_id = 68; - // TODO: this is not EOT, it is "file separator" token, needs fix - // https://huggingface.co/google/codegemma-7b-it/blob/9b1d9231388358c04d90bd003458f5070d97db44/tokenizer_config.json#L565-L572 - //vocab.special_eot_id = 70; - vocab.special_eot_id = 107; - } - } - const int add_space_prefix_keyidx = gguf_find_key(ctx, kv(LLM_KV_TOKENIZER_ADD_PREFIX).c_str()); if (add_space_prefix_keyidx != -1) { vocab.add_space_prefix = gguf_get_val_bool(ctx, add_space_prefix_keyidx); @@ -4773,6 +4744,45 @@ static void llm_load_vocab( // determine the newline token: LLaMA "<0x0A>" == 10 == '\n', Falcon 193 == '\n' if (vocab.type == LLAMA_VOCAB_TYPE_SPM) { + // For Fill-In-the-Middle (FIM)/infill models which where converted + // prior to support of FIM special tokens in GGUF, the following + // will allow those models to continue to work. The general names + // of the known models are currently CodeLlama (LLM_ARCH_LLAMA) and + // CodeGemma (LLM_ARCH_GEMMA). This can potentially be removed once + // new versions of these models have been published. + std::string gen_name; + ml.get_key(LLM_KV_GENERAL_NAME, gen_name, false); + + std::transform(gen_name.begin(), gen_name.end(), gen_name.begin(), + [](unsigned char c){ return std::tolower(c); }); + + if (gen_name.find("code") != std::string::npos) { + if (model.arch == LLM_ARCH_LLAMA + && 32010 < vocab.id_to_token.size() + && vocab.id_to_token[32007].text == "
    "
    +              && vocab.id_to_token[32008].text == ""
    +              && vocab.id_to_token[32009].text == ""
    +              && vocab.id_to_token[32010].text == "") {
    +                vocab.special_prefix_id = 32007;
    +                vocab.special_suffix_id = 32008;
    +                vocab.special_middle_id = 32009;
    +                vocab.special_eot_id    = 32010;
    +            } else if (model.arch == LLM_ARCH_GEMMA
    +              && 107 < vocab.id_to_token.size()
    +              && vocab.id_to_token[67].text == "<|fim_prefix|>"
    +              && vocab.id_to_token[69].text == "<|fim_suffix|>"
    +              && vocab.id_to_token[68].text == "<|fim_middle|>"
    +              && vocab.id_to_token[107].text == "") {
    +                vocab.special_prefix_id = 67;
    +                vocab.special_suffix_id = 69;
    +                vocab.special_middle_id = 68;
    +                // TODO: this is not EOT, it is "file separator" token, needs fix
    +                //       https://huggingface.co/google/codegemma-7b-it/blob/9b1d9231388358c04d90bd003458f5070d97db44/tokenizer_config.json#L565-L572
    +                //vocab.special_eot_id    = 70;
    +                vocab.special_eot_id    = 107;
    +            }
    +        }
    +
             try {
                 vocab.linefeed_id = llama_byte_to_token(vocab, '\n');
             } catch (const std::exception & e) {
    
    From e65bbf606c61f49dc06c7ac060cd5ba7ae446025 Mon Sep 17 00:00:00 2001
    From: Radoslav Gerganov 
    Date: Fri, 14 Jun 2024 16:47:41 +0300
    Subject: [PATCH 070/131] llama-bench : fix RPC indication (#7936)
    
    Show "+RPC" when RPC offloading is used
    ---
     examples/llama-bench/llama-bench.cpp | 12 ++++++------
     1 file changed, 6 insertions(+), 6 deletions(-)
    
    diff --git a/examples/llama-bench/llama-bench.cpp b/examples/llama-bench/llama-bench.cpp
    index 61dd1d71ab5e9..d641a9f12b388 100644
    --- a/examples/llama-bench/llama-bench.cpp
    +++ b/examples/llama-bench/llama-bench.cpp
    @@ -714,7 +714,6 @@ struct test {
         static const bool kompute;
         static const bool metal;
         static const bool sycl;
    -    static const bool rpc;
         static const bool gpu_blas;
         static const bool blas;
         static const std::string cpu_info;
    @@ -726,6 +725,7 @@ struct test {
         int n_batch;
         int n_ubatch;
         int n_threads;
    +    bool has_rpc;
         ggml_type type_k;
         ggml_type type_v;
         int n_gpu_layers;
    @@ -751,6 +751,7 @@ struct test {
             n_batch = inst.n_batch;
             n_ubatch = inst.n_ubatch;
             n_threads = inst.n_threads;
    +        has_rpc = !inst.rpc_servers.empty();
             type_k = inst.type_k;
             type_v = inst.type_v;
             n_gpu_layers = inst.n_gpu_layers;
    @@ -810,9 +811,6 @@ struct test {
             if (sycl) {
                 return GGML_SYCL_NAME;
             }
    -        if (rpc) {
    -            return "RPC";
    -        }
             if (gpu_blas) {
                 return "GPU BLAS";
             }
    @@ -882,7 +880,7 @@ struct test {
             std::vector values = {
                 build_commit, std::to_string(build_number),
                 std::to_string(cuda), std::to_string(vulkan), std::to_string(vulkan),
    -            std::to_string(metal), std::to_string(sycl), std::to_string(rpc), std::to_string(gpu_blas), std::to_string(blas),
    +            std::to_string(metal), std::to_string(sycl), std::to_string(has_rpc), std::to_string(gpu_blas), std::to_string(blas),
                 cpu_info, gpu_info,
                 model_filename, model_type, std::to_string(model_size), std::to_string(model_n_params),
                 std::to_string(n_batch), std::to_string(n_ubatch),
    @@ -916,7 +914,6 @@ const bool        test::metal        = !!ggml_cpu_has_metal();
     const bool        test::gpu_blas     = !!ggml_cpu_has_gpublas();
     const bool        test::blas         = !!ggml_cpu_has_blas();
     const bool        test::sycl         = !!ggml_cpu_has_sycl();
    -const bool        test::rpc          = !!ggml_cpu_has_rpc();
     const std::string test::cpu_info     = get_cpu_info();
     const std::string test::gpu_info     = get_gpu_info();
     
    @@ -1182,6 +1179,9 @@ struct markdown_printer : public printer {
                     value = buf;
                 } else if (field == "backend") {
                     value = test::get_backend();
    +                if (t.has_rpc) {
    +                    value += "+RPC";
    +                }
                 } else if (field == "test") {
                     if (t.n_prompt > 0 && t.n_gen == 0) {
                         snprintf(buf, sizeof(buf), "pp%d", t.n_prompt);
    
    From 66ef1ceedf983773c8ceb4d925285d41d4e50e2a Mon Sep 17 00:00:00 2001
    From: Georgi Gerganov 
    Date: Fri, 14 Jun 2024 17:14:09 +0300
    Subject: [PATCH 071/131] metal : utilize max shared memory for mul_mat_id
     (#7935)
    
    ---
     ggml-metal.m | 3 ++-
     1 file changed, 2 insertions(+), 1 deletion(-)
    
    diff --git a/ggml-metal.m b/ggml-metal.m
    index ec9e95302096c..f894274cacc93 100644
    --- a/ggml-metal.m
    +++ b/ggml-metal.m
    @@ -1862,9 +1862,10 @@ static enum ggml_status ggml_metal_graph_compute(
                             // ne21 = n_rows
                             const int dst_rows = ne20*ne21;
                             const int dst_rows_min = n_as;
    +                        const int dst_rows_max = (ctx->device.maxThreadgroupMemoryLength - 32 - 8192)/4;
     
                             // max size of the rowids array in the kernel shared buffer
    -                        GGML_ASSERT(dst_rows <= 2048);
    +                        GGML_ASSERT(dst_rows <= dst_rows_max);
     
                             // for now the matrix-matrix multiplication kernel only works on A14+/M1+ SoCs
                             // AMD GPU and older A-chips will reuse matrix-vector multiplication kernel
    
    From 76d66ee0be91e2bec93206e821ee1db8d023cff5 Mon Sep 17 00:00:00 2001
    From: =?UTF-8?q?Johannes=20G=C3=A4=C3=9Fler?= 
    Date: Fri, 14 Jun 2024 18:41:49 +0200
    Subject: [PATCH 072/131] CUDA: faster q2_K, q3_K MMQ + int8 tensor cores
     (#7921)
    
    * CUDA: faster q2_K, q3_K MMQ + int8 tensor cores
    
    * try CI fix
    
    * try CI fix
    
    * try CI fix
    
    * fix data race
    
    * rever q2_K precision related changes
    ---
     ggml-cuda.cu          |   6 +-
     ggml-cuda/argsort.cu  |   1 +
     ggml-cuda/common.cuh  |   5 +
     ggml-cuda/mmq.cuh     | 728 +++++++++++++++++++++++++-----------------
     ggml-cuda/softmax.cu  |   1 +
     ggml-cuda/vecdotq.cuh |  35 +-
     6 files changed, 457 insertions(+), 319 deletions(-)
    
    diff --git a/ggml-cuda.cu b/ggml-cuda.cu
    index 64d3b6747fc41..593fa4cdaa514 100644
    --- a/ggml-cuda.cu
    +++ b/ggml-cuda.cu
    @@ -188,13 +188,15 @@ static ggml_cuda_device_info ggml_cuda_init() {
             info.default_tensor_split[id] = total_vram;
             total_vram += prop.totalGlobalMem;
     
    +        info.devices[id].nsm   = prop.multiProcessorCount;
    +        info.devices[id].smpb  = prop.sharedMemPerBlock;
     #if defined(GGML_USE_HIPBLAS) && defined(__HIP_PLATFORM_AMD__)
    +        info.devices[id].smpbo = prop.sharedMemPerBlock;
             info.devices[id].cc = 100*prop.major + 10*prop.minor + CC_OFFSET_AMD;
     #else
    +        info.devices[id].smpbo = prop.sharedMemPerBlockOptin;
             info.devices[id].cc = 100*prop.major + 10*prop.minor;
     #endif // defined(GGML_USE_HIPBLAS) && defined(__HIP_PLATFORM_AMD__)
    -        info.devices[id].smpb = prop.sharedMemPerBlock;
    -        info.devices[id].nsm  = prop.multiProcessorCount;
         }
     
         for (int id = 0; id < info.device_count; ++id) {
    diff --git a/ggml-cuda/argsort.cu b/ggml-cuda/argsort.cu
    index 1641440617779..15757ca18e4d7 100644
    --- a/ggml-cuda/argsort.cu
    +++ b/ggml-cuda/argsort.cu
    @@ -73,6 +73,7 @@ static void argsort_f32_i32_cuda(const float * x, int * dst, const int ncols, co
         const dim3 block_nums(1, nrows, 1);
         const size_t shared_mem = ncols_pad * sizeof(int);
     
    +    // FIXME: this limit could be raised by ~2-4x on Ampere or newer
         GGML_ASSERT(shared_mem <= ggml_cuda_info().devices[ggml_cuda_get_device()].smpb);
     
         if (order == GGML_SORT_ORDER_ASC) {
    diff --git a/ggml-cuda/common.cuh b/ggml-cuda/common.cuh
    index 7f4764d60e854..de7c2e4349ede 100644
    --- a/ggml-cuda/common.cuh
    +++ b/ggml-cuda/common.cuh
    @@ -331,6 +331,10 @@ static __device__ __forceinline__ half2 __shfl_xor(half2 var, int laneMask, int
     #define FP16_AVAILABLE
     #endif // (defined(GGML_USE_HIPBLAS) && defined(__HIP_PLATFORM_AMD__)) || __CUDA_ARCH__ >= CC_PASCAL
     
    +#if defined(FP16_AVAILABLE) && __CUDA_ARCH__ != 610
    +#define FAST_FP16_AVAILABLE
    +#endif // defined(FP16_AVAILABLE) && __CUDA_ARCH__ != 610
    +
     #if !(defined(GGML_USE_HIPBLAS) && defined(__HIP_PLATFORM_AMD__)) && __CUDA_ARCH__ >= CC_VOLTA
     #define FP16_MMA_AVAILABLE
     #endif // !(defined(GGML_USE_HIPBLAS) && defined(__HIP_PLATFORM_AMD__)) && __CUDA_ARCH__ >= CC_VOLTA
    @@ -661,6 +665,7 @@ struct ggml_cuda_device_info {
             int     cc;                 // compute capability
             int     nsm;                // number of streaming multiprocessors
             size_t  smpb;               // max. shared memory per block
    +        size_t  smpbo;              // max. shared memory per block (with opt-in)
             bool    vmm;                // virtual memory support
             size_t  vmm_granularity;    // granularity of virtual memory
             size_t  total_vram;
    diff --git a/ggml-cuda/mmq.cuh b/ggml-cuda/mmq.cuh
    index 01e2086b41646..6d57974fb4e7c 100644
    --- a/ggml-cuda/mmq.cuh
    +++ b/ggml-cuda/mmq.cuh
    @@ -10,10 +10,10 @@
     #define MMQ_TILE_Y_K (WARP_SIZE + WARP_SIZE/QI8_1)
     
     typedef void (*load_tiles_mmq_t)(
    -    const char * __restrict__ x, int * __restrict__ x_ql, half2 * __restrict__ x_dm, int * __restrict__ x_qh,
    +    const char * __restrict__ x, int * __restrict__ x_qs, half2 * __restrict__ x_dm,
         int * __restrict__ x_sc, const int & kbx0, const int & i_max, const int & stride);
     typedef void (*vec_dot_mmq_t)(
    -    const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc,
    +    const int * __restrict__ x_qs, const half2 * __restrict__ x_dm, const int * __restrict__ x_sc,
         const int * __restrict__ y, float * __restrict__ sum, const int & k0);
     typedef void (*mmq_write_back_t)(const float * __restrict__ sum, float * __restrict__ dst, const int & ne0, const int & ne1);
     
    @@ -25,9 +25,8 @@ static_assert(sizeof(block_q8_1_mmq) == 4*QK8_1 + 4*sizeof(half2), "Unexpected b
     static_assert(sizeof(block_q8_1_mmq) == 4*sizeof(block_q8_1),      "Unexpected block_q8_1_mmq size");
     
     struct tile_x_sizes {
    -    int ql;
    +    int qs;
         int dm;
    -    int qh;
         int sc;
     };
     
    @@ -67,16 +66,16 @@ static constexpr __device__ int get_mmq_y_device(int /*mmq_x*/) {
     #endif // __CUDA_ARCH__ >= CC_VOLTA
     #endif // defined(GGML_USE_HIPBLAS) && defined(__HIP_PLATFORM_AMD__)
     
    -#define TILE_X_SIZES_Q4_0 tile_x_sizes{mmq_y*WARP_SIZE   + mmq_y, mmq_y*WARP_SIZE/QI4_0 + mmq_y/QI4_0, 0,                           0}
    -#define TILE_X_SIZES_Q4_1 tile_x_sizes{mmq_y*WARP_SIZE   + mmq_y, mmq_y*WARP_SIZE/QI4_1 + mmq_y/QI4_1, 0,                           0}
    -#define TILE_X_SIZES_Q5_0 tile_x_sizes{mmq_y*WARP_SIZE*2 + mmq_y, mmq_y*WARP_SIZE/QI5_0 + mmq_y/QI5_0, 0,                           0}
    -#define TILE_X_SIZES_Q5_1 tile_x_sizes{mmq_y*WARP_SIZE*2 + mmq_y, mmq_y*WARP_SIZE/QI5_1 + mmq_y/QI5_1, 0,                           0}
    -#define TILE_X_SIZES_Q8_0 tile_x_sizes{mmq_y*WARP_SIZE   + mmq_y, mmq_y*WARP_SIZE/QI8_0 + mmq_y/QI8_0, 0,                           0}
    -#define TILE_X_SIZES_Q2_K tile_x_sizes{mmq_y*WARP_SIZE   + mmq_y, mmq_y*WARP_SIZE/QI2_K + mmq_y/QI2_K, 0,                           mmq_y*WARP_SIZE/4 + mmq_y/4}
    -#define TILE_X_SIZES_Q3_K tile_x_sizes{mmq_y*WARP_SIZE   + mmq_y, mmq_y*WARP_SIZE/QI3_K + mmq_y/QI3_K, mmq_y*WARP_SIZE/2 + mmq_y/2, mmq_y*WARP_SIZE/4 + mmq_y/4}
    -#define TILE_X_SIZES_Q4_K tile_x_sizes{mmq_y*WARP_SIZE   + mmq_y, mmq_y*WARP_SIZE/QI4_K + mmq_y/QI4_K, 0,                           mmq_y*WARP_SIZE/8 + mmq_y/8}
    -#define TILE_X_SIZES_Q5_K tile_x_sizes{mmq_y*WARP_SIZE*2 + mmq_y, mmq_y*WARP_SIZE/QI5_K + mmq_y/QI5_K, 0,                           mmq_y*WARP_SIZE/8 + mmq_y/8}
    -#define TILE_X_SIZES_Q6_K tile_x_sizes{mmq_y*WARP_SIZE*2 + mmq_y, mmq_y*WARP_SIZE/QI6_K + mmq_y/QI6_K, 0,                           mmq_y*WARP_SIZE/8 + mmq_y/8}
    +#define TILE_X_SIZES_Q4_0 tile_x_sizes{mmq_y*WARP_SIZE   + mmq_y, mmq_y*WARP_SIZE/QI4_0 + mmq_y/QI4_0, 0}
    +#define TILE_X_SIZES_Q4_1 tile_x_sizes{mmq_y*WARP_SIZE   + mmq_y, mmq_y*WARP_SIZE/QI4_1 + mmq_y/QI4_1, 0}
    +#define TILE_X_SIZES_Q5_0 tile_x_sizes{mmq_y*WARP_SIZE*2 + mmq_y, mmq_y*WARP_SIZE/QI5_0 + mmq_y/QI5_0, 0}
    +#define TILE_X_SIZES_Q5_1 tile_x_sizes{mmq_y*WARP_SIZE*2 + mmq_y, mmq_y*WARP_SIZE/QI5_1 + mmq_y/QI5_1, 0}
    +#define TILE_X_SIZES_Q8_0 tile_x_sizes{mmq_y*WARP_SIZE   + mmq_y, mmq_y*WARP_SIZE/QI8_0 + mmq_y/QI8_0, 0}
    +#define TILE_X_SIZES_Q2_K tile_x_sizes{mmq_y*WARP_SIZE   + mmq_y, mmq_y*WARP_SIZE       + mmq_y,       0}
    +#define TILE_X_SIZES_Q3_K tile_x_sizes{mmq_y*WARP_SIZE*2 + mmq_y, mmq_y*WARP_SIZE/QI3_K + mmq_y/QI3_K, mmq_y*WARP_SIZE/4 + mmq_y/4}
    +#define TILE_X_SIZES_Q4_K tile_x_sizes{mmq_y*WARP_SIZE   + mmq_y, mmq_y*WARP_SIZE/QI4_K + mmq_y/QI4_K, mmq_y*WARP_SIZE/8 + mmq_y/8}
    +#define TILE_X_SIZES_Q5_K tile_x_sizes{mmq_y*WARP_SIZE*2 + mmq_y, mmq_y*WARP_SIZE/QI5_K + mmq_y/QI5_K, mmq_y*WARP_SIZE/8 + mmq_y/8}
    +#define TILE_X_SIZES_Q6_K tile_x_sizes{mmq_y*WARP_SIZE*2 + mmq_y, mmq_y*WARP_SIZE/QI6_K + mmq_y/QI6_K, mmq_y*WARP_SIZE/8 + mmq_y/8}
     
     #define GET_TILE_X_SIZES_BODY                           \
         return type == GGML_TYPE_Q4_0 ? TILE_X_SIZES_Q4_0 : \
    @@ -89,7 +88,7 @@ static constexpr __device__ int get_mmq_y_device(int /*mmq_x*/) {
             type == GGML_TYPE_Q4_K ? TILE_X_SIZES_Q4_K :    \
             type == GGML_TYPE_Q5_K ? TILE_X_SIZES_Q5_K :    \
             type == GGML_TYPE_Q6_K ? TILE_X_SIZES_Q6_K :    \
    -        tile_x_sizes{0, 0, 0, 0}
    +        tile_x_sizes{0, 0, 0}
     
     static tile_x_sizes get_tile_x_sizes_host(const ggml_type type, const int mmq_y) {
         GET_TILE_X_SIZES_BODY;
    @@ -103,9 +102,9 @@ static constexpr __device__ tile_x_sizes get_tile_x_sizes_device(ggml_type type)
     // ------------------------------------------------------------
     
     template  static __device__ __forceinline__ void load_tiles_q4_0(
    -    const char * __restrict__ x, int * __restrict__ x_ql, half2 * __restrict__ x_dm, int * __restrict__ x_qh,
    +    const char * __restrict__ x, int * __restrict__ x_qs, half2 * __restrict__ x_dm,
         int * __restrict__ x_sc, const int & kbx0, const int & i_max, const int & stride) {
    -    GGML_UNUSED(x_qh); GGML_UNUSED(x_sc);
    +    GGML_UNUSED(x_sc);
     
         const int kbx  = threadIdx.x / QI4_0;
         const int kqsx = threadIdx.x % QI4_0;
    @@ -122,7 +121,7 @@ template  static __device__ __forceinlin
     
             const block_q4_0 * bxi = (const block_q4_0 *) x + kbx0 + i*stride + kbx;
     
    -        x_ql[i * (WARP_SIZE + 1) + threadIdx.x] = get_int_from_uint8(bxi->qs, kqsx);
    +        x_qs[i * (WARP_SIZE + 1) + threadIdx.x] = get_int_from_uint8(bxi->qs, kqsx);
         }
     
         const int blocks_per_tile_x_row = WARP_SIZE / QI4_0;
    @@ -144,10 +143,9 @@ template  static __device__ __forceinlin
     
     template 
     static __device__ __forceinline__ void vec_dot_q4_0_q8_1_dp4a(
    -    const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc,
    +    const int * __restrict__ x_qs, const half2 * __restrict__ x_dm, const int * __restrict__ x_sc,
         const int * __restrict__ y, float * __restrict__ sum, const int & k0) {
    -
    -    GGML_UNUSED(x_qh); GGML_UNUSED(x_sc);
    +    GGML_UNUSED(x_sc);
     
         const float * x_df = (const float *) x_dm;
         const int   * y_qs = (const int   *) y + 4;
    @@ -172,7 +170,7 @@ static __device__ __forceinline__ void vec_dot_q4_0_q8_1_dp4a(
                 }
     
                 sum[j0/nwarps*mmq_y/WARP_SIZE + i0/WARP_SIZE] += vec_dot_q4_0_q8_1_impl
    -                (&x_ql[i*(WARP_SIZE + 1) + k0], u, x_df[i*(WARP_SIZE/QI4_0) + i/QI4_0 + k0/QI4_0],
    +                (&x_qs[i*(WARP_SIZE + 1) + k0], u, x_df[i*(WARP_SIZE/QI4_0) + i/QI4_0 + k0/QI4_0],
                     y_ds[j*MMQ_TILE_Y_K + (2*k0/QI8_1) % (WARP_SIZE/QI8_1)]);
             }
         }
    @@ -180,10 +178,10 @@ static __device__ __forceinline__ void vec_dot_q4_0_q8_1_dp4a(
     
     template 
     static __device__ __forceinline__ void vec_dot_q4_0_q8_1_mma(
    -    const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc,
    +    const int * __restrict__ x_qs, const half2 * __restrict__ x_dm, const int * __restrict__ x_sc,
         const int * __restrict__ y, float * __restrict__ sum, const int & k0) {
    -
    -    GGML_UNUSED(x_qh); GGML_UNUSED(x_sc);
    +#ifdef INT8_MMA_AVAILABLE
    +    GGML_UNUSED(x_sc);
     
         typedef mma_int_A_I16K8 mma_A;
         typedef mma_int_B_J8K8  mma_B;
    @@ -205,7 +203,7 @@ static __device__ __forceinline__ void vec_dot_q4_0_q8_1_mma(
             const int k     = k0 + mma_A::get_k(l) % QI4_0;
             const int shift =   4*(mma_A::get_k(l) / QI4_0);
     
    -        A.x[l] = __vsubss4((x_ql[i*(WARP_SIZE + 1) + k] >> shift) & 0x0F0F0F0F, 0x08080808);
    +        A.x[l] = __vsubss4((x_qs[i*(WARP_SIZE + 1) + k] >> shift) & 0x0F0F0F0F, 0x08080808);
         }
     #pragma unroll
         for (int l = 0; l < mma_C::ne/2; ++l) {
    @@ -240,12 +238,16 @@ static __device__ __forceinline__ void vec_dot_q4_0_q8_1_mma(
                 sum[(j0/B.J)*C.ne + l] += dA[l/2]*__low2float(dsB[l%2])*C.x[l];
             }
         }
    +#else
    +    GGML_UNUSED(x_qs); GGML_UNUSED(x_dm); GGML_UNUSED(x_sc); GGML_UNUSED(y); GGML_UNUSED(sum); GGML_UNUSED(k0);
    +    NO_DEVICE_CODE;
    +#endif // INT8_MMA_AVAILABLE
     }
     
     template  static __device__ __forceinline__ void load_tiles_q4_1(
    -    const char * __restrict__ x, int * __restrict__ x_ql, half2 * __restrict__ x_dm, int * __restrict__ x_qh,
    +    const char * __restrict__ x, int * __restrict__ x_qs, half2 * __restrict__ x_dm,
         int * __restrict__ x_sc, const int & kbx0, const int & i_max, const int & stride) {
    -    GGML_UNUSED(x_qh); GGML_UNUSED(x_sc);
    +    GGML_UNUSED(x_sc);
     
         const int kbx  = threadIdx.x / QI4_1;
         const int kqsx = threadIdx.x % QI4_1;
    @@ -260,7 +262,7 @@ template  static __device__ __forceinlin
     
             const block_q4_1 * bxi = (const block_q4_1 *) x + kbx0 + i*stride + kbx;
     
    -        x_ql[i * (WARP_SIZE + 1) + threadIdx.x] = get_int_from_uint8_aligned(bxi->qs, kqsx);
    +        x_qs[i * (WARP_SIZE + 1) + threadIdx.x] = get_int_from_uint8_aligned(bxi->qs, kqsx);
         }
     
         const int blocks_per_tile_x_row = WARP_SIZE / QI4_1;
    @@ -282,10 +284,9 @@ template  static __device__ __forceinlin
     
     template 
     static __device__ __forceinline__ void vec_dot_q4_1_q8_1_dp4a(
    -    const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc,
    +    const int * __restrict__ x_qs, const half2 * __restrict__ x_dm, const int * __restrict__ x_sc,
         const int * __restrict__ y, float * __restrict__ sum, const int & k0) {
    -
    -    GGML_UNUSED(x_qh); GGML_UNUSED(x_sc);
    +    GGML_UNUSED(x_sc);
     
         const int   * y_qs = (const int   *) y + 4;
         const half2 * y_ds = (const half2 *) y;
    @@ -309,7 +310,7 @@ static __device__ __forceinline__ void vec_dot_q4_1_q8_1_dp4a(
                 }
     
                 sum[j0/nwarps*mmq_y/WARP_SIZE + i0/WARP_SIZE] += vec_dot_q4_1_q8_1_impl
    -                (&x_ql[i*(WARP_SIZE + 1) + k0], u, x_dm[i*(WARP_SIZE/QI4_1) + i/QI4_1 + k0/QI4_1],
    +                (&x_qs[i*(WARP_SIZE + 1) + k0], u, x_dm[i*(WARP_SIZE/QI4_1) + i/QI4_1 + k0/QI4_1],
                     y_ds[j*MMQ_TILE_Y_K + (2*k0/QI8_1) % (WARP_SIZE/QI8_1)]);
             }
         }
    @@ -317,10 +318,10 @@ static __device__ __forceinline__ void vec_dot_q4_1_q8_1_dp4a(
     
     template 
     static __device__ __forceinline__ void vec_dot_q4_1_q8_1_mma(
    -    const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc,
    +    const int * __restrict__ x_qs, const half2 * __restrict__ x_dm, const int * __restrict__ x_sc,
         const int * __restrict__ y, float * __restrict__ sum, const int & k0) {
    -
    -    GGML_UNUSED(x_qh); GGML_UNUSED(x_sc);
    +#ifdef INT8_MMA_AVAILABLE
    +    GGML_UNUSED(x_sc);
     
         typedef mma_int_A_I16K8 mma_A;
         typedef mma_int_B_J8K8  mma_B;
    @@ -341,7 +342,7 @@ static __device__ __forceinline__ void vec_dot_q4_1_q8_1_mma(
             const int k     = k0 + mma_A::get_k(l) % QI4_0;
             const int shift =   4*(mma_A::get_k(l) / QI4_0);
     
    -        A.x[l] = (x_ql[i*(WARP_SIZE + 1) + k] >> shift) & 0x0F0F0F0F;
    +        A.x[l] = (x_qs[i*(WARP_SIZE + 1) + k] >> shift) & 0x0F0F0F0F;
         }
     #pragma unroll
         for (int l = 0; l < mma_C::ne/2; ++l) {
    @@ -377,12 +378,16 @@ static __device__ __forceinline__ void vec_dot_q4_1_q8_1_mma(
                 sum[(j0/B.J)*C.ne + l] += __low2float(dmA_dsB)*C.x[l] + __high2float(dmA_dsB);
             }
         }
    +#else
    +    GGML_UNUSED(x_qs); GGML_UNUSED(x_dm); GGML_UNUSED(x_sc); GGML_UNUSED(y); GGML_UNUSED(sum); GGML_UNUSED(k0);
    +    NO_DEVICE_CODE;
    +#endif // INT8_MMA_AVAILABLE
     }
     
     template  static __device__ __forceinline__ void load_tiles_q5_0(
    -    const char * __restrict__ x, int * __restrict__ x_ql, half2 * __restrict__ x_dm, int * __restrict__ x_qh,
    +    const char * __restrict__ x, int * __restrict__ x_qs, half2 * __restrict__ x_dm,
         int * __restrict__ x_sc, const int & kbx0, const int & i_max, const int & stride) {
    -    GGML_UNUSED(x_qh); GGML_UNUSED(x_sc);
    +    GGML_UNUSED(x_sc);
     
         const int kbx  = threadIdx.x / QI5_0;
         const int kqsx = threadIdx.x % QI5_0;
    @@ -407,7 +412,7 @@ template  static __device__ __forceinlin
             qs0    |= (qh << 25)   & 0x10000000;  // 3 -> 28
             qs0     = __vsubss4(qs0, 0x10101010); // subtract 16
     
    -        x_ql[i * (2*WARP_SIZE + 1) + 2*threadIdx.x+0] = qs0;
    +        x_qs[i * (2*WARP_SIZE + 1) + 2*threadIdx.x+0] = qs0;
     
             int qs1 = (ql >>  4)   & 0x0F0F0F0F;
             qs1    |= (qh >> 12)   & 0x00000010;  // 16 ->  4
    @@ -416,7 +421,7 @@ template  static __device__ __forceinlin
             qs1    |= (qh <<  9)   & 0x10000000;  // 19 -> 28
             qs1     = __vsubss4(qs1, 0x10101010); // subtract 16
     
    -        x_ql[i * (2*WARP_SIZE + 1) + 2*threadIdx.x+1] = qs1;
    +        x_qs[i * (2*WARP_SIZE + 1) + 2*threadIdx.x+1] = qs1;
         }
     
         const int blocks_per_tile_x_row = WARP_SIZE / QI5_0;
    @@ -439,10 +444,9 @@ template  static __device__ __forceinlin
     
     template 
     static __device__ __forceinline__ void vec_dot_q5_0_q8_1_dp4a(
    -    const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc,
    +    const int * __restrict__ x_qs, const half2 * __restrict__ x_dm, const int * __restrict__ x_sc,
         const int * __restrict__ y, float * __restrict__ sum, const int & k0) {
    -
    -    GGML_UNUSED(x_qh); GGML_UNUSED(x_sc);
    +    GGML_UNUSED(x_sc);
     
         const float * x_dmf = (const float *) x_dm;
         const int   * y_qs  = (const int   *) y + 4;
    @@ -468,17 +472,17 @@ static __device__ __forceinline__ void vec_dot_q5_0_q8_1_dp4a(
                 }
     
                 sum[j0/nwarps*mmq_y/WARP_SIZE + i0/WARP_SIZE] += vec_dot_q8_0_q8_1_impl
    -                (&x_ql[i*(2*WARP_SIZE + 1) + 2*k0], u, x_dmf[index_bx], y_df[j*MMQ_TILE_Y_K + (2*k0/QI8_1) % (WARP_SIZE/QI8_1)]);
    +                (&x_qs[i*(2*WARP_SIZE + 1) + 2*k0], u, x_dmf[index_bx], y_df[j*MMQ_TILE_Y_K + (2*k0/QI8_1) % (WARP_SIZE/QI8_1)]);
             }
         }
     }
     
     template 
     static __device__ __forceinline__ void vec_dot_q5_0_q8_1_mma(
    -    const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc,
    +    const int * __restrict__ x_qs, const half2 * __restrict__ x_dm, const int * __restrict__ x_sc,
         const int * __restrict__ y, float * __restrict__ sum, const int & k0) {
    -
    -    GGML_UNUSED(x_qh); GGML_UNUSED(x_sc);
    +#ifdef INT8_MMA_AVAILABLE
    +    GGML_UNUSED(x_sc);
     
         typedef mma_int_A_I16K8 mma_A;
         typedef mma_int_B_J8K8  mma_B;
    @@ -499,7 +503,7 @@ static __device__ __forceinline__ void vec_dot_q5_0_q8_1_mma(
             const int i     =    i0 + mma_A::get_i(l);
             const int k     = 2*(k0 + mma_A::get_k(l) % QI5_0) + mma_A::get_k(l) / QI5_0;
     
    -        A.x[l] = x_ql[i*(2*WARP_SIZE + 1) + k];
    +        A.x[l] = x_qs[i*(2*WARP_SIZE + 1) + k];
         }
     #pragma unroll
         for (int l = 0; l < mma_C::ne/2; ++l) {
    @@ -534,12 +538,16 @@ static __device__ __forceinline__ void vec_dot_q5_0_q8_1_mma(
                 sum[(j0/B.J)*C.ne + l] += dA[l/2]*dB[l%2]*C.x[l];
             }
         }
    +#else
    +    GGML_UNUSED(x_qs); GGML_UNUSED(x_dm); GGML_UNUSED(x_sc); GGML_UNUSED(y); GGML_UNUSED(sum); GGML_UNUSED(k0);
    +    NO_DEVICE_CODE;
    +#endif // INT8_MMA_AVAILABLE
     }
     
     template  static __device__ __forceinline__ void load_tiles_q5_1(
    -    const char * __restrict__ x, int * __restrict__ x_ql, half2 * __restrict__ x_dm, int * __restrict__ x_qh,
    +    const char * __restrict__ x, int * __restrict__ x_qs, half2 * __restrict__ x_dm,
         int * __restrict__ x_sc, const int & kbx0, const int & i_max, const int & stride) {
    -    GGML_UNUSED(x_qh); GGML_UNUSED(x_sc);
    +    GGML_UNUSED(x_sc);
     
         const int kbx  = threadIdx.x / QI5_1;
         const int kqsx = threadIdx.x % QI5_1;
    @@ -563,7 +571,7 @@ template  static __device__ __forceinlin
             qs0    |= (qh << 18) & 0x00100000; // 2 -> 20
             qs0    |= (qh << 25) & 0x10000000; // 3 -> 28
     
    -        x_ql[i * (2*WARP_SIZE + 1) + 2*threadIdx.x+0] = qs0;
    +        x_qs[i * (2*WARP_SIZE + 1) + 2*threadIdx.x+0] = qs0;
     
             int qs1 = (ql >>  4) & 0x0F0F0F0F;
             qs1    |= (qh >> 12) & 0x00000010; // 16 ->  4
    @@ -571,7 +579,7 @@ template  static __device__ __forceinlin
             qs1    |= (qh <<  2) & 0x00100000; // 18 -> 20
             qs1    |= (qh <<  9) & 0x10000000; // 19 -> 28
     
    -        x_ql[i * (2*WARP_SIZE + 1) + 2*threadIdx.x+1] = qs1;
    +        x_qs[i * (2*WARP_SIZE + 1) + 2*threadIdx.x+1] = qs1;
         }
     
         const int blocks_per_tile_x_row = WARP_SIZE / QI5_1;
    @@ -593,10 +601,9 @@ template  static __device__ __forceinlin
     
     template 
     static __device__ __forceinline__ void vec_dot_q5_1_q8_1_dp4a(
    -    const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc,
    +    const int * __restrict__ x_qs, const half2 * __restrict__ x_dm, const int * __restrict__ x_sc,
         const int * __restrict__ y, float * __restrict__ sum, const int & k0) {
    -
    -    GGML_UNUSED(x_qh); GGML_UNUSED(x_sc);
    +    GGML_UNUSED(x_sc);
     
         const int   * y_qs  = (const int   *) y + 4;
         const half2 * y_ds  = (const half2 *) y;
    @@ -621,17 +628,17 @@ static __device__ __forceinline__ void vec_dot_q5_1_q8_1_dp4a(
                 }
     
                 sum[j0/nwarps*mmq_y/WARP_SIZE + i0/WARP_SIZE] += vec_dot_q8_1_q8_1_impl
    -                (&x_ql[i*(2*WARP_SIZE + 1) + 2*k0], u, x_dm[index_bx], y_ds[j*MMQ_TILE_Y_K + (2*k0/QI8_1) % (WARP_SIZE/QI8_1)]);
    +                (&x_qs[i*(2*WARP_SIZE + 1) + 2*k0], u, x_dm[index_bx], y_ds[j*MMQ_TILE_Y_K + (2*k0/QI8_1) % (WARP_SIZE/QI8_1)]);
             }
         }
     }
     
     template 
     static __device__ __forceinline__ void vec_dot_q5_1_q8_1_mma(
    -    const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc,
    +    const int * __restrict__ x_qs, const half2 * __restrict__ x_dm, const int * __restrict__ x_sc,
         const int * __restrict__ y, float * __restrict__ sum, const int & k0) {
    -
    -    GGML_UNUSED(x_qh); GGML_UNUSED(x_sc);
    +#ifdef INT8_MMA_AVAILABLE
    +    GGML_UNUSED(x_sc);
     
         typedef mma_int_A_I16K8 mma_A;
         typedef mma_int_B_J8K8  mma_B;
    @@ -651,7 +658,7 @@ static __device__ __forceinline__ void vec_dot_q5_1_q8_1_mma(
             const int i     =    i0 + mma_A::get_i(l);
             const int k     = 2*(k0 + mma_A::get_k(l) % QI5_1) + mma_A::get_k(l) / QI5_1;
     
    -        A.x[l] = x_ql[i*(2*WARP_SIZE + 1) + k];
    +        A.x[l] = x_qs[i*(2*WARP_SIZE + 1) + k];
         }
     #pragma unroll
         for (int l = 0; l < mma_C::ne/2; ++l) {
    @@ -687,13 +694,16 @@ static __device__ __forceinline__ void vec_dot_q5_1_q8_1_mma(
                 sum[(j0/B.J)*C.ne + l] += __low2float(dmA_dsB)*C.x[l] + __high2float(dmA_dsB);
             }
         }
    +#else
    +    GGML_UNUSED(x_qs); GGML_UNUSED(x_dm); GGML_UNUSED(x_sc); GGML_UNUSED(y); GGML_UNUSED(sum); GGML_UNUSED(k0);
    +    NO_DEVICE_CODE;
    +#endif // INT8_MMA_AVAILABLE
     }
     
     template  static __device__ __forceinline__ void load_tiles_q8_0(
    -    const char * __restrict__ x, int * __restrict__ x_ql, half2 * __restrict__ x_dm, int * __restrict__ x_qh,
    +    const char * __restrict__ x, int * __restrict__ x_qs, half2 * __restrict__ x_dm,
         int * __restrict__ x_sc, const int & kbx0, const int & i_max, const int & stride) {
    -
    -    GGML_UNUSED(x_qh); GGML_UNUSED(x_sc);
    +    GGML_UNUSED(x_sc);
     
         const int kbx  = threadIdx.x / QI8_0;
         const int kqsx = threadIdx.x % QI8_0;
    @@ -709,7 +719,7 @@ template  static __device__ __forceinlin
     
             const block_q8_0 * bxi = (const block_q8_0 *) x + kbx0 + i*stride + kbx;
     
    -        x_ql[i * (WARP_SIZE + 1) + threadIdx.x] = get_int_from_int8(bxi->qs, kqsx);
    +        x_qs[i * (WARP_SIZE + 1) + threadIdx.x] = get_int_from_int8(bxi->qs, kqsx);
         }
     
         const int blocks_per_tile_x_row = WARP_SIZE / QI8_0;
    @@ -731,10 +741,9 @@ template  static __device__ __forceinlin
     
     template 
     static __device__ __forceinline__ void vec_dot_q8_0_q8_1_dp4a(
    -    const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc,
    +    const int * __restrict__ x_qs, const half2 * __restrict__ x_dm, const int * __restrict__ x_sc,
         const int * __restrict__ y, float * __restrict__ sum, const int & k0) {
    -
    -    GGML_UNUSED(x_qh); GGML_UNUSED(x_sc);
    +    GGML_UNUSED(x_sc);
     
         const float * x_dmf = (const float *) x_dm;
         const int   * y_qs  = (const int   *) y + 4;
    @@ -749,7 +758,7 @@ static __device__ __forceinline__ void vec_dot_q8_0_q8_1_dp4a(
                 const int i = i0 + threadIdx.x;
     
                 sum[j0/nwarps*mmq_y/WARP_SIZE + i0/WARP_SIZE] += vec_dot_q8_0_q8_1_impl
    -                (&x_ql[i*(WARP_SIZE + 1) + k0], &y_qs[j*MMQ_TILE_Y_K + k0], x_dmf[i*(WARP_SIZE/QI8_0) + i/QI8_0 + k0/QI8_0],
    +                (&x_qs[i*(WARP_SIZE + 1) + k0], &y_qs[j*MMQ_TILE_Y_K + k0], x_dmf[i*(WARP_SIZE/QI8_0) + i/QI8_0 + k0/QI8_0],
                     y_df[j*MMQ_TILE_Y_K + k0/QI8_1]);
             }
         }
    @@ -757,10 +766,10 @@ static __device__ __forceinline__ void vec_dot_q8_0_q8_1_dp4a(
     
     template 
     static __device__ __forceinline__ void vec_dot_q8_0_q8_1_mma(
    -    const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc,
    +    const int * __restrict__ x_qs, const half2 * __restrict__ x_dm, const int * __restrict__ x_sc,
         const int * __restrict__ y, float * __restrict__ sum, const int & k0) {
    -
    -    GGML_UNUSED(x_qh); GGML_UNUSED(x_sc);
    +#ifdef INT8_MMA_AVAILABLE
    +    GGML_UNUSED(x_sc);
     
         typedef mma_int_A_I16K8 mma_A;
         typedef mma_int_B_J8K8  mma_B;
    @@ -781,7 +790,7 @@ static __device__ __forceinline__ void vec_dot_q8_0_q8_1_mma(
             const int i = i0 + mma_A::get_i(l);
             const int k = k0 + mma_A::get_k(l);
     
    -        A.x[l] = x_ql[i*(WARP_SIZE + 1) + k];
    +        A.x[l] = x_qs[i*(WARP_SIZE + 1) + k];
         }
     #pragma unroll
         for (int l = 0; l < mma_C::ne/2; ++l) {
    @@ -816,12 +825,15 @@ static __device__ __forceinline__ void vec_dot_q8_0_q8_1_mma(
                 sum[(j0/B.J)*C.ne + l] += C.x[l]*dA[l/2]*dB[l%2];
             }
         }
    +#else
    +    GGML_UNUSED(x_qs); GGML_UNUSED(x_dm); GGML_UNUSED(x_sc); GGML_UNUSED(y); GGML_UNUSED(sum); GGML_UNUSED(k0);
    +    NO_DEVICE_CODE;
    +#endif // INT8_MMA_AVAILABLE
     }
     
     template  static __device__ __forceinline__ void load_tiles_q2_K(
    -    const char * __restrict__ x, int * __restrict__ x_ql, half2 * __restrict__ x_dm, int * __restrict__ x_qh,
    +    const char * __restrict__ x, int * __restrict__ x_qs, half2 * __restrict__ x_dm,
         int * __restrict__ x_sc, const int & kbx0, const int & i_max, const int & stride) {
    -    GGML_UNUSED(x_qh);
     
         const int kbx  = threadIdx.x / QI2_K;
         const int kqsx = threadIdx.x % QI2_K;
    @@ -836,48 +848,42 @@ template  static __device__ __forceinlin
     
             const block_q2_K * bxi = (const block_q2_K *) x + kbx0 + i*stride + kbx;
     
    -        x_ql[i * (WARP_SIZE + 1) + threadIdx.x] = get_int_from_uint8_aligned(bxi->qs, kqsx);
    -    }
    -
    -    const int blocks_per_tile_x_row = WARP_SIZE / QI2_K;
    -    const int kbxd = threadIdx.x % blocks_per_tile_x_row;
    +        const int x_ql_0 = get_int_from_uint8(bxi->qs, kqsx);
     
     #pragma unroll
    -    for (int i0 = 0; i0 < mmq_y; i0 += nwarps * QI2_K) {
    -        int i = (i0 + threadIdx.y * QI2_K + threadIdx.x / blocks_per_tile_x_row) % mmq_y;
    +        for (int l = 0; l < QR2_K; ++l) {
    +            const int k = kbx*QI2_K + (kqsx/8)*8 + l*2 + (kqsx % 8)/4;
     
    -        if (need_check) {
    -            i = min(i, i_max);
    -        }
    -
    -        const block_q2_K * bxi = (const block_q2_K *) x + kbx0 + i*stride + kbxd;
    -
    -        x_dm[i * (WARP_SIZE/QI2_K) + i / QI2_K + kbxd] = bxi->dm;
    -    }
    +            int x_qs_k = ((x_ql_0 >> (2*l)) & 0x03030303) << (2*(kqsx % 4));
    +            x_qs_k |= __shfl_xor_sync(0xFFFFFFFF, x_qs_k, 1, WARP_SIZE);
    +            x_qs_k |= __shfl_xor_sync(0xFFFFFFFF, x_qs_k, 2, WARP_SIZE);
     
    -#pragma unroll
    -    for (int i0 = 0; i0 < mmq_y; i0 += nwarps * 4) {
    -        int i = i0 + threadIdx.y * 4 + threadIdx.x / (WARP_SIZE/4);
    +            if (kqsx % QR2_K != 0) {
    +                continue;
    +            }
     
    -        if (need_check) {
    -            i = min(i, i_max);
    +            x_qs[i*(WARP_SIZE + 1) + k] = x_qs_k;
             }
     
    -        const block_q2_K * bxi = (const block_q2_K *) x + kbx0 + i*stride + (threadIdx.x % (WARP_SIZE/4)) / (QI2_K/4);
    +        const int sc_m = bxi->scales[kqsx];
    +#ifdef FAST_FP16_AVAILABLE
    +        const half2 x_dm_ik = __hmul2(bxi->dm, make_half2(sc_m & 0x0F, sc_m >> 4));
    +#else
    +        const float2 bxi_dmf = __half22float2(bxi->dm);
    +        const half2 x_dm_ik = make_half2(bxi_dmf.x*(sc_m & 0x0F), bxi_dmf.y*(sc_m >> 4));
    +#endif // FAST_FP16_AVAILABLE
     
    -        x_sc[i * (WARP_SIZE/4) + i / 4 + threadIdx.x % (WARP_SIZE/4)] = get_int_from_uint8_aligned(bxi->scales, threadIdx.x % (QI2_K/4));
    +        x_dm[i*(WARP_SIZE + 1) + threadIdx.x] = x_dm_ik;
         }
     }
     
     template 
    -static __device__ __forceinline__ void vec_dot_q2_K_q8_1_mul_mat(
    -    const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc,
    +static __device__ __forceinline__ void vec_dot_q2_K_q8_1_dp4a(
    +    const int * __restrict__ x_qs, const half2 * __restrict__ x_dm, const int * __restrict__ x_sc,
         const int * __restrict__ y, float * __restrict__ sum, const int & k0) {
     
    -    GGML_UNUSED(x_qh);
    -
    -    const int   * y_qs  = (const int   *) y + 4;
    -    const float * y_df  = (const float *) y;
    +    const int   * y_qs = (const int   *) y + 4;
    +    const float * y_df = (const float *) y;
     
     #pragma unroll
         for (int j0 = 0; j0 < mmq_x; j0 += nwarps) {
    @@ -887,30 +893,99 @@ static __device__ __forceinline__ void vec_dot_q2_K_q8_1_mul_mat(
             for (int i0 = 0; i0 < mmq_y; i0 += WARP_SIZE) {
                 const int i = i0 + threadIdx.x;
     
    -            const int kbx = k0 / QI2_K;
    -            const int ky  = (k0 % QI2_K) * QR2_K;
    +            sum[j0/nwarps*mmq_y/WARP_SIZE + i0/WARP_SIZE] += vec_dot_q2_K_q8_1_impl_mmq(
    +                &x_qs[i*(WARP_SIZE + 1) + k0], &y_qs[j*MMQ_TILE_Y_K + (QR2_K*k0) % WARP_SIZE],
    +                &x_dm[i*(WARP_SIZE + 1) + k0], y_df[j*MMQ_TILE_Y_K + ((QR2_K*k0) % WARP_SIZE)/QI8_1]);
    +        }
    +    }
    +}
    +
    +template 
    +static __device__ __forceinline__ void vec_dot_q2_K_q8_1_mma(
    +    const int * __restrict__ x_qs, const half2 * __restrict__ x_dm, const int * __restrict__ x_sc,
    +    const int * __restrict__ y, float * __restrict__ sum, const int & k0) {
    +#ifdef INT8_MMA_AVAILABLE
    +
    +    typedef mma_int_A_I16K4 mma_A;
    +    typedef mma_int_B_J8K4  mma_B;
    +    typedef mma_int_C_I16J8 mma_C;
    +
    +    const int   * y_qs = (const int   *) y + 4;
    +    const float * y_df = (const float *) y;
     
    -            int v[QR2_K*VDR_Q2_K_Q8_1_MMQ];
    +    const int i0 = threadIdx.y*mma_A::I;
    +    static_assert(nwarps*mma_A::I == mmq_y, "nwarps*mma_A::I != mmq_y");
     
    -            const int kqsx = i*(WARP_SIZE + 1) + kbx*QI2_K + (QI2_K/2) * (ky/(2*QI2_K)) + ky % (QI2_K/2);
    -            const int shift = 2 * ((ky % (2*QI2_K)) / (QI2_K/2));
    +    mma_A   A[2];
    +    float  dA[mma_C::ne/2][2];
    +    float  mA[mma_C::ne/2][2];
     
     #pragma unroll
    -            for (int l = 0; l < QR2_K*VDR_Q2_K_Q8_1_MMQ; ++l) {
    -                v[l] = (x_ql[kqsx + l] >> shift) & 0x03030303;
    -            }
    +    for (int l = 0; l < mma_A::ne; ++l) {
    +        const int i = i0 + mma_A::get_i(l);
    +        const int shift = 2*mma_A::get_k(l);
     
    -            const uint8_t * scales = ((const uint8_t *) &x_sc[i*(WARP_SIZE/4) + i/4 + kbx*4]) + ky/4;
    +        A[0].x[l] = (x_qs[i*(WARP_SIZE + 1) + k0 + 0] >> shift) & 0x03030303;
    +        A[1].x[l] = (x_qs[i*(WARP_SIZE + 1) + k0 + 1] >> shift) & 0x03030303;
    +    }
     
    -            sum[j0/nwarps*mmq_y/WARP_SIZE + i0/WARP_SIZE] += vec_dot_q2_K_q8_1_impl_mmq(
    -                v, &y_qs[j*MMQ_TILE_Y_K + (QR2_K*k0) % WARP_SIZE], scales,
    -                x_dm[i*(WARP_SIZE/QI2_K) + i/QI2_K + kbx], y_df[j*MMQ_TILE_Y_K + ((QR2_K*k0) % WARP_SIZE)/QI8_1]);
    +#pragma unroll
    +    for (int l = 0; l < mma_C::ne/2; ++l) {
    +        const int i = i0 + mma_C::get_i(2*l);
    +
    +#pragma unroll
    +        for (int kk = 0; kk < 2; ++kk) {
    +            const float2 dm = __half22float2(x_dm[i*(WARP_SIZE + 1) + k0 + kk]);
    +
    +            dA[l][kk] = dm.x;
    +            mA[l][kk] = dm.y;
             }
         }
    +
    +#pragma unroll
    +    for (int j0 = 0; j0 < mmq_x; j0 += mma_int_B_J8K8::J) {
    +        mma_C Cd[2];
    +        mma_C Cm[2];
    +        mma_B B[2];
    +        float dB[mma_C::ne/2];
    +
    +#pragma unroll
    +        for (int l = 0; l < mma_B::ne; ++l) {
    +            const int j = j0 + mma_B::get_j(l);
    +            const int k = (4*k0 + mma_B::get_k(l)) % WARP_SIZE;
    +
    +            B[0].x[l] = y_qs[j*MMQ_TILE_Y_K + k + 0];
    +            B[1].x[l] = y_qs[j*MMQ_TILE_Y_K + k + mma_B::K];
    +        }
    +#pragma unroll
    +        for (int l = 0; l < mma_C::ne/2; ++l) {
    +            const int j = j0 + mma_C::get_j(l);
    +
    +            dB[l] = y_df[j*MMQ_TILE_Y_K + ((4*k0)/QI8_1) % (WARP_SIZE/QI8_1)];
    +        }
    +
    +        Cd[0].mma_K4(A[0], B[0]);
    +        Cd[1].mma_K4(A[1], B[1]);
    +
    +        mma_A A1;
    +        A1.x[0] = 0x01010101;
    +        A1.x[1] = 0x01010101;
    +        Cm[0].mma_K4(A1, B[0]);
    +        Cm[1].mma_K4(A1, B[1]);
    +
    +#pragma unroll
    +        for (int l = 0; l < mma_C::ne; ++l) {
    +            sum[(j0/mma_B::J)*mma_C::ne + l] += (Cd[0].x[l]*dA[l/2][0] + Cd[1].x[l]*dA[l/2][1] - Cm[0].x[l]*mA[l/2][0] - Cm[1].x[l]*mA[l/2][1])*dB[l%2];
    +        }
    +    }
    +#else
    +    GGML_UNUSED(x_qs); GGML_UNUSED(x_dm); GGML_UNUSED(x_sc); GGML_UNUSED(y); GGML_UNUSED(sum); GGML_UNUSED(k0);
    +    NO_DEVICE_CODE;
    +#endif // INT8_MMA_AVAILABLE
     }
     
     template  static __device__ __forceinline__ void load_tiles_q3_K(
    -    const char * __restrict__ x, int * __restrict__ x_ql, half2 * __restrict__ x_dm, int * __restrict__ x_qh,
    +    const char * __restrict__ x, int * __restrict__ x_qs, half2 * __restrict__ x_dm,
         int * __restrict__ x_sc, const int & kbx0, const int & i_max, const int & stride) {
     
         const int kbx  = threadIdx.x / QI3_K;
    @@ -926,7 +1001,25 @@ template  static __device__ __forceinlin
     
             const block_q3_K * bxi = (const block_q3_K *) x + kbx0 + i*stride + kbx;
     
    -        x_ql[i * (WARP_SIZE + 1) + threadIdx.x] = get_int_from_uint8(bxi->qs, kqsx);
    +        const int x_ql_0 = get_int_from_uint8(bxi->qs,    kqsx);
    +        const int x_qh_0 = get_int_from_uint8(bxi->hmask, kqsx % (QI3_K/2)) >> (4 * (kqsx / (QI3_K/2)));
    +
    +#pragma unroll
    +        for (int l = 0; l < QR3_K; ++l) {
    +            const int k = kbx*(QR3_K*QI3_K) + (kqsx/8)*32 + l*8 + kqsx % 8;
    +
    +            const int x_ql_k =  (x_ql_0 >> (2*l))       & 0x03030303;
    +            const int x_qh_k = ((x_qh_0 >>    l)  << 2) & 0x04040404;
    +
    +            int x_qs_k = (x_ql_k | x_qh_k) << (4*(k%2));
    +            x_qs_k |= __shfl_xor_sync(0xFFFFFFFF, x_qs_k, 1, WARP_SIZE);
    +
    +            if (kqsx % 2 != 0) {
    +                continue;
    +            }
    +
    +            x_qs[i*(2*WARP_SIZE + 1) + k/2] = x_qs_k;
    +        }
         }
     
         const int blocks_per_tile_x_row = WARP_SIZE / QI3_K;
    @@ -946,20 +1039,6 @@ template  static __device__ __forceinlin
             x_dmf[i * (WARP_SIZE/QI3_K) + i / QI3_K + kbxd] = bxi->d;
         }
     
    -#pragma unroll
    -    for (int i0 = 0; i0 < mmq_y; i0 += nwarps * 2) {
    -        int i = i0 + threadIdx.y * 2 + threadIdx.x / (WARP_SIZE/2);
    -
    -        if (need_check) {
    -            i = min(i, i_max);
    -        }
    -
    -        const block_q3_K * bxi = (const block_q3_K *) x + kbx0 + i*stride + (threadIdx.x % (WARP_SIZE/2)) / (QI3_K/2);
    -
    -        // invert the mask with ~ so that a 0/1 results in 4/0 being subtracted
    -        x_qh[i * (WARP_SIZE/2) + i / 2 + threadIdx.x % (WARP_SIZE/2)] = ~get_int_from_uint8(bxi->hmask, threadIdx.x % (QI3_K/2));
    -    }
    -
     #pragma unroll
         for (int i0 = 0; i0 < mmq_y; i0 += nwarps * 4) {
             int i = i0 + threadIdx.y * 4 + threadIdx.x / (WARP_SIZE/4);
    @@ -987,13 +1066,13 @@ template  static __device__ __forceinlin
     }
     
     template 
    -static __device__ __forceinline__ void vec_dot_q3_K_q8_1_mul_mat(
    -    const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc,
    +static __device__ __forceinline__ void vec_dot_q3_K_q8_1_dp4a(
    +    const int * __restrict__ x_qs, const half2 * __restrict__ x_dm, const int * __restrict__ x_sc,
         const int * __restrict__ y, float * __restrict__ sum, const int & k0) {
     
    -    const float * x_dmf = (const float *) x_dm;
    -    const int   * y_qs  = (const int   *) y + 4;
    -    const float * y_df  = (const float *) y;
    +    const float * x_df = (const float *) x_dm;
    +    const int   * y_qs = (const int   *) y + 4;
    +    const float * y_df = (const float *) y;
     
     #pragma unroll
         for (int j0 = 0; j0 < mmq_x; j0 += nwarps) {
    @@ -1008,31 +1087,102 @@ static __device__ __forceinline__ void vec_dot_q3_K_q8_1_mul_mat(
     
                 const int8_t * scales = ((const int8_t *) (x_sc + i * (WARP_SIZE/4) + i/4 + kbx*4)) + ky/4;
     
    -            int v[QR3_K*VDR_Q3_K_Q8_1_MMQ];
    +            sum[j0/nwarps*mmq_y/WARP_SIZE + i0/WARP_SIZE] += vec_dot_q3_K_q8_1_impl_mmq(
    +                &x_qs[i*(2*WARP_SIZE + 1) + 2*k0], &y_qs[j*MMQ_TILE_Y_K + (k0*QR3_K) % WARP_SIZE], scales,
    +                x_df[i*(WARP_SIZE/QI3_K) + i/QI3_K + kbx], y_df[j*MMQ_TILE_Y_K + ((k0*QR3_K) % WARP_SIZE)/QI8_1]);
    +        }
    +    }
    +}
    +
    +template 
    +static __device__ __forceinline__ void vec_dot_q3_K_q8_1_mma(
    +    const int * __restrict__ x_qs, const half2 * __restrict__ x_dm, const int * __restrict__ x_sc,
    +    const int * __restrict__ y, float * __restrict__ sum, const int & k0) {
    +#ifdef INT8_MMA_AVAILABLE
    +
    +    typedef mma_int_A_I16K4 mma_A;
    +    typedef mma_int_B_J8K4  mma_B;
    +    typedef mma_int_C_I16J8 mma_C;
    +
    +    const float * x_df = (const float *) x_dm;
    +    const int   * y_qs = (const int   *) y + 4;
    +    const float * y_df = (const float *) y;
    +
    +    const int i0 = threadIdx.y*mma_A::I;
    +    static_assert(nwarps*mma_A::I == mmq_y, "nwarps*mma_A::I != mmq_y");
    +
    +    mma_A   A[2];
    +    int   scA[mma_C::ne/2][2];
    +    float  dA[mma_C::ne/2];
     
     #pragma unroll
    -            for (int l = 0; l < QR3_K*VDR_Q3_K_Q8_1_MMQ; ++l) {
    -                const int kqsx = i*(WARP_SIZE + 1) + kbx*QI3_K + (QI3_K/2) * (ky/(2*QI3_K)) + ky % (QI3_K/2);
    -                const int shift = 2 * ((ky % 32) / 8);
    -                const int vll = (x_ql[kqsx + l] >> shift) & 0x03030303;
    +    for (int l = 0; l < mma_A::ne; ++l) {
    +        const int i = i0 + mma_A::get_i(l);
    +        const int k = QR3_K*k0 + mma_A::get_k(l);
     
    -                const int vh = x_qh[i*(WARP_SIZE/2) + i/2 + kbx * (QI3_K/2) + (ky+l)%8] >> ((ky+l) / 8);
    -                const int vlh = (vh << 2) & 0x04040404;
    +        A[0].x[l] = (x_qs[i*(2*WARP_SIZE + 1) + k/2 + 0]          >> (4*(k%2))) & 0x0F0F0F0F;
    +        A[1].x[l] = (x_qs[i*(2*WARP_SIZE + 1) + k/2 + mma_A::K/2] >> (4*(k%2))) & 0x0F0F0F0F;
    +        A[0].x[l] = __vsubss4(A[0].x[l], 0x04040404);
    +        A[1].x[l] = __vsubss4(A[1].x[l], 0x04040404);
    +    }
     
    -                v[l] = __vsubss4(vll, vlh);
    -            }
    +#pragma unroll
    +    for (int l = 0; l < mma_C::ne/2; ++l) {
    +        const int i = i0 + mma_C::get_i(2*l);
     
    -            sum[j0/nwarps*mmq_y/WARP_SIZE + i0/WARP_SIZE] += vec_dot_q3_K_q8_1_impl_mmq(
    -                v, &y_qs[j*MMQ_TILE_Y_K + (k0*QR3_K) % WARP_SIZE], scales,
    -                x_dmf[i*(WARP_SIZE/QI3_K) + i/QI3_K + kbx], y_df[j*MMQ_TILE_Y_K + ((k0*QR3_K) % WARP_SIZE)/QI8_1]);
    +        const int kbx  = k0 / QI3_K;
    +        const int ky  = (k0 % QI3_K) * QR3_K;
    +        const int8_t * sc = ((const int8_t *) (x_sc + i * (WARP_SIZE/4) + i/4 + kbx*4)) + ky/4;
    +
    +        scA[l][0] = sc[0];
    +        scA[l][1] = sc[1];
    +    }
    +
    +#pragma unroll
    +    for (int l = 0; l < mma_C::ne/2; ++l) {
    +        const int i = i0 + mma_C::get_i(2*l);
    +
    +        dA[l] = x_df[i*(WARP_SIZE/QI3_K) + i/QI3_K + k0/QI3_K];
    +    }
    +
    +#pragma unroll
    +    for (int j0 = 0; j0 < mmq_x; j0 += mma_int_B_J8K8::J) {
    +        mma_C C[2];
    +        mma_B B[2];
    +        float dB[mma_C::ne/2];
    +
    +#pragma unroll
    +        for (int l = 0; l < mma_B::ne; ++l) {
    +            const int j = j0 + mma_B::get_j(l);
    +            const int k = (4*k0 + mma_B::get_k(l)) % WARP_SIZE;
    +
    +            B[0].x[l] = y_qs[j*MMQ_TILE_Y_K + k + 0];
    +            B[1].x[l] = y_qs[j*MMQ_TILE_Y_K + k + mma_B::K];
    +        }
    +#pragma unroll
    +        for (int l = 0; l < mma_C::ne/2; ++l) {
    +            const int j = j0 + mma_C::get_j(l);
    +
    +            dB[l] = y_df[j*MMQ_TILE_Y_K + ((4*k0)/QI8_1) % (WARP_SIZE/QI8_1)];
    +        }
    +
    +        C[0].mma_K4(A[0], B[0]);
    +        C[1].mma_K4(A[1], B[1]);
    +
    +#pragma unroll
    +        for (int l = 0; l < mma_C::ne; ++l) {
    +            sum[(j0/mma_B::J)*mma_C::ne + l] += (C[0].x[l]*scA[l/2][0] + C[1].x[l]*scA[l/2][1])*dA[l/2]*dB[l%2];
             }
         }
    +#else
    +    GGML_UNUSED(x_qs); GGML_UNUSED(x_dm); GGML_UNUSED(x_sc); GGML_UNUSED(y); GGML_UNUSED(sum); GGML_UNUSED(k0);
    +    NO_DEVICE_CODE;
    +#endif // INT8_MMA_AVAILABLE
     }
     
     template  static __device__ __forceinline__ void load_tiles_q4_K(
    -    const char * __restrict__ x, int * __restrict__ x_ql, half2 * __restrict__ x_dm, int * __restrict__ x_qh,
    +    const char * __restrict__ x, int * __restrict__ x_qs, half2 * __restrict__ x_dm,
         int * __restrict__ x_sc, const int & kbx0, const int & i_max, const int & stride) {
    -    GGML_UNUSED(x_qh);
     
         const int kbx  = 0;           // threadIdx.x / QI4_K
         const int kqsx = threadIdx.x; // threadIdx.x % QI4_K
    @@ -1047,7 +1197,7 @@ template  static __device__ __forceinlin
     
             const block_q4_K * bxi = (const block_q4_K *) x + kbx0 + i*stride + kbx;
     
    -        x_ql[i * (WARP_SIZE + 1) + threadIdx.x] = get_int_from_uint8_aligned(bxi->qs, kqsx);
    +        x_qs[i * (WARP_SIZE + 1) + threadIdx.x] = get_int_from_uint8_aligned(bxi->qs, kqsx);
         }
     
         const int blocks_per_tile_x_row = WARP_SIZE / QI4_K;  // == 1 if QK_K == 256
    @@ -1090,11 +1240,9 @@ template  static __device__ __forceinlin
     
     template 
     static __device__ __forceinline__ void vec_dot_q4_K_q8_1_dp4a(
    -    const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc,
    +    const int * __restrict__ x_qs, const half2 * __restrict__ x_dm, const int * __restrict__ x_sc,
         const int * __restrict__ y, float * __restrict__ sum, const int & k0) {
     
    -    GGML_UNUSED(x_qh);
    -
         const int   * y_qs = (const int   *) y + 4;
         const half2 * y_ds = (const half2 *) y;
     
    @@ -1109,7 +1257,7 @@ static __device__ __forceinline__ void vec_dot_q4_K_q8_1_dp4a(
                 const uint8_t * sc = ((const uint8_t *) &x_sc[i * (WARP_SIZE/8) + i/8 + k0/16]) + 2*((k0 % 16) / 8);
     
                 sum[j0/nwarps*mmq_y/WARP_SIZE + i0/WARP_SIZE] += vec_dot_q4_K_q8_1_impl_mmq(
    -                &x_ql[i*(WARP_SIZE + 1) + k0], &y_qs[j*MMQ_TILE_Y_K + (QR4_K*k0) % WARP_SIZE], sc, sc+8,
    +                &x_qs[i*(WARP_SIZE + 1) + k0], &y_qs[j*MMQ_TILE_Y_K + (QR4_K*k0) % WARP_SIZE], sc, sc+8,
                     x_dm[i*(WARP_SIZE/QI4_K) + i/QI4_K], &y_ds[j*MMQ_TILE_Y_K + ((QR4_K*k0) % WARP_SIZE)/QI8_1]);
             }
         }
    @@ -1117,10 +1265,9 @@ static __device__ __forceinline__ void vec_dot_q4_K_q8_1_dp4a(
     
     template 
     static __device__ __forceinline__ void vec_dot_q4_K_q8_1_mma(
    -    const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc,
    +    const int * __restrict__ x_qs, const half2 * __restrict__ x_dm, const int * __restrict__ x_sc,
         const int * __restrict__ y, float * __restrict__ sum, const int & k0) {
    -
    -    GGML_UNUSED(x_qh); GGML_UNUSED(x_sc);
    +#ifdef INT8_MMA_AVAILABLE
     
         typedef mma_int_A_I16K8 mma_A;
         typedef mma_int_B_J8K8  mma_B;
    @@ -1143,7 +1290,7 @@ static __device__ __forceinline__ void vec_dot_q4_K_q8_1_mma(
                 const int i = i0 + mma_A::get_i(l);
                 const int k = k0 + mma_A::get_k(l);
     
    -            A[kvdr/4].x[l] = (x_ql[i*(WARP_SIZE + 1) + k] >> kvdr) & 0x0F0F0F0F;
    +            A[kvdr/4].x[l] = (x_qs[i*(WARP_SIZE + 1) + k] >> kvdr) & 0x0F0F0F0F;
             }
     
     #pragma unroll
    @@ -1204,12 +1351,15 @@ static __device__ __forceinline__ void vec_dot_q4_K_q8_1_mma(
                 sum[(j0/mma_B::J)*mma_C::ne + l] += __low2float(dmA[l/2])*tmpd[l] - __high2float(dmA[l/2])*tmpm[l];
             }
         }
    +#else
    +    GGML_UNUSED(x_qs); GGML_UNUSED(x_dm); GGML_UNUSED(x_sc); GGML_UNUSED(y); GGML_UNUSED(sum); GGML_UNUSED(k0);
    +    NO_DEVICE_CODE;
    +#endif // INT8_MMA_AVAILABLE
     }
     
     template  static __device__ __forceinline__ void load_tiles_q5_K(
    -    const char * __restrict__ x, int * __restrict__ x_ql, half2 * __restrict__ x_dm, int * __restrict__ x_qh,
    +    const char * __restrict__ x, int * __restrict__ x_qs, half2 * __restrict__ x_dm,
         int * __restrict__ x_sc, const int & kbx0, const int & i_max, const int & stride) {
    -    GGML_UNUSED(x_qh);
     
         const int kbx  = 0;           // threadIdx.x / QI5_K
         const int kqsx = threadIdx.x; // threadIdx.x % QI5_K
    @@ -1236,8 +1386,8 @@ template  static __device__ __forceinlin
             const int kq0 = ky - ky % (QI5_K/2) + threadIdx.x % (QI5_K/4) + 0;
             const int kq1 = ky - ky % (QI5_K/2) + threadIdx.x % (QI5_K/4) + (QI5_K/4);
     
    -        x_ql[i * (2*WARP_SIZE + 1) + kq0] = ql0 | qh0;
    -        x_ql[i * (2*WARP_SIZE + 1) + kq1] = ql1 | qh1;
    +        x_qs[i * (2*WARP_SIZE + 1) + kq0] = ql0 | qh0;
    +        x_qs[i * (2*WARP_SIZE + 1) + kq1] = ql1 | qh1;
         }
     
         const int blocks_per_tile_x_row = WARP_SIZE / QI5_K;  // == 1 if QK_K == 256
    @@ -1280,11 +1430,9 @@ template  static __device__ __forceinlin
     
     template 
     static __device__ __forceinline__ void vec_dot_q5_K_q8_1_dp4a(
    -    const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc,
    +    const int * __restrict__ x_qs, const half2 * __restrict__ x_dm, const int * __restrict__ x_sc,
         const int * __restrict__ y, float * __restrict__ sum, const int & k0) {
     
    -    GGML_UNUSED(x_qh);
    -
         const int   * y_qs  = (const int   *) y + 4;
         const half2 * y_ds  = (const half2 *) y;
     
    @@ -1299,7 +1447,7 @@ static __device__ __forceinline__ void vec_dot_q5_K_q8_1_dp4a(
                 const uint8_t * sc = ((const uint8_t *) &x_sc[i * (WARP_SIZE/8) + i/8 + k0/16]) + 2 * ((k0 % 16) / 8);
     
                 sum[j0/nwarps*mmq_y/WARP_SIZE + i0/WARP_SIZE] += vec_dot_q5_K_q8_1_impl_mmq(
    -                &x_ql[i*(QR5_K*WARP_SIZE + 1) + QR5_K*k0], &y_qs[j*MMQ_TILE_Y_K + (QR5_K*k0) % WARP_SIZE], sc, sc+8,
    +                &x_qs[i*(QR5_K*WARP_SIZE + 1) + QR5_K*k0], &y_qs[j*MMQ_TILE_Y_K + (QR5_K*k0) % WARP_SIZE], sc, sc+8,
                     x_dm[i*(WARP_SIZE/QI5_K) + i/QI5_K], &y_ds[j*MMQ_TILE_Y_K + ((QR5_K*k0) % WARP_SIZE)/QI8_1]);
             }
         }
    @@ -1307,10 +1455,9 @@ static __device__ __forceinline__ void vec_dot_q5_K_q8_1_dp4a(
     
     template 
     static __device__ __forceinline__ void vec_dot_q5_K_q8_1_mma(
    -    const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc,
    +    const int * __restrict__ x_qs, const half2 * __restrict__ x_dm, const int * __restrict__ x_sc,
         const int * __restrict__ y, float * __restrict__ sum, const int & k0) {
    -
    -    GGML_UNUSED(x_qh); GGML_UNUSED(x_sc);
    +#ifdef INT8_MMA_AVAILABLE
     
         typedef mma_int_A_I16K8 mma_A;
         typedef mma_int_B_J8K8  mma_B;
    @@ -1333,7 +1480,7 @@ static __device__ __forceinline__ void vec_dot_q5_K_q8_1_mma(
                 const int i = i0 + mma_A::get_i(l);
                 const int k = QR5_K*k0 + QR5_K*kvdr + mma_A::get_k(l);
     
    -            A[kvdr/4].x[l] = x_ql[i*(QR5_K*WARP_SIZE + 1) + k];
    +            A[kvdr/4].x[l] = x_qs[i*(QR5_K*WARP_SIZE + 1) + k];
             }
     
     #pragma unroll
    @@ -1394,12 +1541,15 @@ static __device__ __forceinline__ void vec_dot_q5_K_q8_1_mma(
                 sum[(j0/mma_B::J)*mma_C::ne + l] += __low2float(dmA[l/2])*tmpd[l] - __high2float(dmA[l/2])*tmpm[l];
             }
         }
    +#else
    +    GGML_UNUSED(x_qs); GGML_UNUSED(x_dm); GGML_UNUSED(x_sc); GGML_UNUSED(y); GGML_UNUSED(sum); GGML_UNUSED(k0);
    +    NO_DEVICE_CODE;
    +#endif // INT8_MMA_AVAILABLE
     }
     
     template  static __device__ __forceinline__ void load_tiles_q6_K(
    -    const char * __restrict__ x, int * __restrict__ x_ql, half2 * __restrict__ x_dm, int * __restrict__ x_qh,
    +    const char * __restrict__ x, int * __restrict__ x_qs, half2 * __restrict__ x_dm,
         int * __restrict__ x_sc, const int & kbx0, const int & i_max, const int & stride) {
    -    GGML_UNUSED(x_qh);
     
         const int kbx  = 0;           // threadIdx.x / QI6_K
         const int kqsx = threadIdx.x; // threadIdx.x % QI6_K
    @@ -1426,8 +1576,8 @@ template  static __device__ __forceinlin
             const int kq0 = ky - ky % QI6_K + threadIdx.x % (QI6_K/2) + 0;
             const int kq1 = ky - ky % QI6_K + threadIdx.x % (QI6_K/2) + (QI6_K/2);
     
    -        x_ql[i * (2*WARP_SIZE + 1) + kq0] = __vsubss4(ql0 | qh0, 0x20202020);
    -        x_ql[i * (2*WARP_SIZE + 1) + kq1] = __vsubss4(ql1 | qh1, 0x20202020);
    +        x_qs[i * (2*WARP_SIZE + 1) + kq0] = __vsubss4(ql0 | qh0, 0x20202020);
    +        x_qs[i * (2*WARP_SIZE + 1) + kq1] = __vsubss4(ql1 | qh1, 0x20202020);
         }
     
         const int blocks_per_tile_x_row = WARP_SIZE / QI6_K;  // == 1 if QK_K == 256
    @@ -1463,11 +1613,9 @@ template  static __device__ __forceinlin
     
     template 
     static __device__ __forceinline__ void vec_dot_q6_K_q8_1_dp4a(
    -    const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc,
    +    const int * __restrict__ x_qs, const half2 * __restrict__ x_dm, const int * __restrict__ x_sc,
         const int * __restrict__ y, float * __restrict__ sum, const int & k0) {
     
    -    GGML_UNUSED(x_qh);
    -
         const float * x_dmf = (const float *) x_dm;
         const int   * y_qs  = (const int   *) y + 4;
         const float * y_df  = (const float *) y;
    @@ -1483,7 +1631,7 @@ static __device__ __forceinline__ void vec_dot_q6_K_q8_1_dp4a(
                 const int8_t * sc = ((const int8_t *) &x_sc[i * (WARP_SIZE/8) + i/8 + k0/8]);
     
                 sum[j0/nwarps*mmq_y/WARP_SIZE + i0/WARP_SIZE] += vec_dot_q6_K_q8_1_impl_mmq(
    -                &x_ql[i*(QR6_K*WARP_SIZE + 1) + QR6_K*k0], &y_qs[j*MMQ_TILE_Y_K + (QR6_K*k0) % WARP_SIZE], sc,
    +                &x_qs[i*(QR6_K*WARP_SIZE + 1) + QR6_K*k0], &y_qs[j*MMQ_TILE_Y_K + (QR6_K*k0) % WARP_SIZE], sc,
                     x_dmf[i*(WARP_SIZE/QI6_K) + i/QI6_K], &y_df[j*MMQ_TILE_Y_K + ((QR6_K*k0) % WARP_SIZE)/QI8_1]);
             }
         }
    @@ -1491,10 +1639,9 @@ static __device__ __forceinline__ void vec_dot_q6_K_q8_1_dp4a(
     
     template 
     static __device__ __forceinline__ void vec_dot_q6_K_q8_1_mma(
    -    const int * __restrict__ x_ql, const half2 * __restrict__ x_dm, const int * __restrict__ x_qh, const int * __restrict__ x_sc,
    +    const int * __restrict__ x_qs, const half2 * __restrict__ x_dm, const int * __restrict__ x_sc,
         const int * __restrict__ y, float * __restrict__ sum, const int & k0) {
    -
    -    GGML_UNUSED(x_qh); GGML_UNUSED(x_sc);
    +#ifdef INT8_MMA_AVAILABLE
     
         typedef mma_int_A_I16K4 mma_A;
         typedef mma_int_B_J8K4  mma_B;
    @@ -1505,7 +1652,9 @@ static __device__ __forceinline__ void vec_dot_q6_K_q8_1_mma(
         const float * y_df = (const float *) y;
     
         const int i0 = threadIdx.y*mma_A::I;
    +#ifdef INT8_MMA_AVAILABLE
         static_assert(nwarps*mma_A::I == mmq_y, "nwarps*mma_A::I != mmq_y");
    +#endif // INT8_MMA_AVAILABLE
     
         mma_A   A[4];
         int   scA[mma_C::ne/2][4];
    @@ -1517,8 +1666,8 @@ static __device__ __forceinline__ void vec_dot_q6_K_q8_1_mma(
                 const int i = i0 + mma_A::get_i(l);
                 const int k = QR6_K*k0 + QR6_K*kvdr + mma_A::get_k(l);
     
    -            A[kvdr/2 + 0].x[l] = x_ql[i*(QR6_K*WARP_SIZE + 1) + k + 0];
    -            A[kvdr/2 + 1].x[l] = x_ql[i*(QR6_K*WARP_SIZE + 1) + k + mma_A::K];
    +            A[kvdr/2 + 0].x[l] = x_qs[i*(QR6_K*WARP_SIZE + 1) + k + 0];
    +            A[kvdr/2 + 1].x[l] = x_qs[i*(QR6_K*WARP_SIZE + 1) + k + mma_A::K];
             }
     
     #pragma unroll
    @@ -1578,6 +1727,10 @@ static __device__ __forceinline__ void vec_dot_q6_K_q8_1_mma(
                 sum[(j0/mma_B::J)*mma_C::ne + l] += tmp[l]*dA[l/2];
             }
         }
    +#else
    +    GGML_UNUSED(x_qs); GGML_UNUSED(x_dm); GGML_UNUSED(x_sc); GGML_UNUSED(y); GGML_UNUSED(sum); GGML_UNUSED(k0);
    +    NO_DEVICE_CODE;
    +#endif // INT8_MMA_AVAILABLE
     }
     
     template
    @@ -1608,7 +1761,9 @@ static __device__ __forceinline__ void mmq_write_back_mma(const float * __restri
         typedef mma_int_C_I16J8 mma_C;
     
         const int i0 = threadIdx.y*mma_C::I;
    +#ifdef INT8_MMA_AVAILABLE
         static_assert(nwarps*mma_C::I == mmq_y, "nwarps*mma_C::I != mmq_y");
    +#endif // INT8_MMA_AVAILABLE
     
     #pragma unroll
         for (int j0 = 0; j0 < mmq_x; j0 += mma_C::J) {
    @@ -1638,125 +1793,85 @@ struct mmq_type_traits;
     
     template 
     struct mmq_type_traits {
    -    static constexpr int              vdr        = VDR_Q4_0_Q8_1_MMQ;
    -    static constexpr load_tiles_mmq_t load_tiles = load_tiles_q4_0;
    -#ifdef INT8_MMA_AVAILABLE
    -    static constexpr vec_dot_mmq_t    vec_dot    = vec_dot_q4_0_q8_1_mma;
    -    static constexpr mmq_write_back_t write_back = mmq_write_back_mma;
    -#else
    -    static constexpr vec_dot_mmq_t    vec_dot    = vec_dot_q4_0_q8_1_dp4a;
    -    static constexpr mmq_write_back_t write_back = mmq_write_back_dp4a;
    -#endif // INT8_MMA_AVAILABLE
    +    static constexpr int              vdr          = VDR_Q4_0_Q8_1_MMQ;
    +    static constexpr load_tiles_mmq_t load_tiles   = load_tiles_q4_0;
    +    static constexpr vec_dot_mmq_t    vec_dot_mma  = vec_dot_q4_0_q8_1_mma;
    +    static constexpr vec_dot_mmq_t    vec_dot_dp4a = vec_dot_q4_0_q8_1_dp4a;
     };
     
     template 
     struct mmq_type_traits {
    -    static constexpr int              vdr        = VDR_Q4_1_Q8_1_MMQ;
    -    static constexpr load_tiles_mmq_t load_tiles = load_tiles_q4_1;
    -#ifdef INT8_MMA_AVAILABLE
    -    static constexpr vec_dot_mmq_t    vec_dot    = vec_dot_q4_1_q8_1_mma;
    -    static constexpr mmq_write_back_t write_back = mmq_write_back_mma;
    -#else
    -    static constexpr vec_dot_mmq_t    vec_dot    = vec_dot_q4_1_q8_1_dp4a;
    -    static constexpr mmq_write_back_t write_back = mmq_write_back_dp4a;
    -#endif // INT8_MMA_AVAILABLE
    +    static constexpr int              vdr          = VDR_Q4_1_Q8_1_MMQ;
    +    static constexpr load_tiles_mmq_t load_tiles   = load_tiles_q4_1;
    +    static constexpr vec_dot_mmq_t    vec_dot_mma  = vec_dot_q4_1_q8_1_mma;
    +    static constexpr vec_dot_mmq_t    vec_dot_dp4a = vec_dot_q4_1_q8_1_dp4a;
     };
     
     template 
     struct mmq_type_traits {
    -    static constexpr int              vdr        = VDR_Q5_0_Q8_1_MMQ;
    -    static constexpr load_tiles_mmq_t load_tiles = load_tiles_q5_0;
    -#ifdef INT8_MMA_AVAILABLE
    -    static constexpr vec_dot_mmq_t    vec_dot    = vec_dot_q5_0_q8_1_mma;
    -    static constexpr mmq_write_back_t write_back = mmq_write_back_mma;
    -#else
    -    static constexpr vec_dot_mmq_t    vec_dot    = vec_dot_q5_0_q8_1_dp4a;
    -    static constexpr mmq_write_back_t write_back = mmq_write_back_dp4a;
    -#endif // INT8_MMA_AVAILABLE
    +    static constexpr int              vdr          = VDR_Q5_0_Q8_1_MMQ;
    +    static constexpr load_tiles_mmq_t load_tiles   = load_tiles_q5_0;
    +    static constexpr vec_dot_mmq_t    vec_dot_mma  = vec_dot_q5_0_q8_1_mma;
    +    static constexpr vec_dot_mmq_t    vec_dot_dp4a = vec_dot_q5_0_q8_1_dp4a;
     };
     
     template 
     struct mmq_type_traits {
    -    static constexpr int              vdr        = VDR_Q5_1_Q8_1_MMQ;
    -    static constexpr load_tiles_mmq_t load_tiles = load_tiles_q5_1;
    -#ifdef INT8_MMA_AVAILABLE
    -    static constexpr vec_dot_mmq_t    vec_dot    = vec_dot_q5_1_q8_1_mma;
    -    static constexpr mmq_write_back_t write_back = mmq_write_back_mma;
    -#else
    -    static constexpr vec_dot_mmq_t    vec_dot    = vec_dot_q5_1_q8_1_dp4a;
    -    static constexpr mmq_write_back_t write_back = mmq_write_back_dp4a;
    -#endif // INT8_MMA_AVAILABLE
    +    static constexpr int              vdr          = VDR_Q5_1_Q8_1_MMQ;
    +    static constexpr load_tiles_mmq_t load_tiles   = load_tiles_q5_1;
    +    static constexpr vec_dot_mmq_t    vec_dot_mma  = vec_dot_q5_1_q8_1_mma;
    +    static constexpr vec_dot_mmq_t    vec_dot_dp4a = vec_dot_q5_1_q8_1_dp4a;
     };
     
     template 
     struct mmq_type_traits {
    -    static constexpr int              vdr        = VDR_Q8_0_Q8_1_MMQ;
    -    static constexpr load_tiles_mmq_t load_tiles = load_tiles_q8_0;
    -#ifdef INT8_MMA_AVAILABLE
    -    static constexpr vec_dot_mmq_t    vec_dot    = vec_dot_q8_0_q8_1_mma;
    -    static constexpr mmq_write_back_t write_back = mmq_write_back_mma;
    -#else
    -    static constexpr vec_dot_mmq_t    vec_dot    = vec_dot_q8_0_q8_1_dp4a;
    -    static constexpr mmq_write_back_t write_back = mmq_write_back_dp4a;
    -#endif // INT8_MMA_AVAILABLE
    +    static constexpr int              vdr          = VDR_Q8_0_Q8_1_MMQ;
    +    static constexpr load_tiles_mmq_t load_tiles   = load_tiles_q8_0;
    +    static constexpr vec_dot_mmq_t    vec_dot_mma  = vec_dot_q8_0_q8_1_mma;
    +    static constexpr vec_dot_mmq_t    vec_dot_dp4a = vec_dot_q8_0_q8_1_dp4a;
     };
     
     template 
     struct mmq_type_traits {
    -    static constexpr int              vdr        = VDR_Q2_K_Q8_1_MMQ;
    -    static constexpr load_tiles_mmq_t load_tiles = load_tiles_q2_K;
    -    static constexpr vec_dot_mmq_t    vec_dot    = vec_dot_q2_K_q8_1_mul_mat;
    -    static constexpr mmq_write_back_t write_back = mmq_write_back_dp4a;
    +    static constexpr int              vdr          = VDR_Q2_K_Q8_1_MMQ;
    +    static constexpr load_tiles_mmq_t load_tiles   = load_tiles_q2_K;
    +    static constexpr vec_dot_mmq_t    vec_dot_mma  = vec_dot_q2_K_q8_1_mma;
    +    static constexpr vec_dot_mmq_t    vec_dot_dp4a = vec_dot_q2_K_q8_1_dp4a;
     };
     
     template 
     struct mmq_type_traits {
    -    static constexpr int              vdr        = VDR_Q3_K_Q8_1_MMQ;
    -    static constexpr load_tiles_mmq_t load_tiles = load_tiles_q3_K;
    -    static constexpr vec_dot_mmq_t    vec_dot    = vec_dot_q3_K_q8_1_mul_mat;
    -    static constexpr mmq_write_back_t write_back = mmq_write_back_dp4a;
    +    static constexpr int              vdr          = VDR_Q3_K_Q8_1_MMQ;
    +    static constexpr load_tiles_mmq_t load_tiles   = load_tiles_q3_K;
    +    static constexpr vec_dot_mmq_t    vec_dot_mma  = vec_dot_q3_K_q8_1_mma;
    +    static constexpr vec_dot_mmq_t    vec_dot_dp4a = vec_dot_q3_K_q8_1_dp4a;
     };
     
     template 
     struct mmq_type_traits {
    -    static constexpr int              vdr        = VDR_Q4_K_Q8_1_MMQ;
    -    static constexpr load_tiles_mmq_t load_tiles = load_tiles_q4_K;
    -#ifdef INT8_MMA_AVAILABLE
    -    static constexpr vec_dot_mmq_t    vec_dot    = vec_dot_q4_K_q8_1_mma;
    -    static constexpr mmq_write_back_t write_back = mmq_write_back_mma;
    -#else
    -    static constexpr vec_dot_mmq_t    vec_dot    = vec_dot_q4_K_q8_1_dp4a;
    -    static constexpr mmq_write_back_t write_back = mmq_write_back_dp4a;
    -#endif // INT8_MMA_AVAILABLE
    +    static constexpr int              vdr          = VDR_Q4_K_Q8_1_MMQ;
    +    static constexpr load_tiles_mmq_t load_tiles   = load_tiles_q4_K;
    +    static constexpr vec_dot_mmq_t    vec_dot_mma  = vec_dot_q4_K_q8_1_mma;
    +    static constexpr vec_dot_mmq_t    vec_dot_dp4a = vec_dot_q4_K_q8_1_dp4a;
     };
     
     template 
     struct mmq_type_traits {
    -    static constexpr int              vdr        = VDR_Q5_K_Q8_1_MMQ;
    -    static constexpr load_tiles_mmq_t load_tiles = load_tiles_q5_K;
    -#ifdef INT8_MMA_AVAILABLE
    -    static constexpr vec_dot_mmq_t    vec_dot    = vec_dot_q5_K_q8_1_mma;
    -    static constexpr mmq_write_back_t write_back = mmq_write_back_mma;
    -#else
    -    static constexpr vec_dot_mmq_t    vec_dot    = vec_dot_q5_K_q8_1_dp4a;
    -    static constexpr mmq_write_back_t write_back = mmq_write_back_dp4a;
    -#endif // INT8_MMA_AVAILABLE
    +    static constexpr int              vdr          = VDR_Q5_K_Q8_1_MMQ;
    +    static constexpr load_tiles_mmq_t load_tiles   = load_tiles_q5_K;
    +    static constexpr vec_dot_mmq_t    vec_dot_mma  = vec_dot_q5_K_q8_1_mma;
    +    static constexpr vec_dot_mmq_t    vec_dot_dp4a = vec_dot_q5_K_q8_1_dp4a;
     };
     
     template 
     struct mmq_type_traits {
    -    static constexpr int              vdr        = VDR_Q6_K_Q8_1_MMQ;
    -    static constexpr load_tiles_mmq_t load_tiles = load_tiles_q6_K;
    -#ifdef INT8_MMA_AVAILABLE
    -    static constexpr vec_dot_mmq_t    vec_dot    = vec_dot_q6_K_q8_1_mma;
    -    static constexpr mmq_write_back_t write_back = mmq_write_back_mma;
    -#else
    -    static constexpr vec_dot_mmq_t    vec_dot    = vec_dot_q6_K_q8_1_dp4a;
    -    static constexpr mmq_write_back_t write_back = mmq_write_back_dp4a;
    -#endif // INT8_MMA_AVAILABLE
    +    static constexpr int              vdr          = VDR_Q6_K_Q8_1_MMQ;
    +    static constexpr load_tiles_mmq_t load_tiles   = load_tiles_q6_K;
    +    static constexpr vec_dot_mmq_t    vec_dot_mma  = vec_dot_q6_K_q8_1_mma;
    +    static constexpr vec_dot_mmq_t    vec_dot_dp4a = vec_dot_q6_K_q8_1_dp4a;
     };
     
    -static int mmq_need_sum(const ggml_type type_x) {
    +static bool mmq_need_sum(const ggml_type type_x) {
         switch (type_x) {
             case GGML_TYPE_Q4_0:
             case GGML_TYPE_Q4_1:
    @@ -1790,7 +1905,7 @@ template 
     #if __CUDA_ARCH__ >= CC_VOLTA
         __launch_bounds__(WARP_SIZE*nwarps, 1)
     #else
    -    __launch_bounds__(WARP_SIZE*nwarps, type == GGML_TYPE_Q2_K ? 1 : 2)
    +    __launch_bounds__(WARP_SIZE*nwarps, 2)
     #endif // __CUDA_ARCH__ >= CC_VOLTA
     #endif // defined(GGML_USE_HIPBLAS) && defined(__HIP_PLATFORM_AMD__)
     static __global__ void mul_mat_q(
    @@ -1809,16 +1924,21 @@ static __global__ void mul_mat_q(
         constexpr int              mmq_y      = get_mmq_y_device(mmq_x);
         constexpr int              vdr        = mmq_type_traits::vdr;
         constexpr load_tiles_mmq_t load_tiles = mmq_type_traits::load_tiles;
    -    constexpr vec_dot_mmq_t    vec_dot    = mmq_type_traits::vec_dot;
    -    constexpr mmq_write_back_t write_back = mmq_type_traits::write_back;
    +
    +#ifdef INT8_MMA_AVAILABLE
    +    constexpr vec_dot_mmq_t    vec_dot    = mmq_type_traits::vec_dot_mma;
    +    constexpr mmq_write_back_t write_back = mmq_write_back_mma;
    +#else
    +    constexpr vec_dot_mmq_t    vec_dot    = mmq_type_traits::vec_dot_dp4a;
    +    constexpr mmq_write_back_t write_back = mmq_write_back_dp4a;
    +#endif // INT8_MMA_AVAILABLE
     
         constexpr tile_x_sizes txs = get_tile_x_sizes_device(type);
     
         extern __shared__ char data_mul_mat_q[];
    -    int   * tile_x_ql = (int   *)  data_mul_mat_q;
    -    half2 * tile_x_dm = (half2 *) (tile_x_ql + txs.ql);
    -    int   * tile_x_qh = (int   *) (tile_x_dm + txs.dm);
    -    int   * tile_x_sc = (int   *) (tile_x_qh + txs.qh);
    +    int   * tile_x_qs = (int   *)  data_mul_mat_q;
    +    half2 * tile_x_dm = (half2 *) (tile_x_qs + txs.qs);
    +    int   * tile_x_sc = (int   *) (tile_x_dm + txs.dm);
         int   * tile_y    = (int   *) (tile_x_sc + txs.sc); // [mmq_x * (WARP_SIZE + WARP_SIZE/QI8_1)]
     
         const int blocks_per_row_x = ne00 / qk;
    @@ -1834,7 +1954,7 @@ static __global__ void mul_mat_q(
     
         for (int kb0 = 0; kb0 < blocks_per_row_x; kb0 += blocks_per_warp) {
     
    -        load_tiles(x, tile_x_ql, tile_x_dm, tile_x_qh, tile_x_sc, stride01*blockIdx.x*mmq_y + kb0, tile_x_max_i, stride01);
    +        load_tiles(x, tile_x_qs, tile_x_dm, tile_x_sc, stride01*blockIdx.x*mmq_y + kb0, tile_x_max_i, stride01);
     
     #pragma unroll
             for (int kr = 0; kr < qr; ++kr) {
    @@ -1850,7 +1970,7 @@ static __global__ void mul_mat_q(
     
     // #pragma unroll // unrolling this loop causes too much register pressure
                 for (int k0 = kr*WARP_SIZE/qr; k0 < (kr+1)*WARP_SIZE/qr; k0 += vdr) {
    -                vec_dot(tile_x_ql, tile_x_dm, tile_x_qh, tile_x_sc, tile_y, sum, k0);
    +                vec_dot(tile_x_qs, tile_x_dm, tile_x_sc, tile_y, sum, k0);
                 }
     
                 __syncthreads();
    @@ -1867,6 +1987,19 @@ struct mmq_args {
         int64_t ne0;
     };
     
    +constexpr int mmq_get_nwarps(int mmq_x) {
    +    return mmq_x >= 32 ? 8 : 4;
    +}
    +
    +static int mmq_get_shmem(const ggml_type type, const int mmq_x, const int mmq_y) {
    +    const tile_x_sizes txs = get_tile_x_sizes_host(type, mmq_y);
    +    const int nwarps = mmq_get_nwarps(mmq_x);
    +
    +    const int shmem_x = txs.qs*sizeof(int) + txs.dm*sizeof(half2) + txs.sc*sizeof(int);
    +    const int shmem_y = mmq_x*WARP_SIZE*sizeof(int) + mmq_x*(WARP_SIZE/QI8_1)*sizeof(half2);
    +    return shmem_x + GGML_PAD(shmem_y, nwarps*WARP_SIZE*sizeof(int));
    +}
    +
     template 
     static void launch_mul_mat_q(const mmq_args & args, cudaStream_t stream) {
         const int id = ggml_cuda_get_device();
    @@ -1878,10 +2011,7 @@ static void launch_mul_mat_q(const mmq_args & args, cudaStream_t stream) {
         const dim3 block_nums(block_num_x, block_num_y, 1);
         const dim3 block_dims(WARP_SIZE, nwarps, 1);
     
    -    const tile_x_sizes txs = get_tile_x_sizes_host(type, mmq_y);
    -    const int shmem_x = txs.ql*sizeof(int) + txs.dm*sizeof(half2) + txs.qh*sizeof(int) + txs.sc*sizeof(int);
    -    const int shmem_y = mmq_x*WARP_SIZE*sizeof(int) + mmq_x*(WARP_SIZE/QI8_1)*sizeof(half2);
    -    const int shmem = shmem_x + GGML_PAD(shmem_y, nwarps*WARP_SIZE*sizeof(int));
    +    const int shmem = mmq_get_shmem(type, mmq_x, mmq_y);
     
     #if !(defined(GGML_USE_HIPBLAS) && defined(__HIP_PLATFORM_AMD__))
         static bool shmem_limit_raised[GGML_CUDA_MAX_DEVICES] = {false};
    @@ -1905,9 +2035,10 @@ static void launch_mul_mat_q(const mmq_args & args, cudaStream_t stream) {
     
     template 
     void mul_mat_q_case(const mmq_args & args, cudaStream_t stream) {
    -    const int id = ggml_cuda_get_device();
    -    const int nsm = ggml_cuda_info().devices[id].nsm;
    -    const int cc  = ggml_cuda_info().devices[id].cc;
    +    const int id    = ggml_cuda_get_device();
    +    const int nsm   = ggml_cuda_info().devices[id].nsm;
    +    const int cc    = ggml_cuda_info().devices[id].cc;
    +    const int smpbo = ggml_cuda_info().devices[id].smpbo;
     
         const int mmq_x_max = get_mmq_x_max_host(cc);
         const int mmq_y = get_mmq_y_host(cc, mmq_x_max);
    @@ -1920,7 +2051,7 @@ void mul_mat_q_case(const mmq_args & args, cudaStream_t stream) {
             const int block_num_x = (args.ne11 + mmq_x - 1) / mmq_x;
             const int nwaves = (block_num_x*block_num_y + nsm - 1) / nsm;
     
    -        if (nwaves < nwaves_best) {
    +        if (nwaves < nwaves_best && mmq_get_shmem(type, mmq_x, mmq_y) <= smpbo) {
                 mmq_x_best  = mmq_x;
                 nwaves_best = nwaves;
             }
    @@ -1928,54 +2059,55 @@ void mul_mat_q_case(const mmq_args & args, cudaStream_t stream) {
     
         switch (mmq_x_best) {
             case   8:
    -            launch_mul_mat_q(args, stream);
    +            launch_mul_mat_q(args, stream);
                 break;
             case  16:
    -            launch_mul_mat_q(args, stream);
    +            launch_mul_mat_q(args, stream);
                 break;
             case  24:
    -            launch_mul_mat_q(args, stream);
    +            launch_mul_mat_q(args, stream);
                 break;
             case  32:
    -            launch_mul_mat_q(args, stream);
    +            launch_mul_mat_q(args, stream);
                 break;
             case  40:
    -            launch_mul_mat_q(args, stream);
    +            launch_mul_mat_q(args, stream);
                 break;
             case  48:
    -            launch_mul_mat_q(args, stream);
    +            launch_mul_mat_q(args, stream);
                 break;
             case  56:
    -            launch_mul_mat_q(args, stream);
    +            launch_mul_mat_q(args, stream);
                 break;
             case  64:
    -            launch_mul_mat_q(args, stream);
    +            launch_mul_mat_q(args, stream);
                 break;
             case  72:
    -            launch_mul_mat_q(args, stream);
    +            launch_mul_mat_q(args, stream);
                 break;
             case  80:
    -            launch_mul_mat_q(args, stream);
    +            launch_mul_mat_q(args, stream);
                 break;
             case  88:
    -            launch_mul_mat_q(args, stream);
    +            launch_mul_mat_q(args, stream);
                 break;
             case  96:
    -            launch_mul_mat_q(args, stream);
    +            launch_mul_mat_q(args, stream);
                 break;
             case 104:
    -            launch_mul_mat_q(args, stream);
    +            launch_mul_mat_q(args, stream);
                 break;
             case 112:
    -            launch_mul_mat_q(args, stream);
    +            launch_mul_mat_q(args, stream);
                 break;
             case 120:
    -            launch_mul_mat_q(args, stream);
    +            launch_mul_mat_q(args, stream);
                 break;
             case 128:
    -            launch_mul_mat_q(args, stream);
    +            launch_mul_mat_q(args, stream);
                 break;
             default:
    +            fprintf(stderr, "mmq_x_best=%d\n", mmq_x_best);
                 GGML_ASSERT(false);
                 break;
         }
    diff --git a/ggml-cuda/softmax.cu b/ggml-cuda/softmax.cu
    index ce64f2f2ce28b..c24abae1f138c 100644
    --- a/ggml-cuda/softmax.cu
    +++ b/ggml-cuda/softmax.cu
    @@ -130,6 +130,7 @@ static void soft_max_f32_cuda(const float * x, const T * mask, float * dst, cons
         const float m0 = powf(2.0f, -(max_bias       ) / n_head_log2);
         const float m1 = powf(2.0f, -(max_bias / 2.0f) / n_head_log2);
     
    +    // FIXME: this limit could be raised by ~2-4x on Ampere or newer
         if (shmem < ggml_cuda_info().devices[ggml_cuda_get_device()].smpb) {
             switch (ncols_x) {
                 case 32:
    diff --git a/ggml-cuda/vecdotq.cuh b/ggml-cuda/vecdotq.cuh
    index b9573a7c7d053..3b12d656616be 100644
    --- a/ggml-cuda/vecdotq.cuh
    +++ b/ggml-cuda/vecdotq.cuh
    @@ -265,36 +265,31 @@ static __device__ __forceinline__ float vec_dot_q2_K_q8_1_impl_mmvq(
     
     // contiguous u/y values
     static __device__ __forceinline__ float vec_dot_q2_K_q8_1_impl_mmq(
    -    const int * __restrict__ v, const int * __restrict__ u, const uint8_t * __restrict__ scales,
    -    const half2 & dm2, const float & d8) {
    +    const int * __restrict__ v, const int * __restrict__ u, const half2 * dm2, const float & d8) {
     
     #if __CUDA_ARCH__ >= MIN_CC_DP4A // lowest compute capability for integer intrinsics
    -    int sumi_d = 0;
    -    int sumi_m = 0;
    +    float sumf_d = 0.0f;
    +    float sumf_m = 0.0f;
     
     #pragma unroll
         for (int i0 = 0; i0 < QI8_1; i0 += QI8_1/2) {
    -        int sumi_d_sc = 0;
    -
    -        const int sc = scales[i0 / (QI8_1/2)];
    -
    -        // fill int with 4x m
    -        int m = sc >> 4;
    -        m |= m <<  8;
    -        m |= m << 16;
    +        const float2 dm2f = __half22float2(dm2[i0/(QI8_1/2)]);
    +        int sumi_d = 0;
    +        int sumi_m = 0;
     
    +        const int vi0 = v[i0/(QI8_1/2)];
     #pragma unroll
             for (int i = i0; i < i0 + QI8_1/2; ++i) {
    -            sumi_d_sc = __dp4a(v[i], u[i], sumi_d_sc); // SIMD dot product
    -            sumi_m    = __dp4a(m,    u[i], sumi_m); // multiply sum of q8_1 values with m
    +            const int vi = (vi0 >> (2*(i % (QI8_1/2)))) & 0x03030303;
    +            sumi_d = __dp4a(vi,         u[i], sumi_d); // SIMD dot product
    +            sumi_m = __dp4a(0x01010101, u[i], sumi_m);
             }
     
    -        sumi_d += sumi_d_sc * (sc & 0xF);
    +        sumf_d += dm2f.x * sumi_d;
    +        sumf_m += dm2f.y * sumi_m;
         }
     
    -    const float2 dm2f = __half22float2(dm2);
    -
    -    return d8 * (dm2f.x*sumi_d - dm2f.y*sumi_m);
    +    return d8*(sumf_d - sumf_m);
     #else
         NO_DEVICE_CODE;
     #endif // __CUDA_ARCH__ >= MIN_CC_DP4A
    @@ -352,8 +347,10 @@ static __device__ __forceinline__ float vec_dot_q3_K_q8_1_impl_mmq(
         for (int i0 = 0; i0 < QR3_K*VDR_Q3_K_Q8_1_MMQ; i0 += QI8_1/2) {
             int sumi_sc = 0;
     
    +#pragma unroll
             for (int i = i0; i < i0 + QI8_1/2; ++i) {
    -            sumi_sc = __dp4a(v[i], u[i], sumi_sc); // SIMD dot product
    +            const int vi = __vsubss4((v[i/2] >> (4*(i%2))) & 0x0F0F0F0F, 0x04040404);
    +            sumi_sc = __dp4a(vi, u[i], sumi_sc); // SIMD dot product
             }
     
             sumi += sumi_sc * scales[i0 / (QI8_1/2)];
    
    From f8ec8877b75774fc6c47559d529dac423877bcad Mon Sep 17 00:00:00 2001
    From: olexiyb 
    Date: Fri, 14 Jun 2024 20:28:34 +0300
    Subject: [PATCH 073/131] ci : fix macos x86 build (#7940)
    
    In order to use old `macos-latest` we should use `macos-12`
    
    Potentially will fix: https://github.com/ggerganov/llama.cpp/issues/6975
    ---
     .github/workflows/build.yml | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
    index 81ce770cce3a1..a8fcae0435e00 100644
    --- a/.github/workflows/build.yml
    +++ b/.github/workflows/build.yml
    @@ -84,7 +84,7 @@ jobs:
               name: llama-bin-macos-arm64.zip
     
       macOS-latest-cmake-x64:
    -    runs-on: macos-latest
    +    runs-on: macos-12
     
         steps:
           - name: Clone
    
    From 7b2f4a7d193ef2475259bbe7656fcccfab4b1217 Mon Sep 17 00:00:00 2001
    From: "Meng, Hengyu" 
    Date: Sat, 15 Jun 2024 14:05:10 +0800
    Subject: [PATCH 074/131] [SYCL] remove global variables (#7710)
    
    * separate DPCT helpers outside
    
    * replace global variables with context
    
    * remove useless extra
    
    * update mul_mat condition
    
    * remove duplicate buft initialization
    
    * remove duplicate extra and global work group size
    
    * remove useless backend check
    
    * remove duplicated extras
    
    * use macro for group_size and remove cuda-related
    ---
     CMakeLists.txt            |    3 +-
     ggml-sycl.cpp             | 5650 +++++--------------------------------
     ggml-sycl.h               |   11 +-
     ggml-sycl/backend.hpp     |   18 +
     ggml-sycl/common.cpp      |   53 +
     ggml-sycl/common.hpp      |  298 ++
     ggml-sycl/dpct/helper.hpp | 2980 +++++++++++++++++++
     ggml-sycl/presets.hpp     |   69 +
     llama.cpp                 |   13 +-
     9 files changed, 4201 insertions(+), 4894 deletions(-)
     create mode 100644 ggml-sycl/backend.hpp
     create mode 100644 ggml-sycl/common.cpp
     create mode 100644 ggml-sycl/common.hpp
     create mode 100644 ggml-sycl/dpct/helper.hpp
     create mode 100644 ggml-sycl/presets.hpp
    
    diff --git a/CMakeLists.txt b/CMakeLists.txt
    index 08481334f18f5..d86107187834c 100644
    --- a/CMakeLists.txt
    +++ b/CMakeLists.txt
    @@ -684,7 +684,8 @@ if (LLAMA_SYCL)
         endif()
     
         set(GGML_HEADERS_SYCL ggml-sycl.h)
    -    set(GGML_SOURCES_SYCL ggml-sycl.cpp)
    +    file(GLOB GGML_SOURCES_SYCL "ggml-sycl/*.cpp")
    +    list(APPEND GGML_SOURCES_SYCL "ggml-sycl.cpp")
     
         if (WIN32)
             set(LLAMA_EXTRA_LIBS ${LLAMA_EXTRA_LIBS} -fsycl sycl7 OpenCL mkl_sycl_blas_dll.lib mkl_intel_ilp64_dll.lib mkl_sequential_dll.lib mkl_core_dll.lib)
    diff --git a/ggml-sycl.cpp b/ggml-sycl.cpp
    index 6f41ed2723794..6bd42b9609882 100644
    --- a/ggml-sycl.cpp
    +++ b/ggml-sycl.cpp
    @@ -36,6 +36,8 @@
     #include "ggml.h"
     #include "ggml-backend-impl.h"
     
    +#include "ggml-sycl/backend.hpp"
    +
     /*
     Following definition copied from DPCT head files, which are used by ggml-sycl.cpp
     */
    @@ -82,3020 +84,7 @@ Following definition copied from DPCT head files, which are used by ggml-sycl.cp
     #define __dpct_noinline__ __attribute__((noinline))
     #endif
     
    -
    -std::string get_device_type_name(const sycl::device &Device) {
    -    auto DeviceType = Device.get_info();
    -    switch (DeviceType) {
    -    case sycl::info::device_type::cpu:
    -        return "cpu";
    -    case sycl::info::device_type::gpu:
    -        return "gpu";
    -    case sycl::info::device_type::host:
    -        return "host";
    -    case sycl::info::device_type::accelerator:
    -        return "acc";
    -    default:
    -        return "unknown";
    -    }
    -}
    -
    -std::string get_device_backend_and_type(const sycl::device &device) {
    -    std::stringstream device_type;
    -    sycl::backend backend = device.get_backend();
    -    device_type <<  backend << ":" << get_device_type_name(device);
    -    return device_type.str();
    -}
    -
    -namespace dpct
    -{
    -    typedef sycl::queue *queue_ptr;
    -    typedef sycl::event *event_ptr;
    -    typedef char *device_ptr;
    -    typedef uint8_t byte_t;
    -    typedef sycl::buffer buffer_t;
    -
    -    /// SYCL default exception handler
    -    inline auto exception_handler = [](sycl::exception_list exceptions)
    -    {
    -        for (std::exception_ptr const &e : exceptions)
    -        {
    -            try
    -            {
    -                std::rethrow_exception(e);
    -            }
    -            catch (sycl::exception const &e)
    -            {
    -                std::cerr << "Caught asynchronous SYCL exception:" << std::endl
    -                          << e.what() << std::endl
    -                          << "Exception caught at file:" << __FILE__
    -                          << ", line:" << __LINE__ << std::endl;
    -            }
    -        }
    -    };
    -
    -    enum error_code
    -    {
    -        success = 0,
    -        default_error = 999
    -    };
    -
    -    enum memcpy_direction
    -    {
    -        host_to_host,
    -        host_to_device,
    -        device_to_host,
    -        device_to_device,
    -        automatic
    -    };
    -
    -    enum memory_region
    -    {
    -        global = 0, // device global memory
    -        constant,   // device constant memory
    -        local,      // device local memory
    -        shared,     // memory which can be accessed by host and device
    -    };
    -
    -    enum class library_data_t : unsigned char
    -    {
    -        real_float = 0,
    -        complex_float,
    -        real_double,
    -        complex_double,
    -        real_half,
    -        complex_half,
    -        real_bfloat16,
    -        complex_bfloat16,
    -        real_int4,
    -        complex_int4,
    -        real_uint4,
    -        complex_uint4,
    -        real_int8,
    -        complex_int8,
    -        real_uint8,
    -        complex_uint8,
    -        real_int16,
    -        complex_int16,
    -        real_uint16,
    -        complex_uint16,
    -        real_int32,
    -        complex_int32,
    -        real_uint32,
    -        complex_uint32,
    -        real_int64,
    -        complex_int64,
    -        real_uint64,
    -        complex_uint64,
    -        real_int8_4,
    -        real_int8_32,
    -        real_uint8_4,
    -        library_data_t_size
    -    };
    -
    -    template 
    -    struct DataType
    -    {
    -        using T2 = T;
    -    };
    -    template 
    -    struct DataType>
    -    {
    -        using T2 = std::complex;
    -    };
    -
    -    static void destroy_event(event_ptr event)
    -    {
    -        delete event;
    -    }
    -
    -    static inline unsigned int get_tid()
    -    {
    -#if defined(__linux__)
    -        return syscall(SYS_gettid);
    -#elif defined(_WIN64)
    -        return GetCurrentThreadId();
    -#else
    -#error "Only support Windows and Linux."
    -#endif
    -    }
    -
    -    namespace detail
    -    {
    -        static void get_version(const sycl::device &dev, int &major, int &minor)
    -        {
    -            // Version string has the following format:
    -            // a. OpenCL
    -            // b. 
    -            // c.  e.g gfx1030
    -            std::string ver;
    -            ver = dev.get_info();
    -            std::string::size_type i = 0;
    -            while (i < ver.size()) {
    -              if (isdigit(ver[i]))
    -                break;
    -              i++;
    -            }
    -            major = std::stoi(&(ver[i]));
    -            while (i < ver.size()) {
    -              if (ver[i] == '.')
    -                break;
    -              i++;
    -            }
    -            if (i < ver.size()) {
    -              // a. and b.
    -              i++;
    -              minor = std::stoi(&(ver[i]));
    -            } else {
    -              // c.
    -              minor = 0;
    -            }
    -        }
    -
    -        template 
    -        class generic_error_type
    -        {
    -        public:
    -            generic_error_type() = default;
    -            generic_error_type(T value) : value{value} {}
    -            operator T() const { return value; }
    -
    -        private:
    -            T value;
    -        };
    -
    -    } // namespace detail
    -
    -    /// Pitched 2D/3D memory data.
    -    class pitched_data
    -    {
    -    public:
    -        pitched_data() : pitched_data(nullptr, 0, 0, 0) {}
    -        pitched_data(void *data, size_t pitch, size_t x, size_t y)
    -            : _data(data), _pitch(pitch), _x(x), _y(y) {}
    -
    -        void *get_data_ptr() { return _data; }
    -        void set_data_ptr(void *data) { _data = data; }
    -
    -        size_t get_pitch() { return _pitch; }
    -        void set_pitch(size_t pitch) { _pitch = pitch; }
    -
    -        size_t get_x() { return _x; }
    -        void set_x(size_t x) { _x = x; };
    -
    -        size_t get_y() { return _y; }
    -        void set_y(size_t y) { _y = y; }
    -
    -    private:
    -        void *_data;
    -        size_t _pitch, _x, _y;
    -    };
    -
    -    class device_info
    -    {
    -    public:
    -        // get interface
    -        const char *get_name() const { return _name; }
    -        char *get_name() { return _name; }
    -        template ,
    -                  std::enable_if_t> ||
    -                                       std::is_same_v,
    -                                   int> = 0>
    -        auto get_max_work_item_sizes() const
    -        {
    -            if constexpr (std::is_same_v>)
    -                return sycl::range<3>(_max_work_item_sizes_i[0],
    -                                      _max_work_item_sizes_i[1],
    -                                      _max_work_item_sizes_i[2]);
    -            else
    -            {
    -                return _max_work_item_sizes_i;
    -            }
    -        }
    -        template ,
    -                  std::enable_if_t> ||
    -                                       std::is_same_v,
    -                                   int> = 0>
    -        auto get_max_work_item_sizes()
    -        {
    -            if constexpr (std::is_same_v>)
    -                return sycl::range<3>(_max_work_item_sizes_i[0],
    -                                      _max_work_item_sizes_i[1],
    -                                      _max_work_item_sizes_i[2]);
    -            else
    -            {
    -                return _max_work_item_sizes_i;
    -            }
    -        }
    -        bool get_host_unified_memory() const { return _host_unified_memory; }
    -        int get_major_version() const { return _major; }
    -        int get_minor_version() const { return _minor; }
    -        int get_integrated() const { return _integrated; }
    -        int get_max_clock_frequency() const { return _frequency; }
    -        int get_max_compute_units() const { return _max_compute_units; }
    -        int get_max_work_group_size() const { return _max_work_group_size; }
    -        int get_max_sub_group_size() const { return _max_sub_group_size; }
    -        int get_max_work_items_per_compute_unit() const
    -        {
    -            return _max_work_items_per_compute_unit;
    -        }
    -        int get_max_register_size_per_work_group() const
    -        {
    -            return _max_register_size_per_work_group;
    -        }
    -        template  ||
    -                                       std::is_same_v,
    -                                   int> = 0>
    -        auto get_max_nd_range_size() const
    -        {
    -            if constexpr (std::is_same_v)
    -                return _max_nd_range_size;
    -            else
    -                return _max_nd_range_size_i;
    -        }
    -        template  ||
    -                                       std::is_same_v,
    -                                   int> = 0>
    -        auto get_max_nd_range_size()
    -        {
    -            if constexpr (std::is_same_v)
    -                return _max_nd_range_size;
    -            else
    -                return _max_nd_range_size_i;
    -        }
    -        size_t get_global_mem_size() const { return _global_mem_size; }
    -        size_t get_local_mem_size() const { return _local_mem_size; }
    -        size_t get_max_mem_alloc_size() const { return _max_mem_alloc_size; }
    -        /// Returns the maximum clock rate of device's global memory in kHz. If
    -        /// compiler does not support this API then returns default value 3200000 kHz.
    -        unsigned int get_memory_clock_rate() const { return _memory_clock_rate; }
    -        /// Returns the maximum bus width between device and memory in bits. If
    -        /// compiler does not support this API then returns default value 64 bits.
    -        unsigned int get_memory_bus_width() const { return _memory_bus_width; }
    -        uint32_t get_device_id() const { return _device_id; }
    -        std::array get_uuid() const { return _uuid; }
    -        /// Returns global memory cache size in bytes.
    -        unsigned int get_global_mem_cache_size() const
    -        {
    -            return _global_mem_cache_size;
    -        }
    -
    -        // set interface
    -        void set_name(const char *name)
    -        {
    -            size_t length = strlen(name);
    -            if (length < 256)
    -            {
    -                std::memcpy(_name, name, length + 1);
    -            }
    -            else
    -            {
    -                std::memcpy(_name, name, 255);
    -                _name[255] = '\0';
    -            }
    -        }
    -        void set_max_work_item_sizes(const sycl::range<3> max_work_item_sizes)
    -        {
    -            for (int i = 0; i < 3; ++i)
    -                _max_work_item_sizes_i[i] = max_work_item_sizes[i];
    -        }
    -        [[deprecated]] void
    -        set_max_work_item_sizes(const sycl::id<3> max_work_item_sizes)
    -        {
    -            for (int i = 0; i < 3; ++i)
    -            {
    -                _max_work_item_sizes_i[i] = max_work_item_sizes[i];
    -            }
    -        }
    -        void set_host_unified_memory(bool host_unified_memory)
    -        {
    -            _host_unified_memory = host_unified_memory;
    -        }
    -        void set_major_version(int major) { _major = major; }
    -        void set_minor_version(int minor) { _minor = minor; }
    -        void set_integrated(int integrated) { _integrated = integrated; }
    -        void set_max_clock_frequency(int frequency) { _frequency = frequency; }
    -        void set_max_compute_units(int max_compute_units)
    -        {
    -            _max_compute_units = max_compute_units;
    -        }
    -        void set_global_mem_size(size_t global_mem_size)
    -        {
    -            _global_mem_size = global_mem_size;
    -        }
    -        void set_local_mem_size(size_t local_mem_size)
    -        {
    -            _local_mem_size = local_mem_size;
    -        }
    -        void set_max_mem_alloc_size(size_t max_mem_alloc_size)
    -        {
    -            _max_mem_alloc_size = max_mem_alloc_size;
    -        }
    -        void set_max_work_group_size(int max_work_group_size)
    -        {
    -            _max_work_group_size = max_work_group_size;
    -        }
    -        void set_max_sub_group_size(int max_sub_group_size)
    -        {
    -            _max_sub_group_size = max_sub_group_size;
    -        }
    -        void
    -        set_max_work_items_per_compute_unit(int max_work_items_per_compute_unit)
    -        {
    -            _max_work_items_per_compute_unit = max_work_items_per_compute_unit;
    -        }
    -        void set_max_nd_range_size(int max_nd_range_size[])
    -        {
    -            for (int i = 0; i < 3; i++)
    -            {
    -                _max_nd_range_size[i] = max_nd_range_size[i];
    -                _max_nd_range_size_i[i] = max_nd_range_size[i];
    -            }
    -        }
    -        void set_memory_clock_rate(unsigned int memory_clock_rate)
    -        {
    -            _memory_clock_rate = memory_clock_rate;
    -        }
    -        void set_memory_bus_width(unsigned int memory_bus_width)
    -        {
    -            _memory_bus_width = memory_bus_width;
    -        }
    -        void
    -        set_max_register_size_per_work_group(int max_register_size_per_work_group)
    -        {
    -            _max_register_size_per_work_group = max_register_size_per_work_group;
    -        }
    -        void set_device_id(uint32_t device_id)
    -        {
    -            _device_id = device_id;
    -        }
    -        void set_uuid(std::array uuid)
    -        {
    -            _uuid = std::move(uuid);
    -        }
    -        void set_global_mem_cache_size(unsigned int global_mem_cache_size)
    -        {
    -            _global_mem_cache_size = global_mem_cache_size;
    -        }
    -
    -    private:
    -        char _name[256];
    -        int _max_work_item_sizes_i[3];
    -        bool _host_unified_memory = false;
    -        int _major;
    -        int _minor;
    -        int _integrated = 0;
    -        int _frequency;
    -        // Set estimated value 3200000 kHz as default value.
    -        unsigned int _memory_clock_rate = 3200000;
    -        // Set estimated value 64 bits as default value.
    -        unsigned int _memory_bus_width = 64;
    -        unsigned int _global_mem_cache_size;
    -        int _max_compute_units;
    -        int _max_work_group_size;
    -        int _max_sub_group_size;
    -        int _max_work_items_per_compute_unit;
    -        int _max_register_size_per_work_group;
    -        size_t _global_mem_size;
    -        size_t _local_mem_size;
    -        size_t _max_mem_alloc_size;
    -        size_t _max_nd_range_size[3];
    -        int _max_nd_range_size_i[3];
    -        uint32_t _device_id;
    -        std::array _uuid;
    -    };
    -
    -    static int get_major_version(const sycl::device &dev)
    -    {
    -        int major, minor;
    -        detail::get_version(dev, major, minor);
    -        return major;
    -    }
    -
    -    static int get_minor_version(const sycl::device &dev)
    -    {
    -        int major, minor;
    -        detail::get_version(dev, major, minor);
    -        return minor;
    -    }
    -
    -    static void get_device_info(device_info &out, const sycl::device &dev)
    -    {
    -        device_info prop;
    -        prop.set_name(dev.get_info().c_str());
    -
    -        int major, minor;
    -        detail::get_version(dev, major, minor);
    -        prop.set_major_version(major);
    -        prop.set_minor_version(minor);
    -
    -        prop.set_max_work_item_sizes(
    -#if (__SYCL_COMPILER_VERSION && __SYCL_COMPILER_VERSION < 20220902)
    -            // oneAPI DPC++ compiler older than 2022/09/02, where max_work_item_sizes
    -            // is an enum class element
    -            dev.get_info());
    -#else
    -            // SYCL 2020-conformant code, max_work_item_sizes is a struct templated by
    -            // an int
    -            dev.get_info>());
    -#endif
    -        prop.set_host_unified_memory(dev.has(sycl::aspect::usm_host_allocations));
    -
    -        prop.set_max_clock_frequency(
    -            dev.get_info() * 1000);
    -
    -        prop.set_max_compute_units(
    -            dev.get_info());
    -        prop.set_max_work_group_size(
    -            dev.get_info());
    -        prop.set_global_mem_size(dev.get_info());
    -        prop.set_local_mem_size(dev.get_info());
    -        prop.set_max_mem_alloc_size(dev.get_info());
    -
    -#if (defined(SYCL_EXT_INTEL_DEVICE_INFO) && SYCL_EXT_INTEL_DEVICE_INFO >= 6)
    -        if (dev.has(sycl::aspect::ext_intel_memory_clock_rate))
    -        {
    -            unsigned int tmp =
    -                dev.get_info();
    -            if (tmp != 0)
    -                prop.set_memory_clock_rate(1000 * tmp);
    -        }
    -        if (dev.has(sycl::aspect::ext_intel_memory_bus_width))
    -        {
    -            prop.set_memory_bus_width(
    -                dev.get_info());
    -        }
    -        if (dev.has(sycl::aspect::ext_intel_device_id))
    -        {
    -            prop.set_device_id(
    -                dev.get_info());
    -        }
    -        if (dev.has(sycl::aspect::ext_intel_device_info_uuid))
    -        {
    -            prop.set_uuid(dev.get_info());
    -        }
    -#elif defined(_MSC_VER) && !defined(__clang__)
    -#pragma message("get_device_info: querying memory_clock_rate and \
    -        memory_bus_width are not supported by the compiler used. \
    -        Use 3200000 kHz as memory_clock_rate default value. \
    -        Use 64 bits as memory_bus_width default value.")
    -#else
    -#warning "get_device_info: querying memory_clock_rate and \
    -        memory_bus_width are not supported by the compiler used. \
    -        Use 3200000 kHz as memory_clock_rate default value. \
    -        Use 64 bits as memory_bus_width default value."
    -#endif
    -
    -        size_t max_sub_group_size = 1;
    -        std::vector sub_group_sizes =
    -            dev.get_info();
    -
    -        for (const auto &sub_group_size : sub_group_sizes)
    -        {
    -            if (max_sub_group_size < sub_group_size)
    -                max_sub_group_size = sub_group_size;
    -        }
    -
    -        prop.set_max_sub_group_size(max_sub_group_size);
    -
    -        prop.set_max_work_items_per_compute_unit(
    -            dev.get_info());
    -        int max_nd_range_size[] = {0x7FFFFFFF, 0x7FFFFFFF, 0x7FFFFFFF};
    -        prop.set_max_nd_range_size(max_nd_range_size);
    -
    -        // Estimates max register size per work group, feel free to update the value
    -        // according to device properties.
    -        prop.set_max_register_size_per_work_group(65536);
    -
    -        prop.set_global_mem_cache_size(
    -            dev.get_info());
    -        out = prop;
    -    }
    -
    -    /// dpct device extension
    -    class device_ext : public sycl::device
    -    {
    -        typedef std::mutex mutex_type;
    -
    -    public:
    -        device_ext() : sycl::device(), _ctx(*this) {}
    -        ~device_ext()
    -        {
    -            std::lock_guard lock(m_mutex);
    -            clear_queues();
    -        }
    -        device_ext(const sycl::device &base) : sycl::device(base), _ctx(*this)
    -        {
    -            std::lock_guard lock(m_mutex);
    -            init_queues();
    -        }
    -
    -        int is_native_atomic_supported() { return 0; }
    -        int get_major_version() const
    -        {
    -            return dpct::get_major_version(*this);
    -        }
    -
    -        int get_minor_version() const
    -        {
    -            return dpct::get_minor_version(*this);
    -        }
    -
    -        int get_max_compute_units() const
    -        {
    -            return get_device_info().get_max_compute_units();
    -        }
    -
    -        /// Return the maximum clock frequency of this device in KHz.
    -        int get_max_clock_frequency() const
    -        {
    -            return get_device_info().get_max_clock_frequency();
    -        }
    -
    -        int get_integrated() const { return get_device_info().get_integrated(); }
    -
    -        int get_max_sub_group_size() const
    -        {
    -            return get_device_info().get_max_sub_group_size();
    -        }
    -
    -        int get_max_register_size_per_work_group() const
    -        {
    -            return get_device_info().get_max_register_size_per_work_group();
    -        }
    -
    -        int get_max_work_group_size() const
    -        {
    -            return get_device_info().get_max_work_group_size();
    -        }
    -
    -        int get_mem_base_addr_align() const
    -        {
    -            return get_info();
    -        }
    -
    -        size_t get_global_mem_size() const
    -        {
    -            return get_device_info().get_global_mem_size();
    -        }
    -
    -        size_t get_max_mem_alloc_size() const
    -        {
    -            return get_device_info().get_max_mem_alloc_size();
    -        }
    -
    -        /// Get the number of bytes of free and total memory on the SYCL device.
    -        /// \param [out] free_memory The number of bytes of free memory on the SYCL device.
    -        /// \param [out] total_memory The number of bytes of total memory on the SYCL device.
    -        void get_memory_info(size_t &free_memory, size_t &total_memory)
    -        {
    -            total_memory = get_device_info().get_global_mem_size();
    -            const char *warning_info = "get_memory_info: [warning] ext_intel_free_memory is not "
    -                                 "supported (export/set ZES_ENABLE_SYSMAN=1 to support), "
    -                                 "use total memory as free memory";
    -#if (defined(__SYCL_COMPILER_VERSION) && __SYCL_COMPILER_VERSION >= 20221105)
    -            if (!has(sycl::aspect::ext_intel_free_memory))
    -            {
    -                std::cerr << warning_info << std::endl;
    -                free_memory = total_memory;
    -            }
    -            else
    -            {
    -                free_memory = get_info();
    -            }
    -#else
    -            std::cerr << warning_info << std::endl;
    -            free_memory = total_memory;
    -#if defined(_MSC_VER) && !defined(__clang__)
    -#pragma message("Querying the number of bytes of free memory is not supported")
    -#else
    -#warning "Querying the number of bytes of free memory is not supported"
    -#endif
    -#endif
    -        }
    -
    -        void get_device_info(device_info &out) const
    -        {
    -            dpct::get_device_info(out, *this);
    -        }
    -
    -        device_info get_device_info() const
    -        {
    -            device_info prop;
    -            dpct::get_device_info(prop, *this);
    -            return prop;
    -        }
    -
    -        void reset()
    -        {
    -            std::lock_guard lock(m_mutex);
    -            clear_queues();
    -            init_queues();
    -        }
    -
    -        sycl::queue &in_order_queue() { return *_q_in_order; }
    -
    -        sycl::queue &out_of_order_queue() { return *_q_out_of_order; }
    -
    -        sycl::queue &default_queue()
    -        {
    -            return in_order_queue();
    -        }
    -
    -        void queues_wait_and_throw()
    -        {
    -            std::unique_lock lock(m_mutex);
    -            std::vector> current_queues(
    -                _queues);
    -            lock.unlock();
    -            for (const auto &q : current_queues)
    -            {
    -                q->wait_and_throw();
    -            }
    -            // Guard the destruct of current_queues to make sure the ref count is safe.
    -            lock.lock();
    -        }
    -
    -        sycl::queue *create_queue(bool enable_exception_handler = false)
    -        {
    -            return create_in_order_queue(enable_exception_handler);
    -        }
    -
    -        sycl::queue *create_queue(sycl::context context, sycl::device device,
    -                                bool enable_exception_handler = false) {
    -            return create_in_order_queue(context, device, enable_exception_handler);
    -        }
    -
    -        sycl::queue *create_in_order_queue(bool enable_exception_handler = false) {
    -            std::lock_guard lock(m_mutex);
    -            return create_queue_impl(enable_exception_handler,
    -                                    sycl::property::queue::in_order());
    -        }
    -
    -        sycl::queue *create_in_order_queue(sycl::context context, sycl::device device,
    -                                        bool enable_exception_handler = false) {
    -            std::lock_guard lock(m_mutex);
    -            return create_queue_impl(context, device, enable_exception_handler,
    -                                    sycl::property::queue::in_order());
    -        }
    -
    -        sycl::queue *create_out_of_order_queue(bool enable_exception_handler = false) {
    -            std::lock_guard lock(m_mutex);
    -            return create_queue_impl(enable_exception_handler);
    -        }
    -
    -        void destroy_queue(sycl::queue *&queue)
    -        {
    -            std::lock_guard lock(m_mutex);
    -            _queues.erase(std::remove_if(_queues.begin(), _queues.end(),
    -                                         [=](const std::shared_ptr &q) -> bool
    -                                         {
    -                                             return q.get() == queue;
    -                                         }),
    -                          _queues.end());
    -            queue = nullptr;
    -        }
    -        void set_saved_queue(sycl::queue *q)
    -        {
    -            std::lock_guard lock(m_mutex);
    -            _saved_queue = q;
    -        }
    -        sycl::queue *get_saved_queue() const
    -        {
    -            std::lock_guard lock(m_mutex);
    -            return _saved_queue;
    -        }
    -        sycl::context get_context() const { return _ctx; }
    -
    -    private:
    -        void clear_queues()
    -        {
    -            _queues.clear();
    -            _q_in_order = _q_out_of_order = _saved_queue = nullptr;
    -        }
    -
    -        void init_queues()
    -        {
    -            _q_in_order = create_queue_impl(true, sycl::property::queue::in_order());
    -            _q_out_of_order = create_queue_impl(true);
    -            _saved_queue = &default_queue();
    -        }
    -
    -        /// Caller should acquire resource \p m_mutex before calling this function.
    -        template 
    -        sycl::queue *create_queue_impl(bool enable_exception_handler,
    -                                       Properties... properties)
    -        {
    -            sycl::async_handler eh = {};
    -            if (enable_exception_handler)
    -            {
    -                eh = exception_handler;
    -            }
    -            _queues.push_back(std::make_shared(
    -                _ctx, *this, eh,
    -                sycl::property_list(
    -#ifdef DPCT_PROFILING_ENABLED
    -                    sycl::property::queue::enable_profiling(),
    -#endif
    -                    properties...)));
    -
    -            return _queues.back().get();
    -        }
    -
    -        template 
    -        sycl::queue *create_queue_impl(sycl::context context, sycl::device device,
    -                                    bool enable_exception_handler,
    -                                    Properties... properties) {
    -            sycl::async_handler eh = {};
    -            if (enable_exception_handler) {
    -                eh = exception_handler;
    -            }
    -            _queues.push_back(std::make_shared(
    -                context, device, eh,
    -                sycl::property_list(
    -        #ifdef DPCT_PROFILING_ENABLED
    -                    sycl::property::queue::enable_profiling(),
    -        #endif
    -                    properties...)));
    -
    -            return _queues.back().get();
    -        }
    -
    -        void get_version(int &major, int &minor) const
    -        {
    -            detail::get_version(*this, major, minor);
    -        }
    -        sycl::queue *_q_in_order, *_q_out_of_order;
    -        sycl::queue *_saved_queue;
    -        sycl::context _ctx;
    -        std::vector> _queues;
    -        mutable mutex_type m_mutex;
    -    };
    -
    -    /// device manager
    -    class dev_mgr
    -    {
    -    public:
    -        device_ext ¤t_device()
    -        {
    -            unsigned int dev_id = current_device_id();
    -            check_id(dev_id);
    -            return *_devs[dev_id];
    -        }
    -        device_ext &cpu_device() const
    -        {
    -            std::lock_guard lock(m_mutex);
    -            if (_cpu_device == -1)
    -            {
    -                throw std::runtime_error("no valid cpu device");
    -            }
    -            else
    -            {
    -                return *_devs[_cpu_device];
    -            }
    -        }
    -        device_ext &get_device(unsigned int id) const
    -        {
    -            std::lock_guard lock(m_mutex);
    -            check_id(id);
    -            return *_devs[id];
    -        }
    -        unsigned int current_device_id() const
    -        {
    -            std::lock_guard lock(m_mutex);
    -            auto it = _thread2dev_map.find(get_tid());
    -            if (it != _thread2dev_map.end())
    -                return it->second;
    -            return DEFAULT_DEVICE_ID;
    -        }
    -
    -        /// Select device with a device ID.
    -        /// \param [in] id The id of the device which can
    -        /// be obtained through get_device_id(const sycl::device).
    -        void select_device(unsigned int id)
    -        {
    -            std::lock_guard lock(m_mutex);
    -            check_id(id);
    -            _thread2dev_map[get_tid()] = id;
    -        }
    -        unsigned int device_count() { return _devs.size(); }
    -
    -        unsigned int get_device_id(const sycl::device &dev)
    -        {
    -            unsigned int id = 0;
    -            for (auto dev_item : _devs)
    -            {
    -                if (*dev_item == dev)
    -                {
    -                    break;
    -                }
    -                id++;
    -            }
    -            return id;
    -        }
    -
    -        template 
    -        std::enable_if_t<
    -            std::is_invocable_r_v>
    -        select_device(const DeviceSelector &selector = sycl::gpu_selector_v)
    -        {
    -            sycl::device selected_device = sycl::device(selector);
    -            unsigned int selected_device_id = get_device_id(selected_device);
    -            select_device(selected_device_id);
    -        }
    -
    -        /// Returns the instance of device manager singleton.
    -        static dev_mgr &instance()
    -        {
    -            static dev_mgr d_m;
    -            return d_m;
    -        }
    -        dev_mgr(const dev_mgr &) = delete;
    -        dev_mgr &operator=(const dev_mgr &) = delete;
    -        dev_mgr(dev_mgr &&) = delete;
    -        dev_mgr &operator=(dev_mgr &&) = delete;
    -
    -    private:
    -        mutable std::recursive_mutex m_mutex;
    -        static bool compare_dev(sycl::device &device1, sycl::device &device2)
    -        {
    -            dpct::device_info prop1;
    -            dpct::get_device_info(prop1, device1);
    -            dpct::device_info prop2;
    -            dpct::get_device_info(prop2, device2);
    -            return prop1.get_max_compute_units() > prop2.get_max_compute_units();
    -        }
    -        static int convert_backend_index(std::string & backend) {
    -            if (backend == "ext_oneapi_level_zero:gpu") return 0;
    -            if (backend == "opencl:gpu") return 1;
    -            if (backend == "ext_oneapi_cuda:gpu") return 2;
    -            if (backend == "ext_oneapi_hip:gpu") return 3;
    -            if (backend == "opencl:cpu") return 4;
    -            if (backend == "opencl:acc") return 5;
    -            printf("convert_backend_index: can't handle backend=%s\n", backend.c_str());
    -            GGML_ASSERT(false);
    -        }
    -        static bool compare_backend(std::string &backend1, std::string &backend2) {
    -            return convert_backend_index(backend1) < convert_backend_index(backend2);
    -        }
    -        dev_mgr()
    -        {
    -            sycl::device default_device =
    -                sycl::device(sycl::default_selector_v);
    -            _devs.push_back(std::make_shared(default_device));
    -
    -            std::vector sycl_all_devs;
    -            // Collect other devices except for the default device.
    -            if (default_device.is_cpu())
    -                _cpu_device = 0;
    -
    -            auto Platforms = sycl::platform::get_platforms();
    -            // Keep track of the number of devices per backend
    -            std::map DeviceNums;
    -            std::map> backend_devices;
    -
    -            while (!Platforms.empty()) {
    -                auto Platform = Platforms.back();
    -                Platforms.pop_back();
    -                auto devices = Platform.get_devices();
    -                std::string backend_type = get_device_backend_and_type(devices[0]);
    -                for (const auto &device : devices) {
    -                    backend_devices[backend_type].push_back(device);
    -                }
    -            }
    -
    -            std::vector keys;
    -            for(auto it = backend_devices.begin(); it != backend_devices.end(); ++it) {
    -                keys.push_back(it->first);
    -            }
    -            std::sort(keys.begin(), keys.end(), compare_backend);
    -
    -            for (auto &key : keys) {
    -                std::vector devs = backend_devices[key];
    -                std::sort(devs.begin(), devs.end(), compare_dev);
    -                for (const auto &dev : devs) {
    -                    sycl_all_devs.push_back(dev);
    -                }
    -            }
    -
    -            for (auto &dev : sycl_all_devs)
    -            {
    -                if (dev == default_device)
    -                {
    -                    continue;
    -                }
    -                _devs.push_back(std::make_shared(dev));
    -                if (_cpu_device == -1 && dev.is_cpu())
    -                {
    -                    _cpu_device = _devs.size() - 1;
    -                }
    -            }
    -        }
    -        void check_id(unsigned int id) const
    -        {
    -            if (id >= _devs.size())
    -            {
    -                throw std::runtime_error("invalid device id");
    -            }
    -        }
    -        std::vector> _devs;
    -        /// DEFAULT_DEVICE_ID is used, if current_device_id() can not find current
    -        /// thread id in _thread2dev_map, which means default device should be used
    -        /// for the current thread.
    -        const unsigned int DEFAULT_DEVICE_ID = 0;
    -        /// thread-id to device-id map.
    -        std::map _thread2dev_map;
    -        int _cpu_device = -1;
    -    };
    -
    -    static inline sycl::queue &get_default_queue()
    -    {
    -        return dev_mgr::instance().current_device().default_queue();
    -    }
    -
    -    namespace detail
    -    {
    -        enum class pointer_access_attribute
    -        {
    -            host_only = 0,
    -            device_only,
    -            host_device,
    -            end
    -        };
    -
    -        static pointer_access_attribute get_pointer_attribute(sycl::queue &q,
    -                                                              const void *ptr)
    -        {
    -            switch (sycl::get_pointer_type(ptr, q.get_context()))
    -            {
    -            case sycl::usm::alloc::unknown:
    -                return pointer_access_attribute::host_only;
    -            case sycl::usm::alloc::device:
    -                return pointer_access_attribute::device_only;
    -            case sycl::usm::alloc::shared:
    -            case sycl::usm::alloc::host:
    -                return pointer_access_attribute::host_device;
    -            }
    -        }
    -
    -        template 
    -        inline constexpr std::uint64_t get_type_combination_id(ArgT Val)
    -        {
    -            static_assert((unsigned char)library_data_t::library_data_t_size <=
    -                              std::numeric_limits::max() &&
    -                          "library_data_t size exceeds limit.");
    -            static_assert(std::is_same_v, "Unsupported ArgT");
    -            return (std::uint64_t)Val;
    -        }
    -
    -        template 
    -        inline constexpr std::uint64_t get_type_combination_id(FirstT FirstVal,
    -                                                               RestT... RestVal)
    -        {
    -            static_assert((std::uint8_t)library_data_t::library_data_t_size <=
    -                              std::numeric_limits::max() &&
    -                          "library_data_t size exceeds limit.");
    -            static_assert(sizeof...(RestT) <= 8 && "Too many parameters");
    -            static_assert(std::is_same_v, "Unsupported FirstT");
    -            return get_type_combination_id(RestVal...) << 8 | ((std::uint64_t)FirstVal);
    -        }
    -
    -        class mem_mgr
    -        {
    -            mem_mgr()
    -            {
    -                // Reserved address space, no real memory allocation happens here.
    -#if defined(__linux__)
    -                mapped_address_space =
    -                    (byte_t *)mmap(nullptr, mapped_region_size, PROT_NONE,
    -                                   MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
    -#elif defined(_WIN64)
    -                mapped_address_space = (byte_t *)VirtualAlloc(
    -                    NULL,               // NULL specified as the base address parameter
    -                    mapped_region_size, // Size of allocation
    -                    MEM_RESERVE,        // Allocate reserved pages
    -                    PAGE_NOACCESS);     // Protection = no access
    -#else
    -#error "Only support Windows and Linux."
    -#endif
    -                next_free = mapped_address_space;
    -            };
    -
    -        public:
    -            using buffer_id_t = int;
    -
    -            struct allocation
    -            {
    -                buffer_t buffer;
    -                byte_t *alloc_ptr;
    -                size_t size;
    -            };
    -
    -            ~mem_mgr()
    -            {
    -#if defined(__linux__)
    -                munmap(mapped_address_space, mapped_region_size);
    -#elif defined(_WIN64)
    -                VirtualFree(mapped_address_space, 0, MEM_RELEASE);
    -#else
    -#error "Only support Windows and Linux."
    -#endif
    -            };
    -
    -            mem_mgr(const mem_mgr &) = delete;
    -            mem_mgr &operator=(const mem_mgr &) = delete;
    -            mem_mgr(mem_mgr &&) = delete;
    -            mem_mgr &operator=(mem_mgr &&) = delete;
    -
    -            /// Allocate
    -            void *mem_alloc(size_t size)
    -            {
    -                if (!size)
    -                    return nullptr;
    -                std::lock_guard lock(m_mutex);
    -                if (next_free + size > mapped_address_space + mapped_region_size)
    -                {
    -                    throw std::runtime_error("dpct_malloc: out of memory for virtual memory pool");
    -                }
    -                // Allocation
    -                sycl::range<1> r(size);
    -                buffer_t buf(r);
    -                allocation A{buf, next_free, size};
    -                // Map allocation to device pointer
    -                void *result = next_free;
    -                m_map.emplace(next_free + size, A);
    -                // Update pointer to the next free space.
    -                next_free += (size + extra_padding + alignment - 1) & ~(alignment - 1);
    -
    -                return result;
    -            }
    -
    -            /// Deallocate
    -            void mem_free(const void *ptr)
    -            {
    -                if (!ptr)
    -                    return;
    -                std::lock_guard lock(m_mutex);
    -                auto it = get_map_iterator(ptr);
    -                m_map.erase(it);
    -            }
    -
    -            /// map: device pointer -> allocation(buffer, alloc_ptr, size)
    -            allocation translate_ptr(const void *ptr)
    -            {
    -                std::lock_guard lock(m_mutex);
    -                auto it = get_map_iterator(ptr);
    -                return it->second;
    -            }
    -
    -            /// Check if the pointer represents device pointer or not.
    -            bool is_device_ptr(const void *ptr) const
    -            {
    -                std::lock_guard lock(m_mutex);
    -                return (mapped_address_space <= ptr) &&
    -                       (ptr < mapped_address_space + mapped_region_size);
    -            }
    -
    -            /// Returns the instance of memory manager singleton.
    -            static mem_mgr &instance()
    -            {
    -                static mem_mgr m;
    -                return m;
    -            }
    -
    -        private:
    -            std::map m_map;
    -            mutable std::mutex m_mutex;
    -            byte_t *mapped_address_space;
    -            byte_t *next_free;
    -            const size_t mapped_region_size = 128ull * 1024 * 1024 * 1024;
    -            const size_t alignment = 256;
    -            /// This padding may be defined to some positive value to debug
    -            /// out of bound accesses.
    -            const size_t extra_padding = 0;
    -
    -            std::map::iterator get_map_iterator(const void *ptr)
    -            {
    -                auto it = m_map.upper_bound((byte_t *)ptr);
    -                if (it == m_map.end())
    -                {
    -                    // Not a virtual pointer.
    -                    throw std::runtime_error("can not get buffer from non-virtual pointer");
    -                }
    -                const allocation &alloc = it->second;
    -                if (ptr < alloc.alloc_ptr)
    -                {
    -                    // Out of bound.
    -                    // This may happen if there's a gap between allocations due to alignment
    -                    // or extra padding and pointer points to this gap.
    -                    throw std::runtime_error("invalid virtual pointer");
    -                }
    -                return it;
    -            }
    -        };
    -
    -        template 
    -        class accessor;
    -        template 
    -        class memory_traits
    -        {
    -        public:
    -            static constexpr sycl::access::target target =
    -                sycl::access::target::device;
    -            static constexpr sycl::access_mode mode =
    -                (Memory == constant) ? sycl::access_mode::read
    -                                     : sycl::access_mode::read_write;
    -            static constexpr size_t type_size = sizeof(T);
    -            using element_t =
    -                typename std::conditional::type;
    -            using value_t = typename std::remove_cv::type;
    -            template 
    -            using accessor_t = typename std::conditional<
    -                Memory == local, sycl::local_accessor,
    -                sycl::accessor>::type;
    -            using pointer_t = T *;
    -        };
    -
    -        static inline void *dpct_malloc(size_t size, sycl::queue &q)
    -        {
    -            return sycl::malloc_device(size, q.get_device(), q.get_context());
    -        }
    -
    -#define PITCH_DEFAULT_ALIGN(x) (((x) + 31) & ~(0x1F))
    -        static inline void *dpct_malloc(size_t &pitch, size_t x, size_t y, size_t z,
    -                                        sycl::queue &q)
    -        {
    -            pitch = PITCH_DEFAULT_ALIGN(x);
    -            return dpct_malloc(pitch * y * z, q);
    -        }
    -
    -        /**
    -         * @brief Sets \p value to the first \p size elements starting from \p dev_ptr in \p q.
    -         * @tparam valueT The type of the element to be set.
    -         * @param [in] q The queue in which the operation is done.
    -         * @param [in] dev_ptr Pointer to the virtual device memory address.
    -         * @param [in] value The value to be set.
    -         * @param [in] size Number of elements to be set to the value.
    -         * @return An event representing the memset operation.
    -         */
    -        template 
    -        static inline sycl::event dpct_memset(sycl::queue &q, void *dev_ptr,
    -                                              valueT value, size_t size)
    -        {
    -            return q.fill(dev_ptr, value, size);
    -        }
    -
    -        /**
    -         * @brief Sets \p value to the 3D memory region pointed by \p data in \p q.
    -         * @tparam valueT The type of the element to be set.
    -         * @param [in] q The queue in which the operation is done.
    -         * @param [in] data Pointer to the pitched device memory region.
    -         * @param [in] value The value to be set.
    -         * @param [in] size 3D memory region by number of elements.
    -         * @return An event list representing the memset operations.
    -         */
    -        template 
    -        static inline std::vector
    -        dpct_memset(sycl::queue &q, pitched_data data, valueT value,
    -                    sycl::range<3> size)
    -        {
    -            std::vector event_list;
    -            size_t slice = data.get_pitch() * data.get_y();
    -            unsigned char *data_surface = (unsigned char *)data.get_data_ptr();
    -            for (size_t z = 0; z < size.get(2); ++z)
    -            {
    -                unsigned char *data_ptr = data_surface;
    -                for (size_t y = 0; y < size.get(1); ++y)
    -                {
    -                    event_list.push_back(dpct_memset(q, data_ptr, value, size.get(0)));
    -                    data_ptr += data.get_pitch();
    -                }
    -                data_surface += slice;
    -            }
    -            return event_list;
    -        }
    -
    -        /**
    -         * @brief Sets \p val to the pitched 2D memory region pointed by \p ptr in \p q.
    -         * @tparam valueT The type of the element to be set.
    -         * @param [in] q The queue in which the operation is done.
    -         * @param [in] ptr Pointer to the virtual device memory.
    -         * @param [in] pitch The pitch size by number of elements, including padding.
    -         * @param [in] val The value to be set.
    -         * @param [in] x The width of memory region by number of elements.
    -         * @param [in] y The height of memory region by number of elements.
    -         * @return An event list representing the memset operations.
    -         */
    -        template 
    -        static inline std::vector
    -        dpct_memset(sycl::queue &q, void *ptr, size_t pitch, valueT val, size_t x,
    -                    size_t y)
    -        {
    -            return dpct_memset(q, pitched_data(ptr, pitch, x, 1), val,
    -                               sycl::range<3>(x, y, 1));
    -        }
    -
    -        static memcpy_direction deduce_memcpy_direction(sycl::queue &q, void *to_ptr,
    -                                                        const void *from_ptr,
    -                                                        memcpy_direction dir)
    -        {
    -            switch (dir)
    -            {
    -            case memcpy_direction::host_to_host:
    -            case memcpy_direction::host_to_device:
    -            case memcpy_direction::device_to_host:
    -            case memcpy_direction::device_to_device:
    -                return dir;
    -            case memcpy_direction::automatic:
    -            {
    -                // table[to_attribute][from_attribute]
    -                static const memcpy_direction
    -                    direction_table[static_cast(pointer_access_attribute::end)]
    -                                   [static_cast(pointer_access_attribute::end)] =
    -                                       {{memcpy_direction::host_to_host,
    -                                         memcpy_direction::device_to_host,
    -                                         memcpy_direction::host_to_host},
    -                                        {memcpy_direction::host_to_device,
    -                                         memcpy_direction::device_to_device,
    -                                         memcpy_direction::device_to_device},
    -                                        {memcpy_direction::host_to_host,
    -                                         memcpy_direction::device_to_device,
    -                                         memcpy_direction::device_to_device}};
    -                return direction_table[static_cast(get_pointer_attribute(
    -                    q, to_ptr))][static_cast(get_pointer_attribute(q, from_ptr))];
    -            }
    -            default:
    -                throw std::runtime_error("dpct_memcpy: invalid direction value");
    -            }
    -        }
    -
    -        static sycl::event
    -        dpct_memcpy(sycl::queue &q, void *to_ptr, const void *from_ptr, size_t size,
    -                    memcpy_direction direction,
    -                    const std::vector &dep_events = {})
    -        {
    -            if (!size)
    -                return sycl::event{};
    -            return q.memcpy(to_ptr, from_ptr, size, dep_events);
    -            GGML_UNUSED(direction);
    -        }
    -
    -        // Get actual copy range and make sure it will not exceed range.
    -        static inline size_t get_copy_range(sycl::range<3> size, size_t slice,
    -                                            size_t pitch)
    -        {
    -            return slice * (size.get(2) - 1) + pitch * (size.get(1) - 1) + size.get(0);
    -        }
    -
    -        static inline size_t get_offset(sycl::id<3> id, size_t slice,
    -                                        size_t pitch)
    -        {
    -            return slice * id.get(2) + pitch * id.get(1) + id.get(0);
    -        }
    -
    -        /// copy 3D matrix specified by \p size from 3D matrix specified by \p from_ptr
    -        /// and \p from_range to another specified by \p to_ptr and \p to_range.
    -        static inline std::vector
    -        dpct_memcpy(sycl::queue &q, void *to_ptr, const void *from_ptr,
    -                    sycl::range<3> to_range, sycl::range<3> from_range,
    -                    sycl::id<3> to_id, sycl::id<3> from_id,
    -                    sycl::range<3> size, memcpy_direction direction,
    -                    const std::vector &dep_events = {})
    -        {
    -            // RAII for host pointer
    -            class host_buffer
    -            {
    -                void *_buf;
    -                size_t _size;
    -                sycl::queue &_q;
    -                const std::vector &_deps; // free operation depends
    -
    -            public:
    -                host_buffer(size_t size, sycl::queue &q,
    -                            const std::vector &deps)
    -                    : _buf(std::malloc(size)), _size(size), _q(q), _deps(deps) {}
    -                void *get_ptr() const { return _buf; }
    -                size_t get_size() const { return _size; }
    -                ~host_buffer()
    -                {
    -                    if (_buf)
    -                    {
    -                        _q.submit([&](sycl::handler &cgh)
    -                                  {
    -        cgh.depends_on(_deps);
    -        cgh.host_task([buf = _buf] { std::free(buf); }); });
    -                    }
    -                }
    -            };
    -            std::vector event_list;
    -
    -            size_t to_slice = to_range.get(1) * to_range.get(0),
    -                   from_slice = from_range.get(1) * from_range.get(0);
    -            unsigned char *to_surface =
    -                (unsigned char *)to_ptr + get_offset(to_id, to_slice, to_range.get(0));
    -            const unsigned char *from_surface =
    -                (const unsigned char *)from_ptr +
    -                get_offset(from_id, from_slice, from_range.get(0));
    -
    -            if (to_slice == from_slice && to_slice == size.get(1) * size.get(0))
    -            {
    -                return {dpct_memcpy(q, to_surface, from_surface, to_slice * size.get(2),
    -                                    direction, dep_events)};
    -            }
    -            direction = deduce_memcpy_direction(q, to_ptr, from_ptr, direction);
    -            size_t size_slice = size.get(1) * size.get(0);
    -            switch (direction)
    -            {
    -            case host_to_host:
    -                for (size_t z = 0; z < size.get(2); ++z)
    -                {
    -                    unsigned char *to_ptr = to_surface;
    -                    const unsigned char *from_ptr = from_surface;
    -                    if (to_range.get(0) == from_range.get(0) &&
    -                        to_range.get(0) == size.get(0))
    -                    {
    -                        event_list.push_back(dpct_memcpy(q, to_ptr, from_ptr, size_slice,
    -                                                         direction, dep_events));
    -                    }
    -                    else
    -                    {
    -                        for (size_t y = 0; y < size.get(1); ++y)
    -                        {
    -                            event_list.push_back(dpct_memcpy(q, to_ptr, from_ptr, size.get(0),
    -                                                             direction, dep_events));
    -                            to_ptr += to_range.get(0);
    -                            from_ptr += from_range.get(0);
    -                        }
    -                    }
    -                    to_surface += to_slice;
    -                    from_surface += from_slice;
    -                }
    -                break;
    -            case host_to_device:
    -            {
    -                host_buffer buf(get_copy_range(size, to_slice, to_range.get(0)), q,
    -                                event_list);
    -                std::vector host_events;
    -                if (to_slice == size_slice)
    -                {
    -                    // Copy host data to a temp host buffer with the shape of target.
    -                    host_events =
    -                        dpct_memcpy(q, buf.get_ptr(), from_surface, to_range, from_range,
    -                                    sycl::id<3>(0, 0, 0), sycl::id<3>(0, 0, 0), size,
    -                                    host_to_host, dep_events);
    -                }
    -                else
    -                {
    -                    // Copy host data to a temp host buffer with the shape of target.
    -                    host_events = dpct_memcpy(
    -                        q, buf.get_ptr(), from_surface, to_range, from_range,
    -                        sycl::id<3>(0, 0, 0), sycl::id<3>(0, 0, 0), size, host_to_host,
    -                        // If has padding data, not sure whether it is useless. So fill temp
    -                        // buffer with it.
    -                        std::vector{
    -                            dpct_memcpy(q, buf.get_ptr(), to_surface, buf.get_size(),
    -                                        device_to_host, dep_events)});
    -                }
    -                // Copy from temp host buffer to device with only one submit.
    -                event_list.push_back(dpct_memcpy(q, to_surface, buf.get_ptr(),
    -                                                 buf.get_size(), host_to_device,
    -                                                 host_events));
    -                break;
    -            }
    -            case device_to_host:
    -            {
    -                host_buffer buf(get_copy_range(size, from_slice, from_range.get(0)), q,
    -                                event_list);
    -                // Copy from host temp buffer to host target with reshaping.
    -                event_list = dpct_memcpy(
    -                    q, to_surface, buf.get_ptr(), to_range, from_range, sycl::id<3>(0, 0, 0),
    -                    sycl::id<3>(0, 0, 0), size, host_to_host,
    -                    // Copy from device to temp host buffer with only one submit.
    -                    std::vector{dpct_memcpy(q, buf.get_ptr(), from_surface,
    -                                                         buf.get_size(),
    -                                                         device_to_host, dep_events)});
    -                break;
    -            }
    -            case device_to_device:
    -                event_list.push_back(q.submit([&](sycl::handler &cgh){
    -                cgh.depends_on(dep_events);
    -                cgh.parallel_for(
    -                    size,
    -                    [=](sycl::id<3> id) {
    -                        to_surface[get_offset(id, to_slice, to_range.get(0))] =
    -                            from_surface[get_offset(id, from_slice, from_range.get(0))];
    -                    }); }));
    -                break;
    -            default:
    -                throw std::runtime_error("dpct_memcpy: invalid direction value");
    -            }
    -            return event_list;
    -        }
    -
    -        /// memcpy 2D/3D matrix specified by pitched_data.
    -        static inline std::vector
    -        dpct_memcpy(sycl::queue &q, pitched_data to, sycl::id<3> to_id,
    -                    pitched_data from, sycl::id<3> from_id, sycl::range<3> size,
    -                    memcpy_direction direction = automatic)
    -        {
    -            return dpct_memcpy(q, to.get_data_ptr(), from.get_data_ptr(),
    -                               sycl::range<3>(to.get_pitch(), to.get_y(), 1),
    -                               sycl::range<3>(from.get_pitch(), from.get_y(), 1), to_id, from_id,
    -                               size, direction);
    -        }
    -
    -        /// memcpy 2D matrix with pitch.
    -        static inline std::vector
    -        dpct_memcpy(sycl::queue &q, void *to_ptr, const void *from_ptr,
    -                    size_t to_pitch, size_t from_pitch, size_t x, size_t y,
    -                    memcpy_direction direction = automatic)
    -        {
    -            return dpct_memcpy(q, to_ptr, from_ptr, sycl::range<3>(to_pitch, y, 1),
    -                               sycl::range<3>(from_pitch, y, 1),
    -                               sycl::id<3>(0, 0, 0), sycl::id<3>(0, 0, 0),
    -                               sycl::range<3>(x, y, 1), direction);
    -        }
    -
    -        namespace deprecated
    -        {
    -
    -            template 
    -            class usm_allocator
    -            {
    -            private:
    -                using Alloc = sycl::usm_allocator;
    -                Alloc _impl;
    -
    -            public:
    -                using value_type = typename std::allocator_traits::value_type;
    -                using pointer = typename std::allocator_traits::pointer;
    -                using const_pointer = typename std::allocator_traits::const_pointer;
    -                using void_pointer = typename std::allocator_traits::void_pointer;
    -                using const_void_pointer =
    -                    typename std::allocator_traits::const_void_pointer;
    -                using reference = typename std::allocator_traits::value_type &;
    -                using const_reference =
    -                    const typename std::allocator_traits::value_type &;
    -                using difference_type =
    -                    typename std::allocator_traits::difference_type;
    -                using size_type = typename std::allocator_traits::size_type;
    -                using propagate_on_container_copy_assignment = typename std::allocator_traits<
    -                    Alloc>::propagate_on_container_copy_assignment;
    -                using propagate_on_container_move_assignment = typename std::allocator_traits<
    -                    Alloc>::propagate_on_container_move_assignment;
    -                using propagate_on_container_swap =
    -                    typename std::allocator_traits::propagate_on_container_swap;
    -                using is_always_equal =
    -                    typename std::allocator_traits::is_always_equal;
    -
    -                template 
    -                struct rebind
    -                {
    -                    typedef usm_allocator other;
    -                };
    -
    -                usm_allocator() : _impl(dpct::get_default_queue()) {}
    -                ~usm_allocator() {}
    -                usm_allocator(const usm_allocator &other) : _impl(other._impl) {}
    -                usm_allocator(usm_allocator &&other) : _impl(std::move(other._impl)) {}
    -                pointer address(reference r) { return &r; }
    -                const_pointer address(const_reference r) { return &r; }
    -                pointer allocate(size_type cnt, const_void_pointer hint = nullptr)
    -                {
    -                    return std::allocator_traits::allocate(_impl, cnt, hint);
    -                }
    -                void deallocate(pointer p, size_type cnt)
    -                {
    -                    std::allocator_traits::deallocate(_impl, p, cnt);
    -                }
    -                size_type max_size() const
    -                {
    -                    return std::allocator_traits::max_size(_impl);
    -                }
    -                bool operator==(const usm_allocator &other) const { return _impl == other._impl; }
    -                bool operator!=(const usm_allocator &other) const { return _impl != other._impl; }
    -            };
    -
    -        } // namespace deprecated
    -
    -        inline void dpct_free(void *ptr,
    -                              const sycl::queue &q)
    -        {
    -            if (ptr)
    -            {
    -                sycl::free(ptr, q.get_context());
    -            }
    -        }
    -
    -        template 
    -        inline auto get_memory(const void *x)
    -        {
    -            T *new_x = reinterpret_cast(const_cast(x));
    -            return new_x;
    -        }
    -
    -        template 
    -        inline typename DataType::T2 get_value(const T *s, sycl::queue &q)
    -        {
    -            using Ty = typename DataType::T2;
    -            Ty s_h;
    -            if (get_pointer_attribute(q, s) == pointer_access_attribute::device_only)
    -                detail::dpct_memcpy(q, (void *)&s_h, (const void *)s, sizeof(T), device_to_host)
    -                    .wait();
    -            else
    -                s_h = *reinterpret_cast(s);
    -            return s_h;
    -        }
    -
    -    } // namespace detail
    -
    -    template 
    -    inline auto get_value(const T *s, sycl::queue &q)
    -    {
    -        return detail::get_value(s, q);
    -    }
    -
    -    namespace detail
    -    {
    -        template 
    -        inline void gemm_impl(sycl::queue &q, oneapi::mkl::transpose a_trans,
    -                              oneapi::mkl::transpose b_trans, int m, int n, int k,
    -                              const void *alpha, const void *a, int lda, const void *b,
    -                              int ldb, const void *beta, void *c, int ldc)
    -        {
    -            Ts alpha_value = dpct::get_value(reinterpret_cast(alpha), q);
    -            Ts beta_value = dpct::get_value(reinterpret_cast(beta), q);
    -            auto data_a = get_memory(a);
    -            auto data_b = get_memory(b);
    -            auto data_c = get_memory(c);
    -            oneapi::mkl::blas::column_major::gemm(
    -                q, a_trans, b_trans, m, n, k, alpha_value, data_a, lda,
    -                data_b, ldb, beta_value, data_c, ldc);
    -        }
    -
    -        template 
    -        class vectorized_binary
    -        {
    -        public:
    -            inline VecT operator()(VecT a, VecT b, const BinaryOperation binary_op)
    -            {
    -                VecT v4;
    -                for (size_t i = 0; i < v4.size(); ++i)
    -                {
    -                    v4[i] = binary_op(a[i], b[i]);
    -                }
    -                return v4;
    -            }
    -        };
    -
    -        template 
    -        class vectorized_binary<
    -            VecT, BinaryOperation,
    -            std::void_t>>
    -        {
    -        public:
    -            inline VecT operator()(VecT a, VecT b, const BinaryOperation binary_op)
    -            {
    -                return binary_op(a, b).template as();
    -            }
    -        };
    -
    -        template 
    -        inline void gemm_batch_impl(sycl::queue &q, oneapi::mkl::transpose a_trans,
    -                                    oneapi::mkl::transpose b_trans, int m, int n, int k,
    -                                    const void *alpha, const void **a, int lda,
    -                                    const void **b, int ldb, const void *beta, void **c,
    -                                    int ldc, int batch_size)
    -        {
    -            struct matrix_info_t
    -            {
    -                oneapi::mkl::transpose transpose_info[2];
    -                Ts value_info[2];
    -                std::int64_t size_info[3];
    -                std::int64_t ld_info[3];
    -                std::int64_t groupsize_info;
    -            };
    -
    -            Ts alpha_value = dpct::get_value(reinterpret_cast(alpha), q);
    -            Ts beta_value = dpct::get_value(reinterpret_cast(beta), q);
    -
    -            matrix_info_t *matrix_info =
    -                (matrix_info_t *)std::malloc(sizeof(matrix_info_t));
    -            matrix_info->transpose_info[0] = a_trans;
    -            matrix_info->transpose_info[1] = b_trans;
    -            matrix_info->value_info[0] = alpha_value;
    -            matrix_info->value_info[1] = beta_value;
    -            matrix_info->size_info[0] = m;
    -            matrix_info->size_info[1] = n;
    -            matrix_info->size_info[2] = k;
    -            matrix_info->ld_info[0] = lda;
    -            matrix_info->ld_info[1] = ldb;
    -            matrix_info->ld_info[2] = ldc;
    -            matrix_info->groupsize_info = batch_size;
    -
    -            sycl::event e = oneapi::mkl::blas::column_major::gemm_batch(
    -                q, matrix_info->transpose_info, matrix_info->transpose_info + 1,
    -                matrix_info->size_info, matrix_info->size_info + 1,
    -                matrix_info->size_info + 2, matrix_info->value_info,
    -                reinterpret_cast(a), matrix_info->ld_info,
    -                reinterpret_cast(b), matrix_info->ld_info + 1,
    -                matrix_info->value_info + 1, reinterpret_cast(c),
    -                matrix_info->ld_info + 2, 1, &(matrix_info->groupsize_info));
    -
    -            q.submit([&](sycl::handler &cgh)
    -                     {
    -    cgh.depends_on(e);
    -    cgh.host_task([=] { std::free(matrix_info); }); });
    -        }
    -
    -        template 
    -        inline void
    -        gemm_batch_impl(sycl::queue &q, oneapi::mkl::transpose a_trans,
    -                        oneapi::mkl::transpose b_trans, int m, int n,
    -                        int k, const void *alpha, const void *a, int lda,
    -                        long long int stride_a, const void *b, int ldb,
    -                        long long int stride_b, const void *beta, void *c,
    -                        int ldc, long long int stride_c, int batch_size)
    -        {
    -            Ts alpha_value = dpct::get_value(reinterpret_cast(alpha), q);
    -            Ts beta_value = dpct::get_value(reinterpret_cast(beta), q);
    -            auto data_a = get_memory(a);
    -            auto data_b = get_memory(b);
    -            auto data_c = get_memory(c);
    -            oneapi::mkl::blas::column_major::gemm_batch(
    -                q, a_trans, b_trans, m, n, k, alpha_value, data_a, lda,
    -                stride_a, data_b, ldb, stride_b, beta_value,
    -                data_c, ldc, stride_c, batch_size);
    -        }
    -
    -    } // namespace detail
    -
    -    template 
    -    inline unsigned vectorized_binary(unsigned a, unsigned b,
    -                                      const BinaryOperation binary_op)
    -    {
    -        sycl::vec v0{a}, v1{b};
    -        auto v2 = v0.as();
    -        auto v3 = v1.as();
    -        auto v4 =
    -            detail::vectorized_binary()(v2, v3, binary_op);
    -        v0 = v4.template as>();
    -        return v0;
    -    }
    -
    -    static void async_dpct_memcpy(void *to_ptr, const void *from_ptr, size_t size,
    -                                  memcpy_direction direction = automatic,
    -                                  sycl::queue &q = dpct::get_default_queue())
    -    {
    -        detail::dpct_memcpy(q, to_ptr, from_ptr, size, direction);
    -    }
    -
    -    static inline unsigned int select_device(unsigned int id)
    -    {
    -        dev_mgr::instance().select_device(id);
    -        return id;
    -    }
    -
    -    template 
    -    T permute_sub_group_by_xor(sycl::sub_group g, T x, unsigned int mask,
    -                               unsigned int logical_sub_group_size = 32)
    -    {
    -        unsigned int id = g.get_local_linear_id();
    -        unsigned int start_index =
    -            id / logical_sub_group_size * logical_sub_group_size;
    -        unsigned int target_offset = (id % logical_sub_group_size) ^ mask;
    -        return sycl::select_from_group(g, x,
    -                                       target_offset < logical_sub_group_size
    -                                           ? start_index + target_offset
    -                                           : id);
    -    }
    -
    -    template 
    -    sycl::vec extract_and_sign_or_zero_extend4(T val)
    -    {
    -        return sycl::vec(val)
    -            .template as, int8_t, uint8_t>, 4>>()
    -            .template convert();
    -    }
    -
    -    template 
    -    using dot_product_acc_t =
    -        std::conditional_t && std::is_unsigned_v,
    -                           uint32_t, int32_t>;
    -
    -    template 
    -    inline auto dp4a(T1 a, T2 b, T3 c)
    -    {
    -        dot_product_acc_t res = c;
    -        auto va = extract_and_sign_or_zero_extend4(a);
    -        auto vb = extract_and_sign_or_zero_extend4(b);
    -        res += va[0] * vb[0];
    -        res += va[1] * vb[1];
    -        res += va[2] * vb[2];
    -        res += va[3] * vb[3];
    -        return res;
    -    }
    -
    -    struct sub_sat
    -    {
    -        template 
    -        auto operator()(const T x, const T y) const
    -        {
    -            return sycl::sub_sat(x, y);
    -        }
    -    };
    -
    -    template 
    -    inline T vectorized_min(T a, T b)
    -    {
    -        sycl::vec v0{a}, v1{b};
    -        auto v2 = v0.template as();
    -        auto v3 = v1.template as();
    -        auto v4 = sycl::min(v2, v3);
    -        v0 = v4.template as>();
    -        return v0;
    -    }
    -
    -    inline float pow(const float a, const int b) { return sycl::pown(a, b); }
    -    inline double pow(const double a, const int b) { return sycl::pown(a, b); }
    -    inline float pow(const float a, const float b) { return sycl::pow(a, b); }
    -    inline double pow(const double a, const double b) { return sycl::pow(a, b); }
    -    template 
    -    inline typename std::enable_if_t, T>
    -    pow(const T a, const U b)
    -    {
    -        return sycl::pow(a, static_cast(b));
    -    }
    -    template 
    -    inline typename std::enable_if_t, double>
    -    pow(const T a, const U b)
    -    {
    -        return sycl::pow(static_cast(a), static_cast(b));
    -    }
    -
    -    inline double min(const double a, const float b)
    -    {
    -        return sycl::fmin(a, static_cast(b));
    -    }
    -    inline double min(const float a, const double b)
    -    {
    -        return sycl::fmin(static_cast(a), b);
    -    }
    -    inline float min(const float a, const float b) { return sycl::fmin(a, b); }
    -    inline double min(const double a, const double b) { return sycl::fmin(a, b); }
    -    inline std::uint32_t min(const std::uint32_t a, const std::int32_t b)
    -    {
    -        return sycl::min(a, static_cast(b));
    -    }
    -    inline std::uint32_t min(const std::int32_t a, const std::uint32_t b)
    -    {
    -        return sycl::min(static_cast(a), b);
    -    }
    -    inline std::int32_t min(const std::int32_t a, const std::int32_t b)
    -    {
    -        return sycl::min(a, b);
    -    }
    -    inline std::uint32_t min(const std::uint32_t a, const std::uint32_t b)
    -    {
    -        return sycl::min(a, b);
    -    }
    -    inline std::uint64_t min(const std::uint64_t a, const std::int64_t b)
    -    {
    -        return sycl::min(a, static_cast(b));
    -    }
    -    inline std::uint64_t min(const std::int64_t a, const std::uint64_t b)
    -    {
    -        return sycl::min(static_cast(a), b);
    -    }
    -    inline std::int64_t min(const std::int64_t a, const std::int64_t b)
    -    {
    -        return sycl::min(a, b);
    -    }
    -    inline std::uint64_t min(const std::uint64_t a, const std::uint64_t b)
    -    {
    -        return sycl::min(a, b);
    -    }
    -    inline std::uint64_t min(const std::uint64_t a, const std::int32_t b)
    -    {
    -        return sycl::min(a, static_cast(b));
    -    }
    -    inline std::uint64_t min(const std::int32_t a, const std::uint64_t b)
    -    {
    -        return sycl::min(static_cast(a), b);
    -    }
    -    inline std::uint64_t min(const std::uint64_t a, const std::uint32_t b)
    -    {
    -        return sycl::min(a, static_cast(b));
    -    }
    -    inline std::uint64_t min(const std::uint32_t a, const std::uint64_t b)
    -    {
    -        return sycl::min(static_cast(a), b);
    -    }
    -    // max function overloads.
    -    // For floating-point types, `float` or `double` arguments are acceptable.
    -    // For integer types, `std::uint32_t`, `std::int32_t`, `std::uint64_t` or
    -    // `std::int64_t` type arguments are acceptable.
    -    inline double max(const double a, const float b)
    -    {
    -        return sycl::fmax(a, static_cast(b));
    -    }
    -    inline double max(const float a, const double b)
    -    {
    -        return sycl::fmax(static_cast(a), b);
    -    }
    -    inline float max(const float a, const float b) { return sycl::fmax(a, b); }
    -    inline double max(const double a, const double b) { return sycl::fmax(a, b); }
    -    inline std::uint32_t max(const std::uint32_t a, const std::int32_t b)
    -    {
    -        return sycl::max(a, static_cast(b));
    -    }
    -    inline std::uint32_t max(const std::int32_t a, const std::uint32_t b)
    -    {
    -        return sycl::max(static_cast(a), b);
    -    }
    -    inline std::int32_t max(const std::int32_t a, const std::int32_t b)
    -    {
    -        return sycl::max(a, b);
    -    }
    -    inline std::uint32_t max(const std::uint32_t a, const std::uint32_t b)
    -    {
    -        return sycl::max(a, b);
    -    }
    -    inline std::uint64_t max(const std::uint64_t a, const std::int64_t b)
    -    {
    -        return sycl::max(a, static_cast(b));
    -    }
    -    inline std::uint64_t max(const std::int64_t a, const std::uint64_t b)
    -    {
    -        return sycl::max(static_cast(a), b);
    -    }
    -    inline std::int64_t max(const std::int64_t a, const std::int64_t b)
    -    {
    -        return sycl::max(a, b);
    -    }
    -    inline std::uint64_t max(const std::uint64_t a, const std::uint64_t b)
    -    {
    -        return sycl::max(a, b);
    -    }
    -    inline std::uint64_t max(const std::uint64_t a, const std::int32_t b)
    -    {
    -        return sycl::max(a, static_cast(b));
    -    }
    -    inline std::uint64_t max(const std::int32_t a, const std::uint64_t b)
    -    {
    -        return sycl::max(static_cast(a), b);
    -    }
    -    inline std::uint64_t max(const std::uint64_t a, const std::uint32_t b)
    -    {
    -        return sycl::max(a, static_cast(b));
    -    }
    -    inline std::uint64_t max(const std::uint32_t a, const std::uint64_t b)
    -    {
    -        return sycl::max(static_cast(a), b);
    -    }
    -
    -    inline void
    -    has_capability_or_fail(const sycl::device &dev,
    -                           const std::initializer_list &props)
    -    {
    -        for (const auto &it : props)
    -        {
    -            if (dev.has(it))
    -                continue;
    -            switch (it)
    -            {
    -            case sycl::aspect::fp64:
    -                throw std::runtime_error("'double' is not supported in '" +
    -                                         dev.get_info() +
    -                                         "' device");
    -                break;
    -            case sycl::aspect::fp16:
    -                throw std::runtime_error("'half' is not supported in '" +
    -                                         dev.get_info() +
    -                                         "' device");
    -                break;
    -            default:
    -#define __SYCL_ASPECT(ASPECT, ID) \
    -    case sycl::aspect::ASPECT:    \
    -        return #ASPECT;
    -#define __SYCL_ASPECT_DEPRECATED(ASPECT, ID, MESSAGE) __SYCL_ASPECT(ASPECT, ID)
    -#define __SYCL_ASPECT_DEPRECATED_ALIAS(ASPECT, ID, MESSAGE)
    -                auto getAspectNameStr = [](sycl::aspect AspectNum) -> std::string
    -                {
    -                    switch (AspectNum)
    -                    {
    -#include 
    -#include 
    -                    default:
    -                        return "unknown aspect";
    -                    }
    -                };
    -#undef __SYCL_ASPECT_DEPRECATED_ALIAS
    -#undef __SYCL_ASPECT_DEPRECATED
    -#undef __SYCL_ASPECT
    -                throw std::runtime_error(
    -                    "'" + getAspectNameStr(it) + "' is not supported in '" +
    -                    dev.get_info() + "' device");
    -            }
    -            break;
    -        }
    -    }
    -
    -    static inline unsigned int get_current_device_id()
    -    {
    -        return dev_mgr::instance().current_device_id();
    -    }
    -
    -    static inline device_ext &get_current_device()
    -    {
    -        return dev_mgr::instance().current_device();
    -    }
    -
    -    static inline sycl::queue &get_in_order_queue()
    -    {
    -        return dev_mgr::instance().current_device().in_order_queue();
    -    }
    -
    -    static sycl::event
    -    dpct_memcpy(sycl::queue &q, void *to_ptr, const void *from_ptr, size_t size,
    -                memcpy_direction direction,
    -                const std::vector &dep_events = {})
    -    {
    -        if (!size)
    -            return sycl::event{};
    -        return q.memcpy(to_ptr, from_ptr, size, dep_events);
    -        GGML_UNUSED(direction);
    -    }
    -
    -    // Get actual copy range and make sure it will not exceed range.
    -    static inline size_t get_copy_range(sycl::range<3> size, size_t slice,
    -                                        size_t pitch)
    -    {
    -        return slice * (size.get(2) - 1) + pitch * (size.get(1) - 1) + size.get(0);
    -    }
    -
    -    static inline size_t get_offset(sycl::id<3> id, size_t slice,
    -                                    size_t pitch)
    -    {
    -        return slice * id.get(2) + pitch * id.get(1) + id.get(0);
    -    }
    -
    -    /// copy 3D matrix specified by \p size from 3D matrix specified by \p from_ptr
    -    /// and \p from_range to another specified by \p to_ptr and \p to_range.
    -    static inline std::vector
    -    dpct_memcpy(sycl::queue &q, void *to_ptr, const void *from_ptr,
    -                sycl::range<3> to_range, sycl::range<3> from_range,
    -                sycl::id<3> to_id, sycl::id<3> from_id,
    -                sycl::range<3> size, memcpy_direction direction,
    -                const std::vector &dep_events = {})
    -    {
    -        // RAII for host pointer
    -        class host_buffer
    -        {
    -            void *_buf;
    -            size_t _size;
    -            sycl::queue &_q;
    -            const std::vector &_deps; // free operation depends
    -
    -        public:
    -            host_buffer(size_t size, sycl::queue &q,
    -                        const std::vector &deps)
    -                : _buf(std::malloc(size)), _size(size), _q(q), _deps(deps) {}
    -            void *get_ptr() const { return _buf; }
    -            size_t get_size() const { return _size; }
    -            ~host_buffer()
    -            {
    -                if (_buf)
    -                {
    -                    _q.submit([&](sycl::handler &cgh)
    -                              {
    -            cgh.depends_on(_deps);
    -            cgh.host_task([buf = _buf] { std::free(buf); }); });
    -                }
    -            }
    -        };
    -        std::vector event_list;
    -
    -        size_t to_slice = to_range.get(1) * to_range.get(0),
    -               from_slice = from_range.get(1) * from_range.get(0);
    -        unsigned char *to_surface =
    -            (unsigned char *)to_ptr + get_offset(to_id, to_slice, to_range.get(0));
    -        const unsigned char *from_surface =
    -            (const unsigned char *)from_ptr +
    -            get_offset(from_id, from_slice, from_range.get(0));
    -
    -        if (to_slice == from_slice && to_slice == size.get(1) * size.get(0))
    -        {
    -            return {dpct_memcpy(q, to_surface, from_surface, to_slice * size.get(2),
    -                                direction, dep_events)};
    -        }
    -        direction = detail::deduce_memcpy_direction(q, to_ptr, from_ptr, direction);
    -        size_t size_slice = size.get(1) * size.get(0);
    -        switch (direction)
    -        {
    -        case host_to_host:
    -            for (size_t z = 0; z < size.get(2); ++z)
    -            {
    -                unsigned char *to_ptr = to_surface;
    -                const unsigned char *from_ptr = from_surface;
    -                if (to_range.get(0) == from_range.get(0) &&
    -                    to_range.get(0) == size.get(0))
    -                {
    -                    event_list.push_back(dpct_memcpy(q, to_ptr, from_ptr, size_slice,
    -                                                     direction, dep_events));
    -                }
    -                else
    -                {
    -                    for (size_t y = 0; y < size.get(1); ++y)
    -                    {
    -                        event_list.push_back(dpct_memcpy(q, to_ptr, from_ptr, size.get(0),
    -                                                         direction, dep_events));
    -                        to_ptr += to_range.get(0);
    -                        from_ptr += from_range.get(0);
    -                    }
    -                }
    -                to_surface += to_slice;
    -                from_surface += from_slice;
    -            }
    -            break;
    -        case host_to_device:
    -        {
    -            host_buffer buf(get_copy_range(size, to_slice, to_range.get(0)), q,
    -                            event_list);
    -            std::vector host_events;
    -            if (to_slice == size_slice)
    -            {
    -                // Copy host data to a temp host buffer with the shape of target.
    -                host_events =
    -                    dpct_memcpy(q, buf.get_ptr(), from_surface, to_range, from_range,
    -                                sycl::id<3>(0, 0, 0), sycl::id<3>(0, 0, 0), size,
    -                                host_to_host, dep_events);
    -            }
    -            else
    -            {
    -                // Copy host data to a temp host buffer with the shape of target.
    -                host_events = dpct_memcpy(
    -                    q, buf.get_ptr(), from_surface, to_range, from_range,
    -                    sycl::id<3>(0, 0, 0), sycl::id<3>(0, 0, 0), size, host_to_host,
    -                    // If has padding data, not sure whether it is useless. So fill temp
    -                    // buffer with it.
    -                    std::vector{
    -                        dpct_memcpy(q, buf.get_ptr(), to_surface, buf.get_size(),
    -                                    device_to_host, dep_events)});
    -            }
    -            // Copy from temp host buffer to device with only one submit.
    -            event_list.push_back(dpct_memcpy(q, to_surface, buf.get_ptr(),
    -                                             buf.get_size(), host_to_device,
    -                                             host_events));
    -            break;
    -        }
    -        case device_to_host:
    -        {
    -            host_buffer buf(get_copy_range(size, from_slice, from_range.get(0)), q,
    -                            event_list);
    -            // Copy from host temp buffer to host target with reshaping.
    -            event_list = dpct_memcpy(
    -                q, to_surface, buf.get_ptr(), to_range, from_range, sycl::id<3>(0, 0, 0),
    -                sycl::id<3>(0, 0, 0), size, host_to_host,
    -                // Copy from device to temp host buffer with only one submit.
    -                std::vector{dpct_memcpy(q, buf.get_ptr(), from_surface,
    -                                                     buf.get_size(),
    -                                                     device_to_host, dep_events)});
    -            break;
    -        }
    -        case device_to_device:
    -            event_list.push_back(q.submit([&](sycl::handler &cgh)
    -                                          {
    -        cgh.depends_on(dep_events);
    -        cgh.parallel_for(
    -            size,
    -            [=](sycl::id<3> id) {
    -                to_surface[get_offset(id, to_slice, to_range.get(0))] =
    -                    from_surface[get_offset(id, from_slice, from_range.get(0))];
    -            }); }));
    -        break;
    -        default:
    -            throw std::runtime_error("dpct_memcpy: invalid direction value");
    -        }
    -        return event_list;
    -    }
    -
    -    /// memcpy 2D/3D matrix specified by pitched_data.
    -    static inline std::vector
    -    dpct_memcpy(sycl::queue &q, pitched_data to, sycl::id<3> to_id,
    -                pitched_data from, sycl::id<3> from_id, sycl::range<3> size,
    -                memcpy_direction direction = automatic)
    -    {
    -        return dpct_memcpy(q, to.get_data_ptr(), from.get_data_ptr(),
    -                           sycl::range<3>(to.get_pitch(), to.get_y(), 1),
    -                           sycl::range<3>(from.get_pitch(), from.get_y(), 1), to_id, from_id,
    -                           size, direction);
    -    }
    -
    -    /// memcpy 2D matrix with pitch.
    -    static inline std::vector
    -    dpct_memcpy(sycl::queue &q, void *to_ptr, const void *from_ptr,
    -                size_t to_pitch, size_t from_pitch, size_t x, size_t y,
    -                memcpy_direction direction = automatic)
    -    {
    -        return dpct_memcpy(q, to_ptr, from_ptr, sycl::range<3>(to_pitch, y, 1),
    -                           sycl::range<3>(from_pitch, y, 1),
    -                           sycl::id<3>(0, 0, 0), sycl::id<3>(0, 0, 0),
    -                           sycl::range<3>(x, y, 1), direction);
    -    }
    -
    -    inline void gemm(sycl::queue &q, oneapi::mkl::transpose a_trans,
    -                     oneapi::mkl::transpose b_trans, int m, int n, int k,
    -                     const void *alpha, const void *a, library_data_t a_type,
    -                     int lda, const void *b, library_data_t b_type, int ldb,
    -                     const void *beta, void *c, library_data_t c_type, int ldc,
    -                     library_data_t scaling_type)
    -    {
    -        if (scaling_type == library_data_t::real_float &&
    -            c_type == library_data_t::complex_float)
    -        {
    -            scaling_type = library_data_t::complex_float;
    -        }
    -        else if (scaling_type == library_data_t::real_double &&
    -                 c_type == library_data_t::complex_double)
    -        {
    -            scaling_type = library_data_t::complex_double;
    -        }
    -
    -        std::uint64_t key =
    -            detail::get_type_combination_id(a_type, b_type, c_type, scaling_type);
    -        switch (key)
    -        {
    -        case detail::get_type_combination_id(
    -            library_data_t::real_float, library_data_t::real_float,
    -            library_data_t::real_float, library_data_t::real_float):
    -        {
    -            detail::gemm_impl(
    -                q, a_trans, b_trans, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc);
    -            break;
    -        }
    -        case detail::get_type_combination_id(
    -            library_data_t::real_double, library_data_t::real_double,
    -            library_data_t::real_double, library_data_t::real_double):
    -        {
    -            detail::gemm_impl(
    -                q, a_trans, b_trans, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc);
    -            break;
    -        }
    -        case detail::get_type_combination_id(
    -            library_data_t::complex_float, library_data_t::complex_float,
    -            library_data_t::complex_float, library_data_t::complex_float):
    -        {
    -            detail::gemm_impl, std::complex,
    -                              std::complex, std::complex>(
    -                q, a_trans, b_trans, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc);
    -            break;
    -        }
    -        case detail::get_type_combination_id(
    -            library_data_t::complex_double, library_data_t::complex_double,
    -            library_data_t::complex_double, library_data_t::complex_double):
    -        {
    -            detail::gemm_impl, std::complex,
    -                              std::complex, std::complex>(
    -                q, a_trans, b_trans, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc);
    -            break;
    -        }
    -        case detail::get_type_combination_id(
    -            library_data_t::real_half, library_data_t::real_half,
    -            library_data_t::real_half, library_data_t::real_half):
    -        {
    -            detail::gemm_impl(q, a_trans, b_trans, m, n, k, alpha, a,
    -                                          lda, b, ldb, beta, c, ldc);
    -            break;
    -        }
    -#ifdef __INTEL_MKL__
    -        case detail::get_type_combination_id(
    -            library_data_t::real_bfloat16, library_data_t::real_bfloat16,
    -            library_data_t::real_float, library_data_t::real_float):
    -        {
    -            detail::gemm_impl(q, a_trans, b_trans, m, n, k, alpha, a, lda, b,
    -                                     ldb, beta, c, ldc);
    -            break;
    -        }
    -        case detail::get_type_combination_id(
    -            library_data_t::real_half, library_data_t::real_half,
    -            library_data_t::real_float, library_data_t::real_float):
    -        {
    -            detail::gemm_impl(
    -                q, a_trans, b_trans, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc);
    -            break;
    -        }
    -        case detail::get_type_combination_id(
    -            library_data_t::real_half, library_data_t::real_half,
    -            library_data_t::real_half, library_data_t::real_float):
    -        {
    -            float alpha_value =
    -                dpct::get_value(reinterpret_cast(alpha), q);
    -            float beta_value =
    -                dpct::get_value(reinterpret_cast(beta), q);
    -            sycl::half alpha_half(alpha_value);
    -            sycl::half beta_half(beta_value);
    -            detail::gemm_impl(q, a_trans, b_trans, m, n, k, &alpha_half,
    -                                          a, lda, b, ldb, &beta_half, c, ldc);
    -            break;
    -        }
    -        case detail::get_type_combination_id(
    -            library_data_t::real_int8, library_data_t::real_int8,
    -            library_data_t::real_float, library_data_t::real_float):
    -        {
    -            detail::gemm_impl(
    -                q, a_trans, b_trans, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc);
    -            break;
    -        }
    -        case detail::get_type_combination_id(
    -            library_data_t::real_bfloat16, library_data_t::real_bfloat16,
    -            library_data_t::real_bfloat16, library_data_t::real_float):
    -        {
    -            detail::gemm_impl(
    -                q, a_trans, b_trans, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc);
    -            break;
    -        }
    -        case detail::get_type_combination_id(
    -            library_data_t::real_int8, library_data_t::real_int8,
    -            library_data_t::real_int32, library_data_t::real_int32):
    -        {
    -            float alpha_float =
    -                dpct::get_value(reinterpret_cast(alpha), q);
    -            float beta_float =
    -                dpct::get_value(reinterpret_cast(beta), q);
    -            detail::gemm_impl(
    -                q, a_trans, b_trans, m, n, k, &alpha_float, a, lda, b, ldb, &beta_float, c, ldc);
    -            break;
    -        }
    -#endif // __INTEL_MKL__
    -        default:
    -            throw std::runtime_error("the combination of data type is unsupported");
    -        }
    -    } // gemm()
    -
    -    /// Computes a batch of matrix-matrix product with general matrices.
    -    /// \param [in] q The queue where the routine should be executed.
    -    /// \param [in] a_trans Specifies the operation applied to A.
    -    /// \param [in] b_trans Specifies the operation applied to B.
    -    /// \param [in] m Specifies the number of rows of the matrix op(A) and of the matrix C.
    -    /// \param [in] n Specifies the number of columns of the matrix op(B) and of the matrix C.
    -    /// \param [in] k Specifies the number of columns of the matrix op(A) and the number of rows of the matrix op(B).
    -    /// \param [in] alpha Scaling factor for the matrix-matrix product.
    -    /// \param [in] a Input matrix A.
    -    /// \param [in] a_type Data type of the matrix A.
    -    /// \param [in] lda Leading dimension of A.
    -    /// \param [in] b Input matrix B.
    -    /// \param [in] b_type Data type of the matrix B.
    -    /// \param [in] ldb Leading dimension of B.
    -    /// \param [in] beta Scaling factor for matrix C.
    -    /// \param [in, out] c Input/Output matrix C.
    -    /// \param [in] c_type Data type of the matrix C.
    -    /// \param [in] ldc Leading dimension of C.
    -    /// \param [in] batch_size Specifies the number of matrix multiply operations to perform.
    -    /// \param [in] scaling_type Data type of the scaling factors.
    -    inline void gemm_batch(sycl::queue &q, oneapi::mkl::transpose a_trans,
    -                           oneapi::mkl::transpose b_trans, int m, int n, int k,
    -                           const void *alpha, const void *a[],
    -                           library_data_t a_type, int lda, const void *b[],
    -                           library_data_t b_type, int ldb, const void *beta,
    -                           void *c[], library_data_t c_type, int ldc,
    -                           int batch_size, library_data_t scaling_type)
    -    {
    -        if (scaling_type == library_data_t::real_float &&
    -            c_type == library_data_t::complex_float)
    -        {
    -            scaling_type = library_data_t::complex_float;
    -        }
    -        else if (scaling_type == library_data_t::real_double &&
    -                 c_type == library_data_t::complex_double)
    -        {
    -            scaling_type = library_data_t::complex_double;
    -        }
    -
    -        std::uint64_t key =
    -            detail::get_type_combination_id(a_type, b_type, c_type, scaling_type);
    -        switch (key)
    -        {
    -        case detail::get_type_combination_id(
    -            library_data_t::real_float, library_data_t::real_float,
    -            library_data_t::real_float, library_data_t::real_float):
    -        {
    -            detail::gemm_batch_impl(
    -                q, a_trans, b_trans, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc,
    -                batch_size);
    -            break;
    -        }
    -        case detail::get_type_combination_id(
    -            library_data_t::real_double, library_data_t::real_double,
    -            library_data_t::real_double, library_data_t::real_double):
    -        {
    -            detail::gemm_batch_impl(
    -                q, a_trans, b_trans, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc,
    -                batch_size);
    -            break;
    -        }
    -        case detail::get_type_combination_id(
    -            library_data_t::complex_float, library_data_t::complex_float,
    -            library_data_t::complex_float, library_data_t::complex_float):
    -        {
    -            detail::gemm_batch_impl, std::complex,
    -                                    std::complex, std::complex>(
    -                q, a_trans, b_trans, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc,
    -                batch_size);
    -            break;
    -        }
    -        case detail::get_type_combination_id(
    -            library_data_t::complex_double, library_data_t::complex_double,
    -            library_data_t::complex_double, library_data_t::complex_double):
    -        {
    -            detail::gemm_batch_impl, std::complex,
    -                                    std::complex, std::complex>(
    -                q, a_trans, b_trans, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc,
    -                batch_size);
    -            break;
    -        }
    -        case detail::get_type_combination_id(
    -            library_data_t::real_half, library_data_t::real_half,
    -            library_data_t::real_half, library_data_t::real_half):
    -        {
    -            detail::gemm_batch_impl(q, a_trans, b_trans, m, n, k, alpha,
    -                                                a, lda, b, ldb, beta, c, ldc,
    -                                                batch_size);
    -            break;
    -        }
    -#ifdef __INTEL_MKL__
    -        case detail::get_type_combination_id(
    -            library_data_t::real_bfloat16, library_data_t::real_bfloat16,
    -            library_data_t::real_bfloat16, library_data_t::real_float):
    -        {
    -            detail::gemm_batch_impl(
    -                q, a_trans, b_trans, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc,
    -                batch_size);
    -            break;
    -        }
    -        case detail::get_type_combination_id(
    -            library_data_t::real_bfloat16, library_data_t::real_bfloat16,
    -            library_data_t::real_float, library_data_t::real_float):
    -        {
    -            detail::gemm_batch_impl(q, a_trans, b_trans, m, n, k, alpha, a, lda,
    -                                           b, ldb, beta, c, ldc, batch_size);
    -            break;
    -        }
    -        case detail::get_type_combination_id(
    -            library_data_t::real_int8, library_data_t::real_int8,
    -            library_data_t::real_int32, library_data_t::real_int32):
    -        {
    -            float alpha_float =
    -                dpct::get_value(reinterpret_cast(alpha), q);
    -            float beta_float =
    -                dpct::get_value(reinterpret_cast(beta), q);
    -            detail::gemm_batch_impl(q, a_trans, b_trans, m, n, k, &alpha_float,
    -                                           a, lda, b, ldb, &beta_float, c, ldc,
    -                                           batch_size);
    -            break;
    -        }
    -        case detail::get_type_combination_id(
    -            library_data_t::real_int8, library_data_t::real_int8,
    -            library_data_t::real_float, library_data_t::real_float):
    -        {
    -            detail::gemm_batch_impl(
    -                q, a_trans, b_trans, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc,
    -                batch_size);
    -            break;
    -        }
    -        case detail::get_type_combination_id(
    -            library_data_t::real_half, library_data_t::real_half,
    -            library_data_t::real_float, library_data_t::real_float):
    -        {
    -            detail::gemm_batch_impl(
    -                q, a_trans, b_trans, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc,
    -                batch_size);
    -            break;
    -        }
    -#endif
    -        case detail::get_type_combination_id(
    -            library_data_t::real_half, library_data_t::real_half,
    -            library_data_t::real_half, library_data_t::real_float):
    -        {
    -            float alpha_value =
    -                dpct::get_value(reinterpret_cast(alpha), q);
    -            float beta_value =
    -                dpct::get_value(reinterpret_cast(beta), q);
    -            sycl::half alpha_half(alpha_value);
    -            sycl::half beta_half(beta_value);
    -            detail::gemm_batch_impl(
    -                q, a_trans, b_trans, m, n, k, &alpha_half, a, lda, b, ldb, &beta_half, c, ldc,
    -                batch_size);
    -            break;
    -        }
    -        default:
    -            throw std::runtime_error("the combination of data type is unsupported");
    -        }
    -    }
    -
    -    /// Computes a batch of matrix-matrix product with general matrices.
    -    /// \param [in] q The queue where the routine should be executed.
    -    /// \param [in] a_trans Specifies the operation applied to A.
    -    /// \param [in] b_trans Specifies the operation applied to B.
    -    /// \param [in] m Specifies the number of rows of the matrix op(A) and of the matrix C.
    -    /// \param [in] n Specifies the number of columns of the matrix op(B) and of the matrix C.
    -    /// \param [in] k Specifies the number of columns of the matrix op(A) and the number of rows of the matrix op(B).
    -    /// \param [in] alpha Scaling factor for the matrix-matrix product.
    -    /// \param [in] a Input matrix A.
    -    /// \param [in] a_type Data type of the matrix A.
    -    /// \param [in] lda Leading dimension of A.
    -    /// \param [in] stride_a Stride between the different A matrices.
    -    /// \param [in] b Input matrix B.
    -    /// \param [in] b_type Data type of the matrix B.
    -    /// \param [in] ldb Leading dimension of B.
    -    /// \param [in] stride_b Stride between the different B matrices.
    -    /// \param [in] beta Scaling factor for matrix C.
    -    /// \param [in, out] c Input/Output matrix C.
    -    /// \param [in] c_type Data type of the matrix C.
    -    /// \param [in] ldc Leading dimension of C.
    -    /// \param [in] stride_c Stride between the different C matrices.
    -    /// \param [in] batch_size Specifies the number of matrix multiply operations to perform.
    -    /// \param [in] scaling_type Data type of the scaling factors.
    -    inline void gemm_batch(sycl::queue &q, oneapi::mkl::transpose a_trans,
    -                           oneapi::mkl::transpose b_trans, int m, int n, int k,
    -                           const void *alpha, const void *a, library_data_t a_type,
    -                           int lda, long long int stride_a, const void *b,
    -                           library_data_t b_type, int ldb, long long int stride_b,
    -                           const void *beta, void *c, library_data_t c_type,
    -                           int ldc, long long int stride_c, int batch_size,
    -                           library_data_t scaling_type)
    -    {
    -        if (scaling_type == library_data_t::real_float &&
    -            c_type == library_data_t::complex_float)
    -        {
    -            scaling_type = library_data_t::complex_float;
    -        }
    -        else if (scaling_type == library_data_t::real_double &&
    -                 c_type == library_data_t::complex_double)
    -        {
    -            scaling_type = library_data_t::complex_double;
    -        }
    -
    -        std::uint64_t key =
    -            detail::get_type_combination_id(a_type, b_type, c_type, scaling_type);
    -        switch (key)
    -        {
    -        case detail::get_type_combination_id(
    -            library_data_t::real_float, library_data_t::real_float,
    -            library_data_t::real_float, library_data_t::real_float):
    -        {
    -            detail::gemm_batch_impl(
    -                q, a_trans, b_trans, m, n, k, alpha, a, lda, stride_a, b, ldb, stride_b,
    -                beta, c, ldc, stride_c, batch_size);
    -            break;
    -        }
    -        case detail::get_type_combination_id(
    -            library_data_t::real_double, library_data_t::real_double,
    -            library_data_t::real_double, library_data_t::real_double):
    -        {
    -            detail::gemm_batch_impl(
    -                q, a_trans, b_trans, m, n, k, alpha, a, lda, stride_a, b, ldb, stride_b,
    -                beta, c, ldc, stride_c, batch_size);
    -            break;
    -        }
    -        case detail::get_type_combination_id(
    -            library_data_t::complex_float, library_data_t::complex_float,
    -            library_data_t::complex_float, library_data_t::complex_float):
    -        {
    -            detail::gemm_batch_impl, std::complex,
    -                                    std::complex, std::complex>(
    -                q, a_trans, b_trans, m, n, k, alpha, a, lda, stride_a, b, ldb, stride_b,
    -                beta, c, ldc, stride_c, batch_size);
    -            break;
    -        }
    -        case detail::get_type_combination_id(
    -            library_data_t::complex_double, library_data_t::complex_double,
    -            library_data_t::complex_double, library_data_t::complex_double):
    -        {
    -            detail::gemm_batch_impl, std::complex,
    -                                    std::complex, std::complex>(
    -                q, a_trans, b_trans, m, n, k, alpha, a, lda, stride_a, b, ldb, stride_b,
    -                beta, c, ldc, stride_c, batch_size);
    -            break;
    -        }
    -        case detail::get_type_combination_id(
    -            library_data_t::real_half, library_data_t::real_half,
    -            library_data_t::real_half, library_data_t::real_half):
    -        {
    -            detail::gemm_batch_impl(q, a_trans, b_trans, m, n, k, alpha,
    -                                                a, lda, stride_a, b, ldb, stride_b,
    -                                                beta, c, ldc, stride_c, batch_size);
    -            break;
    -        }
    -#ifdef __INTEL_MKL__
    -        case detail::get_type_combination_id(
    -            library_data_t::real_bfloat16, library_data_t::real_bfloat16,
    -            library_data_t::real_bfloat16, library_data_t::real_float):
    -        {
    -            detail::gemm_batch_impl(
    -                q, a_trans, b_trans, m, n, k, alpha, a, lda, stride_a, b, ldb, stride_b,
    -                beta, c, ldc, stride_c, batch_size);
    -            break;
    -        }
    -        case detail::get_type_combination_id(
    -            library_data_t::real_bfloat16, library_data_t::real_bfloat16,
    -            library_data_t::real_float, library_data_t::real_float):
    -        {
    -            detail::gemm_batch_impl(q, a_trans, b_trans, m, n, k, alpha, a, lda,
    -                                           stride_a, b, ldb, stride_b, beta, c, ldc,
    -                                           stride_c, batch_size);
    -            break;
    -        }
    -        case detail::get_type_combination_id(
    -            library_data_t::real_int8, library_data_t::real_int8,
    -            library_data_t::real_int32, library_data_t::real_int32):
    -        {
    -            detail::gemm_batch_impl(q, a_trans, b_trans, m, n, k, alpha,
    -                                                  a, lda, stride_a, b, ldb, stride_b,
    -                                                  beta, c, ldc, stride_c, batch_size);
    -            break;
    -        }
    -        case detail::get_type_combination_id(
    -            library_data_t::real_int8, library_data_t::real_int8,
    -            library_data_t::real_float, library_data_t::real_float):
    -        {
    -            detail::gemm_batch_impl(
    -                q, a_trans, b_trans, m, n, k, alpha, a, lda, stride_a, b, ldb, stride_b,
    -                beta, c, ldc, stride_c, batch_size);
    -            break;
    -        }
    -        case detail::get_type_combination_id(
    -            library_data_t::real_half, library_data_t::real_half,
    -            library_data_t::real_float, library_data_t::real_float):
    -        {
    -            detail::gemm_batch_impl(
    -                q, a_trans, b_trans, m, n, k, alpha, a, lda, stride_a, b, ldb, stride_b,
    -                beta, c, ldc, stride_c, batch_size);
    -            break;
    -        }
    -#endif
    -        case detail::get_type_combination_id(
    -            library_data_t::real_half, library_data_t::real_half,
    -            library_data_t::real_half, library_data_t::real_float):
    -        {
    -            float alpha_value =
    -                dpct::get_value(reinterpret_cast(alpha), q);
    -            float beta_value =
    -                dpct::get_value(reinterpret_cast(beta), q);
    -            sycl::half alpha_half(alpha_value);
    -            sycl::half beta_half(beta_value);
    -            detail::gemm_batch_impl(
    -                q, a_trans, b_trans, m, n, k, &alpha_half, a, lda, stride_a, b, ldb, stride_b,
    -                &beta_half, c, ldc, stride_c, batch_size);
    -            break;
    -        }
    -        default:
    -            throw std::runtime_error("the combination of data type is unsupported");
    -        }
    -    }
    -
    -    static inline void
    -    async_dpct_memcpy(void *to_ptr, size_t to_pitch, const void *from_ptr,
    -                      size_t from_pitch, size_t x, size_t y,
    -                      memcpy_direction direction = automatic,
    -                      sycl::queue &q = get_default_queue())
    -    {
    -        detail::dpct_memcpy(q, to_ptr, from_ptr, to_pitch, from_pitch, x, y,
    -                            direction);
    -    }
    -
    -    using err0 = detail::generic_error_type;
    -    using err1 = detail::generic_error_type;
    -
    -    static inline void dpct_free(void *ptr, sycl::queue &q = get_default_queue()) {
    -        detail::dpct_free(ptr, q);
    -    }
    -
    -    /// dpct accessor used as device function parameter.
    -    template  class accessor;
    -    template  class accessor {
    -    public:
    -        using memory_t = detail::memory_traits;
    -        using element_t = typename memory_t::element_t;
    -        using pointer_t = typename memory_t::pointer_t;
    -        using accessor_t = typename memory_t::template accessor_t<3>;
    -        accessor(pointer_t data, const sycl::range<3> &in_range)
    -            : _data(data), _range(in_range) {}
    -        template 
    -        accessor(typename std::enable_if::type &acc)
    -            : accessor(acc, acc.get_range()) {}
    -        accessor(const accessor_t &acc, const sycl::range<3> &in_range)
    -            : accessor(acc.get_pointer(), in_range) {}
    -        accessor operator[](size_t index) const {
    -            sycl::range<2> sub(_range.get(1), _range.get(2));
    -            return accessor(_data + index * sub.size(), sub);
    -        }
    -
    -        pointer_t get_ptr() const { return _data; }
    -
    -    private:
    -        pointer_t _data;
    -        sycl::range<3> _range;
    -    };
    -    template  class accessor {
    -    public:
    -        using memory_t = detail::memory_traits;
    -        using element_t = typename memory_t::element_t;
    -        using pointer_t = typename memory_t::pointer_t;
    -        using accessor_t = typename memory_t::template accessor_t<2>;
    -        accessor(pointer_t data, const sycl::range<2> &in_range)
    -            : _data(data), _range(in_range) {}
    -        template 
    -        accessor(typename std::enable_if::type &acc)
    -            : accessor(acc, acc.get_range()) {}
    -        accessor(const accessor_t &acc, const sycl::range<2> &in_range)
    -            : accessor(acc.get_pointer(), in_range) {}
    -
    -        pointer_t operator[](size_t index) const {
    -            return _data + _range.get(1) * index;
    -        }
    -
    -        pointer_t get_ptr() const { return _data; }
    -
    -    private:
    -        pointer_t _data;
    -        sycl::range<2> _range;
    -    };
    -
    -    namespace detail {
    -        /// Device variable with address space of shared, global or constant.
    -        template  class device_memory {
    -        public:
    -            using accessor_t =
    -                typename detail::memory_traits::template accessor_t;
    -            using value_t = typename detail::memory_traits::value_t;
    -            using dpct_accessor_t = dpct::accessor;
    -
    -            device_memory() : device_memory(sycl::range(1)) {}
    -
    -            /// Constructor of 1-D array with initializer list
    -            device_memory(const sycl::range &in_range,
    -                        std::initializer_list &&init_list)
    -                : device_memory(in_range) {
    -                assert(init_list.size() <= in_range.size());
    -                _host_ptr = (value_t *)std::malloc(_size);
    -                std::memset(_host_ptr, 0, _size);
    -                std::memcpy(_host_ptr, init_list.begin(), init_list.size() * sizeof(T));
    -            }
    -
    -            /// Constructor of 2-D array with initializer list
    -            template 
    -            device_memory(
    -                const typename std::enable_if>::type &in_range,
    -                std::initializer_list> &&init_list)
    -                : device_memory(in_range) {
    -                assert(init_list.size() <= in_range[0]);
    -                _host_ptr = (value_t *)std::malloc(_size);
    -                std::memset(_host_ptr, 0, _size);
    -                auto tmp_data = _host_ptr;
    -                for (auto sub_list : init_list) {
    -                    assert(sub_list.size() <= in_range[1]);
    -                    std::memcpy(tmp_data, sub_list.begin(),
    -                                sub_list.size() * sizeof(T));
    -                    tmp_data += in_range[1];
    -                }
    -            }
    -
    -            /// Constructor with range
    -            device_memory(const sycl::range &range_in)
    -                : _size(range_in.size() * sizeof(T)), _range(range_in),
    -                _reference(false), _host_ptr(nullptr), _device_ptr(nullptr) {
    -                static_assert(
    -                    (Memory == global) || (Memory == constant) || (Memory == shared),
    -                    "device memory region should be global, constant or shared");
    -                // Make sure that singleton class mem_mgr and dev_mgr will destruct
    -                // later than this.
    -                detail::mem_mgr::instance();
    -                dev_mgr::instance();
    -            }
    -
    -            /// Constructor with range
    -            template 
    -            device_memory(Args... Arguments)
    -                : device_memory(sycl::range(Arguments...)) {}
    -
    -            ~device_memory() {
    -                if (_device_ptr && !_reference)
    -                    dpct::dpct_free(_device_ptr);
    -                if (_host_ptr)
    -                    std::free(_host_ptr);
    -            }
    -
    -            /// Allocate memory with default queue, and init memory if has initial
    -            /// value.
    -            void init() { init(dpct::get_default_queue()); }
    -            /// Allocate memory with specified queue, and init memory if has initial
    -            /// value.
    -            void init(sycl::queue &q) {
    -                if (_device_ptr)
    -                    return;
    -                if (!_size)
    -                    return;
    -                allocate_device(q);
    -                if (_host_ptr)
    -                    detail::dpct_memcpy(q, _device_ptr, _host_ptr, _size,
    -                                        host_to_device);
    -            }
    -
    -            /// The variable is assigned to a device pointer.
    -            void assign(value_t *src, size_t size) {
    -                this->~device_memory();
    -                new (this) device_memory(src, size);
    -            }
    -
    -            /// Get memory pointer of the memory object, which is virtual pointer when
    -            /// usm is not used, and device pointer when usm is used.
    -            value_t *get_ptr() { return get_ptr(get_default_queue()); }
    -            /// Get memory pointer of the memory object, which is virtual pointer when
    -            /// usm is not used, and device pointer when usm is used.
    -            value_t *get_ptr(sycl::queue &q) {
    -                init(q);
    -                return _device_ptr;
    -            }
    -
    -            /// Get the device memory object size in bytes.
    -            size_t get_size() { return _size; }
    -
    -            template 
    -            typename std::enable_if::type &operator[](size_t index) {
    -                init();
    -                return _device_ptr[index];
    -            }
    -
    -            /// Get dpct::accessor with dimension info for the device memory object
    -            /// when usm is used and dimension is greater than 1.
    -            template 
    -            typename std::enable_if::type
    -            get_access(sycl::handler &cgh) {
    -                return dpct_accessor_t((T *)_device_ptr, _range);
    -            }
    -
    -        private:
    -            device_memory(value_t *memory_ptr, size_t size)
    -                : _size(size), _range(size / sizeof(T)), _reference(true),
    -                _device_ptr(memory_ptr) {}
    -
    -            void allocate_device(sycl::queue &q) {
    -        #ifndef DPCT_USM_LEVEL_NONE
    -                if (Memory == shared) {
    -                    _device_ptr = (value_t *)sycl::malloc_shared(_size, q.get_device(),
    -                                                                q.get_context());
    -                    return;
    -                }
    -        #ifdef SYCL_EXT_ONEAPI_USM_DEVICE_READ_ONLY
    -                if (Memory == constant) {
    -                    _device_ptr = (value_t *)sycl::malloc_device(
    -                        _size, q.get_device(), q.get_context(),
    -                        sycl::ext::oneapi::property::usm::device_read_only());
    -                    return;
    -                }
    -        #endif
    -        #endif
    -                _device_ptr = (value_t *)detail::dpct_malloc(_size, q);
    -            }
    -
    -            size_t _size;
    -            sycl::range _range;
    -            bool _reference;
    -            value_t *_host_ptr;
    -            value_t *_device_ptr;
    -        };
    -        template 
    -        class device_memory : public device_memory {
    -        public:
    -            using base = device_memory;
    -            using value_t = typename base::value_t;
    -            using accessor_t =
    -                typename detail::memory_traits::template accessor_t<0>;
    -
    -            /// Constructor with initial value.
    -            device_memory(const value_t &val) : base(sycl::range<1>(1), {val}) {}
    -
    -            /// Default constructor
    -            device_memory() : base(1) {}
    -        };
    -        } // namespace detail
    -
    -    template 
    -    using global_memory = detail::device_memory;
    -    template 
    -    using constant_memory = detail::device_memory;
    -    template 
    -    using shared_memory = detail::device_memory;
    -
    -
    -    template 
    -    inline T atomic_fetch_add(T *addr, T operand) {
    -    auto atm =
    -        sycl::atomic_ref(addr[0]);
    -    return atm.fetch_add(operand);
    -    }
    -
    -    template 
    -    inline T1 atomic_fetch_add(T1 *addr, T2 operand) {
    -    auto atm =
    -        sycl::atomic_ref(addr[0]);
    -    return atm.fetch_add(operand);
    -    }
    -
    -    template 
    -    inline T atomic_fetch_add(T *addr, T operand,
    -                            sycl::memory_order memoryOrder) {
    -    switch (memoryOrder) {
    -        case sycl::memory_order::relaxed:
    -            return atomic_fetch_add(addr, operand);
    -        case sycl::memory_order::acq_rel:
    -            return atomic_fetch_add(addr, operand);
    -        case sycl::memory_order::seq_cst:
    -            return atomic_fetch_add(addr, operand);
    -        default:
    -            assert(false && "Invalid memory_order for atomics. Valid memory_order for "
    -                            "atomics are: sycl::memory_order::relaxed, "
    -                            "sycl::memory_order::acq_rel, sycl::memory_order::seq_cst!");
    -        }
    -    }
    -
    -    template 
    -    inline T1 atomic_fetch_add(T1 *addr, T2 operand,
    -                            sycl::memory_order memoryOrder) {
    -    atomic_fetch_add(addr, operand, memoryOrder);
    -    }
    -
    -} // COPY from DPCT head files
    -
    -#define GGML_COMMON_DECL_SYCL
    -#define GGML_COMMON_IMPL_SYCL
    -#include "ggml-common.h"
    -
    -static int g_ggml_sycl_debug=0;
    -#define GGML_SYCL_DEBUG(...) do{if(g_ggml_sycl_debug) fprintf(stderr, __VA_ARGS__);}while(0)
    -
    -#define CHECK_TRY_ERROR(expr)                                                  \
    -  [&]() {                                                                      \
    -    try {                                                                      \
    -      expr;                                                                    \
    -      return dpct::success;                                                    \
    -    } catch (std::exception const &e) {                                        \
    -      std::cerr << e.what()<< "\nException caught at file:" << __FILE__        \
    -        << ", line:" << __LINE__ <<", func:"<<__func__<< std::endl;            \
    -      return dpct::default_error;                                              \
    -    }                                                                          \
    -  }()
    -
    -// #define DEBUG_SYCL_MALLOC
    -
    -static int g_work_group_size = 0;
    -// typedef sycl::half ggml_fp16_t;
    -
    -#define __SYCL_ARCH__ DPCT_COMPATIBILITY_TEMP
    -#define VER_4VEC   130          //todo for hardward optimize.
    -#define VER_GEN9      700       //todo for hardward optimize.
    -#define VER_GEN12 1000000       //todo for hardward optimize.
    -#define VER_GEN13      (VER_GEN12 + 1030)   //todo for hardward optimize.
    -
    -#define GGML_SYCL_MAX_NODES 8192 //TODO: adapt to hardwares
    -
    -#if !defined(GGML_SYCL_FORCE_MMQ)
    -    #define SYCL_USE_XMX
    -#endif
    -
    -// max batch size to use MMQ kernels when tensor cores are available
    -#define MMQ_MAX_BATCH_SIZE 32
    -
    -
    -#if defined(_MSC_VER)
    -#pragma warning(disable: 4244 4267) // possible loss of data
    -#endif
    -
    -// dmmv = dequantize_mul_mat_vec
    -#ifndef GGML_SYCL_DMMV_X
    -#define GGML_SYCL_DMMV_X 32
    -#endif
    -#ifndef GGML_SYCL_MMV_Y
    -#define GGML_SYCL_MMV_Y 1
    -#endif
    -
    -enum ggml_sycl_backend_gpu_mode {
    -    SYCL_UNSET_GPU_MODE = -1,
    -    SYCL_SINGLE_GPU_MODE = 0,
    -    SYCL_MUL_GPU_MODE
    -};
    -
    -static_assert(sizeof(sycl::half) == sizeof(ggml_fp16_t), "wrong fp16 size");
    -
    -static void crash(){
    -    int *ptr = NULL;
    -    *ptr = 0;
    -}
    -
    -static void ggml_sycl_error(const char * stmt, const char * func, const char * file, const int line, const char * msg) {
    -    fprintf(stderr, "SYCL error: %s: %s\n", stmt, msg);
    -    fprintf(stderr, "  in function %s at %s:%d\n", func, file, line);
    -    GGML_ASSERT(!"SYCL error");
    -}
    -
    -#define SYCL_CHECK(err) do {                                                   \
    -    auto err_ = (err); if (err_ != 0) ggml_sycl_error(                         \
    -        #err, __func__, __FILE__, __LINE__,                                    \
    -        "Meet error in this line code!");   \
    -} while (0)
    -
    -#if DPCT_COMPAT_RT_VERSION >= 11100
    -#define GGML_SYCL_ASSUME(x) __builtin_assume(x)
    -#else
    -#define GGML_SYCL_ASSUME(x)
    -#endif // DPCT_COMPAT_RT_VERSION >= 11100
    -
    -#ifdef GGML_SYCL_F16
    -typedef sycl::half dfloat; // dequantize float
    -typedef sycl::half2 dfloat2;
    -#else
    -typedef float dfloat; // dequantize float
    -typedef sycl::float2 dfloat2;
    -#endif //GGML_SYCL_F16
    -
    -#define MMVQ_MAX_BATCH_SIZE  8
    -
    -static const int8_t kvalues_iq4nl[16]={-127, -104, -83, -65, -49, -35, -22, -10, 1, 13, 25, 38, 53, 69, 89, 113};
    -
     bool   ggml_sycl_loaded(void);
    -void * ggml_sycl_host_malloc(size_t size);
    -void   ggml_sycl_host_free(void * ptr);
    -bool   ggml_sycl_can_mul_mat(const struct ggml_tensor * src0, const struct ggml_tensor * src1, struct ggml_tensor * dst);
     void   ggml_sycl_free_data(struct ggml_tensor * tensor);
     void   ggml_sycl_assign_buffers(struct ggml_tensor * tensor);
     void   ggml_sycl_assign_buffers_no_scratch(struct ggml_tensor * tensor);
    @@ -3108,469 +97,86 @@ void   ggml_sycl_set_scratch_size(size_t scratch_size);
     void   ggml_sycl_free_scratch(void);
     void   ggml_sycl_get_device_description(int device, char * description, size_t description_size);
     bool   ggml_backend_is_sycl(ggml_backend_t backend);
    -int    ggml_backend_sycl_get_device(ggml_backend_t backend);
    -int    get_main_device();
    -static bool ggml_backend_buffer_is_sycl_split(ggml_backend_buffer_t buffer);
    -void   print_ggml_tensor(const char*name, struct ggml_tensor *src);
    -void   log_tensor_with_cnt(const char* name, struct ggml_tensor * src, int stop_cnt);
    -
    -void dev2dev_memcpy(sycl::queue &q_dst, sycl::queue &q_src, void *ptr_dst,
    -                    const void *ptr_src, size_t size) {
    -    char *host_buf = (char *)malloc(size);
    -    q_src.memcpy(host_buf, (const char *)ptr_src, size).wait();
    -    q_dst.memcpy((char *)ptr_dst, host_buf, size).wait();
    -    free(host_buf);
    -}
    -
    -static __dpct_inline__ int get_int_from_int8(const int8_t *x8, const int &i32) {
    -    const uint16_t * x16 = (const uint16_t *) (x8 + sizeof(int) * i32); // assume at least 2 byte alignment
    -
    -    int x32 = 0;
    -    x32 |= x16[0] <<  0;
    -    x32 |= x16[1] << 16;
    -
    -    return x32;
    -}
    -
    -static __dpct_inline__ int get_int_from_uint8(const uint8_t *x8,
    -                                              const int &i32) {
    -    const uint16_t * x16 = (const uint16_t *) (x8 + sizeof(int) * i32); // assume at least 2 byte alignment
    -
    -    int x32 = 0;
    -    x32 |= x16[0] <<  0;
    -    x32 |= x16[1] << 16;
    -
    -    return x32;
    -}
    -
    -static __dpct_inline__ int get_int_from_int8_aligned(const int8_t *x8,
    -                                                     const int &i32) {
    -    return *((const int *) (x8 + sizeof(int) * i32)); // assume at least 4 byte alignment
    -}
    -
    -static __dpct_inline__ int get_int_from_uint8_aligned(const uint8_t *x8,
    -                                                      const int &i32) {
    -    return *((const int *) (x8 + sizeof(int) * i32)); // assume at least 4 byte alignment
    -}
    -
    -template 
    -using to_t_sycl_t = void (*)(const void *__restrict__ x, T *__restrict__ y,
    -                             int k, dpct::queue_ptr stream);
    -typedef to_t_sycl_t to_fp32_sycl_t;
    -typedef to_t_sycl_t to_fp16_sycl_t;
    -
    -typedef void (*dequantize_kernel_t)(const void * vx, const int ib, const int iqs, dfloat2 & v);
    -typedef void (*dot_kernel_k_t)(const void * __restrict__ vx, const int ib, const int iqs, const float * __restrict__ y, float & v);
    -typedef void (*cpy_kernel_t)(const char * cx, char * cdst);
    -typedef void (*ggml_sycl_func_t)(const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst);
    -typedef void (*ggml_sycl_op_mul_mat_t)(
    -    const ggml_tensor *src0, const ggml_tensor *src1, ggml_tensor *dst,
    -    const char *src0_dd_i, const float *src1_ddf_i, const char *src1_ddq_i,
    -    float *dst_dd_i, const int64_t row_low, const int64_t row_high,
    -    const int64_t src1_ncols, const int64_t src1_padded_row_size,
    -    const dpct::queue_ptr &stream);
    -typedef void (*ggml_sycl_op_flatten_t)(const ggml_tensor *src0,
    -                                       const ggml_tensor *src1,
    -                                       ggml_tensor *dst, const float *src0_dd,
    -                                       const float *src1_dd, float *dst_dd,
    -                                       const dpct::queue_ptr &main_stream);
    -
    -typedef float (*vec_dot_q_sycl_t)(const void * __restrict__ vbq, const block_q8_1 * __restrict__ bq8_1, const int & iqs);
    -typedef void (*allocate_tiles_sycl_t)(int **x_ql, sycl::half2 **x_dm,
    -                                      int **x_qh, int **x_sc);
    -typedef void (*load_tiles_sycl_t)(const void *__restrict__ vx,
    -                                  int *__restrict__ x_ql,
    -                                  sycl::half2 *__restrict__ x_dm,
    -                                  int *__restrict__ x_qh,
    -                                  int *__restrict__ x_sc, const int &i_offset,
    -                                  const int &i_max, const int &k,
    -                                  const int &blocks_per_row);
    -typedef float (*vec_dot_q_mul_mat_sycl_t)(
    -    const int *__restrict__ x_ql, const sycl::half2 *__restrict__ x_dm,
    -    const int *__restrict__ x_qh, const int *__restrict__ x_sc,
    -    const int *__restrict__ y_qs, const sycl::half2 *__restrict__ y_ms,
    -    const int &i, const int &j, const int &k);
    -
    -#define WARP_SIZE 32
    -#define MATRIX_ROW_PADDING 512 // last row of quant. matrices is a multiple of this to avoid out-of-bounds memory accesses
    -
    -#define SYCL_GELU_BLOCK_SIZE 256
    -#define SYCL_SILU_BLOCK_SIZE 256
    -#define SYCL_TANH_BLOCK_SIZE 256
    -#define SYCL_RELU_BLOCK_SIZE 256
    -#define SYCL_HARDSIGMOID_BLOCK_SIZE 256
    -#define SYCL_HARDSWISH_BLOCK_SIZE 256
    -#define SYCL_SQR_BLOCK_SIZE 256
    -#define SYCL_CPY_BLOCK_SIZE 32
    -#define SYCL_SCALE_BLOCK_SIZE 256
    -#define SYCL_CLAMP_BLOCK_SIZE 256
    -#define SYCL_ROPE_BLOCK_SIZE 256
    -#define SYCL_DIAG_MASK_INF_BLOCK_SIZE 32
    -#define SYCL_QUANTIZE_BLOCK_SIZE 256
    -#define SYCL_DEQUANTIZE_BLOCK_SIZE 256
    -#define SYCL_GET_ROWS_BLOCK_SIZE 256
    -#define SYCL_UPSCALE_BLOCK_SIZE 256
    -#define SYCL_CONCAT_BLOCK_SIZE 256
    -#define SYCL_PAD_BLOCK_SIZE 256
    -#define SYCL_ACC_BLOCK_SIZE 256
    -#define SYCL_IM2COL_BLOCK_SIZE 256
    -#define SYCL_POOL2D_BLOCK_SIZE 256
    -
    -// dmmv = dequantize_mul_mat_vec
    -#ifndef GGML_SYCL_DMMV_X
    -#define GGML_SYCL_DMMV_X 32
    -#endif
    -#ifndef GGML_SYCL_MMV_Y
    -#define GGML_SYCL_MMV_Y 1
    -#endif
    -
    -#ifndef K_QUANTS_PER_ITERATION
    -#define K_QUANTS_PER_ITERATION 2
    -#else
    -static_assert(K_QUANTS_PER_ITERATION == 1 || K_QUANTS_PER_ITERATION == 2, "K_QUANTS_PER_ITERATION must be 1 or 2");
    -#endif
    -
    -#ifndef GGML_SYCL_PEER_MAX_BATCH_SIZE
    -#define GGML_SYCL_PEER_MAX_BATCH_SIZE 128
    -#endif // GGML_SYCL_PEER_MAX_BATCH_SIZE
    -
    -#define MUL_MAT_SRC1_COL_STRIDE 128
    -
    -#define MAX_STREAMS 8
    -static dpct::queue_ptr g_syclStreams[GGML_SYCL_MAX_DEVICES][MAX_STREAMS] = {{0}};
    -
    -struct ggml_tensor_extra_gpu {
    -    void * data_device[GGML_SYCL_MAX_DEVICES]; // 1 pointer for each device for split tensors
    -    dpct::event_ptr
    -        events[GGML_SYCL_MAX_DEVICES]
    -              [MAX_STREAMS]; // events for synchronizing multiple GPUs
    -};
    -
    -class sycl_gpu_mgr {
    -    public:
    -        std::vector gpus;
    -        std::vector devices;
    -        sycl::queue *first_queue;
    -        sycl::context co_ctx;
    -        int max_compute_units = 0;
    -        int work_group_size = 0;
    -        std::string gpus_list = "";
    -
    -        /*
    -        Use all GPUs with same top max compute units
    -        */
    -        sycl_gpu_mgr() {
    -            detect_sycl_gpu_list_with_max_cu();
    -            get_allow_gpus();
    -            create_context_with_gpus();
    -        }
    -
    -        /*
    -        Only use the assigned GPU
    -        */
    -        sycl_gpu_mgr(int main_gpu_id) {
    -            sycl::device device = dpct::dev_mgr::instance().get_device(main_gpu_id);
    -            dpct::device_info prop;
    -            dpct::get_device_info(prop, device);
    -            gpus.push_back(main_gpu_id);
    -            devices.push_back(device);
    -            work_group_size = prop.get_max_work_group_size();
    -            max_compute_units = prop.get_max_compute_units();
    -
    -            get_allow_gpus();
    -            create_context_with_gpus();
    -        }
    -
    -        void create_context_with_gpus() {
    -            sycl::context ctx = sycl::context(devices);
    -            assert(gpus.size() > 0);
    -            first_queue = dpct::get_current_device().create_queue(ctx, devices[0]);
    -            co_ctx = first_queue->get_context();
    -        }
    -
    -        sycl::context &get_co_ctx() { return co_ctx; }
    -
    -        void get_allow_gpus() {
    -            gpus_list = "";
    -            for (size_t i = 0; i < gpus.size(); ++i) {
    -                gpus_list += std::to_string(gpus[i]);
    -                gpus_list += ",";
    -            }
    -            if (gpus_list.length() > 1) {
    -                gpus_list.pop_back();
    -            }
    -        }
    -
    -        bool is_allowed_gpu(int device_id) {
    -            return std::find(gpus.begin(), gpus.end(), device_id) != gpus.end();
    -        }
    -
    -        void detect_sycl_gpu_list_with_max_cu() try {
    -            int device_count = dpct::dev_mgr::instance().device_count();
    -
    -            for (int id = 0; id < device_count; id++) {
    -                sycl::device device = dpct::dev_mgr::instance().get_device(id);
    -                if (!device.is_gpu())
    -                    continue;
    -                dpct::device_info prop;
    -                dpct::get_device_info(prop, device);
    -                if (max_compute_units < prop.get_max_compute_units())
    -                    max_compute_units = prop.get_max_compute_units();
    -            }
    -
    -            for (int id = 0; id < device_count; id++) {
    -                sycl::device device = dpct::dev_mgr::instance().get_device(id);
    -                if (!device.is_gpu())
    -                    continue;
    -                dpct::device_info prop;
    -                dpct::get_device_info(prop, device);
    -                if (max_compute_units == prop.get_max_compute_units() &&
    -                    is_ext_oneapi_device(device)) {
    -                    gpus.push_back(id);
    -                    devices.push_back(device);
    -                    work_group_size = prop.get_max_work_group_size();
    -                }
    -            }
    -            return;
    -        } catch (sycl::exception const &exc) {
    -            std::cerr << exc.what() << "Exception caught at file:" << __FILE__
    -                    << ", line:" << __LINE__ << std::endl;
    -            std::exit(1);
    -        }
    -
    -        int get_gpu_count() { return (int)gpus.size(); }
    -
    -        int get_index(int id) {
    -            for (int i = 0; i < (int)gpus.size(); i++) {
    -                if (gpus[i] == id)
    -                    return i;
    -            }
    -            printf("miss to get device index by id=%d\n", id);
    -            GGML_ASSERT(false);
    -        }
    -
    -        int get_next_index(int id) {
    -            int cur_index = get_index(id);
    -            for (int i = cur_index + 1; i < (int)gpus.size(); i++) {
    -                if (gpus[i] == id)
    -                    return i;
    -            }
    -            GGML_ASSERT(false);
    -        }
    -
    -        bool is_ext_oneapi_device(const sycl::device &dev) {
    -            sycl::backend dev_backend = dev.get_backend();
    -            if (dev_backend == sycl::backend::ext_oneapi_level_zero ||
    -                dev_backend == sycl::backend::ext_oneapi_cuda ||
    -                dev_backend == sycl::backend::ext_oneapi_hip)
    -                return true;
    -            return false;
    -        }
    -};
    -
    -static sycl_gpu_mgr *g_sycl_gpu_mgr = NULL;
    -static int g_device_count = -1;
    -static int g_all_sycl_device_count = -1;
    -static int g_main_device = -1;
    -static int g_main_device_id = -1;
    -static bool g_ggml_backend_sycl_buffer_type_initialized = false;
    -
    -static std::array g_default_tensor_split = {};
    -
    -static float g_tensor_split[GGML_SYCL_MAX_DEVICES] = {0};
    -
    -static ggml_sycl_backend_gpu_mode g_ggml_sycl_backend_gpu_mode = SYCL_UNSET_GPU_MODE;
    -
    -struct sycl_device_capabilities {
    -    int     cc;                 // compute capability
    -    bool    vmm;                // virtual memory support
    -    size_t  vmm_granularity;    // granularity of virtual memory
    -    int device_id;
    -};
    -
    -static sycl_device_capabilities g_device_caps[GGML_SYCL_MAX_DEVICES] = { {0, false, 0, -1} };
    -
    -struct sycl_device_id2index {
    -    int index;
    -};
    -
    -static void * g_scratch_buffer = nullptr;
    -static size_t g_scratch_size = 0; // disabled by default
    -static size_t g_scratch_offset = 0;
    -
    -static dpct::queue_ptr g_sycl_handles[GGML_SYCL_MAX_DEVICES] = {nullptr};
    -
    -int get_main_device(){
    -    return g_main_device;
    -}
    -
    -[[noreturn]]
    -static void bad_arch(const sycl::stream &stream_ct1) {
    -    stream_ct1 << "ERROR: ggml-sycl was compiled without support for the "
    -                  "current GPU architecture.\n";
    -    // __trap();
    -    std::exit(1);
    -
    -    (void) bad_arch; // suppress unused function warning
    -}
    -
    -/*
    -device_index: device index from 0 to n (continue numbers).
    -    It is used for device select/set in SYCL backend internal data structure.
    -*/
    -void check_allow_gpu_index(const int device_index) {
    -    if (device_index >= g_device_count) {
    -        char error_buf[256];
    -        snprintf(error_buf, sizeof(error_buf),
    -                 "%s error: device_index:%d is out of range: [0-%d]", __func__,
    -                 device_index, g_device_count - 1);
    -        fprintf(stderr, "%s\n", error_buf);
    -        assert(false);
    -    }
    -}
    -
    -/*
    -device_id: device ID is shown by ggml_backend_sycl_print_sycl_devices().
    -    It is only used to set current working device.
    -*/
    -void check_allow_gpu_id(const int device_id) {
    -    if (!g_sycl_gpu_mgr->is_allowed_gpu(device_id)) {
    -        char error_buf[256];
    -        snprintf(error_buf, sizeof(error_buf),
    -                 "error: cannot set device=%d, which is not allowed. Please "
    -                 "set GPU ID in: [%s]",
    -                 device_id, g_sycl_gpu_mgr->gpus_list.c_str());
    -        fprintf(stderr, "%s\n", error_buf);
    -        throw std::invalid_argument(error_buf);
    -    }
    -}
    -
    -int get_current_device_id() {
    -    return dpct::dev_mgr::instance().current_device_id();
    -}
    -
    -inline dpct::err0 ggml_sycl_set_device(const int device) try {
    -
    -    int device_id = g_sycl_gpu_mgr->gpus[device];
    -    check_allow_gpu_id(device_id);
    -
    -    int current_device_id;
    -    SYCL_CHECK(CHECK_TRY_ERROR(current_device_id = get_current_device_id()));
    -
    -    // GGML_SYCL_DEBUG("ggml_sycl_set_device device_id=%d,
    -    // current_device_id=%d\n", device, current_device);
    -    if (device_id == current_device_id) {
    -        return 0;
    -    }
    +int    ggml_backend_sycl_get_device(ggml_backend_t backend);
    +static bool ggml_backend_buffer_is_sycl_split(ggml_backend_buffer_t buffer);
     
    -    return CHECK_TRY_ERROR(dpct::select_device(device_id));
    -} catch (sycl::exception const &exc) {
    -    std::cerr << exc.what() << "Exception caught at file:" << __FILE__
    -              << ", line:" << __LINE__ << std::endl;
    -    crash();
    -    std::exit(1);
    +void dev2dev_memcpy(sycl::queue &q_dst, sycl::queue &q_src, void *ptr_dst,
    +                    const void *ptr_src, size_t size) {
    +    char *host_buf = (char *)malloc(size);
    +    q_src.memcpy(host_buf, (const char *)ptr_src, size).wait();
    +    q_dst.memcpy((char *)ptr_dst, host_buf, size).wait();
    +    free(host_buf);
     }
     
    -void log_ggml_var_device(const char*name, float *src, size_t total_elements, bool src_on_device){
    -    if(!g_ggml_sycl_debug) return;
    -    if(!src){
    -        printf("GGML Tensor:%s skip to save for NULL pointer\n", name);
    -        return;
    -    }
    -    char filename[1024];
    -    sprintf(filename, "%s.txt", name);
    -    printf("GGML Tensor:%s save to %s\n", name, filename);
    -
    -    size_t total_size = total_elements*sizeof(float);
    -    float *local_buf = NULL;
    -    if(src_on_device) {
    -        local_buf = (float *) ggml_sycl_host_malloc(total_size);
    -        ggml_sycl_set_device(g_main_device);
    -        dpct::queue_ptr main_stream = g_syclStreams[g_main_device][0];
    -        main_stream->memcpy(local_buf, src, total_size).wait();
    -    }
    -    else {
    -        local_buf = (float *)src;
    -    }
    +static __dpct_inline__ int get_int_from_int8(const int8_t *x8, const int &i32) {
    +    const uint16_t * x16 = (const uint16_t *) (x8 + sizeof(int) * i32); // assume at least 2 byte alignment
     
    -    std::ofstream logfile;
    -    logfile.open(filename);
    -    for(size_t i=0; imemcpy(local_buf, src, total_size).wait();
    -    }
    -    else {
    -        local_buf = (sycl::half *)src;
    -    }
    +static __dpct_inline__ int get_int_from_uint8(const uint8_t *x8,
    +                                              const int &i32) {
    +    const uint16_t * x16 = (const uint16_t *) (x8 + sizeof(int) * i32); // assume at least 2 byte alignment
     
    -    std::ofstream logfile;
    -    logfile.open(filename);
    -    for(size_t i=0; ibackend == GGML_BACKEND_TYPE_GPU || src->backend == GGML_BACKEND_TYPE_GPU_SPLIT;
    -    float *src_data =NULL;
    -    if(src_on_device) {
    -        ggml_tensor_extra_gpu * src_extra = (ggml_tensor_extra_gpu *)  src->extra;
    -        src_data = (float*)src_extra->data_device[g_main_device];
    -    }
    -    else {
    -        src_data = (float *)src->data;
    -    }
    +template 
    +using to_t_sycl_t = void (*)(const void *__restrict__ x, T *__restrict__ y,
    +                             int k, queue_ptr stream);
    +typedef to_t_sycl_t to_fp32_sycl_t;
    +typedef to_t_sycl_t to_fp16_sycl_t;
     
    -    log_ggml_var_device(name, src_data, total_elements, src_on_device);
    -}
    +typedef void (*dequantize_kernel_t)(const void * vx, const int ib, const int iqs, dfloat2 & v);
    +typedef void (*dot_kernel_k_t)(const void * __restrict__ vx, const int ib, const int iqs, const float * __restrict__ y, float & v);
    +typedef void (*cpy_kernel_t)(const char * cx, char * cdst);
    +typedef void (*ggml_sycl_func_t)(ggml_backend_sycl_context & ctx, const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst);
    +typedef void (*ggml_sycl_op_mul_mat_t)(
    +    ggml_backend_sycl_context & ctx,
    +    const ggml_tensor *src0, const ggml_tensor *src1, ggml_tensor *dst,
    +    const char *src0_dd_i, const float *src1_ddf_i, const char *src1_ddq_i,
    +    float *dst_dd_i, const int64_t row_low, const int64_t row_high,
    +    const int64_t src1_ncols, const int64_t src1_padded_row_size,
    +    const queue_ptr &stream);
    +typedef void (*ggml_sycl_op_flatten_t)(ggml_backend_sycl_context & ctx, const ggml_tensor *src0,
    +                                       const ggml_tensor *src1,
    +                                       ggml_tensor *dst, const float *src0_dd,
    +                                       const float *src1_dd, float *dst_dd,
    +                                       const queue_ptr &main_stream);
     
    -static int log_file_name_idx=0;
    -void log_tensor_with_cnt(const char* name, struct ggml_tensor * src, int stop_cnt) {
    -    stop_cnt = 4;
    -    if(log_file_name_idx>=stop_cnt) return;
    -    char filename[1280];
    -    sprintf(filename, "%s_%07d", name, log_file_name_idx);
    -    log_file_name_idx++;
    -    print_ggml_tensor(filename, src);
    -}
    +typedef float (*vec_dot_q_sycl_t)(const void * __restrict__ vbq, const block_q8_1 * __restrict__ bq8_1, const int & iqs);
    +typedef void (*allocate_tiles_sycl_t)(int **x_ql, sycl::half2 **x_dm,
    +                                      int **x_qh, int **x_sc);
    +typedef void (*load_tiles_sycl_t)(const void *__restrict__ vx,
    +                                  int *__restrict__ x_ql,
    +                                  sycl::half2 *__restrict__ x_dm,
    +                                  int *__restrict__ x_qh,
    +                                  int *__restrict__ x_sc, const int &i_offset,
    +                                  const int &i_max, const int &k,
    +                                  const int &blocks_per_row);
    +typedef float (*vec_dot_q_mul_mat_sycl_t)(
    +    const int *__restrict__ x_ql, const sycl::half2 *__restrict__ x_dm,
    +    const int *__restrict__ x_qh, const int *__restrict__ x_sc,
    +    const int *__restrict__ y_qs, const sycl::half2 *__restrict__ y_ms,
    +    const int &i, const int &j, const int &k);
     
     static __dpct_inline__ float warp_reduce_sum(float x,
                                                  const sycl::nd_item<3> &item_ct1) {
    @@ -9256,10 +5862,10 @@ static  void pool2d_nchw_kernel(
     }
     
     template 
    -static void get_rows_sycl(const ggml_tensor *src0, const ggml_tensor *src1,
    +static void get_rows_sycl(ggml_backend_sycl_context & ctx, const ggml_tensor *src0, const ggml_tensor *src1,
                               ggml_tensor *dst, const void *src0_dd,
                               const int32_t *src1_dd, float *dst_dd,
    -                          dpct::queue_ptr stream) {
    +                          queue_ptr stream) {
     
         GGML_TENSOR_BINARY_OP_LOCALS
     
    @@ -9291,10 +5897,10 @@ static void get_rows_sycl(const ggml_tensor *src0, const ggml_tensor *src1,
     }
     
     template 
    -static void get_rows_sycl_float(const ggml_tensor *src0,
    +static void get_rows_sycl_float(ggml_backend_sycl_context & ctx, const ggml_tensor *src0,
                                     const ggml_tensor *src1, ggml_tensor *dst,
                                     const src0_t *src0_dd, const int32_t *src1_dd,
    -                                float *dst_dd, dpct::queue_ptr stream) {
    +                                float *dst_dd, queue_ptr stream) {
     
         GGML_TENSOR_BINARY_OP_LOCALS
     
    @@ -9331,10 +5937,11 @@ static void get_rows_sycl_float(const ggml_tensor *src0,
     template
     struct bin_bcast_sycl {
         template 
    -    void operator()(const struct ggml_tensor *src0,
    +    void operator()(ggml_backend_sycl_context & ctx,
    +                    const struct ggml_tensor *src0,
                         const struct ggml_tensor *src1, struct ggml_tensor *dst,
                         const src0_t *src0_dd, const src1_t *src1_dd, dst_t *dst_dd,
    -                    dpct::queue_ptr stream) {
    +                    queue_ptr stream) {
     
             GGML_TENSOR_BINARY_OP_LOCALS
     
    @@ -9471,7 +6078,7 @@ struct bin_bcast_sycl {
     static void acc_f32_sycl(const float *x, const float *y, float *dst,
                              const int n_elements, const int ne10, const int ne11,
                              const int ne12, const int nb1, const int nb2,
    -                         const int offset, dpct::queue_ptr stream) {
    +                         const int offset, queue_ptr stream) {
         int num_blocks = (n_elements + SYCL_ACC_BLOCK_SIZE - 1) / SYCL_ACC_BLOCK_SIZE;
         stream->parallel_for(
             sycl::nd_range<3>(sycl::range<3>(1, 1, num_blocks) *
    @@ -9484,7 +6091,7 @@ static void acc_f32_sycl(const float *x, const float *y, float *dst,
     }
     
     static void gelu_f32_sycl(const float *x, float *dst, const int k,
    -                          dpct::queue_ptr stream) {
    +                          queue_ptr stream) {
         const int num_blocks = (k + SYCL_GELU_BLOCK_SIZE - 1) / SYCL_GELU_BLOCK_SIZE;
         stream->parallel_for(
             sycl::nd_range<3>(sycl::range<3>(1, 1, num_blocks) *
    @@ -9496,7 +6103,7 @@ static void gelu_f32_sycl(const float *x, float *dst, const int k,
     }
     
     static void silu_f32_sycl(const float *x, float *dst, const int k,
    -                          dpct::queue_ptr stream) {
    +                          queue_ptr stream) {
         const int num_blocks = (k + SYCL_SILU_BLOCK_SIZE - 1) / SYCL_SILU_BLOCK_SIZE;
         stream->parallel_for(
             sycl::nd_range<3>(sycl::range<3>(1, 1, num_blocks) *
    @@ -9508,7 +6115,7 @@ static void silu_f32_sycl(const float *x, float *dst, const int k,
     }
     
     static void gelu_quick_f32_sycl(const float *x, float *dst, const int k,
    -                                dpct::queue_ptr stream) {
    +                                queue_ptr stream) {
         const int num_blocks = (k + SYCL_GELU_BLOCK_SIZE - 1) / SYCL_GELU_BLOCK_SIZE;
         stream->parallel_for(
             sycl::nd_range<3>(sycl::range<3>(1, 1, num_blocks) *
    @@ -9520,7 +6127,7 @@ static void gelu_quick_f32_sycl(const float *x, float *dst, const int k,
     }
     
     static void tanh_f32_sycl(const float *x, float *dst, const int k,
    -                          dpct::queue_ptr stream) {
    +                          queue_ptr stream) {
         const int num_blocks = (k + SYCL_TANH_BLOCK_SIZE - 1) / SYCL_TANH_BLOCK_SIZE;
         stream->parallel_for(
             sycl::nd_range<3>(sycl::range<3>(1, 1, num_blocks) *
    @@ -9532,7 +6139,7 @@ static void tanh_f32_sycl(const float *x, float *dst, const int k,
     }
     
     static void relu_f32_sycl(const float *x, float *dst, const int k,
    -                          dpct::queue_ptr stream) {
    +                          queue_ptr stream) {
         const int num_blocks = (k + SYCL_RELU_BLOCK_SIZE - 1) / SYCL_RELU_BLOCK_SIZE;
         stream->parallel_for(
             sycl::nd_range<3>(sycl::range<3>(1, 1, num_blocks) *
    @@ -9544,7 +6151,7 @@ static void relu_f32_sycl(const float *x, float *dst, const int k,
     }
     
     static void hardsigmoid_f32_sycl(const float *x, float *dst, const int k,
    -                                 dpct::queue_ptr stream) {
    +                                 queue_ptr stream) {
         const int num_blocks = (k + SYCL_HARDSIGMOID_BLOCK_SIZE - 1) / SYCL_HARDSIGMOID_BLOCK_SIZE;
         stream->parallel_for(
             sycl::nd_range<3>(sycl::range<3>(1, 1, num_blocks) *
    @@ -9556,7 +6163,7 @@ static void hardsigmoid_f32_sycl(const float *x, float *dst, const int k,
     }
     
     static void hardswish_f32_sycl(const float *x, float *dst, const int k,
    -                               dpct::queue_ptr stream) {
    +                               queue_ptr stream) {
         const int num_blocks = (k + SYCL_HARDSWISH_BLOCK_SIZE - 1) / SYCL_HARDSWISH_BLOCK_SIZE;
         stream->parallel_for(
             sycl::nd_range<3>(sycl::range<3>(1, 1, num_blocks) *
    @@ -9569,7 +6176,7 @@ static void hardswish_f32_sycl(const float *x, float *dst, const int k,
     
     static void leaky_relu_f32_sycl(const float *x, float *dst, const int k,
                                     const float negative_slope,
    -                                dpct::queue_ptr stream) {
    +                                queue_ptr stream) {
         const int num_blocks = (k + SYCL_RELU_BLOCK_SIZE - 1) / SYCL_RELU_BLOCK_SIZE;
         stream->parallel_for(
             sycl::nd_range<3>(sycl::range<3>(1, 1, num_blocks) *
    @@ -9581,7 +6188,7 @@ static void leaky_relu_f32_sycl(const float *x, float *dst, const int k,
     }
     
     static void sqr_f32_sycl(const float *x, float *dst, const int k,
    -                         dpct::queue_ptr stream) {
    +                         queue_ptr stream) {
         const int num_blocks = (k + SYCL_SQR_BLOCK_SIZE - 1) / SYCL_SQR_BLOCK_SIZE;
         stream->parallel_for(
             sycl::nd_range<3>(sycl::range<3>(1, 1, num_blocks) *
    @@ -9594,7 +6201,7 @@ static void sqr_f32_sycl(const float *x, float *dst, const int k,
     
     static void norm_f32_sycl(const float *x, float *dst, const int ncols,
                               const int nrows, const float eps,
    -                          dpct::queue_ptr stream) {
    +                          queue_ptr stream) {
         GGML_ASSERT(ncols % WARP_SIZE == 0);
         if (ncols < 1024) {
             const sycl::range<3> block_dims(1, 1, WARP_SIZE);
    @@ -9612,7 +6219,8 @@ static void norm_f32_sycl(const float *x, float *dst, const int ncols,
                         });
             });
         } else {
    -        const int work_group_size = g_work_group_size;
    +        // FIXME: 1024 from cuda
    +        const int work_group_size = GROUP_SIZE;
             const sycl::range<3> block_dims(1, 1, work_group_size);
             /*
             DPCT1049:17: The work-group size passed to the SYCL kernel may exceed
    @@ -9637,7 +6245,7 @@ static void norm_f32_sycl(const float *x, float *dst, const int ncols,
     
     static void group_norm_f32_sycl(const float *x, float *dst,
                                     const int num_groups, const int group_size,
    -                                const int ne_elements, dpct::queue_ptr stream) {
    +                                const int ne_elements, queue_ptr stream) {
         static const float eps = 1e-6f;
         if (group_size < 1024) {
             const sycl::range<3> block_dims(1, 1, WARP_SIZE);
    @@ -9658,7 +6266,7 @@ static void group_norm_f32_sycl(const float *x, float *dst,
                         });
             });
         } else {
    -        const int work_group_size = g_work_group_size;
    +        const int work_group_size = GROUP_SIZE;
             const sycl::range<3> block_dims(1, 1, work_group_size);
             /*
             DPCT1049:18: The work-group size passed to the SYCL kernel may exceed
    @@ -9687,7 +6295,7 @@ static void group_norm_f32_sycl(const float *x, float *dst,
     
     static void concat_f32_sycl(const float *x, const float *y, float *dst,
                                 const int ne0, int ne1, int ne2, int ne02,
    -                            dpct::queue_ptr stream) {
    +                            queue_ptr stream) {
         int num_blocks = (ne0 + SYCL_CONCAT_BLOCK_SIZE - 1) / SYCL_CONCAT_BLOCK_SIZE;
         sycl::range<3> gridDim(ne2, ne1, num_blocks);
         stream->parallel_for(
    @@ -9702,7 +6310,7 @@ static void concat_f32_sycl(const float *x, const float *y, float *dst,
     static void upscale_f32_sycl(const float *x, float *dst, const int nb00, const int nb01,
                                  const int nb02, const int nb03, const int ne10, const int ne11,
                                  const int ne12, const int ne13, const float sf0, const float sf1,
    -                             const float sf2, const float sf3, dpct::queue_ptr stream) {
    +                             const float sf2, const float sf3, queue_ptr stream) {
         int dst_size = ne10 * ne11 * ne12 * ne13;
         int num_blocks = (dst_size + SYCL_UPSCALE_BLOCK_SIZE - 1) / SYCL_UPSCALE_BLOCK_SIZE;
         sycl::range<1> gridDim(num_blocks * SYCL_UPSCALE_BLOCK_SIZE);
    @@ -9715,7 +6323,7 @@ static void upscale_f32_sycl(const float *x, float *dst, const int nb00, const i
     
     static void pad_f32_sycl(const float *x, float *dst, const int ne00,
                              const int ne01, const int ne02, const int ne0,
    -                         const int ne1, const int ne2, dpct::queue_ptr stream) {
    +                         const int ne1, const int ne2, queue_ptr stream) {
         int num_blocks = (ne0 + SYCL_PAD_BLOCK_SIZE - 1) / SYCL_PAD_BLOCK_SIZE;
         sycl::range<3> gridDim(ne2, ne1, num_blocks);
         stream->parallel_for(
    @@ -9728,7 +6336,7 @@ static void pad_f32_sycl(const float *x, float *dst, const int ne00,
     
     static void rms_norm_f32_sycl(const float *x, float *dst, const int ncols,
                                   const int nrows, const float eps,
    -                              dpct::queue_ptr stream) {
    +                              queue_ptr stream) {
         GGML_ASSERT(ncols % WARP_SIZE == 0);
         // printf("%s ncols=%d, nrows=%d, WARP_SIZE=%d\n", __func__, ncols, nrows, WARP_SIZE);
         if (ncols < 1024) {
    @@ -9747,7 +6355,7 @@ static void rms_norm_f32_sycl(const float *x, float *dst, const int ncols,
                         });
             });
         } else {
    -        const int work_group_size = g_work_group_size;
    +        const int work_group_size = GROUP_SIZE;
             const sycl::range<3> block_dims(1, 1, work_group_size);
             /*
             DPCT1049:19: The work-group size passed to the SYCL kernel may exceed
    @@ -9772,7 +6380,7 @@ static void rms_norm_f32_sycl(const float *x, float *dst, const int ncols,
     
     static void quantize_row_q8_1_sycl(const float *x, void *vy, const int kx,
                                        const int ky, const int kx_padded,
    -                                   dpct::queue_ptr stream) {
    +                                   queue_ptr stream) {
         const int block_num_x = (kx_padded + SYCL_QUANTIZE_BLOCK_SIZE - 1) / SYCL_QUANTIZE_BLOCK_SIZE;
         const sycl::range<3> num_blocks(1, ky, block_num_x);
         const sycl::range<3> block_size(1, 1, SYCL_DEQUANTIZE_BLOCK_SIZE);
    @@ -9791,7 +6399,7 @@ static void quantize_row_q8_1_sycl(const float *x, void *vy, const int kx,
     template 
     static void dequantize_block_sycl(const void *__restrict__ vx,
                                       dst_t *__restrict__ y, const int k,
    -                                  dpct::queue_ptr stream) {
    +                                  queue_ptr stream) {
         const int num_blocks = (k + 2*SYCL_DEQUANTIZE_BLOCK_SIZE - 1) / (2*SYCL_DEQUANTIZE_BLOCK_SIZE);
         {
             dpct::has_capability_or_fail(stream->get_device(),
    @@ -9809,7 +6417,7 @@ static void dequantize_block_sycl(const void *__restrict__ vx,
     
     template 
     static void dequantize_row_q2_K_sycl(const void *vx, dst_t *y, const int k,
    -                                     dpct::queue_ptr stream) {
    +                                     queue_ptr stream) {
         const int nb = k / QK_K;
         {
             dpct::has_capability_or_fail(stream->get_device(),
    @@ -9826,7 +6434,7 @@ static void dequantize_row_q2_K_sycl(const void *vx, dst_t *y, const int k,
     
     template 
     static void dequantize_row_q3_K_sycl(const void *vx, dst_t *y, const int k,
    -                                     dpct::queue_ptr stream) {
    +                                     queue_ptr stream) {
         const int nb = k / QK_K;
         {
             dpct::has_capability_or_fail(stream->get_device(),
    @@ -9843,7 +6451,7 @@ static void dequantize_row_q3_K_sycl(const void *vx, dst_t *y, const int k,
     
     template 
     static void dequantize_row_q4_0_sycl(const void *vx, dst_t *y, const int k,
    -                                     dpct::queue_ptr stream) {
    +                                     queue_ptr stream) {
         const int nb32 = k / 32;
         const int nb = (k + 255) / 256;
         {
    @@ -9861,7 +6469,7 @@ static void dequantize_row_q4_0_sycl(const void *vx, dst_t *y, const int k,
     
     template 
     static void dequantize_row_q4_1_sycl(const void *vx, dst_t *y, const int k,
    -                                     dpct::queue_ptr stream) {
    +                                     queue_ptr stream) {
         const int nb32 = k / 32;
         const int nb = (k + 255) / 256;
         {
    @@ -9880,7 +6488,7 @@ static void dequantize_row_q4_1_sycl(const void *vx, dst_t *y, const int k,
     
     template 
     static void dequantize_row_q4_K_sycl(const void *vx, dst_t *y, const int k,
    -                                     dpct::queue_ptr stream) {
    +                                     queue_ptr stream) {
         const int nb = k / QK_K;
         {
             dpct::has_capability_or_fail(stream->get_device(),
    @@ -9897,7 +6505,7 @@ static void dequantize_row_q4_K_sycl(const void *vx, dst_t *y, const int k,
     
     template 
     static void dequantize_row_q5_K_sycl(const void *vx, dst_t *y, const int k,
    -                                     dpct::queue_ptr stream) {
    +                                     queue_ptr stream) {
         const int nb = k / QK_K;
         {
             dpct::has_capability_or_fail(stream->get_device(),
    @@ -9914,7 +6522,7 @@ static void dequantize_row_q5_K_sycl(const void *vx, dst_t *y, const int k,
     
     template 
     static void dequantize_row_q6_K_sycl(const void *vx, dst_t *y, const int k,
    -                                     dpct::queue_ptr stream) {
    +                                     queue_ptr stream) {
         const int nb = k / QK_K;
         {
             dpct::has_capability_or_fail(stream->get_device(),
    @@ -9931,7 +6539,7 @@ static void dequantize_row_q6_K_sycl(const void *vx, dst_t *y, const int k,
     
     template 
     static void dequantize_row_iq1_s_sycl(const void *vx, dst_t *y, const int k,
    -                                        dpct::queue_ptr stream) {
    +                                        queue_ptr stream) {
         const int nb = k / QK_K;
         {
             dpct::has_capability_or_fail(stream->get_device(),
    @@ -9952,7 +6560,7 @@ static void dequantize_row_iq1_s_sycl(const void *vx, dst_t *y, const int k,
     
     template 
     static void dequantize_row_iq1_m_sycl(const void *vx, dst_t *y, const int k,
    -                                        dpct::queue_ptr stream) {
    +                                        queue_ptr stream) {
         const int nb = k / QK_K;
         {
             dpct::has_capability_or_fail(stream->get_device(),
    @@ -9973,7 +6581,7 @@ static void dequantize_row_iq1_m_sycl(const void *vx, dst_t *y, const int k,
     
     template 
     static void dequantize_row_iq2_xxs_sycl(const void *vx, dst_t *y, const int k,
    -                                        dpct::queue_ptr stream) {
    +                                        queue_ptr stream) {
         const int nb = k / QK_K;
         {
             dpct::has_capability_or_fail(stream->get_device(),
    @@ -9994,7 +6602,7 @@ static void dequantize_row_iq2_xxs_sycl(const void *vx, dst_t *y, const int k,
     
     template 
     static void dequantize_row_iq2_xs_sycl(const void *vx, dst_t *y, const int k,
    -                                       dpct::queue_ptr stream) {
    +                                       queue_ptr stream) {
         const int nb = k / QK_K;
         {
             dpct::has_capability_or_fail(stream->get_device(),
    @@ -10015,7 +6623,7 @@ static void dequantize_row_iq2_xs_sycl(const void *vx, dst_t *y, const int k,
     
     template 
     static void dequantize_row_iq2_s_sycl(const void *vx, dst_t *y, const int k,
    -                                      dpct::queue_ptr stream) {
    +                                      queue_ptr stream) {
         const int nb = k / QK_K;
         {
             dpct::has_capability_or_fail(stream->get_device(),
    @@ -10035,7 +6643,7 @@ static void dequantize_row_iq2_s_sycl(const void *vx, dst_t *y, const int k,
     
     template 
     static void dequantize_row_iq3_xxs_sycl(const void *vx, dst_t *y, const int k,
    -                                        dpct::queue_ptr stream) {
    +                                        queue_ptr stream) {
         const int nb = k / QK_K;
         {
             dpct::has_capability_or_fail(stream->get_device(),
    @@ -10056,7 +6664,7 @@ static void dequantize_row_iq3_xxs_sycl(const void *vx, dst_t *y, const int k,
     
     template 
     static void dequantize_row_iq3_s_sycl(const void *vx, dst_t *y, const int k,
    -                                        dpct::queue_ptr stream) {
    +                                        queue_ptr stream) {
         const int nb = k / QK_K;
         {
             dpct::has_capability_or_fail(stream->get_device(),
    @@ -10076,7 +6684,7 @@ static void dequantize_row_iq3_s_sycl(const void *vx, dst_t *y, const int k,
     
     template 
     static void dequantize_row_iq4_xs_sycl(const void *vx, dst_t *y, const int k,
    -                                       dpct::queue_ptr stream) {
    +                                       queue_ptr stream) {
         const int nb = (k + QK_K - 1) / QK_K;
           {
                 dpct::has_capability_or_fail(stream->get_device(),
    @@ -10097,7 +6705,7 @@ static void dequantize_row_iq4_xs_sycl(const void *vx, dst_t *y, const int k,
     
     template 
     static void dequantize_row_iq4_nl_sycl(const void *vx, dst_t *y, const int k,
    -                                       dpct::queue_ptr stream) {
    +                                       queue_ptr stream) {
         const int nb = (k + QK_K - 1) / QK_K;
           {
                 dpct::has_capability_or_fail(stream->get_device(),
    @@ -10120,7 +6728,7 @@ static void dequantize_row_iq4_nl_sycl(const void *vx, dst_t *y, const int k,
     template 
     static void convert_unary_sycl(const void *__restrict__ vx,
                                    dst_t *__restrict__ y, const int k,
    -                               dpct::queue_ptr stream) {
    +                               queue_ptr stream) {
         const int num_blocks = (k + SYCL_DEQUANTIZE_BLOCK_SIZE - 1) / SYCL_DEQUANTIZE_BLOCK_SIZE;
         {
             dpct::has_capability_or_fail(stream->get_device(),
    @@ -10241,7 +6849,7 @@ static to_fp32_sycl_t ggml_get_to_fp32_sycl(ggml_type type) {
     static void dequantize_mul_mat_vec_q4_0_sycl(const void *vx, const dfloat *y,
                                                  float *dst, const int ncols,
                                                  const int nrows,
    -                                             dpct::queue_ptr stream) {
    +                                             queue_ptr stream) {
         GGML_ASSERT(ncols % GGML_SYCL_DMMV_X == 0);
         const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y;
         // the number of rows may exceed maximum grid size in the y or z dimensions, use the x dimension instead
    @@ -10263,7 +6871,7 @@ static void dequantize_mul_mat_vec_q4_0_sycl(const void *vx, const dfloat *y,
     static void dequantize_mul_mat_vec_q4_1_sycl(const void *vx, const dfloat *y,
                                                  float *dst, const int ncols,
                                                  const int nrows,
    -                                             dpct::queue_ptr stream) {
    +                                             queue_ptr stream) {
         GGML_ASSERT(ncols % GGML_SYCL_DMMV_X == 0);
         const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y;
         const sycl::range<3> block_nums(1, 1, block_num_y);
    @@ -10284,7 +6892,7 @@ static void dequantize_mul_mat_vec_q4_1_sycl(const void *vx, const dfloat *y,
     static void dequantize_mul_mat_vec_q5_0_sycl(const void *vx, const dfloat *y,
                                                  float *dst, const int ncols,
                                                  const int nrows,
    -                                             dpct::queue_ptr stream) {
    +                                             queue_ptr stream) {
         GGML_ASSERT(ncols % GGML_SYCL_DMMV_X == 0);
         const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y;
         const sycl::range<3> block_nums(1, 1, block_num_y);
    @@ -10305,7 +6913,7 @@ static void dequantize_mul_mat_vec_q5_0_sycl(const void *vx, const dfloat *y,
     static void dequantize_mul_mat_vec_q5_1_sycl(const void *vx, const dfloat *y,
                                                  float *dst, const int ncols,
                                                  const int nrows,
    -                                             dpct::queue_ptr stream) {
    +                                             queue_ptr stream) {
         GGML_ASSERT(ncols % GGML_SYCL_DMMV_X == 0);
         const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y;
         const sycl::range<3> block_nums(1, 1, block_num_y);
    @@ -10326,7 +6934,7 @@ static void dequantize_mul_mat_vec_q5_1_sycl(const void *vx, const dfloat *y,
     static void dequantize_mul_mat_vec_q8_0_sycl(const void *vx, const dfloat *y,
                                                  float *dst, const int ncols,
                                                  const int nrows,
    -                                             dpct::queue_ptr stream) {
    +                                             queue_ptr stream) {
         GGML_ASSERT(ncols % GGML_SYCL_DMMV_X == 0);
         const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y;
         const sycl::range<3> block_nums(1, 1, block_num_y);
    @@ -10347,7 +6955,7 @@ static void dequantize_mul_mat_vec_q8_0_sycl(const void *vx, const dfloat *y,
     static void dequantize_mul_mat_vec_q2_K_sycl(const void *vx, const float *y,
                                                  float *dst, const int ncols,
                                                  const int nrows,
    -                                             dpct::queue_ptr stream) {
    +                                             queue_ptr stream) {
         GGML_ASSERT(ncols % QK_K == 0);
         const int ny = 2; // very slightly faster than 1 even when K_QUANTS_PER_ITERATION = 2
         const int block_num_y = (nrows + ny - 1) / ny;
    @@ -10363,7 +6971,7 @@ static void dequantize_mul_mat_vec_q2_K_sycl(const void *vx, const float *y,
     static void dequantize_mul_mat_vec_q3_K_sycl(const void *vx, const float *y,
                                                  float *dst, const int ncols,
                                                  const int nrows,
    -                                             dpct::queue_ptr stream) {
    +                                             queue_ptr stream) {
         GGML_ASSERT(ncols % QK_K == 0);
         const int ny = 2 / K_QUANTS_PER_ITERATION;
         const int block_num_y = (nrows + ny - 1) / ny;
    @@ -10379,7 +6987,7 @@ static void dequantize_mul_mat_vec_q3_K_sycl(const void *vx, const float *y,
     static void dequantize_mul_mat_vec_q4_K_sycl(const void *vx, const float *y,
                                                  float *dst, const int ncols,
                                                  const int nrows,
    -                                             dpct::queue_ptr stream) {
    +                                             queue_ptr stream) {
         GGML_ASSERT(ncols % QK_K == 0);
         const int ny = 2 / K_QUANTS_PER_ITERATION;
         const int block_num_y = (nrows + ny - 1) / ny;
    @@ -10395,7 +7003,7 @@ static void dequantize_mul_mat_vec_q4_K_sycl(const void *vx, const float *y,
     static void dequantize_mul_mat_vec_q5_K_sycl(const void *vx, const float *y,
                                                  float *dst, const int ncols,
                                                  const int nrows,
    -                                             dpct::queue_ptr stream) {
    +                                             queue_ptr stream) {
         GGML_ASSERT(ncols % QK_K == 0);
         const sycl::range<3> block_dims(1, 1, 32);
         stream->parallel_for(
    @@ -10408,7 +7016,7 @@ static void dequantize_mul_mat_vec_q5_K_sycl(const void *vx, const float *y,
     static void dequantize_mul_mat_vec_q6_K_sycl(const void *vx, const float *y,
                                                  float *dst, const int ncols,
                                                  const int nrows,
    -                                             dpct::queue_ptr stream) {
    +                                             queue_ptr stream) {
         GGML_ASSERT(ncols % QK_K == 0);
         const int ny = 2 / K_QUANTS_PER_ITERATION;
         const int block_num_y = (nrows + ny - 1) / ny;
    @@ -10424,7 +7032,7 @@ static void dequantize_mul_mat_vec_q6_K_sycl(const void *vx, const float *y,
     static void convert_mul_mat_vec_f16_sycl(const void *vx, const dfloat *y,
                                              float *dst, const int ncols,
                                              const int nrows,
    -                                         dpct::queue_ptr stream) {
    +                                         queue_ptr stream) {
         GGML_ASSERT(ncols % GGML_SYCL_DMMV_X == 0);
         const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y;
         const sycl::range<3> block_nums(1, 1, block_num_y);
    @@ -10446,7 +7054,7 @@ static void convert_mul_mat_vec_f16_sycl(const void *vx, const dfloat *y,
     static void mul_mat_vec_q4_0_q8_1_sycl(const void *vx, const void *vy,
                                            float *dst, const int ncols,
                                            const int nrows,
    -                                       dpct::queue_ptr stream) {
    +                                       queue_ptr stream) {
         GGML_ASSERT(ncols % QK4_0 == 0);
         const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y;
         const sycl::range<3> block_nums(1, 1, block_num_y);
    @@ -10470,7 +7078,7 @@ static void mul_mat_vec_q4_0_q8_1_sycl(const void *vx, const void *vy,
     static void mul_mat_vec_q4_1_q8_1_sycl(const void *vx, const void *vy,
                                            float *dst, const int ncols,
                                            const int nrows,
    -                                       dpct::queue_ptr stream) {
    +                                       queue_ptr stream) {
         GGML_ASSERT(ncols % QK4_1 == 0);
         const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y;
         const sycl::range<3> block_nums(1, 1, block_num_y);
    @@ -10494,7 +7102,7 @@ static void mul_mat_vec_q4_1_q8_1_sycl(const void *vx, const void *vy,
     static void mul_mat_vec_q5_0_q8_1_sycl(const void *vx, const void *vy,
                                            float *dst, const int ncols,
                                            const int nrows,
    -                                       dpct::queue_ptr stream) {
    +                                       queue_ptr stream) {
         GGML_ASSERT(ncols % QK5_0 == 0);
         const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y;
         const sycl::range<3> block_nums(1, 1, block_num_y);
    @@ -10518,7 +7126,7 @@ static void mul_mat_vec_q5_0_q8_1_sycl(const void *vx, const void *vy,
     static void mul_mat_vec_q5_1_q8_1_sycl(const void *vx, const void *vy,
                                            float *dst, const int ncols,
                                            const int nrows,
    -                                       dpct::queue_ptr stream) {
    +                                       queue_ptr stream) {
         GGML_ASSERT(ncols % QK5_1 == 0);
         const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y;
         const sycl::range<3> block_nums(1, 1, block_num_y);
    @@ -10542,7 +7150,7 @@ static void mul_mat_vec_q5_1_q8_1_sycl(const void *vx, const void *vy,
     static void mul_mat_vec_q8_0_q8_1_sycl(const void *vx, const void *vy,
                                            float *dst, const int ncols,
                                            const int nrows,
    -                                       dpct::queue_ptr stream) {
    +                                       queue_ptr stream) {
         GGML_ASSERT(ncols % QK8_0 == 0);
         const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y;
         const sycl::range<3> block_nums(1, 1, block_num_y);
    @@ -10566,7 +7174,7 @@ static void mul_mat_vec_q8_0_q8_1_sycl(const void *vx, const void *vy,
     static void mul_mat_vec_q2_K_q8_1_sycl(const void *vx, const void *vy,
                                            float *dst, const int ncols,
                                            const int nrows,
    -                                       dpct::queue_ptr stream) {
    +                                       queue_ptr stream) {
         GGML_ASSERT(ncols % QK_K == 0);
         const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y;
         const sycl::range<3> block_nums(1, 1, block_num_y);
    @@ -10590,7 +7198,7 @@ static void mul_mat_vec_q2_K_q8_1_sycl(const void *vx, const void *vy,
     static void mul_mat_vec_q3_K_q8_1_sycl(const void *vx, const void *vy,
                                            float *dst, const int ncols,
                                            const int nrows,
    -                                       dpct::queue_ptr stream) {
    +                                       queue_ptr stream) {
         GGML_ASSERT(ncols % QK_K == 0);
         const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y;
         const sycl::range<3> block_nums(1, 1, block_num_y);
    @@ -10614,7 +7222,7 @@ static void mul_mat_vec_q3_K_q8_1_sycl(const void *vx, const void *vy,
     static void mul_mat_vec_q4_K_q8_1_sycl(const void *vx, const void *vy,
                                            float *dst, const int ncols,
                                            const int nrows,
    -                                       dpct::queue_ptr stream) {
    +                                       queue_ptr stream) {
         GGML_ASSERT(ncols % QK_K == 0);
         const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y;
         const sycl::range<3> block_nums(1, 1, block_num_y);
    @@ -10638,7 +7246,7 @@ static void mul_mat_vec_q4_K_q8_1_sycl(const void *vx, const void *vy,
     static void mul_mat_vec_q5_K_q8_1_sycl(const void *vx, const void *vy,
                                            float *dst, const int ncols,
                                            const int nrows,
    -                                       dpct::queue_ptr stream) {
    +                                       queue_ptr stream) {
         GGML_ASSERT(ncols % QK_K == 0);
         const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y;
         const sycl::range<3> block_nums(1, 1, block_num_y);
    @@ -10662,7 +7270,7 @@ static void mul_mat_vec_q5_K_q8_1_sycl(const void *vx, const void *vy,
     static void mul_mat_vec_q6_K_q8_1_sycl(const void *vx, const void *vy,
                                            float *dst, const int ncols,
                                            const int nrows,
    -                                       dpct::queue_ptr stream) {
    +                                       queue_ptr stream) {
         GGML_ASSERT(ncols % QK_K == 0);
         const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y;
         const sycl::range<3> block_nums(1, 1, block_num_y);
    @@ -10687,7 +7295,7 @@ static void mul_mat_vec_q6_K_q8_1_sycl(const void *vx, const void *vy,
     static void mul_mat_vec_iq2_xxs_q8_1_sycl(const void *vx, const void *vy,
                                               float *dst, const int ncols,
                                               const int nrows,
    -                                          dpct::queue_ptr stream) {
    +                                          queue_ptr stream) {
         GGML_ASSERT(ncols % QK_K == 0);
         const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y;
         const sycl::range<3> block_nums(1, 1, block_num_y);
    @@ -10708,7 +7316,7 @@ static void mul_mat_vec_iq2_xxs_q8_1_sycl(const void *vx, const void *vy,
     static void mul_mat_vec_iq2_xs_q8_1_sycl(const void *vx, const void *vy,
                                              float *dst, const int ncols,
                                              const int nrows,
    -                                         dpct::queue_ptr stream) {
    +                                         queue_ptr stream) {
         GGML_ASSERT(ncols % QK_K == 0);
         const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y;
         const sycl::range<3> block_nums(1, 1, block_num_y);
    @@ -10733,7 +7341,7 @@ static void mul_mat_vec_iq2_xs_q8_1_sycl(const void *vx, const void *vy,
     static void mul_mat_vec_iq2_s_q8_1_sycl(const void *vx, const void *vy,
                                              float *dst, const int ncols,
                                              const int nrows,
    -                                         dpct::queue_ptr stream) {
    +                                         queue_ptr stream) {
         GGML_ASSERT(ncols % QK_K == 0);
         const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y;
         const sycl::range<3> block_nums(1, 1, block_num_y);
    @@ -10758,7 +7366,7 @@ static void mul_mat_vec_iq2_s_q8_1_sycl(const void *vx, const void *vy,
     static void mul_mat_vec_iq3_xxs_q8_1_sycl(const void *vx, const void *vy,
                                               float *dst, const int ncols,
                                               const int nrows,
    -                                          dpct::queue_ptr stream) {
    +                                          queue_ptr stream) {
         GGML_ASSERT(ncols % QK_K == 0);
         const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y;
         const sycl::range<3> block_nums(1, 1, block_num_y);
    @@ -10783,7 +7391,7 @@ static void mul_mat_vec_iq3_xxs_q8_1_sycl(const void *vx, const void *vy,
     static void mul_mat_vec_iq3_s_q8_1_sycl(const void *vx, const void *vy,
                                               float *dst, const int ncols,
                                               const int nrows,
    -                                          dpct::queue_ptr stream) {
    +                                          queue_ptr stream) {
         GGML_ASSERT(ncols % QK_K == 0);
         const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y;
         const sycl::range<3> block_nums(1, 1, block_num_y);
    @@ -10807,7 +7415,7 @@ static void mul_mat_vec_iq3_s_q8_1_sycl(const void *vx, const void *vy,
     static void mul_mat_vec_iq1_s_q8_1_sycl(const void *vx, const void *vy,
                                               float *dst, const int ncols,
                                               const int nrows,
    -                                          dpct::queue_ptr stream) {
    +                                          queue_ptr stream) {
         GGML_ASSERT(ncols % QK_K == 0);
         const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y;
         const sycl::range<3> block_nums(1, 1, block_num_y);
    @@ -10832,7 +7440,7 @@ static void mul_mat_vec_iq1_s_q8_1_sycl(const void *vx, const void *vy,
     static void mul_mat_vec_iq1_m_q8_1_sycl(const void *vx, const void *vy,
                                               float *dst, const int ncols,
                                               const int nrows,
    -                                          dpct::queue_ptr stream) {
    +                                          queue_ptr stream) {
         GGML_ASSERT(ncols % QK_K == 0);
         const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y;
         const sycl::range<3> block_nums(1, 1, block_num_y);
    @@ -10853,7 +7461,7 @@ static void mul_mat_vec_iq1_m_q8_1_sycl(const void *vx, const void *vy,
     static void mul_mat_vec_iq4_nl_q8_1_sycl(const void *vx, const void *vy,
                                               float *dst, const int ncols,
                                               const int nrows,
    -                                          dpct::queue_ptr stream) {
    +                                          queue_ptr stream) {
         GGML_ASSERT(ncols % QK4_NL == 0);
         const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y;
         const sycl::range<3> block_nums(1, 1, block_num_y);
    @@ -10875,7 +7483,7 @@ static void mul_mat_vec_iq4_nl_q8_1_sycl(const void *vx, const void *vy,
     static void mul_mat_vec_iq4_xs_q8_1_sycl(const void *vx, const void *vy,
                                               float *dst, const int ncols,
                                               const int nrows,
    -                                          dpct::queue_ptr stream) {
    +                                          queue_ptr stream) {
         GGML_ASSERT(ncols % QK_K == 0);
         const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y;
         const sycl::range<3> block_nums(1, 1, block_num_y);
    @@ -10898,12 +7506,12 @@ static void ggml_mul_mat_q4_0_q8_1_sycl(const void *vx, const void *vy,
                                             float *dst, const int ncols_x,
                                             const int nrows_x, const int ncols_y,
                                             const int nrows_y, const int nrows_dst,
    -                                        dpct::queue_ptr stream) try {
    +                                        queue_ptr stream) try {
     
         int id;
         SYCL_CHECK(
             CHECK_TRY_ERROR(id = get_current_device_id()));
    -    const int compute_capability = g_device_caps[id].cc;
    +    const int compute_capability = ggml_sycl_info().devices[id].cc;
     
         int mmq_x, mmq_y, nwarps;
         if (compute_capability >= VER_GEN13) {
    @@ -11013,12 +7621,12 @@ static void ggml_mul_mat_q4_1_q8_1_sycl(const void *vx, const void *vy,
                                             float *dst, const int ncols_x,
                                             const int nrows_x, const int ncols_y,
                                             const int nrows_y, const int nrows_dst,
    -                                        dpct::queue_ptr stream) try {
    +                                        queue_ptr stream) try {
     
         int id;
         SYCL_CHECK(
             CHECK_TRY_ERROR(id = get_current_device_id()));
    -    const int compute_capability = g_device_caps[id].cc;
    +    const int compute_capability = ggml_sycl_info().devices[id].cc;
     
         int mmq_x, mmq_y, nwarps;
         if (compute_capability >= VER_GEN13) {
    @@ -11128,12 +7736,12 @@ static void ggml_mul_mat_q5_0_q8_1_sycl(const void *vx, const void *vy,
                                             float *dst, const int ncols_x,
                                             const int nrows_x, const int ncols_y,
                                             const int nrows_y, const int nrows_dst,
    -                                        dpct::queue_ptr stream) try {
    +                                        queue_ptr stream) try {
     
         int id;
         SYCL_CHECK(
             CHECK_TRY_ERROR(id = get_current_device_id()));
    -    const int compute_capability = g_device_caps[id].cc;
    +    const int compute_capability = ggml_sycl_info().devices[id].cc;
     
         int mmq_x, mmq_y, nwarps;
         if (compute_capability >= VER_GEN13) {
    @@ -11243,12 +7851,12 @@ static void ggml_mul_mat_q5_1_q8_1_sycl(const void *vx, const void *vy,
                                             float *dst, const int ncols_x,
                                             const int nrows_x, const int ncols_y,
                                             const int nrows_y, const int nrows_dst,
    -                                        dpct::queue_ptr stream) try {
    +                                        queue_ptr stream) try {
     
         int id;
         SYCL_CHECK(
             CHECK_TRY_ERROR(id = get_current_device_id()));
    -    const int compute_capability = g_device_caps[id].cc;
    +    const int compute_capability = ggml_sycl_info().devices[id].cc;
     
         int mmq_x, mmq_y, nwarps;
         if (compute_capability >= VER_GEN13) {
    @@ -11358,12 +7966,12 @@ static void ggml_mul_mat_q8_0_q8_1_sycl(const void *vx, const void *vy,
                                             float *dst, const int ncols_x,
                                             const int nrows_x, const int ncols_y,
                                             const int nrows_y, const int nrows_dst,
    -                                        dpct::queue_ptr stream) try {
    +                                        queue_ptr stream) try {
     
         int id;
         SYCL_CHECK(
             CHECK_TRY_ERROR(id = get_current_device_id()));
    -    const int compute_capability = g_device_caps[id].cc;
    +    const int compute_capability = ggml_sycl_info().devices[id].cc;
     
         int mmq_x, mmq_y, nwarps;
         if (compute_capability >= VER_GEN13) {
    @@ -11473,12 +8081,12 @@ static void ggml_mul_mat_q2_K_q8_1_sycl(const void *vx, const void *vy,
                                             float *dst, const int ncols_x,
                                             const int nrows_x, const int ncols_y,
                                             const int nrows_y, const int nrows_dst,
    -                                        dpct::queue_ptr stream) try {
    +                                        queue_ptr stream) try {
     
         int id;
         SYCL_CHECK(
             CHECK_TRY_ERROR(id = get_current_device_id()));
    -    const int compute_capability = g_device_caps[id].cc;
    +    const int compute_capability = ggml_sycl_info().devices[id].cc;
     
         int mmq_x, mmq_y, nwarps;
         if (compute_capability >= VER_GEN13) {
    @@ -11594,12 +8202,12 @@ static void ggml_mul_mat_q3_K_q8_1_sycl(const void *vx, const void *vy,
                                             float *dst, const int ncols_x,
                                             const int nrows_x, const int ncols_y,
                                             const int nrows_y, const int nrows_dst,
    -                                        dpct::queue_ptr stream) try {
    +                                        queue_ptr stream) try {
     
         int id;
         SYCL_CHECK(
             CHECK_TRY_ERROR(id = get_current_device_id()));
    -    const int compute_capability = g_device_caps[id].cc;
    +    const int compute_capability = ggml_sycl_info().devices[id].cc;
     
         int mmq_x, mmq_y, nwarps;
         if (compute_capability >= VER_GEN13) {
    @@ -11721,12 +8329,12 @@ static void ggml_mul_mat_q4_K_q8_1_sycl(const void *vx, const void *vy,
                                             float *dst, const int ncols_x,
                                             const int nrows_x, const int ncols_y,
                                             const int nrows_y, const int nrows_dst,
    -                                        dpct::queue_ptr stream) try {
    +                                        queue_ptr stream) try {
     
         int id;
         SYCL_CHECK(
             CHECK_TRY_ERROR(id = get_current_device_id()));
    -    const int compute_capability = g_device_caps[id].cc;
    +    const int compute_capability = ggml_sycl_info().devices[id].cc;
     
         int mmq_x, mmq_y, nwarps;
         if (compute_capability >= VER_GEN13) {
    @@ -11842,12 +8450,12 @@ static void ggml_mul_mat_q5_K_q8_1_sycl(const void *vx, const void *vy,
                                             float *dst, const int ncols_x,
                                             const int nrows_x, const int ncols_y,
                                             const int nrows_y, const int nrows_dst,
    -                                        dpct::queue_ptr stream) try {
    +                                        queue_ptr stream) try {
     
         int id;
         SYCL_CHECK(
             CHECK_TRY_ERROR(id = get_current_device_id()));
    -    const int compute_capability = g_device_caps[id].cc;
    +    const int compute_capability = ggml_sycl_info().devices[id].cc;
     
         int mmq_x, mmq_y, nwarps;
         if (compute_capability >= VER_GEN13) {
    @@ -11963,12 +8571,12 @@ static void ggml_mul_mat_q6_K_q8_1_sycl(const void *vx, const void *vy,
                                             float *dst, const int ncols_x,
                                             const int nrows_x, const int ncols_y,
                                             const int nrows_y, const int nrows_dst,
    -                                        dpct::queue_ptr stream) try {
    +                                        queue_ptr stream) try {
     
         int id;
         SYCL_CHECK(
             CHECK_TRY_ERROR(id = get_current_device_id()));
    -    const int compute_capability = g_device_caps[id].cc;
    +    const int compute_capability = ggml_sycl_info().devices[id].cc;
     
         int mmq_x, mmq_y, nwarps;
         if (compute_capability >= VER_GEN13) {
    @@ -12085,7 +8693,7 @@ static void ggml_mul_mat_p021_f16_f32_sycl(const void *vx, const float *y,
                                                const int nrows_x,
                                                const int nchannels_x,
                                                const int nchannels_y,
    -                                           dpct::queue_ptr stream) {
    +                                           queue_ptr stream) {
     
         const sycl::range<3> block_nums(nchannels_y, nrows_x, 1);
         const sycl::range<3> block_dims(1, 1, WARP_SIZE);
    @@ -12105,7 +8713,7 @@ static void ggml_mul_mat_p021_f16_f32_sycl(const void *vx, const float *y,
     static void ggml_mul_mat_vec_nc_f16_f32_sycl(
         const void *vx, const float *y, float *dst, const int ncols_x,
         const int nrows_x, const int row_stride_x, const int nchannels_x,
    -    const int nchannels_y, const int channel_stride_x, dpct::queue_ptr stream) {
    +    const int nchannels_y, const int channel_stride_x, queue_ptr stream) {
     
         const sycl::range<3> block_nums(nchannels_y, nrows_x, 1);
         const sycl::range<3> block_dims(1, 1, WARP_SIZE);
    @@ -12129,7 +8737,7 @@ ggml_cpy_f16_f32_sycl(const char *cx, char *cdst, const int ne, const int ne00,
                           const int nb01, const int nb02, const int nb03,
                           const int ne10, const int ne11, const int ne12,
                           const int nb10, const int nb11, const int nb12,
    -                      const int nb13, dpct::queue_ptr stream) {
    +                      const int nb13, queue_ptr stream) {
     
         const int num_blocks = (ne + SYCL_CPY_BLOCK_SIZE - 1) / SYCL_CPY_BLOCK_SIZE;
         {
    @@ -12156,7 +8764,7 @@ static void ggml_cpy_f32_f32_sycl(const char *cx, char *cdst, const int ne,
                                       const int ne11, const int ne12,
                                       const int nb10, const int nb11,
                                       const int nb12, const int nb13,
    -                                  dpct::queue_ptr stream) {
    +                                  queue_ptr stream) {
     
         const int num_blocks = (ne + SYCL_CPY_BLOCK_SIZE - 1) / SYCL_CPY_BLOCK_SIZE;
         {
    @@ -12183,7 +8791,7 @@ static void ggml_cpy_f32_f16_sycl(const char *cx, char *cdst, const int ne,
                                       const int ne11, const int ne12,
                                       const int nb10, const int nb11,
                                       const int nb12, const int nb13,
    -                                  dpct::queue_ptr stream) {
    +                                  queue_ptr stream) {
     
         const int num_blocks = (ne + SYCL_CPY_BLOCK_SIZE - 1) / SYCL_CPY_BLOCK_SIZE;
         {
    @@ -12210,7 +8818,7 @@ static void ggml_cpy_f32_q8_0_sycl(const char *cx, char *cdst, const int ne,
                                        const int ne11, const int ne12,
                                        const int nb10, const int nb11,
                                        const int nb12, const int nb13,
    -                                   dpct::queue_ptr stream) {
    +                                   queue_ptr stream) {
     
         GGML_ASSERT(ne % QK8_0 == 0);
         const int num_blocks = ne / QK8_0;
    @@ -12232,7 +8840,7 @@ static void ggml_cpy_f32_q4_0_sycl(const char *cx, char *cdst, const int ne,
                                        const int ne11, const int ne12,
                                        const int nb10, const int nb11,
                                        const int nb12, const int nb13,
    -                                   dpct::queue_ptr stream) {
    +                                   queue_ptr stream) {
     
         GGML_ASSERT(ne % QK4_0 == 0);
         const int num_blocks = ne / QK4_0;
    @@ -12254,7 +8862,7 @@ static void ggml_cpy_f32_q4_1_sycl(const char *cx, char *cdst, const int ne,
                                        const int ne11, const int ne12,
                                        const int nb10, const int nb11,
                                        const int nb12, const int nb13,
    -                                   dpct::queue_ptr stream) {
    +                                   queue_ptr stream) {
     
         GGML_ASSERT(ne % QK4_1 == 0);
         const int num_blocks = ne / QK4_1;
    @@ -12276,7 +8884,7 @@ static void ggml_cpy_f16_f16_sycl(const char *cx, char *cdst, const int ne,
                                       const int ne11, const int ne12,
                                       const int nb10, const int nb11,
                                       const int nb12, const int nb13,
    -                                  dpct::queue_ptr stream) {
    +                                  queue_ptr stream) {
     
         const int num_blocks = (ne + SYCL_CPY_BLOCK_SIZE - 1) / SYCL_CPY_BLOCK_SIZE;
         {
    @@ -12303,7 +8911,7 @@ static void ggml_cpy_i16_i16_sycl(const char *cx, char *cdst, const int ne,
                                       const int ne11, const int ne12,
                                       const int nb10, const int nb11,
                                       const int nb12, const int nb13,
    -                                  dpct::queue_ptr stream) {
    +                                  queue_ptr stream) {
     
         const int num_blocks = (ne + SYCL_CPY_BLOCK_SIZE - 1) / SYCL_CPY_BLOCK_SIZE;
         {
    @@ -12330,7 +8938,7 @@ static void ggml_cpy_i32_i32_sycl(const char *cx, char *cdst, const int ne,
                                       const int ne11, const int ne12,
                                       const int nb10, const int nb11,
                                       const int nb12, const int nb13,
    -                                  dpct::queue_ptr stream) {
    +                                  queue_ptr stream) {
     
         const int num_blocks = (ne + SYCL_CPY_BLOCK_SIZE - 1) / SYCL_CPY_BLOCK_SIZE;
         {
    @@ -12350,7 +8958,7 @@ static void ggml_cpy_i32_i32_sycl(const char *cx, char *cdst, const int ne,
     }
     
     static void scale_f32_sycl(const float *x, float *dst, const float scale,
    -                           const int k, dpct::queue_ptr stream) {
    +                           const int k, queue_ptr stream) {
         const int num_blocks = (k + SYCL_SCALE_BLOCK_SIZE - 1) / SYCL_SCALE_BLOCK_SIZE;
         stream->parallel_for(
             sycl::nd_range<3>(sycl::range<3>(1, 1, num_blocks) *
    @@ -12363,7 +8971,7 @@ static void scale_f32_sycl(const float *x, float *dst, const float scale,
     
     static void clamp_f32_sycl(const float *x, float *dst, const float min,
                                const float max, const int k,
    -                           dpct::queue_ptr stream) {
    +                           queue_ptr stream) {
         const int num_blocks = (k + SYCL_CLAMP_BLOCK_SIZE - 1) / SYCL_CLAMP_BLOCK_SIZE;
         stream->parallel_for(
             sycl::nd_range<3>(sycl::range<3>(1, 1, num_blocks) *
    @@ -12378,7 +8986,7 @@ template 
     static void rope_sycl(const T *x, T *dst, int ncols, int nrows,
                           const int32_t *pos, float freq_scale, int p_delta_rows,
                           float freq_base, float ext_factor, float attn_factor,
    -                      rope_corr_dims corr_dims, dpct::queue_ptr stream) {
    +                      rope_corr_dims corr_dims, queue_ptr stream) {
         GGML_ASSERT(ncols % 2 == 0);
         const sycl::range<3> block_dims(1, SYCL_ROPE_BLOCK_SIZE, 1);
         const int num_blocks_x = (ncols + 2*SYCL_ROPE_BLOCK_SIZE - 1) / (2*SYCL_ROPE_BLOCK_SIZE);
    @@ -12423,7 +9031,7 @@ static void rope_neox_sycl(const T *x, T *dst, int ncols, int n_dims, int nrows,
                                const int32_t *pos, float freq_scale,
                                int p_delta_rows, float freq_base, float ext_factor,
                                float attn_factor, rope_corr_dims corr_dims,
    -                           const float * freq_factors, dpct::queue_ptr stream) {
    +                           const float * freq_factors, queue_ptr stream) {
         GGML_ASSERT(ncols % 2 == 0);
         const sycl::range<3> block_dims(1, SYCL_ROPE_BLOCK_SIZE, 1);
         const int num_blocks_x = (ncols + 2*SYCL_ROPE_BLOCK_SIZE - 1) / (2*SYCL_ROPE_BLOCK_SIZE);
    @@ -12479,7 +9087,7 @@ static void rope_neox_sycl(const T *x, T *dst, int ncols, int n_dims, int nrows,
     }
     
     static void sum_rows_f32_sycl(const float *x, float *dst, const int ncols,
    -                              const int nrows, dpct::queue_ptr stream) {
    +                              const int nrows, queue_ptr stream) {
         const sycl::range<3> block_dims(1, 1, WARP_SIZE);
         const sycl::range<3> block_nums(1, nrows, 1);
         stream->parallel_for(sycl::nd_range<3>(block_nums * block_dims, block_dims),
    @@ -12499,7 +9107,7 @@ static int next_power_of_2(int x) {
     
     static void argsort_f32_i32_sycl(const float *x, int *dst, const int ncols,
                                      const int nrows, ggml_sort_order order,
    -                                 dpct::queue_ptr stream) {
    +                                 queue_ptr stream) {
         // bitonic sort requires ncols to be power of 2
         const int ncols_pad = next_power_of_2(ncols);
     
    @@ -12507,8 +9115,6 @@ static void argsort_f32_i32_sycl(const float *x, int *dst, const int ncols,
         const sycl::range<3> block_nums(1, nrows, 1);
         const size_t shared_mem = ncols_pad * sizeof(int);
     
    -    // GGML_ASSERT(shared_mem <= ggml_cuda_info().devices[ggml_cuda_get_device()].smpb);
    -
         if (order == GGML_SORT_ORDER_ASC) {
             stream->submit([&](sycl::handler &cgh) {
                 sycl::local_accessor dpct_local_acc_ct1(
    @@ -12545,7 +9151,7 @@ static void argsort_f32_i32_sycl(const float *x, int *dst, const int ncols,
     static void diag_mask_inf_f32_sycl(const float *x, float *dst,
                                        const int ncols_x, const int nrows_x,
                                        const int rows_per_channel, const int n_past,
    -                                   dpct::queue_ptr stream) {
    +                                   queue_ptr stream) {
         const sycl::range<3> block_dims(1, SYCL_DIAG_MASK_INF_BLOCK_SIZE, 1);
         const int block_num_x = (ncols_x + SYCL_DIAG_MASK_INF_BLOCK_SIZE - 1) / SYCL_DIAG_MASK_INF_BLOCK_SIZE;
         const sycl::range<3> block_nums(1, block_num_x, nrows_x);
    @@ -12561,7 +9167,7 @@ template 
     static void soft_max_f32_submitter(const float * x, const float * mask, float * dst, const int ncols_par,
                                        const int nrows_y, const float scale, const float max_bias, const float m0,
                                        const float m1, uint32_t n_head_log2, sycl::range<3> block_nums, sycl::range<3> block_dims,
    -                                   const size_t n_local_scratch, dpct::queue_ptr stream) {
    +                                   const size_t n_local_scratch, queue_ptr stream) {
         stream->submit([&](sycl::handler &cgh) {
             sycl::local_accessor local_buf_acc(n_local_scratch, cgh);
     
    @@ -12579,9 +9185,9 @@ static void soft_max_f32_submitter(const float * x, const float * mask, float *
     static void soft_max_f32_sycl(const float * x, const float * mask,
                                   float * dst, const int ncols_x, const int nrows_x,
                                   const int nrows_y, const float scale, const float max_bias,
    -                              dpct::queue_ptr stream) {
    +                              queue_ptr stream) {
         int nth = WARP_SIZE;
    -    int max_block_size = g_work_group_size;
    +    int max_block_size = GROUP_SIZE;
         while (nth < ncols_x && nth < max_block_size) nth *= 2;
         if (nth>max_block_size) nth = max_block_size;
     
    @@ -12662,7 +9268,7 @@ static void im2col_sycl(const float *x, T *dst, int IW, int IH,
                                     int OW, int OH, int KW, int KH, int IC,
                                     int offset_delta, int s0, int s1, int p0,
                                     int p1, int d0, int d1,
    -                                dpct::queue_ptr stream) {
    +                                queue_ptr stream) {
         const int parallel_elements = OW * KW * KH;
         const int num_blocks = (parallel_elements + SYCL_IM2COL_BLOCK_SIZE - 1) / SYCL_IM2COL_BLOCK_SIZE;
         sycl::range<3> block_nums(IC, OH, num_blocks);
    @@ -12682,223 +9288,6 @@ static void im2col_sycl(const float *x, T *dst, int IW, int IH,
         }
     }
     
    -// buffer pool for sycl
    -#define MAX_SYCL_BUFFERS 256
    -
    -struct scoped_spin_lock {
    -    std::atomic_flag& lock;
    -    scoped_spin_lock(std::atomic_flag& lock) : lock(lock) {
    -        while (lock.test_and_set(std::memory_order_acquire)) {
    -            ; // spin
    -        }
    -    }
    -    ~scoped_spin_lock() {
    -        lock.clear(std::memory_order_release);
    -    }
    -    scoped_spin_lock(const scoped_spin_lock&) = delete;
    -    scoped_spin_lock& operator=(const scoped_spin_lock&) = delete;
    -};
    -
    -static std::atomic_flag g_sycl_pool_lock = ATOMIC_FLAG_INIT;
    -
    -// #define DEBUG_SYCL_MALLOC
    -struct sycl_buffer {
    -    void * ptr = nullptr;
    -    size_t size = 0;
    -};
    -
    -static sycl_buffer g_sycl_buffer_pool[GGML_SYCL_MAX_DEVICES][MAX_SYCL_BUFFERS];
    -static size_t g_sycl_pool_size[GGML_SYCL_MAX_DEVICES] = {0};
    -
    -static void *ggml_sycl_pool_malloc_leg(int device_index, size_t size, size_t *actual_size) try {
    -    scoped_spin_lock lock(g_sycl_pool_lock);
    -    // GGML_SYCL_DEBUG("ggml_sycl_pool_malloc_leg device_index %d size=%lu\n", device_index, size);
    -#ifdef DEBUG_SYCL_MALLOC
    -    int nnz = 0;
    -    size_t max_size = 0;
    -#endif
    -    size_t best_diff = 1ull << 36;
    -    int ibest = -1;
    -    for (int i = 0; i < MAX_SYCL_BUFFERS; ++i) {
    -        sycl_buffer& b = g_sycl_buffer_pool[device_index][i];
    -        if (b.ptr != nullptr) {
    -#ifdef DEBUG_SYCL_MALLOC
    -            ++nnz;
    -            if (b.size > max_size) max_size = b.size;
    -#endif
    -            if (b.size >= size) {
    -                size_t diff = b.size - size;
    -                if (diff < best_diff) {
    -                    best_diff = diff;
    -                    ibest = i;
    -                    if (!best_diff) {
    -                        void * ptr = b.ptr;
    -                        *actual_size = b.size;
    -                        b.ptr = nullptr;
    -                        b.size = 0;
    -                        // GGML_SYCL_DEBUG("ggml_sycl_pool_malloc_leg return 1 %p and rm in pool\n", ptr);
    -                        return ptr;
    -                    }
    -                }
    -            }
    -        }
    -    }
    -    if (ibest >= 0) {
    -        sycl_buffer& b = g_sycl_buffer_pool[device_index][ibest];
    -        void * ptr = b.ptr;
    -        *actual_size = b.size;
    -        b.ptr = nullptr;
    -        b.size = 0;
    -        // GGML_SYCL_DEBUG("ggml_sycl_pool_malloc_leg return 2 %p and rm in pool\n", ptr);
    -        return ptr;
    -    }
    -    void * ptr;
    -    size_t look_ahead_size = (size_t) (1.05 * size);
    -    look_ahead_size = 256 * ((look_ahead_size + 255)/256);
    -
    -    const dpct::queue_ptr stream = g_syclStreams[device_index][0];
    -    SYCL_CHECK(
    -        CHECK_TRY_ERROR(ptr = (void *)sycl::malloc_device(
    -                             look_ahead_size, *stream)));
    -    *actual_size = look_ahead_size;
    -    g_sycl_pool_size[device_index] += look_ahead_size;
    -
    -#ifdef DEBUG_SYCL_MALLOC
    -    fprintf(stderr, "%s[%d]: %d buffers, max_size = %u MB, pool_size = %u MB, requested %u MB\n", __func__, id, nnz,
    -            (uint32_t)(max_size/1024/1024), (uint32_t)(g_sycl_pool_size[id]/1024/1024), (uint32_t)(size/1024/1024));
    -#endif
    -    // GGML_SYCL_DEBUG("ggml_sycl_pool_malloc_leg look_ahead_size=%lu, return %p\n", look_ahead_size, ptr);
    -    return ptr;
    -}
    -catch (sycl::exception const &exc) {
    -  std::cerr << exc.what() << "Exception caught at file:" << __FILE__
    -            << ", line:" << __LINE__ << std::endl;
    -  std::exit(1);
    -}
    -
    -static void ggml_sycl_pool_free_leg(int device_index, void *ptr, size_t size) try {
    -    scoped_spin_lock lock(g_sycl_pool_lock);
    -    const dpct::queue_ptr stream = g_syclStreams[device_index][0];
    -    for (int i = 0; i < MAX_SYCL_BUFFERS; ++i) {
    -        sycl_buffer& b = g_sycl_buffer_pool[device_index][i];
    -        if (b.ptr == nullptr) {
    -            b.ptr = ptr;
    -            b.size = size;
    -            return;
    -        }
    -    }
    -    fprintf(stderr, "WARNING: sycl buffer pool full, increase MAX_SYCL_BUFFERS\n");
    -    SYCL_CHECK(CHECK_TRY_ERROR(sycl::free(ptr, *stream)));
    -    g_sycl_pool_size[device_index] -= size;
    -}
    -catch (sycl::exception const &exc) {
    -  std::cerr << exc.what() << "Exception caught at file:" << __FILE__
    -            << ", line:" << __LINE__ << std::endl;
    -  std::exit(1);
    -}
    -
    -// pool with virtual memory
    -/*
    -DPCT1082:64: Migration of CUmemGenericAllocationHandle type is not supported.
    -*/
    -// static std::vector
    -//     g_sycl_pool_handles[GGML_SYCL_MAX_DEVICES];
    -static dpct::device_ptr g_sycl_pool_addr[GGML_SYCL_MAX_DEVICES] = {0};
    -static size_t g_sycl_pool_used[GGML_SYCL_MAX_DEVICES] = {0};
    -
    -static void *ggml_sycl_pool_malloc_vmm(int device_index, size_t size, size_t *actual_size) try {
    -    GGML_UNUSED(device_index);
    -    GGML_UNUSED(size);
    -    GGML_UNUSED(actual_size);
    -    return NULL;
    -}
    -catch (sycl::exception const &exc) {
    -  std::cerr << exc.what() << "Exception caught at file:" << __FILE__
    -            << ", line:" << __LINE__ << std::endl;
    -  std::exit(1);
    -}
    -
    -static void ggml_sycl_pool_free_vmm(int device_index, void *ptr, size_t size) try {
    -    scoped_spin_lock lock(g_sycl_pool_lock);
    -#ifdef DEBUG_SYCL_MALLOC
    -    printf("sycl pool[%d]: freed %llu bytes at %llx\n", device_index, (unsigned long long) size, ptr);
    -#endif
    -
    -    g_sycl_pool_used[device_index] -= size;
    -
    -    // all deallocations must be in reverse order of the allocations
    -    GGML_ASSERT(ptr == (void *) (g_sycl_pool_addr[device_index] + g_sycl_pool_used[device_index]));
    -}
    -catch (sycl::exception const &exc) {
    -  std::cerr << exc.what() << "Exception caught at file:" << __FILE__
    -            << ", line:" << __LINE__ << std::endl;
    -  std::exit(1);
    -}
    -
    -static void *ggml_sycl_pool_malloc(int device_index, size_t size, size_t *actual_size) try {
    -    if (g_device_caps[device_index].vmm) {
    -        return ggml_sycl_pool_malloc_vmm(device_index, size, actual_size);
    -    } else {
    -        return ggml_sycl_pool_malloc_leg(device_index, size, actual_size);
    -    }
    -}
    -catch (sycl::exception const &exc) {
    -  std::cerr << exc.what() << "Exception caught at file:" << __FILE__
    -            << ", line:" << __LINE__ << std::endl;
    -  std::exit(1);
    -}
    -
    -static void ggml_sycl_pool_free(int device_index, void *ptr, size_t size) try {
    -    if (g_device_caps[device_index].vmm) {
    -        ggml_sycl_pool_free_vmm(device_index, ptr, size);
    -    } else {
    -        ggml_sycl_pool_free_leg(device_index, ptr, size);
    -    }
    -}
    -catch (sycl::exception const &exc) {
    -  std::cerr << exc.what() << "Exception caught at file:" << __FILE__
    -            << ", line:" << __LINE__ << std::endl;
    -  std::exit(1);
    -}
    -
    -
    -template
    -struct sycl_pool_alloc {
    -    int device_index = -1;
    -    int device_id = -1;
    -    T * ptr = nullptr;
    -    size_t actual_size = 0;
    -
    -    // size is in number of elements
    -    T * alloc(size_t size) {
    -        GGML_ASSERT(ptr == nullptr);
    -        device_id = get_current_device_id();
    -        device_index = g_sycl_gpu_mgr->get_index(device_id);
    -        ptr = (T *) ggml_sycl_pool_malloc(device_index, size * sizeof(T), &this->actual_size);
    -        // GGML_SYCL_DEBUG("sycl_pool_alloc %lu return %p actual size=%lu\n", size * sizeof(T), ptr, this->actual_size);
    -        return ptr;
    -    }
    -
    -    sycl_pool_alloc(size_t size) {
    -        alloc(size);
    -    }
    -
    -    ~sycl_pool_alloc() {
    -        if (ptr != nullptr) {
    -            ggml_sycl_pool_free(device_index, ptr, actual_size);
    -        }
    -    }
    -
    -    T * get() {
    -        return ptr;
    -    }
    -
    -    sycl_pool_alloc() = default;
    -    sycl_pool_alloc(const sycl_pool_alloc &) = delete;
    -    sycl_pool_alloc(sycl_pool_alloc &&) = delete;
    -    sycl_pool_alloc& operator=(const sycl_pool_alloc &) = delete;
    -    sycl_pool_alloc& operator=(sycl_pool_alloc &&) = delete;
    -};
     
     static bool g_sycl_loaded = false;
     
    @@ -12950,21 +9339,6 @@ void ggml_backend_sycl_print_sycl_devices() {
         }
     }
     
    -void print_gpu_device_list() {
    -    GGML_ASSERT(g_sycl_gpu_mgr);
    -
    -    char* hint=NULL;
    -    if (g_ggml_sycl_backend_gpu_mode == SYCL_SINGLE_GPU_MODE) {
    -        hint = "use %d SYCL GPUs: [%s] with Max compute units:%d\n";
    -    } else {
    -        hint = "detect %d SYCL GPUs: [%s] with top Max compute units:%d\n";
    -    }
    -    fprintf(stderr, hint,
    -        g_sycl_gpu_mgr->get_gpu_count(),
    -        g_sycl_gpu_mgr->gpus_list.c_str(),
    -        g_sycl_gpu_mgr->max_compute_units);
    -}
    -
     int get_sycl_env(const char *env_name, int default_val) {
         char *user_device_string = getenv(env_name);
         int user_number = default_val;
    @@ -12986,11 +9360,11 @@ int get_work_group_size(int user_device_id) {
         return prop.get_max_work_group_size();
     }
     
    -static void ggml_init_sycl() try {
    +static void ggml_check_sycl() try {
         static bool initialized = false;
     
         if (!initialized) {
    -        fprintf(stderr, "[SYCL] call ggml_init_sycl\n");
    +        fprintf(stderr, "[SYCL] call ggml_check_sycl\n");
             g_ggml_sycl_debug = get_sycl_env("GGML_SYCL_DEBUG", 0);
     
             fprintf(stderr, "%s: GGML_SYCL_DEBUG: %d\n", __func__, g_ggml_sycl_debug);
    @@ -13027,109 +9401,189 @@ catch (sycl::exception const &exc) {
       std::exit(1);
     }
     
    -void ggml_init_by_gpus(int device_count) try {
    -    g_device_count = device_count;
    -    g_work_group_size = g_sycl_gpu_mgr->work_group_size;
    -
    -    int64_t total_vram = 0;
    -
    -    print_gpu_device_list();
    +static ggml_sycl_device_info ggml_sycl_init() {
    +    ggml_sycl_device_info info = {};
     
    -    for (int id = 0; id < GGML_SYCL_MAX_DEVICES; ++id) {
    -        g_device_caps[id].vmm = 0;
    -        g_device_caps[id].device_id = -1;
    -        g_device_caps[id].cc = 0;
    -        g_tensor_split[id] = 0;
    -        g_default_tensor_split[id] = 0;
    +    info.device_count = dpct::dev_mgr::instance().device_count();
    +    if (info.device_count == 0) {
    +        fprintf(stderr, "%s: failed to initialize " GGML_SYCL_NAME ": %s\n", __func__);
    +        return info;
         }
     
    -    for (int i = 0; i < g_device_count; ++i) {
    -        int device_id = g_sycl_gpu_mgr->gpus[i];
    -        g_device_caps[i].vmm = 0;
    +    GGML_ASSERT(info.device_count <= GGML_SYCL_MAX_DEVICES);
    +
    +    int64_t total_vram = 0;
    +#if defined(GGML_SYCL_FORCE_MMQ)
    +    fprintf(stderr, "%s: GGML_SYCL_FORCE_MMQ:   yes\n", __func__);
    +#else
    +    fprintf(stderr, "%s: GGML_SYCL_FORCE_MMQ:   no\n", __func__);
    +#endif
    +#if defined(SYCL_USE_XMX)
    +    fprintf(stderr, "%s: SYCL_USE_XMX: yes\n", __func__);
    +#else
    +    fprintf(stderr, "%s: SYCL_USE_XMX: no\n", __func__);
    +#endif
    +    fprintf(stderr, "%s: found %d " GGML_SYCL_NAME " devices:\n", __func__, info.device_count);
     
    +    for (int i = 0; i < info.device_count; ++i) {
    +        info.devices[i].vmm = 0;
             dpct::device_info prop;
             SYCL_CHECK(CHECK_TRY_ERROR(dpct::get_device_info(
    -            prop, dpct::dev_mgr::instance().get_device(device_id))));
    +            prop, dpct::dev_mgr::instance().get_device(i))));
     
    -        g_default_tensor_split[i] = total_vram;
    +        info.default_tensor_split[i] = total_vram;
             total_vram += prop.get_global_mem_size();
     
    -        g_device_caps[i].cc =
    +        info.devices[i].cc =
                 100 * prop.get_major_version() + 10 * prop.get_minor_version();
         }
     
    -    for (int i = 0; i < g_device_count; ++i) {
    -        g_default_tensor_split[i] /= total_vram;
    +    for (int id = 0; id < info.device_count; ++id) {
    +        info.default_tensor_split[id] /= total_vram;
         }
    +    return info;
    +}
     
    -    for (int i = 0; i < g_device_count; ++i) {
    -        SYCL_CHECK(ggml_sycl_set_device(i));
    -
    -        // create sycl streams
    -        for (int is = 0; is < MAX_STREAMS; ++is) {
    -            SYCL_CHECK(CHECK_TRY_ERROR(
    -                g_syclStreams[i][is] =
    -                    dpct::get_current_device().create_queue(
    -                        g_sycl_gpu_mgr->get_co_ctx(), dpct::get_current_device())));
    -        }
    -
    -        const dpct::queue_ptr stream = g_syclStreams[i][0];
    -        // create sycl handle
    -        SYCL_CHECK(CHECK_TRY_ERROR(g_sycl_handles[i] = stream));
    -    }
    +const ggml_sycl_device_info & ggml_sycl_info() {
    +    static ggml_sycl_device_info info = ggml_sycl_init();
    +    return info;
     }
    -catch (sycl::exception const &exc) {
    -  std::cerr << exc.what() << "Exception caught at file:" << __FILE__
    -            << ", line:" << __LINE__ << std::endl;
    -  std::exit(1);
    +
    +/*
    +device_index: device index from 0 to n (continue numbers).
    +    It is used for device select/set in SYCL backend internal data structure.
    +*/
    +inline void check_allow_gpu_index(const int device_index) {
    +  if (device_index >= ggml_sycl_info().device_count) {
    +    char error_buf[256];
    +    snprintf(
    +        error_buf,
    +        sizeof(error_buf),
    +        "%s error: device_index:%d is out of range: [0-%d]",
    +        __func__,
    +        device_index,
    +        ggml_sycl_info().device_count - 1);
    +    fprintf(stderr, "%s\n", error_buf);
    +    assert(false);
    +  }
     }
     
    -void *ggml_sycl_host_malloc(size_t size) try {
    -    if (getenv("GGML_SYCL_NO_PINNED") != nullptr) {
    -        return nullptr;
    +// buffer pool for sycl (legacy)
    +struct ggml_sycl_pool_leg : public ggml_sycl_pool {
    +    static const int MAX_SYCL_BUFFERS = 256;
    +
    +    int device;
    +    queue_ptr qptr;
    +    struct ggml_sycl_buffer {
    +        void * ptr = nullptr;
    +        size_t size = 0;
    +    };
    +
    +    ggml_sycl_buffer buffer_pool[MAX_SYCL_BUFFERS] = {};
    +    size_t pool_size = 0;
    +
    +    explicit ggml_sycl_pool_leg(queue_ptr qptr_, int device_) :
    +        qptr(qptr_),
    +        device(device_) {
         }
     
    -    ggml_sycl_set_device(g_main_device);
    -    dpct::queue_ptr main_stream = g_syclStreams[g_main_device][0];
    +    ~ggml_sycl_pool_leg() {
    +        for (int i = 0; i < MAX_SYCL_BUFFERS; ++i) {
    +            ggml_sycl_buffer & b = buffer_pool[i];
    +            if (b.ptr != nullptr) {
    +                SYCL_CHECK(CHECK_TRY_ERROR(sycl::free(b.ptr, *qptr)));
    +                pool_size -= b.size;
    +            }
    +        }
    +        GGML_ASSERT(pool_size == 0);
    +    }
     
    -    void * ptr = nullptr;
    -    dpct::err0 err = CHECK_TRY_ERROR(
    -        ptr = (void *)sycl::malloc_host(size, *main_stream));
    +    void * alloc(size_t size, size_t * actual_size) override {
    +#ifdef DEBUG_sycl_MALLOC
    +        int nnz = 0;
    +        size_t max_size = 0;
    +#endif
    +        size_t best_diff = 1ull << 36;
    +        int ibest = -1;
    +        for (int i = 0; i < MAX_SYCL_BUFFERS; ++i) {
    +            ggml_sycl_buffer& b = buffer_pool[i];
    +            if (b.ptr != nullptr) {
    +#ifdef DEBUG_sycl_MALLOC
    +                ++nnz;
    +                if (b.size > max_size) max_size = b.size;
    +#endif
    +                if (b.size >= size) {
    +                    size_t diff = b.size - size;
    +                    if (diff < best_diff) {
    +                        best_diff = diff;
    +                        ibest = i;
    +                        if (!best_diff) {
    +                            void * ptr = b.ptr;
    +                            *actual_size = b.size;
    +                            b.ptr = nullptr;
    +                            b.size = 0;
    +                            return ptr;
    +                        }
    +                    }
    +                }
    +            }
    +        }
    +        if (ibest >= 0) {
    +            ggml_sycl_buffer& b = buffer_pool[ibest];
    +            void * ptr = b.ptr;
    +            *actual_size = b.size;
    +            b.ptr = nullptr;
    +            b.size = 0;
    +            return ptr;
    +        }
    +        void * ptr;
    +        size_t look_ahead_size = (size_t) (1.05 * size);
    +
    +        SYCL_CHECK(
    +            CHECK_TRY_ERROR(ptr = (void *)sycl::malloc_device(
    +                                look_ahead_size, *qptr)));
    +        *actual_size = look_ahead_size;
    +        pool_size += look_ahead_size;
    +
    +    #ifdef DEBUG_SYCL_MALLOC
    +        fprintf(stderr, "%s[%d]: %d buffers, max_size = %u MB, pool_size = %u MB, requested %u MB\n", __func__, id, nnz,
    +                (uint32_t)(max_size/1024/1024), (uint32_t)(g_sycl_pool_size[id]/1024/1024), (uint32_t)(size/1024/1024));
    +    #endif
    +        // GGML_SYCL_DEBUG("ggml_sycl_pool_malloc_leg look_ahead_size=%lu, return %p\n", look_ahead_size, ptr);
    +        return ptr;
    +    }
     
    -    if (err != 0) {
    -        // clear the error
    -        fprintf(
    -            stderr,
    -            "WARNING: failed to allocate %.2f MB of pinned memory: %s\n",
    -            size / 1024.0 / 1024.0,
    -            "syclGetErrorString is not supported");
    -        return nullptr;
    +    void free(void * ptr, size_t size) override {
    +        for (int i = 0; i < MAX_SYCL_BUFFERS; ++i) {
    +            ggml_sycl_buffer& b = buffer_pool[i];
    +            if (b.ptr == nullptr) {
    +                b.ptr = ptr;
    +                b.size = size;
    +                return;
    +            }
    +        }
    +        fprintf(stderr, "WARNING: sycl buffer pool full, increase MAX_sycl_BUFFERS\n");
    +        SYCL_CHECK(CHECK_TRY_ERROR(sycl::free(ptr, *qptr)));
    +        pool_size -= size;
         }
    +};
     
    -    return ptr;
    -}
    -catch (sycl::exception const &exc) {
    -  std::cerr << exc.what() << "Exception caught at file:" << __FILE__
    -            << ", line:" << __LINE__ << std::endl;
    -  std::exit(1);
    +std::unique_ptr ggml_backend_sycl_context::new_pool_for_device(queue_ptr qptr, int device) {
    +    // TBD: NO VMM support
    +    // if (ggml_sycl_info().devices[device].vmm) {
    +    //     return std::unique_ptr(new ggml_sycl_pool_vmm(device));
    +    // }
    +   return std::unique_ptr(new ggml_sycl_pool_leg(qptr, device));
     }
     
    -void ggml_sycl_host_free(void *ptr) try {
    -    ggml_sycl_set_device(g_main_device);
    -    dpct::queue_ptr main_stream = g_syclStreams[g_main_device][0];
    -    SYCL_CHECK(CHECK_TRY_ERROR(sycl::free(ptr, *main_stream)));
    -}
    -catch (sycl::exception const &exc) {
    -  std::cerr << exc.what() << "Exception caught at file:" << __FILE__
    -            << ", line:" << __LINE__ << std::endl;
    -  std::exit(1);
    -}
    +// TBD pool with virtual memory management
    +// struct ggml_sycl_pool_vmm : public ggml_sycl_pool
     
     static dpct::err0 ggml_sycl_cpy_tensor_2d(void *dst,
                                               const struct ggml_tensor *src,
                                               int64_t i3, int64_t i2,
                                               int64_t i1_low, int64_t i1_high,
    -                                          dpct::queue_ptr stream) try {
    +                                          queue_ptr stream) try {
     
         dpct::memcpy_direction kind;
         char * src_ptr;
    @@ -13195,10 +9649,10 @@ catch (sycl::exception const &exc) {
       std::exit(1);
     }
     
    -static void ggml_sycl_op_get_rows(const ggml_tensor *src0,
    +static void ggml_sycl_op_get_rows(ggml_backend_sycl_context & ctx, const ggml_tensor *src0,
                                       const ggml_tensor *src1, ggml_tensor *dst,
                                       const float *src0_d, const float *src1_d,
    -                                  float *dst_d, const dpct::queue_ptr &stream) {
    +                                  float *dst_d, const queue_ptr &stream) {
     
         GGML_ASSERT(src1->type == GGML_TYPE_I32);
         GGML_ASSERT(dst->type == GGML_TYPE_F32);
    @@ -13211,26 +9665,26 @@ static void ggml_sycl_op_get_rows(const ggml_tensor *src0,
     
         switch (src0->type) {
             case GGML_TYPE_F16:
    -            get_rows_sycl_float(src0, src1, dst, (const sycl::half *)src0_d,
    +            get_rows_sycl_float(ctx, src0, src1, dst, (const sycl::half *)src0_d,
                                     src1_i32, dst_d, stream);
                 break;
             case GGML_TYPE_F32:
    -            get_rows_sycl_float(src0, src1, dst, src0_d, src1_i32, dst_d, stream);
    +            get_rows_sycl_float(ctx, src0, src1, dst, src0_d, src1_i32, dst_d, stream);
                 break;
             case GGML_TYPE_Q4_0:
    -            get_rows_sycl(src0, src1, dst, src0_d, src1_i32, dst_d, stream);
    +            get_rows_sycl(ctx, src0, src1, dst, src0_d, src1_i32, dst_d, stream);
                 break;
             case GGML_TYPE_Q4_1:
    -            get_rows_sycl(src0, src1, dst, src0_d, src1_i32, dst_d, stream);
    +            get_rows_sycl(ctx, src0, src1, dst, src0_d, src1_i32, dst_d, stream);
                 break;
             case GGML_TYPE_Q5_0:
    -            get_rows_sycl(src0, src1, dst, src0_d, src1_i32, dst_d, stream);
    +            get_rows_sycl(ctx, src0, src1, dst, src0_d, src1_i32, dst_d, stream);
                 break;
             case GGML_TYPE_Q5_1:
    -            get_rows_sycl(src0, src1, dst, src0_d, src1_i32, dst_d, stream);
    +            get_rows_sycl(ctx, src0, src1, dst, src0_d, src1_i32, dst_d, stream);
                 break;
             case GGML_TYPE_Q8_0:
    -            get_rows_sycl(src0, src1, dst, src0_d, src1_i32, dst_d, stream);
    +            get_rows_sycl(ctx, src0, src1, dst, src0_d, src1_i32, dst_d, stream);
                 break;
             default:
                 // TODO: k-quants
    @@ -13241,25 +9695,25 @@ static void ggml_sycl_op_get_rows(const ggml_tensor *src0,
     }
     
     template 
    -inline void ggml_sycl_op_bin_bcast(const ggml_tensor *src0,
    +inline void ggml_sycl_op_bin_bcast(ggml_backend_sycl_context & ctx, const ggml_tensor *src0,
                                        const ggml_tensor *src1, ggml_tensor *dst,
                                        const float *src0_dd, const float *src1_dd,
                                        float *dst_dd,
    -                                   const dpct::queue_ptr &main_stream) {
    +                                   const queue_ptr &main_stream) {
     
         if (src0->type == GGML_TYPE_F32 && dst->type == GGML_TYPE_F32) {
    -        op()(src0, src1, dst, src0_dd, src1_dd, dst_dd, main_stream);
    +        op()(ctx, src0, src1, dst, src0_dd, src1_dd, dst_dd, main_stream);
         } else if (src0->type == GGML_TYPE_F16 && dst->type == GGML_TYPE_F16) {
    -        op()(src0, src1, dst, (const sycl::half *)src0_dd, src1_dd,
    +        op()(ctx, src0, src1, dst, (const sycl::half *)src0_dd, src1_dd,
                  (sycl::half *)dst_dd, main_stream);
         } else if (src0->type == GGML_TYPE_F16 && dst->type == GGML_TYPE_F32) {
    -        op()(src0, src1, dst, (const sycl::half *)src0_dd, src1_dd, dst_dd,
    +        op()(ctx, src0, src1, dst, (const sycl::half *)src0_dd, src1_dd, dst_dd,
                  main_stream);
         } else if (src0->type == GGML_TYPE_I32 && dst->type == GGML_TYPE_I32) {
    -        op()(src0, src1, dst, (const int32_t *)src0_dd, (const int32_t *)src1_dd, (int32_t *)dst_dd,
    +        op()(ctx, src0, src1, dst, (const int32_t *)src0_dd, (const int32_t *)src1_dd, (int32_t *)dst_dd,
                  main_stream);
         } else if (src0->type == GGML_TYPE_I16 && dst->type == GGML_TYPE_I16) {
    -        op()(src0, src1, dst, (const int16_t *)src0_dd, (const int16_t *)src1_dd, (int16_t *)dst_dd,
    +        op()(ctx, src0, src1, dst, (const int16_t *)src0_dd, (const int16_t *)src1_dd, (int16_t *)dst_dd,
                  main_stream);
         } else {
             fprintf(stderr, "%s: unsupported types: dst: %s, src0: %s, src1: %s\n", __func__,
    @@ -13268,30 +9722,30 @@ inline void ggml_sycl_op_bin_bcast(const ggml_tensor *src0,
         }
     }
     
    -static void ggml_sycl_op_repeat(const ggml_tensor *src0,
    +static void ggml_sycl_op_repeat(ggml_backend_sycl_context & ctx, const ggml_tensor *src0,
                                     const ggml_tensor *src1, ggml_tensor *dst,
                                     const float *src0_d, const float *src1_d,
                                     float *dst_d,
    -                                const dpct::queue_ptr &main_stream) {
    +                                const queue_ptr &main_stream) {
     
    -    ggml_sycl_op_bin_bcast>(dst, src0, dst, nullptr, src0_d, dst_d, main_stream);
    +    ggml_sycl_op_bin_bcast>(ctx, dst, src0, dst, nullptr, src0_d, dst_d, main_stream);
     
         (void) src1;
         (void) src1_d;
     }
     
    -inline void ggml_sycl_op_add(const ggml_tensor *src0, const ggml_tensor *src1,
    +inline void ggml_sycl_op_add(ggml_backend_sycl_context & ctx, const ggml_tensor *src0, const ggml_tensor *src1,
                                  ggml_tensor *dst, const float *src0_dd,
                                  const float *src1_dd, float *dst_dd,
    -                             const dpct::queue_ptr &main_stream) {
    +                             const queue_ptr &main_stream) {
     
    -    ggml_sycl_op_bin_bcast>(src0, src1, dst, src0_dd, src1_dd, dst_dd, main_stream);
    +    ggml_sycl_op_bin_bcast>(ctx, src0, src1, dst, src0_dd, src1_dd, dst_dd, main_stream);
     }
     
    -inline void ggml_sycl_op_acc(const ggml_tensor *src0, const ggml_tensor *src1,
    +inline void ggml_sycl_op_acc(ggml_backend_sycl_context & ctx, const ggml_tensor *src0, const ggml_tensor *src1,
                                  ggml_tensor *dst, const float *src0_dd,
                                  const float *src1_dd, float *dst_dd,
    -                             const dpct::queue_ptr &main_stream) {
    +                             const queue_ptr &main_stream) {
     
         GGML_ASSERT(src0->type == GGML_TYPE_F32);
         GGML_ASSERT(src1->type == GGML_TYPE_F32);
    @@ -13308,26 +9762,26 @@ inline void ggml_sycl_op_acc(const ggml_tensor *src0, const ggml_tensor *src1,
         (void) dst;
     }
     
    -inline void ggml_sycl_op_mul(const ggml_tensor *src0, const ggml_tensor *src1,
    +inline void ggml_sycl_op_mul(ggml_backend_sycl_context & ctx, const ggml_tensor *src0, const ggml_tensor *src1,
                                  ggml_tensor *dst, const float *src0_dd,
                                  const float *src1_dd, float *dst_dd,
    -                             const dpct::queue_ptr &main_stream) {
    +                             const queue_ptr &main_stream) {
     
    -    ggml_sycl_op_bin_bcast>(src0, src1, dst, src0_dd, src1_dd, dst_dd, main_stream);
    +    ggml_sycl_op_bin_bcast>(ctx, src0, src1, dst, src0_dd, src1_dd, dst_dd, main_stream);
     }
     
    -inline void ggml_sycl_op_div(const ggml_tensor *src0, const ggml_tensor *src1,
    +inline void ggml_sycl_op_div(ggml_backend_sycl_context & ctx, const ggml_tensor *src0, const ggml_tensor *src1,
                                  ggml_tensor *dst, const float *src0_dd,
                                  const float *src1_dd, float *dst_dd,
    -                             const dpct::queue_ptr &main_stream) {
    +                             const queue_ptr &main_stream) {
     
    -    ggml_sycl_op_bin_bcast>(src0, src1, dst, src0_dd, src1_dd, dst_dd, main_stream);
    +    ggml_sycl_op_bin_bcast>(ctx, src0, src1, dst, src0_dd, src1_dd, dst_dd, main_stream);
     }
     
    -inline void ggml_sycl_op_gelu(const ggml_tensor *src0, const ggml_tensor *src1,
    +inline void ggml_sycl_op_gelu(ggml_backend_sycl_context & ctx, const ggml_tensor *src0, const ggml_tensor *src1,
                                   ggml_tensor *dst, const float *src0_dd,
                                   const float *src1_dd, float *dst_dd,
    -                              const dpct::queue_ptr &main_stream) {
    +                              const queue_ptr &main_stream) {
     
         GGML_ASSERT(src0->type == GGML_TYPE_F32);
         GGML_ASSERT( dst->type == GGML_TYPE_F32);
    @@ -13339,10 +9793,10 @@ inline void ggml_sycl_op_gelu(const ggml_tensor *src0, const ggml_tensor *src1,
         (void) src1_dd;
     }
     
    -inline void ggml_sycl_op_silu(const ggml_tensor *src0, const ggml_tensor *src1,
    +inline void ggml_sycl_op_silu(ggml_backend_sycl_context & ctx, const ggml_tensor *src0, const ggml_tensor *src1,
                                   ggml_tensor *dst, const float *src0_dd,
                                   const float *src1_dd, float *dst_dd,
    -                              const dpct::queue_ptr &main_stream) {
    +                              const queue_ptr &main_stream) {
     
         GGML_ASSERT(src0->type == GGML_TYPE_F32);
         GGML_ASSERT( dst->type == GGML_TYPE_F32);
    @@ -13354,11 +9808,11 @@ inline void ggml_sycl_op_silu(const ggml_tensor *src0, const ggml_tensor *src1,
         (void) src1_dd;
     }
     
    -inline void ggml_sycl_op_gelu_quick(const ggml_tensor *src0,
    +inline void ggml_sycl_op_gelu_quick(ggml_backend_sycl_context & ctx, const ggml_tensor *src0,
                                         const ggml_tensor *src1, ggml_tensor *dst,
                                         const float *src0_dd, const float *src1_dd,
                                         float *dst_dd,
    -                                    const dpct::queue_ptr &main_stream) {
    +                                    const queue_ptr &main_stream) {
     
         GGML_ASSERT(src0->type == GGML_TYPE_F32);
         GGML_ASSERT( dst->type == GGML_TYPE_F32);
    @@ -13370,10 +9824,10 @@ inline void ggml_sycl_op_gelu_quick(const ggml_tensor *src0,
         (void) src1_dd;
     }
     
    -inline void ggml_sycl_op_tanh(const ggml_tensor *src0, const ggml_tensor *src1,
    +inline void ggml_sycl_op_tanh(ggml_backend_sycl_context & ctx, const ggml_tensor *src0, const ggml_tensor *src1,
                                   ggml_tensor *dst, const float *src0_dd,
                                   const float *src1_dd, float *dst_dd,
    -                              const dpct::queue_ptr &main_stream) {
    +                              const queue_ptr &main_stream) {
     
         GGML_ASSERT(src0->type == GGML_TYPE_F32);
         GGML_ASSERT( dst->type == GGML_TYPE_F32);
    @@ -13384,10 +9838,10 @@ inline void ggml_sycl_op_tanh(const ggml_tensor *src0, const ggml_tensor *src1,
         (void) src1_dd;
     }
     
    -inline void ggml_sycl_op_relu(const ggml_tensor *src0, const ggml_tensor *src1,
    +inline void ggml_sycl_op_relu(ggml_backend_sycl_context & ctx, const ggml_tensor *src0, const ggml_tensor *src1,
                                   ggml_tensor *dst, const float *src0_dd,
                                   const float *src1_dd, float *dst_dd,
    -                              const dpct::queue_ptr &main_stream) {
    +                              const queue_ptr &main_stream) {
     
         GGML_ASSERT(src0->type == GGML_TYPE_F32);
         GGML_ASSERT( dst->type == GGML_TYPE_F32);
    @@ -13399,11 +9853,11 @@ inline void ggml_sycl_op_relu(const ggml_tensor *src0, const ggml_tensor *src1,
         (void) src1_dd;
     }
     
    -static void ggml_sycl_op_hardsigmoid(const ggml_tensor *src0,
    +static void ggml_sycl_op_hardsigmoid(ggml_backend_sycl_context & ctx, const ggml_tensor *src0,
                                          const ggml_tensor *src1, ggml_tensor *dst,
                                          const float *src0_dd, const float *src1_dd,
                                          float *dst_dd,
    -                                     const dpct::queue_ptr &main_stream) {
    +                                     const queue_ptr &main_stream) {
     
         GGML_ASSERT(src0->type == GGML_TYPE_F32);
         GGML_ASSERT( dst->type == GGML_TYPE_F32);
    @@ -13415,10 +9869,10 @@ static void ggml_sycl_op_hardsigmoid(const ggml_tensor *src0,
         (void) src1_dd;
     }
     
    -static void ggml_sycl_op_hardswish(const ggml_tensor *src0,
    +static void ggml_sycl_op_hardswish(ggml_backend_sycl_context & ctx, const ggml_tensor *src0,
                                        const ggml_tensor *src1, ggml_tensor *dst,
                                        const float *src0_dd, const float *src1_dd,
    -                                   float *dst_dd, const dpct::queue_ptr &main_stream) {
    +                                   float *dst_dd, const queue_ptr &main_stream) {
     
         GGML_ASSERT(src0->type == GGML_TYPE_F32);
         GGML_ASSERT( dst->type == GGML_TYPE_F32);
    @@ -13430,11 +9884,11 @@ static void ggml_sycl_op_hardswish(const ggml_tensor *src0,
         (void) src1_dd;
     }
     
    -inline void ggml_sycl_op_leaky_relu(const ggml_tensor *src0,
    +inline void ggml_sycl_op_leaky_relu(ggml_backend_sycl_context & ctx, const ggml_tensor *src0,
                                         const ggml_tensor *src1, ggml_tensor *dst,
                                         const float *src0_dd, const float *src1_dd,
                                         float *dst_dd,
    -                                    const dpct::queue_ptr &main_stream) {
    +                                    const queue_ptr &main_stream) {
     
         GGML_ASSERT(src0->type == GGML_TYPE_F32);
         GGML_ASSERT( dst->type == GGML_TYPE_F32);
    @@ -13449,10 +9903,10 @@ inline void ggml_sycl_op_leaky_relu(const ggml_tensor *src0,
         (void) src1_dd;
     }
     
    -inline void ggml_sycl_op_sqr(const ggml_tensor *src0, const ggml_tensor *src1,
    +inline void ggml_sycl_op_sqr(ggml_backend_sycl_context & ctx, const ggml_tensor *src0, const ggml_tensor *src1,
                                  ggml_tensor *dst, const float *src0_dd,
                                  const float *src1_dd, float *dst_dd,
    -                             const dpct::queue_ptr &main_stream) {
    +                             const queue_ptr &main_stream) {
     
         GGML_ASSERT(src0->type == GGML_TYPE_F32);
         GGML_ASSERT( dst->type == GGML_TYPE_F32);
    @@ -13464,10 +9918,10 @@ inline void ggml_sycl_op_sqr(const ggml_tensor *src0, const ggml_tensor *src1,
         (void) src1_dd;
     }
     
    -inline void ggml_sycl_op_norm(const ggml_tensor *src0, const ggml_tensor *src1,
    +inline void ggml_sycl_op_norm(ggml_backend_sycl_context & ctx, const ggml_tensor *src0, const ggml_tensor *src1,
                                   ggml_tensor *dst, const float *src0_dd,
                                   const float *src1_dd, float *dst_dd,
    -                              const dpct::queue_ptr &main_stream) {
    +                              const queue_ptr &main_stream) {
     
         GGML_ASSERT(src0->type == GGML_TYPE_F32);
         GGML_ASSERT( dst->type == GGML_TYPE_F32);
    @@ -13485,11 +9939,11 @@ inline void ggml_sycl_op_norm(const ggml_tensor *src0, const ggml_tensor *src1,
         (void) src1_dd;
     }
     
    -inline void ggml_sycl_op_group_norm(const ggml_tensor *src0,
    +inline void ggml_sycl_op_group_norm(ggml_backend_sycl_context & ctx, const ggml_tensor *src0,
                                         const ggml_tensor *src1, ggml_tensor *dst,
                                         const float *src0_dd, const float *src1_dd,
                                         float *dst_dd,
    -                                    const dpct::queue_ptr &main_stream) {
    +                                    const queue_ptr &main_stream) {
     
         GGML_ASSERT(src0->type == GGML_TYPE_F32);
         GGML_ASSERT( dst->type == GGML_TYPE_F32);
    @@ -13503,11 +9957,11 @@ inline void ggml_sycl_op_group_norm(const ggml_tensor *src0,
         (void) src1_dd;
     }
     
    -inline void ggml_sycl_op_concat(const ggml_tensor *src0,
    +inline void ggml_sycl_op_concat(ggml_backend_sycl_context & ctx, const ggml_tensor *src0,
                                     const ggml_tensor *src1, ggml_tensor *dst,
                                     const float *src0_dd, const float *src1_dd,
                                     float *dst_dd,
    -                                const dpct::queue_ptr &main_stream) {
    +                                const queue_ptr &main_stream) {
     #pragma message("TODO: generalize concat kernel for dim != 2")
     #pragma message("      https://github.com/ggerganov/llama.cpp/pull/7563")
         int dim = dst->op_params[0];
    @@ -13525,11 +9979,11 @@ inline void ggml_sycl_op_concat(const ggml_tensor *src0,
         (void) dst;
     }
     
    -inline void ggml_sycl_op_upscale(const ggml_tensor *src0,
    +inline void ggml_sycl_op_upscale(ggml_backend_sycl_context & ctx, const ggml_tensor *src0,
                                      const ggml_tensor *src1, ggml_tensor *dst,
                                      const float *src0_dd, const float *src1_dd,
                                      float *dst_dd,
    -                                 const dpct::queue_ptr &main_stream) {
    +                                 const queue_ptr &main_stream) {
     
         GGML_ASSERT(src0->type == GGML_TYPE_F32);
         GGML_ASSERT(dst->type == GGML_TYPE_F32);
    @@ -13548,10 +10002,10 @@ inline void ggml_sycl_op_upscale(const ggml_tensor *src0,
         (void) src1_dd;
     }
     
    -inline void ggml_sycl_op_pad(const ggml_tensor *src0, const ggml_tensor *src1,
    +inline void ggml_sycl_op_pad(ggml_backend_sycl_context & ctx, const ggml_tensor *src0, const ggml_tensor *src1,
                                  ggml_tensor *dst, const float *src0_dd,
                                  const float *src1_dd, float *dst_dd,
    -                             const dpct::queue_ptr &main_stream) {
    +                             const queue_ptr &main_stream) {
     
         GGML_ASSERT(src0->type == GGML_TYPE_F32);
         GGML_ASSERT(dst->type == GGML_TYPE_F32);
    @@ -13566,11 +10020,11 @@ inline void ggml_sycl_op_pad(const ggml_tensor *src0, const ggml_tensor *src1,
         (void) src1_dd;
     }
     
    -inline void ggml_sycl_op_rms_norm(const ggml_tensor *src0,
    +inline void ggml_sycl_op_rms_norm(ggml_backend_sycl_context & ctx, const ggml_tensor *src0,
                                       const ggml_tensor *src1, ggml_tensor *dst,
                                       const float *src0_dd, const float *src1_dd,
                                       float *dst_dd,
    -                                  const dpct::queue_ptr &main_stream) {
    +                                  const queue_ptr &main_stream) {
     
         GGML_ASSERT(src0->type == GGML_TYPE_F32);
         GGML_ASSERT( dst->type == GGML_TYPE_F32);
    @@ -13589,11 +10043,11 @@ inline void ggml_sycl_op_rms_norm(const ggml_tensor *src0,
     }
     
     inline void ggml_sycl_op_mul_mat_q(
    -    const ggml_tensor *src0, const ggml_tensor *src1, ggml_tensor *dst,
    +    ggml_backend_sycl_context & ctx, const ggml_tensor *src0, const ggml_tensor *src1, ggml_tensor *dst,
         const char *src0_dd_i, const float *src1_ddf_i, const char *src1_ddq_i,
         float *dst_dd_i, const int64_t row_low, const int64_t row_high,
         const int64_t src1_ncols, const int64_t src1_padded_row_size,
    -    const dpct::queue_ptr &stream) try {
    +    const queue_ptr &stream) try {
     
         const int64_t ne00 = src0->ne[0];
     
    @@ -13610,7 +10064,7 @@ inline void ggml_sycl_op_mul_mat_q(
     
         // the main device has a larger memory buffer to hold the results from all GPUs
         // nrows_dst == nrows of the matrix that the dequantize_mul_mat kernel writes into
    -    const int64_t nrows_dst = dst->backend == GGML_BACKEND_TYPE_GPU && device_id == g_main_device ? ne0 : row_diff;
    +    const int64_t nrows_dst = device_id == ctx.device ? ne0 : row_diff;
     
         switch (src0->type) {
             case GGML_TYPE_Q4_0:
    @@ -13661,13 +10115,13 @@ catch (sycl::exception const &exc) {
     static int64_t get_row_rounding(ggml_type type, const std::array & tensor_split) {
         int64_t min_compute_capability = INT_MAX;
         int64_t max_compute_capability = INT_MIN;
    -    for (int i = 0; i < g_device_count; ++i) {
    -        if (tensor_split[i] < (i + 1 < g_device_count ? tensor_split[i + 1] : 1.0f)) {
    -            if (min_compute_capability > g_device_caps[i].cc) {
    -                min_compute_capability = g_device_caps[i].cc;
    +    for (int i = 0; i < ggml_sycl_info().device_count; ++i) {
    +        if (tensor_split[i] < (i + 1 < ggml_sycl_info().device_count ? tensor_split[i + 1] : 1.0f)) {
    +            if (min_compute_capability > ggml_sycl_info().devices[i].cc) {
    +                min_compute_capability = ggml_sycl_info().devices[i].cc;
                 }
    -            if (max_compute_capability < g_device_caps[i].cc) {
    -                max_compute_capability = g_device_caps[i].cc;
    +            if (max_compute_capability < ggml_sycl_info().devices[i].cc) {
    +                max_compute_capability = ggml_sycl_info().devices[i].cc;
                 }
             }
         }
    @@ -13707,11 +10161,12 @@ static int64_t get_row_rounding(ggml_type type, const std::arrayne[0];
         GGML_ASSERT(ne10 % QK8_1 == 0);
    @@ -13725,7 +10180,7 @@ inline void ggml_sycl_op_mul_mat_vec_q(
     
         // the main device has a larger memory buffer to hold the results from all GPUs
         // nrows_dst == nrows of the matrix that the kernel writes into
    -    const int64_t nrows_dst = dst->backend == GGML_BACKEND_TYPE_GPU && id == g_main_device ? ne00 : row_diff;
    +    const int64_t nrows_dst = id == ctx.device ? ne00 : row_diff;
     
         switch (src0->type) {
             case GGML_TYPE_Q4_0:
    @@ -13799,11 +10254,12 @@ inline void ggml_sycl_op_mul_mat_vec_q(
     
     
     inline void ggml_sycl_op_dequantize_mul_mat_vec(
    +    ggml_backend_sycl_context & ctx,
         const ggml_tensor *src0, const ggml_tensor *src1, ggml_tensor *dst,
         const char *src0_dd_i, const float *src1_ddf_i, const char *src1_ddq_i,
         float *dst_dd_i, const int64_t row_low, const int64_t row_high,
         const int64_t src1_ncols, const int64_t src1_padded_row_size,
    -    const dpct::queue_ptr &stream) {
    +    const queue_ptr &stream) {
     
         const int64_t ne00 = src0->ne[0];
         const int64_t row_diff = row_high - row_low;
    @@ -13812,7 +10268,7 @@ inline void ggml_sycl_op_dequantize_mul_mat_vec(
     
         // on some GPUs it is faster to convert src1 to half and to use half precision intrinsics
     #ifdef GGML_SYCL_F16
    -    sycl_pool_alloc src1_dfloat_a;
    +    ggml_sycl_pool_alloc src1_dfloat_a(ctx.pool());
         sycl::half *src1_dfloat = nullptr; // dfloat == half
     
         bool src1_convert_f16 =
    @@ -13878,11 +10334,12 @@ inline void ggml_sycl_op_dequantize_mul_mat_vec(
     }
     
     inline void ggml_sycl_op_mul_mat_sycl(
    +    ggml_backend_sycl_context & ctx,
         const ggml_tensor *src0, const ggml_tensor *src1, ggml_tensor *dst,
         const char *src0_dd_i, const float *src1_ddf_i, const char *src1_ddq_i,
         float *dst_dd_i, const int64_t row_low, const int64_t row_high,
         const int64_t src1_ncols, const int64_t src1_padded_row_size,
    -    const dpct::queue_ptr &stream) try {
    +    const queue_ptr &stream) try {
     
         GGML_ASSERT(src0_dd_i  != nullptr);
         GGML_ASSERT(src1_ddf_i != nullptr);
    @@ -13901,7 +10358,7 @@ inline void ggml_sycl_op_mul_mat_sycl(
     
         // the main device has a larger memory buffer to hold the results from all GPUs
         // ldc == nrows of the matrix that cuBLAS writes into
    -    int ldc = dst->backend == GGML_BACKEND_TYPE_GPU && id == g_main_device ? ne0 : row_diff;
    +    int ldc = id == ctx.device ? ne0 : row_diff;
     
     #ifdef GGML_SYCL_F16
         bool use_fp16 = true;  // TODO(Yu) SYCL capability check
    @@ -13913,7 +10370,7 @@ inline void ggml_sycl_op_mul_mat_sycl(
             dst->op_params[0] == GGML_PREC_DEFAULT) {
     
             // GGML_SYCL_DEBUG("ggml_sycl_op_mul_mat_sycl - fp16 path\n");
    -        sycl_pool_alloc src0_as_f16;
    +        ggml_sycl_pool_alloc src0_as_f16(ctx.pool());
             if (src0->type != GGML_TYPE_F16) {
                 const to_fp16_sycl_t to_fp16_sycl = ggml_get_to_fp16_sycl(src0->type);
                 GGML_ASSERT(to_fp16_sycl != nullptr);
    @@ -13925,7 +10382,7 @@ inline void ggml_sycl_op_mul_mat_sycl(
                                              ? (const sycl::half *)src0_dd_i
                                              : src0_as_f16.get();
     
    -        sycl_pool_alloc src1_as_f16;
    +        ggml_sycl_pool_alloc src1_as_f16(ctx.pool());
             if (src1->type != GGML_TYPE_F16) {
                 const to_fp16_sycl_t to_fp16_sycl = ggml_get_to_fp16_sycl(src1->type);
                 GGML_ASSERT(to_fp16_sycl != nullptr);
    @@ -13936,26 +10393,24 @@ inline void ggml_sycl_op_mul_mat_sycl(
             const sycl::half *src1_ptr = src1->type == GGML_TYPE_F16
                     ? (const sycl::half *)src1->data + src1_padded_row_size
                                              : src1_as_f16.get();
    -        sycl_pool_alloc dst_f16(row_diff * src1_ncols);
    +        ggml_sycl_pool_alloc dst_f16(ctx.pool(), row_diff * src1_ncols);
     
             const sycl::half alpha_f16 = 1.0f;
             const sycl::half beta_f16 = 0.0f;
    -        SYCL_CHECK(CHECK_TRY_ERROR(g_sycl_handles[id] = stream));
             SYCL_CHECK(CHECK_TRY_ERROR(dpct::gemm(
    -            *g_sycl_handles[id], oneapi::mkl::transpose::trans,
    +            *stream, oneapi::mkl::transpose::trans,
                 oneapi::mkl::transpose::nontrans, row_diff, src1_ncols, ne10,
                 &alpha_f16, src0_ptr, dpct::library_data_t::real_half, ne00,
                 src1_ptr, dpct::library_data_t::real_half, ne10, &beta_f16,
                 dst_f16.get(), dpct::library_data_t::real_half, ldc,
                 dpct::library_data_t::real_half)));
    -        g_sycl_handles[id]->wait();
             const to_fp32_sycl_t to_fp32_sycl = ggml_get_to_fp32_sycl(GGML_TYPE_F16);
             to_fp32_sycl(dst_f16.get(), dst_dd_i, row_diff*src1_ncols, stream);
         }
         else {
             // GGML_SYCL_DEBUG("ggml_sycl_op_mul_mat_sycl - fp32 path\n");
    -        sycl_pool_alloc src0_ddq_as_f32;
    -        sycl_pool_alloc src1_ddq_as_f32;
    +        ggml_sycl_pool_alloc src0_ddq_as_f32(ctx.pool());
    +        ggml_sycl_pool_alloc src1_ddq_as_f32(ctx.pool());
             if (src0->type != GGML_TYPE_F32) {
                 const to_fp32_sycl_t to_fp32_sycl = ggml_get_to_fp32_sycl(src0->type);
                 GGML_ASSERT(to_fp32_sycl != nullptr);
    @@ -13974,14 +10429,12 @@ inline void ggml_sycl_op_mul_mat_sycl(
             const float alpha = 1.0f;
             const float beta = 0.0f;
     
    -        SYCL_CHECK(CHECK_TRY_ERROR(g_sycl_handles[id] = stream));
             SYCL_CHECK(CHECK_TRY_ERROR(oneapi::mkl::blas::column_major::gemm(
    -            *g_sycl_handles[id], oneapi::mkl::transpose::trans,
    +            *stream, oneapi::mkl::transpose::trans,
                 oneapi::mkl::transpose::nontrans, row_diff, src1_ncols, ne10,
    -            dpct::get_value(&alpha, *g_sycl_handles[id]), src0_ddf_i, ne00,
    -            src1_ddf1_i, ne10, dpct::get_value(&beta, *g_sycl_handles[id]),
    +            dpct::get_value(&alpha, *stream), src0_ddf_i, ne00,
    +            src1_ddf1_i, ne10, dpct::get_value(&beta, *stream),
                 dst_dd_i, ldc)));
    -        g_sycl_handles[id]->wait();
         }
         (void) dst;
         (void) src1_ddq_i;
    @@ -13993,10 +10446,10 @@ catch (sycl::exception const &exc) {
       std::exit(1);
     }
     
    -inline void ggml_sycl_op_rope(const ggml_tensor *src0, const ggml_tensor *src1,
    +inline void ggml_sycl_op_rope(ggml_backend_sycl_context & ctx, const ggml_tensor *src0, const ggml_tensor *src1,
                                   ggml_tensor *dst, const float *src0_dd,
                                   const float *src1_dd, float *dst_dd,
    -                              const dpct::queue_ptr &main_stream) {
    +                              const queue_ptr &main_stream) {
         const ggml_tensor * src2 = dst->src[2];
     
         GGML_ASSERT(src0->type == GGML_TYPE_F32 || src0->type == GGML_TYPE_F16);
    @@ -14084,10 +10537,10 @@ inline void ggml_sycl_op_rope(const ggml_tensor *src0, const ggml_tensor *src1,
         (void) src1_dd;
     }
     
    -static void ggml_sycl_op_pool2d(const ggml_tensor *src0,
    +static void ggml_sycl_op_pool2d(ggml_backend_sycl_context & ctx, const ggml_tensor *src0,
                                     const ggml_tensor *src1, ggml_tensor *dst,
                                     const float *src0_dd, const float *src1_dd,
    -                                float *dst_dd, const dpct::queue_ptr &main_stream) {
    +                                float *dst_dd, const queue_ptr &main_stream) {
     
         GGML_ASSERT(src0->type == GGML_TYPE_F32);
         GGML_ASSERT( dst->type == GGML_TYPE_F32);
    @@ -14126,11 +10579,11 @@ static void ggml_sycl_op_pool2d(const ggml_tensor *src0,
         (void) src1_dd;
     }
     
    -inline void ggml_sycl_op_im2col(const ggml_tensor *src0,
    +inline void ggml_sycl_op_im2col(ggml_backend_sycl_context & ctx, const ggml_tensor *src0,
                                     const ggml_tensor *src1, ggml_tensor *dst,
                                     const float *src0_dd, const float *src1_dd,
                                     float *dst_dd,
    -                                const dpct::queue_ptr &main_stream) {
    +                                const queue_ptr &main_stream) {
     
         GGML_ASSERT(src0->type == GGML_TYPE_F16);
         GGML_ASSERT(src1->type == GGML_TYPE_F32);
    @@ -14167,11 +10620,11 @@ inline void ggml_sycl_op_im2col(const ggml_tensor *src0,
         (void) src0_dd;
     }
     
    -inline void ggml_sycl_op_sum_rows(const ggml_tensor *src0,
    +inline void ggml_sycl_op_sum_rows(ggml_backend_sycl_context & ctx, const ggml_tensor *src0,
                                       const ggml_tensor *src1, ggml_tensor *dst,
                                       const float *src0_dd, const float *src1_dd,
                                       float *dst_dd,
    -                                  const dpct::queue_ptr &main_stream) {
    +                                  const queue_ptr &main_stream) {
     
         GGML_ASSERT(src0->type == GGML_TYPE_F32);
         GGML_ASSERT( dst->type == GGML_TYPE_F32);
    @@ -14186,11 +10639,11 @@ inline void ggml_sycl_op_sum_rows(const ggml_tensor *src0,
         (void) src1_dd;
     }
     
    -inline void ggml_sycl_op_argsort(const ggml_tensor *src0,
    +inline void ggml_sycl_op_argsort(ggml_backend_sycl_context & ctx, const ggml_tensor *src0,
                                      const ggml_tensor *src1, ggml_tensor *dst,
                                      const float *src0_dd, const float *src1_dd,
                                      float *dst_dd,
    -                                 const dpct::queue_ptr &main_stream) {
    +                                 const queue_ptr &main_stream) {
     
         GGML_ASSERT(src0->type == GGML_TYPE_F32);
         GGML_ASSERT( dst->type == GGML_TYPE_I32);
    @@ -14207,11 +10660,11 @@ inline void ggml_sycl_op_argsort(const ggml_tensor *src0,
         (void) src1_dd;
     }
     
    -inline void ggml_sycl_op_diag_mask_inf(const ggml_tensor *src0,
    +inline void ggml_sycl_op_diag_mask_inf(ggml_backend_sycl_context & ctx, const ggml_tensor *src0,
                                            const ggml_tensor *src1,
                                            ggml_tensor *dst, const float *src0_dd,
                                            const float *src1_dd, float *dst_dd,
    -                                       const dpct::queue_ptr &main_stream) {
    +                                       const queue_ptr &main_stream) {
     
         GGML_ASSERT(src0->type == GGML_TYPE_F32);
         GGML_ASSERT( dst->type == GGML_TYPE_F32);
    @@ -14229,11 +10682,11 @@ inline void ggml_sycl_op_diag_mask_inf(const ggml_tensor *src0,
         (void) src1_dd;
     }
     
    -inline void ggml_sycl_op_soft_max(const ggml_tensor *src0,
    +inline void ggml_sycl_op_soft_max(ggml_backend_sycl_context & ctx, const ggml_tensor *src0,
                                       const ggml_tensor *src1, ggml_tensor *dst,
                                       const float *src0_dd, const float *src1_dd,
                                       float *dst_dd,
    -                                  const dpct::queue_ptr &main_stream) {
    +                                  const queue_ptr &main_stream) {
     
         GGML_ASSERT(src0->type == GGML_TYPE_F32);
         GGML_ASSERT( dst->type == GGML_TYPE_F32);
    @@ -14256,10 +10709,10 @@ inline void ggml_sycl_op_soft_max(const ggml_tensor *src0,
                           nrows_x, nrows_y, scale, max_bias, main_stream);
     }
     
    -inline void ggml_sycl_op_scale(const ggml_tensor *src0, const ggml_tensor *src1,
    +inline void ggml_sycl_op_scale(ggml_backend_sycl_context & ctx, const ggml_tensor *src0, const ggml_tensor *src1,
                                    ggml_tensor *dst, const float *src0_dd,
                                    const float *src1_dd, float *dst_dd,
    -                               const dpct::queue_ptr &main_stream) {
    +                               const queue_ptr &main_stream) {
     
         GGML_ASSERT(src0->type == GGML_TYPE_F32);
         GGML_ASSERT( dst->type == GGML_TYPE_F32);
    @@ -14279,10 +10732,10 @@ inline void ggml_sycl_op_scale(const ggml_tensor *src0, const ggml_tensor *src1,
         (void) src1_dd;
     }
     
    -inline void ggml_sycl_op_clamp(const ggml_tensor *src0, const ggml_tensor *src1,
    +inline void ggml_sycl_op_clamp(ggml_backend_sycl_context & ctx, const ggml_tensor *src0, const ggml_tensor *src1,
                                    ggml_tensor *dst, const float *src0_dd,
                                    const float *src1_dd, float *dst_dd,
    -                               const dpct::queue_ptr &main_stream) {
    +                               const queue_ptr &main_stream) {
     
         GGML_ASSERT(src0->type == GGML_TYPE_F32);
         GGML_ASSERT( dst->type == GGML_TYPE_F32);
    @@ -14304,7 +10757,7 @@ inline void ggml_sycl_op_clamp(const ggml_tensor *src0, const ggml_tensor *src1,
         (void) src1_dd;
     }
     
    -static void ggml_sycl_op_flatten(const ggml_tensor *src0,
    +static void ggml_sycl_op_flatten(ggml_backend_sycl_context & ctx, const ggml_tensor *src0,
                                      const ggml_tensor *src1, ggml_tensor *dst,
                                      const ggml_sycl_op_flatten_t op) try {
         const int64_t nrows0 = ggml_nrows(src0);
    @@ -14319,66 +10772,22 @@ static void ggml_sycl_op_flatten(const ggml_tensor *src0,
         ggml_tensor_extra_gpu * src1_extra = use_src1 ? (ggml_tensor_extra_gpu *) src1->extra : nullptr;
         ggml_tensor_extra_gpu * dst_extra  =            (ggml_tensor_extra_gpu *)  dst->extra;
     
    -    const bool src0_on_device =             src0->backend == GGML_BACKEND_TYPE_GPU || src0->backend == GGML_BACKEND_TYPE_GPU_SPLIT;
    -    const bool src1_on_device = use_src1 && src1->backend == GGML_BACKEND_TYPE_GPU;
    -    const bool  dst_on_device =              dst->backend == GGML_BACKEND_TYPE_GPU;
    -
         // dd = data device
    -    float * src0_ddf = nullptr;
    -    float * src1_ddf = nullptr;
    -    float *  dst_ddf = nullptr;
    -
    -    sycl_pool_alloc src0_f;
    -    sycl_pool_alloc src1_f;
    -    sycl_pool_alloc  dst_f;
    -
    -    ggml_sycl_set_device(g_main_device);
    -    dpct::queue_ptr main_stream = g_syclStreams[g_main_device][0];
    -    // GGML_SYCL_DEBUG("g_main_device=%d, main_stream=%p src0_on_device=%d, src1_on_device=%d, dst_on_device=%d\n",
    -        // g_main_device, main_stream, src0_on_device, src1_on_device, dst_on_device);
    -
    -    if (src0_on_device) {
    -        src0_ddf = (float *) src0_extra->data_device[g_main_device];
    -    } else {
    -        src0_ddf = src0_f.alloc(ggml_nelements(src0));
    -        // GGML_SYCL_DEBUG("before ggml_sycl_cpy_tensor_2d src0_ddf=%p, src0=%p\n", src0_ddf, src0);
    -        SYCL_CHECK(ggml_sycl_cpy_tensor_2d(src0_ddf, src0, 0, 0, 0, nrows0, main_stream));
    -    }
    -
    -    if (use_src1) {
    -        if (src1_on_device) {
    -            src1_ddf = (float *) src1_extra->data_device[g_main_device];
    -        } else {
    -            src1_ddf = src1_f.alloc(ggml_nelements(src1));
    -            SYCL_CHECK(ggml_sycl_cpy_tensor_2d(src1_ddf, src1, 0, 0, 0, nrows1, main_stream));
    -        }
    -    }
    -    if (dst_on_device) {
    -        dst_ddf = (float *) dst_extra->data_device[g_main_device];
    -    } else {
    -        dst_ddf = dst_f.alloc(ggml_nelements(dst));
    -    }
    -
    -    // GGML_SYCL_DEBUG("op src0=%p, src1=%p, dst=%p, src0_ddf=%p, src1_ddf=%p, dst_ddf=%p, main_stream=%p\n",
    -        // src0, src1, dst, src0_ddf, src1_ddf, dst_ddf, main_stream);
    -    // do the computation
    -    op(src0, src1, dst, src0_ddf, src1_ddf, dst_ddf, main_stream);
    -    /*
    -    DPCT1010:89: SYCL uses exceptions to report errors and does not use the
    -    error codes. The call was replaced with 0. You need to rewrite this code.
    -    */
    -    SYCL_CHECK(0);
    +    float * src0_ddf = (float *) src0->data;
    +    float * src1_ddf = use_src1 ? (float *) src1->data : nullptr;
    +    float *  dst_ddf = (float *) dst->data;
     
    -    // copy dst to host if necessary
    -    if (!dst_on_device) {
    -        SYCL_CHECK(CHECK_TRY_ERROR(
    -            main_stream->memcpy(dst->data, dst_ddf, ggml_nbytes(dst)).wait()));
    -    }
    +    ggml_sycl_pool_alloc src0_f(ctx.pool());
    +    ggml_sycl_pool_alloc src1_f(ctx.pool());
    +    ggml_sycl_pool_alloc  dst_f(ctx.pool());
     
    -    if (dst->backend == GGML_BACKEND_TYPE_CPU) {
    -        SYCL_CHECK(CHECK_TRY_ERROR(
    -            dpct::get_current_device().queues_wait_and_throw()));
    -    }
    +    ggml_sycl_set_device(ctx.device);
    +    queue_ptr main_stream = ctx.stream();
    +    // GGML_SYCL_DEBUG("ctx.device=%d, main_stream=%p src0_on_device=%d, src1_on_device=%d, dst_on_device=%d\n",
    +        // ctx.device, main_stream, src0_on_device, src1_on_device, dst_on_device);
    +
    +    // do the computation
    +    op(ctx, src0, src1, dst, src0_ddf, src1_ddf, dst_ddf, main_stream);
         // print_ggml_tensor("tensor", dst);
     }
     catch (sycl::exception const &exc) {
    @@ -14388,7 +10797,7 @@ catch (sycl::exception const &exc) {
       std::exit(1);
     }
     
    -static void ggml_sycl_set_peer_access(const int n_tokens) {
    +static void ggml_sycl_set_peer_access(const int n_tokens, int main_device) {
         static bool peer_access_enabled = false;
     
         const bool enable_peer_access = n_tokens <= GGML_SYCL_PEER_MAX_BATCH_SIZE;
    @@ -14398,19 +10807,18 @@ static void ggml_sycl_set_peer_access(const int n_tokens) {
         }
     
     #ifdef NDEBUG
    -    for (int i = 0; i < g_device_count; ++i) {
    +    for (int i = 0; i < ggml_sycl_info().device_count; ++i) {
             SYCL_CHECK(ggml_sycl_set_device(i));
    -        // SYCL_CHECK(syclDeviceSynchronize());
         }
     
    -    for (int i = 0; i < g_device_count; ++i) {
    +    for (int i = 0; i < ggml_sycl_info().device_count; ++i) {
             SYCL_CHECK(ggml_sycl_set_device(i));
     
    -        for (int id_other = 0; id_other < g_device_count; ++id_other) {
    +        for (int id_other = 0; id_other < ggml_sycl_info().device_count; ++id_other) {
                 if (i == id_other) {
                     continue;
                 }
    -            if (i != g_main_device && id_other != g_main_device) {
    +            if (i != main_device && id_other != main_device) {
                     continue;
                 }
     
    @@ -14434,7 +10842,7 @@ struct ggml_backend_sycl_split_buffer_type_context {
         std::array tensor_split;
     };
     
    -static void ggml_sycl_op_mul_mat(const ggml_tensor *src0,
    +static void ggml_sycl_op_mul_mat(ggml_backend_sycl_context & ctx, const ggml_tensor *src0,
                                      const ggml_tensor *src1, ggml_tensor *dst,
                                      ggml_sycl_op_mul_mat_t op,
                                      const bool convert_src1_to_q8_1) try {
    @@ -14469,7 +10877,6 @@ static void ggml_sycl_op_mul_mat(const ggml_tensor *src0,
         ggml_tensor_extra_gpu * src1_extra = (ggml_tensor_extra_gpu *) src1->extra;
         ggml_tensor_extra_gpu *  dst_extra = (ggml_tensor_extra_gpu *)  dst->extra;
     
    -    const bool src0_on_device = src0->backend == GGML_BACKEND_TYPE_GPU || src0->backend == GGML_BACKEND_TYPE_GPU_SPLIT;
         const bool src0_is_contiguous = ggml_is_contiguous(src0);
         const bool src1_is_contiguous = ggml_is_contiguous(src1);
     
    @@ -14489,10 +10896,10 @@ static void ggml_sycl_op_mul_mat(const ggml_tensor *src0,
         }
     
         struct dev_data {
    -        sycl_pool_alloc src0_dd_alloc;
    -        sycl_pool_alloc src1_ddf_alloc;
    -        sycl_pool_alloc src1_ddq_alloc;
    -        sycl_pool_alloc dst_dd_alloc;
    +        ggml_sycl_pool_alloc src0_dd_alloc;
    +        ggml_sycl_pool_alloc src1_ddf_alloc;
    +        ggml_sycl_pool_alloc src1_ddq_alloc;
    +        ggml_sycl_pool_alloc dst_dd_alloc;
     
             char *src0_dd = nullptr;
             float *src1_ddf = nullptr; // float
    @@ -14506,9 +10913,9 @@ static void ggml_sycl_op_mul_mat(const ggml_tensor *src0,
         dev_data dev[GGML_SYCL_MAX_DEVICES];
     
         int used_devices = 0;
    -    dpct::queue_ptr main_stream = g_syclStreams[g_main_device][0];
    +    queue_ptr main_stream = ctx.stream();
     
    -    for (int i = 0; i < g_device_count; ++i) {
    +    for (int i = 0; i < ggml_sycl_info().device_count; ++i) {
             // by default, use all rows
             dev[i].row_low  = 0;
             dev[i].row_high = ne01;
    @@ -14525,7 +10932,7 @@ static void ggml_sycl_op_mul_mat(const ggml_tensor *src0,
                     }
                 }
     
    -            if (i != g_device_count - 1) {
    +            if (i != ggml_sycl_info().device_count - 1) {
                     dev[i].row_high  = ne01*tensor_split[i + 1];
                     if (dev[i].row_high < ne01) {
                         dev[i].row_high -= dev[i].row_high % rounding;
    @@ -14534,33 +10941,33 @@ static void ggml_sycl_op_mul_mat(const ggml_tensor *src0,
             }
         }
     
    -    for (int i = 0; i < g_device_count; ++i) {
    -        if ((!split && i != g_main_device) || dev[i].row_low == dev[i].row_high) {
    +    for (int i = 0; i < ggml_sycl_info().device_count; ++i) {
    +        if ((!split && i != ctx.device) || dev[i].row_low == dev[i].row_high) {
                 continue;
             }
     
             used_devices++;
     
    -        const bool src1_on_device = src1->backend == GGML_BACKEND_TYPE_GPU && i == g_main_device;
    -        const bool  dst_on_device =  dst->backend == GGML_BACKEND_TYPE_GPU && i == g_main_device;
    +        const bool src1_on_device = i == ctx.device;
    +        const bool  dst_on_device = i == ctx.device;
     
             ggml_sycl_set_device(i);
    -        dpct::queue_ptr stream = g_syclStreams[i][0];
    +        queue_ptr stream = ctx.stream(i, 0);
     
    -        if (src0_on_device && src0_is_contiguous) {
    -            dev[i].src0_dd = (char *) src0_extra->data_device[i];
    +        if (src0_is_contiguous) {
    +            dev[i].src0_dd = (char *) src0->data;
             } else {
    -            dev[i].src0_dd = dev[i].src0_dd_alloc.alloc(ggml_nbytes(src0));
    +            dev[i].src0_dd = dev[i].src0_dd_alloc.alloc(ctx.pool(i), ggml_nbytes(src0));
             }
     
             if (src1_on_device && src1_is_contiguous) {
    -            dev[i].src1_ddf = (float *) src1_extra->data_device[i];
    +            dev[i].src1_ddf = (float *) src1->data;
             } else {
    -            dev[i].src1_ddf = dev[i].src1_ddf_alloc.alloc(ggml_nelements(src1));
    +            dev[i].src1_ddf = dev[i].src1_ddf_alloc.alloc(ctx.pool(i), ggml_nelements(src1));
             }
     
             if (convert_src1_to_q8_1) {
    -            dev[i].src1_ddq = dev[i].src1_ddq_alloc.alloc(nrows1*src1_padded_col_size*q8_1_ts/q8_1_bs);
    +            dev[i].src1_ddq = dev[i].src1_ddq_alloc.alloc(ctx.pool(i), nrows1*src1_padded_col_size*q8_1_ts/q8_1_bs);
     
                 if (src1_on_device && src1_is_contiguous) {
                     quantize_row_q8_1_sycl(dev[i].src1_ddf, dev[i].src1_ddq, ne10, nrows1, src1_padded_col_size, stream);
    @@ -14574,53 +10981,53 @@ static void ggml_sycl_op_mul_mat(const ggml_tensor *src0,
             }
     
             if (dst_on_device) {
    -            dev[i].dst_dd = (float *) dst_extra->data_device[i];
    +            dev[i].dst_dd = (float *) dst->data;
             } else {
                 const size_t size_dst_ddf = split ? (dev[i].row_high - dev[i].row_low)*ne1 : ggml_nelements(dst);
    -            dev[i].dst_dd = dev[i].dst_dd_alloc.alloc(size_dst_ddf);
    +            dev[i].dst_dd = dev[i].dst_dd_alloc.alloc(ctx.pool(i), size_dst_ddf);
             }
         }
     
         // if multiple devices are used they need to wait for the main device
         // here an event is recorded that signals that the main device has finished calculating the input data
         if (split && used_devices > 1) {
    -        ggml_sycl_set_device(g_main_device);
    +        ggml_sycl_set_device(ctx.device);
             /*
             DPCT1024:91: The original code returned the error code that was further
             consumed by the program logic. This original code was replaced with 0.
             You may need to rewrite the program logic consuming the error code.
             */
             SYCL_CHECK(CHECK_TRY_ERROR(
    -            *src0_extra->events[g_main_device][0] =
    -                g_syclStreams[g_main_device][0]->ext_oneapi_submit_barrier()));
    +            *src0_extra->events[ctx.device][0] =
    +                ctx.stream()->ext_oneapi_submit_barrier()));
         }
     
         const int64_t src1_col_stride = split && used_devices > 1 ? MUL_MAT_SRC1_COL_STRIDE : ne11;
         for (int64_t src1_col_0 = 0; src1_col_0 < ne11; src1_col_0 += src1_col_stride) {
    -        const int64_t is = split ? (src1_col_0/src1_col_stride) % MAX_STREAMS : 0;
    +        const int64_t is = split ? (src1_col_0/src1_col_stride) % GGML_SYCL_MAX_STREAMS : 0;
             const int64_t src1_ncols = src1_col_0 + src1_col_stride > ne11 ? ne11 - src1_col_0 : src1_col_stride;
     
    -        for (int i = 0; i < g_device_count; ++i) {
    -            if ((!split && i != g_main_device) || dev[i].row_low == dev[i].row_high) {
    +        for (int i = 0; i < ggml_sycl_info().device_count; ++i) {
    +            if ((!split && i != ctx.device) || dev[i].row_low == dev[i].row_high) {
                     continue;
                 }
     
    -            const bool src1_on_device = src1->backend == GGML_BACKEND_TYPE_GPU && i == g_main_device;
    -            const bool  dst_on_device =  dst->backend == GGML_BACKEND_TYPE_GPU && i == g_main_device;
    +            const bool src1_on_device = i == ctx.device;
    +            const bool  dst_on_device = i == ctx.device;
                 const int64_t row_diff = dev[i].row_high - dev[i].row_low;
     
                 ggml_sycl_set_device(i);
    -            dpct::queue_ptr stream = g_syclStreams[i][is];
    +            queue_ptr stream = ctx.stream(i, is);
     
                 // wait for main GPU data if necessary
    -            if (split && (i != g_main_device || is != 0)) {
    +            if (split && (i != ctx.device || is != 0)) {
                     /*
                     DPCT1009:163: SYCL uses exceptions to report errors and does not
                     use the error codes. The original code was commented out and a
                     warning string was inserted. You need to rewrite this code.
                     */
                     SYCL_CHECK(CHECK_TRY_ERROR(stream->ext_oneapi_submit_barrier(
    -                    {*src0_extra->events[g_main_device][0]})));
    +                    {*src0_extra->events[ctx.device][0]})));
                 }
     
                 for (int64_t i0 = 0; i0 < ne13*ne12; ++i0) {
    @@ -14637,22 +11044,22 @@ static void ggml_sycl_op_mul_mat(const ggml_tensor *src0,
     
                     // the main device memory buffer can be on VRAM scratch, with space for all partial results
                     // in that case an offset on dst_ddf_i is needed
    -                if (dst->backend == GGML_BACKEND_TYPE_GPU && i == g_main_device) {
    +                if (i == ctx.device) {
                         dst_dd_i += dev[i].row_low; // offset is 0 if no tensor split
                     }
     
                     // copy src0, src1 to device if necessary
    -                if (src1->backend == GGML_BACKEND_TYPE_GPU && src1_is_contiguous) {
    -                    if (i != g_main_device) {
    +                if (src1_is_contiguous) {
    +                    if (i != ctx.device) {
                             if (convert_src1_to_q8_1) {
    -                            char * src1_ddq_i_source = dev[g_main_device].src1_ddq + src1_ddq_i_offset;
    +                            char * src1_ddq_i_source = dev[ctx.device].src1_ddq + src1_ddq_i_offset;
                               SYCL_CHECK(CHECK_TRY_ERROR(stream->memcpy(
                                     src1_ddq_i, src1_ddq_i_source,
                                     src1_ncols * src1_padded_col_size * q8_1_ts /
                                         q8_1_bs).wait()));
                             } else {
     
    -                            float * src1_ddf_i_source = (float *) src1_extra->data_device[g_main_device];
    +                            float * src1_ddf_i_source = (float *) src1_extra->data_device[ctx.device];
                                 src1_ddf_i_source += (i0*ne11 + src1_col_0) * ne10;
     
                                 SYCL_CHECK(CHECK_TRY_ERROR(dev2dev_memcpy(*stream, *main_stream,
    @@ -14660,14 +11067,14 @@ static void ggml_sycl_op_mul_mat(const ggml_tensor *src0,
                                     src1_ncols * ne10 * sizeof(float))));
                             }
                         }
    -                } else if (src1->backend == GGML_BACKEND_TYPE_CPU || (src1_on_device && !src1_is_contiguous)) {
    +                } else if (src1_on_device && !src1_is_contiguous) {
                         SYCL_CHECK(ggml_sycl_cpy_tensor_2d(
                                        src1_ddf_i, src1, i03, i02, src1_col_0, src1_col_0+src1_ncols, stream));
                     } else {
                         GGML_ASSERT(false);
                     }
     
    -                if (convert_src1_to_q8_1 && (src1->backend == GGML_BACKEND_TYPE_CPU || !src1_is_contiguous)) {
    +                if (convert_src1_to_q8_1 && !src1_is_contiguous) {
                         quantize_row_q8_1_sycl(src1_ddf_i, src1_ddq_i, ne10, src1_ncols, src1_padded_col_size, stream);
                         /*
                         DPCT1010:92: SYCL uses exceptions to report errors and does
    @@ -14677,14 +11084,14 @@ static void ggml_sycl_op_mul_mat(const ggml_tensor *src0,
                         SYCL_CHECK(0);
                     }
     
    -                if (src1_col_0 == 0 && (!src0_on_device || !src0_is_contiguous) && i02 % i02_divisor == 0) {
    +                if (src1_col_0 == 0 && !src0_is_contiguous && i02 % i02_divisor == 0) {
                         SYCL_CHECK(ggml_sycl_cpy_tensor_2d(src0_dd_i, src0, i03, i02/i02_divisor, dev[i].row_low, dev[i].row_high, stream));
                     }
                     if (src1->type == GGML_TYPE_F16) {
                         src1_padded_col_size = (i0 * ne11 + src1_col_0) * ne10;
                     }
                     // do the computation
    -                SYCL_CHECK(CHECK_TRY_ERROR(op(src0, src1, dst, src0_dd_i, src1_ddf_i, src1_ddq_i, dst_dd_i,
    +                SYCL_CHECK(CHECK_TRY_ERROR(op(ctx, src0, src1, dst, src0_dd_i, src1_ddf_i, src1_ddq_i, dst_dd_i,
                         dev[i].row_low, dev[i].row_high, src1_ncols, src1_padded_col_size, stream)));
                     /*
                     DPCT1010:93: SYCL uses exceptions to report errors and does not
    @@ -14695,17 +11102,7 @@ static void ggml_sycl_op_mul_mat(const ggml_tensor *src0,
     
                     // copy dst to host or other device if necessary
                     if (!dst_on_device) {
    -                    void * dst_off_device;
    -                    dpct::memcpy_direction kind;
    -                    if (dst->backend == GGML_BACKEND_TYPE_CPU) {
    -                        dst_off_device = dst->data;
    -                        kind = dpct::device_to_host;
    -                    } else if (dst->backend == GGML_BACKEND_TYPE_GPU) {
    -                        dst_off_device = dst_extra->data_device[g_main_device];
    -                        kind = dpct::device_to_device;
    -                    } else {
    -                        GGML_ASSERT(false);
    -                    }
    +                    void * dst_off_device = dst->data;
                         if (split) {
                             // src0 = weight matrix is saved as a transposed matrix for better memory layout.
                             // dst is NOT transposed.
    @@ -14716,27 +11113,10 @@ static void ggml_sycl_op_mul_mat(const ggml_tensor *src0,
                             GGML_ASSERT(dst->nb[1] == ne0*sizeof(float));
                             dhf_dst_i += src1_col_0*ne0 + dev[i].row_low;
     
    -                        //todo, dirty solution. Need be updated when device2device memcpy() is supported.
    -                        if (kind == dpct::device_to_device) {
    -                            size_t dst_size = ggml_nbytes_pad(dst);
    -                            float *host_buf = (float *)malloc(dst_size);
    -                            SYCL_CHECK(CHECK_TRY_ERROR(dpct::async_dpct_memcpy(
    -                                host_buf, ne0 * sizeof(float), dst_dd_i,
    -                                row_diff * sizeof(float), row_diff * sizeof(float),
    -                                src1_ncols, dpct::device_to_host, *stream)));
    -                            dpct::dev_mgr::instance().get_device(g_sycl_gpu_mgr->gpus[i]).queues_wait_and_throw();
    -                            SYCL_CHECK(CHECK_TRY_ERROR(dpct::async_dpct_memcpy(
    -                                dhf_dst_i, ne0 * sizeof(float), host_buf,
    -                                row_diff * sizeof(float), row_diff * sizeof(float),
    -                                src1_ncols, dpct::host_to_device, *main_stream)));
    -                            dpct::dev_mgr::instance().get_device(g_sycl_gpu_mgr->gpus[g_main_device]).queues_wait_and_throw();
    -                            free(host_buf);
    -                        } else {
    -                            SYCL_CHECK(CHECK_TRY_ERROR(dpct::async_dpct_memcpy(
    -                                dhf_dst_i, ne0 * sizeof(float), dst_dd_i,
    -                                row_diff * sizeof(float), row_diff * sizeof(float),
    -                                src1_ncols, kind, *stream)));
    -                        }
    +                        SYCL_CHECK(CHECK_TRY_ERROR(dpct::async_dpct_memcpy(
    +                            dhf_dst_i, ne0 * sizeof(float), dst_dd_i,
    +                            row_diff * sizeof(float), row_diff * sizeof(float),
    +                            src1_ncols, dpct::device_to_device, *stream)));
                         } else {
                             float * dhf_dst_i = (float *) ((char *) dst_off_device + i02*nb2 + i03*nb3);
                             GGML_ASSERT(dst->nb[1] == ne0*sizeof(float));
    @@ -14748,7 +11128,7 @@ static void ggml_sycl_op_mul_mat(const ggml_tensor *src0,
                     }
     
                     // add event for the main device to wait on until other device is done
    -                if (split && (i != g_main_device || is != 0)) {
    +                if (split && (i != ctx.device || is != 0)) {
                         /*
                         DPCT1024:94: The original code returned the error code that
                         was further consumed by the program logic. This original
    @@ -14764,28 +11144,22 @@ static void ggml_sycl_op_mul_mat(const ggml_tensor *src0,
         }
     
         // main device waits for all other devices to be finished
    -    if (split && g_device_count > 1) {
    +    if (split && ggml_sycl_info().device_count > 1) {
             int64_t is_max = (ne11 + MUL_MAT_SRC1_COL_STRIDE - 1) / MUL_MAT_SRC1_COL_STRIDE;
    -        is_max = is_max <= MAX_STREAMS ? is_max : MAX_STREAMS;
    +        is_max = is_max <= GGML_SYCL_MAX_STREAMS ? is_max : GGML_SYCL_MAX_STREAMS;
     
    -        ggml_sycl_set_device(g_main_device);
    -        for (int i = 0; i < g_device_count; ++i) {
    +        ggml_sycl_set_device(ctx.device);
    +        for (int i = 0; i < ggml_sycl_info().device_count; ++i) {
                 if (dev[i].row_low == dev[i].row_high) {
                     continue;
                 }
                 for (int64_t is = 0; is < is_max; ++is) {
                     SYCL_CHECK(CHECK_TRY_ERROR(
    -                    g_syclStreams[g_main_device][0]->ext_oneapi_submit_barrier(
    +                    ctx.stream()->ext_oneapi_submit_barrier(
                             {*src0_extra->events[i][is]})));
                 }
             }
         }
    -
    -    if (dst->backend == GGML_BACKEND_TYPE_CPU) {
    -        SYCL_CHECK(ggml_sycl_set_device(g_main_device));
    -        SYCL_CHECK(CHECK_TRY_ERROR(
    -            dpct::get_current_device().queues_wait_and_throw()));
    -    }
     }
     catch (sycl::exception const &exc) {
       std::cerr << exc.what() << "Exception caught at file:" << __FILE__
    @@ -14794,149 +11168,134 @@ catch (sycl::exception const &exc) {
     }
     
     
    -static void ggml_sycl_repeat(const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
    +static void ggml_sycl_repeat(ggml_backend_sycl_context & ctx, const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
         GGML_SYCL_DEBUG("call %s\n", __func__);
    -    ggml_sycl_op_flatten(src0, src1, dst, ggml_sycl_op_repeat);
    +    ggml_sycl_op_flatten(ctx, src0, src1, dst, ggml_sycl_op_repeat);
         GGML_SYCL_DEBUG("call %s done\n", __func__);
     }
     
    -static void ggml_sycl_get_rows(const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
    +static void ggml_sycl_get_rows(ggml_backend_sycl_context & ctx, const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
         GGML_SYCL_DEBUG("call %s\n", __func__);
    -    ggml_sycl_op_flatten(src0, src1, dst, ggml_sycl_op_get_rows);
    +    ggml_sycl_op_flatten(ctx, src0, src1, dst, ggml_sycl_op_get_rows);
         GGML_SYCL_DEBUG("call %s done\n", __func__);
     }
     
    -static void ggml_sycl_add(const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
    +static void ggml_sycl_add(ggml_backend_sycl_context & ctx, const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
         GGML_SYCL_DEBUG("call %s\n", __func__);
    -    ggml_sycl_op_flatten(src0, src1, dst, ggml_sycl_op_add);
    +    ggml_sycl_op_flatten(ctx, src0, src1, dst, ggml_sycl_op_add);
         GGML_SYCL_DEBUG("call %s done\n", __func__);
     }
     
    -static void ggml_sycl_acc(const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
    +static void ggml_sycl_acc(ggml_backend_sycl_context & ctx, const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
         GGML_SYCL_DEBUG("call %s\n", __func__);
    -    ggml_sycl_op_flatten(src0, src1, dst, ggml_sycl_op_acc);
    +    ggml_sycl_op_flatten(ctx, src0, src1, dst, ggml_sycl_op_acc);
         GGML_SYCL_DEBUG("call %s done\n", __func__);
     }
     
    -static void ggml_sycl_mul(const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
    +static void ggml_sycl_mul(ggml_backend_sycl_context & ctx, const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
         GGML_SYCL_DEBUG("call %s\n", __func__);
    -    ggml_sycl_op_flatten(src0, src1, dst, ggml_sycl_op_mul);
    +    ggml_sycl_op_flatten(ctx, src0, src1, dst, ggml_sycl_op_mul);
         GGML_SYCL_DEBUG("call %s done\n", __func__);
     }
     
    -static void ggml_sycl_div(const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
    +static void ggml_sycl_div(ggml_backend_sycl_context & ctx, const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
         GGML_SYCL_DEBUG("call %s\n", __func__);
    -    ggml_sycl_op_flatten(src0, src1, dst, ggml_sycl_op_div);
    +    ggml_sycl_op_flatten(ctx, src0, src1, dst, ggml_sycl_op_div);
         GGML_SYCL_DEBUG("call %s done\n", __func__);
     }
     
    -static void ggml_sycl_gelu(const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
    +static void ggml_sycl_gelu(ggml_backend_sycl_context & ctx, const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
         GGML_SYCL_DEBUG("call %s\n", __func__);
    -    ggml_sycl_op_flatten(src0, src1, dst, ggml_sycl_op_gelu);
    +    ggml_sycl_op_flatten(ctx, src0, src1, dst, ggml_sycl_op_gelu);
         GGML_SYCL_DEBUG("call %s done\n", __func__);
     }
     
    -static void ggml_sycl_silu(const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
    +static void ggml_sycl_silu(ggml_backend_sycl_context & ctx, const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
         GGML_SYCL_DEBUG("call %s\n", __func__);
    -    ggml_sycl_op_flatten(src0, src1, dst, ggml_sycl_op_silu);
    +    ggml_sycl_op_flatten(ctx, src0, src1, dst, ggml_sycl_op_silu);
         GGML_SYCL_DEBUG("call %s done\n", __func__);
     }
     
    -static void ggml_sycl_gelu_quick(const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
    +static void ggml_sycl_gelu_quick(ggml_backend_sycl_context & ctx, const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
         GGML_SYCL_DEBUG("call %s\n", __func__);
    -    ggml_sycl_op_flatten(src0, src1, dst, ggml_sycl_op_gelu_quick);
    +    ggml_sycl_op_flatten(ctx, src0, src1, dst, ggml_sycl_op_gelu_quick);
         GGML_SYCL_DEBUG("call %s done\n", __func__);
     }
     
    -static void ggml_sycl_tanh(const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
    +static void ggml_sycl_tanh(ggml_backend_sycl_context & ctx, const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
         GGML_SYCL_DEBUG("call %s\n", __func__);
    -    ggml_sycl_op_flatten(src0, src1, dst, ggml_sycl_op_tanh);
    +    ggml_sycl_op_flatten(ctx, src0, src1, dst, ggml_sycl_op_tanh);
         GGML_SYCL_DEBUG("call %s done\n", __func__);
     }
     
    -static void ggml_sycl_relu(const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
    +static void ggml_sycl_relu(ggml_backend_sycl_context & ctx, const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
         GGML_SYCL_DEBUG("call %s\n", __func__);
    -    ggml_sycl_op_flatten(src0, src1, dst, ggml_sycl_op_relu);
    +    ggml_sycl_op_flatten(ctx, src0, src1, dst, ggml_sycl_op_relu);
         GGML_SYCL_DEBUG("call %s done\n", __func__);
     }
     
    -static void ggml_sycl_hardsigmoid(const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
    +static void ggml_sycl_hardsigmoid(ggml_backend_sycl_context & ctx, const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
         GGML_SYCL_DEBUG("call %s\n", __func__);
    -    ggml_sycl_op_flatten(src0, src1, dst, ggml_sycl_op_hardsigmoid);
    +    ggml_sycl_op_flatten(ctx, src0, src1, dst, ggml_sycl_op_hardsigmoid);
         GGML_SYCL_DEBUG("call %s done\n", __func__);
     }
     
    -static void ggml_sycl_hardswish(const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
    +static void ggml_sycl_hardswish(ggml_backend_sycl_context & ctx, const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
         GGML_SYCL_DEBUG("call %s\n", __func__);
    -    ggml_sycl_op_flatten(src0, src1, dst, ggml_sycl_op_hardswish);
    +    ggml_sycl_op_flatten(ctx, src0, src1, dst, ggml_sycl_op_hardswish);
         GGML_SYCL_DEBUG("call %s done\n", __func__);
     }
     
    -static void ggml_sycl_leaky_relu(const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
    +static void ggml_sycl_leaky_relu(ggml_backend_sycl_context & ctx, const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
         GGML_SYCL_DEBUG("call %s\n", __func__);
    -    ggml_sycl_op_flatten(src0, src1, dst, ggml_sycl_op_leaky_relu);
    +    ggml_sycl_op_flatten(ctx, src0, src1, dst, ggml_sycl_op_leaky_relu);
         GGML_SYCL_DEBUG("call %s done\n", __func__);
     }
     
    -static void ggml_sycl_sqr(const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
    +static void ggml_sycl_sqr(ggml_backend_sycl_context & ctx, const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
         GGML_SYCL_DEBUG("call %s\n", __func__);
    -    ggml_sycl_op_flatten(src0, src1, dst, ggml_sycl_op_sqr);
    +    ggml_sycl_op_flatten(ctx, src0, src1, dst, ggml_sycl_op_sqr);
         GGML_SYCL_DEBUG("call %s done\n", __func__);
     }
     
    -static void ggml_sycl_norm(const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
    +static void ggml_sycl_norm(ggml_backend_sycl_context & ctx, const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
         GGML_SYCL_DEBUG("call %s\n", __func__);
    -    ggml_sycl_op_flatten(src0, src1, dst, ggml_sycl_op_norm);
    +    ggml_sycl_op_flatten(ctx, src0, src1, dst, ggml_sycl_op_norm);
         GGML_SYCL_DEBUG("call %s done\n", __func__);
     }
     
    -static void ggml_sycl_group_norm(const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
    +static void ggml_sycl_group_norm(ggml_backend_sycl_context & ctx, const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
         GGML_SYCL_DEBUG("call %s\n", __func__);
    -    ggml_sycl_op_flatten(src0, src1, dst, ggml_sycl_op_group_norm);
    +    ggml_sycl_op_flatten(ctx, src0, src1, dst, ggml_sycl_op_group_norm);
         GGML_SYCL_DEBUG("call %s done\n", __func__);
     }
     
    -static void ggml_sycl_concat(const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
    +static void ggml_sycl_concat(ggml_backend_sycl_context & ctx, const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
         GGML_SYCL_DEBUG("call %s\n", __func__);
    -    ggml_sycl_op_flatten(src0, src1, dst, ggml_sycl_op_concat);
    +    ggml_sycl_op_flatten(ctx, src0, src1, dst, ggml_sycl_op_concat);
         GGML_SYCL_DEBUG("call %s done\n", __func__);
     }
     
    -static void ggml_sycl_upscale(const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
    +static void ggml_sycl_upscale(ggml_backend_sycl_context & ctx, const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
         GGML_SYCL_DEBUG("call %s\n", __func__);
    -    ggml_sycl_op_flatten(src0, src1, dst, ggml_sycl_op_upscale);
    +    ggml_sycl_op_flatten(ctx, src0, src1, dst, ggml_sycl_op_upscale);
         GGML_SYCL_DEBUG("call %s done\n", __func__);
     }
     
    -static void ggml_sycl_pad(const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
    +static void ggml_sycl_pad(ggml_backend_sycl_context & ctx, const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
         GGML_SYCL_DEBUG("call %s\n", __func__);
    -    ggml_sycl_op_flatten(src0, src1, dst, ggml_sycl_op_pad);
    +    ggml_sycl_op_flatten(ctx, src0, src1, dst, ggml_sycl_op_pad);
         GGML_SYCL_DEBUG("call %s done\n", __func__);
     }
     
     
    -static void ggml_sycl_rms_norm(const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
    +static void ggml_sycl_rms_norm(ggml_backend_sycl_context & ctx, const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
         GGML_SYCL_DEBUG("call %s\n", __func__);
    -    ggml_sycl_op_flatten(src0, src1, dst, ggml_sycl_op_rms_norm);
    +    ggml_sycl_op_flatten(ctx, src0, src1, dst, ggml_sycl_op_rms_norm);
         GGML_SYCL_DEBUG("call %s done\n", __func__);
     }
     
    -bool ggml_sycl_can_mul_mat(const struct ggml_tensor * src0, const struct ggml_tensor * src1, struct ggml_tensor * dst) {
    -    if (!g_sycl_loaded) return false;
    -
    -    const int64_t ne10 = src1->ne[0];
    -
    -    const int64_t ne0 = dst->ne[0];
    -    const int64_t ne1 = dst->ne[1];
    -
    -    // TODO: find the optimal values for these
    -    return (src0->type == GGML_TYPE_F32 || src0->type == GGML_TYPE_F16 || ggml_is_quantized(src0->type)) &&
    -            src1->type == GGML_TYPE_F32 &&
    -             dst->type == GGML_TYPE_F32 &&
    -            (ne0 >= 32 && ne1 >= 32 && ne10 >= 32);
    -}
    -
    -static void ggml_sycl_mul_mat_vec_p021(const ggml_tensor *src0,
    +static void ggml_sycl_mul_mat_vec_p021(ggml_backend_sycl_context & ctx, const ggml_tensor *src0,
                                            const ggml_tensor *src1,
                                            ggml_tensor *dst) try {
         GGML_ASSERT(ggml_is_permuted(src0) && ggml_is_permuted(src1));
    @@ -14952,17 +11311,12 @@ static void ggml_sycl_mul_mat_vec_p021(const ggml_tensor *src0,
     
         const int64_t ne12 = src1->ne[2];
     
    -    SYCL_CHECK(ggml_sycl_set_device(g_main_device));
    -    dpct::queue_ptr main_stream = g_syclStreams[g_main_device][0];
    -
    -    ggml_tensor_extra_gpu * src0_extra = (ggml_tensor_extra_gpu *) src0->extra;
    -    void * src0_ddq = src0_extra->data_device[g_main_device];
    -
    -    ggml_tensor_extra_gpu * src1_extra = (ggml_tensor_extra_gpu *) src1->extra;
    -    float * src1_ddf = (float *) src1_extra->data_device[g_main_device];
    +    SYCL_CHECK(ggml_sycl_set_device(ctx.device));
    +    queue_ptr main_stream = ctx.stream();
     
    -    ggml_tensor_extra_gpu * dst_extra = (ggml_tensor_extra_gpu *) dst->extra;
    -    float * dst_ddf = (float *) dst_extra->data_device[g_main_device];
    +    void  * src0_ddq = src0->data;
    +    float * src1_ddf = (float *) src1->data;
    +    float * dst_ddf  = (float *) dst->data;
     
         ggml_mul_mat_p021_f16_f32_sycl(src0_ddq, src1_ddf, dst_ddf, ne00, ne01, ne02, ne12, main_stream);
     }
    @@ -14972,7 +11326,7 @@ catch (sycl::exception const &exc) {
       std::exit(1);
     }
     
    -static void ggml_sycl_mul_mat_vec_nc(const ggml_tensor *src0,
    +static void ggml_sycl_mul_mat_vec_nc(ggml_backend_sycl_context & ctx, const ggml_tensor *src0,
                                          const ggml_tensor *src1,
                                          ggml_tensor *dst) try {
         GGML_ASSERT(!ggml_is_transposed(src0));
    @@ -14991,17 +11345,12 @@ static void ggml_sycl_mul_mat_vec_nc(const ggml_tensor *src0,
     
         const int64_t ne12 = src1->ne[2];
     
    -    SYCL_CHECK(ggml_sycl_set_device(g_main_device));
    -    dpct::queue_ptr main_stream = g_syclStreams[g_main_device][0];
    -
    -    ggml_tensor_extra_gpu * src0_extra = (ggml_tensor_extra_gpu *) src0->extra;
    -    void * src0_ddq = src0_extra->data_device[g_main_device];
    -
    -    ggml_tensor_extra_gpu * src1_extra = (ggml_tensor_extra_gpu *) src1->extra;
    -    float * src1_ddf = (float *) src1_extra->data_device[g_main_device];
    +    SYCL_CHECK(ggml_sycl_set_device(ctx.device));
    +    queue_ptr main_stream = ctx.stream();
     
    -    ggml_tensor_extra_gpu * dst_extra = (ggml_tensor_extra_gpu *) dst->extra;
    -    float * dst_ddf = (float *) dst_extra->data_device[g_main_device];
    +    void  * src0_ddq = src0->data;
    +    float * src1_ddf = (float *) src1->data;
    +    float * dst_ddf  = (float *) dst->data;
     
         const int64_t row_stride_x = nb01 / sizeof(sycl::half);
         const int64_t channel_stride_x = nb02 / sizeof(sycl::half);
    @@ -15039,7 +11388,8 @@ static void k_compute_batched_ptrs(const sycl::half *src0_as_f16,
         ptrs_dst[0*ne23 + i12 + i13*ne12] = (      char *)         dst + i12*nbd2 + i13*nbd3;
     }
     
    -static void ggml_sycl_mul_mat_batched_sycl(const ggml_tensor *src0,
    +static void ggml_sycl_mul_mat_batched_sycl(ggml_backend_sycl_context & ctx,
    +                                             const ggml_tensor *src0,
                                                  const ggml_tensor *src1,
                                                  ggml_tensor *dst) try {
         GGML_ASSERT(!ggml_is_transposed(src0));
    @@ -15051,27 +11401,20 @@ static void ggml_sycl_mul_mat_batched_sycl(const ggml_tensor *src0,
     
         const int64_t ne_dst = ggml_nelements(dst);
     
    -    SYCL_CHECK(ggml_sycl_set_device(g_main_device));
    -    dpct::queue_ptr main_stream = g_syclStreams[g_main_device][0];
    +    SYCL_CHECK(ggml_sycl_set_device(ctx.device));
    +    queue_ptr main_stream = ctx.stream();;
     
         bool no_mixed_dtypes = main_stream->get_backend() == sycl::backend::ext_oneapi_cuda ||
                                main_stream->get_backend() == sycl::backend::ext_oneapi_hip;
     
    -    SYCL_CHECK(
    -        CHECK_TRY_ERROR(g_sycl_handles[g_main_device] = main_stream));
     
    -    ggml_tensor_extra_gpu * src0_extra = (ggml_tensor_extra_gpu *) src0->extra;
    -    void * src0_ddq = src0_extra->data_device[g_main_device];
    +    void * src0_ddq = src0->data;
         sycl::half *src0_as_f16 = (sycl::half *)src0_ddq;
    -
    -    ggml_tensor_extra_gpu * src1_extra = (ggml_tensor_extra_gpu *) src1->extra;
    -    float * src1_ddf = (float *) src1_extra->data_device[g_main_device];
    -
    -    ggml_tensor_extra_gpu * dst_extra = (ggml_tensor_extra_gpu *) dst->extra;
    -    float * dst_ddf = (float *) dst_extra->data_device[g_main_device];
    +    float * src1_ddf = (float *) src1->data;
    +    float * dst_ddf = (float *) dst->data;
     
         // convert src1 to fp16
    -    sycl_pool_alloc src1_f16_alloc;
    +    ggml_sycl_pool_alloc src1_f16_alloc(ctx.pool());
         if (src1->type != GGML_TYPE_F16) {
             const to_fp16_sycl_t to_fp16_sycl = ggml_get_to_fp16_sycl(src1->type);
             const int64_t ne_src1 = ggml_nelements(src1);
    @@ -15082,7 +11425,7 @@ static void ggml_sycl_mul_mat_batched_sycl(const ggml_tensor *src0,
         sycl::half *src1_f16 = src1->type == GGML_TYPE_F16 ? (sycl::half *)src1_ddf
                                                            : src1_f16_alloc.get();
     
    -    sycl_pool_alloc dst_f16;
    +    ggml_sycl_pool_alloc dst_f16(ctx.pool());
         char * dst_t;
     
         dpct::library_data_t cu_compute_type = dpct::library_data_t::real_float;
    @@ -15130,7 +11473,7 @@ static void ggml_sycl_mul_mat_batched_sycl(const ggml_tensor *src0,
         if (r2 == 1 && r3 == 1 && ggml_is_contiguous_2(src0) && ggml_is_contiguous_2(src1)) {
             // there is no broadcast and src0, src1 are contiguous across dims 2, 3
             SYCL_CHECK(CHECK_TRY_ERROR(dpct::gemm_batch(
    -            *g_sycl_handles[g_main_device], oneapi::mkl::transpose::trans,
    +            *main_stream, oneapi::mkl::transpose::trans,
                 oneapi::mkl::transpose::nontrans, ne01, ne11, ne10, alpha,
                 (const char *)src0_as_f16, dpct::library_data_t::real_half,
                 nb01 / nb00, nb02 / nb00,
    @@ -15141,8 +11484,8 @@ static void ggml_sycl_mul_mat_batched_sycl(const ggml_tensor *src0,
         } else {
             const int ne23 = ne12*ne13;
     
    -        sycl_pool_alloc ptrs_src(2*ne23);
    -        sycl_pool_alloc<      void *> ptrs_dst(1*ne23);
    +        ggml_sycl_pool_alloc ptrs_src(ctx.pool(), 2*ne23);
    +        ggml_sycl_pool_alloc<      void *> ptrs_dst(ctx.pool(), 1*ne23);
     
             sycl::range<3> block_dims(1, ne12, ne13);
             /*
    @@ -15171,7 +11514,7 @@ static void ggml_sycl_mul_mat_batched_sycl(const ggml_tensor *src0,
                 });
             }
             SYCL_CHECK(CHECK_TRY_ERROR(dpct::gemm_batch(
    -            *g_sycl_handles[g_main_device], oneapi::mkl::transpose::trans,
    +            *main_stream, oneapi::mkl::transpose::trans,
                 oneapi::mkl::transpose::nontrans, ne01, ne11, ne10, alpha,
                 (const void **)(ptrs_src.get() + 0 * ne23),
                 dpct::library_data_t::real_half, nb01 / nb00,
    @@ -15216,19 +11559,26 @@ bool ggml_sycl_supports_dmmv(enum ggml_type type) {
         }
     }
     
    -static void ggml_sycl_mul_mat(const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
    -    const bool all_on_device =
    -        (src0->backend == GGML_BACKEND_TYPE_GPU || src0->backend == GGML_BACKEND_TYPE_GPU_SPLIT) &&
    -        (src1->backend == GGML_BACKEND_TYPE_GPU) &&
    -        ( dst->backend == GGML_BACKEND_TYPE_GPU);
    -
    -    const bool split = src0->backend == GGML_BACKEND_TYPE_GPU_SPLIT;
    +static void ggml_sycl_mul_mat(ggml_backend_sycl_context & ctx, const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
    +    const bool split = ggml_backend_buffer_is_sycl_split(src0->buffer);
     
         int64_t min_compute_capability = INT_MAX;
    -    for (int i = 0; i < g_device_count; ++i) {
    -        if (min_compute_capability > g_device_caps[i].cc && g_tensor_split[i] < (i + 1 < g_device_count ? g_tensor_split[i + 1] : 1.0f)) {
    -            min_compute_capability = g_device_caps[i].cc;
    +
    +    if (split) {
    +        ggml_backend_sycl_split_buffer_type_context * buft_ctx = (ggml_backend_sycl_split_buffer_type_context *) src0->buffer->buft->context;
    +        auto & tensor_split = buft_ctx->tensor_split;
    +        for (int id = 0; id < ggml_sycl_info().device_count; ++id) {
    +            // skip devices that are not going to do any work:
    +            if (tensor_split[id] >= (id + 1 < ggml_sycl_info().device_count ? tensor_split[id + 1] : 1.0f)) {
    +                continue;
    +            }
    +
    +            if (min_compute_capability > ggml_sycl_info().devices[id].cc) {
    +                min_compute_capability = ggml_sycl_info().devices[id].cc;
    +            }
             }
    +    } else {
    +        min_compute_capability    = ggml_sycl_info().devices[ctx.device].cc;
         }
     
         // check data types and tensor shapes for custom matrix multiplication kernels:
    @@ -15252,196 +11602,24 @@ static void ggml_sycl_mul_mat(const ggml_tensor * src0, const ggml_tensor * src1
     
         if (!split && src0->type == GGML_TYPE_F16 && ggml_is_permuted(src0) && ggml_is_permuted(src1) && src1->ne[1] == 1) {
             // KQ single-batch
    -        ggml_sycl_mul_mat_vec_p021(src0, src1, dst);
    +        ggml_sycl_mul_mat_vec_p021(ctx, src0, src1, dst);
         } else if (!split && src0->type == GGML_TYPE_F16 && !ggml_is_contiguous(src0) && !ggml_is_transposed(src1) && src1->ne[1] == 1) {
             // KQV single-batch
    -        ggml_sycl_mul_mat_vec_nc(src0, src1, dst);
    +        ggml_sycl_mul_mat_vec_nc(ctx, src0, src1, dst);
         } else if (!split && src0->type == GGML_TYPE_F16 && (src1->type == GGML_TYPE_F16) && !ggml_is_transposed(src0) && !ggml_is_transposed(src1) && src1->ne[2]*src1->ne[3] > 1) {
             // KQ + KQV multi-batch
    -        ggml_sycl_mul_mat_batched_sycl(src0, src1, dst);
    +        ggml_sycl_mul_mat_batched_sycl(ctx, src0, src1, dst);
         } else if (use_dequantize_mul_mat_vec) {
    -        ggml_sycl_op_mul_mat(src0, src1, dst, ggml_sycl_op_dequantize_mul_mat_vec, false);
    +        ggml_sycl_op_mul_mat(ctx, src0, src1, dst, ggml_sycl_op_dequantize_mul_mat_vec, false);
         } else if (use_mul_mat_vec_q) {
    -        ggml_sycl_op_mul_mat(src0, src1, dst, ggml_sycl_op_mul_mat_vec_q, true);
    +        ggml_sycl_op_mul_mat(ctx, src0, src1, dst, ggml_sycl_op_mul_mat_vec_q, true);
         } else if (use_mul_mat_q) {
    -        ggml_sycl_op_mul_mat(src0, src1, dst, ggml_sycl_op_mul_mat_q, true);
    -    } else {
    -        ggml_sycl_op_mul_mat(src0, src1, dst, ggml_sycl_op_mul_mat_sycl, false);
    -    }
    -}
    -
    -#if 0
    -template
    -static __global__ void k_compute_batched_ptrs_id(
    -        const void ** ptrs_src, void ** ptrs_dst,
    -        int ne12, int ne13,
    -        int ne23,
    -        int nb02, int nb03,
    -        int nb12, int nb13,
    -        int nb2, int nb3,
    -        int r2, int r3,
    -        ggml_type src0_type, half * src0_as_f16, int64_t src0_ne,
    -        const half * src1_f16, half * dst_f16,
    -        const int32_t * ids, const int id,
    -        Srcs... src0s) {
    -
    -    int i = ids[id];
    -
    -    half * src0_f16;
    -    const void * srcs_ar[] = { (const half *) src0s... };
    -    if (src0_type == GGML_TYPE_F16) {
    -        src0_f16 = (half *) srcs_ar[i];
    +        ggml_sycl_op_mul_mat(ctx, src0, src1, dst, ggml_sycl_op_mul_mat_q, true);
         } else {
    -        src0_f16 = src0_as_f16;
    -        if (item_ct1.get_local_id(2) == 0 && threadIdx.y == 0) {
    -            const to_fp16_sycl_t to_fp16 = ggml_get_to_fp16_sycl(src0_type);
    -            to_fp16(srcs_ar[i], src0_f16, src0_ne, syclStreamFireAndForget);
    -        }
    -    }
    -
    -    int i13 = blockIdx.x * blockDim.x + item_ct1.get_local_id(2);
    -    int i12 = blockIdx.y * blockDim.y + threadIdx.y;
    -
    -    if (i13 >= ne13 || i12 >= ne12) {
    -        return;
    +        ggml_sycl_op_mul_mat(ctx, src0, src1, dst, ggml_sycl_op_mul_mat_sycl, false);
         }
    -
    -    int i03 = i13 / r3;
    -    int i02 = i12 / r2;
    -
    -    ptrs_src[0*ne23 + i12 + i13*ne12] = (const char *) src0_f16 + i02*nb02   + i03*nb03;
    -    ptrs_src[1*ne23 + i12 + i13*ne12] = (const char *) src1_f16 + i12*nb12/2 + i13*nb13/2;
    -    ptrs_dst[0*ne23 + i12 + i13*ne12] = (      char *)  dst_f16 + i12* nb2/2 + i13* nb3/2;
     }
     
    -static void ggml_sycl_mul_mat_id_sycl(ggml_tensor * dst) {
    -    const struct ggml_tensor * ids = dst->src[0];
    -    const struct ggml_tensor * src1 = dst->src[1];
    -    const struct ggml_tensor * src00 = dst->src[2];
    -
    -    const int id = dst->op_params[0];
    -
    -    GGML_ASSERT(!ggml_is_transposed(src00));
    -    GGML_ASSERT(!ggml_is_transposed(src1));
    -
    -    GGML_ASSERT(src00->backend != GGML_BACKEND_TYPE_GPU_SPLIT);
    -    GGML_ASSERT(src1->type == GGML_TYPE_F32);
    -
    -    GGML_TENSOR_LOCALS(int64_t, ne0, src00, ne);
    -
    -    //const int64_t nb01 = src00->nb[1];
    -    GGML_TENSOR_LOCALS(int64_t, nb0, src00, nb);
    -
    -    GGML_TENSOR_LOCALS(int64_t, ne1, src1, ne);
    -
    -    GGML_TENSOR_LOCALS(int64_t, nb1, src1, nb);
    -    //const int64_t nb11 = src1->nb[1];
    -
    -    const int64_t ne1 = ggml_nelements(src1);
    -    const int64_t ne  = ggml_nelements(dst);
    -
    -    SYCL_CHECK(ggml_sycl_set_device(g_main_device));
    -    syclStream_t main_stream = g_syclStreams[g_main_device][0];
    -
    -    SYCL_CHECK(syclSetStream(g_sycl_handles[g_main_device], main_stream));
    -
    -    //ggml_tensor_extra_gpu * src0_extra = (ggml_tensor_extra_gpu *) src0->extra;
    -    //void * src0_ddq = src0_extra->data_device[g_main_device];
    -    //half * src0_as_f16 = (half *) src0_ddq;
    -
    -    ggml_tensor_extra_gpu * src1_extra = (ggml_tensor_extra_gpu *) src1->extra;
    -    float * src1_ddf = (float *) src1_extra->data_device[g_main_device];
    -
    -    ggml_tensor_extra_gpu * dst_extra = (ggml_tensor_extra_gpu *) dst->extra;
    -    float * dst_ddf = (float *) dst_extra->data_device[g_main_device];
    -
    -    // convert src1 to fp16
    -    const to_fp16_sycl_t to_fp16_sycl = ggml_get_to_fp16_sycl(src1->type);
    -    GGML_ASSERT(to_fp16_sycl != nullptr);
    -
    -    size_t src1_as = 0;
    -    half * src1_as_f16 = (half *) ggml_sycl_pool_malloc(g_main_device, ne1 * sizeof(half), &src1_as);
    -    to_fp16_sycl(src1_ddf, src1_as_f16, ne1, main_stream);
    -
    -    size_t dst_as = 0;
    -    half * dst_f16 = (half *) ggml_sycl_pool_malloc(g_main_device, ne * sizeof(half), &dst_as);
    -
    -    GGML_ASSERT(ne12 % ne02 == 0);
    -    GGML_ASSERT(ne13 % ne03 == 0);
    -
    -    // broadcast factors
    -    const int64_t r2 = ne12/ne02;
    -    const int64_t r3 = ne13/ne03;
    -
    -    const half alpha_f16 = 1.0f;
    -    const half beta_f16  = 0.0f;
    -
    -    // use syclGemmBatchedEx
    -    const int ne23 = ne12*ne13;
    -
    -    const void ** ptrs_src = nullptr;
    -          void ** ptrs_dst = nullptr;
    -
    -    size_t ptrs_src_s = 0;
    -    size_t ptrs_dst_s = 0;
    -
    -    ptrs_src = (const void **) ggml_sycl_pool_malloc(g_main_device, 2*ne23*sizeof(void *), &ptrs_src_s);
    -    ptrs_dst = (      void **) ggml_sycl_pool_malloc(g_main_device, 1*ne23*sizeof(void *), &ptrs_dst_s);
    -
    -    int64_t src0_ne = ggml_nelements(src00);
    -    half * src0_as_f16 = nullptr;
    -    size_t src0_as = 0;
    -    if (src00->type != GGML_TYPE_F16) {
    -        src0_as_f16 = (half *) ggml_sycl_pool_malloc(g_main_device, src0_ne * sizeof(half), &src0_as);
    -    }
    -
    -    static_assert(GGML_MAX_SRC == 6, "GGML_MAX_SRC == 6");
    -    dim3 block_dims(ne13, ne12);
    -    k_compute_batched_ptrs_id<<<1, block_dims, 0, main_stream>>>(
    -            ptrs_src, ptrs_dst,
    -            ne12, ne13,
    -            ne23,
    -            ne00*ne01*sizeof(half), ne00*ne01*ne02*sizeof(half),
    -            nb12, nb13,
    -            dst->nb[2], dst->nb[3],
    -            r2, r3,
    -            src00->type, src0_as_f16, src0_ne,
    -            src1_as_f16, dst_f16,
    -            (const int *)((ggml_tensor_extra_gpu *)ids->extra)->data_device[g_main_device], id,
    -            dst->src[2] ? (const half *)((ggml_tensor_extra_gpu *)dst->src[2]->extra)->data_device[g_main_device] : nullptr,
    -            dst->src[3] ? (const half *)((ggml_tensor_extra_gpu *)dst->src[3]->extra)->data_device[g_main_device] : nullptr,
    -            dst->src[4] ? (const half *)((ggml_tensor_extra_gpu *)dst->src[4]->extra)->data_device[g_main_device] : nullptr,
    -            dst->src[5] ? (const half *)((ggml_tensor_extra_gpu *)dst->src[5]->extra)->data_device[g_main_device] : nullptr
    -    );
    -    SYCL_CHECK(syclGetLastError());
    -
    -    SYCL_CHECK(
    -    syclGemmBatchedEx(g_sycl_handles[g_main_device], CUBLAS_OP_T, CUBLAS_OP_N,
    -            ne01, ne11, ne10,
    -            &alpha_f16, (const void **) (ptrs_src + 0*ne23), SYCL_R_16F, ne00,
    -                        (const void **) (ptrs_src + 1*ne23), SYCL_R_16F, ne10,
    -            &beta_f16,  (      void **) (ptrs_dst + 0*ne23), SYCL_R_16F, ne01,
    -            ne23,
    -            CUBLAS_COMPUTE_16F,
    -            CUBLAS_GEMM_DEFAULT_TENSOR_OP));
    -
    -    if (src0_as != 0) {
    -        ggml_sycl_pool_free(g_main_device, src0_as_f16, src0_as);
    -    }
    -    if (ptrs_src_s != 0) {
    -        ggml_sycl_pool_free(g_main_device, ptrs_src, ptrs_src_s);
    -    }
    -    if (ptrs_dst_s != 0) {
    -        ggml_sycl_pool_free(g_main_device, ptrs_dst, ptrs_dst_s);
    -    }
    -
    -    const to_fp32_sycl_t to_fp32_sycl = ggml_get_to_fp32_sycl(GGML_TYPE_F16);
    -    to_fp32_sycl(dst_f16, dst_ddf, ne, main_stream);
    -
    -    ggml_sycl_pool_free(g_main_device, src1_as_f16, src1_as);
    -    ggml_sycl_pool_free(g_main_device, dst_f16, dst_as);
    -}
    -#endif
     
     struct mmid_row_mapping {
         int32_t i1;
    @@ -15508,7 +11686,7 @@ __dpct_inline__ static void k_copy_dst_from_contiguous(
         }
     }
     
    -static void ggml_sycl_mul_mat_id(const ggml_tensor *src0,
    +static void ggml_sycl_mul_mat_id(ggml_backend_sycl_context & ctx, const ggml_tensor *src0,
                                      const ggml_tensor *src1,
                                      ggml_tensor *dst) try {
         GGML_ASSERT(!ggml_backend_buffer_is_sycl_split(src0->buffer) && "mul_mat_id does not support split buffers");
    @@ -15516,7 +11694,7 @@ static void ggml_sycl_mul_mat_id(const ggml_tensor *src0,
         const ggml_tensor *ids = dst->src[2];
         GGML_TENSOR_BINARY_OP_LOCALS
     
    -    const dpct::queue_ptr stream = g_syclStreams[g_main_device][0];
    +    const queue_ptr stream = ctx.stream();
     
         const int64_t n_as = ne02;
         const int64_t n_ids = ids->ne[0];
    @@ -15552,13 +11730,13 @@ static void ggml_sycl_mul_mat_id(const ggml_tensor *src0,
     
         char *src0_original = src1->backend == GGML_BACKEND_TYPE_CPU
                                   ? (char *)src0->data
    -                              : (char *)src0_extra->data_device[g_main_device];
    +                              : (char *)src0_extra->data_device[ctx.device];
         char *src1_original = src1->backend == GGML_BACKEND_TYPE_CPU
                                   ? (char *)src1->data
    -                              : (char *)src1_extra->data_device[g_main_device];
    +                              : (char *)src1_extra->data_device[ctx.device];
         char *dst_original = dst->backend == GGML_BACKEND_TYPE_CPU
                                  ? (char *)dst->data
    -                             : (char *)dst_extra->data_device[g_main_device];
    +                             : (char *)dst_extra->data_device[ctx.device];
     
         src0_row.ne[2] = 1;
         src0_row.ne[3] = 1;
    @@ -15587,22 +11765,22 @@ static void ggml_sycl_mul_mat_id(const ggml_tensor *src0,
                     const int64_t i1 = id;
                     const int64_t i2 = i12;
     
    -            src0_row_extra.data_device[g_main_device] =
    +            src0_row_extra.data_device[ctx.device] =
                     src0_original + i02*nb02;
    -            src1_row_extra.data_device[g_main_device] =
    +            src1_row_extra.data_device[ctx.device] =
                     src1_original + + i11*nb11 + i12*nb12;
    -            dst_row_extra.data_device[g_main_device] =
    +            dst_row_extra.data_device[ctx.device] =
                     dst_original + i1*nb1   + i2*nb2;
     
    -            ggml_sycl_mul_mat(&src0_row, &src1_row, &dst_row);
    +            ggml_sycl_mul_mat(ctx, &src0_row, &src1_row, &dst_row);
                 }
             }
         } else {
    -        sycl_pool_alloc src1_contiguous(sizeof(float)*ggml_nelements(src1));
    -        sycl_pool_alloc  dst_contiguous(sizeof(float)*ggml_nelements(dst));
    +        ggml_sycl_pool_alloc src1_contiguous(ctx.pool(), sizeof(float)*ggml_nelements(src1));
    +        ggml_sycl_pool_alloc  dst_contiguous(ctx.pool(), sizeof(float)*ggml_nelements(dst));
     
    -        src1_row_extra.data_device[g_main_device] = src1_contiguous.get();
    -        dst_row_extra.data_device[g_main_device]  =  dst_contiguous.get();
    +        src1_row_extra.data_device[ctx.device] = src1_contiguous.get();
    +        dst_row_extra.data_device[ctx.device]  =  dst_contiguous.get();
     
             for (int64_t i02 = 0; i02 < n_as; i02++) {
                 int64_t num_src1_rows = 0;
    @@ -15625,8 +11803,8 @@ static void ggml_sycl_mul_mat_id(const ggml_tensor *src0,
                 }
     
     
    -            sycl_pool_alloc dev_cur_src1_row(1);
    -            sycl_pool_alloc dev_row_mapping(num_src1_rows);
    +            ggml_sycl_pool_alloc dev_cur_src1_row(ctx.pool(), 1);
    +            ggml_sycl_pool_alloc dev_row_mapping(ctx.pool(), num_src1_rows);
                 SYCL_CHECK(CHECK_TRY_ERROR(
                     stream->memset(dev_cur_src1_row.get(), 0, sizeof(int))));
     
    @@ -15658,7 +11836,7 @@ static void ggml_sycl_mul_mat_id(const ggml_tensor *src0,
                     });
                 }
     
    -            src0_row_extra.data_device[g_main_device] = src0_original + i02*nb02;
    +            src0_row_extra.data_device[ctx.device] = src0_original + i02*nb02;
     
                 GGML_ASSERT(nb11 == sizeof(float)*ne10);
                 GGML_ASSERT(nb1 == sizeof(float)*ne0);
    @@ -15673,7 +11851,7 @@ static void ggml_sycl_mul_mat_id(const ggml_tensor *src0,
                 dst_row.nb[2] = num_src1_rows*nb1;
                 dst_row.nb[3] = num_src1_rows*nb1;
     
    -            ggml_sycl_mul_mat(&src0_row, &src1_row, &dst_row);
    +            ggml_sycl_mul_mat(ctx, &src0_row, &src1_row, &dst_row);
     
                 {
                     sycl::range<3> block_dims(1, 1, std::min((unsigned int)ne0, 768u));
    @@ -15703,35 +11881,29 @@ catch (sycl::exception const &exc) {
       std::exit(1);
     }
     
    -static void ggml_sycl_scale(const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
    -    ggml_sycl_op_flatten(src0, src1, dst, ggml_sycl_op_scale);
    +static void ggml_sycl_scale(ggml_backend_sycl_context & ctx, const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
    +    ggml_sycl_op_flatten(ctx, src0, src1, dst, ggml_sycl_op_scale);
     }
     
    -static void ggml_sycl_clamp(const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
    -    ggml_sycl_op_flatten(src0, src1, dst, ggml_sycl_op_clamp);
    +static void ggml_sycl_clamp(ggml_backend_sycl_context & ctx, const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
    +    ggml_sycl_op_flatten(ctx, src0, src1, dst, ggml_sycl_op_clamp);
     }
     
    -static void ggml_sycl_cpy(const ggml_tensor *src0, const ggml_tensor *src1,
    +static void ggml_sycl_cpy(ggml_backend_sycl_context & ctx, const ggml_tensor *src0, const ggml_tensor *src1,
                               ggml_tensor *dst) try {
         const int64_t ne = ggml_nelements(src0);
         GGML_ASSERT(ne == ggml_nelements(src1));
     
    -    GGML_ASSERT(src0->backend == GGML_BACKEND_TYPE_GPU);
    -    GGML_ASSERT(src1->backend == GGML_BACKEND_TYPE_GPU);
    -
         GGML_ASSERT(ggml_nbytes(src0) <= INT_MAX);
         GGML_ASSERT(ggml_nbytes(src1) <= INT_MAX);
     
         GGML_TENSOR_BINARY_OP_LOCALS;
     
    -    SYCL_CHECK(ggml_sycl_set_device(g_main_device));
    -    dpct::queue_ptr main_stream = g_syclStreams[g_main_device][0];
    +    SYCL_CHECK(ggml_sycl_set_device(ctx.device));
    +    queue_ptr main_stream = ctx.stream();
     
    -    const ggml_tensor_extra_gpu * src0_extra = (ggml_tensor_extra_gpu *) src0->extra;
    -    const ggml_tensor_extra_gpu * src1_extra = (ggml_tensor_extra_gpu *) src1->extra;
    -
    -    char * src0_ddc = (char *) src0_extra->data_device[g_main_device];
    -    char * src1_ddc = (char *) src1_extra->data_device[g_main_device];
    +    char * src0_ddc = (char *) src0->data;
    +    char * src1_ddc = (char *) src1->data;
     
         if (src0->type == GGML_TYPE_F32 && src1->type == GGML_TYPE_F32) {
             ggml_cpy_f32_f32_sycl (src0_ddc, src1_ddc, ne, ne00, ne01, ne02, nb00, nb01, nb02, nb03, ne10, ne11, ne12, nb10, nb11, nb12, nb13, main_stream);
    @@ -15765,44 +11937,44 @@ catch (sycl::exception const &exc) {
       std::exit(1);
     }
     
    -static void ggml_sycl_dup(const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
    +static void ggml_sycl_dup(ggml_backend_sycl_context & ctx, const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
         // TODO: why do we pass dst as src1 here?
    -    ggml_sycl_cpy(src0, dst, nullptr);
    +    ggml_sycl_cpy(ctx, src0, dst, nullptr);
         (void) src1;
     }
     
    -static void ggml_sycl_diag_mask_inf(const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
    -    ggml_sycl_op_flatten(src0, src1, dst, ggml_sycl_op_diag_mask_inf);
    +static void ggml_sycl_diag_mask_inf(ggml_backend_sycl_context & ctx, const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
    +    ggml_sycl_op_flatten(ctx, src0, src1, dst, ggml_sycl_op_diag_mask_inf);
     }
     
    -static void ggml_sycl_soft_max(const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
    -    ggml_sycl_op_flatten(src0, src1, dst, ggml_sycl_op_soft_max);
    +static void ggml_sycl_soft_max(ggml_backend_sycl_context & ctx, const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
    +    ggml_sycl_op_flatten(ctx, src0, src1, dst, ggml_sycl_op_soft_max);
     }
     
    -static void ggml_sycl_rope(const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
    +static void ggml_sycl_rope(ggml_backend_sycl_context & ctx, const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
         GGML_ASSERT(ggml_is_contiguous(src0)); // TODO: this restriction is temporary until non-cont support is implemented
    -    ggml_sycl_op_flatten(src0, src1, dst, ggml_sycl_op_rope);
    +    ggml_sycl_op_flatten(ctx, src0, src1, dst, ggml_sycl_op_rope);
     }
     
    -static void ggml_sycl_pool2d(const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
    -    ggml_sycl_op_flatten(src0, src1, dst, ggml_sycl_op_pool2d);
    +static void ggml_sycl_pool2d(ggml_backend_sycl_context & ctx, const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
    +    ggml_sycl_op_flatten(ctx, src0, src1, dst, ggml_sycl_op_pool2d);
     }
     
    -static void ggml_sycl_im2col(const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
    -    ggml_sycl_op_flatten(src0, src1, dst, ggml_sycl_op_im2col);
    +static void ggml_sycl_im2col(ggml_backend_sycl_context & ctx, const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
    +    ggml_sycl_op_flatten(ctx, src0, src1, dst, ggml_sycl_op_im2col);
     }
     
    -static void ggml_sycl_sum_rows(const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
    +static void ggml_sycl_sum_rows(ggml_backend_sycl_context & ctx, const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
         GGML_ASSERT(ggml_is_contiguous(src0));
    -    ggml_sycl_op_flatten(src0, src1, dst, ggml_sycl_op_sum_rows);
    +    ggml_sycl_op_flatten(ctx, src0, src1, dst, ggml_sycl_op_sum_rows);
     }
     
    -static void ggml_sycl_argsort(const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
    +static void ggml_sycl_argsort(ggml_backend_sycl_context & ctx, const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
         GGML_ASSERT(ggml_is_contiguous(src0));
    -    ggml_sycl_op_flatten(src0, src1, dst, ggml_sycl_op_argsort);
    +    ggml_sycl_op_flatten(ctx, src0, src1, dst, ggml_sycl_op_argsort);
     }
     
    -static void ggml_sycl_nop(const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
    +static void ggml_sycl_nop(ggml_backend_sycl_context & ctx, const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
         (void) src0;
         (void) src1;
         (void) dst;
    @@ -15814,211 +11986,18 @@ static size_t ggml_nbytes_split(const struct ggml_tensor * tensor, int nrows_spl
         return nrows_split*ggml_row_size(tensor->type, tensor->ne[0]);
     }
     
    -void ggml_sycl_free_data(struct ggml_tensor *tensor) try {
    -    if (!tensor || !tensor->extra || (tensor->backend != GGML_BACKEND_TYPE_GPU && tensor->backend != GGML_BACKEND_TYPE_GPU_SPLIT) ) {
    -        return;
    -    }
    -
    -    ggml_tensor_extra_gpu * extra = (ggml_tensor_extra_gpu *) tensor->extra;
    -
    -    for (int i = 0; i < g_device_count; ++i) {
    -        const dpct::queue_ptr stream = g_syclStreams[i][0];
    -        if (extra->data_device[i] != nullptr) {
    -            SYCL_CHECK(ggml_sycl_set_device(i));
    -            SYCL_CHECK(CHECK_TRY_ERROR(sycl::free(extra->data_device[i], *stream)));
    -        }
    -
    -        for (int64_t is = 0; is < MAX_STREAMS; ++is) {
    -            if (extra->events[i][is] != nullptr) {
    -                SYCL_CHECK(ggml_sycl_set_device(i));
    -                SYCL_CHECK(CHECK_TRY_ERROR(
    -                    dpct::destroy_event(extra->events[i][is])));
    -            }
    -        }
    -    }
    -
    -    delete extra;
    -}
    -catch (sycl::exception const &exc) {
    -  std::cerr << exc.what() << "Exception caught at file:" << __FILE__
    -            << ", line:" << __LINE__ << std::endl;
    -  std::exit(1);
    -}
    -
    -static ggml_tensor_extra_gpu * g_temp_tensor_extras = nullptr;
    -static size_t g_temp_tensor_extra_index = 0;
    -
    -static ggml_tensor_extra_gpu * ggml_sycl_alloc_temp_tensor_extra() {
    -    if (g_temp_tensor_extras == nullptr) {
    -        g_temp_tensor_extras = new ggml_tensor_extra_gpu[GGML_SYCL_MAX_NODES];
    -    }
    -
    -    size_t alloc_index = g_temp_tensor_extra_index;
    -    g_temp_tensor_extra_index = (g_temp_tensor_extra_index + 1) % GGML_SYCL_MAX_NODES;
    -    ggml_tensor_extra_gpu * extra = &g_temp_tensor_extras[alloc_index];
    -    memset(extra, 0, sizeof(*extra));
    -
    -    return extra;
    -}
    -
    -static void ggml_sycl_assign_buffers_impl(struct ggml_tensor *tensor,
    -                                          bool scratch, bool force_inplace,
    -                                          bool no_alloc) try {
    -    if (scratch && g_scratch_size == 0) {
    -        return;
    -    }
    -
    -    tensor->backend = GGML_BACKEND_TYPE_GPU;
    -
    -    if (tensor->src[0] != nullptr && tensor->src[0]->backend == GGML_BACKEND_TYPE_CPU) {
    -        const ggml_op src0_op = tensor->src[0]->op;
    -        if (src0_op == GGML_OP_RESHAPE || src0_op == GGML_OP_TRANSPOSE || src0_op == GGML_OP_VIEW || src0_op == GGML_OP_PERMUTE) {
    -            ggml_sycl_assign_buffers_impl(tensor->src[0], scratch, force_inplace, no_alloc);
    -        }
    -    }
    -    if (tensor->op == GGML_OP_CPY && tensor->src[1]->backend == GGML_BACKEND_TYPE_CPU) {
    -        ggml_sycl_assign_buffers_impl(tensor->src[1], scratch, force_inplace, no_alloc);
    -    }
    -
    -    if (scratch && no_alloc) {
    -        return;
    -    }
    -
    -    ggml_tensor_extra_gpu * extra;
    -
    -    const bool inplace = (tensor->src[0] != nullptr && tensor->src[0]->data == tensor->data) ||
    -        tensor->op == GGML_OP_VIEW ||
    -        force_inplace;
    -    const size_t size = ggml_nbytes(tensor);
    -
    -    SYCL_CHECK(ggml_sycl_set_device(g_main_device));
    -    const dpct::queue_ptr stream = g_syclStreams[g_main_device][0];
    -
    -    if (inplace && (tensor->src[0]->backend == GGML_BACKEND_TYPE_GPU || tensor->src[0]->backend == GGML_BACKEND_TYPE_GPU_SPLIT)) {
    -        ggml_tensor_extra_gpu * src0_extra = (ggml_tensor_extra_gpu * ) tensor->src[0]->extra;
    -        char * src0_ddc = (char *) src0_extra->data_device[g_main_device];
    -        size_t offset = 0;
    -        if (tensor->op == GGML_OP_VIEW) {
    -            memcpy(&offset, tensor->op_params, sizeof(size_t));
    -        }
    -        extra = ggml_sycl_alloc_temp_tensor_extra();
    -        extra->data_device[g_main_device] = src0_ddc + offset;
    -    } else if (tensor->op == GGML_OP_CPY) {
    -        ggml_tensor_extra_gpu * src1_extra = (ggml_tensor_extra_gpu * ) tensor->src[1]->extra;
    -        void * src1_ddv = src1_extra->data_device[g_main_device];
    -        extra = ggml_sycl_alloc_temp_tensor_extra();
    -        extra->data_device[g_main_device] = src1_ddv;
    -    } else if (scratch) {
    -        GGML_ASSERT(size <= g_scratch_size);
    -        if (g_scratch_offset + size > g_scratch_size) {
    -            g_scratch_offset = 0;
    -        }
    -
    -        char * data = (char *) g_scratch_buffer;
    -        if (data == nullptr) {
    -            SYCL_CHECK(CHECK_TRY_ERROR(
    -                data = (char *)sycl::malloc_device(
    -                    g_scratch_size, *stream)));
    -            g_scratch_buffer = data;
    -        }
    -        extra = ggml_sycl_alloc_temp_tensor_extra();
    -        extra->data_device[g_main_device] = data + g_scratch_offset;
    -
    -        g_scratch_offset += size;
    -
    -        GGML_ASSERT(g_scratch_offset <= g_scratch_size);
    -    } else { // allocate new buffers outside of scratch
    -        void * data;
    -        SYCL_CHECK(CHECK_TRY_ERROR(data = (void *)sycl::malloc_device(
    -                                        size, *stream)));
    -        SYCL_CHECK(CHECK_TRY_ERROR(
    -            (*stream).memset(data, 0, size).wait()));
    -        extra = new ggml_tensor_extra_gpu;
    -        memset(extra, 0, sizeof(*extra));
    -        extra->data_device[g_main_device] = data;
    -    }
    -
    -    tensor->extra = extra;
    -}
    -catch (sycl::exception const &exc) {
    -  std::cerr << exc.what() << "Exception caught at file:" << __FILE__
    -            << ", line:" << __LINE__ << std::endl;
    -  std::exit(1);
    -}
    -
    -void ggml_sycl_copy_to_device(struct ggml_tensor *tensor) try {
    -    GGML_ASSERT(tensor->backend == GGML_BACKEND_TYPE_GPU);
    -    GGML_ASSERT(ggml_is_contiguous(tensor));
    -
    -    ggml_tensor_extra_gpu * extra = (ggml_tensor_extra_gpu *) tensor->extra;
    -    SYCL_CHECK(ggml_sycl_set_device(g_main_device));
    -    const dpct::queue_ptr stream = g_syclStreams[g_main_device][0];
    -    SYCL_CHECK(CHECK_TRY_ERROR((*stream)
    -                                    .memcpy(extra->data_device[g_main_device],
    -                                            tensor->data, ggml_nbytes(tensor))
    -                                    .wait()));
    -}
    -catch (sycl::exception const &exc) {
    -  std::cerr << exc.what() << "Exception caught at file:" << __FILE__
    -            << ", line:" << __LINE__ << std::endl;
    -  std::exit(1);
    -}
    -
    -void ggml_sycl_assign_buffers(struct ggml_tensor * tensor) {
    -    ggml_sycl_assign_buffers_impl(tensor, true, false, false);
    -}
    -
    -void ggml_sycl_assign_buffers_no_alloc(struct ggml_tensor * tensor) {
    -    ggml_sycl_assign_buffers_impl(tensor, true, false, true);
    -}
    -
    -void ggml_sycl_assign_buffers_no_scratch(struct ggml_tensor * tensor) {
    -    ggml_sycl_assign_buffers_impl(tensor, false, false, false);
    -}
    -
    -void ggml_sycl_assign_buffers_force_inplace(struct ggml_tensor * tensor) {
    -    ggml_sycl_assign_buffers_impl(tensor, false, true, false);
    -}
    -
     void ggml_sycl_set_main_device(const int main_device) try {
    -    if (g_main_device == main_device) return;
    +    if (dpct::get_current_device_id() == main_device) return;
         check_allow_gpu_index(main_device);
    -    g_main_device = main_device;
    -    g_main_device_id = g_sycl_gpu_mgr->gpus[main_device];
    +    dpct::select_device(main_device);
     
         if (g_ggml_sycl_debug) {
             dpct::device_info prop;
             SYCL_CHECK(CHECK_TRY_ERROR(dpct::get_device_info(
    -            prop, dpct::dev_mgr::instance().get_device(g_main_device_id))));
    +            prop, dpct::dev_mgr::instance().get_device(main_device))));
             fprintf(stderr, "Using device %d (%s) as main device\n",
    -                g_main_device_id, prop.get_name());
    -    }
    -}
    -catch (sycl::exception const &exc) {
    -  std::cerr << exc.what() << "Exception caught at file:" << __FILE__
    -            << ", line:" << __LINE__ << std::endl;
    -  std::exit(1);
    -}
    -
    -void ggml_sycl_set_scratch_size(const size_t scratch_size) {
    -    // this is a hack to not completely break llama.cpp when using multiple models or contexts simultaneously
    -    // it still won't always work as expected, but it's better than nothing
    -    if (scratch_size > g_scratch_size) {
    -        ggml_sycl_free_scratch();
    -    }
    -    g_scratch_size = std::max(g_scratch_size, scratch_size);
    -}
    -
    -void ggml_sycl_free_scratch() try {
    -    if (g_scratch_buffer == nullptr) {
    -        return;
    +                main_device, prop.get_name());
         }
    -    ggml_sycl_set_device(g_main_device);
    -    const dpct::queue_ptr stream = g_syclStreams[g_main_device][0];
    -
    -    SYCL_CHECK(CHECK_TRY_ERROR(
    -        sycl::free(g_scratch_buffer, *stream)));
    -    g_scratch_buffer = nullptr;
     }
     catch (sycl::exception const &exc) {
       std::cerr << exc.what() << "Exception caught at file:" << __FILE__
    @@ -16026,26 +12005,10 @@ catch (sycl::exception const &exc) {
       std::exit(1);
     }
     
    -bool ggml_sycl_compute_forward(struct ggml_compute_params * params, struct ggml_tensor * tensor) {
    +bool ggml_sycl_compute_forward(ggml_backend_sycl_context & ctx, struct ggml_tensor * tensor) {
         if (!g_sycl_loaded) return false;
     
         ggml_sycl_func_t func;
    -    const bool any_on_device = tensor->backend == GGML_BACKEND_TYPE_GPU
    -        || (tensor->src[0] != nullptr && (tensor->src[0]->backend == GGML_BACKEND_TYPE_GPU || tensor->src[0]->backend == GGML_BACKEND_TYPE_GPU_SPLIT))
    -        || (tensor->src[1] != nullptr && tensor->src[1]->backend == GGML_BACKEND_TYPE_GPU);
    -
    -    if (!any_on_device && tensor->op != GGML_OP_MUL_MAT && tensor->op != GGML_OP_MUL_MAT_ID) {
    -        return false;
    -    }
    -
    -    if (tensor->op == GGML_OP_MUL_MAT) {
    -        if (tensor->src[0]->ne[3] != tensor->src[1]->ne[3]) {
    -#ifndef NDEBUG
    -            fprintf(stderr, "%s: cannot compute %s: src0->ne[3] = %" PRId64 ", src1->ne[3] = %" PRId64 " - fallback to CPU\n", __func__, tensor->name, tensor->src[0]->ne[3], tensor->src[1]->ne[3]);
    -#endif
    -            return false;
    -        }
    -    }
     
         switch (tensor->op) {
             case GGML_OP_REPEAT:
    @@ -16118,13 +12081,13 @@ bool ggml_sycl_compute_forward(struct ggml_compute_params * params, struct ggml_
                 func = ggml_sycl_rms_norm;
                 break;
             case GGML_OP_MUL_MAT:
    -            if (!any_on_device && !ggml_sycl_can_mul_mat(tensor->src[0], tensor->src[1], tensor)) {
    +            if (tensor->src[0]->ne[3] != tensor->src[1]->ne[3]) {
                     return false;
                 }
                 func = ggml_sycl_mul_mat;
                 break;
             case GGML_OP_MUL_MAT_ID:
    -            if (!any_on_device && !ggml_sycl_can_mul_mat(tensor->src[2], tensor->src[1], tensor)) {
    +            if (tensor->src[0]->ne[3] != tensor->src[1]->ne[3]) {
                     return false;
                 }
                 func = ggml_sycl_mul_mat_id;
    @@ -16176,17 +12139,11 @@ bool ggml_sycl_compute_forward(struct ggml_compute_params * params, struct ggml_
                 return false;
         }
     
    -    if (tensor->src[0] != nullptr && tensor->src[0]->backend == GGML_BACKEND_TYPE_GPU_SPLIT) {
    -        ggml_sycl_set_peer_access(tensor->src[1]->ne[1]);
    +    if (tensor->src[0] != nullptr && ggml_backend_buffer_is_sycl_split(tensor->src[0]->buffer)) {
    +        ggml_sycl_set_peer_access(tensor->src[1]->ne[1], ctx.device);
         }
     
    -    if (params->ith != 0) {
    -        return true;
    -    }
    -    if (params->type == GGML_TASK_TYPE_INIT || params->type == GGML_TASK_TYPE_FINALIZE) {
    -        return true;
    -    }
    -    func(tensor->src[0], tensor->src[1], tensor);
    +    func(ctx, tensor->src[0], tensor->src[1], tensor);
         return true;
     }
     
    @@ -16194,13 +12151,9 @@ GGML_API GGML_CALL void   ggml_sycl_get_gpu_list(int *id_list, int max_len) try
         GGML_SYCL_DEBUG("[SYCL] call ggml_sycl_get_gpu_list\n");
         for(int i=0;igpus.size();i++){
    +    for (int i=0;i< ggml_sycl_info().device_count;i++){
             if (i>=max_len) break;
    -        id_list[i] = g_sycl_gpu_mgr->gpus[i];
    +        id_list[i] = i;
         }
         return;
     }
    @@ -16228,9 +12181,8 @@ GGML_API GGML_CALL void ggml_sycl_get_device_description(int device, char *descr
                                           size_t description_size) try {
         GGML_SYCL_DEBUG("[SYCL] call ggml_sycl_get_device_description\n");
         dpct::device_info prop;
    -    int device_id = g_sycl_gpu_mgr->gpus[device];
         SYCL_CHECK(CHECK_TRY_ERROR(dpct::get_device_info(
    -        prop, dpct::dev_mgr::instance().get_device(device_id))));
    +        prop, dpct::dev_mgr::instance().get_device(device))));
         snprintf(description, description_size, "%s", prop.get_name());
     }
     catch (sycl::exception const &exc) {
    @@ -16254,9 +12206,8 @@ GGML_CALL void ggml_backend_sycl_get_device_memory(int device, size_t *free,
         device information which may not be supported by all compilers or runtimes.
         You may need to adjust the code.
         */
    -   int device_id = g_sycl_gpu_mgr->gpus[device];
         SYCL_CHECK(CHECK_TRY_ERROR(
    -        dpct::dev_mgr::instance().get_device(device_id).get_memory_info(*free, *total)));
    +        dpct::dev_mgr::instance().get_device(device).get_memory_info(*free, *total)));
     }
     catch (sycl::exception const &exc) {
       std::cerr << exc.what() << "Exception caught at file:" << __FILE__
    @@ -16275,32 +12226,21 @@ catch (sycl::exception const &exc) {
     struct ggml_backend_sycl_buffer_context {
         int device;
         void * dev_ptr = nullptr;
    -    ggml_tensor_extra_gpu * temp_tensor_extras = nullptr;
    -    size_t temp_tensor_extra_index = 0;
    +    queue_ptr stream;
         std::string name;
     
    -     ggml_backend_sycl_buffer_context(int device, void * dev_ptr) :
    -        device(device), dev_ptr(dev_ptr) {
    +     ggml_backend_sycl_buffer_context(int device, void * dev_ptr, queue_ptr stream) :
    +        device(device), dev_ptr(dev_ptr), stream(stream) {
                 check_allow_gpu_index(device);
    -            int id = g_sycl_gpu_mgr->gpus[device];
    -            name = (GGML_SYCL_NAME + std::to_string(id));
    +            name = (GGML_SYCL_NAME + std::to_string(device));
             }
     
    -    ~ ggml_backend_sycl_buffer_context() {
    -        delete[] temp_tensor_extras;
    -    }
     
    -    ggml_tensor_extra_gpu * ggml_sycl_alloc_temp_tensor_extra() {
    -        if (temp_tensor_extras == nullptr) {
    -            temp_tensor_extras = new ggml_tensor_extra_gpu[GGML_SYCL_MAX_NODES];
    +    ~ggml_backend_sycl_buffer_context() {
    +        if (dev_ptr != nullptr) {
    +            ggml_sycl_set_device(device);
    +            SYCL_CHECK(CHECK_TRY_ERROR(sycl::free(dev_ptr, *stream)));
             }
    -
    -        size_t alloc_index = temp_tensor_extra_index;
    -        temp_tensor_extra_index = (temp_tensor_extra_index + 1) % GGML_SYCL_MAX_NODES;
    -        ggml_tensor_extra_gpu * extra = &temp_tensor_extras[alloc_index];
    -        memset(extra, 0, sizeof(*extra));
    -
    -        return extra;
         }
     };
     
    @@ -16317,10 +12257,7 @@ static void
     ggml_backend_sycl_buffer_free_buffer(ggml_backend_buffer_t buffer) try {
         ggml_backend_sycl_buffer_context * ctx = ( ggml_backend_sycl_buffer_context *)buffer->context;
         ggml_sycl_set_device(ctx->device);
    -    const dpct::queue_ptr stream = g_syclStreams[ctx->device][0];
     
    -    SYCL_CHECK(
    -        CHECK_TRY_ERROR(sycl::free(ctx->dev_ptr, *stream)));
         delete ctx;
     }
     catch (sycl::exception const &exc) {
    @@ -16346,11 +12283,6 @@ ggml_backend_sycl_buffer_init_tensor(ggml_backend_buffer_t buffer,
             return;
         }
     
    -    ggml_tensor_extra_gpu * extra = ctx->ggml_sycl_alloc_temp_tensor_extra();
    -
    -    extra->data_device[ctx->device] = tensor->data;
    -    tensor->backend = GGML_BACKEND_TYPE_GPU;
    -    tensor->extra = extra;
     
         if (ggml_is_quantized(tensor->type)) {
             // initialize padding to 0 to avoid possible NaN values
    @@ -16358,7 +12290,7 @@ ggml_backend_sycl_buffer_init_tensor(ggml_backend_buffer_t buffer,
             size_t padded_size = ggml_backend_buft_get_alloc_size(buffer->buft, tensor);
     
             if (padded_size > original_size && tensor->view_src == nullptr) {
    -            SYCL_CHECK(CHECK_TRY_ERROR(g_syclStreams[ctx->device][0]->memset(
    +            SYCL_CHECK(CHECK_TRY_ERROR(ctx->stream->memset(
                     (char *)tensor->data + original_size, 0,
                     padded_size - original_size).wait()));
             }
    @@ -16374,19 +12306,17 @@ static void ggml_backend_sycl_buffer_set_tensor(ggml_backend_buffer_t buffer,
                                                     ggml_tensor *tensor,
                                                     const void *data, size_t offset,
                                                     size_t size) try {
    -    GGML_ASSERT(tensor->backend == GGML_BACKEND_TYPE_GPU);
     
         ggml_backend_sycl_buffer_context * ctx = ( ggml_backend_sycl_buffer_context *)buffer->context;
     
         ggml_sycl_set_device(ctx->device);
    -    const dpct::queue_ptr stream = g_syclStreams[ctx->device][0];
    +    auto stream = &(dpct::dev_mgr::instance().get_device(ctx->device).default_queue());
         SYCL_CHECK(
             CHECK_TRY_ERROR(dpct::dev_mgr::instance().get_device(ctx->device).queues_wait_and_throw()));
         char* host_buf = (char*)malloc(size);
         memcpy(host_buf, data, size);
         SYCL_CHECK(
    -        CHECK_TRY_ERROR((*stream)
    -                             .memcpy((char *)tensor->data + offset, host_buf, size)
    +        CHECK_TRY_ERROR((*stream).memcpy((char *)tensor->data + offset, host_buf, size)
                                  .wait()));
         free(host_buf);
     }
    @@ -16400,19 +12330,14 @@ static void ggml_backend_sycl_buffer_get_tensor(ggml_backend_buffer_t buffer,
                                                     const ggml_tensor *tensor,
                                                     void *data, size_t offset,
                                                     size_t size) try {
    -    GGML_ASSERT(tensor->backend == GGML_BACKEND_TYPE_GPU);
     
         ggml_backend_sycl_buffer_context * ctx = ( ggml_backend_sycl_buffer_context *)buffer->context;
     
         ggml_sycl_set_device(ctx->device);
    -    const dpct::queue_ptr stream = g_syclStreams[ctx->device][0];
    -
    -    SYCL_CHECK(
    -        CHECK_TRY_ERROR(dpct::dev_mgr::instance().get_device(ctx->device).queues_wait_and_throw()));
    +    auto stream = dpct::dev_mgr::instance().get_device(ctx->device).default_queue();
     
         SYCL_CHECK(CHECK_TRY_ERROR(
    -        (*stream)
    -            .memcpy(data, (const char *)tensor->data + offset, size)
    +        stream.memcpy(data, (const char *)tensor->data + offset, size)
                 .wait()));
     }
     catch (sycl::exception const &exc) {
    @@ -16427,7 +12352,7 @@ ggml_backend_sycl_buffer_cpy_tensor(ggml_backend_buffer_t buffer,
                                         ggml_tensor *dst) try {
         if (ggml_backend_buffer_is_sycl(src->buffer)) {
             ggml_backend_sycl_buffer_context * src_ctx = (ggml_backend_sycl_buffer_context *)src->buffer->context;
    -        ggml_backend_sycl_buffer_context * dst_ctx = (ggml_backend_sycl_buffer_context *)buffer->context;
    +        ggml_backend_sycl_buffer_context * dst_ctx = (ggml_backend_sycl_buffer_context *)dst->buffer->context;
     
             ggml_sycl_set_device(src_ctx->device);
             /*
    @@ -16451,8 +12376,8 @@ ggml_backend_sycl_buffer_cpy_tensor(ggml_backend_buffer_t buffer,
             was inserted. You need to rewrite this code.
             */
     
    -        dpct::queue_ptr stream_dst = g_syclStreams[dst_ctx->device][0];
    -        dpct::queue_ptr stream_src = g_syclStreams[src_ctx->device][0];
    +        queue_ptr stream_dst = dst_ctx->stream;
    +        queue_ptr stream_src = src_ctx->stream;
             size_t size = ggml_nbytes(src);
     
             //todo. it's dirty solutino to walkaroud known issue:device2device cross GPUs.
    @@ -16487,7 +12412,7 @@ static void ggml_backend_sycl_buffer_clear(ggml_backend_buffer_t buffer,
          ggml_backend_sycl_buffer_context * ctx = ( ggml_backend_sycl_buffer_context *)buffer->context;
     
         ggml_sycl_set_device(ctx->device);
    -    const dpct::queue_ptr stream = g_syclStreams[ctx->device][0];
    +    queue_ptr stream = ctx->stream;
         SYCL_CHECK(
             CHECK_TRY_ERROR(dpct::get_current_device().queues_wait_and_throw()));
     
    @@ -16517,11 +12442,9 @@ static struct ggml_backend_buffer_i ggml_backend_sycl_buffer_interface = {
     struct ggml_backend_sycl_buffer_type_context {
         int device;
         std::string name;
    -};
     
    -struct ggml_backend_sycl_context {
    -    int device;
    -    std::string name;
    +    // each buffer type has its own stream
    +    queue_ptr stream = nullptr;
     };
     
     GGML_CALL static const char * ggml_backend_sycl_buffer_type_name(ggml_backend_buffer_type_t buft) {
    @@ -16534,13 +12457,13 @@ ggml_backend_sycl_buffer_type_alloc_buffer(ggml_backend_buffer_type_t buft,
                                                size_t size) try {
         ggml_backend_sycl_buffer_type_context * buft_ctx = (ggml_backend_sycl_buffer_type_context *)buft->context;
         ggml_sycl_set_device(buft_ctx->device);
    -    const dpct::queue_ptr stream = g_syclStreams[buft_ctx->device][0];
    +    const queue_ptr stream = buft_ctx->stream;
         size = std::max(size, (size_t)1); // syclMalloc returns null for size 0
     
         void * dev_ptr;
         SYCL_CHECK(CHECK_TRY_ERROR(dev_ptr = (void *)sycl::malloc_device(
                                         size, *stream)));
    -    ggml_backend_sycl_buffer_context * ctx = new  ggml_backend_sycl_buffer_context(buft_ctx->device, dev_ptr);
    +    ggml_backend_sycl_buffer_context * ctx = new  ggml_backend_sycl_buffer_context(buft_ctx->device, dev_ptr, buft_ctx->stream);
         return ggml_backend_buffer_init(buft, ggml_backend_sycl_buffer_interface, ctx, size);
     }
     catch (sycl::exception const &exc) {
    @@ -16584,26 +12507,58 @@ static ggml_backend_buffer_type_i ggml_backend_sycl_buffer_type_interface = {
         /* .is_host          = */ nullptr,
     };
     
    -ggml_backend_buffer_type_t ggml_backend_sycl_buffer_type(int device_index) {
    +ggml_backend_buffer_type_t ggml_backend_sycl_buffer_type(int device) {
    +    static std::mutex mutex;
    +    std::lock_guard lock(mutex);
    +
    +    GGML_SYCL_DEBUG("[SYCL] call ggml_backend_sycl_buffer_type\n");
    +
    +    if (device>=ggml_sycl_info().device_count or device<0) {
    +        printf("ggml_backend_sycl_buffer_type error: device_index:%d is out of range [0, %d], miss to call ggml_backend_sycl_set_single_device()\n",
    +            device, ggml_sycl_info().device_count-1);
    +        GGML_ASSERT(device=g_device_count or device_index<0) {
    +    int device = ctx->device;
    +    if (device>=ggml_sycl_info().device_count or device<0) {
             printf("ggml_backend_sycl_buffer_type error: device_index:%d is out of range [0, %d], miss to call ggml_backend_sycl_set_single_device()\n",
    -            device_index, g_device_count-1);
    -        GGML_ASSERT(device_indexgpus[i])},
    +                /* .context  = */ new ggml_backend_sycl_buffer_type_context{i, GGML_SYCL_NAME + std::to_string(i), ctx->stream(i, 0)},
                 };
             }
    -        g_ggml_backend_sycl_buffer_type_initialized = true;
    +        ggml_backend_sycl_buffer_type_initialized = true;
         }
    -    return &ggml_backend_sycl_buffer_types[device_index];
    +    return &ggml_backend_sycl_buffer_types[device];
     }
     
     // sycl split buffer type
    @@ -16613,7 +12568,7 @@ static void get_row_split(int64_t * row_low, int64_t * row_high, const ggml_tens
     
         *row_low = id == 0 ? 0 : nrows*tensor_split[id];
         *row_low -= *row_low % rounding;
    -    if (id == g_device_count - 1) {
    +    if (id == ggml_sycl_info().device_count - 1) {
             *row_high = nrows;
         } else {
             *row_high = nrows*tensor_split[id + 1];
    @@ -16624,9 +12579,8 @@ static void get_row_split(int64_t * row_low, int64_t * row_high, const ggml_tens
     struct ggml_backend_sycl_split_buffer_context {
         ~ggml_backend_sycl_split_buffer_context() try {
             for (ggml_tensor_extra_gpu * extra : tensor_extras) {
    -            for (int i = 0; i < g_device_count; ++i) {
    -                // int id = g_sycl_gpu_mgr->gpus[i];
    -                for (int64_t is = 0; is < MAX_STREAMS; ++is) {
    +            for (int i = 0; i < ggml_sycl_info().device_count; ++i) {
    +                for (int64_t is = 0; is < GGML_SYCL_MAX_STREAMS; ++is) {
                         if (extra->events[i][is] != nullptr) {
                             /*
                             DPCT1009:206: SYCL uses exceptions to report errors and
    @@ -16647,7 +12601,7 @@ struct ggml_backend_sycl_split_buffer_context {
                         */
                         ggml_sycl_set_device(i);
                         SYCL_CHECK(CHECK_TRY_ERROR(sycl::free(
    -                        extra->data_device[i], *g_syclStreams[i][0])));
    +                        extra->data_device[i], *(streams[i]))));
                     }
                 }
                 delete extra;
    @@ -16660,6 +12614,7 @@ struct ggml_backend_sycl_split_buffer_context {
         }
     
         std::vector tensor_extras;
    +    std::vector streams;
     };
     
     GGML_CALL static const char * ggml_backend_sycl_split_buffer_get_name(ggml_backend_buffer_t buffer) {
    @@ -16697,9 +12652,9 @@ ggml_backend_sycl_split_buffer_init_tensor(ggml_backend_buffer_t buffer,
         ggml_tensor_extra_gpu * extra = new ggml_tensor_extra_gpu{};
     
         ctx->tensor_extras.push_back(extra);
    +        ctx->streams.push_back(&(dpct::get_current_device().default_queue()));
     
    -    for (int i = 0; i < g_device_count; ++i) {
    -        // int id = g_sycl_gpu_mgr->gpus[i];
    +    for (int i = 0; i < ggml_sycl_info().device_count; ++i) {
             int64_t row_low, row_high;
             get_row_split(&row_low, &row_high, tensor, buft_ctx->tensor_split, i);
     
    @@ -16719,6 +12674,7 @@ ggml_backend_sycl_split_buffer_init_tensor(ggml_backend_buffer_t buffer,
             // FIXME: do not crash if cudaMalloc fails
             // currently, init_tensor cannot fail, it needs to be fixed in ggml-backend first
             ggml_sycl_set_device(i);
    +        const queue_ptr stream = ctx->streams[i];
             char * buf;
             /*
             DPCT1009:208: SYCL uses exceptions to report errors and does not use the
    @@ -16726,7 +12682,7 @@ ggml_backend_sycl_split_buffer_init_tensor(ggml_backend_buffer_t buffer,
             was inserted. You need to rewrite this code.
             */
             SYCL_CHECK(CHECK_TRY_ERROR(buf = (char *)sycl::malloc_device(
    -                                        size, *g_syclStreams[i][0])));
    +                                        size, *stream)));
     
             // set padding to 0 to avoid possible NaN values
             if (size > original_size) {
    @@ -16736,14 +12692,14 @@ ggml_backend_sycl_split_buffer_init_tensor(ggml_backend_buffer_t buffer,
                 string was inserted. You need to rewrite this code.
                 */
                 SYCL_CHECK(CHECK_TRY_ERROR(
    -                (*g_syclStreams[i][0])
    +                (*stream)
                         .memset(buf + original_size, 0, size - original_size)
                         .wait()));
             }
     
             extra->data_device[i] = buf;
     
    -        for (int64_t is = 0; is < MAX_STREAMS; ++is) {
    +        for (int64_t is = 0; is < GGML_SYCL_MAX_STREAMS; ++is) {
                 /*
                 DPCT1009:210: SYCL uses exceptions to report errors and does not use
                 the error codes. The original code was commented out and a warning
    @@ -16770,14 +12726,14 @@ ggml_backend_sycl_split_buffer_set_tensor(ggml_backend_buffer_t buffer,
         GGML_ASSERT(offset == 0);
         GGML_ASSERT(size == ggml_nbytes(tensor));
     
    +    ggml_backend_sycl_split_buffer_context * ctx = (ggml_backend_sycl_split_buffer_context *)buffer->context;
         ggml_backend_sycl_split_buffer_type_context * buft_ctx = (ggml_backend_sycl_split_buffer_type_context *)buffer->buft->context;
     
         const int64_t ne0 = tensor->ne[0];
         const size_t nb1 = tensor->nb[1];
         ggml_tensor_extra_gpu * extra = (ggml_tensor_extra_gpu *)tensor->extra;
     
    -    for (int i = 0; i < g_device_count; ++i) {
    -        // int id = g_sycl_gpu_mgr->gpus[i];
    +    for (int i = 0; i < ggml_sycl_info().device_count; ++i) {
             int64_t row_low, row_high;
             get_row_split(&row_low, &row_high, tensor, buft_ctx->tensor_split, i);
     
    @@ -16802,8 +12758,9 @@ ggml_backend_sycl_split_buffer_set_tensor(ggml_backend_buffer_t buffer,
             was inserted. You need to rewrite this code.
             */
             ggml_sycl_set_device(i);
    +        const queue_ptr stream = ctx->streams[i];
             SYCL_CHECK(CHECK_TRY_ERROR(
    -            (*g_syclStreams[i][0])
    +            (*stream)
                     .memcpy(extra->data_device[i], buf_host, original_size)
                     .wait()));
         }
    @@ -16822,14 +12779,14 @@ ggml_backend_sycl_split_buffer_get_tensor(ggml_backend_buffer_t buffer,
         GGML_ASSERT(offset == 0);
         GGML_ASSERT(size == ggml_nbytes(tensor));
     
    +    ggml_backend_sycl_split_buffer_context * ctx = (ggml_backend_sycl_split_buffer_context *)buffer->context;
         ggml_backend_sycl_split_buffer_type_context * buft_ctx = (ggml_backend_sycl_split_buffer_type_context *)buffer->buft->context;
     
         const int64_t ne0 = tensor->ne[0];
         const size_t nb1 = tensor->nb[1];
         ggml_tensor_extra_gpu * extra = (ggml_tensor_extra_gpu *)tensor->extra;
     
    -    for (int i = 0; i < g_device_count; ++i) {
    -        // int id = g_sycl_gpu_mgr->gpus[i];
    +    for (int i = 0; i < ggml_sycl_info().device_count; ++i) {
             int64_t row_low, row_high;
             get_row_split(&row_low, &row_high, tensor, buft_ctx->tensor_split, i);
     
    @@ -16854,8 +12811,9 @@ ggml_backend_sycl_split_buffer_get_tensor(ggml_backend_buffer_t buffer,
             was inserted. You need to rewrite this code.
             */
             ggml_sycl_set_device(i);
    +        const queue_ptr stream = ctx->streams[i];
             SYCL_CHECK(CHECK_TRY_ERROR(
    -            (*g_syclStreams[i][0])
    +            (*stream)
                     .memcpy(buf_host, extra->data_device[i], original_size)
                     .wait()));
         }
    @@ -16911,8 +12869,7 @@ GGML_CALL static size_t ggml_backend_sycl_split_buffer_type_get_alloc_size(ggml_
     
         const int64_t ne0 = tensor->ne[0];
     
    -    for (int i = 0; i < g_device_count; ++i) {
    -        // int id = g_sycl_gpu_mgr->gpus[i];
    +    for (int i = 0; i < ggml_sycl_info().device_count; ++i) {
             int64_t row_low, row_high;
             get_row_split(&row_low, &row_high, tensor, ctx->tensor_split, i);
     
    @@ -16948,8 +12905,11 @@ static ggml_backend_buffer_type_i ggml_backend_sycl_split_buffer_type_interface
     };
     
     GGML_CALL ggml_backend_buffer_type_t ggml_backend_sycl_split_buffer_type(const float * tensor_split) {
    +    static std::mutex mutex;
    +    std::lock_guard lock(mutex);
    +
         GGML_SYCL_DEBUG("[SYCL] call ggml_backend_sycl_split_buffer_type\n");
    -    ggml_init_sycl();
    +    ggml_check_sycl();
         // FIXME: this is not thread safe
         static std::map, struct ggml_backend_buffer_type> buft_map;
     
    @@ -16957,16 +12917,14 @@ GGML_CALL ggml_backend_buffer_type_t ggml_backend_sycl_split_buffer_type(const f
     
         bool all_zero = tensor_split == nullptr || std::all_of(tensor_split, tensor_split + GGML_SYCL_MAX_DEVICES, [](float x) { return x == 0.0f; });
         if (all_zero) {
    -        tensor_split_arr = g_default_tensor_split;
    +        tensor_split_arr = ggml_sycl_info().default_tensor_split;
         } else {
             float split_sum = 0.0f;
    -        for (int i = 0; i < g_device_count; ++i) {
    -            // int id = g_sycl_gpu_mgr->gpus[i];
    +        for (int i = 0; i < ggml_sycl_info().device_count; ++i) {
                 tensor_split_arr[i] = split_sum;
                 split_sum += tensor_split[i];
             }
    -        for (int i = 0; i < g_device_count; ++i) {
    -            // int id = g_sycl_gpu_mgr->gpus[i];
    +        for (int i = 0; i < ggml_sycl_info().device_count; ++i) {
                 tensor_split_arr[i] /= split_sum;
             }
         }
    @@ -17064,9 +13022,11 @@ GGML_CALL static void ggml_backend_sycl_set_tensor_async(ggml_backend_t backend,
                                                    const void *data, size_t offset,
                                                    size_t size) try {
         ggml_backend_sycl_context * sycl_ctx = (ggml_backend_sycl_context *)backend->context;
    -    GGML_ASSERT(tensor->buffer->buft == ggml_backend_sycl_buffer_type(sycl_ctx->device) && "unsupported buffer type");
    -    GGML_ASSERT(tensor->backend == GGML_BACKEND_TYPE_GPU);
    -    SYCL_CHECK(CHECK_TRY_ERROR(g_syclStreams[sycl_ctx->device][0]->memcpy(
    +    ggml_backend_buffer_t buf = tensor->view_src ? tensor->view_src->buffer : tensor->buffer;
    +
    +    GGML_ASSERT(buf->buft == ggml_backend_sycl_buffer_type(sycl_ctx->device) && "unsupported buffer type");
    +    const queue_ptr stream = sycl_ctx->stream(sycl_ctx->device, 0);
    +    SYCL_CHECK(CHECK_TRY_ERROR((stream)->memcpy(
             (char *)tensor->data + offset, data, size).wait()));
     }
     catch (sycl::exception const &exc) {
    @@ -17080,9 +13040,11 @@ GGML_CALL static void ggml_backend_sycl_get_tensor_async(ggml_backend_t backend,
                                                    void *data, size_t offset,
                                                    size_t size) try {
         ggml_backend_sycl_context * sycl_ctx = (ggml_backend_sycl_context *)backend->context;
    -    GGML_ASSERT(tensor->buffer->buft == ggml_backend_sycl_buffer_type(sycl_ctx->device) && "unsupported buffer type");
    -    GGML_ASSERT(tensor->backend == GGML_BACKEND_TYPE_GPU);
    -    SYCL_CHECK(CHECK_TRY_ERROR(g_syclStreams[sycl_ctx->device][0]->memcpy(
    +    ggml_backend_buffer_t buf = tensor->view_src ? tensor->view_src->buffer : tensor->buffer;
    +
    +    GGML_ASSERT(buf->buft == ggml_backend_sycl_buffer_type(sycl_ctx->device) && "unsupported buffer type");
    +    const queue_ptr stream = sycl_ctx->stream(sycl_ctx->device, 0);
    +    SYCL_CHECK(CHECK_TRY_ERROR((stream)->memcpy(
             data, (const char *)tensor->data + offset, size).wait()));
     }
     catch (sycl::exception const &exc) {
    @@ -17101,7 +13063,8 @@ GGML_CALL static bool ggml_backend_sycl_cpy_tensor_async(ggml_backend_t backend,
             error codes. The original code was commented out and a warning string
             was inserted. You need to rewrite this code.
             */
    -        SYCL_CHECK(CHECK_TRY_ERROR(g_syclStreams[sycl_ctx->device][0]->memcpy(
    +        const queue_ptr stream = sycl_ctx->stream(sycl_ctx->device, 0);
    +        SYCL_CHECK(CHECK_TRY_ERROR((stream)->memcpy(
                 dst->data, src->data, ggml_nbytes(dst)).wait()));
             return true;
         }
    @@ -17116,7 +13079,8 @@ catch (sycl::exception const &exc) {
     
     static void ggml_backend_sycl_synchronize(ggml_backend_t backend) try {
         ggml_backend_sycl_context * sycl_ctx = (ggml_backend_sycl_context *)backend->context;
    -    SYCL_CHECK(CHECK_TRY_ERROR(g_syclStreams[sycl_ctx->device][0]->wait()));
    +    const queue_ptr stream = sycl_ctx->stream(sycl_ctx->device, 0);
    +    SYCL_CHECK(CHECK_TRY_ERROR((stream)->wait()));
     
         UNUSED(backend);
     }
    @@ -17130,28 +13094,21 @@ GGML_CALL static ggml_status ggml_backend_sycl_graph_compute(ggml_backend_t back
         ggml_backend_sycl_context * sycl_ctx = (ggml_backend_sycl_context *)backend->context;
         ggml_sycl_set_main_device(sycl_ctx->device);
     
    -    ggml_compute_params params = {};
    -    params.type = GGML_TASK_TYPE_COMPUTE;
    -    params.ith = 0;
    +
         for (int i = 0; i < cgraph->n_nodes; i++) {
             ggml_tensor * node = cgraph->nodes[i];
             if (ggml_is_empty(node) || node->op == GGML_OP_RESHAPE || node->op == GGML_OP_TRANSPOSE || node->op == GGML_OP_VIEW || node->op == GGML_OP_PERMUTE || node->op == GGML_OP_NONE) {
                 continue;
             }
     #ifndef NDEBUG
    -        assert(node->backend == GGML_BACKEND_TYPE_GPU || node->backend == GGML_BACKEND_TYPE_GPU_SPLIT);
             assert(node->buffer->buft == ggml_backend_sycl_buffer_type(sycl_ctx->device));
    -        assert(node->extra != nullptr);
    -
             for (int j = 0; j < GGML_MAX_SRC; j++) {
                 if (node->src[j] != nullptr) {
    -                assert(node->src[j]->backend == GGML_BACKEND_TYPE_GPU || node->src[j]->backend == GGML_BACKEND_TYPE_GPU_SPLIT);
                     assert(node->src[j]->buffer->buft == ggml_backend_sycl_buffer_type(sycl_ctx->device));
    -                assert(node->src[j]->extra != nullptr);
                 }
             }
     #endif
    -        bool ok = ggml_sycl_compute_forward(¶ms, node);
    +        bool ok = ggml_sycl_compute_forward(*sycl_ctx, node);
             if (!ok) {
                 fprintf(stderr, "%s: error: op not supported %s (%s)\n", __func__, node->name, ggml_op_name(node->op));
             }
    @@ -17332,16 +13289,14 @@ static ggml_guid_t ggml_backend_sycl_guid() {
     
     GGML_CALL ggml_backend_t ggml_backend_sycl_init(int device) {
         GGML_SYCL_DEBUG("[SYCL] call ggml_backend_sycl_init\n");
    -    ggml_init_sycl();
    +    ggml_check_sycl();
     
         check_allow_gpu_index(device);
     
    -    // not strictly necessary, but it may reduce the overhead of the first graph_compute
    -    ggml_sycl_set_main_device(device);
    -    int id = g_sycl_gpu_mgr->gpus[device];
    -    ggml_backend_sycl_context * ctx = new ggml_backend_sycl_context {
    -        /* .device = */ device,
    -        /* .name   = */ GGML_SYCL_NAME + std::to_string(id),
    +    ggml_backend_sycl_context * ctx = new ggml_backend_sycl_context(device);
    +    if (ctx == nullptr) {
    +        fprintf(stderr, "%s: error: failed to allocate context\n", __func__);
    +        return nullptr;
         };
     
         ggml_backend_t sycl_backend = new ggml_backend {
    @@ -17359,8 +13314,7 @@ bool ggml_backend_is_sycl(ggml_backend_t backend) {
     
     GGML_CALL int ggml_backend_sycl_get_device_count() {
         GGML_SYCL_DEBUG("[SYCL] call ggml_backend_sycl_get_device_count\n");
    -    if (!g_sycl_gpu_mgr) g_sycl_gpu_mgr = new sycl_gpu_mgr();
    -    return g_sycl_gpu_mgr->get_gpu_count();
    +    return ggml_sycl_info().device_count;
     }
     
     GGML_CALL static ggml_backend_t ggml_backend_reg_sycl_init(const char * params, void * user_data) {
    @@ -17370,60 +13324,14 @@ GGML_CALL static ggml_backend_t ggml_backend_reg_sycl_init(const char * params,
         UNUSED(params);
     }
     
    -GGML_API GGML_CALL int ggml_backend_sycl_get_device_index(int device_id) {
    -    GGML_SYCL_DEBUG("[SYCL] call ggml_backend_sycl_get_device_index\n");
    -    return g_sycl_gpu_mgr->get_index(device_id);
    -}
    -
    -GGML_API GGML_CALL int ggml_backend_sycl_get_device_id(int device_index) {
    -    GGML_SYCL_DEBUG("[SYCL] call ggml_backend_sycl_get_device_id\n");
    -    return g_sycl_gpu_mgr->gpus[device_index];
    -}
    -
    -GGML_API GGML_CALL void ggml_backend_sycl_set_single_device_mode(int main_gpu_id) {
    -    ggml_init_sycl();
    -    GGML_SYCL_DEBUG("[SYCL] call ggml_backend_sycl_set_single_device_mode\n");
    -    fprintf(stderr, "ggml_backend_sycl_set_single_device: use single device: [%d]\n", main_gpu_id);
    -    GGML_ASSERT(main_gpu_idget_gpu_count());
    -    g_ggml_backend_sycl_buffer_type_initialized = false;
    -}
    -
    -GGML_API GGML_CALL void ggml_backend_sycl_set_mul_device_mode() {
    -    ggml_init_sycl();
    -    GGML_SYCL_DEBUG("[SYCL] call ggml_backend_sycl_set_mul_device_mode\n");
    -
    -    if (g_ggml_sycl_backend_gpu_mode == SYCL_MUL_GPU_MODE) {
    -        return;
    -    }
    -
    -    fprintf(stderr, "ggml_backend_sycl_set_mul_device_mode: true\n");
    -
    -    if (g_sycl_gpu_mgr) {
    -        delete g_sycl_gpu_mgr;
    -    }
    -    g_sycl_gpu_mgr = new sycl_gpu_mgr();
    -    g_ggml_sycl_backend_gpu_mode = SYCL_MUL_GPU_MODE;
    -    ggml_init_by_gpus(g_sycl_gpu_mgr->get_gpu_count());
    -    g_ggml_backend_sycl_buffer_type_initialized = false;
    -}
    -
     extern "C" int ggml_backend_sycl_reg_devices();
     
     int ggml_backend_sycl_reg_devices() {
    -    ggml_backend_sycl_set_mul_device_mode();
    -    assert(g_device_count>0);
    -    for (int i = 0; i < g_device_count; i++) {
    -        int id = g_sycl_gpu_mgr->gpus[i];
    +    assert(ggml_sycl_info().device_count>0);
    +    for (int i = 0; i < ggml_sycl_info().device_count; i++) {
             char name[128];
    -        snprintf(name, sizeof(name), "%s%d", GGML_SYCL_NAME, id);
    +        snprintf(name, sizeof(name), "%s%d", GGML_SYCL_NAME, i);
             ggml_backend_register(name, ggml_backend_reg_sycl_init, ggml_backend_sycl_buffer_type(i), (void *) (intptr_t) i);
         }
    -    return g_device_count;
    +    return ggml_sycl_info().device_count;
     }
    diff --git a/ggml-sycl.h b/ggml-sycl.h
    index a9f776fc1dd59..451938fc4151d 100644
    --- a/ggml-sycl.h
    +++ b/ggml-sycl.h
    @@ -8,14 +8,12 @@
     
     #include "ggml.h"
     #include "ggml-backend.h"
    +#include "ggml-sycl/presets.hpp"
     
     #ifdef  __cplusplus
     extern "C" {
     #endif
     
    -#define GGML_SYCL_MAX_DEVICES       48
    -#define GGML_SYCL_NAME "SYCL"
    -
     // backend API
     GGML_API ggml_backend_t ggml_backend_sycl_init(int device);
     
    @@ -33,13 +31,6 @@ GGML_API GGML_CALL void   ggml_sycl_get_gpu_list(int *id_list, int max_len);
     GGML_API GGML_CALL void   ggml_sycl_get_device_description(int device, char *description, size_t description_size);
     GGML_API GGML_CALL int   ggml_backend_sycl_get_device_count();
     GGML_API GGML_CALL void ggml_backend_sycl_get_device_memory(int device, size_t *free, size_t *total);
    -GGML_API GGML_CALL int ggml_backend_sycl_get_device_index(int device_id);
    -
    -// TODO: these are temporary
    -//       ref: https://github.com/ggerganov/llama.cpp/pull/6022#issuecomment-1992615670
    -GGML_API GGML_CALL int ggml_backend_sycl_get_device_id(int device_index);
    -GGML_API GGML_CALL void ggml_backend_sycl_set_single_device_mode(int main_gpu_id);
    -GGML_API GGML_CALL void ggml_backend_sycl_set_mul_device_mode();
     
     // SYCL doesn't support registering host memory, keep here for reference
     // GGML_API GGML_CALL bool ggml_backend_sycl_register_host_buffer(void * buffer, size_t size);
    diff --git a/ggml-sycl/backend.hpp b/ggml-sycl/backend.hpp
    new file mode 100644
    index 0000000000000..88bae59678bdd
    --- /dev/null
    +++ b/ggml-sycl/backend.hpp
    @@ -0,0 +1,18 @@
    +//
    +// MIT license
    +// Copyright (C) 2024 Intel Corporation
    +// SPDX-License-Identifier: MIT
    +//
    +
    +//
    +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
    +// See https://llvm.org/LICENSE.txt for license information.
    +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
    +//
    +
    +#ifndef GGML_SYCL_BACKEND_HPP
    +#define GGML_SYCL_BACKEND_HPP
    +
    +#include "common.hpp"
    +
    +#endif // GGML_SYCL_BACKEND_HPP
    diff --git a/ggml-sycl/common.cpp b/ggml-sycl/common.cpp
    new file mode 100644
    index 0000000000000..e878f4f50f09e
    --- /dev/null
    +++ b/ggml-sycl/common.cpp
    @@ -0,0 +1,53 @@
    +//
    +// MIT license
    +// Copyright (C) 2024 Intel Corporation
    +// SPDX-License-Identifier: MIT
    +//
    +
    +//
    +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
    +// See https://llvm.org/LICENSE.txt for license information.
    +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
    +//
    +
    +#include "common.hpp"
    +
    +int get_current_device_id() {
    +  return dpct::dev_mgr::instance().current_device_id();
    +}
    +
    +void* ggml_sycl_host_malloc(size_t size) try {
    +  if (getenv("GGML_SYCL_NO_PINNED") != nullptr) {
    +    return nullptr;
    +  }
    +
    +  void* ptr = nullptr;
    +  // allow to use dpct::get_in_order_queue() for host malloc
    +  dpct::err0 err = CHECK_TRY_ERROR(
    +      ptr = (void*)sycl::malloc_host(size, dpct::get_in_order_queue()));
    +
    +  if (err != 0) {
    +    // clear the error
    +    fprintf(
    +        stderr,
    +        "WARNING: failed to allocate %.2f MB of pinned memory: %s\n",
    +        size / 1024.0 / 1024.0,
    +        "syclGetErrorString is not supported");
    +    return nullptr;
    +  }
    +
    +  return ptr;
    +} catch (sycl::exception const& exc) {
    +  std::cerr << exc.what() << "Exception caught at file:" << __FILE__
    +            << ", line:" << __LINE__ << std::endl;
    +  std::exit(1);
    +}
    +
    +void ggml_sycl_host_free(void* ptr) try {
    +  // allow to use dpct::get_in_order_queue() for host malloc
    +  SYCL_CHECK(CHECK_TRY_ERROR(sycl::free(ptr, dpct::get_in_order_queue())));
    +} catch (sycl::exception const& exc) {
    +  std::cerr << exc.what() << "Exception caught at file:" << __FILE__
    +            << ", line:" << __LINE__ << std::endl;
    +  std::exit(1);
    +}
    diff --git a/ggml-sycl/common.hpp b/ggml-sycl/common.hpp
    new file mode 100644
    index 0000000000000..414c37eed0d5d
    --- /dev/null
    +++ b/ggml-sycl/common.hpp
    @@ -0,0 +1,298 @@
    +//
    +// MIT license
    +// Copyright (C) 2024 Intel Corporation
    +// SPDX-License-Identifier: MIT
    +//
    +
    +//
    +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
    +// See https://llvm.org/LICENSE.txt for license information.
    +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
    +//
    +
    +#ifndef GGML_SYCL_COMMON_HPP
    +#define GGML_SYCL_COMMON_HPP
    +
    +#include 
    +#include 
    +
    +#include "dpct/helper.hpp"
    +#include "presets.hpp"
    +
    +#define GGML_COMMON_DECL_SYCL
    +#define GGML_COMMON_IMPL_SYCL
    +#include "ggml-common.h"
    +
    +void* ggml_sycl_host_malloc(size_t size);
    +void ggml_sycl_host_free(void* ptr);
    +
    +static int g_ggml_sycl_debug = 0;
    +#define GGML_SYCL_DEBUG(...)        \
    +  do {                              \
    +    if (g_ggml_sycl_debug)          \
    +      fprintf(stderr, __VA_ARGS__); \
    +  } while (0)
    +
    +#define CHECK_TRY_ERROR(expr)                                            \
    +  [&]() {                                                                \
    +    try {                                                                \
    +      expr;                                                              \
    +      return dpct::success;                                              \
    +    } catch (std::exception const& e) {                                  \
    +      std::cerr << e.what() << "\nException caught at file:" << __FILE__ \
    +                << ", line:" << __LINE__ << ", func:" << __func__        \
    +                << std::endl;                                            \
    +      return dpct::default_error;                                        \
    +    }                                                                    \
    +  }()
    +
    +// #define DEBUG_SYCL_MALLOC
    +
    +static int g_work_group_size = 0;
    +// typedef sycl::half ggml_fp16_t;
    +
    +#define __SYCL_ARCH__ DPCT_COMPATIBILITY_TEMP
    +#define VER_4VEC 610 // todo for hardward optimize.
    +#define VER_GEN9 700 // todo for hardward optimize.
    +#define VER_GEN12 1000000 // todo for hardward optimize.
    +#define VER_GEN13 (VER_GEN12 + 1030) // todo for hardward optimize.
    +
    +#define GGML_SYCL_MAX_NODES 8192 // TODO: adapt to hardwares
    +
    +// define for XMX in Intel GPU
    +// TODO: currently, it's not used for XMX really.
    +#if !defined(GGML_SYCL_FORCE_MMQ)
    +    #define SYCL_USE_XMX
    +#endif
    +
    +// max batch size to use MMQ kernels when tensor cores are available
    +#define MMQ_MAX_BATCH_SIZE 32
    +
    +#if defined(_MSC_VER)
    +#pragma warning(disable : 4244 4267) // possible loss of data
    +#endif
    +
    +// dmmv = dequantize_mul_mat_vec
    +#ifndef GGML_SYCL_DMMV_X
    +#define GGML_SYCL_DMMV_X 32
    +#endif
    +#ifndef GGML_SYCL_MMV_Y
    +#define GGML_SYCL_MMV_Y 1
    +#endif
    +
    +typedef sycl::queue *queue_ptr;
    +
    +enum ggml_sycl_backend_gpu_mode {
    +  SYCL_UNSET_GPU_MODE = -1,
    +  SYCL_SINGLE_GPU_MODE = 0,
    +  SYCL_MUL_GPU_MODE
    +};
    +
    +static_assert(sizeof(sycl::half) == sizeof(ggml_fp16_t), "wrong fp16 size");
    +
    +static void crash() {
    +  int* ptr = NULL;
    +  *ptr = 0;
    +}
    +
    +[[noreturn]] static void ggml_sycl_error(
    +    const char* stmt,
    +    const char* func,
    +    const char* file,
    +    const int line,
    +    const char* msg) {
    +  fprintf(stderr, "SYCL error: %s: %s\n", stmt, msg);
    +  fprintf(stderr, "  in function %s at %s:%d\n", func, file, line);
    +  GGML_ASSERT(!"SYCL error");
    +}
    +
    +#define SYCL_CHECK(err)                     \
    +  do {                                      \
    +    auto err_ = (err);                      \
    +    if (err_ != 0)                          \
    +      ggml_sycl_error(                      \
    +          #err,                             \
    +          __func__,                         \
    +          __FILE__,                         \
    +          __LINE__,                         \
    +          "Meet error in this line code!"); \
    +  } while (0)
    +
    +#if DPCT_COMPAT_RT_VERSION >= 11100
    +#define GGML_SYCL_ASSUME(x) __builtin_assume(x)
    +#else
    +#define GGML_SYCL_ASSUME(x)
    +#endif // DPCT_COMPAT_RT_VERSION >= 11100
    +
    +#ifdef GGML_SYCL_F16
    +typedef sycl::half dfloat; // dequantize float
    +typedef sycl::half2 dfloat2;
    +#else
    +typedef float dfloat; // dequantize float
    +typedef sycl::float2 dfloat2;
    +#endif // GGML_SYCL_F16
    +
    +#define MMVQ_MAX_BATCH_SIZE  8
    +
    +static const int8_t kvalues_iq4nl[16]={-127, -104, -83, -65, -49, -35, -22, -10, 1, 13, 25, 38, 53, 69, 89, 113};
    +
    +static int g_all_sycl_device_count = -1;
    +static bool g_ggml_backend_sycl_buffer_type_initialized = false;
    +
    +static ggml_sycl_backend_gpu_mode g_ggml_sycl_backend_gpu_mode =
    +    SYCL_UNSET_GPU_MODE;
    +
    +static void* g_scratch_buffer = nullptr;
    +static size_t g_scratch_size = 0; // disabled by default
    +static size_t g_scratch_offset = 0;
    +
    +[[noreturn]] static inline void bad_arch(const sycl::stream& stream_ct1) {
    +  stream_ct1 << "ERROR: ggml-sycl was compiled without support for the "
    +                "current GPU architecture.\n";
    +  // __trap();
    +  std::exit(1);
    +
    +  (void)bad_arch; // suppress unused function warning
    +}
    +
    +int get_current_device_id();
    +
    +inline dpct::err0 ggml_sycl_set_device(const int device) try {
    +
    +  int current_device_id;
    +  SYCL_CHECK(CHECK_TRY_ERROR(current_device_id = get_current_device_id()));
    +
    +  // GGML_SYCL_DEBUG("ggml_sycl_set_device device_id=%d,
    +  // current_device_id=%d\n", device, current_device);
    +  if (device == current_device_id) {
    +    return 0;
    +  }
    +
    +  return CHECK_TRY_ERROR(dpct::select_device(device));
    +} catch (sycl::exception const& exc) {
    +  std::cerr << exc.what() << "Exception caught at file:" << __FILE__
    +            << ", line:" << __LINE__ << std::endl;
    +  crash();
    +  std::exit(1);
    +}
    +
    +//////////////////////
    +
    +struct ggml_sycl_device_info {
    +    int device_count;
    +
    +    struct sycl_device_info {
    +        int     cc;                 // compute capability
    +        // int     nsm;                // number of streaming multiprocessors
    +        // size_t  smpb;               // max. shared memory per block
    +        bool    vmm;                // virtual memory support
    +        size_t  total_vram;
    +    };
    +
    +    sycl_device_info devices[GGML_SYCL_MAX_DEVICES] = {};
    +
    +    std::array default_tensor_split = {};
    +};
    +
    +const ggml_sycl_device_info & ggml_sycl_info();
    +
    +struct ggml_sycl_pool {
    +    virtual ~ggml_sycl_pool() = default;
    +
    +    virtual void * alloc(size_t size, size_t * actual_size) = 0;
    +    virtual void free(void * ptr, size_t size) = 0;
    +};
    +
    +template
    +struct ggml_sycl_pool_alloc {
    +    ggml_sycl_pool * pool = nullptr;
    +    T * ptr = nullptr;
    +    size_t actual_size = 0;
    +
    +    explicit ggml_sycl_pool_alloc(ggml_sycl_pool & pool) : pool(&pool) {
    +    }
    +
    +    ggml_sycl_pool_alloc(ggml_sycl_pool & pool, size_t size) : pool(&pool) {
    +        alloc(size);
    +    }
    +
    +    ~ggml_sycl_pool_alloc() {
    +        if (ptr != nullptr) {
    +            pool->free(ptr, actual_size);
    +        }
    +    }
    +
    +    // size is in number of elements
    +    T * alloc(size_t size) {
    +        GGML_ASSERT(pool != nullptr);
    +        GGML_ASSERT(ptr == nullptr);
    +        ptr = (T *) pool->alloc(size * sizeof(T), &this->actual_size);
    +        return ptr;
    +    }
    +
    +    T * alloc(ggml_sycl_pool & pool, size_t size) {
    +        this->pool = &pool;
    +        return alloc(size);
    +    }
    +
    +    T * get() {
    +        return ptr;
    +    }
    +
    +    ggml_sycl_pool_alloc() = default;
    +    ggml_sycl_pool_alloc(const ggml_sycl_pool_alloc &) = delete;
    +    ggml_sycl_pool_alloc(ggml_sycl_pool_alloc &&) = delete;
    +    ggml_sycl_pool_alloc& operator=(const ggml_sycl_pool_alloc &) = delete;
    +    ggml_sycl_pool_alloc& operator=(ggml_sycl_pool_alloc &&) = delete;
    +};
    +
    +// backend interface
    +
    +struct ggml_tensor_extra_gpu {
    +  void* data_device[GGML_SYCL_MAX_DEVICES]; // 1 pointer for each device for split
    +                                       // tensors
    +  dpct::event_ptr events[GGML_SYCL_MAX_DEVICES]
    +                        [GGML_SYCL_MAX_STREAMS]; // events for synchronizing multiple GPUs
    +};
    +
    +struct ggml_backend_sycl_context {
    +    int device;
    +    std::string name;
    +
    +    queue_ptr qptrs[GGML_SYCL_MAX_DEVICES][GGML_SYCL_MAX_STREAMS] = { { nullptr } };
    +
    +    explicit ggml_backend_sycl_context(int device) :
    +        device(device),
    +        name(GGML_SYCL_NAME + std::to_string(device)) {
    +    }
    +
    +    queue_ptr stream(int device, int stream) {
    +        if (qptrs[device][stream] == nullptr) {
    +            qptrs[device][stream] = &(dpct::get_current_device().default_queue());
    +        }
    +        return qptrs[device][stream];
    +    }
    +
    +    queue_ptr stream() {
    +        return stream(device, 0);
    +    }
    +
    +    // pool
    +    std::unique_ptr pools[GGML_SYCL_MAX_DEVICES];
    +
    +    static std::unique_ptr new_pool_for_device(queue_ptr qptr, int device);
    +
    +    ggml_sycl_pool & pool(int device) {
    +        if (pools[device] == nullptr) {
    +            pools[device] = new_pool_for_device(stream(device,0), device);
    +        }
    +        return *pools[device];
    +    }
    +
    +    ggml_sycl_pool & pool() {
    +        return pool(device);
    +    }
    +};
    +
    +
    +#endif // GGML_SYCL_COMMON_HPP
    diff --git a/ggml-sycl/dpct/helper.hpp b/ggml-sycl/dpct/helper.hpp
    new file mode 100644
    index 0000000000000..017fd6ee13268
    --- /dev/null
    +++ b/ggml-sycl/dpct/helper.hpp
    @@ -0,0 +1,2980 @@
    +//
    +// MIT license
    +// Copyright (C) 2024 Intel Corporation
    +// SPDX-License-Identifier: MIT
    +//
    +
    +//
    +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
    +// See https://llvm.org/LICENSE.txt for license information.
    +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
    +//
    +
    +#ifndef GGML_SYCL_DPCT_HELPER_HPP
    +#define GGML_SYCL_DPCT_HELPER_HPP
    +
    +#include 
    +#include 
    +#include 
    +#include 
    +
    +#include "ggml.h"
    +
    +#if defined(__linux__)
    +#include 
    +#elif defined(_WIN64)
    +#ifndef NOMINMAX
    +#define NOMINMAX
    +#endif
    +#include 
    +#else
    +#error "Only support Windows and Linux."
    +#endif
    +
    +#if defined(__linux__)
    +#include 
    +#include 
    +#endif
    +#if defined(_WIN64)
    +#ifndef NOMINMAX
    +#define NOMINMAX
    +#endif
    +#include 
    +#endif
    +
    +#define DPCT_COMPATIBILITY_TEMP (900)
    +
    +#if defined(_MSC_VER)
    +#define __dpct_align__(n) __declspec(align(n))
    +#define __dpct_inline__ __forceinline
    +#else
    +#define __dpct_align__(n) __attribute__((aligned(n)))
    +#define __dpct_inline__ __inline__ __attribute__((always_inline))
    +#endif
    +
    +#if defined(_MSC_VER)
    +#define __dpct_noinline__ __declspec(noinline)
    +#else
    +#define __dpct_noinline__ __attribute__((noinline))
    +#endif
    +
    +inline std::string get_device_type_name(const sycl::device &Device) {
    +    auto DeviceType = Device.get_info();
    +    switch (DeviceType) {
    +    case sycl::info::device_type::cpu:
    +        return "cpu";
    +    case sycl::info::device_type::gpu:
    +        return "gpu";
    +    case sycl::info::device_type::host:
    +        return "host";
    +    case sycl::info::device_type::accelerator:
    +        return "acc";
    +    default:
    +        return "unknown";
    +    }
    +}
    +
    +inline std::string get_device_backend_and_type(const sycl::device &device) {
    +    std::stringstream device_type;
    +    sycl::backend backend = device.get_backend();
    +    device_type <<  backend << ":" << get_device_type_name(device);
    +    return device_type.str();
    +}
    +
    +namespace dpct
    +{
    +    typedef sycl::queue *queue_ptr;
    +    typedef sycl::event *event_ptr;
    +    typedef char *device_ptr;
    +    typedef uint8_t byte_t;
    +    typedef sycl::buffer buffer_t;
    +
    +    /// SYCL default exception handler
    +    inline auto exception_handler = [](sycl::exception_list exceptions)
    +    {
    +        for (std::exception_ptr const &e : exceptions)
    +        {
    +            try
    +            {
    +                std::rethrow_exception(e);
    +            }
    +            catch (sycl::exception const &e)
    +            {
    +                std::cerr << "Caught asynchronous SYCL exception:" << std::endl
    +                          << e.what() << std::endl
    +                          << "Exception caught at file:" << __FILE__
    +                          << ", line:" << __LINE__ << std::endl;
    +            }
    +        }
    +    };
    +
    +    enum error_code
    +    {
    +        success = 0,
    +        default_error = 999
    +    };
    +
    +    enum memcpy_direction
    +    {
    +        host_to_host,
    +        host_to_device,
    +        device_to_host,
    +        device_to_device,
    +        automatic
    +    };
    +
    +    enum memory_region
    +    {
    +        global = 0, // device global memory
    +        constant,   // device constant memory
    +        local,      // device local memory
    +        shared,     // memory which can be accessed by host and device
    +    };
    +
    +    enum class library_data_t : unsigned char
    +    {
    +        real_float = 0,
    +        complex_float,
    +        real_double,
    +        complex_double,
    +        real_half,
    +        complex_half,
    +        real_bfloat16,
    +        complex_bfloat16,
    +        real_int4,
    +        complex_int4,
    +        real_uint4,
    +        complex_uint4,
    +        real_int8,
    +        complex_int8,
    +        real_uint8,
    +        complex_uint8,
    +        real_int16,
    +        complex_int16,
    +        real_uint16,
    +        complex_uint16,
    +        real_int32,
    +        complex_int32,
    +        real_uint32,
    +        complex_uint32,
    +        real_int64,
    +        complex_int64,
    +        real_uint64,
    +        complex_uint64,
    +        real_int8_4,
    +        real_int8_32,
    +        real_uint8_4,
    +        library_data_t_size
    +    };
    +
    +    template 
    +    struct DataType
    +    {
    +        using T2 = T;
    +    };
    +    template 
    +    struct DataType>
    +    {
    +        using T2 = std::complex;
    +    };
    +
    +    static void destroy_event(event_ptr event)
    +    {
    +        delete event;
    +    }
    +
    +    static inline unsigned int get_tid()
    +    {
    +#if defined(__linux__)
    +        return syscall(SYS_gettid);
    +#elif defined(_WIN64)
    +        return GetCurrentThreadId();
    +#else
    +#error "Only support Windows and Linux."
    +#endif
    +    }
    +
    +    namespace detail
    +    {
    +        static void get_version(const sycl::device &dev, int &major, int &minor)
    +        {
    +            // Version string has the following format:
    +            // a. OpenCL
    +            // b. 
    +            // c.  e.g gfx1030
    +            std::string ver;
    +            ver = dev.get_info();
    +            std::string::size_type i = 0;
    +            while (i < ver.size()) {
    +              if (isdigit(ver[i]))
    +                break;
    +              i++;
    +            }
    +            major = std::stoi(&(ver[i]));
    +            while (i < ver.size()) {
    +              if (ver[i] == '.')
    +                break;
    +              i++;
    +            }
    +            if (i < ver.size()) {
    +              // a. and b.
    +              i++;
    +              minor = std::stoi(&(ver[i]));
    +            } else {
    +              // c.
    +              minor = 0;
    +            }
    +        }
    +
    +        template 
    +        class generic_error_type
    +        {
    +        public:
    +            generic_error_type() = default;
    +            generic_error_type(T value) : value{value} {}
    +            operator T() const { return value; }
    +
    +        private:
    +            T value;
    +        };
    +
    +    } // namespace detail
    +
    +    /// Pitched 2D/3D memory data.
    +    class pitched_data
    +    {
    +    public:
    +        pitched_data() : pitched_data(nullptr, 0, 0, 0) {}
    +        pitched_data(void *data, size_t pitch, size_t x, size_t y)
    +            : _data(data), _pitch(pitch), _x(x), _y(y) {}
    +
    +        void *get_data_ptr() { return _data; }
    +        void set_data_ptr(void *data) { _data = data; }
    +
    +        size_t get_pitch() { return _pitch; }
    +        void set_pitch(size_t pitch) { _pitch = pitch; }
    +
    +        size_t get_x() { return _x; }
    +        void set_x(size_t x) { _x = x; };
    +
    +        size_t get_y() { return _y; }
    +        void set_y(size_t y) { _y = y; }
    +
    +    private:
    +        void *_data;
    +        size_t _pitch, _x, _y;
    +    };
    +
    +    class device_info
    +    {
    +    public:
    +        // get interface
    +        const char *get_name() const { return _name; }
    +        char *get_name() { return _name; }
    +        template ,
    +                  std::enable_if_t> ||
    +                                       std::is_same_v,
    +                                   int> = 0>
    +        auto get_max_work_item_sizes() const
    +        {
    +            if constexpr (std::is_same_v>)
    +                return sycl::range<3>(_max_work_item_sizes_i[0],
    +                                      _max_work_item_sizes_i[1],
    +                                      _max_work_item_sizes_i[2]);
    +            else
    +            {
    +                return _max_work_item_sizes_i;
    +            }
    +        }
    +        template ,
    +                  std::enable_if_t> ||
    +                                       std::is_same_v,
    +                                   int> = 0>
    +        auto get_max_work_item_sizes()
    +        {
    +            if constexpr (std::is_same_v>)
    +                return sycl::range<3>(_max_work_item_sizes_i[0],
    +                                      _max_work_item_sizes_i[1],
    +                                      _max_work_item_sizes_i[2]);
    +            else
    +            {
    +                return _max_work_item_sizes_i;
    +            }
    +        }
    +        bool get_host_unified_memory() const { return _host_unified_memory; }
    +        int get_major_version() const { return _major; }
    +        int get_minor_version() const { return _minor; }
    +        int get_integrated() const { return _integrated; }
    +        int get_max_clock_frequency() const { return _frequency; }
    +        int get_max_compute_units() const { return _max_compute_units; }
    +        int get_max_work_group_size() const { return _max_work_group_size; }
    +        int get_max_sub_group_size() const { return _max_sub_group_size; }
    +        int get_max_work_items_per_compute_unit() const
    +        {
    +            return _max_work_items_per_compute_unit;
    +        }
    +        int get_max_register_size_per_work_group() const
    +        {
    +            return _max_register_size_per_work_group;
    +        }
    +        template  ||
    +                                       std::is_same_v,
    +                                   int> = 0>
    +        auto get_max_nd_range_size() const
    +        {
    +            if constexpr (std::is_same_v)
    +                return _max_nd_range_size;
    +            else
    +                return _max_nd_range_size_i;
    +        }
    +        template  ||
    +                                       std::is_same_v,
    +                                   int> = 0>
    +        auto get_max_nd_range_size()
    +        {
    +            if constexpr (std::is_same_v)
    +                return _max_nd_range_size;
    +            else
    +                return _max_nd_range_size_i;
    +        }
    +        size_t get_global_mem_size() const { return _global_mem_size; }
    +        size_t get_local_mem_size() const { return _local_mem_size; }
    +        size_t get_max_mem_alloc_size() const { return _max_mem_alloc_size; }
    +        /// Returns the maximum clock rate of device's global memory in kHz. If
    +        /// compiler does not support this API then returns default value 3200000 kHz.
    +        unsigned int get_memory_clock_rate() const { return _memory_clock_rate; }
    +        /// Returns the maximum bus width between device and memory in bits. If
    +        /// compiler does not support this API then returns default value 64 bits.
    +        unsigned int get_memory_bus_width() const { return _memory_bus_width; }
    +        uint32_t get_device_id() const { return _device_id; }
    +        std::array get_uuid() const { return _uuid; }
    +        /// Returns global memory cache size in bytes.
    +        unsigned int get_global_mem_cache_size() const
    +        {
    +            return _global_mem_cache_size;
    +        }
    +
    +        // set interface
    +        void set_name(const char *name)
    +        {
    +            size_t length = strlen(name);
    +            if (length < 256)
    +            {
    +                std::memcpy(_name, name, length + 1);
    +            }
    +            else
    +            {
    +                std::memcpy(_name, name, 255);
    +                _name[255] = '\0';
    +            }
    +        }
    +        void set_max_work_item_sizes(const sycl::range<3> max_work_item_sizes)
    +        {
    +            for (int i = 0; i < 3; ++i)
    +                _max_work_item_sizes_i[i] = max_work_item_sizes[i];
    +        }
    +        [[deprecated]] void
    +        set_max_work_item_sizes(const sycl::id<3> max_work_item_sizes)
    +        {
    +            for (int i = 0; i < 3; ++i)
    +            {
    +                _max_work_item_sizes_i[i] = max_work_item_sizes[i];
    +            }
    +        }
    +        void set_host_unified_memory(bool host_unified_memory)
    +        {
    +            _host_unified_memory = host_unified_memory;
    +        }
    +        void set_major_version(int major) { _major = major; }
    +        void set_minor_version(int minor) { _minor = minor; }
    +        void set_integrated(int integrated) { _integrated = integrated; }
    +        void set_max_clock_frequency(int frequency) { _frequency = frequency; }
    +        void set_max_compute_units(int max_compute_units)
    +        {
    +            _max_compute_units = max_compute_units;
    +        }
    +        void set_global_mem_size(size_t global_mem_size)
    +        {
    +            _global_mem_size = global_mem_size;
    +        }
    +        void set_local_mem_size(size_t local_mem_size)
    +        {
    +            _local_mem_size = local_mem_size;
    +        }
    +        void set_max_mem_alloc_size(size_t max_mem_alloc_size)
    +        {
    +            _max_mem_alloc_size = max_mem_alloc_size;
    +        }
    +        void set_max_work_group_size(int max_work_group_size)
    +        {
    +            _max_work_group_size = max_work_group_size;
    +        }
    +        void set_max_sub_group_size(int max_sub_group_size)
    +        {
    +            _max_sub_group_size = max_sub_group_size;
    +        }
    +        void
    +        set_max_work_items_per_compute_unit(int max_work_items_per_compute_unit)
    +        {
    +            _max_work_items_per_compute_unit = max_work_items_per_compute_unit;
    +        }
    +        void set_max_nd_range_size(int max_nd_range_size[])
    +        {
    +            for (int i = 0; i < 3; i++)
    +            {
    +                _max_nd_range_size[i] = max_nd_range_size[i];
    +                _max_nd_range_size_i[i] = max_nd_range_size[i];
    +            }
    +        }
    +        void set_memory_clock_rate(unsigned int memory_clock_rate)
    +        {
    +            _memory_clock_rate = memory_clock_rate;
    +        }
    +        void set_memory_bus_width(unsigned int memory_bus_width)
    +        {
    +            _memory_bus_width = memory_bus_width;
    +        }
    +        void
    +        set_max_register_size_per_work_group(int max_register_size_per_work_group)
    +        {
    +            _max_register_size_per_work_group = max_register_size_per_work_group;
    +        }
    +        void set_device_id(uint32_t device_id)
    +        {
    +            _device_id = device_id;
    +        }
    +        void set_uuid(std::array uuid)
    +        {
    +            _uuid = std::move(uuid);
    +        }
    +        void set_global_mem_cache_size(unsigned int global_mem_cache_size)
    +        {
    +            _global_mem_cache_size = global_mem_cache_size;
    +        }
    +
    +    private:
    +        char _name[256];
    +        int _max_work_item_sizes_i[3];
    +        bool _host_unified_memory = false;
    +        int _major;
    +        int _minor;
    +        int _integrated = 0;
    +        int _frequency;
    +        // Set estimated value 3200000 kHz as default value.
    +        unsigned int _memory_clock_rate = 3200000;
    +        // Set estimated value 64 bits as default value.
    +        unsigned int _memory_bus_width = 64;
    +        unsigned int _global_mem_cache_size;
    +        int _max_compute_units;
    +        int _max_work_group_size;
    +        int _max_sub_group_size;
    +        int _max_work_items_per_compute_unit;
    +        int _max_register_size_per_work_group;
    +        size_t _global_mem_size;
    +        size_t _local_mem_size;
    +        size_t _max_mem_alloc_size;
    +        size_t _max_nd_range_size[3];
    +        int _max_nd_range_size_i[3];
    +        uint32_t _device_id;
    +        std::array _uuid;
    +    };
    +
    +    static int get_major_version(const sycl::device &dev)
    +    {
    +        int major, minor;
    +        detail::get_version(dev, major, minor);
    +        return major;
    +    }
    +
    +    static int get_minor_version(const sycl::device &dev)
    +    {
    +        int major, minor;
    +        detail::get_version(dev, major, minor);
    +        return minor;
    +    }
    +
    +    static void get_device_info(device_info &out, const sycl::device &dev)
    +    {
    +        device_info prop;
    +        prop.set_name(dev.get_info().c_str());
    +
    +        int major, minor;
    +        detail::get_version(dev, major, minor);
    +        prop.set_major_version(major);
    +        prop.set_minor_version(minor);
    +
    +        prop.set_max_work_item_sizes(
    +#if (__SYCL_COMPILER_VERSION && __SYCL_COMPILER_VERSION < 20220902)
    +            // oneAPI DPC++ compiler older than 2022/09/02, where max_work_item_sizes
    +            // is an enum class element
    +            dev.get_info());
    +#else
    +            // SYCL 2020-conformant code, max_work_item_sizes is a struct templated by
    +            // an int
    +            dev.get_info>());
    +#endif
    +        prop.set_host_unified_memory(dev.has(sycl::aspect::usm_host_allocations));
    +
    +        prop.set_max_clock_frequency(
    +            dev.get_info() * 1000);
    +
    +        prop.set_max_compute_units(
    +            dev.get_info());
    +        prop.set_max_work_group_size(
    +            dev.get_info());
    +        prop.set_global_mem_size(dev.get_info());
    +        prop.set_local_mem_size(dev.get_info());
    +        prop.set_max_mem_alloc_size(dev.get_info());
    +
    +#if (defined(SYCL_EXT_INTEL_DEVICE_INFO) && SYCL_EXT_INTEL_DEVICE_INFO >= 6)
    +        if (dev.has(sycl::aspect::ext_intel_memory_clock_rate))
    +        {
    +            unsigned int tmp =
    +                dev.get_info();
    +            if (tmp != 0)
    +                prop.set_memory_clock_rate(1000 * tmp);
    +        }
    +        if (dev.has(sycl::aspect::ext_intel_memory_bus_width))
    +        {
    +            prop.set_memory_bus_width(
    +                dev.get_info());
    +        }
    +        if (dev.has(sycl::aspect::ext_intel_device_id))
    +        {
    +            prop.set_device_id(
    +                dev.get_info());
    +        }
    +        if (dev.has(sycl::aspect::ext_intel_device_info_uuid))
    +        {
    +            prop.set_uuid(dev.get_info());
    +        }
    +#elif defined(_MSC_VER) && !defined(__clang__)
    +#pragma message("get_device_info: querying memory_clock_rate and \
    +        memory_bus_width are not supported by the compiler used. \
    +        Use 3200000 kHz as memory_clock_rate default value. \
    +        Use 64 bits as memory_bus_width default value.")
    +#else
    +#warning "get_device_info: querying memory_clock_rate and \
    +        memory_bus_width are not supported by the compiler used. \
    +        Use 3200000 kHz as memory_clock_rate default value. \
    +        Use 64 bits as memory_bus_width default value."
    +#endif
    +
    +        size_t max_sub_group_size = 1;
    +        std::vector sub_group_sizes =
    +            dev.get_info();
    +
    +        for (const auto &sub_group_size : sub_group_sizes)
    +        {
    +            if (max_sub_group_size < sub_group_size)
    +                max_sub_group_size = sub_group_size;
    +        }
    +
    +        prop.set_max_sub_group_size(max_sub_group_size);
    +
    +        prop.set_max_work_items_per_compute_unit(
    +            dev.get_info());
    +        int max_nd_range_size[] = {0x7FFFFFFF, 0x7FFFFFFF, 0x7FFFFFFF};
    +        prop.set_max_nd_range_size(max_nd_range_size);
    +
    +        // Estimates max register size per work group, feel free to update the value
    +        // according to device properties.
    +        prop.set_max_register_size_per_work_group(65536);
    +
    +        prop.set_global_mem_cache_size(
    +            dev.get_info());
    +        out = prop;
    +    }
    +
    +    /// dpct device extension
    +    class device_ext : public sycl::device
    +    {
    +        typedef std::mutex mutex_type;
    +
    +    public:
    +        device_ext() : sycl::device(), _ctx(*this) {}
    +        ~device_ext()
    +        {
    +            std::lock_guard lock(m_mutex);
    +            clear_queues();
    +        }
    +        device_ext(const sycl::device &base) : sycl::device(base), _ctx(*this)
    +        {
    +            std::lock_guard lock(m_mutex);
    +            init_queues();
    +        }
    +
    +        int is_native_atomic_supported() { return 0; }
    +        int get_major_version() const
    +        {
    +            return dpct::get_major_version(*this);
    +        }
    +
    +        int get_minor_version() const
    +        {
    +            return dpct::get_minor_version(*this);
    +        }
    +
    +        int get_max_compute_units() const
    +        {
    +            return get_device_info().get_max_compute_units();
    +        }
    +
    +        /// Return the maximum clock frequency of this device in KHz.
    +        int get_max_clock_frequency() const
    +        {
    +            return get_device_info().get_max_clock_frequency();
    +        }
    +
    +        int get_integrated() const { return get_device_info().get_integrated(); }
    +
    +        int get_max_sub_group_size() const
    +        {
    +            return get_device_info().get_max_sub_group_size();
    +        }
    +
    +        int get_max_register_size_per_work_group() const
    +        {
    +            return get_device_info().get_max_register_size_per_work_group();
    +        }
    +
    +        int get_max_work_group_size() const
    +        {
    +            return get_device_info().get_max_work_group_size();
    +        }
    +
    +        int get_mem_base_addr_align() const
    +        {
    +            return get_info();
    +        }
    +
    +        size_t get_global_mem_size() const
    +        {
    +            return get_device_info().get_global_mem_size();
    +        }
    +
    +        size_t get_max_mem_alloc_size() const
    +        {
    +            return get_device_info().get_max_mem_alloc_size();
    +        }
    +
    +        /// Get the number of bytes of free and total memory on the SYCL device.
    +        /// \param [out] free_memory The number of bytes of free memory on the SYCL device.
    +        /// \param [out] total_memory The number of bytes of total memory on the SYCL device.
    +        void get_memory_info(size_t &free_memory, size_t &total_memory)
    +        {
    +            total_memory = get_device_info().get_global_mem_size();
    +            const char *warning_info = "get_memory_info: [warning] ext_intel_free_memory is not "
    +                                 "supported (export/set ZES_ENABLE_SYSMAN=1 to support), "
    +                                 "use total memory as free memory";
    +#if (defined(__SYCL_COMPILER_VERSION) && __SYCL_COMPILER_VERSION >= 20221105)
    +            if (!has(sycl::aspect::ext_intel_free_memory))
    +            {
    +                std::cerr << warning_info << std::endl;
    +                free_memory = total_memory;
    +            }
    +            else
    +            {
    +                free_memory = get_info();
    +            }
    +#else
    +            std::cerr << warning_info << std::endl;
    +            free_memory = total_memory;
    +#if defined(_MSC_VER) && !defined(__clang__)
    +#pragma message("Querying the number of bytes of free memory is not supported")
    +#else
    +#warning "Querying the number of bytes of free memory is not supported"
    +#endif
    +#endif
    +        }
    +
    +        void get_device_info(device_info &out) const
    +        {
    +            dpct::get_device_info(out, *this);
    +        }
    +
    +        device_info get_device_info() const
    +        {
    +            device_info prop;
    +            dpct::get_device_info(prop, *this);
    +            return prop;
    +        }
    +
    +        void reset()
    +        {
    +            std::lock_guard lock(m_mutex);
    +            clear_queues();
    +            init_queues();
    +        }
    +
    +        sycl::queue &in_order_queue() { return *_q_in_order; }
    +
    +        sycl::queue &out_of_order_queue() { return *_q_out_of_order; }
    +
    +        sycl::queue &default_queue()
    +        {
    +            return in_order_queue();
    +        }
    +
    +        void queues_wait_and_throw()
    +        {
    +            std::unique_lock lock(m_mutex);
    +            std::vector> current_queues(
    +                _queues);
    +            lock.unlock();
    +            for (const auto &q : current_queues)
    +            {
    +                q->wait_and_throw();
    +            }
    +            // Guard the destruct of current_queues to make sure the ref count is safe.
    +            lock.lock();
    +        }
    +
    +        sycl::queue *create_queue(bool enable_exception_handler = false)
    +        {
    +            return create_in_order_queue(enable_exception_handler);
    +        }
    +
    +        sycl::queue *create_queue(sycl::context context, sycl::device device,
    +                                bool enable_exception_handler = false) {
    +            return create_in_order_queue(context, device, enable_exception_handler);
    +        }
    +
    +        sycl::queue *create_in_order_queue(bool enable_exception_handler = false) {
    +            std::lock_guard lock(m_mutex);
    +            return create_queue_impl(enable_exception_handler,
    +                                    sycl::property::queue::in_order());
    +        }
    +
    +        sycl::queue *create_in_order_queue(sycl::context context, sycl::device device,
    +                                        bool enable_exception_handler = false) {
    +            std::lock_guard lock(m_mutex);
    +            return create_queue_impl(context, device, enable_exception_handler,
    +                                    sycl::property::queue::in_order());
    +        }
    +
    +        sycl::queue *create_out_of_order_queue(bool enable_exception_handler = false) {
    +            std::lock_guard lock(m_mutex);
    +            return create_queue_impl(enable_exception_handler);
    +        }
    +
    +        void destroy_queue(sycl::queue *&queue)
    +        {
    +            std::lock_guard lock(m_mutex);
    +            _queues.erase(std::remove_if(_queues.begin(), _queues.end(),
    +                                         [=](const std::shared_ptr &q) -> bool
    +                                         {
    +                                             return q.get() == queue;
    +                                         }),
    +                          _queues.end());
    +            queue = nullptr;
    +        }
    +        void set_saved_queue(sycl::queue *q)
    +        {
    +            std::lock_guard lock(m_mutex);
    +            _saved_queue = q;
    +        }
    +        sycl::queue *get_saved_queue() const
    +        {
    +            std::lock_guard lock(m_mutex);
    +            return _saved_queue;
    +        }
    +        sycl::context get_context() const { return _ctx; }
    +
    +    private:
    +        void clear_queues()
    +        {
    +            _queues.clear();
    +            _q_in_order = _q_out_of_order = _saved_queue = nullptr;
    +        }
    +
    +        void init_queues()
    +        {
    +            _q_in_order = create_queue_impl(true, sycl::property::queue::in_order());
    +            _q_out_of_order = create_queue_impl(true);
    +            _saved_queue = &default_queue();
    +        }
    +
    +        /// Caller should acquire resource \p m_mutex before calling this function.
    +        template 
    +        sycl::queue *create_queue_impl(bool enable_exception_handler,
    +                                       Properties... properties)
    +        {
    +            sycl::async_handler eh = {};
    +            if (enable_exception_handler)
    +            {
    +                eh = exception_handler;
    +            }
    +            _queues.push_back(std::make_shared(
    +                _ctx, *this, eh,
    +                sycl::property_list(
    +#ifdef DPCT_PROFILING_ENABLED
    +                    sycl::property::queue::enable_profiling(),
    +#endif
    +                    properties...)));
    +
    +            return _queues.back().get();
    +        }
    +
    +        template 
    +        sycl::queue *create_queue_impl(sycl::context context, sycl::device device,
    +                                    bool enable_exception_handler,
    +                                    Properties... properties) {
    +            sycl::async_handler eh = {};
    +            if (enable_exception_handler) {
    +                eh = exception_handler;
    +            }
    +            _queues.push_back(std::make_shared(
    +                context, device, eh,
    +                sycl::property_list(
    +        #ifdef DPCT_PROFILING_ENABLED
    +                    sycl::property::queue::enable_profiling(),
    +        #endif
    +                    properties...)));
    +
    +            return _queues.back().get();
    +        }
    +
    +        void get_version(int &major, int &minor) const
    +        {
    +            detail::get_version(*this, major, minor);
    +        }
    +        sycl::queue *_q_in_order, *_q_out_of_order;
    +        sycl::queue *_saved_queue;
    +        sycl::context _ctx;
    +        std::vector> _queues;
    +        mutable mutex_type m_mutex;
    +    };
    +
    +    /// device manager
    +    class dev_mgr
    +    {
    +    public:
    +        device_ext ¤t_device()
    +        {
    +            unsigned int dev_id = current_device_id();
    +            check_id(dev_id);
    +            return *_devs[dev_id];
    +        }
    +        device_ext &cpu_device() const
    +        {
    +            std::lock_guard lock(m_mutex);
    +            if (_cpu_device == -1)
    +            {
    +                throw std::runtime_error("no valid cpu device");
    +            }
    +            else
    +            {
    +                return *_devs[_cpu_device];
    +            }
    +        }
    +        device_ext &get_device(unsigned int id) const
    +        {
    +            std::lock_guard lock(m_mutex);
    +            check_id(id);
    +            return *_devs[id];
    +        }
    +        unsigned int current_device_id() const
    +        {
    +            std::lock_guard lock(m_mutex);
    +            auto it = _thread2dev_map.find(get_tid());
    +            if (it != _thread2dev_map.end())
    +                return it->second;
    +            return DEFAULT_DEVICE_ID;
    +        }
    +
    +        /// Select device with a device ID.
    +        /// \param [in] id The id of the device which can
    +        /// be obtained through get_device_id(const sycl::device).
    +        void select_device(unsigned int id)
    +        {
    +            std::lock_guard lock(m_mutex);
    +            check_id(id);
    +            _thread2dev_map[get_tid()] = id;
    +        }
    +        unsigned int device_count() { return _devs.size(); }
    +
    +        unsigned int get_device_id(const sycl::device &dev)
    +        {
    +            unsigned int id = 0;
    +            for (auto dev_item : _devs)
    +            {
    +                if (*dev_item == dev)
    +                {
    +                    break;
    +                }
    +                id++;
    +            }
    +            return id;
    +        }
    +
    +        template 
    +        std::enable_if_t<
    +            std::is_invocable_r_v>
    +        select_device(const DeviceSelector &selector = sycl::gpu_selector_v)
    +        {
    +            sycl::device selected_device = sycl::device(selector);
    +            unsigned int selected_device_id = get_device_id(selected_device);
    +            select_device(selected_device_id);
    +        }
    +
    +        /// Returns the instance of device manager singleton.
    +        static dev_mgr &instance()
    +        {
    +            static dev_mgr d_m;
    +            return d_m;
    +        }
    +        dev_mgr(const dev_mgr &) = delete;
    +        dev_mgr &operator=(const dev_mgr &) = delete;
    +        dev_mgr(dev_mgr &&) = delete;
    +        dev_mgr &operator=(dev_mgr &&) = delete;
    +
    +    private:
    +        mutable std::recursive_mutex m_mutex;
    +        static bool compare_dev(sycl::device &device1, sycl::device &device2)
    +        {
    +            sycl::backend backend1 = device1.get_backend();
    +            sycl::backend backend2 = device2.get_backend();
    +            // levelzero backends always come first
    +            if(backend1 == sycl::backend::ext_oneapi_level_zero && backend2 != sycl::backend::ext_oneapi_level_zero) return true;
    +            if(backend1 != sycl::backend::ext_oneapi_level_zero && backend2 == sycl::backend::ext_oneapi_level_zero) return false;
    +            dpct::device_info prop1;
    +            dpct::get_device_info(prop1, device1);
    +            dpct::device_info prop2;
    +            dpct::get_device_info(prop2, device2);
    +            return prop1.get_max_compute_units() > prop2.get_max_compute_units();
    +        }
    +        static int convert_backend_index(std::string & backend) {
    +            if (backend == "ext_oneapi_level_zero:gpu") return 0;
    +            if (backend == "opencl:gpu") return 1;
    +            if (backend == "ext_oneapi_cuda:gpu") return 2;
    +            if (backend == "ext_oneapi_hip:gpu") return 3;
    +            if (backend == "opencl:cpu") return 4;
    +            if (backend == "opencl:acc") return 5;
    +            printf("convert_backend_index: can't handle backend=%s\n", backend.c_str());
    +            GGML_ASSERT(false);
    +        }
    +        static bool compare_backend(std::string &backend1, std::string &backend2) {
    +            return convert_backend_index(backend1) < convert_backend_index(backend2);
    +        }
    +        dev_mgr()
    +        {
    +            sycl::device default_device =
    +                sycl::device(sycl::default_selector_v);
    +            _devs.push_back(std::make_shared(default_device));
    +
    +            std::vector sycl_all_devs;
    +            // Collect other devices except for the default device.
    +            if (default_device.is_cpu())
    +                _cpu_device = 0;
    +
    +            auto Platforms = sycl::platform::get_platforms();
    +            // Keep track of the number of devices per backend
    +            std::map DeviceNums;
    +            std::map> backend_devices;
    +
    +            while (!Platforms.empty()) {
    +                auto Platform = Platforms.back();
    +                Platforms.pop_back();
    +                auto devices = Platform.get_devices();
    +                std::string backend_type = get_device_backend_and_type(devices[0]);
    +                for (const auto &device : devices) {
    +                    backend_devices[backend_type].push_back(device);
    +                }
    +            }
    +
    +            std::vector keys;
    +            for(auto it = backend_devices.begin(); it != backend_devices.end(); ++it) {
    +                keys.push_back(it->first);
    +            }
    +            std::sort(keys.begin(), keys.end(), compare_backend);
    +
    +            for (auto &key : keys) {
    +                std::vector devs = backend_devices[key];
    +                std::sort(devs.begin(), devs.end(), compare_dev);
    +                for (const auto &dev : devs) {
    +                    sycl_all_devs.push_back(dev);
    +                }
    +            }
    +
    +            for (auto &dev : sycl_all_devs)
    +            {
    +                if (dev == default_device)
    +                {
    +                    continue;
    +                }
    +                _devs.push_back(std::make_shared(dev));
    +                if (_cpu_device == -1 && dev.is_cpu())
    +                {
    +                    _cpu_device = _devs.size() - 1;
    +                }
    +            }
    +        }
    +        void check_id(unsigned int id) const
    +        {
    +            if (id >= _devs.size())
    +            {
    +                throw std::runtime_error("invalid device id");
    +            }
    +        }
    +        std::vector> _devs;
    +        /// DEFAULT_DEVICE_ID is used, if current_device_id() can not find current
    +        /// thread id in _thread2dev_map, which means default device should be used
    +        /// for the current thread.
    +        const unsigned int DEFAULT_DEVICE_ID = 0;
    +        /// thread-id to device-id map.
    +        std::map _thread2dev_map;
    +        int _cpu_device = -1;
    +    };
    +
    +    static inline sycl::queue &get_default_queue()
    +    {
    +        return dev_mgr::instance().current_device().default_queue();
    +    }
    +
    +    namespace detail
    +    {
    +        enum class pointer_access_attribute
    +        {
    +            host_only = 0,
    +            device_only,
    +            host_device,
    +            end
    +        };
    +
    +        static pointer_access_attribute get_pointer_attribute(sycl::queue &q,
    +                                                              const void *ptr)
    +        {
    +            switch (sycl::get_pointer_type(ptr, q.get_context()))
    +            {
    +            case sycl::usm::alloc::unknown:
    +                return pointer_access_attribute::host_only;
    +            case sycl::usm::alloc::device:
    +                return pointer_access_attribute::device_only;
    +            case sycl::usm::alloc::shared:
    +            case sycl::usm::alloc::host:
    +                return pointer_access_attribute::host_device;
    +            }
    +        }
    +
    +        template 
    +        inline constexpr std::uint64_t get_type_combination_id(ArgT Val)
    +        {
    +            static_assert((unsigned char)library_data_t::library_data_t_size <=
    +                              std::numeric_limits::max() &&
    +                          "library_data_t size exceeds limit.");
    +            static_assert(std::is_same_v, "Unsupported ArgT");
    +            return (std::uint64_t)Val;
    +        }
    +
    +        template 
    +        inline constexpr std::uint64_t get_type_combination_id(FirstT FirstVal,
    +                                                               RestT... RestVal)
    +        {
    +            static_assert((std::uint8_t)library_data_t::library_data_t_size <=
    +                              std::numeric_limits::max() &&
    +                          "library_data_t size exceeds limit.");
    +            static_assert(sizeof...(RestT) <= 8 && "Too many parameters");
    +            static_assert(std::is_same_v, "Unsupported FirstT");
    +            return get_type_combination_id(RestVal...) << 8 | ((std::uint64_t)FirstVal);
    +        }
    +
    +        class mem_mgr
    +        {
    +            mem_mgr()
    +            {
    +                // Reserved address space, no real memory allocation happens here.
    +#if defined(__linux__)
    +                mapped_address_space =
    +                    (byte_t *)mmap(nullptr, mapped_region_size, PROT_NONE,
    +                                   MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
    +#elif defined(_WIN64)
    +                mapped_address_space = (byte_t *)VirtualAlloc(
    +                    NULL,               // NULL specified as the base address parameter
    +                    mapped_region_size, // Size of allocation
    +                    MEM_RESERVE,        // Allocate reserved pages
    +                    PAGE_NOACCESS);     // Protection = no access
    +#else
    +#error "Only support Windows and Linux."
    +#endif
    +                next_free = mapped_address_space;
    +            };
    +
    +        public:
    +            using buffer_id_t = int;
    +
    +            struct allocation
    +            {
    +                buffer_t buffer;
    +                byte_t *alloc_ptr;
    +                size_t size;
    +            };
    +
    +            ~mem_mgr()
    +            {
    +#if defined(__linux__)
    +                munmap(mapped_address_space, mapped_region_size);
    +#elif defined(_WIN64)
    +                VirtualFree(mapped_address_space, 0, MEM_RELEASE);
    +#else
    +#error "Only support Windows and Linux."
    +#endif
    +            };
    +
    +            mem_mgr(const mem_mgr &) = delete;
    +            mem_mgr &operator=(const mem_mgr &) = delete;
    +            mem_mgr(mem_mgr &&) = delete;
    +            mem_mgr &operator=(mem_mgr &&) = delete;
    +
    +            /// Allocate
    +            void *mem_alloc(size_t size)
    +            {
    +                if (!size)
    +                    return nullptr;
    +                std::lock_guard lock(m_mutex);
    +                if (next_free + size > mapped_address_space + mapped_region_size)
    +                {
    +                    throw std::runtime_error("dpct_malloc: out of memory for virtual memory pool");
    +                }
    +                // Allocation
    +                sycl::range<1> r(size);
    +                buffer_t buf(r);
    +                allocation A{buf, next_free, size};
    +                // Map allocation to device pointer
    +                void *result = next_free;
    +                m_map.emplace(next_free + size, A);
    +                // Update pointer to the next free space.
    +                next_free += (size + extra_padding + alignment - 1) & ~(alignment - 1);
    +
    +                return result;
    +            }
    +
    +            /// Deallocate
    +            void mem_free(const void *ptr)
    +            {
    +                if (!ptr)
    +                    return;
    +                std::lock_guard lock(m_mutex);
    +                auto it = get_map_iterator(ptr);
    +                m_map.erase(it);
    +            }
    +
    +            /// map: device pointer -> allocation(buffer, alloc_ptr, size)
    +            allocation translate_ptr(const void *ptr)
    +            {
    +                std::lock_guard lock(m_mutex);
    +                auto it = get_map_iterator(ptr);
    +                return it->second;
    +            }
    +
    +            /// Check if the pointer represents device pointer or not.
    +            bool is_device_ptr(const void *ptr) const
    +            {
    +                std::lock_guard lock(m_mutex);
    +                return (mapped_address_space <= ptr) &&
    +                       (ptr < mapped_address_space + mapped_region_size);
    +            }
    +
    +            /// Returns the instance of memory manager singleton.
    +            static mem_mgr &instance()
    +            {
    +                static mem_mgr m;
    +                return m;
    +            }
    +
    +        private:
    +            std::map m_map;
    +            mutable std::mutex m_mutex;
    +            byte_t *mapped_address_space;
    +            byte_t *next_free;
    +            const size_t mapped_region_size = 128ull * 1024 * 1024 * 1024;
    +            const size_t alignment = 256;
    +            /// This padding may be defined to some positive value to debug
    +            /// out of bound accesses.
    +            const size_t extra_padding = 0;
    +
    +            std::map::iterator get_map_iterator(const void *ptr)
    +            {
    +                auto it = m_map.upper_bound((byte_t *)ptr);
    +                if (it == m_map.end())
    +                {
    +                    // Not a virtual pointer.
    +                    throw std::runtime_error("can not get buffer from non-virtual pointer");
    +                }
    +                const allocation &alloc = it->second;
    +                if (ptr < alloc.alloc_ptr)
    +                {
    +                    // Out of bound.
    +                    // This may happen if there's a gap between allocations due to alignment
    +                    // or extra padding and pointer points to this gap.
    +                    throw std::runtime_error("invalid virtual pointer");
    +                }
    +                return it;
    +            }
    +        };
    +
    +        template 
    +        class accessor;
    +        template 
    +        class memory_traits
    +        {
    +        public:
    +            static constexpr sycl::access::target target =
    +                sycl::access::target::device;
    +            static constexpr sycl::access_mode mode =
    +                (Memory == constant) ? sycl::access_mode::read
    +                                     : sycl::access_mode::read_write;
    +            static constexpr size_t type_size = sizeof(T);
    +            using element_t =
    +                typename std::conditional::type;
    +            using value_t = typename std::remove_cv::type;
    +            template 
    +            using accessor_t = typename std::conditional<
    +                Memory == local, sycl::local_accessor,
    +                sycl::accessor>::type;
    +            using pointer_t = T *;
    +        };
    +
    +        static inline void *dpct_malloc(size_t size, sycl::queue &q)
    +        {
    +            return sycl::malloc_device(size, q.get_device(), q.get_context());
    +        }
    +
    +#define PITCH_DEFAULT_ALIGN(x) (((x) + 31) & ~(0x1F))
    +        static inline void *dpct_malloc(size_t &pitch, size_t x, size_t y, size_t z,
    +                                        sycl::queue &q)
    +        {
    +            pitch = PITCH_DEFAULT_ALIGN(x);
    +            return dpct_malloc(pitch * y * z, q);
    +        }
    +
    +        /**
    +         * @brief Sets \p value to the first \p size elements starting from \p dev_ptr in \p q.
    +         * @tparam valueT The type of the element to be set.
    +         * @param [in] q The queue in which the operation is done.
    +         * @param [in] dev_ptr Pointer to the virtual device memory address.
    +         * @param [in] value The value to be set.
    +         * @param [in] size Number of elements to be set to the value.
    +         * @return An event representing the memset operation.
    +         */
    +        template 
    +        static inline sycl::event dpct_memset(sycl::queue &q, void *dev_ptr,
    +                                              valueT value, size_t size)
    +        {
    +            return q.fill(dev_ptr, value, size);
    +        }
    +
    +        /**
    +         * @brief Sets \p value to the 3D memory region pointed by \p data in \p q.
    +         * @tparam valueT The type of the element to be set.
    +         * @param [in] q The queue in which the operation is done.
    +         * @param [in] data Pointer to the pitched device memory region.
    +         * @param [in] value The value to be set.
    +         * @param [in] size 3D memory region by number of elements.
    +         * @return An event list representing the memset operations.
    +         */
    +        template 
    +        static inline std::vector
    +        dpct_memset(sycl::queue &q, pitched_data data, valueT value,
    +                    sycl::range<3> size)
    +        {
    +            std::vector event_list;
    +            size_t slice = data.get_pitch() * data.get_y();
    +            unsigned char *data_surface = (unsigned char *)data.get_data_ptr();
    +            for (size_t z = 0; z < size.get(2); ++z)
    +            {
    +                unsigned char *data_ptr = data_surface;
    +                for (size_t y = 0; y < size.get(1); ++y)
    +                {
    +                    event_list.push_back(dpct_memset(q, data_ptr, value, size.get(0)));
    +                    data_ptr += data.get_pitch();
    +                }
    +                data_surface += slice;
    +            }
    +            return event_list;
    +        }
    +
    +        /**
    +         * @brief Sets \p val to the pitched 2D memory region pointed by \p ptr in \p q.
    +         * @tparam valueT The type of the element to be set.
    +         * @param [in] q The queue in which the operation is done.
    +         * @param [in] ptr Pointer to the virtual device memory.
    +         * @param [in] pitch The pitch size by number of elements, including padding.
    +         * @param [in] val The value to be set.
    +         * @param [in] x The width of memory region by number of elements.
    +         * @param [in] y The height of memory region by number of elements.
    +         * @return An event list representing the memset operations.
    +         */
    +        template 
    +        static inline std::vector
    +        dpct_memset(sycl::queue &q, void *ptr, size_t pitch, valueT val, size_t x,
    +                    size_t y)
    +        {
    +            return dpct_memset(q, pitched_data(ptr, pitch, x, 1), val,
    +                               sycl::range<3>(x, y, 1));
    +        }
    +
    +        static memcpy_direction deduce_memcpy_direction(sycl::queue &q, void *to_ptr,
    +                                                        const void *from_ptr,
    +                                                        memcpy_direction dir)
    +        {
    +            switch (dir)
    +            {
    +            case memcpy_direction::host_to_host:
    +            case memcpy_direction::host_to_device:
    +            case memcpy_direction::device_to_host:
    +            case memcpy_direction::device_to_device:
    +                return dir;
    +            case memcpy_direction::automatic:
    +            {
    +                // table[to_attribute][from_attribute]
    +                static const memcpy_direction
    +                    direction_table[static_cast(pointer_access_attribute::end)]
    +                                   [static_cast(pointer_access_attribute::end)] =
    +                                       {{memcpy_direction::host_to_host,
    +                                         memcpy_direction::device_to_host,
    +                                         memcpy_direction::host_to_host},
    +                                        {memcpy_direction::host_to_device,
    +                                         memcpy_direction::device_to_device,
    +                                         memcpy_direction::device_to_device},
    +                                        {memcpy_direction::host_to_host,
    +                                         memcpy_direction::device_to_device,
    +                                         memcpy_direction::device_to_device}};
    +                return direction_table[static_cast(get_pointer_attribute(
    +                    q, to_ptr))][static_cast(get_pointer_attribute(q, from_ptr))];
    +            }
    +            default:
    +                throw std::runtime_error("dpct_memcpy: invalid direction value");
    +            }
    +        }
    +
    +        static sycl::event
    +        dpct_memcpy(sycl::queue &q, void *to_ptr, const void *from_ptr, size_t size,
    +                    memcpy_direction direction,
    +                    const std::vector &dep_events = {})
    +        {
    +            if (!size)
    +                return sycl::event{};
    +            return q.memcpy(to_ptr, from_ptr, size, dep_events);
    +            GGML_UNUSED(direction);
    +        }
    +
    +        // Get actual copy range and make sure it will not exceed range.
    +        static inline size_t get_copy_range(sycl::range<3> size, size_t slice,
    +                                            size_t pitch)
    +        {
    +            return slice * (size.get(2) - 1) + pitch * (size.get(1) - 1) + size.get(0);
    +        }
    +
    +        static inline size_t get_offset(sycl::id<3> id, size_t slice,
    +                                        size_t pitch)
    +        {
    +            return slice * id.get(2) + pitch * id.get(1) + id.get(0);
    +        }
    +
    +        /// copy 3D matrix specified by \p size from 3D matrix specified by \p from_ptr
    +        /// and \p from_range to another specified by \p to_ptr and \p to_range.
    +        static inline std::vector
    +        dpct_memcpy(sycl::queue &q, void *to_ptr, const void *from_ptr,
    +                    sycl::range<3> to_range, sycl::range<3> from_range,
    +                    sycl::id<3> to_id, sycl::id<3> from_id,
    +                    sycl::range<3> size, memcpy_direction direction,
    +                    const std::vector &dep_events = {})
    +        {
    +            // RAII for host pointer
    +            class host_buffer
    +            {
    +                void *_buf;
    +                size_t _size;
    +                sycl::queue &_q;
    +                const std::vector &_deps; // free operation depends
    +
    +            public:
    +                host_buffer(size_t size, sycl::queue &q,
    +                            const std::vector &deps)
    +                    : _buf(std::malloc(size)), _size(size), _q(q), _deps(deps) {}
    +                void *get_ptr() const { return _buf; }
    +                size_t get_size() const { return _size; }
    +                ~host_buffer()
    +                {
    +                    if (_buf)
    +                    {
    +                        _q.submit([&](sycl::handler &cgh)
    +                                  {
    +        cgh.depends_on(_deps);
    +        cgh.host_task([buf = _buf] { std::free(buf); }); });
    +                    }
    +                }
    +            };
    +            std::vector event_list;
    +
    +            size_t to_slice = to_range.get(1) * to_range.get(0),
    +                   from_slice = from_range.get(1) * from_range.get(0);
    +            unsigned char *to_surface =
    +                (unsigned char *)to_ptr + get_offset(to_id, to_slice, to_range.get(0));
    +            const unsigned char *from_surface =
    +                (const unsigned char *)from_ptr +
    +                get_offset(from_id, from_slice, from_range.get(0));
    +
    +            if (to_slice == from_slice && to_slice == size.get(1) * size.get(0))
    +            {
    +                return {dpct_memcpy(q, to_surface, from_surface, to_slice * size.get(2),
    +                                    direction, dep_events)};
    +            }
    +            direction = deduce_memcpy_direction(q, to_ptr, from_ptr, direction);
    +            size_t size_slice = size.get(1) * size.get(0);
    +            switch (direction)
    +            {
    +            case host_to_host:
    +                for (size_t z = 0; z < size.get(2); ++z)
    +                {
    +                    unsigned char *to_ptr = to_surface;
    +                    const unsigned char *from_ptr = from_surface;
    +                    if (to_range.get(0) == from_range.get(0) &&
    +                        to_range.get(0) == size.get(0))
    +                    {
    +                        event_list.push_back(dpct_memcpy(q, to_ptr, from_ptr, size_slice,
    +                                                         direction, dep_events));
    +                    }
    +                    else
    +                    {
    +                        for (size_t y = 0; y < size.get(1); ++y)
    +                        {
    +                            event_list.push_back(dpct_memcpy(q, to_ptr, from_ptr, size.get(0),
    +                                                             direction, dep_events));
    +                            to_ptr += to_range.get(0);
    +                            from_ptr += from_range.get(0);
    +                        }
    +                    }
    +                    to_surface += to_slice;
    +                    from_surface += from_slice;
    +                }
    +                break;
    +            case host_to_device:
    +            {
    +                host_buffer buf(get_copy_range(size, to_slice, to_range.get(0)), q,
    +                                event_list);
    +                std::vector host_events;
    +                if (to_slice == size_slice)
    +                {
    +                    // Copy host data to a temp host buffer with the shape of target.
    +                    host_events =
    +                        dpct_memcpy(q, buf.get_ptr(), from_surface, to_range, from_range,
    +                                    sycl::id<3>(0, 0, 0), sycl::id<3>(0, 0, 0), size,
    +                                    host_to_host, dep_events);
    +                }
    +                else
    +                {
    +                    // Copy host data to a temp host buffer with the shape of target.
    +                    host_events = dpct_memcpy(
    +                        q, buf.get_ptr(), from_surface, to_range, from_range,
    +                        sycl::id<3>(0, 0, 0), sycl::id<3>(0, 0, 0), size, host_to_host,
    +                        // If has padding data, not sure whether it is useless. So fill temp
    +                        // buffer with it.
    +                        std::vector{
    +                            dpct_memcpy(q, buf.get_ptr(), to_surface, buf.get_size(),
    +                                        device_to_host, dep_events)});
    +                }
    +                // Copy from temp host buffer to device with only one submit.
    +                event_list.push_back(dpct_memcpy(q, to_surface, buf.get_ptr(),
    +                                                 buf.get_size(), host_to_device,
    +                                                 host_events));
    +                break;
    +            }
    +            case device_to_host:
    +            {
    +                host_buffer buf(get_copy_range(size, from_slice, from_range.get(0)), q,
    +                                event_list);
    +                // Copy from host temp buffer to host target with reshaping.
    +                event_list = dpct_memcpy(
    +                    q, to_surface, buf.get_ptr(), to_range, from_range, sycl::id<3>(0, 0, 0),
    +                    sycl::id<3>(0, 0, 0), size, host_to_host,
    +                    // Copy from device to temp host buffer with only one submit.
    +                    std::vector{dpct_memcpy(q, buf.get_ptr(), from_surface,
    +                                                         buf.get_size(),
    +                                                         device_to_host, dep_events)});
    +                break;
    +            }
    +            case device_to_device:
    +                event_list.push_back(q.submit([&](sycl::handler &cgh){
    +                cgh.depends_on(dep_events);
    +                cgh.parallel_for(
    +                    size,
    +                    [=](sycl::id<3> id) {
    +                        to_surface[get_offset(id, to_slice, to_range.get(0))] =
    +                            from_surface[get_offset(id, from_slice, from_range.get(0))];
    +                    }); }));
    +                break;
    +            default:
    +                throw std::runtime_error("dpct_memcpy: invalid direction value");
    +            }
    +            return event_list;
    +        }
    +
    +        /// memcpy 2D/3D matrix specified by pitched_data.
    +        static inline std::vector
    +        dpct_memcpy(sycl::queue &q, pitched_data to, sycl::id<3> to_id,
    +                    pitched_data from, sycl::id<3> from_id, sycl::range<3> size,
    +                    memcpy_direction direction = automatic)
    +        {
    +            return dpct_memcpy(q, to.get_data_ptr(), from.get_data_ptr(),
    +                               sycl::range<3>(to.get_pitch(), to.get_y(), 1),
    +                               sycl::range<3>(from.get_pitch(), from.get_y(), 1), to_id, from_id,
    +                               size, direction);
    +        }
    +
    +        /// memcpy 2D matrix with pitch.
    +        static inline std::vector
    +        dpct_memcpy(sycl::queue &q, void *to_ptr, const void *from_ptr,
    +                    size_t to_pitch, size_t from_pitch, size_t x, size_t y,
    +                    memcpy_direction direction = automatic)
    +        {
    +            return dpct_memcpy(q, to_ptr, from_ptr, sycl::range<3>(to_pitch, y, 1),
    +                               sycl::range<3>(from_pitch, y, 1),
    +                               sycl::id<3>(0, 0, 0), sycl::id<3>(0, 0, 0),
    +                               sycl::range<3>(x, y, 1), direction);
    +        }
    +
    +        namespace deprecated
    +        {
    +
    +            template 
    +            class usm_allocator
    +            {
    +            private:
    +                using Alloc = sycl::usm_allocator;
    +                Alloc _impl;
    +
    +            public:
    +                using value_type = typename std::allocator_traits::value_type;
    +                using pointer = typename std::allocator_traits::pointer;
    +                using const_pointer = typename std::allocator_traits::const_pointer;
    +                using void_pointer = typename std::allocator_traits::void_pointer;
    +                using const_void_pointer =
    +                    typename std::allocator_traits::const_void_pointer;
    +                using reference = typename std::allocator_traits::value_type &;
    +                using const_reference =
    +                    const typename std::allocator_traits::value_type &;
    +                using difference_type =
    +                    typename std::allocator_traits::difference_type;
    +                using size_type = typename std::allocator_traits::size_type;
    +                using propagate_on_container_copy_assignment = typename std::allocator_traits<
    +                    Alloc>::propagate_on_container_copy_assignment;
    +                using propagate_on_container_move_assignment = typename std::allocator_traits<
    +                    Alloc>::propagate_on_container_move_assignment;
    +                using propagate_on_container_swap =
    +                    typename std::allocator_traits::propagate_on_container_swap;
    +                using is_always_equal =
    +                    typename std::allocator_traits::is_always_equal;
    +
    +                template 
    +                struct rebind
    +                {
    +                    typedef usm_allocator other;
    +                };
    +
    +                usm_allocator() : _impl(dpct::get_default_queue()) {}
    +                ~usm_allocator() {}
    +                usm_allocator(const usm_allocator &other) : _impl(other._impl) {}
    +                usm_allocator(usm_allocator &&other) : _impl(std::move(other._impl)) {}
    +                pointer address(reference r) { return &r; }
    +                const_pointer address(const_reference r) { return &r; }
    +                pointer allocate(size_type cnt, const_void_pointer hint = nullptr)
    +                {
    +                    return std::allocator_traits::allocate(_impl, cnt, hint);
    +                }
    +                void deallocate(pointer p, size_type cnt)
    +                {
    +                    std::allocator_traits::deallocate(_impl, p, cnt);
    +                }
    +                size_type max_size() const
    +                {
    +                    return std::allocator_traits::max_size(_impl);
    +                }
    +                bool operator==(const usm_allocator &other) const { return _impl == other._impl; }
    +                bool operator!=(const usm_allocator &other) const { return _impl != other._impl; }
    +            };
    +
    +        } // namespace deprecated
    +
    +        inline void dpct_free(void *ptr,
    +                              const sycl::queue &q)
    +        {
    +            if (ptr)
    +            {
    +                sycl::free(ptr, q.get_context());
    +            }
    +        }
    +
    +        template 
    +        inline auto get_memory(const void *x)
    +        {
    +            T *new_x = reinterpret_cast(const_cast(x));
    +            return new_x;
    +        }
    +
    +        template 
    +        inline typename DataType::T2 get_value(const T *s, sycl::queue &q)
    +        {
    +            using Ty = typename DataType::T2;
    +            Ty s_h;
    +            if (get_pointer_attribute(q, s) == pointer_access_attribute::device_only)
    +                detail::dpct_memcpy(q, (void *)&s_h, (const void *)s, sizeof(T), device_to_host)
    +                    .wait();
    +            else
    +                s_h = *reinterpret_cast(s);
    +            return s_h;
    +        }
    +
    +    } // namespace detail
    +
    +    template 
    +    inline auto get_value(const T *s, sycl::queue &q)
    +    {
    +        return detail::get_value(s, q);
    +    }
    +
    +    namespace detail
    +    {
    +        template 
    +        inline void gemm_impl(sycl::queue &q, oneapi::mkl::transpose a_trans,
    +                              oneapi::mkl::transpose b_trans, int m, int n, int k,
    +                              const void *alpha, const void *a, int lda, const void *b,
    +                              int ldb, const void *beta, void *c, int ldc)
    +        {
    +            Ts alpha_value = dpct::get_value(reinterpret_cast(alpha), q);
    +            Ts beta_value = dpct::get_value(reinterpret_cast(beta), q);
    +            auto data_a = get_memory(a);
    +            auto data_b = get_memory(b);
    +            auto data_c = get_memory(c);
    +            oneapi::mkl::blas::column_major::gemm(
    +                q, a_trans, b_trans, m, n, k, alpha_value, data_a, lda,
    +                data_b, ldb, beta_value, data_c, ldc);
    +        }
    +
    +        template 
    +        class vectorized_binary
    +        {
    +        public:
    +            inline VecT operator()(VecT a, VecT b, const BinaryOperation binary_op)
    +            {
    +                VecT v4;
    +                for (size_t i = 0; i < v4.size(); ++i)
    +                {
    +                    v4[i] = binary_op(a[i], b[i]);
    +                }
    +                return v4;
    +            }
    +        };
    +
    +        template 
    +        class vectorized_binary<
    +            VecT, BinaryOperation,
    +            std::void_t>>
    +        {
    +        public:
    +            inline VecT operator()(VecT a, VecT b, const BinaryOperation binary_op)
    +            {
    +                return binary_op(a, b).template as();
    +            }
    +        };
    +
    +        template 
    +        inline void gemm_batch_impl(sycl::queue &q, oneapi::mkl::transpose a_trans,
    +                                    oneapi::mkl::transpose b_trans, int m, int n, int k,
    +                                    const void *alpha, const void **a, int lda,
    +                                    const void **b, int ldb, const void *beta, void **c,
    +                                    int ldc, int batch_size)
    +        {
    +            struct matrix_info_t
    +            {
    +                oneapi::mkl::transpose transpose_info[2];
    +                Ts value_info[2];
    +                std::int64_t size_info[3];
    +                std::int64_t ld_info[3];
    +                std::int64_t groupsize_info;
    +            };
    +
    +            Ts alpha_value = dpct::get_value(reinterpret_cast(alpha), q);
    +            Ts beta_value = dpct::get_value(reinterpret_cast(beta), q);
    +
    +            matrix_info_t *matrix_info =
    +                (matrix_info_t *)std::malloc(sizeof(matrix_info_t));
    +            matrix_info->transpose_info[0] = a_trans;
    +            matrix_info->transpose_info[1] = b_trans;
    +            matrix_info->value_info[0] = alpha_value;
    +            matrix_info->value_info[1] = beta_value;
    +            matrix_info->size_info[0] = m;
    +            matrix_info->size_info[1] = n;
    +            matrix_info->size_info[2] = k;
    +            matrix_info->ld_info[0] = lda;
    +            matrix_info->ld_info[1] = ldb;
    +            matrix_info->ld_info[2] = ldc;
    +            matrix_info->groupsize_info = batch_size;
    +
    +            sycl::event e = oneapi::mkl::blas::column_major::gemm_batch(
    +                q, matrix_info->transpose_info, matrix_info->transpose_info + 1,
    +                matrix_info->size_info, matrix_info->size_info + 1,
    +                matrix_info->size_info + 2, matrix_info->value_info,
    +                reinterpret_cast(a), matrix_info->ld_info,
    +                reinterpret_cast(b), matrix_info->ld_info + 1,
    +                matrix_info->value_info + 1, reinterpret_cast(c),
    +                matrix_info->ld_info + 2, 1, &(matrix_info->groupsize_info));
    +
    +            q.submit([&](sycl::handler &cgh)
    +                     {
    +    cgh.depends_on(e);
    +    cgh.host_task([=] { std::free(matrix_info); }); });
    +        }
    +
    +        template 
    +        inline void
    +        gemm_batch_impl(sycl::queue &q, oneapi::mkl::transpose a_trans,
    +                        oneapi::mkl::transpose b_trans, int m, int n,
    +                        int k, const void *alpha, const void *a, int lda,
    +                        long long int stride_a, const void *b, int ldb,
    +                        long long int stride_b, const void *beta, void *c,
    +                        int ldc, long long int stride_c, int batch_size)
    +        {
    +            Ts alpha_value = dpct::get_value(reinterpret_cast(alpha), q);
    +            Ts beta_value = dpct::get_value(reinterpret_cast(beta), q);
    +            auto data_a = get_memory(a);
    +            auto data_b = get_memory(b);
    +            auto data_c = get_memory(c);
    +            oneapi::mkl::blas::column_major::gemm_batch(
    +                q, a_trans, b_trans, m, n, k, alpha_value, data_a, lda,
    +                stride_a, data_b, ldb, stride_b, beta_value,
    +                data_c, ldc, stride_c, batch_size);
    +        }
    +
    +    } // namespace detail
    +
    +    template 
    +    inline unsigned vectorized_binary(unsigned a, unsigned b,
    +                                      const BinaryOperation binary_op)
    +    {
    +        sycl::vec v0{a}, v1{b};
    +        auto v2 = v0.as();
    +        auto v3 = v1.as();
    +        auto v4 =
    +            detail::vectorized_binary()(v2, v3, binary_op);
    +        v0 = v4.template as>();
    +        return v0;
    +    }
    +
    +    static void async_dpct_memcpy(void *to_ptr, const void *from_ptr, size_t size,
    +                                  memcpy_direction direction = automatic,
    +                                  sycl::queue &q = dpct::get_default_queue())
    +    {
    +        detail::dpct_memcpy(q, to_ptr, from_ptr, size, direction);
    +    }
    +
    +    static inline unsigned int select_device(unsigned int id)
    +    {
    +        dev_mgr::instance().select_device(id);
    +        return id;
    +    }
    +
    +    template 
    +    T permute_sub_group_by_xor(sycl::sub_group g, T x, unsigned int mask,
    +                               unsigned int logical_sub_group_size = 32)
    +    {
    +        unsigned int id = g.get_local_linear_id();
    +        unsigned int start_index =
    +            id / logical_sub_group_size * logical_sub_group_size;
    +        unsigned int target_offset = (id % logical_sub_group_size) ^ mask;
    +        return sycl::select_from_group(g, x,
    +                                       target_offset < logical_sub_group_size
    +                                           ? start_index + target_offset
    +                                           : id);
    +    }
    +
    +    template 
    +    sycl::vec extract_and_sign_or_zero_extend4(T val)
    +    {
    +        return sycl::vec(val)
    +            .template as, int8_t, uint8_t>, 4>>()
    +            .template convert();
    +    }
    +
    +    template 
    +    using dot_product_acc_t =
    +        std::conditional_t && std::is_unsigned_v,
    +                           uint32_t, int32_t>;
    +
    +    template 
    +    inline auto dp4a(T1 a, T2 b, T3 c)
    +    {
    +        dot_product_acc_t res = c;
    +        auto va = extract_and_sign_or_zero_extend4(a);
    +        auto vb = extract_and_sign_or_zero_extend4(b);
    +        res += va[0] * vb[0];
    +        res += va[1] * vb[1];
    +        res += va[2] * vb[2];
    +        res += va[3] * vb[3];
    +        return res;
    +    }
    +
    +    struct sub_sat
    +    {
    +        template 
    +        auto operator()(const T x, const T y) const
    +        {
    +            return sycl::sub_sat(x, y);
    +        }
    +    };
    +
    +    template 
    +    inline T vectorized_min(T a, T b)
    +    {
    +        sycl::vec v0{a}, v1{b};
    +        auto v2 = v0.template as();
    +        auto v3 = v1.template as();
    +        auto v4 = sycl::min(v2, v3);
    +        v0 = v4.template as>();
    +        return v0;
    +    }
    +
    +    inline float pow(const float a, const int b) { return sycl::pown(a, b); }
    +    inline double pow(const double a, const int b) { return sycl::pown(a, b); }
    +    inline float pow(const float a, const float b) { return sycl::pow(a, b); }
    +    inline double pow(const double a, const double b) { return sycl::pow(a, b); }
    +    template 
    +    inline typename std::enable_if_t, T>
    +    pow(const T a, const U b)
    +    {
    +        return sycl::pow(a, static_cast(b));
    +    }
    +    template 
    +    inline typename std::enable_if_t, double>
    +    pow(const T a, const U b)
    +    {
    +        return sycl::pow(static_cast(a), static_cast(b));
    +    }
    +
    +    inline double min(const double a, const float b)
    +    {
    +        return sycl::fmin(a, static_cast(b));
    +    }
    +    inline double min(const float a, const double b)
    +    {
    +        return sycl::fmin(static_cast(a), b);
    +    }
    +    inline float min(const float a, const float b) { return sycl::fmin(a, b); }
    +    inline double min(const double a, const double b) { return sycl::fmin(a, b); }
    +    inline std::uint32_t min(const std::uint32_t a, const std::int32_t b)
    +    {
    +        return sycl::min(a, static_cast(b));
    +    }
    +    inline std::uint32_t min(const std::int32_t a, const std::uint32_t b)
    +    {
    +        return sycl::min(static_cast(a), b);
    +    }
    +    inline std::int32_t min(const std::int32_t a, const std::int32_t b)
    +    {
    +        return sycl::min(a, b);
    +    }
    +    inline std::uint32_t min(const std::uint32_t a, const std::uint32_t b)
    +    {
    +        return sycl::min(a, b);
    +    }
    +    inline std::uint64_t min(const std::uint64_t a, const std::int64_t b)
    +    {
    +        return sycl::min(a, static_cast(b));
    +    }
    +    inline std::uint64_t min(const std::int64_t a, const std::uint64_t b)
    +    {
    +        return sycl::min(static_cast(a), b);
    +    }
    +    inline std::int64_t min(const std::int64_t a, const std::int64_t b)
    +    {
    +        return sycl::min(a, b);
    +    }
    +    inline std::uint64_t min(const std::uint64_t a, const std::uint64_t b)
    +    {
    +        return sycl::min(a, b);
    +    }
    +    inline std::uint64_t min(const std::uint64_t a, const std::int32_t b)
    +    {
    +        return sycl::min(a, static_cast(b));
    +    }
    +    inline std::uint64_t min(const std::int32_t a, const std::uint64_t b)
    +    {
    +        return sycl::min(static_cast(a), b);
    +    }
    +    inline std::uint64_t min(const std::uint64_t a, const std::uint32_t b)
    +    {
    +        return sycl::min(a, static_cast(b));
    +    }
    +    inline std::uint64_t min(const std::uint32_t a, const std::uint64_t b)
    +    {
    +        return sycl::min(static_cast(a), b);
    +    }
    +    // max function overloads.
    +    // For floating-point types, `float` or `double` arguments are acceptable.
    +    // For integer types, `std::uint32_t`, `std::int32_t`, `std::uint64_t` or
    +    // `std::int64_t` type arguments are acceptable.
    +    inline double max(const double a, const float b)
    +    {
    +        return sycl::fmax(a, static_cast(b));
    +    }
    +    inline double max(const float a, const double b)
    +    {
    +        return sycl::fmax(static_cast(a), b);
    +    }
    +    inline float max(const float a, const float b) { return sycl::fmax(a, b); }
    +    inline double max(const double a, const double b) { return sycl::fmax(a, b); }
    +    inline std::uint32_t max(const std::uint32_t a, const std::int32_t b)
    +    {
    +        return sycl::max(a, static_cast(b));
    +    }
    +    inline std::uint32_t max(const std::int32_t a, const std::uint32_t b)
    +    {
    +        return sycl::max(static_cast(a), b);
    +    }
    +    inline std::int32_t max(const std::int32_t a, const std::int32_t b)
    +    {
    +        return sycl::max(a, b);
    +    }
    +    inline std::uint32_t max(const std::uint32_t a, const std::uint32_t b)
    +    {
    +        return sycl::max(a, b);
    +    }
    +    inline std::uint64_t max(const std::uint64_t a, const std::int64_t b)
    +    {
    +        return sycl::max(a, static_cast(b));
    +    }
    +    inline std::uint64_t max(const std::int64_t a, const std::uint64_t b)
    +    {
    +        return sycl::max(static_cast(a), b);
    +    }
    +    inline std::int64_t max(const std::int64_t a, const std::int64_t b)
    +    {
    +        return sycl::max(a, b);
    +    }
    +    inline std::uint64_t max(const std::uint64_t a, const std::uint64_t b)
    +    {
    +        return sycl::max(a, b);
    +    }
    +    inline std::uint64_t max(const std::uint64_t a, const std::int32_t b)
    +    {
    +        return sycl::max(a, static_cast(b));
    +    }
    +    inline std::uint64_t max(const std::int32_t a, const std::uint64_t b)
    +    {
    +        return sycl::max(static_cast(a), b);
    +    }
    +    inline std::uint64_t max(const std::uint64_t a, const std::uint32_t b)
    +    {
    +        return sycl::max(a, static_cast(b));
    +    }
    +    inline std::uint64_t max(const std::uint32_t a, const std::uint64_t b)
    +    {
    +        return sycl::max(static_cast(a), b);
    +    }
    +
    +    inline void
    +    has_capability_or_fail(const sycl::device &dev,
    +                           const std::initializer_list &props)
    +    {
    +        for (const auto &it : props)
    +        {
    +            if (dev.has(it))
    +                continue;
    +            switch (it)
    +            {
    +            case sycl::aspect::fp64:
    +                throw std::runtime_error("'double' is not supported in '" +
    +                                         dev.get_info() +
    +                                         "' device");
    +                break;
    +            case sycl::aspect::fp16:
    +                throw std::runtime_error("'half' is not supported in '" +
    +                                         dev.get_info() +
    +                                         "' device");
    +                break;
    +            default:
    +#define __SYCL_ASPECT(ASPECT, ID) \
    +    case sycl::aspect::ASPECT:    \
    +        return #ASPECT;
    +#define __SYCL_ASPECT_DEPRECATED(ASPECT, ID, MESSAGE) __SYCL_ASPECT(ASPECT, ID)
    +#define __SYCL_ASPECT_DEPRECATED_ALIAS(ASPECT, ID, MESSAGE)
    +                auto getAspectNameStr = [](sycl::aspect AspectNum) -> std::string
    +                {
    +                    switch (AspectNum)
    +                    {
    +#include 
    +#include 
    +                    default:
    +                        return "unknown aspect";
    +                    }
    +                };
    +#undef __SYCL_ASPECT_DEPRECATED_ALIAS
    +#undef __SYCL_ASPECT_DEPRECATED
    +#undef __SYCL_ASPECT
    +                throw std::runtime_error(
    +                    "'" + getAspectNameStr(it) + "' is not supported in '" +
    +                    dev.get_info() + "' device");
    +            }
    +            break;
    +        }
    +    }
    +
    +    static inline unsigned int get_current_device_id()
    +    {
    +        return dev_mgr::instance().current_device_id();
    +    }
    +
    +    static inline device_ext &get_current_device()
    +    {
    +        return dev_mgr::instance().current_device();
    +    }
    +
    +    static inline sycl::queue &get_in_order_queue()
    +    {
    +        return dev_mgr::instance().current_device().in_order_queue();
    +    }
    +
    +    static sycl::event
    +    dpct_memcpy(sycl::queue &q, void *to_ptr, const void *from_ptr, size_t size,
    +                memcpy_direction direction,
    +                const std::vector &dep_events = {})
    +    {
    +        if (!size)
    +            return sycl::event{};
    +        return q.memcpy(to_ptr, from_ptr, size, dep_events);
    +        GGML_UNUSED(direction);
    +    }
    +
    +    // Get actual copy range and make sure it will not exceed range.
    +    static inline size_t get_copy_range(sycl::range<3> size, size_t slice,
    +                                        size_t pitch)
    +    {
    +        return slice * (size.get(2) - 1) + pitch * (size.get(1) - 1) + size.get(0);
    +    }
    +
    +    static inline size_t get_offset(sycl::id<3> id, size_t slice,
    +                                    size_t pitch)
    +    {
    +        return slice * id.get(2) + pitch * id.get(1) + id.get(0);
    +    }
    +
    +    /// copy 3D matrix specified by \p size from 3D matrix specified by \p from_ptr
    +    /// and \p from_range to another specified by \p to_ptr and \p to_range.
    +    static inline std::vector
    +    dpct_memcpy(sycl::queue &q, void *to_ptr, const void *from_ptr,
    +                sycl::range<3> to_range, sycl::range<3> from_range,
    +                sycl::id<3> to_id, sycl::id<3> from_id,
    +                sycl::range<3> size, memcpy_direction direction,
    +                const std::vector &dep_events = {})
    +    {
    +        // RAII for host pointer
    +        class host_buffer
    +        {
    +            void *_buf;
    +            size_t _size;
    +            sycl::queue &_q;
    +            const std::vector &_deps; // free operation depends
    +
    +        public:
    +            host_buffer(size_t size, sycl::queue &q,
    +                        const std::vector &deps)
    +                : _buf(std::malloc(size)), _size(size), _q(q), _deps(deps) {}
    +            void *get_ptr() const { return _buf; }
    +            size_t get_size() const { return _size; }
    +            ~host_buffer()
    +            {
    +                if (_buf)
    +                {
    +                    _q.submit([&](sycl::handler &cgh)
    +                              {
    +            cgh.depends_on(_deps);
    +            cgh.host_task([buf = _buf] { std::free(buf); }); });
    +                }
    +            }
    +        };
    +        std::vector event_list;
    +
    +        size_t to_slice = to_range.get(1) * to_range.get(0),
    +               from_slice = from_range.get(1) * from_range.get(0);
    +        unsigned char *to_surface =
    +            (unsigned char *)to_ptr + get_offset(to_id, to_slice, to_range.get(0));
    +        const unsigned char *from_surface =
    +            (const unsigned char *)from_ptr +
    +            get_offset(from_id, from_slice, from_range.get(0));
    +
    +        if (to_slice == from_slice && to_slice == size.get(1) * size.get(0))
    +        {
    +            return {dpct_memcpy(q, to_surface, from_surface, to_slice * size.get(2),
    +                                direction, dep_events)};
    +        }
    +        direction = detail::deduce_memcpy_direction(q, to_ptr, from_ptr, direction);
    +        size_t size_slice = size.get(1) * size.get(0);
    +        switch (direction)
    +        {
    +        case host_to_host:
    +            for (size_t z = 0; z < size.get(2); ++z)
    +            {
    +                unsigned char *to_ptr = to_surface;
    +                const unsigned char *from_ptr = from_surface;
    +                if (to_range.get(0) == from_range.get(0) &&
    +                    to_range.get(0) == size.get(0))
    +                {
    +                    event_list.push_back(dpct_memcpy(q, to_ptr, from_ptr, size_slice,
    +                                                     direction, dep_events));
    +                }
    +                else
    +                {
    +                    for (size_t y = 0; y < size.get(1); ++y)
    +                    {
    +                        event_list.push_back(dpct_memcpy(q, to_ptr, from_ptr, size.get(0),
    +                                                         direction, dep_events));
    +                        to_ptr += to_range.get(0);
    +                        from_ptr += from_range.get(0);
    +                    }
    +                }
    +                to_surface += to_slice;
    +                from_surface += from_slice;
    +            }
    +            break;
    +        case host_to_device:
    +        {
    +            host_buffer buf(get_copy_range(size, to_slice, to_range.get(0)), q,
    +                            event_list);
    +            std::vector host_events;
    +            if (to_slice == size_slice)
    +            {
    +                // Copy host data to a temp host buffer with the shape of target.
    +                host_events =
    +                    dpct_memcpy(q, buf.get_ptr(), from_surface, to_range, from_range,
    +                                sycl::id<3>(0, 0, 0), sycl::id<3>(0, 0, 0), size,
    +                                host_to_host, dep_events);
    +            }
    +            else
    +            {
    +                // Copy host data to a temp host buffer with the shape of target.
    +                host_events = dpct_memcpy(
    +                    q, buf.get_ptr(), from_surface, to_range, from_range,
    +                    sycl::id<3>(0, 0, 0), sycl::id<3>(0, 0, 0), size, host_to_host,
    +                    // If has padding data, not sure whether it is useless. So fill temp
    +                    // buffer with it.
    +                    std::vector{
    +                        dpct_memcpy(q, buf.get_ptr(), to_surface, buf.get_size(),
    +                                    device_to_host, dep_events)});
    +            }
    +            // Copy from temp host buffer to device with only one submit.
    +            event_list.push_back(dpct_memcpy(q, to_surface, buf.get_ptr(),
    +                                             buf.get_size(), host_to_device,
    +                                             host_events));
    +            break;
    +        }
    +        case device_to_host:
    +        {
    +            host_buffer buf(get_copy_range(size, from_slice, from_range.get(0)), q,
    +                            event_list);
    +            // Copy from host temp buffer to host target with reshaping.
    +            event_list = dpct_memcpy(
    +                q, to_surface, buf.get_ptr(), to_range, from_range, sycl::id<3>(0, 0, 0),
    +                sycl::id<3>(0, 0, 0), size, host_to_host,
    +                // Copy from device to temp host buffer with only one submit.
    +                std::vector{dpct_memcpy(q, buf.get_ptr(), from_surface,
    +                                                     buf.get_size(),
    +                                                     device_to_host, dep_events)});
    +            break;
    +        }
    +        case device_to_device:
    +            event_list.push_back(q.submit([&](sycl::handler &cgh)
    +                                          {
    +        cgh.depends_on(dep_events);
    +        cgh.parallel_for(
    +            size,
    +            [=](sycl::id<3> id) {
    +                to_surface[get_offset(id, to_slice, to_range.get(0))] =
    +                    from_surface[get_offset(id, from_slice, from_range.get(0))];
    +            }); }));
    +        break;
    +        default:
    +            throw std::runtime_error("dpct_memcpy: invalid direction value");
    +        }
    +        return event_list;
    +    }
    +
    +    /// memcpy 2D/3D matrix specified by pitched_data.
    +    static inline std::vector
    +    dpct_memcpy(sycl::queue &q, pitched_data to, sycl::id<3> to_id,
    +                pitched_data from, sycl::id<3> from_id, sycl::range<3> size,
    +                memcpy_direction direction = automatic)
    +    {
    +        return dpct_memcpy(q, to.get_data_ptr(), from.get_data_ptr(),
    +                           sycl::range<3>(to.get_pitch(), to.get_y(), 1),
    +                           sycl::range<3>(from.get_pitch(), from.get_y(), 1), to_id, from_id,
    +                           size, direction);
    +    }
    +
    +    /// memcpy 2D matrix with pitch.
    +    static inline std::vector
    +    dpct_memcpy(sycl::queue &q, void *to_ptr, const void *from_ptr,
    +                size_t to_pitch, size_t from_pitch, size_t x, size_t y,
    +                memcpy_direction direction = automatic)
    +    {
    +        return dpct_memcpy(q, to_ptr, from_ptr, sycl::range<3>(to_pitch, y, 1),
    +                           sycl::range<3>(from_pitch, y, 1),
    +                           sycl::id<3>(0, 0, 0), sycl::id<3>(0, 0, 0),
    +                           sycl::range<3>(x, y, 1), direction);
    +    }
    +
    +    inline void gemm(sycl::queue &q, oneapi::mkl::transpose a_trans,
    +                     oneapi::mkl::transpose b_trans, int m, int n, int k,
    +                     const void *alpha, const void *a, library_data_t a_type,
    +                     int lda, const void *b, library_data_t b_type, int ldb,
    +                     const void *beta, void *c, library_data_t c_type, int ldc,
    +                     library_data_t scaling_type)
    +    {
    +        if (scaling_type == library_data_t::real_float &&
    +            c_type == library_data_t::complex_float)
    +        {
    +            scaling_type = library_data_t::complex_float;
    +        }
    +        else if (scaling_type == library_data_t::real_double &&
    +                 c_type == library_data_t::complex_double)
    +        {
    +            scaling_type = library_data_t::complex_double;
    +        }
    +
    +        std::uint64_t key =
    +            detail::get_type_combination_id(a_type, b_type, c_type, scaling_type);
    +        switch (key)
    +        {
    +        case detail::get_type_combination_id(
    +            library_data_t::real_float, library_data_t::real_float,
    +            library_data_t::real_float, library_data_t::real_float):
    +        {
    +            detail::gemm_impl(
    +                q, a_trans, b_trans, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc);
    +            break;
    +        }
    +        case detail::get_type_combination_id(
    +            library_data_t::real_double, library_data_t::real_double,
    +            library_data_t::real_double, library_data_t::real_double):
    +        {
    +            detail::gemm_impl(
    +                q, a_trans, b_trans, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc);
    +            break;
    +        }
    +        case detail::get_type_combination_id(
    +            library_data_t::complex_float, library_data_t::complex_float,
    +            library_data_t::complex_float, library_data_t::complex_float):
    +        {
    +            detail::gemm_impl, std::complex,
    +                              std::complex, std::complex>(
    +                q, a_trans, b_trans, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc);
    +            break;
    +        }
    +        case detail::get_type_combination_id(
    +            library_data_t::complex_double, library_data_t::complex_double,
    +            library_data_t::complex_double, library_data_t::complex_double):
    +        {
    +            detail::gemm_impl, std::complex,
    +                              std::complex, std::complex>(
    +                q, a_trans, b_trans, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc);
    +            break;
    +        }
    +        case detail::get_type_combination_id(
    +            library_data_t::real_half, library_data_t::real_half,
    +            library_data_t::real_half, library_data_t::real_half):
    +        {
    +            detail::gemm_impl(q, a_trans, b_trans, m, n, k, alpha, a,
    +                                          lda, b, ldb, beta, c, ldc);
    +            break;
    +        }
    +#ifdef __INTEL_MKL__
    +        case detail::get_type_combination_id(
    +            library_data_t::real_bfloat16, library_data_t::real_bfloat16,
    +            library_data_t::real_float, library_data_t::real_float):
    +        {
    +            detail::gemm_impl(q, a_trans, b_trans, m, n, k, alpha, a, lda, b,
    +                                     ldb, beta, c, ldc);
    +            break;
    +        }
    +        case detail::get_type_combination_id(
    +            library_data_t::real_half, library_data_t::real_half,
    +            library_data_t::real_float, library_data_t::real_float):
    +        {
    +            detail::gemm_impl(
    +                q, a_trans, b_trans, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc);
    +            break;
    +        }
    +        case detail::get_type_combination_id(
    +            library_data_t::real_half, library_data_t::real_half,
    +            library_data_t::real_half, library_data_t::real_float):
    +        {
    +            float alpha_value =
    +                dpct::get_value(reinterpret_cast(alpha), q);
    +            float beta_value =
    +                dpct::get_value(reinterpret_cast(beta), q);
    +            sycl::half alpha_half(alpha_value);
    +            sycl::half beta_half(beta_value);
    +            detail::gemm_impl(q, a_trans, b_trans, m, n, k, &alpha_half,
    +                                          a, lda, b, ldb, &beta_half, c, ldc);
    +            break;
    +        }
    +        case detail::get_type_combination_id(
    +            library_data_t::real_int8, library_data_t::real_int8,
    +            library_data_t::real_float, library_data_t::real_float):
    +        {
    +            detail::gemm_impl(
    +                q, a_trans, b_trans, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc);
    +            break;
    +        }
    +        case detail::get_type_combination_id(
    +            library_data_t::real_bfloat16, library_data_t::real_bfloat16,
    +            library_data_t::real_bfloat16, library_data_t::real_float):
    +        {
    +            detail::gemm_impl(
    +                q, a_trans, b_trans, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc);
    +            break;
    +        }
    +        case detail::get_type_combination_id(
    +            library_data_t::real_int8, library_data_t::real_int8,
    +            library_data_t::real_int32, library_data_t::real_int32):
    +        {
    +            float alpha_float =
    +                dpct::get_value(reinterpret_cast(alpha), q);
    +            float beta_float =
    +                dpct::get_value(reinterpret_cast(beta), q);
    +            detail::gemm_impl(
    +                q, a_trans, b_trans, m, n, k, &alpha_float, a, lda, b, ldb, &beta_float, c, ldc);
    +            break;
    +        }
    +#endif // __INTEL_MKL__
    +        default:
    +            throw std::runtime_error("the combination of data type is unsupported");
    +        }
    +    } // gemm()
    +
    +    /// Computes a batch of matrix-matrix product with general matrices.
    +    /// \param [in] q The queue where the routine should be executed.
    +    /// \param [in] a_trans Specifies the operation applied to A.
    +    /// \param [in] b_trans Specifies the operation applied to B.
    +    /// \param [in] m Specifies the number of rows of the matrix op(A) and of the matrix C.
    +    /// \param [in] n Specifies the number of columns of the matrix op(B) and of the matrix C.
    +    /// \param [in] k Specifies the number of columns of the matrix op(A) and the number of rows of the matrix op(B).
    +    /// \param [in] alpha Scaling factor for the matrix-matrix product.
    +    /// \param [in] a Input matrix A.
    +    /// \param [in] a_type Data type of the matrix A.
    +    /// \param [in] lda Leading dimension of A.
    +    /// \param [in] b Input matrix B.
    +    /// \param [in] b_type Data type of the matrix B.
    +    /// \param [in] ldb Leading dimension of B.
    +    /// \param [in] beta Scaling factor for matrix C.
    +    /// \param [in, out] c Input/Output matrix C.
    +    /// \param [in] c_type Data type of the matrix C.
    +    /// \param [in] ldc Leading dimension of C.
    +    /// \param [in] batch_size Specifies the number of matrix multiply operations to perform.
    +    /// \param [in] scaling_type Data type of the scaling factors.
    +    inline void gemm_batch(sycl::queue &q, oneapi::mkl::transpose a_trans,
    +                           oneapi::mkl::transpose b_trans, int m, int n, int k,
    +                           const void *alpha, const void *a[],
    +                           library_data_t a_type, int lda, const void *b[],
    +                           library_data_t b_type, int ldb, const void *beta,
    +                           void *c[], library_data_t c_type, int ldc,
    +                           int batch_size, library_data_t scaling_type)
    +    {
    +        if (scaling_type == library_data_t::real_float &&
    +            c_type == library_data_t::complex_float)
    +        {
    +            scaling_type = library_data_t::complex_float;
    +        }
    +        else if (scaling_type == library_data_t::real_double &&
    +                 c_type == library_data_t::complex_double)
    +        {
    +            scaling_type = library_data_t::complex_double;
    +        }
    +
    +        std::uint64_t key =
    +            detail::get_type_combination_id(a_type, b_type, c_type, scaling_type);
    +        switch (key)
    +        {
    +        case detail::get_type_combination_id(
    +            library_data_t::real_float, library_data_t::real_float,
    +            library_data_t::real_float, library_data_t::real_float):
    +        {
    +            detail::gemm_batch_impl(
    +                q, a_trans, b_trans, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc,
    +                batch_size);
    +            break;
    +        }
    +        case detail::get_type_combination_id(
    +            library_data_t::real_double, library_data_t::real_double,
    +            library_data_t::real_double, library_data_t::real_double):
    +        {
    +            detail::gemm_batch_impl(
    +                q, a_trans, b_trans, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc,
    +                batch_size);
    +            break;
    +        }
    +        case detail::get_type_combination_id(
    +            library_data_t::complex_float, library_data_t::complex_float,
    +            library_data_t::complex_float, library_data_t::complex_float):
    +        {
    +            detail::gemm_batch_impl, std::complex,
    +                                    std::complex, std::complex>(
    +                q, a_trans, b_trans, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc,
    +                batch_size);
    +            break;
    +        }
    +        case detail::get_type_combination_id(
    +            library_data_t::complex_double, library_data_t::complex_double,
    +            library_data_t::complex_double, library_data_t::complex_double):
    +        {
    +            detail::gemm_batch_impl, std::complex,
    +                                    std::complex, std::complex>(
    +                q, a_trans, b_trans, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc,
    +                batch_size);
    +            break;
    +        }
    +        case detail::get_type_combination_id(
    +            library_data_t::real_half, library_data_t::real_half,
    +            library_data_t::real_half, library_data_t::real_half):
    +        {
    +            detail::gemm_batch_impl(q, a_trans, b_trans, m, n, k, alpha,
    +                                                a, lda, b, ldb, beta, c, ldc,
    +                                                batch_size);
    +            break;
    +        }
    +#ifdef __INTEL_MKL__
    +        case detail::get_type_combination_id(
    +            library_data_t::real_bfloat16, library_data_t::real_bfloat16,
    +            library_data_t::real_bfloat16, library_data_t::real_float):
    +        {
    +            detail::gemm_batch_impl(
    +                q, a_trans, b_trans, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc,
    +                batch_size);
    +            break;
    +        }
    +        case detail::get_type_combination_id(
    +            library_data_t::real_bfloat16, library_data_t::real_bfloat16,
    +            library_data_t::real_float, library_data_t::real_float):
    +        {
    +            detail::gemm_batch_impl(q, a_trans, b_trans, m, n, k, alpha, a, lda,
    +                                           b, ldb, beta, c, ldc, batch_size);
    +            break;
    +        }
    +        case detail::get_type_combination_id(
    +            library_data_t::real_int8, library_data_t::real_int8,
    +            library_data_t::real_int32, library_data_t::real_int32):
    +        {
    +            float alpha_float =
    +                dpct::get_value(reinterpret_cast(alpha), q);
    +            float beta_float =
    +                dpct::get_value(reinterpret_cast(beta), q);
    +            detail::gemm_batch_impl(q, a_trans, b_trans, m, n, k, &alpha_float,
    +                                           a, lda, b, ldb, &beta_float, c, ldc,
    +                                           batch_size);
    +            break;
    +        }
    +        case detail::get_type_combination_id(
    +            library_data_t::real_int8, library_data_t::real_int8,
    +            library_data_t::real_float, library_data_t::real_float):
    +        {
    +            detail::gemm_batch_impl(
    +                q, a_trans, b_trans, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc,
    +                batch_size);
    +            break;
    +        }
    +        case detail::get_type_combination_id(
    +            library_data_t::real_half, library_data_t::real_half,
    +            library_data_t::real_float, library_data_t::real_float):
    +        {
    +            detail::gemm_batch_impl(
    +                q, a_trans, b_trans, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc,
    +                batch_size);
    +            break;
    +        }
    +#endif
    +        case detail::get_type_combination_id(
    +            library_data_t::real_half, library_data_t::real_half,
    +            library_data_t::real_half, library_data_t::real_float):
    +        {
    +            float alpha_value =
    +                dpct::get_value(reinterpret_cast(alpha), q);
    +            float beta_value =
    +                dpct::get_value(reinterpret_cast(beta), q);
    +            sycl::half alpha_half(alpha_value);
    +            sycl::half beta_half(beta_value);
    +            detail::gemm_batch_impl(
    +                q, a_trans, b_trans, m, n, k, &alpha_half, a, lda, b, ldb, &beta_half, c, ldc,
    +                batch_size);
    +            break;
    +        }
    +        default:
    +            throw std::runtime_error("the combination of data type is unsupported");
    +        }
    +    }
    +
    +    /// Computes a batch of matrix-matrix product with general matrices.
    +    /// \param [in] q The queue where the routine should be executed.
    +    /// \param [in] a_trans Specifies the operation applied to A.
    +    /// \param [in] b_trans Specifies the operation applied to B.
    +    /// \param [in] m Specifies the number of rows of the matrix op(A) and of the matrix C.
    +    /// \param [in] n Specifies the number of columns of the matrix op(B) and of the matrix C.
    +    /// \param [in] k Specifies the number of columns of the matrix op(A) and the number of rows of the matrix op(B).
    +    /// \param [in] alpha Scaling factor for the matrix-matrix product.
    +    /// \param [in] a Input matrix A.
    +    /// \param [in] a_type Data type of the matrix A.
    +    /// \param [in] lda Leading dimension of A.
    +    /// \param [in] stride_a Stride between the different A matrices.
    +    /// \param [in] b Input matrix B.
    +    /// \param [in] b_type Data type of the matrix B.
    +    /// \param [in] ldb Leading dimension of B.
    +    /// \param [in] stride_b Stride between the different B matrices.
    +    /// \param [in] beta Scaling factor for matrix C.
    +    /// \param [in, out] c Input/Output matrix C.
    +    /// \param [in] c_type Data type of the matrix C.
    +    /// \param [in] ldc Leading dimension of C.
    +    /// \param [in] stride_c Stride between the different C matrices.
    +    /// \param [in] batch_size Specifies the number of matrix multiply operations to perform.
    +    /// \param [in] scaling_type Data type of the scaling factors.
    +    inline void gemm_batch(sycl::queue &q, oneapi::mkl::transpose a_trans,
    +                           oneapi::mkl::transpose b_trans, int m, int n, int k,
    +                           const void *alpha, const void *a, library_data_t a_type,
    +                           int lda, long long int stride_a, const void *b,
    +                           library_data_t b_type, int ldb, long long int stride_b,
    +                           const void *beta, void *c, library_data_t c_type,
    +                           int ldc, long long int stride_c, int batch_size,
    +                           library_data_t scaling_type)
    +    {
    +        if (scaling_type == library_data_t::real_float &&
    +            c_type == library_data_t::complex_float)
    +        {
    +            scaling_type = library_data_t::complex_float;
    +        }
    +        else if (scaling_type == library_data_t::real_double &&
    +                 c_type == library_data_t::complex_double)
    +        {
    +            scaling_type = library_data_t::complex_double;
    +        }
    +
    +        std::uint64_t key =
    +            detail::get_type_combination_id(a_type, b_type, c_type, scaling_type);
    +        switch (key)
    +        {
    +        case detail::get_type_combination_id(
    +            library_data_t::real_float, library_data_t::real_float,
    +            library_data_t::real_float, library_data_t::real_float):
    +        {
    +            detail::gemm_batch_impl(
    +                q, a_trans, b_trans, m, n, k, alpha, a, lda, stride_a, b, ldb, stride_b,
    +                beta, c, ldc, stride_c, batch_size);
    +            break;
    +        }
    +        case detail::get_type_combination_id(
    +            library_data_t::real_double, library_data_t::real_double,
    +            library_data_t::real_double, library_data_t::real_double):
    +        {
    +            detail::gemm_batch_impl(
    +                q, a_trans, b_trans, m, n, k, alpha, a, lda, stride_a, b, ldb, stride_b,
    +                beta, c, ldc, stride_c, batch_size);
    +            break;
    +        }
    +        case detail::get_type_combination_id(
    +            library_data_t::complex_float, library_data_t::complex_float,
    +            library_data_t::complex_float, library_data_t::complex_float):
    +        {
    +            detail::gemm_batch_impl, std::complex,
    +                                    std::complex, std::complex>(
    +                q, a_trans, b_trans, m, n, k, alpha, a, lda, stride_a, b, ldb, stride_b,
    +                beta, c, ldc, stride_c, batch_size);
    +            break;
    +        }
    +        case detail::get_type_combination_id(
    +            library_data_t::complex_double, library_data_t::complex_double,
    +            library_data_t::complex_double, library_data_t::complex_double):
    +        {
    +            detail::gemm_batch_impl, std::complex,
    +                                    std::complex, std::complex>(
    +                q, a_trans, b_trans, m, n, k, alpha, a, lda, stride_a, b, ldb, stride_b,
    +                beta, c, ldc, stride_c, batch_size);
    +            break;
    +        }
    +        case detail::get_type_combination_id(
    +            library_data_t::real_half, library_data_t::real_half,
    +            library_data_t::real_half, library_data_t::real_half):
    +        {
    +            detail::gemm_batch_impl(q, a_trans, b_trans, m, n, k, alpha,
    +                                                a, lda, stride_a, b, ldb, stride_b,
    +                                                beta, c, ldc, stride_c, batch_size);
    +            break;
    +        }
    +#ifdef __INTEL_MKL__
    +        case detail::get_type_combination_id(
    +            library_data_t::real_bfloat16, library_data_t::real_bfloat16,
    +            library_data_t::real_bfloat16, library_data_t::real_float):
    +        {
    +            detail::gemm_batch_impl(
    +                q, a_trans, b_trans, m, n, k, alpha, a, lda, stride_a, b, ldb, stride_b,
    +                beta, c, ldc, stride_c, batch_size);
    +            break;
    +        }
    +        case detail::get_type_combination_id(
    +            library_data_t::real_bfloat16, library_data_t::real_bfloat16,
    +            library_data_t::real_float, library_data_t::real_float):
    +        {
    +            detail::gemm_batch_impl(q, a_trans, b_trans, m, n, k, alpha, a, lda,
    +                                           stride_a, b, ldb, stride_b, beta, c, ldc,
    +                                           stride_c, batch_size);
    +            break;
    +        }
    +        case detail::get_type_combination_id(
    +            library_data_t::real_int8, library_data_t::real_int8,
    +            library_data_t::real_int32, library_data_t::real_int32):
    +        {
    +            detail::gemm_batch_impl(q, a_trans, b_trans, m, n, k, alpha,
    +                                                  a, lda, stride_a, b, ldb, stride_b,
    +                                                  beta, c, ldc, stride_c, batch_size);
    +            break;
    +        }
    +        case detail::get_type_combination_id(
    +            library_data_t::real_int8, library_data_t::real_int8,
    +            library_data_t::real_float, library_data_t::real_float):
    +        {
    +            detail::gemm_batch_impl(
    +                q, a_trans, b_trans, m, n, k, alpha, a, lda, stride_a, b, ldb, stride_b,
    +                beta, c, ldc, stride_c, batch_size);
    +            break;
    +        }
    +        case detail::get_type_combination_id(
    +            library_data_t::real_half, library_data_t::real_half,
    +            library_data_t::real_float, library_data_t::real_float):
    +        {
    +            detail::gemm_batch_impl(
    +                q, a_trans, b_trans, m, n, k, alpha, a, lda, stride_a, b, ldb, stride_b,
    +                beta, c, ldc, stride_c, batch_size);
    +            break;
    +        }
    +#endif
    +        case detail::get_type_combination_id(
    +            library_data_t::real_half, library_data_t::real_half,
    +            library_data_t::real_half, library_data_t::real_float):
    +        {
    +            float alpha_value =
    +                dpct::get_value(reinterpret_cast(alpha), q);
    +            float beta_value =
    +                dpct::get_value(reinterpret_cast(beta), q);
    +            sycl::half alpha_half(alpha_value);
    +            sycl::half beta_half(beta_value);
    +            detail::gemm_batch_impl(
    +                q, a_trans, b_trans, m, n, k, &alpha_half, a, lda, stride_a, b, ldb, stride_b,
    +                &beta_half, c, ldc, stride_c, batch_size);
    +            break;
    +        }
    +        default:
    +            throw std::runtime_error("the combination of data type is unsupported");
    +        }
    +    }
    +
    +    static inline void
    +    async_dpct_memcpy(void *to_ptr, size_t to_pitch, const void *from_ptr,
    +                      size_t from_pitch, size_t x, size_t y,
    +                      memcpy_direction direction = automatic,
    +                      sycl::queue &q = get_default_queue())
    +    {
    +        detail::dpct_memcpy(q, to_ptr, from_ptr, to_pitch, from_pitch, x, y,
    +                            direction);
    +    }
    +
    +    using err0 = detail::generic_error_type;
    +    using err1 = detail::generic_error_type;
    +
    +    static inline void dpct_free(void *ptr, sycl::queue &q = get_default_queue()) {
    +        detail::dpct_free(ptr, q);
    +    }
    +
    +    /// dpct accessor used as device function parameter.
    +    template  class accessor;
    +    template  class accessor {
    +    public:
    +        using memory_t = detail::memory_traits;
    +        using element_t = typename memory_t::element_t;
    +        using pointer_t = typename memory_t::pointer_t;
    +        using accessor_t = typename memory_t::template accessor_t<3>;
    +        accessor(pointer_t data, const sycl::range<3> &in_range)
    +            : _data(data), _range(in_range) {}
    +        template 
    +        accessor(typename std::enable_if::type &acc)
    +            : accessor(acc, acc.get_range()) {}
    +        accessor(const accessor_t &acc, const sycl::range<3> &in_range)
    +            : accessor(acc.get_pointer(), in_range) {}
    +        accessor operator[](size_t index) const {
    +            sycl::range<2> sub(_range.get(1), _range.get(2));
    +            return accessor(_data + index * sub.size(), sub);
    +        }
    +
    +        pointer_t get_ptr() const { return _data; }
    +
    +    private:
    +        pointer_t _data;
    +        sycl::range<3> _range;
    +    };
    +    template  class accessor {
    +    public:
    +        using memory_t = detail::memory_traits;
    +        using element_t = typename memory_t::element_t;
    +        using pointer_t = typename memory_t::pointer_t;
    +        using accessor_t = typename memory_t::template accessor_t<2>;
    +        accessor(pointer_t data, const sycl::range<2> &in_range)
    +            : _data(data), _range(in_range) {}
    +        template 
    +        accessor(typename std::enable_if::type &acc)
    +            : accessor(acc, acc.get_range()) {}
    +        accessor(const accessor_t &acc, const sycl::range<2> &in_range)
    +            : accessor(acc.get_pointer(), in_range) {}
    +
    +        pointer_t operator[](size_t index) const {
    +            return _data + _range.get(1) * index;
    +        }
    +
    +        pointer_t get_ptr() const { return _data; }
    +
    +    private:
    +        pointer_t _data;
    +        sycl::range<2> _range;
    +    };
    +
    +    namespace detail {
    +        /// Device variable with address space of shared, global or constant.
    +        template  class device_memory {
    +        public:
    +            using accessor_t =
    +                typename detail::memory_traits::template accessor_t;
    +            using value_t = typename detail::memory_traits::value_t;
    +            using dpct_accessor_t = dpct::accessor;
    +
    +            device_memory() : device_memory(sycl::range(1)) {}
    +
    +            /// Constructor of 1-D array with initializer list
    +            device_memory(const sycl::range &in_range,
    +                        std::initializer_list &&init_list)
    +                : device_memory(in_range) {
    +                assert(init_list.size() <= in_range.size());
    +                _host_ptr = (value_t *)std::malloc(_size);
    +                std::memset(_host_ptr, 0, _size);
    +                std::memcpy(_host_ptr, init_list.begin(), init_list.size() * sizeof(T));
    +            }
    +
    +            /// Constructor of 2-D array with initializer list
    +            template 
    +            device_memory(
    +                const typename std::enable_if>::type &in_range,
    +                std::initializer_list> &&init_list)
    +                : device_memory(in_range) {
    +                assert(init_list.size() <= in_range[0]);
    +                _host_ptr = (value_t *)std::malloc(_size);
    +                std::memset(_host_ptr, 0, _size);
    +                auto tmp_data = _host_ptr;
    +                for (auto sub_list : init_list) {
    +                    assert(sub_list.size() <= in_range[1]);
    +                    std::memcpy(tmp_data, sub_list.begin(),
    +                                sub_list.size() * sizeof(T));
    +                    tmp_data += in_range[1];
    +                }
    +            }
    +
    +            /// Constructor with range
    +            device_memory(const sycl::range &range_in)
    +                : _size(range_in.size() * sizeof(T)), _range(range_in),
    +                _reference(false), _host_ptr(nullptr), _device_ptr(nullptr) {
    +                static_assert(
    +                    (Memory == global) || (Memory == constant) || (Memory == shared),
    +                    "device memory region should be global, constant or shared");
    +                // Make sure that singleton class mem_mgr and dev_mgr will destruct
    +                // later than this.
    +                detail::mem_mgr::instance();
    +                dev_mgr::instance();
    +            }
    +
    +            /// Constructor with range
    +            template 
    +            device_memory(Args... Arguments)
    +                : device_memory(sycl::range(Arguments...)) {}
    +
    +            ~device_memory() {
    +                if (_device_ptr && !_reference)
    +                    dpct::dpct_free(_device_ptr);
    +                if (_host_ptr)
    +                    std::free(_host_ptr);
    +            }
    +
    +            /// Allocate memory with default queue, and init memory if has initial
    +            /// value.
    +            void init() { init(dpct::get_default_queue()); }
    +            /// Allocate memory with specified queue, and init memory if has initial
    +            /// value.
    +            void init(sycl::queue &q) {
    +                if (_device_ptr)
    +                    return;
    +                if (!_size)
    +                    return;
    +                allocate_device(q);
    +                if (_host_ptr)
    +                    detail::dpct_memcpy(q, _device_ptr, _host_ptr, _size,
    +                                        host_to_device);
    +            }
    +
    +            /// The variable is assigned to a device pointer.
    +            void assign(value_t *src, size_t size) {
    +                this->~device_memory();
    +                new (this) device_memory(src, size);
    +            }
    +
    +            /// Get memory pointer of the memory object, which is virtual pointer when
    +            /// usm is not used, and device pointer when usm is used.
    +            value_t *get_ptr() { return get_ptr(get_default_queue()); }
    +            /// Get memory pointer of the memory object, which is virtual pointer when
    +            /// usm is not used, and device pointer when usm is used.
    +            value_t *get_ptr(sycl::queue &q) {
    +                init(q);
    +                return _device_ptr;
    +            }
    +
    +            /// Get the device memory object size in bytes.
    +            size_t get_size() { return _size; }
    +
    +            template 
    +            typename std::enable_if::type &operator[](size_t index) {
    +                init();
    +                return _device_ptr[index];
    +            }
    +
    +            /// Get dpct::accessor with dimension info for the device memory object
    +            /// when usm is used and dimension is greater than 1.
    +            template 
    +            typename std::enable_if::type
    +            get_access([[maybe_unused]] sycl::handler &cgh) {
    +                return dpct_accessor_t((T *)_device_ptr, _range);
    +            }
    +
    +        private:
    +            device_memory(value_t *memory_ptr, size_t size)
    +                : _size(size), _range(size / sizeof(T)), _reference(true),
    +                _device_ptr(memory_ptr) {}
    +
    +            void allocate_device(sycl::queue &q) {
    +        #ifndef DPCT_USM_LEVEL_NONE
    +                if (Memory == shared) {
    +                    _device_ptr = (value_t *)sycl::malloc_shared(_size, q.get_device(),
    +                                                                q.get_context());
    +                    return;
    +                }
    +        #ifdef SYCL_EXT_ONEAPI_USM_DEVICE_READ_ONLY
    +                if (Memory == constant) {
    +                    _device_ptr = (value_t *)sycl::malloc_device(
    +                        _size, q.get_device(), q.get_context(),
    +                        sycl::ext::oneapi::property::usm::device_read_only());
    +                    return;
    +                }
    +        #endif
    +        #endif
    +                _device_ptr = (value_t *)detail::dpct_malloc(_size, q);
    +            }
    +
    +            size_t _size;
    +            sycl::range _range;
    +            bool _reference;
    +            value_t *_host_ptr;
    +            value_t *_device_ptr;
    +        };
    +        template 
    +        class device_memory : public device_memory {
    +        public:
    +            using base = device_memory;
    +            using value_t = typename base::value_t;
    +            using accessor_t =
    +                typename detail::memory_traits::template accessor_t<0>;
    +
    +            /// Constructor with initial value.
    +            device_memory(const value_t &val) : base(sycl::range<1>(1), {val}) {}
    +
    +            /// Default constructor
    +            device_memory() : base(1) {}
    +        };
    +        } // namespace detail
    +
    +    template 
    +    using global_memory = detail::device_memory;
    +    template 
    +    using constant_memory = detail::device_memory;
    +    template 
    +    using shared_memory = detail::device_memory;
    +
    +
    +    template 
    +    inline T atomic_fetch_add(T *addr, T operand) {
    +    auto atm =
    +        sycl::atomic_ref(addr[0]);
    +    return atm.fetch_add(operand);
    +    }
    +
    +    template 
    +    inline T1 atomic_fetch_add(T1 *addr, T2 operand) {
    +    auto atm =
    +        sycl::atomic_ref(addr[0]);
    +    return atm.fetch_add(operand);
    +    }
    +
    +    template 
    +    inline T atomic_fetch_add(T *addr, T operand,
    +                            sycl::memory_order memoryOrder) {
    +    switch (memoryOrder) {
    +        case sycl::memory_order::relaxed:
    +            return atomic_fetch_add(addr, operand);
    +        case sycl::memory_order::acq_rel:
    +            return atomic_fetch_add(addr, operand);
    +        case sycl::memory_order::seq_cst:
    +            return atomic_fetch_add(addr, operand);
    +        default:
    +            assert(false && "Invalid memory_order for atomics. Valid memory_order for "
    +                            "atomics are: sycl::memory_order::relaxed, "
    +                            "sycl::memory_order::acq_rel, sycl::memory_order::seq_cst!");
    +        }
    +    }
    +
    +    template 
    +    inline T1 atomic_fetch_add(T1 *addr, T2 operand,
    +                            sycl::memory_order memoryOrder) {
    +    atomic_fetch_add(addr, operand, memoryOrder);
    +    }
    +
    +} // COPY from DPCT head files
    +
    +#endif // GGML_SYCL_DPCT_HELPER_HPP
    diff --git a/ggml-sycl/presets.hpp b/ggml-sycl/presets.hpp
    new file mode 100644
    index 0000000000000..dcf0261102e91
    --- /dev/null
    +++ b/ggml-sycl/presets.hpp
    @@ -0,0 +1,69 @@
    +//
    +// MIT license
    +// Copyright (C) 2024 Intel Corporation
    +// SPDX-License-Identifier: MIT
    +//
    +
    +//
    +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
    +// See https://llvm.org/LICENSE.txt for license information.
    +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
    +//
    +
    +#ifndef GGML_SYCL_PRESETS_HPP
    +#define GGML_SYCL_PRESETS_HPP
    +
    +#define GGML_SYCL_MAX_STREAMS       8
    +#define GGML_SYCL_MAX_BUFFERS       256
    +#define GGML_SYCL_MAX_DEVICES       48
    +#define GGML_SYCL_NAME "SYCL"
    +
    +// FIXME: 1024 from cuda
    +#define GROUP_SIZE 1024
    +#define WARP_SIZE 32
    +#define MATRIX_ROW_PADDING 512 // last row of quant. matrices is a multiple of this to avoid out-of-bounds memory accesses
    +
    +#define SYCL_GELU_BLOCK_SIZE 256
    +#define SYCL_SILU_BLOCK_SIZE 256
    +#define SYCL_TANH_BLOCK_SIZE 256
    +#define SYCL_RELU_BLOCK_SIZE 256
    +#define SYCL_HARDSIGMOID_BLOCK_SIZE 256
    +#define SYCL_HARDSWISH_BLOCK_SIZE 256
    +#define SYCL_SQR_BLOCK_SIZE 256
    +#define SYCL_CPY_BLOCK_SIZE 32
    +#define SYCL_SCALE_BLOCK_SIZE 256
    +#define SYCL_CLAMP_BLOCK_SIZE 256
    +#define SYCL_ROPE_BLOCK_SIZE 256
    +#define SYCL_ALIBI_BLOCK_SIZE 32
    +#define SYCL_DIAG_MASK_INF_BLOCK_SIZE 32
    +#define SYCL_QUANTIZE_BLOCK_SIZE 256
    +#define SYCL_DEQUANTIZE_BLOCK_SIZE 256
    +#define SYCL_GET_ROWS_BLOCK_SIZE 256
    +#define SYCL_UPSCALE_BLOCK_SIZE 256
    +#define SYCL_CONCAT_BLOCK_SIZE 256
    +#define SYCL_PAD_BLOCK_SIZE 256
    +#define SYCL_ACC_BLOCK_SIZE 256
    +#define SYCL_IM2COL_BLOCK_SIZE 256
    +#define SYCL_POOL2D_BLOCK_SIZE 256
    +
    +// dmmv = dequantize_mul_mat_vec
    +#ifndef GGML_SYCL_DMMV_X
    +#define GGML_SYCL_DMMV_X 32
    +#endif
    +#ifndef GGML_SYCL_MMV_Y
    +#define GGML_SYCL_MMV_Y 1
    +#endif
    +
    +#ifndef K_QUANTS_PER_ITERATION
    +#define K_QUANTS_PER_ITERATION 2
    +#else
    +static_assert(K_QUANTS_PER_ITERATION == 1 || K_QUANTS_PER_ITERATION == 2, "K_QUANTS_PER_ITERATION must be 1 or 2");
    +#endif
    +
    +#ifndef GGML_SYCL_PEER_MAX_BATCH_SIZE
    +#define GGML_SYCL_PEER_MAX_BATCH_SIZE 128
    +#endif // GGML_SYCL_PEER_MAX_BATCH_SIZE
    +
    +#define MUL_MAT_SRC1_COL_STRIDE 128
    +
    +#endif // GGML_SYCL_PRESETS_HPP
    diff --git a/llama.cpp b/llama.cpp
    index 05591aa4389a7..3bf9b66855ee3 100644
    --- a/llama.cpp
    +++ b/llama.cpp
    @@ -6625,16 +6625,6 @@ static int llama_model_load(const std::string & fname, llama_model & model, llam
             }
     #endif
     
    -#ifdef GGML_USE_SYCL
    -        if (params.split_mode == LLAMA_SPLIT_MODE_NONE) {
    -            ggml_backend_sycl_set_single_device_mode(params.main_gpu);
    -            //SYCL use device index (0, 1, 2) directly, uer input device id, then convert to device index.
    -            params.main_gpu = ggml_backend_sycl_get_device_index(params.main_gpu);
    -        } else {
    -            ggml_backend_sycl_set_mul_device_mode();
    -        }
    -#endif
    -
             if (!llm_load_tensors(
                 ml, model, params.n_gpu_layers, params.split_mode,  params.main_gpu, params.tensor_split, params.use_mlock,
                 params.progress_callback, params.progress_callback_user_data
    @@ -16241,8 +16231,7 @@ struct llama_context * llama_new_context_with_model(
             if (model->split_mode == LLAMA_SPLIT_MODE_NONE || model->split_mode == LLAMA_SPLIT_MODE_ROW) {
                 ggml_backend_t backend = ggml_backend_sycl_init(model->main_gpu);
                 if (backend == nullptr) {
    -                int main_gpu_id = ggml_backend_sycl_get_device_id(model->main_gpu);
    -                LLAMA_LOG_ERROR("%s: failed to initialize SYCL%d (index %d) backend\n", __func__, main_gpu_id, model->main_gpu);
    +                LLAMA_LOG_ERROR("%s: failed to initialize SYCL%d backend\n", __func__, model->main_gpu);
                     llama_free(ctx);
                     return nullptr;
                 }
    
    From 0c7b3595b9e5ad2355818e259f06b0dc3f0065b3 Mon Sep 17 00:00:00 2001
    From: Xuan Son Nguyen 
    Date: Sat, 15 Jun 2024 18:53:40 +0200
    Subject: [PATCH 075/131] Add `cvector-generator` example (#7514)
    
    * add control-vector-generator
    
    * calc diff
    
    * add comments
    
    * proof-of-concept stdlib implementation
    
    Implements PCA and file writing using mostly standard libraries. The output is recognized as a functional control vector, but outputs gibberish.
    
    * param parsing, refactor, comments
    
    Added basic command-line parameters for outfile and one each positive/negative prompt.
    
    Refactored some messy code in PCA computation and GGUF exporting.
    
    Left a bunch of comments regarding further work needed.
    
    * example template completions
    
    Implements an example template set built from the positive/negative prompts like the control vector Python implementation.
    
    * add multi prompts, multi-thread for PCA
    
    * fix mem error
    
    * add debugs
    
    * fix matrix transpose multiplication
    
    you have got to be kidding me
    
    * preliminary template/multiprompt support
    
    model is running out of context and that ought to be fixed (segfaulting) but other than that it looks goodish
    
    * fix zero output & param parsing, functional templating
    
    fixed a bug where the output file had no tensor data/was all zero
    
    fixed a bug where single hyphen flags were not being correctly parsed
    
    implements creation of templated prompts from input (still need to adapt based on model)
    
    * fix square_diff matmul index range and CRLF->LF line endings
    
    fixed a logic error where square_diff would not multiply all rows
    
    fixed a formatting error where the provided completions.txt had CRLF line endings
    
    * add command-line args for num threads, num completions file lines, always reload model
    
    refactored a few things and did what the commit message says on the tin
    
    * code aestheticization
    
    * fix compiler warnings
    
    * in-series multithreading for prompt embedding?
    
    added commented-out code to attempt to start implementing mutlithreading for embedding in main
    
    * remove unnecessary multithreading
    
    * interim fix memory leak
    
    * translated everything but PCA (I think)
    
    * tentatively translate the rest
    
    * fix ggml errors and make new ones
    
    at least it compiles and runs
    
    * fix cb_eval
    
    * temporary commit while I move dev environments
    
    it finally outputs a functioning control vector - "functioning" in the sense that it can be loaded and it clearly has the right idea, but makes the model incoherent
    
    * update debug statements
    
    * pre-tokenize so we can allocate correct memory to ctx_diffs_wrapped
    
    * update comments
    
    * (wip) refactor
    
    * clean up PCA ggml implementation
    
    * fix shape of v_diff_original
    
    * add n_batch for pca
    
    * working version
    
    * remember to copy back the last_eigenvector
    
    * fix n_completions
    
    * bring back n_completions
    
    * default n_pca_batch to 20
    
    * fix macos build
    
    * add to makefile all targets
    
    * use ggml_format_name
    
    * add readme
    
    * fix .editorconfig
    
    * use ggml_backend_tensor_copy
    
    * attemp to fix compile problem on mac
    
    * fix compile warn
    
    * reuse allocr
    
    * move param parser to common
    
    * better error handling
    
    * clean up a bit
    
    * add print_usage
    
    * shorten help msg
    
    * beautify help msg
    
    * escape prompt by default
    
    * change compile target to llama-cvector-generator
    
    * typo
    
    * disable GPU for PCA
    
    * code style
    
    ---------
    
    Co-authored-by: Christian Zhou-Zheng 
    ---
     .editorconfig                                 |   3 +
     Makefile                                      |   5 +
     common/common.cpp                             |  60 ++
     common/common.h                               |   9 +
     examples/CMakeLists.txt                       |   1 +
     examples/cvector-generator/CMakeLists.txt     |   5 +
     examples/cvector-generator/README.md          |  34 +
     examples/cvector-generator/completions.txt    | 582 ++++++++++++++++++
     .../cvector-generator/cvector-generator.cpp   | 499 +++++++++++++++
     examples/cvector-generator/negative.txt       |   1 +
     examples/cvector-generator/pca.hpp            | 322 ++++++++++
     examples/cvector-generator/positive.txt       |   1 +
     12 files changed, 1522 insertions(+)
     create mode 100644 examples/cvector-generator/CMakeLists.txt
     create mode 100644 examples/cvector-generator/README.md
     create mode 100644 examples/cvector-generator/completions.txt
     create mode 100644 examples/cvector-generator/cvector-generator.cpp
     create mode 100644 examples/cvector-generator/negative.txt
     create mode 100644 examples/cvector-generator/pca.hpp
     create mode 100644 examples/cvector-generator/positive.txt
    
    diff --git a/.editorconfig b/.editorconfig
    index 16d16b3b55bf5..bd525e13f3ece 100644
    --- a/.editorconfig
    +++ b/.editorconfig
    @@ -26,3 +26,6 @@ indent_size = 2
     
     [examples/llama.swiftui/llama.swiftui.xcodeproj/*]
     indent_style = tab
    +
    +[examples/cvector-generator/*.txt]
    +insert_final_newline = unset
    diff --git a/Makefile b/Makefile
    index 744fe5739e95c..5ab3481fb49ee 100644
    --- a/Makefile
    +++ b/Makefile
    @@ -38,6 +38,7 @@ BUILD_TARGETS = \
     	llama-tokenize \
     	llama-train-text-from-scratch \
     	llama-vdot \
    +	llama-cvector-generator \
     	tests/test-c.o
     
     # Binaries only useful for tests
    @@ -922,6 +923,10 @@ llama-eval-callback: examples/eval-callback/eval-callback.cpp ggml.o llama.o $(C
     	$(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<)
     	$(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS)
     
    +llama-cvector-generator: examples/cvector-generator/cvector-generator.cpp ggml.o llama.o $(COMMON_DEPS) $(OBJS)
    +	$(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<)
    +	$(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS)
    +
     llama-train-text-from-scratch: examples/train-text-from-scratch/train-text-from-scratch.cpp ggml.o llama.o $(COMMON_DEPS) train.o $(OBJS)
     	$(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<)
     	$(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS)
    diff --git a/common/common.cpp b/common/common.cpp
    index 1591790e6df4c..73ff0e85b7b4e 100644
    --- a/common/common.cpp
    +++ b/common/common.cpp
    @@ -1576,6 +1576,7 @@ bool gpt_params_find_arg(int argc, char ** argv, const std::string & arg, gpt_pa
                 return true;
             }
             params.out_file = argv[i];
    +        params.cvector_outfile = argv[i];
             return true;
         }
         if (arg == "-ofreq" || arg == "--output-frequency") {
    @@ -1610,6 +1611,55 @@ bool gpt_params_find_arg(int argc, char ** argv, const std::string & arg, gpt_pa
             params.i_chunk = std::stoi(argv[i]);
             return true;
         }
    +    // cvector params
    +    if (arg == "--completions-file") {
    +        if (++i >= argc) {
    +            invalid_param = true;
    +            return true;
    +        }
    +        params.cvector_completions_file = argv[i];
    +        return true;
    +    }
    +    if (arg == "--positive-file") {
    +        if (++i >= argc) {
    +            invalid_param = true;
    +            return true;
    +        }
    +        params.cvector_positive_file = argv[i];
    +        return true;
    +    }
    +    if (arg == "--negative-file") {
    +        if (++i >= argc) {
    +            invalid_param = true;
    +            return true;
    +        }
    +        params.cvector_negative_file = argv[i];
    +        return true;
    +    }
    +    if (arg == "--completions") {
    +        if (++i >= argc) {
    +            invalid_param = true;
    +            return true;
    +        }
    +        params.n_completions = std::stoi(argv[i]);
    +        return true;
    +    }
    +    if (arg == "--pca-batch") {
    +        if (++i >= argc) {
    +            invalid_param = true;
    +            return true;
    +        }
    +        params.n_pca_batch = std::stoi(argv[i]);
    +        return true;
    +    }
    +    if (arg == "--pca-iter") {
    +        if (++i >= argc) {
    +            invalid_param = true;
    +            return true;
    +        }
    +        params.n_pca_iterations = std::stoi(argv[i]);
    +        return true;
    +    }
     #ifndef LOG_DISABLE_LOGS
         // Parse args for logging parameters
         if (log_param_single_parse(argv[i])) {
    @@ -1931,6 +1981,16 @@ void gpt_params_print_usage(int /*argc*/, char ** argv, const gpt_params & param
         options.push_back({ "logging",     "       --log-append",           "Don't truncate the old log file." });
     #endif // LOG_DISABLE_LOGS
     
    +    options.push_back({ "cvector" });
    +    options.push_back({ "cvector",     "-o,    --output FNAME",         "output file (default: '%s')", params.cvector_outfile.c_str() });
    +    options.push_back({ "cvector",     "       --positive-file FNAME",  "positive prompts file, one prompt per line (default: '%s')", params.cvector_positive_file.c_str() });
    +    options.push_back({ "cvector",     "       --negative-file FNAME",  "negative prompts file, one prompt per line (default: '%s')", params.cvector_negative_file.c_str() });
    +    options.push_back({ "cvector",     "       --completions-file FNAME",
    +                                                                        "completions file (default: '%s')", params.cvector_completions_file.c_str() });
    +    options.push_back({ "cvector",     "       --completions N",        "number of lines of completions file to use (default: %d)", params.n_completions });
    +    options.push_back({ "cvector",     "       --batch-pca N",          "batch size used for PCA. Larger batch runs faster, but uses more memory (default: %d)", params.n_pca_batch });
    +    options.push_back({ "cvector",     "       --iter-pca N",           "number of iterations used for PCA (default: %d)", params.n_pca_iterations });
    +
         printf("usage: %s [options]\n", argv[0]);
     
         for (const auto & o : options) {
    diff --git a/common/common.h b/common/common.h
    index 2345d855eed3c..58ed72f433bdf 100644
    --- a/common/common.h
    +++ b/common/common.h
    @@ -232,6 +232,15 @@ struct gpt_params {
     
         bool process_output = false; // collect data for the output tensor
         bool compute_ppl    = true;  // whether to compute perplexity
    +
    +    // cvector-generator params
    +    int n_completions = 64;
    +    int n_pca_batch = 20;
    +    int n_pca_iterations = 1000;
    +    std::string cvector_outfile          = "control_vector.gguf";
    +    std::string cvector_completions_file = "examples/cvector-generator/completions.txt";
    +    std::string cvector_positive_file    = "examples/cvector-generator/positive.txt";
    +    std::string cvector_negative_file    = "examples/cvector-generator/negative.txt";
     };
     
     void gpt_params_handle_model_default(gpt_params & params);
    diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt
    index d6ce35f4cc4e9..0b51c44c05e4e 100644
    --- a/examples/CMakeLists.txt
    +++ b/examples/CMakeLists.txt
    @@ -12,6 +12,7 @@ include_directories(${CMAKE_CURRENT_SOURCE_DIR})
     
     if (EMSCRIPTEN)
     else()
    +    add_subdirectory(cvector-generator)
         add_subdirectory(baby-llama)
         add_subdirectory(batched-bench)
         add_subdirectory(batched)
    diff --git a/examples/cvector-generator/CMakeLists.txt b/examples/cvector-generator/CMakeLists.txt
    new file mode 100644
    index 0000000000000..0a559d60c2a6d
    --- /dev/null
    +++ b/examples/cvector-generator/CMakeLists.txt
    @@ -0,0 +1,5 @@
    +set(TARGET llama-cvector-generator)
    +add_executable(${TARGET} cvector-generator.cpp pca.hpp)
    +install(TARGETS ${TARGET} RUNTIME)
    +target_link_libraries(${TARGET} PRIVATE common llama ${CMAKE_THREAD_LIBS_INIT})
    +target_compile_features(${TARGET} PRIVATE cxx_std_11)
    diff --git a/examples/cvector-generator/README.md b/examples/cvector-generator/README.md
    new file mode 100644
    index 0000000000000..7b0e79c1ffba8
    --- /dev/null
    +++ b/examples/cvector-generator/README.md
    @@ -0,0 +1,34 @@
    +# cvector-generator
    +
    +This example demonstrates how to generate a control vector using gguf models.
    +
    +Related PRs:
    +- [Add support for control vectors](https://github.com/ggerganov/llama.cpp/pull/5970)
    +- (Issue) [Generate control vector using llama.cpp](https://github.com/ggerganov/llama.cpp/issues/6880)
    +- [Add cvector-generator example](https://github.com/ggerganov/llama.cpp/pull/7514)
    +
    +## Examples
    +
    +```sh
    +# CPU only
    +./cvector-generator -m ./dolphin-2.0-mistral-7b.Q4_K_M.gguf
    +
    +# With GPU
    +./cvector-generator -m ./dolphin-2.0-mistral-7b.Q4_K_M.gguf -ngl 99
    +
    +# With advanced options
    +./cvector-generator -m ./dolphin-2.0-mistral-7b.Q4_K_M.gguf -ngl 99 --completions 128 --pca-iter 2000 --batch-pca 100
    +
    +# To see help message
    +./cvector-generator -h
    +# Then, have a look at "cvector" section
    +```
    +
    +## Tips and tricks
    +
    +If you have multiple lines per prompt, you can escape the newline character (change it to `\n`). For example:
    +
    +```
    +<|im_start|>system\nAct like a person who is extremely happy.<|im_end|>
    +<|im_start|>system\nYou are in a very good mood today<|im_end|>
    +```
    diff --git a/examples/cvector-generator/completions.txt b/examples/cvector-generator/completions.txt
    new file mode 100644
    index 0000000000000..abc45ffd87269
    --- /dev/null
    +++ b/examples/cvector-generator/completions.txt
    @@ -0,0 +1,582 @@
    +
    +That game
    +I can see
    +Hmm, this
    +I can relate to
    +Who is
    +I understand the
    +Ugh,
    +What the hell was
    +Hey, did anyone
    +Although
    +Thank you for choosing
    +What are you
    +Oh w
    +How dare you open
    +It was my pleasure
    +I'm hon
    +I appreciate that you
    +Are you k
    +Whoever left this
    +It's always
    +Ew,
    +Hey, I l
    +Hello? Is someone
    +I understand that
    +That poem
    +Aww, poor
    +Hey, it
    +Alright, who
    +I didn't
    +Well, life
    +The document
    +Oh no, this
    +I'm concerned
    +Hello, this is
    +This art
    +Hmm, this drink
    +Hi there!
    +It seems
    +Is
    +Good
    +I can't
    +Ex
    +Who are
    +I can see that
    +Wow,
    +Today is a
    +Hey friend
    +Sometimes friends
    +Oh, this old
    +The weather outside
    +This place is sur
    +I appreciate your input
    +Thank you for the
    +Look at
    +I'm disappoint
    +To my
    +How dare you
    +That's an
    +This piece of art
    +Eww
    +This park is
    +This is incredible
    +Oh no, someone
    +Exc
    +Well, it'
    +I warned
    +Hey, I understand
    +Hey, I saw
    +How dare you go
    +What the he
    +Hey
    +It's
    +Hello? Hello?
    +It
    +Oh no!
    +This is the perfect
    +Good morning,
    +Oh no, there
    +It's so
    +Yeah
    +Uh,
    +Hello everyone
    +Who turned off
    +The weather
    +Who'
    +Hey, this
    +Wait,
    +Eww, gross
    +Excuse
    +It seems like you
    +Thank you so
    +What happened?
    +Oh my g
    +I am deeply sad
    +I war
    +Okay, let'
    +Hey, that
    +That was a beautiful
    +Oh no! That
    +What happened
    +Hey there
    +The artist'
    +What?!
    +Hey, it'
    +I am disappoint
    +It seems like
    +Oh no! The
    +This park is a
    +If you
    +Yes! I did
    +It sounds
    +What
    +Who is it
    +Hmm, that
    +That's strange
    +Yeah, that was
    +That's interesting
    +This park
    +What the hell
    +Who is that
    +I feel like my
    +Oh well
    +What the hell is
    +Hello? Hello
    +To my dearest
    +Bless you!\"
    +Thank you for
    +Oh, looks like
    +Can you please
    +This place is
    +Eww, what
    +Bless you
    +Is everything
    +Hey, I just
    +Whoever left these
    +Well, that'
    +I feel
    +Hey, do you
    +It's sad
    +Oh no, it
    +Hey, that'
    +Oh my god,
    +Thank you,
    +Hello little one,
    +I apolog
    +Hey team, I
    +How dare you read
    +Who is this and
    +Whoever left
    +Hi there! W
    +A
    +If you have
    +I was
    +U
    +Bless
    +Well, this
    +Oh, I'
    +It's a
    +Eww,
    +Is everything okay?
    +Oh, I
    +Hello, can you
    +Al
    +That was a great
    +What are
    +I understand that not
    +Oh no, not
    +Who is it?\"
    +Hey, can we
    +Whoever is taking
    +I would love to
    +Hey, I noticed
    +Hey, could
    +I understand that there
    +Hello?
    +D
    +Oh man, I
    +Thank you so much
    +Oh no, my
    +Dear [Name
    +Uh
    +I remember
    +Hey, who
    +Well, it
    +Are you
    +I understand that it
    +Hey, is
    +I would
    +Who is this
    +Excuse me
    +Alright
    +I am thrilled
    +Sometimes friends have
    +Who the
    +It's interesting
    +I would love
    +E
    +Hello? Is anyone
    +Well, this is
    +This place
    +Well,
    +I warned you
    +Hey, watch where
    +Oh my
    +That'
    +Sometimes friends have different
    +I understand that everyone
    +What?
    +What do these notes
    +I can relate
    +I'm not
    +I understand
    +To my dear
    +Guys
    +Well
    +Hey, I appreciate
    +Wow, what
    +Dear
    +That melody
    +Who the hell
    +Today is
    +Hello little
    +Wow, look
    +That's great
    +Love is never wrong
    +I'm having
    +Whoa, did
    +Ugh
    +Can you please provide
    +I miss you,
    +I feel uncom
    +I know
    +Ugh, this
    +Hey, watch
    +Oh great, a
    +I didn
    +Okay
    +That game of char
    +Oh
    +I appreciate
    +Who's there
    +I am so
    +Oh great, someone
    +Hey, could you
    +I remember wondering
    +Wait, what?
    +What do
    +Hello? Can
    +Hey there,
    +That game of
    +This is incred
    +Oh my gosh
    +Oh great, f
    +I appreciate your
    +It sounds like
    +What the heck
    +Okay, I understand
    +Ew
    +I understand that this
    +Uh, hi
    +Hi everyone!
    +What the hell?
    +Thank you for your
    +Oh no, the
    +Wow, I
    +Who turned
    +Dear [
    +Whoever
    +This is a
    +Whoa, he
    +What in the world
    +Although the physical
    +Hello, who is
    +That's amaz
    +Hey, I know
    +Okay, that
    +Hi everyone
    +Hey, is everything
    +I understand your fr
    +Oh no, poor
    +Oh, look
    +Good morning
    +Ew, gross
    +Oh no, did
    +Look at the family
    +Hey team
    +Yes!
    +Hey, can I
    +Okay, that'
    +It's great
    +Love is
    +Hey, what
    +Good morning, world
    +Who is it?
    +That poem really reson
    +I
    +That's
    +I understand the task
    +Gu
    +Hello? Who'
    +This postcard is
    +Whoa,
    +Oh, that
    +I understand that I
    +Whoever is
    +Hello? Who is
    +I'm really
    +Wow, this
    +Can
    +This artwork really
    +This is a shame
    +I miss you too
    +Who are you?
    +Today is a difficult
    +Hey, just
    +Are you okay
    +I am
    +Hi,
    +Wow, that
    +Hey there! Can
    +Okay, stay
    +Oh great, just
    +Yeah,
    +Hello? Can you
    +Oh, looks
    +Thank you for sharing
    +I'm glad
    +Hey, is that
    +Hmm
    +It was my
    +It sounds like you
    +Wow, your
    +I was promised certain
    +That was such a
    +Thank
    +Excuse you
    +That was
    +Hey team,
    +I feel un
    +It was
    +What'
    +Hey friend, I
    +How
    +Saying goodbye
    +That
    +It's heart
    +How dare
    +Oh,
    +Hello, may
    +What's this
    +Thank you for recogn
    +Aww, that
    +Oh, I remember
    +Hmm, that'
    +I miss
    +I know this
    +Wait
    +Is everything okay
    +Who is that person
    +Wow, you
    +Oh great
    +I'm sad
    +Wow, the
    +I am very disappoint
    +Who turned off the
    +I understand that things
    +I'm very
    +Hi
    +That's very
    +Okay, I
    +Oh no,
    +Wow, there
    +What's wrong
    +I apologize for
    +Hey, I
    +Can I help you
    +Oh, I didn
    +Alright,
    +Oh wow,
    +Oh my goodness
    +I know this event
    +What in the
    +Saying
    +Yeah, that
    +Guys, I
    +Hey, this v
    +This post
    +Are
    +Hey, can
    +Hello? Is
    +I can only imagine
    +Oh, that sounds
    +Hey, is anyone
    +I am disappointed
    +Hello,
    +Hey everyone, I
    +That was such
    +It's okay
    +The artist
    +Whoa
    +I understand that mistakes
    +Can I help
    +Who
    +Hi everyone! I
    +Hey, can you
    +Wow, how
    +Today
    +Oh no, I
    +Oh well, I
    +Well, that
    +This is the
    +Yes! I finally
    +Hey there little
    +Hello everyone!
    +Love is never
    +Look at the
    +This postcard
    +Oh great,
    +Can I
    +Hmm, this is
    +I understand your
    +Oh, look at
    +B
    +I'm so
    +Whoa, this
    +W
    +Oh, this
    +Sometimes
    +This piece of
    +What the
    +That was a
    +Hey, do
    +Oh no
    +Whoa, what
    +I feel like I
    +The documentary
    +Hello
    +Hello little one
    +I understand that my
    +Eww, that
    +Wow, an
    +Yes! Finally,
    +Although the physical location
    +Whoever is watching
    +That movie
    +I remember wondering about
    +Hey there, little
    +Who's
    +Hello, who
    +Hello everyone! Thank
    +Hello, can
    +That's too
    +Hey, just wanted
    +Hey there, I
    +Saying good
    +Hey there!
    +Who is there?
    +Oh my good
    +I am very
    +Oh no, what
    +Wow, thank
    +I was promised
    +Hi, is
    +Hey, I'
    +Guys, the
    +Oh no, that
    +Who is there
    +Hello, this
    +That movie really touched
    +If you have something
    +The documentary was
    +I'm starting
    +Are you kidd
    +That movie really
    +Hey everyone,
    +Thank you for considering
    +I didn'
    +Yes! I
    +Can you
    +Oh my god
    +Hey, whoever
    +That melody really
    +Thank you, little
    +Hello, may I
    +Look
    +Wow, we
    +It looks
    +What do these
    +Oh wow
    +I apologize
    +What are you all
    +It's such
    +It's clear
    +Hey, I was
    +Hey friend,
    +I can only
    +The weather outside is
    +Eww, this
    +I miss you
    +Wow
    +Aww,
    +Hi, is there
    +This artwork
    +Okay,
    +Oh well,
    +This
    +I'
    +Say
    +Hey there little gu
    +Hmm,
    +Whoa, who
    +I am thr
    +Oh man
    +Okay, stay calm
    +I'm happy
    +Oh, this cur
    +Oh man,
    +I'm sorry
    +Hello? Who
    +What?! That
    +This piece
    +Hey everyone
    +That's so
    +Are you okay?
    +What happened? Where
    +Hi there
    +The
    +Who the hell entered
    +I can
    +Guys,
    +What's
    +What in
    +It's important
    +I'm
    +I'm coming
    +It'
    +Yes! Finally
    +Wait, what
    +Wow, reading
    +I'm surprised
    +Hey, did
    +Hey,
    +Okay, let
    +I understand that you
    +Who the hell threw
    +Eww, who
    +Thank you for thinking
    +Who is this?\"
    +I am deeply
    +Thank you for including
    +Oh no, an
    +It looks like you
    +Aww
    +I'm confused
    +Wow, it
    +That poem really
    +Yes
    +Hey there, is
    +Hey, what'
    +Thank you for remember
    +To
    +This is
    +Thank you for making
    +I can'
    +That mel
    +Wow, they
    +I feel like
    +Although the
    +Who are you
    +Love
    +If
    +What the hell are
    +I am so sad
    +Oh, I found
    +Thank you
    +It looks like
    +Well, life is
    +I appreciate that
    +The artist's
    +Whoa, that
    +It's never
    \ No newline at end of file
    diff --git a/examples/cvector-generator/cvector-generator.cpp b/examples/cvector-generator/cvector-generator.cpp
    new file mode 100644
    index 0000000000000..9941683db677e
    --- /dev/null
    +++ b/examples/cvector-generator/cvector-generator.cpp
    @@ -0,0 +1,499 @@
    +#include "common.h"
    +#include "llama.h"
    +#include "ggml.h"
    +#include "pca.hpp"
    +
    +#ifdef GGML_USE_CUDA
    +#include "ggml-cuda.h"
    +#endif
    +
    +#ifdef GGML_USE_METAL
    +#include "ggml-metal.h"
    +#endif
    +
    +#include 
    +#include 
    +#include 
    +#include 
    +#include 
    +#include 
    +#include 
    +#include 
    +
    +
    +//////////////////////////////////////////////////
    +// utils
    +
    +template 
    +static std::string tokens_to_str(llama_context * ctx, Iter begin, Iter end) {
    +    std::string ret;
    +    for (; begin != end; ++begin) {
    +        ret += llama_token_to_piece(ctx, *begin);
    +    }
    +
    +    return ret;
    +}
    +
    +static void print_usage(int argc, char ** argv, const gpt_params & params) {
    +    gpt_params_print_usage(argc, argv, params);
    +
    +    printf("\nexample usage:\n");
    +    printf("\n    CPU only:   %s -m ./dolphin-2.0-mistral-7b.Q4_K_M.gguf\n", argv[0]);
    +    printf("\n    with GPU:   %s -m ./dolphin-2.0-mistral-7b.Q4_K_M.gguf -ngl 99\n", argv[0]);
    +    printf("\n    advanced:   %s -m ./dolphin-2.0-mistral-7b.Q4_K_M.gguf -ngl 99 --completions 128 --pca-iter 2000 --batch-pca 100\n", argv[0]);
    +    printf("\n");
    +}
    +
    +//////////////////////////////////////////////////
    +
    +
    +// cb_eval is reused for each pair of positive - negative prompt
    +struct callback_data {
    +    ggml_context * ctx_ggml = nullptr;   // holds v_pos, v_neg, v_diff_filtered
    +
    +    int n_layers = 0;
    +    int n_tokens = 0;
    +    bool is_eval_pos = true;
    +
    +    // each element of the vector correspond to one layer
    +    std::vector v_pos; // vector of matrices of size [n_embd, n_tokens]
    +    std::vector v_neg; // vector of matrices of size [n_embd, n_tokens]
    +    std::vector v_diff_filtered;   // vector of matrices of size [n_embd, n_nonzero_rows]. NOTE: n_nonzero_rows maybe different for each layer
    +
    +    // save a tensor into either v_pos or v_neg (decided by is_eval_pos)
    +    void save_tensor_for_layer(struct ggml_tensor * t) {
    +        GGML_ASSERT(t->type == GGML_TYPE_F32);
    +
    +        if (ctx_ggml == nullptr) {
    +            // alloc a new ctx_ggml if needed
    +            struct ggml_init_params params_ggml = {
    +                /*.mem_size   =*/ ggml_tensor_overhead() * n_layers * 3u,
    +                /*.mem_buffer =*/ NULL,
    +                /*.no_alloc   =*/ true,
    +            };
    +            ctx_ggml = ggml_init(params_ggml);
    +        }
    +
    +        // copy tensor data
    +        auto n_bytes = ggml_nbytes(t);
    +        struct ggml_tensor * t_layer = ggml_new_tensor_2d(ctx_ggml, t->type, t->ne[0], t->ne[1]);
    +        t_layer->data = malloc(n_bytes); // TODO @ngxson : get rid of this malloc somehow
    +        ggml_backend_tensor_get(t, t_layer->data, 0, n_bytes);
    +        ggml_set_name(t_layer, ggml_get_name(t));
    +        //print_debug_tensor(t_layer);
    +
    +        if (is_eval_pos) {
    +            v_pos.push_back(t_layer);
    +        } else {
    +            v_neg.push_back(t_layer);
    +        }
    +    }
    +
    +    // calculate diff (v_pos - v_neg) and place the result back to v_pos
    +    // all zero rows in the diff tensor will also be removed
    +    // NOTE: final layer is ignored. we only have (n_layers - 1) to process
    +    std::vector calc_diff() {
    +        for (float il = 0; il < v_pos.size(); il++) {
    +            float * a = (float *) v_pos[il]->data;
    +            float * b = (float *) v_neg[il]->data;
    +            size_t n_elem = ggml_nelements(v_pos[il]);
    +            for (size_t j = 0; j < n_elem; j++) {
    +                a[j] -= b[j];
    +            }
    +            //print_debug_tensor(v_pos[i]);
    +            auto diff_filtered = filter_nonzero_rows(v_pos[il]);
    +            v_diff_filtered.push_back(diff_filtered);
    +        }
    +        return v_diff_filtered; // for convinient, we return the result std::vector
    +    }
    +
    +    // delete zero rows from a given 2D tensor
    +    struct ggml_tensor * filter_nonzero_rows(struct ggml_tensor * a) {
    +        //printf("filter_nonzero_rows\n");
    +        auto is_row_all_zeros = [](struct ggml_tensor * t, int row, float eps) -> bool {
    +            // check if given row containing all zero elements
    +            int n_cols = t->ne[0]; // hint: should be equal to n_embd
    +            for (int col = 0; col < n_cols; ++col) {
    +                if (ggml_get_f32_nd(t, col, row, 0, 0) > eps) {
    +                    return false;
    +                }
    +            }
    +            return true;
    +        };
    +        std::vector rows_to_copy; // the idx of non-zero cols (to be copied to row of diff_filtered)
    +        for (int i_row = 0; i_row < a->ne[1]; i_row++) {
    +            if (!is_row_all_zeros(a, i_row, 1e-6)) {
    +                rows_to_copy.push_back(i_row);
    +            }
    +        }
    +
    +        // get "n_nonzero_rows" for the output "diff_filtered"
    +        int n_nonzero_rows = rows_to_copy.size();
    +        //printf("n_nonzero_rows: %d\n", n_nonzero_rows);
    +        int n_embd = a->ne[0];
    +        GGML_ASSERT(n_nonzero_rows > 0);
    +
    +        // diff_filtered: [n_embd, n_nonzero_rows]
    +        struct ggml_tensor * diff_filtered = ggml_new_tensor_2d(
    +            ctx_ggml, GGML_TYPE_F32, n_embd, n_nonzero_rows);
    +        ggml_format_name(diff_filtered, "diff_filtered_%s", a->name);
    +        diff_filtered->data = malloc(ggml_nbytes(diff_filtered));
    +
    +        // copy non-zero rows
    +        for (int dest_row = 0; dest_row < n_nonzero_rows; dest_row++) {
    +            int src_row = rows_to_copy[dest_row];
    +            for (int i = 0; i < n_embd; i++) {
    +                float src_elem = ggml_get_f32_nd(a, i, src_row, 0, 0);
    +                ggml_set_f32_nd(diff_filtered, i, dest_row, 0, 0, src_elem);
    +            }
    +        }
    +
    +        //print_debug_tensor(diff_filtered);
    +
    +        return diff_filtered;
    +    }
    +
    +    // we don't implement destructor, because we want to reuse callback_data. we just want to free the tensors
    +    void reset() {
    +        for (auto ptr : v_pos) free(ptr->data);
    +        for (auto ptr : v_neg) free(ptr->data);
    +        for (auto ptr : v_diff_filtered) free(ptr->data);
    +        v_pos.clear();
    +        v_neg.clear();
    +        v_diff_filtered.clear();
    +        if (ctx_ggml) {
    +            ggml_free(ctx_ggml);
    +        }
    +        ctx_ggml = nullptr;
    +    }
    +};
    +
    +/**
    + * process_ctx is used to store the ggml context for pre-post processing the diff vectors
    + * in short, input => v_diff and output => v_final
    + */
    +struct train_context {
    +    ggml_context * ctx_ggml;
    +    int n_embd;
    +    int n_layers;
    +
    +    /* pair of prompts to be used for generating final vector */
    +    std::vector positive_entries;
    +    std::vector negative_entries;
    +
    +    // each element of the vector correspond to one layer
    +    // NOTE: the last layer is discard. therefore, we will have (n_layers - 1) elements here
    +    // NOTE (2): v_diff is transposed from v_diff_tmp
    +    std::vector v_diff;  // vector of matrices of size [m, n_embd] where m ~ n_tokens * n_completions (v_diff contains no zero-rows)
    +    std::vector v_final; // vector of vectors of size [n_embd] to be written to file
    +
    +    // to easily re-alloc when concat v_diff, we temporary store v_diff in a vector instead of a tensor
    +    // v_diff_tmp will get converted unto v_diff later on
    +    std::vector> v_diff_tmp;
    +
    +    train_context(int n_embd_, int n_layers_) {
    +        n_embd = n_embd_;
    +        n_layers = n_layers_;
    +        struct ggml_init_params params_ggml = {
    +            /*.mem_size   =*/ ggml_tensor_overhead() * (n_layers - 1) * 2u,
    +            /*.mem_buffer =*/ NULL,
    +            /*.no_alloc   =*/ true,
    +        };
    +        ctx_ggml = ggml_init(params_ggml);
    +        for (int il = 0; il < n_layers - 1; il++) {
    +            std::vector empty;
    +            v_diff_tmp.push_back(empty);
    +            auto t = ggml_new_tensor_1d(ctx_ggml, GGML_TYPE_F32, n_embd);
    +            t->data = malloc(ggml_nbytes(t)); // TODO: get rid of malloc if possible
    +            v_final.push_back(t);
    +        }
    +    }
    +
    +    // add new rows into existing tensor in v_diff_tmp
    +    void concat_diff_tmp(const std::vector & diff_filtered) {
    +        GGML_ASSERT((int) diff_filtered.size() == n_layers - 1);
    +        for (int il = 0; il < n_layers - 1; il++) {
    +            auto t = diff_filtered[il];
    +            auto & diff_tmp = v_diff_tmp[il];
    +            size_t curr_size = diff_tmp.size();
    +            diff_tmp.resize(curr_size + ggml_nbytes(t));
    +            memcpy(diff_tmp.data() + curr_size, t->data, ggml_nbytes(t));
    +        }
    +    }
    +
    +    // build the v_diff tensors from v_diff_tmp (v_diff need to be transposed)
    +    // TODO @ngxson : maybe add option NOT to transpose v_diff; will be useful for "mean" method
    +    void build_v_diff() {
    +        printf("build_v_diff\n");
    +        for (int il = 0; il < n_layers - 1; il++) {
    +            auto & diff_tmp = v_diff_tmp[il];
    +            int n_elem = diff_tmp.size() / sizeof(float);
    +            GGML_ASSERT(n_elem % n_embd == 0);
    +            int n_rows = n_elem / n_embd;
    +            struct ggml_tensor * diff = ggml_new_tensor_2d(ctx_ggml, GGML_TYPE_F32, n_rows, n_embd);
    +            ggml_set_name(diff, (std::string("diff_") + std::to_string(il)).c_str());
    +            // copy data & transpose
    +            diff->data = malloc(ggml_nbytes(diff)); // TODO: get rid of this malloc if possible
    +            float * arr = (float *) diff_tmp.data();
    +            for (int ir = 0; ir < n_rows; ++ir) {
    +                for (int ic = 0; ic < n_embd; ++ic) {
    +                    float f = arr[ir*n_embd + ic];
    +                    ggml_set_f32_nd(diff, ir, ic, 0, 0, f);
    +                }
    +            }
    +            v_diff.push_back(diff);
    +            print_debug_tensor(diff);
    +            // free memory of diff_tmp
    +            diff_tmp.resize(0);
    +        }
    +    }
    +
    +    ~train_context() {
    +        for (auto ptr : v_final) free(ptr->data);
    +        for (auto ptr : v_diff) free(ptr->data);
    +        // no need to free v_diff_tmp, since we didn't use malloc
    +        ggml_free(ctx_ggml);
    +    }
    +};
    +
    +struct tokenized_prompt {
    +    std::vector tokens_pos;
    +    std::vector tokens_neg;
    +    size_t max_seq_len;
    +
    +    tokenized_prompt(llama_context * ctx, std::string pos, std::string neg) {
    +        const bool add_bos = llama_should_add_bos_token(llama_get_model(ctx));
    +        tokens_pos = ::llama_tokenize(ctx, pos, add_bos);
    +        tokens_neg = ::llama_tokenize(ctx, neg, add_bos);
    +        max_seq_len = std::max(tokens_pos.size(), tokens_neg.size());
    +        padding_seq(ctx, tokens_pos, max_seq_len);
    +        padding_seq(ctx, tokens_neg, max_seq_len);
    +    }
    +
    +    void padding_seq(llama_context * ctx, std::vector & tokens, size_t len) {
    +        // TODO: customize padding token
    +        std::vector pad_tokens = ::llama_tokenize(ctx, " ", false);
    +        llama_token pad_tok = pad_tokens.back();
    +        while (tokens.size() < len) {
    +            tokens.push_back(pad_tok);
    +        }
    +    }
    +};
    +
    +//////////////////////////////////////////////////
    +
    +template 
    +static std::string to_string(const T & val) {
    +    std::stringstream ss;
    +    ss << val;
    +    return ss.str();
    +}
    +
    +static std::vector ctrlvec_load_prompt_file(std::string path, bool skip_empty_lines) {
    +    std::vector output;
    +    std::ifstream file(path);
    +    if (!file.is_open()) {
    +        fprintf(stderr, "error: unable to open file: %s\n", path.c_str());
    +        exit(1);
    +    }
    +    std::string line;
    +    while (std::getline(file, line)) {
    +        bool is_skip = skip_empty_lines && line.empty();
    +        if (!is_skip) {
    +            string_process_escapes(line);
    +            output.push_back(line);
    +        }
    +    }
    +    file.close();
    +    return output;
    +}
    +
    +//////////////////////////////////////////////////
    +
    +static bool cb_eval(struct ggml_tensor * t, bool ask, void * user_data) {
    +    auto * cb_data = (callback_data *) user_data;
    +    static const char * l_out_name = "l_out";
    +    const bool is_l_out = strncmp(t->name, l_out_name, strlen(l_out_name)) == 0;
    +
    +    if (ask) {
    +        return is_l_out;
    +    }
    +
    +    if (!is_l_out || t->ne[1] != cb_data->n_tokens) {
    +        return true;
    +    }
    +
    +    // save the tensor to current context
    +    cb_data->save_tensor_for_layer(t);
    +    return true;
    +}
    +
    +static bool get_hidden_layers(llama_context * ctx, std::vector & tokens) {
    +    llama_kv_cache_clear(ctx);
    +    if (llama_decode(ctx, llama_batch_get_one(tokens.data(), tokens.size(), 0, 0))) {
    +        fprintf(stderr, "%s : failed to eval\n", __func__);
    +        return false;
    +    }
    +    return true;
    +}
    +
    +static void export_gguf(const std::vector & v_ctrl, const std::string fname, const std::string model_hint) {
    +    struct gguf_context * ctx = gguf_init_empty();
    +
    +    const std::string arch = "controlvector";
    +    gguf_set_val_str(ctx, "general.architecture", arch.c_str());
    +    gguf_set_val_str(ctx, (arch + ".model_hint").c_str(), model_hint.c_str());
    +    gguf_set_val_i32(ctx, (arch + ".layer_count").c_str(), v_ctrl.size());
    +
    +    for (size_t i = 0; i < v_ctrl.size(); ++i) {
    +        gguf_add_tensor(ctx, v_ctrl[i]);
    +        print_debug_tensor(v_ctrl[i]);
    +        printf("Added tensor: %s\n", v_ctrl[i]->name);
    +    }
    +
    +    printf("%s: writing file...\n", __func__);
    +    gguf_write_to_file(ctx, fname.c_str(), false);
    +    printf("%s: wrote file '%s'\n", __func__, fname.c_str());
    +    gguf_free(ctx);
    +}
    +
    +/**
    + * Load prompt files and completion file.
    + * Then format each pair of prompt + completion to make an entry.
    + */
    +static int prepare_entries(gpt_params & params, train_context & ctx_train) {
    +    // load prompts
    +    std::vector positive_prompts = ctrlvec_load_prompt_file(params.cvector_positive_file, true);
    +    std::vector negative_prompts = ctrlvec_load_prompt_file(params.cvector_negative_file, true);
    +    if (positive_prompts.size() != negative_prompts.size()) {
    +        fprintf(stderr, "number of positive and negative prompts must be equal\n");
    +        return 1;
    +    }
    +    if (positive_prompts.empty()) {
    +        fprintf(stderr, "must provide at least one prompt pair\n");
    +        return 1;
    +    }
    +
    +    // create templated prompts
    +    std::vector completions = ctrlvec_load_prompt_file(params.cvector_completions_file, false);
    +    auto format_template = [](std::string persona, std::string suffix) {
    +        // entry in positive/negative.txt must already be formatted i.e. "[INST] Act as if you're extremely happy. [/INST]"
    +        return persona + " " + suffix;
    +    };
    +    for (size_t i = 0; i < positive_prompts.size(); ++i) {
    +        for (int j = 0; j < std::min((int) completions.size(), params.n_completions); ++j) {
    +            // TODO replicate the truncations done by the python implementation
    +            ctx_train.positive_entries.push_back(format_template(positive_prompts[i], completions[j]));
    +            ctx_train.negative_entries.push_back(format_template(negative_prompts[i], completions[j]));
    +        }
    +    }
    +    return 0;
    +}
    +
    +int main(int argc, char ** argv) {
    +    gpt_params params;
    +
    +    if (!gpt_params_parse(argc, argv, params)) {
    +        print_usage(argc, argv, params);
    +        return 1;
    +    }
    +
    +    if (params.n_pca_iterations % params.n_pca_batch != 0) {
    +        fprintf(stderr, "PCA iterations must by multiply of PCA batch size\n");
    +        return 1;
    +    }
    +
    +
    +    callback_data cb_data;
    +
    +    // pass the callback to the backend scheduler
    +    // it will be executed for each node during the graph computation
    +    params.cb_eval = cb_eval;
    +    params.cb_eval_user_data = &cb_data;
    +    params.warmup = false;
    +
    +    print_build_info();
    +    llama_backend_init();
    +    llama_numa_init(params.numa);
    +
    +    // load the model to get hparams
    +    llama_model * model;
    +    llama_context * ctx;
    +    std::tie(model, ctx) = llama_init_from_gpt_params(params);
    +
    +    // int n_ctx = llama_n_ctx(ctx);
    +    int n_layers = llama_n_layer(model);
    +    int n_embd = llama_n_embd(model);
    +    // get model hint param (a.k.a model arch name)
    +    char model_hint[128];
    +    llama_model_meta_val_str(model, "general.architecture", model_hint, 128);
    +
    +    // init train_context
    +    train_context ctx_train(n_embd, n_layers);
    +
    +    // load and prepare entries for training
    +    prepare_entries(params, ctx_train);
    +
    +    // we have to pretokenize everything because otherwise we don't know how much overhead to allocate ctx_diffs_wrapped
    +    std::vector tokenized_prompts;
    +    size_t n_total_tokens = 0;
    +    for (size_t i = 0; i < ctx_train.positive_entries.size(); ++i) {
    +        tokenized_prompt t(ctx, ctx_train.positive_entries[i], ctx_train.negative_entries[i]);
    +        n_total_tokens += 2 * t.max_seq_len;
    +        tokenized_prompts.push_back(std::move(t));
    +    }
    +
    +    std::cout << "n_total_tokens: " << n_total_tokens << std::endl;
    +
    +    for(size_t i = 0; i < ctx_train.positive_entries.size(); ++i) {
    +        bool success = false;
    +        tokenized_prompt t = tokenized_prompts[i];
    +        cb_data.n_layers = n_layers;
    +        cb_data.n_tokens = t.max_seq_len;
    +
    +        printf("Evaluating prompt[%d/%d]: \"%s\" - \"%s\" (%d tokens)\n",
    +            (int) i+1, (int) ctx_train.positive_entries.size(),
    +            tokens_to_str(ctx, t.tokens_pos.cbegin(), t.tokens_pos.cend()).c_str(),
    +            tokens_to_str(ctx, t.tokens_neg.cbegin(), t.tokens_neg.cend()).c_str(),
    +            (int) t.max_seq_len);
    +
    +        cb_data.is_eval_pos = true;
    +        success = get_hidden_layers(ctx, t.tokens_pos);
    +        if (!success) break;
    +
    +        cb_data.is_eval_pos = false;
    +        success = get_hidden_layers(ctx, t.tokens_neg);
    +        if (!success) break;
    +
    +        // calculate diff and remove all zero rows
    +        auto v_diff_filtered = cb_data.calc_diff();
    +
    +        // save & concat the filtered v_diff to ctx_train
    +        ctx_train.concat_diff_tmp(v_diff_filtered);
    +
    +        // reset for next iteration
    +        cb_data.reset();
    +    }
    +
    +    // done with the model, we can now free it to make gain some memory
    +    printf("Done evaluate prompts, unload model...\n");
    +    llama_free(ctx);
    +    llama_free_model(model);
    +
    +    // prepare ctx_train for PCA
    +    ctx_train.build_v_diff();
    +
    +    // run PCA
    +    PCA::pca_params pca_params;
    +    pca_params.n_threads = params.n_threads;
    +    pca_params.n_batch = params.n_pca_batch;
    +    pca_params.n_iterations = params.n_pca_iterations;
    +    PCA::run_pca(pca_params, ctx_train.v_diff, ctx_train.v_final);
    +
    +    // write output vectors to gguf
    +    export_gguf(ctx_train.v_final, params.cvector_outfile, model_hint);
    +
    +    llama_backend_free();
    +
    +    return 0;
    +}
    diff --git a/examples/cvector-generator/negative.txt b/examples/cvector-generator/negative.txt
    new file mode 100644
    index 0000000000000..2ac3387f184b0
    --- /dev/null
    +++ b/examples/cvector-generator/negative.txt
    @@ -0,0 +1 @@
    +[INST] Act like a person who is extremely sad. [/INST]
    \ No newline at end of file
    diff --git a/examples/cvector-generator/pca.hpp b/examples/cvector-generator/pca.hpp
    new file mode 100644
    index 0000000000000..8b95cec374c23
    --- /dev/null
    +++ b/examples/cvector-generator/pca.hpp
    @@ -0,0 +1,322 @@
    +#include "common.h"
    +#include "llama.h"
    +#include "ggml.h"
    +
    +#ifdef GGML_USE_CUDA
    +#include "ggml-cuda.h"
    +#endif
    +
    +#ifdef GGML_USE_METAL
    +#include "ggml-metal.h"
    +#endif
    +
    +#include 
    +#include 
    +#include 
    +#include 
    +#include 
    +#include 
    +#include 
    +#include 
    +
    +#define DEBUG_POS 5
    +
    +static void print_debug_tensor(struct ggml_tensor * t, bool with_data = true) {
    +    printf("%s: %s (%s): [%d, %d]\n", __func__, t->name, ggml_type_name(t->type), (int) t->ne[0], (int) t->ne[1]);
    +    if (!with_data) return;
    +    printf("%s: %s[0] = [", __func__, t->name);
    +    for (size_t i = 0; i <= DEBUG_POS; i++) {
    +        printf(" %f,", ggml_get_f32_nd(t, i, 0, 0, 0));
    +    }
    +    printf(" ... ]\n");
    +}
    +
    +namespace PCA {
    +
    +// input params for PCA computations
    +struct pca_params {
    +    int n_threads = 1;
    +    int n_batch = 20; // number of iterations do to in one batch. larger the batch, more memory is used
    +    int n_iterations = 1000;
    +    float tolerance = 1e-7;
    +
    +    // for debugging
    +    int i_layer = 0;
    +    int n_layers = 0;
    +};
    +
    +// result from each iteration
    +struct pca_result {
    +    struct ggml_tensor * calculated_square = NULL;
    +    std::vector eigenvectors;
    +    std::vector distances;
    +};
    +
    +struct pca_model {
    +    ggml_backend_t backend = NULL;
    +    ggml_backend_buffer_t buffer;
    +    struct ggml_context * ctx;      // context to compute graph on target device
    +    struct ggml_context * ctx_host; // host context to store results
    +
    +    // tensors on target device
    +    struct ggml_tensor * dev_input;
    +    struct ggml_tensor * dev_square;
    +    struct ggml_tensor * dev_eigenvector;
    +
    +    pca_model(struct ggml_tensor * t_input) {
    +// TODO: enable GPU support when support for GGML_OP_SQRT is added
    +// #ifdef GGML_USE_CUDA
    +//         fprintf(stderr, "%s: using CUDA backend\n", __func__);
    +//         backend = ggml_backend_cuda_init(0); // init device 0
    +//         if (!backend) {
    +//             fprintf(stderr, "%s: ggml_backend_cuda_init() failed\n", __func__);
    +//         }
    +// #endif
    +
    +// #ifdef GGML_USE_METAL
    +//         fprintf(stderr, "%s: using Metal backend\n", __func__);
    +//         backend = ggml_backend_metal_init();
    +//         if (!backend) {
    +//             fprintf(stderr, "%s: ggml_backend_metal_init() failed\n", __func__);
    +//         }
    +// #endif
    +
    +        // if there aren't GPU Backends fallback to CPU backend
    +        if (!backend) {
    +            backend = ggml_backend_cpu_init();
    +        }
    +
    +        const int num_tensors = 4;
    +        struct ggml_init_params params {
    +            /*.mem_size   =*/ ggml_tensor_overhead() * num_tensors,
    +            /*.mem_buffer =*/ NULL,
    +            /*.no_alloc   =*/ true,
    +        };
    +        ctx = ggml_init(params);
    +
    +        auto n_samples = t_input->ne[0];
    +        auto n_embd    = t_input->ne[1];
    +
    +        dev_input       = ggml_new_tensor_2d(ctx, GGML_TYPE_F32, n_samples, n_embd);
    +        dev_square      = ggml_new_tensor_2d(ctx, GGML_TYPE_F32, n_embd,    n_embd);
    +        dev_eigenvector = ggml_new_tensor_1d(ctx, GGML_TYPE_F32, n_embd);
    +
    +        ggml_set_name(dev_input,       "dev_input");
    +        ggml_set_name(dev_square,      "dev_square");
    +        ggml_set_name(dev_eigenvector, "dev_eigenvector");
    +        buffer = ggml_backend_alloc_ctx_tensors(ctx, backend);
    +        ggml_backend_tensor_set(dev_input, t_input->data, 0, ggml_nbytes(t_input));
    +
    +        // initialize eigenvector to random normalized vector
    +        {
    +            std::vector random_vec(ggml_nelements(dev_eigenvector), 0.0);
    +            std::default_random_engine generator(static_cast(std::time(0)));
    +            std::uniform_real_distribution distribution(0.0, 1.0);
    +            float sum_sqr = 0.0; // for normalizing random_vec
    +            for (size_t i = 0; i < random_vec.size(); ++i) {
    +                float f = distribution(generator);
    +                sum_sqr += f * f;
    +                random_vec[i] = f;
    +            }
    +            // normalize it
    +            float random_vec_norm = std::sqrt(sum_sqr);
    +            for (size_t i = 0; i < random_vec.size(); ++i) {
    +                random_vec[i] /= random_vec_norm;
    +            }
    +            ggml_backend_tensor_set(dev_eigenvector, random_vec.data(), 0, ggml_nbytes(dev_eigenvector));
    +        }
    +    }
    +
    +    ~pca_model() {
    +        ggml_free(ctx);
    +        ggml_backend_buffer_free(buffer);
    +        ggml_backend_free(backend);
    +    }
    +};
    +
    +static struct ggml_cgraph * build_graph_piter(
    +        const struct pca_params & params,
    +        const pca_model & model,
    +        bool calc_square = false) {
    +    GGML_ASSERT(params.n_batch > 0);
    +    // TODO: buf_size must be able to scale with params.n_batch
    +    static size_t buf_size = ggml_tensor_overhead()*GGML_DEFAULT_GRAPH_SIZE + ggml_graph_overhead();
    +    static std::vector buf(buf_size);
    +
    +    struct ggml_init_params params0 = {
    +        /*.mem_size   =*/ buf_size,
    +        /*.mem_buffer =*/ buf.data(),
    +        /*.no_alloc   =*/ true, // the tensors will be allocated later by ggml_allocr_alloc_graph()
    +    };
    +    // create a temporally context to build the graph
    +    struct ggml_context * ctx0 = ggml_init(params0);
    +    struct ggml_cgraph * gf = ggml_new_graph(ctx0);
    +
    +    // turn v_diff_original into square matrix if needed
    +    struct ggml_tensor * tmp_square;
    +    if (calc_square) {
    +        tmp_square = ggml_mul_mat(ctx0, model.dev_input, model.dev_input);
    +        ggml_set_name(tmp_square, "tmp_square");
    +    }
    +
    +    struct ggml_tensor * b_tensor;
    +    struct ggml_tensor * distance;
    +    struct ggml_tensor * old_eigen    = model.dev_eigenvector;
    +    struct ggml_tensor * input_square = calc_square ? tmp_square : model.dev_square;
    +
    +    for (int i = 0; i < params.n_batch; ++i) {
    +        // b_tensor = square * eigenvector^T
    +        b_tensor = ggml_mul_mat(ctx0, input_square, old_eigen);
    +        ggml_set_name(b_tensor, "b_tensor");
    +
    +        // normalize
    +        b_tensor = ggml_div_inplace(ctx0,
    +            b_tensor,
    +            ggml_sqrt_inplace(ctx0, ggml_sum_rows(ctx0, ggml_sqr(ctx0, b_tensor)))
    +        );
    +        ggml_format_name(b_tensor, "b_tensor_norm_%d", i);
    +
    +        // calculate distance(new eigenvector - old eigenvector)
    +        // we don't use ggml_sub because it may not be implemented on GPU backend
    +        struct ggml_tensor * new_sub_old = ggml_add(ctx0, old_eigen, ggml_scale(ctx0, b_tensor, -1));
    +        distance = ggml_sqrt_inplace(ctx0,
    +            ggml_sum_rows(ctx0, ggml_sqr_inplace(ctx0, new_sub_old)));
    +        ggml_format_name(distance, "distance_%d", i);
    +
    +        old_eigen = b_tensor;
    +
    +        // build operations nodes
    +        ggml_build_forward_expand(gf, distance);
    +    }
    +
    +    // delete the temporally context used to build the graph
    +    ggml_free(ctx0);
    +    return gf;
    +}
    +
    +static ggml_status compute_piter(
    +        const struct pca_params & params,
    +        const pca_model & model,
    +        struct ggml_cgraph * gf,
    +        ggml_gallocr_t allocr,
    +        struct pca_result & result) {
    +    // allocate tensors
    +    ggml_gallocr_alloc_graph(allocr, gf);
    +
    +    if (ggml_backend_is_cpu(model.backend)) {
    +        ggml_backend_cpu_set_n_threads(model.backend, params.n_threads);
    +    }
    +
    +// TODO: enable GPU support when support for GGML_OP_SQRT is added
    +//#ifdef GGML_USE_METAL
    +//    if (ggml_backend_is_metal(model.backend)) {
    +//        ggml_backend_metal_set_n_cb(model.backend, params.n_threads);
    +//    }
    +//#endif
    +
    +    ggml_status res = ggml_backend_graph_compute(model.backend, gf);
    +    if (res == GGML_STATUS_SUCCESS) {
    +        auto extract_i = [](std::string prefix, std::string str) -> int {
    +            int i = -1;
    +            if (str.rfind(prefix, 0) == 0) {
    +                sscanf(str.c_str(), (prefix + "%d").c_str(), &i);
    +            }
    +            return i;
    +        };
    +        result.calculated_square = NULL;
    +        result.eigenvectors.clear();
    +        result.distances.clear();
    +        result.eigenvectors.resize(params.n_batch);
    +        result.distances.resize(params.n_batch);
    +        // get output nodes
    +        for (int i = 0; i < gf->n_nodes; ++i) {
    +            auto node = gf->nodes[i];
    +            int iter = -1;
    +            // find b_tensor (without copying data from device)
    +            if ((iter = extract_i("b_tensor_norm_", node->name)) > -1) {
    +                result.eigenvectors[iter] = node;
    +            }
    +            // find distances, then copy data from device
    +            if ((iter = extract_i("distance_", node->name)) > -1) {
    +                float d;
    +                ggml_backend_tensor_get(node, &d, 0, sizeof(float));
    +                result.distances[iter] = d;
    +                // std::cout << node->name << " = " << d << "\n";
    +            }
    +            // find tmp_square if it exists (without copying data from device)
    +            if (std::string(node->name) == "tmp_square") {
    +                result.calculated_square = node;
    +            }
    +        }
    +    }
    +    return res;
    +}
    +
    +static void power_iteration(
    +        const struct pca_params & params,
    +        struct ggml_tensor * input, // shape of input: [n_samples, n_embd]
    +        struct ggml_tensor * output) {
    +    //printf("in power iteration\n");
    +    struct pca_model model(input);
    +
    +    ggml_gallocr_t allocr = ggml_gallocr_new(ggml_backend_get_default_buffer_type(model.backend));
    +    struct pca_result result;
    +    struct ggml_tensor * last_eigenvector = NULL;
    +
    +    int n_iters = params.n_iterations / params.n_batch; // more batch, fewer iterations
    +    for (int iter = 0; iter < n_iters; ++iter) {
    +        bool calc_square = (iter == 0); // only need to calculate square for first iteration
    +        struct ggml_cgraph * gf = build_graph_piter(params, model, calc_square);
    +        // ggml_graph_dump_dot(gf, nullptr, "/tmp/_cgraph.dot");
    +        compute_piter(params, model, gf, allocr, result);
    +
    +        for (size_t k = 0; k < result.distances.size(); ++k) {
    +            last_eigenvector = result.eigenvectors[k];
    +            if (result.distances[k] < params.tolerance) {
    +                break; // done
    +            }
    +        }
    +
    +        if (calc_square) {
    +            // copy and store the square matrix if needed
    +            GGML_ASSERT(result.calculated_square != NULL);
    +            ggml_backend_tensor_copy(result.calculated_square, model.dev_square);
    +        }
    +
    +        {
    +            // copy last eigen vector and store as input for next iteration
    +            GGML_ASSERT(last_eigenvector != NULL);
    +            ggml_backend_tensor_copy(last_eigenvector, model.dev_eigenvector);
    +        }
    +
    +        printf("%s: layer %d/%d, iteration: %d / total: %d (batch = %d) ...\n",
    +            __func__, params.i_layer+1, params.n_layers, iter, n_iters, params.n_batch);
    +    }
    +
    +    // get output tensor
    +    GGML_ASSERT(last_eigenvector);
    +    ggml_backend_tensor_get(last_eigenvector, output->data, 0, ggml_nbytes(last_eigenvector));
    +    //print_debug_tensor(output);
    +    ggml_gallocr_free(allocr);
    +}
    +
    +static void run_pca(
    +        struct pca_params & params,
    +        const std::vector & v_input, // shape of v_input[0]: [n_samples, n_embd]
    +        const std::vector & v_output) {
    +    printf("%s: Running PCA...\n", __func__);
    +    for (size_t il = 0; il < v_input.size(); ++il) {
    +
    +        // prepare output vector
    +        struct ggml_tensor * ctrl_out = v_output[il];
    +        ggml_format_name(ctrl_out, "direction.%ld", il+1);
    +
    +        // run power_iteration
    +        params.i_layer = il;
    +        params.n_layers = v_input.size();
    +        power_iteration(params, v_input[il], ctrl_out);
    +        printf("%s: Done layer %d / %d\n", __func__, (int) il+1, (int) v_input.size());
    +    }
    +}
    +
    +}
    diff --git a/examples/cvector-generator/positive.txt b/examples/cvector-generator/positive.txt
    new file mode 100644
    index 0000000000000..f28e9aa1aeb72
    --- /dev/null
    +++ b/examples/cvector-generator/positive.txt
    @@ -0,0 +1 @@
    +[INST] Act like a person who is extremely happy. [/INST]
    \ No newline at end of file
    
    From 7c7836d9d4062d6858e3fb337b135c417ccee6ce Mon Sep 17 00:00:00 2001
    From: 0cc4m 
    Date: Sun, 16 Jun 2024 07:17:31 +0200
    Subject: [PATCH 076/131] Vulkan Shader Refactor, Memory Debugging Option
     (#7947)
    
    * Refactor shaders, extract GLSL code from ggml_vk_generate_shaders.py into vulkan-shaders directory
    
    * Improve debug log code
    
    * Add memory debug output option
    
    * Fix flake8
    
    * Fix unnecessary high llama-3 VRAM use
    ---
     CMakeLists.txt                             |     5 +
     Makefile                                   |     4 +
     ggml-vulkan-shaders.hpp                    | 51440 ++++++++++---------
     ggml-vulkan.cpp                            |   612 +-
     ggml_vk_generate_shaders.py                |  3100 +-
     vulkan-shaders/add.comp                    |    12 +
     vulkan-shaders/argsort.comp                |    71 +
     vulkan-shaders/clamp.comp                  |    13 +
     vulkan-shaders/copy.comp                   |    16 +
     vulkan-shaders/dequant_f32.comp            |    20 +
     vulkan-shaders/dequant_funcs.comp          |    60 +
     vulkan-shaders/dequant_head.comp           |    13 +
     vulkan-shaders/dequant_q2_k.comp           |    34 +
     vulkan-shaders/dequant_q3_k.comp           |    42 +
     vulkan-shaders/dequant_q4_0.comp           |    32 +
     vulkan-shaders/dequant_q4_1.comp           |    32 +
     vulkan-shaders/dequant_q4_k.comp           |    56 +
     vulkan-shaders/dequant_q5_0.comp           |    34 +
     vulkan-shaders/dequant_q5_1.comp           |    35 +
     vulkan-shaders/dequant_q5_k.comp           |    58 +
     vulkan-shaders/dequant_q6_k.comp           |    33 +
     vulkan-shaders/dequant_q8_0.comp           |    31 +
     vulkan-shaders/diag_mask_inf.comp          |    34 +
     vulkan-shaders/div.comp                    |    12 +
     vulkan-shaders/gelu.comp                   |    25 +
     vulkan-shaders/generic_binary_head.comp    |    48 +
     vulkan-shaders/generic_head.comp           |     9 +
     vulkan-shaders/generic_unary_head.comp     |    35 +
     vulkan-shaders/get_rows.comp               |    26 +
     vulkan-shaders/get_rows_quant.comp         |    31 +
     vulkan-shaders/mul.comp                    |    12 +
     vulkan-shaders/mul_mat_split_k_reduce.comp |    29 +
     vulkan-shaders/mul_mat_vec.comp            |    50 +
     vulkan-shaders/mul_mat_vec_base.comp       |    81 +
     vulkan-shaders/mul_mat_vec_nc.comp         |    71 +
     vulkan-shaders/mul_mat_vec_p021.comp       |    73 +
     vulkan-shaders/mul_mat_vec_q2_k.comp       |    73 +
     vulkan-shaders/mul_mat_vec_q3_k.comp       |    66 +
     vulkan-shaders/mul_mat_vec_q4_k.comp       |   115 +
     vulkan-shaders/mul_mat_vec_q5_k.comp       |   111 +
     vulkan-shaders/mul_mat_vec_q6_k.comp       |    79 +
     vulkan-shaders/mul_mm.comp                 |   494 +
     vulkan-shaders/norm.comp                   |    44 +
     vulkan-shaders/relu.comp                   |    21 +
     vulkan-shaders/rms_norm.comp               |    42 +
     vulkan-shaders/rope_head.comp              |    44 +
     vulkan-shaders/rope_neox.comp              |    37 +
     vulkan-shaders/rope_norm.comp              |    37 +
     vulkan-shaders/scale.comp                  |    12 +
     vulkan-shaders/silu.comp                   |    22 +
     vulkan-shaders/soft_max.comp               |   106 +
     vulkan-shaders/square.comp                 |    13 +
     vulkan-shaders/sum_rows.comp               |    37 +
     vulkan-shaders/types.comp                  |   179 +
     54 files changed, 30601 insertions(+), 27220 deletions(-)
     create mode 100644 vulkan-shaders/add.comp
     create mode 100644 vulkan-shaders/argsort.comp
     create mode 100644 vulkan-shaders/clamp.comp
     create mode 100644 vulkan-shaders/copy.comp
     create mode 100644 vulkan-shaders/dequant_f32.comp
     create mode 100644 vulkan-shaders/dequant_funcs.comp
     create mode 100644 vulkan-shaders/dequant_head.comp
     create mode 100644 vulkan-shaders/dequant_q2_k.comp
     create mode 100644 vulkan-shaders/dequant_q3_k.comp
     create mode 100644 vulkan-shaders/dequant_q4_0.comp
     create mode 100644 vulkan-shaders/dequant_q4_1.comp
     create mode 100644 vulkan-shaders/dequant_q4_k.comp
     create mode 100644 vulkan-shaders/dequant_q5_0.comp
     create mode 100644 vulkan-shaders/dequant_q5_1.comp
     create mode 100644 vulkan-shaders/dequant_q5_k.comp
     create mode 100644 vulkan-shaders/dequant_q6_k.comp
     create mode 100644 vulkan-shaders/dequant_q8_0.comp
     create mode 100644 vulkan-shaders/diag_mask_inf.comp
     create mode 100644 vulkan-shaders/div.comp
     create mode 100644 vulkan-shaders/gelu.comp
     create mode 100644 vulkan-shaders/generic_binary_head.comp
     create mode 100644 vulkan-shaders/generic_head.comp
     create mode 100644 vulkan-shaders/generic_unary_head.comp
     create mode 100644 vulkan-shaders/get_rows.comp
     create mode 100644 vulkan-shaders/get_rows_quant.comp
     create mode 100644 vulkan-shaders/mul.comp
     create mode 100644 vulkan-shaders/mul_mat_split_k_reduce.comp
     create mode 100644 vulkan-shaders/mul_mat_vec.comp
     create mode 100644 vulkan-shaders/mul_mat_vec_base.comp
     create mode 100644 vulkan-shaders/mul_mat_vec_nc.comp
     create mode 100644 vulkan-shaders/mul_mat_vec_p021.comp
     create mode 100644 vulkan-shaders/mul_mat_vec_q2_k.comp
     create mode 100644 vulkan-shaders/mul_mat_vec_q3_k.comp
     create mode 100644 vulkan-shaders/mul_mat_vec_q4_k.comp
     create mode 100644 vulkan-shaders/mul_mat_vec_q5_k.comp
     create mode 100644 vulkan-shaders/mul_mat_vec_q6_k.comp
     create mode 100644 vulkan-shaders/mul_mm.comp
     create mode 100644 vulkan-shaders/norm.comp
     create mode 100644 vulkan-shaders/relu.comp
     create mode 100644 vulkan-shaders/rms_norm.comp
     create mode 100644 vulkan-shaders/rope_head.comp
     create mode 100644 vulkan-shaders/rope_neox.comp
     create mode 100644 vulkan-shaders/rope_norm.comp
     create mode 100644 vulkan-shaders/scale.comp
     create mode 100644 vulkan-shaders/silu.comp
     create mode 100644 vulkan-shaders/soft_max.comp
     create mode 100644 vulkan-shaders/square.comp
     create mode 100644 vulkan-shaders/sum_rows.comp
     create mode 100644 vulkan-shaders/types.comp
    
    diff --git a/CMakeLists.txt b/CMakeLists.txt
    index d86107187834c..c90414afa92be 100644
    --- a/CMakeLists.txt
    +++ b/CMakeLists.txt
    @@ -119,6 +119,7 @@ option(LLAMA_HIP_UMA                         "llama: use HIP unified memory arch
     option(LLAMA_VULKAN                          "llama: use Vulkan"                                OFF)
     option(LLAMA_VULKAN_CHECK_RESULTS            "llama: run Vulkan op checks"                      OFF)
     option(LLAMA_VULKAN_DEBUG                    "llama: enable Vulkan debug output"                OFF)
    +option(LLAMA_VULKAN_MEMORY_DEBUG             "llama: enable Vulkan memory debug output"         OFF)
     option(LLAMA_VULKAN_VALIDATE                 "llama: enable Vulkan validation"                  OFF)
     option(LLAMA_VULKAN_RUN_TESTS                "llama: run Vulkan tests"                          OFF)
     option(LLAMA_METAL                           "llama: use Metal"                                 ${LLAMA_METAL_DEFAULT})
    @@ -534,6 +535,10 @@ if (LLAMA_VULKAN)
                 add_compile_definitions(GGML_VULKAN_DEBUG)
             endif()
     
    +        if (LLAMA_VULKAN_MEMORY_DEBUG)
    +            add_compile_definitions(GGML_VULKAN_MEMORY_DEBUG)
    +        endif()
    +
             if (LLAMA_VULKAN_VALIDATE)
                 add_compile_definitions(GGML_VULKAN_VALIDATE)
             endif()
    diff --git a/Makefile b/Makefile
    index 5ab3481fb49ee..f94ee393377b7 100644
    --- a/Makefile
    +++ b/Makefile
    @@ -608,6 +608,10 @@ ifdef LLAMA_VULKAN_DEBUG
     	MK_CPPFLAGS  += -DGGML_VULKAN_DEBUG
     endif
     
    +ifdef LLAMA_VULKAN_MEMORY_DEBUG
    +	MK_CPPFLAGS  += -DGGML_VULKAN_MEMORY_DEBUG
    +endif
    +
     ifdef LLAMA_VULKAN_VALIDATE
     	MK_CPPFLAGS  += -DGGML_VULKAN_VALIDATE
     endif
    diff --git a/ggml-vulkan-shaders.hpp b/ggml-vulkan-shaders.hpp
    index 4a8ee34157086..e97a8c6b7ae6c 100644
    --- a/ggml-vulkan-shaders.hpp
    +++ b/ggml-vulkan-shaders.hpp
    @@ -2103,7 +2103,7 @@ unsigned char dequant_f32_data[] = {
     };
     const uint64_t dequant_f32_len = 3200;
     
    -unsigned char dequant_q2_K_data[] = {
    +unsigned char dequant_q2_k_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
     0x10,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00,
     0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x27,0x00,0x00,0x00,
    @@ -2442,9 +2442,9 @@ unsigned char dequant_q2_K_data[] = {
     0x01,0x01,0x00,0x00,0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
     
     };
    -const uint64_t dequant_q2_K_len = 4032;
    +const uint64_t dequant_q2_k_len = 4032;
     
    -unsigned char dequant_q3_K_data[] = {
    +unsigned char dequant_q3_k_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
     0x3f,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00,
     0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x27,0x00,0x00,0x00,
    @@ -2847,7 +2847,7 @@ unsigned char dequant_q3_K_data[] = {
     0xf8,0x00,0x02,0x00,0x2d,0x01,0x00,0x00,0xfd,0x00,0x01,0x00,
     0x38,0x00,0x01,0x00,
     };
    -const uint64_t dequant_q3_K_len = 4804;
    +const uint64_t dequant_q3_k_len = 4804;
     
     unsigned char dequant_q4_0_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
    @@ -3728,7 +3728,7 @@ unsigned char dequant_q4_1_data[] = {
     };
     const uint64_t dequant_q4_1_len = 5248;
     
    -unsigned char dequant_q4_K_data[] = {
    +unsigned char dequant_q4_k_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
     0xae,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00,
     0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x27,0x00,0x00,0x00,
    @@ -4224,7 +4224,7 @@ unsigned char dequant_q4_K_data[] = {
     0x34,0x01,0x00,0x00,0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
     
     };
    -const uint64_t dequant_q4_K_len = 5916;
    +const uint64_t dequant_q4_k_len = 5916;
     
     unsigned char dequant_q5_0_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
    @@ -5323,7 +5323,7 @@ unsigned char dequant_q5_1_data[] = {
     };
     const uint64_t dequant_q5_1_len = 6412;
     
    -unsigned char dequant_q5_K_data[] = {
    +unsigned char dequant_q5_k_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
     0x9e,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00,
     0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x27,0x00,0x00,0x00,
    @@ -5824,9 +5824,9 @@ unsigned char dequant_q5_K_data[] = {
     0xf8,0x00,0x02,0x00,0x88,0x01,0x00,0x00,0xfd,0x00,0x01,0x00,
     0x38,0x00,0x01,0x00,
     };
    -const uint64_t dequant_q5_K_len = 5980;
    +const uint64_t dequant_q5_k_len = 5980;
     
    -unsigned char dequant_q6_K_data[] = {
    +unsigned char dequant_q6_k_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
     0x0d,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00,
     0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x27,0x00,0x00,0x00,
    @@ -6185,7 +6185,7 @@ unsigned char dequant_q6_K_data[] = {
     0x03,0x01,0x00,0x00,0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
     
     };
    -const uint64_t dequant_q6_K_len = 4272;
    +const uint64_t dequant_q6_k_len = 4272;
     
     unsigned char dequant_q8_0_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
    @@ -18578,235 +18578,237 @@ unsigned char matmul_f16_fp32_data[] = {
     };
     const uint64_t matmul_f16_fp32_len = 10276;
     
    -unsigned char matmul_f32_data[] = {
    +unsigned char matmul_f32_f16_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
     0xd9,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00,
     0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x09,0x00,0x00,0x00,
    -0x0b,0x00,0x06,0x00,0x01,0x00,0x00,0x00,0x47,0x4c,0x53,0x4c,
    -0x2e,0x73,0x74,0x64,0x2e,0x34,0x35,0x30,0x00,0x00,0x00,0x00,
    -0x0e,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x0f,0x00,0x0f,0x00,0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x6d,0x61,0x69,0x6e,0x00,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    -0x14,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,
    -0xfb,0x00,0x00,0x00,0x06,0x01,0x00,0x00,0x47,0x01,0x00,0x00,
    -0x52,0x01,0x00,0x00,0x3a,0x02,0x00,0x00,0x83,0x02,0x00,0x00,
    -0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x0b,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    +0x11,0x00,0x02,0x00,0x51,0x11,0x00,0x00,0x0b,0x00,0x06,0x00,
    +0x01,0x00,0x00,0x00,0x47,0x4c,0x53,0x4c,0x2e,0x73,0x74,0x64,
    +0x2e,0x34,0x35,0x30,0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00,
    +0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0f,0x00,0x0f,0x00,
    +0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e,
    +0x00,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    +0x3e,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
    +0x06,0x01,0x00,0x00,0x47,0x01,0x00,0x00,0x52,0x01,0x00,0x00,
    +0x3a,0x02,0x00,0x00,0x83,0x02,0x00,0x00,0x10,0x00,0x06,0x00,
    +0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x0b,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x12,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x12,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,
    +0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x12,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
     0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x12,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,
    -0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x12,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x12,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,
    -0x09,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x12,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x2c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x30,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,0x0d,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    -0x12,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x38,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x3e,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    -0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x4d,0x00,0x00,0x00,
    -0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x50,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x54,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x04,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x61,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x63,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x6d,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x03,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xa6,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0xb8,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x08,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x03,0x01,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,
    -0x04,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x04,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    -0x04,0x01,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x06,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x06,0x01,0x00,0x00,0x21,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x21,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x22,0x01,0x00,0x00,0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x4f,0x01,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x50,0x01,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x12,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x28,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,
    +0x0b,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x2c,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x12,0x00,0x00,0x00,0x0d,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x34,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x12,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x38,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x3e,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x4d,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x50,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x54,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x61,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x63,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x6d,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0xa6,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xb8,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0xbb,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x03,0x01,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x04,0x01,0x00,0x00,
     0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x50,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x50,0x01,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x52,0x01,0x00,0x00,
    +0x04,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x04,0x01,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x06,0x01,0x00,0x00,
     0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x52,0x01,0x00,0x00,0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x3a,0x02,0x00,0x00,0x0b,0x00,0x00,0x00,
    -0x18,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x80,0x02,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,
    -0x81,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x81,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    -0x81,0x02,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x83,0x02,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x83,0x02,0x00,0x00,0x21,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00,
    -0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    -0x15,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x17,0x00,0x04,0x00,0x09,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x0a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0x0a,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x0d,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x1e,0x00,0x10,0x00,0x12,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x01,0x00,0x00,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x21,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x22,0x01,0x00,0x00,
    +0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x4f,0x01,0x00,0x00,0x06,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x48,0x00,0x04,0x00,0x50,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x50,0x01,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x47,0x00,0x03,0x00,0x50,0x01,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x52,0x01,0x00,0x00,0x22,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x52,0x01,0x00,0x00,
    +0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x3a,0x02,0x00,0x00,0x0b,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x80,0x02,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x81,0x02,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x81,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x81,0x02,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x83,0x02,0x00,0x00,
    +0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x83,0x02,0x00,0x00,0x21,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00,
    +0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x17,0x00,0x04,0x00,0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x0a,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0x0a,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x0d,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x1e,0x00,0x10,0x00,
    +0x12,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
     0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
     0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
     0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
     0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x13,0x00,0x00,0x00,
    -0x09,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0x13,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    -0x15,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    -0x16,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x17,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x0d,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    -0x28,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x15,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x35,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x38,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0x0a,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0x0a,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x50,0x00,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x54,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x38,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x38,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x62,0x00,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x61,0x00,0x00,0x00,
    -0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
    -0x04,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0x64,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x62,0x00,0x00,0x00,
    -0x63,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0x68,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x62,0x00,0x00,0x00,
    -0x63,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x6d,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x73,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x15,0x00,0x00,0x00,0x81,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    -0x91,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x15,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0xa1,0x00,0x00,0x00,
    -0x07,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0xa6,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x15,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,
    -0x84,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
    -0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0xb9,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x54,0x00,0x00,0x00,
    -0xb8,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0xba,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x50,0x00,0x00,0x00,
    -0x63,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0xbb,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    -0xba,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0xbd,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    -0xbc,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0xbe,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0xb9,0x00,0x00,0x00,0xbd,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    -0xb7,0x00,0x00,0x00,0xbe,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    -0xbf,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0x14,0x00,0x02,0x00,
    -0xc1,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0xc3,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x13,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x12,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x13,0x00,0x00,0x00,
    +0x14,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x15,0x00,0x04,0x00,
    +0x15,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x16,0x00,0x00,0x00,
    +0x0b,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x17,0x00,0x00,0x00,
    +0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x15,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x0d,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x28,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    +0x2e,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x15,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x38,0x00,0x00,0x00,
    +0x40,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0x0a,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x0a,0x00,0x00,0x00,
    +0x4d,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x54,0x00,0x00,0x00,
     0x20,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0xc4,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x61,0x00,0x00,0x00,
    -0x63,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0xc5,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,
    +0x55,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x38,0x00,0x00,0x00,
    +0x54,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x59,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x38,0x00,0x00,0x00,
    +0x54,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x61,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x62,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x54,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x64,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x62,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x68,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x62,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
    +0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    +0x10,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x6e,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x73,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x78,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x7d,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    +0x81,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x15,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x91,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    +0x97,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x15,0x00,0x00,0x00,0xa1,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    +0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa6,0x00,0x00,0x00,
    +0x40,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    +0xa8,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    +0x61,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,
    +0x84,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xba,0x00,0x00,0x00,
    +0x84,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
    +0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0xbc,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0xba,0x00,0x00,0x00,
    +0xbb,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0xbd,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,
    +0x61,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0xbe,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,
    +0xbd,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0xbf,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,
     0xbe,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0xc6,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,
    -0xbb,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0xc7,0x00,0x00,0x00,
    -0xc3,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0xc8,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xcc,0x00,0x00,0x00,
    -0x07,0x00,0x00,0x00,0xc3,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x15,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x16,0x00,0x03,0x00,0xf6,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,
    -0x80,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,
    -0x84,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,
    -0x1c,0x00,0x04,0x00,0xf9,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,
    -0xf8,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xfa,0x00,0x00,0x00,
    -0x04,0x00,0x00,0x00,0xf9,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0xfa,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xff,0x00,0x00,0x00,
    -0x80,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    -0x1d,0x00,0x03,0x00,0x03,0x01,0x00,0x00,0xc3,0x00,0x00,0x00,
    -0x1e,0x00,0x03,0x00,0x04,0x01,0x00,0x00,0x03,0x01,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x05,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x04,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,0x05,0x01,0x00,0x00,
    -0x06,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x11,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0xc3,0x00,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x15,0x01,0x00,0x00,0x04,0x00,0x00,0x00,
    -0xf6,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0x1b,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    -0x3a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0xf6,0x00,0x00,0x00,
    -0x1f,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x21,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x33,0x00,0x06,0x00,0x09,0x00,0x00,0x00,0x22,0x01,0x00,0x00,
    -0x21,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x23,0x01,0x00,0x00,
    -0x51,0x00,0x00,0x00,0x22,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x24,0x01,0x00,0x00,
    -0x84,0x00,0x00,0x00,0x23,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x25,0x01,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x24,0x01,0x00,0x00,0x6d,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x43,0x01,0x00,0x00,
    -0x80,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x44,0x01,0x00,0x00,
    -0x84,0x00,0x00,0x00,0xa6,0x00,0x00,0x00,0x43,0x01,0x00,0x00,
    -0x1c,0x00,0x04,0x00,0x45,0x01,0x00,0x00,0xf6,0x00,0x00,0x00,
    -0x44,0x01,0x00,0x00,0x20,0x00,0x04,0x00,0x46,0x01,0x00,0x00,
    -0x04,0x00,0x00,0x00,0x45,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0x46,0x01,0x00,0x00,0x47,0x01,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x4b,0x01,0x00,0x00,
    +0xc0,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,
    +0xbb,0x00,0x00,0x00,0x14,0x00,0x02,0x00,0xc1,0x00,0x00,0x00,
    +0x16,0x00,0x03,0x00,0xc3,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,
    +0x84,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,
    +0x84,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,0xbe,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,
    +0x84,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,
    +0x1c,0x00,0x04,0x00,0xc7,0x00,0x00,0x00,0xc3,0x00,0x00,0x00,
    +0xc6,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xc8,0x00,0x00,0x00,
    +0x07,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0xc3,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0xcc,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    +0xc3,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x16,0x00,0x03,0x00,
    +0xf6,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,0x80,0x00,0x00,0x00,
    +0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    +0x38,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,
    +0xf9,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0xfa,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    +0xf9,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xfa,0x00,0x00,0x00,
    +0xfb,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x80,0x00,0x00,0x00,
    +0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    +0x03,0x01,0x00,0x00,0xc3,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
    +0x04,0x01,0x00,0x00,0x03,0x01,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x05,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x04,0x01,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x05,0x01,0x00,0x00,0x06,0x01,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x11,0x01,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0xc3,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x15,0x01,0x00,0x00,0x04,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x1b,0x01,0x00,0x00,
     0x80,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    -0x1d,0x00,0x03,0x00,0x4f,0x01,0x00,0x00,0xc3,0x00,0x00,0x00,
    -0x1e,0x00,0x03,0x00,0x50,0x01,0x00,0x00,0x4f,0x01,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x51,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x50,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,0x51,0x01,0x00,0x00,
    -0x52,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x2b,0x00,0x04,0x00,0xf6,0x00,0x00,0x00,0x1f,0x01,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x21,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x33,0x00,0x06,0x00,
    +0x09,0x00,0x00,0x00,0x22,0x01,0x00,0x00,0x21,0x01,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x23,0x01,0x00,0x00,0x51,0x00,0x00,0x00,
    +0x22,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x24,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    +0x23,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x25,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x24,0x01,0x00,0x00,0x6d,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x43,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
    +0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x44,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    +0xa6,0x00,0x00,0x00,0x43,0x01,0x00,0x00,0x1c,0x00,0x04,0x00,
    +0x45,0x01,0x00,0x00,0xf6,0x00,0x00,0x00,0x44,0x01,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x46,0x01,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x45,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,0x46,0x01,0x00,0x00,
    +0x47,0x01,0x00,0x00,0x04,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x4b,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
    +0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    +0x4f,0x01,0x00,0x00,0xf6,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
    +0x50,0x01,0x00,0x00,0x4f,0x01,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x51,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x50,0x01,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x51,0x01,0x00,0x00,0x52,0x01,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x5d,0x01,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x65,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
     0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x6a,0x01,0x00,0x00,0x51,0x00,0x00,0x00,
    @@ -19089,3325 +19091,3306 @@ unsigned char matmul_f32_data[] = {
     0x06,0x00,0x00,0x00,0x5a,0x01,0x00,0x00,0xc0,0x02,0x00,0x00,
     0x59,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x5c,0x01,0x00,0x00,0x5a,0x01,0x00,0x00,0x79,0x00,0x00,0x00,
    -0x41,0x00,0x06,0x00,0x11,0x01,0x00,0x00,0x5d,0x01,0x00,0x00,
    +0x41,0x00,0x06,0x00,0x5d,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,
     0x52,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0x5c,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x5e,0x01,0x00,0x00,
    -0x5d,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0xf6,0x00,0x00,0x00,
    -0x5f,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x15,0x01,0x00,0x00,0x60,0x01,0x00,0x00,0x47,0x01,0x00,0x00,
    -0x4e,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x60,0x01,0x00,0x00,
    -0x5f,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x42,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x61,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x64,0x01,0x00,0x00,0x7e,0x00,0x00,0x00,
    -0xb9,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x66,0x01,0x00,0x00,0x64,0x01,0x00,0x00,0x65,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x68,0x01,0x00,0x00,
    -0x66,0x01,0x00,0x00,0x79,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x15,0x01,0x00,0x00,0x69,0x01,0x00,0x00,0x47,0x01,0x00,0x00,
    -0x68,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x69,0x01,0x00,0x00,
    -0x1f,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x42,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x42,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x2c,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x2c,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6e,0x01,0x00,0x00,
    -0xb9,0x02,0x00,0x00,0x6c,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x29,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x2b,0x01,0x00,0x00,
    -0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x6f,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x72,0x01,0x00,0x00,0xbc,0x02,0x00,0x00,0x70,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x75,0x01,0x00,0x00,
    -0xc0,0x02,0x00,0x00,0x73,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x77,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x77,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xc2,0x02,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0x2b,0x01,0x00,0x00,0x21,0x02,0x00,0x00,
    -0x7a,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0x7d,0x01,0x00,0x00,0xc2,0x02,0x00,0x00,0x6d,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x79,0x01,0x00,0x00,0x7a,0x01,0x00,0x00,
    -0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x7d,0x01,0x00,0x00,
    -0x78,0x01,0x00,0x00,0x79,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x78,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x7f,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x7f,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xc6,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0x78,0x01,0x00,0x00,0xab,0x01,0x00,0x00,0x82,0x01,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x85,0x01,0x00,0x00,
    -0xc6,0x02,0x00,0x00,0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x81,0x01,0x00,0x00,0x82,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x85,0x01,0x00,0x00,0x80,0x01,0x00,0x00,
    -0x81,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x80,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x87,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x87,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xd8,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0x80,0x01,0x00,0x00,
    -0xa9,0x01,0x00,0x00,0x88,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0x8d,0x01,0x00,0x00,0xd8,0x02,0x00,0x00,
    -0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x89,0x01,0x00,0x00,
    -0x88,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x8d,0x01,0x00,0x00,0x88,0x01,0x00,0x00,0x89,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x88,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x93,0x01,0x00,0x00,0xc6,0x02,0x00,0x00,
    -0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x95,0x01,0x00,0x00,0x93,0x01,0x00,0x00,0xd8,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x97,0x01,0x00,0x00,
    -0x56,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x99,0x01,0x00,0x00,0xc6,0x02,0x00,0x00,
    -0x62,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x9a,0x01,0x00,0x00,0x97,0x01,0x00,0x00,0x99,0x01,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9c,0x01,0x00,0x00,
    -0x65,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x9d,0x01,0x00,0x00,0x9a,0x01,0x00,0x00,
    -0x9c,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x9f,0x01,0x00,0x00,0x9d,0x01,0x00,0x00,0xd8,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa1,0x01,0x00,0x00,
    -0x9f,0x01,0x00,0x00,0xa0,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xa3,0x01,0x00,0x00,0xa1,0x01,0x00,0x00,
    -0xc2,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x15,0x01,0x00,0x00,
    -0xa4,0x01,0x00,0x00,0xfb,0x00,0x00,0x00,0xa3,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xf6,0x00,0x00,0x00,0xa5,0x01,0x00,0x00,
    -0xa4,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0xa6,0x01,0x00,0x00,
    -0xa7,0x01,0x00,0x00,0x91,0x01,0x00,0x00,0x95,0x01,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0xa7,0x01,0x00,0x00,0xa5,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa9,0x01,0x00,0x00,
    -0xd8,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x87,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x89,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x82,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x82,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xab,0x01,0x00,0x00,0xc6,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xf6,0x00,0x00,0x00,0x5f,0x01,0x00,0x00,
    +0x5e,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x15,0x01,0x00,0x00,
    +0x60,0x01,0x00,0x00,0x47,0x01,0x00,0x00,0x4e,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x60,0x01,0x00,0x00,0x5f,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x42,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x61,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x64,0x01,0x00,0x00,0x7e,0x00,0x00,0x00,0xb9,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x66,0x01,0x00,0x00,
    +0x64,0x01,0x00,0x00,0x65,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x68,0x01,0x00,0x00,0x66,0x01,0x00,0x00,
    +0x79,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x15,0x01,0x00,0x00,
    +0x69,0x01,0x00,0x00,0x47,0x01,0x00,0x00,0x68,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x69,0x01,0x00,0x00,0x1f,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x42,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x42,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x2c,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x2c,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x6e,0x01,0x00,0x00,0xb9,0x02,0x00,0x00,
    +0x6c,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x29,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x2b,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,
    +0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x6f,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x72,0x01,0x00,0x00,
    +0xbc,0x02,0x00,0x00,0x70,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x75,0x01,0x00,0x00,0xc0,0x02,0x00,0x00,
    +0x73,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x77,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x77,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xc2,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x2b,0x01,0x00,0x00,0x21,0x02,0x00,0x00,0x7a,0x01,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x7d,0x01,0x00,0x00,
    +0xc2,0x02,0x00,0x00,0x6d,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x79,0x01,0x00,0x00,0x7a,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x7d,0x01,0x00,0x00,0x78,0x01,0x00,0x00,
    +0x79,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x78,0x01,0x00,0x00,
     0xf9,0x00,0x02,0x00,0x7f,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x81,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xad,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xad,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xc7,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0x81,0x01,0x00,0x00,0xd9,0x01,0x00,0x00,0xb0,0x01,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xb3,0x01,0x00,0x00,
    -0xc7,0x02,0x00,0x00,0xbe,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xaf,0x01,0x00,0x00,0xb0,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xb3,0x01,0x00,0x00,0xae,0x01,0x00,0x00,
    -0xaf,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xae,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xb5,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xb5,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xd5,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0xae,0x01,0x00,0x00,
    -0xd7,0x01,0x00,0x00,0xb6,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0xbb,0x01,0x00,0x00,0xd5,0x02,0x00,0x00,
    -0xbb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xb7,0x01,0x00,0x00,
    -0xb6,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xbb,0x01,0x00,0x00,0xb6,0x01,0x00,0x00,0xb7,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xb6,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xc1,0x01,0x00,0x00,0xc7,0x02,0x00,0x00,
    -0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xc3,0x01,0x00,0x00,0xc1,0x01,0x00,0x00,0xd5,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc5,0x01,0x00,0x00,
    -0x5a,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xc8,0x01,0x00,0x00,0xc7,0x02,0x00,0x00,
    -0xc7,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xc9,0x01,0x00,0x00,0xc5,0x01,0x00,0x00,0xc8,0x01,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xcb,0x01,0x00,0x00,
    -0x69,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xcc,0x01,0x00,0x00,0xc9,0x01,0x00,0x00,
    -0xcb,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xce,0x01,0x00,0x00,0xcc,0x01,0x00,0x00,0xd5,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd0,0x01,0x00,0x00,
    -0xce,0x01,0x00,0x00,0xcf,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xd2,0x01,0x00,0x00,0xd0,0x01,0x00,0x00,
    -0xc2,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x15,0x01,0x00,0x00,
    -0xd3,0x01,0x00,0x00,0x47,0x01,0x00,0x00,0xd2,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xf6,0x00,0x00,0x00,0xd4,0x01,0x00,0x00,
    -0xd3,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0xa6,0x01,0x00,0x00,
    -0xd5,0x01,0x00,0x00,0xbf,0x01,0x00,0x00,0xc3,0x01,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0xd5,0x01,0x00,0x00,0xd4,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd7,0x01,0x00,0x00,
    -0xd5,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xb5,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xb7,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xb0,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xb0,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xd9,0x01,0x00,0x00,0xc7,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0x7f,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xc6,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0x78,0x01,0x00,0x00,
    +0xab,0x01,0x00,0x00,0x82,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0x85,0x01,0x00,0x00,0xc6,0x02,0x00,0x00,
    +0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x81,0x01,0x00,0x00,
    +0x82,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x85,0x01,0x00,0x00,0x80,0x01,0x00,0x00,0x81,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x80,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x87,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x87,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xd8,0x02,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0x80,0x01,0x00,0x00,0xa9,0x01,0x00,0x00,
    +0x88,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0x8d,0x01,0x00,0x00,0xd8,0x02,0x00,0x00,0x63,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x89,0x01,0x00,0x00,0x88,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x8d,0x01,0x00,0x00,
    +0x88,0x01,0x00,0x00,0x89,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x88,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x93,0x01,0x00,0x00,0xc6,0x02,0x00,0x00,0x63,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x95,0x01,0x00,0x00,
    +0x93,0x01,0x00,0x00,0xd8,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x97,0x01,0x00,0x00,0x56,0x00,0x00,0x00,
    +0x54,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x99,0x01,0x00,0x00,0xc6,0x02,0x00,0x00,0x62,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9a,0x01,0x00,0x00,
    +0x97,0x01,0x00,0x00,0x99,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x9c,0x01,0x00,0x00,0x65,0x00,0x00,0x00,
    +0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x9d,0x01,0x00,0x00,0x9a,0x01,0x00,0x00,0x9c,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9f,0x01,0x00,0x00,
    +0x9d,0x01,0x00,0x00,0xd8,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xa1,0x01,0x00,0x00,0x9f,0x01,0x00,0x00,
    +0xa0,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xa3,0x01,0x00,0x00,0xa1,0x01,0x00,0x00,0xc2,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x15,0x01,0x00,0x00,0xa4,0x01,0x00,0x00,
    +0xfb,0x00,0x00,0x00,0xa3,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xf6,0x00,0x00,0x00,0xa5,0x01,0x00,0x00,0xa4,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xa6,0x01,0x00,0x00,0xa7,0x01,0x00,0x00,
    +0x91,0x01,0x00,0x00,0x95,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0xa7,0x01,0x00,0x00,0xa5,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xa9,0x01,0x00,0x00,0xd8,0x02,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x87,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x89,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x82,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x82,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xab,0x01,0x00,0x00,
    +0xc6,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x7f,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x81,0x01,0x00,0x00,
     0xf9,0x00,0x02,0x00,0xad,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xaf,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xdb,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xdb,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xc8,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0xaf,0x01,0x00,0x00,0x1f,0x02,0x00,0x00,0xde,0x01,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xe1,0x01,0x00,0x00,
    -0xc8,0x02,0x00,0x00,0xbe,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xdd,0x01,0x00,0x00,0xde,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xe1,0x01,0x00,0x00,0xdc,0x01,0x00,0x00,
    -0xdd,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xdc,0x01,0x00,0x00,
    +0xad,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xc7,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0x81,0x01,0x00,0x00,
    +0xd9,0x01,0x00,0x00,0xb0,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0xb3,0x01,0x00,0x00,0xc7,0x02,0x00,0x00,
    +0xbe,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xaf,0x01,0x00,0x00,
    +0xb0,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xb3,0x01,0x00,0x00,0xae,0x01,0x00,0x00,0xaf,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xae,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xb5,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xb5,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xd5,0x02,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0xae,0x01,0x00,0x00,0xd7,0x01,0x00,0x00,
    +0xb6,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0xbb,0x01,0x00,0x00,0xd5,0x02,0x00,0x00,0xbb,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xb7,0x01,0x00,0x00,0xb6,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xbb,0x01,0x00,0x00,
    +0xb6,0x01,0x00,0x00,0xb7,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xb6,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xc1,0x01,0x00,0x00,0xc7,0x02,0x00,0x00,0xbb,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc3,0x01,0x00,0x00,
    +0xc1,0x01,0x00,0x00,0xd5,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xc5,0x01,0x00,0x00,0x5a,0x00,0x00,0x00,
    +0xb8,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xc8,0x01,0x00,0x00,0xc7,0x02,0x00,0x00,0xc7,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc9,0x01,0x00,0x00,
    +0xc5,0x01,0x00,0x00,0xc8,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xcb,0x01,0x00,0x00,0x69,0x00,0x00,0x00,
    +0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xcc,0x01,0x00,0x00,0xc9,0x01,0x00,0x00,0xcb,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xce,0x01,0x00,0x00,
    +0xcc,0x01,0x00,0x00,0xd5,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xd0,0x01,0x00,0x00,0xce,0x01,0x00,0x00,
    +0xcf,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xd2,0x01,0x00,0x00,0xd0,0x01,0x00,0x00,0xc2,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x15,0x01,0x00,0x00,0xd3,0x01,0x00,0x00,
    +0x47,0x01,0x00,0x00,0xd2,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xf6,0x00,0x00,0x00,0xd4,0x01,0x00,0x00,0xd3,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xa6,0x01,0x00,0x00,0xd5,0x01,0x00,0x00,
    +0xbf,0x01,0x00,0x00,0xc3,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0xd5,0x01,0x00,0x00,0xd4,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xd7,0x01,0x00,0x00,0xd5,0x02,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xb5,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xb7,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xb0,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xb0,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd9,0x01,0x00,0x00,
    +0xc7,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xad,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xaf,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xdb,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xdb,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xc8,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0xaf,0x01,0x00,0x00,
    +0x1f,0x02,0x00,0x00,0xde,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0xe1,0x01,0x00,0x00,0xc8,0x02,0x00,0x00,
    +0xbe,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xdd,0x01,0x00,0x00,
    +0xde,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xe1,0x01,0x00,0x00,0xdc,0x01,0x00,0x00,0xdd,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xdc,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xe3,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xe3,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xcc,0x02,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0xdc,0x01,0x00,0x00,0x1d,0x02,0x00,0x00,
    +0xe6,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0xe9,0x01,0x00,0x00,0xcc,0x02,0x00,0x00,0x61,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xe5,0x01,0x00,0x00,0xe6,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xe9,0x01,0x00,0x00,
    +0xe4,0x01,0x00,0x00,0xe5,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xe4,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xeb,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xeb,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xce,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0xe4,0x01,0x00,0x00,0x1b,0x02,0x00,0x00,0xee,0x01,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xf1,0x01,0x00,0x00,
    +0xce,0x02,0x00,0x00,0xbb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xed,0x01,0x00,0x00,0xee,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xf1,0x01,0x00,0x00,0xec,0x01,0x00,0x00,
    +0xed,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xec,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xf3,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xf3,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xd0,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0xec,0x01,0x00,0x00,
    +0x19,0x02,0x00,0x00,0xf4,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0xf9,0x01,0x00,0x00,0xd0,0x02,0x00,0x00,
    +0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xf5,0x01,0x00,0x00,
    +0xf4,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xf9,0x01,0x00,0x00,0xf4,0x01,0x00,0x00,0xf5,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xf4,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xfb,0x01,0x00,0x00,0xc8,0x02,0x00,0x00,
    +0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xfd,0x01,0x00,0x00,0xfb,0x01,0x00,0x00,0xce,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xff,0x01,0x00,0x00,
    +0xfd,0x01,0x00,0x00,0xfe,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x01,0x02,0x00,0x00,0xcc,0x02,0x00,0x00,
    +0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x02,0x02,0x00,0x00,0xff,0x01,0x00,0x00,0x01,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x04,0x02,0x00,0x00,
    +0x02,0x02,0x00,0x00,0xd0,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x08,0x02,0x00,0x00,0x01,0x02,0x00,0x00,
    +0xd0,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xa6,0x01,0x00,0x00,
    +0x09,0x02,0x00,0x00,0x91,0x01,0x00,0x00,0x08,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xf6,0x00,0x00,0x00,0x0a,0x02,0x00,0x00,
    +0x09,0x02,0x00,0x00,0x73,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    +0x0b,0x02,0x00,0x00,0x0a,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xa6,0x01,0x00,0x00,0x10,0x02,0x00,0x00,0xbf,0x01,0x00,0x00,
    +0xfd,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xf6,0x00,0x00,0x00,
    +0x11,0x02,0x00,0x00,0x10,0x02,0x00,0x00,0x73,0x00,0x04,0x00,
    +0xc3,0x00,0x00,0x00,0x12,0x02,0x00,0x00,0x11,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,0x14,0x02,0x00,0x00,
    +0xc9,0x00,0x00,0x00,0x04,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xc3,0x00,0x00,0x00,0x15,0x02,0x00,0x00,0x14,0x02,0x00,0x00,
    +0x0c,0x00,0x08,0x00,0xc3,0x00,0x00,0x00,0x16,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x0b,0x02,0x00,0x00,
    +0x12,0x02,0x00,0x00,0x15,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x14,0x02,0x00,0x00,0x16,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x19,0x02,0x00,0x00,0xd0,0x02,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xf3,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xf5,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xee,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xee,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1b,0x02,0x00,0x00,
    +0xce,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xeb,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xed,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xe6,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xe6,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x1d,0x02,0x00,0x00,0xcc,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,
     0xf9,0x00,0x02,0x00,0xe3,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xe3,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xcc,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0xdc,0x01,0x00,0x00,
    -0x1d,0x02,0x00,0x00,0xe6,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0xe9,0x01,0x00,0x00,0xcc,0x02,0x00,0x00,
    -0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xe5,0x01,0x00,0x00,
    -0xe6,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xe9,0x01,0x00,0x00,0xe4,0x01,0x00,0x00,0xe5,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xe4,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xeb,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xeb,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xce,0x02,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0xe4,0x01,0x00,0x00,0x1b,0x02,0x00,0x00,
    -0xee,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0xf1,0x01,0x00,0x00,0xce,0x02,0x00,0x00,0xbb,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xed,0x01,0x00,0x00,0xee,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xf1,0x01,0x00,0x00,
    -0xec,0x01,0x00,0x00,0xed,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xec,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xf3,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xf3,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xd0,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0xec,0x01,0x00,0x00,0x19,0x02,0x00,0x00,0xf4,0x01,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xf9,0x01,0x00,0x00,
    -0xd0,0x02,0x00,0x00,0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xf5,0x01,0x00,0x00,0xf4,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xf9,0x01,0x00,0x00,0xf4,0x01,0x00,0x00,
    -0xf5,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xf4,0x01,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfb,0x01,0x00,0x00,
    -0xc8,0x02,0x00,0x00,0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xfd,0x01,0x00,0x00,0xfb,0x01,0x00,0x00,
    -0xce,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xff,0x01,0x00,0x00,0xfd,0x01,0x00,0x00,0xfe,0x01,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x01,0x02,0x00,0x00,
    -0xcc,0x02,0x00,0x00,0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x02,0x02,0x00,0x00,0xff,0x01,0x00,0x00,
    -0x01,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x04,0x02,0x00,0x00,0x02,0x02,0x00,0x00,0xd0,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x08,0x02,0x00,0x00,
    -0x01,0x02,0x00,0x00,0xd0,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xa6,0x01,0x00,0x00,0x09,0x02,0x00,0x00,0x91,0x01,0x00,0x00,
    -0x08,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xf6,0x00,0x00,0x00,
    -0x0a,0x02,0x00,0x00,0x09,0x02,0x00,0x00,0x73,0x00,0x04,0x00,
    -0xc3,0x00,0x00,0x00,0x0b,0x02,0x00,0x00,0x0a,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xa6,0x01,0x00,0x00,0x10,0x02,0x00,0x00,
    -0xbf,0x01,0x00,0x00,0xfd,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xf6,0x00,0x00,0x00,0x11,0x02,0x00,0x00,0x10,0x02,0x00,0x00,
    -0x73,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x12,0x02,0x00,0x00,
    -0x11,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,
    -0x14,0x02,0x00,0x00,0xc9,0x00,0x00,0x00,0x04,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x15,0x02,0x00,0x00,
    -0x14,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0xc3,0x00,0x00,0x00,
    -0x16,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,
    -0x0b,0x02,0x00,0x00,0x12,0x02,0x00,0x00,0x15,0x02,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x14,0x02,0x00,0x00,0x16,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x19,0x02,0x00,0x00,
    -0xd0,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xf3,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xf5,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xee,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xee,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x1b,0x02,0x00,0x00,0xce,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xeb,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xed,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xe6,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xe6,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x1d,0x02,0x00,0x00,0xcc,0x02,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xe3,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xe5,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xde,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xde,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1f,0x02,0x00,0x00,
    -0xc8,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xdb,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xdd,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x7a,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x7a,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x21,0x02,0x00,0x00,0xc2,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x77,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x79,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x6f,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xd6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xd6,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x23,0x02,0x00,0x00,
    -0xa8,0x02,0x00,0x00,0x6d,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xd3,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xd5,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x28,0x02,0x00,0x00,
    -0x56,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x29,0x02,0x00,0x00,0x96,0x00,0x00,0x00,
    -0x28,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x2e,0x02,0x00,0x00,0x5a,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2f,0x02,0x00,0x00,
    -0xa7,0x00,0x00,0x00,0x2e,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x17,0x00,0x00,0x00,0x33,0x02,0x00,0x00,0x14,0x00,0x00,0x00,
    -0x32,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x34,0x02,0x00,0x00,0x33,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x35,0x02,0x00,0x00,0x0f,0x00,0x00,0x00,
    -0x34,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x39,0x02,0x00,0x00,0x48,0x00,0x00,0x00,0x34,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,0x3b,0x02,0x00,0x00,
    -0x3a,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x3c,0x02,0x00,0x00,0x3b,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3d,0x02,0x00,0x00,
    -0x39,0x02,0x00,0x00,0x3c,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x3e,0x02,0x00,0x00,0x35,0x02,0x00,0x00,
    -0x3d,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x40,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x40,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xa9,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0xd5,0x00,0x00,0x00,0xa6,0x02,0x00,0x00,0x43,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x46,0x02,0x00,0x00,
    -0xa9,0x02,0x00,0x00,0xbe,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x42,0x02,0x00,0x00,0x43,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x46,0x02,0x00,0x00,0x41,0x02,0x00,0x00,
    -0x42,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x41,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x48,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x48,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xaa,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0x41,0x02,0x00,0x00,
    -0xa4,0x02,0x00,0x00,0x4b,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0x4e,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,
    -0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x4a,0x02,0x00,0x00,
    -0x4b,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x4e,0x02,0x00,0x00,0x49,0x02,0x00,0x00,0x4a,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x49,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x52,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,
    -0x62,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x53,0x02,0x00,0x00,0x29,0x02,0x00,0x00,0x52,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x55,0x02,0x00,0x00,
    -0x65,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x56,0x02,0x00,0x00,0x53,0x02,0x00,0x00,
    -0x55,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x5a,0x02,0x00,0x00,0xa9,0x02,0x00,0x00,0xc7,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5b,0x02,0x00,0x00,
    -0x2f,0x02,0x00,0x00,0x5a,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x5d,0x02,0x00,0x00,0x69,0x00,0x00,0x00,
    +0xe5,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xde,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xde,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x1f,0x02,0x00,0x00,0xc8,0x02,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xdb,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xdd,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x7a,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x7a,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x21,0x02,0x00,0x00,
    +0xc2,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x77,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x79,0x01,0x00,0x00,
    +0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x6f,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xd6,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xd6,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x23,0x02,0x00,0x00,0xa8,0x02,0x00,0x00,
    +0x6d,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xd3,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xd5,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x28,0x02,0x00,0x00,0x56,0x00,0x00,0x00,
    +0x54,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x29,0x02,0x00,0x00,0x96,0x00,0x00,0x00,0x28,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2e,0x02,0x00,0x00,
    +0x5a,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x2f,0x02,0x00,0x00,0xa7,0x00,0x00,0x00,
    +0x2e,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    +0x33,0x02,0x00,0x00,0x14,0x00,0x00,0x00,0x32,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x34,0x02,0x00,0x00,
    +0x33,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x35,0x02,0x00,0x00,0x0f,0x00,0x00,0x00,0x34,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x39,0x02,0x00,0x00,
    +0x48,0x00,0x00,0x00,0x34,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x0d,0x00,0x00,0x00,0x3b,0x02,0x00,0x00,0x3a,0x02,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x3c,0x02,0x00,0x00,0x3b,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x3d,0x02,0x00,0x00,0x39,0x02,0x00,0x00,
    +0x3c,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x3e,0x02,0x00,0x00,0x35,0x02,0x00,0x00,0x3d,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x40,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x40,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xa9,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,
    +0xa6,0x02,0x00,0x00,0x43,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0x46,0x02,0x00,0x00,0xa9,0x02,0x00,0x00,
    +0xbe,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x42,0x02,0x00,0x00,
    +0x43,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x46,0x02,0x00,0x00,0x41,0x02,0x00,0x00,0x42,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x41,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x48,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x48,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xaa,0x02,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0x41,0x02,0x00,0x00,0xa4,0x02,0x00,0x00,
    +0x4b,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0x4e,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,0x61,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x4a,0x02,0x00,0x00,0x4b,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x4e,0x02,0x00,0x00,
    +0x49,0x02,0x00,0x00,0x4a,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x49,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x52,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,0x62,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x53,0x02,0x00,0x00,
    +0x29,0x02,0x00,0x00,0x52,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x55,0x02,0x00,0x00,0x65,0x00,0x00,0x00,
    +0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x56,0x02,0x00,0x00,0x53,0x02,0x00,0x00,0x55,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5a,0x02,0x00,0x00,
    +0xa9,0x02,0x00,0x00,0xc7,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x5b,0x02,0x00,0x00,0x2f,0x02,0x00,0x00,
    +0x5a,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x5d,0x02,0x00,0x00,0x69,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5e,0x02,0x00,0x00,
    +0x5b,0x02,0x00,0x00,0x5d,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x60,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x60,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xac,0x02,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0x49,0x02,0x00,0x00,0xa2,0x02,0x00,0x00,
    +0x63,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0x66,0x02,0x00,0x00,0xac,0x02,0x00,0x00,0xbb,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x62,0x02,0x00,0x00,0x63,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x66,0x02,0x00,0x00,
    +0x61,0x02,0x00,0x00,0x62,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x61,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x68,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x68,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xae,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x61,0x02,0x00,0x00,0xa0,0x02,0x00,0x00,0x6b,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x6e,0x02,0x00,0x00,
    +0xae,0x02,0x00,0x00,0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x6a,0x02,0x00,0x00,0x6b,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x6e,0x02,0x00,0x00,0x69,0x02,0x00,0x00,
    +0x6a,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x69,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x71,0x02,0x00,0x00,
    +0x56,0x02,0x00,0x00,0xae,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0x74,0x02,0x00,0x00,0x71,0x02,0x00,0x00,
    +0x37,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0x76,0x02,0x00,0x00,
    +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x74,0x02,0x00,0x00,
    +0x75,0x02,0x00,0x00,0x76,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x75,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x79,0x02,0x00,0x00,0x5e,0x02,0x00,0x00,0xac,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x7a,0x02,0x00,0x00,
    +0x14,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x7b,0x02,0x00,0x00,0x7a,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x7c,0x02,0x00,0x00,
    +0x79,0x02,0x00,0x00,0x7b,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x76,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x76,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0xc1,0x00,0x00,0x00,0x7d,0x02,0x00,0x00,
    +0x74,0x02,0x00,0x00,0x69,0x02,0x00,0x00,0x7c,0x02,0x00,0x00,
    +0x75,0x02,0x00,0x00,0xf7,0x00,0x03,0x00,0x7f,0x02,0x00,0x00,
    +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x7d,0x02,0x00,0x00,
    +0x7e,0x02,0x00,0x00,0x7f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x7e,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x87,0x02,0x00,0x00,0x5e,0x02,0x00,0x00,0xac,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x89,0x02,0x00,0x00,
    +0x14,0x00,0x00,0x00,0x88,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x8a,0x02,0x00,0x00,0x89,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8b,0x02,0x00,0x00,
    +0x87,0x02,0x00,0x00,0x8a,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x8c,0x02,0x00,0x00,0x3e,0x02,0x00,0x00,
    +0x8b,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x8e,0x02,0x00,0x00,0x8c,0x02,0x00,0x00,0x56,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x90,0x02,0x00,0x00,
    +0x8e,0x02,0x00,0x00,0xae,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x92,0x02,0x00,0x00,0xa9,0x02,0x00,0x00,
     0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x5e,0x02,0x00,0x00,0x5b,0x02,0x00,0x00,0x5d,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x60,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x60,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xac,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0x49,0x02,0x00,0x00,
    -0xa2,0x02,0x00,0x00,0x63,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0x66,0x02,0x00,0x00,0xac,0x02,0x00,0x00,
    -0xbb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x62,0x02,0x00,0x00,
    -0x63,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x66,0x02,0x00,0x00,0x61,0x02,0x00,0x00,0x62,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x61,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x68,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x68,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xae,0x02,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0x61,0x02,0x00,0x00,0xa0,0x02,0x00,0x00,
    -0x6b,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0x6e,0x02,0x00,0x00,0xae,0x02,0x00,0x00,0x63,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x6a,0x02,0x00,0x00,0x6b,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x6e,0x02,0x00,0x00,
    -0x69,0x02,0x00,0x00,0x6a,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x69,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x71,0x02,0x00,0x00,0x56,0x02,0x00,0x00,0xae,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x74,0x02,0x00,0x00,
    -0x71,0x02,0x00,0x00,0x37,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,
    -0x76,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x74,0x02,0x00,0x00,0x75,0x02,0x00,0x00,0x76,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x75,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x79,0x02,0x00,0x00,0x5e,0x02,0x00,0x00,
    -0xac,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    -0x7a,0x02,0x00,0x00,0x14,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x7b,0x02,0x00,0x00,
    -0x7a,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0x7c,0x02,0x00,0x00,0x79,0x02,0x00,0x00,0x7b,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x76,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x76,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0xc1,0x00,0x00,0x00,
    -0x7d,0x02,0x00,0x00,0x74,0x02,0x00,0x00,0x69,0x02,0x00,0x00,
    -0x7c,0x02,0x00,0x00,0x75,0x02,0x00,0x00,0xf7,0x00,0x03,0x00,
    -0x7f,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x7d,0x02,0x00,0x00,0x7e,0x02,0x00,0x00,0x7f,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x7e,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x87,0x02,0x00,0x00,0x5e,0x02,0x00,0x00,
    -0xac,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    -0x89,0x02,0x00,0x00,0x14,0x00,0x00,0x00,0x88,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x8a,0x02,0x00,0x00,
    -0x89,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x8b,0x02,0x00,0x00,0x87,0x02,0x00,0x00,0x8a,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8c,0x02,0x00,0x00,
    -0x3e,0x02,0x00,0x00,0x8b,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x8e,0x02,0x00,0x00,0x8c,0x02,0x00,0x00,
    -0x56,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x90,0x02,0x00,0x00,0x8e,0x02,0x00,0x00,0xae,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x92,0x02,0x00,0x00,
    -0xa9,0x02,0x00,0x00,0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x94,0x02,0x00,0x00,0x92,0x02,0x00,0x00,
    -0xac,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x96,0x02,0x00,0x00,0x94,0x02,0x00,0x00,0x95,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x98,0x02,0x00,0x00,
    -0xaa,0x02,0x00,0x00,0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x99,0x02,0x00,0x00,0x96,0x02,0x00,0x00,
    -0x98,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x9b,0x02,0x00,0x00,0x99,0x02,0x00,0x00,0xae,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,0x9c,0x02,0x00,0x00,
    -0xc9,0x00,0x00,0x00,0x9b,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xc3,0x00,0x00,0x00,0x9d,0x02,0x00,0x00,0x9c,0x02,0x00,0x00,
    -0x41,0x00,0x06,0x00,0x11,0x01,0x00,0x00,0x9e,0x02,0x00,0x00,
    -0x83,0x02,0x00,0x00,0x35,0x00,0x00,0x00,0x90,0x02,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x9e,0x02,0x00,0x00,0x9d,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x7f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x7f,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x6b,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x6b,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xa0,0x02,0x00,0x00,0xae,0x02,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x68,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x6a,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x63,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x63,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa2,0x02,0x00,0x00,
    -0xac,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x60,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x62,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x4b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x4b,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xa4,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x48,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x4a,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x43,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x43,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xa6,0x02,0x00,0x00,0xa9,0x02,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x40,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x42,0x02,0x00,0x00,0xfd,0x00,0x01,0x00,
    -0x38,0x00,0x01,0x00,
    +0x94,0x02,0x00,0x00,0x92,0x02,0x00,0x00,0xac,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x96,0x02,0x00,0x00,
    +0x94,0x02,0x00,0x00,0x95,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x98,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,
    +0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x99,0x02,0x00,0x00,0x96,0x02,0x00,0x00,0x98,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9b,0x02,0x00,0x00,
    +0x99,0x02,0x00,0x00,0xae,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xcc,0x00,0x00,0x00,0x9c,0x02,0x00,0x00,0xc9,0x00,0x00,0x00,
    +0x9b,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    +0x9d,0x02,0x00,0x00,0x9c,0x02,0x00,0x00,0x41,0x00,0x06,0x00,
    +0x11,0x01,0x00,0x00,0x9e,0x02,0x00,0x00,0x83,0x02,0x00,0x00,
    +0x35,0x00,0x00,0x00,0x90,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x9e,0x02,0x00,0x00,0x9d,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x7f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x7f,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x6b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x6b,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xa0,0x02,0x00,0x00,0xae,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x68,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x6a,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x63,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x63,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xa2,0x02,0x00,0x00,0xac,0x02,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x60,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x62,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x4b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x4b,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa4,0x02,0x00,0x00,
    +0xaa,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x48,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x4a,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x43,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x43,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xa6,0x02,0x00,0x00,0xa9,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x40,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x42,0x02,0x00,0x00,0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
    +
     };
    -const uint64_t matmul_f32_len = 10324;
    +const uint64_t matmul_f32_f16_len = 10332;
     
    -unsigned char matmul_f32_aligned_data[] = {
    +unsigned char matmul_f32_f16_aligned_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
    -0x17,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00,
    +0x12,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00,
     0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x09,0x00,0x00,0x00,
    -0x0b,0x00,0x06,0x00,0x01,0x00,0x00,0x00,0x47,0x4c,0x53,0x4c,
    -0x2e,0x73,0x74,0x64,0x2e,0x34,0x35,0x30,0x00,0x00,0x00,0x00,
    -0x0e,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x0f,0x00,0x0f,0x00,0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x6d,0x61,0x69,0x6e,0x00,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    -0x14,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,
    -0xfe,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0x6b,0x01,0x00,0x00,
    -0x71,0x01,0x00,0x00,0x78,0x02,0x00,0x00,0xc1,0x02,0x00,0x00,
    -0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x0b,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    +0x11,0x00,0x02,0x00,0x51,0x11,0x00,0x00,0x0b,0x00,0x06,0x00,
    +0x01,0x00,0x00,0x00,0x47,0x4c,0x53,0x4c,0x2e,0x73,0x74,0x64,
    +0x2e,0x34,0x35,0x30,0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00,
    +0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0f,0x00,0x0f,0x00,
    +0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e,
    +0x00,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    +0x3e,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,
    +0x05,0x01,0x00,0x00,0x6b,0x01,0x00,0x00,0x73,0x01,0x00,0x00,
    +0x73,0x02,0x00,0x00,0xbc,0x02,0x00,0x00,0x10,0x00,0x06,0x00,
    +0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x0b,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x12,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x12,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,
    +0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x12,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
     0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x12,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,
    -0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x12,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x12,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,
    -0x09,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x12,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x2c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x30,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,0x0d,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    -0x12,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x38,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x3e,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    -0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x4d,0x00,0x00,0x00,
    -0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x50,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x54,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x04,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x61,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x63,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x6d,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x03,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xa7,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0xb9,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0xbc,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x08,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x02,0x01,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x48,0x00,0x04,0x00,
    -0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
    -0x48,0x00,0x04,0x00,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x03,0x01,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x07,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    -0x03,0x01,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x05,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x05,0x01,0x00,0x00,0x21,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x43,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x44,0x01,0x00,0x00,0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x6e,0x01,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x6f,0x01,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x12,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x28,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,
    +0x0b,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x2c,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x12,0x00,0x00,0x00,0x0d,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x34,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x12,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x38,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x3e,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x4d,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x50,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x54,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x61,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x63,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x6d,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0xa7,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xb9,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0xbc,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x02,0x01,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x03,0x01,0x00,0x00,
     0x00,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x48,0x00,0x04,0x00,
    -0x6f,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x6f,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
     0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x6f,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    -0x10,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x6f,0x01,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x71,0x01,0x00,0x00,
    +0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    +0x10,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x03,0x01,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x05,0x01,0x00,0x00,
     0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x71,0x01,0x00,0x00,0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x78,0x02,0x00,0x00,0x0b,0x00,0x00,0x00,
    -0x18,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xbe,0x02,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,
    -0xbf,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0xbf,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    -0xbf,0x02,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0xc1,0x02,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0xc1,0x02,0x00,0x00,0x21,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00,
    -0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    -0x15,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x17,0x00,0x04,0x00,0x09,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x0a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0x0a,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x0d,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x1e,0x00,0x10,0x00,0x12,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x05,0x01,0x00,0x00,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x43,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x44,0x01,0x00,0x00,
    +0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x70,0x01,0x00,0x00,0x06,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
    +0x48,0x00,0x04,0x00,0x71,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x05,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x71,0x01,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x71,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x71,0x01,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    +0x47,0x00,0x03,0x00,0x71,0x01,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x73,0x01,0x00,0x00,0x22,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x73,0x01,0x00,0x00,
    +0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x73,0x02,0x00,0x00,0x0b,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0xb9,0x02,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0xba,0x02,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0xba,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0xba,0x02,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xbc,0x02,0x00,0x00,
    +0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0xbc,0x02,0x00,0x00,0x21,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00,
    +0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x17,0x00,0x04,0x00,0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x0a,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0x0a,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x0d,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x1e,0x00,0x10,0x00,
    +0x12,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
     0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
     0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
     0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
     0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x13,0x00,0x00,0x00,
    -0x09,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0x13,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    -0x15,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    -0x16,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x17,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x0d,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    -0x28,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x15,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x35,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x38,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0x0a,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0x0a,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x50,0x00,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x54,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x38,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x38,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x62,0x00,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x61,0x00,0x00,0x00,
    -0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
    -0x04,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0x64,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x62,0x00,0x00,0x00,
    -0x63,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0x68,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x62,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x13,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x12,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x13,0x00,0x00,0x00,
    +0x14,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x15,0x00,0x04,0x00,
    +0x15,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x16,0x00,0x00,0x00,
    +0x0b,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x17,0x00,0x00,0x00,
    +0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x15,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x0d,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x28,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    +0x2e,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x15,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x38,0x00,0x00,0x00,
    +0x40,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0x0a,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x0a,0x00,0x00,0x00,
    +0x4d,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x54,0x00,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x55,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x38,0x00,0x00,0x00,
    +0x54,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x59,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x38,0x00,0x00,0x00,
    +0x54,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x61,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x62,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x54,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x64,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x62,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x68,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x62,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
    +0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    +0x10,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x6e,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x6d,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x74,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x6d,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x6d,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x6d,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x15,0x00,0x00,0x00,0x82,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x87,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    +0x92,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x15,0x00,0x00,0x00,0x98,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,
    +0x07,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0xa7,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x15,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,
    +0x84,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
    +0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0xba,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x54,0x00,0x00,0x00,
    +0xb9,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0xbb,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x50,0x00,0x00,0x00,
     0x63,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x6d,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x74,0x00,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x79,0x00,0x00,0x00,
    +0xbc,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xbd,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    +0xbb,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xbe,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    +0xbd,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    +0xba,0x00,0x00,0x00,0xbe,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    +0xb8,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xc1,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    +0xc0,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,0x14,0x00,0x02,0x00,
    +0xc2,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0xc4,0x00,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0xc5,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x61,0x00,0x00,0x00,
    +0x63,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0xc6,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,
    +0xbf,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0xc7,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,
    +0xbc,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0xc8,0x00,0x00,0x00,
    +0xc4,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0xc9,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xcd,0x00,0x00,0x00,
    +0x07,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x15,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,
    +0x80,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    +0x16,0x00,0x03,0x00,0xf9,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,
    +0x80,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
    +0x84,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,
    +0x1c,0x00,0x04,0x00,0xfc,0x00,0x00,0x00,0xf9,0x00,0x00,0x00,
    +0xfb,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xfd,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0xfd,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x17,0x00,0x04,0x00,0x00,0x01,0x00,0x00,0xc4,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x18,0x00,0x04,0x00,0x01,0x01,0x00,0x00,
    +0x00,0x01,0x00,0x00,0x02,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    +0x02,0x01,0x00,0x00,0x01,0x01,0x00,0x00,0x1e,0x00,0x03,0x00,
    +0x03,0x01,0x00,0x00,0x02,0x01,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x04,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x03,0x01,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x04,0x01,0x00,0x00,0x05,0x01,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x07,0x01,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x0b,0x01,0x00,0x00,0x04,0x00,0x00,0x00,0xf9,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,
    +0x03,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x24,0x01,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x2c,0x01,0x00,0x00,0x05,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x34,0x01,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x3c,0x01,0x00,0x00,0x07,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x43,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x33,0x00,0x06,0x00,0x09,0x00,0x00,0x00,0x44,0x01,0x00,0x00,
    +0x43,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x45,0x01,0x00,0x00,
    +0x51,0x00,0x00,0x00,0x44,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x46,0x01,0x00,0x00,
    +0x84,0x00,0x00,0x00,0x45,0x01,0x00,0x00,0x6e,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x47,0x01,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x46,0x01,0x00,0x00,0x6d,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x62,0x01,0x00,0x00,
    +0x80,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x67,0x01,0x00,0x00,
    +0x80,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x68,0x01,0x00,0x00,
    +0x84,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,0x67,0x01,0x00,0x00,
    +0x1c,0x00,0x04,0x00,0x69,0x01,0x00,0x00,0xf9,0x00,0x00,0x00,
    +0x68,0x01,0x00,0x00,0x20,0x00,0x04,0x00,0x6a,0x01,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x69,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0x6a,0x01,0x00,0x00,0x6b,0x01,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x17,0x00,0x04,0x00,0x6e,0x01,0x00,0x00,0xf9,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x18,0x00,0x04,0x00,0x6f,0x01,0x00,0x00,
    +0x6e,0x01,0x00,0x00,0x02,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    +0x70,0x01,0x00,0x00,0x6f,0x01,0x00,0x00,0x1e,0x00,0x03,0x00,
    +0x71,0x01,0x00,0x00,0x70,0x01,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x72,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x71,0x01,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x72,0x01,0x00,0x00,0x73,0x01,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x75,0x01,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0xf9,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xa3,0x01,0x00,0x00,0x51,0x00,0x00,0x00,
    +0x44,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xa4,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    +0xa3,0x01,0x00,0x00,0x6e,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xa5,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
    +0xa4,0x01,0x00,0x00,0x6d,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0xa8,0x01,0x00,0x00,0x08,0x01,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xa9,0x01,0x00,0x00,
     0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xac,0x01,0x00,0x00,
     0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x82,0x00,0x00,0x00,
    -0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    -0x87,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x15,0x00,0x00,0x00,0x92,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x98,0x00,0x00,0x00,
    -0x03,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    -0xa2,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,0x40,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,
    -0x04,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0xb8,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x61,0x00,0x00,0x00,
    -0x63,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0xb9,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0xba,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    -0x54,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    -0x50,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xbd,0x00,0x00,0x00,
    -0x84,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xbe,0x00,0x00,0x00,
    -0x84,0x00,0x00,0x00,0xbd,0x00,0x00,0x00,0x61,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,
    -0x86,0x00,0x00,0x00,0xba,0x00,0x00,0x00,0xbe,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,
    -0x84,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xc1,0x00,0x00,0x00,
    -0x84,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,
    -0x14,0x00,0x02,0x00,0xc2,0x00,0x00,0x00,0x16,0x00,0x03,0x00,
    -0xc4,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    -0x61,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    -0xc5,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    -0xc6,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,
    -0xc8,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,
    -0x20,0x00,0x04,0x00,0xc9,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    -0xc8,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,
    -0xcc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0xcd,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0xf4,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    -0x3a,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0xf9,0x00,0x00,0x00,
    -0x10,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0xfa,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    -0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0xfb,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x38,0x00,0x00,0x00,
    -0xfa,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0xfc,0x00,0x00,0x00,
    -0xf9,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0xfd,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0xfd,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,
    -0x04,0x00,0x00,0x00,0x17,0x00,0x04,0x00,0x00,0x01,0x00,0x00,
    -0xc4,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x18,0x00,0x04,0x00,
    -0x01,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x02,0x00,0x00,0x00,
    -0x1d,0x00,0x03,0x00,0x02,0x01,0x00,0x00,0x01,0x01,0x00,0x00,
    -0x1e,0x00,0x03,0x00,0x03,0x01,0x00,0x00,0x02,0x01,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x04,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x03,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,0x04,0x01,0x00,0x00,
    -0x05,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x07,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x0b,0x01,0x00,0x00,0x04,0x00,0x00,0x00,
    -0xf9,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x1c,0x01,0x00,0x00,0x03,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x24,0x01,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x2c,0x01,0x00,0x00,
    -0x05,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x34,0x01,0x00,0x00,0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x3c,0x01,0x00,0x00,0x07,0x00,0x00,0x00,
    -0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x43,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x33,0x00,0x06,0x00,0x09,0x00,0x00,0x00,
    -0x44,0x01,0x00,0x00,0x43,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,
    -0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0x45,0x01,0x00,0x00,0x51,0x00,0x00,0x00,0x44,0x01,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0x46,0x01,0x00,0x00,0x84,0x00,0x00,0x00,0x45,0x01,0x00,0x00,
    -0x6e,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0x47,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0x46,0x01,0x00,0x00,
    -0x6d,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0x62,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    -0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0x67,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    -0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0x68,0x01,0x00,0x00,0x84,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,
    -0x67,0x01,0x00,0x00,0x1c,0x00,0x04,0x00,0x69,0x01,0x00,0x00,
    -0xf9,0x00,0x00,0x00,0x68,0x01,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x6a,0x01,0x00,0x00,0x04,0x00,0x00,0x00,0x69,0x01,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0x6a,0x01,0x00,0x00,0x6b,0x01,0x00,0x00,
    -0x04,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x6e,0x01,0x00,0x00,
    -0x01,0x01,0x00,0x00,0x1e,0x00,0x03,0x00,0x6f,0x01,0x00,0x00,
    -0x6e,0x01,0x00,0x00,0x20,0x00,0x04,0x00,0x70,0x01,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x6f,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0x70,0x01,0x00,0x00,0x71,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xa8,0x01,0x00,0x00,
    -0x51,0x00,0x00,0x00,0x44,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xa9,0x01,0x00,0x00,
    -0x84,0x00,0x00,0x00,0xa8,0x01,0x00,0x00,0x6e,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xaa,0x01,0x00,0x00,
    -0x86,0x00,0x00,0x00,0xa9,0x01,0x00,0x00,0x6d,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xad,0x01,0x00,0x00,
    -0x08,0x01,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0xae,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    -0x6e,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0xb1,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    -0x6e,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0xcc,0x01,0x00,0x00,0x84,0x00,0x00,0x00,0x61,0x00,0x00,0x00,
    -0x63,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0xcd,0x01,0x00,0x00,
    -0xf9,0x00,0x00,0x00,0xcc,0x01,0x00,0x00,0x20,0x00,0x04,0x00,
    -0xce,0x01,0x00,0x00,0x07,0x00,0x00,0x00,0xcd,0x01,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xde,0x01,0x00,0x00,
    -0x80,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    -0x20,0x00,0x04,0x00,0xe4,0x01,0x00,0x00,0x07,0x00,0x00,0x00,
    -0xf9,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0xfa,0x01,0x00,0x00,0x84,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,
    -0xbc,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0xfb,0x01,0x00,0x00,
    -0xf9,0x00,0x00,0x00,0xfa,0x01,0x00,0x00,0x20,0x00,0x04,0x00,
    -0xfc,0x01,0x00,0x00,0x07,0x00,0x00,0x00,0xfb,0x01,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x05,0x02,0x00,0x00,
    -0x86,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x0d,0x02,0x00,0x00,
    -0x80,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x3c,0x02,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xc7,0x01,0x00,0x00,
     0x84,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x70,0x02,0x00,0x00,
    -0x08,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x0a,0x00,0x00,0x00,
    -0x78,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    -0xbe,0x02,0x00,0x00,0xc4,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
    -0xbf,0x02,0x00,0x00,0xbe,0x02,0x00,0x00,0x20,0x00,0x04,0x00,
    -0xc0,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,0xbf,0x02,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0xc0,0x02,0x00,0x00,0xc1,0x02,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    -0xc6,0x02,0x00,0x00,0x05,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0xd3,0x02,0x00,0x00,0x84,0x00,0x00,0x00,
    -0x61,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x36,0x00,0x05,0x00,
    -0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x03,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0xc9,0x00,0x00,0x00,0xca,0x00,0x00,0x00,
    -0x07,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xce,0x01,0x00,0x00,
    -0xcf,0x01,0x00,0x00,0x07,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0xfc,0x01,0x00,0x00,0xfd,0x01,0x00,0x00,0x07,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,
    -0x0b,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    -0x14,0x00,0x00,0x00,0x16,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,
    -0x0f,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x89,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,
    -0x19,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x24,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x25,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x24,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x29,0x00,0x00,0x00,
    -0x14,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x2a,0x00,0x00,0x00,0x29,0x00,0x00,0x00,
    -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2b,0x00,0x00,0x00,
    -0x1f,0x00,0x00,0x00,0x2a,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x17,0x00,0x00,0x00,0x2f,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    -0x2e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x30,0x00,0x00,0x00,0x2f,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x31,0x00,0x00,0x00,0x25,0x00,0x00,0x00,
    -0x30,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x33,0x00,0x00,0x00,0x31,0x00,0x00,0x00,0x2b,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x36,0x00,0x00,0x00,
    -0x14,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x37,0x00,0x00,0x00,0x36,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x39,0x00,0x00,0x00,
    -0x37,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x82,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,0x39,0x00,0x00,0x00,
    -0x3a,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x3c,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,0x38,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,0x40,0x00,0x00,0x00,
    -0x3e,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x40,0x00,0x00,0x00,
    -0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x43,0x00,0x00,0x00,
    -0x41,0x00,0x00,0x00,0x3c,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x41,0x00,0x00,0x00,
    -0x3c,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,
    -0x4a,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,
    -0x4a,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,
    -0x4e,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,
    -0x4e,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x51,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x50,0x00,0x00,0x00,
    -0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x56,0x00,0x00,0x00,
    -0x51,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x5a,0x00,0x00,0x00,0x51,0x00,0x00,0x00,
    -0x59,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x5e,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x50,0x00,0x00,0x00,
    -0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x65,0x00,0x00,0x00,
    -0x5e,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,
    -0x68,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x70,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,
    -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x75,0x00,0x00,0x00,
    -0x4f,0x00,0x00,0x00,0x74,0x00,0x00,0x00,0x89,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x7a,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,
    -0x79,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x7f,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x83,0x00,0x00,0x00,
    -0x14,0x00,0x00,0x00,0x82,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x83,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x85,0x00,0x00,0x00,
    -0x48,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x17,0x00,0x00,0x00,0x88,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    -0x87,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x89,0x00,0x00,0x00,0x88,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x8b,0x00,0x00,0x00,0x48,0x00,0x00,0x00,
    -0x3a,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x8e,0x00,0x00,0x00,0x8b,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    -0x0c,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x8f,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x26,0x00,0x00,0x00,0x89,0x00,0x00,0x00,
    -0x8e,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    -0x93,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x92,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x94,0x00,0x00,0x00,
    -0x93,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x95,0x00,0x00,0x00,0x33,0x00,0x00,0x00,0x94,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x97,0x00,0x00,0x00,
    -0x43,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x17,0x00,0x00,0x00,0x99,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    -0x98,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0x99,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,0x97,0x00,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x9c,0x00,0x00,0x00,0x95,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9e,0x00,0x00,0x00,
    -0x9c,0x00,0x00,0x00,0x85,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x9f,0x00,0x00,0x00,0x9e,0x00,0x00,0x00,
    -0x6e,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    -0xa3,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,
    -0xa3,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xa5,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,
    -0x4b,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x17,0x00,0x00,0x00,0xaa,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    -0xa9,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0xab,0x00,0x00,0x00,0xaa,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xac,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,
    -0xab,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xad,0x00,0x00,0x00,0xa5,0x00,0x00,0x00,0xac,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,
    -0xad,0x00,0x00,0x00,0x85,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xb0,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,
    -0x6e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xb2,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xb2,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xe5,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0x05,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,0xc3,0x00,0x00,0x00,
    -0xe5,0x02,0x00,0x00,0xc1,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xb4,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,
    -0xb4,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xb3,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xcd,0x00,0x00,0x00,0xce,0x00,0x00,0x00,
    -0xca,0x00,0x00,0x00,0xe5,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0xce,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,0xe5,0x02,0x00,0x00,
    -0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xb2,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xb4,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xd4,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xd4,0x00,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xfe,0x02,0x00,0x00,
    -0xb0,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,0xb3,0x01,0x00,0x00,
    +0x1c,0x00,0x04,0x00,0xc8,0x01,0x00,0x00,0xf9,0x00,0x00,0x00,
    +0xc7,0x01,0x00,0x00,0x20,0x00,0x04,0x00,0xc9,0x01,0x00,0x00,
    +0x07,0x00,0x00,0x00,0xc8,0x01,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xd9,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
    +0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0xdf,0x01,0x00,0x00,0x07,0x00,0x00,0x00,0xf9,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xf5,0x01,0x00,0x00,
    +0x84,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,
    +0x1c,0x00,0x04,0x00,0xf6,0x01,0x00,0x00,0xf9,0x00,0x00,0x00,
    +0xf5,0x01,0x00,0x00,0x20,0x00,0x04,0x00,0xf7,0x01,0x00,0x00,
    +0x07,0x00,0x00,0x00,0xf6,0x01,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x86,0x00,0x00,0x00,
    +0xb9,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x08,0x02,0x00,0x00,0x80,0x00,0x00,0x00,
    +0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x37,0x02,0x00,0x00,0x84,0x00,0x00,0x00,
    +0x61,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x15,0x00,0x00,0x00,0x6b,0x02,0x00,0x00,0x08,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x0a,0x00,0x00,0x00,0x73,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0xb9,0x02,0x00,0x00,
    +0xc4,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xba,0x02,0x00,0x00,
    +0xb9,0x02,0x00,0x00,0x20,0x00,0x04,0x00,0xbb,0x02,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0xba,0x02,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0xbb,0x02,0x00,0x00,0xbc,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0xc1,0x02,0x00,0x00,
    +0x05,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0xce,0x02,0x00,0x00,0x84,0x00,0x00,0x00,0x61,0x00,0x00,0x00,
    +0x63,0x00,0x00,0x00,0x36,0x00,0x05,0x00,0x02,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0xc9,0x00,0x00,0x00,0xca,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0xc9,0x01,0x00,0x00,0xca,0x01,0x00,0x00,
    +0x07,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xf7,0x01,0x00,0x00,
    +0xf8,0x01,0x00,0x00,0x07,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x0d,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x0f,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x17,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    +0x16,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x19,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,
    +0x19,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x1f,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x14,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x25,0x00,0x00,0x00,
    +0x1a,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x17,0x00,0x00,0x00,0x29,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    +0x28,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x2a,0x00,0x00,0x00,0x29,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x2b,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,
    +0x2a,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    +0x2f,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x30,0x00,0x00,0x00,
    +0x2f,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x31,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x30,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x33,0x00,0x00,0x00,
    +0x31,0x00,0x00,0x00,0x2b,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x17,0x00,0x00,0x00,0x36,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    +0x35,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x37,0x00,0x00,0x00,0x36,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x39,0x00,0x00,0x00,0x37,0x00,0x00,0x00,
    +0x38,0x00,0x00,0x00,0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x3b,0x00,0x00,0x00,0x39,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3c,0x00,0x00,0x00,
    +0x3b,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x0d,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x41,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x89,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x43,0x00,0x00,0x00,0x41,0x00,0x00,0x00,
    +0x3c,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x48,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x3c,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,0x4a,0x00,0x00,0x00,
    +0x3e,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0x4a,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    +0x4d,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x51,0x00,0x00,0x00,
    +0x4f,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x89,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x56,0x00,0x00,0x00,0x51,0x00,0x00,0x00,
    +0x55,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x5a,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0x59,0x00,0x00,0x00,
    +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,
    +0x4f,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x89,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x65,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,
    +0x64,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x69,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,0x68,0x00,0x00,0x00,
    +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x70,0x00,0x00,0x00,
    +0x4f,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x75,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,
    +0x74,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x7a,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x79,0x00,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,
    +0x4f,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x17,0x00,0x00,0x00,0x83,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    +0x82,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x84,0x00,0x00,0x00,0x83,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x85,0x00,0x00,0x00,0x48,0x00,0x00,0x00,
    +0x84,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    +0x88,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x87,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x89,0x00,0x00,0x00,
    +0x88,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x8b,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,
    +0x8b,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x0c,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x8f,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x26,0x00,0x00,0x00,0x89,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x93,0x00,0x00,0x00,
    +0x14,0x00,0x00,0x00,0x92,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x94,0x00,0x00,0x00,0x93,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x95,0x00,0x00,0x00,
    +0x33,0x00,0x00,0x00,0x94,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x43,0x00,0x00,0x00,
    +0x38,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    +0x99,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x98,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0x99,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x9b,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9c,0x00,0x00,0x00,
    +0x95,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x9e,0x00,0x00,0x00,0x9c,0x00,0x00,0x00,
    +0x85,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x9f,0x00,0x00,0x00,0x9e,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,
    +0x14,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa5,0x00,0x00,0x00,
    +0x0f,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,
    +0xa7,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    +0xaa,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xab,0x00,0x00,0x00,
    +0xaa,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xac,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,0xab,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xad,0x00,0x00,0x00,
    +0xa5,0x00,0x00,0x00,0xac,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0xad,0x00,0x00,0x00,
    +0x85,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xb0,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xb2,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xb2,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xe0,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
    +0xd1,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc2,0x00,0x00,0x00,0xc3,0x00,0x00,0x00,0xe0,0x02,0x00,0x00,
    +0xc1,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xb4,0x00,0x00,0x00,
    +0xb3,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xc3,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xb3,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xcd,0x00,0x00,0x00,0xce,0x00,0x00,0x00,0xca,0x00,0x00,0x00,
    +0xe0,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0xce,0x00,0x00,0x00,
    +0xcc,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xd1,0x00,0x00,0x00,0xe0,0x02,0x00,0x00,0xd0,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xb2,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xb4,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xd4,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xd4,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xf9,0x02,0x00,0x00,0xb0,0x00,0x00,0x00,
    +0xb4,0x00,0x00,0x00,0xae,0x01,0x00,0x00,0xd7,0x00,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xf5,0x02,0x00,0x00,
    +0x9f,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,0xab,0x01,0x00,0x00,
     0xd7,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xfa,0x02,0x00,0x00,0x9f,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,
    -0xb0,0x01,0x00,0x00,0xd7,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xe6,0x02,0x00,0x00,0x85,0x00,0x00,0x00,
    -0xb4,0x00,0x00,0x00,0x61,0x02,0x00,0x00,0xd7,0x00,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,
    -0xe6,0x02,0x00,0x00,0x8f,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xd6,0x00,0x00,0x00,0xd7,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xdb,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,
    -0xd6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xd5,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xdd,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xdd,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xf6,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,
    -0x49,0x01,0x00,0x00,0xde,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc2,0x00,0x00,0x00,0xe3,0x00,0x00,0x00,0xf6,0x02,0x00,0x00,
    -0x38,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xdf,0x00,0x00,0x00,
    -0xde,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xe3,0x00,0x00,0x00,0xde,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xde,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0x75,0x00,0x00,0x00,
    -0xf6,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xeb,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xec,0x00,0x00,0x00,
    -0xeb,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xed,0x00,0x00,0x00,0xfa,0x02,0x00,0x00,
    -0xec,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xef,0x00,0x00,0x00,0xed,0x00,0x00,0x00,0x70,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,
    -0xe8,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,0x70,0x00,0x00,0x00,
    +0xe1,0x02,0x00,0x00,0x85,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,
    +0x5c,0x02,0x00,0x00,0xd7,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc2,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,0xe1,0x02,0x00,0x00,
    +0x8f,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xd6,0x00,0x00,0x00,
    +0xd7,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xdb,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xd5,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xdd,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xdd,0x00,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xf1,0x02,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0x49,0x01,0x00,0x00,
    +0xde,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,
    +0xe3,0x00,0x00,0x00,0xf1,0x02,0x00,0x00,0x38,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xdf,0x00,0x00,0x00,0xde,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xe3,0x00,0x00,0x00,
    +0xde,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xde,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xe8,0x00,0x00,0x00,0x75,0x00,0x00,0x00,0xf1,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,
    +0xe8,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xec,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,
     0x6e,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xf8,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,
    -0x41,0x00,0x08,0x00,0x07,0x01,0x00,0x00,0x08,0x01,0x00,0x00,
    -0x05,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0xef,0x00,0x00,0x00,
    -0x35,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xc4,0x00,0x00,0x00,0x09,0x01,0x00,0x00,0x08,0x01,0x00,0x00,
    -0x73,0x00,0x04,0x00,0xf9,0x00,0x00,0x00,0x0a,0x01,0x00,0x00,
    -0x09,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x0b,0x01,0x00,0x00,
    -0x0c,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x0c,0x01,0x00,0x00,0x0a,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0e,0x01,0x00,0x00,
    -0xf8,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x07,0x01,0x00,0x00,0x10,0x01,0x00,0x00,0x05,0x01,0x00,0x00,
    +0xed,0x00,0x00,0x00,0xf5,0x02,0x00,0x00,0xec,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xef,0x00,0x00,0x00,
    +0xed,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,
    +0xf4,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xf7,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,
    +0xf5,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x07,0x01,0x00,0x00,0x08,0x01,0x00,0x00,0x05,0x01,0x00,0x00,
     0x35,0x00,0x00,0x00,0xef,0x00,0x00,0x00,0x35,0x00,0x00,0x00,
    -0x3a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,
    -0x11,0x01,0x00,0x00,0x10,0x01,0x00,0x00,0x73,0x00,0x04,0x00,
    -0xf9,0x00,0x00,0x00,0x12,0x01,0x00,0x00,0x11,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x0b,0x01,0x00,0x00,0x13,0x01,0x00,0x00,
    -0xfe,0x00,0x00,0x00,0x0e,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x13,0x01,0x00,0x00,0x12,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x15,0x01,0x00,0x00,0xf8,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0x07,0x01,0x00,0x00,
    -0x17,0x01,0x00,0x00,0x05,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    -0xef,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,0x18,0x01,0x00,0x00,
    -0x17,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0xf9,0x00,0x00,0x00,
    -0x19,0x01,0x00,0x00,0x18,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x0b,0x01,0x00,0x00,0x1a,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,
    -0x15,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x1a,0x01,0x00,0x00,
    -0x19,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x1d,0x01,0x00,0x00,0xf8,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,
    -0x41,0x00,0x08,0x00,0x07,0x01,0x00,0x00,0x1f,0x01,0x00,0x00,
    -0x05,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0xef,0x00,0x00,0x00,
    -0x35,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xc4,0x00,0x00,0x00,0x20,0x01,0x00,0x00,0x1f,0x01,0x00,0x00,
    -0x73,0x00,0x04,0x00,0xf9,0x00,0x00,0x00,0x21,0x01,0x00,0x00,
    -0x20,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x0b,0x01,0x00,0x00,
    -0x22,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,0x1d,0x01,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x22,0x01,0x00,0x00,0x21,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x25,0x01,0x00,0x00,
    -0xf8,0x00,0x00,0x00,0x24,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x07,0x01,0x00,0x00,0x27,0x01,0x00,0x00,0x05,0x01,0x00,0x00,
    -0x35,0x00,0x00,0x00,0xef,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,
     0x3f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,
    -0x28,0x01,0x00,0x00,0x27,0x01,0x00,0x00,0x73,0x00,0x04,0x00,
    -0xf9,0x00,0x00,0x00,0x29,0x01,0x00,0x00,0x28,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x0b,0x01,0x00,0x00,0x2a,0x01,0x00,0x00,
    -0xfe,0x00,0x00,0x00,0x25,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x2a,0x01,0x00,0x00,0x29,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x2d,0x01,0x00,0x00,0xf8,0x00,0x00,0x00,
    -0x2c,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x07,0x01,0x00,0x00,
    -0x2f,0x01,0x00,0x00,0x05,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    -0xef,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,0x30,0x01,0x00,0x00,
    -0x2f,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0xf9,0x00,0x00,0x00,
    -0x31,0x01,0x00,0x00,0x30,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x0b,0x01,0x00,0x00,0x32,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,
    -0x2d,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x32,0x01,0x00,0x00,
    -0x31,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x35,0x01,0x00,0x00,0xf8,0x00,0x00,0x00,0x34,0x01,0x00,0x00,
    -0x41,0x00,0x08,0x00,0x07,0x01,0x00,0x00,0x37,0x01,0x00,0x00,
    -0x05,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0xef,0x00,0x00,0x00,
    -0xd0,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xc4,0x00,0x00,0x00,0x38,0x01,0x00,0x00,0x37,0x01,0x00,0x00,
    -0x73,0x00,0x04,0x00,0xf9,0x00,0x00,0x00,0x39,0x01,0x00,0x00,
    -0x38,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x0b,0x01,0x00,0x00,
    -0x3a,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,0x35,0x01,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x3a,0x01,0x00,0x00,0x39,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3d,0x01,0x00,0x00,
    -0xf8,0x00,0x00,0x00,0x3c,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x07,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,0x05,0x01,0x00,0x00,
    -0x35,0x00,0x00,0x00,0xef,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,
    -0x1c,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,
    -0x40,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,0x73,0x00,0x04,0x00,
    -0xf9,0x00,0x00,0x00,0x41,0x01,0x00,0x00,0x40,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x0b,0x01,0x00,0x00,0x42,0x01,0x00,0x00,
    -0xfe,0x00,0x00,0x00,0x3d,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x42,0x01,0x00,0x00,0x41,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x49,0x01,0x00,0x00,0xf6,0x02,0x00,0x00,
    -0x47,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xdd,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xdf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x4b,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x4b,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xf7,0x02,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0xac,0x01,0x00,0x00,
    -0x4c,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,
    -0x51,0x01,0x00,0x00,0xf7,0x02,0x00,0x00,0xa7,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x4d,0x01,0x00,0x00,0x4c,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x51,0x01,0x00,0x00,
    -0x4c,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x4c,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x56,0x01,0x00,0x00,0x7f,0x00,0x00,0x00,0xf7,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x59,0x01,0x00,0x00,
    -0x56,0x01,0x00,0x00,0xab,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x5a,0x01,0x00,0x00,0x59,0x01,0x00,0x00,
    -0x6e,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x5b,0x01,0x00,0x00,0xfe,0x02,0x00,0x00,0x5a,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,
    -0x5b,0x01,0x00,0x00,0x7a,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x63,0x01,0x00,0x00,0x56,0x01,0x00,0x00,
    -0x62,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x65,0x01,0x00,0x00,0x7a,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x66,0x01,0x00,0x00,
    -0x63,0x01,0x00,0x00,0x65,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x07,0x01,0x00,0x00,0x73,0x01,0x00,0x00,0x71,0x01,0x00,0x00,
    -0x35,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,
    -0x74,0x01,0x00,0x00,0x73,0x01,0x00,0x00,0x73,0x00,0x04,0x00,
    -0xf9,0x00,0x00,0x00,0x75,0x01,0x00,0x00,0x74,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x0b,0x01,0x00,0x00,0x76,0x01,0x00,0x00,
    -0x6b,0x01,0x00,0x00,0x66,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x76,0x01,0x00,0x00,0x75,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x78,0x01,0x00,0x00,0x66,0x01,0x00,0x00,
    +0x09,0x01,0x00,0x00,0x08,0x01,0x00,0x00,0x73,0x00,0x04,0x00,
    +0xf9,0x00,0x00,0x00,0x0a,0x01,0x00,0x00,0x09,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x0b,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,
    +0xfe,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x0c,0x01,0x00,0x00,0x0a,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x0e,0x01,0x00,0x00,0xf8,0x00,0x00,0x00,
     0x3a,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0x07,0x01,0x00,0x00,
    -0x7a,0x01,0x00,0x00,0x71,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    -0x5d,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,0x7b,0x01,0x00,0x00,
    -0x7a,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0xf9,0x00,0x00,0x00,
    -0x7c,0x01,0x00,0x00,0x7b,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x0b,0x01,0x00,0x00,0x7d,0x01,0x00,0x00,0x6b,0x01,0x00,0x00,
    -0x78,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x7d,0x01,0x00,0x00,
    -0x7c,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x7f,0x01,0x00,0x00,0x66,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x41,0x00,0x08,0x00,0x07,0x01,0x00,0x00,0x81,0x01,0x00,0x00,
    -0x71,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,
    +0x10,0x01,0x00,0x00,0x05,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    +0xef,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,0x11,0x01,0x00,0x00,
    +0x10,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0xf9,0x00,0x00,0x00,
    +0x12,0x01,0x00,0x00,0x11,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x0b,0x01,0x00,0x00,0x13,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,
    +0x0e,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x13,0x01,0x00,0x00,
    +0x12,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x15,0x01,0x00,0x00,0xf8,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x07,0x01,0x00,0x00,0x17,0x01,0x00,0x00,
    +0x05,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0xef,0x00,0x00,0x00,
     0x35,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xc4,0x00,0x00,0x00,0x82,0x01,0x00,0x00,0x81,0x01,0x00,0x00,
    -0x73,0x00,0x04,0x00,0xf9,0x00,0x00,0x00,0x83,0x01,0x00,0x00,
    -0x82,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x0b,0x01,0x00,0x00,
    -0x84,0x01,0x00,0x00,0x6b,0x01,0x00,0x00,0x7f,0x01,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x84,0x01,0x00,0x00,0x83,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x86,0x01,0x00,0x00,
    -0x66,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x07,0x01,0x00,0x00,0x88,0x01,0x00,0x00,0x71,0x01,0x00,0x00,
    -0x35,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    +0xc4,0x00,0x00,0x00,0x18,0x01,0x00,0x00,0x17,0x01,0x00,0x00,
    +0x73,0x00,0x04,0x00,0xf9,0x00,0x00,0x00,0x19,0x01,0x00,0x00,
    +0x18,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x0b,0x01,0x00,0x00,
    +0x1a,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,0x15,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x1a,0x01,0x00,0x00,0x19,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1d,0x01,0x00,0x00,
    +0xf8,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x07,0x01,0x00,0x00,0x1f,0x01,0x00,0x00,0x05,0x01,0x00,0x00,
    +0x35,0x00,0x00,0x00,0xef,0x00,0x00,0x00,0x35,0x00,0x00,0x00,
     0x1c,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,
    -0x89,0x01,0x00,0x00,0x88,0x01,0x00,0x00,0x73,0x00,0x04,0x00,
    -0xf9,0x00,0x00,0x00,0x8a,0x01,0x00,0x00,0x89,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x0b,0x01,0x00,0x00,0x8b,0x01,0x00,0x00,
    -0x6b,0x01,0x00,0x00,0x86,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x8b,0x01,0x00,0x00,0x8a,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x8d,0x01,0x00,0x00,0x66,0x01,0x00,0x00,
    +0x20,0x01,0x00,0x00,0x1f,0x01,0x00,0x00,0x73,0x00,0x04,0x00,
    +0xf9,0x00,0x00,0x00,0x21,0x01,0x00,0x00,0x20,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x0b,0x01,0x00,0x00,0x22,0x01,0x00,0x00,
    +0xfe,0x00,0x00,0x00,0x1d,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x22,0x01,0x00,0x00,0x21,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x25,0x01,0x00,0x00,0xf8,0x00,0x00,0x00,
     0x24,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x07,0x01,0x00,0x00,
    -0x8f,0x01,0x00,0x00,0x71,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    -0x5d,0x01,0x00,0x00,0xd0,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,0x90,0x01,0x00,0x00,
    -0x8f,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0xf9,0x00,0x00,0x00,
    -0x91,0x01,0x00,0x00,0x90,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x0b,0x01,0x00,0x00,0x92,0x01,0x00,0x00,0x6b,0x01,0x00,0x00,
    -0x8d,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x92,0x01,0x00,0x00,
    -0x91,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x94,0x01,0x00,0x00,0x66,0x01,0x00,0x00,0x2c,0x01,0x00,0x00,
    -0x41,0x00,0x08,0x00,0x07,0x01,0x00,0x00,0x96,0x01,0x00,0x00,
    -0x71,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,
    +0x27,0x01,0x00,0x00,0x05,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    +0xef,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,0x28,0x01,0x00,0x00,
    +0x27,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0xf9,0x00,0x00,0x00,
    +0x29,0x01,0x00,0x00,0x28,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x0b,0x01,0x00,0x00,0x2a,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,
    +0x25,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x2a,0x01,0x00,0x00,
    +0x29,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x2d,0x01,0x00,0x00,0xf8,0x00,0x00,0x00,0x2c,0x01,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x07,0x01,0x00,0x00,0x2f,0x01,0x00,0x00,
    +0x05,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0xef,0x00,0x00,0x00,
     0xd0,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xc4,0x00,0x00,0x00,0x97,0x01,0x00,0x00,0x96,0x01,0x00,0x00,
    -0x73,0x00,0x04,0x00,0xf9,0x00,0x00,0x00,0x98,0x01,0x00,0x00,
    -0x97,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x0b,0x01,0x00,0x00,
    -0x99,0x01,0x00,0x00,0x6b,0x01,0x00,0x00,0x94,0x01,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x99,0x01,0x00,0x00,0x98,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9b,0x01,0x00,0x00,
    -0x66,0x01,0x00,0x00,0x34,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x07,0x01,0x00,0x00,0x9d,0x01,0x00,0x00,0x71,0x01,0x00,0x00,
    -0x35,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,0xd0,0x00,0x00,0x00,
    +0xc4,0x00,0x00,0x00,0x30,0x01,0x00,0x00,0x2f,0x01,0x00,0x00,
    +0x73,0x00,0x04,0x00,0xf9,0x00,0x00,0x00,0x31,0x01,0x00,0x00,
    +0x30,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x0b,0x01,0x00,0x00,
    +0x32,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,0x2d,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x32,0x01,0x00,0x00,0x31,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x35,0x01,0x00,0x00,
    +0xf8,0x00,0x00,0x00,0x34,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x07,0x01,0x00,0x00,0x37,0x01,0x00,0x00,0x05,0x01,0x00,0x00,
    +0x35,0x00,0x00,0x00,0xef,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,
     0x0c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,
    -0x9e,0x01,0x00,0x00,0x9d,0x01,0x00,0x00,0x73,0x00,0x04,0x00,
    -0xf9,0x00,0x00,0x00,0x9f,0x01,0x00,0x00,0x9e,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x0b,0x01,0x00,0x00,0xa0,0x01,0x00,0x00,
    -0x6b,0x01,0x00,0x00,0x9b,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0xa0,0x01,0x00,0x00,0x9f,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xa2,0x01,0x00,0x00,0x66,0x01,0x00,0x00,
    +0x38,0x01,0x00,0x00,0x37,0x01,0x00,0x00,0x73,0x00,0x04,0x00,
    +0xf9,0x00,0x00,0x00,0x39,0x01,0x00,0x00,0x38,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x0b,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,
    +0xfe,0x00,0x00,0x00,0x35,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x3a,0x01,0x00,0x00,0x39,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x3d,0x01,0x00,0x00,0xf8,0x00,0x00,0x00,
     0x3c,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x07,0x01,0x00,0x00,
    -0xa4,0x01,0x00,0x00,0x71,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    -0x5d,0x01,0x00,0x00,0xd0,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,0xa5,0x01,0x00,0x00,
    -0xa4,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0xf9,0x00,0x00,0x00,
    -0xa6,0x01,0x00,0x00,0xa5,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x0b,0x01,0x00,0x00,0xa7,0x01,0x00,0x00,0x6b,0x01,0x00,0x00,
    -0xa2,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xa7,0x01,0x00,0x00,
    -0xa6,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xac,0x01,0x00,0x00,0xf7,0x02,0x00,0x00,0xaa,0x01,0x00,0x00,
    +0x3f,0x01,0x00,0x00,0x05,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    +0xef,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,0x40,0x01,0x00,0x00,
    +0x3f,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0xf9,0x00,0x00,0x00,
    +0x41,0x01,0x00,0x00,0x40,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x0b,0x01,0x00,0x00,0x42,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,
    +0x3d,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x42,0x01,0x00,0x00,
    +0x41,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x49,0x01,0x00,0x00,0xf1,0x02,0x00,0x00,0x47,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xdd,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xdf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x4b,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x4b,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xf2,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0xdf,0x00,0x00,0x00,0xa7,0x01,0x00,0x00,0x4c,0x01,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,0x51,0x01,0x00,0x00,
    +0xf2,0x02,0x00,0x00,0xa7,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x4d,0x01,0x00,0x00,0x4c,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x51,0x01,0x00,0x00,0x4c,0x01,0x00,0x00,
    +0x4d,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x4c,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x56,0x01,0x00,0x00,
    +0x7f,0x00,0x00,0x00,0xf2,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x59,0x01,0x00,0x00,0x56,0x01,0x00,0x00,
    +0xab,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x5a,0x01,0x00,0x00,0x59,0x01,0x00,0x00,0x6e,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5b,0x01,0x00,0x00,
    +0xf9,0x02,0x00,0x00,0x5a,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,0x5b,0x01,0x00,0x00,
    +0x7a,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x63,0x01,0x00,0x00,0x56,0x01,0x00,0x00,0x62,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x65,0x01,0x00,0x00,
    +0x7a,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x66,0x01,0x00,0x00,0x63,0x01,0x00,0x00,
    +0x65,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x75,0x01,0x00,0x00,
    +0x76,0x01,0x00,0x00,0x73,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    +0x5d,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xf9,0x00,0x00,0x00,0x77,0x01,0x00,0x00,
    +0x76,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x0b,0x01,0x00,0x00,
    +0x78,0x01,0x00,0x00,0x6b,0x01,0x00,0x00,0x66,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x78,0x01,0x00,0x00,0x77,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7a,0x01,0x00,0x00,
    +0x66,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x75,0x01,0x00,0x00,0x7c,0x01,0x00,0x00,0x73,0x01,0x00,0x00,
    +0x35,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xf9,0x00,0x00,0x00,
    +0x7d,0x01,0x00,0x00,0x7c,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x0b,0x01,0x00,0x00,0x7e,0x01,0x00,0x00,0x6b,0x01,0x00,0x00,
    +0x7a,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x7e,0x01,0x00,0x00,
    +0x7d,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x80,0x01,0x00,0x00,0x66,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x75,0x01,0x00,0x00,0x82,0x01,0x00,0x00,
    +0x73,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,
    +0x35,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xf9,0x00,0x00,0x00,0x83,0x01,0x00,0x00,0x82,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x0b,0x01,0x00,0x00,0x84,0x01,0x00,0x00,
    +0x6b,0x01,0x00,0x00,0x80,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x84,0x01,0x00,0x00,0x83,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x86,0x01,0x00,0x00,0x66,0x01,0x00,0x00,
    +0x1c,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x75,0x01,0x00,0x00,
    +0x88,0x01,0x00,0x00,0x73,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    +0x5d,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xf9,0x00,0x00,0x00,0x89,0x01,0x00,0x00,
    +0x88,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x0b,0x01,0x00,0x00,
    +0x8a,0x01,0x00,0x00,0x6b,0x01,0x00,0x00,0x86,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x8a,0x01,0x00,0x00,0x89,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8c,0x01,0x00,0x00,
    +0x66,0x01,0x00,0x00,0x24,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x75,0x01,0x00,0x00,0x8e,0x01,0x00,0x00,0x73,0x01,0x00,0x00,
    +0x35,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,0xd0,0x00,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xf9,0x00,0x00,0x00,
    +0x8f,0x01,0x00,0x00,0x8e,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x0b,0x01,0x00,0x00,0x90,0x01,0x00,0x00,0x6b,0x01,0x00,0x00,
    +0x8c,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x90,0x01,0x00,0x00,
    +0x8f,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x92,0x01,0x00,0x00,0x66,0x01,0x00,0x00,0x2c,0x01,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x75,0x01,0x00,0x00,0x94,0x01,0x00,0x00,
    +0x73,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,
    +0xd0,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xf9,0x00,0x00,0x00,0x95,0x01,0x00,0x00,0x94,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x0b,0x01,0x00,0x00,0x96,0x01,0x00,0x00,
    +0x6b,0x01,0x00,0x00,0x92,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x96,0x01,0x00,0x00,0x95,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x98,0x01,0x00,0x00,0x66,0x01,0x00,0x00,
    +0x34,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x75,0x01,0x00,0x00,
    +0x9a,0x01,0x00,0x00,0x73,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    +0x5d,0x01,0x00,0x00,0xd0,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xf9,0x00,0x00,0x00,0x9b,0x01,0x00,0x00,
    +0x9a,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x0b,0x01,0x00,0x00,
    +0x9c,0x01,0x00,0x00,0x6b,0x01,0x00,0x00,0x98,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x9c,0x01,0x00,0x00,0x9b,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9e,0x01,0x00,0x00,
    +0x66,0x01,0x00,0x00,0x3c,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x75,0x01,0x00,0x00,0xa0,0x01,0x00,0x00,0x73,0x01,0x00,0x00,
    +0x35,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,0xd0,0x00,0x00,0x00,
    +0x1c,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xf9,0x00,0x00,0x00,
    +0xa1,0x01,0x00,0x00,0xa0,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x0b,0x01,0x00,0x00,0xa2,0x01,0x00,0x00,0x6b,0x01,0x00,0x00,
    +0x9e,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xa2,0x01,0x00,0x00,
    +0xa1,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xa7,0x01,0x00,0x00,0xf2,0x02,0x00,0x00,0xa5,0x01,0x00,0x00,
     0xf9,0x00,0x02,0x00,0x4b,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
     0x4d,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0xad,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xb0,0x01,0x00,0x00,0xfa,0x02,0x00,0x00,
    -0xae,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xb3,0x01,0x00,0x00,0xfe,0x02,0x00,0x00,0xb1,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xb5,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xb5,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x00,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0x4d,0x01,0x00,0x00,
    -0x5f,0x02,0x00,0x00,0xb8,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc2,0x00,0x00,0x00,0xbb,0x01,0x00,0x00,0x00,0x03,0x00,0x00,
    -0x6d,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xb7,0x01,0x00,0x00,
    -0xb8,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xbb,0x01,0x00,0x00,0xb6,0x01,0x00,0x00,0xb7,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xb6,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xbd,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xbd,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x04,0x03,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0xb6,0x01,0x00,0x00,0xe9,0x01,0x00,0x00,
    -0xc0,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,
    -0xc3,0x01,0x00,0x00,0x04,0x03,0x00,0x00,0x61,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xbf,0x01,0x00,0x00,0xc0,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xc3,0x01,0x00,0x00,
    -0xbe,0x01,0x00,0x00,0xbf,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xbe,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xc5,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xc5,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x16,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0xbe,0x01,0x00,0x00,0xe7,0x01,0x00,0x00,0xc6,0x01,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,0xcb,0x01,0x00,0x00,
    -0x16,0x03,0x00,0x00,0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xc7,0x01,0x00,0x00,0xc6,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xcb,0x01,0x00,0x00,0xc6,0x01,0x00,0x00,
    -0xc7,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xc6,0x01,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd1,0x01,0x00,0x00,
    -0x04,0x03,0x00,0x00,0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xd3,0x01,0x00,0x00,0xd1,0x01,0x00,0x00,
    -0x16,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xd5,0x01,0x00,0x00,0x56,0x00,0x00,0x00,0x54,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd7,0x01,0x00,0x00,
    -0x04,0x03,0x00,0x00,0x62,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xd8,0x01,0x00,0x00,0xd5,0x01,0x00,0x00,
    -0xd7,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xda,0x01,0x00,0x00,0x65,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdb,0x01,0x00,0x00,
    -0xd8,0x01,0x00,0x00,0xda,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xdd,0x01,0x00,0x00,0xdb,0x01,0x00,0x00,
    -0x16,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xdf,0x01,0x00,0x00,0xdd,0x01,0x00,0x00,0xde,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe1,0x01,0x00,0x00,
    -0xdf,0x01,0x00,0x00,0x00,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x0b,0x01,0x00,0x00,0xe2,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,
    -0xe1,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xf9,0x00,0x00,0x00,
    -0xe3,0x01,0x00,0x00,0xe2,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xe4,0x01,0x00,0x00,0xe5,0x01,0x00,0x00,0xcf,0x01,0x00,0x00,
    -0xd3,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xe5,0x01,0x00,0x00,
    -0xe3,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xe7,0x01,0x00,0x00,0x16,0x03,0x00,0x00,0xd0,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xc5,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xc7,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xc0,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xc0,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xe9,0x01,0x00,0x00,0x04,0x03,0x00,0x00,
    -0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xbd,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xbf,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xeb,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xeb,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x05,0x03,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0xbf,0x01,0x00,0x00,0x17,0x02,0x00,0x00,
    -0xee,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,
    -0xf1,0x01,0x00,0x00,0x05,0x03,0x00,0x00,0xbf,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xed,0x01,0x00,0x00,0xee,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xf1,0x01,0x00,0x00,
    -0xec,0x01,0x00,0x00,0xed,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xec,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xf3,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xf3,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x13,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0xec,0x01,0x00,0x00,0x15,0x02,0x00,0x00,0xf4,0x01,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,0xf9,0x01,0x00,0x00,
    -0x13,0x03,0x00,0x00,0xbc,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xf5,0x01,0x00,0x00,0xf4,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xf9,0x01,0x00,0x00,0xf4,0x01,0x00,0x00,
    -0xf5,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xf4,0x01,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xff,0x01,0x00,0x00,
    -0x05,0x03,0x00,0x00,0xbc,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x01,0x02,0x00,0x00,0xff,0x01,0x00,0x00,
    -0x13,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x03,0x02,0x00,0x00,0x5a,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x06,0x02,0x00,0x00,
    -0x05,0x03,0x00,0x00,0x05,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x07,0x02,0x00,0x00,0x03,0x02,0x00,0x00,
    -0x06,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x09,0x02,0x00,0x00,0x69,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0a,0x02,0x00,0x00,
    -0x07,0x02,0x00,0x00,0x09,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x0c,0x02,0x00,0x00,0x0a,0x02,0x00,0x00,
    -0x13,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x0e,0x02,0x00,0x00,0x0c,0x02,0x00,0x00,0x0d,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x10,0x02,0x00,0x00,
    -0x0e,0x02,0x00,0x00,0x00,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x0b,0x01,0x00,0x00,0x11,0x02,0x00,0x00,0x6b,0x01,0x00,0x00,
    -0x10,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xf9,0x00,0x00,0x00,
    -0x12,0x02,0x00,0x00,0x11,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xe4,0x01,0x00,0x00,0x13,0x02,0x00,0x00,0xfd,0x01,0x00,0x00,
    -0x01,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0x13,0x02,0x00,0x00,
    -0x12,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x15,0x02,0x00,0x00,0x13,0x03,0x00,0x00,0xd0,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xf3,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xf5,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xee,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xee,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x17,0x02,0x00,0x00,0x05,0x03,0x00,0x00,
    -0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xeb,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xed,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x19,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x19,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x06,0x03,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0xed,0x01,0x00,0x00,0x5d,0x02,0x00,0x00,
    -0x1c,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,
    -0x1f,0x02,0x00,0x00,0x06,0x03,0x00,0x00,0xbf,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x1b,0x02,0x00,0x00,0x1c,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x1f,0x02,0x00,0x00,
    -0x1a,0x02,0x00,0x00,0x1b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x1a,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x21,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x21,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x0a,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0x1a,0x02,0x00,0x00,0x5b,0x02,0x00,0x00,0x24,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,0x27,0x02,0x00,0x00,
    -0x0a,0x03,0x00,0x00,0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x23,0x02,0x00,0x00,0x24,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x27,0x02,0x00,0x00,0x22,0x02,0x00,0x00,
    -0x23,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x22,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x29,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x29,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x0c,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0x22,0x02,0x00,0x00,
    -0x59,0x02,0x00,0x00,0x2c,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc2,0x00,0x00,0x00,0x2f,0x02,0x00,0x00,0x0c,0x03,0x00,0x00,
    -0xbc,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x2b,0x02,0x00,0x00,
    -0x2c,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x2f,0x02,0x00,0x00,0x2a,0x02,0x00,0x00,0x2b,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x2a,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x31,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x31,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x0e,0x03,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0x2a,0x02,0x00,0x00,0x57,0x02,0x00,0x00,
    -0x32,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,
    -0x37,0x02,0x00,0x00,0x0e,0x03,0x00,0x00,0x63,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x33,0x02,0x00,0x00,0x32,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x37,0x02,0x00,0x00,
    -0x32,0x02,0x00,0x00,0x33,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x32,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x39,0x02,0x00,0x00,0x06,0x03,0x00,0x00,0xbc,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3b,0x02,0x00,0x00,
    -0x39,0x02,0x00,0x00,0x0c,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x3d,0x02,0x00,0x00,0x3b,0x02,0x00,0x00,
    -0x3c,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x3f,0x02,0x00,0x00,0x0a,0x03,0x00,0x00,0x63,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x40,0x02,0x00,0x00,
    -0x3d,0x02,0x00,0x00,0x3f,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x42,0x02,0x00,0x00,0x40,0x02,0x00,0x00,
    -0x0e,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x46,0x02,0x00,0x00,0x3f,0x02,0x00,0x00,0x0e,0x03,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xe4,0x01,0x00,0x00,0x47,0x02,0x00,0x00,
    -0xcf,0x01,0x00,0x00,0x46,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xf9,0x00,0x00,0x00,0x48,0x02,0x00,0x00,0x47,0x02,0x00,0x00,
    -0x73,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,0x49,0x02,0x00,0x00,
    -0x48,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xe4,0x01,0x00,0x00,
    -0x4e,0x02,0x00,0x00,0xfd,0x01,0x00,0x00,0x3b,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xf9,0x00,0x00,0x00,0x4f,0x02,0x00,0x00,
    -0x4e,0x02,0x00,0x00,0x73,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,
    -0x50,0x02,0x00,0x00,0x4f,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xcd,0x00,0x00,0x00,0x52,0x02,0x00,0x00,0xca,0x00,0x00,0x00,
    -0x42,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,
    -0x53,0x02,0x00,0x00,0x52,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,
    -0xc4,0x00,0x00,0x00,0x54,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x32,0x00,0x00,0x00,0x49,0x02,0x00,0x00,0x50,0x02,0x00,0x00,
    -0x53,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0x52,0x02,0x00,0x00,
    -0x54,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x57,0x02,0x00,0x00,0x0e,0x03,0x00,0x00,0xd0,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x31,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x33,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x2c,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x2c,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x59,0x02,0x00,0x00,0x0c,0x03,0x00,0x00,
    -0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x29,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x2b,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x24,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x24,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5b,0x02,0x00,0x00,
    -0x0a,0x03,0x00,0x00,0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x21,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x23,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x1c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x1c,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x5d,0x02,0x00,0x00,0x06,0x03,0x00,0x00,0xd0,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x19,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x1b,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xb8,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xb8,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x5f,0x02,0x00,0x00,0x00,0x03,0x00,0x00,
    -0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xb5,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xb7,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,
    -0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xad,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xd7,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xd7,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x61,0x02,0x00,0x00,0xe6,0x02,0x00,0x00,0x6d,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xd4,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xd6,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x66,0x02,0x00,0x00,0x56,0x00,0x00,0x00,0x54,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x67,0x02,0x00,0x00,
    -0x97,0x00,0x00,0x00,0x66,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x6c,0x02,0x00,0x00,0x5a,0x00,0x00,0x00,
    -0xb9,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x6d,0x02,0x00,0x00,0xa8,0x00,0x00,0x00,0x6c,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x71,0x02,0x00,0x00,
    -0x14,0x00,0x00,0x00,0x70,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x72,0x02,0x00,0x00,0x71,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x73,0x02,0x00,0x00,
    -0x0f,0x00,0x00,0x00,0x72,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x77,0x02,0x00,0x00,0x48,0x00,0x00,0x00,
    -0x72,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,
    -0x79,0x02,0x00,0x00,0x78,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x7a,0x02,0x00,0x00,
    -0x79,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x7b,0x02,0x00,0x00,0x77,0x02,0x00,0x00,0x7a,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7c,0x02,0x00,0x00,
    -0x73,0x02,0x00,0x00,0x7b,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x7e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x7e,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xe7,0x02,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,0xe4,0x02,0x00,0x00,
    -0x81,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,
    -0x84,0x02,0x00,0x00,0xe7,0x02,0x00,0x00,0xbf,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x80,0x02,0x00,0x00,0x81,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x84,0x02,0x00,0x00,
    -0x7f,0x02,0x00,0x00,0x80,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x7f,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x86,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x86,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xe8,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0x7f,0x02,0x00,0x00,0xe2,0x02,0x00,0x00,0x89,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,0x8c,0x02,0x00,0x00,
    -0xe8,0x02,0x00,0x00,0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x88,0x02,0x00,0x00,0x89,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x8c,0x02,0x00,0x00,0x87,0x02,0x00,0x00,
    -0x88,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x87,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x90,0x02,0x00,0x00,
    -0xe8,0x02,0x00,0x00,0x62,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x91,0x02,0x00,0x00,0x67,0x02,0x00,0x00,
    -0x90,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x93,0x02,0x00,0x00,0x65,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x94,0x02,0x00,0x00,
    -0x91,0x02,0x00,0x00,0x93,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x98,0x02,0x00,0x00,0xe7,0x02,0x00,0x00,
    -0x05,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x99,0x02,0x00,0x00,0x6d,0x02,0x00,0x00,0x98,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9b,0x02,0x00,0x00,
    -0x69,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x9c,0x02,0x00,0x00,0x99,0x02,0x00,0x00,
    -0x9b,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x9e,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x9e,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xea,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0x87,0x02,0x00,0x00,0xe0,0x02,0x00,0x00,0xa1,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,0xa4,0x02,0x00,0x00,
    -0xea,0x02,0x00,0x00,0xbc,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xa0,0x02,0x00,0x00,0xa1,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xa4,0x02,0x00,0x00,0x9f,0x02,0x00,0x00,
    -0xa0,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x9f,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xa6,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xa6,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xec,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0x9f,0x02,0x00,0x00,
    -0xde,0x02,0x00,0x00,0xa9,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc2,0x00,0x00,0x00,0xac,0x02,0x00,0x00,0xec,0x02,0x00,0x00,
    -0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xa8,0x02,0x00,0x00,
    -0xa9,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xac,0x02,0x00,0x00,0xa7,0x02,0x00,0x00,0xa8,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xa7,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xaf,0x02,0x00,0x00,0x94,0x02,0x00,0x00,
    -0xec,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,
    -0xb2,0x02,0x00,0x00,0xaf,0x02,0x00,0x00,0x37,0x00,0x00,0x00,
    -0xf7,0x00,0x03,0x00,0xb4,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xb2,0x02,0x00,0x00,0xb3,0x02,0x00,0x00,
    -0xb4,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xb3,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb7,0x02,0x00,0x00,
    -0x9c,0x02,0x00,0x00,0xea,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x17,0x00,0x00,0x00,0xb8,0x02,0x00,0x00,0x14,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0xa8,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xab,0x01,0x00,0x00,0xf5,0x02,0x00,0x00,
    +0xa9,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xae,0x01,0x00,0x00,0xf9,0x02,0x00,0x00,0xac,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xb0,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xb0,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xfb,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0x4d,0x01,0x00,0x00,
    +0x5a,0x02,0x00,0x00,0xb3,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc2,0x00,0x00,0x00,0xb6,0x01,0x00,0x00,0xfb,0x02,0x00,0x00,
    +0x6d,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xb2,0x01,0x00,0x00,
    +0xb3,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xb6,0x01,0x00,0x00,0xb1,0x01,0x00,0x00,0xb2,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xb1,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xb8,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xb8,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xff,0x02,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0xb1,0x01,0x00,0x00,0xe4,0x01,0x00,0x00,
    +0xbb,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,
    +0xbe,0x01,0x00,0x00,0xff,0x02,0x00,0x00,0x61,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xba,0x01,0x00,0x00,0xbb,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xbe,0x01,0x00,0x00,
    +0xb9,0x01,0x00,0x00,0xba,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xb9,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xc0,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xc0,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x11,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0xb9,0x01,0x00,0x00,0xe2,0x01,0x00,0x00,0xc1,0x01,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,0xc6,0x01,0x00,0x00,
    +0x11,0x03,0x00,0x00,0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xc2,0x01,0x00,0x00,0xc1,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xc6,0x01,0x00,0x00,0xc1,0x01,0x00,0x00,
    +0xc2,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xc1,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xcc,0x01,0x00,0x00,
    +0xff,0x02,0x00,0x00,0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xce,0x01,0x00,0x00,0xcc,0x01,0x00,0x00,
    +0x11,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xd0,0x01,0x00,0x00,0x56,0x00,0x00,0x00,0x54,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd2,0x01,0x00,0x00,
    +0xff,0x02,0x00,0x00,0x62,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xd3,0x01,0x00,0x00,0xd0,0x01,0x00,0x00,
    +0xd2,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xd5,0x01,0x00,0x00,0x65,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd6,0x01,0x00,0x00,
    +0xd3,0x01,0x00,0x00,0xd5,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xd8,0x01,0x00,0x00,0xd6,0x01,0x00,0x00,
    +0x11,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xda,0x01,0x00,0x00,0xd8,0x01,0x00,0x00,0xd9,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdc,0x01,0x00,0x00,
    +0xda,0x01,0x00,0x00,0xfb,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x0b,0x01,0x00,0x00,0xdd,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,
    +0xdc,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xf9,0x00,0x00,0x00,
    +0xde,0x01,0x00,0x00,0xdd,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xdf,0x01,0x00,0x00,0xe0,0x01,0x00,0x00,0xca,0x01,0x00,0x00,
    +0xce,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xe0,0x01,0x00,0x00,
    +0xde,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xe2,0x01,0x00,0x00,0x11,0x03,0x00,0x00,0xd0,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xc0,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xc2,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xbb,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xbb,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xe4,0x01,0x00,0x00,0xff,0x02,0x00,0x00,
    +0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xb8,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xba,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xe6,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xe6,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x00,0x03,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0xba,0x01,0x00,0x00,0x12,0x02,0x00,0x00,
    +0xe9,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,
    +0xec,0x01,0x00,0x00,0x00,0x03,0x00,0x00,0xbf,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xe8,0x01,0x00,0x00,0xe9,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xec,0x01,0x00,0x00,
    +0xe7,0x01,0x00,0x00,0xe8,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xe7,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xee,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xee,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x0e,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0xe7,0x01,0x00,0x00,0x10,0x02,0x00,0x00,0xef,0x01,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,0xf4,0x01,0x00,0x00,
    +0x0e,0x03,0x00,0x00,0xbc,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xf0,0x01,0x00,0x00,0xef,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xf4,0x01,0x00,0x00,0xef,0x01,0x00,0x00,
    +0xf0,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xef,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfa,0x01,0x00,0x00,
    +0x00,0x03,0x00,0x00,0xbc,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xfc,0x01,0x00,0x00,0xfa,0x01,0x00,0x00,
    +0x0e,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xfe,0x01,0x00,0x00,0x5a,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x01,0x02,0x00,0x00,
    +0x00,0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x02,0x02,0x00,0x00,0xfe,0x01,0x00,0x00,
    +0x01,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x04,0x02,0x00,0x00,0x69,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x05,0x02,0x00,0x00,
    +0x02,0x02,0x00,0x00,0x04,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x07,0x02,0x00,0x00,0x05,0x02,0x00,0x00,
    +0x0e,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x09,0x02,0x00,0x00,0x07,0x02,0x00,0x00,0x08,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0b,0x02,0x00,0x00,
    +0x09,0x02,0x00,0x00,0xfb,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x0b,0x01,0x00,0x00,0x0c,0x02,0x00,0x00,0x6b,0x01,0x00,0x00,
    +0x0b,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xf9,0x00,0x00,0x00,
    +0x0d,0x02,0x00,0x00,0x0c,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xdf,0x01,0x00,0x00,0x0e,0x02,0x00,0x00,0xf8,0x01,0x00,0x00,
    +0xfc,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x0e,0x02,0x00,0x00,
    +0x0d,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x10,0x02,0x00,0x00,0x0e,0x03,0x00,0x00,0xd0,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xee,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xf0,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xe9,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xe9,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x12,0x02,0x00,0x00,0x00,0x03,0x00,0x00,
    +0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xe6,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xe8,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x14,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x14,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x01,0x03,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0xe8,0x01,0x00,0x00,0x58,0x02,0x00,0x00,
    +0x17,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,
    +0x1a,0x02,0x00,0x00,0x01,0x03,0x00,0x00,0xbf,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x16,0x02,0x00,0x00,0x17,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x1a,0x02,0x00,0x00,
    +0x15,0x02,0x00,0x00,0x16,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x15,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x1c,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x1c,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x05,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x15,0x02,0x00,0x00,0x56,0x02,0x00,0x00,0x1f,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,0x22,0x02,0x00,0x00,
    +0x05,0x03,0x00,0x00,0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x1e,0x02,0x00,0x00,0x1f,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x22,0x02,0x00,0x00,0x1d,0x02,0x00,0x00,
    +0x1e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x1d,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x24,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x24,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x07,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0x1d,0x02,0x00,0x00,
    +0x54,0x02,0x00,0x00,0x27,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc2,0x00,0x00,0x00,0x2a,0x02,0x00,0x00,0x07,0x03,0x00,0x00,
    +0xbc,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x26,0x02,0x00,0x00,
    +0x27,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x2a,0x02,0x00,0x00,0x25,0x02,0x00,0x00,0x26,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x25,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x2c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x2c,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x09,0x03,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0x25,0x02,0x00,0x00,0x52,0x02,0x00,0x00,
    +0x2d,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,
    +0x32,0x02,0x00,0x00,0x09,0x03,0x00,0x00,0x63,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x2e,0x02,0x00,0x00,0x2d,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x32,0x02,0x00,0x00,
    +0x2d,0x02,0x00,0x00,0x2e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x2d,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x34,0x02,0x00,0x00,0x01,0x03,0x00,0x00,0xbc,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x36,0x02,0x00,0x00,
    +0x34,0x02,0x00,0x00,0x07,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x38,0x02,0x00,0x00,0x36,0x02,0x00,0x00,
    +0x37,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x3a,0x02,0x00,0x00,0x05,0x03,0x00,0x00,0x63,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3b,0x02,0x00,0x00,
    +0x38,0x02,0x00,0x00,0x3a,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x3d,0x02,0x00,0x00,0x3b,0x02,0x00,0x00,
    +0x09,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x41,0x02,0x00,0x00,0x3a,0x02,0x00,0x00,0x09,0x03,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xdf,0x01,0x00,0x00,0x42,0x02,0x00,0x00,
    +0xca,0x01,0x00,0x00,0x41,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xf9,0x00,0x00,0x00,0x43,0x02,0x00,0x00,0x42,0x02,0x00,0x00,
    +0x73,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,0x44,0x02,0x00,0x00,
    +0x43,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xdf,0x01,0x00,0x00,
    +0x49,0x02,0x00,0x00,0xf8,0x01,0x00,0x00,0x36,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xf9,0x00,0x00,0x00,0x4a,0x02,0x00,0x00,
    +0x49,0x02,0x00,0x00,0x73,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,
    +0x4b,0x02,0x00,0x00,0x4a,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xcd,0x00,0x00,0x00,0x4d,0x02,0x00,0x00,0xca,0x00,0x00,0x00,
    +0x3d,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,
    +0x4e,0x02,0x00,0x00,0x4d,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,
    +0xc4,0x00,0x00,0x00,0x4f,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x32,0x00,0x00,0x00,0x44,0x02,0x00,0x00,0x4b,0x02,0x00,0x00,
    +0x4e,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0x4d,0x02,0x00,0x00,
    +0x4f,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x52,0x02,0x00,0x00,0x09,0x03,0x00,0x00,0xd0,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x2c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x2e,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x27,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x27,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x54,0x02,0x00,0x00,0x07,0x03,0x00,0x00,
    +0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x24,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x26,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x1f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x1f,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x56,0x02,0x00,0x00,
    +0x05,0x03,0x00,0x00,0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x1c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x1e,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x17,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x17,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x58,0x02,0x00,0x00,0x01,0x03,0x00,0x00,0xd0,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x14,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x16,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xb3,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xb3,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x5a,0x02,0x00,0x00,0xfb,0x02,0x00,0x00,
    +0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xb0,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xb2,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,
    +0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xa8,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xd7,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xd7,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x5c,0x02,0x00,0x00,0xe1,0x02,0x00,0x00,0x6d,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xd4,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xd6,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x61,0x02,0x00,0x00,0x56,0x00,0x00,0x00,0x54,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x62,0x02,0x00,0x00,
    +0x97,0x00,0x00,0x00,0x61,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x67,0x02,0x00,0x00,0x5a,0x00,0x00,0x00,
    +0xb9,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x68,0x02,0x00,0x00,0xa8,0x00,0x00,0x00,0x67,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x6c,0x02,0x00,0x00,
    +0x14,0x00,0x00,0x00,0x6b,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x6d,0x02,0x00,0x00,0x6c,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6e,0x02,0x00,0x00,
    +0x0f,0x00,0x00,0x00,0x6d,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x72,0x02,0x00,0x00,0x48,0x00,0x00,0x00,
    +0x6d,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,
    +0x74,0x02,0x00,0x00,0x73,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x75,0x02,0x00,0x00,
    +0x74,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x76,0x02,0x00,0x00,0x72,0x02,0x00,0x00,0x75,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x77,0x02,0x00,0x00,
    +0x6e,0x02,0x00,0x00,0x76,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x79,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x79,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xe2,0x02,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,0xdf,0x02,0x00,0x00,
    +0x7c,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,
    +0x7f,0x02,0x00,0x00,0xe2,0x02,0x00,0x00,0xbf,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x7b,0x02,0x00,0x00,0x7c,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x7f,0x02,0x00,0x00,
    +0x7a,0x02,0x00,0x00,0x7b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x7a,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x81,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x81,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xe3,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x7a,0x02,0x00,0x00,0xdd,0x02,0x00,0x00,0x84,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,0x87,0x02,0x00,0x00,
    +0xe3,0x02,0x00,0x00,0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x83,0x02,0x00,0x00,0x84,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x87,0x02,0x00,0x00,0x82,0x02,0x00,0x00,
    +0x83,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x82,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8b,0x02,0x00,0x00,
    +0xe3,0x02,0x00,0x00,0x62,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x8c,0x02,0x00,0x00,0x62,0x02,0x00,0x00,
    +0x8b,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x8e,0x02,0x00,0x00,0x65,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8f,0x02,0x00,0x00,
    +0x8c,0x02,0x00,0x00,0x8e,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x93,0x02,0x00,0x00,0xe2,0x02,0x00,0x00,
    +0x00,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x94,0x02,0x00,0x00,0x68,0x02,0x00,0x00,0x93,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x96,0x02,0x00,0x00,
    +0x69,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x97,0x02,0x00,0x00,0x94,0x02,0x00,0x00,
    +0x96,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x99,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x99,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xe5,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x82,0x02,0x00,0x00,0xdb,0x02,0x00,0x00,0x9c,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,0x9f,0x02,0x00,0x00,
    +0xe5,0x02,0x00,0x00,0xbc,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x9b,0x02,0x00,0x00,0x9c,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x9f,0x02,0x00,0x00,0x9a,0x02,0x00,0x00,
    +0x9b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x9a,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xa1,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xa1,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xe7,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0x9a,0x02,0x00,0x00,
    +0xd9,0x02,0x00,0x00,0xa4,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc2,0x00,0x00,0x00,0xa7,0x02,0x00,0x00,0xe7,0x02,0x00,0x00,
    +0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xa3,0x02,0x00,0x00,
    +0xa4,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xa7,0x02,0x00,0x00,0xa2,0x02,0x00,0x00,0xa3,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xa2,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xaa,0x02,0x00,0x00,0x8f,0x02,0x00,0x00,
    +0xe7,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,
    +0xad,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,0x37,0x00,0x00,0x00,
    +0xf7,0x00,0x03,0x00,0xaf,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xad,0x02,0x00,0x00,0xae,0x02,0x00,0x00,
    +0xaf,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xae,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb2,0x02,0x00,0x00,
    +0x97,0x02,0x00,0x00,0xe5,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x17,0x00,0x00,0x00,0xb3,0x02,0x00,0x00,0x14,0x00,0x00,0x00,
     0xd0,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0xb9,0x02,0x00,0x00,0xb8,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc2,0x00,0x00,0x00,0xba,0x02,0x00,0x00,0xb7,0x02,0x00,0x00,
    -0xb9,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xb4,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xb4,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0xc2,0x00,0x00,0x00,0xbb,0x02,0x00,0x00,0xb2,0x02,0x00,0x00,
    -0xa7,0x02,0x00,0x00,0xba,0x02,0x00,0x00,0xb3,0x02,0x00,0x00,
    -0xf7,0x00,0x03,0x00,0xbd,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xbb,0x02,0x00,0x00,0xbc,0x02,0x00,0x00,
    -0xbd,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xbc,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc5,0x02,0x00,0x00,
    -0x9c,0x02,0x00,0x00,0xea,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x17,0x00,0x00,0x00,0xc7,0x02,0x00,0x00,0x14,0x00,0x00,0x00,
    -0xc6,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0xc8,0x02,0x00,0x00,0xc7,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xc9,0x02,0x00,0x00,0xc5,0x02,0x00,0x00,
    -0xc8,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xca,0x02,0x00,0x00,0x7c,0x02,0x00,0x00,0xc9,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xcc,0x02,0x00,0x00,
    -0xca,0x02,0x00,0x00,0x94,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xce,0x02,0x00,0x00,0xcc,0x02,0x00,0x00,
    -0xec,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xd0,0x02,0x00,0x00,0xe7,0x02,0x00,0x00,0xbc,0x00,0x00,0x00,
    +0xb4,0x02,0x00,0x00,0xb3,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc2,0x00,0x00,0x00,0xb5,0x02,0x00,0x00,0xb2,0x02,0x00,0x00,
    +0xb4,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xaf,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xaf,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0xc2,0x00,0x00,0x00,0xb6,0x02,0x00,0x00,0xad,0x02,0x00,0x00,
    +0xa2,0x02,0x00,0x00,0xb5,0x02,0x00,0x00,0xae,0x02,0x00,0x00,
    +0xf7,0x00,0x03,0x00,0xb8,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xb6,0x02,0x00,0x00,0xb7,0x02,0x00,0x00,
    +0xb8,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xb7,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc0,0x02,0x00,0x00,
    +0x97,0x02,0x00,0x00,0xe5,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x17,0x00,0x00,0x00,0xc2,0x02,0x00,0x00,0x14,0x00,0x00,0x00,
    +0xc1,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0xc3,0x02,0x00,0x00,0xc2,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xc4,0x02,0x00,0x00,0xc0,0x02,0x00,0x00,
    +0xc3,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xc5,0x02,0x00,0x00,0x77,0x02,0x00,0x00,0xc4,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc7,0x02,0x00,0x00,
    +0xc5,0x02,0x00,0x00,0x8f,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xc9,0x02,0x00,0x00,0xc7,0x02,0x00,0x00,
    +0xe7,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xcb,0x02,0x00,0x00,0xe2,0x02,0x00,0x00,0xbc,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xcd,0x02,0x00,0x00,
    +0xcb,0x02,0x00,0x00,0xe5,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xcf,0x02,0x00,0x00,0xcd,0x02,0x00,0x00,
    +0xce,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xd1,0x02,0x00,0x00,0xe3,0x02,0x00,0x00,0x63,0x00,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd2,0x02,0x00,0x00,
    -0xd0,0x02,0x00,0x00,0xea,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0xcf,0x02,0x00,0x00,0xd1,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xd4,0x02,0x00,0x00,0xd2,0x02,0x00,0x00,
    -0xd3,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xd6,0x02,0x00,0x00,0xe8,0x02,0x00,0x00,0x63,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd7,0x02,0x00,0x00,
    -0xd4,0x02,0x00,0x00,0xd6,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xd9,0x02,0x00,0x00,0xd7,0x02,0x00,0x00,
    -0xec,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xcd,0x00,0x00,0x00,
    -0xda,0x02,0x00,0x00,0xca,0x00,0x00,0x00,0xd9,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,0xdb,0x02,0x00,0x00,
    -0xda,0x02,0x00,0x00,0x41,0x00,0x06,0x00,0x07,0x01,0x00,0x00,
    -0xdc,0x02,0x00,0x00,0xc1,0x02,0x00,0x00,0x35,0x00,0x00,0x00,
    -0xce,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0xdc,0x02,0x00,0x00,
    -0xdb,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xbd,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xbd,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xa9,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xa9,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xde,0x02,0x00,0x00,
    -0xec,0x02,0x00,0x00,0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xa6,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xa8,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xa1,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xa1,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xe0,0x02,0x00,0x00,0xea,0x02,0x00,0x00,0xd0,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x9e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xa0,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x89,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x89,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xe2,0x02,0x00,0x00,0xe8,0x02,0x00,0x00,
    -0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x86,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x88,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x81,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x81,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe4,0x02,0x00,0x00,
    +0xe7,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xcd,0x00,0x00,0x00,
    +0xd5,0x02,0x00,0x00,0xca,0x00,0x00,0x00,0xd4,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,0xd6,0x02,0x00,0x00,
    +0xd5,0x02,0x00,0x00,0x41,0x00,0x06,0x00,0x07,0x01,0x00,0x00,
    +0xd7,0x02,0x00,0x00,0xbc,0x02,0x00,0x00,0x35,0x00,0x00,0x00,
    +0xc9,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0xd7,0x02,0x00,0x00,
    +0xd6,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xb8,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xb8,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xa4,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xa4,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd9,0x02,0x00,0x00,
     0xe7,0x02,0x00,0x00,0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x7e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x80,0x02,0x00,0x00,
    +0xa1,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xa3,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x9c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x9c,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xdb,0x02,0x00,0x00,0xe5,0x02,0x00,0x00,0xd0,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x99,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x9b,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x84,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x84,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xdd,0x02,0x00,0x00,0xe3,0x02,0x00,0x00,
    +0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x81,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x83,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x7c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x7c,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdf,0x02,0x00,0x00,
    +0xe2,0x02,0x00,0x00,0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x79,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x7b,0x02,0x00,0x00,
     0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
     };
    -const uint64_t matmul_f32_aligned_len = 11432;
    +const uint64_t matmul_f32_f16_aligned_len = 11360;
     
    -unsigned char matmul_f32_aligned_fp32_data[] = {
    +unsigned char matmul_f32_f16_aligned_fp32_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
    -0xce,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00,
    -0x01,0x00,0x00,0x00,0x0b,0x00,0x06,0x00,0x01,0x00,0x00,0x00,
    -0x47,0x4c,0x53,0x4c,0x2e,0x73,0x74,0x64,0x2e,0x34,0x35,0x30,
    -0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00,0x00,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x0f,0x00,0x0f,0x00,0x05,0x00,0x00,0x00,
    -0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e,0x00,0x00,0x00,0x00,
    -0x0b,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,
    -0x4d,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,0x03,0x01,0x00,0x00,
    -0x45,0x01,0x00,0x00,0x4b,0x01,0x00,0x00,0x2f,0x02,0x00,0x00,
    -0x78,0x02,0x00,0x00,0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00,
    -0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x0b,0x00,0x00,0x00,
    -0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x12,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,
    -0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x12,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,
    -0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x12,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x24,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,
    -0x0a,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x28,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x2c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x12,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x30,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,
    -0x0d,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x34,0x00,0x00,0x00,
    -0x47,0x00,0x03,0x00,0x12,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x38,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x3e,0x00,0x00,0x00,
    -0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x4d,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x50,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x09,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x54,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x61,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x63,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x07,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x6d,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0xa7,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0xb9,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x05,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xbc,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x00,0x01,0x00,0x00,0x06,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
    -0x48,0x00,0x04,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x01,0x01,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x47,0x00,0x03,0x00,0x01,0x01,0x00,0x00,0x02,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x03,0x01,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x03,0x01,0x00,0x00,
    -0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x1d,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x1e,0x01,0x00,0x00,0x0b,0x00,0x00,0x00,
    -0x19,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x48,0x01,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x04,0x00,
    -0x49,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x49,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    -0x49,0x01,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x4b,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x4b,0x01,0x00,0x00,0x21,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x2f,0x02,0x00,0x00,
    -0x0b,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x75,0x02,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x48,0x00,0x04,0x00,0x76,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x19,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x76,0x02,0x00,0x00,
    +0xd5,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00,
    +0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x51,0x11,0x00,0x00,
    +0x0b,0x00,0x06,0x00,0x01,0x00,0x00,0x00,0x47,0x4c,0x53,0x4c,
    +0x2e,0x73,0x74,0x64,0x2e,0x34,0x35,0x30,0x00,0x00,0x00,0x00,
    +0x0e,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x0f,0x00,0x0f,0x00,0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x6d,0x61,0x69,0x6e,0x00,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    +0x14,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,
    +0xfd,0x00,0x00,0x00,0x03,0x01,0x00,0x00,0x45,0x01,0x00,0x00,
    +0x4d,0x01,0x00,0x00,0x36,0x02,0x00,0x00,0x7f,0x02,0x00,0x00,
    +0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x0b,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    +0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,
     0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x47,0x00,0x03,0x00,0x76,0x02,0x00,0x00,0x02,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x78,0x02,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x78,0x02,0x00,0x00,
    -0x21,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x13,0x00,0x02,0x00,
    -0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x17,0x00,0x04,0x00,
    -0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x0a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x09,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x0a,0x00,0x00,0x00,
    -0x0b,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x0d,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x1e,0x00,0x10,0x00,0x12,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x13,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x12,0x00,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0x13,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    -0x09,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x15,0x00,0x00,0x00,0x16,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    -0x22,0x00,0x00,0x00,0x0d,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x15,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,
    -0x0a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    -0x35,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x40,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x0a,0x00,0x00,0x00,
    -0x3e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0x0a,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x50,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x55,0x00,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x54,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x59,0x00,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x54,0x00,0x00,0x00,
    -0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x61,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0x62,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x54,0x00,0x00,0x00,
    -0x61,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x63,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x62,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x62,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x12,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,
    +0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x12,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x12,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,
    +0x09,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x12,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x2c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x30,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,0x0d,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    +0x12,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x38,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x3e,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    +0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x4d,0x00,0x00,0x00,
    +0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x50,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x54,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x61,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x63,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x6d,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x03,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xa7,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0xb9,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0xbc,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x00,0x01,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x04,0x00,
    +0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    +0x01,0x01,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x03,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x03,0x01,0x00,0x00,0x21,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x1d,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x1e,0x01,0x00,0x00,0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x4a,0x01,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x4b,0x01,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x4b,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x4b,0x01,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x4d,0x01,0x00,0x00,
    +0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x4d,0x01,0x00,0x00,0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x36,0x02,0x00,0x00,0x0b,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x7c,0x02,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,
    +0x7d,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x7d,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    +0x7d,0x02,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x7f,0x02,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x7f,0x02,0x00,0x00,0x21,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00,
    +0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x15,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x17,0x00,0x04,0x00,0x09,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x0a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x0a,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x0d,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x1e,0x00,0x10,0x00,0x12,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x13,0x00,0x00,0x00,
    +0x09,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0x13,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x15,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    +0x16,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x17,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    +0x0d,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    +0x28,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x15,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x35,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x38,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x0a,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0x0a,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x50,0x00,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x54,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x38,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x38,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x62,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x61,0x00,0x00,0x00,
    +0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
     0x04,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0x6f,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    -0x6e,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0x74,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    -0x6e,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0x79,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    -0x6e,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0x7e,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    -0x6e,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    -0x82,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x15,0x00,0x00,0x00,0x87,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x92,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    -0x98,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x15,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    -0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,
    -0x40,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    -0xa9,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    -0x61,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xba,0x00,0x00,0x00,
    -0x84,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,
    -0x84,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
    -0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0xbd,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,
    -0xbc,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0xbe,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0xbd,0x00,0x00,0x00,
    -0x61,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0xbf,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0xba,0x00,0x00,0x00,
    -0xbe,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0xc0,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,
    -0xbf,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0xc1,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,
    -0xbc,0x00,0x00,0x00,0x14,0x00,0x02,0x00,0xc2,0x00,0x00,0x00,
    -0x16,0x00,0x03,0x00,0xc4,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,
    -0x84,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,
    -0x84,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,
    -0x84,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,
    -0x1c,0x00,0x04,0x00,0xc8,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,
    -0xc7,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xc9,0x00,0x00,0x00,
    -0x07,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0xc4,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x20,0x00,0x04,0x00,0xcd,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    -0xc4,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    -0xd0,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,0x80,0x00,0x00,0x00,
    +0x64,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x62,0x00,0x00,0x00,
    +0x63,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x68,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x62,0x00,0x00,0x00,
    +0x63,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x6d,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x74,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x79,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x82,0x00,0x00,0x00,
    +0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    +0x87,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x15,0x00,0x00,0x00,0x92,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x98,0x00,0x00,0x00,
    +0x03,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    +0xa2,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,0x40,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0xb8,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x61,0x00,0x00,0x00,
    +0x63,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0xb9,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xba,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    +0x54,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    +0x50,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xbd,0x00,0x00,0x00,
    +0x84,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xbe,0x00,0x00,0x00,
    +0x84,0x00,0x00,0x00,0xbd,0x00,0x00,0x00,0x61,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0xba,0x00,0x00,0x00,0xbe,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,
    +0x84,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xc1,0x00,0x00,0x00,
    +0x84,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,
    +0x14,0x00,0x02,0x00,0xc2,0x00,0x00,0x00,0x16,0x00,0x03,0x00,
    +0xc4,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    +0x61,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    +0xc5,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    +0xc6,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,
    +0xc8,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0xc9,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    +0xc8,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,
    +0xcc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0xcd,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0xf4,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0xf9,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0xfa,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x38,0x00,0x00,0x00,
    +0xf9,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0xfb,0x00,0x00,0x00,
    +0xc4,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0xfc,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0xfc,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x17,0x00,0x04,0x00,0xff,0x00,0x00,0x00,
    +0xc4,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    +0x00,0x01,0x00,0x00,0xff,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
    +0x01,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x02,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x01,0x01,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x02,0x01,0x00,0x00,0x03,0x01,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x05,0x01,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x08,0x01,0x00,0x00,0x04,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x17,0x01,0x00,0x00,
    +0x03,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x1d,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x33,0x00,0x06,0x00,
    +0x09,0x00,0x00,0x00,0x1e,0x01,0x00,0x00,0x1d,0x01,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x1f,0x01,0x00,0x00,0x51,0x00,0x00,0x00,
    +0x1e,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x20,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    +0x1f,0x01,0x00,0x00,0x6e,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x21,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x20,0x01,0x00,0x00,0x6d,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x3c,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
     0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0xf9,0x00,0x00,0x00,0x80,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x41,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
     0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    -0x38,0x00,0x00,0x00,0xf9,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,
    -0xfb,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,
    -0x20,0x00,0x04,0x00,0xfc,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0xfb,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xfc,0x00,0x00,0x00,
    -0xfd,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x17,0x00,0x04,0x00,
    -0xff,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x1d,0x00,0x03,0x00,0x00,0x01,0x00,0x00,0xff,0x00,0x00,0x00,
    -0x1e,0x00,0x03,0x00,0x01,0x01,0x00,0x00,0x00,0x01,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x02,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x01,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,0x02,0x01,0x00,0x00,
    -0x03,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x05,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x08,0x01,0x00,0x00,0x04,0x00,0x00,0x00,
    -0xc4,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x17,0x01,0x00,0x00,0x03,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x1d,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x33,0x00,0x06,0x00,0x09,0x00,0x00,0x00,0x1e,0x01,0x00,0x00,
    -0x1d,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x1f,0x01,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x42,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    +0xa7,0x00,0x00,0x00,0x41,0x01,0x00,0x00,0x1c,0x00,0x04,0x00,
    +0x43,0x01,0x00,0x00,0xc4,0x00,0x00,0x00,0x42,0x01,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x44,0x01,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x43,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,0x44,0x01,0x00,0x00,
    +0x45,0x01,0x00,0x00,0x04,0x00,0x00,0x00,0x16,0x00,0x03,0x00,
    +0x48,0x01,0x00,0x00,0x10,0x00,0x00,0x00,0x17,0x00,0x04,0x00,
    +0x49,0x01,0x00,0x00,0x48,0x01,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x1d,0x00,0x03,0x00,0x4a,0x01,0x00,0x00,0x49,0x01,0x00,0x00,
    +0x1e,0x00,0x03,0x00,0x4b,0x01,0x00,0x00,0x4a,0x01,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x4c,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x4b,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,0x4c,0x01,0x00,0x00,
    +0x4d,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x4f,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x48,0x01,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x69,0x01,0x00,0x00,
     0x51,0x00,0x00,0x00,0x1e,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x20,0x01,0x00,0x00,
    -0x84,0x00,0x00,0x00,0x1f,0x01,0x00,0x00,0x6e,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x21,0x01,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x20,0x01,0x00,0x00,0x6d,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x3c,0x01,0x00,0x00,
    -0x80,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x41,0x01,0x00,0x00,
    -0x80,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x42,0x01,0x00,0x00,
    -0x84,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,0x41,0x01,0x00,0x00,
    -0x1c,0x00,0x04,0x00,0x43,0x01,0x00,0x00,0xc4,0x00,0x00,0x00,
    -0x42,0x01,0x00,0x00,0x20,0x00,0x04,0x00,0x44,0x01,0x00,0x00,
    -0x04,0x00,0x00,0x00,0x43,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0x44,0x01,0x00,0x00,0x45,0x01,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x1d,0x00,0x03,0x00,0x48,0x01,0x00,0x00,0xff,0x00,0x00,0x00,
    -0x1e,0x00,0x03,0x00,0x49,0x01,0x00,0x00,0x48,0x01,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x4a,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x49,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,0x4a,0x01,0x00,0x00,
    -0x4b,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x62,0x01,0x00,0x00,0x51,0x00,0x00,0x00,
    -0x1e,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x63,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    -0x62,0x01,0x00,0x00,0x6e,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x64,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x63,0x01,0x00,0x00,0x6d,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x67,0x01,0x00,0x00,0x08,0x01,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x68,0x01,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x6a,0x01,0x00,0x00,
    +0x84,0x00,0x00,0x00,0x69,0x01,0x00,0x00,0x6e,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x6b,0x01,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x86,0x01,0x00,0x00,
    -0x84,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
    -0x1c,0x00,0x04,0x00,0x87,0x01,0x00,0x00,0xc4,0x00,0x00,0x00,
    -0x86,0x01,0x00,0x00,0x20,0x00,0x04,0x00,0x88,0x01,0x00,0x00,
    -0x07,0x00,0x00,0x00,0x87,0x01,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x98,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x6a,0x01,0x00,0x00,0x6d,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x6e,0x01,0x00,0x00,
    +0x08,0x01,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x6f,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    +0x6e,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x72,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    +0x6e,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x8d,0x01,0x00,0x00,0x84,0x00,0x00,0x00,0x61,0x00,0x00,0x00,
    +0x63,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0x8e,0x01,0x00,0x00,
    +0xc4,0x00,0x00,0x00,0x8d,0x01,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x8f,0x01,0x00,0x00,0x07,0x00,0x00,0x00,0x8e,0x01,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x9f,0x01,0x00,0x00,
    +0x80,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xba,0x01,0x00,0x00,
    +0x84,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,
    +0x1c,0x00,0x04,0x00,0xbb,0x01,0x00,0x00,0xc4,0x00,0x00,0x00,
    +0xba,0x01,0x00,0x00,0x20,0x00,0x04,0x00,0xbc,0x01,0x00,0x00,
    +0x07,0x00,0x00,0x00,0xbb,0x01,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xc5,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
    +0xb9,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xcd,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
     0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0xb3,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    -0xbf,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,
    -0xb4,0x01,0x00,0x00,0xc4,0x00,0x00,0x00,0xb3,0x01,0x00,0x00,
    -0x20,0x00,0x04,0x00,0xb5,0x01,0x00,0x00,0x07,0x00,0x00,0x00,
    -0xb4,0x01,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0xbe,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,
    -0xbf,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0xc6,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    -0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0xf5,0x01,0x00,0x00,0x84,0x00,0x00,0x00,0x61,0x00,0x00,0x00,
    -0x63,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    -0x27,0x02,0x00,0x00,0x08,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0x0a,0x00,0x00,0x00,0x2f,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x1d,0x00,0x03,0x00,0x75,0x02,0x00,0x00,0xc4,0x00,0x00,0x00,
    -0x1e,0x00,0x03,0x00,0x76,0x02,0x00,0x00,0x75,0x02,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x77,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x76,0x02,0x00,0x00,0x3b,0x00,0x04,0x00,0x77,0x02,0x00,0x00,
    -0x78,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x15,0x00,0x00,0x00,0x7d,0x02,0x00,0x00,0x05,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x8a,0x02,0x00,0x00,
    -0x84,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
    -0x36,0x00,0x05,0x00,0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x05,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xc9,0x00,0x00,0x00,
    -0xca,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0x88,0x01,0x00,0x00,0x89,0x01,0x00,0x00,0x07,0x00,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0xb5,0x01,0x00,0x00,0xb6,0x01,0x00,0x00,
    -0x07,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,
    -0x0e,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,
    -0x0e,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    -0x18,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x16,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    -0x18,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x1a,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    -0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,
    -0x0f,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x17,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    -0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x24,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,
    -0x24,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    -0x29,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x28,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x2a,0x00,0x00,0x00,
    -0x29,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x2b,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,0x2a,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x2f,0x00,0x00,0x00,
    -0x14,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x2f,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x31,0x00,0x00,0x00,
    -0x25,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x33,0x00,0x00,0x00,0x31,0x00,0x00,0x00,
    -0x2b,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    -0x36,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x35,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x37,0x00,0x00,0x00,
    -0x36,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x39,0x00,0x00,0x00,0x37,0x00,0x00,0x00,0x38,0x00,0x00,0x00,
    -0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,
    -0x39,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x3c,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,
    -0x38,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,
    -0x40,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x41,0x00,0x00,0x00,
    -0x40,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x43,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x3c,0x00,0x00,0x00,
    -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x48,0x00,0x00,0x00,
    -0x41,0x00,0x00,0x00,0x3c,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x0d,0x00,0x00,0x00,0x4a,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,
    -0x3a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x4b,0x00,0x00,0x00,0x4a,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x0d,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0xfc,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    +0x61,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x15,0x00,0x00,0x00,0x2e,0x02,0x00,0x00,0x08,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x0a,0x00,0x00,0x00,0x36,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x7c,0x02,0x00,0x00,
    +0xc4,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x7d,0x02,0x00,0x00,
    +0x7c,0x02,0x00,0x00,0x20,0x00,0x04,0x00,0x7e,0x02,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x7d,0x02,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0x7e,0x02,0x00,0x00,0x7f,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x84,0x02,0x00,0x00,
    +0x05,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x91,0x02,0x00,0x00,0x84,0x00,0x00,0x00,0x61,0x00,0x00,0x00,
    +0x63,0x00,0x00,0x00,0x36,0x00,0x05,0x00,0x02,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0xc9,0x00,0x00,0x00,0xca,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x8f,0x01,0x00,0x00,0x90,0x01,0x00,0x00,
    +0x07,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xbc,0x01,0x00,0x00,
    +0xbd,0x01,0x00,0x00,0x07,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x0d,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x0f,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x17,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    +0x16,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x19,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,
    +0x19,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x1f,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x14,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x25,0x00,0x00,0x00,
    +0x1a,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x17,0x00,0x00,0x00,0x29,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    +0x28,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x2a,0x00,0x00,0x00,0x29,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x2b,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,
    +0x2a,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    +0x2f,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x30,0x00,0x00,0x00,
    +0x2f,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x31,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x30,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x33,0x00,0x00,0x00,
    +0x31,0x00,0x00,0x00,0x2b,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x17,0x00,0x00,0x00,0x36,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    +0x35,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x37,0x00,0x00,0x00,0x36,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x39,0x00,0x00,0x00,0x37,0x00,0x00,0x00,
    +0x38,0x00,0x00,0x00,0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x3b,0x00,0x00,0x00,0x39,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3c,0x00,0x00,0x00,
    +0x3b,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x0d,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,
     0x3f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x4f,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,
    -0x50,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x56,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0x55,0x00,0x00,0x00,
    -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5a,0x00,0x00,0x00,
    -0x51,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x89,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,
    -0x50,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x65,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,0x64,0x00,0x00,0x00,
    -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x69,0x00,0x00,0x00,
    -0x5e,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x89,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,
    -0x6f,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x75,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x74,0x00,0x00,0x00,
    -0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7a,0x00,0x00,0x00,
    -0x4f,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,
    -0x7e,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    -0x83,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x82,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    -0x83,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x85,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x88,0x00,0x00,0x00,
    -0x14,0x00,0x00,0x00,0x87,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x89,0x00,0x00,0x00,0x88,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8b,0x00,0x00,0x00,
    -0x48,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,0x8b,0x00,0x00,0x00,
    -0x84,0x00,0x00,0x00,0x0c,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x8f,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x26,0x00,0x00,0x00,
    -0x89,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x17,0x00,0x00,0x00,0x93,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    -0x92,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x94,0x00,0x00,0x00,0x93,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x95,0x00,0x00,0x00,0x33,0x00,0x00,0x00,
    -0x94,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x97,0x00,0x00,0x00,0x43,0x00,0x00,0x00,0x38,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x99,0x00,0x00,0x00,
    -0x14,0x00,0x00,0x00,0x98,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,0x99,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,
    -0x97,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x9c,0x00,0x00,0x00,0x95,0x00,0x00,0x00,
    -0x9b,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x9e,0x00,0x00,0x00,0x9c,0x00,0x00,0x00,0x85,0x00,0x00,0x00,
    -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9f,0x00,0x00,0x00,
    -0x9e,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x17,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    -0xa2,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0xa4,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xa5,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,
    -0xa4,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xa8,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xaa,0x00,0x00,0x00,
    -0x14,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0xab,0x00,0x00,0x00,0xaa,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xac,0x00,0x00,0x00,
    -0xa8,0x00,0x00,0x00,0xab,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xad,0x00,0x00,0x00,0xa5,0x00,0x00,0x00,
    -0xac,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xaf,0x00,0x00,0x00,0xad,0x00,0x00,0x00,0x85,0x00,0x00,0x00,
    -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb0,0x00,0x00,0x00,
    -0xaf,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xb2,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xb2,0x00,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x9c,0x02,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,
    -0xb3,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,
    -0xc3,0x00,0x00,0x00,0x9c,0x02,0x00,0x00,0xc1,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xb4,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    -0xb3,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xb3,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0xcd,0x00,0x00,0x00,
    -0xce,0x00,0x00,0x00,0xca,0x00,0x00,0x00,0x9c,0x02,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0xce,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,
    -0x9c,0x02,0x00,0x00,0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xb2,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xb4,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xd4,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xd4,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xb5,0x02,0x00,0x00,0xb0,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,
    -0x6d,0x01,0x00,0x00,0xd7,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xb1,0x02,0x00,0x00,0x9f,0x00,0x00,0x00,
    -0xb4,0x00,0x00,0x00,0x6a,0x01,0x00,0x00,0xd7,0x00,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x9d,0x02,0x00,0x00,
    -0x85,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,0x18,0x02,0x00,0x00,
    -0xd7,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,
    -0xdb,0x00,0x00,0x00,0x9d,0x02,0x00,0x00,0x8f,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xd6,0x00,0x00,0x00,0xd7,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xdb,0x00,0x00,0x00,
    -0xd5,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xd5,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xdd,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xdd,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xad,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0xd5,0x00,0x00,0x00,0x23,0x01,0x00,0x00,0xde,0x00,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,0xe3,0x00,0x00,0x00,
    -0xad,0x02,0x00,0x00,0x38,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xdf,0x00,0x00,0x00,0xde,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xe3,0x00,0x00,0x00,0xde,0x00,0x00,0x00,
    -0xdf,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xde,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,
    -0x75,0x00,0x00,0x00,0xad,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xec,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xed,0x00,0x00,0x00,
    -0xb1,0x02,0x00,0x00,0xec,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xef,0x00,0x00,0x00,0xed,0x00,0x00,0x00,
    -0x70,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xf5,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,
    -0x70,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,
    -0xf7,0x00,0x00,0x00,0x41,0x00,0x07,0x00,0x05,0x01,0x00,0x00,
    -0x06,0x01,0x00,0x00,0x03,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    -0xef,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xc4,0x00,0x00,0x00,0x07,0x01,0x00,0x00,0x06,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x08,0x01,0x00,0x00,0x09,0x01,0x00,0x00,
    -0xfd,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x09,0x01,0x00,0x00,0x07,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x0b,0x01,0x00,0x00,0xf8,0x00,0x00,0x00,
    -0x3a,0x00,0x00,0x00,0x41,0x00,0x07,0x00,0x05,0x01,0x00,0x00,
    -0x0d,0x01,0x00,0x00,0x03,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    -0xef,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xc4,0x00,0x00,0x00,0x0e,0x01,0x00,0x00,0x0d,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x08,0x01,0x00,0x00,0x0f,0x01,0x00,0x00,
    -0xfd,0x00,0x00,0x00,0x0b,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x0f,0x01,0x00,0x00,0x0e,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x11,0x01,0x00,0x00,0xf8,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x41,0x00,0x07,0x00,0x05,0x01,0x00,0x00,
    -0x13,0x01,0x00,0x00,0x03,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    -0xef,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xc4,0x00,0x00,0x00,0x14,0x01,0x00,0x00,0x13,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x08,0x01,0x00,0x00,0x15,0x01,0x00,0x00,
    -0xfd,0x00,0x00,0x00,0x11,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x15,0x01,0x00,0x00,0x14,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x18,0x01,0x00,0x00,0xf8,0x00,0x00,0x00,
    -0x17,0x01,0x00,0x00,0x41,0x00,0x07,0x00,0x05,0x01,0x00,0x00,
    -0x1a,0x01,0x00,0x00,0x03,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    -0xef,0x00,0x00,0x00,0x17,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xc4,0x00,0x00,0x00,0x1b,0x01,0x00,0x00,0x1a,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x08,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,
    -0xfd,0x00,0x00,0x00,0x18,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x1c,0x01,0x00,0x00,0x1b,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x23,0x01,0x00,0x00,0xad,0x02,0x00,0x00,
    -0x21,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xdd,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xdf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x25,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x25,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xae,0x02,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0x66,0x01,0x00,0x00,
    -0x26,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,
    -0x2b,0x01,0x00,0x00,0xae,0x02,0x00,0x00,0xa7,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x27,0x01,0x00,0x00,0x26,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x2b,0x01,0x00,0x00,
    -0x26,0x01,0x00,0x00,0x27,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x26,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x30,0x01,0x00,0x00,0x7f,0x00,0x00,0x00,0xae,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x33,0x01,0x00,0x00,
    -0x30,0x01,0x00,0x00,0xab,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x34,0x01,0x00,0x00,0x33,0x01,0x00,0x00,
    +0x41,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x89,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x43,0x00,0x00,0x00,0x41,0x00,0x00,0x00,
    +0x3c,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x48,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x3c,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,0x4a,0x00,0x00,0x00,
    +0x3e,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0x4a,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    +0x4d,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x51,0x00,0x00,0x00,
    +0x4f,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x89,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x56,0x00,0x00,0x00,0x51,0x00,0x00,0x00,
    +0x55,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x5a,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0x59,0x00,0x00,0x00,
    +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,
    +0x4f,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x89,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x65,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,
    +0x64,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x69,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,0x68,0x00,0x00,0x00,
    +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x70,0x00,0x00,0x00,
    +0x4f,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x75,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,
    +0x74,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x7a,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x79,0x00,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,
    +0x4f,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x17,0x00,0x00,0x00,0x83,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    +0x82,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x84,0x00,0x00,0x00,0x83,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x85,0x00,0x00,0x00,0x48,0x00,0x00,0x00,
    +0x84,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    +0x88,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x87,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x89,0x00,0x00,0x00,
    +0x88,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x8b,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,
    +0x8b,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x0c,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x8f,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x26,0x00,0x00,0x00,0x89,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x93,0x00,0x00,0x00,
    +0x14,0x00,0x00,0x00,0x92,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x94,0x00,0x00,0x00,0x93,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x95,0x00,0x00,0x00,
    +0x33,0x00,0x00,0x00,0x94,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x43,0x00,0x00,0x00,
    +0x38,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    +0x99,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x98,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0x99,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x9b,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9c,0x00,0x00,0x00,
    +0x95,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x9e,0x00,0x00,0x00,0x9c,0x00,0x00,0x00,
    +0x85,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x9f,0x00,0x00,0x00,0x9e,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,
    +0x14,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa5,0x00,0x00,0x00,
    +0x0f,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,
    +0xa7,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    +0xaa,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xab,0x00,0x00,0x00,
    +0xaa,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xac,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,0xab,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xad,0x00,0x00,0x00,
    +0xa5,0x00,0x00,0x00,0xac,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0xad,0x00,0x00,0x00,
    +0x85,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xb0,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xb2,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xb2,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xa3,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
    +0xd1,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc2,0x00,0x00,0x00,0xc3,0x00,0x00,0x00,0xa3,0x02,0x00,0x00,
    +0xc1,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xb4,0x00,0x00,0x00,
    +0xb3,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xc3,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xb3,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xcd,0x00,0x00,0x00,0xce,0x00,0x00,0x00,0xca,0x00,0x00,0x00,
    +0xa3,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0xce,0x00,0x00,0x00,
    +0xcc,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xd1,0x00,0x00,0x00,0xa3,0x02,0x00,0x00,0xd0,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xb2,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xb4,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xd4,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xd4,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xbc,0x02,0x00,0x00,0xb0,0x00,0x00,0x00,
    +0xb4,0x00,0x00,0x00,0x74,0x01,0x00,0x00,0xd7,0x00,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xb8,0x02,0x00,0x00,
    +0x9f,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,0x71,0x01,0x00,0x00,
    +0xd7,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xa4,0x02,0x00,0x00,0x85,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,
    +0x1f,0x02,0x00,0x00,0xd7,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc2,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,0xa4,0x02,0x00,0x00,
    +0x8f,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xd6,0x00,0x00,0x00,
    +0xd7,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xdb,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xd5,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xdd,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xdd,0x00,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xb4,0x02,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0x23,0x01,0x00,0x00,
    +0xde,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,
    +0xe3,0x00,0x00,0x00,0xb4,0x02,0x00,0x00,0x38,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xdf,0x00,0x00,0x00,0xde,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xe3,0x00,0x00,0x00,
    +0xde,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xde,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xe8,0x00,0x00,0x00,0x75,0x00,0x00,0x00,0xb4,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,
    +0xe8,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xec,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,
     0x6e,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x35,0x01,0x00,0x00,0xb5,0x02,0x00,0x00,0x34,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x37,0x01,0x00,0x00,
    -0x35,0x01,0x00,0x00,0x7a,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x3d,0x01,0x00,0x00,0x30,0x01,0x00,0x00,
    -0x3c,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x3f,0x01,0x00,0x00,0x7a,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x40,0x01,0x00,0x00,
    -0x3d,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,0x41,0x00,0x07,0x00,
    -0x05,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,0x4b,0x01,0x00,0x00,
    -0x35,0x00,0x00,0x00,0x37,0x01,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,0x4e,0x01,0x00,0x00,
    -0x4d,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x08,0x01,0x00,0x00,
    -0x4f,0x01,0x00,0x00,0x45,0x01,0x00,0x00,0x40,0x01,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x4f,0x01,0x00,0x00,0x4e,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x51,0x01,0x00,0x00,
    -0x40,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,0x41,0x00,0x07,0x00,
    -0x05,0x01,0x00,0x00,0x53,0x01,0x00,0x00,0x4b,0x01,0x00,0x00,
    -0x35,0x00,0x00,0x00,0x37,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,0x54,0x01,0x00,0x00,
    -0x53,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x08,0x01,0x00,0x00,
    -0x55,0x01,0x00,0x00,0x45,0x01,0x00,0x00,0x51,0x01,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x55,0x01,0x00,0x00,0x54,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x57,0x01,0x00,0x00,
    +0xed,0x00,0x00,0x00,0xb8,0x02,0x00,0x00,0xec,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xef,0x00,0x00,0x00,
    +0xed,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,
    +0xf4,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xf7,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,
    +0xf5,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,0x41,0x00,0x07,0x00,
    +0x05,0x01,0x00,0x00,0x06,0x01,0x00,0x00,0x03,0x01,0x00,0x00,
    +0x35,0x00,0x00,0x00,0xef,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,0x07,0x01,0x00,0x00,
    +0x06,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x08,0x01,0x00,0x00,
    +0x09,0x01,0x00,0x00,0xfd,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x09,0x01,0x00,0x00,0x07,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0b,0x01,0x00,0x00,
    +0xf8,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x41,0x00,0x07,0x00,
    +0x05,0x01,0x00,0x00,0x0d,0x01,0x00,0x00,0x03,0x01,0x00,0x00,
    +0x35,0x00,0x00,0x00,0xef,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,0x0e,0x01,0x00,0x00,
    +0x0d,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x08,0x01,0x00,0x00,
    +0x0f,0x01,0x00,0x00,0xfd,0x00,0x00,0x00,0x0b,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x0f,0x01,0x00,0x00,0x0e,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x11,0x01,0x00,0x00,
    +0xf8,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x41,0x00,0x07,0x00,
    +0x05,0x01,0x00,0x00,0x13,0x01,0x00,0x00,0x03,0x01,0x00,0x00,
    +0x35,0x00,0x00,0x00,0xef,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,0x14,0x01,0x00,0x00,
    +0x13,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x08,0x01,0x00,0x00,
    +0x15,0x01,0x00,0x00,0xfd,0x00,0x00,0x00,0x11,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x15,0x01,0x00,0x00,0x14,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x18,0x01,0x00,0x00,
    +0xf8,0x00,0x00,0x00,0x17,0x01,0x00,0x00,0x41,0x00,0x07,0x00,
    +0x05,0x01,0x00,0x00,0x1a,0x01,0x00,0x00,0x03,0x01,0x00,0x00,
    +0x35,0x00,0x00,0x00,0xef,0x00,0x00,0x00,0x17,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,0x1b,0x01,0x00,0x00,
    +0x1a,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x08,0x01,0x00,0x00,
    +0x1c,0x01,0x00,0x00,0xfd,0x00,0x00,0x00,0x18,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x1c,0x01,0x00,0x00,0x1b,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x23,0x01,0x00,0x00,
    +0xb4,0x02,0x00,0x00,0x21,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xdd,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xdf,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x25,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x25,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xb5,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,
    +0x6d,0x01,0x00,0x00,0x26,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc2,0x00,0x00,0x00,0x2b,0x01,0x00,0x00,0xb5,0x02,0x00,0x00,
    +0xa7,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x27,0x01,0x00,0x00,
    +0x26,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x2b,0x01,0x00,0x00,0x26,0x01,0x00,0x00,0x27,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x26,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x30,0x01,0x00,0x00,0x7f,0x00,0x00,0x00,
    +0xb5,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x33,0x01,0x00,0x00,0x30,0x01,0x00,0x00,0xab,0x00,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x34,0x01,0x00,0x00,
    +0x33,0x01,0x00,0x00,0x6e,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x35,0x01,0x00,0x00,0xbc,0x02,0x00,0x00,
    +0x34,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x37,0x01,0x00,0x00,0x35,0x01,0x00,0x00,0x7a,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3d,0x01,0x00,0x00,
    +0x30,0x01,0x00,0x00,0x3c,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x3f,0x01,0x00,0x00,0x7a,0x00,0x00,0x00,
    +0x6e,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x40,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,
    +0x41,0x00,0x07,0x00,0x4f,0x01,0x00,0x00,0x50,0x01,0x00,0x00,
    +0x4d,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0x37,0x01,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x48,0x01,0x00,0x00,
    +0x51,0x01,0x00,0x00,0x50,0x01,0x00,0x00,0x73,0x00,0x04,0x00,
    +0xc4,0x00,0x00,0x00,0x52,0x01,0x00,0x00,0x51,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x08,0x01,0x00,0x00,0x53,0x01,0x00,0x00,
    +0x45,0x01,0x00,0x00,0x40,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x53,0x01,0x00,0x00,0x52,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x55,0x01,0x00,0x00,0x40,0x01,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x41,0x00,0x07,0x00,0x4f,0x01,0x00,0x00,
    +0x57,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    +0x37,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x48,0x01,0x00,0x00,0x58,0x01,0x00,0x00,0x57,0x01,0x00,0x00,
    +0x73,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,0x59,0x01,0x00,0x00,
    +0x58,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x08,0x01,0x00,0x00,
    +0x5a,0x01,0x00,0x00,0x45,0x01,0x00,0x00,0x55,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x5a,0x01,0x00,0x00,0x59,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5c,0x01,0x00,0x00,
     0x40,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x41,0x00,0x07,0x00,
    -0x05,0x01,0x00,0x00,0x59,0x01,0x00,0x00,0x4b,0x01,0x00,0x00,
    +0x4f,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,
     0x35,0x00,0x00,0x00,0x37,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,0x5a,0x01,0x00,0x00,
    -0x59,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x08,0x01,0x00,0x00,
    -0x5b,0x01,0x00,0x00,0x45,0x01,0x00,0x00,0x57,0x01,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x5b,0x01,0x00,0x00,0x5a,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,
    -0x40,0x01,0x00,0x00,0x17,0x01,0x00,0x00,0x41,0x00,0x07,0x00,
    -0x05,0x01,0x00,0x00,0x5f,0x01,0x00,0x00,0x4b,0x01,0x00,0x00,
    -0x35,0x00,0x00,0x00,0x37,0x01,0x00,0x00,0x17,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,0x60,0x01,0x00,0x00,
    -0x5f,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x08,0x01,0x00,0x00,
    -0x61,0x01,0x00,0x00,0x45,0x01,0x00,0x00,0x5d,0x01,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x61,0x01,0x00,0x00,0x60,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x66,0x01,0x00,0x00,
    -0xae,0x02,0x00,0x00,0x64,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x25,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x27,0x01,0x00,0x00,
    -0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x67,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x6a,0x01,0x00,0x00,0xb1,0x02,0x00,0x00,0x68,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6d,0x01,0x00,0x00,
    -0xb5,0x02,0x00,0x00,0x6b,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x6f,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x6f,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xb7,0x02,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0x27,0x01,0x00,0x00,0x16,0x02,0x00,0x00,
    -0x72,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,
    -0x75,0x01,0x00,0x00,0xb7,0x02,0x00,0x00,0x6d,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x71,0x01,0x00,0x00,0x72,0x01,0x00,0x00,
    -0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x75,0x01,0x00,0x00,
    -0x70,0x01,0x00,0x00,0x71,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x70,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x77,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x77,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xbb,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0x70,0x01,0x00,0x00,0xa2,0x01,0x00,0x00,0x7a,0x01,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,0x7d,0x01,0x00,0x00,
    -0xbb,0x02,0x00,0x00,0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x79,0x01,0x00,0x00,0x7a,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x7d,0x01,0x00,0x00,0x78,0x01,0x00,0x00,
    -0x79,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x78,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x7f,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x7f,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xcd,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0x78,0x01,0x00,0x00,
    -0xa0,0x01,0x00,0x00,0x80,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc2,0x00,0x00,0x00,0x85,0x01,0x00,0x00,0xcd,0x02,0x00,0x00,
    -0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x81,0x01,0x00,0x00,
    -0x80,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x85,0x01,0x00,0x00,0x80,0x01,0x00,0x00,0x81,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x80,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x8b,0x01,0x00,0x00,0xbb,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x48,0x01,0x00,0x00,0x5f,0x01,0x00,0x00,
    +0x5e,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,
    +0x60,0x01,0x00,0x00,0x5f,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x08,0x01,0x00,0x00,0x61,0x01,0x00,0x00,0x45,0x01,0x00,0x00,
    +0x5c,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x61,0x01,0x00,0x00,
    +0x60,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x63,0x01,0x00,0x00,0x40,0x01,0x00,0x00,0x17,0x01,0x00,0x00,
    +0x41,0x00,0x07,0x00,0x4f,0x01,0x00,0x00,0x65,0x01,0x00,0x00,
    +0x4d,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0x37,0x01,0x00,0x00,
    +0x17,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x48,0x01,0x00,0x00,
    +0x66,0x01,0x00,0x00,0x65,0x01,0x00,0x00,0x73,0x00,0x04,0x00,
    +0xc4,0x00,0x00,0x00,0x67,0x01,0x00,0x00,0x66,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x08,0x01,0x00,0x00,0x68,0x01,0x00,0x00,
    +0x45,0x01,0x00,0x00,0x63,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x68,0x01,0x00,0x00,0x67,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x6d,0x01,0x00,0x00,0xb5,0x02,0x00,0x00,
    +0x6b,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x25,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x27,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,
    +0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x6e,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x71,0x01,0x00,0x00,
    +0xb8,0x02,0x00,0x00,0x6f,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x74,0x01,0x00,0x00,0xbc,0x02,0x00,0x00,
    +0x72,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x76,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x76,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xbe,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x27,0x01,0x00,0x00,0x1d,0x02,0x00,0x00,0x79,0x01,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,0x7c,0x01,0x00,0x00,
    +0xbe,0x02,0x00,0x00,0x6d,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x78,0x01,0x00,0x00,0x79,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x7c,0x01,0x00,0x00,0x77,0x01,0x00,0x00,
    +0x78,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x77,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x7e,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x7e,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xc2,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0x77,0x01,0x00,0x00,
    +0xa9,0x01,0x00,0x00,0x81,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc2,0x00,0x00,0x00,0x84,0x01,0x00,0x00,0xc2,0x02,0x00,0x00,
    +0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x80,0x01,0x00,0x00,
    +0x81,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x84,0x01,0x00,0x00,0x7f,0x01,0x00,0x00,0x80,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x7f,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x86,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x86,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xd4,0x02,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0x7f,0x01,0x00,0x00,0xa7,0x01,0x00,0x00,
    +0x87,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,
    +0x8c,0x01,0x00,0x00,0xd4,0x02,0x00,0x00,0x63,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x88,0x01,0x00,0x00,0x87,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x8c,0x01,0x00,0x00,
    +0x87,0x01,0x00,0x00,0x88,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x87,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x92,0x01,0x00,0x00,0xc2,0x02,0x00,0x00,0x63,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x94,0x01,0x00,0x00,
    +0x92,0x01,0x00,0x00,0xd4,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x96,0x01,0x00,0x00,0x56,0x00,0x00,0x00,
    +0x54,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x98,0x01,0x00,0x00,0xc2,0x02,0x00,0x00,0x62,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x99,0x01,0x00,0x00,
    +0x96,0x01,0x00,0x00,0x98,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x9b,0x01,0x00,0x00,0x65,0x00,0x00,0x00,
     0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x8d,0x01,0x00,0x00,0x8b,0x01,0x00,0x00,0xcd,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8f,0x01,0x00,0x00,
    -0x56,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x91,0x01,0x00,0x00,0xbb,0x02,0x00,0x00,
    -0x62,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x92,0x01,0x00,0x00,0x8f,0x01,0x00,0x00,0x91,0x01,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x94,0x01,0x00,0x00,
    -0x65,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x95,0x01,0x00,0x00,0x92,0x01,0x00,0x00,
    -0x94,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x97,0x01,0x00,0x00,0x95,0x01,0x00,0x00,0xcd,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x99,0x01,0x00,0x00,
    -0x97,0x01,0x00,0x00,0x98,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x9b,0x01,0x00,0x00,0x99,0x01,0x00,0x00,
    -0xb7,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x08,0x01,0x00,0x00,
    -0x9c,0x01,0x00,0x00,0xfd,0x00,0x00,0x00,0x9b,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,0x9d,0x01,0x00,0x00,
    -0x9c,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0xcd,0x00,0x00,0x00,
    -0x9e,0x01,0x00,0x00,0x89,0x01,0x00,0x00,0x8d,0x01,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x9e,0x01,0x00,0x00,0x9d,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa0,0x01,0x00,0x00,
    -0xcd,0x02,0x00,0x00,0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x7f,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x81,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x7a,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x7a,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xa2,0x01,0x00,0x00,0xbb,0x02,0x00,0x00,0xd0,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x77,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x79,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xa4,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xa4,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xbc,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0x79,0x01,0x00,0x00,0xd0,0x01,0x00,0x00,0xa7,0x01,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,0xaa,0x01,0x00,0x00,
    -0xbc,0x02,0x00,0x00,0xbf,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xa6,0x01,0x00,0x00,0xa7,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xaa,0x01,0x00,0x00,0xa5,0x01,0x00,0x00,
    -0xa6,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xa5,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xac,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xac,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xca,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0xa5,0x01,0x00,0x00,
    -0xce,0x01,0x00,0x00,0xad,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc2,0x00,0x00,0x00,0xb2,0x01,0x00,0x00,0xca,0x02,0x00,0x00,
    -0xbc,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xae,0x01,0x00,0x00,
    -0xad,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xb2,0x01,0x00,0x00,0xad,0x01,0x00,0x00,0xae,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xad,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xb8,0x01,0x00,0x00,0xbc,0x02,0x00,0x00,
    +0x9c,0x01,0x00,0x00,0x99,0x01,0x00,0x00,0x9b,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9e,0x01,0x00,0x00,
    +0x9c,0x01,0x00,0x00,0xd4,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xa0,0x01,0x00,0x00,0x9e,0x01,0x00,0x00,
    +0x9f,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xa2,0x01,0x00,0x00,0xa0,0x01,0x00,0x00,0xbe,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x08,0x01,0x00,0x00,0xa3,0x01,0x00,0x00,
    +0xfd,0x00,0x00,0x00,0xa2,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xc4,0x00,0x00,0x00,0xa4,0x01,0x00,0x00,0xa3,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xcd,0x00,0x00,0x00,0xa5,0x01,0x00,0x00,
    +0x90,0x01,0x00,0x00,0x94,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0xa5,0x01,0x00,0x00,0xa4,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xa7,0x01,0x00,0x00,0xd4,0x02,0x00,0x00,
    +0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x86,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x88,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x81,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x81,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa9,0x01,0x00,0x00,
    +0xc2,0x02,0x00,0x00,0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x7e,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x80,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xab,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xab,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xc3,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0x80,0x01,0x00,0x00,
    +0xd7,0x01,0x00,0x00,0xae,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc2,0x00,0x00,0x00,0xb1,0x01,0x00,0x00,0xc3,0x02,0x00,0x00,
    +0xbf,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xad,0x01,0x00,0x00,
    +0xae,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xb1,0x01,0x00,0x00,0xac,0x01,0x00,0x00,0xad,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xac,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xb3,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xb3,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xd1,0x02,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0xac,0x01,0x00,0x00,0xd5,0x01,0x00,0x00,
    +0xb4,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,
    +0xb9,0x01,0x00,0x00,0xd1,0x02,0x00,0x00,0xbc,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xb5,0x01,0x00,0x00,0xb4,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xb9,0x01,0x00,0x00,
    +0xb4,0x01,0x00,0x00,0xb5,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xb4,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xbf,0x01,0x00,0x00,0xc3,0x02,0x00,0x00,0xbc,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc1,0x01,0x00,0x00,
    +0xbf,0x01,0x00,0x00,0xd1,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xc3,0x01,0x00,0x00,0x5a,0x00,0x00,0x00,
    +0xb9,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xc6,0x01,0x00,0x00,0xc3,0x02,0x00,0x00,0xc5,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc7,0x01,0x00,0x00,
    +0xc3,0x01,0x00,0x00,0xc6,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xc9,0x01,0x00,0x00,0x69,0x00,0x00,0x00,
     0xbc,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xba,0x01,0x00,0x00,0xb8,0x01,0x00,0x00,0xca,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbc,0x01,0x00,0x00,
    -0x5a,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xbf,0x01,0x00,0x00,0xbc,0x02,0x00,0x00,
    -0xbe,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xc0,0x01,0x00,0x00,0xbc,0x01,0x00,0x00,0xbf,0x01,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc2,0x01,0x00,0x00,
    -0x69,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xc3,0x01,0x00,0x00,0xc0,0x01,0x00,0x00,
    -0xc2,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xc5,0x01,0x00,0x00,0xc3,0x01,0x00,0x00,0xca,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc7,0x01,0x00,0x00,
    -0xc5,0x01,0x00,0x00,0xc6,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xc9,0x01,0x00,0x00,0xc7,0x01,0x00,0x00,
    -0xb7,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x08,0x01,0x00,0x00,
    -0xca,0x01,0x00,0x00,0x45,0x01,0x00,0x00,0xc9,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,0xcb,0x01,0x00,0x00,
    -0xca,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0xcd,0x00,0x00,0x00,
    -0xcc,0x01,0x00,0x00,0xb6,0x01,0x00,0x00,0xba,0x01,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0xcc,0x01,0x00,0x00,0xcb,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xce,0x01,0x00,0x00,
    -0xca,0x02,0x00,0x00,0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xac,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xae,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xa7,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xa7,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xd0,0x01,0x00,0x00,0xbc,0x02,0x00,0x00,0xd0,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xa4,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xa6,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xd2,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xd2,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xbd,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0xa6,0x01,0x00,0x00,0x14,0x02,0x00,0x00,0xd5,0x01,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,0xd8,0x01,0x00,0x00,
    -0xbd,0x02,0x00,0x00,0xbf,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xd4,0x01,0x00,0x00,0xd5,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xd8,0x01,0x00,0x00,0xd3,0x01,0x00,0x00,
    -0xd4,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xd3,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xda,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xda,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xc1,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0xd3,0x01,0x00,0x00,
    -0x12,0x02,0x00,0x00,0xdd,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc2,0x00,0x00,0x00,0xe0,0x01,0x00,0x00,0xc1,0x02,0x00,0x00,
    -0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xdc,0x01,0x00,0x00,
    -0xdd,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xe0,0x01,0x00,0x00,0xdb,0x01,0x00,0x00,0xdc,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xdb,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xe2,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xe2,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xc3,0x02,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0xdb,0x01,0x00,0x00,0x10,0x02,0x00,0x00,
    -0xe5,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,
    -0xe8,0x01,0x00,0x00,0xc3,0x02,0x00,0x00,0xbc,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xe4,0x01,0x00,0x00,0xe5,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xe8,0x01,0x00,0x00,
    -0xe3,0x01,0x00,0x00,0xe4,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xe3,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xea,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xea,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xc5,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0xe3,0x01,0x00,0x00,0x0e,0x02,0x00,0x00,0xeb,0x01,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,0xf0,0x01,0x00,0x00,
    -0xc5,0x02,0x00,0x00,0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xec,0x01,0x00,0x00,0xeb,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xf0,0x01,0x00,0x00,0xeb,0x01,0x00,0x00,
    -0xec,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xeb,0x01,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf2,0x01,0x00,0x00,
    -0xbd,0x02,0x00,0x00,0xbc,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xf4,0x01,0x00,0x00,0xf2,0x01,0x00,0x00,
    -0xc3,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xf6,0x01,0x00,0x00,0xf4,0x01,0x00,0x00,0xf5,0x01,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf8,0x01,0x00,0x00,
    -0xc1,0x02,0x00,0x00,0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xf9,0x01,0x00,0x00,0xf6,0x01,0x00,0x00,
    -0xf8,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xfb,0x01,0x00,0x00,0xf9,0x01,0x00,0x00,0xc5,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xff,0x01,0x00,0x00,
    -0xf8,0x01,0x00,0x00,0xc5,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xcd,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x89,0x01,0x00,0x00,
    -0xff,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,
    -0x01,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xcd,0x00,0x00,0x00,0x06,0x02,0x00,0x00,0xb6,0x01,0x00,0x00,
    -0xf4,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,
    -0x07,0x02,0x00,0x00,0x06,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xcd,0x00,0x00,0x00,0x09,0x02,0x00,0x00,0xca,0x00,0x00,0x00,
    -0xfb,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,
    -0x0a,0x02,0x00,0x00,0x09,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,
    -0xc4,0x00,0x00,0x00,0x0b,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x32,0x00,0x00,0x00,0x01,0x02,0x00,0x00,0x07,0x02,0x00,0x00,
    -0x0a,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0x09,0x02,0x00,0x00,
    -0x0b,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x0e,0x02,0x00,0x00,0xc5,0x02,0x00,0x00,0xd0,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xea,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xec,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xe5,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xe5,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x10,0x02,0x00,0x00,0xc3,0x02,0x00,0x00,
    -0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xe2,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xe4,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xdd,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xdd,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x12,0x02,0x00,0x00,
    -0xc1,0x02,0x00,0x00,0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xda,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xdc,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xd5,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xd5,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x14,0x02,0x00,0x00,0xbd,0x02,0x00,0x00,0xd0,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xd2,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xd4,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x72,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x72,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x16,0x02,0x00,0x00,0xb7,0x02,0x00,0x00,
    -0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x6f,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x71,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,
    -0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x67,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xd7,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xd7,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x18,0x02,0x00,0x00,0x9d,0x02,0x00,0x00,0x6d,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xd4,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xd6,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x1d,0x02,0x00,0x00,0x56,0x00,0x00,0x00,0x54,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1e,0x02,0x00,0x00,
    -0x97,0x00,0x00,0x00,0x1d,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x23,0x02,0x00,0x00,0x5a,0x00,0x00,0x00,
    -0xb9,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x24,0x02,0x00,0x00,0xa8,0x00,0x00,0x00,0x23,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x28,0x02,0x00,0x00,
    -0x14,0x00,0x00,0x00,0x27,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x29,0x02,0x00,0x00,0x28,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2a,0x02,0x00,0x00,
    -0x0f,0x00,0x00,0x00,0x29,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x2e,0x02,0x00,0x00,0x48,0x00,0x00,0x00,
    -0x29,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,
    -0x30,0x02,0x00,0x00,0x2f,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x31,0x02,0x00,0x00,
    +0xca,0x01,0x00,0x00,0xc7,0x01,0x00,0x00,0xc9,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xcc,0x01,0x00,0x00,
    +0xca,0x01,0x00,0x00,0xd1,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xce,0x01,0x00,0x00,0xcc,0x01,0x00,0x00,
    +0xcd,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xd0,0x01,0x00,0x00,0xce,0x01,0x00,0x00,0xbe,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x08,0x01,0x00,0x00,0xd1,0x01,0x00,0x00,
    +0x45,0x01,0x00,0x00,0xd0,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xc4,0x00,0x00,0x00,0xd2,0x01,0x00,0x00,0xd1,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xcd,0x00,0x00,0x00,0xd3,0x01,0x00,0x00,
    +0xbd,0x01,0x00,0x00,0xc1,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0xd3,0x01,0x00,0x00,0xd2,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xd5,0x01,0x00,0x00,0xd1,0x02,0x00,0x00,
    +0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xb3,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xb5,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xae,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xae,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd7,0x01,0x00,0x00,
    +0xc3,0x02,0x00,0x00,0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xab,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xad,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xd9,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xd9,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xc4,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0xad,0x01,0x00,0x00,
    +0x1b,0x02,0x00,0x00,0xdc,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc2,0x00,0x00,0x00,0xdf,0x01,0x00,0x00,0xc4,0x02,0x00,0x00,
    +0xbf,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xdb,0x01,0x00,0x00,
    +0xdc,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xdf,0x01,0x00,0x00,0xda,0x01,0x00,0x00,0xdb,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xda,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xe1,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xe1,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xc8,0x02,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0xda,0x01,0x00,0x00,0x19,0x02,0x00,0x00,
    +0xe4,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,
    +0xe7,0x01,0x00,0x00,0xc8,0x02,0x00,0x00,0x61,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xe3,0x01,0x00,0x00,0xe4,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xe7,0x01,0x00,0x00,
    +0xe2,0x01,0x00,0x00,0xe3,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xe2,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xe9,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xe9,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xca,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0xe2,0x01,0x00,0x00,0x17,0x02,0x00,0x00,0xec,0x01,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,0xef,0x01,0x00,0x00,
    +0xca,0x02,0x00,0x00,0xbc,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xeb,0x01,0x00,0x00,0xec,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xef,0x01,0x00,0x00,0xea,0x01,0x00,0x00,
    +0xeb,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xea,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xf1,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xf1,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xcc,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0xea,0x01,0x00,0x00,
    +0x15,0x02,0x00,0x00,0xf2,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc2,0x00,0x00,0x00,0xf7,0x01,0x00,0x00,0xcc,0x02,0x00,0x00,
    +0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xf3,0x01,0x00,0x00,
    +0xf2,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xf7,0x01,0x00,0x00,0xf2,0x01,0x00,0x00,0xf3,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xf2,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xf9,0x01,0x00,0x00,0xc4,0x02,0x00,0x00,
    +0xbc,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xfb,0x01,0x00,0x00,0xf9,0x01,0x00,0x00,0xca,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfd,0x01,0x00,0x00,
    +0xfb,0x01,0x00,0x00,0xfc,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xff,0x01,0x00,0x00,0xc8,0x02,0x00,0x00,
    +0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x00,0x02,0x00,0x00,0xfd,0x01,0x00,0x00,0xff,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x02,0x02,0x00,0x00,
    +0x00,0x02,0x00,0x00,0xcc,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x06,0x02,0x00,0x00,0xff,0x01,0x00,0x00,
    +0xcc,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xcd,0x00,0x00,0x00,
    +0x07,0x02,0x00,0x00,0x90,0x01,0x00,0x00,0x06,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,0x08,0x02,0x00,0x00,
    +0x07,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xcd,0x00,0x00,0x00,
    +0x0d,0x02,0x00,0x00,0xbd,0x01,0x00,0x00,0xfb,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,0x0e,0x02,0x00,0x00,
    +0x0d,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xcd,0x00,0x00,0x00,
    +0x10,0x02,0x00,0x00,0xca,0x00,0x00,0x00,0x02,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,0x11,0x02,0x00,0x00,
    +0x10,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0xc4,0x00,0x00,0x00,
    +0x12,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,
    +0x08,0x02,0x00,0x00,0x0e,0x02,0x00,0x00,0x11,0x02,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x10,0x02,0x00,0x00,0x12,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x15,0x02,0x00,0x00,
    +0xcc,0x02,0x00,0x00,0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xf1,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xf3,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xec,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xec,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x17,0x02,0x00,0x00,0xca,0x02,0x00,0x00,0xd0,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xe9,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xeb,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xe4,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xe4,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x19,0x02,0x00,0x00,0xc8,0x02,0x00,0x00,
    +0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xe1,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xe3,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xdc,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xdc,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1b,0x02,0x00,0x00,
    +0xc4,0x02,0x00,0x00,0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xd9,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xdb,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x79,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x79,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x1d,0x02,0x00,0x00,0xbe,0x02,0x00,0x00,0xd0,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x76,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x78,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x6e,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xd7,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xd7,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1f,0x02,0x00,0x00,
    +0xa4,0x02,0x00,0x00,0x6d,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xd4,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xd6,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x24,0x02,0x00,0x00,
    +0x56,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x25,0x02,0x00,0x00,0x97,0x00,0x00,0x00,
    +0x24,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x2a,0x02,0x00,0x00,0x5a,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2b,0x02,0x00,0x00,
    +0xa8,0x00,0x00,0x00,0x2a,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x17,0x00,0x00,0x00,0x2f,0x02,0x00,0x00,0x14,0x00,0x00,0x00,
    +0x2e,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x30,0x02,0x00,0x00,0x2f,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x31,0x02,0x00,0x00,0x0f,0x00,0x00,0x00,
     0x30,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x32,0x02,0x00,0x00,0x2e,0x02,0x00,0x00,0x31,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x33,0x02,0x00,0x00,
    -0x2a,0x02,0x00,0x00,0x32,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x35,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x35,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x9e,0x02,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,0x9b,0x02,0x00,0x00,
    -0x38,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,
    -0x3b,0x02,0x00,0x00,0x9e,0x02,0x00,0x00,0xbf,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x37,0x02,0x00,0x00,0x38,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x3b,0x02,0x00,0x00,
    -0x36,0x02,0x00,0x00,0x37,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x36,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x3d,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x3d,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x9f,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0x36,0x02,0x00,0x00,0x99,0x02,0x00,0x00,0x40,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,0x43,0x02,0x00,0x00,
    -0x9f,0x02,0x00,0x00,0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x3f,0x02,0x00,0x00,0x40,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x43,0x02,0x00,0x00,0x3e,0x02,0x00,0x00,
    -0x3f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x3e,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x47,0x02,0x00,0x00,
    -0x9f,0x02,0x00,0x00,0x62,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x48,0x02,0x00,0x00,0x1e,0x02,0x00,0x00,
    -0x47,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x4a,0x02,0x00,0x00,0x65,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4b,0x02,0x00,0x00,
    -0x48,0x02,0x00,0x00,0x4a,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x4f,0x02,0x00,0x00,0x9e,0x02,0x00,0x00,
    -0xbe,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x50,0x02,0x00,0x00,0x24,0x02,0x00,0x00,0x4f,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x52,0x02,0x00,0x00,
    -0x69,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x53,0x02,0x00,0x00,0x50,0x02,0x00,0x00,
    -0x52,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x55,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x55,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xa1,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0x3e,0x02,0x00,0x00,0x97,0x02,0x00,0x00,0x58,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,0x5b,0x02,0x00,0x00,
    -0xa1,0x02,0x00,0x00,0xbc,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x57,0x02,0x00,0x00,0x58,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x5b,0x02,0x00,0x00,0x56,0x02,0x00,0x00,
    -0x57,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x56,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x5d,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x5d,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xa3,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0x56,0x02,0x00,0x00,
    -0x95,0x02,0x00,0x00,0x60,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc2,0x00,0x00,0x00,0x63,0x02,0x00,0x00,0xa3,0x02,0x00,0x00,
    -0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x5f,0x02,0x00,0x00,
    -0x60,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x63,0x02,0x00,0x00,0x5e,0x02,0x00,0x00,0x5f,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x5e,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x66,0x02,0x00,0x00,0x4b,0x02,0x00,0x00,
    -0xa3,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,
    -0x69,0x02,0x00,0x00,0x66,0x02,0x00,0x00,0x37,0x00,0x00,0x00,
    -0xf7,0x00,0x03,0x00,0x6b,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x69,0x02,0x00,0x00,0x6a,0x02,0x00,0x00,
    -0x6b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x6a,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6e,0x02,0x00,0x00,
    -0x53,0x02,0x00,0x00,0xa1,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x17,0x00,0x00,0x00,0x6f,0x02,0x00,0x00,0x14,0x00,0x00,0x00,
    -0xd0,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x70,0x02,0x00,0x00,0x6f,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc2,0x00,0x00,0x00,0x71,0x02,0x00,0x00,0x6e,0x02,0x00,0x00,
    -0x70,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x6b,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x6b,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0xc2,0x00,0x00,0x00,0x72,0x02,0x00,0x00,0x69,0x02,0x00,0x00,
    -0x5e,0x02,0x00,0x00,0x71,0x02,0x00,0x00,0x6a,0x02,0x00,0x00,
    -0xf7,0x00,0x03,0x00,0x74,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x72,0x02,0x00,0x00,0x73,0x02,0x00,0x00,
    -0x74,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x73,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7c,0x02,0x00,0x00,
    -0x53,0x02,0x00,0x00,0xa1,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x17,0x00,0x00,0x00,0x7e,0x02,0x00,0x00,0x14,0x00,0x00,0x00,
    -0x7d,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x7f,0x02,0x00,0x00,0x7e,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x80,0x02,0x00,0x00,0x7c,0x02,0x00,0x00,
    -0x7f,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x81,0x02,0x00,0x00,0x33,0x02,0x00,0x00,0x80,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x83,0x02,0x00,0x00,
    -0x81,0x02,0x00,0x00,0x4b,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x85,0x02,0x00,0x00,0x83,0x02,0x00,0x00,
    -0xa3,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x87,0x02,0x00,0x00,0x9e,0x02,0x00,0x00,0xbc,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x89,0x02,0x00,0x00,
    -0x87,0x02,0x00,0x00,0xa1,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x8b,0x02,0x00,0x00,0x89,0x02,0x00,0x00,
    -0x8a,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x8d,0x02,0x00,0x00,0x9f,0x02,0x00,0x00,0x63,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8e,0x02,0x00,0x00,
    -0x8b,0x02,0x00,0x00,0x8d,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x35,0x02,0x00,0x00,0x48,0x00,0x00,0x00,0x30,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,0x37,0x02,0x00,0x00,
    +0x36,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x38,0x02,0x00,0x00,0x37,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x39,0x02,0x00,0x00,
    +0x35,0x02,0x00,0x00,0x38,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x3a,0x02,0x00,0x00,0x31,0x02,0x00,0x00,
    +0x39,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x3c,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x3c,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xa5,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0xd6,0x00,0x00,0x00,0xa2,0x02,0x00,0x00,0x3f,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,0x42,0x02,0x00,0x00,
    +0xa5,0x02,0x00,0x00,0xbf,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x3e,0x02,0x00,0x00,0x3f,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x42,0x02,0x00,0x00,0x3d,0x02,0x00,0x00,
    +0x3e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x3d,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x44,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x44,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xa6,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0x3d,0x02,0x00,0x00,
    +0xa0,0x02,0x00,0x00,0x47,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc2,0x00,0x00,0x00,0x4a,0x02,0x00,0x00,0xa6,0x02,0x00,0x00,
    +0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x46,0x02,0x00,0x00,
    +0x47,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x4a,0x02,0x00,0x00,0x45,0x02,0x00,0x00,0x46,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x45,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x4e,0x02,0x00,0x00,0xa6,0x02,0x00,0x00,
    +0x62,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x4f,0x02,0x00,0x00,0x25,0x02,0x00,0x00,0x4e,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x51,0x02,0x00,0x00,
    +0x65,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x52,0x02,0x00,0x00,0x4f,0x02,0x00,0x00,
    +0x51,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x56,0x02,0x00,0x00,0xa5,0x02,0x00,0x00,0xc5,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x57,0x02,0x00,0x00,
    +0x2b,0x02,0x00,0x00,0x56,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x59,0x02,0x00,0x00,0x69,0x00,0x00,0x00,
    +0xbc,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x5a,0x02,0x00,0x00,0x57,0x02,0x00,0x00,0x59,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x5c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x5c,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xa8,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0x45,0x02,0x00,0x00,
    +0x9e,0x02,0x00,0x00,0x5f,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc2,0x00,0x00,0x00,0x62,0x02,0x00,0x00,0xa8,0x02,0x00,0x00,
    +0xbc,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x5e,0x02,0x00,0x00,
    +0x5f,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x62,0x02,0x00,0x00,0x5d,0x02,0x00,0x00,0x5e,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x5d,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x64,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x64,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xaa,0x02,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0x5d,0x02,0x00,0x00,0x9c,0x02,0x00,0x00,
    +0x67,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,
    +0x6a,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,0x63,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x66,0x02,0x00,0x00,0x67,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x6a,0x02,0x00,0x00,
    +0x65,0x02,0x00,0x00,0x66,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x65,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x6d,0x02,0x00,0x00,0x52,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,0x70,0x02,0x00,0x00,
    +0x6d,0x02,0x00,0x00,0x37,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,
    +0x72,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x70,0x02,0x00,0x00,0x71,0x02,0x00,0x00,0x72,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x71,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x75,0x02,0x00,0x00,0x5a,0x02,0x00,0x00,
    +0xa8,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    +0x76,0x02,0x00,0x00,0x14,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x77,0x02,0x00,0x00,
    +0x76,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,
    +0x78,0x02,0x00,0x00,0x75,0x02,0x00,0x00,0x77,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x72,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x72,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0xc2,0x00,0x00,0x00,
    +0x79,0x02,0x00,0x00,0x70,0x02,0x00,0x00,0x65,0x02,0x00,0x00,
    +0x78,0x02,0x00,0x00,0x71,0x02,0x00,0x00,0xf7,0x00,0x03,0x00,
    +0x7b,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x79,0x02,0x00,0x00,0x7a,0x02,0x00,0x00,0x7b,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x7a,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x83,0x02,0x00,0x00,0x5a,0x02,0x00,0x00,
    +0xa8,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    +0x85,0x02,0x00,0x00,0x14,0x00,0x00,0x00,0x84,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x86,0x02,0x00,0x00,
    +0x85,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x87,0x02,0x00,0x00,0x83,0x02,0x00,0x00,0x86,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x88,0x02,0x00,0x00,
    +0x3a,0x02,0x00,0x00,0x87,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x8a,0x02,0x00,0x00,0x88,0x02,0x00,0x00,
    +0x52,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x8c,0x02,0x00,0x00,0x8a,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8e,0x02,0x00,0x00,
    +0xa5,0x02,0x00,0x00,0xbc,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x90,0x02,0x00,0x00,0x8e,0x02,0x00,0x00,
    -0xa3,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xcd,0x00,0x00,0x00,
    -0x91,0x02,0x00,0x00,0xca,0x00,0x00,0x00,0x90,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,0x92,0x02,0x00,0x00,
    -0x91,0x02,0x00,0x00,0x41,0x00,0x06,0x00,0x05,0x01,0x00,0x00,
    -0x93,0x02,0x00,0x00,0x78,0x02,0x00,0x00,0x35,0x00,0x00,0x00,
    -0x85,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0x93,0x02,0x00,0x00,
    -0x92,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x74,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x74,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x60,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x60,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x95,0x02,0x00,0x00,
    -0xa3,0x02,0x00,0x00,0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x5d,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x5f,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x58,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x58,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x97,0x02,0x00,0x00,0xa1,0x02,0x00,0x00,0xd0,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x55,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x57,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x40,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x40,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x99,0x02,0x00,0x00,0x9f,0x02,0x00,0x00,
    -0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x3d,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x3f,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x38,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x38,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9b,0x02,0x00,0x00,
    -0x9e,0x02,0x00,0x00,0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x35,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x37,0x02,0x00,0x00,
    -0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
    -};
    -const uint64_t matmul_f32_aligned_fp32_len = 10124;
    -
    -unsigned char matmul_f32_f16_data[] = {
    -0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
    -0xd9,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00,
    -0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x09,0x00,0x00,0x00,
    -0x11,0x00,0x02,0x00,0x51,0x11,0x00,0x00,0x0b,0x00,0x06,0x00,
    -0x01,0x00,0x00,0x00,0x47,0x4c,0x53,0x4c,0x2e,0x73,0x74,0x64,
    -0x2e,0x34,0x35,0x30,0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00,
    -0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0f,0x00,0x0f,0x00,
    -0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e,
    -0x00,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    -0x3e,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
    -0x06,0x01,0x00,0x00,0x47,0x01,0x00,0x00,0x52,0x01,0x00,0x00,
    -0x3a,0x02,0x00,0x00,0x83,0x02,0x00,0x00,0x10,0x00,0x06,0x00,
    -0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x0b,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x12,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x12,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,
    -0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x12,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0xa8,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x92,0x02,0x00,0x00,0x90,0x02,0x00,0x00,0x91,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x94,0x02,0x00,0x00,
    +0xa6,0x02,0x00,0x00,0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x95,0x02,0x00,0x00,0x92,0x02,0x00,0x00,
    +0x94,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x97,0x02,0x00,0x00,0x95,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xcd,0x00,0x00,0x00,0x98,0x02,0x00,0x00,
    +0xca,0x00,0x00,0x00,0x97,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xc4,0x00,0x00,0x00,0x99,0x02,0x00,0x00,0x98,0x02,0x00,0x00,
    +0x41,0x00,0x06,0x00,0x05,0x01,0x00,0x00,0x9a,0x02,0x00,0x00,
    +0x7f,0x02,0x00,0x00,0x35,0x00,0x00,0x00,0x8c,0x02,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x9a,0x02,0x00,0x00,0x99,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x7b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x7b,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x67,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x67,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x9c,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,
    +0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x64,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x66,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x5f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x5f,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9e,0x02,0x00,0x00,
    +0xa8,0x02,0x00,0x00,0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x5c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x5e,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x47,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x47,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xa0,0x02,0x00,0x00,0xa6,0x02,0x00,0x00,0xd0,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x44,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x46,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x3f,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x3f,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xa2,0x02,0x00,0x00,0xa5,0x02,0x00,0x00,
    +0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x3c,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x3e,0x02,0x00,0x00,0xfd,0x00,0x01,0x00,
    +0x38,0x00,0x01,0x00,
    +};
    +const uint64_t matmul_f32_f16_aligned_fp32_len = 10240;
    +
    +unsigned char matmul_f32_f16_fp32_data[] = {
    +0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
    +0xd5,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00,
    +0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x51,0x11,0x00,0x00,
    +0x0b,0x00,0x06,0x00,0x01,0x00,0x00,0x00,0x47,0x4c,0x53,0x4c,
    +0x2e,0x73,0x74,0x64,0x2e,0x34,0x35,0x30,0x00,0x00,0x00,0x00,
    +0x0e,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x0f,0x00,0x0f,0x00,0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x6d,0x61,0x69,0x6e,0x00,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    +0x14,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,
    +0xfa,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0x44,0x01,0x00,0x00,
    +0x50,0x01,0x00,0x00,0x36,0x02,0x00,0x00,0x7f,0x02,0x00,0x00,
    +0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x0b,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
     0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,
    -0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x12,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x28,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,
    -0x0b,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x2c,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x12,0x00,0x00,0x00,0x0d,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x34,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x12,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x38,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x3e,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x4d,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    -0x1b,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x50,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x54,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x61,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x63,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x6d,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0xa6,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xb8,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0xbb,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x03,0x01,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x04,0x01,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x04,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x04,0x01,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x06,0x01,0x00,0x00,
    -0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x06,0x01,0x00,0x00,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x21,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x22,0x01,0x00,0x00,
    -0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x4f,0x01,0x00,0x00,0x06,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    -0x48,0x00,0x04,0x00,0x50,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x50,0x01,0x00,0x00,
     0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x47,0x00,0x03,0x00,0x50,0x01,0x00,0x00,0x02,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x52,0x01,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x52,0x01,0x00,0x00,
    -0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x3a,0x02,0x00,0x00,0x0b,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x80,0x02,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x81,0x02,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x81,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x81,0x02,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x83,0x02,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x12,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,
    +0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x12,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x12,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,
    +0x09,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x12,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x2c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x30,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,0x0d,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    +0x12,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x38,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x3e,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    +0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x4d,0x00,0x00,0x00,
    +0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x50,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x54,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x61,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x63,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x6d,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x03,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xa6,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0xb8,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x02,0x01,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,
    +0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    +0x03,0x01,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x05,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x05,0x01,0x00,0x00,0x21,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x1e,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x1f,0x01,0x00,0x00,0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x4d,0x01,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x4e,0x01,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x4e,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x4e,0x01,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x50,0x01,0x00,0x00,
     0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x83,0x02,0x00,0x00,0x21,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    -0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00,
    -0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x17,0x00,0x04,0x00,0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x0a,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0x0a,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x0d,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x1e,0x00,0x10,0x00,
    -0x12,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x50,0x01,0x00,0x00,0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x36,0x02,0x00,0x00,0x0b,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x7c,0x02,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,
    +0x7d,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x7d,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    +0x7d,0x02,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x7f,0x02,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x7f,0x02,0x00,0x00,0x21,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00,
    +0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x15,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x17,0x00,0x04,0x00,0x09,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x0a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x0a,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x0d,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x1e,0x00,0x10,0x00,0x12,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
     0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
     0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
     0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
     0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x13,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    -0x12,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x13,0x00,0x00,0x00,
    -0x14,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x15,0x00,0x04,0x00,
    -0x15,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x16,0x00,0x00,0x00,
    -0x0b,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x17,0x00,0x00,0x00,
    -0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x15,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x0d,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x28,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    -0x2e,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x15,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x38,0x00,0x00,0x00,
    -0x40,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x3a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0x0a,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x0a,0x00,0x00,0x00,
    -0x4d,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x54,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x13,0x00,0x00,0x00,
    +0x09,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0x13,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x15,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    +0x16,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x17,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    +0x0d,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    +0x28,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x15,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x35,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x38,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x0a,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0x0a,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x50,0x00,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x54,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x38,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x38,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x62,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x61,0x00,0x00,0x00,
    +0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x64,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x62,0x00,0x00,0x00,
    +0x63,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x68,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x62,0x00,0x00,0x00,
    +0x63,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x6d,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x73,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x15,0x00,0x00,0x00,0x81,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    +0x91,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x15,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0xa1,0x00,0x00,0x00,
    +0x07,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0xa6,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x15,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,
    +0x84,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
    +0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,
     0x20,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0x55,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x38,0x00,0x00,0x00,
    -0x54,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0x59,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x38,0x00,0x00,0x00,
    -0x54,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x61,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x62,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x54,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x64,0x00,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x62,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x68,0x00,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x62,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
    -0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    -0x10,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0x6e,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    -0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0x73,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    -0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0x78,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    -0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0x7d,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    -0x3a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    -0x81,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x15,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x91,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    -0x97,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x15,0x00,0x00,0x00,0xa1,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    -0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa6,0x00,0x00,0x00,
    -0x40,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    -0xa8,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    -0x61,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,
    -0x84,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xba,0x00,0x00,0x00,
    -0x84,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
    -0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0xbc,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0xba,0x00,0x00,0x00,
    -0xbb,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0xbd,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,
    -0x61,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0xbe,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,
    -0xbd,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0xbf,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,
    +0xb9,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x54,0x00,0x00,0x00,
    +0xb8,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0xba,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x50,0x00,0x00,0x00,
    +0x63,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0xbb,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    +0xba,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xbd,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    +0xbc,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xbe,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    +0xb9,0x00,0x00,0x00,0xbd,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    +0xb7,0x00,0x00,0x00,0xbe,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    +0xbf,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0x14,0x00,0x02,0x00,
    +0xc1,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0xc3,0x00,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0xc4,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x61,0x00,0x00,0x00,
    +0x63,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0xc5,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,
     0xbe,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0xc0,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,
    -0xbb,0x00,0x00,0x00,0x14,0x00,0x02,0x00,0xc1,0x00,0x00,0x00,
    -0x16,0x00,0x03,0x00,0xc3,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,
    -0x84,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,
    -0x84,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,0xbe,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,
    -0x84,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,
    -0x1c,0x00,0x04,0x00,0xc7,0x00,0x00,0x00,0xc3,0x00,0x00,0x00,
    -0xc6,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xc8,0x00,0x00,0x00,
    -0x07,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0xc3,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x20,0x00,0x04,0x00,0xcc,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    -0xc3,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x16,0x00,0x03,0x00,
    -0xf6,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,0x80,0x00,0x00,0x00,
    -0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    -0x38,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,
    -0xf9,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,
    -0x20,0x00,0x04,0x00,0xfa,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0xf9,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xfa,0x00,0x00,0x00,
    -0xfb,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x80,0x00,0x00,0x00,
    -0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    -0x03,0x01,0x00,0x00,0xc3,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
    -0x04,0x01,0x00,0x00,0x03,0x01,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x05,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x04,0x01,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0x05,0x01,0x00,0x00,0x06,0x01,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x11,0x01,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0xc3,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x15,0x01,0x00,0x00,0x04,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x1b,0x01,0x00,0x00,
    +0xc6,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,
    +0xbb,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0xc7,0x00,0x00,0x00,
    +0xc3,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0xc8,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xcc,0x00,0x00,0x00,
    +0x07,0x00,0x00,0x00,0xc3,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x15,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,
     0x80,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0xf6,0x00,0x00,0x00,0x1f,0x01,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x21,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x33,0x00,0x06,0x00,
    -0x09,0x00,0x00,0x00,0x22,0x01,0x00,0x00,0x21,0x01,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,
    +0x84,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,
    +0x1c,0x00,0x04,0x00,0xf8,0x00,0x00,0x00,0xc3,0x00,0x00,0x00,
    +0xf7,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xf9,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0xf9,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,
    +0x80,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    +0x1d,0x00,0x03,0x00,0x02,0x01,0x00,0x00,0xc3,0x00,0x00,0x00,
    +0x1e,0x00,0x03,0x00,0x03,0x01,0x00,0x00,0x02,0x01,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x04,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x03,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,0x04,0x01,0x00,0x00,
    +0x05,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x10,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0xc3,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x13,0x01,0x00,0x00,0x04,0x00,0x00,0x00,
    +0xc3,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x19,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x1e,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x33,0x00,0x06,0x00,
    +0x09,0x00,0x00,0x00,0x1f,0x01,0x00,0x00,0x1e,0x01,0x00,0x00,
     0x3a,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x23,0x01,0x00,0x00,0x51,0x00,0x00,0x00,
    -0x22,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x24,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    -0x23,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x25,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x24,0x01,0x00,0x00,0x6d,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x43,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x20,0x01,0x00,0x00,0x51,0x00,0x00,0x00,
    +0x1f,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x21,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    +0x20,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x22,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x21,0x01,0x00,0x00,0x6d,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x40,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
     0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x44,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    -0xa6,0x00,0x00,0x00,0x43,0x01,0x00,0x00,0x1c,0x00,0x04,0x00,
    -0x45,0x01,0x00,0x00,0xf6,0x00,0x00,0x00,0x44,0x01,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x46,0x01,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x45,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,0x46,0x01,0x00,0x00,
    -0x47,0x01,0x00,0x00,0x04,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x4b,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
    -0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    -0x4f,0x01,0x00,0x00,0xf6,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
    -0x50,0x01,0x00,0x00,0x4f,0x01,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x51,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x50,0x01,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0x51,0x01,0x00,0x00,0x52,0x01,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x5d,0x01,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x65,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x41,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    +0xa6,0x00,0x00,0x00,0x40,0x01,0x00,0x00,0x1c,0x00,0x04,0x00,
    +0x42,0x01,0x00,0x00,0xc3,0x00,0x00,0x00,0x41,0x01,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x43,0x01,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x42,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,0x43,0x01,0x00,0x00,
    +0x44,0x01,0x00,0x00,0x04,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x48,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
    +0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x16,0x00,0x03,0x00,
    +0x4c,0x01,0x00,0x00,0x10,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    +0x4d,0x01,0x00,0x00,0x4c,0x01,0x00,0x00,0x1e,0x00,0x03,0x00,
    +0x4e,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x4f,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x4e,0x01,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x4f,0x01,0x00,0x00,0x50,0x01,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x5b,0x01,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x4c,0x01,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x64,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
     0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x6a,0x01,0x00,0x00,0x51,0x00,0x00,0x00,
    -0x22,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x6b,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    -0x6a,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x6c,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x6b,0x01,0x00,0x00,0x6d,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x6f,0x01,0x00,0x00,0x08,0x01,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x70,0x01,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x69,0x01,0x00,0x00,0x51,0x00,0x00,0x00,
    +0x1f,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x6a,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    +0x69,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x6b,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x6a,0x01,0x00,0x00,0x6d,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x6e,0x01,0x00,0x00,0x08,0x01,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x6f,0x01,0x00,0x00,
     0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x73,0x01,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x72,0x01,0x00,0x00,
     0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x8e,0x01,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x8d,0x01,0x00,0x00,
     0x84,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
    -0x1c,0x00,0x04,0x00,0x8f,0x01,0x00,0x00,0xf6,0x00,0x00,0x00,
    -0x8e,0x01,0x00,0x00,0x20,0x00,0x04,0x00,0x90,0x01,0x00,0x00,
    -0x07,0x00,0x00,0x00,0x8f,0x01,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0xa0,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
    -0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0xa6,0x01,0x00,0x00,0x07,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xbc,0x01,0x00,0x00,
    -0x84,0x00,0x00,0x00,0xbe,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,
    -0x1c,0x00,0x04,0x00,0xbd,0x01,0x00,0x00,0xf6,0x00,0x00,0x00,
    -0xbc,0x01,0x00,0x00,0x20,0x00,0x04,0x00,0xbe,0x01,0x00,0x00,
    -0x07,0x00,0x00,0x00,0xbd,0x01,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0xc7,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
    -0xb8,0x00,0x00,0x00,0xbe,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0xcf,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
    +0x1c,0x00,0x04,0x00,0x8e,0x01,0x00,0x00,0xc3,0x00,0x00,0x00,
    +0x8d,0x01,0x00,0x00,0x20,0x00,0x04,0x00,0x8f,0x01,0x00,0x00,
    +0x07,0x00,0x00,0x00,0x8e,0x01,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x9f,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
     0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0xfe,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    -0x61,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x15,0x00,0x00,0x00,0x32,0x02,0x00,0x00,0x08,0x00,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0x0a,0x00,0x00,0x00,0x3a,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x80,0x02,0x00,0x00,
    -0xc3,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x81,0x02,0x00,0x00,
    -0x80,0x02,0x00,0x00,0x20,0x00,0x04,0x00,0x82,0x02,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x81,0x02,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0x82,0x02,0x00,0x00,0x83,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x88,0x02,0x00,0x00,
    -0x05,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0x95,0x02,0x00,0x00,0x84,0x00,0x00,0x00,0x61,0x00,0x00,0x00,
    -0x63,0x00,0x00,0x00,0x36,0x00,0x05,0x00,0x02,0x00,0x00,0x00,
    -0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0xc8,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0x90,0x01,0x00,0x00,0x91,0x01,0x00,0x00,
    -0x07,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xbe,0x01,0x00,0x00,
    -0xbf,0x01,0x00,0x00,0x07,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x0d,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x0f,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x17,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    -0x16,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x19,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,
    -0x19,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x1f,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x14,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x25,0x00,0x00,0x00,
    -0x1a,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x17,0x00,0x00,0x00,0x29,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    -0x28,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x2a,0x00,0x00,0x00,0x29,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x2b,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,
    -0x2a,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    -0x2f,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x30,0x00,0x00,0x00,
    -0x2f,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x31,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x30,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x33,0x00,0x00,0x00,
    -0x31,0x00,0x00,0x00,0x2b,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x17,0x00,0x00,0x00,0x36,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    -0x35,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x37,0x00,0x00,0x00,0x36,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x39,0x00,0x00,0x00,0x37,0x00,0x00,0x00,
    -0x38,0x00,0x00,0x00,0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x3b,0x00,0x00,0x00,0x39,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3c,0x00,0x00,0x00,
    -0x3b,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x0d,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0xba,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    +0xbe,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,
    +0xbb,0x01,0x00,0x00,0xc3,0x00,0x00,0x00,0xba,0x01,0x00,0x00,
    +0x20,0x00,0x04,0x00,0xbc,0x01,0x00,0x00,0x07,0x00,0x00,0x00,
    +0xbb,0x01,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0xc5,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,
    +0xbe,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0xcd,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0xfc,0x01,0x00,0x00,0x84,0x00,0x00,0x00,0x61,0x00,0x00,0x00,
    +0x63,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    +0x2e,0x02,0x00,0x00,0x08,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0x0a,0x00,0x00,0x00,0x36,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x1d,0x00,0x03,0x00,0x7c,0x02,0x00,0x00,0xc3,0x00,0x00,0x00,
    +0x1e,0x00,0x03,0x00,0x7d,0x02,0x00,0x00,0x7c,0x02,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x7e,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x7d,0x02,0x00,0x00,0x3b,0x00,0x04,0x00,0x7e,0x02,0x00,0x00,
    +0x7f,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x15,0x00,0x00,0x00,0x84,0x02,0x00,0x00,0x05,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x91,0x02,0x00,0x00,
    +0x84,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
    +0x36,0x00,0x05,0x00,0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x05,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xc8,0x00,0x00,0x00,
    +0xc9,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0x8f,0x01,0x00,0x00,0x90,0x01,0x00,0x00,0x07,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0xbc,0x01,0x00,0x00,0xbd,0x01,0x00,0x00,
    +0x07,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,
    +0x0e,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,
    +0x0e,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x16,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x1a,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,
    +0x0f,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x17,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    +0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x24,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,
    +0x24,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    +0x29,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x28,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x2a,0x00,0x00,0x00,
    +0x29,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x2b,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,0x2a,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x2f,0x00,0x00,0x00,
    +0x14,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x2f,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x31,0x00,0x00,0x00,
    +0x25,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x33,0x00,0x00,0x00,0x31,0x00,0x00,0x00,
    +0x2b,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    +0x36,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x35,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x37,0x00,0x00,0x00,
    +0x36,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x39,0x00,0x00,0x00,0x37,0x00,0x00,0x00,0x38,0x00,0x00,0x00,
    +0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,
    +0x39,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x3c,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,
    +0x38,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,
    +0x40,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x41,0x00,0x00,0x00,
    +0x40,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x43,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x3c,0x00,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x48,0x00,0x00,0x00,
    +0x41,0x00,0x00,0x00,0x3c,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x0d,0x00,0x00,0x00,0x4a,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x4b,0x00,0x00,0x00,0x4a,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x0d,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,
     0x3f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x41,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x89,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x43,0x00,0x00,0x00,0x41,0x00,0x00,0x00,
    -0x3c,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x48,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x3c,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,0x4a,0x00,0x00,0x00,
    -0x3e,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0x4a,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    -0x4d,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x51,0x00,0x00,0x00,
    -0x4f,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x89,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x56,0x00,0x00,0x00,0x51,0x00,0x00,0x00,
    -0x55,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x5a,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0x59,0x00,0x00,0x00,
    -0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,
    -0x4f,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x89,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x65,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,
    -0x64,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x69,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,0x68,0x00,0x00,0x00,
    -0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,
    -0x4f,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x74,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,
    -0x73,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x79,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x78,0x00,0x00,0x00,
    -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,
    -0x4f,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x17,0x00,0x00,0x00,0x82,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    -0x81,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x83,0x00,0x00,0x00,0x82,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x48,0x00,0x00,0x00,
    -0x83,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    -0x87,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x88,0x00,0x00,0x00,
    -0x87,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x8a,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,
    -0x8a,0x00,0x00,0x00,0x83,0x00,0x00,0x00,0x0c,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x26,0x00,0x00,0x00,0x88,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x92,0x00,0x00,0x00,
    -0x14,0x00,0x00,0x00,0x91,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x93,0x00,0x00,0x00,0x92,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x94,0x00,0x00,0x00,
    -0x33,0x00,0x00,0x00,0x93,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x96,0x00,0x00,0x00,0x43,0x00,0x00,0x00,
    -0x38,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    -0x98,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x97,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x99,0x00,0x00,0x00,
    -0x98,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0x96,0x00,0x00,0x00,0x99,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,
    -0x94,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,
    -0x84,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x9e,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,
    -0x14,0x00,0x00,0x00,0xa1,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,
    -0x0f,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,
    -0xa6,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    -0xa9,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xaa,0x00,0x00,0x00,
    -0xa9,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xab,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,0xaa,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xac,0x00,0x00,0x00,
    -0xa4,0x00,0x00,0x00,0xab,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xae,0x00,0x00,0x00,0xac,0x00,0x00,0x00,
    -0x84,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xaf,0x00,0x00,0x00,0xae,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xb1,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xb1,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xa7,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
    -0xd0,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0xc2,0x00,0x00,0x00,0xa7,0x02,0x00,0x00,
    -0xc0,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xb3,0x00,0x00,0x00,
    -0xb2,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xc2,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xb2,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xcc,0x00,0x00,0x00,0xcd,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,
    -0xa7,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0xcd,0x00,0x00,0x00,
    -0xcb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xd0,0x00,0x00,0x00,0xa7,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xb1,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xb3,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xd3,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xd3,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xc0,0x02,0x00,0x00,0xaf,0x00,0x00,0x00,
    -0xb3,0x00,0x00,0x00,0x75,0x01,0x00,0x00,0xd6,0x00,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xbc,0x02,0x00,0x00,
    -0x9e,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,0x72,0x01,0x00,0x00,
    -0xd6,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xa8,0x02,0x00,0x00,0x84,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,
    -0x23,0x02,0x00,0x00,0xd6,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0xda,0x00,0x00,0x00,0xa8,0x02,0x00,0x00,
    -0x8e,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xd5,0x00,0x00,0x00,
    -0xd6,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xda,0x00,0x00,0x00,0xd4,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xd4,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xdc,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xdc,0x00,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xb8,0x02,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0xd4,0x00,0x00,0x00,0x27,0x01,0x00,0x00,
    -0xdf,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0xe2,0x00,0x00,0x00,0xb8,0x02,0x00,0x00,0x38,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xde,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xe2,0x00,0x00,0x00,
    -0xdd,0x00,0x00,0x00,0xde,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xdd,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xe6,0x00,0x00,0x00,0x96,0x00,0x00,0x00,0x74,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,
    -0xe6,0x00,0x00,0x00,0xb8,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,
    -0x37,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0xed,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xeb,0x00,0x00,0x00,
    -0xec,0x00,0x00,0x00,0xed,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xec,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xf0,0x00,0x00,0x00,0xa8,0x02,0x00,0x00,0x6f,0x00,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xf2,0x00,0x00,0x00,
    -0xf0,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xed,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xed,0x00,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0xc1,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,
    -0xeb,0x00,0x00,0x00,0xdd,0x00,0x00,0x00,0xf2,0x00,0x00,0x00,
    -0xec,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0xf5,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xf3,0x00,0x00,0x00,
    -0xf4,0x00,0x00,0x00,0x17,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xf4,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xfe,0x00,0x00,0x00,0x74,0x00,0x00,0x00,0xb8,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x00,0x01,0x00,0x00,
    -0xfe,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x02,0x01,0x00,0x00,0x00,0x01,0x00,0x00,
    -0x6f,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x0d,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,0x99,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0e,0x01,0x00,0x00,
    -0xbc,0x02,0x00,0x00,0x0d,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x10,0x01,0x00,0x00,0x0e,0x01,0x00,0x00,
    -0x6f,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x11,0x01,0x00,0x00,
    -0x12,0x01,0x00,0x00,0x06,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    -0x10,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    -0x13,0x01,0x00,0x00,0x12,0x01,0x00,0x00,0x73,0x00,0x04,0x00,
    -0xf6,0x00,0x00,0x00,0x14,0x01,0x00,0x00,0x13,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x15,0x01,0x00,0x00,0x16,0x01,0x00,0x00,
    -0xfb,0x00,0x00,0x00,0x02,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x16,0x01,0x00,0x00,0x14,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xf5,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x17,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1a,0x01,0x00,0x00,
    -0x74,0x00,0x00,0x00,0xb8,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x4f,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,
    +0x50,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x56,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0x55,0x00,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5a,0x00,0x00,0x00,
    +0x51,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x89,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,
    +0x50,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x65,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,0x64,0x00,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x69,0x00,0x00,0x00,
    +0x5e,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x89,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,
    +0x6e,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x74,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x73,0x00,0x00,0x00,
    +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x79,0x00,0x00,0x00,
    +0x4f,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,
    +0x7d,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    +0x82,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x81,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x83,0x00,0x00,0x00,
    +0x82,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x84,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x83,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x87,0x00,0x00,0x00,
    +0x14,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x88,0x00,0x00,0x00,0x87,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8a,0x00,0x00,0x00,
    +0x48,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,0x8a,0x00,0x00,0x00,
    +0x83,0x00,0x00,0x00,0x0c,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x8e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x26,0x00,0x00,0x00,
    +0x88,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x17,0x00,0x00,0x00,0x92,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    +0x91,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x93,0x00,0x00,0x00,0x92,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x94,0x00,0x00,0x00,0x33,0x00,0x00,0x00,
    +0x93,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x96,0x00,0x00,0x00,0x43,0x00,0x00,0x00,0x38,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x98,0x00,0x00,0x00,
    +0x14,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x99,0x00,0x00,0x00,0x98,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0x96,0x00,0x00,0x00,0x99,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,0x94,0x00,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x9d,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9e,0x00,0x00,0x00,
    +0x9d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x17,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    +0xa1,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0xa3,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,
    +0xa3,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xa7,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0xa6,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,
    +0x14,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0xaa,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xab,0x00,0x00,0x00,
    +0xa7,0x00,0x00,0x00,0xaa,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xac,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,
    +0xab,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xae,0x00,0x00,0x00,0xac,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,
    +0xae,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xb1,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xb1,0x00,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xa3,0x02,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,
    +0xb2,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0xc2,0x00,0x00,0x00,0xa3,0x02,0x00,0x00,0xc0,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xb3,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xc2,0x00,0x00,0x00,
    +0xb2,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xb2,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,
    +0xcd,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0xa3,0x02,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0xcd,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,
    +0xa3,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xb1,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xb3,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xd3,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xd3,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xbc,0x02,0x00,0x00,0xaf,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,
    +0x74,0x01,0x00,0x00,0xd6,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xb8,0x02,0x00,0x00,0x9e,0x00,0x00,0x00,
    +0xb3,0x00,0x00,0x00,0x71,0x01,0x00,0x00,0xd6,0x00,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xa4,0x02,0x00,0x00,
    +0x84,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,0x1f,0x02,0x00,0x00,
    +0xd6,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0xda,0x00,0x00,0x00,0xa4,0x02,0x00,0x00,0x8e,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xd5,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xda,0x00,0x00,0x00,
    +0xd4,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xd4,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xdc,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xdc,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xb4,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0xd4,0x00,0x00,0x00,0x24,0x01,0x00,0x00,0xdf,0x00,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xe2,0x00,0x00,0x00,
    +0xb4,0x02,0x00,0x00,0x38,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xde,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xe2,0x00,0x00,0x00,0xdd,0x00,0x00,0x00,
    +0xde,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xdd,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe6,0x00,0x00,0x00,
    +0x96,0x00,0x00,0x00,0x74,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0xe6,0x00,0x00,0x00,
    +0xb4,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0xeb,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0x37,0x00,0x00,0x00,
    +0xf7,0x00,0x03,0x00,0xed,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xeb,0x00,0x00,0x00,0xec,0x00,0x00,0x00,
    +0xed,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xec,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,
    +0xa4,0x02,0x00,0x00,0x6f,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0xf2,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,
    +0x8e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xed,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xed,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0xc1,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,
    +0xdd,0x00,0x00,0x00,0xf2,0x00,0x00,0x00,0xec,0x00,0x00,0x00,
    +0xf7,0x00,0x03,0x00,0xf5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xf3,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,
    +0x15,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xf4,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,
    +0x74,0x00,0x00,0x00,0xb4,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,
    +0xfe,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x01,0x01,0x00,0x00,0xff,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,
    +0xfd,0x00,0x00,0x00,0x99,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x0d,0x01,0x00,0x00,0xb8,0x02,0x00,0x00,
    +0x0c,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x0f,0x01,0x00,0x00,0x0d,0x01,0x00,0x00,0x6f,0x00,0x00,0x00,
    +0x41,0x00,0x06,0x00,0x10,0x01,0x00,0x00,0x11,0x01,0x00,0x00,
    +0x05,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0x0f,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x12,0x01,0x00,0x00,
    +0x11,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x13,0x01,0x00,0x00,
    +0x14,0x01,0x00,0x00,0xfa,0x00,0x00,0x00,0x01,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x14,0x01,0x00,0x00,0x12,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xf5,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x15,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x18,0x01,0x00,0x00,0x74,0x00,0x00,0x00,0xb4,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1a,0x01,0x00,0x00,
    +0x18,0x01,0x00,0x00,0x19,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,0x1a,0x01,0x00,0x00,
    -0x1b,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x1e,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,0x6f,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x15,0x01,0x00,0x00,0x20,0x01,0x00,0x00,
    -0xfb,0x00,0x00,0x00,0x1e,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x20,0x01,0x00,0x00,0x1f,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xf5,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xf5,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xdf,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xdf,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x27,0x01,0x00,0x00,0xb8,0x02,0x00,0x00,0x25,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xdc,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xde,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x29,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x29,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xb9,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0xde,0x00,0x00,0x00,0x6e,0x01,0x00,0x00,0x2c,0x01,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x2f,0x01,0x00,0x00,
    -0xb9,0x02,0x00,0x00,0xa6,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x2b,0x01,0x00,0x00,0x2c,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x2f,0x01,0x00,0x00,0x2a,0x01,0x00,0x00,
    -0x2b,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x2a,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x33,0x01,0x00,0x00,
    -0xa7,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x35,0x01,0x00,0x00,0x33,0x01,0x00,0x00,
    -0xb9,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    -0x36,0x01,0x00,0x00,0x14,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x37,0x01,0x00,0x00,
    -0x36,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0x38,0x01,0x00,0x00,0x35,0x01,0x00,0x00,0x37,0x01,0x00,0x00,
    -0xf7,0x00,0x03,0x00,0x3a,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x38,0x01,0x00,0x00,0x39,0x01,0x00,0x00,
    -0x3a,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x39,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3d,0x01,0x00,0x00,
    -0xa8,0x02,0x00,0x00,0x79,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0x3f,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,
    -0x8e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x3a,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x3a,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0xc1,0x00,0x00,0x00,0x40,0x01,0x00,0x00,0x38,0x01,0x00,0x00,
    -0x2a,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,0x39,0x01,0x00,0x00,
    -0xf7,0x00,0x03,0x00,0x42,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x40,0x01,0x00,0x00,0x41,0x01,0x00,0x00,
    -0x61,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x41,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4a,0x01,0x00,0x00,
    -0x7e,0x00,0x00,0x00,0xb9,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x4c,0x01,0x00,0x00,0x4a,0x01,0x00,0x00,
    -0x4b,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x4e,0x01,0x00,0x00,0x4c,0x01,0x00,0x00,0x79,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x59,0x01,0x00,0x00,
    -0x4a,0x01,0x00,0x00,0xaa,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x5a,0x01,0x00,0x00,0xc0,0x02,0x00,0x00,
    -0x59,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x5c,0x01,0x00,0x00,0x5a,0x01,0x00,0x00,0x79,0x00,0x00,0x00,
    -0x41,0x00,0x06,0x00,0x5d,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,
    -0x52,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0x5c,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xf6,0x00,0x00,0x00,0x5f,0x01,0x00,0x00,
    -0x5e,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x15,0x01,0x00,0x00,
    -0x60,0x01,0x00,0x00,0x47,0x01,0x00,0x00,0x4e,0x01,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x60,0x01,0x00,0x00,0x5f,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x42,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x61,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x64,0x01,0x00,0x00,0x7e,0x00,0x00,0x00,0xb9,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x66,0x01,0x00,0x00,
    -0x64,0x01,0x00,0x00,0x65,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x68,0x01,0x00,0x00,0x66,0x01,0x00,0x00,
    -0x79,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x15,0x01,0x00,0x00,
    -0x69,0x01,0x00,0x00,0x47,0x01,0x00,0x00,0x68,0x01,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x69,0x01,0x00,0x00,0x1f,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x42,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x42,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x2c,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x2c,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x6e,0x01,0x00,0x00,0xb9,0x02,0x00,0x00,
    -0x6c,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x29,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x2b,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,
    -0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x6f,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x72,0x01,0x00,0x00,
    -0xbc,0x02,0x00,0x00,0x70,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x75,0x01,0x00,0x00,0xc0,0x02,0x00,0x00,
    -0x73,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x77,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x77,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xc2,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0x2b,0x01,0x00,0x00,0x21,0x02,0x00,0x00,0x7a,0x01,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x7d,0x01,0x00,0x00,
    -0xc2,0x02,0x00,0x00,0x6d,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x79,0x01,0x00,0x00,0x7a,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x7d,0x01,0x00,0x00,0x78,0x01,0x00,0x00,
    -0x79,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x78,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x7f,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x7f,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xc6,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0x78,0x01,0x00,0x00,
    -0xab,0x01,0x00,0x00,0x82,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0x85,0x01,0x00,0x00,0xc6,0x02,0x00,0x00,
    -0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x81,0x01,0x00,0x00,
    -0x82,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x85,0x01,0x00,0x00,0x80,0x01,0x00,0x00,0x81,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x80,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x87,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x87,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xd8,0x02,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0x80,0x01,0x00,0x00,0xa9,0x01,0x00,0x00,
    -0x88,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0x8d,0x01,0x00,0x00,0xd8,0x02,0x00,0x00,0x63,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x89,0x01,0x00,0x00,0x88,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x8d,0x01,0x00,0x00,
    -0x88,0x01,0x00,0x00,0x89,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x88,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x93,0x01,0x00,0x00,0xc6,0x02,0x00,0x00,0x63,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x95,0x01,0x00,0x00,
    -0x93,0x01,0x00,0x00,0xd8,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x97,0x01,0x00,0x00,0x56,0x00,0x00,0x00,
    -0x54,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x99,0x01,0x00,0x00,0xc6,0x02,0x00,0x00,0x62,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9a,0x01,0x00,0x00,
    -0x97,0x01,0x00,0x00,0x99,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x9c,0x01,0x00,0x00,0x65,0x00,0x00,0x00,
    -0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x9d,0x01,0x00,0x00,0x9a,0x01,0x00,0x00,0x9c,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9f,0x01,0x00,0x00,
    -0x9d,0x01,0x00,0x00,0xd8,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xa1,0x01,0x00,0x00,0x9f,0x01,0x00,0x00,
    -0xa0,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xa3,0x01,0x00,0x00,0xa1,0x01,0x00,0x00,0xc2,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x15,0x01,0x00,0x00,0xa4,0x01,0x00,0x00,
    -0xfb,0x00,0x00,0x00,0xa3,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xf6,0x00,0x00,0x00,0xa5,0x01,0x00,0x00,0xa4,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xa6,0x01,0x00,0x00,0xa7,0x01,0x00,0x00,
    -0x91,0x01,0x00,0x00,0x95,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0xa7,0x01,0x00,0x00,0xa5,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xa9,0x01,0x00,0x00,0xd8,0x02,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x87,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x89,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x82,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x82,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xab,0x01,0x00,0x00,
    -0xc6,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x7f,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x81,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xad,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xad,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xc7,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0x81,0x01,0x00,0x00,
    -0xd9,0x01,0x00,0x00,0xb0,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0xb3,0x01,0x00,0x00,0xc7,0x02,0x00,0x00,
    -0xbe,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xaf,0x01,0x00,0x00,
    -0xb0,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xb3,0x01,0x00,0x00,0xae,0x01,0x00,0x00,0xaf,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xae,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xb5,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xb5,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xd5,0x02,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0xae,0x01,0x00,0x00,0xd7,0x01,0x00,0x00,
    -0xb6,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0xbb,0x01,0x00,0x00,0xd5,0x02,0x00,0x00,0xbb,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xb7,0x01,0x00,0x00,0xb6,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xbb,0x01,0x00,0x00,
    -0xb6,0x01,0x00,0x00,0xb7,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xb6,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xc1,0x01,0x00,0x00,0xc7,0x02,0x00,0x00,0xbb,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc3,0x01,0x00,0x00,
    -0xc1,0x01,0x00,0x00,0xd5,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xc5,0x01,0x00,0x00,0x5a,0x00,0x00,0x00,
    -0xb8,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xc8,0x01,0x00,0x00,0xc7,0x02,0x00,0x00,0xc7,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc9,0x01,0x00,0x00,
    -0xc5,0x01,0x00,0x00,0xc8,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xcb,0x01,0x00,0x00,0x69,0x00,0x00,0x00,
    -0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xcc,0x01,0x00,0x00,0xc9,0x01,0x00,0x00,0xcb,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xce,0x01,0x00,0x00,
    -0xcc,0x01,0x00,0x00,0xd5,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xd0,0x01,0x00,0x00,0xce,0x01,0x00,0x00,
    -0xcf,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xd2,0x01,0x00,0x00,0xd0,0x01,0x00,0x00,0xc2,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x15,0x01,0x00,0x00,0xd3,0x01,0x00,0x00,
    -0x47,0x01,0x00,0x00,0xd2,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xf6,0x00,0x00,0x00,0xd4,0x01,0x00,0x00,0xd3,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xa6,0x01,0x00,0x00,0xd5,0x01,0x00,0x00,
    -0xbf,0x01,0x00,0x00,0xc3,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0xd5,0x01,0x00,0x00,0xd4,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xd7,0x01,0x00,0x00,0xd5,0x02,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xb5,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xb7,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xb0,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xb0,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd9,0x01,0x00,0x00,
    -0xc7,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xad,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xaf,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xdb,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xdb,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xc8,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0xaf,0x01,0x00,0x00,
    -0x1f,0x02,0x00,0x00,0xde,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0xe1,0x01,0x00,0x00,0xc8,0x02,0x00,0x00,
    -0xbe,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xdd,0x01,0x00,0x00,
    -0xde,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xe1,0x01,0x00,0x00,0xdc,0x01,0x00,0x00,0xdd,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xdc,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xe3,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xe3,0x01,0x00,0x00,
    +0x6f,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x13,0x01,0x00,0x00,
    +0x1d,0x01,0x00,0x00,0xfa,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x1d,0x01,0x00,0x00,0xcb,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xf5,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xf5,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xdf,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xdf,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x24,0x01,0x00,0x00,0xb4,0x02,0x00,0x00,
    +0x22,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xdc,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xde,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x26,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x26,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xb5,0x02,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0xde,0x00,0x00,0x00,0x6d,0x01,0x00,0x00,
    +0x29,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0x2c,0x01,0x00,0x00,0xb5,0x02,0x00,0x00,0xa6,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x28,0x01,0x00,0x00,0x29,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x2c,0x01,0x00,0x00,
    +0x27,0x01,0x00,0x00,0x28,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x27,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x30,0x01,0x00,0x00,0xa7,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x32,0x01,0x00,0x00,
    +0x30,0x01,0x00,0x00,0xb5,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x17,0x00,0x00,0x00,0x33,0x01,0x00,0x00,0x14,0x00,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x34,0x01,0x00,0x00,0x33,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0x35,0x01,0x00,0x00,0x32,0x01,0x00,0x00,
    +0x34,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,0x37,0x01,0x00,0x00,
    +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x35,0x01,0x00,0x00,
    +0x36,0x01,0x00,0x00,0x37,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x36,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x3a,0x01,0x00,0x00,0xa4,0x02,0x00,0x00,0x79,0x00,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x3c,0x01,0x00,0x00,
    +0x3a,0x01,0x00,0x00,0x8e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x37,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x37,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0xc1,0x00,0x00,0x00,0x3d,0x01,0x00,0x00,
    +0x35,0x01,0x00,0x00,0x27,0x01,0x00,0x00,0x3c,0x01,0x00,0x00,
    +0x36,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,0x3f,0x01,0x00,0x00,
    +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x3d,0x01,0x00,0x00,
    +0x3e,0x01,0x00,0x00,0x60,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x3e,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x47,0x01,0x00,0x00,0x7e,0x00,0x00,0x00,0xb5,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x49,0x01,0x00,0x00,
    +0x47,0x01,0x00,0x00,0x48,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x4b,0x01,0x00,0x00,0x49,0x01,0x00,0x00,
    +0x79,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x57,0x01,0x00,0x00,0x47,0x01,0x00,0x00,0xaa,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x58,0x01,0x00,0x00,
    +0xbc,0x02,0x00,0x00,0x57,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x5a,0x01,0x00,0x00,0x58,0x01,0x00,0x00,
    +0x79,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x5b,0x01,0x00,0x00,
    +0x5c,0x01,0x00,0x00,0x50,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    +0x5a,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x4c,0x01,0x00,0x00,
    +0x5d,0x01,0x00,0x00,0x5c,0x01,0x00,0x00,0x73,0x00,0x04,0x00,
    +0xc3,0x00,0x00,0x00,0x5e,0x01,0x00,0x00,0x5d,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x13,0x01,0x00,0x00,0x5f,0x01,0x00,0x00,
    +0x44,0x01,0x00,0x00,0x4b,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x5f,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x3f,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x60,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x63,0x01,0x00,0x00,
    +0x7e,0x00,0x00,0x00,0xb5,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x65,0x01,0x00,0x00,0x63,0x01,0x00,0x00,
    +0x64,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x67,0x01,0x00,0x00,0x65,0x01,0x00,0x00,0x79,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x13,0x01,0x00,0x00,0x68,0x01,0x00,0x00,
    +0x44,0x01,0x00,0x00,0x67,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x68,0x01,0x00,0x00,0xcb,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x3f,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x3f,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x29,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x29,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x6d,0x01,0x00,0x00,0xb5,0x02,0x00,0x00,0x6b,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x26,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x28,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x6e,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x71,0x01,0x00,0x00,0xb8,0x02,0x00,0x00,
    +0x6f,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x74,0x01,0x00,0x00,0xbc,0x02,0x00,0x00,0x72,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x76,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x76,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xbe,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0x28,0x01,0x00,0x00,
    +0x1d,0x02,0x00,0x00,0x79,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0x7c,0x01,0x00,0x00,0xbe,0x02,0x00,0x00,
    +0x6d,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x78,0x01,0x00,0x00,
    +0x79,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x7c,0x01,0x00,0x00,0x77,0x01,0x00,0x00,0x78,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x77,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x7e,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x7e,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xc2,0x02,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0x77,0x01,0x00,0x00,0xa9,0x01,0x00,0x00,
    +0x81,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0x84,0x01,0x00,0x00,0xc2,0x02,0x00,0x00,0x61,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x80,0x01,0x00,0x00,0x81,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x84,0x01,0x00,0x00,
    +0x7f,0x01,0x00,0x00,0x80,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x7f,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x86,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x86,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xd4,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x7f,0x01,0x00,0x00,0xa7,0x01,0x00,0x00,0x87,0x01,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x8c,0x01,0x00,0x00,
    +0xd4,0x02,0x00,0x00,0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x88,0x01,0x00,0x00,0x87,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x8c,0x01,0x00,0x00,0x87,0x01,0x00,0x00,
    +0x88,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x87,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x92,0x01,0x00,0x00,
    +0xc2,0x02,0x00,0x00,0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x94,0x01,0x00,0x00,0x92,0x01,0x00,0x00,
    +0xd4,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x96,0x01,0x00,0x00,0x56,0x00,0x00,0x00,0x54,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x98,0x01,0x00,0x00,
    +0xc2,0x02,0x00,0x00,0x62,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x99,0x01,0x00,0x00,0x96,0x01,0x00,0x00,
    +0x98,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x9b,0x01,0x00,0x00,0x65,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9c,0x01,0x00,0x00,
    +0x99,0x01,0x00,0x00,0x9b,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x9e,0x01,0x00,0x00,0x9c,0x01,0x00,0x00,
    +0xd4,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xa0,0x01,0x00,0x00,0x9e,0x01,0x00,0x00,0x9f,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa2,0x01,0x00,0x00,
    +0xa0,0x01,0x00,0x00,0xbe,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x13,0x01,0x00,0x00,0xa3,0x01,0x00,0x00,0xfa,0x00,0x00,0x00,
    +0xa2,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    +0xa4,0x01,0x00,0x00,0xa3,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xcc,0x00,0x00,0x00,0xa5,0x01,0x00,0x00,0x90,0x01,0x00,0x00,
    +0x94,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xa5,0x01,0x00,0x00,
    +0xa4,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xa7,0x01,0x00,0x00,0xd4,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x86,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x88,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x81,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x81,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xa9,0x01,0x00,0x00,0xc2,0x02,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x7e,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x80,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xab,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xab,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xc3,0x02,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0x80,0x01,0x00,0x00,0xd7,0x01,0x00,0x00,
    +0xae,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0xb1,0x01,0x00,0x00,0xc3,0x02,0x00,0x00,0xbe,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xad,0x01,0x00,0x00,0xae,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xb1,0x01,0x00,0x00,
    +0xac,0x01,0x00,0x00,0xad,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xac,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xb3,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xb3,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xd1,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0xac,0x01,0x00,0x00,0xd5,0x01,0x00,0x00,0xb4,0x01,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xb9,0x01,0x00,0x00,
    +0xd1,0x02,0x00,0x00,0xbb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xb5,0x01,0x00,0x00,0xb4,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xb9,0x01,0x00,0x00,0xb4,0x01,0x00,0x00,
    +0xb5,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xb4,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbf,0x01,0x00,0x00,
    +0xc3,0x02,0x00,0x00,0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xc1,0x01,0x00,0x00,0xbf,0x01,0x00,0x00,
    +0xd1,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xc3,0x01,0x00,0x00,0x5a,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc6,0x01,0x00,0x00,
    +0xc3,0x02,0x00,0x00,0xc5,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xc7,0x01,0x00,0x00,0xc3,0x01,0x00,0x00,
    +0xc6,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xc9,0x01,0x00,0x00,0x69,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xca,0x01,0x00,0x00,
    +0xc7,0x01,0x00,0x00,0xc9,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xcc,0x01,0x00,0x00,0xca,0x01,0x00,0x00,
    +0xd1,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xce,0x01,0x00,0x00,0xcc,0x01,0x00,0x00,0xcd,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd0,0x01,0x00,0x00,
    +0xce,0x01,0x00,0x00,0xbe,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x13,0x01,0x00,0x00,0xd1,0x01,0x00,0x00,0x44,0x01,0x00,0x00,
    +0xd0,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    +0xd2,0x01,0x00,0x00,0xd1,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xcc,0x00,0x00,0x00,0xd3,0x01,0x00,0x00,0xbd,0x01,0x00,0x00,
    +0xc1,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xd3,0x01,0x00,0x00,
    +0xd2,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xd5,0x01,0x00,0x00,0xd1,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xb3,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xb5,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xae,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xae,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xd7,0x01,0x00,0x00,0xc3,0x02,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xab,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xad,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xd9,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xd9,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xc4,0x02,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0xad,0x01,0x00,0x00,0x1b,0x02,0x00,0x00,
    +0xdc,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0xdf,0x01,0x00,0x00,0xc4,0x02,0x00,0x00,0xbe,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xdb,0x01,0x00,0x00,0xdc,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xdf,0x01,0x00,0x00,
    +0xda,0x01,0x00,0x00,0xdb,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xda,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xe1,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xe1,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xc8,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0xda,0x01,0x00,0x00,0x19,0x02,0x00,0x00,0xe4,0x01,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xe7,0x01,0x00,0x00,
    +0xc8,0x02,0x00,0x00,0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xe3,0x01,0x00,0x00,0xe4,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xe7,0x01,0x00,0x00,0xe2,0x01,0x00,0x00,
    +0xe3,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xe2,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xe9,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xe9,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xca,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0xe2,0x01,0x00,0x00,
    +0x17,0x02,0x00,0x00,0xec,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0xef,0x01,0x00,0x00,0xca,0x02,0x00,0x00,
    +0xbb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xeb,0x01,0x00,0x00,
    +0xec,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xef,0x01,0x00,0x00,0xea,0x01,0x00,0x00,0xeb,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xea,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xf1,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xf1,0x01,0x00,0x00,
     0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xcc,0x02,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0xdc,0x01,0x00,0x00,0x1d,0x02,0x00,0x00,
    -0xe6,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0xe9,0x01,0x00,0x00,0xcc,0x02,0x00,0x00,0x61,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xe5,0x01,0x00,0x00,0xe6,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xe9,0x01,0x00,0x00,
    -0xe4,0x01,0x00,0x00,0xe5,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xe4,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xeb,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xeb,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xce,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0xe4,0x01,0x00,0x00,0x1b,0x02,0x00,0x00,0xee,0x01,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xf1,0x01,0x00,0x00,
    -0xce,0x02,0x00,0x00,0xbb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xed,0x01,0x00,0x00,0xee,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xf1,0x01,0x00,0x00,0xec,0x01,0x00,0x00,
    -0xed,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xec,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xf3,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xf3,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xd0,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0xec,0x01,0x00,0x00,
    -0x19,0x02,0x00,0x00,0xf4,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0xf9,0x01,0x00,0x00,0xd0,0x02,0x00,0x00,
    -0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xf5,0x01,0x00,0x00,
    -0xf4,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xf9,0x01,0x00,0x00,0xf4,0x01,0x00,0x00,0xf5,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xf4,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xfb,0x01,0x00,0x00,0xc8,0x02,0x00,0x00,
    -0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xfd,0x01,0x00,0x00,0xfb,0x01,0x00,0x00,0xce,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xff,0x01,0x00,0x00,
    -0xfd,0x01,0x00,0x00,0xfe,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x01,0x02,0x00,0x00,0xcc,0x02,0x00,0x00,
    -0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x02,0x02,0x00,0x00,0xff,0x01,0x00,0x00,0x01,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x04,0x02,0x00,0x00,
    -0x02,0x02,0x00,0x00,0xd0,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x08,0x02,0x00,0x00,0x01,0x02,0x00,0x00,
    -0xd0,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xa6,0x01,0x00,0x00,
    -0x09,0x02,0x00,0x00,0x91,0x01,0x00,0x00,0x08,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xf6,0x00,0x00,0x00,0x0a,0x02,0x00,0x00,
    -0x09,0x02,0x00,0x00,0x73,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    -0x0b,0x02,0x00,0x00,0x0a,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xa6,0x01,0x00,0x00,0x10,0x02,0x00,0x00,0xbf,0x01,0x00,0x00,
    -0xfd,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xf6,0x00,0x00,0x00,
    -0x11,0x02,0x00,0x00,0x10,0x02,0x00,0x00,0x73,0x00,0x04,0x00,
    -0xc3,0x00,0x00,0x00,0x12,0x02,0x00,0x00,0x11,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,0x14,0x02,0x00,0x00,
    -0xc9,0x00,0x00,0x00,0x04,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xc3,0x00,0x00,0x00,0x15,0x02,0x00,0x00,0x14,0x02,0x00,0x00,
    -0x0c,0x00,0x08,0x00,0xc3,0x00,0x00,0x00,0x16,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x0b,0x02,0x00,0x00,
    -0x12,0x02,0x00,0x00,0x15,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x14,0x02,0x00,0x00,0x16,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x19,0x02,0x00,0x00,0xd0,0x02,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xf3,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xf5,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xee,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xee,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1b,0x02,0x00,0x00,
    -0xce,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xeb,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xed,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xe6,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xe6,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x1d,0x02,0x00,0x00,0xcc,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xe3,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xe5,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xde,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xde,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x1f,0x02,0x00,0x00,0xc8,0x02,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xdb,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xdd,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x7a,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x7a,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x21,0x02,0x00,0x00,
    -0xc2,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x77,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x79,0x01,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0xea,0x01,0x00,0x00,0x15,0x02,0x00,0x00,
    +0xf2,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0xf7,0x01,0x00,0x00,0xcc,0x02,0x00,0x00,0x63,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xf3,0x01,0x00,0x00,0xf2,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xf7,0x01,0x00,0x00,
    +0xf2,0x01,0x00,0x00,0xf3,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xf2,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xf9,0x01,0x00,0x00,0xc4,0x02,0x00,0x00,0xbb,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfb,0x01,0x00,0x00,
    +0xf9,0x01,0x00,0x00,0xca,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xfd,0x01,0x00,0x00,0xfb,0x01,0x00,0x00,
    +0xfc,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xff,0x01,0x00,0x00,0xc8,0x02,0x00,0x00,0x63,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x00,0x02,0x00,0x00,
    +0xfd,0x01,0x00,0x00,0xff,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x02,0x02,0x00,0x00,0x00,0x02,0x00,0x00,
    +0xcc,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x02,0x00,0x00,0xff,0x01,0x00,0x00,0xcc,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,0x07,0x02,0x00,0x00,
    +0x90,0x01,0x00,0x00,0x06,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xc3,0x00,0x00,0x00,0x08,0x02,0x00,0x00,0x07,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,0x0d,0x02,0x00,0x00,
    +0xbd,0x01,0x00,0x00,0xfb,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xc3,0x00,0x00,0x00,0x0e,0x02,0x00,0x00,0x0d,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,0x10,0x02,0x00,0x00,
    +0xc9,0x00,0x00,0x00,0x02,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xc3,0x00,0x00,0x00,0x11,0x02,0x00,0x00,0x10,0x02,0x00,0x00,
    +0x0c,0x00,0x08,0x00,0xc3,0x00,0x00,0x00,0x12,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x08,0x02,0x00,0x00,
    +0x0e,0x02,0x00,0x00,0x11,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x10,0x02,0x00,0x00,0x12,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x15,0x02,0x00,0x00,0xcc,0x02,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xf1,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xf3,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xec,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xec,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x17,0x02,0x00,0x00,
    +0xca,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xe9,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xeb,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xe4,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xe4,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x19,0x02,0x00,0x00,0xc8,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xe1,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xe3,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xdc,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xdc,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x1b,0x02,0x00,0x00,0xc4,0x02,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xd9,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xdb,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x79,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x79,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1d,0x02,0x00,0x00,
    +0xbe,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x76,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x78,0x01,0x00,0x00,
     0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x6f,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xd6,0x00,0x00,0x00,
    +0x6e,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xd6,0x00,0x00,0x00,
     0xf8,0x00,0x02,0x00,0xd6,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x23,0x02,0x00,0x00,0xa8,0x02,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x1f,0x02,0x00,0x00,0xa4,0x02,0x00,0x00,
     0x6d,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xd3,0x00,0x00,0x00,
     0xf8,0x00,0x02,0x00,0xd5,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x28,0x02,0x00,0x00,0x56,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x24,0x02,0x00,0x00,0x56,0x00,0x00,0x00,
     0x54,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x29,0x02,0x00,0x00,0x96,0x00,0x00,0x00,0x28,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2e,0x02,0x00,0x00,
    +0x25,0x02,0x00,0x00,0x96,0x00,0x00,0x00,0x24,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2a,0x02,0x00,0x00,
     0x5a,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x2f,0x02,0x00,0x00,0xa7,0x00,0x00,0x00,
    -0x2e,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    -0x33,0x02,0x00,0x00,0x14,0x00,0x00,0x00,0x32,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x34,0x02,0x00,0x00,
    -0x33,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x35,0x02,0x00,0x00,0x0f,0x00,0x00,0x00,0x34,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x39,0x02,0x00,0x00,
    -0x48,0x00,0x00,0x00,0x34,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x0d,0x00,0x00,0x00,0x3b,0x02,0x00,0x00,0x3a,0x02,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x2b,0x02,0x00,0x00,0xa7,0x00,0x00,0x00,
    +0x2a,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    +0x2f,0x02,0x00,0x00,0x14,0x00,0x00,0x00,0x2e,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x30,0x02,0x00,0x00,
    +0x2f,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x31,0x02,0x00,0x00,0x0f,0x00,0x00,0x00,0x30,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x35,0x02,0x00,0x00,
    +0x48,0x00,0x00,0x00,0x30,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x0d,0x00,0x00,0x00,0x37,0x02,0x00,0x00,0x36,0x02,0x00,0x00,
     0x0c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x3c,0x02,0x00,0x00,0x3b,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x3d,0x02,0x00,0x00,0x39,0x02,0x00,0x00,
    -0x3c,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x3e,0x02,0x00,0x00,0x35,0x02,0x00,0x00,0x3d,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x40,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x40,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xa9,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,
    -0xa6,0x02,0x00,0x00,0x43,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0x46,0x02,0x00,0x00,0xa9,0x02,0x00,0x00,
    -0xbe,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x42,0x02,0x00,0x00,
    -0x43,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x46,0x02,0x00,0x00,0x41,0x02,0x00,0x00,0x42,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x41,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x48,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x48,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xaa,0x02,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0x41,0x02,0x00,0x00,0xa4,0x02,0x00,0x00,
    -0x4b,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0x4e,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,0x61,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x4a,0x02,0x00,0x00,0x4b,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x4e,0x02,0x00,0x00,
    -0x49,0x02,0x00,0x00,0x4a,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x49,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x52,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,0x62,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x53,0x02,0x00,0x00,
    -0x29,0x02,0x00,0x00,0x52,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x55,0x02,0x00,0x00,0x65,0x00,0x00,0x00,
    +0x38,0x02,0x00,0x00,0x37,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x39,0x02,0x00,0x00,0x35,0x02,0x00,0x00,
    +0x38,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x3a,0x02,0x00,0x00,0x31,0x02,0x00,0x00,0x39,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x3c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x3c,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xa5,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,
    +0xa2,0x02,0x00,0x00,0x3f,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0x42,0x02,0x00,0x00,0xa5,0x02,0x00,0x00,
    +0xbe,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x3e,0x02,0x00,0x00,
    +0x3f,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x42,0x02,0x00,0x00,0x3d,0x02,0x00,0x00,0x3e,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x3d,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x44,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x44,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xa6,0x02,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0x3d,0x02,0x00,0x00,0xa0,0x02,0x00,0x00,
    +0x47,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0x4a,0x02,0x00,0x00,0xa6,0x02,0x00,0x00,0x61,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x46,0x02,0x00,0x00,0x47,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x4a,0x02,0x00,0x00,
    +0x45,0x02,0x00,0x00,0x46,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x45,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x4e,0x02,0x00,0x00,0xa6,0x02,0x00,0x00,0x62,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4f,0x02,0x00,0x00,
    +0x25,0x02,0x00,0x00,0x4e,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x51,0x02,0x00,0x00,0x65,0x00,0x00,0x00,
     0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x56,0x02,0x00,0x00,0x53,0x02,0x00,0x00,0x55,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5a,0x02,0x00,0x00,
    -0xa9,0x02,0x00,0x00,0xc7,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x5b,0x02,0x00,0x00,0x2f,0x02,0x00,0x00,
    -0x5a,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x5d,0x02,0x00,0x00,0x69,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5e,0x02,0x00,0x00,
    -0x5b,0x02,0x00,0x00,0x5d,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x60,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x60,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xac,0x02,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0x49,0x02,0x00,0x00,0xa2,0x02,0x00,0x00,
    -0x63,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0x66,0x02,0x00,0x00,0xac,0x02,0x00,0x00,0xbb,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x62,0x02,0x00,0x00,0x63,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x66,0x02,0x00,0x00,
    -0x61,0x02,0x00,0x00,0x62,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x61,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x68,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x68,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xae,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0x61,0x02,0x00,0x00,0xa0,0x02,0x00,0x00,0x6b,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x6e,0x02,0x00,0x00,
    -0xae,0x02,0x00,0x00,0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x6a,0x02,0x00,0x00,0x6b,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x6e,0x02,0x00,0x00,0x69,0x02,0x00,0x00,
    -0x6a,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x69,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x71,0x02,0x00,0x00,
    -0x56,0x02,0x00,0x00,0xae,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0x74,0x02,0x00,0x00,0x71,0x02,0x00,0x00,
    -0x37,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0x76,0x02,0x00,0x00,
    -0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x74,0x02,0x00,0x00,
    -0x75,0x02,0x00,0x00,0x76,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x75,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x79,0x02,0x00,0x00,0x5e,0x02,0x00,0x00,0xac,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x7a,0x02,0x00,0x00,
    +0x52,0x02,0x00,0x00,0x4f,0x02,0x00,0x00,0x51,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x56,0x02,0x00,0x00,
    +0xa5,0x02,0x00,0x00,0xc5,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x57,0x02,0x00,0x00,0x2b,0x02,0x00,0x00,
    +0x56,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x59,0x02,0x00,0x00,0x69,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5a,0x02,0x00,0x00,
    +0x57,0x02,0x00,0x00,0x59,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x5c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x5c,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xa8,0x02,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0x45,0x02,0x00,0x00,0x9e,0x02,0x00,0x00,
    +0x5f,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0x62,0x02,0x00,0x00,0xa8,0x02,0x00,0x00,0xbb,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x5e,0x02,0x00,0x00,0x5f,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x62,0x02,0x00,0x00,
    +0x5d,0x02,0x00,0x00,0x5e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x5d,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x64,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x64,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xaa,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x5d,0x02,0x00,0x00,0x9c,0x02,0x00,0x00,0x67,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x6a,0x02,0x00,0x00,
    +0xaa,0x02,0x00,0x00,0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x66,0x02,0x00,0x00,0x67,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x6a,0x02,0x00,0x00,0x65,0x02,0x00,0x00,
    +0x66,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x65,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6d,0x02,0x00,0x00,
    +0x52,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0x70,0x02,0x00,0x00,0x6d,0x02,0x00,0x00,
    +0x37,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0x72,0x02,0x00,0x00,
    +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x70,0x02,0x00,0x00,
    +0x71,0x02,0x00,0x00,0x72,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x71,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x75,0x02,0x00,0x00,0x5a,0x02,0x00,0x00,0xa8,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x76,0x02,0x00,0x00,
     0x14,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x7b,0x02,0x00,0x00,0x7a,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x7c,0x02,0x00,0x00,
    -0x79,0x02,0x00,0x00,0x7b,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x76,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x76,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0xc1,0x00,0x00,0x00,0x7d,0x02,0x00,0x00,
    -0x74,0x02,0x00,0x00,0x69,0x02,0x00,0x00,0x7c,0x02,0x00,0x00,
    -0x75,0x02,0x00,0x00,0xf7,0x00,0x03,0x00,0x7f,0x02,0x00,0x00,
    -0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x7d,0x02,0x00,0x00,
    -0x7e,0x02,0x00,0x00,0x7f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x7e,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x87,0x02,0x00,0x00,0x5e,0x02,0x00,0x00,0xac,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x89,0x02,0x00,0x00,
    -0x14,0x00,0x00,0x00,0x88,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x8a,0x02,0x00,0x00,0x89,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8b,0x02,0x00,0x00,
    -0x87,0x02,0x00,0x00,0x8a,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x8c,0x02,0x00,0x00,0x3e,0x02,0x00,0x00,
    -0x8b,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x8e,0x02,0x00,0x00,0x8c,0x02,0x00,0x00,0x56,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x90,0x02,0x00,0x00,
    -0x8e,0x02,0x00,0x00,0xae,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x92,0x02,0x00,0x00,0xa9,0x02,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x77,0x02,0x00,0x00,0x76,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x78,0x02,0x00,0x00,
    +0x75,0x02,0x00,0x00,0x77,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x72,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x72,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0xc1,0x00,0x00,0x00,0x79,0x02,0x00,0x00,
    +0x70,0x02,0x00,0x00,0x65,0x02,0x00,0x00,0x78,0x02,0x00,0x00,
    +0x71,0x02,0x00,0x00,0xf7,0x00,0x03,0x00,0x7b,0x02,0x00,0x00,
    +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x79,0x02,0x00,0x00,
    +0x7a,0x02,0x00,0x00,0x7b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x7a,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x83,0x02,0x00,0x00,0x5a,0x02,0x00,0x00,0xa8,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x85,0x02,0x00,0x00,
    +0x14,0x00,0x00,0x00,0x84,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x86,0x02,0x00,0x00,0x85,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x87,0x02,0x00,0x00,
    +0x83,0x02,0x00,0x00,0x86,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x88,0x02,0x00,0x00,0x3a,0x02,0x00,0x00,
    +0x87,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x8a,0x02,0x00,0x00,0x88,0x02,0x00,0x00,0x52,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8c,0x02,0x00,0x00,
    +0x8a,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x8e,0x02,0x00,0x00,0xa5,0x02,0x00,0x00,
     0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x94,0x02,0x00,0x00,0x92,0x02,0x00,0x00,0xac,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x96,0x02,0x00,0x00,
    -0x94,0x02,0x00,0x00,0x95,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x98,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,
    +0x90,0x02,0x00,0x00,0x8e,0x02,0x00,0x00,0xa8,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x92,0x02,0x00,0x00,
    +0x90,0x02,0x00,0x00,0x91,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x94,0x02,0x00,0x00,0xa6,0x02,0x00,0x00,
     0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x99,0x02,0x00,0x00,0x96,0x02,0x00,0x00,0x98,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9b,0x02,0x00,0x00,
    -0x99,0x02,0x00,0x00,0xae,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xcc,0x00,0x00,0x00,0x9c,0x02,0x00,0x00,0xc9,0x00,0x00,0x00,
    -0x9b,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    -0x9d,0x02,0x00,0x00,0x9c,0x02,0x00,0x00,0x41,0x00,0x06,0x00,
    -0x11,0x01,0x00,0x00,0x9e,0x02,0x00,0x00,0x83,0x02,0x00,0x00,
    -0x35,0x00,0x00,0x00,0x90,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x9e,0x02,0x00,0x00,0x9d,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x7f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x7f,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x6b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x6b,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xa0,0x02,0x00,0x00,0xae,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x68,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x6a,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x63,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x63,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xa2,0x02,0x00,0x00,0xac,0x02,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x60,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x62,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x4b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x4b,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa4,0x02,0x00,0x00,
    -0xaa,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x48,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x4a,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x43,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x43,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xa6,0x02,0x00,0x00,0xa9,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x40,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x42,0x02,0x00,0x00,0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
    +0x95,0x02,0x00,0x00,0x92,0x02,0x00,0x00,0x94,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x97,0x02,0x00,0x00,
    +0x95,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xcc,0x00,0x00,0x00,0x98,0x02,0x00,0x00,0xc9,0x00,0x00,0x00,
    +0x97,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    +0x99,0x02,0x00,0x00,0x98,0x02,0x00,0x00,0x41,0x00,0x06,0x00,
    +0x10,0x01,0x00,0x00,0x9a,0x02,0x00,0x00,0x7f,0x02,0x00,0x00,
    +0x35,0x00,0x00,0x00,0x8c,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x9a,0x02,0x00,0x00,0x99,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x7b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x7b,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x67,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x67,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x9c,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x64,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x66,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x5f,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x5f,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x9e,0x02,0x00,0x00,0xa8,0x02,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x5c,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x5e,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x47,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x47,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa0,0x02,0x00,0x00,
    +0xa6,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x44,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x46,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x3f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x3f,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xa2,0x02,0x00,0x00,0xa5,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x3c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x3e,0x02,0x00,0x00,0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
     
     };
    -const uint64_t matmul_f32_f16_len = 10332;
    +const uint64_t matmul_f32_f16_fp32_len = 10260;
     
    -unsigned char matmul_f32_f16_aligned_data[] = {
    +unsigned char matmul_f32_f32_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
    -0x12,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00,
    +0xd9,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00,
     0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x09,0x00,0x00,0x00,
    -0x11,0x00,0x02,0x00,0x51,0x11,0x00,0x00,0x0b,0x00,0x06,0x00,
    -0x01,0x00,0x00,0x00,0x47,0x4c,0x53,0x4c,0x2e,0x73,0x74,0x64,
    -0x2e,0x34,0x35,0x30,0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00,
    -0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0f,0x00,0x0f,0x00,
    -0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e,
    -0x00,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    -0x3e,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,
    -0x05,0x01,0x00,0x00,0x6b,0x01,0x00,0x00,0x73,0x01,0x00,0x00,
    -0x73,0x02,0x00,0x00,0xbc,0x02,0x00,0x00,0x10,0x00,0x06,0x00,
    -0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x0b,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x12,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x12,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,
    -0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x12,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x0b,0x00,0x06,0x00,0x01,0x00,0x00,0x00,0x47,0x4c,0x53,0x4c,
    +0x2e,0x73,0x74,0x64,0x2e,0x34,0x35,0x30,0x00,0x00,0x00,0x00,
    +0x0e,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x0f,0x00,0x0f,0x00,0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x6d,0x61,0x69,0x6e,0x00,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    +0x14,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,
    +0xfb,0x00,0x00,0x00,0x06,0x01,0x00,0x00,0x47,0x01,0x00,0x00,
    +0x52,0x01,0x00,0x00,0x3a,0x02,0x00,0x00,0x83,0x02,0x00,0x00,
    +0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x0b,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
     0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,
    -0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x12,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x28,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,
    -0x0b,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x2c,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x12,0x00,0x00,0x00,0x0d,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x34,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x12,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x38,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x3e,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x4d,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    -0x1b,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x50,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x54,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x61,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x63,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x6d,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0xa7,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xb9,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0xbc,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x02,0x01,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x03,0x01,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x48,0x00,0x04,0x00,
    -0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    -0x10,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x03,0x01,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x05,0x01,0x00,0x00,
    -0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x05,0x01,0x00,0x00,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x43,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x44,0x01,0x00,0x00,
    -0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x70,0x01,0x00,0x00,0x06,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
    -0x48,0x00,0x04,0x00,0x71,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x05,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x71,0x01,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x12,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,
    +0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x12,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x12,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,
    +0x09,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x12,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x2c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x30,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,0x0d,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    +0x12,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x38,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x3e,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    +0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x4d,0x00,0x00,0x00,
    +0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x50,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x54,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x61,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x63,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x6d,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x03,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xa6,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0xb8,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x03,0x01,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,
    +0x04,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x04,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    +0x04,0x01,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x06,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x06,0x01,0x00,0x00,0x21,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x21,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x22,0x01,0x00,0x00,0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x4f,0x01,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x50,0x01,0x00,0x00,
     0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x71,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x71,0x01,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    -0x47,0x00,0x03,0x00,0x71,0x01,0x00,0x00,0x02,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x73,0x01,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x73,0x01,0x00,0x00,
    -0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x73,0x02,0x00,0x00,0x0b,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0xb9,0x02,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0xba,0x02,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0xba,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0xba,0x02,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xbc,0x02,0x00,0x00,
    +0x50,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x50,0x01,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x52,0x01,0x00,0x00,
     0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0xbc,0x02,0x00,0x00,0x21,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    -0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00,
    -0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x17,0x00,0x04,0x00,0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x0a,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0x0a,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x0d,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x1e,0x00,0x10,0x00,
    -0x12,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x52,0x01,0x00,0x00,0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x3a,0x02,0x00,0x00,0x0b,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x80,0x02,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,
    +0x81,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x81,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    +0x81,0x02,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x83,0x02,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x83,0x02,0x00,0x00,0x21,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00,
    +0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x15,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x17,0x00,0x04,0x00,0x09,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x0a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x0a,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x0d,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x1e,0x00,0x10,0x00,0x12,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
     0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
     0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
     0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
     0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x13,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    -0x12,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x13,0x00,0x00,0x00,
    -0x14,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x15,0x00,0x04,0x00,
    -0x15,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x16,0x00,0x00,0x00,
    -0x0b,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x17,0x00,0x00,0x00,
    -0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x15,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x0d,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x28,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    -0x2e,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x15,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x38,0x00,0x00,0x00,
    -0x40,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x3a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0x0a,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x0a,0x00,0x00,0x00,
    -0x4d,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x54,0x00,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0x55,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x38,0x00,0x00,0x00,
    -0x54,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0x59,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x38,0x00,0x00,0x00,
    -0x54,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x61,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x62,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x54,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x64,0x00,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x62,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x68,0x00,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x62,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
    -0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    -0x10,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x6e,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x6d,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x74,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x6d,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x6d,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x6d,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x15,0x00,0x00,0x00,0x82,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x87,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x13,0x00,0x00,0x00,
    +0x09,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0x13,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x15,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    +0x16,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x17,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    +0x0d,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    +0x28,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x15,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x35,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x38,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x0a,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0x0a,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x50,0x00,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x54,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x38,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x38,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x62,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x61,0x00,0x00,0x00,
    +0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x64,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x62,0x00,0x00,0x00,
    +0x63,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x68,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x62,0x00,0x00,0x00,
    +0x63,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x6d,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x73,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x15,0x00,0x00,0x00,0x81,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
     0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    -0x92,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x15,0x00,0x00,0x00,0x98,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,
    +0x91,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x15,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0xa1,0x00,0x00,0x00,
     0x07,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0xa7,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x15,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,
    +0xa6,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x15,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,
     0x84,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
    -0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,
    +0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,
     0x20,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0xba,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x54,0x00,0x00,0x00,
    -0xb9,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0xbb,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x50,0x00,0x00,0x00,
    +0xb9,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x54,0x00,0x00,0x00,
    +0xb8,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0xba,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x50,0x00,0x00,0x00,
     0x63,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0xbc,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0xbb,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    +0xba,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0xbd,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    -0xbb,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0xbe,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    -0xbd,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0xba,0x00,0x00,0x00,0xbe,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0xbc,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xbe,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    +0xb9,0x00,0x00,0x00,0xbd,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    +0xb7,0x00,0x00,0x00,0xbe,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    -0xb8,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0xc1,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    -0xc0,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,0x14,0x00,0x02,0x00,
    -0xc2,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0xc4,0x00,0x00,0x00,
    +0xbf,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0x14,0x00,0x02,0x00,
    +0xc1,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0xc3,0x00,0x00,0x00,
     0x20,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0xc5,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x61,0x00,0x00,0x00,
    +0xc4,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x61,0x00,0x00,0x00,
     0x63,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0xc5,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,
    +0xbe,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0xc6,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,
    -0xbf,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0xc7,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,
    -0xbc,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0xc8,0x00,0x00,0x00,
    -0xc4,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0xc9,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xcd,0x00,0x00,0x00,
    -0x07,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x15,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,
    +0xbb,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0xc7,0x00,0x00,0x00,
    +0xc3,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0xc8,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xcc,0x00,0x00,0x00,
    +0x07,0x00,0x00,0x00,0xc3,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x15,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x16,0x00,0x03,0x00,0xf6,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,
     0x80,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    -0x16,0x00,0x03,0x00,0xf9,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,
    +0x84,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,
    +0x1c,0x00,0x04,0x00,0xf9,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,
    +0xf8,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xfa,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0xf9,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0xfa,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xff,0x00,0x00,0x00,
     0x80,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
    -0x84,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,
    -0x1c,0x00,0x04,0x00,0xfc,0x00,0x00,0x00,0xf9,0x00,0x00,0x00,
    -0xfb,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xfd,0x00,0x00,0x00,
    -0x04,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0xfd,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x17,0x00,0x04,0x00,0x00,0x01,0x00,0x00,0xc4,0x00,0x00,0x00,
    -0x04,0x00,0x00,0x00,0x18,0x00,0x04,0x00,0x01,0x01,0x00,0x00,
    -0x00,0x01,0x00,0x00,0x02,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    -0x02,0x01,0x00,0x00,0x01,0x01,0x00,0x00,0x1e,0x00,0x03,0x00,
    -0x03,0x01,0x00,0x00,0x02,0x01,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x04,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x03,0x01,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0x04,0x01,0x00,0x00,0x05,0x01,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x07,0x01,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x0b,0x01,0x00,0x00,0x04,0x00,0x00,0x00,0xf9,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,
    -0x03,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x24,0x01,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x2c,0x01,0x00,0x00,0x05,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x34,0x01,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x3c,0x01,0x00,0x00,0x07,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x43,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x33,0x00,0x06,0x00,0x09,0x00,0x00,0x00,0x44,0x01,0x00,0x00,
    -0x43,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x45,0x01,0x00,0x00,
    -0x51,0x00,0x00,0x00,0x44,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x46,0x01,0x00,0x00,
    -0x84,0x00,0x00,0x00,0x45,0x01,0x00,0x00,0x6e,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x47,0x01,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x46,0x01,0x00,0x00,0x6d,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x62,0x01,0x00,0x00,
    +0x1d,0x00,0x03,0x00,0x03,0x01,0x00,0x00,0xc3,0x00,0x00,0x00,
    +0x1e,0x00,0x03,0x00,0x04,0x01,0x00,0x00,0x03,0x01,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x05,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x04,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,0x05,0x01,0x00,0x00,
    +0x06,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x11,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0xc3,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x15,0x01,0x00,0x00,0x04,0x00,0x00,0x00,
    +0xf6,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x1b,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0xf6,0x00,0x00,0x00,
    +0x1f,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x21,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x33,0x00,0x06,0x00,0x09,0x00,0x00,0x00,0x22,0x01,0x00,0x00,
    +0x21,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x23,0x01,0x00,0x00,
    +0x51,0x00,0x00,0x00,0x22,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x24,0x01,0x00,0x00,
    +0x84,0x00,0x00,0x00,0x23,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x25,0x01,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x24,0x01,0x00,0x00,0x6d,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x43,0x01,0x00,0x00,
     0x80,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x67,0x01,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x44,0x01,0x00,0x00,
    +0x84,0x00,0x00,0x00,0xa6,0x00,0x00,0x00,0x43,0x01,0x00,0x00,
    +0x1c,0x00,0x04,0x00,0x45,0x01,0x00,0x00,0xf6,0x00,0x00,0x00,
    +0x44,0x01,0x00,0x00,0x20,0x00,0x04,0x00,0x46,0x01,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x45,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0x46,0x01,0x00,0x00,0x47,0x01,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x4b,0x01,0x00,0x00,
     0x80,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x68,0x01,0x00,0x00,
    -0x84,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,0x67,0x01,0x00,0x00,
    -0x1c,0x00,0x04,0x00,0x69,0x01,0x00,0x00,0xf9,0x00,0x00,0x00,
    -0x68,0x01,0x00,0x00,0x20,0x00,0x04,0x00,0x6a,0x01,0x00,0x00,
    -0x04,0x00,0x00,0x00,0x69,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0x6a,0x01,0x00,0x00,0x6b,0x01,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x17,0x00,0x04,0x00,0x6e,0x01,0x00,0x00,0xf9,0x00,0x00,0x00,
    -0x04,0x00,0x00,0x00,0x18,0x00,0x04,0x00,0x6f,0x01,0x00,0x00,
    -0x6e,0x01,0x00,0x00,0x02,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    -0x70,0x01,0x00,0x00,0x6f,0x01,0x00,0x00,0x1e,0x00,0x03,0x00,
    -0x71,0x01,0x00,0x00,0x70,0x01,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x72,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x71,0x01,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0x72,0x01,0x00,0x00,0x73,0x01,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x75,0x01,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0xf9,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0xa3,0x01,0x00,0x00,0x51,0x00,0x00,0x00,
    -0x44,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0xa4,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    -0xa3,0x01,0x00,0x00,0x6e,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0xa5,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
    -0xa4,0x01,0x00,0x00,0x6d,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0xa8,0x01,0x00,0x00,0x08,0x01,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xa9,0x01,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xac,0x01,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xc7,0x01,0x00,0x00,
    +0x1d,0x00,0x03,0x00,0x4f,0x01,0x00,0x00,0xc3,0x00,0x00,0x00,
    +0x1e,0x00,0x03,0x00,0x50,0x01,0x00,0x00,0x4f,0x01,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x51,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x50,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,0x51,0x01,0x00,0x00,
    +0x52,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x65,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
    +0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x6a,0x01,0x00,0x00,0x51,0x00,0x00,0x00,
    +0x22,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x6b,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    +0x6a,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x6c,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x6b,0x01,0x00,0x00,0x6d,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x6f,0x01,0x00,0x00,0x08,0x01,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x70,0x01,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x73,0x01,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x8e,0x01,0x00,0x00,
     0x84,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
    -0x1c,0x00,0x04,0x00,0xc8,0x01,0x00,0x00,0xf9,0x00,0x00,0x00,
    -0xc7,0x01,0x00,0x00,0x20,0x00,0x04,0x00,0xc9,0x01,0x00,0x00,
    -0x07,0x00,0x00,0x00,0xc8,0x01,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0xd9,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
    +0x1c,0x00,0x04,0x00,0x8f,0x01,0x00,0x00,0xf6,0x00,0x00,0x00,
    +0x8e,0x01,0x00,0x00,0x20,0x00,0x04,0x00,0x90,0x01,0x00,0x00,
    +0x07,0x00,0x00,0x00,0x8f,0x01,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xa0,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
     0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0xdf,0x01,0x00,0x00,0x07,0x00,0x00,0x00,0xf9,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xf5,0x01,0x00,0x00,
    -0x84,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,
    -0x1c,0x00,0x04,0x00,0xf6,0x01,0x00,0x00,0xf9,0x00,0x00,0x00,
    -0xf5,0x01,0x00,0x00,0x20,0x00,0x04,0x00,0xf7,0x01,0x00,0x00,
    -0x07,0x00,0x00,0x00,0xf6,0x01,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x86,0x00,0x00,0x00,
    -0xb9,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x08,0x02,0x00,0x00,0x80,0x00,0x00,0x00,
    +0xa6,0x01,0x00,0x00,0x07,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xbc,0x01,0x00,0x00,
    +0x84,0x00,0x00,0x00,0xbe,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,
    +0x1c,0x00,0x04,0x00,0xbd,0x01,0x00,0x00,0xf6,0x00,0x00,0x00,
    +0xbc,0x01,0x00,0x00,0x20,0x00,0x04,0x00,0xbe,0x01,0x00,0x00,
    +0x07,0x00,0x00,0x00,0xbd,0x01,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xc7,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
    +0xb8,0x00,0x00,0x00,0xbe,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xcf,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
     0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x37,0x02,0x00,0x00,0x84,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0xfe,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
     0x61,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x15,0x00,0x00,0x00,0x6b,0x02,0x00,0x00,0x08,0x00,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0x0a,0x00,0x00,0x00,0x73,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0xb9,0x02,0x00,0x00,
    -0xc4,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xba,0x02,0x00,0x00,
    -0xb9,0x02,0x00,0x00,0x20,0x00,0x04,0x00,0xbb,0x02,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0xba,0x02,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0xbb,0x02,0x00,0x00,0xbc,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0xc1,0x02,0x00,0x00,
    +0x15,0x00,0x00,0x00,0x32,0x02,0x00,0x00,0x08,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x0a,0x00,0x00,0x00,0x3a,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x80,0x02,0x00,0x00,
    +0xc3,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x81,0x02,0x00,0x00,
    +0x80,0x02,0x00,0x00,0x20,0x00,0x04,0x00,0x82,0x02,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x81,0x02,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0x82,0x02,0x00,0x00,0x83,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x88,0x02,0x00,0x00,
     0x05,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0xce,0x02,0x00,0x00,0x84,0x00,0x00,0x00,0x61,0x00,0x00,0x00,
    +0x95,0x02,0x00,0x00,0x84,0x00,0x00,0x00,0x61,0x00,0x00,0x00,
     0x63,0x00,0x00,0x00,0x36,0x00,0x05,0x00,0x02,0x00,0x00,0x00,
     0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
     0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0xc9,0x00,0x00,0x00,0xca,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0xc9,0x01,0x00,0x00,0xca,0x01,0x00,0x00,
    -0x07,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xf7,0x01,0x00,0x00,
    -0xf8,0x01,0x00,0x00,0x07,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xc8,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x90,0x01,0x00,0x00,0x91,0x01,0x00,0x00,
    +0x07,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xbe,0x01,0x00,0x00,
    +0xbf,0x01,0x00,0x00,0x07,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
     0x0d,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
     0x0c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x0f,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    @@ -22463,620 +22446,550 @@ unsigned char matmul_f32_f16_aligned_data[] = {
     0x06,0x00,0x00,0x00,0x65,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,
     0x64,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x69,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,0x68,0x00,0x00,0x00,
    -0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x70,0x00,0x00,0x00,
    -0x4f,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x75,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,
    -0x74,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x7a,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x79,0x00,0x00,0x00,
    -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,
    -0x4f,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x17,0x00,0x00,0x00,0x83,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    -0x82,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x84,0x00,0x00,0x00,0x83,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x85,0x00,0x00,0x00,0x48,0x00,0x00,0x00,
    -0x84,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    -0x88,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x87,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x89,0x00,0x00,0x00,
    -0x88,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x8b,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,
    -0x8b,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x0c,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x8f,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x26,0x00,0x00,0x00,0x89,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x93,0x00,0x00,0x00,
    -0x14,0x00,0x00,0x00,0x92,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x94,0x00,0x00,0x00,0x93,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x95,0x00,0x00,0x00,
    -0x33,0x00,0x00,0x00,0x94,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x43,0x00,0x00,0x00,
    +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,
    +0x4f,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x74,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,
    +0x73,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x79,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x78,0x00,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,
    +0x4f,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x17,0x00,0x00,0x00,0x82,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    +0x81,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x83,0x00,0x00,0x00,0x82,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x48,0x00,0x00,0x00,
    +0x83,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    +0x87,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x88,0x00,0x00,0x00,
    +0x87,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x8a,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,
    +0x8a,0x00,0x00,0x00,0x83,0x00,0x00,0x00,0x0c,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x26,0x00,0x00,0x00,0x88,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x92,0x00,0x00,0x00,
    +0x14,0x00,0x00,0x00,0x91,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x93,0x00,0x00,0x00,0x92,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x94,0x00,0x00,0x00,
    +0x33,0x00,0x00,0x00,0x93,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x96,0x00,0x00,0x00,0x43,0x00,0x00,0x00,
     0x38,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    -0x99,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x98,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0x99,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x9b,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9c,0x00,0x00,0x00,
    -0x95,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x9e,0x00,0x00,0x00,0x9c,0x00,0x00,0x00,
    -0x85,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x9f,0x00,0x00,0x00,0x9e,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,
    -0x14,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa5,0x00,0x00,0x00,
    -0x0f,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,
    -0xa7,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    -0xaa,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xab,0x00,0x00,0x00,
    -0xaa,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xac,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,0xab,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xad,0x00,0x00,0x00,
    -0xa5,0x00,0x00,0x00,0xac,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0xad,0x00,0x00,0x00,
    -0x85,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xb0,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xb2,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xb2,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xe0,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
    -0xd1,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc2,0x00,0x00,0x00,0xc3,0x00,0x00,0x00,0xe0,0x02,0x00,0x00,
    -0xc1,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xb4,0x00,0x00,0x00,
    -0xb3,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xc3,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xb3,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xcd,0x00,0x00,0x00,0xce,0x00,0x00,0x00,0xca,0x00,0x00,0x00,
    -0xe0,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0xce,0x00,0x00,0x00,
    -0xcc,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xd1,0x00,0x00,0x00,0xe0,0x02,0x00,0x00,0xd0,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xb2,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xb4,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xd4,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xd4,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xf9,0x02,0x00,0x00,0xb0,0x00,0x00,0x00,
    -0xb4,0x00,0x00,0x00,0xae,0x01,0x00,0x00,0xd7,0x00,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xf5,0x02,0x00,0x00,
    -0x9f,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,0xab,0x01,0x00,0x00,
    -0xd7,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xe1,0x02,0x00,0x00,0x85,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,
    -0x5c,0x02,0x00,0x00,0xd7,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc2,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,0xe1,0x02,0x00,0x00,
    -0x8f,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xd6,0x00,0x00,0x00,
    -0xd7,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xdb,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xd5,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xdd,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xdd,0x00,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xf1,0x02,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0x49,0x01,0x00,0x00,
    -0xde,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,
    -0xe3,0x00,0x00,0x00,0xf1,0x02,0x00,0x00,0x38,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xdf,0x00,0x00,0x00,0xde,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xe3,0x00,0x00,0x00,
    -0xde,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xde,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xe8,0x00,0x00,0x00,0x75,0x00,0x00,0x00,0xf1,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,
    -0xe8,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xec,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,
    -0x6e,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xed,0x00,0x00,0x00,0xf5,0x02,0x00,0x00,0xec,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xef,0x00,0x00,0x00,
    -0xed,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,
    -0xf4,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xf7,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,
    -0xf5,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x07,0x01,0x00,0x00,0x08,0x01,0x00,0x00,0x05,0x01,0x00,0x00,
    -0x35,0x00,0x00,0x00,0xef,0x00,0x00,0x00,0x35,0x00,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,
    -0x09,0x01,0x00,0x00,0x08,0x01,0x00,0x00,0x73,0x00,0x04,0x00,
    -0xf9,0x00,0x00,0x00,0x0a,0x01,0x00,0x00,0x09,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x0b,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,
    -0xfe,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x0c,0x01,0x00,0x00,0x0a,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x0e,0x01,0x00,0x00,0xf8,0x00,0x00,0x00,
    -0x3a,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0x07,0x01,0x00,0x00,
    -0x10,0x01,0x00,0x00,0x05,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    -0xef,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,0x11,0x01,0x00,0x00,
    -0x10,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0xf9,0x00,0x00,0x00,
    -0x12,0x01,0x00,0x00,0x11,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x0b,0x01,0x00,0x00,0x13,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,
    -0x0e,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x13,0x01,0x00,0x00,
    -0x12,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x15,0x01,0x00,0x00,0xf8,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x41,0x00,0x08,0x00,0x07,0x01,0x00,0x00,0x17,0x01,0x00,0x00,
    -0x05,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0xef,0x00,0x00,0x00,
    -0x35,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xc4,0x00,0x00,0x00,0x18,0x01,0x00,0x00,0x17,0x01,0x00,0x00,
    -0x73,0x00,0x04,0x00,0xf9,0x00,0x00,0x00,0x19,0x01,0x00,0x00,
    -0x18,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x0b,0x01,0x00,0x00,
    -0x1a,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,0x15,0x01,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x1a,0x01,0x00,0x00,0x19,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1d,0x01,0x00,0x00,
    -0xf8,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x07,0x01,0x00,0x00,0x1f,0x01,0x00,0x00,0x05,0x01,0x00,0x00,
    -0x35,0x00,0x00,0x00,0xef,0x00,0x00,0x00,0x35,0x00,0x00,0x00,
    -0x1c,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,
    -0x20,0x01,0x00,0x00,0x1f,0x01,0x00,0x00,0x73,0x00,0x04,0x00,
    -0xf9,0x00,0x00,0x00,0x21,0x01,0x00,0x00,0x20,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x0b,0x01,0x00,0x00,0x22,0x01,0x00,0x00,
    -0xfe,0x00,0x00,0x00,0x1d,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x22,0x01,0x00,0x00,0x21,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x25,0x01,0x00,0x00,0xf8,0x00,0x00,0x00,
    -0x24,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x07,0x01,0x00,0x00,
    -0x27,0x01,0x00,0x00,0x05,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    -0xef,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,0x28,0x01,0x00,0x00,
    -0x27,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0xf9,0x00,0x00,0x00,
    -0x29,0x01,0x00,0x00,0x28,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x0b,0x01,0x00,0x00,0x2a,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,
    -0x25,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x2a,0x01,0x00,0x00,
    -0x29,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x2d,0x01,0x00,0x00,0xf8,0x00,0x00,0x00,0x2c,0x01,0x00,0x00,
    -0x41,0x00,0x08,0x00,0x07,0x01,0x00,0x00,0x2f,0x01,0x00,0x00,
    -0x05,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0xef,0x00,0x00,0x00,
    -0xd0,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xc4,0x00,0x00,0x00,0x30,0x01,0x00,0x00,0x2f,0x01,0x00,0x00,
    -0x73,0x00,0x04,0x00,0xf9,0x00,0x00,0x00,0x31,0x01,0x00,0x00,
    -0x30,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x0b,0x01,0x00,0x00,
    -0x32,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,0x2d,0x01,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x32,0x01,0x00,0x00,0x31,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x35,0x01,0x00,0x00,
    -0xf8,0x00,0x00,0x00,0x34,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x07,0x01,0x00,0x00,0x37,0x01,0x00,0x00,0x05,0x01,0x00,0x00,
    -0x35,0x00,0x00,0x00,0xef,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,
    -0x38,0x01,0x00,0x00,0x37,0x01,0x00,0x00,0x73,0x00,0x04,0x00,
    -0xf9,0x00,0x00,0x00,0x39,0x01,0x00,0x00,0x38,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x0b,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,
    -0xfe,0x00,0x00,0x00,0x35,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x3a,0x01,0x00,0x00,0x39,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x3d,0x01,0x00,0x00,0xf8,0x00,0x00,0x00,
    -0x3c,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x07,0x01,0x00,0x00,
    -0x3f,0x01,0x00,0x00,0x05,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    -0xef,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,0x40,0x01,0x00,0x00,
    -0x3f,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0xf9,0x00,0x00,0x00,
    -0x41,0x01,0x00,0x00,0x40,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x0b,0x01,0x00,0x00,0x42,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,
    -0x3d,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x42,0x01,0x00,0x00,
    -0x41,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x49,0x01,0x00,0x00,0xf1,0x02,0x00,0x00,0x47,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xdd,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xdf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x4b,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x4b,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xf2,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0xdf,0x00,0x00,0x00,0xa7,0x01,0x00,0x00,0x4c,0x01,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,0x51,0x01,0x00,0x00,
    -0xf2,0x02,0x00,0x00,0xa7,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x4d,0x01,0x00,0x00,0x4c,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x51,0x01,0x00,0x00,0x4c,0x01,0x00,0x00,
    -0x4d,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x4c,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x56,0x01,0x00,0x00,
    -0x7f,0x00,0x00,0x00,0xf2,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x59,0x01,0x00,0x00,0x56,0x01,0x00,0x00,
    -0xab,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x5a,0x01,0x00,0x00,0x59,0x01,0x00,0x00,0x6e,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5b,0x01,0x00,0x00,
    -0xf9,0x02,0x00,0x00,0x5a,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,0x5b,0x01,0x00,0x00,
    -0x7a,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x63,0x01,0x00,0x00,0x56,0x01,0x00,0x00,0x62,0x01,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x65,0x01,0x00,0x00,
    -0x7a,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x66,0x01,0x00,0x00,0x63,0x01,0x00,0x00,
    -0x65,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x75,0x01,0x00,0x00,
    -0x76,0x01,0x00,0x00,0x73,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    -0x5d,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xf9,0x00,0x00,0x00,0x77,0x01,0x00,0x00,
    -0x76,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x0b,0x01,0x00,0x00,
    -0x78,0x01,0x00,0x00,0x6b,0x01,0x00,0x00,0x66,0x01,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x78,0x01,0x00,0x00,0x77,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7a,0x01,0x00,0x00,
    -0x66,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x75,0x01,0x00,0x00,0x7c,0x01,0x00,0x00,0x73,0x01,0x00,0x00,
    -0x35,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    -0x3a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xf9,0x00,0x00,0x00,
    -0x7d,0x01,0x00,0x00,0x7c,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x0b,0x01,0x00,0x00,0x7e,0x01,0x00,0x00,0x6b,0x01,0x00,0x00,
    -0x7a,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x7e,0x01,0x00,0x00,
    -0x7d,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x80,0x01,0x00,0x00,0x66,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x41,0x00,0x08,0x00,0x75,0x01,0x00,0x00,0x82,0x01,0x00,0x00,
    -0x73,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,
    -0x35,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xf9,0x00,0x00,0x00,0x83,0x01,0x00,0x00,0x82,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x0b,0x01,0x00,0x00,0x84,0x01,0x00,0x00,
    -0x6b,0x01,0x00,0x00,0x80,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x84,0x01,0x00,0x00,0x83,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x86,0x01,0x00,0x00,0x66,0x01,0x00,0x00,
    -0x1c,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x75,0x01,0x00,0x00,
    -0x88,0x01,0x00,0x00,0x73,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    -0x5d,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xf9,0x00,0x00,0x00,0x89,0x01,0x00,0x00,
    -0x88,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x0b,0x01,0x00,0x00,
    -0x8a,0x01,0x00,0x00,0x6b,0x01,0x00,0x00,0x86,0x01,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x8a,0x01,0x00,0x00,0x89,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8c,0x01,0x00,0x00,
    -0x66,0x01,0x00,0x00,0x24,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x75,0x01,0x00,0x00,0x8e,0x01,0x00,0x00,0x73,0x01,0x00,0x00,
    -0x35,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,0xd0,0x00,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xf9,0x00,0x00,0x00,
    -0x8f,0x01,0x00,0x00,0x8e,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x0b,0x01,0x00,0x00,0x90,0x01,0x00,0x00,0x6b,0x01,0x00,0x00,
    -0x8c,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x90,0x01,0x00,0x00,
    -0x8f,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x92,0x01,0x00,0x00,0x66,0x01,0x00,0x00,0x2c,0x01,0x00,0x00,
    -0x41,0x00,0x08,0x00,0x75,0x01,0x00,0x00,0x94,0x01,0x00,0x00,
    -0x73,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,
    -0xd0,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xf9,0x00,0x00,0x00,0x95,0x01,0x00,0x00,0x94,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x0b,0x01,0x00,0x00,0x96,0x01,0x00,0x00,
    -0x6b,0x01,0x00,0x00,0x92,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x96,0x01,0x00,0x00,0x95,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x98,0x01,0x00,0x00,0x66,0x01,0x00,0x00,
    -0x34,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x75,0x01,0x00,0x00,
    -0x9a,0x01,0x00,0x00,0x73,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    -0x5d,0x01,0x00,0x00,0xd0,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xf9,0x00,0x00,0x00,0x9b,0x01,0x00,0x00,
    -0x9a,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x0b,0x01,0x00,0x00,
    -0x9c,0x01,0x00,0x00,0x6b,0x01,0x00,0x00,0x98,0x01,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x9c,0x01,0x00,0x00,0x9b,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9e,0x01,0x00,0x00,
    -0x66,0x01,0x00,0x00,0x3c,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x75,0x01,0x00,0x00,0xa0,0x01,0x00,0x00,0x73,0x01,0x00,0x00,
    -0x35,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,0xd0,0x00,0x00,0x00,
    -0x1c,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xf9,0x00,0x00,0x00,
    -0xa1,0x01,0x00,0x00,0xa0,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x0b,0x01,0x00,0x00,0xa2,0x01,0x00,0x00,0x6b,0x01,0x00,0x00,
    -0x9e,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xa2,0x01,0x00,0x00,
    -0xa1,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xa7,0x01,0x00,0x00,0xf2,0x02,0x00,0x00,0xa5,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x4b,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x4d,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0xa8,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xab,0x01,0x00,0x00,0xf5,0x02,0x00,0x00,
    -0xa9,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xae,0x01,0x00,0x00,0xf9,0x02,0x00,0x00,0xac,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xb0,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xb0,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xfb,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0x4d,0x01,0x00,0x00,
    -0x5a,0x02,0x00,0x00,0xb3,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc2,0x00,0x00,0x00,0xb6,0x01,0x00,0x00,0xfb,0x02,0x00,0x00,
    -0x6d,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xb2,0x01,0x00,0x00,
    -0xb3,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xb6,0x01,0x00,0x00,0xb1,0x01,0x00,0x00,0xb2,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xb1,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xb8,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xb8,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xff,0x02,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0xb1,0x01,0x00,0x00,0xe4,0x01,0x00,0x00,
    -0xbb,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,
    -0xbe,0x01,0x00,0x00,0xff,0x02,0x00,0x00,0x61,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xba,0x01,0x00,0x00,0xbb,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xbe,0x01,0x00,0x00,
    -0xb9,0x01,0x00,0x00,0xba,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xb9,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xc0,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xc0,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x11,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0xb9,0x01,0x00,0x00,0xe2,0x01,0x00,0x00,0xc1,0x01,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,0xc6,0x01,0x00,0x00,
    -0x11,0x03,0x00,0x00,0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xc2,0x01,0x00,0x00,0xc1,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xc6,0x01,0x00,0x00,0xc1,0x01,0x00,0x00,
    -0xc2,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xc1,0x01,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xcc,0x01,0x00,0x00,
    -0xff,0x02,0x00,0x00,0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xce,0x01,0x00,0x00,0xcc,0x01,0x00,0x00,
    -0x11,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xd0,0x01,0x00,0x00,0x56,0x00,0x00,0x00,0x54,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd2,0x01,0x00,0x00,
    -0xff,0x02,0x00,0x00,0x62,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xd3,0x01,0x00,0x00,0xd0,0x01,0x00,0x00,
    -0xd2,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xd5,0x01,0x00,0x00,0x65,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd6,0x01,0x00,0x00,
    -0xd3,0x01,0x00,0x00,0xd5,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xd8,0x01,0x00,0x00,0xd6,0x01,0x00,0x00,
    -0x11,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xda,0x01,0x00,0x00,0xd8,0x01,0x00,0x00,0xd9,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdc,0x01,0x00,0x00,
    -0xda,0x01,0x00,0x00,0xfb,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x0b,0x01,0x00,0x00,0xdd,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,
    -0xdc,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xf9,0x00,0x00,0x00,
    -0xde,0x01,0x00,0x00,0xdd,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xdf,0x01,0x00,0x00,0xe0,0x01,0x00,0x00,0xca,0x01,0x00,0x00,
    -0xce,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xe0,0x01,0x00,0x00,
    -0xde,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xe2,0x01,0x00,0x00,0x11,0x03,0x00,0x00,0xd0,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xc0,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xc2,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xbb,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xbb,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xe4,0x01,0x00,0x00,0xff,0x02,0x00,0x00,
    -0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xb8,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xba,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xe6,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xe6,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x00,0x03,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0xba,0x01,0x00,0x00,0x12,0x02,0x00,0x00,
    -0xe9,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,
    -0xec,0x01,0x00,0x00,0x00,0x03,0x00,0x00,0xbf,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xe8,0x01,0x00,0x00,0xe9,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xec,0x01,0x00,0x00,
    -0xe7,0x01,0x00,0x00,0xe8,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xe7,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xee,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xee,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x0e,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0xe7,0x01,0x00,0x00,0x10,0x02,0x00,0x00,0xef,0x01,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,0xf4,0x01,0x00,0x00,
    -0x0e,0x03,0x00,0x00,0xbc,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xf0,0x01,0x00,0x00,0xef,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xf4,0x01,0x00,0x00,0xef,0x01,0x00,0x00,
    -0xf0,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xef,0x01,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfa,0x01,0x00,0x00,
    -0x00,0x03,0x00,0x00,0xbc,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xfc,0x01,0x00,0x00,0xfa,0x01,0x00,0x00,
    -0x0e,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xfe,0x01,0x00,0x00,0x5a,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,
    +0x98,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x97,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x99,0x00,0x00,0x00,
    +0x98,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0x96,0x00,0x00,0x00,0x99,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,
    +0x94,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,
    +0x84,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x9e,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,
    +0x14,0x00,0x00,0x00,0xa1,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,
    +0x0f,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,
    +0xa6,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    +0xa9,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xaa,0x00,0x00,0x00,
    +0xa9,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xab,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,0xaa,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xac,0x00,0x00,0x00,
    +0xa4,0x00,0x00,0x00,0xab,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xae,0x00,0x00,0x00,0xac,0x00,0x00,0x00,
    +0x84,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xaf,0x00,0x00,0x00,0xae,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xb1,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xb1,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xa7,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
    +0xd0,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0xc2,0x00,0x00,0x00,0xa7,0x02,0x00,0x00,
    +0xc0,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xb3,0x00,0x00,0x00,
    +0xb2,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xc2,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xb2,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xcc,0x00,0x00,0x00,0xcd,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,
    +0xa7,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0xcd,0x00,0x00,0x00,
    +0xcb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xd0,0x00,0x00,0x00,0xa7,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xb1,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xb3,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xd3,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xd3,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xc0,0x02,0x00,0x00,0xaf,0x00,0x00,0x00,
    +0xb3,0x00,0x00,0x00,0x75,0x01,0x00,0x00,0xd6,0x00,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xbc,0x02,0x00,0x00,
    +0x9e,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,0x72,0x01,0x00,0x00,
    +0xd6,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xa8,0x02,0x00,0x00,0x84,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,
    +0x23,0x02,0x00,0x00,0xd6,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0xda,0x00,0x00,0x00,0xa8,0x02,0x00,0x00,
    +0x8e,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xd5,0x00,0x00,0x00,
    +0xd6,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xda,0x00,0x00,0x00,0xd4,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xd4,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xdc,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xdc,0x00,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xb8,0x02,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0xd4,0x00,0x00,0x00,0x27,0x01,0x00,0x00,
    +0xdf,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0xe2,0x00,0x00,0x00,0xb8,0x02,0x00,0x00,0x38,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xde,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xe2,0x00,0x00,0x00,
    +0xdd,0x00,0x00,0x00,0xde,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xdd,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xe6,0x00,0x00,0x00,0x96,0x00,0x00,0x00,0x74,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,
    +0xe6,0x00,0x00,0x00,0xb8,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,
    +0x37,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0xed,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xeb,0x00,0x00,0x00,
    +0xec,0x00,0x00,0x00,0xed,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xec,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xf0,0x00,0x00,0x00,0xa8,0x02,0x00,0x00,0x6f,0x00,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xf2,0x00,0x00,0x00,
    +0xf0,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xed,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xed,0x00,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0xc1,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,
    +0xeb,0x00,0x00,0x00,0xdd,0x00,0x00,0x00,0xf2,0x00,0x00,0x00,
    +0xec,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0xf5,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xf3,0x00,0x00,0x00,
    +0xf4,0x00,0x00,0x00,0x17,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xf4,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xfe,0x00,0x00,0x00,0x74,0x00,0x00,0x00,0xb8,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x00,0x01,0x00,0x00,
    +0xfe,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x02,0x01,0x00,0x00,0x00,0x01,0x00,0x00,
    +0x6f,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x0d,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,0x99,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0e,0x01,0x00,0x00,
    +0xbc,0x02,0x00,0x00,0x0d,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x10,0x01,0x00,0x00,0x0e,0x01,0x00,0x00,
    +0x6f,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x11,0x01,0x00,0x00,
    +0x12,0x01,0x00,0x00,0x06,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    +0x10,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    +0x13,0x01,0x00,0x00,0x12,0x01,0x00,0x00,0x73,0x00,0x04,0x00,
    +0xf6,0x00,0x00,0x00,0x14,0x01,0x00,0x00,0x13,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x15,0x01,0x00,0x00,0x16,0x01,0x00,0x00,
    +0xfb,0x00,0x00,0x00,0x02,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x16,0x01,0x00,0x00,0x14,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xf5,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x17,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1a,0x01,0x00,0x00,
    +0x74,0x00,0x00,0x00,0xb8,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,0x1a,0x01,0x00,0x00,
    +0x1b,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x1e,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,0x6f,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x15,0x01,0x00,0x00,0x20,0x01,0x00,0x00,
    +0xfb,0x00,0x00,0x00,0x1e,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x20,0x01,0x00,0x00,0x1f,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xf5,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xf5,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xdf,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xdf,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x27,0x01,0x00,0x00,0xb8,0x02,0x00,0x00,0x25,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xdc,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xde,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x29,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x29,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xb9,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0xde,0x00,0x00,0x00,0x6e,0x01,0x00,0x00,0x2c,0x01,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x2f,0x01,0x00,0x00,
    +0xb9,0x02,0x00,0x00,0xa6,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x2b,0x01,0x00,0x00,0x2c,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x2f,0x01,0x00,0x00,0x2a,0x01,0x00,0x00,
    +0x2b,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x2a,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x33,0x01,0x00,0x00,
    +0xa7,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x35,0x01,0x00,0x00,0x33,0x01,0x00,0x00,
    +0xb9,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    +0x36,0x01,0x00,0x00,0x14,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x37,0x01,0x00,0x00,
    +0x36,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0x38,0x01,0x00,0x00,0x35,0x01,0x00,0x00,0x37,0x01,0x00,0x00,
    +0xf7,0x00,0x03,0x00,0x3a,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x38,0x01,0x00,0x00,0x39,0x01,0x00,0x00,
    +0x3a,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x39,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3d,0x01,0x00,0x00,
    +0xa8,0x02,0x00,0x00,0x79,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0x3f,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,
    +0x8e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x3a,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x3a,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0xc1,0x00,0x00,0x00,0x40,0x01,0x00,0x00,0x38,0x01,0x00,0x00,
    +0x2a,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,0x39,0x01,0x00,0x00,
    +0xf7,0x00,0x03,0x00,0x42,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x40,0x01,0x00,0x00,0x41,0x01,0x00,0x00,
    +0x61,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x41,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4a,0x01,0x00,0x00,
    +0x7e,0x00,0x00,0x00,0xb9,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x4c,0x01,0x00,0x00,0x4a,0x01,0x00,0x00,
    +0x4b,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x4e,0x01,0x00,0x00,0x4c,0x01,0x00,0x00,0x79,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x59,0x01,0x00,0x00,
    +0x4a,0x01,0x00,0x00,0xaa,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x5a,0x01,0x00,0x00,0xc0,0x02,0x00,0x00,
    +0x59,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x5c,0x01,0x00,0x00,0x5a,0x01,0x00,0x00,0x79,0x00,0x00,0x00,
    +0x41,0x00,0x06,0x00,0x11,0x01,0x00,0x00,0x5d,0x01,0x00,0x00,
    +0x52,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0x5c,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x5e,0x01,0x00,0x00,
    +0x5d,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0xf6,0x00,0x00,0x00,
    +0x5f,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x15,0x01,0x00,0x00,0x60,0x01,0x00,0x00,0x47,0x01,0x00,0x00,
    +0x4e,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x60,0x01,0x00,0x00,
    +0x5f,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x42,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x61,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x64,0x01,0x00,0x00,0x7e,0x00,0x00,0x00,
    +0xb9,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x66,0x01,0x00,0x00,0x64,0x01,0x00,0x00,0x65,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x68,0x01,0x00,0x00,
    +0x66,0x01,0x00,0x00,0x79,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x15,0x01,0x00,0x00,0x69,0x01,0x00,0x00,0x47,0x01,0x00,0x00,
    +0x68,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x69,0x01,0x00,0x00,
    +0x1f,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x42,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x42,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x2c,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x2c,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6e,0x01,0x00,0x00,
    +0xb9,0x02,0x00,0x00,0x6c,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x29,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x2b,0x01,0x00,0x00,
    +0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x6f,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x72,0x01,0x00,0x00,0xbc,0x02,0x00,0x00,0x70,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x75,0x01,0x00,0x00,
    +0xc0,0x02,0x00,0x00,0x73,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x77,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x77,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xc2,0x02,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0x2b,0x01,0x00,0x00,0x21,0x02,0x00,0x00,
    +0x7a,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0x7d,0x01,0x00,0x00,0xc2,0x02,0x00,0x00,0x6d,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x79,0x01,0x00,0x00,0x7a,0x01,0x00,0x00,
    +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x7d,0x01,0x00,0x00,
    +0x78,0x01,0x00,0x00,0x79,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x78,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x7f,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x7f,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xc6,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x78,0x01,0x00,0x00,0xab,0x01,0x00,0x00,0x82,0x01,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x85,0x01,0x00,0x00,
    +0xc6,0x02,0x00,0x00,0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x81,0x01,0x00,0x00,0x82,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x85,0x01,0x00,0x00,0x80,0x01,0x00,0x00,
    +0x81,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x80,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x87,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x87,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xd8,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0x80,0x01,0x00,0x00,
    +0xa9,0x01,0x00,0x00,0x88,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0x8d,0x01,0x00,0x00,0xd8,0x02,0x00,0x00,
    +0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x89,0x01,0x00,0x00,
    +0x88,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x8d,0x01,0x00,0x00,0x88,0x01,0x00,0x00,0x89,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x88,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x93,0x01,0x00,0x00,0xc6,0x02,0x00,0x00,
    +0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x95,0x01,0x00,0x00,0x93,0x01,0x00,0x00,0xd8,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x97,0x01,0x00,0x00,
    +0x56,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x99,0x01,0x00,0x00,0xc6,0x02,0x00,0x00,
    +0x62,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x9a,0x01,0x00,0x00,0x97,0x01,0x00,0x00,0x99,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9c,0x01,0x00,0x00,
    +0x65,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x9d,0x01,0x00,0x00,0x9a,0x01,0x00,0x00,
    +0x9c,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x9f,0x01,0x00,0x00,0x9d,0x01,0x00,0x00,0xd8,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa1,0x01,0x00,0x00,
    +0x9f,0x01,0x00,0x00,0xa0,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xa3,0x01,0x00,0x00,0xa1,0x01,0x00,0x00,
    +0xc2,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x15,0x01,0x00,0x00,
    +0xa4,0x01,0x00,0x00,0xfb,0x00,0x00,0x00,0xa3,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xf6,0x00,0x00,0x00,0xa5,0x01,0x00,0x00,
    +0xa4,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0xa6,0x01,0x00,0x00,
    +0xa7,0x01,0x00,0x00,0x91,0x01,0x00,0x00,0x95,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0xa7,0x01,0x00,0x00,0xa5,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa9,0x01,0x00,0x00,
    +0xd8,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x87,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x89,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x82,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x82,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xab,0x01,0x00,0x00,0xc6,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x7f,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x81,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xad,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xad,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xc7,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x81,0x01,0x00,0x00,0xd9,0x01,0x00,0x00,0xb0,0x01,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xb3,0x01,0x00,0x00,
    +0xc7,0x02,0x00,0x00,0xbe,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xaf,0x01,0x00,0x00,0xb0,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xb3,0x01,0x00,0x00,0xae,0x01,0x00,0x00,
    +0xaf,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xae,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xb5,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xb5,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xd5,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0xae,0x01,0x00,0x00,
    +0xd7,0x01,0x00,0x00,0xb6,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0xbb,0x01,0x00,0x00,0xd5,0x02,0x00,0x00,
    +0xbb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xb7,0x01,0x00,0x00,
    +0xb6,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xbb,0x01,0x00,0x00,0xb6,0x01,0x00,0x00,0xb7,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xb6,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xc1,0x01,0x00,0x00,0xc7,0x02,0x00,0x00,
    +0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xc3,0x01,0x00,0x00,0xc1,0x01,0x00,0x00,0xd5,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc5,0x01,0x00,0x00,
    +0x5a,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xc8,0x01,0x00,0x00,0xc7,0x02,0x00,0x00,
    +0xc7,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xc9,0x01,0x00,0x00,0xc5,0x01,0x00,0x00,0xc8,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xcb,0x01,0x00,0x00,
    +0x69,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xcc,0x01,0x00,0x00,0xc9,0x01,0x00,0x00,
    +0xcb,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xce,0x01,0x00,0x00,0xcc,0x01,0x00,0x00,0xd5,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd0,0x01,0x00,0x00,
    +0xce,0x01,0x00,0x00,0xcf,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xd2,0x01,0x00,0x00,0xd0,0x01,0x00,0x00,
    +0xc2,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x15,0x01,0x00,0x00,
    +0xd3,0x01,0x00,0x00,0x47,0x01,0x00,0x00,0xd2,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xf6,0x00,0x00,0x00,0xd4,0x01,0x00,0x00,
    +0xd3,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0xa6,0x01,0x00,0x00,
    +0xd5,0x01,0x00,0x00,0xbf,0x01,0x00,0x00,0xc3,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0xd5,0x01,0x00,0x00,0xd4,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd7,0x01,0x00,0x00,
    +0xd5,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xb5,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xb7,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xb0,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xb0,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xd9,0x01,0x00,0x00,0xc7,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xad,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xaf,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xdb,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xdb,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xc8,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0xaf,0x01,0x00,0x00,0x1f,0x02,0x00,0x00,0xde,0x01,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xe1,0x01,0x00,0x00,
    +0xc8,0x02,0x00,0x00,0xbe,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xdd,0x01,0x00,0x00,0xde,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xe1,0x01,0x00,0x00,0xdc,0x01,0x00,0x00,
    +0xdd,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xdc,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xe3,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xe3,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xcc,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0xdc,0x01,0x00,0x00,
    +0x1d,0x02,0x00,0x00,0xe6,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0xe9,0x01,0x00,0x00,0xcc,0x02,0x00,0x00,
    +0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xe5,0x01,0x00,0x00,
    +0xe6,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xe9,0x01,0x00,0x00,0xe4,0x01,0x00,0x00,0xe5,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xe4,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xeb,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xeb,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xce,0x02,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0xe4,0x01,0x00,0x00,0x1b,0x02,0x00,0x00,
    +0xee,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0xf1,0x01,0x00,0x00,0xce,0x02,0x00,0x00,0xbb,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xed,0x01,0x00,0x00,0xee,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xf1,0x01,0x00,0x00,
    +0xec,0x01,0x00,0x00,0xed,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xec,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xf3,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xf3,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xd0,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0xec,0x01,0x00,0x00,0x19,0x02,0x00,0x00,0xf4,0x01,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xf9,0x01,0x00,0x00,
    +0xd0,0x02,0x00,0x00,0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xf5,0x01,0x00,0x00,0xf4,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xf9,0x01,0x00,0x00,0xf4,0x01,0x00,0x00,
    +0xf5,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xf4,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfb,0x01,0x00,0x00,
    +0xc8,0x02,0x00,0x00,0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xfd,0x01,0x00,0x00,0xfb,0x01,0x00,0x00,
    +0xce,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xff,0x01,0x00,0x00,0xfd,0x01,0x00,0x00,0xfe,0x01,0x00,0x00,
     0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x01,0x02,0x00,0x00,
    -0x00,0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x02,0x02,0x00,0x00,0xfe,0x01,0x00,0x00,
    -0x01,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x04,0x02,0x00,0x00,0x69,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x05,0x02,0x00,0x00,
    -0x02,0x02,0x00,0x00,0x04,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x07,0x02,0x00,0x00,0x05,0x02,0x00,0x00,
    -0x0e,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x09,0x02,0x00,0x00,0x07,0x02,0x00,0x00,0x08,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0b,0x02,0x00,0x00,
    -0x09,0x02,0x00,0x00,0xfb,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x0b,0x01,0x00,0x00,0x0c,0x02,0x00,0x00,0x6b,0x01,0x00,0x00,
    -0x0b,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xf9,0x00,0x00,0x00,
    -0x0d,0x02,0x00,0x00,0x0c,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xdf,0x01,0x00,0x00,0x0e,0x02,0x00,0x00,0xf8,0x01,0x00,0x00,
    -0xfc,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x0e,0x02,0x00,0x00,
    -0x0d,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x10,0x02,0x00,0x00,0x0e,0x03,0x00,0x00,0xd0,0x00,0x00,0x00,
    +0xcc,0x02,0x00,0x00,0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x02,0x02,0x00,0x00,0xff,0x01,0x00,0x00,
    +0x01,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x04,0x02,0x00,0x00,0x02,0x02,0x00,0x00,0xd0,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x08,0x02,0x00,0x00,
    +0x01,0x02,0x00,0x00,0xd0,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xa6,0x01,0x00,0x00,0x09,0x02,0x00,0x00,0x91,0x01,0x00,0x00,
    +0x08,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xf6,0x00,0x00,0x00,
    +0x0a,0x02,0x00,0x00,0x09,0x02,0x00,0x00,0x73,0x00,0x04,0x00,
    +0xc3,0x00,0x00,0x00,0x0b,0x02,0x00,0x00,0x0a,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xa6,0x01,0x00,0x00,0x10,0x02,0x00,0x00,
    +0xbf,0x01,0x00,0x00,0xfd,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xf6,0x00,0x00,0x00,0x11,0x02,0x00,0x00,0x10,0x02,0x00,0x00,
    +0x73,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x12,0x02,0x00,0x00,
    +0x11,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,
    +0x14,0x02,0x00,0x00,0xc9,0x00,0x00,0x00,0x04,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x15,0x02,0x00,0x00,
    +0x14,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0xc3,0x00,0x00,0x00,
    +0x16,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,
    +0x0b,0x02,0x00,0x00,0x12,0x02,0x00,0x00,0x15,0x02,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x14,0x02,0x00,0x00,0x16,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x19,0x02,0x00,0x00,
    +0xd0,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xf3,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xf5,0x01,0x00,0x00,
     0xf9,0x00,0x02,0x00,0xee,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xf0,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xe9,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xe9,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x12,0x02,0x00,0x00,0x00,0x03,0x00,0x00,
    -0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xe6,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xe8,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x14,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x14,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x01,0x03,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0xe8,0x01,0x00,0x00,0x58,0x02,0x00,0x00,
    -0x17,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,
    -0x1a,0x02,0x00,0x00,0x01,0x03,0x00,0x00,0xbf,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x16,0x02,0x00,0x00,0x17,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x1a,0x02,0x00,0x00,
    -0x15,0x02,0x00,0x00,0x16,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x15,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x1c,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x1c,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x05,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0x15,0x02,0x00,0x00,0x56,0x02,0x00,0x00,0x1f,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,0x22,0x02,0x00,0x00,
    -0x05,0x03,0x00,0x00,0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x1e,0x02,0x00,0x00,0x1f,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x22,0x02,0x00,0x00,0x1d,0x02,0x00,0x00,
    -0x1e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x1d,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x24,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x24,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x07,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0x1d,0x02,0x00,0x00,
    -0x54,0x02,0x00,0x00,0x27,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc2,0x00,0x00,0x00,0x2a,0x02,0x00,0x00,0x07,0x03,0x00,0x00,
    -0xbc,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x26,0x02,0x00,0x00,
    -0x27,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x2a,0x02,0x00,0x00,0x25,0x02,0x00,0x00,0x26,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x25,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x2c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x2c,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x09,0x03,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0x25,0x02,0x00,0x00,0x52,0x02,0x00,0x00,
    -0x2d,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,
    -0x32,0x02,0x00,0x00,0x09,0x03,0x00,0x00,0x63,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x2e,0x02,0x00,0x00,0x2d,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x32,0x02,0x00,0x00,
    -0x2d,0x02,0x00,0x00,0x2e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x2d,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x34,0x02,0x00,0x00,0x01,0x03,0x00,0x00,0xbc,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x36,0x02,0x00,0x00,
    -0x34,0x02,0x00,0x00,0x07,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x38,0x02,0x00,0x00,0x36,0x02,0x00,0x00,
    -0x37,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x3a,0x02,0x00,0x00,0x05,0x03,0x00,0x00,0x63,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3b,0x02,0x00,0x00,
    -0x38,0x02,0x00,0x00,0x3a,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x3d,0x02,0x00,0x00,0x3b,0x02,0x00,0x00,
    -0x09,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x41,0x02,0x00,0x00,0x3a,0x02,0x00,0x00,0x09,0x03,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xdf,0x01,0x00,0x00,0x42,0x02,0x00,0x00,
    -0xca,0x01,0x00,0x00,0x41,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xf9,0x00,0x00,0x00,0x43,0x02,0x00,0x00,0x42,0x02,0x00,0x00,
    -0x73,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,0x44,0x02,0x00,0x00,
    -0x43,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xdf,0x01,0x00,0x00,
    -0x49,0x02,0x00,0x00,0xf8,0x01,0x00,0x00,0x36,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xf9,0x00,0x00,0x00,0x4a,0x02,0x00,0x00,
    -0x49,0x02,0x00,0x00,0x73,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,
    -0x4b,0x02,0x00,0x00,0x4a,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xcd,0x00,0x00,0x00,0x4d,0x02,0x00,0x00,0xca,0x00,0x00,0x00,
    -0x3d,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,
    -0x4e,0x02,0x00,0x00,0x4d,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,
    -0xc4,0x00,0x00,0x00,0x4f,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x32,0x00,0x00,0x00,0x44,0x02,0x00,0x00,0x4b,0x02,0x00,0x00,
    -0x4e,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0x4d,0x02,0x00,0x00,
    -0x4f,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x52,0x02,0x00,0x00,0x09,0x03,0x00,0x00,0xd0,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x2c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x2e,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x27,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x27,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x54,0x02,0x00,0x00,0x07,0x03,0x00,0x00,
    -0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x24,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x26,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x1f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x1f,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x56,0x02,0x00,0x00,
    -0x05,0x03,0x00,0x00,0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x1c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x1e,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x17,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x17,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x58,0x02,0x00,0x00,0x01,0x03,0x00,0x00,0xd0,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x14,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x16,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xb3,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xb3,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x5a,0x02,0x00,0x00,0xfb,0x02,0x00,0x00,
    -0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xb0,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xb2,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,
    -0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xa8,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xd7,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xd7,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x5c,0x02,0x00,0x00,0xe1,0x02,0x00,0x00,0x6d,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xd4,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xd6,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x61,0x02,0x00,0x00,0x56,0x00,0x00,0x00,0x54,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x62,0x02,0x00,0x00,
    -0x97,0x00,0x00,0x00,0x61,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x67,0x02,0x00,0x00,0x5a,0x00,0x00,0x00,
    -0xb9,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x68,0x02,0x00,0x00,0xa8,0x00,0x00,0x00,0x67,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x6c,0x02,0x00,0x00,
    -0x14,0x00,0x00,0x00,0x6b,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x6d,0x02,0x00,0x00,0x6c,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6e,0x02,0x00,0x00,
    -0x0f,0x00,0x00,0x00,0x6d,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x72,0x02,0x00,0x00,0x48,0x00,0x00,0x00,
    -0x6d,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,
    -0x74,0x02,0x00,0x00,0x73,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x75,0x02,0x00,0x00,
    -0x74,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x76,0x02,0x00,0x00,0x72,0x02,0x00,0x00,0x75,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x77,0x02,0x00,0x00,
    -0x6e,0x02,0x00,0x00,0x76,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x79,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x79,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xe2,0x02,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,0xdf,0x02,0x00,0x00,
    -0x7c,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,
    -0x7f,0x02,0x00,0x00,0xe2,0x02,0x00,0x00,0xbf,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x7b,0x02,0x00,0x00,0x7c,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x7f,0x02,0x00,0x00,
    -0x7a,0x02,0x00,0x00,0x7b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x7a,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x81,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x81,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xe3,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0x7a,0x02,0x00,0x00,0xdd,0x02,0x00,0x00,0x84,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,0x87,0x02,0x00,0x00,
    -0xe3,0x02,0x00,0x00,0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x83,0x02,0x00,0x00,0x84,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x87,0x02,0x00,0x00,0x82,0x02,0x00,0x00,
    -0x83,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x82,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8b,0x02,0x00,0x00,
    -0xe3,0x02,0x00,0x00,0x62,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x8c,0x02,0x00,0x00,0x62,0x02,0x00,0x00,
    -0x8b,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x8e,0x02,0x00,0x00,0x65,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8f,0x02,0x00,0x00,
    -0x8c,0x02,0x00,0x00,0x8e,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x93,0x02,0x00,0x00,0xe2,0x02,0x00,0x00,
    -0x00,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x94,0x02,0x00,0x00,0x68,0x02,0x00,0x00,0x93,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x96,0x02,0x00,0x00,
    -0x69,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x97,0x02,0x00,0x00,0x94,0x02,0x00,0x00,
    -0x96,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x99,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x99,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xe5,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0x82,0x02,0x00,0x00,0xdb,0x02,0x00,0x00,0x9c,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,0x9f,0x02,0x00,0x00,
    -0xe5,0x02,0x00,0x00,0xbc,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x9b,0x02,0x00,0x00,0x9c,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x9f,0x02,0x00,0x00,0x9a,0x02,0x00,0x00,
    -0x9b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x9a,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xa1,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xa1,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xe7,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0x9a,0x02,0x00,0x00,
    -0xd9,0x02,0x00,0x00,0xa4,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc2,0x00,0x00,0x00,0xa7,0x02,0x00,0x00,0xe7,0x02,0x00,0x00,
    -0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xa3,0x02,0x00,0x00,
    -0xa4,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xa7,0x02,0x00,0x00,0xa2,0x02,0x00,0x00,0xa3,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xa2,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xaa,0x02,0x00,0x00,0x8f,0x02,0x00,0x00,
    -0xe7,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,
    -0xad,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,0x37,0x00,0x00,0x00,
    -0xf7,0x00,0x03,0x00,0xaf,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xad,0x02,0x00,0x00,0xae,0x02,0x00,0x00,
    -0xaf,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xae,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb2,0x02,0x00,0x00,
    -0x97,0x02,0x00,0x00,0xe5,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x17,0x00,0x00,0x00,0xb3,0x02,0x00,0x00,0x14,0x00,0x00,0x00,
    -0xd0,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0xb4,0x02,0x00,0x00,0xb3,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc2,0x00,0x00,0x00,0xb5,0x02,0x00,0x00,0xb2,0x02,0x00,0x00,
    -0xb4,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xaf,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xaf,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0xc2,0x00,0x00,0x00,0xb6,0x02,0x00,0x00,0xad,0x02,0x00,0x00,
    -0xa2,0x02,0x00,0x00,0xb5,0x02,0x00,0x00,0xae,0x02,0x00,0x00,
    -0xf7,0x00,0x03,0x00,0xb8,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xb6,0x02,0x00,0x00,0xb7,0x02,0x00,0x00,
    -0xb8,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xb7,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc0,0x02,0x00,0x00,
    -0x97,0x02,0x00,0x00,0xe5,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x17,0x00,0x00,0x00,0xc2,0x02,0x00,0x00,0x14,0x00,0x00,0x00,
    -0xc1,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0xc3,0x02,0x00,0x00,0xc2,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xc4,0x02,0x00,0x00,0xc0,0x02,0x00,0x00,
    -0xc3,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xc5,0x02,0x00,0x00,0x77,0x02,0x00,0x00,0xc4,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc7,0x02,0x00,0x00,
    -0xc5,0x02,0x00,0x00,0x8f,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xc9,0x02,0x00,0x00,0xc7,0x02,0x00,0x00,
    -0xe7,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xcb,0x02,0x00,0x00,0xe2,0x02,0x00,0x00,0xbc,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xcd,0x02,0x00,0x00,
    -0xcb,0x02,0x00,0x00,0xe5,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xcf,0x02,0x00,0x00,0xcd,0x02,0x00,0x00,
    -0xce,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xd1,0x02,0x00,0x00,0xe3,0x02,0x00,0x00,0x63,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd2,0x02,0x00,0x00,
    -0xcf,0x02,0x00,0x00,0xd1,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xd4,0x02,0x00,0x00,0xd2,0x02,0x00,0x00,
    -0xe7,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xcd,0x00,0x00,0x00,
    -0xd5,0x02,0x00,0x00,0xca,0x00,0x00,0x00,0xd4,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,0xd6,0x02,0x00,0x00,
    -0xd5,0x02,0x00,0x00,0x41,0x00,0x06,0x00,0x07,0x01,0x00,0x00,
    -0xd7,0x02,0x00,0x00,0xbc,0x02,0x00,0x00,0x35,0x00,0x00,0x00,
    -0xc9,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0xd7,0x02,0x00,0x00,
    -0xd6,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xb8,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xb8,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xa4,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xa4,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd9,0x02,0x00,0x00,
    -0xe7,0x02,0x00,0x00,0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xa1,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xa3,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x9c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x9c,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xdb,0x02,0x00,0x00,0xe5,0x02,0x00,0x00,0xd0,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x99,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x9b,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x84,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x84,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xdd,0x02,0x00,0x00,0xe3,0x02,0x00,0x00,
    -0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x81,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x83,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x7c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x7c,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdf,0x02,0x00,0x00,
    -0xe2,0x02,0x00,0x00,0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x79,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x7b,0x02,0x00,0x00,
    -0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
    +0xee,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x1b,0x02,0x00,0x00,0xce,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xeb,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xed,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xe6,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xe6,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x1d,0x02,0x00,0x00,0xcc,0x02,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xe3,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xe5,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xde,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xde,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1f,0x02,0x00,0x00,
    +0xc8,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xdb,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xdd,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x7a,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x7a,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x21,0x02,0x00,0x00,0xc2,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x77,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x79,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x6f,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xd6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xd6,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x23,0x02,0x00,0x00,
    +0xa8,0x02,0x00,0x00,0x6d,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xd3,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xd5,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x28,0x02,0x00,0x00,
    +0x56,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x29,0x02,0x00,0x00,0x96,0x00,0x00,0x00,
    +0x28,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x2e,0x02,0x00,0x00,0x5a,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2f,0x02,0x00,0x00,
    +0xa7,0x00,0x00,0x00,0x2e,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x17,0x00,0x00,0x00,0x33,0x02,0x00,0x00,0x14,0x00,0x00,0x00,
    +0x32,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x34,0x02,0x00,0x00,0x33,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x35,0x02,0x00,0x00,0x0f,0x00,0x00,0x00,
    +0x34,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x39,0x02,0x00,0x00,0x48,0x00,0x00,0x00,0x34,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,0x3b,0x02,0x00,0x00,
    +0x3a,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x3c,0x02,0x00,0x00,0x3b,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3d,0x02,0x00,0x00,
    +0x39,0x02,0x00,0x00,0x3c,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x3e,0x02,0x00,0x00,0x35,0x02,0x00,0x00,
    +0x3d,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x40,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x40,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xa9,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0xd5,0x00,0x00,0x00,0xa6,0x02,0x00,0x00,0x43,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x46,0x02,0x00,0x00,
    +0xa9,0x02,0x00,0x00,0xbe,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x42,0x02,0x00,0x00,0x43,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x46,0x02,0x00,0x00,0x41,0x02,0x00,0x00,
    +0x42,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x41,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x48,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x48,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xaa,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0x41,0x02,0x00,0x00,
    +0xa4,0x02,0x00,0x00,0x4b,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0x4e,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,
    +0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x4a,0x02,0x00,0x00,
    +0x4b,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x4e,0x02,0x00,0x00,0x49,0x02,0x00,0x00,0x4a,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x49,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x52,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,
    +0x62,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x53,0x02,0x00,0x00,0x29,0x02,0x00,0x00,0x52,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x55,0x02,0x00,0x00,
    +0x65,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x56,0x02,0x00,0x00,0x53,0x02,0x00,0x00,
    +0x55,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x5a,0x02,0x00,0x00,0xa9,0x02,0x00,0x00,0xc7,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5b,0x02,0x00,0x00,
    +0x2f,0x02,0x00,0x00,0x5a,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x5d,0x02,0x00,0x00,0x69,0x00,0x00,0x00,
    +0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x5e,0x02,0x00,0x00,0x5b,0x02,0x00,0x00,0x5d,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x60,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x60,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xac,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0x49,0x02,0x00,0x00,
    +0xa2,0x02,0x00,0x00,0x63,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0x66,0x02,0x00,0x00,0xac,0x02,0x00,0x00,
    +0xbb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x62,0x02,0x00,0x00,
    +0x63,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x66,0x02,0x00,0x00,0x61,0x02,0x00,0x00,0x62,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x61,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x68,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x68,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xae,0x02,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0x61,0x02,0x00,0x00,0xa0,0x02,0x00,0x00,
    +0x6b,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0x6e,0x02,0x00,0x00,0xae,0x02,0x00,0x00,0x63,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x6a,0x02,0x00,0x00,0x6b,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x6e,0x02,0x00,0x00,
    +0x69,0x02,0x00,0x00,0x6a,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x69,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x71,0x02,0x00,0x00,0x56,0x02,0x00,0x00,0xae,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x74,0x02,0x00,0x00,
    +0x71,0x02,0x00,0x00,0x37,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,
    +0x76,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x74,0x02,0x00,0x00,0x75,0x02,0x00,0x00,0x76,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x75,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x79,0x02,0x00,0x00,0x5e,0x02,0x00,0x00,
    +0xac,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    +0x7a,0x02,0x00,0x00,0x14,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x7b,0x02,0x00,0x00,
    +0x7a,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0x7c,0x02,0x00,0x00,0x79,0x02,0x00,0x00,0x7b,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x76,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x76,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0xc1,0x00,0x00,0x00,
    +0x7d,0x02,0x00,0x00,0x74,0x02,0x00,0x00,0x69,0x02,0x00,0x00,
    +0x7c,0x02,0x00,0x00,0x75,0x02,0x00,0x00,0xf7,0x00,0x03,0x00,
    +0x7f,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x7d,0x02,0x00,0x00,0x7e,0x02,0x00,0x00,0x7f,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x7e,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x87,0x02,0x00,0x00,0x5e,0x02,0x00,0x00,
    +0xac,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    +0x89,0x02,0x00,0x00,0x14,0x00,0x00,0x00,0x88,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x8a,0x02,0x00,0x00,
    +0x89,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x8b,0x02,0x00,0x00,0x87,0x02,0x00,0x00,0x8a,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8c,0x02,0x00,0x00,
    +0x3e,0x02,0x00,0x00,0x8b,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x8e,0x02,0x00,0x00,0x8c,0x02,0x00,0x00,
    +0x56,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x90,0x02,0x00,0x00,0x8e,0x02,0x00,0x00,0xae,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x92,0x02,0x00,0x00,
    +0xa9,0x02,0x00,0x00,0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x94,0x02,0x00,0x00,0x92,0x02,0x00,0x00,
    +0xac,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x96,0x02,0x00,0x00,0x94,0x02,0x00,0x00,0x95,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x98,0x02,0x00,0x00,
    +0xaa,0x02,0x00,0x00,0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x99,0x02,0x00,0x00,0x96,0x02,0x00,0x00,
    +0x98,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x9b,0x02,0x00,0x00,0x99,0x02,0x00,0x00,0xae,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,0x9c,0x02,0x00,0x00,
    +0xc9,0x00,0x00,0x00,0x9b,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xc3,0x00,0x00,0x00,0x9d,0x02,0x00,0x00,0x9c,0x02,0x00,0x00,
    +0x41,0x00,0x06,0x00,0x11,0x01,0x00,0x00,0x9e,0x02,0x00,0x00,
    +0x83,0x02,0x00,0x00,0x35,0x00,0x00,0x00,0x90,0x02,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x9e,0x02,0x00,0x00,0x9d,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x7f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x7f,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x6b,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x6b,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xa0,0x02,0x00,0x00,0xae,0x02,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x68,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x6a,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x63,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x63,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa2,0x02,0x00,0x00,
    +0xac,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x60,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x62,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x4b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x4b,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xa4,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x48,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x4a,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x43,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x43,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xa6,0x02,0x00,0x00,0xa9,0x02,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x40,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x42,0x02,0x00,0x00,0xfd,0x00,0x01,0x00,
    +0x38,0x00,0x01,0x00,
     };
    -const uint64_t matmul_f32_f16_aligned_len = 11360;
    +const uint64_t matmul_f32_f32_len = 10324;
     
    -unsigned char matmul_f32_f16_aligned_fp32_data[] = {
    +unsigned char matmul_f32_f32_aligned_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
    -0xd5,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00,
    -0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x51,0x11,0x00,0x00,
    +0x17,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00,
    +0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x09,0x00,0x00,0x00,
     0x0b,0x00,0x06,0x00,0x01,0x00,0x00,0x00,0x47,0x4c,0x53,0x4c,
     0x2e,0x73,0x74,0x64,0x2e,0x34,0x35,0x30,0x00,0x00,0x00,0x00,
     0x0e,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
     0x0f,0x00,0x0f,0x00,0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
     0x6d,0x61,0x69,0x6e,0x00,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
     0x14,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,
    -0xfd,0x00,0x00,0x00,0x03,0x01,0x00,0x00,0x45,0x01,0x00,0x00,
    -0x4d,0x01,0x00,0x00,0x36,0x02,0x00,0x00,0x7f,0x02,0x00,0x00,
    +0xfe,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0x6b,0x01,0x00,0x00,
    +0x71,0x01,0x00,0x00,0x78,0x02,0x00,0x00,0xc1,0x02,0x00,0x00,
     0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00,
     0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
     0x47,0x00,0x04,0x00,0x0b,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    @@ -23119,34 +23032,40 @@ unsigned char matmul_f32_f16_aligned_fp32_data[] = {
     0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
     0xb9,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
     0x47,0x00,0x04,0x00,0xbc,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x08,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x00,0x01,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x04,0x00,
    -0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    -0x01,0x01,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x03,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x03,0x01,0x00,0x00,0x21,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x1d,0x01,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x02,0x01,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x48,0x00,0x04,0x00,
    +0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
    +0x48,0x00,0x04,0x00,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x03,0x01,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x07,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    +0x03,0x01,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x05,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x05,0x01,0x00,0x00,0x21,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x43,0x01,0x00,0x00,
     0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x1e,0x01,0x00,0x00,0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x4a,0x01,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x08,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x4b,0x01,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x4b,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x4b,0x01,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x4d,0x01,0x00,0x00,
    +0x44,0x01,0x00,0x00,0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x6e,0x01,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x6f,0x01,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x48,0x00,0x04,0x00,
    +0x6f,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x6f,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x6f,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    +0x10,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x6f,0x01,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x71,0x01,0x00,0x00,
     0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x4d,0x01,0x00,0x00,0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x36,0x02,0x00,0x00,0x0b,0x00,0x00,0x00,
    -0x18,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x7c,0x02,0x00,0x00,
    +0x71,0x01,0x00,0x00,0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x78,0x02,0x00,0x00,0x0b,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xbe,0x02,0x00,0x00,
     0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,
    -0x7d,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x7d,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xbf,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0xbf,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
     0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    -0x7d,0x02,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x7f,0x02,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x7f,0x02,0x00,0x00,0x21,0x00,0x00,0x00,
    +0xbf,0x02,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0xc1,0x02,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0xc1,0x02,0x00,0x00,0x21,0x00,0x00,0x00,
     0x02,0x00,0x00,0x00,0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00,
     0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
     0x15,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    @@ -23198,7 +23117,7 @@ unsigned char matmul_f32_f16_aligned_fp32_data[] = {
     0x68,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x62,0x00,0x00,0x00,
     0x63,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x6d,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,
     0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x74,0x00,0x00,0x00,
    @@ -23251,954 +23170,1044 @@ unsigned char matmul_f32_f16_aligned_fp32_data[] = {
     0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,
     0x01,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0xf4,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0xf9,0x00,0x00,0x00,
    +0x10,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0xfa,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
     0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0xf9,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    +0xfb,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x38,0x00,0x00,0x00,
    +0xfa,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0xfc,0x00,0x00,0x00,
    +0xf9,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0xfd,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0xfd,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x17,0x00,0x04,0x00,0x00,0x01,0x00,0x00,
    +0xc4,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x18,0x00,0x04,0x00,
    +0x01,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x1d,0x00,0x03,0x00,0x02,0x01,0x00,0x00,0x01,0x01,0x00,0x00,
    +0x1e,0x00,0x03,0x00,0x03,0x01,0x00,0x00,0x02,0x01,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x04,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x03,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,0x04,0x01,0x00,0x00,
    +0x05,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x07,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x0b,0x01,0x00,0x00,0x04,0x00,0x00,0x00,
    +0xf9,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x1c,0x01,0x00,0x00,0x03,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x24,0x01,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x2c,0x01,0x00,0x00,
    +0x05,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x34,0x01,0x00,0x00,0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x3c,0x01,0x00,0x00,0x07,0x00,0x00,0x00,
    +0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x43,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x33,0x00,0x06,0x00,0x09,0x00,0x00,0x00,
    +0x44,0x01,0x00,0x00,0x43,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,
     0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0xfa,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x38,0x00,0x00,0x00,
    -0xf9,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0xfb,0x00,0x00,0x00,
    -0xc4,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0xfc,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0xfc,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,
    -0x04,0x00,0x00,0x00,0x17,0x00,0x04,0x00,0xff,0x00,0x00,0x00,
    -0xc4,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    -0x00,0x01,0x00,0x00,0xff,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
    -0x01,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x02,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x01,0x01,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0x02,0x01,0x00,0x00,0x03,0x01,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x05,0x01,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x08,0x01,0x00,0x00,0x04,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x17,0x01,0x00,0x00,
    -0x03,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x1d,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x33,0x00,0x06,0x00,
    -0x09,0x00,0x00,0x00,0x1e,0x01,0x00,0x00,0x1d,0x01,0x00,0x00,
    -0x3a,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x1f,0x01,0x00,0x00,0x51,0x00,0x00,0x00,
    -0x1e,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x20,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    -0x1f,0x01,0x00,0x00,0x6e,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x21,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x20,0x01,0x00,0x00,0x6d,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x3c,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
    -0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x41,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
    -0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x42,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    -0xa7,0x00,0x00,0x00,0x41,0x01,0x00,0x00,0x1c,0x00,0x04,0x00,
    -0x43,0x01,0x00,0x00,0xc4,0x00,0x00,0x00,0x42,0x01,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x44,0x01,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x43,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,0x44,0x01,0x00,0x00,
    -0x45,0x01,0x00,0x00,0x04,0x00,0x00,0x00,0x16,0x00,0x03,0x00,
    -0x48,0x01,0x00,0x00,0x10,0x00,0x00,0x00,0x17,0x00,0x04,0x00,
    -0x49,0x01,0x00,0x00,0x48,0x01,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x1d,0x00,0x03,0x00,0x4a,0x01,0x00,0x00,0x49,0x01,0x00,0x00,
    -0x1e,0x00,0x03,0x00,0x4b,0x01,0x00,0x00,0x4a,0x01,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x4c,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x4b,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,0x4c,0x01,0x00,0x00,
    -0x4d,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x4f,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x48,0x01,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x69,0x01,0x00,0x00,
    -0x51,0x00,0x00,0x00,0x1e,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x6a,0x01,0x00,0x00,
    -0x84,0x00,0x00,0x00,0x69,0x01,0x00,0x00,0x6e,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x6b,0x01,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x6a,0x01,0x00,0x00,0x6d,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x6e,0x01,0x00,0x00,
    +0x45,0x01,0x00,0x00,0x51,0x00,0x00,0x00,0x44,0x01,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x46,0x01,0x00,0x00,0x84,0x00,0x00,0x00,0x45,0x01,0x00,0x00,
    +0x6e,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x47,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0x46,0x01,0x00,0x00,
    +0x6d,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x62,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x67,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x68,0x01,0x00,0x00,0x84,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,
    +0x67,0x01,0x00,0x00,0x1c,0x00,0x04,0x00,0x69,0x01,0x00,0x00,
    +0xf9,0x00,0x00,0x00,0x68,0x01,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x6a,0x01,0x00,0x00,0x04,0x00,0x00,0x00,0x69,0x01,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x6a,0x01,0x00,0x00,0x6b,0x01,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x6e,0x01,0x00,0x00,
    +0x01,0x01,0x00,0x00,0x1e,0x00,0x03,0x00,0x6f,0x01,0x00,0x00,
    +0x6e,0x01,0x00,0x00,0x20,0x00,0x04,0x00,0x70,0x01,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x6f,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0x70,0x01,0x00,0x00,0x71,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xa8,0x01,0x00,0x00,
    +0x51,0x00,0x00,0x00,0x44,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xa9,0x01,0x00,0x00,
    +0x84,0x00,0x00,0x00,0xa8,0x01,0x00,0x00,0x6e,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xaa,0x01,0x00,0x00,
    +0x86,0x00,0x00,0x00,0xa9,0x01,0x00,0x00,0x6d,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xad,0x01,0x00,0x00,
     0x08,0x01,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0x6f,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    +0xae,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
     0x6e,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0x72,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    +0xb1,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
     0x6e,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0x8d,0x01,0x00,0x00,0x84,0x00,0x00,0x00,0x61,0x00,0x00,0x00,
    -0x63,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0x8e,0x01,0x00,0x00,
    -0xc4,0x00,0x00,0x00,0x8d,0x01,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x8f,0x01,0x00,0x00,0x07,0x00,0x00,0x00,0x8e,0x01,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x9f,0x01,0x00,0x00,
    +0xcc,0x01,0x00,0x00,0x84,0x00,0x00,0x00,0x61,0x00,0x00,0x00,
    +0x63,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0xcd,0x01,0x00,0x00,
    +0xf9,0x00,0x00,0x00,0xcc,0x01,0x00,0x00,0x20,0x00,0x04,0x00,
    +0xce,0x01,0x00,0x00,0x07,0x00,0x00,0x00,0xcd,0x01,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xde,0x01,0x00,0x00,
     0x80,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xba,0x01,0x00,0x00,
    -0x84,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,
    -0x1c,0x00,0x04,0x00,0xbb,0x01,0x00,0x00,0xc4,0x00,0x00,0x00,
    -0xba,0x01,0x00,0x00,0x20,0x00,0x04,0x00,0xbc,0x01,0x00,0x00,
    -0x07,0x00,0x00,0x00,0xbb,0x01,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0xc5,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
    -0xb9,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0xcd,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
    -0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0xfc,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    -0x61,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x15,0x00,0x00,0x00,0x2e,0x02,0x00,0x00,0x08,0x00,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0x0a,0x00,0x00,0x00,0x36,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x7c,0x02,0x00,0x00,
    -0xc4,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x7d,0x02,0x00,0x00,
    -0x7c,0x02,0x00,0x00,0x20,0x00,0x04,0x00,0x7e,0x02,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x7d,0x02,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0x7e,0x02,0x00,0x00,0x7f,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x84,0x02,0x00,0x00,
    -0x05,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0x91,0x02,0x00,0x00,0x84,0x00,0x00,0x00,0x61,0x00,0x00,0x00,
    -0x63,0x00,0x00,0x00,0x36,0x00,0x05,0x00,0x02,0x00,0x00,0x00,
    -0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0xc9,0x00,0x00,0x00,0xca,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0x8f,0x01,0x00,0x00,0x90,0x01,0x00,0x00,
    -0x07,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xbc,0x01,0x00,0x00,
    -0xbd,0x01,0x00,0x00,0x07,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x0d,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x0f,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x17,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    -0x16,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x19,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,
    -0x19,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x1f,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x14,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x25,0x00,0x00,0x00,
    -0x1a,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x17,0x00,0x00,0x00,0x29,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    -0x28,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x2a,0x00,0x00,0x00,0x29,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x2b,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,
    -0x2a,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    -0x2f,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x30,0x00,0x00,0x00,
    -0x2f,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x31,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x30,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x33,0x00,0x00,0x00,
    -0x31,0x00,0x00,0x00,0x2b,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x17,0x00,0x00,0x00,0x36,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    -0x35,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x37,0x00,0x00,0x00,0x36,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x39,0x00,0x00,0x00,0x37,0x00,0x00,0x00,
    -0x38,0x00,0x00,0x00,0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x3b,0x00,0x00,0x00,0x39,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3c,0x00,0x00,0x00,
    -0x3b,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x0d,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x41,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x89,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x43,0x00,0x00,0x00,0x41,0x00,0x00,0x00,
    -0x3c,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x48,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x3c,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,0x4a,0x00,0x00,0x00,
    -0x3e,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0x4a,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    -0x4d,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x51,0x00,0x00,0x00,
    -0x4f,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x89,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x56,0x00,0x00,0x00,0x51,0x00,0x00,0x00,
    -0x55,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x5a,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0x59,0x00,0x00,0x00,
    -0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,
    -0x4f,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x89,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x65,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,
    -0x64,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x69,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,0x68,0x00,0x00,0x00,
    -0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x70,0x00,0x00,0x00,
    -0x4f,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x75,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,
    -0x74,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x7a,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x79,0x00,0x00,0x00,
    -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,
    -0x4f,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x17,0x00,0x00,0x00,0x83,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    -0x82,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x84,0x00,0x00,0x00,0x83,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x85,0x00,0x00,0x00,0x48,0x00,0x00,0x00,
    -0x84,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    -0x88,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x87,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x89,0x00,0x00,0x00,
    -0x88,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x8b,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,
    -0x8b,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x0c,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x8f,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x26,0x00,0x00,0x00,0x89,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x93,0x00,0x00,0x00,
    -0x14,0x00,0x00,0x00,0x92,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x94,0x00,0x00,0x00,0x93,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x95,0x00,0x00,0x00,
    -0x33,0x00,0x00,0x00,0x94,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x43,0x00,0x00,0x00,
    -0x38,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    -0x99,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x98,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0x99,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x9b,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9c,0x00,0x00,0x00,
    -0x95,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x9e,0x00,0x00,0x00,0x9c,0x00,0x00,0x00,
    -0x85,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x9f,0x00,0x00,0x00,0x9e,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,
    -0x14,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa5,0x00,0x00,0x00,
    -0x0f,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,
    -0xa7,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    -0xaa,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xab,0x00,0x00,0x00,
    -0xaa,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xac,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,0xab,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xad,0x00,0x00,0x00,
    -0xa5,0x00,0x00,0x00,0xac,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0xad,0x00,0x00,0x00,
    -0x85,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xb0,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xb2,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xb2,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xa3,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
    -0xd1,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc2,0x00,0x00,0x00,0xc3,0x00,0x00,0x00,0xa3,0x02,0x00,0x00,
    -0xc1,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xb4,0x00,0x00,0x00,
    -0xb3,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xc3,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xb3,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xcd,0x00,0x00,0x00,0xce,0x00,0x00,0x00,0xca,0x00,0x00,0x00,
    -0xa3,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0xce,0x00,0x00,0x00,
    -0xcc,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xd1,0x00,0x00,0x00,0xa3,0x02,0x00,0x00,0xd0,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xb2,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xb4,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xd4,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xd4,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xbc,0x02,0x00,0x00,0xb0,0x00,0x00,0x00,
    -0xb4,0x00,0x00,0x00,0x74,0x01,0x00,0x00,0xd7,0x00,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xb8,0x02,0x00,0x00,
    -0x9f,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,0x71,0x01,0x00,0x00,
    +0x20,0x00,0x04,0x00,0xe4,0x01,0x00,0x00,0x07,0x00,0x00,0x00,
    +0xf9,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0xfa,0x01,0x00,0x00,0x84,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,
    +0xbc,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0xfb,0x01,0x00,0x00,
    +0xf9,0x00,0x00,0x00,0xfa,0x01,0x00,0x00,0x20,0x00,0x04,0x00,
    +0xfc,0x01,0x00,0x00,0x07,0x00,0x00,0x00,0xfb,0x01,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x05,0x02,0x00,0x00,
    +0x86,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x0d,0x02,0x00,0x00,
    +0x80,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x3c,0x02,0x00,0x00,
    +0x84,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x70,0x02,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x0a,0x00,0x00,0x00,
    +0x78,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    +0xbe,0x02,0x00,0x00,0xc4,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
    +0xbf,0x02,0x00,0x00,0xbe,0x02,0x00,0x00,0x20,0x00,0x04,0x00,
    +0xc0,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,0xbf,0x02,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0xc0,0x02,0x00,0x00,0xc1,0x02,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    +0xc6,0x02,0x00,0x00,0x05,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xd3,0x02,0x00,0x00,0x84,0x00,0x00,0x00,
    +0x61,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x36,0x00,0x05,0x00,
    +0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x03,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0xc9,0x00,0x00,0x00,0xca,0x00,0x00,0x00,
    +0x07,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xce,0x01,0x00,0x00,
    +0xcf,0x01,0x00,0x00,0x07,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0xfc,0x01,0x00,0x00,0xfd,0x01,0x00,0x00,0x07,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,
    +0x0b,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    +0x14,0x00,0x00,0x00,0x16,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,
    +0x0f,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x89,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,
    +0x19,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x24,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x25,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x24,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x29,0x00,0x00,0x00,
    +0x14,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x2a,0x00,0x00,0x00,0x29,0x00,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2b,0x00,0x00,0x00,
    +0x1f,0x00,0x00,0x00,0x2a,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x17,0x00,0x00,0x00,0x2f,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    +0x2e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x30,0x00,0x00,0x00,0x2f,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x31,0x00,0x00,0x00,0x25,0x00,0x00,0x00,
    +0x30,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x33,0x00,0x00,0x00,0x31,0x00,0x00,0x00,0x2b,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x36,0x00,0x00,0x00,
    +0x14,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x37,0x00,0x00,0x00,0x36,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x39,0x00,0x00,0x00,
    +0x37,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x82,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,0x39,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x3c,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,0x38,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,0x40,0x00,0x00,0x00,
    +0x3e,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x40,0x00,0x00,0x00,
    +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x43,0x00,0x00,0x00,
    +0x41,0x00,0x00,0x00,0x3c,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x41,0x00,0x00,0x00,
    +0x3c,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,
    +0x4a,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,
    +0x4a,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x51,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x50,0x00,0x00,0x00,
    +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x56,0x00,0x00,0x00,
    +0x51,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x5a,0x00,0x00,0x00,0x51,0x00,0x00,0x00,
    +0x59,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x5e,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x50,0x00,0x00,0x00,
    +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x65,0x00,0x00,0x00,
    +0x5e,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,
    +0x68,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x70,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x75,0x00,0x00,0x00,
    +0x4f,0x00,0x00,0x00,0x74,0x00,0x00,0x00,0x89,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x7a,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,
    +0x79,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x7f,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x83,0x00,0x00,0x00,
    +0x14,0x00,0x00,0x00,0x82,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x83,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x85,0x00,0x00,0x00,
    +0x48,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x17,0x00,0x00,0x00,0x88,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    +0x87,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x89,0x00,0x00,0x00,0x88,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x8b,0x00,0x00,0x00,0x48,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x8e,0x00,0x00,0x00,0x8b,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    +0x0c,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x8f,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x26,0x00,0x00,0x00,0x89,0x00,0x00,0x00,
    +0x8e,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    +0x93,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x92,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x94,0x00,0x00,0x00,
    +0x93,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x95,0x00,0x00,0x00,0x33,0x00,0x00,0x00,0x94,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x97,0x00,0x00,0x00,
    +0x43,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x17,0x00,0x00,0x00,0x99,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    +0x98,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0x99,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,0x97,0x00,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x9c,0x00,0x00,0x00,0x95,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9e,0x00,0x00,0x00,
    +0x9c,0x00,0x00,0x00,0x85,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x9f,0x00,0x00,0x00,0x9e,0x00,0x00,0x00,
    +0x6e,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    +0xa3,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,
    +0xa3,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xa5,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,
    +0x4b,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x17,0x00,0x00,0x00,0xaa,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    +0xa9,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0xab,0x00,0x00,0x00,0xaa,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xac,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,
    +0xab,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xad,0x00,0x00,0x00,0xa5,0x00,0x00,0x00,0xac,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,
    +0xad,0x00,0x00,0x00,0x85,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xb0,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,
    +0x6e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xb2,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xb2,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xe5,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x05,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,0xc3,0x00,0x00,0x00,
    +0xe5,0x02,0x00,0x00,0xc1,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xb4,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,
    +0xb4,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xb3,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xcd,0x00,0x00,0x00,0xce,0x00,0x00,0x00,
    +0xca,0x00,0x00,0x00,0xe5,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0xce,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,0xe5,0x02,0x00,0x00,
    +0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xb2,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xb4,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xd4,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xd4,0x00,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xfe,0x02,0x00,0x00,
    +0xb0,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,0xb3,0x01,0x00,0x00,
     0xd7,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xa4,0x02,0x00,0x00,0x85,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,
    -0x1f,0x02,0x00,0x00,0xd7,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc2,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,0xa4,0x02,0x00,0x00,
    -0x8f,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xd6,0x00,0x00,0x00,
    -0xd7,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xdb,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xd5,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xdd,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xdd,0x00,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xb4,0x02,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0x23,0x01,0x00,0x00,
    -0xde,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,
    -0xe3,0x00,0x00,0x00,0xb4,0x02,0x00,0x00,0x38,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xdf,0x00,0x00,0x00,0xde,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xe3,0x00,0x00,0x00,
    -0xde,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xde,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xe8,0x00,0x00,0x00,0x75,0x00,0x00,0x00,0xb4,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,
    -0xe8,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xec,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,
    +0xfa,0x02,0x00,0x00,0x9f,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,
    +0xb0,0x01,0x00,0x00,0xd7,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xe6,0x02,0x00,0x00,0x85,0x00,0x00,0x00,
    +0xb4,0x00,0x00,0x00,0x61,0x02,0x00,0x00,0xd7,0x00,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,
    +0xe6,0x02,0x00,0x00,0x8f,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xd6,0x00,0x00,0x00,0xd7,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xdb,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,
    +0xd6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xd5,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xdd,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xdd,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xf6,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,
    +0x49,0x01,0x00,0x00,0xde,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc2,0x00,0x00,0x00,0xe3,0x00,0x00,0x00,0xf6,0x02,0x00,0x00,
    +0x38,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xdf,0x00,0x00,0x00,
    +0xde,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xe3,0x00,0x00,0x00,0xde,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xde,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0x75,0x00,0x00,0x00,
    +0xf6,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xeb,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xec,0x00,0x00,0x00,
    +0xeb,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xed,0x00,0x00,0x00,0xfa,0x02,0x00,0x00,
    +0xec,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xef,0x00,0x00,0x00,0xed,0x00,0x00,0x00,0x70,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,
    +0xe8,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,0x70,0x00,0x00,0x00,
     0x6e,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xed,0x00,0x00,0x00,0xb8,0x02,0x00,0x00,0xec,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xef,0x00,0x00,0x00,
    -0xed,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,
    -0xf4,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xf7,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,
    -0xf5,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,0x41,0x00,0x07,0x00,
    -0x05,0x01,0x00,0x00,0x06,0x01,0x00,0x00,0x03,0x01,0x00,0x00,
    -0x35,0x00,0x00,0x00,0xef,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,0x07,0x01,0x00,0x00,
    -0x06,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x08,0x01,0x00,0x00,
    -0x09,0x01,0x00,0x00,0xfd,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x09,0x01,0x00,0x00,0x07,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0b,0x01,0x00,0x00,
    -0xf8,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x41,0x00,0x07,0x00,
    -0x05,0x01,0x00,0x00,0x0d,0x01,0x00,0x00,0x03,0x01,0x00,0x00,
    -0x35,0x00,0x00,0x00,0xef,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,0x0e,0x01,0x00,0x00,
    -0x0d,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x08,0x01,0x00,0x00,
    -0x0f,0x01,0x00,0x00,0xfd,0x00,0x00,0x00,0x0b,0x01,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x0f,0x01,0x00,0x00,0x0e,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x11,0x01,0x00,0x00,
    -0xf8,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x41,0x00,0x07,0x00,
    -0x05,0x01,0x00,0x00,0x13,0x01,0x00,0x00,0x03,0x01,0x00,0x00,
    -0x35,0x00,0x00,0x00,0xef,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,0x14,0x01,0x00,0x00,
    -0x13,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x08,0x01,0x00,0x00,
    -0x15,0x01,0x00,0x00,0xfd,0x00,0x00,0x00,0x11,0x01,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x15,0x01,0x00,0x00,0x14,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x18,0x01,0x00,0x00,
    -0xf8,0x00,0x00,0x00,0x17,0x01,0x00,0x00,0x41,0x00,0x07,0x00,
    -0x05,0x01,0x00,0x00,0x1a,0x01,0x00,0x00,0x03,0x01,0x00,0x00,
    -0x35,0x00,0x00,0x00,0xef,0x00,0x00,0x00,0x17,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,0x1b,0x01,0x00,0x00,
    -0x1a,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x08,0x01,0x00,0x00,
    -0x1c,0x01,0x00,0x00,0xfd,0x00,0x00,0x00,0x18,0x01,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x1c,0x01,0x00,0x00,0x1b,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x23,0x01,0x00,0x00,
    -0xb4,0x02,0x00,0x00,0x21,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xdd,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xdf,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x25,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x25,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xb5,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,
    -0x6d,0x01,0x00,0x00,0x26,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc2,0x00,0x00,0x00,0x2b,0x01,0x00,0x00,0xb5,0x02,0x00,0x00,
    -0xa7,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x27,0x01,0x00,0x00,
    -0x26,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x2b,0x01,0x00,0x00,0x26,0x01,0x00,0x00,0x27,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x26,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x30,0x01,0x00,0x00,0x7f,0x00,0x00,0x00,
    -0xb5,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x33,0x01,0x00,0x00,0x30,0x01,0x00,0x00,0xab,0x00,0x00,0x00,
    -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x34,0x01,0x00,0x00,
    -0x33,0x01,0x00,0x00,0x6e,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x35,0x01,0x00,0x00,0xbc,0x02,0x00,0x00,
    -0x34,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x37,0x01,0x00,0x00,0x35,0x01,0x00,0x00,0x7a,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3d,0x01,0x00,0x00,
    -0x30,0x01,0x00,0x00,0x3c,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x3f,0x01,0x00,0x00,0x7a,0x00,0x00,0x00,
    +0xf8,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x07,0x01,0x00,0x00,0x08,0x01,0x00,0x00,
    +0x05,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0xef,0x00,0x00,0x00,
    +0x35,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xc4,0x00,0x00,0x00,0x09,0x01,0x00,0x00,0x08,0x01,0x00,0x00,
    +0x73,0x00,0x04,0x00,0xf9,0x00,0x00,0x00,0x0a,0x01,0x00,0x00,
    +0x09,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x0b,0x01,0x00,0x00,
    +0x0c,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x0c,0x01,0x00,0x00,0x0a,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0e,0x01,0x00,0x00,
    +0xf8,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x07,0x01,0x00,0x00,0x10,0x01,0x00,0x00,0x05,0x01,0x00,0x00,
    +0x35,0x00,0x00,0x00,0xef,0x00,0x00,0x00,0x35,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,
    +0x11,0x01,0x00,0x00,0x10,0x01,0x00,0x00,0x73,0x00,0x04,0x00,
    +0xf9,0x00,0x00,0x00,0x12,0x01,0x00,0x00,0x11,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x0b,0x01,0x00,0x00,0x13,0x01,0x00,0x00,
    +0xfe,0x00,0x00,0x00,0x0e,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x13,0x01,0x00,0x00,0x12,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x15,0x01,0x00,0x00,0xf8,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0x07,0x01,0x00,0x00,
    +0x17,0x01,0x00,0x00,0x05,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    +0xef,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,0x18,0x01,0x00,0x00,
    +0x17,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0xf9,0x00,0x00,0x00,
    +0x19,0x01,0x00,0x00,0x18,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x0b,0x01,0x00,0x00,0x1a,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,
    +0x15,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x1a,0x01,0x00,0x00,
    +0x19,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x1d,0x01,0x00,0x00,0xf8,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x07,0x01,0x00,0x00,0x1f,0x01,0x00,0x00,
    +0x05,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0xef,0x00,0x00,0x00,
    +0x35,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xc4,0x00,0x00,0x00,0x20,0x01,0x00,0x00,0x1f,0x01,0x00,0x00,
    +0x73,0x00,0x04,0x00,0xf9,0x00,0x00,0x00,0x21,0x01,0x00,0x00,
    +0x20,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x0b,0x01,0x00,0x00,
    +0x22,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,0x1d,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x22,0x01,0x00,0x00,0x21,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x25,0x01,0x00,0x00,
    +0xf8,0x00,0x00,0x00,0x24,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x07,0x01,0x00,0x00,0x27,0x01,0x00,0x00,0x05,0x01,0x00,0x00,
    +0x35,0x00,0x00,0x00,0xef,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,
    +0x28,0x01,0x00,0x00,0x27,0x01,0x00,0x00,0x73,0x00,0x04,0x00,
    +0xf9,0x00,0x00,0x00,0x29,0x01,0x00,0x00,0x28,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x0b,0x01,0x00,0x00,0x2a,0x01,0x00,0x00,
    +0xfe,0x00,0x00,0x00,0x25,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x2a,0x01,0x00,0x00,0x29,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x2d,0x01,0x00,0x00,0xf8,0x00,0x00,0x00,
    +0x2c,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x07,0x01,0x00,0x00,
    +0x2f,0x01,0x00,0x00,0x05,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    +0xef,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,0x30,0x01,0x00,0x00,
    +0x2f,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0xf9,0x00,0x00,0x00,
    +0x31,0x01,0x00,0x00,0x30,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x0b,0x01,0x00,0x00,0x32,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,
    +0x2d,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x32,0x01,0x00,0x00,
    +0x31,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x35,0x01,0x00,0x00,0xf8,0x00,0x00,0x00,0x34,0x01,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x07,0x01,0x00,0x00,0x37,0x01,0x00,0x00,
    +0x05,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0xef,0x00,0x00,0x00,
    +0xd0,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xc4,0x00,0x00,0x00,0x38,0x01,0x00,0x00,0x37,0x01,0x00,0x00,
    +0x73,0x00,0x04,0x00,0xf9,0x00,0x00,0x00,0x39,0x01,0x00,0x00,
    +0x38,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x0b,0x01,0x00,0x00,
    +0x3a,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,0x35,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x3a,0x01,0x00,0x00,0x39,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3d,0x01,0x00,0x00,
    +0xf8,0x00,0x00,0x00,0x3c,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x07,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,0x05,0x01,0x00,0x00,
    +0x35,0x00,0x00,0x00,0xef,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,
    +0x1c,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,
    +0x40,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,0x73,0x00,0x04,0x00,
    +0xf9,0x00,0x00,0x00,0x41,0x01,0x00,0x00,0x40,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x0b,0x01,0x00,0x00,0x42,0x01,0x00,0x00,
    +0xfe,0x00,0x00,0x00,0x3d,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x42,0x01,0x00,0x00,0x41,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x49,0x01,0x00,0x00,0xf6,0x02,0x00,0x00,
    +0x47,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xdd,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xdf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x4b,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x4b,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xf7,0x02,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0xac,0x01,0x00,0x00,
    +0x4c,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,
    +0x51,0x01,0x00,0x00,0xf7,0x02,0x00,0x00,0xa7,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x4d,0x01,0x00,0x00,0x4c,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x51,0x01,0x00,0x00,
    +0x4c,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x4c,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x56,0x01,0x00,0x00,0x7f,0x00,0x00,0x00,0xf7,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x59,0x01,0x00,0x00,
    +0x56,0x01,0x00,0x00,0xab,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x5a,0x01,0x00,0x00,0x59,0x01,0x00,0x00,
     0x6e,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x40,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,
    -0x41,0x00,0x07,0x00,0x4f,0x01,0x00,0x00,0x50,0x01,0x00,0x00,
    -0x4d,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0x37,0x01,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x48,0x01,0x00,0x00,
    -0x51,0x01,0x00,0x00,0x50,0x01,0x00,0x00,0x73,0x00,0x04,0x00,
    -0xc4,0x00,0x00,0x00,0x52,0x01,0x00,0x00,0x51,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x08,0x01,0x00,0x00,0x53,0x01,0x00,0x00,
    -0x45,0x01,0x00,0x00,0x40,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x53,0x01,0x00,0x00,0x52,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x55,0x01,0x00,0x00,0x40,0x01,0x00,0x00,
    -0x3a,0x00,0x00,0x00,0x41,0x00,0x07,0x00,0x4f,0x01,0x00,0x00,
    -0x57,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    -0x37,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x48,0x01,0x00,0x00,0x58,0x01,0x00,0x00,0x57,0x01,0x00,0x00,
    -0x73,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,0x59,0x01,0x00,0x00,
    -0x58,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x08,0x01,0x00,0x00,
    -0x5a,0x01,0x00,0x00,0x45,0x01,0x00,0x00,0x55,0x01,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x5a,0x01,0x00,0x00,0x59,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5c,0x01,0x00,0x00,
    -0x40,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x41,0x00,0x07,0x00,
    -0x4f,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,
    -0x35,0x00,0x00,0x00,0x37,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x48,0x01,0x00,0x00,0x5f,0x01,0x00,0x00,
    -0x5e,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,
    -0x60,0x01,0x00,0x00,0x5f,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x08,0x01,0x00,0x00,0x61,0x01,0x00,0x00,0x45,0x01,0x00,0x00,
    -0x5c,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x61,0x01,0x00,0x00,
    -0x60,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x63,0x01,0x00,0x00,0x40,0x01,0x00,0x00,0x17,0x01,0x00,0x00,
    -0x41,0x00,0x07,0x00,0x4f,0x01,0x00,0x00,0x65,0x01,0x00,0x00,
    -0x4d,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0x37,0x01,0x00,0x00,
    -0x17,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x48,0x01,0x00,0x00,
    -0x66,0x01,0x00,0x00,0x65,0x01,0x00,0x00,0x73,0x00,0x04,0x00,
    -0xc4,0x00,0x00,0x00,0x67,0x01,0x00,0x00,0x66,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x08,0x01,0x00,0x00,0x68,0x01,0x00,0x00,
    -0x45,0x01,0x00,0x00,0x63,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x68,0x01,0x00,0x00,0x67,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x6d,0x01,0x00,0x00,0xb5,0x02,0x00,0x00,
    -0x6b,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x25,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x27,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,
    -0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x6e,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x71,0x01,0x00,0x00,
    -0xb8,0x02,0x00,0x00,0x6f,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x74,0x01,0x00,0x00,0xbc,0x02,0x00,0x00,
    -0x72,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x76,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x76,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xbe,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0x27,0x01,0x00,0x00,0x1d,0x02,0x00,0x00,0x79,0x01,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,0x7c,0x01,0x00,0x00,
    -0xbe,0x02,0x00,0x00,0x6d,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x78,0x01,0x00,0x00,0x79,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x7c,0x01,0x00,0x00,0x77,0x01,0x00,0x00,
    -0x78,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x77,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x7e,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x7e,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xc2,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0x77,0x01,0x00,0x00,
    -0xa9,0x01,0x00,0x00,0x81,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc2,0x00,0x00,0x00,0x84,0x01,0x00,0x00,0xc2,0x02,0x00,0x00,
    -0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x80,0x01,0x00,0x00,
    -0x81,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x84,0x01,0x00,0x00,0x7f,0x01,0x00,0x00,0x80,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x7f,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x86,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x86,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xd4,0x02,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0x7f,0x01,0x00,0x00,0xa7,0x01,0x00,0x00,
    -0x87,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,
    -0x8c,0x01,0x00,0x00,0xd4,0x02,0x00,0x00,0x63,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x88,0x01,0x00,0x00,0x87,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x8c,0x01,0x00,0x00,
    -0x87,0x01,0x00,0x00,0x88,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x87,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x92,0x01,0x00,0x00,0xc2,0x02,0x00,0x00,0x63,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x94,0x01,0x00,0x00,
    -0x92,0x01,0x00,0x00,0xd4,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x96,0x01,0x00,0x00,0x56,0x00,0x00,0x00,
    -0x54,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x98,0x01,0x00,0x00,0xc2,0x02,0x00,0x00,0x62,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x99,0x01,0x00,0x00,
    -0x96,0x01,0x00,0x00,0x98,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x9b,0x01,0x00,0x00,0x65,0x00,0x00,0x00,
    -0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x9c,0x01,0x00,0x00,0x99,0x01,0x00,0x00,0x9b,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9e,0x01,0x00,0x00,
    -0x9c,0x01,0x00,0x00,0xd4,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xa0,0x01,0x00,0x00,0x9e,0x01,0x00,0x00,
    -0x9f,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xa2,0x01,0x00,0x00,0xa0,0x01,0x00,0x00,0xbe,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x08,0x01,0x00,0x00,0xa3,0x01,0x00,0x00,
    -0xfd,0x00,0x00,0x00,0xa2,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xc4,0x00,0x00,0x00,0xa4,0x01,0x00,0x00,0xa3,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xcd,0x00,0x00,0x00,0xa5,0x01,0x00,0x00,
    -0x90,0x01,0x00,0x00,0x94,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0xa5,0x01,0x00,0x00,0xa4,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xa7,0x01,0x00,0x00,0xd4,0x02,0x00,0x00,
    -0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x86,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x88,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x81,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x81,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa9,0x01,0x00,0x00,
    -0xc2,0x02,0x00,0x00,0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x7e,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x80,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xab,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xab,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xc3,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0x80,0x01,0x00,0x00,
    -0xd7,0x01,0x00,0x00,0xae,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc2,0x00,0x00,0x00,0xb1,0x01,0x00,0x00,0xc3,0x02,0x00,0x00,
    -0xbf,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xad,0x01,0x00,0x00,
    -0xae,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xb1,0x01,0x00,0x00,0xac,0x01,0x00,0x00,0xad,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xac,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xb3,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xb3,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xd1,0x02,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0xac,0x01,0x00,0x00,0xd5,0x01,0x00,0x00,
    -0xb4,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,
    -0xb9,0x01,0x00,0x00,0xd1,0x02,0x00,0x00,0xbc,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xb5,0x01,0x00,0x00,0xb4,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xb9,0x01,0x00,0x00,
    -0xb4,0x01,0x00,0x00,0xb5,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xb4,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xbf,0x01,0x00,0x00,0xc3,0x02,0x00,0x00,0xbc,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc1,0x01,0x00,0x00,
    -0xbf,0x01,0x00,0x00,0xd1,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xc3,0x01,0x00,0x00,0x5a,0x00,0x00,0x00,
    -0xb9,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xc6,0x01,0x00,0x00,0xc3,0x02,0x00,0x00,0xc5,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc7,0x01,0x00,0x00,
    -0xc3,0x01,0x00,0x00,0xc6,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xc9,0x01,0x00,0x00,0x69,0x00,0x00,0x00,
    -0xbc,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xca,0x01,0x00,0x00,0xc7,0x01,0x00,0x00,0xc9,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xcc,0x01,0x00,0x00,
    -0xca,0x01,0x00,0x00,0xd1,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xce,0x01,0x00,0x00,0xcc,0x01,0x00,0x00,
    -0xcd,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xd0,0x01,0x00,0x00,0xce,0x01,0x00,0x00,0xbe,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x08,0x01,0x00,0x00,0xd1,0x01,0x00,0x00,
    -0x45,0x01,0x00,0x00,0xd0,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xc4,0x00,0x00,0x00,0xd2,0x01,0x00,0x00,0xd1,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xcd,0x00,0x00,0x00,0xd3,0x01,0x00,0x00,
    -0xbd,0x01,0x00,0x00,0xc1,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0xd3,0x01,0x00,0x00,0xd2,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xd5,0x01,0x00,0x00,0xd1,0x02,0x00,0x00,
    -0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xb3,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xb5,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xae,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xae,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd7,0x01,0x00,0x00,
    -0xc3,0x02,0x00,0x00,0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xab,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xad,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xd9,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xd9,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xc4,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0xad,0x01,0x00,0x00,
    -0x1b,0x02,0x00,0x00,0xdc,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc2,0x00,0x00,0x00,0xdf,0x01,0x00,0x00,0xc4,0x02,0x00,0x00,
    -0xbf,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xdb,0x01,0x00,0x00,
    -0xdc,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xdf,0x01,0x00,0x00,0xda,0x01,0x00,0x00,0xdb,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xda,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xe1,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xe1,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xc8,0x02,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0xda,0x01,0x00,0x00,0x19,0x02,0x00,0x00,
    -0xe4,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,
    -0xe7,0x01,0x00,0x00,0xc8,0x02,0x00,0x00,0x61,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xe3,0x01,0x00,0x00,0xe4,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xe7,0x01,0x00,0x00,
    -0xe2,0x01,0x00,0x00,0xe3,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xe2,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xe9,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xe9,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xca,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0xe2,0x01,0x00,0x00,0x17,0x02,0x00,0x00,0xec,0x01,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,0xef,0x01,0x00,0x00,
    -0xca,0x02,0x00,0x00,0xbc,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xeb,0x01,0x00,0x00,0xec,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xef,0x01,0x00,0x00,0xea,0x01,0x00,0x00,
    -0xeb,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xea,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xf1,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xf1,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xcc,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0xea,0x01,0x00,0x00,
    -0x15,0x02,0x00,0x00,0xf2,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc2,0x00,0x00,0x00,0xf7,0x01,0x00,0x00,0xcc,0x02,0x00,0x00,
    -0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xf3,0x01,0x00,0x00,
    -0xf2,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xf7,0x01,0x00,0x00,0xf2,0x01,0x00,0x00,0xf3,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xf2,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xf9,0x01,0x00,0x00,0xc4,0x02,0x00,0x00,
    -0xbc,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xfb,0x01,0x00,0x00,0xf9,0x01,0x00,0x00,0xca,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfd,0x01,0x00,0x00,
    -0xfb,0x01,0x00,0x00,0xfc,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xff,0x01,0x00,0x00,0xc8,0x02,0x00,0x00,
    -0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x00,0x02,0x00,0x00,0xfd,0x01,0x00,0x00,0xff,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x02,0x02,0x00,0x00,
    -0x00,0x02,0x00,0x00,0xcc,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x06,0x02,0x00,0x00,0xff,0x01,0x00,0x00,
    -0xcc,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xcd,0x00,0x00,0x00,
    -0x07,0x02,0x00,0x00,0x90,0x01,0x00,0x00,0x06,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,0x08,0x02,0x00,0x00,
    -0x07,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xcd,0x00,0x00,0x00,
    -0x0d,0x02,0x00,0x00,0xbd,0x01,0x00,0x00,0xfb,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,0x0e,0x02,0x00,0x00,
    -0x0d,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xcd,0x00,0x00,0x00,
    -0x10,0x02,0x00,0x00,0xca,0x00,0x00,0x00,0x02,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,0x11,0x02,0x00,0x00,
    -0x10,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0xc4,0x00,0x00,0x00,
    -0x12,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,
    -0x08,0x02,0x00,0x00,0x0e,0x02,0x00,0x00,0x11,0x02,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x10,0x02,0x00,0x00,0x12,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x15,0x02,0x00,0x00,
    -0xcc,0x02,0x00,0x00,0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xf1,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xf3,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xec,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xec,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x17,0x02,0x00,0x00,0xca,0x02,0x00,0x00,0xd0,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xe9,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xeb,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xe4,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xe4,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x19,0x02,0x00,0x00,0xc8,0x02,0x00,0x00,
    -0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xe1,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xe3,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xdc,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xdc,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1b,0x02,0x00,0x00,
    -0xc4,0x02,0x00,0x00,0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xd9,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xdb,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x79,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x79,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x1d,0x02,0x00,0x00,0xbe,0x02,0x00,0x00,0xd0,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x76,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x78,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x6e,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xd7,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xd7,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1f,0x02,0x00,0x00,
    -0xa4,0x02,0x00,0x00,0x6d,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xd4,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xd6,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x24,0x02,0x00,0x00,
    -0x56,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x25,0x02,0x00,0x00,0x97,0x00,0x00,0x00,
    -0x24,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x2a,0x02,0x00,0x00,0x5a,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2b,0x02,0x00,0x00,
    -0xa8,0x00,0x00,0x00,0x2a,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x17,0x00,0x00,0x00,0x2f,0x02,0x00,0x00,0x14,0x00,0x00,0x00,
    -0x2e,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x30,0x02,0x00,0x00,0x2f,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x31,0x02,0x00,0x00,0x0f,0x00,0x00,0x00,
    -0x30,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x35,0x02,0x00,0x00,0x48,0x00,0x00,0x00,0x30,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,0x37,0x02,0x00,0x00,
    -0x36,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x38,0x02,0x00,0x00,0x37,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x39,0x02,0x00,0x00,
    -0x35,0x02,0x00,0x00,0x38,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x3a,0x02,0x00,0x00,0x31,0x02,0x00,0x00,
    -0x39,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x3c,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x3c,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xa5,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0xd6,0x00,0x00,0x00,0xa2,0x02,0x00,0x00,0x3f,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,0x42,0x02,0x00,0x00,
    -0xa5,0x02,0x00,0x00,0xbf,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x3e,0x02,0x00,0x00,0x3f,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x42,0x02,0x00,0x00,0x3d,0x02,0x00,0x00,
    -0x3e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x3d,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x44,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x44,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xa6,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0x3d,0x02,0x00,0x00,
    -0xa0,0x02,0x00,0x00,0x47,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc2,0x00,0x00,0x00,0x4a,0x02,0x00,0x00,0xa6,0x02,0x00,0x00,
    -0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x46,0x02,0x00,0x00,
    -0x47,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x4a,0x02,0x00,0x00,0x45,0x02,0x00,0x00,0x46,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x45,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x4e,0x02,0x00,0x00,0xa6,0x02,0x00,0x00,
    -0x62,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x4f,0x02,0x00,0x00,0x25,0x02,0x00,0x00,0x4e,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x51,0x02,0x00,0x00,
    -0x65,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x52,0x02,0x00,0x00,0x4f,0x02,0x00,0x00,
    -0x51,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x56,0x02,0x00,0x00,0xa5,0x02,0x00,0x00,0xc5,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x57,0x02,0x00,0x00,
    -0x2b,0x02,0x00,0x00,0x56,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x59,0x02,0x00,0x00,0x69,0x00,0x00,0x00,
    -0xbc,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x5a,0x02,0x00,0x00,0x57,0x02,0x00,0x00,0x59,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x5c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x5c,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xa8,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0x45,0x02,0x00,0x00,
    -0x9e,0x02,0x00,0x00,0x5f,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc2,0x00,0x00,0x00,0x62,0x02,0x00,0x00,0xa8,0x02,0x00,0x00,
    -0xbc,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x5e,0x02,0x00,0x00,
    -0x5f,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x62,0x02,0x00,0x00,0x5d,0x02,0x00,0x00,0x5e,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x5d,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x64,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x64,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xaa,0x02,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0x5d,0x02,0x00,0x00,0x9c,0x02,0x00,0x00,
    -0x67,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,
    -0x6a,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,0x63,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x66,0x02,0x00,0x00,0x67,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x6a,0x02,0x00,0x00,
    -0x65,0x02,0x00,0x00,0x66,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x65,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x6d,0x02,0x00,0x00,0x52,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,0x70,0x02,0x00,0x00,
    -0x6d,0x02,0x00,0x00,0x37,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,
    -0x72,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x70,0x02,0x00,0x00,0x71,0x02,0x00,0x00,0x72,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x71,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x75,0x02,0x00,0x00,0x5a,0x02,0x00,0x00,
    -0xa8,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    -0x76,0x02,0x00,0x00,0x14,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x77,0x02,0x00,0x00,
    -0x76,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,
    -0x78,0x02,0x00,0x00,0x75,0x02,0x00,0x00,0x77,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x72,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x72,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0xc2,0x00,0x00,0x00,
    -0x79,0x02,0x00,0x00,0x70,0x02,0x00,0x00,0x65,0x02,0x00,0x00,
    -0x78,0x02,0x00,0x00,0x71,0x02,0x00,0x00,0xf7,0x00,0x03,0x00,
    -0x7b,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x79,0x02,0x00,0x00,0x7a,0x02,0x00,0x00,0x7b,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x7a,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x83,0x02,0x00,0x00,0x5a,0x02,0x00,0x00,
    -0xa8,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    -0x85,0x02,0x00,0x00,0x14,0x00,0x00,0x00,0x84,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x86,0x02,0x00,0x00,
    -0x85,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x87,0x02,0x00,0x00,0x83,0x02,0x00,0x00,0x86,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x88,0x02,0x00,0x00,
    -0x3a,0x02,0x00,0x00,0x87,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x8a,0x02,0x00,0x00,0x88,0x02,0x00,0x00,
    -0x52,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x8c,0x02,0x00,0x00,0x8a,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8e,0x02,0x00,0x00,
    -0xa5,0x02,0x00,0x00,0xbc,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x90,0x02,0x00,0x00,0x8e,0x02,0x00,0x00,
    -0xa8,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x92,0x02,0x00,0x00,0x90,0x02,0x00,0x00,0x91,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x94,0x02,0x00,0x00,
    -0xa6,0x02,0x00,0x00,0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x95,0x02,0x00,0x00,0x92,0x02,0x00,0x00,
    -0x94,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x97,0x02,0x00,0x00,0x95,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xcd,0x00,0x00,0x00,0x98,0x02,0x00,0x00,
    -0xca,0x00,0x00,0x00,0x97,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xc4,0x00,0x00,0x00,0x99,0x02,0x00,0x00,0x98,0x02,0x00,0x00,
    -0x41,0x00,0x06,0x00,0x05,0x01,0x00,0x00,0x9a,0x02,0x00,0x00,
    -0x7f,0x02,0x00,0x00,0x35,0x00,0x00,0x00,0x8c,0x02,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x9a,0x02,0x00,0x00,0x99,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x7b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x7b,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x67,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x67,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x9c,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,
    -0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x64,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x66,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x5f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x5f,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9e,0x02,0x00,0x00,
    -0xa8,0x02,0x00,0x00,0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x5c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x5e,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x47,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x47,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xa0,0x02,0x00,0x00,0xa6,0x02,0x00,0x00,0xd0,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x44,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x46,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x3f,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x3f,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xa2,0x02,0x00,0x00,0xa5,0x02,0x00,0x00,
    -0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x3c,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x3e,0x02,0x00,0x00,0xfd,0x00,0x01,0x00,
    -0x38,0x00,0x01,0x00,
    +0x5b,0x01,0x00,0x00,0xfe,0x02,0x00,0x00,0x5a,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,
    +0x5b,0x01,0x00,0x00,0x7a,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x63,0x01,0x00,0x00,0x56,0x01,0x00,0x00,
    +0x62,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x65,0x01,0x00,0x00,0x7a,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x66,0x01,0x00,0x00,
    +0x63,0x01,0x00,0x00,0x65,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x07,0x01,0x00,0x00,0x73,0x01,0x00,0x00,0x71,0x01,0x00,0x00,
    +0x35,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,
    +0x74,0x01,0x00,0x00,0x73,0x01,0x00,0x00,0x73,0x00,0x04,0x00,
    +0xf9,0x00,0x00,0x00,0x75,0x01,0x00,0x00,0x74,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x0b,0x01,0x00,0x00,0x76,0x01,0x00,0x00,
    +0x6b,0x01,0x00,0x00,0x66,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x76,0x01,0x00,0x00,0x75,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x78,0x01,0x00,0x00,0x66,0x01,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0x07,0x01,0x00,0x00,
    +0x7a,0x01,0x00,0x00,0x71,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    +0x5d,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,0x7b,0x01,0x00,0x00,
    +0x7a,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0xf9,0x00,0x00,0x00,
    +0x7c,0x01,0x00,0x00,0x7b,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x0b,0x01,0x00,0x00,0x7d,0x01,0x00,0x00,0x6b,0x01,0x00,0x00,
    +0x78,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x7d,0x01,0x00,0x00,
    +0x7c,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x7f,0x01,0x00,0x00,0x66,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x07,0x01,0x00,0x00,0x81,0x01,0x00,0x00,
    +0x71,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,
    +0x35,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xc4,0x00,0x00,0x00,0x82,0x01,0x00,0x00,0x81,0x01,0x00,0x00,
    +0x73,0x00,0x04,0x00,0xf9,0x00,0x00,0x00,0x83,0x01,0x00,0x00,
    +0x82,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x0b,0x01,0x00,0x00,
    +0x84,0x01,0x00,0x00,0x6b,0x01,0x00,0x00,0x7f,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x84,0x01,0x00,0x00,0x83,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x86,0x01,0x00,0x00,
    +0x66,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x07,0x01,0x00,0x00,0x88,0x01,0x00,0x00,0x71,0x01,0x00,0x00,
    +0x35,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    +0x1c,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,
    +0x89,0x01,0x00,0x00,0x88,0x01,0x00,0x00,0x73,0x00,0x04,0x00,
    +0xf9,0x00,0x00,0x00,0x8a,0x01,0x00,0x00,0x89,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x0b,0x01,0x00,0x00,0x8b,0x01,0x00,0x00,
    +0x6b,0x01,0x00,0x00,0x86,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x8b,0x01,0x00,0x00,0x8a,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x8d,0x01,0x00,0x00,0x66,0x01,0x00,0x00,
    +0x24,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x07,0x01,0x00,0x00,
    +0x8f,0x01,0x00,0x00,0x71,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    +0x5d,0x01,0x00,0x00,0xd0,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,0x90,0x01,0x00,0x00,
    +0x8f,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0xf9,0x00,0x00,0x00,
    +0x91,0x01,0x00,0x00,0x90,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x0b,0x01,0x00,0x00,0x92,0x01,0x00,0x00,0x6b,0x01,0x00,0x00,
    +0x8d,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x92,0x01,0x00,0x00,
    +0x91,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x94,0x01,0x00,0x00,0x66,0x01,0x00,0x00,0x2c,0x01,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x07,0x01,0x00,0x00,0x96,0x01,0x00,0x00,
    +0x71,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,
    +0xd0,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xc4,0x00,0x00,0x00,0x97,0x01,0x00,0x00,0x96,0x01,0x00,0x00,
    +0x73,0x00,0x04,0x00,0xf9,0x00,0x00,0x00,0x98,0x01,0x00,0x00,
    +0x97,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x0b,0x01,0x00,0x00,
    +0x99,0x01,0x00,0x00,0x6b,0x01,0x00,0x00,0x94,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x99,0x01,0x00,0x00,0x98,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9b,0x01,0x00,0x00,
    +0x66,0x01,0x00,0x00,0x34,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x07,0x01,0x00,0x00,0x9d,0x01,0x00,0x00,0x71,0x01,0x00,0x00,
    +0x35,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,0xd0,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,
    +0x9e,0x01,0x00,0x00,0x9d,0x01,0x00,0x00,0x73,0x00,0x04,0x00,
    +0xf9,0x00,0x00,0x00,0x9f,0x01,0x00,0x00,0x9e,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x0b,0x01,0x00,0x00,0xa0,0x01,0x00,0x00,
    +0x6b,0x01,0x00,0x00,0x9b,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0xa0,0x01,0x00,0x00,0x9f,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xa2,0x01,0x00,0x00,0x66,0x01,0x00,0x00,
    +0x3c,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x07,0x01,0x00,0x00,
    +0xa4,0x01,0x00,0x00,0x71,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    +0x5d,0x01,0x00,0x00,0xd0,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,0xa5,0x01,0x00,0x00,
    +0xa4,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0xf9,0x00,0x00,0x00,
    +0xa6,0x01,0x00,0x00,0xa5,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x0b,0x01,0x00,0x00,0xa7,0x01,0x00,0x00,0x6b,0x01,0x00,0x00,
    +0xa2,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xa7,0x01,0x00,0x00,
    +0xa6,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xac,0x01,0x00,0x00,0xf7,0x02,0x00,0x00,0xaa,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x4b,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x4d,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0xad,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xb0,0x01,0x00,0x00,0xfa,0x02,0x00,0x00,
    +0xae,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xb3,0x01,0x00,0x00,0xfe,0x02,0x00,0x00,0xb1,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xb5,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xb5,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x00,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0x4d,0x01,0x00,0x00,
    +0x5f,0x02,0x00,0x00,0xb8,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc2,0x00,0x00,0x00,0xbb,0x01,0x00,0x00,0x00,0x03,0x00,0x00,
    +0x6d,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xb7,0x01,0x00,0x00,
    +0xb8,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xbb,0x01,0x00,0x00,0xb6,0x01,0x00,0x00,0xb7,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xb6,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xbd,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xbd,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x04,0x03,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0xb6,0x01,0x00,0x00,0xe9,0x01,0x00,0x00,
    +0xc0,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,
    +0xc3,0x01,0x00,0x00,0x04,0x03,0x00,0x00,0x61,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xbf,0x01,0x00,0x00,0xc0,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xc3,0x01,0x00,0x00,
    +0xbe,0x01,0x00,0x00,0xbf,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xbe,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xc5,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xc5,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x16,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0xbe,0x01,0x00,0x00,0xe7,0x01,0x00,0x00,0xc6,0x01,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,0xcb,0x01,0x00,0x00,
    +0x16,0x03,0x00,0x00,0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xc7,0x01,0x00,0x00,0xc6,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xcb,0x01,0x00,0x00,0xc6,0x01,0x00,0x00,
    +0xc7,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xc6,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd1,0x01,0x00,0x00,
    +0x04,0x03,0x00,0x00,0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xd3,0x01,0x00,0x00,0xd1,0x01,0x00,0x00,
    +0x16,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xd5,0x01,0x00,0x00,0x56,0x00,0x00,0x00,0x54,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd7,0x01,0x00,0x00,
    +0x04,0x03,0x00,0x00,0x62,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xd8,0x01,0x00,0x00,0xd5,0x01,0x00,0x00,
    +0xd7,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xda,0x01,0x00,0x00,0x65,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdb,0x01,0x00,0x00,
    +0xd8,0x01,0x00,0x00,0xda,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xdd,0x01,0x00,0x00,0xdb,0x01,0x00,0x00,
    +0x16,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xdf,0x01,0x00,0x00,0xdd,0x01,0x00,0x00,0xde,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe1,0x01,0x00,0x00,
    +0xdf,0x01,0x00,0x00,0x00,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x0b,0x01,0x00,0x00,0xe2,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,
    +0xe1,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xf9,0x00,0x00,0x00,
    +0xe3,0x01,0x00,0x00,0xe2,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xe4,0x01,0x00,0x00,0xe5,0x01,0x00,0x00,0xcf,0x01,0x00,0x00,
    +0xd3,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xe5,0x01,0x00,0x00,
    +0xe3,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xe7,0x01,0x00,0x00,0x16,0x03,0x00,0x00,0xd0,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xc5,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xc7,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xc0,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xc0,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xe9,0x01,0x00,0x00,0x04,0x03,0x00,0x00,
    +0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xbd,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xbf,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xeb,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xeb,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x05,0x03,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0xbf,0x01,0x00,0x00,0x17,0x02,0x00,0x00,
    +0xee,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,
    +0xf1,0x01,0x00,0x00,0x05,0x03,0x00,0x00,0xbf,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xed,0x01,0x00,0x00,0xee,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xf1,0x01,0x00,0x00,
    +0xec,0x01,0x00,0x00,0xed,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xec,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xf3,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xf3,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x13,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0xec,0x01,0x00,0x00,0x15,0x02,0x00,0x00,0xf4,0x01,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,0xf9,0x01,0x00,0x00,
    +0x13,0x03,0x00,0x00,0xbc,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xf5,0x01,0x00,0x00,0xf4,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xf9,0x01,0x00,0x00,0xf4,0x01,0x00,0x00,
    +0xf5,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xf4,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xff,0x01,0x00,0x00,
    +0x05,0x03,0x00,0x00,0xbc,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x01,0x02,0x00,0x00,0xff,0x01,0x00,0x00,
    +0x13,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x03,0x02,0x00,0x00,0x5a,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x06,0x02,0x00,0x00,
    +0x05,0x03,0x00,0x00,0x05,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x07,0x02,0x00,0x00,0x03,0x02,0x00,0x00,
    +0x06,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x09,0x02,0x00,0x00,0x69,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0a,0x02,0x00,0x00,
    +0x07,0x02,0x00,0x00,0x09,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x0c,0x02,0x00,0x00,0x0a,0x02,0x00,0x00,
    +0x13,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x0e,0x02,0x00,0x00,0x0c,0x02,0x00,0x00,0x0d,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x10,0x02,0x00,0x00,
    +0x0e,0x02,0x00,0x00,0x00,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x0b,0x01,0x00,0x00,0x11,0x02,0x00,0x00,0x6b,0x01,0x00,0x00,
    +0x10,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xf9,0x00,0x00,0x00,
    +0x12,0x02,0x00,0x00,0x11,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xe4,0x01,0x00,0x00,0x13,0x02,0x00,0x00,0xfd,0x01,0x00,0x00,
    +0x01,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0x13,0x02,0x00,0x00,
    +0x12,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x15,0x02,0x00,0x00,0x13,0x03,0x00,0x00,0xd0,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xf3,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xf5,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xee,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xee,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x17,0x02,0x00,0x00,0x05,0x03,0x00,0x00,
    +0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xeb,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xed,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x19,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x19,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x06,0x03,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0xed,0x01,0x00,0x00,0x5d,0x02,0x00,0x00,
    +0x1c,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,
    +0x1f,0x02,0x00,0x00,0x06,0x03,0x00,0x00,0xbf,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x1b,0x02,0x00,0x00,0x1c,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x1f,0x02,0x00,0x00,
    +0x1a,0x02,0x00,0x00,0x1b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x1a,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x21,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x21,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x0a,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x1a,0x02,0x00,0x00,0x5b,0x02,0x00,0x00,0x24,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,0x27,0x02,0x00,0x00,
    +0x0a,0x03,0x00,0x00,0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x23,0x02,0x00,0x00,0x24,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x27,0x02,0x00,0x00,0x22,0x02,0x00,0x00,
    +0x23,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x22,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x29,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x29,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x0c,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0x22,0x02,0x00,0x00,
    +0x59,0x02,0x00,0x00,0x2c,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc2,0x00,0x00,0x00,0x2f,0x02,0x00,0x00,0x0c,0x03,0x00,0x00,
    +0xbc,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x2b,0x02,0x00,0x00,
    +0x2c,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x2f,0x02,0x00,0x00,0x2a,0x02,0x00,0x00,0x2b,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x2a,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x31,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x31,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x0e,0x03,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0x2a,0x02,0x00,0x00,0x57,0x02,0x00,0x00,
    +0x32,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,
    +0x37,0x02,0x00,0x00,0x0e,0x03,0x00,0x00,0x63,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x33,0x02,0x00,0x00,0x32,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x37,0x02,0x00,0x00,
    +0x32,0x02,0x00,0x00,0x33,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x32,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x39,0x02,0x00,0x00,0x06,0x03,0x00,0x00,0xbc,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3b,0x02,0x00,0x00,
    +0x39,0x02,0x00,0x00,0x0c,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x3d,0x02,0x00,0x00,0x3b,0x02,0x00,0x00,
    +0x3c,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x3f,0x02,0x00,0x00,0x0a,0x03,0x00,0x00,0x63,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x40,0x02,0x00,0x00,
    +0x3d,0x02,0x00,0x00,0x3f,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x42,0x02,0x00,0x00,0x40,0x02,0x00,0x00,
    +0x0e,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x46,0x02,0x00,0x00,0x3f,0x02,0x00,0x00,0x0e,0x03,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xe4,0x01,0x00,0x00,0x47,0x02,0x00,0x00,
    +0xcf,0x01,0x00,0x00,0x46,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xf9,0x00,0x00,0x00,0x48,0x02,0x00,0x00,0x47,0x02,0x00,0x00,
    +0x73,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,0x49,0x02,0x00,0x00,
    +0x48,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xe4,0x01,0x00,0x00,
    +0x4e,0x02,0x00,0x00,0xfd,0x01,0x00,0x00,0x3b,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xf9,0x00,0x00,0x00,0x4f,0x02,0x00,0x00,
    +0x4e,0x02,0x00,0x00,0x73,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,
    +0x50,0x02,0x00,0x00,0x4f,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xcd,0x00,0x00,0x00,0x52,0x02,0x00,0x00,0xca,0x00,0x00,0x00,
    +0x42,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,
    +0x53,0x02,0x00,0x00,0x52,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,
    +0xc4,0x00,0x00,0x00,0x54,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x32,0x00,0x00,0x00,0x49,0x02,0x00,0x00,0x50,0x02,0x00,0x00,
    +0x53,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0x52,0x02,0x00,0x00,
    +0x54,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x57,0x02,0x00,0x00,0x0e,0x03,0x00,0x00,0xd0,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x31,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x33,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x2c,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x2c,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x59,0x02,0x00,0x00,0x0c,0x03,0x00,0x00,
    +0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x29,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x2b,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x24,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x24,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5b,0x02,0x00,0x00,
    +0x0a,0x03,0x00,0x00,0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x21,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x23,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x1c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x1c,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x5d,0x02,0x00,0x00,0x06,0x03,0x00,0x00,0xd0,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x19,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x1b,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xb8,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xb8,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x5f,0x02,0x00,0x00,0x00,0x03,0x00,0x00,
    +0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xb5,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xb7,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,
    +0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xad,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xd7,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xd7,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x61,0x02,0x00,0x00,0xe6,0x02,0x00,0x00,0x6d,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xd4,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xd6,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x66,0x02,0x00,0x00,0x56,0x00,0x00,0x00,0x54,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x67,0x02,0x00,0x00,
    +0x97,0x00,0x00,0x00,0x66,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x6c,0x02,0x00,0x00,0x5a,0x00,0x00,0x00,
    +0xb9,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x6d,0x02,0x00,0x00,0xa8,0x00,0x00,0x00,0x6c,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x71,0x02,0x00,0x00,
    +0x14,0x00,0x00,0x00,0x70,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x72,0x02,0x00,0x00,0x71,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x73,0x02,0x00,0x00,
    +0x0f,0x00,0x00,0x00,0x72,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x77,0x02,0x00,0x00,0x48,0x00,0x00,0x00,
    +0x72,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,
    +0x79,0x02,0x00,0x00,0x78,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x7a,0x02,0x00,0x00,
    +0x79,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x7b,0x02,0x00,0x00,0x77,0x02,0x00,0x00,0x7a,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7c,0x02,0x00,0x00,
    +0x73,0x02,0x00,0x00,0x7b,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x7e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x7e,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xe7,0x02,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,0xe4,0x02,0x00,0x00,
    +0x81,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,
    +0x84,0x02,0x00,0x00,0xe7,0x02,0x00,0x00,0xbf,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x80,0x02,0x00,0x00,0x81,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x84,0x02,0x00,0x00,
    +0x7f,0x02,0x00,0x00,0x80,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x7f,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x86,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x86,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xe8,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x7f,0x02,0x00,0x00,0xe2,0x02,0x00,0x00,0x89,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,0x8c,0x02,0x00,0x00,
    +0xe8,0x02,0x00,0x00,0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x88,0x02,0x00,0x00,0x89,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x8c,0x02,0x00,0x00,0x87,0x02,0x00,0x00,
    +0x88,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x87,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x90,0x02,0x00,0x00,
    +0xe8,0x02,0x00,0x00,0x62,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x91,0x02,0x00,0x00,0x67,0x02,0x00,0x00,
    +0x90,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x93,0x02,0x00,0x00,0x65,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x94,0x02,0x00,0x00,
    +0x91,0x02,0x00,0x00,0x93,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x98,0x02,0x00,0x00,0xe7,0x02,0x00,0x00,
    +0x05,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x99,0x02,0x00,0x00,0x6d,0x02,0x00,0x00,0x98,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9b,0x02,0x00,0x00,
    +0x69,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x9c,0x02,0x00,0x00,0x99,0x02,0x00,0x00,
    +0x9b,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x9e,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x9e,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xea,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x87,0x02,0x00,0x00,0xe0,0x02,0x00,0x00,0xa1,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,0xa4,0x02,0x00,0x00,
    +0xea,0x02,0x00,0x00,0xbc,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xa0,0x02,0x00,0x00,0xa1,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xa4,0x02,0x00,0x00,0x9f,0x02,0x00,0x00,
    +0xa0,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x9f,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xa6,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xa6,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xec,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0x9f,0x02,0x00,0x00,
    +0xde,0x02,0x00,0x00,0xa9,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc2,0x00,0x00,0x00,0xac,0x02,0x00,0x00,0xec,0x02,0x00,0x00,
    +0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xa8,0x02,0x00,0x00,
    +0xa9,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xac,0x02,0x00,0x00,0xa7,0x02,0x00,0x00,0xa8,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xa7,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xaf,0x02,0x00,0x00,0x94,0x02,0x00,0x00,
    +0xec,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,
    +0xb2,0x02,0x00,0x00,0xaf,0x02,0x00,0x00,0x37,0x00,0x00,0x00,
    +0xf7,0x00,0x03,0x00,0xb4,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xb2,0x02,0x00,0x00,0xb3,0x02,0x00,0x00,
    +0xb4,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xb3,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb7,0x02,0x00,0x00,
    +0x9c,0x02,0x00,0x00,0xea,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x17,0x00,0x00,0x00,0xb8,0x02,0x00,0x00,0x14,0x00,0x00,0x00,
    +0xd0,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0xb9,0x02,0x00,0x00,0xb8,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc2,0x00,0x00,0x00,0xba,0x02,0x00,0x00,0xb7,0x02,0x00,0x00,
    +0xb9,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xb4,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xb4,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0xc2,0x00,0x00,0x00,0xbb,0x02,0x00,0x00,0xb2,0x02,0x00,0x00,
    +0xa7,0x02,0x00,0x00,0xba,0x02,0x00,0x00,0xb3,0x02,0x00,0x00,
    +0xf7,0x00,0x03,0x00,0xbd,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xbb,0x02,0x00,0x00,0xbc,0x02,0x00,0x00,
    +0xbd,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xbc,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc5,0x02,0x00,0x00,
    +0x9c,0x02,0x00,0x00,0xea,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x17,0x00,0x00,0x00,0xc7,0x02,0x00,0x00,0x14,0x00,0x00,0x00,
    +0xc6,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0xc8,0x02,0x00,0x00,0xc7,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xc9,0x02,0x00,0x00,0xc5,0x02,0x00,0x00,
    +0xc8,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xca,0x02,0x00,0x00,0x7c,0x02,0x00,0x00,0xc9,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xcc,0x02,0x00,0x00,
    +0xca,0x02,0x00,0x00,0x94,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xce,0x02,0x00,0x00,0xcc,0x02,0x00,0x00,
    +0xec,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xd0,0x02,0x00,0x00,0xe7,0x02,0x00,0x00,0xbc,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd2,0x02,0x00,0x00,
    +0xd0,0x02,0x00,0x00,0xea,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xd4,0x02,0x00,0x00,0xd2,0x02,0x00,0x00,
    +0xd3,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xd6,0x02,0x00,0x00,0xe8,0x02,0x00,0x00,0x63,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd7,0x02,0x00,0x00,
    +0xd4,0x02,0x00,0x00,0xd6,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xd9,0x02,0x00,0x00,0xd7,0x02,0x00,0x00,
    +0xec,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xcd,0x00,0x00,0x00,
    +0xda,0x02,0x00,0x00,0xca,0x00,0x00,0x00,0xd9,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,0xdb,0x02,0x00,0x00,
    +0xda,0x02,0x00,0x00,0x41,0x00,0x06,0x00,0x07,0x01,0x00,0x00,
    +0xdc,0x02,0x00,0x00,0xc1,0x02,0x00,0x00,0x35,0x00,0x00,0x00,
    +0xce,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0xdc,0x02,0x00,0x00,
    +0xdb,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xbd,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xbd,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xa9,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xa9,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xde,0x02,0x00,0x00,
    +0xec,0x02,0x00,0x00,0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xa6,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xa8,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xa1,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xa1,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xe0,0x02,0x00,0x00,0xea,0x02,0x00,0x00,0xd0,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x9e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xa0,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x89,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x89,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xe2,0x02,0x00,0x00,0xe8,0x02,0x00,0x00,
    +0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x86,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x88,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x81,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x81,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe4,0x02,0x00,0x00,
    +0xe7,0x02,0x00,0x00,0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x7e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x80,0x02,0x00,0x00,
    +0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
     };
    -const uint64_t matmul_f32_f16_aligned_fp32_len = 10240;
    +const uint64_t matmul_f32_f32_aligned_len = 11432;
     
    -unsigned char matmul_f32_f16_fp32_data[] = {
    +unsigned char matmul_f32_f32_aligned_fp32_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
    -0xd5,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00,
    -0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x51,0x11,0x00,0x00,
    -0x0b,0x00,0x06,0x00,0x01,0x00,0x00,0x00,0x47,0x4c,0x53,0x4c,
    -0x2e,0x73,0x74,0x64,0x2e,0x34,0x35,0x30,0x00,0x00,0x00,0x00,
    -0x0e,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x0f,0x00,0x0f,0x00,0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x6d,0x61,0x69,0x6e,0x00,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    -0x14,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,
    -0xfa,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0x44,0x01,0x00,0x00,
    -0x50,0x01,0x00,0x00,0x36,0x02,0x00,0x00,0x7f,0x02,0x00,0x00,
    -0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x0b,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    -0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,
    +0xce,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00,
    +0x01,0x00,0x00,0x00,0x0b,0x00,0x06,0x00,0x01,0x00,0x00,0x00,
    +0x47,0x4c,0x53,0x4c,0x2e,0x73,0x74,0x64,0x2e,0x34,0x35,0x30,
    +0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00,0x00,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x0f,0x00,0x0f,0x00,0x05,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e,0x00,0x00,0x00,0x00,
    +0x0b,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,
    +0x4d,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,0x03,0x01,0x00,0x00,
    +0x45,0x01,0x00,0x00,0x4b,0x01,0x00,0x00,0x2f,0x02,0x00,0x00,
    +0x78,0x02,0x00,0x00,0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00,
    +0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x0b,0x00,0x00,0x00,
    +0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x12,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x12,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,
    +0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x12,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x24,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,
    +0x0a,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x28,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x2c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x12,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x30,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,
    +0x0d,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x34,0x00,0x00,0x00,
    +0x47,0x00,0x03,0x00,0x12,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x38,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x3e,0x00,0x00,0x00,
    +0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x4d,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x50,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x09,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x54,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x61,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x63,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x07,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x6d,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0xa7,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0xb9,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x05,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xbc,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x00,0x01,0x00,0x00,0x06,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
    +0x48,0x00,0x04,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x01,0x01,0x00,0x00,
     0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x12,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,
    -0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x12,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x12,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,
    -0x09,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x12,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x2c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x30,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x12,0x00,0x00,0x00,0x0d,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    -0x12,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x38,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x3e,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    -0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x4d,0x00,0x00,0x00,
    -0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x50,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x54,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x04,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x61,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x63,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x6d,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x03,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xa6,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0xb8,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x08,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x02,0x01,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,
    -0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    -0x03,0x01,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x05,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x05,0x01,0x00,0x00,0x21,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x1e,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x1f,0x01,0x00,0x00,0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x4d,0x01,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x4e,0x01,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x4e,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x4e,0x01,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x50,0x01,0x00,0x00,
    -0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x50,0x01,0x00,0x00,0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x36,0x02,0x00,0x00,0x0b,0x00,0x00,0x00,
    -0x18,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x7c,0x02,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,
    -0x7d,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x7d,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x47,0x00,0x03,0x00,0x01,0x01,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x03,0x01,0x00,0x00,0x22,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x03,0x01,0x00,0x00,
    +0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x1d,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x1e,0x01,0x00,0x00,0x0b,0x00,0x00,0x00,
    +0x19,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x48,0x01,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x04,0x00,
    +0x49,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x49,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
     0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    -0x7d,0x02,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x7f,0x02,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x7f,0x02,0x00,0x00,0x21,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00,
    -0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    -0x15,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x17,0x00,0x04,0x00,0x09,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x0a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0x0a,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x0d,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x1e,0x00,0x10,0x00,0x12,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x49,0x01,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x4b,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x4b,0x01,0x00,0x00,0x21,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x2f,0x02,0x00,0x00,
    +0x0b,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x75,0x02,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x48,0x00,0x04,0x00,0x76,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x19,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x76,0x02,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x47,0x00,0x03,0x00,0x76,0x02,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x78,0x02,0x00,0x00,0x22,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x78,0x02,0x00,0x00,
    +0x21,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x13,0x00,0x02,0x00,
    +0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x17,0x00,0x04,0x00,
    +0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x0a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x09,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x0a,0x00,0x00,0x00,
    +0x0b,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x0d,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x1e,0x00,0x10,0x00,0x12,0x00,0x00,0x00,
     0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
     0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
     0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
     0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x13,0x00,0x00,0x00,
    -0x09,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0x13,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    -0x15,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    -0x16,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x17,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x0d,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    -0x28,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x15,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x35,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x38,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0x0a,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0x0a,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x50,0x00,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x54,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x38,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x38,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x62,0x00,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x61,0x00,0x00,0x00,
    -0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x13,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x12,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x13,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    +0x09,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x15,0x00,0x00,0x00,0x16,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    +0x22,0x00,0x00,0x00,0x0d,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x15,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,
    +0x0a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    +0x35,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x40,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x0a,0x00,0x00,0x00,
    +0x3e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x0a,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x50,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x55,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x54,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x59,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x54,0x00,0x00,0x00,
    +0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x61,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x62,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x54,0x00,0x00,0x00,
    +0x61,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x63,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x62,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x62,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,
     0x04,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0x64,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x62,0x00,0x00,0x00,
    -0x63,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0x68,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x62,0x00,0x00,0x00,
    -0x63,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x6d,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x73,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x6f,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    +0x6e,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x74,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    +0x6e,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x79,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    +0x6e,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x7e,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    +0x6e,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    +0x82,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x15,0x00,0x00,0x00,0x87,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x92,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    +0x98,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x15,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    +0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,
    +0x40,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    +0xa9,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    +0x61,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xba,0x00,0x00,0x00,
    +0x84,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,
    +0x84,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
    +0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0xbd,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,
    +0xbc,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0xbe,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0xbd,0x00,0x00,0x00,
    +0x61,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0xbf,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0xba,0x00,0x00,0x00,
    +0xbe,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0xc0,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,
    +0xbf,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0xc1,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,
    +0xbc,0x00,0x00,0x00,0x14,0x00,0x02,0x00,0xc2,0x00,0x00,0x00,
    +0x16,0x00,0x03,0x00,0xc4,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,
    +0x84,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,
    +0x84,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,
    +0x84,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,
    +0x1c,0x00,0x04,0x00,0xc8,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,
    +0xc7,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xc9,0x00,0x00,0x00,
    +0x07,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0xc4,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0xcd,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    +0xc4,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    +0xd0,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,0x80,0x00,0x00,0x00,
     0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0xf9,0x00,0x00,0x00,0x80,0x00,0x00,0x00,
     0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x15,0x00,0x00,0x00,0x81,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    -0x91,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x15,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0xa1,0x00,0x00,0x00,
    -0x07,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0xa6,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x15,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,
    -0x84,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
    -0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0xb9,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x54,0x00,0x00,0x00,
    -0xb8,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0xba,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x50,0x00,0x00,0x00,
    -0x63,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0xbb,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    -0xba,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0xbd,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    -0xbc,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0xbe,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0xb9,0x00,0x00,0x00,0xbd,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    -0xb7,0x00,0x00,0x00,0xbe,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    -0xbf,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0x14,0x00,0x02,0x00,
    -0xc1,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0xc3,0x00,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0xc4,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x61,0x00,0x00,0x00,
    -0x63,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0xc5,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,
    -0xbe,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0xc6,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,
    -0xbb,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0xc7,0x00,0x00,0x00,
    -0xc3,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0xc8,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xcc,0x00,0x00,0x00,
    -0x07,0x00,0x00,0x00,0xc3,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x15,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    +0x38,0x00,0x00,0x00,0xf9,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,
    +0xfb,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0xfc,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    +0xfb,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xfc,0x00,0x00,0x00,
    +0xfd,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x17,0x00,0x04,0x00,
    +0xff,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x1d,0x00,0x03,0x00,0x00,0x01,0x00,0x00,0xff,0x00,0x00,0x00,
    +0x1e,0x00,0x03,0x00,0x01,0x01,0x00,0x00,0x00,0x01,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x02,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x01,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,0x02,0x01,0x00,0x00,
    +0x03,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x05,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x08,0x01,0x00,0x00,0x04,0x00,0x00,0x00,
    +0xc4,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x17,0x01,0x00,0x00,0x03,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x1d,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x33,0x00,0x06,0x00,0x09,0x00,0x00,0x00,0x1e,0x01,0x00,0x00,
    +0x1d,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x1f,0x01,0x00,0x00,
    +0x51,0x00,0x00,0x00,0x1e,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x20,0x01,0x00,0x00,
    +0x84,0x00,0x00,0x00,0x1f,0x01,0x00,0x00,0x6e,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x21,0x01,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x20,0x01,0x00,0x00,0x6d,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x3c,0x01,0x00,0x00,
     0x80,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,
    -0x84,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,
    -0x1c,0x00,0x04,0x00,0xf8,0x00,0x00,0x00,0xc3,0x00,0x00,0x00,
    -0xf7,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xf9,0x00,0x00,0x00,
    -0x04,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0xf9,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x41,0x01,0x00,0x00,
     0x80,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    -0x1d,0x00,0x03,0x00,0x02,0x01,0x00,0x00,0xc3,0x00,0x00,0x00,
    -0x1e,0x00,0x03,0x00,0x03,0x01,0x00,0x00,0x02,0x01,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x04,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x03,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,0x04,0x01,0x00,0x00,
    -0x05,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x10,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0xc3,0x00,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x13,0x01,0x00,0x00,0x04,0x00,0x00,0x00,
    -0xc3,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0x19,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    -0x3a,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x1e,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x33,0x00,0x06,0x00,
    -0x09,0x00,0x00,0x00,0x1f,0x01,0x00,0x00,0x1e,0x01,0x00,0x00,
    -0x3a,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x20,0x01,0x00,0x00,0x51,0x00,0x00,0x00,
    -0x1f,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x21,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    -0x20,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x22,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x21,0x01,0x00,0x00,0x6d,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x40,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
    -0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x41,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    -0xa6,0x00,0x00,0x00,0x40,0x01,0x00,0x00,0x1c,0x00,0x04,0x00,
    -0x42,0x01,0x00,0x00,0xc3,0x00,0x00,0x00,0x41,0x01,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x43,0x01,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x42,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,0x43,0x01,0x00,0x00,
    -0x44,0x01,0x00,0x00,0x04,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x48,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
    -0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x16,0x00,0x03,0x00,
    -0x4c,0x01,0x00,0x00,0x10,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    -0x4d,0x01,0x00,0x00,0x4c,0x01,0x00,0x00,0x1e,0x00,0x03,0x00,
    -0x4e,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x4f,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x4e,0x01,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0x4f,0x01,0x00,0x00,0x50,0x01,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x5b,0x01,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x4c,0x01,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x64,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
    -0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x69,0x01,0x00,0x00,0x51,0x00,0x00,0x00,
    -0x1f,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x6a,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    -0x69,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x6b,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x6a,0x01,0x00,0x00,0x6d,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x6e,0x01,0x00,0x00,0x08,0x01,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x6f,0x01,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x72,0x01,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x8d,0x01,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x42,0x01,0x00,0x00,
    +0x84,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,0x41,0x01,0x00,0x00,
    +0x1c,0x00,0x04,0x00,0x43,0x01,0x00,0x00,0xc4,0x00,0x00,0x00,
    +0x42,0x01,0x00,0x00,0x20,0x00,0x04,0x00,0x44,0x01,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x43,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0x44,0x01,0x00,0x00,0x45,0x01,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x1d,0x00,0x03,0x00,0x48,0x01,0x00,0x00,0xff,0x00,0x00,0x00,
    +0x1e,0x00,0x03,0x00,0x49,0x01,0x00,0x00,0x48,0x01,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x4a,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x49,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,0x4a,0x01,0x00,0x00,
    +0x4b,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x62,0x01,0x00,0x00,0x51,0x00,0x00,0x00,
    +0x1e,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x63,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    +0x62,0x01,0x00,0x00,0x6e,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x64,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x63,0x01,0x00,0x00,0x6d,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x67,0x01,0x00,0x00,0x08,0x01,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x68,0x01,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x6b,0x01,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x86,0x01,0x00,0x00,
     0x84,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
    -0x1c,0x00,0x04,0x00,0x8e,0x01,0x00,0x00,0xc3,0x00,0x00,0x00,
    -0x8d,0x01,0x00,0x00,0x20,0x00,0x04,0x00,0x8f,0x01,0x00,0x00,
    -0x07,0x00,0x00,0x00,0x8e,0x01,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x9f,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
    +0x1c,0x00,0x04,0x00,0x87,0x01,0x00,0x00,0xc4,0x00,0x00,0x00,
    +0x86,0x01,0x00,0x00,0x20,0x00,0x04,0x00,0x88,0x01,0x00,0x00,
    +0x07,0x00,0x00,0x00,0x87,0x01,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x98,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
     0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0xba,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    -0xbe,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,
    -0xbb,0x01,0x00,0x00,0xc3,0x00,0x00,0x00,0xba,0x01,0x00,0x00,
    -0x20,0x00,0x04,0x00,0xbc,0x01,0x00,0x00,0x07,0x00,0x00,0x00,
    -0xbb,0x01,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0xc5,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,
    -0xbe,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0xcd,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0xb3,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    +0xbf,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,
    +0xb4,0x01,0x00,0x00,0xc4,0x00,0x00,0x00,0xb3,0x01,0x00,0x00,
    +0x20,0x00,0x04,0x00,0xb5,0x01,0x00,0x00,0x07,0x00,0x00,0x00,
    +0xb4,0x01,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0xbe,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,
    +0xbf,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0xc6,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
     0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0xfc,0x01,0x00,0x00,0x84,0x00,0x00,0x00,0x61,0x00,0x00,0x00,
    +0xf5,0x01,0x00,0x00,0x84,0x00,0x00,0x00,0x61,0x00,0x00,0x00,
     0x63,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    -0x2e,0x02,0x00,0x00,0x08,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0x0a,0x00,0x00,0x00,0x36,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x1d,0x00,0x03,0x00,0x7c,0x02,0x00,0x00,0xc3,0x00,0x00,0x00,
    -0x1e,0x00,0x03,0x00,0x7d,0x02,0x00,0x00,0x7c,0x02,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x7e,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x7d,0x02,0x00,0x00,0x3b,0x00,0x04,0x00,0x7e,0x02,0x00,0x00,
    -0x7f,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x15,0x00,0x00,0x00,0x84,0x02,0x00,0x00,0x05,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x91,0x02,0x00,0x00,
    +0x27,0x02,0x00,0x00,0x08,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0x0a,0x00,0x00,0x00,0x2f,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x1d,0x00,0x03,0x00,0x75,0x02,0x00,0x00,0xc4,0x00,0x00,0x00,
    +0x1e,0x00,0x03,0x00,0x76,0x02,0x00,0x00,0x75,0x02,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x77,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x76,0x02,0x00,0x00,0x3b,0x00,0x04,0x00,0x77,0x02,0x00,0x00,
    +0x78,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x15,0x00,0x00,0x00,0x7d,0x02,0x00,0x00,0x05,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x8a,0x02,0x00,0x00,
     0x84,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
     0x36,0x00,0x05,0x00,0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
     0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x05,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xc8,0x00,0x00,0x00,
    -0xc9,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0x8f,0x01,0x00,0x00,0x90,0x01,0x00,0x00,0x07,0x00,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0xbc,0x01,0x00,0x00,0xbd,0x01,0x00,0x00,
    +0x05,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xc9,0x00,0x00,0x00,
    +0xca,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0x88,0x01,0x00,0x00,0x89,0x01,0x00,0x00,0x07,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0xb5,0x01,0x00,0x00,0xb6,0x01,0x00,0x00,
     0x07,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,
     0x0e,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
     0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,
    @@ -24252,538 +24261,529 @@ unsigned char matmul_f32_f16_fp32_data[] = {
     0x51,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x89,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,
     0x50,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x65,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,0x64,0x00,0x00,0x00,
    -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x69,0x00,0x00,0x00,
    -0x5e,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x89,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,
    -0x6e,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x74,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x73,0x00,0x00,0x00,
    -0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x79,0x00,0x00,0x00,
    -0x4f,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,
    -0x7d,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    -0x82,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x81,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x83,0x00,0x00,0x00,
    -0x82,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x84,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x83,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x87,0x00,0x00,0x00,
    -0x14,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x88,0x00,0x00,0x00,0x87,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8a,0x00,0x00,0x00,
    +0x65,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,0x64,0x00,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x69,0x00,0x00,0x00,
    +0x5e,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x89,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,
    +0x6f,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x75,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x74,0x00,0x00,0x00,
    +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7a,0x00,0x00,0x00,
    +0x4f,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,
    +0x7e,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    +0x83,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x82,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    +0x83,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x85,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x88,0x00,0x00,0x00,
    +0x14,0x00,0x00,0x00,0x87,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x89,0x00,0x00,0x00,0x88,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8b,0x00,0x00,0x00,
     0x48,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,0x8a,0x00,0x00,0x00,
    -0x83,0x00,0x00,0x00,0x0c,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x8e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x26,0x00,0x00,0x00,
    -0x88,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x17,0x00,0x00,0x00,0x92,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    -0x91,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x93,0x00,0x00,0x00,0x92,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x94,0x00,0x00,0x00,0x33,0x00,0x00,0x00,
    -0x93,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x96,0x00,0x00,0x00,0x43,0x00,0x00,0x00,0x38,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x98,0x00,0x00,0x00,
    -0x14,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x99,0x00,0x00,0x00,0x98,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0x96,0x00,0x00,0x00,0x99,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,0x94,0x00,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x9d,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9e,0x00,0x00,0x00,
    -0x9d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x17,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    -0xa1,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0xa3,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,
    -0xa3,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xa7,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0xa6,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,
    -0x14,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0xaa,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xab,0x00,0x00,0x00,
    -0xa7,0x00,0x00,0x00,0xaa,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xac,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,
    -0xab,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xae,0x00,0x00,0x00,0xac,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,
    -0xae,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xb1,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xb1,0x00,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xa3,0x02,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,
    -0xb2,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0xc2,0x00,0x00,0x00,0xa3,0x02,0x00,0x00,0xc0,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xb3,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xc2,0x00,0x00,0x00,
    -0xb2,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xb2,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,
    -0xcd,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0xa3,0x02,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0xcd,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,
    -0xa3,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xb1,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xb3,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xd3,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xd3,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xbc,0x02,0x00,0x00,0xaf,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,
    -0x74,0x01,0x00,0x00,0xd6,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xb8,0x02,0x00,0x00,0x9e,0x00,0x00,0x00,
    -0xb3,0x00,0x00,0x00,0x71,0x01,0x00,0x00,0xd6,0x00,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xa4,0x02,0x00,0x00,
    -0x84,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,0x1f,0x02,0x00,0x00,
    -0xd6,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0xda,0x00,0x00,0x00,0xa4,0x02,0x00,0x00,0x8e,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xd5,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xda,0x00,0x00,0x00,
    -0xd4,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xd4,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xdc,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xdc,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xb4,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0xd4,0x00,0x00,0x00,0x24,0x01,0x00,0x00,0xdf,0x00,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xe2,0x00,0x00,0x00,
    -0xb4,0x02,0x00,0x00,0x38,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xde,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xe2,0x00,0x00,0x00,0xdd,0x00,0x00,0x00,
    -0xde,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xdd,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe6,0x00,0x00,0x00,
    -0x96,0x00,0x00,0x00,0x74,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0xe6,0x00,0x00,0x00,
    -0xb4,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0xeb,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0x37,0x00,0x00,0x00,
    -0xf7,0x00,0x03,0x00,0xed,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xeb,0x00,0x00,0x00,0xec,0x00,0x00,0x00,
    -0xed,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xec,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,
    -0xa4,0x02,0x00,0x00,0x6f,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0xf2,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,
    -0x8e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xed,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xed,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0xc1,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,
    -0xdd,0x00,0x00,0x00,0xf2,0x00,0x00,0x00,0xec,0x00,0x00,0x00,
    -0xf7,0x00,0x03,0x00,0xf5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xf3,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,
    -0x15,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xf4,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,
    -0x74,0x00,0x00,0x00,0xb4,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,
    -0xfe,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x01,0x01,0x00,0x00,0xff,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,
    -0xfd,0x00,0x00,0x00,0x99,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x0d,0x01,0x00,0x00,0xb8,0x02,0x00,0x00,
    -0x0c,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x0f,0x01,0x00,0x00,0x0d,0x01,0x00,0x00,0x6f,0x00,0x00,0x00,
    -0x41,0x00,0x06,0x00,0x10,0x01,0x00,0x00,0x11,0x01,0x00,0x00,
    -0x05,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0x0f,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x12,0x01,0x00,0x00,
    -0x11,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x13,0x01,0x00,0x00,
    -0x14,0x01,0x00,0x00,0xfa,0x00,0x00,0x00,0x01,0x01,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x14,0x01,0x00,0x00,0x12,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xf5,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x15,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x18,0x01,0x00,0x00,0x74,0x00,0x00,0x00,0xb4,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1a,0x01,0x00,0x00,
    -0x18,0x01,0x00,0x00,0x19,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,0x1a,0x01,0x00,0x00,
    -0x6f,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x13,0x01,0x00,0x00,
    -0x1d,0x01,0x00,0x00,0xfa,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x1d,0x01,0x00,0x00,0xcb,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xf5,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xf5,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xdf,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xdf,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x24,0x01,0x00,0x00,0xb4,0x02,0x00,0x00,
    -0x22,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xdc,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xde,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x26,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x26,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xb5,0x02,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0xde,0x00,0x00,0x00,0x6d,0x01,0x00,0x00,
    -0x29,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0x2c,0x01,0x00,0x00,0xb5,0x02,0x00,0x00,0xa6,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x28,0x01,0x00,0x00,0x29,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x2c,0x01,0x00,0x00,
    -0x27,0x01,0x00,0x00,0x28,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x27,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x30,0x01,0x00,0x00,0xa7,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x32,0x01,0x00,0x00,
    -0x30,0x01,0x00,0x00,0xb5,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x17,0x00,0x00,0x00,0x33,0x01,0x00,0x00,0x14,0x00,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x34,0x01,0x00,0x00,0x33,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0x35,0x01,0x00,0x00,0x32,0x01,0x00,0x00,
    -0x34,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,0x37,0x01,0x00,0x00,
    -0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x35,0x01,0x00,0x00,
    -0x36,0x01,0x00,0x00,0x37,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x36,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x3a,0x01,0x00,0x00,0xa4,0x02,0x00,0x00,0x79,0x00,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x3c,0x01,0x00,0x00,
    -0x3a,0x01,0x00,0x00,0x8e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x37,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x37,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0xc1,0x00,0x00,0x00,0x3d,0x01,0x00,0x00,
    -0x35,0x01,0x00,0x00,0x27,0x01,0x00,0x00,0x3c,0x01,0x00,0x00,
    -0x36,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,0x3f,0x01,0x00,0x00,
    -0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x3d,0x01,0x00,0x00,
    -0x3e,0x01,0x00,0x00,0x60,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x3e,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x47,0x01,0x00,0x00,0x7e,0x00,0x00,0x00,0xb5,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x49,0x01,0x00,0x00,
    -0x47,0x01,0x00,0x00,0x48,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x4b,0x01,0x00,0x00,0x49,0x01,0x00,0x00,
    -0x79,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x57,0x01,0x00,0x00,0x47,0x01,0x00,0x00,0xaa,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x58,0x01,0x00,0x00,
    -0xbc,0x02,0x00,0x00,0x57,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x5a,0x01,0x00,0x00,0x58,0x01,0x00,0x00,
    -0x79,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x5b,0x01,0x00,0x00,
    -0x5c,0x01,0x00,0x00,0x50,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    -0x5a,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x4c,0x01,0x00,0x00,
    -0x5d,0x01,0x00,0x00,0x5c,0x01,0x00,0x00,0x73,0x00,0x04,0x00,
    -0xc3,0x00,0x00,0x00,0x5e,0x01,0x00,0x00,0x5d,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x13,0x01,0x00,0x00,0x5f,0x01,0x00,0x00,
    -0x44,0x01,0x00,0x00,0x4b,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x5f,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x3f,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x60,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x63,0x01,0x00,0x00,
    -0x7e,0x00,0x00,0x00,0xb5,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x65,0x01,0x00,0x00,0x63,0x01,0x00,0x00,
    -0x64,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x67,0x01,0x00,0x00,0x65,0x01,0x00,0x00,0x79,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x13,0x01,0x00,0x00,0x68,0x01,0x00,0x00,
    -0x44,0x01,0x00,0x00,0x67,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x68,0x01,0x00,0x00,0xcb,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x3f,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x3f,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x29,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x29,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x6d,0x01,0x00,0x00,0xb5,0x02,0x00,0x00,0x6b,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x26,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x28,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x6e,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x71,0x01,0x00,0x00,0xb8,0x02,0x00,0x00,
    -0x6f,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x74,0x01,0x00,0x00,0xbc,0x02,0x00,0x00,0x72,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x76,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x76,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xbe,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0x28,0x01,0x00,0x00,
    -0x1d,0x02,0x00,0x00,0x79,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0x7c,0x01,0x00,0x00,0xbe,0x02,0x00,0x00,
    -0x6d,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x78,0x01,0x00,0x00,
    -0x79,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x7c,0x01,0x00,0x00,0x77,0x01,0x00,0x00,0x78,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x77,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x7e,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x7e,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xc2,0x02,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0x77,0x01,0x00,0x00,0xa9,0x01,0x00,0x00,
    -0x81,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0x84,0x01,0x00,0x00,0xc2,0x02,0x00,0x00,0x61,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x80,0x01,0x00,0x00,0x81,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x84,0x01,0x00,0x00,
    -0x7f,0x01,0x00,0x00,0x80,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x7f,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x86,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x86,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xd4,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0x7f,0x01,0x00,0x00,0xa7,0x01,0x00,0x00,0x87,0x01,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x8c,0x01,0x00,0x00,
    -0xd4,0x02,0x00,0x00,0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x88,0x01,0x00,0x00,0x87,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x8c,0x01,0x00,0x00,0x87,0x01,0x00,0x00,
    -0x88,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x87,0x01,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x92,0x01,0x00,0x00,
    -0xc2,0x02,0x00,0x00,0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x94,0x01,0x00,0x00,0x92,0x01,0x00,0x00,
    -0xd4,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x96,0x01,0x00,0x00,0x56,0x00,0x00,0x00,0x54,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x98,0x01,0x00,0x00,
    -0xc2,0x02,0x00,0x00,0x62,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x99,0x01,0x00,0x00,0x96,0x01,0x00,0x00,
    -0x98,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x9b,0x01,0x00,0x00,0x65,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9c,0x01,0x00,0x00,
    -0x99,0x01,0x00,0x00,0x9b,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x9e,0x01,0x00,0x00,0x9c,0x01,0x00,0x00,
    -0xd4,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xa0,0x01,0x00,0x00,0x9e,0x01,0x00,0x00,0x9f,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa2,0x01,0x00,0x00,
    -0xa0,0x01,0x00,0x00,0xbe,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x13,0x01,0x00,0x00,0xa3,0x01,0x00,0x00,0xfa,0x00,0x00,0x00,
    -0xa2,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    -0xa4,0x01,0x00,0x00,0xa3,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xcc,0x00,0x00,0x00,0xa5,0x01,0x00,0x00,0x90,0x01,0x00,0x00,
    -0x94,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xa5,0x01,0x00,0x00,
    -0xa4,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xa7,0x01,0x00,0x00,0xd4,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x86,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x88,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x81,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x81,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xa9,0x01,0x00,0x00,0xc2,0x02,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x7e,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x80,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xab,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xab,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xc3,0x02,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0x80,0x01,0x00,0x00,0xd7,0x01,0x00,0x00,
    -0xae,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0xb1,0x01,0x00,0x00,0xc3,0x02,0x00,0x00,0xbe,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xad,0x01,0x00,0x00,0xae,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xb1,0x01,0x00,0x00,
    -0xac,0x01,0x00,0x00,0xad,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xac,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xb3,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xb3,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xd1,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0xac,0x01,0x00,0x00,0xd5,0x01,0x00,0x00,0xb4,0x01,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xb9,0x01,0x00,0x00,
    -0xd1,0x02,0x00,0x00,0xbb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xb5,0x01,0x00,0x00,0xb4,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xb9,0x01,0x00,0x00,0xb4,0x01,0x00,0x00,
    -0xb5,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xb4,0x01,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbf,0x01,0x00,0x00,
    -0xc3,0x02,0x00,0x00,0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xc1,0x01,0x00,0x00,0xbf,0x01,0x00,0x00,
    -0xd1,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xc3,0x01,0x00,0x00,0x5a,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc6,0x01,0x00,0x00,
    -0xc3,0x02,0x00,0x00,0xc5,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xc7,0x01,0x00,0x00,0xc3,0x01,0x00,0x00,
    -0xc6,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xc9,0x01,0x00,0x00,0x69,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xca,0x01,0x00,0x00,
    -0xc7,0x01,0x00,0x00,0xc9,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xcc,0x01,0x00,0x00,0xca,0x01,0x00,0x00,
    -0xd1,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xce,0x01,0x00,0x00,0xcc,0x01,0x00,0x00,0xcd,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd0,0x01,0x00,0x00,
    -0xce,0x01,0x00,0x00,0xbe,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x13,0x01,0x00,0x00,0xd1,0x01,0x00,0x00,0x44,0x01,0x00,0x00,
    -0xd0,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    -0xd2,0x01,0x00,0x00,0xd1,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xcc,0x00,0x00,0x00,0xd3,0x01,0x00,0x00,0xbd,0x01,0x00,0x00,
    -0xc1,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xd3,0x01,0x00,0x00,
    -0xd2,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xd5,0x01,0x00,0x00,0xd1,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xb3,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xb5,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xae,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xae,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xd7,0x01,0x00,0x00,0xc3,0x02,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xab,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xad,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xd9,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xd9,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xc4,0x02,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0xad,0x01,0x00,0x00,0x1b,0x02,0x00,0x00,
    -0xdc,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0xdf,0x01,0x00,0x00,0xc4,0x02,0x00,0x00,0xbe,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xdb,0x01,0x00,0x00,0xdc,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xdf,0x01,0x00,0x00,
    -0xda,0x01,0x00,0x00,0xdb,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xda,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xe1,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xe1,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xc8,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0xda,0x01,0x00,0x00,0x19,0x02,0x00,0x00,0xe4,0x01,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xe7,0x01,0x00,0x00,
    -0xc8,0x02,0x00,0x00,0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xe3,0x01,0x00,0x00,0xe4,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xe7,0x01,0x00,0x00,0xe2,0x01,0x00,0x00,
    -0xe3,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xe2,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xe9,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xe9,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xca,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0xe2,0x01,0x00,0x00,
    -0x17,0x02,0x00,0x00,0xec,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0xef,0x01,0x00,0x00,0xca,0x02,0x00,0x00,
    -0xbb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xeb,0x01,0x00,0x00,
    -0xec,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xef,0x01,0x00,0x00,0xea,0x01,0x00,0x00,0xeb,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xea,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xf1,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xf1,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xcc,0x02,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0xea,0x01,0x00,0x00,0x15,0x02,0x00,0x00,
    -0xf2,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0xf7,0x01,0x00,0x00,0xcc,0x02,0x00,0x00,0x63,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xf3,0x01,0x00,0x00,0xf2,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xf7,0x01,0x00,0x00,
    -0xf2,0x01,0x00,0x00,0xf3,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xf2,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xf9,0x01,0x00,0x00,0xc4,0x02,0x00,0x00,0xbb,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfb,0x01,0x00,0x00,
    -0xf9,0x01,0x00,0x00,0xca,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xfd,0x01,0x00,0x00,0xfb,0x01,0x00,0x00,
    -0xfc,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xff,0x01,0x00,0x00,0xc8,0x02,0x00,0x00,0x63,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x00,0x02,0x00,0x00,
    -0xfd,0x01,0x00,0x00,0xff,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x02,0x02,0x00,0x00,0x00,0x02,0x00,0x00,
    -0xcc,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x06,0x02,0x00,0x00,0xff,0x01,0x00,0x00,0xcc,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,0x07,0x02,0x00,0x00,
    -0x90,0x01,0x00,0x00,0x06,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xc3,0x00,0x00,0x00,0x08,0x02,0x00,0x00,0x07,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,0x0d,0x02,0x00,0x00,
    -0xbd,0x01,0x00,0x00,0xfb,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xc3,0x00,0x00,0x00,0x0e,0x02,0x00,0x00,0x0d,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,0x10,0x02,0x00,0x00,
    -0xc9,0x00,0x00,0x00,0x02,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xc3,0x00,0x00,0x00,0x11,0x02,0x00,0x00,0x10,0x02,0x00,0x00,
    -0x0c,0x00,0x08,0x00,0xc3,0x00,0x00,0x00,0x12,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x08,0x02,0x00,0x00,
    -0x0e,0x02,0x00,0x00,0x11,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x10,0x02,0x00,0x00,0x12,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x15,0x02,0x00,0x00,0xcc,0x02,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xf1,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xf3,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xec,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xec,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x17,0x02,0x00,0x00,
    -0xca,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xe9,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xeb,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xe4,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xe4,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x19,0x02,0x00,0x00,0xc8,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xe1,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xe3,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xdc,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xdc,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x1b,0x02,0x00,0x00,0xc4,0x02,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xd9,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xdb,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x79,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x79,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1d,0x02,0x00,0x00,
    -0xbe,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x76,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x78,0x01,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,0x8b,0x00,0x00,0x00,
    +0x84,0x00,0x00,0x00,0x0c,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x8f,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x26,0x00,0x00,0x00,
    +0x89,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x17,0x00,0x00,0x00,0x93,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    +0x92,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x94,0x00,0x00,0x00,0x93,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x95,0x00,0x00,0x00,0x33,0x00,0x00,0x00,
    +0x94,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x97,0x00,0x00,0x00,0x43,0x00,0x00,0x00,0x38,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x99,0x00,0x00,0x00,
    +0x14,0x00,0x00,0x00,0x98,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,0x99,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,
    +0x97,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x9c,0x00,0x00,0x00,0x95,0x00,0x00,0x00,
    +0x9b,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x9e,0x00,0x00,0x00,0x9c,0x00,0x00,0x00,0x85,0x00,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9f,0x00,0x00,0x00,
    +0x9e,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x17,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    +0xa2,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0xa4,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xa5,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,
    +0xa4,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xa8,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xaa,0x00,0x00,0x00,
    +0x14,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0xab,0x00,0x00,0x00,0xaa,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xac,0x00,0x00,0x00,
    +0xa8,0x00,0x00,0x00,0xab,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xad,0x00,0x00,0x00,0xa5,0x00,0x00,0x00,
    +0xac,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xaf,0x00,0x00,0x00,0xad,0x00,0x00,0x00,0x85,0x00,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb0,0x00,0x00,0x00,
    +0xaf,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xb2,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xb2,0x00,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x9c,0x02,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,
    +0xb3,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,
    +0xc3,0x00,0x00,0x00,0x9c,0x02,0x00,0x00,0xc1,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xb4,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    +0xb3,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xb3,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0xcd,0x00,0x00,0x00,
    +0xce,0x00,0x00,0x00,0xca,0x00,0x00,0x00,0x9c,0x02,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0xce,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,
    +0x9c,0x02,0x00,0x00,0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xb2,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xb4,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xd4,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xd4,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xb5,0x02,0x00,0x00,0xb0,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,
    +0x6d,0x01,0x00,0x00,0xd7,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xb1,0x02,0x00,0x00,0x9f,0x00,0x00,0x00,
    +0xb4,0x00,0x00,0x00,0x6a,0x01,0x00,0x00,0xd7,0x00,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x9d,0x02,0x00,0x00,
    +0x85,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,0x18,0x02,0x00,0x00,
    +0xd7,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,
    +0xdb,0x00,0x00,0x00,0x9d,0x02,0x00,0x00,0x8f,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xd6,0x00,0x00,0x00,0xd7,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xdb,0x00,0x00,0x00,
    +0xd5,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xd5,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xdd,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xdd,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xad,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0xd5,0x00,0x00,0x00,0x23,0x01,0x00,0x00,0xde,0x00,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,0xe3,0x00,0x00,0x00,
    +0xad,0x02,0x00,0x00,0x38,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xdf,0x00,0x00,0x00,0xde,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xe3,0x00,0x00,0x00,0xde,0x00,0x00,0x00,
    +0xdf,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xde,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,
    +0x75,0x00,0x00,0x00,0xad,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xec,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xed,0x00,0x00,0x00,
    +0xb1,0x02,0x00,0x00,0xec,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xef,0x00,0x00,0x00,0xed,0x00,0x00,0x00,
    +0x70,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xf5,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,
    +0x70,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,
    +0xf7,0x00,0x00,0x00,0x41,0x00,0x07,0x00,0x05,0x01,0x00,0x00,
    +0x06,0x01,0x00,0x00,0x03,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    +0xef,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xc4,0x00,0x00,0x00,0x07,0x01,0x00,0x00,0x06,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x08,0x01,0x00,0x00,0x09,0x01,0x00,0x00,
    +0xfd,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x09,0x01,0x00,0x00,0x07,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x0b,0x01,0x00,0x00,0xf8,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x41,0x00,0x07,0x00,0x05,0x01,0x00,0x00,
    +0x0d,0x01,0x00,0x00,0x03,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    +0xef,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xc4,0x00,0x00,0x00,0x0e,0x01,0x00,0x00,0x0d,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x08,0x01,0x00,0x00,0x0f,0x01,0x00,0x00,
    +0xfd,0x00,0x00,0x00,0x0b,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x0f,0x01,0x00,0x00,0x0e,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x11,0x01,0x00,0x00,0xf8,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x41,0x00,0x07,0x00,0x05,0x01,0x00,0x00,
    +0x13,0x01,0x00,0x00,0x03,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    +0xef,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xc4,0x00,0x00,0x00,0x14,0x01,0x00,0x00,0x13,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x08,0x01,0x00,0x00,0x15,0x01,0x00,0x00,
    +0xfd,0x00,0x00,0x00,0x11,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x15,0x01,0x00,0x00,0x14,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x18,0x01,0x00,0x00,0xf8,0x00,0x00,0x00,
    +0x17,0x01,0x00,0x00,0x41,0x00,0x07,0x00,0x05,0x01,0x00,0x00,
    +0x1a,0x01,0x00,0x00,0x03,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    +0xef,0x00,0x00,0x00,0x17,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xc4,0x00,0x00,0x00,0x1b,0x01,0x00,0x00,0x1a,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x08,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,
    +0xfd,0x00,0x00,0x00,0x18,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x1c,0x01,0x00,0x00,0x1b,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x23,0x01,0x00,0x00,0xad,0x02,0x00,0x00,
    +0x21,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xdd,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xdf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x25,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x25,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xae,0x02,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0x66,0x01,0x00,0x00,
    +0x26,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,
    +0x2b,0x01,0x00,0x00,0xae,0x02,0x00,0x00,0xa7,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x27,0x01,0x00,0x00,0x26,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x2b,0x01,0x00,0x00,
    +0x26,0x01,0x00,0x00,0x27,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x26,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x30,0x01,0x00,0x00,0x7f,0x00,0x00,0x00,0xae,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x33,0x01,0x00,0x00,
    +0x30,0x01,0x00,0x00,0xab,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x34,0x01,0x00,0x00,0x33,0x01,0x00,0x00,
    +0x6e,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x35,0x01,0x00,0x00,0xb5,0x02,0x00,0x00,0x34,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x37,0x01,0x00,0x00,
    +0x35,0x01,0x00,0x00,0x7a,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x3d,0x01,0x00,0x00,0x30,0x01,0x00,0x00,
    +0x3c,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x3f,0x01,0x00,0x00,0x7a,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x40,0x01,0x00,0x00,
    +0x3d,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,0x41,0x00,0x07,0x00,
    +0x05,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,0x4b,0x01,0x00,0x00,
    +0x35,0x00,0x00,0x00,0x37,0x01,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,0x4e,0x01,0x00,0x00,
    +0x4d,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x08,0x01,0x00,0x00,
    +0x4f,0x01,0x00,0x00,0x45,0x01,0x00,0x00,0x40,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x4f,0x01,0x00,0x00,0x4e,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x51,0x01,0x00,0x00,
    +0x40,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,0x41,0x00,0x07,0x00,
    +0x05,0x01,0x00,0x00,0x53,0x01,0x00,0x00,0x4b,0x01,0x00,0x00,
    +0x35,0x00,0x00,0x00,0x37,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,0x54,0x01,0x00,0x00,
    +0x53,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x08,0x01,0x00,0x00,
    +0x55,0x01,0x00,0x00,0x45,0x01,0x00,0x00,0x51,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x55,0x01,0x00,0x00,0x54,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x57,0x01,0x00,0x00,
    +0x40,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x41,0x00,0x07,0x00,
    +0x05,0x01,0x00,0x00,0x59,0x01,0x00,0x00,0x4b,0x01,0x00,0x00,
    +0x35,0x00,0x00,0x00,0x37,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,0x5a,0x01,0x00,0x00,
    +0x59,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x08,0x01,0x00,0x00,
    +0x5b,0x01,0x00,0x00,0x45,0x01,0x00,0x00,0x57,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x5b,0x01,0x00,0x00,0x5a,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,
    +0x40,0x01,0x00,0x00,0x17,0x01,0x00,0x00,0x41,0x00,0x07,0x00,
    +0x05,0x01,0x00,0x00,0x5f,0x01,0x00,0x00,0x4b,0x01,0x00,0x00,
    +0x35,0x00,0x00,0x00,0x37,0x01,0x00,0x00,0x17,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,0x60,0x01,0x00,0x00,
    +0x5f,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x08,0x01,0x00,0x00,
    +0x61,0x01,0x00,0x00,0x45,0x01,0x00,0x00,0x5d,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x61,0x01,0x00,0x00,0x60,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x66,0x01,0x00,0x00,
    +0xae,0x02,0x00,0x00,0x64,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x25,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x27,0x01,0x00,0x00,
     0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x6e,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xd6,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xd6,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x1f,0x02,0x00,0x00,0xa4,0x02,0x00,0x00,
    -0x6d,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xd3,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xd5,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x24,0x02,0x00,0x00,0x56,0x00,0x00,0x00,
    -0x54,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x25,0x02,0x00,0x00,0x96,0x00,0x00,0x00,0x24,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2a,0x02,0x00,0x00,
    -0x5a,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x2b,0x02,0x00,0x00,0xa7,0x00,0x00,0x00,
    -0x2a,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    -0x2f,0x02,0x00,0x00,0x14,0x00,0x00,0x00,0x2e,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x30,0x02,0x00,0x00,
    -0x2f,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x31,0x02,0x00,0x00,0x0f,0x00,0x00,0x00,0x30,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x35,0x02,0x00,0x00,
    -0x48,0x00,0x00,0x00,0x30,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x0d,0x00,0x00,0x00,0x37,0x02,0x00,0x00,0x36,0x02,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x38,0x02,0x00,0x00,0x37,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x39,0x02,0x00,0x00,0x35,0x02,0x00,0x00,
    -0x38,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x3a,0x02,0x00,0x00,0x31,0x02,0x00,0x00,0x39,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x3c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x3c,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xa5,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,
    -0xa2,0x02,0x00,0x00,0x3f,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0x42,0x02,0x00,0x00,0xa5,0x02,0x00,0x00,
    -0xbe,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x3e,0x02,0x00,0x00,
    -0x3f,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x42,0x02,0x00,0x00,0x3d,0x02,0x00,0x00,0x3e,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x3d,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x44,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x44,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xa6,0x02,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0x3d,0x02,0x00,0x00,0xa0,0x02,0x00,0x00,
    -0x47,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0x4a,0x02,0x00,0x00,0xa6,0x02,0x00,0x00,0x61,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x46,0x02,0x00,0x00,0x47,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x4a,0x02,0x00,0x00,
    -0x45,0x02,0x00,0x00,0x46,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x45,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x4e,0x02,0x00,0x00,0xa6,0x02,0x00,0x00,0x62,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4f,0x02,0x00,0x00,
    -0x25,0x02,0x00,0x00,0x4e,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x51,0x02,0x00,0x00,0x65,0x00,0x00,0x00,
    -0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x52,0x02,0x00,0x00,0x4f,0x02,0x00,0x00,0x51,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x56,0x02,0x00,0x00,
    -0xa5,0x02,0x00,0x00,0xc5,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x57,0x02,0x00,0x00,0x2b,0x02,0x00,0x00,
    -0x56,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x59,0x02,0x00,0x00,0x69,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5a,0x02,0x00,0x00,
    -0x57,0x02,0x00,0x00,0x59,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x5c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x5c,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xa8,0x02,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0x45,0x02,0x00,0x00,0x9e,0x02,0x00,0x00,
    -0x5f,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0x62,0x02,0x00,0x00,0xa8,0x02,0x00,0x00,0xbb,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x5e,0x02,0x00,0x00,0x5f,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x62,0x02,0x00,0x00,
    -0x5d,0x02,0x00,0x00,0x5e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x5d,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x64,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x64,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xaa,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0x5d,0x02,0x00,0x00,0x9c,0x02,0x00,0x00,0x67,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x6a,0x02,0x00,0x00,
    -0xaa,0x02,0x00,0x00,0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x66,0x02,0x00,0x00,0x67,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x6a,0x02,0x00,0x00,0x65,0x02,0x00,0x00,
    -0x66,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x65,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6d,0x02,0x00,0x00,
    -0x52,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0x70,0x02,0x00,0x00,0x6d,0x02,0x00,0x00,
    -0x37,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0x72,0x02,0x00,0x00,
    -0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x70,0x02,0x00,0x00,
    -0x71,0x02,0x00,0x00,0x72,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x71,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x75,0x02,0x00,0x00,0x5a,0x02,0x00,0x00,0xa8,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x76,0x02,0x00,0x00,
    -0x14,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x77,0x02,0x00,0x00,0x76,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x78,0x02,0x00,0x00,
    -0x75,0x02,0x00,0x00,0x77,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x72,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x72,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0xc1,0x00,0x00,0x00,0x79,0x02,0x00,0x00,
    -0x70,0x02,0x00,0x00,0x65,0x02,0x00,0x00,0x78,0x02,0x00,0x00,
    -0x71,0x02,0x00,0x00,0xf7,0x00,0x03,0x00,0x7b,0x02,0x00,0x00,
    -0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x79,0x02,0x00,0x00,
    -0x7a,0x02,0x00,0x00,0x7b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x7a,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x83,0x02,0x00,0x00,0x5a,0x02,0x00,0x00,0xa8,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x85,0x02,0x00,0x00,
    -0x14,0x00,0x00,0x00,0x84,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x86,0x02,0x00,0x00,0x85,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x87,0x02,0x00,0x00,
    -0x83,0x02,0x00,0x00,0x86,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x88,0x02,0x00,0x00,0x3a,0x02,0x00,0x00,
    -0x87,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x8a,0x02,0x00,0x00,0x88,0x02,0x00,0x00,0x52,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8c,0x02,0x00,0x00,
    -0x8a,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x8e,0x02,0x00,0x00,0xa5,0x02,0x00,0x00,
    -0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x90,0x02,0x00,0x00,0x8e,0x02,0x00,0x00,0xa8,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x92,0x02,0x00,0x00,
    -0x90,0x02,0x00,0x00,0x91,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x94,0x02,0x00,0x00,0xa6,0x02,0x00,0x00,
    +0x67,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x6a,0x01,0x00,0x00,0xb1,0x02,0x00,0x00,0x68,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6d,0x01,0x00,0x00,
    +0xb5,0x02,0x00,0x00,0x6b,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x6f,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x6f,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xb7,0x02,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0x27,0x01,0x00,0x00,0x16,0x02,0x00,0x00,
    +0x72,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,
    +0x75,0x01,0x00,0x00,0xb7,0x02,0x00,0x00,0x6d,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x71,0x01,0x00,0x00,0x72,0x01,0x00,0x00,
    +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x75,0x01,0x00,0x00,
    +0x70,0x01,0x00,0x00,0x71,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x70,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x77,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x77,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xbb,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x70,0x01,0x00,0x00,0xa2,0x01,0x00,0x00,0x7a,0x01,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,0x7d,0x01,0x00,0x00,
    +0xbb,0x02,0x00,0x00,0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x79,0x01,0x00,0x00,0x7a,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x7d,0x01,0x00,0x00,0x78,0x01,0x00,0x00,
    +0x79,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x78,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x7f,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x7f,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xcd,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0x78,0x01,0x00,0x00,
    +0xa0,0x01,0x00,0x00,0x80,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc2,0x00,0x00,0x00,0x85,0x01,0x00,0x00,0xcd,0x02,0x00,0x00,
    +0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x81,0x01,0x00,0x00,
    +0x80,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x85,0x01,0x00,0x00,0x80,0x01,0x00,0x00,0x81,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x80,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x8b,0x01,0x00,0x00,0xbb,0x02,0x00,0x00,
     0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x95,0x02,0x00,0x00,0x92,0x02,0x00,0x00,0x94,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x97,0x02,0x00,0x00,
    -0x95,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xcc,0x00,0x00,0x00,0x98,0x02,0x00,0x00,0xc9,0x00,0x00,0x00,
    -0x97,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    -0x99,0x02,0x00,0x00,0x98,0x02,0x00,0x00,0x41,0x00,0x06,0x00,
    -0x10,0x01,0x00,0x00,0x9a,0x02,0x00,0x00,0x7f,0x02,0x00,0x00,
    -0x35,0x00,0x00,0x00,0x8c,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x9a,0x02,0x00,0x00,0x99,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x7b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x7b,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x67,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x67,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x9c,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x64,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x66,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x5f,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x5f,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x9e,0x02,0x00,0x00,0xa8,0x02,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x5c,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x5e,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x47,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x47,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa0,0x02,0x00,0x00,
    -0xa6,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x44,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x46,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x3f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x3f,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xa2,0x02,0x00,0x00,0xa5,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x3c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x3e,0x02,0x00,0x00,0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
    -
    +0x8d,0x01,0x00,0x00,0x8b,0x01,0x00,0x00,0xcd,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8f,0x01,0x00,0x00,
    +0x56,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x91,0x01,0x00,0x00,0xbb,0x02,0x00,0x00,
    +0x62,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x92,0x01,0x00,0x00,0x8f,0x01,0x00,0x00,0x91,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x94,0x01,0x00,0x00,
    +0x65,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x95,0x01,0x00,0x00,0x92,0x01,0x00,0x00,
    +0x94,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x97,0x01,0x00,0x00,0x95,0x01,0x00,0x00,0xcd,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x99,0x01,0x00,0x00,
    +0x97,0x01,0x00,0x00,0x98,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x9b,0x01,0x00,0x00,0x99,0x01,0x00,0x00,
    +0xb7,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x08,0x01,0x00,0x00,
    +0x9c,0x01,0x00,0x00,0xfd,0x00,0x00,0x00,0x9b,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,0x9d,0x01,0x00,0x00,
    +0x9c,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0xcd,0x00,0x00,0x00,
    +0x9e,0x01,0x00,0x00,0x89,0x01,0x00,0x00,0x8d,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x9e,0x01,0x00,0x00,0x9d,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa0,0x01,0x00,0x00,
    +0xcd,0x02,0x00,0x00,0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x7f,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x81,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x7a,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x7a,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xa2,0x01,0x00,0x00,0xbb,0x02,0x00,0x00,0xd0,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x77,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x79,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xa4,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xa4,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xbc,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x79,0x01,0x00,0x00,0xd0,0x01,0x00,0x00,0xa7,0x01,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,0xaa,0x01,0x00,0x00,
    +0xbc,0x02,0x00,0x00,0xbf,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xa6,0x01,0x00,0x00,0xa7,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xaa,0x01,0x00,0x00,0xa5,0x01,0x00,0x00,
    +0xa6,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xa5,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xac,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xac,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xca,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0xa5,0x01,0x00,0x00,
    +0xce,0x01,0x00,0x00,0xad,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc2,0x00,0x00,0x00,0xb2,0x01,0x00,0x00,0xca,0x02,0x00,0x00,
    +0xbc,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xae,0x01,0x00,0x00,
    +0xad,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xb2,0x01,0x00,0x00,0xad,0x01,0x00,0x00,0xae,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xad,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xb8,0x01,0x00,0x00,0xbc,0x02,0x00,0x00,
    +0xbc,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xba,0x01,0x00,0x00,0xb8,0x01,0x00,0x00,0xca,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbc,0x01,0x00,0x00,
    +0x5a,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xbf,0x01,0x00,0x00,0xbc,0x02,0x00,0x00,
    +0xbe,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xc0,0x01,0x00,0x00,0xbc,0x01,0x00,0x00,0xbf,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc2,0x01,0x00,0x00,
    +0x69,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xc3,0x01,0x00,0x00,0xc0,0x01,0x00,0x00,
    +0xc2,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xc5,0x01,0x00,0x00,0xc3,0x01,0x00,0x00,0xca,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc7,0x01,0x00,0x00,
    +0xc5,0x01,0x00,0x00,0xc6,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xc9,0x01,0x00,0x00,0xc7,0x01,0x00,0x00,
    +0xb7,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x08,0x01,0x00,0x00,
    +0xca,0x01,0x00,0x00,0x45,0x01,0x00,0x00,0xc9,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,0xcb,0x01,0x00,0x00,
    +0xca,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0xcd,0x00,0x00,0x00,
    +0xcc,0x01,0x00,0x00,0xb6,0x01,0x00,0x00,0xba,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0xcc,0x01,0x00,0x00,0xcb,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xce,0x01,0x00,0x00,
    +0xca,0x02,0x00,0x00,0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xac,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xae,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xa7,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xa7,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xd0,0x01,0x00,0x00,0xbc,0x02,0x00,0x00,0xd0,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xa4,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xa6,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xd2,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xd2,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xbd,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0xa6,0x01,0x00,0x00,0x14,0x02,0x00,0x00,0xd5,0x01,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,0xd8,0x01,0x00,0x00,
    +0xbd,0x02,0x00,0x00,0xbf,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xd4,0x01,0x00,0x00,0xd5,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xd8,0x01,0x00,0x00,0xd3,0x01,0x00,0x00,
    +0xd4,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xd3,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xda,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xda,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xc1,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0xd3,0x01,0x00,0x00,
    +0x12,0x02,0x00,0x00,0xdd,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc2,0x00,0x00,0x00,0xe0,0x01,0x00,0x00,0xc1,0x02,0x00,0x00,
    +0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xdc,0x01,0x00,0x00,
    +0xdd,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xe0,0x01,0x00,0x00,0xdb,0x01,0x00,0x00,0xdc,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xdb,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xe2,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xe2,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xc3,0x02,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0xdb,0x01,0x00,0x00,0x10,0x02,0x00,0x00,
    +0xe5,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,
    +0xe8,0x01,0x00,0x00,0xc3,0x02,0x00,0x00,0xbc,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xe4,0x01,0x00,0x00,0xe5,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xe8,0x01,0x00,0x00,
    +0xe3,0x01,0x00,0x00,0xe4,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xe3,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xea,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xea,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xc5,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0xe3,0x01,0x00,0x00,0x0e,0x02,0x00,0x00,0xeb,0x01,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,0xf0,0x01,0x00,0x00,
    +0xc5,0x02,0x00,0x00,0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xec,0x01,0x00,0x00,0xeb,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xf0,0x01,0x00,0x00,0xeb,0x01,0x00,0x00,
    +0xec,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xeb,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf2,0x01,0x00,0x00,
    +0xbd,0x02,0x00,0x00,0xbc,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xf4,0x01,0x00,0x00,0xf2,0x01,0x00,0x00,
    +0xc3,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xf6,0x01,0x00,0x00,0xf4,0x01,0x00,0x00,0xf5,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf8,0x01,0x00,0x00,
    +0xc1,0x02,0x00,0x00,0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xf9,0x01,0x00,0x00,0xf6,0x01,0x00,0x00,
    +0xf8,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xfb,0x01,0x00,0x00,0xf9,0x01,0x00,0x00,0xc5,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xff,0x01,0x00,0x00,
    +0xf8,0x01,0x00,0x00,0xc5,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xcd,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x89,0x01,0x00,0x00,
    +0xff,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,
    +0x01,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xcd,0x00,0x00,0x00,0x06,0x02,0x00,0x00,0xb6,0x01,0x00,0x00,
    +0xf4,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,
    +0x07,0x02,0x00,0x00,0x06,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xcd,0x00,0x00,0x00,0x09,0x02,0x00,0x00,0xca,0x00,0x00,0x00,
    +0xfb,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,
    +0x0a,0x02,0x00,0x00,0x09,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,
    +0xc4,0x00,0x00,0x00,0x0b,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x32,0x00,0x00,0x00,0x01,0x02,0x00,0x00,0x07,0x02,0x00,0x00,
    +0x0a,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0x09,0x02,0x00,0x00,
    +0x0b,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x0e,0x02,0x00,0x00,0xc5,0x02,0x00,0x00,0xd0,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xea,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xec,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xe5,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xe5,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x10,0x02,0x00,0x00,0xc3,0x02,0x00,0x00,
    +0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xe2,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xe4,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xdd,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xdd,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x12,0x02,0x00,0x00,
    +0xc1,0x02,0x00,0x00,0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xda,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xdc,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xd5,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xd5,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x14,0x02,0x00,0x00,0xbd,0x02,0x00,0x00,0xd0,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xd2,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xd4,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x72,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x72,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x16,0x02,0x00,0x00,0xb7,0x02,0x00,0x00,
    +0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x6f,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x71,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,
    +0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x67,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xd7,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xd7,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x18,0x02,0x00,0x00,0x9d,0x02,0x00,0x00,0x6d,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xd4,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xd6,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x1d,0x02,0x00,0x00,0x56,0x00,0x00,0x00,0x54,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1e,0x02,0x00,0x00,
    +0x97,0x00,0x00,0x00,0x1d,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x23,0x02,0x00,0x00,0x5a,0x00,0x00,0x00,
    +0xb9,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x24,0x02,0x00,0x00,0xa8,0x00,0x00,0x00,0x23,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x28,0x02,0x00,0x00,
    +0x14,0x00,0x00,0x00,0x27,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x29,0x02,0x00,0x00,0x28,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2a,0x02,0x00,0x00,
    +0x0f,0x00,0x00,0x00,0x29,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x2e,0x02,0x00,0x00,0x48,0x00,0x00,0x00,
    +0x29,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,
    +0x30,0x02,0x00,0x00,0x2f,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x31,0x02,0x00,0x00,
    +0x30,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x32,0x02,0x00,0x00,0x2e,0x02,0x00,0x00,0x31,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x33,0x02,0x00,0x00,
    +0x2a,0x02,0x00,0x00,0x32,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x35,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x35,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x9e,0x02,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,0x9b,0x02,0x00,0x00,
    +0x38,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,
    +0x3b,0x02,0x00,0x00,0x9e,0x02,0x00,0x00,0xbf,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x37,0x02,0x00,0x00,0x38,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x3b,0x02,0x00,0x00,
    +0x36,0x02,0x00,0x00,0x37,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x36,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x3d,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x3d,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x9f,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x36,0x02,0x00,0x00,0x99,0x02,0x00,0x00,0x40,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,0x43,0x02,0x00,0x00,
    +0x9f,0x02,0x00,0x00,0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x3f,0x02,0x00,0x00,0x40,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x43,0x02,0x00,0x00,0x3e,0x02,0x00,0x00,
    +0x3f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x3e,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x47,0x02,0x00,0x00,
    +0x9f,0x02,0x00,0x00,0x62,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x48,0x02,0x00,0x00,0x1e,0x02,0x00,0x00,
    +0x47,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x4a,0x02,0x00,0x00,0x65,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4b,0x02,0x00,0x00,
    +0x48,0x02,0x00,0x00,0x4a,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x4f,0x02,0x00,0x00,0x9e,0x02,0x00,0x00,
    +0xbe,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x50,0x02,0x00,0x00,0x24,0x02,0x00,0x00,0x4f,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x52,0x02,0x00,0x00,
    +0x69,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x53,0x02,0x00,0x00,0x50,0x02,0x00,0x00,
    +0x52,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x55,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x55,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xa1,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x3e,0x02,0x00,0x00,0x97,0x02,0x00,0x00,0x58,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,0x5b,0x02,0x00,0x00,
    +0xa1,0x02,0x00,0x00,0xbc,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x57,0x02,0x00,0x00,0x58,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x5b,0x02,0x00,0x00,0x56,0x02,0x00,0x00,
    +0x57,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x56,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x5d,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x5d,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xa3,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0x56,0x02,0x00,0x00,
    +0x95,0x02,0x00,0x00,0x60,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc2,0x00,0x00,0x00,0x63,0x02,0x00,0x00,0xa3,0x02,0x00,0x00,
    +0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x5f,0x02,0x00,0x00,
    +0x60,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x63,0x02,0x00,0x00,0x5e,0x02,0x00,0x00,0x5f,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x5e,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x66,0x02,0x00,0x00,0x4b,0x02,0x00,0x00,
    +0xa3,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,
    +0x69,0x02,0x00,0x00,0x66,0x02,0x00,0x00,0x37,0x00,0x00,0x00,
    +0xf7,0x00,0x03,0x00,0x6b,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x69,0x02,0x00,0x00,0x6a,0x02,0x00,0x00,
    +0x6b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x6a,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6e,0x02,0x00,0x00,
    +0x53,0x02,0x00,0x00,0xa1,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x17,0x00,0x00,0x00,0x6f,0x02,0x00,0x00,0x14,0x00,0x00,0x00,
    +0xd0,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x70,0x02,0x00,0x00,0x6f,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc2,0x00,0x00,0x00,0x71,0x02,0x00,0x00,0x6e,0x02,0x00,0x00,
    +0x70,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x6b,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x6b,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0xc2,0x00,0x00,0x00,0x72,0x02,0x00,0x00,0x69,0x02,0x00,0x00,
    +0x5e,0x02,0x00,0x00,0x71,0x02,0x00,0x00,0x6a,0x02,0x00,0x00,
    +0xf7,0x00,0x03,0x00,0x74,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x72,0x02,0x00,0x00,0x73,0x02,0x00,0x00,
    +0x74,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x73,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7c,0x02,0x00,0x00,
    +0x53,0x02,0x00,0x00,0xa1,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x17,0x00,0x00,0x00,0x7e,0x02,0x00,0x00,0x14,0x00,0x00,0x00,
    +0x7d,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x7f,0x02,0x00,0x00,0x7e,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x80,0x02,0x00,0x00,0x7c,0x02,0x00,0x00,
    +0x7f,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x81,0x02,0x00,0x00,0x33,0x02,0x00,0x00,0x80,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x83,0x02,0x00,0x00,
    +0x81,0x02,0x00,0x00,0x4b,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x85,0x02,0x00,0x00,0x83,0x02,0x00,0x00,
    +0xa3,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x87,0x02,0x00,0x00,0x9e,0x02,0x00,0x00,0xbc,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x89,0x02,0x00,0x00,
    +0x87,0x02,0x00,0x00,0xa1,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x8b,0x02,0x00,0x00,0x89,0x02,0x00,0x00,
    +0x8a,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x8d,0x02,0x00,0x00,0x9f,0x02,0x00,0x00,0x63,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8e,0x02,0x00,0x00,
    +0x8b,0x02,0x00,0x00,0x8d,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x90,0x02,0x00,0x00,0x8e,0x02,0x00,0x00,
    +0xa3,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xcd,0x00,0x00,0x00,
    +0x91,0x02,0x00,0x00,0xca,0x00,0x00,0x00,0x90,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,0x92,0x02,0x00,0x00,
    +0x91,0x02,0x00,0x00,0x41,0x00,0x06,0x00,0x05,0x01,0x00,0x00,
    +0x93,0x02,0x00,0x00,0x78,0x02,0x00,0x00,0x35,0x00,0x00,0x00,
    +0x85,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0x93,0x02,0x00,0x00,
    +0x92,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x74,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x74,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x60,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x60,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x95,0x02,0x00,0x00,
    +0xa3,0x02,0x00,0x00,0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x5d,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x5f,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x58,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x58,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x97,0x02,0x00,0x00,0xa1,0x02,0x00,0x00,0xd0,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x55,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x57,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x40,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x40,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x99,0x02,0x00,0x00,0x9f,0x02,0x00,0x00,
    +0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x3d,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x3f,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x38,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x38,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9b,0x02,0x00,0x00,
    +0x9e,0x02,0x00,0x00,0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x35,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x37,0x02,0x00,0x00,
    +0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
     };
    -const uint64_t matmul_f32_f16_fp32_len = 10260;
    +const uint64_t matmul_f32_f32_aligned_fp32_len = 10124;
     
    -unsigned char matmul_f32_fp32_data[] = {
    +unsigned char matmul_f32_f32_fp32_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
     0xd2,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00,
     0x01,0x00,0x00,0x00,0x0b,0x00,0x06,0x00,0x01,0x00,0x00,0x00,
    @@ -25636,7 +25636,7 @@ unsigned char matmul_f32_fp32_data[] = {
     0x39,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x3b,0x02,0x00,0x00,
     0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
     };
    -const uint64_t matmul_f32_fp32_len = 10208;
    +const uint64_t matmul_f32_f32_fp32_len = 10208;
     
     unsigned char matmul_id_f16_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
    @@ -30242,137 +30242,1951 @@ unsigned char matmul_id_f16_f32_aligned_data[] = {
     0x9b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xd2,0x01,0x00,0x00,
     0xf8,0x00,0x02,0x00,0xd4,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,
     0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xa1,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xe1,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xe1,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x7e,0x02,0x00,0x00,0x03,0x03,0x00,0x00,0x4e,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xde,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xe0,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x83,0x02,0x00,0x00,0x37,0x00,0x00,0x00,0x35,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x84,0x02,0x00,0x00,
    -0xb5,0x00,0x00,0x00,0x83,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x89,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,
    -0xc6,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x8a,0x02,0x00,0x00,0xa4,0x00,0x00,0x00,0x89,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x8c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x8c,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x04,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0xe0,0x00,0x00,0x00,
    -0xf5,0x02,0x00,0x00,0x8f,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6c,0x00,0x00,0x00,0x92,0x02,0x00,0x00,0x04,0x03,0x00,0x00,
    -0xcc,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x8e,0x02,0x00,0x00,
    -0x8f,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x92,0x02,0x00,0x00,0x8d,0x02,0x00,0x00,0x8e,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x8d,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x94,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x94,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x05,0x03,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x8d,0x02,0x00,0x00,0xf3,0x02,0x00,0x00,
    -0x97,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6c,0x00,0x00,0x00,
    -0x9a,0x02,0x00,0x00,0x05,0x03,0x00,0x00,0x42,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x96,0x02,0x00,0x00,0x97,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x9a,0x02,0x00,0x00,
    -0x95,0x02,0x00,0x00,0x96,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x95,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x9e,0x02,0x00,0x00,0x05,0x03,0x00,0x00,0x43,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9f,0x02,0x00,0x00,
    -0x84,0x02,0x00,0x00,0x9e,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xa1,0x02,0x00,0x00,0x46,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xe1,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xe1,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x7e,0x02,0x00,0x00,0x03,0x03,0x00,0x00,0x4e,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xde,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xe0,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x83,0x02,0x00,0x00,0x37,0x00,0x00,0x00,0x35,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x84,0x02,0x00,0x00,
    +0xb5,0x00,0x00,0x00,0x83,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x89,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,
    +0xc6,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x8a,0x02,0x00,0x00,0xa4,0x00,0x00,0x00,0x89,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x8c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x8c,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x04,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0xe0,0x00,0x00,0x00,
    +0xf5,0x02,0x00,0x00,0x8f,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6c,0x00,0x00,0x00,0x92,0x02,0x00,0x00,0x04,0x03,0x00,0x00,
    +0xcc,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x8e,0x02,0x00,0x00,
    +0x8f,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x92,0x02,0x00,0x00,0x8d,0x02,0x00,0x00,0x8e,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x8d,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x94,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x94,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x05,0x03,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x8d,0x02,0x00,0x00,0xf3,0x02,0x00,0x00,
    +0x97,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6c,0x00,0x00,0x00,
    +0x9a,0x02,0x00,0x00,0x05,0x03,0x00,0x00,0x42,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x96,0x02,0x00,0x00,0x97,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x9a,0x02,0x00,0x00,
    +0x95,0x02,0x00,0x00,0x96,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x95,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x9e,0x02,0x00,0x00,0x05,0x03,0x00,0x00,0x43,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9f,0x02,0x00,0x00,
    +0x84,0x02,0x00,0x00,0x9e,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xa1,0x02,0x00,0x00,0x46,0x00,0x00,0x00,
    +0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xa2,0x02,0x00,0x00,0x9f,0x02,0x00,0x00,0xa1,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa6,0x02,0x00,0x00,
    +0x04,0x03,0x00,0x00,0x22,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xa7,0x02,0x00,0x00,0x8a,0x02,0x00,0x00,
    +0xa6,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xa9,0x02,0x00,0x00,0x4a,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xaa,0x02,0x00,0x00,
    +0xa7,0x02,0x00,0x00,0xa9,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xac,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xac,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x07,0x03,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x95,0x02,0x00,0x00,0xf1,0x02,0x00,0x00,
    +0xaf,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6c,0x00,0x00,0x00,
    +0xb2,0x02,0x00,0x00,0x07,0x03,0x00,0x00,0xc9,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xae,0x02,0x00,0x00,0xaf,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xb2,0x02,0x00,0x00,
    +0xad,0x02,0x00,0x00,0xae,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xad,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xb6,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,0x07,0x03,0x00,0x00,
    +0xae,0x00,0x05,0x00,0x6c,0x00,0x00,0x00,0xb9,0x02,0x00,0x00,
    +0xb6,0x02,0x00,0x00,0x01,0x03,0x00,0x00,0xf7,0x00,0x03,0x00,
    +0xbb,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xb9,0x02,0x00,0x00,0xba,0x02,0x00,0x00,0xbb,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xba,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xae,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xbb,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x98,0x00,0x00,0x00,0xbf,0x02,0x00,0x00,
    +0x91,0x00,0x00,0x00,0xb6,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x8d,0x00,0x00,0x00,0xc0,0x02,0x00,0x00,0xbf,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xc2,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xc2,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x0d,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0xbb,0x02,0x00,0x00,
    +0xef,0x02,0x00,0x00,0xc3,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6c,0x00,0x00,0x00,0xc8,0x02,0x00,0x00,0x0d,0x03,0x00,0x00,
    +0x44,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xc4,0x02,0x00,0x00,
    +0xc3,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xc8,0x02,0x00,0x00,0xc3,0x02,0x00,0x00,0xc4,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xc3,0x02,0x00,0x00,0x51,0x00,0x05,0x00,
    +0x8c,0x00,0x00,0x00,0xce,0x02,0x00,0x00,0xc0,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0xcf,0x02,0x00,0x00,0xce,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x16,0x00,0x00,0x00,0xd1,0x02,0x00,0x00,0x13,0x00,0x00,0x00,
    +0xd0,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0xd2,0x02,0x00,0x00,0xd1,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xd3,0x02,0x00,0x00,0xcf,0x02,0x00,0x00,
    +0xd2,0x02,0x00,0x00,0x51,0x00,0x05,0x00,0x8c,0x00,0x00,0x00,
    +0xd5,0x02,0x00,0x00,0xc0,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xd6,0x02,0x00,0x00,
    +0xd5,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
    +0xd8,0x02,0x00,0x00,0x13,0x00,0x00,0x00,0xd7,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xd9,0x02,0x00,0x00,
    +0xd8,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xda,0x02,0x00,0x00,0xd6,0x02,0x00,0x00,0xd9,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdb,0x02,0x00,0x00,
    +0xd3,0x02,0x00,0x00,0xda,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xdd,0x02,0x00,0x00,0xdb,0x02,0x00,0x00,
    +0xa2,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xdf,0x02,0x00,0x00,0xdd,0x02,0x00,0x00,0x0d,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe1,0x02,0x00,0x00,
    +0x04,0x03,0x00,0x00,0xc9,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xe3,0x02,0x00,0x00,0xe1,0x02,0x00,0x00,
    +0x07,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xe5,0x02,0x00,0x00,0xe3,0x02,0x00,0x00,0xe4,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe7,0x02,0x00,0x00,
    +0x05,0x03,0x00,0x00,0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xe8,0x02,0x00,0x00,0xe5,0x02,0x00,0x00,
    +0xe7,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xea,0x02,0x00,0x00,0xe8,0x02,0x00,0x00,0x0d,0x03,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xd9,0x00,0x00,0x00,0xeb,0x02,0x00,0x00,
    +0xd6,0x00,0x00,0x00,0xea,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xd0,0x00,0x00,0x00,0xec,0x02,0x00,0x00,0xeb,0x02,0x00,0x00,
    +0x41,0x00,0x06,0x00,0x90,0x01,0x00,0x00,0xed,0x02,0x00,0x00,
    +0xcc,0x02,0x00,0x00,0x15,0x00,0x00,0x00,0xdf,0x02,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0xed,0x02,0x00,0x00,0xec,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xef,0x02,0x00,0x00,
    +0x0d,0x03,0x00,0x00,0x9b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xc2,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xc4,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xaf,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xaf,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xf1,0x02,0x00,0x00,0x07,0x03,0x00,0x00,0x9b,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xac,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xae,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x97,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x97,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xf3,0x02,0x00,0x00,0x05,0x03,0x00,0x00,
    +0x9b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x94,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x96,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x8f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x8f,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf5,0x02,0x00,0x00,
    +0x04,0x03,0x00,0x00,0x9b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x8c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x8e,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xf6,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xf6,0x02,0x00,0x00,0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
    +
    +};
    +const uint64_t matmul_id_f16_f32_aligned_len = 12048;
    +
    +unsigned char matmul_id_f16_f32_aligned_fp32_data[] = {
    +0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
    +0x2b,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00,
    +0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x16,0x00,0x00,0x00,
    +0x11,0x00,0x02,0x00,0x51,0x11,0x00,0x00,0x0b,0x00,0x06,0x00,
    +0x01,0x00,0x00,0x00,0x47,0x4c,0x53,0x4c,0x2e,0x73,0x74,0x64,
    +0x2e,0x34,0x35,0x30,0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00,
    +0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0f,0x00,0x10,0x00,
    +0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e,
    +0x00,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x13,0x00,0x00,0x00,
    +0x1f,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,0x7c,0x00,0x00,0x00,
    +0x91,0x00,0x00,0x00,0x07,0x01,0x00,0x00,0x0e,0x01,0x00,0x00,
    +0x6d,0x01,0x00,0x00,0x74,0x01,0x00,0x00,0x8f,0x02,0x00,0x00,
    +0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x0b,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    +0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x11,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x11,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x11,0x00,0x00,0x00,
    +0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x11,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x11,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x11,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x11,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x11,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x11,0x00,0x00,0x00,
    +0x09,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x11,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x11,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x2c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x11,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x30,0x00,0x00,0x00,
    +0x47,0x00,0x03,0x00,0x11,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,
    +0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x2e,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x31,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x09,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x35,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x42,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x44,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x07,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x4e,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x79,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x48,0x00,0x04,0x00,0x7a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x7a,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x47,0x00,0x03,0x00,0x7a,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x7c,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x7c,0x00,0x00,0x00,
    +0x21,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0xa3,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0xc6,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x05,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xc9,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x0b,0x01,0x00,0x00,0x06,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    +0x48,0x00,0x04,0x00,0x0c,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x0c,0x01,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x47,0x00,0x03,0x00,0x0c,0x01,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x0e,0x01,0x00,0x00,0x22,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x0e,0x01,0x00,0x00,
    +0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x2c,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x2d,0x01,0x00,0x00,0x0b,0x00,0x00,0x00,
    +0x19,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x71,0x01,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x04,0x00,
    +0x72,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x72,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    +0x72,0x01,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x74,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x74,0x01,0x00,0x00,0x21,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x8c,0x02,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,
    +0x8d,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x8d,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    +0x8d,0x02,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x8f,0x02,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x8f,0x02,0x00,0x00,0x21,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00,
    +0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x15,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x17,0x00,0x04,0x00,0x09,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x0a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x0a,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x0d,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x1e,0x00,0x0f,0x00,0x11,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x12,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x11,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x12,0x00,0x00,0x00,
    +0x13,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x15,0x00,0x04,0x00,
    +0x14,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x15,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x16,0x00,0x00,0x00,
    +0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x40,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x0a,0x00,0x00,0x00,
    +0x1f,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x0a,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x31,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x36,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x35,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x35,0x00,0x00,0x00,
    +0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x42,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x43,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x35,0x00,0x00,0x00,
    +0x42,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x44,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x45,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x43,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x49,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x43,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x50,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    +0x4f,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x55,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    +0x4f,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x5a,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    +0x4f,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x5f,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    +0x4f,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    +0x69,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x14,0x00,0x02,0x00,
    +0x6c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    +0x75,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    +0x79,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
    +0x7a,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x7b,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x7a,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x7b,0x00,0x00,0x00,0x7c,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    +0x7e,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x84,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    +0x15,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x17,0x00,0x04,0x00,0x8d,0x00,0x00,0x00,
    +0x8c,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,0x00,0x08,0x00,0x00,
    +0x1c,0x00,0x04,0x00,0x8f,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,
    +0x8e,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x90,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x8f,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0x90,0x00,0x00,0x00,0x91,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x98,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x8d,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    +0x9b,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0xa1,0x00,0x00,0x00,0x08,0x01,0x00,0x00,
    +0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,
    +0x40,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    +0xab,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x14,0x00,0x00,0x00,0xb0,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0xb6,0x00,0x00,0x00,
    +0x03,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0xc5,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x42,0x00,0x00,0x00,
    +0x44,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0xc6,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    +0x35,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    +0x31,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xca,0x00,0x00,0x00,
    +0x84,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,
    +0x84,0x00,0x00,0x00,0xca,0x00,0x00,0x00,0x42,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xcd,0x00,0x00,0x00,
    +0x84,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xce,0x00,0x00,0x00,
    +0x84,0x00,0x00,0x00,0xcd,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,
    +0x16,0x00,0x03,0x00,0xd0,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,
    +0x84,0x00,0x00,0x00,0x42,0x00,0x00,0x00,0x44,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,
    +0x84,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,
    +0x84,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,
    +0x1c,0x00,0x04,0x00,0xd4,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,
    +0xd3,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xd5,0x00,0x00,0x00,
    +0x07,0x00,0x00,0x00,0xd4,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0xd0,0x00,0x00,0x00,0xd8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0xd9,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    +0xd0,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0xfe,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x03,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x04,0x01,0x00,0x00,0x84,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    +0x03,0x01,0x00,0x00,0x1c,0x00,0x04,0x00,0x05,0x01,0x00,0x00,
    +0xd0,0x00,0x00,0x00,0x04,0x01,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x06,0x01,0x00,0x00,0x04,0x00,0x00,0x00,0x05,0x01,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x06,0x01,0x00,0x00,0x07,0x01,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0x09,0x01,0x00,0x00,
    +0x10,0x00,0x00,0x00,0x17,0x00,0x04,0x00,0x0a,0x01,0x00,0x00,
    +0x09,0x01,0x00,0x00,0x04,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    +0x0b,0x01,0x00,0x00,0x0a,0x01,0x00,0x00,0x1e,0x00,0x03,0x00,
    +0x0c,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x0d,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x0d,0x01,0x00,0x00,0x0e,0x01,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x10,0x01,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x09,0x01,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x14,0x01,0x00,0x00,0x04,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x25,0x01,0x00,0x00,
    +0x03,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x2c,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x33,0x00,0x06,0x00,
    +0x09,0x00,0x00,0x00,0x2d,0x01,0x00,0x00,0x2c,0x01,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x2e,0x01,0x00,0x00,0x51,0x00,0x00,0x00,
    +0x2d,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x2f,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    +0x2e,0x01,0x00,0x00,0x4f,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x30,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x2f,0x01,0x00,0x00,0x4e,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x14,0x00,0x00,0x00,0x4b,0x01,0x00,0x00,0x07,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x54,0x01,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    +0x58,0x01,0x00,0x00,0x04,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x64,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x69,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x6a,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    +0xa3,0x00,0x00,0x00,0x69,0x01,0x00,0x00,0x1c,0x00,0x04,0x00,
    +0x6b,0x01,0x00,0x00,0xd0,0x00,0x00,0x00,0x6a,0x01,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x6c,0x01,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x6b,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,0x6c,0x01,0x00,0x00,
    +0x6d,0x01,0x00,0x00,0x04,0x00,0x00,0x00,0x17,0x00,0x04,0x00,
    +0x70,0x01,0x00,0x00,0xd0,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x1d,0x00,0x03,0x00,0x71,0x01,0x00,0x00,0x70,0x01,0x00,0x00,
    +0x1e,0x00,0x03,0x00,0x72,0x01,0x00,0x00,0x71,0x01,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x73,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x72,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,0x73,0x01,0x00,0x00,
    +0x74,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x76,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x8c,0x01,0x00,0x00,
    +0x51,0x00,0x00,0x00,0x2d,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x8d,0x01,0x00,0x00,
    +0x84,0x00,0x00,0x00,0x8c,0x01,0x00,0x00,0x4f,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x8e,0x01,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x8d,0x01,0x00,0x00,0x4e,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x91,0x01,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x94,0x01,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xaf,0x01,0x00,0x00,
    +0x84,0x00,0x00,0x00,0x42,0x00,0x00,0x00,0x44,0x00,0x00,0x00,
    +0x1c,0x00,0x04,0x00,0xb0,0x01,0x00,0x00,0xd0,0x00,0x00,0x00,
    +0xaf,0x01,0x00,0x00,0x20,0x00,0x04,0x00,0xb1,0x01,0x00,0x00,
    +0x07,0x00,0x00,0x00,0xb0,0x01,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xc1,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xdc,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    +0xcc,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,
    +0xdd,0x01,0x00,0x00,0xd0,0x00,0x00,0x00,0xdc,0x01,0x00,0x00,
    +0x20,0x00,0x04,0x00,0xde,0x01,0x00,0x00,0x07,0x00,0x00,0x00,
    +0xdd,0x01,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0xe7,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,
    +0xcc,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0xef,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x1e,0x02,0x00,0x00,0x84,0x00,0x00,0x00,0x42,0x00,0x00,0x00,
    +0x44,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x8c,0x02,0x00,0x00,
    +0xd0,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x8d,0x02,0x00,0x00,
    +0x8c,0x02,0x00,0x00,0x20,0x00,0x04,0x00,0x8e,0x02,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x8d,0x02,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0x8e,0x02,0x00,0x00,0x8f,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x93,0x02,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    +0x9a,0x02,0x00,0x00,0x05,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xa7,0x02,0x00,0x00,0x84,0x00,0x00,0x00,
    +0x42,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x36,0x00,0x05,0x00,
    +0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x03,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0xd5,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,
    +0x07,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xb1,0x01,0x00,0x00,
    +0xb2,0x01,0x00,0x00,0x07,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0xde,0x01,0x00,0x00,0xdf,0x01,0x00,0x00,0x07,0x00,0x00,0x00,
    +0xf7,0x00,0x03,0x00,0xb9,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfb,0x00,0x03,0x00,0x20,0x00,0x00,0x00,0xba,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xba,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x0d,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x0f,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x16,0x00,0x00,0x00,0x17,0x00,0x00,0x00,0x13,0x00,0x00,0x00,
    +0x15,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x17,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    +0x19,0x00,0x00,0x00,0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x1c,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1d,0x00,0x00,0x00,
    +0x1c,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x0d,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x22,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x89,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    +0x1d,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,
    +0x2b,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x2c,0x00,0x00,0x00,
    +0x2b,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,
    +0x2f,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x30,0x00,0x00,0x00,
    +0x2f,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x32,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x31,0x00,0x00,0x00,
    +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x37,0x00,0x00,0x00,
    +0x32,0x00,0x00,0x00,0x36,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,0x32,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x31,0x00,0x00,0x00,
    +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x46,0x00,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0x45,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x4a,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x49,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x51,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x50,0x00,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x56,0x00,0x00,0x00,
    +0x30,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x89,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x5b,0x00,0x00,0x00,0x30,0x00,0x00,0x00,
    +0x5a,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x60,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x63,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x63,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xc4,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0xba,0x02,0x00,0x00,
    +0xfc,0x02,0x00,0x00,0x66,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xc3,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    +0xba,0x02,0x00,0x00,0xa0,0x00,0x00,0x00,0x66,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0x6a,0x00,0x00,0x00,
    +0x13,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,0x6a,0x00,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6c,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    +0xc3,0x02,0x00,0x00,0x6b,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x65,0x00,0x00,0x00,0x66,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x6d,0x00,0x00,0x00,0x64,0x00,0x00,0x00,
    +0x65,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x64,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x6f,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x6f,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xfc,0x02,0x00,0x00,0xc4,0x02,0x00,0x00,0x64,0x00,0x00,0x00,
    +0x2a,0x03,0x00,0x00,0x72,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xfa,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x64,0x00,0x00,0x00,0x9e,0x00,0x00,0x00,0x72,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0x76,0x00,0x00,0x00,
    +0x13,0x00,0x00,0x00,0x75,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x77,0x00,0x00,0x00,0x76,0x00,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6c,0x00,0x00,0x00,0x78,0x00,0x00,0x00,
    +0xfa,0x02,0x00,0x00,0x77,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x71,0x00,0x00,0x00,0x72,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x78,0x00,0x00,0x00,0x70,0x00,0x00,0x00,
    +0x71,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x70,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,
    +0x13,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x81,0x00,0x00,0x00,
    +0xc3,0x02,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x83,0x00,0x00,0x00,0x81,0x00,0x00,0x00,
    +0xfa,0x02,0x00,0x00,0x41,0x00,0x06,0x00,0x84,0x00,0x00,0x00,
    +0x85,0x00,0x00,0x00,0x7c,0x00,0x00,0x00,0x15,0x00,0x00,0x00,
    +0x83,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x85,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x87,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    +0xaa,0x00,0x05,0x00,0x6c,0x00,0x00,0x00,0x89,0x00,0x00,0x00,
    +0x87,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,
    +0x8b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x89,0x00,0x00,0x00,0x8a,0x00,0x00,0x00,0x8b,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x8a,0x00,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x8c,0x00,0x00,0x00,0x94,0x00,0x00,0x00,0xfa,0x02,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,0x96,0x00,0x00,0x00,
    +0xc3,0x02,0x00,0x00,0x50,0x00,0x05,0x00,0x8d,0x00,0x00,0x00,
    +0x97,0x00,0x00,0x00,0x94,0x00,0x00,0x00,0x96,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x98,0x00,0x00,0x00,0x99,0x00,0x00,0x00,
    +0x91,0x00,0x00,0x00,0xfc,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x99,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x9c,0x00,0x00,0x00,0xfc,0x02,0x00,0x00,
    +0x9b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x8b,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x8b,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x2a,0x03,0x00,0x00,0xfc,0x02,0x00,0x00,
    +0x70,0x00,0x00,0x00,0x9c,0x00,0x00,0x00,0x8a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x72,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x72,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x9e,0x00,0x00,0x00,0xfa,0x02,0x00,0x00,0x9b,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x6f,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x71,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x66,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x66,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0xc3,0x02,0x00,0x00,
    +0x9b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x63,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x65,0x00,0x00,0x00,0xe0,0x00,0x04,0x00,
    +0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xa1,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,
    +0x2c,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0xae,0x00,0x05,0x00,
    +0x6c,0x00,0x00,0x00,0xa6,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,
    +0xc4,0x02,0x00,0x00,0xf7,0x00,0x03,0x00,0xa8,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xa6,0x00,0x00,0x00,
    +0xa7,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xa7,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xb9,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xa8,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x16,0x00,0x00,0x00,0xac,0x00,0x00,0x00,0x13,0x00,0x00,0x00,
    +0xab,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0xad,0x00,0x00,0x00,0xac,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x16,0x00,0x00,0x00,0xb1,0x00,0x00,0x00,0x13,0x00,0x00,0x00,
    +0xb0,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0xb2,0x00,0x00,0x00,0xb1,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,
    +0xb2,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xb5,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,
    +0x13,0x00,0x00,0x00,0xb6,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,
    +0xb5,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xba,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,
    +0xb9,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xbc,0x00,0x00,0x00,0xba,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xbf,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xbf,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xc5,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,
    +0xdc,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6c,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0xc5,0x02,0x00,0x00,
    +0xce,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xc1,0x00,0x00,0x00,
    +0xc0,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xcf,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0xc1,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xc0,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xd9,0x00,0x00,0x00,0xda,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,
    +0xc5,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0xda,0x00,0x00,0x00,
    +0xd8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xdc,0x00,0x00,0x00,0xc5,0x02,0x00,0x00,0x9b,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xbf,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xc1,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xde,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xde,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xdf,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    +0xc1,0x00,0x00,0x00,0x96,0x01,0x00,0x00,0xe1,0x00,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xdb,0x02,0x00,0x00,
    +0xbc,0x00,0x00,0x00,0xc1,0x00,0x00,0x00,0x93,0x01,0x00,0x00,
    +0xe1,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xc6,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0xc1,0x00,0x00,0x00,
    +0x41,0x02,0x00,0x00,0xe1,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6c,0x00,0x00,0x00,0xe5,0x00,0x00,0x00,0xc6,0x02,0x00,0x00,
    +0xad,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xe0,0x00,0x00,0x00,
    +0xe1,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xe5,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0xe0,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xdf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xe7,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xe7,0x00,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xd7,0x02,0x00,0x00,
    +0x20,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0x32,0x01,0x00,0x00,
    +0xe8,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0x6c,0x00,0x00,0x00,
    +0xed,0x00,0x00,0x00,0xd7,0x02,0x00,0x00,0x19,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xe9,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xed,0x00,0x00,0x00,
    +0xe8,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xe8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xf2,0x00,0x00,0x00,0x56,0x00,0x00,0x00,0xd7,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,
    +0xf2,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,
    +0x4f,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xf7,0x00,0x00,0x00,0xdb,0x02,0x00,0x00,0xf6,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf9,0x00,0x00,0x00,
    +0xf7,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xf2,0x00,0x00,0x00,
    +0xfe,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x01,0x01,0x00,0x00,0x51,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x02,0x01,0x00,0x00,
    +0xff,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x41,0x00,0x07,0x00,
    +0x10,0x01,0x00,0x00,0x11,0x01,0x00,0x00,0x0e,0x01,0x00,0x00,
    +0x15,0x00,0x00,0x00,0xf9,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x09,0x01,0x00,0x00,0x12,0x01,0x00,0x00,
    +0x11,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0xd0,0x00,0x00,0x00,
    +0x13,0x01,0x00,0x00,0x12,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x14,0x01,0x00,0x00,0x15,0x01,0x00,0x00,0x07,0x01,0x00,0x00,
    +0x02,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x15,0x01,0x00,0x00,
    +0x13,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x17,0x01,0x00,0x00,0x02,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,
    +0x41,0x00,0x07,0x00,0x10,0x01,0x00,0x00,0x19,0x01,0x00,0x00,
    +0x0e,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0xf9,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x09,0x01,0x00,0x00,
    +0x1a,0x01,0x00,0x00,0x19,0x01,0x00,0x00,0x73,0x00,0x04,0x00,
    +0xd0,0x00,0x00,0x00,0x1b,0x01,0x00,0x00,0x1a,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x14,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,
    +0x07,0x01,0x00,0x00,0x17,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x1c,0x01,0x00,0x00,0x1b,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x1e,0x01,0x00,0x00,0x02,0x01,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x41,0x00,0x07,0x00,0x10,0x01,0x00,0x00,
    +0x20,0x01,0x00,0x00,0x0e,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    +0xf9,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x09,0x01,0x00,0x00,0x21,0x01,0x00,0x00,0x20,0x01,0x00,0x00,
    +0x73,0x00,0x04,0x00,0xd0,0x00,0x00,0x00,0x22,0x01,0x00,0x00,
    +0x21,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x14,0x01,0x00,0x00,
    +0x23,0x01,0x00,0x00,0x07,0x01,0x00,0x00,0x1e,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x23,0x01,0x00,0x00,0x22,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x26,0x01,0x00,0x00,
    +0x02,0x01,0x00,0x00,0x25,0x01,0x00,0x00,0x41,0x00,0x07,0x00,
    +0x10,0x01,0x00,0x00,0x28,0x01,0x00,0x00,0x0e,0x01,0x00,0x00,
    +0x15,0x00,0x00,0x00,0xf9,0x00,0x00,0x00,0x25,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x09,0x01,0x00,0x00,0x29,0x01,0x00,0x00,
    +0x28,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0xd0,0x00,0x00,0x00,
    +0x2a,0x01,0x00,0x00,0x29,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x14,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,0x07,0x01,0x00,0x00,
    +0x26,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x2b,0x01,0x00,0x00,
    +0x2a,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x32,0x01,0x00,0x00,0xd7,0x02,0x00,0x00,0x30,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xe7,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xe9,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x34,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x34,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xd8,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    +0xe9,0x00,0x00,0x00,0x90,0x01,0x00,0x00,0x35,0x01,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6c,0x00,0x00,0x00,0x3a,0x01,0x00,0x00,
    +0xd8,0x02,0x00,0x00,0xa3,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x36,0x01,0x00,0x00,0x35,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x3a,0x01,0x00,0x00,0x35,0x01,0x00,0x00,
    +0x36,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x35,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x40,0x01,0x00,0x00,
    +0xa4,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x42,0x01,0x00,0x00,0x40,0x01,0x00,0x00,
    +0xd8,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x98,0x00,0x00,0x00,
    +0x43,0x01,0x00,0x00,0x91,0x00,0x00,0x00,0x42,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x8d,0x00,0x00,0x00,0x44,0x01,0x00,0x00,
    +0x43,0x01,0x00,0x00,0x51,0x00,0x05,0x00,0x8c,0x00,0x00,0x00,
    +0x49,0x01,0x00,0x00,0x44,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4a,0x01,0x00,0x00,
    +0x49,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
    +0x4c,0x01,0x00,0x00,0x13,0x00,0x00,0x00,0x4b,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4d,0x01,0x00,0x00,
    +0x4c,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x4e,0x01,0x00,0x00,0x4a,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4f,0x01,0x00,0x00,
    +0x4e,0x01,0x00,0x00,0x4f,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x50,0x01,0x00,0x00,0xdf,0x02,0x00,0x00,
    +0x4f,0x01,0x00,0x00,0x51,0x00,0x05,0x00,0x8c,0x00,0x00,0x00,
    +0x52,0x01,0x00,0x00,0x44,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x53,0x01,0x00,0x00,
    +0x52,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
    +0x55,0x01,0x00,0x00,0x13,0x00,0x00,0x00,0x54,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x56,0x01,0x00,0x00,
    +0x55,0x01,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x57,0x01,0x00,0x00,0x53,0x01,0x00,0x00,0x56,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0x59,0x01,0x00,0x00,
    +0x13,0x00,0x00,0x00,0x58,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x5a,0x01,0x00,0x00,0x59,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5b,0x01,0x00,0x00,
    +0x57,0x01,0x00,0x00,0x5a,0x01,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x5c,0x01,0x00,0x00,0x5b,0x01,0x00,0x00,
    +0x4f,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x5d,0x01,0x00,0x00,0x50,0x01,0x00,0x00,0x5c,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5f,0x01,0x00,0x00,
    +0x5d,0x01,0x00,0x00,0x5b,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x63,0x01,0x00,0x00,0x60,0x00,0x00,0x00,
    +0xd8,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x65,0x01,0x00,0x00,0x63,0x01,0x00,0x00,0x64,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x67,0x01,0x00,0x00,
    +0x5b,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x68,0x01,0x00,0x00,0x65,0x01,0x00,0x00,
    +0x67,0x01,0x00,0x00,0x41,0x00,0x07,0x00,0x76,0x01,0x00,0x00,
    +0x77,0x01,0x00,0x00,0x74,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    +0x5f,0x01,0x00,0x00,0x20,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xd0,0x00,0x00,0x00,0x78,0x01,0x00,0x00,0x77,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x14,0x01,0x00,0x00,0x79,0x01,0x00,0x00,
    +0x6d,0x01,0x00,0x00,0x68,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x79,0x01,0x00,0x00,0x78,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x7b,0x01,0x00,0x00,0x68,0x01,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x41,0x00,0x07,0x00,0x76,0x01,0x00,0x00,
    +0x7d,0x01,0x00,0x00,0x74,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    +0x5f,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xd0,0x00,0x00,0x00,0x7e,0x01,0x00,0x00,0x7d,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x14,0x01,0x00,0x00,0x7f,0x01,0x00,0x00,
    +0x6d,0x01,0x00,0x00,0x7b,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x7f,0x01,0x00,0x00,0x7e,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x81,0x01,0x00,0x00,0x68,0x01,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x41,0x00,0x07,0x00,0x76,0x01,0x00,0x00,
    +0x83,0x01,0x00,0x00,0x74,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    +0x5f,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xd0,0x00,0x00,0x00,0x84,0x01,0x00,0x00,0x83,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x14,0x01,0x00,0x00,0x85,0x01,0x00,0x00,
    +0x6d,0x01,0x00,0x00,0x81,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x85,0x01,0x00,0x00,0x84,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x87,0x01,0x00,0x00,0x68,0x01,0x00,0x00,
    +0x25,0x01,0x00,0x00,0x41,0x00,0x07,0x00,0x76,0x01,0x00,0x00,
    +0x89,0x01,0x00,0x00,0x74,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    +0x5f,0x01,0x00,0x00,0x25,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xd0,0x00,0x00,0x00,0x8a,0x01,0x00,0x00,0x89,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x14,0x01,0x00,0x00,0x8b,0x01,0x00,0x00,
    +0x6d,0x01,0x00,0x00,0x87,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x8b,0x01,0x00,0x00,0x8a,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x90,0x01,0x00,0x00,0xd8,0x02,0x00,0x00,
    +0x8e,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x34,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x36,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,
    +0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xa1,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x93,0x01,0x00,0x00,
    +0xdb,0x02,0x00,0x00,0x91,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x96,0x01,0x00,0x00,0xdf,0x02,0x00,0x00,
    +0x94,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x98,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x98,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xe1,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x36,0x01,0x00,0x00,0x3f,0x02,0x00,0x00,0x9b,0x01,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6c,0x00,0x00,0x00,0x9e,0x01,0x00,0x00,
    +0xe1,0x02,0x00,0x00,0x4e,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x9a,0x01,0x00,0x00,0x9b,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x9e,0x01,0x00,0x00,0x99,0x01,0x00,0x00,
    +0x9a,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x99,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xa0,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xa0,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xe5,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0x99,0x01,0x00,0x00,
    +0xcb,0x01,0x00,0x00,0xa3,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6c,0x00,0x00,0x00,0xa6,0x01,0x00,0x00,0xe5,0x02,0x00,0x00,
    +0x42,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xa2,0x01,0x00,0x00,
    +0xa3,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xa6,0x01,0x00,0x00,0xa1,0x01,0x00,0x00,0xa2,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xa1,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xa8,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xa8,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xf7,0x02,0x00,0x00,
    +0x20,0x00,0x00,0x00,0xa1,0x01,0x00,0x00,0xc9,0x01,0x00,0x00,
    +0xa9,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0x6c,0x00,0x00,0x00,
    +0xae,0x01,0x00,0x00,0xf7,0x02,0x00,0x00,0x44,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xaa,0x01,0x00,0x00,0xa9,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xae,0x01,0x00,0x00,
    +0xa9,0x01,0x00,0x00,0xaa,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xa9,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xb4,0x01,0x00,0x00,0xe5,0x02,0x00,0x00,0x44,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb6,0x01,0x00,0x00,
    +0xb4,0x01,0x00,0x00,0xf7,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xb8,0x01,0x00,0x00,0x37,0x00,0x00,0x00,
    +0x35,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xba,0x01,0x00,0x00,0xe5,0x02,0x00,0x00,0x43,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbb,0x01,0x00,0x00,
    +0xb8,0x01,0x00,0x00,0xba,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xbd,0x01,0x00,0x00,0x46,0x00,0x00,0x00,
    +0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xbe,0x01,0x00,0x00,0xbb,0x01,0x00,0x00,0xbd,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc0,0x01,0x00,0x00,
    +0xbe,0x01,0x00,0x00,0xf7,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xc2,0x01,0x00,0x00,0xc0,0x01,0x00,0x00,
    +0xc1,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xc4,0x01,0x00,0x00,0xc2,0x01,0x00,0x00,0xe1,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x14,0x01,0x00,0x00,0xc5,0x01,0x00,0x00,
    +0x07,0x01,0x00,0x00,0xc4,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xd0,0x00,0x00,0x00,0xc6,0x01,0x00,0x00,0xc5,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xd9,0x00,0x00,0x00,0xc7,0x01,0x00,0x00,
    +0xb2,0x01,0x00,0x00,0xb6,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0xc7,0x01,0x00,0x00,0xc6,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xc9,0x01,0x00,0x00,0xf7,0x02,0x00,0x00,
    +0x9b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xa8,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xaa,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xa3,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xa3,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xcb,0x01,0x00,0x00,
    +0xe5,0x02,0x00,0x00,0x9b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xa0,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xa2,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xcd,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xcd,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xe6,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0xa2,0x01,0x00,0x00,
    +0xf9,0x01,0x00,0x00,0xd0,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6c,0x00,0x00,0x00,0xd3,0x01,0x00,0x00,0xe6,0x02,0x00,0x00,
    +0xcc,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xcf,0x01,0x00,0x00,
    +0xd0,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xd3,0x01,0x00,0x00,0xce,0x01,0x00,0x00,0xcf,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xce,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xd5,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xd5,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xf4,0x02,0x00,0x00,
    +0x20,0x00,0x00,0x00,0xce,0x01,0x00,0x00,0xf7,0x01,0x00,0x00,
    +0xd6,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0x6c,0x00,0x00,0x00,
    +0xdb,0x01,0x00,0x00,0xf4,0x02,0x00,0x00,0xc9,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xd7,0x01,0x00,0x00,0xd6,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xdb,0x01,0x00,0x00,
    +0xd6,0x01,0x00,0x00,0xd7,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xd6,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xe1,0x01,0x00,0x00,0xe6,0x02,0x00,0x00,0xc9,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe3,0x01,0x00,0x00,
    +0xe1,0x01,0x00,0x00,0xf4,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xe5,0x01,0x00,0x00,0x3b,0x00,0x00,0x00,
    +0xc6,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xe8,0x01,0x00,0x00,0xe6,0x02,0x00,0x00,0xe7,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe9,0x01,0x00,0x00,
    +0xe5,0x01,0x00,0x00,0xe8,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xeb,0x01,0x00,0x00,0x4a,0x00,0x00,0x00,
    +0xc9,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xec,0x01,0x00,0x00,0xe9,0x01,0x00,0x00,0xeb,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xee,0x01,0x00,0x00,
    +0xec,0x01,0x00,0x00,0xf4,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xf0,0x01,0x00,0x00,0xee,0x01,0x00,0x00,
    +0xef,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xf2,0x01,0x00,0x00,0xf0,0x01,0x00,0x00,0xe1,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x14,0x01,0x00,0x00,0xf3,0x01,0x00,0x00,
    +0x6d,0x01,0x00,0x00,0xf2,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xd0,0x00,0x00,0x00,0xf4,0x01,0x00,0x00,0xf3,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xd9,0x00,0x00,0x00,0xf5,0x01,0x00,0x00,
    +0xdf,0x01,0x00,0x00,0xe3,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0xf5,0x01,0x00,0x00,0xf4,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xf7,0x01,0x00,0x00,0xf4,0x02,0x00,0x00,
    +0x9b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xd5,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xd7,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xd0,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xd0,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf9,0x01,0x00,0x00,
    +0xe6,0x02,0x00,0x00,0x9b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xcd,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xcf,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xfb,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xfb,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xe7,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0xcf,0x01,0x00,0x00,
    +0x3d,0x02,0x00,0x00,0xfe,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6c,0x00,0x00,0x00,0x01,0x02,0x00,0x00,0xe7,0x02,0x00,0x00,
    +0xcc,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xfd,0x01,0x00,0x00,
    +0xfe,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x01,0x02,0x00,0x00,0xfc,0x01,0x00,0x00,0xfd,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xfc,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x03,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x03,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xeb,0x02,0x00,0x00,
    +0x20,0x00,0x00,0x00,0xfc,0x01,0x00,0x00,0x3b,0x02,0x00,0x00,
    +0x06,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6c,0x00,0x00,0x00,
    +0x09,0x02,0x00,0x00,0xeb,0x02,0x00,0x00,0x42,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x05,0x02,0x00,0x00,0x06,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x09,0x02,0x00,0x00,
    +0x04,0x02,0x00,0x00,0x05,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x04,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x0b,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x0b,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xed,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x04,0x02,0x00,0x00,0x39,0x02,0x00,0x00,0x0e,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6c,0x00,0x00,0x00,0x11,0x02,0x00,0x00,
    +0xed,0x02,0x00,0x00,0xc9,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x0d,0x02,0x00,0x00,0x0e,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x11,0x02,0x00,0x00,0x0c,0x02,0x00,0x00,
    +0x0d,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x0c,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x13,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x13,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xef,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0x0c,0x02,0x00,0x00,
    +0x37,0x02,0x00,0x00,0x14,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6c,0x00,0x00,0x00,0x19,0x02,0x00,0x00,0xef,0x02,0x00,0x00,
    +0x44,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x15,0x02,0x00,0x00,
    +0x14,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x19,0x02,0x00,0x00,0x14,0x02,0x00,0x00,0x15,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x14,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x1b,0x02,0x00,0x00,0xe7,0x02,0x00,0x00,
    +0xc9,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x1d,0x02,0x00,0x00,0x1b,0x02,0x00,0x00,0xed,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1f,0x02,0x00,0x00,
    +0x1d,0x02,0x00,0x00,0x1e,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x21,0x02,0x00,0x00,0xeb,0x02,0x00,0x00,
     0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xa2,0x02,0x00,0x00,0x9f,0x02,0x00,0x00,0xa1,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa6,0x02,0x00,0x00,
    -0x04,0x03,0x00,0x00,0x22,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xa7,0x02,0x00,0x00,0x8a,0x02,0x00,0x00,
    -0xa6,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xa9,0x02,0x00,0x00,0x4a,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xaa,0x02,0x00,0x00,
    -0xa7,0x02,0x00,0x00,0xa9,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xac,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xac,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x07,0x03,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x95,0x02,0x00,0x00,0xf1,0x02,0x00,0x00,
    -0xaf,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6c,0x00,0x00,0x00,
    -0xb2,0x02,0x00,0x00,0x07,0x03,0x00,0x00,0xc9,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xae,0x02,0x00,0x00,0xaf,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xb2,0x02,0x00,0x00,
    -0xad,0x02,0x00,0x00,0xae,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xad,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xb6,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,0x07,0x03,0x00,0x00,
    -0xae,0x00,0x05,0x00,0x6c,0x00,0x00,0x00,0xb9,0x02,0x00,0x00,
    -0xb6,0x02,0x00,0x00,0x01,0x03,0x00,0x00,0xf7,0x00,0x03,0x00,
    -0xbb,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xb9,0x02,0x00,0x00,0xba,0x02,0x00,0x00,0xbb,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xba,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xae,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xbb,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x98,0x00,0x00,0x00,0xbf,0x02,0x00,0x00,
    -0x91,0x00,0x00,0x00,0xb6,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x8d,0x00,0x00,0x00,0xc0,0x02,0x00,0x00,0xbf,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xc2,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xc2,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x0d,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0xbb,0x02,0x00,0x00,
    -0xef,0x02,0x00,0x00,0xc3,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6c,0x00,0x00,0x00,0xc8,0x02,0x00,0x00,0x0d,0x03,0x00,0x00,
    -0x44,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xc4,0x02,0x00,0x00,
    -0xc3,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xc8,0x02,0x00,0x00,0xc3,0x02,0x00,0x00,0xc4,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xc3,0x02,0x00,0x00,0x51,0x00,0x05,0x00,
    -0x8c,0x00,0x00,0x00,0xce,0x02,0x00,0x00,0xc0,0x02,0x00,0x00,
    +0x22,0x02,0x00,0x00,0x1f,0x02,0x00,0x00,0x21,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x24,0x02,0x00,0x00,
    +0x22,0x02,0x00,0x00,0xef,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x28,0x02,0x00,0x00,0x21,0x02,0x00,0x00,
    +0xef,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xd9,0x00,0x00,0x00,
    +0x29,0x02,0x00,0x00,0xb2,0x01,0x00,0x00,0x28,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xd0,0x00,0x00,0x00,0x2a,0x02,0x00,0x00,
    +0x29,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xd9,0x00,0x00,0x00,
    +0x2f,0x02,0x00,0x00,0xdf,0x01,0x00,0x00,0x1d,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xd0,0x00,0x00,0x00,0x30,0x02,0x00,0x00,
    +0x2f,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xd9,0x00,0x00,0x00,
    +0x32,0x02,0x00,0x00,0xd6,0x00,0x00,0x00,0x24,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xd0,0x00,0x00,0x00,0x33,0x02,0x00,0x00,
    +0x32,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0xd0,0x00,0x00,0x00,
    +0x34,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,
    +0x2a,0x02,0x00,0x00,0x30,0x02,0x00,0x00,0x33,0x02,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x32,0x02,0x00,0x00,0x34,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x37,0x02,0x00,0x00,
    +0xef,0x02,0x00,0x00,0x9b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x13,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x15,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x0e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x0e,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x39,0x02,0x00,0x00,0xed,0x02,0x00,0x00,0x9b,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x0b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x0d,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x06,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x06,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x3b,0x02,0x00,0x00,0xeb,0x02,0x00,0x00,
    +0x9b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x03,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x05,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xfe,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xfe,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3d,0x02,0x00,0x00,
    +0xe7,0x02,0x00,0x00,0x9b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xfb,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xfd,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x9b,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x9b,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x3f,0x02,0x00,0x00,0xe1,0x02,0x00,0x00,0x9b,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x98,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x9a,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0xa1,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xe1,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xe1,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x41,0x02,0x00,0x00,
    +0xc6,0x02,0x00,0x00,0x4e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xde,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xe0,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x46,0x02,0x00,0x00,
    +0x37,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x47,0x02,0x00,0x00,0xb5,0x00,0x00,0x00,
    +0x46,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x4c,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4d,0x02,0x00,0x00,
    +0xa4,0x00,0x00,0x00,0x4c,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x4f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x4f,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xc7,0x02,0x00,0x00,
    +0x20,0x00,0x00,0x00,0xe0,0x00,0x00,0x00,0xb8,0x02,0x00,0x00,
    +0x52,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6c,0x00,0x00,0x00,
    +0x55,0x02,0x00,0x00,0xc7,0x02,0x00,0x00,0xcc,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x51,0x02,0x00,0x00,0x52,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x55,0x02,0x00,0x00,
    +0x50,0x02,0x00,0x00,0x51,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x50,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x57,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x57,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xc8,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x50,0x02,0x00,0x00,0xb6,0x02,0x00,0x00,0x5a,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6c,0x00,0x00,0x00,0x5d,0x02,0x00,0x00,
    +0xc8,0x02,0x00,0x00,0x42,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x59,0x02,0x00,0x00,0x5a,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x5d,0x02,0x00,0x00,0x58,0x02,0x00,0x00,
    +0x59,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x58,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x61,0x02,0x00,0x00,
    +0xc8,0x02,0x00,0x00,0x43,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x62,0x02,0x00,0x00,0x47,0x02,0x00,0x00,
    +0x61,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x64,0x02,0x00,0x00,0x46,0x00,0x00,0x00,0x44,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x65,0x02,0x00,0x00,
    +0x62,0x02,0x00,0x00,0x64,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x69,0x02,0x00,0x00,0xc7,0x02,0x00,0x00,
    +0xe7,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x6a,0x02,0x00,0x00,0x4d,0x02,0x00,0x00,0x69,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6c,0x02,0x00,0x00,
    +0x4a,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x6d,0x02,0x00,0x00,0x6a,0x02,0x00,0x00,
    +0x6c,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x6f,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x6f,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xca,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x58,0x02,0x00,0x00,0xb4,0x02,0x00,0x00,0x72,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6c,0x00,0x00,0x00,0x75,0x02,0x00,0x00,
    +0xca,0x02,0x00,0x00,0xc9,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x71,0x02,0x00,0x00,0x72,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x75,0x02,0x00,0x00,0x70,0x02,0x00,0x00,
    +0x71,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x70,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x79,0x02,0x00,0x00,
    +0x6d,0x02,0x00,0x00,0xca,0x02,0x00,0x00,0xae,0x00,0x05,0x00,
    +0x6c,0x00,0x00,0x00,0x7c,0x02,0x00,0x00,0x79,0x02,0x00,0x00,
    +0xc4,0x02,0x00,0x00,0xf7,0x00,0x03,0x00,0x7e,0x02,0x00,0x00,
    +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x7c,0x02,0x00,0x00,
    +0x7d,0x02,0x00,0x00,0x7e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x7d,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x71,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x7e,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x98,0x00,0x00,0x00,0x82,0x02,0x00,0x00,0x91,0x00,0x00,0x00,
    +0x79,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x8d,0x00,0x00,0x00,
    +0x83,0x02,0x00,0x00,0x82,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x85,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x85,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xd0,0x02,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x7e,0x02,0x00,0x00,0xb2,0x02,0x00,0x00,
    +0x86,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6c,0x00,0x00,0x00,
    +0x8b,0x02,0x00,0x00,0xd0,0x02,0x00,0x00,0x44,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x87,0x02,0x00,0x00,0x86,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x8b,0x02,0x00,0x00,
    +0x86,0x02,0x00,0x00,0x87,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x86,0x02,0x00,0x00,0x51,0x00,0x05,0x00,0x8c,0x00,0x00,0x00,
    +0x91,0x02,0x00,0x00,0x83,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x92,0x02,0x00,0x00,
    +0x91,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
    +0x94,0x02,0x00,0x00,0x13,0x00,0x00,0x00,0x93,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x95,0x02,0x00,0x00,
    +0x94,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x96,0x02,0x00,0x00,0x92,0x02,0x00,0x00,0x95,0x02,0x00,0x00,
    +0x51,0x00,0x05,0x00,0x8c,0x00,0x00,0x00,0x98,0x02,0x00,0x00,
    +0x83,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x99,0x02,0x00,0x00,0x98,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0x9b,0x02,0x00,0x00,
    +0x13,0x00,0x00,0x00,0x9a,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x9c,0x02,0x00,0x00,0x9b,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9d,0x02,0x00,0x00,
    +0x99,0x02,0x00,0x00,0x9c,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x9e,0x02,0x00,0x00,0x96,0x02,0x00,0x00,
    +0x9d,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xa0,0x02,0x00,0x00,0x9e,0x02,0x00,0x00,0x65,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa2,0x02,0x00,0x00,
    +0xa0,0x02,0x00,0x00,0xd0,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xa4,0x02,0x00,0x00,0xc7,0x02,0x00,0x00,
    +0xc9,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xa6,0x02,0x00,0x00,0xa4,0x02,0x00,0x00,0xca,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa8,0x02,0x00,0x00,
    +0xa6,0x02,0x00,0x00,0xa7,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xaa,0x02,0x00,0x00,0xc8,0x02,0x00,0x00,
    +0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xab,0x02,0x00,0x00,0xa8,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xad,0x02,0x00,0x00,
    +0xab,0x02,0x00,0x00,0xd0,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xd9,0x00,0x00,0x00,0xae,0x02,0x00,0x00,0xd6,0x00,0x00,0x00,
    +0xad,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xd0,0x00,0x00,0x00,
    +0xaf,0x02,0x00,0x00,0xae,0x02,0x00,0x00,0x41,0x00,0x06,0x00,
    +0x76,0x01,0x00,0x00,0xb0,0x02,0x00,0x00,0x8f,0x02,0x00,0x00,
    +0x15,0x00,0x00,0x00,0xa2,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0xb0,0x02,0x00,0x00,0xaf,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xb2,0x02,0x00,0x00,0xd0,0x02,0x00,0x00,
    +0x9b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x85,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x87,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x72,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x72,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb4,0x02,0x00,0x00,
    +0xca,0x02,0x00,0x00,0x9b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x6f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x71,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x5a,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x5a,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xb6,0x02,0x00,0x00,0xc8,0x02,0x00,0x00,0x9b,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x57,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x59,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x52,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x52,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xb8,0x02,0x00,0x00,0xc7,0x02,0x00,0x00,
    +0x9b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x4f,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x51,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xb9,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xb9,0x02,0x00,0x00,
    +0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
    +};
    +const uint64_t matmul_id_f16_f32_aligned_fp32_len = 10928;
    +
    +unsigned char matmul_id_f16_f32_fp32_data[] = {
    +0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
    +0x2d,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00,
    +0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x16,0x00,0x00,0x00,
    +0x11,0x00,0x02,0x00,0x51,0x11,0x00,0x00,0x0b,0x00,0x06,0x00,
    +0x01,0x00,0x00,0x00,0x47,0x4c,0x53,0x4c,0x2e,0x73,0x74,0x64,
    +0x2e,0x34,0x35,0x30,0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00,
    +0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0f,0x00,0x10,0x00,
    +0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e,
    +0x00,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x13,0x00,0x00,0x00,
    +0x1f,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,
    +0x90,0x00,0x00,0x00,0x04,0x01,0x00,0x00,0x10,0x01,0x00,0x00,
    +0x4e,0x01,0x00,0x00,0x59,0x01,0x00,0x00,0x82,0x02,0x00,0x00,
    +0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x0b,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    +0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x11,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x11,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x11,0x00,0x00,0x00,
    +0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x11,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x11,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x11,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x11,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x11,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x11,0x00,0x00,0x00,
    +0x09,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x11,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x11,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x2c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x11,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x30,0x00,0x00,0x00,
    +0x47,0x00,0x03,0x00,0x11,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,
    +0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x2e,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x31,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x09,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x35,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x42,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x44,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x07,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x4e,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x78,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x48,0x00,0x04,0x00,0x79,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x79,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x47,0x00,0x03,0x00,0x79,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x7b,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x7b,0x00,0x00,0x00,
    +0x21,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0xa2,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0xc5,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x05,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xc8,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x0d,0x01,0x00,0x00,0x06,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x48,0x00,0x04,0x00,0x0e,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x0e,0x01,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x47,0x00,0x03,0x00,0x0e,0x01,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x10,0x01,0x00,0x00,0x22,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x10,0x01,0x00,0x00,
    +0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x2a,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x2b,0x01,0x00,0x00,0x0b,0x00,0x00,0x00,
    +0x19,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x56,0x01,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,
    +0x57,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x57,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    +0x57,0x01,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x59,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x59,0x01,0x00,0x00,0x21,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x7f,0x02,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,
    +0x80,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x80,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    +0x80,0x02,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x82,0x02,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x82,0x02,0x00,0x00,0x21,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00,
    +0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x15,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x17,0x00,0x04,0x00,0x09,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x0a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x0a,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x0d,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x1e,0x00,0x0f,0x00,0x11,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x12,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x11,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x12,0x00,0x00,0x00,
    +0x13,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x15,0x00,0x04,0x00,
    +0x14,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x15,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x16,0x00,0x00,0x00,
    +0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x40,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x0a,0x00,0x00,0x00,
    +0x1f,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x0a,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x31,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x36,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x35,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x35,0x00,0x00,0x00,
    +0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x42,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x43,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x35,0x00,0x00,0x00,
    +0x42,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x44,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x45,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x43,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x49,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x43,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x54,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x59,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x68,0x00,0x00,0x00,
    +0x0a,0x00,0x00,0x00,0x14,0x00,0x02,0x00,0x6b,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x74,0x00,0x00,0x00,
    +0x09,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x78,0x00,0x00,0x00,
    +0x14,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x79,0x00,0x00,0x00,
    +0x78,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x7a,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0x7a,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,
    +0x0b,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x83,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x15,0x00,0x04,0x00,
    +0x8b,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x17,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,0x8b,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x8d,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x1c,0x00,0x04,0x00,
    +0x8e,0x00,0x00,0x00,0x8c,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x8f,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x8e,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x8f,0x00,0x00,0x00,
    +0x90,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x97,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x8c,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0xa0,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x32,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,0x40,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0xaa,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    +0xaf,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x14,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,
    +0x84,0x00,0x00,0x00,0x42,0x00,0x00,0x00,0x44,0x00,0x00,0x00,
    +0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0xc6,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x35,0x00,0x00,0x00,
    +0xc5,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0xc7,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x31,0x00,0x00,0x00,
    +0x44,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0xc8,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    +0xc7,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xca,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    +0xc9,0x00,0x00,0x00,0x42,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    +0xc6,0x00,0x00,0x00,0xca,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    +0xc4,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xcd,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    +0xcc,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x16,0x00,0x03,0x00,
    +0xcf,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    +0x42,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    +0xd0,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    +0xd1,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,
    +0xd3,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0xd4,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    +0xd3,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    +0xd7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0xd8,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x00,0x01,0x00,0x00,
    +0x80,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x01,0x01,0x00,0x00,
    +0x84,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x00,0x01,0x00,0x00,
    +0x1c,0x00,0x04,0x00,0x02,0x01,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0x01,0x01,0x00,0x00,0x20,0x00,0x04,0x00,0x03,0x01,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x02,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0x03,0x01,0x00,0x00,0x04,0x01,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x08,0x01,0x00,0x00,
    +0x80,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
    +0x16,0x00,0x03,0x00,0x0c,0x01,0x00,0x00,0x10,0x00,0x00,0x00,
    +0x1d,0x00,0x03,0x00,0x0d,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,
    +0x1e,0x00,0x03,0x00,0x0e,0x01,0x00,0x00,0x0d,0x01,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x0f,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x0e,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,0x0f,0x01,0x00,0x00,
    +0x10,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x1b,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x1f,0x01,0x00,0x00,0x04,0x00,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x25,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x2a,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x33,0x00,0x06,0x00,
    +0x09,0x00,0x00,0x00,0x2b,0x01,0x00,0x00,0x2a,0x01,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x2c,0x01,0x00,0x00,0x51,0x00,0x00,0x00,
    +0x2b,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x2d,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    +0x2c,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x2e,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x2d,0x01,0x00,0x00,0x4e,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x4a,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x4b,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    +0xa2,0x00,0x00,0x00,0x4a,0x01,0x00,0x00,0x1c,0x00,0x04,0x00,
    +0x4c,0x01,0x00,0x00,0xcf,0x00,0x00,0x00,0x4b,0x01,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x4d,0x01,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x4c,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,0x4d,0x01,0x00,0x00,
    +0x4e,0x01,0x00,0x00,0x04,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x52,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    +0x56,0x01,0x00,0x00,0xcf,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
    +0x57,0x01,0x00,0x00,0x56,0x01,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x58,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x57,0x01,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x58,0x01,0x00,0x00,0x59,0x01,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    +0x5f,0x01,0x00,0x00,0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x14,0x00,0x00,0x00,0x67,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x6b,0x01,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x72,0x01,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x7a,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x7f,0x01,0x00,0x00,0x51,0x00,0x00,0x00,
    +0x2b,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x80,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    +0x7f,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x81,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x80,0x01,0x00,0x00,0x4e,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x84,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x87,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xa2,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    +0x42,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,
    +0xa3,0x01,0x00,0x00,0xcf,0x00,0x00,0x00,0xa2,0x01,0x00,0x00,
    +0x20,0x00,0x04,0x00,0xa4,0x01,0x00,0x00,0x07,0x00,0x00,0x00,
    +0xa3,0x01,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0xb4,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0xcf,0x01,0x00,0x00,0x84,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,
    +0xc8,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0xd0,0x01,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xcf,0x01,0x00,0x00,0x20,0x00,0x04,0x00,
    +0xd1,0x01,0x00,0x00,0x07,0x00,0x00,0x00,0xd0,0x01,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xda,0x01,0x00,0x00,
    +0x86,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xe2,0x01,0x00,0x00,
    +0x80,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x11,0x02,0x00,0x00,
    +0x84,0x00,0x00,0x00,0x42,0x00,0x00,0x00,0x44,0x00,0x00,0x00,
    +0x1d,0x00,0x03,0x00,0x7f,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0x1e,0x00,0x03,0x00,0x80,0x02,0x00,0x00,0x7f,0x02,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x81,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x80,0x02,0x00,0x00,0x3b,0x00,0x04,0x00,0x81,0x02,0x00,0x00,
    +0x82,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x14,0x00,0x00,0x00,0x86,0x02,0x00,0x00,0x08,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x8d,0x02,0x00,0x00,
    +0x05,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x9a,0x02,0x00,0x00,0x84,0x00,0x00,0x00,0x42,0x00,0x00,0x00,
    +0x44,0x00,0x00,0x00,0x36,0x00,0x05,0x00,0x02,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0xd4,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0xa4,0x01,0x00,0x00,0xa5,0x01,0x00,0x00,
    +0x07,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xd1,0x01,0x00,0x00,
    +0xd2,0x01,0x00,0x00,0x07,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,
    +0xac,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0xfb,0x00,0x03,0x00,
    +0x20,0x00,0x00,0x00,0xad,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xad,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,
    +0x0e,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,
    +0x0e,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
    +0x17,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0x15,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    +0x17,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x1a,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    +0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,
    +0x1a,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x1d,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,
    +0x19,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,
    +0x21,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    +0x21,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x24,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x1d,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,0x2b,0x00,0x00,0x00,
    +0x1f,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x2c,0x00,0x00,0x00,0x2b,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,0x2f,0x00,0x00,0x00,
    +0x2e,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x2f,0x00,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x32,0x00,0x00,0x00,
    +0x30,0x00,0x00,0x00,0x31,0x00,0x00,0x00,0x89,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x37,0x00,0x00,0x00,0x32,0x00,0x00,0x00,
    +0x36,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x3b,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x30,0x00,0x00,0x00,0x31,0x00,0x00,0x00,0x89,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x46,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x45,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x4a,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,0x49,0x00,0x00,0x00,
    +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x50,0x00,0x00,0x00,
    +0x30,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x30,0x00,0x00,0x00,
    +0x54,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x5a,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x59,0x00,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,
    +0x30,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x62,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x62,0x00,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xb7,0x02,0x00,0x00,
    +0x20,0x00,0x00,0x00,0xad,0x02,0x00,0x00,0xf5,0x02,0x00,0x00,
    +0x65,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xb6,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0xad,0x02,0x00,0x00,
    +0x9f,0x00,0x00,0x00,0x65,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x16,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0x13,0x00,0x00,0x00,
    +0x68,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x6a,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0xb6,0x02,0x00,0x00,
    +0x6a,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x64,0x00,0x00,0x00,
    +0x65,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x6c,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x64,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x63,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x6e,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x6e,0x00,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xf5,0x02,0x00,0x00,
    +0xb7,0x02,0x00,0x00,0x63,0x00,0x00,0x00,0x2c,0x03,0x00,0x00,
    +0x71,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xf3,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
    +0x9d,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x16,0x00,0x00,0x00,0x75,0x00,0x00,0x00,0x13,0x00,0x00,0x00,
    +0x74,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x76,0x00,0x00,0x00,0x75,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x77,0x00,0x00,0x00,0xf3,0x02,0x00,0x00,
    +0x76,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x70,0x00,0x00,0x00,
    +0x71,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x77,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x70,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x6f,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x16,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x13,0x00,0x00,0x00,
    +0x7d,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x7f,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0xb6,0x02,0x00,0x00,
    +0x7f,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x82,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0xf3,0x02,0x00,0x00,
    +0x41,0x00,0x06,0x00,0x83,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    +0x7b,0x00,0x00,0x00,0x15,0x00,0x00,0x00,0x82,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x85,0x00,0x00,0x00,
    +0x84,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x85,0x00,0x00,0x00,0xaa,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x88,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x0f,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0x8a,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x88,0x00,0x00,0x00,
    +0x89,0x00,0x00,0x00,0x8a,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x89,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x8b,0x00,0x00,0x00,
    +0x93,0x00,0x00,0x00,0xf3,0x02,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x8b,0x00,0x00,0x00,0x95,0x00,0x00,0x00,0xb6,0x02,0x00,0x00,
    +0x50,0x00,0x05,0x00,0x8c,0x00,0x00,0x00,0x96,0x00,0x00,0x00,
    +0x93,0x00,0x00,0x00,0x95,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x97,0x00,0x00,0x00,0x98,0x00,0x00,0x00,0x90,0x00,0x00,0x00,
    +0xf5,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0x98,0x00,0x00,0x00,
    +0x96,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x9b,0x00,0x00,0x00,0xf5,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x8a,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x8a,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x2c,0x03,0x00,0x00,0xf5,0x02,0x00,0x00,0x6f,0x00,0x00,0x00,
    +0x9b,0x00,0x00,0x00,0x89,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x71,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x71,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,
    +0xf3,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x6e,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x70,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x65,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x65,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x9f,0x00,0x00,0x00,0xb6,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x62,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x64,0x00,0x00,0x00,0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0x2c,0x00,0x00,0x00,
    +0xa2,0x00,0x00,0x00,0xae,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0xa5,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0xb7,0x02,0x00,0x00,
    +0xf7,0x00,0x03,0x00,0xa7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xa5,0x00,0x00,0x00,0xa6,0x00,0x00,0x00,
    +0xa7,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xa6,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xac,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xa7,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
    +0xab,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0xaa,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xac,0x00,0x00,0x00,
    +0xab,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
    +0xb0,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xb1,0x00,0x00,0x00,
    +0xb0,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xb2,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0xb1,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,
    +0x24,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x16,0x00,0x00,0x00,0xb6,0x00,0x00,0x00,0x13,0x00,0x00,0x00,
    +0xb5,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0xb7,0x00,0x00,0x00,0xb6,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,
    +0xb7,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xb9,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,
    +0xb9,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xbe,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xbe,0x00,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xb8,0x02,0x00,0x00,
    +0x20,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,
    +0xbf,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0xce,0x00,0x00,0x00,0xb8,0x02,0x00,0x00,0xcd,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xc0,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xce,0x00,0x00,0x00,
    +0xbf,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xbf,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,
    +0xd9,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0xb8,0x02,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0xd9,0x00,0x00,0x00,0xd7,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,
    +0xb8,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xbe,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xc0,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xdd,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xdd,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xd2,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,
    +0x89,0x01,0x00,0x00,0xe0,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xce,0x02,0x00,0x00,0xbb,0x00,0x00,0x00,
    +0xc0,0x00,0x00,0x00,0x86,0x01,0x00,0x00,0xe0,0x00,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xb9,0x02,0x00,0x00,
    +0x20,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x34,0x02,0x00,0x00,
    +0xe0,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0xe4,0x00,0x00,0x00,0xb9,0x02,0x00,0x00,0xac,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xdf,0x00,0x00,0x00,0xe0,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xe4,0x00,0x00,0x00,
    +0xde,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xde,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xe6,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xe6,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xca,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    +0xde,0x00,0x00,0x00,0x30,0x01,0x00,0x00,0xe9,0x00,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xec,0x00,0x00,0x00,
    +0xca,0x02,0x00,0x00,0x19,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xe8,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xec,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,
    +0xe8,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xe7,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,
    +0xb4,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xf2,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,
    +0xca,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0xf5,0x00,0x00,0x00,0xf2,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    +0xf7,0x00,0x03,0x00,0xf7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xf5,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,
    +0xf7,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xf6,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,
    +0xb9,0x02,0x00,0x00,0x50,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,
    +0xac,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xf7,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xf7,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x6b,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,
    +0xe7,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,
    +0xf7,0x00,0x03,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xfd,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,
    +0x21,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xfe,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x07,0x01,0x00,0x00,
    +0x55,0x00,0x00,0x00,0xca,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x09,0x01,0x00,0x00,0x07,0x01,0x00,0x00,
    +0x08,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x0b,0x01,0x00,0x00,0x09,0x01,0x00,0x00,0x50,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x17,0x01,0x00,0x00,
    +0x07,0x01,0x00,0x00,0xb7,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x18,0x01,0x00,0x00,0xce,0x02,0x00,0x00,
    +0x17,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x1a,0x01,0x00,0x00,0x18,0x01,0x00,0x00,0x50,0x00,0x00,0x00,
    +0x41,0x00,0x06,0x00,0x1b,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,
    +0x10,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x1a,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x0c,0x01,0x00,0x00,0x1d,0x01,0x00,0x00,
    +0x1c,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    +0x1e,0x01,0x00,0x00,0x1d,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x1f,0x01,0x00,0x00,0x20,0x01,0x00,0x00,0x04,0x01,0x00,0x00,
    +0x0b,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x20,0x01,0x00,0x00,
    +0x1e,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xff,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x21,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x24,0x01,0x00,0x00,0x55,0x00,0x00,0x00,
    +0xca,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x26,0x01,0x00,0x00,0x24,0x01,0x00,0x00,0x25,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x28,0x01,0x00,0x00,
    +0x26,0x01,0x00,0x00,0x50,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x1f,0x01,0x00,0x00,0x29,0x01,0x00,0x00,0x04,0x01,0x00,0x00,
    +0x28,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x29,0x01,0x00,0x00,
    +0xd7,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xff,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xff,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xe9,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xe9,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x30,0x01,0x00,0x00,
    +0xca,0x02,0x00,0x00,0x2e,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xe6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xe8,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x32,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x32,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xcb,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,
    +0x83,0x01,0x00,0x00,0x35,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x38,0x01,0x00,0x00,0xcb,0x02,0x00,0x00,
    +0xa2,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x34,0x01,0x00,0x00,
    +0x35,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x38,0x01,0x00,0x00,0x33,0x01,0x00,0x00,0x34,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x33,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x3d,0x01,0x00,0x00,0xa3,0x00,0x00,0x00,
    +0x5f,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x3f,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,0xcb,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x42,0x01,0x00,0x00,
    +0x3f,0x01,0x00,0x00,0xb7,0x02,0x00,0x00,0xf7,0x00,0x03,0x00,
    +0x44,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x42,0x01,0x00,0x00,0x43,0x01,0x00,0x00,0x76,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x43,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x97,0x00,0x00,0x00,0x48,0x01,0x00,0x00,0x90,0x00,0x00,0x00,
    +0x3f,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,
    +0x49,0x01,0x00,0x00,0x48,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x51,0x01,0x00,0x00,0x5f,0x00,0x00,0x00,
    +0xcb,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x53,0x01,0x00,0x00,0x51,0x01,0x00,0x00,0x52,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x55,0x01,0x00,0x00,
    +0x53,0x01,0x00,0x00,0x5a,0x00,0x00,0x00,0x51,0x00,0x05,0x00,
    +0x8b,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,0x49,0x01,0x00,0x00,
     0x01,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0xcf,0x02,0x00,0x00,0xce,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x16,0x00,0x00,0x00,0xd1,0x02,0x00,0x00,0x13,0x00,0x00,0x00,
    -0xd0,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0xd2,0x02,0x00,0x00,0xd1,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xd3,0x02,0x00,0x00,0xcf,0x02,0x00,0x00,
    -0xd2,0x02,0x00,0x00,0x51,0x00,0x05,0x00,0x8c,0x00,0x00,0x00,
    -0xd5,0x02,0x00,0x00,0xc0,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xd6,0x02,0x00,0x00,
    -0xd5,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
    -0xd8,0x02,0x00,0x00,0x13,0x00,0x00,0x00,0xd7,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xd9,0x02,0x00,0x00,
    -0xd8,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xda,0x02,0x00,0x00,0xd6,0x02,0x00,0x00,0xd9,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdb,0x02,0x00,0x00,
    -0xd3,0x02,0x00,0x00,0xda,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xdd,0x02,0x00,0x00,0xdb,0x02,0x00,0x00,
    +0x5e,0x01,0x00,0x00,0x5d,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x16,0x00,0x00,0x00,0x60,0x01,0x00,0x00,0x13,0x00,0x00,0x00,
    +0x5f,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x61,0x01,0x00,0x00,0x60,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x62,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,
    +0x61,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x63,0x01,0x00,0x00,0xd2,0x02,0x00,0x00,0x62,0x01,0x00,0x00,
    +0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,0x65,0x01,0x00,0x00,
    +0x49,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x66,0x01,0x00,0x00,0x65,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0x68,0x01,0x00,0x00,
    +0x13,0x00,0x00,0x00,0x67,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x69,0x01,0x00,0x00,0x68,0x01,0x00,0x00,
    +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6a,0x01,0x00,0x00,
    +0x66,0x01,0x00,0x00,0x69,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x16,0x00,0x00,0x00,0x6c,0x01,0x00,0x00,0x13,0x00,0x00,0x00,
    +0x6b,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x6d,0x01,0x00,0x00,0x6c,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x6e,0x01,0x00,0x00,0x6a,0x01,0x00,0x00,
    +0x6d,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x6f,0x01,0x00,0x00,0x63,0x01,0x00,0x00,0x6e,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x71,0x01,0x00,0x00,
    +0x6f,0x01,0x00,0x00,0x5a,0x00,0x00,0x00,0x41,0x00,0x06,0x00,
    +0x72,0x01,0x00,0x00,0x73,0x01,0x00,0x00,0x59,0x01,0x00,0x00,
    +0x15,0x00,0x00,0x00,0x71,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xcf,0x00,0x00,0x00,0x74,0x01,0x00,0x00,0x73,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x1f,0x01,0x00,0x00,0x75,0x01,0x00,0x00,
    +0x4e,0x01,0x00,0x00,0x55,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x75,0x01,0x00,0x00,0x74,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x44,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x76,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x79,0x01,0x00,0x00,
    +0x5f,0x00,0x00,0x00,0xcb,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x7b,0x01,0x00,0x00,0x79,0x01,0x00,0x00,
    +0x7a,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x7d,0x01,0x00,0x00,0x7b,0x01,0x00,0x00,0x5a,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x1f,0x01,0x00,0x00,0x7e,0x01,0x00,0x00,
    +0x4e,0x01,0x00,0x00,0x7d,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x7e,0x01,0x00,0x00,0xd7,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x44,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x44,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x35,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x35,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x83,0x01,0x00,0x00,0xcb,0x02,0x00,0x00,0x81,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x32,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x34,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x86,0x01,0x00,0x00,0xce,0x02,0x00,0x00,
    +0x84,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x89,0x01,0x00,0x00,0xd2,0x02,0x00,0x00,0x87,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x8b,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x8b,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xd4,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0x34,0x01,0x00,0x00,
    +0x32,0x02,0x00,0x00,0x8e,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x91,0x01,0x00,0x00,0xd4,0x02,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x8d,0x01,0x00,0x00,
    +0x8e,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x91,0x01,0x00,0x00,0x8c,0x01,0x00,0x00,0x8d,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x8c,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x93,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x93,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xd8,0x02,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x8c,0x01,0x00,0x00,0xbe,0x01,0x00,0x00,
    +0x96,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0x99,0x01,0x00,0x00,0xd8,0x02,0x00,0x00,0x42,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x95,0x01,0x00,0x00,0x96,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x99,0x01,0x00,0x00,
    +0x94,0x01,0x00,0x00,0x95,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x94,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x9b,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x9b,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xea,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x94,0x01,0x00,0x00,0xbc,0x01,0x00,0x00,0x9c,0x01,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xa1,0x01,0x00,0x00,
    +0xea,0x02,0x00,0x00,0x44,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x9d,0x01,0x00,0x00,0x9c,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xa1,0x01,0x00,0x00,0x9c,0x01,0x00,0x00,
    +0x9d,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x9c,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa7,0x01,0x00,0x00,
    +0xd8,0x02,0x00,0x00,0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xa9,0x01,0x00,0x00,0xa7,0x01,0x00,0x00,
    +0xea,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xab,0x01,0x00,0x00,0x37,0x00,0x00,0x00,0x35,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xad,0x01,0x00,0x00,
    +0xd8,0x02,0x00,0x00,0x43,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xae,0x01,0x00,0x00,0xab,0x01,0x00,0x00,
    +0xad,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xb0,0x01,0x00,0x00,0x46,0x00,0x00,0x00,0x44,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb1,0x01,0x00,0x00,
    +0xae,0x01,0x00,0x00,0xb0,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xb3,0x01,0x00,0x00,0xb1,0x01,0x00,0x00,
    +0xea,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xb5,0x01,0x00,0x00,0xb3,0x01,0x00,0x00,0xb4,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb7,0x01,0x00,0x00,
    +0xb5,0x01,0x00,0x00,0xd4,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x1f,0x01,0x00,0x00,0xb8,0x01,0x00,0x00,0x04,0x01,0x00,0x00,
    +0xb7,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    +0xb9,0x01,0x00,0x00,0xb8,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xd8,0x00,0x00,0x00,0xba,0x01,0x00,0x00,0xa5,0x01,0x00,0x00,
    +0xa9,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xba,0x01,0x00,0x00,
    +0xb9,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xbc,0x01,0x00,0x00,0xea,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x9b,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x9d,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x96,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x96,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xbe,0x01,0x00,0x00,0xd8,0x02,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x93,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x95,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xc0,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xc0,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xd9,0x02,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x95,0x01,0x00,0x00,0xec,0x01,0x00,0x00,
    +0xc3,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0xc6,0x01,0x00,0x00,0xd9,0x02,0x00,0x00,0xcb,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xc2,0x01,0x00,0x00,0xc3,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xc6,0x01,0x00,0x00,
    +0xc1,0x01,0x00,0x00,0xc2,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xc1,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xc8,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xc8,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xe7,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    +0xc1,0x01,0x00,0x00,0xea,0x01,0x00,0x00,0xc9,0x01,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xce,0x01,0x00,0x00,
    +0xe7,0x02,0x00,0x00,0xc8,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xca,0x01,0x00,0x00,0xc9,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xce,0x01,0x00,0x00,0xc9,0x01,0x00,0x00,
    +0xca,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xc9,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd4,0x01,0x00,0x00,
    +0xd9,0x02,0x00,0x00,0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xd6,0x01,0x00,0x00,0xd4,0x01,0x00,0x00,
    +0xe7,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xd8,0x01,0x00,0x00,0x3b,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdb,0x01,0x00,0x00,
    +0xd9,0x02,0x00,0x00,0xda,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xdc,0x01,0x00,0x00,0xd8,0x01,0x00,0x00,
    +0xdb,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xde,0x01,0x00,0x00,0x4a,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdf,0x01,0x00,0x00,
    +0xdc,0x01,0x00,0x00,0xde,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xe1,0x01,0x00,0x00,0xdf,0x01,0x00,0x00,
    +0xe7,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xe3,0x01,0x00,0x00,0xe1,0x01,0x00,0x00,0xe2,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe5,0x01,0x00,0x00,
    +0xe3,0x01,0x00,0x00,0xd4,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x1f,0x01,0x00,0x00,0xe6,0x01,0x00,0x00,0x4e,0x01,0x00,0x00,
    +0xe5,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    +0xe7,0x01,0x00,0x00,0xe6,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xd8,0x00,0x00,0x00,0xe8,0x01,0x00,0x00,0xd2,0x01,0x00,0x00,
    +0xd6,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xe8,0x01,0x00,0x00,
    +0xe7,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xea,0x01,0x00,0x00,0xe7,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xc8,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xca,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xc3,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xc3,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xec,0x01,0x00,0x00,0xd9,0x02,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xc0,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xc2,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xee,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xee,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xda,0x02,0x00,0x00,
    +0x20,0x00,0x00,0x00,0xc2,0x01,0x00,0x00,0x30,0x02,0x00,0x00,
    +0xf1,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0xf4,0x01,0x00,0x00,0xda,0x02,0x00,0x00,0xcb,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xf0,0x01,0x00,0x00,0xf1,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xf4,0x01,0x00,0x00,
    +0xef,0x01,0x00,0x00,0xf0,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xef,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xf6,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xf6,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xde,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    +0xef,0x01,0x00,0x00,0x2e,0x02,0x00,0x00,0xf9,0x01,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xfc,0x01,0x00,0x00,
    +0xde,0x02,0x00,0x00,0x42,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xf8,0x01,0x00,0x00,0xf9,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xfc,0x01,0x00,0x00,0xf7,0x01,0x00,0x00,
    +0xf8,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xf7,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xfe,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xfe,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xe0,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0xf7,0x01,0x00,0x00,
    +0x2c,0x02,0x00,0x00,0x01,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x04,0x02,0x00,0x00,0xe0,0x02,0x00,0x00,
    +0xc8,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x00,0x02,0x00,0x00,
    +0x01,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x04,0x02,0x00,0x00,0xff,0x01,0x00,0x00,0x00,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xff,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x06,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x06,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xe2,0x02,0x00,0x00,
    +0x20,0x00,0x00,0x00,0xff,0x01,0x00,0x00,0x2a,0x02,0x00,0x00,
    +0x07,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0x0c,0x02,0x00,0x00,0xe2,0x02,0x00,0x00,0x44,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x08,0x02,0x00,0x00,0x07,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x0c,0x02,0x00,0x00,
    +0x07,0x02,0x00,0x00,0x08,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x07,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x0e,0x02,0x00,0x00,0xda,0x02,0x00,0x00,0xc8,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x10,0x02,0x00,0x00,
    +0x0e,0x02,0x00,0x00,0xe0,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x12,0x02,0x00,0x00,0x10,0x02,0x00,0x00,
    +0x11,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x14,0x02,0x00,0x00,0xde,0x02,0x00,0x00,0x44,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x15,0x02,0x00,0x00,
    +0x12,0x02,0x00,0x00,0x14,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x17,0x02,0x00,0x00,0x15,0x02,0x00,0x00,
    +0xe2,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x1b,0x02,0x00,0x00,0x14,0x02,0x00,0x00,0xe2,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,0x1c,0x02,0x00,0x00,
    +0xa5,0x01,0x00,0x00,0x1b,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xcf,0x00,0x00,0x00,0x1d,0x02,0x00,0x00,0x1c,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,0x22,0x02,0x00,0x00,
    +0xd2,0x01,0x00,0x00,0x10,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xcf,0x00,0x00,0x00,0x23,0x02,0x00,0x00,0x22,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,0x25,0x02,0x00,0x00,
    +0xd5,0x00,0x00,0x00,0x17,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xcf,0x00,0x00,0x00,0x26,0x02,0x00,0x00,0x25,0x02,0x00,0x00,
    +0x0c,0x00,0x08,0x00,0xcf,0x00,0x00,0x00,0x27,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x1d,0x02,0x00,0x00,
    +0x23,0x02,0x00,0x00,0x26,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x25,0x02,0x00,0x00,0x27,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x2a,0x02,0x00,0x00,0xe2,0x02,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x06,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x08,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x01,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x01,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2c,0x02,0x00,0x00,
    +0xe0,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xfe,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x00,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xf9,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xf9,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x2e,0x02,0x00,0x00,0xde,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xf6,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xf8,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xf1,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xf1,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x30,0x02,0x00,0x00,0xda,0x02,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xee,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xf0,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x8e,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x8e,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x32,0x02,0x00,0x00,
    +0xd4,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x8b,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x8d,0x01,0x00,0x00,
    +0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0xa0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xe0,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xe0,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x34,0x02,0x00,0x00,0xb9,0x02,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xdd,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xdf,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x39,0x02,0x00,0x00,0x37,0x00,0x00,0x00,
    +0x35,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x3a,0x02,0x00,0x00,0xb4,0x00,0x00,0x00,0x39,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3f,0x02,0x00,0x00,
    +0x3b,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x40,0x02,0x00,0x00,0xa3,0x00,0x00,0x00,
    +0x3f,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x42,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x42,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xba,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    +0xdf,0x00,0x00,0x00,0xab,0x02,0x00,0x00,0x45,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x48,0x02,0x00,0x00,
    +0xba,0x02,0x00,0x00,0xcb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x44,0x02,0x00,0x00,0x45,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x48,0x02,0x00,0x00,0x43,0x02,0x00,0x00,
    +0x44,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x43,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x4a,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x4a,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xbb,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0x43,0x02,0x00,0x00,
    +0xa9,0x02,0x00,0x00,0x4d,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x50,0x02,0x00,0x00,0xbb,0x02,0x00,0x00,
    +0x42,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x4c,0x02,0x00,0x00,
    +0x4d,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x50,0x02,0x00,0x00,0x4b,0x02,0x00,0x00,0x4c,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x4b,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x54,0x02,0x00,0x00,0xbb,0x02,0x00,0x00,
    +0x43,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x55,0x02,0x00,0x00,0x3a,0x02,0x00,0x00,0x54,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x57,0x02,0x00,0x00,
    +0x46,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x58,0x02,0x00,0x00,0x55,0x02,0x00,0x00,
    +0x57,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x5c,0x02,0x00,0x00,0xba,0x02,0x00,0x00,0xda,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5d,0x02,0x00,0x00,
    +0x40,0x02,0x00,0x00,0x5c,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x5f,0x02,0x00,0x00,0x4a,0x00,0x00,0x00,
    +0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x60,0x02,0x00,0x00,0x5d,0x02,0x00,0x00,0x5f,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x62,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x62,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xbd,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0x4b,0x02,0x00,0x00,
    +0xa7,0x02,0x00,0x00,0x65,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x68,0x02,0x00,0x00,0xbd,0x02,0x00,0x00,
    +0xc8,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x64,0x02,0x00,0x00,
    +0x65,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x68,0x02,0x00,0x00,0x63,0x02,0x00,0x00,0x64,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x63,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x6c,0x02,0x00,0x00,0x60,0x02,0x00,0x00,
    +0xbd,0x02,0x00,0x00,0xae,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0x6f,0x02,0x00,0x00,0x6c,0x02,0x00,0x00,0xb7,0x02,0x00,0x00,
    +0xf7,0x00,0x03,0x00,0x71,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x6f,0x02,0x00,0x00,0x70,0x02,0x00,0x00,
    +0x71,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x70,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x64,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x71,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x97,0x00,0x00,0x00,
    +0x75,0x02,0x00,0x00,0x90,0x00,0x00,0x00,0x6c,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,0x76,0x02,0x00,0x00,
    +0x75,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x78,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x78,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xc3,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x71,0x02,0x00,0x00,0xa5,0x02,0x00,0x00,0x79,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x7e,0x02,0x00,0x00,
    +0xc3,0x02,0x00,0x00,0x44,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x7a,0x02,0x00,0x00,0x79,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x7e,0x02,0x00,0x00,0x79,0x02,0x00,0x00,
    +0x7a,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x79,0x02,0x00,0x00,
    +0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,0x84,0x02,0x00,0x00,
    +0x76,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x85,0x02,0x00,0x00,0x84,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0x87,0x02,0x00,0x00,
    +0x13,0x00,0x00,0x00,0x86,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x88,0x02,0x00,0x00,0x87,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x89,0x02,0x00,0x00,
    +0x85,0x02,0x00,0x00,0x88,0x02,0x00,0x00,0x51,0x00,0x05,0x00,
    +0x8b,0x00,0x00,0x00,0x8b,0x02,0x00,0x00,0x76,0x02,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x8c,0x02,0x00,0x00,0x8b,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x16,0x00,0x00,0x00,0x8e,0x02,0x00,0x00,0x13,0x00,0x00,0x00,
    +0x8d,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x8f,0x02,0x00,0x00,0x8e,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x90,0x02,0x00,0x00,0x8c,0x02,0x00,0x00,
    +0x8f,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x91,0x02,0x00,0x00,0x89,0x02,0x00,0x00,0x90,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x93,0x02,0x00,0x00,
    +0x91,0x02,0x00,0x00,0x58,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x95,0x02,0x00,0x00,0x93,0x02,0x00,0x00,
    +0xc3,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x97,0x02,0x00,0x00,0xba,0x02,0x00,0x00,0xc8,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x99,0x02,0x00,0x00,
    +0x97,0x02,0x00,0x00,0xbd,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x9b,0x02,0x00,0x00,0x99,0x02,0x00,0x00,
    +0x9a,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x9d,0x02,0x00,0x00,0xbb,0x02,0x00,0x00,0x44,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9e,0x02,0x00,0x00,
    +0x9b,0x02,0x00,0x00,0x9d,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xa0,0x02,0x00,0x00,0x9e,0x02,0x00,0x00,
    +0xc3,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,
    +0xa1,0x02,0x00,0x00,0xd5,0x00,0x00,0x00,0xa0,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0xa2,0x02,0x00,0x00,
    +0xa1,0x02,0x00,0x00,0x41,0x00,0x06,0x00,0x72,0x01,0x00,0x00,
    +0xa3,0x02,0x00,0x00,0x82,0x02,0x00,0x00,0x15,0x00,0x00,0x00,
    +0x95,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0xa3,0x02,0x00,0x00,
     0xa2,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xdf,0x02,0x00,0x00,0xdd,0x02,0x00,0x00,0x0d,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe1,0x02,0x00,0x00,
    -0x04,0x03,0x00,0x00,0xc9,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xe3,0x02,0x00,0x00,0xe1,0x02,0x00,0x00,
    -0x07,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xe5,0x02,0x00,0x00,0xe3,0x02,0x00,0x00,0xe4,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe7,0x02,0x00,0x00,
    -0x05,0x03,0x00,0x00,0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xe8,0x02,0x00,0x00,0xe5,0x02,0x00,0x00,
    -0xe7,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xea,0x02,0x00,0x00,0xe8,0x02,0x00,0x00,0x0d,0x03,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xd9,0x00,0x00,0x00,0xeb,0x02,0x00,0x00,
    -0xd6,0x00,0x00,0x00,0xea,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xd0,0x00,0x00,0x00,0xec,0x02,0x00,0x00,0xeb,0x02,0x00,0x00,
    -0x41,0x00,0x06,0x00,0x90,0x01,0x00,0x00,0xed,0x02,0x00,0x00,
    -0xcc,0x02,0x00,0x00,0x15,0x00,0x00,0x00,0xdf,0x02,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0xed,0x02,0x00,0x00,0xec,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xef,0x02,0x00,0x00,
    -0x0d,0x03,0x00,0x00,0x9b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xc2,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xc4,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xaf,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xaf,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xf1,0x02,0x00,0x00,0x07,0x03,0x00,0x00,0x9b,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xac,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xae,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x97,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x97,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xf3,0x02,0x00,0x00,0x05,0x03,0x00,0x00,
    -0x9b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x94,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x96,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x8f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x8f,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf5,0x02,0x00,0x00,
    -0x04,0x03,0x00,0x00,0x9b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x8c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x8e,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xf6,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xf6,0x02,0x00,0x00,0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
    -
    +0xa5,0x02,0x00,0x00,0xc3,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x78,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x7a,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x65,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x65,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xa7,0x02,0x00,0x00,0xbd,0x02,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x62,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x64,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x4d,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x4d,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa9,0x02,0x00,0x00,
    +0xbb,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x4a,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x4c,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x45,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x45,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xab,0x02,0x00,0x00,0xba,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x42,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x44,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xac,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xac,0x02,0x00,0x00,0xfd,0x00,0x01,0x00,
    +0x38,0x00,0x01,0x00,
     };
    -const uint64_t matmul_id_f16_f32_aligned_len = 12048;
    +const uint64_t matmul_id_f16_f32_fp32_len = 10732;
     
    -unsigned char matmul_id_f16_f32_aligned_fp32_data[] = {
    +unsigned char matmul_id_f16_fp32_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
    -0x2b,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00,
    +0x2e,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00,
     0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x16,0x00,0x00,0x00,
     0x11,0x00,0x02,0x00,0x51,0x11,0x00,0x00,0x0b,0x00,0x06,0x00,
     0x01,0x00,0x00,0x00,0x47,0x4c,0x53,0x4c,0x2e,0x73,0x74,0x64,
    @@ -30380,9 +32194,9 @@ unsigned char matmul_id_f16_f32_aligned_fp32_data[] = {
     0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0f,0x00,0x10,0x00,
     0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e,
     0x00,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x13,0x00,0x00,0x00,
    -0x1f,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,0x7c,0x00,0x00,0x00,
    -0x91,0x00,0x00,0x00,0x07,0x01,0x00,0x00,0x0e,0x01,0x00,0x00,
    -0x6d,0x01,0x00,0x00,0x74,0x01,0x00,0x00,0x8f,0x02,0x00,0x00,
    +0x1f,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,
    +0x90,0x00,0x00,0x00,0x04,0x01,0x00,0x00,0x10,0x01,0x00,0x00,
    +0x4e,0x01,0x00,0x00,0x59,0x01,0x00,0x00,0x82,0x02,0x00,0x00,
     0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00,
     0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
     0x47,0x00,0x04,0x00,0x0b,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    @@ -30420,44 +32234,44 @@ unsigned char matmul_id_f16_f32_aligned_fp32_data[] = {
     0x47,0x00,0x04,0x00,0x44,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
     0x07,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x4e,0x00,0x00,0x00,
     0x01,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x79,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x48,0x00,0x04,0x00,0x7a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x7a,0x00,0x00,0x00,
    +0x78,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x48,0x00,0x04,0x00,0x79,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x79,0x00,0x00,0x00,
     0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x47,0x00,0x03,0x00,0x7a,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x7c,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x7c,0x00,0x00,0x00,
    +0x47,0x00,0x03,0x00,0x79,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x7b,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x7b,0x00,0x00,0x00,
     0x21,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0xa3,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0xc6,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x05,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xc9,0x00,0x00,0x00,
    +0xa2,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0xc5,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x05,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xc8,0x00,0x00,0x00,
     0x01,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x0b,0x01,0x00,0x00,0x06,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    -0x48,0x00,0x04,0x00,0x0c,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x0c,0x01,0x00,0x00,
    +0x0d,0x01,0x00,0x00,0x06,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x48,0x00,0x04,0x00,0x0e,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x0e,0x01,0x00,0x00,
     0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x47,0x00,0x03,0x00,0x0c,0x01,0x00,0x00,0x02,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x0e,0x01,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x0e,0x01,0x00,0x00,
    +0x47,0x00,0x03,0x00,0x0e,0x01,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x10,0x01,0x00,0x00,0x22,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x10,0x01,0x00,0x00,
     0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x2c,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x2d,0x01,0x00,0x00,0x0b,0x00,0x00,0x00,
    -0x19,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x71,0x01,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x04,0x00,
    -0x72,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x72,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x2a,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x2b,0x01,0x00,0x00,0x0b,0x00,0x00,0x00,
    +0x19,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x56,0x01,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x48,0x00,0x04,0x00,
    +0x57,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x57,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
     0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    -0x72,0x01,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x74,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x74,0x01,0x00,0x00,0x21,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x8c,0x02,0x00,0x00,
    +0x57,0x01,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x59,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x59,0x01,0x00,0x00,0x21,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x7f,0x02,0x00,0x00,
     0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,
    -0x8d,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x8d,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x80,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x80,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
     0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    -0x8d,0x02,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x8f,0x02,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x8f,0x02,0x00,0x00,0x21,0x00,0x00,0x00,
    +0x80,0x02,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x82,0x02,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x82,0x02,0x00,0x00,0x21,0x00,0x00,0x00,
     0x02,0x00,0x00,0x00,0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00,
     0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
     0x15,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    @@ -30503,1690 +32317,3605 @@ unsigned char matmul_id_f16_f32_aligned_fp32_data[] = {
     0x06,0x00,0x00,0x00,0x49,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
     0x43,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,
    -0x04,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0x50,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    -0x4f,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0x55,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    -0x4f,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0x5a,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    -0x4f,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0x5f,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    -0x4f,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    -0x69,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x14,0x00,0x02,0x00,
    -0x6c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    -0x75,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    -0x79,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
    -0x7a,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x7b,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x7a,0x00,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0x7b,0x00,0x00,0x00,0x7c,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    -0x7e,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x84,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    -0x15,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x17,0x00,0x04,0x00,0x8d,0x00,0x00,0x00,
    -0x8c,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,0x00,0x08,0x00,0x00,
    -0x1c,0x00,0x04,0x00,0x8f,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,
    -0x8e,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x90,0x00,0x00,0x00,
    -0x04,0x00,0x00,0x00,0x8f,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0x90,0x00,0x00,0x00,0x91,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x98,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x8d,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    -0x9b,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0xa1,0x00,0x00,0x00,0x08,0x01,0x00,0x00,
    -0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,
    -0x40,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    -0xab,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x14,0x00,0x00,0x00,0xb0,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0xb6,0x00,0x00,0x00,
    -0x03,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0xc5,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x42,0x00,0x00,0x00,
    -0x44,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0xc6,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    -0x35,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    -0x31,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xca,0x00,0x00,0x00,
    -0x84,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,
    -0x84,0x00,0x00,0x00,0xca,0x00,0x00,0x00,0x42,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,
    -0x86,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xcd,0x00,0x00,0x00,
    -0x84,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xce,0x00,0x00,0x00,
    -0x84,0x00,0x00,0x00,0xcd,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,
    -0x16,0x00,0x03,0x00,0xd0,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x54,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x59,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x68,0x00,0x00,0x00,
    +0x0a,0x00,0x00,0x00,0x14,0x00,0x02,0x00,0x6b,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x74,0x00,0x00,0x00,
    +0x09,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x78,0x00,0x00,0x00,
    +0x14,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x79,0x00,0x00,0x00,
    +0x78,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x7a,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0x7a,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,
    +0x0b,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x83,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x15,0x00,0x04,0x00,
    +0x8b,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x17,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,0x8b,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x8d,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x1c,0x00,0x04,0x00,
    +0x8e,0x00,0x00,0x00,0x8c,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x8f,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x8e,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x8f,0x00,0x00,0x00,
    +0x90,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x97,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x8c,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0xa0,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x32,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,0x40,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0xaa,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    +0xaf,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x14,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,
     0x84,0x00,0x00,0x00,0x42,0x00,0x00,0x00,0x44,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,
    -0x84,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,
    -0x84,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,
    -0x1c,0x00,0x04,0x00,0xd4,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,
    -0xd3,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xd5,0x00,0x00,0x00,
    -0x07,0x00,0x00,0x00,0xd4,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0xd0,0x00,0x00,0x00,0xd8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x20,0x00,0x04,0x00,0xd9,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    -0xd0,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0xfe,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    -0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0x03,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    -0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0x04,0x01,0x00,0x00,0x84,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    -0x03,0x01,0x00,0x00,0x1c,0x00,0x04,0x00,0x05,0x01,0x00,0x00,
    -0xd0,0x00,0x00,0x00,0x04,0x01,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x06,0x01,0x00,0x00,0x04,0x00,0x00,0x00,0x05,0x01,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0x06,0x01,0x00,0x00,0x07,0x01,0x00,0x00,
    -0x04,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0x09,0x01,0x00,0x00,
    -0x10,0x00,0x00,0x00,0x17,0x00,0x04,0x00,0x0a,0x01,0x00,0x00,
    -0x09,0x01,0x00,0x00,0x04,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    -0x0b,0x01,0x00,0x00,0x0a,0x01,0x00,0x00,0x1e,0x00,0x03,0x00,
    -0x0c,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x0d,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0x0d,0x01,0x00,0x00,0x0e,0x01,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x10,0x01,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x09,0x01,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x14,0x01,0x00,0x00,0x04,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x25,0x01,0x00,0x00,
    -0x03,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x2c,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x33,0x00,0x06,0x00,
    -0x09,0x00,0x00,0x00,0x2d,0x01,0x00,0x00,0x2c,0x01,0x00,0x00,
    +0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0xc6,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x35,0x00,0x00,0x00,
    +0xc5,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0xc7,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x31,0x00,0x00,0x00,
    +0x44,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0xc8,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    +0xc7,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xca,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    +0xc9,0x00,0x00,0x00,0x42,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    +0xc6,0x00,0x00,0x00,0xca,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    +0xc4,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xcd,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    +0xcc,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x16,0x00,0x03,0x00,
    +0xcf,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    +0x42,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    +0xd0,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    +0xd1,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,
    +0xd3,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0xd4,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    +0xd3,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    +0xd7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0xd8,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x00,0x01,0x00,0x00,
    +0x80,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x01,0x01,0x00,0x00,
    +0x84,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x00,0x01,0x00,0x00,
    +0x1c,0x00,0x04,0x00,0x02,0x01,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0x01,0x01,0x00,0x00,0x20,0x00,0x04,0x00,0x03,0x01,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x02,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0x03,0x01,0x00,0x00,0x04,0x01,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x08,0x01,0x00,0x00,
    +0x80,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
    +0x16,0x00,0x03,0x00,0x0c,0x01,0x00,0x00,0x10,0x00,0x00,0x00,
    +0x1d,0x00,0x03,0x00,0x0d,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,
    +0x1e,0x00,0x03,0x00,0x0e,0x01,0x00,0x00,0x0d,0x01,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x0f,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x0e,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,0x0f,0x01,0x00,0x00,
    +0x10,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x1b,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x1f,0x01,0x00,0x00,0x04,0x00,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x25,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x2a,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x33,0x00,0x06,0x00,
    +0x09,0x00,0x00,0x00,0x2b,0x01,0x00,0x00,0x2a,0x01,0x00,0x00,
     0x1b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x2e,0x01,0x00,0x00,0x51,0x00,0x00,0x00,
    -0x2d,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x2f,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    -0x2e,0x01,0x00,0x00,0x4f,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x30,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x2f,0x01,0x00,0x00,0x4e,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x14,0x00,0x00,0x00,0x4b,0x01,0x00,0x00,0x07,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x54,0x01,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    -0x58,0x01,0x00,0x00,0x04,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x64,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x2c,0x01,0x00,0x00,0x51,0x00,0x00,0x00,
    +0x2b,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x2d,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    +0x2c,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x2e,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x2d,0x01,0x00,0x00,0x4e,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x4a,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
     0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x69,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x4b,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    +0xa2,0x00,0x00,0x00,0x4a,0x01,0x00,0x00,0x1c,0x00,0x04,0x00,
    +0x4c,0x01,0x00,0x00,0xcf,0x00,0x00,0x00,0x4b,0x01,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x4d,0x01,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x4c,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,0x4d,0x01,0x00,0x00,
    +0x4e,0x01,0x00,0x00,0x04,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x52,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    +0x56,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,0x1e,0x00,0x03,0x00,
    +0x57,0x01,0x00,0x00,0x56,0x01,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x58,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x57,0x01,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x58,0x01,0x00,0x00,0x59,0x01,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    +0x5f,0x01,0x00,0x00,0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x14,0x00,0x00,0x00,0x67,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x6b,0x01,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x7a,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x7f,0x01,0x00,0x00,0x51,0x00,0x00,0x00,0x2b,0x01,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x80,0x01,0x00,0x00,0x84,0x00,0x00,0x00,0x7f,0x01,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x81,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0x80,0x01,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x84,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x87,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0xa2,0x01,0x00,0x00,0x84,0x00,0x00,0x00,0x42,0x00,0x00,0x00,
    +0x44,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0xa3,0x01,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xa2,0x01,0x00,0x00,0x20,0x00,0x04,0x00,
    +0xa4,0x01,0x00,0x00,0x07,0x00,0x00,0x00,0xa3,0x01,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xb4,0x01,0x00,0x00,
    +0x80,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xcf,0x01,0x00,0x00,
    +0x84,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,
    +0x1c,0x00,0x04,0x00,0xd0,0x01,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0xcf,0x01,0x00,0x00,0x20,0x00,0x04,0x00,0xd1,0x01,0x00,0x00,
    +0x07,0x00,0x00,0x00,0xd0,0x01,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xda,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
    +0xc5,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xe2,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
     0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x6a,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    -0xa3,0x00,0x00,0x00,0x69,0x01,0x00,0x00,0x1c,0x00,0x04,0x00,
    -0x6b,0x01,0x00,0x00,0xd0,0x00,0x00,0x00,0x6a,0x01,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x6c,0x01,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x6b,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,0x6c,0x01,0x00,0x00,
    -0x6d,0x01,0x00,0x00,0x04,0x00,0x00,0x00,0x17,0x00,0x04,0x00,
    -0x70,0x01,0x00,0x00,0xd0,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x1d,0x00,0x03,0x00,0x71,0x01,0x00,0x00,0x70,0x01,0x00,0x00,
    -0x1e,0x00,0x03,0x00,0x72,0x01,0x00,0x00,0x71,0x01,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x73,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x72,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,0x73,0x01,0x00,0x00,
    -0x74,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x76,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x8c,0x01,0x00,0x00,
    -0x51,0x00,0x00,0x00,0x2d,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x8d,0x01,0x00,0x00,
    -0x84,0x00,0x00,0x00,0x8c,0x01,0x00,0x00,0x4f,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x8e,0x01,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x8d,0x01,0x00,0x00,0x4e,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x91,0x01,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x94,0x01,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xaf,0x01,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x11,0x02,0x00,0x00,0x84,0x00,0x00,0x00,
    +0x42,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    +0x7f,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
    +0x80,0x02,0x00,0x00,0x7f,0x02,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x81,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,0x80,0x02,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x81,0x02,0x00,0x00,0x82,0x02,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    +0x86,0x02,0x00,0x00,0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x14,0x00,0x00,0x00,0x8d,0x02,0x00,0x00,0x05,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x9a,0x02,0x00,0x00,
     0x84,0x00,0x00,0x00,0x42,0x00,0x00,0x00,0x44,0x00,0x00,0x00,
    -0x1c,0x00,0x04,0x00,0xb0,0x01,0x00,0x00,0xd0,0x00,0x00,0x00,
    -0xaf,0x01,0x00,0x00,0x20,0x00,0x04,0x00,0xb1,0x01,0x00,0x00,
    -0x07,0x00,0x00,0x00,0xb0,0x01,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0xc1,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
    -0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0xdc,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    -0xcc,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,
    -0xdd,0x01,0x00,0x00,0xd0,0x00,0x00,0x00,0xdc,0x01,0x00,0x00,
    -0x20,0x00,0x04,0x00,0xde,0x01,0x00,0x00,0x07,0x00,0x00,0x00,
    -0xdd,0x01,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0xe7,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,
    -0xcc,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0xef,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    -0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0x1e,0x02,0x00,0x00,0x84,0x00,0x00,0x00,0x42,0x00,0x00,0x00,
    -0x44,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x8c,0x02,0x00,0x00,
    -0xd0,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x8d,0x02,0x00,0x00,
    -0x8c,0x02,0x00,0x00,0x20,0x00,0x04,0x00,0x8e,0x02,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x8d,0x02,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0x8e,0x02,0x00,0x00,0x8f,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x93,0x02,0x00,0x00,
    -0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    -0x9a,0x02,0x00,0x00,0x05,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0xa7,0x02,0x00,0x00,0x84,0x00,0x00,0x00,
    -0x42,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x36,0x00,0x05,0x00,
    -0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x03,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0xd5,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,
    -0x07,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xb1,0x01,0x00,0x00,
    -0xb2,0x01,0x00,0x00,0x07,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0xde,0x01,0x00,0x00,0xdf,0x01,0x00,0x00,0x07,0x00,0x00,0x00,
    -0xf7,0x00,0x03,0x00,0xb9,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    -0xfb,0x00,0x03,0x00,0x20,0x00,0x00,0x00,0xba,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xba,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x0d,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x0f,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x16,0x00,0x00,0x00,0x17,0x00,0x00,0x00,0x13,0x00,0x00,0x00,
    -0x15,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x18,0x00,0x00,0x00,0x17,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    -0x19,0x00,0x00,0x00,0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x1c,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
    -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1d,0x00,0x00,0x00,
    -0x1c,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x0d,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x22,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x89,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x1d,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,
    -0x2b,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x2c,0x00,0x00,0x00,
    -0x2b,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,
    -0x2f,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x30,0x00,0x00,0x00,
    -0x2f,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x32,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x31,0x00,0x00,0x00,
    -0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x37,0x00,0x00,0x00,
    -0x32,0x00,0x00,0x00,0x36,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,0x32,0x00,0x00,0x00,
    -0x3a,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x31,0x00,0x00,0x00,
    -0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x46,0x00,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0x45,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x4a,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0x49,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x51,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x50,0x00,0x00,0x00,
    -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x56,0x00,0x00,0x00,
    -0x30,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x89,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x5b,0x00,0x00,0x00,0x30,0x00,0x00,0x00,
    -0x5a,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x60,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x63,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x63,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xc4,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0xba,0x02,0x00,0x00,
    -0xfc,0x02,0x00,0x00,0x66,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xc3,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    -0xba,0x02,0x00,0x00,0xa0,0x00,0x00,0x00,0x66,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0x6a,0x00,0x00,0x00,
    -0x13,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,0x6a,0x00,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6c,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    -0xc3,0x02,0x00,0x00,0x6b,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x65,0x00,0x00,0x00,0x66,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x6d,0x00,0x00,0x00,0x64,0x00,0x00,0x00,
    -0x65,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x64,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x6f,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x6f,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xfc,0x02,0x00,0x00,0xc4,0x02,0x00,0x00,0x64,0x00,0x00,0x00,
    -0x2a,0x03,0x00,0x00,0x72,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xfa,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x64,0x00,0x00,0x00,0x9e,0x00,0x00,0x00,0x72,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0x76,0x00,0x00,0x00,
    -0x13,0x00,0x00,0x00,0x75,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x77,0x00,0x00,0x00,0x76,0x00,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6c,0x00,0x00,0x00,0x78,0x00,0x00,0x00,
    -0xfa,0x02,0x00,0x00,0x77,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x71,0x00,0x00,0x00,0x72,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x78,0x00,0x00,0x00,0x70,0x00,0x00,0x00,
    -0x71,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x70,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,
    -0x13,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x81,0x00,0x00,0x00,
    -0xc3,0x02,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x83,0x00,0x00,0x00,0x81,0x00,0x00,0x00,
    -0xfa,0x02,0x00,0x00,0x41,0x00,0x06,0x00,0x84,0x00,0x00,0x00,
    -0x85,0x00,0x00,0x00,0x7c,0x00,0x00,0x00,0x15,0x00,0x00,0x00,
    -0x83,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x85,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x87,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0xaa,0x00,0x05,0x00,0x6c,0x00,0x00,0x00,0x89,0x00,0x00,0x00,
    -0x87,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,
    -0x8b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x89,0x00,0x00,0x00,0x8a,0x00,0x00,0x00,0x8b,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x8a,0x00,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x8c,0x00,0x00,0x00,0x94,0x00,0x00,0x00,0xfa,0x02,0x00,0x00,
    -0x71,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,0x96,0x00,0x00,0x00,
    -0xc3,0x02,0x00,0x00,0x50,0x00,0x05,0x00,0x8d,0x00,0x00,0x00,
    -0x97,0x00,0x00,0x00,0x94,0x00,0x00,0x00,0x96,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x98,0x00,0x00,0x00,0x99,0x00,0x00,0x00,
    -0x91,0x00,0x00,0x00,0xfc,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x99,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x9c,0x00,0x00,0x00,0xfc,0x02,0x00,0x00,
    -0x9b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x8b,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x8b,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x2a,0x03,0x00,0x00,0xfc,0x02,0x00,0x00,
    -0x70,0x00,0x00,0x00,0x9c,0x00,0x00,0x00,0x8a,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x72,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x72,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x9e,0x00,0x00,0x00,0xfa,0x02,0x00,0x00,0x9b,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x6f,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x71,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x66,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x66,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0xc3,0x02,0x00,0x00,
    -0x9b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x63,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x65,0x00,0x00,0x00,0xe0,0x00,0x04,0x00,
    -0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xa1,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,
    -0x2c,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0xae,0x00,0x05,0x00,
    -0x6c,0x00,0x00,0x00,0xa6,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,
    -0xc4,0x02,0x00,0x00,0xf7,0x00,0x03,0x00,0xa8,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xa6,0x00,0x00,0x00,
    -0xa7,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xa7,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xb9,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xa8,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x16,0x00,0x00,0x00,0xac,0x00,0x00,0x00,0x13,0x00,0x00,0x00,
    -0xab,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0xad,0x00,0x00,0x00,0xac,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x16,0x00,0x00,0x00,0xb1,0x00,0x00,0x00,0x13,0x00,0x00,0x00,
    -0xb0,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0xb2,0x00,0x00,0x00,0xb1,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,
    -0xb2,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xb5,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,
    -0x13,0x00,0x00,0x00,0xb6,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,
    -0xb5,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xba,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,
    -0xb9,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xbc,0x00,0x00,0x00,0xba,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xbf,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xbf,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xc5,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,
    -0xdc,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6c,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0xc5,0x02,0x00,0x00,
    -0xce,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xc1,0x00,0x00,0x00,
    -0xc0,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xcf,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0xc1,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xc0,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xd9,0x00,0x00,0x00,0xda,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,
    -0xc5,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0xda,0x00,0x00,0x00,
    -0xd8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xdc,0x00,0x00,0x00,0xc5,0x02,0x00,0x00,0x9b,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xbf,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xc1,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xde,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xde,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xdf,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    -0xc1,0x00,0x00,0x00,0x96,0x01,0x00,0x00,0xe1,0x00,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xdb,0x02,0x00,0x00,
    -0xbc,0x00,0x00,0x00,0xc1,0x00,0x00,0x00,0x93,0x01,0x00,0x00,
    -0xe1,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xc6,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0xc1,0x00,0x00,0x00,
    -0x41,0x02,0x00,0x00,0xe1,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6c,0x00,0x00,0x00,0xe5,0x00,0x00,0x00,0xc6,0x02,0x00,0x00,
    -0xad,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xe0,0x00,0x00,0x00,
    -0xe1,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xe5,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0xe0,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xdf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xe7,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xe7,0x00,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xd7,0x02,0x00,0x00,
    -0x20,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0x32,0x01,0x00,0x00,
    -0xe8,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0x6c,0x00,0x00,0x00,
    -0xed,0x00,0x00,0x00,0xd7,0x02,0x00,0x00,0x19,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xe9,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xed,0x00,0x00,0x00,
    -0xe8,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xe8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xf2,0x00,0x00,0x00,0x56,0x00,0x00,0x00,0xd7,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,
    -0xf2,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,
    -0x4f,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xf7,0x00,0x00,0x00,0xdb,0x02,0x00,0x00,0xf6,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf9,0x00,0x00,0x00,
    -0xf7,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xf2,0x00,0x00,0x00,
    -0xfe,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x01,0x01,0x00,0x00,0x51,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x02,0x01,0x00,0x00,
    -0xff,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x41,0x00,0x07,0x00,
    -0x10,0x01,0x00,0x00,0x11,0x01,0x00,0x00,0x0e,0x01,0x00,0x00,
    -0x15,0x00,0x00,0x00,0xf9,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x09,0x01,0x00,0x00,0x12,0x01,0x00,0x00,
    -0x11,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0xd0,0x00,0x00,0x00,
    -0x13,0x01,0x00,0x00,0x12,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x14,0x01,0x00,0x00,0x15,0x01,0x00,0x00,0x07,0x01,0x00,0x00,
    -0x02,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x15,0x01,0x00,0x00,
    -0x13,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x17,0x01,0x00,0x00,0x02,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,
    -0x41,0x00,0x07,0x00,0x10,0x01,0x00,0x00,0x19,0x01,0x00,0x00,
    -0x0e,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0xf9,0x00,0x00,0x00,
    -0x1b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x09,0x01,0x00,0x00,
    -0x1a,0x01,0x00,0x00,0x19,0x01,0x00,0x00,0x73,0x00,0x04,0x00,
    -0xd0,0x00,0x00,0x00,0x1b,0x01,0x00,0x00,0x1a,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x14,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,
    -0x07,0x01,0x00,0x00,0x17,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x1c,0x01,0x00,0x00,0x1b,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x1e,0x01,0x00,0x00,0x02,0x01,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x41,0x00,0x07,0x00,0x10,0x01,0x00,0x00,
    -0x20,0x01,0x00,0x00,0x0e,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    -0xf9,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x09,0x01,0x00,0x00,0x21,0x01,0x00,0x00,0x20,0x01,0x00,0x00,
    -0x73,0x00,0x04,0x00,0xd0,0x00,0x00,0x00,0x22,0x01,0x00,0x00,
    -0x21,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x14,0x01,0x00,0x00,
    -0x23,0x01,0x00,0x00,0x07,0x01,0x00,0x00,0x1e,0x01,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x23,0x01,0x00,0x00,0x22,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x26,0x01,0x00,0x00,
    -0x02,0x01,0x00,0x00,0x25,0x01,0x00,0x00,0x41,0x00,0x07,0x00,
    -0x10,0x01,0x00,0x00,0x28,0x01,0x00,0x00,0x0e,0x01,0x00,0x00,
    -0x15,0x00,0x00,0x00,0xf9,0x00,0x00,0x00,0x25,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x09,0x01,0x00,0x00,0x29,0x01,0x00,0x00,
    -0x28,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0xd0,0x00,0x00,0x00,
    -0x2a,0x01,0x00,0x00,0x29,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x14,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,0x07,0x01,0x00,0x00,
    -0x26,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x2b,0x01,0x00,0x00,
    -0x2a,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x32,0x01,0x00,0x00,0xd7,0x02,0x00,0x00,0x30,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xe7,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xe9,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x34,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x34,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xd8,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    -0xe9,0x00,0x00,0x00,0x90,0x01,0x00,0x00,0x35,0x01,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6c,0x00,0x00,0x00,0x3a,0x01,0x00,0x00,
    -0xd8,0x02,0x00,0x00,0xa3,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x36,0x01,0x00,0x00,0x35,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x3a,0x01,0x00,0x00,0x35,0x01,0x00,0x00,
    -0x36,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x35,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x40,0x01,0x00,0x00,
    -0xa4,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x42,0x01,0x00,0x00,0x40,0x01,0x00,0x00,
    -0xd8,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x98,0x00,0x00,0x00,
    -0x43,0x01,0x00,0x00,0x91,0x00,0x00,0x00,0x42,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x8d,0x00,0x00,0x00,0x44,0x01,0x00,0x00,
    -0x43,0x01,0x00,0x00,0x51,0x00,0x05,0x00,0x8c,0x00,0x00,0x00,
    -0x49,0x01,0x00,0x00,0x44,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4a,0x01,0x00,0x00,
    -0x49,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
    -0x4c,0x01,0x00,0x00,0x13,0x00,0x00,0x00,0x4b,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4d,0x01,0x00,0x00,
    -0x4c,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x4e,0x01,0x00,0x00,0x4a,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,
    -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4f,0x01,0x00,0x00,
    -0x4e,0x01,0x00,0x00,0x4f,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x50,0x01,0x00,0x00,0xdf,0x02,0x00,0x00,
    -0x4f,0x01,0x00,0x00,0x51,0x00,0x05,0x00,0x8c,0x00,0x00,0x00,
    -0x52,0x01,0x00,0x00,0x44,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x53,0x01,0x00,0x00,
    -0x52,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
    -0x55,0x01,0x00,0x00,0x13,0x00,0x00,0x00,0x54,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x56,0x01,0x00,0x00,
    -0x55,0x01,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x57,0x01,0x00,0x00,0x53,0x01,0x00,0x00,0x56,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0x59,0x01,0x00,0x00,
    -0x13,0x00,0x00,0x00,0x58,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x5a,0x01,0x00,0x00,0x59,0x01,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5b,0x01,0x00,0x00,
    -0x57,0x01,0x00,0x00,0x5a,0x01,0x00,0x00,0x86,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x5c,0x01,0x00,0x00,0x5b,0x01,0x00,0x00,
    -0x4f,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x5d,0x01,0x00,0x00,0x50,0x01,0x00,0x00,0x5c,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5f,0x01,0x00,0x00,
    -0x5d,0x01,0x00,0x00,0x5b,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x63,0x01,0x00,0x00,0x60,0x00,0x00,0x00,
    -0xd8,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x65,0x01,0x00,0x00,0x63,0x01,0x00,0x00,0x64,0x01,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x67,0x01,0x00,0x00,
    -0x5b,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x68,0x01,0x00,0x00,0x65,0x01,0x00,0x00,
    -0x67,0x01,0x00,0x00,0x41,0x00,0x07,0x00,0x76,0x01,0x00,0x00,
    -0x77,0x01,0x00,0x00,0x74,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    -0x5f,0x01,0x00,0x00,0x20,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xd0,0x00,0x00,0x00,0x78,0x01,0x00,0x00,0x77,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x14,0x01,0x00,0x00,0x79,0x01,0x00,0x00,
    -0x6d,0x01,0x00,0x00,0x68,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x79,0x01,0x00,0x00,0x78,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x7b,0x01,0x00,0x00,0x68,0x01,0x00,0x00,
    -0x1b,0x00,0x00,0x00,0x41,0x00,0x07,0x00,0x76,0x01,0x00,0x00,
    -0x7d,0x01,0x00,0x00,0x74,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    -0x5f,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xd0,0x00,0x00,0x00,0x7e,0x01,0x00,0x00,0x7d,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x14,0x01,0x00,0x00,0x7f,0x01,0x00,0x00,
    -0x6d,0x01,0x00,0x00,0x7b,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x7f,0x01,0x00,0x00,0x7e,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x81,0x01,0x00,0x00,0x68,0x01,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x41,0x00,0x07,0x00,0x76,0x01,0x00,0x00,
    -0x83,0x01,0x00,0x00,0x74,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    -0x5f,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xd0,0x00,0x00,0x00,0x84,0x01,0x00,0x00,0x83,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x14,0x01,0x00,0x00,0x85,0x01,0x00,0x00,
    -0x6d,0x01,0x00,0x00,0x81,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x85,0x01,0x00,0x00,0x84,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x87,0x01,0x00,0x00,0x68,0x01,0x00,0x00,
    -0x25,0x01,0x00,0x00,0x41,0x00,0x07,0x00,0x76,0x01,0x00,0x00,
    -0x89,0x01,0x00,0x00,0x74,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    -0x5f,0x01,0x00,0x00,0x25,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xd0,0x00,0x00,0x00,0x8a,0x01,0x00,0x00,0x89,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x14,0x01,0x00,0x00,0x8b,0x01,0x00,0x00,
    -0x6d,0x01,0x00,0x00,0x87,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x8b,0x01,0x00,0x00,0x8a,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x90,0x01,0x00,0x00,0xd8,0x02,0x00,0x00,
    -0x8e,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x34,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x36,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,
    -0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xa1,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x93,0x01,0x00,0x00,
    -0xdb,0x02,0x00,0x00,0x91,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x96,0x01,0x00,0x00,0xdf,0x02,0x00,0x00,
    -0x94,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x98,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x98,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x20,0x00,0x04,0x00,0xa3,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0x36,0x00,0x05,0x00,0x02,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0xd4,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0xa4,0x01,0x00,0x00,0xa5,0x01,0x00,0x00,
    +0x07,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xd1,0x01,0x00,0x00,
    +0xd2,0x01,0x00,0x00,0x07,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,
    +0xad,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0xfb,0x00,0x03,0x00,
    +0x20,0x00,0x00,0x00,0xae,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xae,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,
    +0x0e,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,
    +0x0e,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
    +0x17,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0x15,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    +0x17,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x1a,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    +0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,
    +0x1a,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x1d,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,
    +0x19,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,
    +0x21,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    +0x21,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x24,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x1d,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,0x2b,0x00,0x00,0x00,
    +0x1f,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x2c,0x00,0x00,0x00,0x2b,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,0x2f,0x00,0x00,0x00,
    +0x2e,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x2f,0x00,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x32,0x00,0x00,0x00,
    +0x30,0x00,0x00,0x00,0x31,0x00,0x00,0x00,0x89,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x37,0x00,0x00,0x00,0x32,0x00,0x00,0x00,
    +0x36,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x3b,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x30,0x00,0x00,0x00,0x31,0x00,0x00,0x00,0x89,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x46,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x45,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x4a,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,0x49,0x00,0x00,0x00,
    +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x50,0x00,0x00,0x00,
    +0x30,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x30,0x00,0x00,0x00,
    +0x54,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x5a,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x59,0x00,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,
    +0x30,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x62,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x62,0x00,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xb8,0x02,0x00,0x00,
    +0x20,0x00,0x00,0x00,0xae,0x02,0x00,0x00,0xf6,0x02,0x00,0x00,
    +0x65,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xb7,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0xae,0x02,0x00,0x00,
    +0x9f,0x00,0x00,0x00,0x65,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x16,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0x13,0x00,0x00,0x00,
    +0x68,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x6a,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0xb7,0x02,0x00,0x00,
    +0x6a,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x64,0x00,0x00,0x00,
    +0x65,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x6c,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x64,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x63,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x6e,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x6e,0x00,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xf6,0x02,0x00,0x00,
    +0xb8,0x02,0x00,0x00,0x63,0x00,0x00,0x00,0x2d,0x03,0x00,0x00,
    +0x71,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xf4,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
    +0x9d,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x16,0x00,0x00,0x00,0x75,0x00,0x00,0x00,0x13,0x00,0x00,0x00,
    +0x74,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x76,0x00,0x00,0x00,0x75,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x77,0x00,0x00,0x00,0xf4,0x02,0x00,0x00,
    +0x76,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x70,0x00,0x00,0x00,
    +0x71,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x77,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x70,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x6f,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x16,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x13,0x00,0x00,0x00,
    +0x7d,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x7f,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0xb7,0x02,0x00,0x00,
    +0x7f,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x82,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0xf4,0x02,0x00,0x00,
    +0x41,0x00,0x06,0x00,0x83,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    +0x7b,0x00,0x00,0x00,0x15,0x00,0x00,0x00,0x82,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x85,0x00,0x00,0x00,
    +0x84,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x85,0x00,0x00,0x00,0xaa,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x88,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x0f,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0x8a,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x88,0x00,0x00,0x00,
    +0x89,0x00,0x00,0x00,0x8a,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x89,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x8b,0x00,0x00,0x00,
    +0x93,0x00,0x00,0x00,0xf4,0x02,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x8b,0x00,0x00,0x00,0x95,0x00,0x00,0x00,0xb7,0x02,0x00,0x00,
    +0x50,0x00,0x05,0x00,0x8c,0x00,0x00,0x00,0x96,0x00,0x00,0x00,
    +0x93,0x00,0x00,0x00,0x95,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x97,0x00,0x00,0x00,0x98,0x00,0x00,0x00,0x90,0x00,0x00,0x00,
    +0xf6,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0x98,0x00,0x00,0x00,
    +0x96,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x9b,0x00,0x00,0x00,0xf6,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x8a,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x8a,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x2d,0x03,0x00,0x00,0xf6,0x02,0x00,0x00,0x6f,0x00,0x00,0x00,
    +0x9b,0x00,0x00,0x00,0x89,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x71,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x71,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,
    +0xf4,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x6e,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x70,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x65,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x65,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x9f,0x00,0x00,0x00,0xb7,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x62,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x64,0x00,0x00,0x00,0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0x2c,0x00,0x00,0x00,
    +0xa2,0x00,0x00,0x00,0xae,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0xa5,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0xb8,0x02,0x00,0x00,
    +0xf7,0x00,0x03,0x00,0xa7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xa5,0x00,0x00,0x00,0xa6,0x00,0x00,0x00,
    +0xa7,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xa6,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xad,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xa7,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
    +0xab,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0xaa,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xac,0x00,0x00,0x00,
    +0xab,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
    +0xb0,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xb1,0x00,0x00,0x00,
    +0xb0,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xb2,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0xb1,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,
    +0x24,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x16,0x00,0x00,0x00,0xb6,0x00,0x00,0x00,0x13,0x00,0x00,0x00,
    +0xb5,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0xb7,0x00,0x00,0x00,0xb6,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,
    +0xb7,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xb9,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,
    +0xb9,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xbe,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xbe,0x00,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xb9,0x02,0x00,0x00,
    +0x20,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,
    +0xbf,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0xce,0x00,0x00,0x00,0xb9,0x02,0x00,0x00,0xcd,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xc0,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xce,0x00,0x00,0x00,
    +0xbf,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xbf,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,
    +0xd9,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0xb9,0x02,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0xd9,0x00,0x00,0x00,0xd7,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,
    +0xb9,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xbe,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xc0,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xdd,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xdd,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xd3,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,
    +0x89,0x01,0x00,0x00,0xe0,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xcf,0x02,0x00,0x00,0xbb,0x00,0x00,0x00,
    +0xc0,0x00,0x00,0x00,0x86,0x01,0x00,0x00,0xe0,0x00,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xba,0x02,0x00,0x00,
    +0x20,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x34,0x02,0x00,0x00,
    +0xe0,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0xe4,0x00,0x00,0x00,0xba,0x02,0x00,0x00,0xac,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xdf,0x00,0x00,0x00,0xe0,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xe4,0x00,0x00,0x00,
    +0xde,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xde,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xe6,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xe6,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xcb,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    +0xde,0x00,0x00,0x00,0x30,0x01,0x00,0x00,0xe9,0x00,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xec,0x00,0x00,0x00,
    +0xcb,0x02,0x00,0x00,0x19,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xe8,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xec,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,
    +0xe8,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xe7,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,
    +0xb4,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xf2,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,
    +0xcb,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0xf5,0x00,0x00,0x00,0xf2,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    +0xf7,0x00,0x03,0x00,0xf7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xf5,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,
    +0xf7,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xf6,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,
    +0xba,0x02,0x00,0x00,0x50,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,
    +0xac,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xf7,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xf7,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x6b,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,
    +0xe7,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,
    +0xf7,0x00,0x03,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xfd,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,
    +0x21,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xfe,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x07,0x01,0x00,0x00,
    +0x55,0x00,0x00,0x00,0xcb,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x09,0x01,0x00,0x00,0x07,0x01,0x00,0x00,
    +0x08,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x0b,0x01,0x00,0x00,0x09,0x01,0x00,0x00,0x50,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x17,0x01,0x00,0x00,
    +0x07,0x01,0x00,0x00,0xb7,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x18,0x01,0x00,0x00,0xcf,0x02,0x00,0x00,
    +0x17,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x1a,0x01,0x00,0x00,0x18,0x01,0x00,0x00,0x50,0x00,0x00,0x00,
    +0x41,0x00,0x06,0x00,0x1b,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,
    +0x10,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x1a,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x0c,0x01,0x00,0x00,0x1d,0x01,0x00,0x00,
    +0x1c,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    +0x1e,0x01,0x00,0x00,0x1d,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x1f,0x01,0x00,0x00,0x20,0x01,0x00,0x00,0x04,0x01,0x00,0x00,
    +0x0b,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x20,0x01,0x00,0x00,
    +0x1e,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xff,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x21,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x24,0x01,0x00,0x00,0x55,0x00,0x00,0x00,
    +0xcb,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x26,0x01,0x00,0x00,0x24,0x01,0x00,0x00,0x25,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x28,0x01,0x00,0x00,
    +0x26,0x01,0x00,0x00,0x50,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x1f,0x01,0x00,0x00,0x29,0x01,0x00,0x00,0x04,0x01,0x00,0x00,
    +0x28,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x29,0x01,0x00,0x00,
    +0xd7,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xff,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xff,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xe9,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xe9,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x30,0x01,0x00,0x00,
    +0xcb,0x02,0x00,0x00,0x2e,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xe6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xe8,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x32,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x32,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xcc,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,
    +0x83,0x01,0x00,0x00,0x35,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x38,0x01,0x00,0x00,0xcc,0x02,0x00,0x00,
    +0xa2,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x34,0x01,0x00,0x00,
    +0x35,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x38,0x01,0x00,0x00,0x33,0x01,0x00,0x00,0x34,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x33,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x3d,0x01,0x00,0x00,0xa3,0x00,0x00,0x00,
    +0x5f,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x3f,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,0xcc,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x42,0x01,0x00,0x00,
    +0x3f,0x01,0x00,0x00,0xb8,0x02,0x00,0x00,0xf7,0x00,0x03,0x00,
    +0x44,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x42,0x01,0x00,0x00,0x43,0x01,0x00,0x00,0x76,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x43,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x97,0x00,0x00,0x00,0x48,0x01,0x00,0x00,0x90,0x00,0x00,0x00,
    +0x3f,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,
    +0x49,0x01,0x00,0x00,0x48,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x51,0x01,0x00,0x00,0x5f,0x00,0x00,0x00,
    +0xcc,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x53,0x01,0x00,0x00,0x51,0x01,0x00,0x00,0x52,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x55,0x01,0x00,0x00,
    +0x53,0x01,0x00,0x00,0x5a,0x00,0x00,0x00,0x51,0x00,0x05,0x00,
    +0x8b,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,0x49,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x5e,0x01,0x00,0x00,0x5d,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x16,0x00,0x00,0x00,0x60,0x01,0x00,0x00,0x13,0x00,0x00,0x00,
    +0x5f,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x61,0x01,0x00,0x00,0x60,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x62,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,
    +0x61,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x63,0x01,0x00,0x00,0xd3,0x02,0x00,0x00,0x62,0x01,0x00,0x00,
    +0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,0x65,0x01,0x00,0x00,
    +0x49,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x66,0x01,0x00,0x00,0x65,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0x68,0x01,0x00,0x00,
    +0x13,0x00,0x00,0x00,0x67,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x69,0x01,0x00,0x00,0x68,0x01,0x00,0x00,
    +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6a,0x01,0x00,0x00,
    +0x66,0x01,0x00,0x00,0x69,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x16,0x00,0x00,0x00,0x6c,0x01,0x00,0x00,0x13,0x00,0x00,0x00,
    +0x6b,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x6d,0x01,0x00,0x00,0x6c,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x6e,0x01,0x00,0x00,0x6a,0x01,0x00,0x00,
    +0x6d,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x6f,0x01,0x00,0x00,0x63,0x01,0x00,0x00,0x6e,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x71,0x01,0x00,0x00,
    +0x6f,0x01,0x00,0x00,0x5a,0x00,0x00,0x00,0x41,0x00,0x06,0x00,
    +0x1b,0x01,0x00,0x00,0x72,0x01,0x00,0x00,0x59,0x01,0x00,0x00,
    +0x15,0x00,0x00,0x00,0x71,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x0c,0x01,0x00,0x00,0x73,0x01,0x00,0x00,0x72,0x01,0x00,0x00,
    +0x73,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0x74,0x01,0x00,0x00,
    +0x73,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x1f,0x01,0x00,0x00,
    +0x75,0x01,0x00,0x00,0x4e,0x01,0x00,0x00,0x55,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x75,0x01,0x00,0x00,0x74,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x44,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x76,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x79,0x01,0x00,0x00,0x5f,0x00,0x00,0x00,0xcc,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7b,0x01,0x00,0x00,
    +0x79,0x01,0x00,0x00,0x7a,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x7d,0x01,0x00,0x00,0x7b,0x01,0x00,0x00,
    +0x5a,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x1f,0x01,0x00,0x00,
    +0x7e,0x01,0x00,0x00,0x4e,0x01,0x00,0x00,0x7d,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x7e,0x01,0x00,0x00,0xd7,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x44,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x44,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x35,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x35,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x83,0x01,0x00,0x00,0xcc,0x02,0x00,0x00,
    +0x81,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x32,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x34,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,
    +0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x86,0x01,0x00,0x00,
    +0xcf,0x02,0x00,0x00,0x84,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x89,0x01,0x00,0x00,0xd3,0x02,0x00,0x00,
    +0x87,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x8b,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x8b,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xd5,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x34,0x01,0x00,0x00,0x32,0x02,0x00,0x00,0x8e,0x01,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x91,0x01,0x00,0x00,
    +0xd5,0x02,0x00,0x00,0x4e,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x8d,0x01,0x00,0x00,0x8e,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x91,0x01,0x00,0x00,0x8c,0x01,0x00,0x00,
    +0x8d,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x8c,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x93,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x93,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xd9,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0x8c,0x01,0x00,0x00,
    +0xbe,0x01,0x00,0x00,0x96,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x99,0x01,0x00,0x00,0xd9,0x02,0x00,0x00,
    +0x42,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x95,0x01,0x00,0x00,
    +0x96,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x99,0x01,0x00,0x00,0x94,0x01,0x00,0x00,0x95,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x94,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x9b,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x9b,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xeb,0x02,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x94,0x01,0x00,0x00,0xbc,0x01,0x00,0x00,
    +0x9c,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0xa1,0x01,0x00,0x00,0xeb,0x02,0x00,0x00,0x44,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x9d,0x01,0x00,0x00,0x9c,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xa1,0x01,0x00,0x00,
    +0x9c,0x01,0x00,0x00,0x9d,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x9c,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xa7,0x01,0x00,0x00,0xd9,0x02,0x00,0x00,0x44,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa9,0x01,0x00,0x00,
    +0xa7,0x01,0x00,0x00,0xeb,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xab,0x01,0x00,0x00,0x37,0x00,0x00,0x00,
    +0x35,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xad,0x01,0x00,0x00,0xd9,0x02,0x00,0x00,0x43,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xae,0x01,0x00,0x00,
    +0xab,0x01,0x00,0x00,0xad,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xb0,0x01,0x00,0x00,0x46,0x00,0x00,0x00,
    +0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xb1,0x01,0x00,0x00,0xae,0x01,0x00,0x00,0xb0,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb3,0x01,0x00,0x00,
    +0xb1,0x01,0x00,0x00,0xeb,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xb5,0x01,0x00,0x00,0xb3,0x01,0x00,0x00,
    +0xb4,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xb7,0x01,0x00,0x00,0xb5,0x01,0x00,0x00,0xd5,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x1f,0x01,0x00,0x00,0xb8,0x01,0x00,0x00,
    +0x04,0x01,0x00,0x00,0xb7,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xcf,0x00,0x00,0x00,0xb9,0x01,0x00,0x00,0xb8,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,0xba,0x01,0x00,0x00,
    +0xa5,0x01,0x00,0x00,0xa9,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0xba,0x01,0x00,0x00,0xb9,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xbc,0x01,0x00,0x00,0xeb,0x02,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x9b,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x9d,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x96,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x96,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbe,0x01,0x00,0x00,
    +0xd9,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x93,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x95,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xc0,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xc0,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xda,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0x95,0x01,0x00,0x00,
    +0xec,0x01,0x00,0x00,0xc3,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0xc6,0x01,0x00,0x00,0xda,0x02,0x00,0x00,
    +0xcb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xc2,0x01,0x00,0x00,
    +0xc3,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xc6,0x01,0x00,0x00,0xc1,0x01,0x00,0x00,0xc2,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xc1,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xc8,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xc8,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xe8,0x02,0x00,0x00,
    +0x20,0x00,0x00,0x00,0xc1,0x01,0x00,0x00,0xea,0x01,0x00,0x00,
    +0xc9,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0xce,0x01,0x00,0x00,0xe8,0x02,0x00,0x00,0xc8,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xca,0x01,0x00,0x00,0xc9,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xce,0x01,0x00,0x00,
    +0xc9,0x01,0x00,0x00,0xca,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xc9,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xd4,0x01,0x00,0x00,0xda,0x02,0x00,0x00,0xc8,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd6,0x01,0x00,0x00,
    +0xd4,0x01,0x00,0x00,0xe8,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xd8,0x01,0x00,0x00,0x3b,0x00,0x00,0x00,
    +0xc5,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xdb,0x01,0x00,0x00,0xda,0x02,0x00,0x00,0xda,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdc,0x01,0x00,0x00,
    +0xd8,0x01,0x00,0x00,0xdb,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xde,0x01,0x00,0x00,0x4a,0x00,0x00,0x00,
    +0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xdf,0x01,0x00,0x00,0xdc,0x01,0x00,0x00,0xde,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe1,0x01,0x00,0x00,
    +0xdf,0x01,0x00,0x00,0xe8,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xe3,0x01,0x00,0x00,0xe1,0x01,0x00,0x00,
    +0xe2,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xe5,0x01,0x00,0x00,0xe3,0x01,0x00,0x00,0xd5,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x1f,0x01,0x00,0x00,0xe6,0x01,0x00,0x00,
    +0x4e,0x01,0x00,0x00,0xe5,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xcf,0x00,0x00,0x00,0xe7,0x01,0x00,0x00,0xe6,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,0xe8,0x01,0x00,0x00,
    +0xd2,0x01,0x00,0x00,0xd6,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0xe8,0x01,0x00,0x00,0xe7,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xea,0x01,0x00,0x00,0xe8,0x02,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xc8,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xca,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xc3,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xc3,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xec,0x01,0x00,0x00,
    +0xda,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xc0,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xc2,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xee,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xee,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xdb,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0xc2,0x01,0x00,0x00,
    +0x30,0x02,0x00,0x00,0xf1,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0xf4,0x01,0x00,0x00,0xdb,0x02,0x00,0x00,
    +0xcb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xf0,0x01,0x00,0x00,
    +0xf1,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xf4,0x01,0x00,0x00,0xef,0x01,0x00,0x00,0xf0,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xef,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xf6,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xf6,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xdf,0x02,0x00,0x00,
    +0x20,0x00,0x00,0x00,0xef,0x01,0x00,0x00,0x2e,0x02,0x00,0x00,
    +0xf9,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0xfc,0x01,0x00,0x00,0xdf,0x02,0x00,0x00,0x42,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xf8,0x01,0x00,0x00,0xf9,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xfc,0x01,0x00,0x00,
    +0xf7,0x01,0x00,0x00,0xf8,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xf7,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xfe,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xfe,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
     0x06,0x00,0x00,0x00,0xe1,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x36,0x01,0x00,0x00,0x3f,0x02,0x00,0x00,0x9b,0x01,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6c,0x00,0x00,0x00,0x9e,0x01,0x00,0x00,
    -0xe1,0x02,0x00,0x00,0x4e,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x9a,0x01,0x00,0x00,0x9b,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x9e,0x01,0x00,0x00,0x99,0x01,0x00,0x00,
    -0x9a,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x99,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xa0,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xa0,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xe5,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0x99,0x01,0x00,0x00,
    -0xcb,0x01,0x00,0x00,0xa3,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6c,0x00,0x00,0x00,0xa6,0x01,0x00,0x00,0xe5,0x02,0x00,0x00,
    -0x42,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xa2,0x01,0x00,0x00,
    -0xa3,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xa6,0x01,0x00,0x00,0xa1,0x01,0x00,0x00,0xa2,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xa1,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xa8,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xa8,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xf7,0x02,0x00,0x00,
    -0x20,0x00,0x00,0x00,0xa1,0x01,0x00,0x00,0xc9,0x01,0x00,0x00,
    -0xa9,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0x6c,0x00,0x00,0x00,
    -0xae,0x01,0x00,0x00,0xf7,0x02,0x00,0x00,0x44,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xaa,0x01,0x00,0x00,0xa9,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xae,0x01,0x00,0x00,
    -0xa9,0x01,0x00,0x00,0xaa,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xa9,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xb4,0x01,0x00,0x00,0xe5,0x02,0x00,0x00,0x44,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb6,0x01,0x00,0x00,
    -0xb4,0x01,0x00,0x00,0xf7,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xb8,0x01,0x00,0x00,0x37,0x00,0x00,0x00,
    +0xf7,0x01,0x00,0x00,0x2c,0x02,0x00,0x00,0x01,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x04,0x02,0x00,0x00,
    +0xe1,0x02,0x00,0x00,0xc8,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x00,0x02,0x00,0x00,0x01,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x04,0x02,0x00,0x00,0xff,0x01,0x00,0x00,
    +0x00,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xff,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x06,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x06,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xe3,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0xff,0x01,0x00,0x00,
    +0x2a,0x02,0x00,0x00,0x07,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x0c,0x02,0x00,0x00,0xe3,0x02,0x00,0x00,
    +0x44,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x08,0x02,0x00,0x00,
    +0x07,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x0c,0x02,0x00,0x00,0x07,0x02,0x00,0x00,0x08,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x07,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x0e,0x02,0x00,0x00,0xdb,0x02,0x00,0x00,
    +0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x10,0x02,0x00,0x00,0x0e,0x02,0x00,0x00,0xe1,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x12,0x02,0x00,0x00,
    +0x10,0x02,0x00,0x00,0x11,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x14,0x02,0x00,0x00,0xdf,0x02,0x00,0x00,
    +0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x15,0x02,0x00,0x00,0x12,0x02,0x00,0x00,0x14,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x17,0x02,0x00,0x00,
    +0x15,0x02,0x00,0x00,0xe3,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x1b,0x02,0x00,0x00,0x14,0x02,0x00,0x00,
    +0xe3,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,
    +0x1c,0x02,0x00,0x00,0xa5,0x01,0x00,0x00,0x1b,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0x1d,0x02,0x00,0x00,
    +0x1c,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,
    +0x22,0x02,0x00,0x00,0xd2,0x01,0x00,0x00,0x10,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0x23,0x02,0x00,0x00,
    +0x22,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,
    +0x25,0x02,0x00,0x00,0xd5,0x00,0x00,0x00,0x17,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0x26,0x02,0x00,0x00,
    +0x25,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0xcf,0x00,0x00,0x00,
    +0x27,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,
    +0x1d,0x02,0x00,0x00,0x23,0x02,0x00,0x00,0x26,0x02,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x25,0x02,0x00,0x00,0x27,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2a,0x02,0x00,0x00,
    +0xe3,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x06,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x08,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x01,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x01,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x2c,0x02,0x00,0x00,0xe1,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xfe,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x00,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xf9,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xf9,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x2e,0x02,0x00,0x00,0xdf,0x02,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xf6,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xf8,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xf1,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xf1,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x30,0x02,0x00,0x00,
    +0xdb,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xee,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xf0,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x8e,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x8e,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x32,0x02,0x00,0x00,0xd5,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x8b,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x8d,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xe0,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xe0,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x34,0x02,0x00,0x00,
    +0xba,0x02,0x00,0x00,0x4e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xdd,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xdf,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x39,0x02,0x00,0x00,
    +0x37,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x3a,0x02,0x00,0x00,0xb4,0x00,0x00,0x00,
    +0x39,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x3f,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x40,0x02,0x00,0x00,
    +0xa3,0x00,0x00,0x00,0x3f,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x42,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x42,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xbb,0x02,0x00,0x00,
    +0x20,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0xac,0x02,0x00,0x00,
    +0x45,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0x48,0x02,0x00,0x00,0xbb,0x02,0x00,0x00,0xcb,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x44,0x02,0x00,0x00,0x45,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x48,0x02,0x00,0x00,
    +0x43,0x02,0x00,0x00,0x44,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x43,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x4a,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x4a,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xbc,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x43,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,0x4d,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x50,0x02,0x00,0x00,
    +0xbc,0x02,0x00,0x00,0x42,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x4c,0x02,0x00,0x00,0x4d,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x50,0x02,0x00,0x00,0x4b,0x02,0x00,0x00,
    +0x4c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x4b,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x54,0x02,0x00,0x00,
    +0xbc,0x02,0x00,0x00,0x43,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x55,0x02,0x00,0x00,0x3a,0x02,0x00,0x00,
    +0x54,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x57,0x02,0x00,0x00,0x46,0x00,0x00,0x00,0x44,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x58,0x02,0x00,0x00,
    +0x55,0x02,0x00,0x00,0x57,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x5c,0x02,0x00,0x00,0xbb,0x02,0x00,0x00,
    +0xda,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x5d,0x02,0x00,0x00,0x40,0x02,0x00,0x00,0x5c,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5f,0x02,0x00,0x00,
    +0x4a,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x60,0x02,0x00,0x00,0x5d,0x02,0x00,0x00,
    +0x5f,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x62,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x62,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xbe,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x4b,0x02,0x00,0x00,0xa8,0x02,0x00,0x00,0x65,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x68,0x02,0x00,0x00,
    +0xbe,0x02,0x00,0x00,0xc8,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x64,0x02,0x00,0x00,0x65,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x68,0x02,0x00,0x00,0x63,0x02,0x00,0x00,
    +0x64,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x63,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6c,0x02,0x00,0x00,
    +0x60,0x02,0x00,0x00,0xbe,0x02,0x00,0x00,0xae,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x6f,0x02,0x00,0x00,0x6c,0x02,0x00,0x00,
    +0xb8,0x02,0x00,0x00,0xf7,0x00,0x03,0x00,0x71,0x02,0x00,0x00,
    +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x6f,0x02,0x00,0x00,
    +0x70,0x02,0x00,0x00,0x71,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x70,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x64,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x71,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x97,0x00,0x00,0x00,0x75,0x02,0x00,0x00,0x90,0x00,0x00,0x00,
    +0x6c,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,
    +0x76,0x02,0x00,0x00,0x75,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x78,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x78,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xc4,0x02,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x71,0x02,0x00,0x00,0xa6,0x02,0x00,0x00,
    +0x79,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0x7e,0x02,0x00,0x00,0xc4,0x02,0x00,0x00,0x44,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x7a,0x02,0x00,0x00,0x79,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x7e,0x02,0x00,0x00,
    +0x79,0x02,0x00,0x00,0x7a,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x79,0x02,0x00,0x00,0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,
    +0x84,0x02,0x00,0x00,0x76,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x85,0x02,0x00,0x00,
    +0x84,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
    +0x87,0x02,0x00,0x00,0x13,0x00,0x00,0x00,0x86,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x88,0x02,0x00,0x00,
    +0x87,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x89,0x02,0x00,0x00,0x85,0x02,0x00,0x00,0x88,0x02,0x00,0x00,
    +0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,0x8b,0x02,0x00,0x00,
    +0x76,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x8c,0x02,0x00,0x00,0x8b,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0x8e,0x02,0x00,0x00,
    +0x13,0x00,0x00,0x00,0x8d,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x8f,0x02,0x00,0x00,0x8e,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x90,0x02,0x00,0x00,
    +0x8c,0x02,0x00,0x00,0x8f,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x91,0x02,0x00,0x00,0x89,0x02,0x00,0x00,
    +0x90,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x93,0x02,0x00,0x00,0x91,0x02,0x00,0x00,0x58,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x95,0x02,0x00,0x00,
    +0x93,0x02,0x00,0x00,0xc4,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x97,0x02,0x00,0x00,0xbb,0x02,0x00,0x00,
    +0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x99,0x02,0x00,0x00,0x97,0x02,0x00,0x00,0xbe,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9b,0x02,0x00,0x00,
    +0x99,0x02,0x00,0x00,0x9a,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x9d,0x02,0x00,0x00,0xbc,0x02,0x00,0x00,
    +0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x9e,0x02,0x00,0x00,0x9b,0x02,0x00,0x00,0x9d,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa0,0x02,0x00,0x00,
    +0x9e,0x02,0x00,0x00,0xc4,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xd8,0x00,0x00,0x00,0xa1,0x02,0x00,0x00,0xd5,0x00,0x00,0x00,
    +0xa0,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    +0xa2,0x02,0x00,0x00,0xa1,0x02,0x00,0x00,0x41,0x00,0x06,0x00,
    +0xa3,0x02,0x00,0x00,0xa4,0x02,0x00,0x00,0x82,0x02,0x00,0x00,
    +0x15,0x00,0x00,0x00,0x95,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0xa4,0x02,0x00,0x00,0xa2,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xa6,0x02,0x00,0x00,0xc4,0x02,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x78,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x7a,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x65,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x65,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa8,0x02,0x00,0x00,
    +0xbe,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x62,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x64,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x4d,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x4d,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xaa,0x02,0x00,0x00,0xbc,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x4a,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x4c,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x45,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x45,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xac,0x02,0x00,0x00,0xbb,0x02,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x42,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x44,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xad,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xad,0x02,0x00,0x00,
    +0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
    +};
    +const uint64_t matmul_id_f16_fp32_len = 10748;
    +
    +unsigned char matmul_id_f32_f16_data[] = {
    +0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
    +0x31,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00,
    +0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x09,0x00,0x00,0x00,
    +0x11,0x00,0x02,0x00,0x16,0x00,0x00,0x00,0x11,0x00,0x02,0x00,
    +0x51,0x11,0x00,0x00,0x0b,0x00,0x06,0x00,0x01,0x00,0x00,0x00,
    +0x47,0x4c,0x53,0x4c,0x2e,0x73,0x74,0x64,0x2e,0x34,0x35,0x30,
    +0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00,0x00,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x0f,0x00,0x10,0x00,0x05,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e,0x00,0x00,0x00,0x00,
    +0x0b,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,
    +0x2e,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,0x90,0x00,0x00,0x00,
    +0x05,0x01,0x00,0x00,0x10,0x01,0x00,0x00,0x4f,0x01,0x00,0x00,
    +0x5a,0x01,0x00,0x00,0x86,0x02,0x00,0x00,0x10,0x00,0x06,0x00,
    +0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x0b,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x11,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x11,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x11,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x11,0x00,0x00,0x00,
    +0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x11,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x11,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x11,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x11,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x11,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x28,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x11,0x00,0x00,0x00,
    +0x0b,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x2c,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x11,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    +0x11,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x19,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    +0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x2e,0x00,0x00,0x00,
    +0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x31,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x35,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x42,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x44,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x4e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x03,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x78,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,
    +0x79,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x79,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    +0x79,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x7b,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x7b,0x00,0x00,0x00,0x21,0x00,0x00,0x00,
    +0x03,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xa2,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0xc5,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0xc8,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x0d,0x01,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,
    +0x0e,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x0e,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    +0x0e,0x01,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x10,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x10,0x01,0x00,0x00,0x21,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x2b,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x2c,0x01,0x00,0x00,0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x57,0x01,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x58,0x01,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x58,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x58,0x01,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x5a,0x01,0x00,0x00,
    +0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x5a,0x01,0x00,0x00,0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x83,0x02,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x84,0x02,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x84,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x84,0x02,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x86,0x02,0x00,0x00,
    +0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x86,0x02,0x00,0x00,0x21,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00,
    +0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x17,0x00,0x04,0x00,0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x0a,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0x0a,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x0d,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x1e,0x00,0x0f,0x00,
    +0x11,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x12,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x11,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x12,0x00,0x00,0x00,0x13,0x00,0x00,0x00,
    +0x09,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x14,0x00,0x00,0x00,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x16,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x19,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x0a,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0x0a,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x31,0x00,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x35,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x36,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x19,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x19,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x42,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x43,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x42,0x00,0x00,0x00,
    +0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x44,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x45,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x43,0x00,0x00,0x00,
    +0x44,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x49,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x43,0x00,0x00,0x00,
    +0x44,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x14,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,
    +0x14,0x00,0x02,0x00,0x6b,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x14,0x00,0x00,0x00,0x74,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x1d,0x00,0x03,0x00,0x78,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    +0x1e,0x00,0x03,0x00,0x79,0x00,0x00,0x00,0x78,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x7a,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x79,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x7a,0x00,0x00,0x00,
    +0x7b,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x14,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x83,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x14,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x8b,0x00,0x00,0x00,
    +0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x17,0x00,0x04,0x00,
    +0x8c,0x00,0x00,0x00,0x8b,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,
    +0x00,0x08,0x00,0x00,0x1c,0x00,0x04,0x00,0x8e,0x00,0x00,0x00,
    +0x8c,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x8f,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x8f,0x00,0x00,0x00,0x90,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x97,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x8c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x14,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,
    +0x08,0x01,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0xa2,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x14,0x00,0x00,0x00,0xaa,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    +0xb5,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    +0x42,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,
    +0x84,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,
    +0x84,0x00,0x00,0x00,0x31,0x00,0x00,0x00,0x44,0x00,0x00,0x00,
    +0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0xc9,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,
    +0xc8,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0xca,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,
    +0x42,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0xcb,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,
    +0xca,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0xcc,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,
    +0xcb,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0xcd,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,
    +0xc8,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0xcf,0x00,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0xd0,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x42,0x00,0x00,0x00,
    +0x44,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0xd1,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,
    +0xcb,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0xd2,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,
    +0xc8,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0xd3,0x00,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0xd4,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0xd7,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xd8,0x00,0x00,0x00,
    +0x07,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x16,0x00,0x03,0x00,
    +0x00,0x01,0x00,0x00,0x10,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x02,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    +0x19,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x1c,0x00,0x04,0x00,
    +0x03,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x02,0x01,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x04,0x01,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x03,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,0x04,0x01,0x00,0x00,
    +0x05,0x01,0x00,0x00,0x04,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x09,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    +0x0d,0x01,0x00,0x00,0xcf,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
    +0x0e,0x01,0x00,0x00,0x0d,0x01,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x0f,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x0e,0x01,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x0f,0x01,0x00,0x00,0x10,0x01,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x1b,0x01,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x1f,0x01,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x01,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x25,0x01,0x00,0x00,
    +0x80,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x00,0x01,0x00,0x00,0x29,0x01,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x2b,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x33,0x00,0x06,0x00,
    +0x09,0x00,0x00,0x00,0x2c,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x2d,0x01,0x00,0x00,0x51,0x00,0x00,0x00,
    +0x2c,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x2e,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    +0x2d,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x2f,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x2e,0x01,0x00,0x00,0x4e,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x4b,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x4c,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    +0xa2,0x00,0x00,0x00,0x4b,0x01,0x00,0x00,0x1c,0x00,0x04,0x00,
    +0x4d,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x4c,0x01,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x4e,0x01,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x4d,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,0x4e,0x01,0x00,0x00,
    +0x4f,0x01,0x00,0x00,0x04,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x53,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    +0x57,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x1e,0x00,0x03,0x00,
    +0x58,0x01,0x00,0x00,0x57,0x01,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x59,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x58,0x01,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x59,0x01,0x00,0x00,0x5a,0x01,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    +0x60,0x01,0x00,0x00,0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x14,0x00,0x00,0x00,0x68,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x6c,0x01,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x73,0x01,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x7b,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x80,0x01,0x00,0x00,0x51,0x00,0x00,0x00,
    +0x2c,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x81,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    +0x80,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x82,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x81,0x01,0x00,0x00,0x4e,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x85,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x88,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xa3,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    +0x42,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,
    +0xa4,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0xa3,0x01,0x00,0x00,
    +0x20,0x00,0x04,0x00,0xa5,0x01,0x00,0x00,0x07,0x00,0x00,0x00,
    +0xa4,0x01,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0xb5,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xbb,0x01,0x00,0x00,
    +0x07,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xd1,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    +0xcb,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,
    +0xd2,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0xd1,0x01,0x00,0x00,
    +0x20,0x00,0x04,0x00,0xd3,0x01,0x00,0x00,0x07,0x00,0x00,0x00,
    +0xd2,0x01,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0xdc,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,
    +0xcb,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0xe4,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x13,0x02,0x00,0x00,0x84,0x00,0x00,0x00,0x42,0x00,0x00,0x00,
    +0x44,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x83,0x02,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x84,0x02,0x00,0x00,
    +0x83,0x02,0x00,0x00,0x20,0x00,0x04,0x00,0x85,0x02,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x84,0x02,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0x85,0x02,0x00,0x00,0x86,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x8a,0x02,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    +0x91,0x02,0x00,0x00,0x05,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x9e,0x02,0x00,0x00,0x84,0x00,0x00,0x00,
    +0x42,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x36,0x00,0x05,0x00,
    +0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x03,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0xd4,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,
    +0x07,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xa5,0x01,0x00,0x00,
    +0xa6,0x01,0x00,0x00,0x07,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0xd3,0x01,0x00,0x00,0xd4,0x01,0x00,0x00,0x07,0x00,0x00,0x00,
    +0xf7,0x00,0x03,0x00,0xb0,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfb,0x00,0x03,0x00,0x20,0x00,0x00,0x00,0xb1,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xb1,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x0d,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x0f,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x16,0x00,0x00,0x00,0x17,0x00,0x00,0x00,0x13,0x00,0x00,0x00,
    +0x15,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x17,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    +0x19,0x00,0x00,0x00,0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x1c,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1d,0x00,0x00,0x00,
    +0x1c,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x0d,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x22,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x89,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    +0x1d,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,
    +0x2b,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x2c,0x00,0x00,0x00,
    +0x2b,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,
    +0x2f,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x30,0x00,0x00,0x00,
    +0x2f,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x32,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x31,0x00,0x00,0x00,
    +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x37,0x00,0x00,0x00,
    +0x32,0x00,0x00,0x00,0x36,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,0x32,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x31,0x00,0x00,0x00,
    +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x46,0x00,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0x45,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x4a,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x49,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x50,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x55,0x00,0x00,0x00,
    +0x30,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x89,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x5a,0x00,0x00,0x00,0x30,0x00,0x00,0x00,
    +0x59,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x5f,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x62,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x62,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xbb,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0xb1,0x02,0x00,0x00,
    +0xf9,0x02,0x00,0x00,0x65,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xba,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    +0xb1,0x02,0x00,0x00,0x9f,0x00,0x00,0x00,0x65,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0x69,0x00,0x00,0x00,
    +0x13,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x6a,0x00,0x00,0x00,0x69,0x00,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,
    +0xba,0x02,0x00,0x00,0x6a,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x64,0x00,0x00,0x00,0x65,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x6c,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
    +0x64,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x63,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x6e,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x6e,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xf9,0x02,0x00,0x00,0xbb,0x02,0x00,0x00,0x63,0x00,0x00,0x00,
    +0x30,0x03,0x00,0x00,0x71,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xf7,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x63,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0x71,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0x75,0x00,0x00,0x00,
    +0x13,0x00,0x00,0x00,0x74,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x76,0x00,0x00,0x00,0x75,0x00,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x77,0x00,0x00,0x00,
    +0xf7,0x02,0x00,0x00,0x76,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x70,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x77,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,
    +0x70,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x6f,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,
    +0x13,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x80,0x00,0x00,0x00,
    +0xba,0x02,0x00,0x00,0x7f,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x82,0x00,0x00,0x00,0x80,0x00,0x00,0x00,
    +0xf7,0x02,0x00,0x00,0x41,0x00,0x06,0x00,0x83,0x00,0x00,0x00,
    +0x84,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,0x15,0x00,0x00,0x00,
    +0x82,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    +0x85,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x85,0x00,0x00,0x00,
    +0xaa,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x88,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,
    +0x8a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x88,0x00,0x00,0x00,0x89,0x00,0x00,0x00,0x8a,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x89,0x00,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x8b,0x00,0x00,0x00,0x93,0x00,0x00,0x00,0xf7,0x02,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x8b,0x00,0x00,0x00,0x95,0x00,0x00,0x00,
    +0xba,0x02,0x00,0x00,0x50,0x00,0x05,0x00,0x8c,0x00,0x00,0x00,
    +0x96,0x00,0x00,0x00,0x93,0x00,0x00,0x00,0x95,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x97,0x00,0x00,0x00,0x98,0x00,0x00,0x00,
    +0x90,0x00,0x00,0x00,0xf9,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x98,0x00,0x00,0x00,0x96,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,0xf9,0x02,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x8a,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x8a,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x30,0x03,0x00,0x00,0xf9,0x02,0x00,0x00,
    +0x6f,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,0x89,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x71,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x71,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x9d,0x00,0x00,0x00,0xf7,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x6e,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x70,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x65,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x65,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x9f,0x00,0x00,0x00,0xba,0x02,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x62,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x64,0x00,0x00,0x00,0xe0,0x00,0x04,0x00,
    +0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,
    +0x2c,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,0xae,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0xa5,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,
    +0xbb,0x02,0x00,0x00,0xf7,0x00,0x03,0x00,0xa7,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xa5,0x00,0x00,0x00,
    +0xa6,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xa6,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xb0,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xa7,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x16,0x00,0x00,0x00,0xab,0x00,0x00,0x00,0x13,0x00,0x00,0x00,
    +0xaa,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0xac,0x00,0x00,0x00,0xab,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x16,0x00,0x00,0x00,0xb0,0x00,0x00,0x00,0x13,0x00,0x00,0x00,
    +0xaf,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0xb1,0x00,0x00,0x00,0xb0,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,
    +0xb1,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xb4,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0xb6,0x00,0x00,0x00,
    +0x13,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,0xb6,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,
    +0xb4,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,
    +0xb8,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xbb,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xbe,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xbe,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xbc,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,
    +0xdb,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0xce,0x00,0x00,0x00,0xbc,0x02,0x00,0x00,
    +0xcd,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xc0,0x00,0x00,0x00,
    +0xbf,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xce,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xbf,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xd8,0x00,0x00,0x00,0xd9,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,
    +0xbc,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0xd9,0x00,0x00,0x00,
    +0xd7,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xdb,0x00,0x00,0x00,0xbc,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xbe,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xc0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xdd,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xdd,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xd6,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    +0xc0,0x00,0x00,0x00,0x8a,0x01,0x00,0x00,0xe0,0x00,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xd2,0x02,0x00,0x00,
    +0xbb,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x87,0x01,0x00,0x00,
    +0xe0,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xbd,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,
    +0x38,0x02,0x00,0x00,0xe0,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0xe4,0x00,0x00,0x00,0xbd,0x02,0x00,0x00,
    +0xac,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xdf,0x00,0x00,0x00,
    +0xe0,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xe4,0x00,0x00,0x00,0xde,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xde,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xe6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xe6,0x00,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xce,0x02,0x00,0x00,
    +0x20,0x00,0x00,0x00,0xde,0x00,0x00,0x00,0x31,0x01,0x00,0x00,
    +0xe9,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0xec,0x00,0x00,0x00,0xce,0x02,0x00,0x00,0x19,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xe8,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xec,0x00,0x00,0x00,
    +0xe7,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xe7,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xf0,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,0x55,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf2,0x00,0x00,0x00,
    +0xf0,0x00,0x00,0x00,0xce,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,0xf2,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0xf7,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xf5,0x00,0x00,0x00,
    +0xf6,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xf6,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xfa,0x00,0x00,0x00,0xbd,0x02,0x00,0x00,0x50,0x00,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,
    +0xfa,0x00,0x00,0x00,0xac,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xf7,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xf7,0x00,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x6b,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,
    +0xf5,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,
    +0xf6,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0xff,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xfd,0x00,0x00,0x00,
    +0xfe,0x00,0x00,0x00,0x21,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xfe,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x08,0x01,0x00,0x00,0x55,0x00,0x00,0x00,0xce,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0a,0x01,0x00,0x00,
    +0x08,0x01,0x00,0x00,0x09,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,0x0a,0x01,0x00,0x00,
    +0x50,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x17,0x01,0x00,0x00,0x08,0x01,0x00,0x00,0xb7,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x18,0x01,0x00,0x00,
    +0xd2,0x02,0x00,0x00,0x17,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x1a,0x01,0x00,0x00,0x18,0x01,0x00,0x00,
    +0x50,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x1b,0x01,0x00,0x00,
    +0x1c,0x01,0x00,0x00,0x10,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    +0x1a,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    +0x1d,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,0x73,0x00,0x04,0x00,
    +0x00,0x01,0x00,0x00,0x1e,0x01,0x00,0x00,0x1d,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x1f,0x01,0x00,0x00,0x20,0x01,0x00,0x00,
    +0x05,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x20,0x01,0x00,0x00,0x1e,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xff,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x21,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x24,0x01,0x00,0x00,
    +0x55,0x00,0x00,0x00,0xce,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x26,0x01,0x00,0x00,0x24,0x01,0x00,0x00,
    +0x25,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x28,0x01,0x00,0x00,0x26,0x01,0x00,0x00,0x50,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x1f,0x01,0x00,0x00,0x2a,0x01,0x00,0x00,
    +0x05,0x01,0x00,0x00,0x28,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x2a,0x01,0x00,0x00,0x29,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xff,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xff,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xe9,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xe9,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x31,0x01,0x00,0x00,0xce,0x02,0x00,0x00,0x2f,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xe6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xe8,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x33,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x33,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xcf,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    +0xe8,0x00,0x00,0x00,0x84,0x01,0x00,0x00,0x36,0x01,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x39,0x01,0x00,0x00,
    +0xcf,0x02,0x00,0x00,0xa2,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x35,0x01,0x00,0x00,0x36,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x39,0x01,0x00,0x00,0x34,0x01,0x00,0x00,
    +0x35,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x34,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3e,0x01,0x00,0x00,
    +0xa3,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x40,0x01,0x00,0x00,0x3e,0x01,0x00,0x00,
    +0xcf,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0x43,0x01,0x00,0x00,0x40,0x01,0x00,0x00,0xbb,0x02,0x00,0x00,
    +0xf7,0x00,0x03,0x00,0x45,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x43,0x01,0x00,0x00,0x44,0x01,0x00,0x00,
    +0x77,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x44,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x97,0x00,0x00,0x00,0x49,0x01,0x00,0x00,
    +0x90,0x00,0x00,0x00,0x40,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x8c,0x00,0x00,0x00,0x4a,0x01,0x00,0x00,0x49,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x52,0x01,0x00,0x00,
    +0x5f,0x00,0x00,0x00,0xcf,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x54,0x01,0x00,0x00,0x52,0x01,0x00,0x00,
    +0x53,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x56,0x01,0x00,0x00,0x54,0x01,0x00,0x00,0x5a,0x00,0x00,0x00,
    +0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,0x5e,0x01,0x00,0x00,
    +0x4a,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x5f,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0x61,0x01,0x00,0x00,
    +0x13,0x00,0x00,0x00,0x60,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x62,0x01,0x00,0x00,0x61,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x63,0x01,0x00,0x00,
    +0x5f,0x01,0x00,0x00,0x62,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x64,0x01,0x00,0x00,0xd6,0x02,0x00,0x00,
    +0x63,0x01,0x00,0x00,0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,
    +0x66,0x01,0x00,0x00,0x4a,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x67,0x01,0x00,0x00,
    +0x66,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
    +0x69,0x01,0x00,0x00,0x13,0x00,0x00,0x00,0x68,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x6a,0x01,0x00,0x00,
    +0x69,0x01,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x6b,0x01,0x00,0x00,0x67,0x01,0x00,0x00,0x6a,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0x6d,0x01,0x00,0x00,
    +0x13,0x00,0x00,0x00,0x6c,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x6e,0x01,0x00,0x00,0x6d,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6f,0x01,0x00,0x00,
    +0x6b,0x01,0x00,0x00,0x6e,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x70,0x01,0x00,0x00,0x64,0x01,0x00,0x00,
    +0x6f,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x72,0x01,0x00,0x00,0x70,0x01,0x00,0x00,0x5a,0x00,0x00,0x00,
    +0x41,0x00,0x06,0x00,0x73,0x01,0x00,0x00,0x74,0x01,0x00,0x00,
    +0x5a,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x72,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x00,0x01,0x00,0x00,0x75,0x01,0x00,0x00,
    +0x74,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x1f,0x01,0x00,0x00,
    +0x76,0x01,0x00,0x00,0x4f,0x01,0x00,0x00,0x56,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x76,0x01,0x00,0x00,0x75,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x45,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x77,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x7a,0x01,0x00,0x00,0x5f,0x00,0x00,0x00,0xcf,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7c,0x01,0x00,0x00,
    +0x7a,0x01,0x00,0x00,0x7b,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x7e,0x01,0x00,0x00,0x7c,0x01,0x00,0x00,
    +0x5a,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x1f,0x01,0x00,0x00,
    +0x7f,0x01,0x00,0x00,0x4f,0x01,0x00,0x00,0x7e,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x7f,0x01,0x00,0x00,0x29,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x45,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x45,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x36,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x36,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x84,0x01,0x00,0x00,0xcf,0x02,0x00,0x00,
    +0x82,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x33,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x35,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,
    +0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x87,0x01,0x00,0x00,
    +0xd2,0x02,0x00,0x00,0x85,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x8a,0x01,0x00,0x00,0xd6,0x02,0x00,0x00,
    +0x88,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x8c,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x8c,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xd8,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x35,0x01,0x00,0x00,0x36,0x02,0x00,0x00,0x8f,0x01,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x92,0x01,0x00,0x00,
    +0xd8,0x02,0x00,0x00,0x4e,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x8e,0x01,0x00,0x00,0x8f,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x92,0x01,0x00,0x00,0x8d,0x01,0x00,0x00,
    +0x8e,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x8d,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x94,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x94,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xdc,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0x8d,0x01,0x00,0x00,
    +0xc0,0x01,0x00,0x00,0x97,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x9a,0x01,0x00,0x00,0xdc,0x02,0x00,0x00,
    +0x42,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x96,0x01,0x00,0x00,
    +0x97,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x9a,0x01,0x00,0x00,0x95,0x01,0x00,0x00,0x96,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x95,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x9c,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x9c,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xee,0x02,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x95,0x01,0x00,0x00,0xbe,0x01,0x00,0x00,
    +0x9d,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0xa2,0x01,0x00,0x00,0xee,0x02,0x00,0x00,0x44,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x9e,0x01,0x00,0x00,0x9d,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xa2,0x01,0x00,0x00,
    +0x9d,0x01,0x00,0x00,0x9e,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x9d,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xa8,0x01,0x00,0x00,0xdc,0x02,0x00,0x00,0x44,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xaa,0x01,0x00,0x00,
    +0xa8,0x01,0x00,0x00,0xee,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xac,0x01,0x00,0x00,0x37,0x00,0x00,0x00,
     0x35,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xba,0x01,0x00,0x00,0xe5,0x02,0x00,0x00,0x43,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbb,0x01,0x00,0x00,
    -0xb8,0x01,0x00,0x00,0xba,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xbd,0x01,0x00,0x00,0x46,0x00,0x00,0x00,
    +0xae,0x01,0x00,0x00,0xdc,0x02,0x00,0x00,0x43,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xaf,0x01,0x00,0x00,
    +0xac,0x01,0x00,0x00,0xae,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xb1,0x01,0x00,0x00,0x46,0x00,0x00,0x00,
     0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xbe,0x01,0x00,0x00,0xbb,0x01,0x00,0x00,0xbd,0x01,0x00,0x00,
    +0xb2,0x01,0x00,0x00,0xaf,0x01,0x00,0x00,0xb1,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb4,0x01,0x00,0x00,
    +0xb2,0x01,0x00,0x00,0xee,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xb6,0x01,0x00,0x00,0xb4,0x01,0x00,0x00,
    +0xb5,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xb8,0x01,0x00,0x00,0xb6,0x01,0x00,0x00,0xd8,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x1f,0x01,0x00,0x00,0xb9,0x01,0x00,0x00,
    +0x05,0x01,0x00,0x00,0xb8,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x00,0x01,0x00,0x00,0xba,0x01,0x00,0x00,0xb9,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xbb,0x01,0x00,0x00,0xbc,0x01,0x00,0x00,
    +0xa6,0x01,0x00,0x00,0xaa,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0xbc,0x01,0x00,0x00,0xba,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xbe,0x01,0x00,0x00,0xee,0x02,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x9c,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x9e,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x97,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x97,0x01,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc0,0x01,0x00,0x00,
    -0xbe,0x01,0x00,0x00,0xf7,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xc2,0x01,0x00,0x00,0xc0,0x01,0x00,0x00,
    -0xc1,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xc4,0x01,0x00,0x00,0xc2,0x01,0x00,0x00,0xe1,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x14,0x01,0x00,0x00,0xc5,0x01,0x00,0x00,
    -0x07,0x01,0x00,0x00,0xc4,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xd0,0x00,0x00,0x00,0xc6,0x01,0x00,0x00,0xc5,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xd9,0x00,0x00,0x00,0xc7,0x01,0x00,0x00,
    -0xb2,0x01,0x00,0x00,0xb6,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0xc7,0x01,0x00,0x00,0xc6,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xc9,0x01,0x00,0x00,0xf7,0x02,0x00,0x00,
    -0x9b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xa8,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xaa,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xa3,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xa3,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xcb,0x01,0x00,0x00,
    -0xe5,0x02,0x00,0x00,0x9b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xa0,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xa2,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xcd,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xcd,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xe6,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0xa2,0x01,0x00,0x00,
    -0xf9,0x01,0x00,0x00,0xd0,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6c,0x00,0x00,0x00,0xd3,0x01,0x00,0x00,0xe6,0x02,0x00,0x00,
    -0xcc,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xcf,0x01,0x00,0x00,
    -0xd0,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xd3,0x01,0x00,0x00,0xce,0x01,0x00,0x00,0xcf,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xce,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xd5,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xd5,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xf4,0x02,0x00,0x00,
    -0x20,0x00,0x00,0x00,0xce,0x01,0x00,0x00,0xf7,0x01,0x00,0x00,
    -0xd6,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0x6c,0x00,0x00,0x00,
    -0xdb,0x01,0x00,0x00,0xf4,0x02,0x00,0x00,0xc9,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xd7,0x01,0x00,0x00,0xd6,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xdb,0x01,0x00,0x00,
    -0xd6,0x01,0x00,0x00,0xd7,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xd6,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xe1,0x01,0x00,0x00,0xe6,0x02,0x00,0x00,0xc9,0x00,0x00,0x00,
    +0xdc,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x94,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x96,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xc2,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xc2,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xdd,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0x96,0x01,0x00,0x00,
    +0xee,0x01,0x00,0x00,0xc5,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0xc8,0x01,0x00,0x00,0xdd,0x02,0x00,0x00,
    +0xcb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xc4,0x01,0x00,0x00,
    +0xc5,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xc8,0x01,0x00,0x00,0xc3,0x01,0x00,0x00,0xc4,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xc3,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xca,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xca,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xeb,0x02,0x00,0x00,
    +0x20,0x00,0x00,0x00,0xc3,0x01,0x00,0x00,0xec,0x01,0x00,0x00,
    +0xcb,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0xd0,0x01,0x00,0x00,0xeb,0x02,0x00,0x00,0xc8,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xcc,0x01,0x00,0x00,0xcb,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xd0,0x01,0x00,0x00,
    +0xcb,0x01,0x00,0x00,0xcc,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xcb,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xd6,0x01,0x00,0x00,0xdd,0x02,0x00,0x00,0xc8,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd8,0x01,0x00,0x00,
    +0xd6,0x01,0x00,0x00,0xeb,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xda,0x01,0x00,0x00,0x3b,0x00,0x00,0x00,
    +0xc5,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xdd,0x01,0x00,0x00,0xdd,0x02,0x00,0x00,0xdc,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xde,0x01,0x00,0x00,
    +0xda,0x01,0x00,0x00,0xdd,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xe0,0x01,0x00,0x00,0x4a,0x00,0x00,0x00,
    +0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xe1,0x01,0x00,0x00,0xde,0x01,0x00,0x00,0xe0,0x01,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe3,0x01,0x00,0x00,
    -0xe1,0x01,0x00,0x00,0xf4,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xe5,0x01,0x00,0x00,0x3b,0x00,0x00,0x00,
    -0xc6,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xe8,0x01,0x00,0x00,0xe6,0x02,0x00,0x00,0xe7,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe9,0x01,0x00,0x00,
    -0xe5,0x01,0x00,0x00,0xe8,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xeb,0x01,0x00,0x00,0x4a,0x00,0x00,0x00,
    -0xc9,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xec,0x01,0x00,0x00,0xe9,0x01,0x00,0x00,0xeb,0x01,0x00,0x00,
    +0xe1,0x01,0x00,0x00,0xeb,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xe5,0x01,0x00,0x00,0xe3,0x01,0x00,0x00,
    +0xe4,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xe7,0x01,0x00,0x00,0xe5,0x01,0x00,0x00,0xd8,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x1f,0x01,0x00,0x00,0xe8,0x01,0x00,0x00,
    +0x4f,0x01,0x00,0x00,0xe7,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x00,0x01,0x00,0x00,0xe9,0x01,0x00,0x00,0xe8,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xbb,0x01,0x00,0x00,0xea,0x01,0x00,0x00,
    +0xd4,0x01,0x00,0x00,0xd8,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0xea,0x01,0x00,0x00,0xe9,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xec,0x01,0x00,0x00,0xeb,0x02,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xca,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xcc,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xc5,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xc5,0x01,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xee,0x01,0x00,0x00,
    -0xec,0x01,0x00,0x00,0xf4,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xf0,0x01,0x00,0x00,0xee,0x01,0x00,0x00,
    -0xef,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xf2,0x01,0x00,0x00,0xf0,0x01,0x00,0x00,0xe1,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x14,0x01,0x00,0x00,0xf3,0x01,0x00,0x00,
    -0x6d,0x01,0x00,0x00,0xf2,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xd0,0x00,0x00,0x00,0xf4,0x01,0x00,0x00,0xf3,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xd9,0x00,0x00,0x00,0xf5,0x01,0x00,0x00,
    -0xdf,0x01,0x00,0x00,0xe3,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0xf5,0x01,0x00,0x00,0xf4,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xf7,0x01,0x00,0x00,0xf4,0x02,0x00,0x00,
    -0x9b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xd5,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xd7,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xd0,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xd0,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf9,0x01,0x00,0x00,
    -0xe6,0x02,0x00,0x00,0x9b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xcd,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xcf,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xfb,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xfb,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xe7,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0xcf,0x01,0x00,0x00,
    -0x3d,0x02,0x00,0x00,0xfe,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6c,0x00,0x00,0x00,0x01,0x02,0x00,0x00,0xe7,0x02,0x00,0x00,
    -0xcc,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xfd,0x01,0x00,0x00,
    -0xfe,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x01,0x02,0x00,0x00,0xfc,0x01,0x00,0x00,0xfd,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xfc,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x03,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x03,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xeb,0x02,0x00,0x00,
    -0x20,0x00,0x00,0x00,0xfc,0x01,0x00,0x00,0x3b,0x02,0x00,0x00,
    -0x06,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6c,0x00,0x00,0x00,
    -0x09,0x02,0x00,0x00,0xeb,0x02,0x00,0x00,0x42,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x05,0x02,0x00,0x00,0x06,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x09,0x02,0x00,0x00,
    -0x04,0x02,0x00,0x00,0x05,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x04,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x0b,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x0b,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xed,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x04,0x02,0x00,0x00,0x39,0x02,0x00,0x00,0x0e,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6c,0x00,0x00,0x00,0x11,0x02,0x00,0x00,
    -0xed,0x02,0x00,0x00,0xc9,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x0d,0x02,0x00,0x00,0x0e,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x11,0x02,0x00,0x00,0x0c,0x02,0x00,0x00,
    -0x0d,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x0c,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x13,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x13,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xef,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0x0c,0x02,0x00,0x00,
    -0x37,0x02,0x00,0x00,0x14,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6c,0x00,0x00,0x00,0x19,0x02,0x00,0x00,0xef,0x02,0x00,0x00,
    -0x44,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x15,0x02,0x00,0x00,
    -0x14,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x19,0x02,0x00,0x00,0x14,0x02,0x00,0x00,0x15,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x14,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x1b,0x02,0x00,0x00,0xe7,0x02,0x00,0x00,
    -0xc9,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x1d,0x02,0x00,0x00,0x1b,0x02,0x00,0x00,0xed,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1f,0x02,0x00,0x00,
    -0x1d,0x02,0x00,0x00,0x1e,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x21,0x02,0x00,0x00,0xeb,0x02,0x00,0x00,
    +0xdd,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xc2,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xc4,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xf0,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xf0,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xde,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0xc4,0x01,0x00,0x00,
    +0x34,0x02,0x00,0x00,0xf3,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0xf6,0x01,0x00,0x00,0xde,0x02,0x00,0x00,
    +0xcb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xf2,0x01,0x00,0x00,
    +0xf3,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xf6,0x01,0x00,0x00,0xf1,0x01,0x00,0x00,0xf2,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xf1,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xf8,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xf8,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xe2,0x02,0x00,0x00,
    +0x20,0x00,0x00,0x00,0xf1,0x01,0x00,0x00,0x32,0x02,0x00,0x00,
    +0xfb,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0xfe,0x01,0x00,0x00,0xe2,0x02,0x00,0x00,0x42,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xfa,0x01,0x00,0x00,0xfb,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xfe,0x01,0x00,0x00,
    +0xf9,0x01,0x00,0x00,0xfa,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xf9,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x00,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x00,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xe4,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    +0xf9,0x01,0x00,0x00,0x30,0x02,0x00,0x00,0x03,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x06,0x02,0x00,0x00,
    +0xe4,0x02,0x00,0x00,0xc8,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x02,0x02,0x00,0x00,0x03,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x06,0x02,0x00,0x00,0x01,0x02,0x00,0x00,
    +0x02,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x01,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x08,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x08,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xe6,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0x01,0x02,0x00,0x00,
    +0x2e,0x02,0x00,0x00,0x09,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x0e,0x02,0x00,0x00,0xe6,0x02,0x00,0x00,
    +0x44,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x0a,0x02,0x00,0x00,
    +0x09,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x0e,0x02,0x00,0x00,0x09,0x02,0x00,0x00,0x0a,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x09,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x10,0x02,0x00,0x00,0xde,0x02,0x00,0x00,
    +0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x12,0x02,0x00,0x00,0x10,0x02,0x00,0x00,0xe4,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x14,0x02,0x00,0x00,
    +0x12,0x02,0x00,0x00,0x13,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x16,0x02,0x00,0x00,0xe2,0x02,0x00,0x00,
     0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x22,0x02,0x00,0x00,0x1f,0x02,0x00,0x00,0x21,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x24,0x02,0x00,0x00,
    -0x22,0x02,0x00,0x00,0xef,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x28,0x02,0x00,0x00,0x21,0x02,0x00,0x00,
    -0xef,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xd9,0x00,0x00,0x00,
    -0x29,0x02,0x00,0x00,0xb2,0x01,0x00,0x00,0x28,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xd0,0x00,0x00,0x00,0x2a,0x02,0x00,0x00,
    -0x29,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xd9,0x00,0x00,0x00,
    -0x2f,0x02,0x00,0x00,0xdf,0x01,0x00,0x00,0x1d,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xd0,0x00,0x00,0x00,0x30,0x02,0x00,0x00,
    -0x2f,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xd9,0x00,0x00,0x00,
    -0x32,0x02,0x00,0x00,0xd6,0x00,0x00,0x00,0x24,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xd0,0x00,0x00,0x00,0x33,0x02,0x00,0x00,
    -0x32,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0xd0,0x00,0x00,0x00,
    -0x34,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,
    -0x2a,0x02,0x00,0x00,0x30,0x02,0x00,0x00,0x33,0x02,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x32,0x02,0x00,0x00,0x34,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x37,0x02,0x00,0x00,
    -0xef,0x02,0x00,0x00,0x9b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x13,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x15,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x0e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x0e,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x39,0x02,0x00,0x00,0xed,0x02,0x00,0x00,0x9b,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x0b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x0d,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x06,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x06,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x3b,0x02,0x00,0x00,0xeb,0x02,0x00,0x00,
    -0x9b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x03,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x05,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xfe,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xfe,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3d,0x02,0x00,0x00,
    -0xe7,0x02,0x00,0x00,0x9b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xfb,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xfd,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x9b,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x9b,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x3f,0x02,0x00,0x00,0xe1,0x02,0x00,0x00,0x9b,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x98,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x9a,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0xa1,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xe1,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xe1,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x41,0x02,0x00,0x00,
    -0xc6,0x02,0x00,0x00,0x4e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xde,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xe0,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x46,0x02,0x00,0x00,
    -0x37,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x47,0x02,0x00,0x00,0xb5,0x00,0x00,0x00,
    -0x46,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x4c,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4d,0x02,0x00,0x00,
    -0xa4,0x00,0x00,0x00,0x4c,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x4f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x4f,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xc7,0x02,0x00,0x00,
    -0x20,0x00,0x00,0x00,0xe0,0x00,0x00,0x00,0xb8,0x02,0x00,0x00,
    -0x52,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6c,0x00,0x00,0x00,
    -0x55,0x02,0x00,0x00,0xc7,0x02,0x00,0x00,0xcc,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x51,0x02,0x00,0x00,0x52,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x55,0x02,0x00,0x00,
    -0x50,0x02,0x00,0x00,0x51,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x50,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x57,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x57,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xc8,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x50,0x02,0x00,0x00,0xb6,0x02,0x00,0x00,0x5a,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6c,0x00,0x00,0x00,0x5d,0x02,0x00,0x00,
    -0xc8,0x02,0x00,0x00,0x42,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x59,0x02,0x00,0x00,0x5a,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x5d,0x02,0x00,0x00,0x58,0x02,0x00,0x00,
    -0x59,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x58,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x61,0x02,0x00,0x00,
    -0xc8,0x02,0x00,0x00,0x43,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x62,0x02,0x00,0x00,0x47,0x02,0x00,0x00,
    -0x61,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x64,0x02,0x00,0x00,0x46,0x00,0x00,0x00,0x44,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x65,0x02,0x00,0x00,
    -0x62,0x02,0x00,0x00,0x64,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x69,0x02,0x00,0x00,0xc7,0x02,0x00,0x00,
    -0xe7,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x6a,0x02,0x00,0x00,0x4d,0x02,0x00,0x00,0x69,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6c,0x02,0x00,0x00,
    -0x4a,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x6d,0x02,0x00,0x00,0x6a,0x02,0x00,0x00,
    -0x6c,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x6f,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x6f,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xca,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x58,0x02,0x00,0x00,0xb4,0x02,0x00,0x00,0x72,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6c,0x00,0x00,0x00,0x75,0x02,0x00,0x00,
    -0xca,0x02,0x00,0x00,0xc9,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x71,0x02,0x00,0x00,0x72,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x75,0x02,0x00,0x00,0x70,0x02,0x00,0x00,
    -0x71,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x70,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x79,0x02,0x00,0x00,
    -0x6d,0x02,0x00,0x00,0xca,0x02,0x00,0x00,0xae,0x00,0x05,0x00,
    -0x6c,0x00,0x00,0x00,0x7c,0x02,0x00,0x00,0x79,0x02,0x00,0x00,
    -0xc4,0x02,0x00,0x00,0xf7,0x00,0x03,0x00,0x7e,0x02,0x00,0x00,
    -0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x7c,0x02,0x00,0x00,
    -0x7d,0x02,0x00,0x00,0x7e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x7d,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x71,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x7e,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x98,0x00,0x00,0x00,0x82,0x02,0x00,0x00,0x91,0x00,0x00,0x00,
    -0x79,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x8d,0x00,0x00,0x00,
    -0x83,0x02,0x00,0x00,0x82,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x85,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x85,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xd0,0x02,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x7e,0x02,0x00,0x00,0xb2,0x02,0x00,0x00,
    -0x86,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6c,0x00,0x00,0x00,
    -0x8b,0x02,0x00,0x00,0xd0,0x02,0x00,0x00,0x44,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x87,0x02,0x00,0x00,0x86,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x8b,0x02,0x00,0x00,
    -0x86,0x02,0x00,0x00,0x87,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x86,0x02,0x00,0x00,0x51,0x00,0x05,0x00,0x8c,0x00,0x00,0x00,
    -0x91,0x02,0x00,0x00,0x83,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x92,0x02,0x00,0x00,
    -0x91,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
    -0x94,0x02,0x00,0x00,0x13,0x00,0x00,0x00,0x93,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x95,0x02,0x00,0x00,
    -0x94,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x96,0x02,0x00,0x00,0x92,0x02,0x00,0x00,0x95,0x02,0x00,0x00,
    -0x51,0x00,0x05,0x00,0x8c,0x00,0x00,0x00,0x98,0x02,0x00,0x00,
    -0x83,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x99,0x02,0x00,0x00,0x98,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0x9b,0x02,0x00,0x00,
    -0x13,0x00,0x00,0x00,0x9a,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x9c,0x02,0x00,0x00,0x9b,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9d,0x02,0x00,0x00,
    -0x99,0x02,0x00,0x00,0x9c,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x9e,0x02,0x00,0x00,0x96,0x02,0x00,0x00,
    -0x9d,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xa0,0x02,0x00,0x00,0x9e,0x02,0x00,0x00,0x65,0x02,0x00,0x00,
    +0x17,0x02,0x00,0x00,0x14,0x02,0x00,0x00,0x16,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x19,0x02,0x00,0x00,
    +0x17,0x02,0x00,0x00,0xe6,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x1d,0x02,0x00,0x00,0x16,0x02,0x00,0x00,
    +0xe6,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xbb,0x01,0x00,0x00,
    +0x1e,0x02,0x00,0x00,0xa6,0x01,0x00,0x00,0x1d,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x00,0x01,0x00,0x00,0x1f,0x02,0x00,0x00,
    +0x1e,0x02,0x00,0x00,0x73,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    +0x20,0x02,0x00,0x00,0x1f,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xbb,0x01,0x00,0x00,0x25,0x02,0x00,0x00,0xd4,0x01,0x00,0x00,
    +0x12,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x00,0x01,0x00,0x00,
    +0x26,0x02,0x00,0x00,0x25,0x02,0x00,0x00,0x73,0x00,0x04,0x00,
    +0xcf,0x00,0x00,0x00,0x27,0x02,0x00,0x00,0x26,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,0x29,0x02,0x00,0x00,
    +0xd5,0x00,0x00,0x00,0x19,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xcf,0x00,0x00,0x00,0x2a,0x02,0x00,0x00,0x29,0x02,0x00,0x00,
    +0x0c,0x00,0x08,0x00,0xcf,0x00,0x00,0x00,0x2b,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x20,0x02,0x00,0x00,
    +0x27,0x02,0x00,0x00,0x2a,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x29,0x02,0x00,0x00,0x2b,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x2e,0x02,0x00,0x00,0xe6,0x02,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x08,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x0a,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x03,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x03,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x30,0x02,0x00,0x00,
    +0xe4,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x00,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x02,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xfb,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xfb,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x32,0x02,0x00,0x00,0xe2,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xf8,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xfa,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xf3,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xf3,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x34,0x02,0x00,0x00,0xde,0x02,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xf0,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xf2,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x8f,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x8f,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x36,0x02,0x00,0x00,
    +0xd8,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x8c,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x8e,0x01,0x00,0x00,
    +0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0xa0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xe0,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xe0,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x38,0x02,0x00,0x00,0xbd,0x02,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xdd,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xdf,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x3d,0x02,0x00,0x00,0x37,0x00,0x00,0x00,
    +0x35,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x3e,0x02,0x00,0x00,0xb4,0x00,0x00,0x00,0x3d,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x43,0x02,0x00,0x00,
    +0x3b,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x44,0x02,0x00,0x00,0xa3,0x00,0x00,0x00,
    +0x43,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x46,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x46,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xbe,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    +0xdf,0x00,0x00,0x00,0xaf,0x02,0x00,0x00,0x49,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x4c,0x02,0x00,0x00,
    +0xbe,0x02,0x00,0x00,0xcb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x48,0x02,0x00,0x00,0x49,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x4c,0x02,0x00,0x00,0x47,0x02,0x00,0x00,
    +0x48,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x47,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x4e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x4e,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xbf,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0x47,0x02,0x00,0x00,
    +0xad,0x02,0x00,0x00,0x51,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x54,0x02,0x00,0x00,0xbf,0x02,0x00,0x00,
    +0x42,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x50,0x02,0x00,0x00,
    +0x51,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x54,0x02,0x00,0x00,0x4f,0x02,0x00,0x00,0x50,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x4f,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x58,0x02,0x00,0x00,0xbf,0x02,0x00,0x00,
    +0x43,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x59,0x02,0x00,0x00,0x3e,0x02,0x00,0x00,0x58,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5b,0x02,0x00,0x00,
    +0x46,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x5c,0x02,0x00,0x00,0x59,0x02,0x00,0x00,
    +0x5b,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x60,0x02,0x00,0x00,0xbe,0x02,0x00,0x00,0xdc,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x61,0x02,0x00,0x00,
    +0x44,0x02,0x00,0x00,0x60,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x63,0x02,0x00,0x00,0x4a,0x00,0x00,0x00,
    +0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x64,0x02,0x00,0x00,0x61,0x02,0x00,0x00,0x63,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x66,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x66,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xc1,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0x4f,0x02,0x00,0x00,
    +0xab,0x02,0x00,0x00,0x69,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x6c,0x02,0x00,0x00,0xc1,0x02,0x00,0x00,
    +0xc8,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x68,0x02,0x00,0x00,
    +0x69,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x6c,0x02,0x00,0x00,0x67,0x02,0x00,0x00,0x68,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x67,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x70,0x02,0x00,0x00,0x64,0x02,0x00,0x00,
    +0xc1,0x02,0x00,0x00,0xae,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0x73,0x02,0x00,0x00,0x70,0x02,0x00,0x00,0xbb,0x02,0x00,0x00,
    +0xf7,0x00,0x03,0x00,0x75,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x73,0x02,0x00,0x00,0x74,0x02,0x00,0x00,
    +0x75,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x74,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x68,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x75,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x97,0x00,0x00,0x00,
    +0x79,0x02,0x00,0x00,0x90,0x00,0x00,0x00,0x70,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,0x7a,0x02,0x00,0x00,
    +0x79,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x7c,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x7c,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xc7,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x75,0x02,0x00,0x00,0xa9,0x02,0x00,0x00,0x7d,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x82,0x02,0x00,0x00,
    +0xc7,0x02,0x00,0x00,0x44,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x7e,0x02,0x00,0x00,0x7d,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x82,0x02,0x00,0x00,0x7d,0x02,0x00,0x00,
    +0x7e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x7d,0x02,0x00,0x00,
    +0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,0x88,0x02,0x00,0x00,
    +0x7a,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x89,0x02,0x00,0x00,0x88,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0x8b,0x02,0x00,0x00,
    +0x13,0x00,0x00,0x00,0x8a,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x8c,0x02,0x00,0x00,0x8b,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8d,0x02,0x00,0x00,
    +0x89,0x02,0x00,0x00,0x8c,0x02,0x00,0x00,0x51,0x00,0x05,0x00,
    +0x8b,0x00,0x00,0x00,0x8f,0x02,0x00,0x00,0x7a,0x02,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x90,0x02,0x00,0x00,0x8f,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x16,0x00,0x00,0x00,0x92,0x02,0x00,0x00,0x13,0x00,0x00,0x00,
    +0x91,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x93,0x02,0x00,0x00,0x92,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x94,0x02,0x00,0x00,0x90,0x02,0x00,0x00,
    +0x93,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x95,0x02,0x00,0x00,0x8d,0x02,0x00,0x00,0x94,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x97,0x02,0x00,0x00,
    +0x95,0x02,0x00,0x00,0x5c,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x99,0x02,0x00,0x00,0x97,0x02,0x00,0x00,
    +0xc7,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x9b,0x02,0x00,0x00,0xbe,0x02,0x00,0x00,0xc8,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9d,0x02,0x00,0x00,
    +0x9b,0x02,0x00,0x00,0xc1,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x9f,0x02,0x00,0x00,0x9d,0x02,0x00,0x00,
    +0x9e,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xa1,0x02,0x00,0x00,0xbf,0x02,0x00,0x00,0x44,0x00,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa2,0x02,0x00,0x00,
    -0xa0,0x02,0x00,0x00,0xd0,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xa4,0x02,0x00,0x00,0xc7,0x02,0x00,0x00,
    -0xc9,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xa6,0x02,0x00,0x00,0xa4,0x02,0x00,0x00,0xca,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa8,0x02,0x00,0x00,
    -0xa6,0x02,0x00,0x00,0xa7,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xaa,0x02,0x00,0x00,0xc8,0x02,0x00,0x00,
    -0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xab,0x02,0x00,0x00,0xa8,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,
    +0x9f,0x02,0x00,0x00,0xa1,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xa4,0x02,0x00,0x00,0xa2,0x02,0x00,0x00,
    +0xc7,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,
    +0xa5,0x02,0x00,0x00,0xd5,0x00,0x00,0x00,0xa4,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0xa6,0x02,0x00,0x00,
    +0xa5,0x02,0x00,0x00,0x41,0x00,0x06,0x00,0x1b,0x01,0x00,0x00,
    +0xa7,0x02,0x00,0x00,0x86,0x02,0x00,0x00,0x15,0x00,0x00,0x00,
    +0x99,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0xa7,0x02,0x00,0x00,
    +0xa6,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xa9,0x02,0x00,0x00,0xc7,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x7c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x7e,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x69,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x69,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xab,0x02,0x00,0x00,0xc1,0x02,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x66,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x68,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x51,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x51,0x02,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xad,0x02,0x00,0x00,
    -0xab,0x02,0x00,0x00,0xd0,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xd9,0x00,0x00,0x00,0xae,0x02,0x00,0x00,0xd6,0x00,0x00,0x00,
    -0xad,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xd0,0x00,0x00,0x00,
    -0xaf,0x02,0x00,0x00,0xae,0x02,0x00,0x00,0x41,0x00,0x06,0x00,
    -0x76,0x01,0x00,0x00,0xb0,0x02,0x00,0x00,0x8f,0x02,0x00,0x00,
    -0x15,0x00,0x00,0x00,0xa2,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0xb0,0x02,0x00,0x00,0xaf,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xb2,0x02,0x00,0x00,0xd0,0x02,0x00,0x00,
    -0x9b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x85,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x87,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x72,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x72,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb4,0x02,0x00,0x00,
    -0xca,0x02,0x00,0x00,0x9b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x6f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x71,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x5a,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x5a,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xb6,0x02,0x00,0x00,0xc8,0x02,0x00,0x00,0x9b,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x57,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x59,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x52,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x52,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xb8,0x02,0x00,0x00,0xc7,0x02,0x00,0x00,
    -0x9b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x4f,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x51,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xb9,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xb9,0x02,0x00,0x00,
    -0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
    +0xbf,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x4e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x50,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x49,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x49,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xaf,0x02,0x00,0x00,0xbe,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x46,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x48,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xb0,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xb0,0x02,0x00,0x00,0xfd,0x00,0x01,0x00,
    +0x38,0x00,0x01,0x00,
     };
    -const uint64_t matmul_id_f16_f32_aligned_fp32_len = 10928;
    +const uint64_t matmul_id_f32_f16_len = 10804;
     
    -unsigned char matmul_id_f16_f32_fp32_data[] = {
    +unsigned char matmul_id_f32_f16_aligned_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
    -0x2d,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00,
    -0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x16,0x00,0x00,0x00,
    -0x11,0x00,0x02,0x00,0x51,0x11,0x00,0x00,0x0b,0x00,0x06,0x00,
    -0x01,0x00,0x00,0x00,0x47,0x4c,0x53,0x4c,0x2e,0x73,0x74,0x64,
    -0x2e,0x34,0x35,0x30,0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00,
    -0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0f,0x00,0x10,0x00,
    -0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e,
    -0x00,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x13,0x00,0x00,0x00,
    -0x1f,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,
    -0x90,0x00,0x00,0x00,0x04,0x01,0x00,0x00,0x10,0x01,0x00,0x00,
    -0x4e,0x01,0x00,0x00,0x59,0x01,0x00,0x00,0x82,0x02,0x00,0x00,
    -0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x0b,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    +0x68,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00,
    +0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x09,0x00,0x00,0x00,
    +0x11,0x00,0x02,0x00,0x16,0x00,0x00,0x00,0x11,0x00,0x02,0x00,
    +0x51,0x11,0x00,0x00,0x0b,0x00,0x06,0x00,0x01,0x00,0x00,0x00,
    +0x47,0x4c,0x53,0x4c,0x2e,0x73,0x74,0x64,0x2e,0x34,0x35,0x30,
    +0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00,0x00,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x0f,0x00,0x10,0x00,0x05,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e,0x00,0x00,0x00,0x00,
    +0x0b,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,
    +0x2e,0x00,0x00,0x00,0x7c,0x00,0x00,0x00,0x91,0x00,0x00,0x00,
    +0x08,0x01,0x00,0x00,0x0f,0x01,0x00,0x00,0x8e,0x01,0x00,0x00,
    +0x96,0x01,0x00,0x00,0xcc,0x02,0x00,0x00,0x10,0x00,0x06,0x00,
    +0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x0b,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x11,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x11,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x11,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x11,0x00,0x00,0x00,
    +0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x11,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x11,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
     0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x11,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x11,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x11,0x00,0x00,0x00,
    -0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x11,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x11,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x11,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x11,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x11,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x11,0x00,0x00,0x00,
    -0x09,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x11,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x11,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x2c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x11,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x30,0x00,0x00,0x00,
    -0x47,0x00,0x03,0x00,0x11,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,
    -0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x2e,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x31,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x09,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x35,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x42,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x44,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x07,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x4e,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x78,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x48,0x00,0x04,0x00,0x79,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x79,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x47,0x00,0x03,0x00,0x79,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x7b,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x7b,0x00,0x00,0x00,
    -0x21,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0xa2,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0xc5,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x05,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xc8,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x0d,0x01,0x00,0x00,0x06,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    -0x48,0x00,0x04,0x00,0x0e,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x0e,0x01,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x47,0x00,0x03,0x00,0x0e,0x01,0x00,0x00,0x02,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x10,0x01,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x10,0x01,0x00,0x00,
    -0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x2a,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x2b,0x01,0x00,0x00,0x0b,0x00,0x00,0x00,
    -0x19,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x56,0x01,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,
    -0x57,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x57,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    -0x57,0x01,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x59,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x59,0x01,0x00,0x00,0x21,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x7f,0x02,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x11,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x11,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x28,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x11,0x00,0x00,0x00,
    +0x0b,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x2c,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x11,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    +0x11,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x19,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    +0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x2e,0x00,0x00,0x00,
    +0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x31,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x35,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x42,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x44,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x4e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x03,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x79,0x00,0x00,0x00,
     0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,
    -0x80,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x80,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x7a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x7a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
     0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    -0x80,0x02,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x82,0x02,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x82,0x02,0x00,0x00,0x21,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00,
    -0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    -0x15,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x17,0x00,0x04,0x00,0x09,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x0a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0x0a,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x0d,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x1e,0x00,0x0f,0x00,0x11,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x7a,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x7c,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x7c,0x00,0x00,0x00,0x21,0x00,0x00,0x00,
    +0x03,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xa3,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0xc6,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0xc9,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x0c,0x01,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x48,0x00,0x04,0x00,
    +0x0d,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
    +0x48,0x00,0x04,0x00,0x0d,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x0d,0x01,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x0d,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x07,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    +0x0d,0x01,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x0f,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x0f,0x01,0x00,0x00,0x21,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x4d,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x4e,0x01,0x00,0x00,0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x93,0x01,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x10,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x94,0x01,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x48,0x00,0x04,0x00,
    +0x94,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x94,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x94,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x94,0x01,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x96,0x01,0x00,0x00,
    +0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x96,0x01,0x00,0x00,0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0xc9,0x02,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0xca,0x02,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0xca,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0xca,0x02,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xcc,0x02,0x00,0x00,
    +0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0xcc,0x02,0x00,0x00,0x21,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00,
    +0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x17,0x00,0x04,0x00,0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x0a,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0x0a,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x0d,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x1e,0x00,0x0f,0x00,
    +0x11,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
     0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
     0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
     0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x12,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    -0x11,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x12,0x00,0x00,0x00,
    -0x13,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x15,0x00,0x04,0x00,
    -0x14,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x15,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x16,0x00,0x00,0x00,
    -0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x40,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x0a,0x00,0x00,0x00,
    -0x1f,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0x0a,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x31,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x36,0x00,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x35,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x35,0x00,0x00,0x00,
    -0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x42,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0x43,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x35,0x00,0x00,0x00,
    -0x42,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x44,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x45,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x43,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x49,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x43,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x54,0x00,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x59,0x00,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x68,0x00,0x00,0x00,
    -0x0a,0x00,0x00,0x00,0x14,0x00,0x02,0x00,0x6b,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x74,0x00,0x00,0x00,
    -0x09,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x78,0x00,0x00,0x00,
    -0x14,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x79,0x00,0x00,0x00,
    -0x78,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x7a,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0x7a,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,
    -0x0b,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x83,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x12,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x11,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x12,0x00,0x00,0x00,0x13,0x00,0x00,0x00,
    +0x09,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x14,0x00,0x00,0x00,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x16,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x19,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x0a,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0x0a,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x31,0x00,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x35,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x36,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x19,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x19,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x42,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x43,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x42,0x00,0x00,0x00,
    +0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x44,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x45,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x43,0x00,0x00,0x00,
    +0x44,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x49,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x43,0x00,0x00,0x00,
    +0x44,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x50,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x55,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x5a,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x69,0x00,0x00,0x00,
    +0x0a,0x00,0x00,0x00,0x14,0x00,0x02,0x00,0x6c,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x75,0x00,0x00,0x00,
    +0x09,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x79,0x00,0x00,0x00,
    +0x14,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x7a,0x00,0x00,0x00,
    +0x79,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x7b,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x7a,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0x7b,0x00,0x00,0x00,0x7c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,
    +0x0b,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x84,0x00,0x00,0x00,
     0x0c,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x15,0x00,0x04,0x00,
    -0x8b,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x17,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,0x8b,0x00,0x00,0x00,
    +0x8c,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x17,0x00,0x04,0x00,0x8d,0x00,0x00,0x00,0x8c,0x00,0x00,0x00,
     0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x8d,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x1c,0x00,0x04,0x00,
    -0x8e,0x00,0x00,0x00,0x8c,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x8f,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x8e,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x8f,0x00,0x00,0x00,
    -0x90,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x97,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x8c,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0x8e,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x1c,0x00,0x04,0x00,
    +0x8f,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x8f,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x90,0x00,0x00,0x00,
    +0x91,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x98,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,
     0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0xa0,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x32,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,0x40,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0xaa,0x00,0x00,0x00,
    +0xa1,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x32,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0x40,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0xab,0x00,0x00,0x00,
     0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    -0xaf,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x14,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,
    +0xb0,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x14,0x00,0x00,0x00,0xb6,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,
     0x84,0x00,0x00,0x00,0x42,0x00,0x00,0x00,0x44,0x00,0x00,0x00,
    -0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,
    +0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,
     0x20,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0xc6,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x35,0x00,0x00,0x00,
    -0xc5,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0xc7,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x31,0x00,0x00,0x00,
    +0xc7,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x35,0x00,0x00,0x00,
    +0xc6,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0xc8,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x31,0x00,0x00,0x00,
     0x44,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0xc8,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    -0xc7,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0xc9,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0xca,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    -0xc9,0x00,0x00,0x00,0x42,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0xc6,0x00,0x00,0x00,0xca,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    -0xc4,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0xc8,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    +0xca,0x00,0x00,0x00,0x42,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    +0xc7,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0xcd,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    -0xcc,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x16,0x00,0x03,0x00,
    -0xcf,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    -0x42,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    -0xd0,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    -0xd1,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,
    -0xd3,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,
    -0x20,0x00,0x04,0x00,0xd4,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    -0xd3,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    -0xd7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0xd8,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x00,0x01,0x00,0x00,
    -0x80,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x01,0x01,0x00,0x00,
    -0x84,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x00,0x01,0x00,0x00,
    -0x1c,0x00,0x04,0x00,0x02,0x01,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0x01,0x01,0x00,0x00,0x20,0x00,0x04,0x00,0x03,0x01,0x00,0x00,
    -0x04,0x00,0x00,0x00,0x02,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0x03,0x01,0x00,0x00,0x04,0x01,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x08,0x01,0x00,0x00,
    -0x80,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
    -0x16,0x00,0x03,0x00,0x0c,0x01,0x00,0x00,0x10,0x00,0x00,0x00,
    -0x1d,0x00,0x03,0x00,0x0d,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,
    -0x1e,0x00,0x03,0x00,0x0e,0x01,0x00,0x00,0x0d,0x01,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x0f,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x0e,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,0x0f,0x01,0x00,0x00,
    -0x10,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x1b,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x1f,0x01,0x00,0x00,0x04,0x00,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0x25,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    -0x1b,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x2a,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x33,0x00,0x06,0x00,
    -0x09,0x00,0x00,0x00,0x2b,0x01,0x00,0x00,0x2a,0x01,0x00,0x00,
    -0x1b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x2c,0x01,0x00,0x00,0x51,0x00,0x00,0x00,
    -0x2b,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x2d,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    -0x2c,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x2e,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x2d,0x01,0x00,0x00,0x4e,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x4a,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
    -0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x4b,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    -0xa2,0x00,0x00,0x00,0x4a,0x01,0x00,0x00,0x1c,0x00,0x04,0x00,
    -0x4c,0x01,0x00,0x00,0xcf,0x00,0x00,0x00,0x4b,0x01,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x4d,0x01,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x4c,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,0x4d,0x01,0x00,0x00,
    -0x4e,0x01,0x00,0x00,0x04,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x52,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
    -0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    -0x56,0x01,0x00,0x00,0xcf,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
    -0x57,0x01,0x00,0x00,0x56,0x01,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x58,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x57,0x01,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0x58,0x01,0x00,0x00,0x59,0x01,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    -0x5f,0x01,0x00,0x00,0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x14,0x00,0x00,0x00,0x67,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x6b,0x01,0x00,0x00,
    -0x04,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x72,0x01,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x7a,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
    -0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x7f,0x01,0x00,0x00,0x51,0x00,0x00,0x00,
    -0x2b,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x80,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    -0x7f,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x81,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x80,0x01,0x00,0x00,0x4e,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x84,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x87,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0xa2,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    +0xc5,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xce,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    +0xcd,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0x16,0x00,0x03,0x00,
    +0xd0,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    +0x42,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    +0xd1,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    +0xd2,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,
    +0xd4,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0xd5,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    +0xd4,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0xd0,0x00,0x00,0x00,
    +0xd8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0xd9,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,
    +0x80,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
    +0x16,0x00,0x03,0x00,0x03,0x01,0x00,0x00,0x10,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x04,0x01,0x00,0x00,
    +0x80,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x05,0x01,0x00,0x00,
    +0x84,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x04,0x01,0x00,0x00,
    +0x1c,0x00,0x04,0x00,0x06,0x01,0x00,0x00,0x03,0x01,0x00,0x00,
    +0x05,0x01,0x00,0x00,0x20,0x00,0x04,0x00,0x07,0x01,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x06,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0x07,0x01,0x00,0x00,0x08,0x01,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x17,0x00,0x04,0x00,0x0a,0x01,0x00,0x00,0xd0,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x18,0x00,0x04,0x00,0x0b,0x01,0x00,0x00,
    +0x0a,0x01,0x00,0x00,0x02,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    +0x0c,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,0x1e,0x00,0x03,0x00,
    +0x0d,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x0e,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x0d,0x01,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x0e,0x01,0x00,0x00,0x0f,0x01,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x11,0x01,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x15,0x01,0x00,0x00,0x04,0x00,0x00,0x00,0x03,0x01,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x26,0x01,0x00,0x00,
    +0x03,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x2e,0x01,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x36,0x01,0x00,0x00,0x05,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x3e,0x01,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x46,0x01,0x00,0x00,0x07,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x4d,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x33,0x00,0x06,0x00,0x09,0x00,0x00,0x00,0x4e,0x01,0x00,0x00,
    +0x4d,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x4f,0x01,0x00,0x00,
    +0x51,0x00,0x00,0x00,0x4e,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x50,0x01,0x00,0x00,
    +0x84,0x00,0x00,0x00,0x4f,0x01,0x00,0x00,0x4f,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x51,0x01,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x50,0x01,0x00,0x00,0x4e,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x6c,0x01,0x00,0x00,
    +0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    +0x75,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x14,0x00,0x00,0x00,0x79,0x01,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x85,0x01,0x00,0x00,
    +0x80,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x8a,0x01,0x00,0x00,
    +0x80,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x8b,0x01,0x00,0x00,
    +0x84,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0x8a,0x01,0x00,0x00,
    +0x1c,0x00,0x04,0x00,0x8c,0x01,0x00,0x00,0x03,0x01,0x00,0x00,
    +0x8b,0x01,0x00,0x00,0x20,0x00,0x04,0x00,0x8d,0x01,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x8c,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0x8d,0x01,0x00,0x00,0x8e,0x01,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x17,0x00,0x04,0x00,0x91,0x01,0x00,0x00,0x03,0x01,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x18,0x00,0x04,0x00,0x92,0x01,0x00,0x00,
    +0x91,0x01,0x00,0x00,0x02,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    +0x93,0x01,0x00,0x00,0x92,0x01,0x00,0x00,0x1e,0x00,0x03,0x00,
    +0x94,0x01,0x00,0x00,0x93,0x01,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x95,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x94,0x01,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x95,0x01,0x00,0x00,0x96,0x01,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x98,0x01,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x03,0x01,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xc6,0x01,0x00,0x00,0x51,0x00,0x00,0x00,
    +0x4e,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xc7,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    +0xc6,0x01,0x00,0x00,0x4f,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xc8,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
    +0xc7,0x01,0x00,0x00,0x4e,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xcb,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xce,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xe9,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
     0x42,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,
    -0xa3,0x01,0x00,0x00,0xcf,0x00,0x00,0x00,0xa2,0x01,0x00,0x00,
    -0x20,0x00,0x04,0x00,0xa4,0x01,0x00,0x00,0x07,0x00,0x00,0x00,
    -0xa3,0x01,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0xb4,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    +0xea,0x01,0x00,0x00,0x03,0x01,0x00,0x00,0xe9,0x01,0x00,0x00,
    +0x20,0x00,0x04,0x00,0xeb,0x01,0x00,0x00,0x07,0x00,0x00,0x00,
    +0xea,0x01,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0xfb,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x01,0x02,0x00,0x00,
    +0x07,0x00,0x00,0x00,0x03,0x01,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x17,0x02,0x00,0x00,0x84,0x00,0x00,0x00,
    +0xcc,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,
    +0x18,0x02,0x00,0x00,0x03,0x01,0x00,0x00,0x17,0x02,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x19,0x02,0x00,0x00,0x07,0x00,0x00,0x00,
    +0x18,0x02,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x22,0x02,0x00,0x00,0x86,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,
    +0xcc,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x2a,0x02,0x00,0x00,0x80,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
     0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0xcf,0x01,0x00,0x00,0x84,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,
    -0xc8,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0xd0,0x01,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xcf,0x01,0x00,0x00,0x20,0x00,0x04,0x00,
    -0xd1,0x01,0x00,0x00,0x07,0x00,0x00,0x00,0xd0,0x01,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xda,0x01,0x00,0x00,
    -0x86,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xe2,0x01,0x00,0x00,
    -0x80,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x11,0x02,0x00,0x00,
    -0x84,0x00,0x00,0x00,0x42,0x00,0x00,0x00,0x44,0x00,0x00,0x00,
    -0x1d,0x00,0x03,0x00,0x7f,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0x1e,0x00,0x03,0x00,0x80,0x02,0x00,0x00,0x7f,0x02,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x81,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x80,0x02,0x00,0x00,0x3b,0x00,0x04,0x00,0x81,0x02,0x00,0x00,
    -0x82,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x14,0x00,0x00,0x00,0x86,0x02,0x00,0x00,0x08,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x8d,0x02,0x00,0x00,
    -0x05,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0x9a,0x02,0x00,0x00,0x84,0x00,0x00,0x00,0x42,0x00,0x00,0x00,
    -0x44,0x00,0x00,0x00,0x36,0x00,0x05,0x00,0x02,0x00,0x00,0x00,
    -0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0xd4,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0xa4,0x01,0x00,0x00,0xa5,0x01,0x00,0x00,
    -0x07,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xd1,0x01,0x00,0x00,
    -0xd2,0x01,0x00,0x00,0x07,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,
    -0xac,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0xfb,0x00,0x03,0x00,
    -0x20,0x00,0x00,0x00,0xad,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xad,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,
    -0x0e,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,
    -0x0e,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
    -0x17,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0x15,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    -0x17,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x1a,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    -0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,
    -0x1a,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x1d,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,
    -0x19,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,
    -0x21,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x21,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x24,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x1d,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,0x2b,0x00,0x00,0x00,
    -0x1f,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x2c,0x00,0x00,0x00,0x2b,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,0x2f,0x00,0x00,0x00,
    -0x2e,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x2f,0x00,0x00,0x00,
    -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x32,0x00,0x00,0x00,
    -0x30,0x00,0x00,0x00,0x31,0x00,0x00,0x00,0x89,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x37,0x00,0x00,0x00,0x32,0x00,0x00,0x00,
    -0x36,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x3b,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    -0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0x30,0x00,0x00,0x00,0x31,0x00,0x00,0x00,0x89,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x46,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0x45,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x4a,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,0x49,0x00,0x00,0x00,
    -0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x50,0x00,0x00,0x00,
    -0x30,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x30,0x00,0x00,0x00,
    -0x54,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x5a,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x59,0x00,0x00,0x00,
    -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,
    -0x30,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x62,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x62,0x00,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xb7,0x02,0x00,0x00,
    -0x20,0x00,0x00,0x00,0xad,0x02,0x00,0x00,0xf5,0x02,0x00,0x00,
    -0x65,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xb6,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0xad,0x02,0x00,0x00,
    -0x9f,0x00,0x00,0x00,0x65,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x16,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0x13,0x00,0x00,0x00,
    -0x68,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x6a,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0xb6,0x02,0x00,0x00,
    -0x6a,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x64,0x00,0x00,0x00,
    -0x65,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x6c,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x64,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x63,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x6e,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x6e,0x00,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xf5,0x02,0x00,0x00,
    -0xb7,0x02,0x00,0x00,0x63,0x00,0x00,0x00,0x2c,0x03,0x00,0x00,
    -0x71,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xf3,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
    -0x9d,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x16,0x00,0x00,0x00,0x75,0x00,0x00,0x00,0x13,0x00,0x00,0x00,
    -0x74,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x76,0x00,0x00,0x00,0x75,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0x77,0x00,0x00,0x00,0xf3,0x02,0x00,0x00,
    -0x76,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x70,0x00,0x00,0x00,
    -0x71,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x77,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x70,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x6f,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x16,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x13,0x00,0x00,0x00,
    -0x7d,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x7f,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0xb6,0x02,0x00,0x00,
    -0x7f,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x82,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0xf3,0x02,0x00,0x00,
    -0x41,0x00,0x06,0x00,0x83,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    -0x7b,0x00,0x00,0x00,0x15,0x00,0x00,0x00,0x82,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x85,0x00,0x00,0x00,
    -0x84,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x85,0x00,0x00,0x00,0xaa,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0x88,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x0f,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0x8a,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x88,0x00,0x00,0x00,
    -0x89,0x00,0x00,0x00,0x8a,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x89,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x8b,0x00,0x00,0x00,
    -0x93,0x00,0x00,0x00,0xf3,0x02,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x8b,0x00,0x00,0x00,0x95,0x00,0x00,0x00,0xb6,0x02,0x00,0x00,
    -0x50,0x00,0x05,0x00,0x8c,0x00,0x00,0x00,0x96,0x00,0x00,0x00,
    -0x93,0x00,0x00,0x00,0x95,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x97,0x00,0x00,0x00,0x98,0x00,0x00,0x00,0x90,0x00,0x00,0x00,
    -0xf5,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0x98,0x00,0x00,0x00,
    -0x96,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x9b,0x00,0x00,0x00,0xf5,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x8a,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x8a,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x2c,0x03,0x00,0x00,0xf5,0x02,0x00,0x00,0x6f,0x00,0x00,0x00,
    -0x9b,0x00,0x00,0x00,0x89,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x71,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x71,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,
    -0xf3,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x6e,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x70,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x65,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x65,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x9f,0x00,0x00,0x00,0xb6,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x62,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x64,0x00,0x00,0x00,0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0x2c,0x00,0x00,0x00,
    -0xa2,0x00,0x00,0x00,0xae,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0xa5,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0xb7,0x02,0x00,0x00,
    -0xf7,0x00,0x03,0x00,0xa7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xa5,0x00,0x00,0x00,0xa6,0x00,0x00,0x00,
    -0xa7,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xa6,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xac,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xa7,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
    -0xab,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0xaa,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xac,0x00,0x00,0x00,
    -0xab,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
    -0xb0,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xb1,0x00,0x00,0x00,
    -0xb0,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xb2,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0xb1,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,
    -0x24,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x16,0x00,0x00,0x00,0xb6,0x00,0x00,0x00,0x13,0x00,0x00,0x00,
    -0xb5,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0xb7,0x00,0x00,0x00,0xb6,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,
    -0xb7,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xb9,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,
    -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,
    -0xb9,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xbe,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xbe,0x00,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xb8,0x02,0x00,0x00,
    -0x20,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,
    -0xbf,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0xce,0x00,0x00,0x00,0xb8,0x02,0x00,0x00,0xcd,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xc0,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xce,0x00,0x00,0x00,
    -0xbf,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xbf,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,
    -0xd9,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0xb8,0x02,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0xd9,0x00,0x00,0x00,0xd7,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,
    -0xb8,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xbe,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xc0,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xdd,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xdd,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xd2,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,
    -0x89,0x01,0x00,0x00,0xe0,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xce,0x02,0x00,0x00,0xbb,0x00,0x00,0x00,
    -0xc0,0x00,0x00,0x00,0x86,0x01,0x00,0x00,0xe0,0x00,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xb9,0x02,0x00,0x00,
    -0x20,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x34,0x02,0x00,0x00,
    -0xe0,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0xe4,0x00,0x00,0x00,0xb9,0x02,0x00,0x00,0xac,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xdf,0x00,0x00,0x00,0xe0,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xe4,0x00,0x00,0x00,
    -0xde,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xde,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xe6,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xe6,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xca,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    -0xde,0x00,0x00,0x00,0x30,0x01,0x00,0x00,0xe9,0x00,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xec,0x00,0x00,0x00,
    -0xca,0x02,0x00,0x00,0x19,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xe8,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xec,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,
    -0xe8,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xe7,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,
    -0xb4,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xf2,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,
    -0xca,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0xf5,0x00,0x00,0x00,0xf2,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    -0xf7,0x00,0x03,0x00,0xf7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xf5,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,
    -0xf7,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xf6,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,
    -0xb9,0x02,0x00,0x00,0x50,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,
    -0xac,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xf7,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xf7,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x6b,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,
    -0xe7,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,
    -0xf7,0x00,0x03,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xfd,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,
    -0x21,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xfe,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x07,0x01,0x00,0x00,
    -0x55,0x00,0x00,0x00,0xca,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x09,0x01,0x00,0x00,0x07,0x01,0x00,0x00,
    -0x08,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x0b,0x01,0x00,0x00,0x09,0x01,0x00,0x00,0x50,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x17,0x01,0x00,0x00,
    -0x07,0x01,0x00,0x00,0xb7,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x18,0x01,0x00,0x00,0xce,0x02,0x00,0x00,
    -0x17,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x1a,0x01,0x00,0x00,0x18,0x01,0x00,0x00,0x50,0x00,0x00,0x00,
    -0x41,0x00,0x06,0x00,0x1b,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,
    -0x10,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x1a,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x0c,0x01,0x00,0x00,0x1d,0x01,0x00,0x00,
    -0x1c,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    -0x1e,0x01,0x00,0x00,0x1d,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x1f,0x01,0x00,0x00,0x20,0x01,0x00,0x00,0x04,0x01,0x00,0x00,
    -0x0b,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x20,0x01,0x00,0x00,
    -0x1e,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xff,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x21,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x24,0x01,0x00,0x00,0x55,0x00,0x00,0x00,
    -0xca,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x26,0x01,0x00,0x00,0x24,0x01,0x00,0x00,0x25,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x28,0x01,0x00,0x00,
    -0x26,0x01,0x00,0x00,0x50,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x1f,0x01,0x00,0x00,0x29,0x01,0x00,0x00,0x04,0x01,0x00,0x00,
    -0x28,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x29,0x01,0x00,0x00,
    -0xd7,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xff,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xff,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xe9,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xe9,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x30,0x01,0x00,0x00,
    -0xca,0x02,0x00,0x00,0x2e,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xe6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xe8,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x32,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x32,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xcb,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,
    -0x83,0x01,0x00,0x00,0x35,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0x38,0x01,0x00,0x00,0xcb,0x02,0x00,0x00,
    -0xa2,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x34,0x01,0x00,0x00,
    -0x35,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x38,0x01,0x00,0x00,0x33,0x01,0x00,0x00,0x34,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x33,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x3d,0x01,0x00,0x00,0xa3,0x00,0x00,0x00,
    -0x5f,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x3f,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,0xcb,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x42,0x01,0x00,0x00,
    -0x3f,0x01,0x00,0x00,0xb7,0x02,0x00,0x00,0xf7,0x00,0x03,0x00,
    -0x44,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x42,0x01,0x00,0x00,0x43,0x01,0x00,0x00,0x76,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x43,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x97,0x00,0x00,0x00,0x48,0x01,0x00,0x00,0x90,0x00,0x00,0x00,
    -0x3f,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,
    -0x49,0x01,0x00,0x00,0x48,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x51,0x01,0x00,0x00,0x5f,0x00,0x00,0x00,
    -0xcb,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x53,0x01,0x00,0x00,0x51,0x01,0x00,0x00,0x52,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x55,0x01,0x00,0x00,
    -0x53,0x01,0x00,0x00,0x5a,0x00,0x00,0x00,0x51,0x00,0x05,0x00,
    -0x8b,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,0x49,0x01,0x00,0x00,
    +0x59,0x02,0x00,0x00,0x84,0x00,0x00,0x00,0x42,0x00,0x00,0x00,
    +0x44,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0xc9,0x02,0x00,0x00,
    +0xd0,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xca,0x02,0x00,0x00,
    +0xc9,0x02,0x00,0x00,0x20,0x00,0x04,0x00,0xcb,0x02,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0xca,0x02,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0xcb,0x02,0x00,0x00,0xcc,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0xd0,0x02,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    +0xd7,0x02,0x00,0x00,0x05,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xe4,0x02,0x00,0x00,0x84,0x00,0x00,0x00,
    +0x42,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x36,0x00,0x05,0x00,
    +0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x03,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0xd5,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,
    +0x07,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xeb,0x01,0x00,0x00,
    +0xec,0x01,0x00,0x00,0x07,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0x19,0x02,0x00,0x00,0x1a,0x02,0x00,0x00,0x07,0x00,0x00,0x00,
    +0xf7,0x00,0x03,0x00,0xf6,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfb,0x00,0x03,0x00,0x20,0x00,0x00,0x00,0xf7,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xf7,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x0d,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x0f,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x16,0x00,0x00,0x00,0x17,0x00,0x00,0x00,0x13,0x00,0x00,0x00,
    +0x15,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x17,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    +0x19,0x00,0x00,0x00,0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x1c,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1d,0x00,0x00,0x00,
    +0x1c,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x0d,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x22,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x89,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    +0x1d,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,
    +0x2b,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x2c,0x00,0x00,0x00,
    +0x2b,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,
    +0x2f,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x30,0x00,0x00,0x00,
    +0x2f,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x32,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x31,0x00,0x00,0x00,
    +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x37,0x00,0x00,0x00,
    +0x32,0x00,0x00,0x00,0x36,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,0x32,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x31,0x00,0x00,0x00,
    +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x46,0x00,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0x45,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x4a,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x49,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x51,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x50,0x00,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x56,0x00,0x00,0x00,
    +0x30,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x89,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x5b,0x00,0x00,0x00,0x30,0x00,0x00,0x00,
    +0x5a,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x60,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x63,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x63,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x01,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0xf7,0x02,0x00,0x00,
    +0x39,0x03,0x00,0x00,0x66,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    +0xf7,0x02,0x00,0x00,0xa0,0x00,0x00,0x00,0x66,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0x6a,0x00,0x00,0x00,
    +0x13,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,0x6a,0x00,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6c,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    +0x00,0x03,0x00,0x00,0x6b,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x65,0x00,0x00,0x00,0x66,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x6d,0x00,0x00,0x00,0x64,0x00,0x00,0x00,
    +0x65,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x64,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x6f,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x6f,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x39,0x03,0x00,0x00,0x01,0x03,0x00,0x00,0x64,0x00,0x00,0x00,
    +0x67,0x03,0x00,0x00,0x72,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x37,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x64,0x00,0x00,0x00,0x9e,0x00,0x00,0x00,0x72,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0x76,0x00,0x00,0x00,
    +0x13,0x00,0x00,0x00,0x75,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x77,0x00,0x00,0x00,0x76,0x00,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6c,0x00,0x00,0x00,0x78,0x00,0x00,0x00,
    +0x37,0x03,0x00,0x00,0x77,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x71,0x00,0x00,0x00,0x72,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x78,0x00,0x00,0x00,0x70,0x00,0x00,0x00,
    +0x71,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x70,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,
    +0x13,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x81,0x00,0x00,0x00,
    +0x00,0x03,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x83,0x00,0x00,0x00,0x81,0x00,0x00,0x00,
    +0x37,0x03,0x00,0x00,0x41,0x00,0x06,0x00,0x84,0x00,0x00,0x00,
    +0x85,0x00,0x00,0x00,0x7c,0x00,0x00,0x00,0x15,0x00,0x00,0x00,
    +0x83,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x85,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x87,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    +0xaa,0x00,0x05,0x00,0x6c,0x00,0x00,0x00,0x89,0x00,0x00,0x00,
    +0x87,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,
    +0x8b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x89,0x00,0x00,0x00,0x8a,0x00,0x00,0x00,0x8b,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x8a,0x00,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x8c,0x00,0x00,0x00,0x94,0x00,0x00,0x00,0x37,0x03,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,0x96,0x00,0x00,0x00,
    +0x00,0x03,0x00,0x00,0x50,0x00,0x05,0x00,0x8d,0x00,0x00,0x00,
    +0x97,0x00,0x00,0x00,0x94,0x00,0x00,0x00,0x96,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x98,0x00,0x00,0x00,0x99,0x00,0x00,0x00,
    +0x91,0x00,0x00,0x00,0x39,0x03,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x99,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x9c,0x00,0x00,0x00,0x39,0x03,0x00,0x00,
    +0x9b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x8b,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x8b,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x67,0x03,0x00,0x00,0x39,0x03,0x00,0x00,
    +0x70,0x00,0x00,0x00,0x9c,0x00,0x00,0x00,0x8a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x72,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x72,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x9e,0x00,0x00,0x00,0x37,0x03,0x00,0x00,0x9b,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x6f,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x71,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x66,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x66,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0x00,0x03,0x00,0x00,
    +0x9b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x63,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x65,0x00,0x00,0x00,0xe0,0x00,0x04,0x00,
    +0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xa1,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,
    +0x2c,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0xae,0x00,0x05,0x00,
    +0x6c,0x00,0x00,0x00,0xa6,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,
    +0x01,0x03,0x00,0x00,0xf7,0x00,0x03,0x00,0xa8,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xa6,0x00,0x00,0x00,
    +0xa7,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xa7,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xf6,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xa8,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x16,0x00,0x00,0x00,0xac,0x00,0x00,0x00,0x13,0x00,0x00,0x00,
    +0xab,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0xad,0x00,0x00,0x00,0xac,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x16,0x00,0x00,0x00,0xb1,0x00,0x00,0x00,0x13,0x00,0x00,0x00,
    +0xb0,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0xb2,0x00,0x00,0x00,0xb1,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,
    +0xb2,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xb5,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,
    +0x13,0x00,0x00,0x00,0xb6,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,
    +0xb5,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xba,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,
    +0xb9,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xbc,0x00,0x00,0x00,0xba,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xbf,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xbf,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x02,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,
    +0xdc,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6c,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x02,0x03,0x00,0x00,
    +0xce,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xc1,0x00,0x00,0x00,
    +0xc0,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xcf,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0xc1,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xc0,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xd9,0x00,0x00,0x00,0xda,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,
    +0x02,0x03,0x00,0x00,0x3e,0x00,0x03,0x00,0xda,0x00,0x00,0x00,
    +0xd8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xdc,0x00,0x00,0x00,0x02,0x03,0x00,0x00,0x9b,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xbf,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xc1,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xde,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xde,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x1c,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    +0xc1,0x00,0x00,0x00,0xd0,0x01,0x00,0x00,0xe1,0x00,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x18,0x03,0x00,0x00,
    +0xbc,0x00,0x00,0x00,0xc1,0x00,0x00,0x00,0xcd,0x01,0x00,0x00,
    +0xe1,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x03,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0xc1,0x00,0x00,0x00,
    +0x7e,0x02,0x00,0x00,0xe1,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6c,0x00,0x00,0x00,0xe5,0x00,0x00,0x00,0x03,0x03,0x00,0x00,
    +0xad,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xe0,0x00,0x00,0x00,
    +0xe1,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xe5,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0xe0,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xdf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xe7,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xe7,0x00,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x14,0x03,0x00,0x00,
    +0x20,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0x53,0x01,0x00,0x00,
    +0xe8,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0x6c,0x00,0x00,0x00,
    +0xed,0x00,0x00,0x00,0x14,0x03,0x00,0x00,0x19,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xe9,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xed,0x00,0x00,0x00,
    +0xe8,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xe8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xf2,0x00,0x00,0x00,0x56,0x00,0x00,0x00,0x14,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,
    +0xf2,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,
    +0x4f,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xf7,0x00,0x00,0x00,0x18,0x03,0x00,0x00,0xf6,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf9,0x00,0x00,0x00,
    +0xf7,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xf2,0x00,0x00,0x00,
    +0xfe,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x01,0x01,0x00,0x00,0x51,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x02,0x01,0x00,0x00,
    +0xff,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x11,0x01,0x00,0x00,0x12,0x01,0x00,0x00,0x0f,0x01,0x00,0x00,
    +0x15,0x00,0x00,0x00,0xf9,0x00,0x00,0x00,0x15,0x00,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xd0,0x00,0x00,0x00,
    +0x13,0x01,0x00,0x00,0x12,0x01,0x00,0x00,0x73,0x00,0x04,0x00,
    +0x03,0x01,0x00,0x00,0x14,0x01,0x00,0x00,0x13,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x15,0x01,0x00,0x00,0x16,0x01,0x00,0x00,
    +0x08,0x01,0x00,0x00,0x02,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x16,0x01,0x00,0x00,0x14,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x18,0x01,0x00,0x00,0x02,0x01,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0x11,0x01,0x00,0x00,
    +0x1a,0x01,0x00,0x00,0x0f,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    +0xf9,0x00,0x00,0x00,0x15,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xd0,0x00,0x00,0x00,0x1b,0x01,0x00,0x00,
    +0x1a,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x03,0x01,0x00,0x00,
    +0x1c,0x01,0x00,0x00,0x1b,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x15,0x01,0x00,0x00,0x1d,0x01,0x00,0x00,0x08,0x01,0x00,0x00,
    +0x18,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x1d,0x01,0x00,0x00,
    +0x1c,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x1f,0x01,0x00,0x00,0x02,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x11,0x01,0x00,0x00,0x21,0x01,0x00,0x00,
    +0x0f,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0xf9,0x00,0x00,0x00,
    +0x15,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xd0,0x00,0x00,0x00,0x22,0x01,0x00,0x00,0x21,0x01,0x00,0x00,
    +0x73,0x00,0x04,0x00,0x03,0x01,0x00,0x00,0x23,0x01,0x00,0x00,
    +0x22,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x15,0x01,0x00,0x00,
    +0x24,0x01,0x00,0x00,0x08,0x01,0x00,0x00,0x1f,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x24,0x01,0x00,0x00,0x23,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x27,0x01,0x00,0x00,
    +0x02,0x01,0x00,0x00,0x26,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x11,0x01,0x00,0x00,0x29,0x01,0x00,0x00,0x0f,0x01,0x00,0x00,
    +0x15,0x00,0x00,0x00,0xf9,0x00,0x00,0x00,0x15,0x00,0x00,0x00,
    +0x26,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xd0,0x00,0x00,0x00,
    +0x2a,0x01,0x00,0x00,0x29,0x01,0x00,0x00,0x73,0x00,0x04,0x00,
    +0x03,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,0x2a,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x15,0x01,0x00,0x00,0x2c,0x01,0x00,0x00,
    +0x08,0x01,0x00,0x00,0x27,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x2c,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x2f,0x01,0x00,0x00,0x02,0x01,0x00,0x00,
    +0x2e,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x11,0x01,0x00,0x00,
    +0x31,0x01,0x00,0x00,0x0f,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    +0xf9,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xd0,0x00,0x00,0x00,0x32,0x01,0x00,0x00,
    +0x31,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x03,0x01,0x00,0x00,
    +0x33,0x01,0x00,0x00,0x32,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x15,0x01,0x00,0x00,0x34,0x01,0x00,0x00,0x08,0x01,0x00,0x00,
    +0x2f,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x34,0x01,0x00,0x00,
    +0x33,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x37,0x01,0x00,0x00,0x02,0x01,0x00,0x00,0x36,0x01,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x11,0x01,0x00,0x00,0x39,0x01,0x00,0x00,
    +0x0f,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0xf9,0x00,0x00,0x00,
    +0x9b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xd0,0x00,0x00,0x00,0x3a,0x01,0x00,0x00,0x39,0x01,0x00,0x00,
    +0x73,0x00,0x04,0x00,0x03,0x01,0x00,0x00,0x3b,0x01,0x00,0x00,
    +0x3a,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x15,0x01,0x00,0x00,
    +0x3c,0x01,0x00,0x00,0x08,0x01,0x00,0x00,0x37,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x3c,0x01,0x00,0x00,0x3b,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3f,0x01,0x00,0x00,
    +0x02,0x01,0x00,0x00,0x3e,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x11,0x01,0x00,0x00,0x41,0x01,0x00,0x00,0x0f,0x01,0x00,0x00,
    +0x15,0x00,0x00,0x00,0xf9,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xd0,0x00,0x00,0x00,
    +0x42,0x01,0x00,0x00,0x41,0x01,0x00,0x00,0x73,0x00,0x04,0x00,
    +0x03,0x01,0x00,0x00,0x43,0x01,0x00,0x00,0x42,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x15,0x01,0x00,0x00,0x44,0x01,0x00,0x00,
    +0x08,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x44,0x01,0x00,0x00,0x43,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x47,0x01,0x00,0x00,0x02,0x01,0x00,0x00,
    +0x46,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x11,0x01,0x00,0x00,
    +0x49,0x01,0x00,0x00,0x0f,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    +0xf9,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,0x26,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xd0,0x00,0x00,0x00,0x4a,0x01,0x00,0x00,
    +0x49,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x03,0x01,0x00,0x00,
    +0x4b,0x01,0x00,0x00,0x4a,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x15,0x01,0x00,0x00,0x4c,0x01,0x00,0x00,0x08,0x01,0x00,0x00,
    +0x47,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x4c,0x01,0x00,0x00,
    +0x4b,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x53,0x01,0x00,0x00,0x14,0x03,0x00,0x00,0x51,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xe7,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xe9,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x55,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x55,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x15,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    +0xe9,0x00,0x00,0x00,0xca,0x01,0x00,0x00,0x56,0x01,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6c,0x00,0x00,0x00,0x5b,0x01,0x00,0x00,
    +0x15,0x03,0x00,0x00,0xa3,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x57,0x01,0x00,0x00,0x56,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x5b,0x01,0x00,0x00,0x56,0x01,0x00,0x00,
    +0x57,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x56,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x61,0x01,0x00,0x00,
    +0xa4,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x63,0x01,0x00,0x00,0x61,0x01,0x00,0x00,
    +0x15,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x98,0x00,0x00,0x00,
    +0x64,0x01,0x00,0x00,0x91,0x00,0x00,0x00,0x63,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x8d,0x00,0x00,0x00,0x65,0x01,0x00,0x00,
    +0x64,0x01,0x00,0x00,0x51,0x00,0x05,0x00,0x8c,0x00,0x00,0x00,
    +0x6a,0x01,0x00,0x00,0x65,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x6b,0x01,0x00,0x00,
    +0x6a,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
    +0x6d,0x01,0x00,0x00,0x13,0x00,0x00,0x00,0x6c,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x6e,0x01,0x00,0x00,
    +0x6d,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x6f,0x01,0x00,0x00,0x6b,0x01,0x00,0x00,0x6e,0x01,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x70,0x01,0x00,0x00,
    +0x6f,0x01,0x00,0x00,0x4f,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x71,0x01,0x00,0x00,0x1c,0x03,0x00,0x00,
    +0x70,0x01,0x00,0x00,0x51,0x00,0x05,0x00,0x8c,0x00,0x00,0x00,
    +0x73,0x01,0x00,0x00,0x65,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x74,0x01,0x00,0x00,
    +0x73,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
    +0x76,0x01,0x00,0x00,0x13,0x00,0x00,0x00,0x75,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x77,0x01,0x00,0x00,
    +0x76,0x01,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x78,0x01,0x00,0x00,0x74,0x01,0x00,0x00,0x77,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0x7a,0x01,0x00,0x00,
    +0x13,0x00,0x00,0x00,0x79,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x7b,0x01,0x00,0x00,0x7a,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7c,0x01,0x00,0x00,
    +0x78,0x01,0x00,0x00,0x7b,0x01,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x7d,0x01,0x00,0x00,0x7c,0x01,0x00,0x00,
    +0x4f,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x7e,0x01,0x00,0x00,0x71,0x01,0x00,0x00,0x7d,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x80,0x01,0x00,0x00,
    +0x7e,0x01,0x00,0x00,0x5b,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x84,0x01,0x00,0x00,0x60,0x00,0x00,0x00,
    +0x15,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x86,0x01,0x00,0x00,0x84,0x01,0x00,0x00,0x85,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x88,0x01,0x00,0x00,
    +0x5b,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x89,0x01,0x00,0x00,0x86,0x01,0x00,0x00,
    +0x88,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x98,0x01,0x00,0x00,
    +0x99,0x01,0x00,0x00,0x96,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    +0x80,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x03,0x01,0x00,0x00,0x9a,0x01,0x00,0x00,
    +0x99,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x15,0x01,0x00,0x00,
    +0x9b,0x01,0x00,0x00,0x8e,0x01,0x00,0x00,0x89,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x9b,0x01,0x00,0x00,0x9a,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9d,0x01,0x00,0x00,
    +0x89,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x98,0x01,0x00,0x00,0x9f,0x01,0x00,0x00,0x96,0x01,0x00,0x00,
    +0x15,0x00,0x00,0x00,0x80,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x03,0x01,0x00,0x00,
    +0xa0,0x01,0x00,0x00,0x9f,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x15,0x01,0x00,0x00,0xa1,0x01,0x00,0x00,0x8e,0x01,0x00,0x00,
    +0x9d,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xa1,0x01,0x00,0x00,
    +0xa0,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xa3,0x01,0x00,0x00,0x89,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x98,0x01,0x00,0x00,0xa5,0x01,0x00,0x00,
    +0x96,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x80,0x01,0x00,0x00,
    +0x15,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x03,0x01,0x00,0x00,0xa6,0x01,0x00,0x00,0xa5,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x15,0x01,0x00,0x00,0xa7,0x01,0x00,0x00,
    +0x8e,0x01,0x00,0x00,0xa3,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0xa7,0x01,0x00,0x00,0xa6,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xa9,0x01,0x00,0x00,0x89,0x01,0x00,0x00,
    +0x26,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x98,0x01,0x00,0x00,
    +0xab,0x01,0x00,0x00,0x96,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    +0x80,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x26,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x03,0x01,0x00,0x00,0xac,0x01,0x00,0x00,
    +0xab,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x15,0x01,0x00,0x00,
    +0xad,0x01,0x00,0x00,0x8e,0x01,0x00,0x00,0xa9,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0xad,0x01,0x00,0x00,0xac,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xaf,0x01,0x00,0x00,
    +0x89,0x01,0x00,0x00,0x2e,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x98,0x01,0x00,0x00,0xb1,0x01,0x00,0x00,0x96,0x01,0x00,0x00,
    +0x15,0x00,0x00,0x00,0x80,0x01,0x00,0x00,0x9b,0x00,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x03,0x01,0x00,0x00,
    +0xb2,0x01,0x00,0x00,0xb1,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x15,0x01,0x00,0x00,0xb3,0x01,0x00,0x00,0x8e,0x01,0x00,0x00,
    +0xaf,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xb3,0x01,0x00,0x00,
    +0xb2,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xb5,0x01,0x00,0x00,0x89,0x01,0x00,0x00,0x36,0x01,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x98,0x01,0x00,0x00,0xb7,0x01,0x00,0x00,
    +0x96,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x80,0x01,0x00,0x00,
    +0x9b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x03,0x01,0x00,0x00,0xb8,0x01,0x00,0x00,0xb7,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x15,0x01,0x00,0x00,0xb9,0x01,0x00,0x00,
    +0x8e,0x01,0x00,0x00,0xb5,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0xb9,0x01,0x00,0x00,0xb8,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xbb,0x01,0x00,0x00,0x89,0x01,0x00,0x00,
    +0x3e,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x98,0x01,0x00,0x00,
    +0xbd,0x01,0x00,0x00,0x96,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    +0x80,0x01,0x00,0x00,0x9b,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x03,0x01,0x00,0x00,0xbe,0x01,0x00,0x00,
    +0xbd,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x15,0x01,0x00,0x00,
    +0xbf,0x01,0x00,0x00,0x8e,0x01,0x00,0x00,0xbb,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0xbf,0x01,0x00,0x00,0xbe,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc1,0x01,0x00,0x00,
    +0x89,0x01,0x00,0x00,0x46,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x98,0x01,0x00,0x00,0xc3,0x01,0x00,0x00,0x96,0x01,0x00,0x00,
    +0x15,0x00,0x00,0x00,0x80,0x01,0x00,0x00,0x9b,0x00,0x00,0x00,
    +0x26,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x03,0x01,0x00,0x00,
    +0xc4,0x01,0x00,0x00,0xc3,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x15,0x01,0x00,0x00,0xc5,0x01,0x00,0x00,0x8e,0x01,0x00,0x00,
    +0xc1,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xc5,0x01,0x00,0x00,
    +0xc4,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xca,0x01,0x00,0x00,0x15,0x03,0x00,0x00,0xc8,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x55,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x57,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0xa1,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xcd,0x01,0x00,0x00,0x18,0x03,0x00,0x00,
    +0xcb,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xd0,0x01,0x00,0x00,0x1c,0x03,0x00,0x00,0xce,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xd2,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xd2,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x1e,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0x57,0x01,0x00,0x00,
    +0x7c,0x02,0x00,0x00,0xd5,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6c,0x00,0x00,0x00,0xd8,0x01,0x00,0x00,0x1e,0x03,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xd4,0x01,0x00,0x00,
    +0xd5,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xd8,0x01,0x00,0x00,0xd3,0x01,0x00,0x00,0xd4,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xd3,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xda,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xda,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x22,0x03,0x00,0x00,
    +0x20,0x00,0x00,0x00,0xd3,0x01,0x00,0x00,0x06,0x02,0x00,0x00,
    +0xdd,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0x6c,0x00,0x00,0x00,
    +0xe0,0x01,0x00,0x00,0x22,0x03,0x00,0x00,0x42,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xdc,0x01,0x00,0x00,0xdd,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xe0,0x01,0x00,0x00,
    +0xdb,0x01,0x00,0x00,0xdc,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xdb,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xe2,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xe2,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x34,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    +0xdb,0x01,0x00,0x00,0x04,0x02,0x00,0x00,0xe3,0x01,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6c,0x00,0x00,0x00,0xe8,0x01,0x00,0x00,
    +0x34,0x03,0x00,0x00,0x44,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xe4,0x01,0x00,0x00,0xe3,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xe8,0x01,0x00,0x00,0xe3,0x01,0x00,0x00,
    +0xe4,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xe3,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xee,0x01,0x00,0x00,
    +0x22,0x03,0x00,0x00,0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xf0,0x01,0x00,0x00,0xee,0x01,0x00,0x00,
    +0x34,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xf2,0x01,0x00,0x00,0x37,0x00,0x00,0x00,0x35,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf4,0x01,0x00,0x00,
    +0x22,0x03,0x00,0x00,0x43,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xf5,0x01,0x00,0x00,0xf2,0x01,0x00,0x00,
    +0xf4,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xf7,0x01,0x00,0x00,0x46,0x00,0x00,0x00,0x44,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf8,0x01,0x00,0x00,
    +0xf5,0x01,0x00,0x00,0xf7,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xfa,0x01,0x00,0x00,0xf8,0x01,0x00,0x00,
    +0x34,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xfc,0x01,0x00,0x00,0xfa,0x01,0x00,0x00,0xfb,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfe,0x01,0x00,0x00,
    +0xfc,0x01,0x00,0x00,0x1e,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x15,0x01,0x00,0x00,0xff,0x01,0x00,0x00,0x08,0x01,0x00,0x00,
    +0xfe,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x03,0x01,0x00,0x00,
    +0x00,0x02,0x00,0x00,0xff,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x01,0x02,0x00,0x00,0x02,0x02,0x00,0x00,0xec,0x01,0x00,0x00,
    +0xf0,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x02,0x02,0x00,0x00,
    +0x00,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x04,0x02,0x00,0x00,0x34,0x03,0x00,0x00,0x9b,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xe2,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xe4,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xdd,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xdd,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x06,0x02,0x00,0x00,0x22,0x03,0x00,0x00,
    +0x9b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xda,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xdc,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x08,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x08,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x23,0x03,0x00,0x00,
    +0x20,0x00,0x00,0x00,0xdc,0x01,0x00,0x00,0x34,0x02,0x00,0x00,
    +0x0b,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6c,0x00,0x00,0x00,
    +0x0e,0x02,0x00,0x00,0x23,0x03,0x00,0x00,0xcc,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x0a,0x02,0x00,0x00,0x0b,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x0e,0x02,0x00,0x00,
    +0x09,0x02,0x00,0x00,0x0a,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x09,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x10,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x10,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x31,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x09,0x02,0x00,0x00,0x32,0x02,0x00,0x00,0x11,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6c,0x00,0x00,0x00,0x16,0x02,0x00,0x00,
    +0x31,0x03,0x00,0x00,0xc9,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x12,0x02,0x00,0x00,0x11,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x16,0x02,0x00,0x00,0x11,0x02,0x00,0x00,
    +0x12,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x11,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1c,0x02,0x00,0x00,
    +0x23,0x03,0x00,0x00,0xc9,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x1e,0x02,0x00,0x00,0x1c,0x02,0x00,0x00,
    +0x31,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x20,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x23,0x02,0x00,0x00,
    +0x23,0x03,0x00,0x00,0x22,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x24,0x02,0x00,0x00,0x20,0x02,0x00,0x00,
    +0x23,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x26,0x02,0x00,0x00,0x4a,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x27,0x02,0x00,0x00,
    +0x24,0x02,0x00,0x00,0x26,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x29,0x02,0x00,0x00,0x27,0x02,0x00,0x00,
    +0x31,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x2b,0x02,0x00,0x00,0x29,0x02,0x00,0x00,0x2a,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2d,0x02,0x00,0x00,
    +0x2b,0x02,0x00,0x00,0x1e,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x15,0x01,0x00,0x00,0x2e,0x02,0x00,0x00,0x8e,0x01,0x00,0x00,
    +0x2d,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x03,0x01,0x00,0x00,
    +0x2f,0x02,0x00,0x00,0x2e,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x01,0x02,0x00,0x00,0x30,0x02,0x00,0x00,0x1a,0x02,0x00,0x00,
    +0x1e,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0x30,0x02,0x00,0x00,
    +0x2f,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x32,0x02,0x00,0x00,0x31,0x03,0x00,0x00,0x9b,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x10,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x12,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x0b,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x0b,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x34,0x02,0x00,0x00,0x23,0x03,0x00,0x00,
    +0x9b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x08,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x0a,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x36,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x36,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x24,0x03,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x0a,0x02,0x00,0x00,0x7a,0x02,0x00,0x00,
    +0x39,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6c,0x00,0x00,0x00,
    +0x3c,0x02,0x00,0x00,0x24,0x03,0x00,0x00,0xcc,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x38,0x02,0x00,0x00,0x39,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x3c,0x02,0x00,0x00,
    +0x37,0x02,0x00,0x00,0x38,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x37,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x3e,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x3e,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x28,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x37,0x02,0x00,0x00,0x78,0x02,0x00,0x00,0x41,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6c,0x00,0x00,0x00,0x44,0x02,0x00,0x00,
    +0x28,0x03,0x00,0x00,0x42,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x40,0x02,0x00,0x00,0x41,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x44,0x02,0x00,0x00,0x3f,0x02,0x00,0x00,
    +0x40,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x3f,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x46,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x46,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x2a,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0x3f,0x02,0x00,0x00,
    +0x76,0x02,0x00,0x00,0x49,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6c,0x00,0x00,0x00,0x4c,0x02,0x00,0x00,0x2a,0x03,0x00,0x00,
    +0xc9,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x48,0x02,0x00,0x00,
    +0x49,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x4c,0x02,0x00,0x00,0x47,0x02,0x00,0x00,0x48,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x47,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x4e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x4e,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x2c,0x03,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x47,0x02,0x00,0x00,0x74,0x02,0x00,0x00,
    +0x4f,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6c,0x00,0x00,0x00,
    +0x54,0x02,0x00,0x00,0x2c,0x03,0x00,0x00,0x44,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x50,0x02,0x00,0x00,0x4f,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x54,0x02,0x00,0x00,
    +0x4f,0x02,0x00,0x00,0x50,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x4f,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x56,0x02,0x00,0x00,0x24,0x03,0x00,0x00,0xc9,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x58,0x02,0x00,0x00,
    +0x56,0x02,0x00,0x00,0x2a,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x5a,0x02,0x00,0x00,0x58,0x02,0x00,0x00,
    +0x59,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x5c,0x02,0x00,0x00,0x28,0x03,0x00,0x00,0x44,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5d,0x02,0x00,0x00,
    +0x5a,0x02,0x00,0x00,0x5c,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x5f,0x02,0x00,0x00,0x5d,0x02,0x00,0x00,
    +0x2c,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x63,0x02,0x00,0x00,0x5c,0x02,0x00,0x00,0x2c,0x03,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x01,0x02,0x00,0x00,0x64,0x02,0x00,0x00,
    +0xec,0x01,0x00,0x00,0x63,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x03,0x01,0x00,0x00,0x65,0x02,0x00,0x00,0x64,0x02,0x00,0x00,
    +0x73,0x00,0x04,0x00,0xd0,0x00,0x00,0x00,0x66,0x02,0x00,0x00,
    +0x65,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x01,0x02,0x00,0x00,
    +0x6b,0x02,0x00,0x00,0x1a,0x02,0x00,0x00,0x58,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x03,0x01,0x00,0x00,0x6c,0x02,0x00,0x00,
    +0x6b,0x02,0x00,0x00,0x73,0x00,0x04,0x00,0xd0,0x00,0x00,0x00,
    +0x6d,0x02,0x00,0x00,0x6c,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xd9,0x00,0x00,0x00,0x6f,0x02,0x00,0x00,0xd6,0x00,0x00,0x00,
    +0x5f,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xd0,0x00,0x00,0x00,
    +0x70,0x02,0x00,0x00,0x6f,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,
    +0xd0,0x00,0x00,0x00,0x71,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x32,0x00,0x00,0x00,0x66,0x02,0x00,0x00,0x6d,0x02,0x00,0x00,
    +0x70,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0x6f,0x02,0x00,0x00,
    +0x71,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x74,0x02,0x00,0x00,0x2c,0x03,0x00,0x00,0x9b,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x4e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x50,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x49,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x49,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x76,0x02,0x00,0x00,0x2a,0x03,0x00,0x00,
    +0x9b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x46,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x48,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x41,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x41,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x78,0x02,0x00,0x00,
    +0x28,0x03,0x00,0x00,0x9b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x3e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x40,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x39,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x39,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x7a,0x02,0x00,0x00,0x24,0x03,0x00,0x00,0x9b,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x36,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x38,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xd5,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xd5,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x7c,0x02,0x00,0x00,0x1e,0x03,0x00,0x00,
    +0x9b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xd2,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xd4,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,
    +0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xa1,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xe1,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xe1,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x7e,0x02,0x00,0x00,0x03,0x03,0x00,0x00,0x4e,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xde,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xe0,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x83,0x02,0x00,0x00,0x37,0x00,0x00,0x00,0x35,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x84,0x02,0x00,0x00,
    +0xb5,0x00,0x00,0x00,0x83,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x89,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,
    +0xc6,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x8a,0x02,0x00,0x00,0xa4,0x00,0x00,0x00,0x89,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x8c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x8c,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x04,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0xe0,0x00,0x00,0x00,
    +0xf5,0x02,0x00,0x00,0x8f,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6c,0x00,0x00,0x00,0x92,0x02,0x00,0x00,0x04,0x03,0x00,0x00,
    +0xcc,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x8e,0x02,0x00,0x00,
    +0x8f,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x92,0x02,0x00,0x00,0x8d,0x02,0x00,0x00,0x8e,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x8d,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x94,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x94,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x05,0x03,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x8d,0x02,0x00,0x00,0xf3,0x02,0x00,0x00,
    +0x97,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6c,0x00,0x00,0x00,
    +0x9a,0x02,0x00,0x00,0x05,0x03,0x00,0x00,0x42,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x96,0x02,0x00,0x00,0x97,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x9a,0x02,0x00,0x00,
    +0x95,0x02,0x00,0x00,0x96,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x95,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x9e,0x02,0x00,0x00,0x05,0x03,0x00,0x00,0x43,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9f,0x02,0x00,0x00,
    +0x84,0x02,0x00,0x00,0x9e,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xa1,0x02,0x00,0x00,0x46,0x00,0x00,0x00,
    +0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xa2,0x02,0x00,0x00,0x9f,0x02,0x00,0x00,0xa1,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa6,0x02,0x00,0x00,
    +0x04,0x03,0x00,0x00,0x22,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xa7,0x02,0x00,0x00,0x8a,0x02,0x00,0x00,
    +0xa6,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xa9,0x02,0x00,0x00,0x4a,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xaa,0x02,0x00,0x00,
    +0xa7,0x02,0x00,0x00,0xa9,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xac,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xac,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x07,0x03,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x95,0x02,0x00,0x00,0xf1,0x02,0x00,0x00,
    +0xaf,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6c,0x00,0x00,0x00,
    +0xb2,0x02,0x00,0x00,0x07,0x03,0x00,0x00,0xc9,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xae,0x02,0x00,0x00,0xaf,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xb2,0x02,0x00,0x00,
    +0xad,0x02,0x00,0x00,0xae,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xad,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xb6,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,0x07,0x03,0x00,0x00,
    +0xae,0x00,0x05,0x00,0x6c,0x00,0x00,0x00,0xb9,0x02,0x00,0x00,
    +0xb6,0x02,0x00,0x00,0x01,0x03,0x00,0x00,0xf7,0x00,0x03,0x00,
    +0xbb,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xb9,0x02,0x00,0x00,0xba,0x02,0x00,0x00,0xbb,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xba,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xae,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xbb,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x98,0x00,0x00,0x00,0xbf,0x02,0x00,0x00,
    +0x91,0x00,0x00,0x00,0xb6,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x8d,0x00,0x00,0x00,0xc0,0x02,0x00,0x00,0xbf,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xc2,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xc2,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x0d,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0xbb,0x02,0x00,0x00,
    +0xef,0x02,0x00,0x00,0xc3,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6c,0x00,0x00,0x00,0xc8,0x02,0x00,0x00,0x0d,0x03,0x00,0x00,
    +0x44,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xc4,0x02,0x00,0x00,
    +0xc3,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xc8,0x02,0x00,0x00,0xc3,0x02,0x00,0x00,0xc4,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xc3,0x02,0x00,0x00,0x51,0x00,0x05,0x00,
    +0x8c,0x00,0x00,0x00,0xce,0x02,0x00,0x00,0xc0,0x02,0x00,0x00,
     0x01,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x5e,0x01,0x00,0x00,0x5d,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x16,0x00,0x00,0x00,0x60,0x01,0x00,0x00,0x13,0x00,0x00,0x00,
    -0x5f,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x61,0x01,0x00,0x00,0x60,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x62,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,
    -0x61,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x63,0x01,0x00,0x00,0xd2,0x02,0x00,0x00,0x62,0x01,0x00,0x00,
    -0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,0x65,0x01,0x00,0x00,
    -0x49,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x66,0x01,0x00,0x00,0x65,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0x68,0x01,0x00,0x00,
    -0x13,0x00,0x00,0x00,0x67,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x69,0x01,0x00,0x00,0x68,0x01,0x00,0x00,
    -0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6a,0x01,0x00,0x00,
    -0x66,0x01,0x00,0x00,0x69,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x16,0x00,0x00,0x00,0x6c,0x01,0x00,0x00,0x13,0x00,0x00,0x00,
    -0x6b,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x6d,0x01,0x00,0x00,0x6c,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x6e,0x01,0x00,0x00,0x6a,0x01,0x00,0x00,
    -0x6d,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x6f,0x01,0x00,0x00,0x63,0x01,0x00,0x00,0x6e,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x71,0x01,0x00,0x00,
    -0x6f,0x01,0x00,0x00,0x5a,0x00,0x00,0x00,0x41,0x00,0x06,0x00,
    -0x72,0x01,0x00,0x00,0x73,0x01,0x00,0x00,0x59,0x01,0x00,0x00,
    -0x15,0x00,0x00,0x00,0x71,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xcf,0x00,0x00,0x00,0x74,0x01,0x00,0x00,0x73,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x1f,0x01,0x00,0x00,0x75,0x01,0x00,0x00,
    -0x4e,0x01,0x00,0x00,0x55,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x75,0x01,0x00,0x00,0x74,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x44,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x76,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x79,0x01,0x00,0x00,
    -0x5f,0x00,0x00,0x00,0xcb,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x7b,0x01,0x00,0x00,0x79,0x01,0x00,0x00,
    -0x7a,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x7d,0x01,0x00,0x00,0x7b,0x01,0x00,0x00,0x5a,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x1f,0x01,0x00,0x00,0x7e,0x01,0x00,0x00,
    -0x4e,0x01,0x00,0x00,0x7d,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x7e,0x01,0x00,0x00,0xd7,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x44,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x44,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x35,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x35,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x83,0x01,0x00,0x00,0xcb,0x02,0x00,0x00,0x81,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x32,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x34,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x86,0x01,0x00,0x00,0xce,0x02,0x00,0x00,
    -0x84,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x89,0x01,0x00,0x00,0xd2,0x02,0x00,0x00,0x87,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x8b,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x8b,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xd4,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0x34,0x01,0x00,0x00,
    -0x32,0x02,0x00,0x00,0x8e,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0x91,0x01,0x00,0x00,0xd4,0x02,0x00,0x00,
    -0x4e,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x8d,0x01,0x00,0x00,
    -0x8e,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x91,0x01,0x00,0x00,0x8c,0x01,0x00,0x00,0x8d,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x8c,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x93,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x93,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xd8,0x02,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x8c,0x01,0x00,0x00,0xbe,0x01,0x00,0x00,
    -0x96,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0x99,0x01,0x00,0x00,0xd8,0x02,0x00,0x00,0x42,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x95,0x01,0x00,0x00,0x96,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x99,0x01,0x00,0x00,
    -0x94,0x01,0x00,0x00,0x95,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x94,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x9b,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x9b,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xea,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x94,0x01,0x00,0x00,0xbc,0x01,0x00,0x00,0x9c,0x01,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xa1,0x01,0x00,0x00,
    -0xea,0x02,0x00,0x00,0x44,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x9d,0x01,0x00,0x00,0x9c,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xa1,0x01,0x00,0x00,0x9c,0x01,0x00,0x00,
    -0x9d,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x9c,0x01,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa7,0x01,0x00,0x00,
    -0xd8,0x02,0x00,0x00,0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xa9,0x01,0x00,0x00,0xa7,0x01,0x00,0x00,
    -0xea,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xab,0x01,0x00,0x00,0x37,0x00,0x00,0x00,0x35,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xad,0x01,0x00,0x00,
    -0xd8,0x02,0x00,0x00,0x43,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xae,0x01,0x00,0x00,0xab,0x01,0x00,0x00,
    -0xad,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xb0,0x01,0x00,0x00,0x46,0x00,0x00,0x00,0x44,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb1,0x01,0x00,0x00,
    -0xae,0x01,0x00,0x00,0xb0,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xb3,0x01,0x00,0x00,0xb1,0x01,0x00,0x00,
    -0xea,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xb5,0x01,0x00,0x00,0xb3,0x01,0x00,0x00,0xb4,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb7,0x01,0x00,0x00,
    -0xb5,0x01,0x00,0x00,0xd4,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x1f,0x01,0x00,0x00,0xb8,0x01,0x00,0x00,0x04,0x01,0x00,0x00,
    -0xb7,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    -0xb9,0x01,0x00,0x00,0xb8,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xd8,0x00,0x00,0x00,0xba,0x01,0x00,0x00,0xa5,0x01,0x00,0x00,
    -0xa9,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xba,0x01,0x00,0x00,
    -0xb9,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xbc,0x01,0x00,0x00,0xea,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xcf,0x02,0x00,0x00,0xce,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x16,0x00,0x00,0x00,0xd1,0x02,0x00,0x00,0x13,0x00,0x00,0x00,
    +0xd0,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0xd2,0x02,0x00,0x00,0xd1,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xd3,0x02,0x00,0x00,0xcf,0x02,0x00,0x00,
    +0xd2,0x02,0x00,0x00,0x51,0x00,0x05,0x00,0x8c,0x00,0x00,0x00,
    +0xd5,0x02,0x00,0x00,0xc0,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xd6,0x02,0x00,0x00,
    +0xd5,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
    +0xd8,0x02,0x00,0x00,0x13,0x00,0x00,0x00,0xd7,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xd9,0x02,0x00,0x00,
    +0xd8,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xda,0x02,0x00,0x00,0xd6,0x02,0x00,0x00,0xd9,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdb,0x02,0x00,0x00,
    +0xd3,0x02,0x00,0x00,0xda,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xdd,0x02,0x00,0x00,0xdb,0x02,0x00,0x00,
    +0xa2,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xdf,0x02,0x00,0x00,0xdd,0x02,0x00,0x00,0x0d,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe1,0x02,0x00,0x00,
    +0x04,0x03,0x00,0x00,0xc9,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xe3,0x02,0x00,0x00,0xe1,0x02,0x00,0x00,
    +0x07,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xe5,0x02,0x00,0x00,0xe3,0x02,0x00,0x00,0xe4,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe7,0x02,0x00,0x00,
    +0x05,0x03,0x00,0x00,0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xe8,0x02,0x00,0x00,0xe5,0x02,0x00,0x00,
    +0xe7,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xea,0x02,0x00,0x00,0xe8,0x02,0x00,0x00,0x0d,0x03,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xd9,0x00,0x00,0x00,0xeb,0x02,0x00,0x00,
    +0xd6,0x00,0x00,0x00,0xea,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xd0,0x00,0x00,0x00,0xec,0x02,0x00,0x00,0xeb,0x02,0x00,0x00,
    +0x41,0x00,0x06,0x00,0x11,0x01,0x00,0x00,0xed,0x02,0x00,0x00,
    +0xcc,0x02,0x00,0x00,0x15,0x00,0x00,0x00,0xdf,0x02,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0xed,0x02,0x00,0x00,0xec,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xef,0x02,0x00,0x00,
    +0x0d,0x03,0x00,0x00,0x9b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xc2,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xc4,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xaf,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xaf,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xf1,0x02,0x00,0x00,0x07,0x03,0x00,0x00,0x9b,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xac,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xae,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x97,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x97,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xf3,0x02,0x00,0x00,0x05,0x03,0x00,0x00,
    +0x9b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x94,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x96,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x8f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x8f,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf5,0x02,0x00,0x00,
    +0x04,0x03,0x00,0x00,0x9b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x8c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x8e,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xf6,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xf6,0x02,0x00,0x00,0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
    +
    +};
    +const uint64_t matmul_id_f32_f16_aligned_len = 12048;
    +
    +unsigned char matmul_id_f32_f16_aligned_fp32_data[] = {
    +0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
    +0x2b,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00,
    +0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x16,0x00,0x00,0x00,
    +0x11,0x00,0x02,0x00,0x51,0x11,0x00,0x00,0x0b,0x00,0x06,0x00,
    +0x01,0x00,0x00,0x00,0x47,0x4c,0x53,0x4c,0x2e,0x73,0x74,0x64,
    +0x2e,0x34,0x35,0x30,0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00,
    +0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0f,0x00,0x10,0x00,
    +0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e,
    +0x00,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x13,0x00,0x00,0x00,
    +0x1f,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,0x7c,0x00,0x00,0x00,
    +0x91,0x00,0x00,0x00,0x07,0x01,0x00,0x00,0x0d,0x01,0x00,0x00,
    +0x68,0x01,0x00,0x00,0x70,0x01,0x00,0x00,0x8f,0x02,0x00,0x00,
    +0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x0b,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    +0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x11,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x11,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x11,0x00,0x00,0x00,
    +0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x11,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x11,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x11,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x11,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x11,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x11,0x00,0x00,0x00,
    +0x09,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x11,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x11,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x2c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x11,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x30,0x00,0x00,0x00,
    +0x47,0x00,0x03,0x00,0x11,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,
    +0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x2e,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x31,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x09,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x35,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x42,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x44,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x07,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x4e,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x79,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x48,0x00,0x04,0x00,0x7a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x7a,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x47,0x00,0x03,0x00,0x7a,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x7c,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x7c,0x00,0x00,0x00,
    +0x21,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0xa3,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0xc6,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x05,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xc9,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x0a,0x01,0x00,0x00,0x06,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
    +0x48,0x00,0x04,0x00,0x0b,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x0b,0x01,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x47,0x00,0x03,0x00,0x0b,0x01,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x0d,0x01,0x00,0x00,0x22,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x0d,0x01,0x00,0x00,
    +0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x27,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x28,0x01,0x00,0x00,0x0b,0x00,0x00,0x00,
    +0x19,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x6d,0x01,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x48,0x00,0x04,0x00,
    +0x6e,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x6e,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    +0x6e,0x01,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x70,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x70,0x01,0x00,0x00,0x21,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x8c,0x02,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,
    +0x8d,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x8d,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    +0x8d,0x02,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x8f,0x02,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x8f,0x02,0x00,0x00,0x21,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00,
    +0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x15,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x17,0x00,0x04,0x00,0x09,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x0a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x0a,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x0d,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x1e,0x00,0x0f,0x00,0x11,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x12,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x11,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x12,0x00,0x00,0x00,
    +0x13,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x15,0x00,0x04,0x00,
    +0x14,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x15,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x16,0x00,0x00,0x00,
    +0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x40,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x0a,0x00,0x00,0x00,
    +0x1f,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x0a,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x31,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x36,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x35,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x35,0x00,0x00,0x00,
    +0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x42,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x43,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x35,0x00,0x00,0x00,
    +0x42,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x44,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x45,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x43,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x49,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x43,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x50,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    +0x4f,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x55,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    +0x4f,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x5a,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    +0x4f,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x5f,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    +0x4f,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    +0x69,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x14,0x00,0x02,0x00,
    +0x6c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    +0x75,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    +0x79,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
    +0x7a,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x7b,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x7a,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x7b,0x00,0x00,0x00,0x7c,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    +0x7e,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x84,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    +0x15,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x17,0x00,0x04,0x00,0x8d,0x00,0x00,0x00,
    +0x8c,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,0x00,0x08,0x00,0x00,
    +0x1c,0x00,0x04,0x00,0x8f,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,
    +0x8e,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x90,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x8f,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0x90,0x00,0x00,0x00,0x91,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x98,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x8d,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    +0x9b,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0xa1,0x00,0x00,0x00,0x08,0x01,0x00,0x00,
    +0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,
    +0x40,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    +0xab,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x14,0x00,0x00,0x00,0xb0,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0xb6,0x00,0x00,0x00,
    +0x03,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0xc5,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x42,0x00,0x00,0x00,
    +0x44,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0xc6,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    +0x35,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    +0x31,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xca,0x00,0x00,0x00,
    +0x84,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,
    +0x84,0x00,0x00,0x00,0xca,0x00,0x00,0x00,0x42,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xcd,0x00,0x00,0x00,
    +0x84,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xce,0x00,0x00,0x00,
    +0x84,0x00,0x00,0x00,0xcd,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,
    +0x16,0x00,0x03,0x00,0xd0,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,
    +0x84,0x00,0x00,0x00,0x42,0x00,0x00,0x00,0x44,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,
    +0x84,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,
    +0x84,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,
    +0x1c,0x00,0x04,0x00,0xd4,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,
    +0xd3,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xd5,0x00,0x00,0x00,
    +0x07,0x00,0x00,0x00,0xd4,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0xd0,0x00,0x00,0x00,0xd8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0xd9,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    +0xd0,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0xfe,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x03,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x04,0x01,0x00,0x00,0x84,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    +0x03,0x01,0x00,0x00,0x1c,0x00,0x04,0x00,0x05,0x01,0x00,0x00,
    +0xd0,0x00,0x00,0x00,0x04,0x01,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x06,0x01,0x00,0x00,0x04,0x00,0x00,0x00,0x05,0x01,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x06,0x01,0x00,0x00,0x07,0x01,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x17,0x00,0x04,0x00,0x09,0x01,0x00,0x00,
    +0xd0,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    +0x0a,0x01,0x00,0x00,0x09,0x01,0x00,0x00,0x1e,0x00,0x03,0x00,
    +0x0b,0x01,0x00,0x00,0x0a,0x01,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x0c,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x0b,0x01,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x0c,0x01,0x00,0x00,0x0d,0x01,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x0f,0x01,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x12,0x01,0x00,0x00,0x04,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x21,0x01,0x00,0x00,
    +0x03,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x27,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x33,0x00,0x06,0x00,
    +0x09,0x00,0x00,0x00,0x28,0x01,0x00,0x00,0x27,0x01,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x29,0x01,0x00,0x00,0x51,0x00,0x00,0x00,
    +0x28,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x2a,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    +0x29,0x01,0x00,0x00,0x4f,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x2b,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x2a,0x01,0x00,0x00,0x4e,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x14,0x00,0x00,0x00,0x46,0x01,0x00,0x00,0x07,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x4f,0x01,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    +0x53,0x01,0x00,0x00,0x04,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x5f,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x64,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x65,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    +0xa3,0x00,0x00,0x00,0x64,0x01,0x00,0x00,0x1c,0x00,0x04,0x00,
    +0x66,0x01,0x00,0x00,0xd0,0x00,0x00,0x00,0x65,0x01,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x67,0x01,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x66,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,0x67,0x01,0x00,0x00,
    +0x68,0x01,0x00,0x00,0x04,0x00,0x00,0x00,0x16,0x00,0x03,0x00,
    +0x6b,0x01,0x00,0x00,0x10,0x00,0x00,0x00,0x17,0x00,0x04,0x00,
    +0x6c,0x01,0x00,0x00,0x6b,0x01,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x1d,0x00,0x03,0x00,0x6d,0x01,0x00,0x00,0x6c,0x01,0x00,0x00,
    +0x1e,0x00,0x03,0x00,0x6e,0x01,0x00,0x00,0x6d,0x01,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x6f,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x6e,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,0x6f,0x01,0x00,0x00,
    +0x70,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x72,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x6b,0x01,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x8c,0x01,0x00,0x00,
    +0x51,0x00,0x00,0x00,0x28,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x8d,0x01,0x00,0x00,
    +0x84,0x00,0x00,0x00,0x8c,0x01,0x00,0x00,0x4f,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x8e,0x01,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x8d,0x01,0x00,0x00,0x4e,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x91,0x01,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x94,0x01,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xaf,0x01,0x00,0x00,
    +0x84,0x00,0x00,0x00,0x42,0x00,0x00,0x00,0x44,0x00,0x00,0x00,
    +0x1c,0x00,0x04,0x00,0xb0,0x01,0x00,0x00,0xd0,0x00,0x00,0x00,
    +0xaf,0x01,0x00,0x00,0x20,0x00,0x04,0x00,0xb1,0x01,0x00,0x00,
    +0x07,0x00,0x00,0x00,0xb0,0x01,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xc1,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xdc,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    +0xcc,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,
    +0xdd,0x01,0x00,0x00,0xd0,0x00,0x00,0x00,0xdc,0x01,0x00,0x00,
    +0x20,0x00,0x04,0x00,0xde,0x01,0x00,0x00,0x07,0x00,0x00,0x00,
    +0xdd,0x01,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0xe7,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,
    +0xcc,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0xef,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x1e,0x02,0x00,0x00,0x84,0x00,0x00,0x00,0x42,0x00,0x00,0x00,
    +0x44,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x8c,0x02,0x00,0x00,
    +0xd0,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x8d,0x02,0x00,0x00,
    +0x8c,0x02,0x00,0x00,0x20,0x00,0x04,0x00,0x8e,0x02,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x8d,0x02,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0x8e,0x02,0x00,0x00,0x8f,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x93,0x02,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    +0x9a,0x02,0x00,0x00,0x05,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xa7,0x02,0x00,0x00,0x84,0x00,0x00,0x00,
    +0x42,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x36,0x00,0x05,0x00,
    +0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x03,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0xd5,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,
    +0x07,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xb1,0x01,0x00,0x00,
    +0xb2,0x01,0x00,0x00,0x07,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0xde,0x01,0x00,0x00,0xdf,0x01,0x00,0x00,0x07,0x00,0x00,0x00,
    +0xf7,0x00,0x03,0x00,0xb9,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfb,0x00,0x03,0x00,0x20,0x00,0x00,0x00,0xba,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xba,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x0d,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x0f,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x16,0x00,0x00,0x00,0x17,0x00,0x00,0x00,0x13,0x00,0x00,0x00,
    +0x15,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x17,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    +0x19,0x00,0x00,0x00,0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x1c,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1d,0x00,0x00,0x00,
    +0x1c,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x0d,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x22,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x89,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    +0x1d,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,
    +0x2b,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x2c,0x00,0x00,0x00,
    +0x2b,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,
    +0x2f,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x30,0x00,0x00,0x00,
    +0x2f,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x32,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x31,0x00,0x00,0x00,
    +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x37,0x00,0x00,0x00,
    +0x32,0x00,0x00,0x00,0x36,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,0x32,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x31,0x00,0x00,0x00,
    +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x46,0x00,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0x45,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x4a,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x49,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x51,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x50,0x00,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x56,0x00,0x00,0x00,
    +0x30,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x89,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x5b,0x00,0x00,0x00,0x30,0x00,0x00,0x00,
    +0x5a,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x60,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x63,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x63,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xc4,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0xba,0x02,0x00,0x00,
    +0xfc,0x02,0x00,0x00,0x66,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xc3,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    +0xba,0x02,0x00,0x00,0xa0,0x00,0x00,0x00,0x66,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0x6a,0x00,0x00,0x00,
    +0x13,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,0x6a,0x00,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6c,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    +0xc3,0x02,0x00,0x00,0x6b,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x65,0x00,0x00,0x00,0x66,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x6d,0x00,0x00,0x00,0x64,0x00,0x00,0x00,
    +0x65,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x64,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x6f,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x6f,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xfc,0x02,0x00,0x00,0xc4,0x02,0x00,0x00,0x64,0x00,0x00,0x00,
    +0x2a,0x03,0x00,0x00,0x72,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xfa,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x64,0x00,0x00,0x00,0x9e,0x00,0x00,0x00,0x72,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0x76,0x00,0x00,0x00,
    +0x13,0x00,0x00,0x00,0x75,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x77,0x00,0x00,0x00,0x76,0x00,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6c,0x00,0x00,0x00,0x78,0x00,0x00,0x00,
    +0xfa,0x02,0x00,0x00,0x77,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x71,0x00,0x00,0x00,0x72,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x78,0x00,0x00,0x00,0x70,0x00,0x00,0x00,
    +0x71,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x70,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,
    +0x13,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x81,0x00,0x00,0x00,
    +0xc3,0x02,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x83,0x00,0x00,0x00,0x81,0x00,0x00,0x00,
    +0xfa,0x02,0x00,0x00,0x41,0x00,0x06,0x00,0x84,0x00,0x00,0x00,
    +0x85,0x00,0x00,0x00,0x7c,0x00,0x00,0x00,0x15,0x00,0x00,0x00,
    +0x83,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x85,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x87,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    +0xaa,0x00,0x05,0x00,0x6c,0x00,0x00,0x00,0x89,0x00,0x00,0x00,
    +0x87,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,
    +0x8b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x89,0x00,0x00,0x00,0x8a,0x00,0x00,0x00,0x8b,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x8a,0x00,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x8c,0x00,0x00,0x00,0x94,0x00,0x00,0x00,0xfa,0x02,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,0x96,0x00,0x00,0x00,
    +0xc3,0x02,0x00,0x00,0x50,0x00,0x05,0x00,0x8d,0x00,0x00,0x00,
    +0x97,0x00,0x00,0x00,0x94,0x00,0x00,0x00,0x96,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x98,0x00,0x00,0x00,0x99,0x00,0x00,0x00,
    +0x91,0x00,0x00,0x00,0xfc,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x99,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x9c,0x00,0x00,0x00,0xfc,0x02,0x00,0x00,
    +0x9b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x8b,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x8b,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x2a,0x03,0x00,0x00,0xfc,0x02,0x00,0x00,
    +0x70,0x00,0x00,0x00,0x9c,0x00,0x00,0x00,0x8a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x72,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x72,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x9e,0x00,0x00,0x00,0xfa,0x02,0x00,0x00,0x9b,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x6f,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x71,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x66,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x66,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0xc3,0x02,0x00,0x00,
    +0x9b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x63,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x65,0x00,0x00,0x00,0xe0,0x00,0x04,0x00,
    +0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xa1,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,
    +0x2c,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0xae,0x00,0x05,0x00,
    +0x6c,0x00,0x00,0x00,0xa6,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,
    +0xc4,0x02,0x00,0x00,0xf7,0x00,0x03,0x00,0xa8,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xa6,0x00,0x00,0x00,
    +0xa7,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xa7,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xb9,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xa8,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x16,0x00,0x00,0x00,0xac,0x00,0x00,0x00,0x13,0x00,0x00,0x00,
    +0xab,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0xad,0x00,0x00,0x00,0xac,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x16,0x00,0x00,0x00,0xb1,0x00,0x00,0x00,0x13,0x00,0x00,0x00,
    +0xb0,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0xb2,0x00,0x00,0x00,0xb1,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,
    +0xb2,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xb5,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,
    +0x13,0x00,0x00,0x00,0xb6,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,
    +0xb5,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xba,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,
    +0xb9,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xbc,0x00,0x00,0x00,0xba,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xbf,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xbf,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xc5,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,
    +0xdc,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6c,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0xc5,0x02,0x00,0x00,
    +0xce,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xc1,0x00,0x00,0x00,
    +0xc0,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xcf,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0xc1,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xc0,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xd9,0x00,0x00,0x00,0xda,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,
    +0xc5,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0xda,0x00,0x00,0x00,
    +0xd8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xdc,0x00,0x00,0x00,0xc5,0x02,0x00,0x00,0x9b,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xbf,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xc1,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xde,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xde,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xdf,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    +0xc1,0x00,0x00,0x00,0x96,0x01,0x00,0x00,0xe1,0x00,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xdb,0x02,0x00,0x00,
    +0xbc,0x00,0x00,0x00,0xc1,0x00,0x00,0x00,0x93,0x01,0x00,0x00,
    +0xe1,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xc6,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0xc1,0x00,0x00,0x00,
    +0x41,0x02,0x00,0x00,0xe1,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6c,0x00,0x00,0x00,0xe5,0x00,0x00,0x00,0xc6,0x02,0x00,0x00,
    +0xad,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xe0,0x00,0x00,0x00,
    +0xe1,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xe5,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0xe0,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xdf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xe7,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xe7,0x00,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xd7,0x02,0x00,0x00,
    +0x20,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0x2d,0x01,0x00,0x00,
    +0xe8,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0x6c,0x00,0x00,0x00,
    +0xed,0x00,0x00,0x00,0xd7,0x02,0x00,0x00,0x19,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xe9,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xed,0x00,0x00,0x00,
    +0xe8,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xe8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xf2,0x00,0x00,0x00,0x56,0x00,0x00,0x00,0xd7,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,
    +0xf2,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,
    +0x4f,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xf7,0x00,0x00,0x00,0xdb,0x02,0x00,0x00,0xf6,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf9,0x00,0x00,0x00,
    +0xf7,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xf2,0x00,0x00,0x00,
    +0xfe,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x01,0x01,0x00,0x00,0x51,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x02,0x01,0x00,0x00,
    +0xff,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x41,0x00,0x07,0x00,
    +0x0f,0x01,0x00,0x00,0x10,0x01,0x00,0x00,0x0d,0x01,0x00,0x00,
    +0x15,0x00,0x00,0x00,0xf9,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xd0,0x00,0x00,0x00,0x11,0x01,0x00,0x00,
    +0x10,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x12,0x01,0x00,0x00,
    +0x13,0x01,0x00,0x00,0x07,0x01,0x00,0x00,0x02,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x13,0x01,0x00,0x00,0x11,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x15,0x01,0x00,0x00,
    +0x02,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,0x41,0x00,0x07,0x00,
    +0x0f,0x01,0x00,0x00,0x17,0x01,0x00,0x00,0x0d,0x01,0x00,0x00,
    +0x15,0x00,0x00,0x00,0xf9,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xd0,0x00,0x00,0x00,0x18,0x01,0x00,0x00,
    +0x17,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x12,0x01,0x00,0x00,
    +0x19,0x01,0x00,0x00,0x07,0x01,0x00,0x00,0x15,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x19,0x01,0x00,0x00,0x18,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1b,0x01,0x00,0x00,
    +0x02,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x41,0x00,0x07,0x00,
    +0x0f,0x01,0x00,0x00,0x1d,0x01,0x00,0x00,0x0d,0x01,0x00,0x00,
    +0x15,0x00,0x00,0x00,0xf9,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xd0,0x00,0x00,0x00,0x1e,0x01,0x00,0x00,
    +0x1d,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x12,0x01,0x00,0x00,
    +0x1f,0x01,0x00,0x00,0x07,0x01,0x00,0x00,0x1b,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x1f,0x01,0x00,0x00,0x1e,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x22,0x01,0x00,0x00,
    +0x02,0x01,0x00,0x00,0x21,0x01,0x00,0x00,0x41,0x00,0x07,0x00,
    +0x0f,0x01,0x00,0x00,0x24,0x01,0x00,0x00,0x0d,0x01,0x00,0x00,
    +0x15,0x00,0x00,0x00,0xf9,0x00,0x00,0x00,0x21,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xd0,0x00,0x00,0x00,0x25,0x01,0x00,0x00,
    +0x24,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x12,0x01,0x00,0x00,
    +0x26,0x01,0x00,0x00,0x07,0x01,0x00,0x00,0x22,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x26,0x01,0x00,0x00,0x25,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2d,0x01,0x00,0x00,
    +0xd7,0x02,0x00,0x00,0x2b,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xe7,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xe9,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x2f,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x2f,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xd8,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,
    +0x90,0x01,0x00,0x00,0x30,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6c,0x00,0x00,0x00,0x35,0x01,0x00,0x00,0xd8,0x02,0x00,0x00,
    +0xa3,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x31,0x01,0x00,0x00,
    +0x30,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x35,0x01,0x00,0x00,0x30,0x01,0x00,0x00,0x31,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x30,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x3b,0x01,0x00,0x00,0xa4,0x00,0x00,0x00,
    +0x60,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x3d,0x01,0x00,0x00,0x3b,0x01,0x00,0x00,0xd8,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x98,0x00,0x00,0x00,0x3e,0x01,0x00,0x00,
    +0x91,0x00,0x00,0x00,0x3d,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x8d,0x00,0x00,0x00,0x3f,0x01,0x00,0x00,0x3e,0x01,0x00,0x00,
    +0x51,0x00,0x05,0x00,0x8c,0x00,0x00,0x00,0x44,0x01,0x00,0x00,
    +0x3f,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x45,0x01,0x00,0x00,0x44,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0x47,0x01,0x00,0x00,
    +0x13,0x00,0x00,0x00,0x46,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x48,0x01,0x00,0x00,0x47,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x49,0x01,0x00,0x00,
    +0x45,0x01,0x00,0x00,0x48,0x01,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x4a,0x01,0x00,0x00,0x49,0x01,0x00,0x00,
    +0x4f,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x4b,0x01,0x00,0x00,0xdf,0x02,0x00,0x00,0x4a,0x01,0x00,0x00,
    +0x51,0x00,0x05,0x00,0x8c,0x00,0x00,0x00,0x4d,0x01,0x00,0x00,
    +0x3f,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x4e,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0x50,0x01,0x00,0x00,
    +0x13,0x00,0x00,0x00,0x4f,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x51,0x01,0x00,0x00,0x50,0x01,0x00,0x00,
    +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x52,0x01,0x00,0x00,
    +0x4e,0x01,0x00,0x00,0x51,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x16,0x00,0x00,0x00,0x54,0x01,0x00,0x00,0x13,0x00,0x00,0x00,
    +0x53,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x55,0x01,0x00,0x00,0x54,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x56,0x01,0x00,0x00,0x52,0x01,0x00,0x00,
    +0x55,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x57,0x01,0x00,0x00,0x56,0x01,0x00,0x00,0x4f,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x58,0x01,0x00,0x00,
    +0x4b,0x01,0x00,0x00,0x57,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x5a,0x01,0x00,0x00,0x58,0x01,0x00,0x00,
    +0x5b,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x5e,0x01,0x00,0x00,0x60,0x00,0x00,0x00,0xd8,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x60,0x01,0x00,0x00,
    +0x5e,0x01,0x00,0x00,0x5f,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x62,0x01,0x00,0x00,0x5b,0x00,0x00,0x00,
    +0x4f,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x63,0x01,0x00,0x00,0x60,0x01,0x00,0x00,0x62,0x01,0x00,0x00,
    +0x41,0x00,0x07,0x00,0x72,0x01,0x00,0x00,0x73,0x01,0x00,0x00,
    +0x70,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x5a,0x01,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x6b,0x01,0x00,0x00,
    +0x74,0x01,0x00,0x00,0x73,0x01,0x00,0x00,0x73,0x00,0x04,0x00,
    +0xd0,0x00,0x00,0x00,0x75,0x01,0x00,0x00,0x74,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x12,0x01,0x00,0x00,0x76,0x01,0x00,0x00,
    +0x68,0x01,0x00,0x00,0x63,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x76,0x01,0x00,0x00,0x75,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x78,0x01,0x00,0x00,0x63,0x01,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x41,0x00,0x07,0x00,0x72,0x01,0x00,0x00,
    +0x7a,0x01,0x00,0x00,0x70,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    +0x5a,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x6b,0x01,0x00,0x00,0x7b,0x01,0x00,0x00,0x7a,0x01,0x00,0x00,
    +0x73,0x00,0x04,0x00,0xd0,0x00,0x00,0x00,0x7c,0x01,0x00,0x00,
    +0x7b,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x12,0x01,0x00,0x00,
    +0x7d,0x01,0x00,0x00,0x68,0x01,0x00,0x00,0x78,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x7d,0x01,0x00,0x00,0x7c,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7f,0x01,0x00,0x00,
    +0x63,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x41,0x00,0x07,0x00,
    +0x72,0x01,0x00,0x00,0x81,0x01,0x00,0x00,0x70,0x01,0x00,0x00,
    +0x15,0x00,0x00,0x00,0x5a,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x6b,0x01,0x00,0x00,0x82,0x01,0x00,0x00,
    +0x81,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0xd0,0x00,0x00,0x00,
    +0x83,0x01,0x00,0x00,0x82,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x12,0x01,0x00,0x00,0x84,0x01,0x00,0x00,0x68,0x01,0x00,0x00,
    +0x7f,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x84,0x01,0x00,0x00,
    +0x83,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x86,0x01,0x00,0x00,0x63,0x01,0x00,0x00,0x21,0x01,0x00,0x00,
    +0x41,0x00,0x07,0x00,0x72,0x01,0x00,0x00,0x88,0x01,0x00,0x00,
    +0x70,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x5a,0x01,0x00,0x00,
    +0x21,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x6b,0x01,0x00,0x00,
    +0x89,0x01,0x00,0x00,0x88,0x01,0x00,0x00,0x73,0x00,0x04,0x00,
    +0xd0,0x00,0x00,0x00,0x8a,0x01,0x00,0x00,0x89,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x12,0x01,0x00,0x00,0x8b,0x01,0x00,0x00,
    +0x68,0x01,0x00,0x00,0x86,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x8b,0x01,0x00,0x00,0x8a,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x90,0x01,0x00,0x00,0xd8,0x02,0x00,0x00,
    +0x8e,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x2f,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x31,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,
    +0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xa1,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x93,0x01,0x00,0x00,
    +0xdb,0x02,0x00,0x00,0x91,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x96,0x01,0x00,0x00,0xdf,0x02,0x00,0x00,
    +0x94,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x98,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x98,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xe1,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x31,0x01,0x00,0x00,0x3f,0x02,0x00,0x00,0x9b,0x01,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6c,0x00,0x00,0x00,0x9e,0x01,0x00,0x00,
    +0xe1,0x02,0x00,0x00,0x4e,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x9a,0x01,0x00,0x00,0x9b,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x9e,0x01,0x00,0x00,0x99,0x01,0x00,0x00,
    +0x9a,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x99,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xa0,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xa0,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xe5,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0x99,0x01,0x00,0x00,
    +0xcb,0x01,0x00,0x00,0xa3,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6c,0x00,0x00,0x00,0xa6,0x01,0x00,0x00,0xe5,0x02,0x00,0x00,
    +0x42,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xa2,0x01,0x00,0x00,
    +0xa3,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xa6,0x01,0x00,0x00,0xa1,0x01,0x00,0x00,0xa2,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xa1,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xa8,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xa8,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xf7,0x02,0x00,0x00,
    +0x20,0x00,0x00,0x00,0xa1,0x01,0x00,0x00,0xc9,0x01,0x00,0x00,
    +0xa9,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0x6c,0x00,0x00,0x00,
    +0xae,0x01,0x00,0x00,0xf7,0x02,0x00,0x00,0x44,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xaa,0x01,0x00,0x00,0xa9,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xae,0x01,0x00,0x00,
    +0xa9,0x01,0x00,0x00,0xaa,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xa9,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xb4,0x01,0x00,0x00,0xe5,0x02,0x00,0x00,0x44,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb6,0x01,0x00,0x00,
    +0xb4,0x01,0x00,0x00,0xf7,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xb8,0x01,0x00,0x00,0x37,0x00,0x00,0x00,
    +0x35,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xba,0x01,0x00,0x00,0xe5,0x02,0x00,0x00,0x43,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbb,0x01,0x00,0x00,
    +0xb8,0x01,0x00,0x00,0xba,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xbd,0x01,0x00,0x00,0x46,0x00,0x00,0x00,
    +0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xbe,0x01,0x00,0x00,0xbb,0x01,0x00,0x00,0xbd,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc0,0x01,0x00,0x00,
    +0xbe,0x01,0x00,0x00,0xf7,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xc2,0x01,0x00,0x00,0xc0,0x01,0x00,0x00,
    +0xc1,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xc4,0x01,0x00,0x00,0xc2,0x01,0x00,0x00,0xe1,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x12,0x01,0x00,0x00,0xc5,0x01,0x00,0x00,
    +0x07,0x01,0x00,0x00,0xc4,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xd0,0x00,0x00,0x00,0xc6,0x01,0x00,0x00,0xc5,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xd9,0x00,0x00,0x00,0xc7,0x01,0x00,0x00,
    +0xb2,0x01,0x00,0x00,0xb6,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0xc7,0x01,0x00,0x00,0xc6,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xc9,0x01,0x00,0x00,0xf7,0x02,0x00,0x00,
    +0x9b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xa8,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xaa,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xa3,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xa3,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xcb,0x01,0x00,0x00,
    +0xe5,0x02,0x00,0x00,0x9b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xa0,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xa2,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xcd,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xcd,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xe6,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0xa2,0x01,0x00,0x00,
    +0xf9,0x01,0x00,0x00,0xd0,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6c,0x00,0x00,0x00,0xd3,0x01,0x00,0x00,0xe6,0x02,0x00,0x00,
    +0xcc,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xcf,0x01,0x00,0x00,
    +0xd0,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xd3,0x01,0x00,0x00,0xce,0x01,0x00,0x00,0xcf,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xce,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xd5,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xd5,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xf4,0x02,0x00,0x00,
    +0x20,0x00,0x00,0x00,0xce,0x01,0x00,0x00,0xf7,0x01,0x00,0x00,
    +0xd6,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0x6c,0x00,0x00,0x00,
    +0xdb,0x01,0x00,0x00,0xf4,0x02,0x00,0x00,0xc9,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xd7,0x01,0x00,0x00,0xd6,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xdb,0x01,0x00,0x00,
    +0xd6,0x01,0x00,0x00,0xd7,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xd6,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xe1,0x01,0x00,0x00,0xe6,0x02,0x00,0x00,0xc9,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe3,0x01,0x00,0x00,
    +0xe1,0x01,0x00,0x00,0xf4,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xe5,0x01,0x00,0x00,0x3b,0x00,0x00,0x00,
    +0xc6,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xe8,0x01,0x00,0x00,0xe6,0x02,0x00,0x00,0xe7,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe9,0x01,0x00,0x00,
    +0xe5,0x01,0x00,0x00,0xe8,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xeb,0x01,0x00,0x00,0x4a,0x00,0x00,0x00,
    +0xc9,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xec,0x01,0x00,0x00,0xe9,0x01,0x00,0x00,0xeb,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xee,0x01,0x00,0x00,
    +0xec,0x01,0x00,0x00,0xf4,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xf0,0x01,0x00,0x00,0xee,0x01,0x00,0x00,
    +0xef,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xf2,0x01,0x00,0x00,0xf0,0x01,0x00,0x00,0xe1,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x12,0x01,0x00,0x00,0xf3,0x01,0x00,0x00,
    +0x68,0x01,0x00,0x00,0xf2,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xd0,0x00,0x00,0x00,0xf4,0x01,0x00,0x00,0xf3,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xd9,0x00,0x00,0x00,0xf5,0x01,0x00,0x00,
    +0xdf,0x01,0x00,0x00,0xe3,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0xf5,0x01,0x00,0x00,0xf4,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xf7,0x01,0x00,0x00,0xf4,0x02,0x00,0x00,
    +0x9b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xd5,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xd7,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xd0,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xd0,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf9,0x01,0x00,0x00,
    +0xe6,0x02,0x00,0x00,0x9b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xcd,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xcf,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xfb,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xfb,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xe7,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0xcf,0x01,0x00,0x00,
    +0x3d,0x02,0x00,0x00,0xfe,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6c,0x00,0x00,0x00,0x01,0x02,0x00,0x00,0xe7,0x02,0x00,0x00,
    +0xcc,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xfd,0x01,0x00,0x00,
    +0xfe,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x01,0x02,0x00,0x00,0xfc,0x01,0x00,0x00,0xfd,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xfc,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x03,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x03,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xeb,0x02,0x00,0x00,
    +0x20,0x00,0x00,0x00,0xfc,0x01,0x00,0x00,0x3b,0x02,0x00,0x00,
    +0x06,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6c,0x00,0x00,0x00,
    +0x09,0x02,0x00,0x00,0xeb,0x02,0x00,0x00,0x42,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x05,0x02,0x00,0x00,0x06,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x09,0x02,0x00,0x00,
    +0x04,0x02,0x00,0x00,0x05,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x04,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x0b,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x0b,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xed,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x04,0x02,0x00,0x00,0x39,0x02,0x00,0x00,0x0e,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6c,0x00,0x00,0x00,0x11,0x02,0x00,0x00,
    +0xed,0x02,0x00,0x00,0xc9,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x0d,0x02,0x00,0x00,0x0e,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x11,0x02,0x00,0x00,0x0c,0x02,0x00,0x00,
    +0x0d,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x0c,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x13,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x13,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xef,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0x0c,0x02,0x00,0x00,
    +0x37,0x02,0x00,0x00,0x14,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6c,0x00,0x00,0x00,0x19,0x02,0x00,0x00,0xef,0x02,0x00,0x00,
    +0x44,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x15,0x02,0x00,0x00,
    +0x14,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x19,0x02,0x00,0x00,0x14,0x02,0x00,0x00,0x15,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x14,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x1b,0x02,0x00,0x00,0xe7,0x02,0x00,0x00,
    +0xc9,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x1d,0x02,0x00,0x00,0x1b,0x02,0x00,0x00,0xed,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1f,0x02,0x00,0x00,
    +0x1d,0x02,0x00,0x00,0x1e,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x21,0x02,0x00,0x00,0xeb,0x02,0x00,0x00,
    +0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x22,0x02,0x00,0x00,0x1f,0x02,0x00,0x00,0x21,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x24,0x02,0x00,0x00,
    +0x22,0x02,0x00,0x00,0xef,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x28,0x02,0x00,0x00,0x21,0x02,0x00,0x00,
    +0xef,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xd9,0x00,0x00,0x00,
    +0x29,0x02,0x00,0x00,0xb2,0x01,0x00,0x00,0x28,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xd0,0x00,0x00,0x00,0x2a,0x02,0x00,0x00,
    +0x29,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xd9,0x00,0x00,0x00,
    +0x2f,0x02,0x00,0x00,0xdf,0x01,0x00,0x00,0x1d,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xd0,0x00,0x00,0x00,0x30,0x02,0x00,0x00,
    +0x2f,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xd9,0x00,0x00,0x00,
    +0x32,0x02,0x00,0x00,0xd6,0x00,0x00,0x00,0x24,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xd0,0x00,0x00,0x00,0x33,0x02,0x00,0x00,
    +0x32,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0xd0,0x00,0x00,0x00,
    +0x34,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,
    +0x2a,0x02,0x00,0x00,0x30,0x02,0x00,0x00,0x33,0x02,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x32,0x02,0x00,0x00,0x34,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x37,0x02,0x00,0x00,
    +0xef,0x02,0x00,0x00,0x9b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x13,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x15,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x0e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x0e,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x39,0x02,0x00,0x00,0xed,0x02,0x00,0x00,0x9b,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x0b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x0d,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x06,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x06,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x3b,0x02,0x00,0x00,0xeb,0x02,0x00,0x00,
    +0x9b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x03,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x05,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xfe,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xfe,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3d,0x02,0x00,0x00,
    +0xe7,0x02,0x00,0x00,0x9b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xfb,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xfd,0x01,0x00,0x00,
     0xf9,0x00,0x02,0x00,0x9b,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x9d,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x96,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x96,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xbe,0x01,0x00,0x00,0xd8,0x02,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x93,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x95,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xc0,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xc0,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xd9,0x02,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x95,0x01,0x00,0x00,0xec,0x01,0x00,0x00,
    -0xc3,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0xc6,0x01,0x00,0x00,0xd9,0x02,0x00,0x00,0xcb,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xc2,0x01,0x00,0x00,0xc3,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xc6,0x01,0x00,0x00,
    -0xc1,0x01,0x00,0x00,0xc2,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xc1,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xc8,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xc8,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xe7,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    -0xc1,0x01,0x00,0x00,0xea,0x01,0x00,0x00,0xc9,0x01,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xce,0x01,0x00,0x00,
    -0xe7,0x02,0x00,0x00,0xc8,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xca,0x01,0x00,0x00,0xc9,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xce,0x01,0x00,0x00,0xc9,0x01,0x00,0x00,
    -0xca,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xc9,0x01,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd4,0x01,0x00,0x00,
    -0xd9,0x02,0x00,0x00,0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xd6,0x01,0x00,0x00,0xd4,0x01,0x00,0x00,
    -0xe7,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xd8,0x01,0x00,0x00,0x3b,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdb,0x01,0x00,0x00,
    -0xd9,0x02,0x00,0x00,0xda,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xdc,0x01,0x00,0x00,0xd8,0x01,0x00,0x00,
    -0xdb,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xde,0x01,0x00,0x00,0x4a,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdf,0x01,0x00,0x00,
    -0xdc,0x01,0x00,0x00,0xde,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xe1,0x01,0x00,0x00,0xdf,0x01,0x00,0x00,
    -0xe7,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xe3,0x01,0x00,0x00,0xe1,0x01,0x00,0x00,0xe2,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe5,0x01,0x00,0x00,
    -0xe3,0x01,0x00,0x00,0xd4,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x1f,0x01,0x00,0x00,0xe6,0x01,0x00,0x00,0x4e,0x01,0x00,0x00,
    -0xe5,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    -0xe7,0x01,0x00,0x00,0xe6,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xd8,0x00,0x00,0x00,0xe8,0x01,0x00,0x00,0xd2,0x01,0x00,0x00,
    -0xd6,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xe8,0x01,0x00,0x00,
    +0x9b,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x3f,0x02,0x00,0x00,0xe1,0x02,0x00,0x00,0x9b,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x98,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x9a,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0xa1,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xe1,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xe1,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x41,0x02,0x00,0x00,
    +0xc6,0x02,0x00,0x00,0x4e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xde,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xe0,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x46,0x02,0x00,0x00,
    +0x37,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x47,0x02,0x00,0x00,0xb5,0x00,0x00,0x00,
    +0x46,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x4c,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4d,0x02,0x00,0x00,
    +0xa4,0x00,0x00,0x00,0x4c,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x4f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x4f,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xc7,0x02,0x00,0x00,
    +0x20,0x00,0x00,0x00,0xe0,0x00,0x00,0x00,0xb8,0x02,0x00,0x00,
    +0x52,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6c,0x00,0x00,0x00,
    +0x55,0x02,0x00,0x00,0xc7,0x02,0x00,0x00,0xcc,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x51,0x02,0x00,0x00,0x52,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x55,0x02,0x00,0x00,
    +0x50,0x02,0x00,0x00,0x51,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x50,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x57,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x57,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xc8,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x50,0x02,0x00,0x00,0xb6,0x02,0x00,0x00,0x5a,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6c,0x00,0x00,0x00,0x5d,0x02,0x00,0x00,
    +0xc8,0x02,0x00,0x00,0x42,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x59,0x02,0x00,0x00,0x5a,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x5d,0x02,0x00,0x00,0x58,0x02,0x00,0x00,
    +0x59,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x58,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x61,0x02,0x00,0x00,
    +0xc8,0x02,0x00,0x00,0x43,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x62,0x02,0x00,0x00,0x47,0x02,0x00,0x00,
    +0x61,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x64,0x02,0x00,0x00,0x46,0x00,0x00,0x00,0x44,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x65,0x02,0x00,0x00,
    +0x62,0x02,0x00,0x00,0x64,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x69,0x02,0x00,0x00,0xc7,0x02,0x00,0x00,
     0xe7,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xea,0x01,0x00,0x00,0xe7,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xc8,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xca,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xc3,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xc3,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xec,0x01,0x00,0x00,0xd9,0x02,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xc0,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xc2,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xee,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xee,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xda,0x02,0x00,0x00,
    -0x20,0x00,0x00,0x00,0xc2,0x01,0x00,0x00,0x30,0x02,0x00,0x00,
    -0xf1,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0xf4,0x01,0x00,0x00,0xda,0x02,0x00,0x00,0xcb,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xf0,0x01,0x00,0x00,0xf1,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xf4,0x01,0x00,0x00,
    -0xef,0x01,0x00,0x00,0xf0,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xef,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xf6,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xf6,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xde,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    -0xef,0x01,0x00,0x00,0x2e,0x02,0x00,0x00,0xf9,0x01,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xfc,0x01,0x00,0x00,
    -0xde,0x02,0x00,0x00,0x42,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xf8,0x01,0x00,0x00,0xf9,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xfc,0x01,0x00,0x00,0xf7,0x01,0x00,0x00,
    -0xf8,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xf7,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xfe,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xfe,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xe0,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0xf7,0x01,0x00,0x00,
    -0x2c,0x02,0x00,0x00,0x01,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0x04,0x02,0x00,0x00,0xe0,0x02,0x00,0x00,
    -0xc8,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x00,0x02,0x00,0x00,
    -0x01,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x04,0x02,0x00,0x00,0xff,0x01,0x00,0x00,0x00,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xff,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x06,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x06,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xe2,0x02,0x00,0x00,
    -0x20,0x00,0x00,0x00,0xff,0x01,0x00,0x00,0x2a,0x02,0x00,0x00,
    -0x07,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0x0c,0x02,0x00,0x00,0xe2,0x02,0x00,0x00,0x44,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x08,0x02,0x00,0x00,0x07,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x0c,0x02,0x00,0x00,
    -0x07,0x02,0x00,0x00,0x08,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x07,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x0e,0x02,0x00,0x00,0xda,0x02,0x00,0x00,0xc8,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x10,0x02,0x00,0x00,
    -0x0e,0x02,0x00,0x00,0xe0,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x12,0x02,0x00,0x00,0x10,0x02,0x00,0x00,
    -0x11,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x14,0x02,0x00,0x00,0xde,0x02,0x00,0x00,0x44,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x15,0x02,0x00,0x00,
    -0x12,0x02,0x00,0x00,0x14,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x17,0x02,0x00,0x00,0x15,0x02,0x00,0x00,
    -0xe2,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x1b,0x02,0x00,0x00,0x14,0x02,0x00,0x00,0xe2,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,0x1c,0x02,0x00,0x00,
    -0xa5,0x01,0x00,0x00,0x1b,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xcf,0x00,0x00,0x00,0x1d,0x02,0x00,0x00,0x1c,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,0x22,0x02,0x00,0x00,
    -0xd2,0x01,0x00,0x00,0x10,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xcf,0x00,0x00,0x00,0x23,0x02,0x00,0x00,0x22,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,0x25,0x02,0x00,0x00,
    -0xd5,0x00,0x00,0x00,0x17,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xcf,0x00,0x00,0x00,0x26,0x02,0x00,0x00,0x25,0x02,0x00,0x00,
    -0x0c,0x00,0x08,0x00,0xcf,0x00,0x00,0x00,0x27,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x1d,0x02,0x00,0x00,
    -0x23,0x02,0x00,0x00,0x26,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x25,0x02,0x00,0x00,0x27,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x2a,0x02,0x00,0x00,0xe2,0x02,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x06,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x08,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x01,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x01,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2c,0x02,0x00,0x00,
    -0xe0,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xfe,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x00,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xf9,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xf9,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x2e,0x02,0x00,0x00,0xde,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xf6,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xf8,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xf1,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xf1,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x30,0x02,0x00,0x00,0xda,0x02,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xee,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xf0,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x8e,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x8e,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x32,0x02,0x00,0x00,
    -0xd4,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x8b,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x8d,0x01,0x00,0x00,
    -0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0xa0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xe0,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xe0,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x34,0x02,0x00,0x00,0xb9,0x02,0x00,0x00,
    -0x4e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xdd,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xdf,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x39,0x02,0x00,0x00,0x37,0x00,0x00,0x00,
    -0x35,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x3a,0x02,0x00,0x00,0xb4,0x00,0x00,0x00,0x39,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3f,0x02,0x00,0x00,
    -0x3b,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x40,0x02,0x00,0x00,0xa3,0x00,0x00,0x00,
    -0x3f,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x42,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x42,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xba,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    -0xdf,0x00,0x00,0x00,0xab,0x02,0x00,0x00,0x45,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x48,0x02,0x00,0x00,
    -0xba,0x02,0x00,0x00,0xcb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x44,0x02,0x00,0x00,0x45,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x48,0x02,0x00,0x00,0x43,0x02,0x00,0x00,
    -0x44,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x43,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x4a,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x4a,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xbb,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0x43,0x02,0x00,0x00,
    -0xa9,0x02,0x00,0x00,0x4d,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0x50,0x02,0x00,0x00,0xbb,0x02,0x00,0x00,
    -0x42,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x4c,0x02,0x00,0x00,
    -0x4d,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x50,0x02,0x00,0x00,0x4b,0x02,0x00,0x00,0x4c,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x4b,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x54,0x02,0x00,0x00,0xbb,0x02,0x00,0x00,
    -0x43,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x55,0x02,0x00,0x00,0x3a,0x02,0x00,0x00,0x54,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x57,0x02,0x00,0x00,
    -0x46,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x58,0x02,0x00,0x00,0x55,0x02,0x00,0x00,
    -0x57,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x5c,0x02,0x00,0x00,0xba,0x02,0x00,0x00,0xda,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5d,0x02,0x00,0x00,
    -0x40,0x02,0x00,0x00,0x5c,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x5f,0x02,0x00,0x00,0x4a,0x00,0x00,0x00,
    -0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x60,0x02,0x00,0x00,0x5d,0x02,0x00,0x00,0x5f,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x62,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x62,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xbd,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0x4b,0x02,0x00,0x00,
    -0xa7,0x02,0x00,0x00,0x65,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0x68,0x02,0x00,0x00,0xbd,0x02,0x00,0x00,
    -0xc8,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x64,0x02,0x00,0x00,
    -0x65,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x68,0x02,0x00,0x00,0x63,0x02,0x00,0x00,0x64,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x63,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x6c,0x02,0x00,0x00,0x60,0x02,0x00,0x00,
    -0xbd,0x02,0x00,0x00,0xae,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0x6f,0x02,0x00,0x00,0x6c,0x02,0x00,0x00,0xb7,0x02,0x00,0x00,
    -0xf7,0x00,0x03,0x00,0x71,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x6f,0x02,0x00,0x00,0x70,0x02,0x00,0x00,
    +0x6a,0x02,0x00,0x00,0x4d,0x02,0x00,0x00,0x69,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6c,0x02,0x00,0x00,
    +0x4a,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x6d,0x02,0x00,0x00,0x6a,0x02,0x00,0x00,
    +0x6c,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x6f,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x6f,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xca,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x58,0x02,0x00,0x00,0xb4,0x02,0x00,0x00,0x72,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6c,0x00,0x00,0x00,0x75,0x02,0x00,0x00,
    +0xca,0x02,0x00,0x00,0xc9,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x71,0x02,0x00,0x00,0x72,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x75,0x02,0x00,0x00,0x70,0x02,0x00,0x00,
     0x71,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x70,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x64,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x71,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x97,0x00,0x00,0x00,
    -0x75,0x02,0x00,0x00,0x90,0x00,0x00,0x00,0x6c,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,0x76,0x02,0x00,0x00,
    -0x75,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x78,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x78,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xc3,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x71,0x02,0x00,0x00,0xa5,0x02,0x00,0x00,0x79,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x7e,0x02,0x00,0x00,
    -0xc3,0x02,0x00,0x00,0x44,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x7a,0x02,0x00,0x00,0x79,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x7e,0x02,0x00,0x00,0x79,0x02,0x00,0x00,
    -0x7a,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x79,0x02,0x00,0x00,
    -0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,0x84,0x02,0x00,0x00,
    -0x76,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x85,0x02,0x00,0x00,0x84,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0x87,0x02,0x00,0x00,
    -0x13,0x00,0x00,0x00,0x86,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x88,0x02,0x00,0x00,0x87,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x89,0x02,0x00,0x00,
    -0x85,0x02,0x00,0x00,0x88,0x02,0x00,0x00,0x51,0x00,0x05,0x00,
    -0x8b,0x00,0x00,0x00,0x8b,0x02,0x00,0x00,0x76,0x02,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x8c,0x02,0x00,0x00,0x8b,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x16,0x00,0x00,0x00,0x8e,0x02,0x00,0x00,0x13,0x00,0x00,0x00,
    -0x8d,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x8f,0x02,0x00,0x00,0x8e,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x90,0x02,0x00,0x00,0x8c,0x02,0x00,0x00,
    -0x8f,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x91,0x02,0x00,0x00,0x89,0x02,0x00,0x00,0x90,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x93,0x02,0x00,0x00,
    -0x91,0x02,0x00,0x00,0x58,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x95,0x02,0x00,0x00,0x93,0x02,0x00,0x00,
    -0xc3,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x97,0x02,0x00,0x00,0xba,0x02,0x00,0x00,0xc8,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x99,0x02,0x00,0x00,
    -0x97,0x02,0x00,0x00,0xbd,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x9b,0x02,0x00,0x00,0x99,0x02,0x00,0x00,
    -0x9a,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x9d,0x02,0x00,0x00,0xbb,0x02,0x00,0x00,0x44,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9e,0x02,0x00,0x00,
    -0x9b,0x02,0x00,0x00,0x9d,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xa0,0x02,0x00,0x00,0x9e,0x02,0x00,0x00,
    -0xc3,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,
    -0xa1,0x02,0x00,0x00,0xd5,0x00,0x00,0x00,0xa0,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0xa2,0x02,0x00,0x00,
    -0xa1,0x02,0x00,0x00,0x41,0x00,0x06,0x00,0x72,0x01,0x00,0x00,
    -0xa3,0x02,0x00,0x00,0x82,0x02,0x00,0x00,0x15,0x00,0x00,0x00,
    -0x95,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0xa3,0x02,0x00,0x00,
    -0xa2,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xa5,0x02,0x00,0x00,0xc3,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x78,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x7a,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x65,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x65,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xa7,0x02,0x00,0x00,0xbd,0x02,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x62,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x64,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x4d,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x4d,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa9,0x02,0x00,0x00,
    -0xbb,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x4a,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x4c,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x45,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x45,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xab,0x02,0x00,0x00,0xba,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x42,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x44,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xac,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xac,0x02,0x00,0x00,0xfd,0x00,0x01,0x00,
    -0x38,0x00,0x01,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x79,0x02,0x00,0x00,
    +0x6d,0x02,0x00,0x00,0xca,0x02,0x00,0x00,0xae,0x00,0x05,0x00,
    +0x6c,0x00,0x00,0x00,0x7c,0x02,0x00,0x00,0x79,0x02,0x00,0x00,
    +0xc4,0x02,0x00,0x00,0xf7,0x00,0x03,0x00,0x7e,0x02,0x00,0x00,
    +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x7c,0x02,0x00,0x00,
    +0x7d,0x02,0x00,0x00,0x7e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x7d,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x71,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x7e,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x98,0x00,0x00,0x00,0x82,0x02,0x00,0x00,0x91,0x00,0x00,0x00,
    +0x79,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x8d,0x00,0x00,0x00,
    +0x83,0x02,0x00,0x00,0x82,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x85,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x85,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xd0,0x02,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x7e,0x02,0x00,0x00,0xb2,0x02,0x00,0x00,
    +0x86,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6c,0x00,0x00,0x00,
    +0x8b,0x02,0x00,0x00,0xd0,0x02,0x00,0x00,0x44,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x87,0x02,0x00,0x00,0x86,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x8b,0x02,0x00,0x00,
    +0x86,0x02,0x00,0x00,0x87,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x86,0x02,0x00,0x00,0x51,0x00,0x05,0x00,0x8c,0x00,0x00,0x00,
    +0x91,0x02,0x00,0x00,0x83,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x92,0x02,0x00,0x00,
    +0x91,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
    +0x94,0x02,0x00,0x00,0x13,0x00,0x00,0x00,0x93,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x95,0x02,0x00,0x00,
    +0x94,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x96,0x02,0x00,0x00,0x92,0x02,0x00,0x00,0x95,0x02,0x00,0x00,
    +0x51,0x00,0x05,0x00,0x8c,0x00,0x00,0x00,0x98,0x02,0x00,0x00,
    +0x83,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x99,0x02,0x00,0x00,0x98,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0x9b,0x02,0x00,0x00,
    +0x13,0x00,0x00,0x00,0x9a,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x9c,0x02,0x00,0x00,0x9b,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9d,0x02,0x00,0x00,
    +0x99,0x02,0x00,0x00,0x9c,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x9e,0x02,0x00,0x00,0x96,0x02,0x00,0x00,
    +0x9d,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xa0,0x02,0x00,0x00,0x9e,0x02,0x00,0x00,0x65,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa2,0x02,0x00,0x00,
    +0xa0,0x02,0x00,0x00,0xd0,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xa4,0x02,0x00,0x00,0xc7,0x02,0x00,0x00,
    +0xc9,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xa6,0x02,0x00,0x00,0xa4,0x02,0x00,0x00,0xca,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa8,0x02,0x00,0x00,
    +0xa6,0x02,0x00,0x00,0xa7,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xaa,0x02,0x00,0x00,0xc8,0x02,0x00,0x00,
    +0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xab,0x02,0x00,0x00,0xa8,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xad,0x02,0x00,0x00,
    +0xab,0x02,0x00,0x00,0xd0,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xd9,0x00,0x00,0x00,0xae,0x02,0x00,0x00,0xd6,0x00,0x00,0x00,
    +0xad,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xd0,0x00,0x00,0x00,
    +0xaf,0x02,0x00,0x00,0xae,0x02,0x00,0x00,0x41,0x00,0x06,0x00,
    +0x0f,0x01,0x00,0x00,0xb0,0x02,0x00,0x00,0x8f,0x02,0x00,0x00,
    +0x15,0x00,0x00,0x00,0xa2,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0xb0,0x02,0x00,0x00,0xaf,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xb2,0x02,0x00,0x00,0xd0,0x02,0x00,0x00,
    +0x9b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x85,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x87,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x72,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x72,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb4,0x02,0x00,0x00,
    +0xca,0x02,0x00,0x00,0x9b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x6f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x71,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x5a,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x5a,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xb6,0x02,0x00,0x00,0xc8,0x02,0x00,0x00,0x9b,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x57,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x59,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x52,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x52,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xb8,0x02,0x00,0x00,0xc7,0x02,0x00,0x00,
    +0x9b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x4f,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x51,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xb9,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xb9,0x02,0x00,0x00,
    +0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
     };
    -const uint64_t matmul_id_f16_f32_fp32_len = 10732;
    +const uint64_t matmul_id_f32_f16_aligned_fp32_len = 10928;
     
    -unsigned char matmul_id_f16_fp32_data[] = {
    +unsigned char matmul_id_f32_f16_fp32_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
    -0x2e,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00,
    +0x2d,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00,
     0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x16,0x00,0x00,0x00,
     0x11,0x00,0x02,0x00,0x51,0x11,0x00,0x00,0x0b,0x00,0x06,0x00,
     0x01,0x00,0x00,0x00,0x47,0x4c,0x53,0x4c,0x2e,0x73,0x74,0x64,
    @@ -32195,8 +35924,8 @@ unsigned char matmul_id_f16_fp32_data[] = {
     0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e,
     0x00,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x13,0x00,0x00,0x00,
     0x1f,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,
    -0x90,0x00,0x00,0x00,0x04,0x01,0x00,0x00,0x10,0x01,0x00,0x00,
    -0x4e,0x01,0x00,0x00,0x59,0x01,0x00,0x00,0x82,0x02,0x00,0x00,
    +0x90,0x00,0x00,0x00,0x04,0x01,0x00,0x00,0x0f,0x01,0x00,0x00,
    +0x4c,0x01,0x00,0x00,0x58,0x01,0x00,0x00,0x82,0x02,0x00,0x00,
     0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00,
     0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
     0x47,0x00,0x04,0x00,0x0b,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    @@ -32246,24 +35975,24 @@ unsigned char matmul_id_f16_fp32_data[] = {
     0x47,0x00,0x04,0x00,0xc5,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
     0x05,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xc8,0x00,0x00,0x00,
     0x01,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x0d,0x01,0x00,0x00,0x06,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    -0x48,0x00,0x04,0x00,0x0e,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x0e,0x01,0x00,0x00,
    +0x0c,0x01,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x48,0x00,0x04,0x00,0x0d,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x0d,0x01,0x00,0x00,
     0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x47,0x00,0x03,0x00,0x0e,0x01,0x00,0x00,0x02,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x10,0x01,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x10,0x01,0x00,0x00,
    +0x47,0x00,0x03,0x00,0x0d,0x01,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x0f,0x01,0x00,0x00,0x22,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x0f,0x01,0x00,0x00,
     0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x2a,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x2b,0x01,0x00,0x00,0x0b,0x00,0x00,0x00,
    -0x19,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x56,0x01,0x00,0x00,
    +0x28,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x29,0x01,0x00,0x00,0x0b,0x00,0x00,0x00,
    +0x19,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x55,0x01,0x00,0x00,
     0x06,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x48,0x00,0x04,0x00,
    -0x57,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x57,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x56,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x56,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
     0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    -0x57,0x01,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x59,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x59,0x01,0x00,0x00,0x21,0x00,0x00,0x00,
    +0x56,0x01,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x58,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x58,0x01,0x00,0x00,0x21,0x00,0x00,0x00,
     0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x7f,0x02,0x00,0x00,
     0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,
     0x80,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    @@ -32394,94 +36123,94 @@ unsigned char matmul_id_f16_fp32_data[] = {
     0x03,0x01,0x00,0x00,0x04,0x01,0x00,0x00,0x04,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x08,0x01,0x00,0x00,
     0x80,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
    -0x16,0x00,0x03,0x00,0x0c,0x01,0x00,0x00,0x10,0x00,0x00,0x00,
    -0x1d,0x00,0x03,0x00,0x0d,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,
    -0x1e,0x00,0x03,0x00,0x0e,0x01,0x00,0x00,0x0d,0x01,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x0f,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x0e,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,0x0f,0x01,0x00,0x00,
    -0x10,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x1b,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x1f,0x01,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x1d,0x00,0x03,0x00,0x0c,0x01,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0x1e,0x00,0x03,0x00,0x0d,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x0e,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x0d,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,0x0e,0x01,0x00,0x00,
    +0x0f,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x1a,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x1d,0x01,0x00,0x00,0x04,0x00,0x00,0x00,
     0xcf,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0x25,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    +0x23,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
     0x1b,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x2a,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x33,0x00,0x06,0x00,
    -0x09,0x00,0x00,0x00,0x2b,0x01,0x00,0x00,0x2a,0x01,0x00,0x00,
    +0x28,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x33,0x00,0x06,0x00,
    +0x09,0x00,0x00,0x00,0x29,0x01,0x00,0x00,0x28,0x01,0x00,0x00,
     0x1b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x2c,0x01,0x00,0x00,0x51,0x00,0x00,0x00,
    -0x2b,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x2d,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    -0x2c,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x2e,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x2d,0x01,0x00,0x00,0x4e,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x4a,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x2a,0x01,0x00,0x00,0x51,0x00,0x00,0x00,
    +0x29,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x2b,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    +0x2a,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x2c,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x2b,0x01,0x00,0x00,0x4e,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x48,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
     0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x4b,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    -0xa2,0x00,0x00,0x00,0x4a,0x01,0x00,0x00,0x1c,0x00,0x04,0x00,
    -0x4c,0x01,0x00,0x00,0xcf,0x00,0x00,0x00,0x4b,0x01,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x4d,0x01,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x4c,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,0x4d,0x01,0x00,0x00,
    -0x4e,0x01,0x00,0x00,0x04,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x52,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
    -0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    -0x56,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,0x1e,0x00,0x03,0x00,
    -0x57,0x01,0x00,0x00,0x56,0x01,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x58,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x57,0x01,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0x58,0x01,0x00,0x00,0x59,0x01,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x49,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    +0xa2,0x00,0x00,0x00,0x48,0x01,0x00,0x00,0x1c,0x00,0x04,0x00,
    +0x4a,0x01,0x00,0x00,0xcf,0x00,0x00,0x00,0x49,0x01,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x4b,0x01,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x4a,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,0x4b,0x01,0x00,0x00,
    +0x4c,0x01,0x00,0x00,0x04,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x50,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x16,0x00,0x03,0x00,
    +0x54,0x01,0x00,0x00,0x10,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    +0x55,0x01,0x00,0x00,0x54,0x01,0x00,0x00,0x1e,0x00,0x03,0x00,
    +0x56,0x01,0x00,0x00,0x55,0x01,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x57,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x56,0x01,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x57,0x01,0x00,0x00,0x58,0x01,0x00,0x00,
     0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    -0x5f,0x01,0x00,0x00,0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x14,0x00,0x00,0x00,0x67,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x6b,0x01,0x00,0x00,
    -0x04,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0x7a,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    -0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0x7f,0x01,0x00,0x00,0x51,0x00,0x00,0x00,0x2b,0x01,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0x80,0x01,0x00,0x00,0x84,0x00,0x00,0x00,0x7f,0x01,0x00,0x00,
    -0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0x81,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0x80,0x01,0x00,0x00,
    -0x4e,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0x84,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    -0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0x87,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    +0x5e,0x01,0x00,0x00,0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x14,0x00,0x00,0x00,0x66,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x6a,0x01,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x71,0x01,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x54,0x01,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x7a,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x7f,0x01,0x00,0x00,0x51,0x00,0x00,0x00,
    +0x29,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x80,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    +0x7f,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x81,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x80,0x01,0x00,0x00,0x4e,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x84,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0x87,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x06,0x00,0x00,0x00,0xa2,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    +0x42,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,
    +0xa3,0x01,0x00,0x00,0xcf,0x00,0x00,0x00,0xa2,0x01,0x00,0x00,
    +0x20,0x00,0x04,0x00,0xa4,0x01,0x00,0x00,0x07,0x00,0x00,0x00,
    +0xa3,0x01,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0xb4,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
     0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    -0xa2,0x01,0x00,0x00,0x84,0x00,0x00,0x00,0x42,0x00,0x00,0x00,
    -0x44,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0xa3,0x01,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xa2,0x01,0x00,0x00,0x20,0x00,0x04,0x00,
    -0xa4,0x01,0x00,0x00,0x07,0x00,0x00,0x00,0xa3,0x01,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xb4,0x01,0x00,0x00,
    +0xcf,0x01,0x00,0x00,0x84,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,
    +0xc8,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0xd0,0x01,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xcf,0x01,0x00,0x00,0x20,0x00,0x04,0x00,
    +0xd1,0x01,0x00,0x00,0x07,0x00,0x00,0x00,0xd0,0x01,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xda,0x01,0x00,0x00,
    +0x86,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xe2,0x01,0x00,0x00,
     0x80,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xcf,0x01,0x00,0x00,
    -0x84,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,
    -0x1c,0x00,0x04,0x00,0xd0,0x01,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0xcf,0x01,0x00,0x00,0x20,0x00,0x04,0x00,0xd1,0x01,0x00,0x00,
    -0x07,0x00,0x00,0x00,0xd0,0x01,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0xda,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
    -0xc5,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0xe2,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
    -0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    -0x06,0x00,0x00,0x00,0x11,0x02,0x00,0x00,0x84,0x00,0x00,0x00,
    -0x42,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    -0x7f,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
    -0x80,0x02,0x00,0x00,0x7f,0x02,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x81,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,0x80,0x02,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0x81,0x02,0x00,0x00,0x82,0x02,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    -0x86,0x02,0x00,0x00,0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x14,0x00,0x00,0x00,0x8d,0x02,0x00,0x00,0x05,0x00,0x00,0x00,
    -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x9a,0x02,0x00,0x00,
    +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x11,0x02,0x00,0x00,
     0x84,0x00,0x00,0x00,0x42,0x00,0x00,0x00,0x44,0x00,0x00,0x00,
    -0x20,0x00,0x04,0x00,0xa3,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0x36,0x00,0x05,0x00,0x02,0x00,0x00,0x00,
    +0x1d,0x00,0x03,0x00,0x7f,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0x1e,0x00,0x03,0x00,0x80,0x02,0x00,0x00,0x7f,0x02,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x81,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x80,0x02,0x00,0x00,0x3b,0x00,0x04,0x00,0x81,0x02,0x00,0x00,
    +0x82,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x14,0x00,0x00,0x00,0x86,0x02,0x00,0x00,0x08,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x8d,0x02,0x00,0x00,
    +0x05,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x9a,0x02,0x00,0x00,0x84,0x00,0x00,0x00,0x42,0x00,0x00,0x00,
    +0x44,0x00,0x00,0x00,0x36,0x00,0x05,0x00,0x02,0x00,0x00,0x00,
     0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
     0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
     0xd4,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
     0x3b,0x00,0x04,0x00,0xa4,0x01,0x00,0x00,0xa5,0x01,0x00,0x00,
     0x07,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xd1,0x01,0x00,0x00,
     0xd2,0x01,0x00,0x00,0x07,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,
    -0xad,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0xfb,0x00,0x03,0x00,
    -0x20,0x00,0x00,0x00,0xae,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xae,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,
    +0xac,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0xfb,0x00,0x03,0x00,
    +0x20,0x00,0x00,0x00,0xad,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xad,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,
     0x0e,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
     0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,
     0x0e,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
    @@ -32521,29 +36250,29 @@ unsigned char matmul_id_f16_fp32_data[] = {
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,
     0x30,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
     0x62,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x62,0x00,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xb8,0x02,0x00,0x00,
    -0x20,0x00,0x00,0x00,0xae,0x02,0x00,0x00,0xf6,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xb7,0x02,0x00,0x00,
    +0x20,0x00,0x00,0x00,0xad,0x02,0x00,0x00,0xf5,0x02,0x00,0x00,
     0x65,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xb7,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0xae,0x02,0x00,0x00,
    +0xb6,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0xad,0x02,0x00,0x00,
     0x9f,0x00,0x00,0x00,0x65,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
     0x16,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0x13,0x00,0x00,0x00,
     0x68,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x6a,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0xb7,0x02,0x00,0x00,
    +0x6b,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0xb6,0x02,0x00,0x00,
     0x6a,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x64,0x00,0x00,0x00,
     0x65,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
     0x6c,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x64,0x00,0x00,0x00,
     0xf8,0x00,0x02,0x00,0x63,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
     0x6e,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x6e,0x00,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xf6,0x02,0x00,0x00,
    -0xb8,0x02,0x00,0x00,0x63,0x00,0x00,0x00,0x2d,0x03,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xf5,0x02,0x00,0x00,
    +0xb7,0x02,0x00,0x00,0x63,0x00,0x00,0x00,0x2c,0x03,0x00,0x00,
     0x71,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xf4,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
    +0xf3,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
     0x9d,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
     0x16,0x00,0x00,0x00,0x75,0x00,0x00,0x00,0x13,0x00,0x00,0x00,
     0x74,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x76,0x00,0x00,0x00,0x75,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0x77,0x00,0x00,0x00,0xf4,0x02,0x00,0x00,
    +0x6b,0x00,0x00,0x00,0x77,0x00,0x00,0x00,0xf3,0x02,0x00,0x00,
     0x76,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x70,0x00,0x00,0x00,
     0x71,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
     0x77,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x70,0x00,0x00,0x00,
    @@ -32551,9 +36280,9 @@ unsigned char matmul_id_f16_fp32_data[] = {
     0x16,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x13,0x00,0x00,0x00,
     0x7d,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x7f,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0xb7,0x02,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0xb6,0x02,0x00,0x00,
     0x7f,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x82,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0xf4,0x02,0x00,0x00,
    +0x82,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0xf3,0x02,0x00,0x00,
     0x41,0x00,0x06,0x00,0x83,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
     0x7b,0x00,0x00,0x00,0x15,0x00,0x00,0x00,0x82,0x00,0x00,0x00,
     0x3d,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x85,0x00,0x00,0x00,
    @@ -32564,35 +36293,35 @@ unsigned char matmul_id_f16_fp32_data[] = {
     0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x88,0x00,0x00,0x00,
     0x89,0x00,0x00,0x00,0x8a,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
     0x89,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x8b,0x00,0x00,0x00,
    -0x93,0x00,0x00,0x00,0xf4,0x02,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x8b,0x00,0x00,0x00,0x95,0x00,0x00,0x00,0xb7,0x02,0x00,0x00,
    +0x93,0x00,0x00,0x00,0xf3,0x02,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x8b,0x00,0x00,0x00,0x95,0x00,0x00,0x00,0xb6,0x02,0x00,0x00,
     0x50,0x00,0x05,0x00,0x8c,0x00,0x00,0x00,0x96,0x00,0x00,0x00,
     0x93,0x00,0x00,0x00,0x95,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
     0x97,0x00,0x00,0x00,0x98,0x00,0x00,0x00,0x90,0x00,0x00,0x00,
    -0xf6,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0x98,0x00,0x00,0x00,
    +0xf5,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0x98,0x00,0x00,0x00,
     0x96,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x9b,0x00,0x00,0x00,0xf6,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0x9b,0x00,0x00,0x00,0xf5,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,
     0xf9,0x00,0x02,0x00,0x8a,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
     0x8a,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x2d,0x03,0x00,0x00,0xf6,0x02,0x00,0x00,0x6f,0x00,0x00,0x00,
    +0x2c,0x03,0x00,0x00,0xf5,0x02,0x00,0x00,0x6f,0x00,0x00,0x00,
     0x9b,0x00,0x00,0x00,0x89,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
     0x71,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x71,0x00,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,
    -0xf4,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xf3,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
     0x6e,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x70,0x00,0x00,0x00,
     0xf9,0x00,0x02,0x00,0x65,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
     0x65,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x9f,0x00,0x00,0x00,0xb7,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0x9f,0x00,0x00,0x00,0xb6,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,
     0xf9,0x00,0x02,0x00,0x62,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
     0x64,0x00,0x00,0x00,0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,
     0x0c,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0x2c,0x00,0x00,0x00,
     0xa2,0x00,0x00,0x00,0xae,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0xa5,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0xb8,0x02,0x00,0x00,
    +0xa5,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0xb7,0x02,0x00,0x00,
     0xf7,0x00,0x03,0x00,0xa7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
     0xfa,0x00,0x04,0x00,0xa5,0x00,0x00,0x00,0xa6,0x00,0x00,0x00,
     0xa7,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xa6,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xad,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xf9,0x00,0x02,0x00,0xac,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
     0xa7,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
     0xab,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0xaa,0x00,0x00,0x00,
     0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xac,0x00,0x00,0x00,
    @@ -32612,479 +36341,478 @@ unsigned char matmul_id_f16_fp32_data[] = {
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,
     0xb9,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
     0xbe,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xbe,0x00,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xb9,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xb8,0x02,0x00,0x00,
     0x20,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,
     0xbf,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0xce,0x00,0x00,0x00,0xb9,0x02,0x00,0x00,0xcd,0x00,0x00,0x00,
    +0xce,0x00,0x00,0x00,0xb8,0x02,0x00,0x00,0xcd,0x00,0x00,0x00,
     0xf6,0x00,0x04,0x00,0xc0,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,
     0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xce,0x00,0x00,0x00,
     0xbf,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
     0xbf,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,
    -0xd9,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0xb9,0x02,0x00,0x00,
    +0xd9,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0xb8,0x02,0x00,0x00,
     0x3e,0x00,0x03,0x00,0xd9,0x00,0x00,0x00,0xd7,0x00,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,
    -0xb9,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xb8,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
     0xbe,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xc0,0x00,0x00,0x00,
     0xf9,0x00,0x02,0x00,0xdd,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
     0xdd,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xd3,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,
    +0xd2,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,
     0x89,0x01,0x00,0x00,0xe0,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xcf,0x02,0x00,0x00,0xbb,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0xce,0x02,0x00,0x00,0xbb,0x00,0x00,0x00,
     0xc0,0x00,0x00,0x00,0x86,0x01,0x00,0x00,0xe0,0x00,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xba,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xb9,0x02,0x00,0x00,
     0x20,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x34,0x02,0x00,0x00,
     0xe0,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0xe4,0x00,0x00,0x00,0xba,0x02,0x00,0x00,0xac,0x00,0x00,0x00,
    +0xe4,0x00,0x00,0x00,0xb9,0x02,0x00,0x00,0xac,0x00,0x00,0x00,
     0xf6,0x00,0x04,0x00,0xdf,0x00,0x00,0x00,0xe0,0x00,0x00,0x00,
     0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xe4,0x00,0x00,0x00,
     0xde,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
     0xde,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xe6,0x00,0x00,0x00,
     0xf8,0x00,0x02,0x00,0xe6,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xcb,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    -0xde,0x00,0x00,0x00,0x30,0x01,0x00,0x00,0xe9,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0xca,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    +0xde,0x00,0x00,0x00,0x2e,0x01,0x00,0x00,0xe9,0x00,0x00,0x00,
     0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xec,0x00,0x00,0x00,
    -0xcb,0x02,0x00,0x00,0x19,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xca,0x02,0x00,0x00,0x19,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
     0xe8,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
     0xfa,0x00,0x04,0x00,0xec,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,
     0xe8,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xe7,0x00,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,
    -0xb4,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xf2,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,
    -0xcb,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0xf5,0x00,0x00,0x00,0xf2,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    -0xf7,0x00,0x03,0x00,0xf7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xf5,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,
    -0xf7,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xf6,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,
    -0xba,0x02,0x00,0x00,0x50,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,
    -0xac,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xf7,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xf7,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x6b,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,
    -0xe7,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,
    -0xf7,0x00,0x03,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xfd,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,
    -0x21,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xfe,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x07,0x01,0x00,0x00,
    -0x55,0x00,0x00,0x00,0xcb,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x09,0x01,0x00,0x00,0x07,0x01,0x00,0x00,
    -0x08,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x0b,0x01,0x00,0x00,0x09,0x01,0x00,0x00,0x50,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x17,0x01,0x00,0x00,
    -0x07,0x01,0x00,0x00,0xb7,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x18,0x01,0x00,0x00,0xcf,0x02,0x00,0x00,
    -0x17,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x1a,0x01,0x00,0x00,0x18,0x01,0x00,0x00,0x50,0x00,0x00,0x00,
    -0x41,0x00,0x06,0x00,0x1b,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,
    -0x10,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x1a,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x0c,0x01,0x00,0x00,0x1d,0x01,0x00,0x00,
    -0x1c,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    -0x1e,0x01,0x00,0x00,0x1d,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x1f,0x01,0x00,0x00,0x20,0x01,0x00,0x00,0x04,0x01,0x00,0x00,
    -0x0b,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x20,0x01,0x00,0x00,
    -0x1e,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xff,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x21,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x24,0x01,0x00,0x00,0x55,0x00,0x00,0x00,
    -0xcb,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x26,0x01,0x00,0x00,0x24,0x01,0x00,0x00,0x25,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x28,0x01,0x00,0x00,
    -0x26,0x01,0x00,0x00,0x50,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x1f,0x01,0x00,0x00,0x29,0x01,0x00,0x00,0x04,0x01,0x00,0x00,
    -0x28,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x29,0x01,0x00,0x00,
    -0xd7,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xff,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xff,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xe9,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xe9,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x30,0x01,0x00,0x00,
    -0xcb,0x02,0x00,0x00,0x2e,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xe6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xe8,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x32,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x32,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xcc,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,
    -0x83,0x01,0x00,0x00,0x35,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0x38,0x01,0x00,0x00,0xcc,0x02,0x00,0x00,
    -0xa2,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x34,0x01,0x00,0x00,
    -0x35,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x38,0x01,0x00,0x00,0x33,0x01,0x00,0x00,0x34,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x33,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x3d,0x01,0x00,0x00,0xa3,0x00,0x00,0x00,
    -0x5f,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x3f,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,0xcc,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x42,0x01,0x00,0x00,
    -0x3f,0x01,0x00,0x00,0xb8,0x02,0x00,0x00,0xf7,0x00,0x03,0x00,
    -0x44,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x42,0x01,0x00,0x00,0x43,0x01,0x00,0x00,0x76,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x43,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x97,0x00,0x00,0x00,0x48,0x01,0x00,0x00,0x90,0x00,0x00,0x00,
    -0x3f,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,
    -0x49,0x01,0x00,0x00,0x48,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x51,0x01,0x00,0x00,0x5f,0x00,0x00,0x00,
    -0xcc,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x53,0x01,0x00,0x00,0x51,0x01,0x00,0x00,0x52,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x55,0x01,0x00,0x00,
    -0x53,0x01,0x00,0x00,0x5a,0x00,0x00,0x00,0x51,0x00,0x05,0x00,
    -0x8b,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,0x49,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x5e,0x01,0x00,0x00,0x5d,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x16,0x00,0x00,0x00,0x60,0x01,0x00,0x00,0x13,0x00,0x00,0x00,
    -0x5f,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x61,0x01,0x00,0x00,0x60,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x62,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,
    -0x61,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x63,0x01,0x00,0x00,0xd3,0x02,0x00,0x00,0x62,0x01,0x00,0x00,
    -0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,0x65,0x01,0x00,0x00,
    -0x49,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x66,0x01,0x00,0x00,0x65,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0x68,0x01,0x00,0x00,
    -0x13,0x00,0x00,0x00,0x67,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x69,0x01,0x00,0x00,0x68,0x01,0x00,0x00,
    -0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6a,0x01,0x00,0x00,
    -0x66,0x01,0x00,0x00,0x69,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x16,0x00,0x00,0x00,0x6c,0x01,0x00,0x00,0x13,0x00,0x00,0x00,
    -0x6b,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x6d,0x01,0x00,0x00,0x6c,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x6e,0x01,0x00,0x00,0x6a,0x01,0x00,0x00,
    -0x6d,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x6f,0x01,0x00,0x00,0x63,0x01,0x00,0x00,0x6e,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x71,0x01,0x00,0x00,
    -0x6f,0x01,0x00,0x00,0x5a,0x00,0x00,0x00,0x41,0x00,0x06,0x00,
    -0x1b,0x01,0x00,0x00,0x72,0x01,0x00,0x00,0x59,0x01,0x00,0x00,
    -0x15,0x00,0x00,0x00,0x71,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x0c,0x01,0x00,0x00,0x73,0x01,0x00,0x00,0x72,0x01,0x00,0x00,
    -0x73,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0x74,0x01,0x00,0x00,
    -0x73,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x1f,0x01,0x00,0x00,
    -0x75,0x01,0x00,0x00,0x4e,0x01,0x00,0x00,0x55,0x01,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x75,0x01,0x00,0x00,0x74,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x44,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x76,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x79,0x01,0x00,0x00,0x5f,0x00,0x00,0x00,0xcc,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7b,0x01,0x00,0x00,
    -0x79,0x01,0x00,0x00,0x7a,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x7d,0x01,0x00,0x00,0x7b,0x01,0x00,0x00,
    -0x5a,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x1f,0x01,0x00,0x00,
    -0x7e,0x01,0x00,0x00,0x4e,0x01,0x00,0x00,0x7d,0x01,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x7e,0x01,0x00,0x00,0xd7,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x44,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x44,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x35,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x35,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x83,0x01,0x00,0x00,0xcc,0x02,0x00,0x00,
    -0x81,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x32,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x34,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,
    -0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x86,0x01,0x00,0x00,
    -0xcf,0x02,0x00,0x00,0x84,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x89,0x01,0x00,0x00,0xd3,0x02,0x00,0x00,
    -0x87,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x8b,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x8b,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xd5,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x34,0x01,0x00,0x00,0x32,0x02,0x00,0x00,0x8e,0x01,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x91,0x01,0x00,0x00,
    -0xd5,0x02,0x00,0x00,0x4e,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x8d,0x01,0x00,0x00,0x8e,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x91,0x01,0x00,0x00,0x8c,0x01,0x00,0x00,
    -0x8d,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x8c,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x93,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x93,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xd9,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0x8c,0x01,0x00,0x00,
    -0xbe,0x01,0x00,0x00,0x96,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0x99,0x01,0x00,0x00,0xd9,0x02,0x00,0x00,
    -0x42,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x95,0x01,0x00,0x00,
    -0x96,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x99,0x01,0x00,0x00,0x94,0x01,0x00,0x00,0x95,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x94,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x9b,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x9b,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xeb,0x02,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x94,0x01,0x00,0x00,0xbc,0x01,0x00,0x00,
    -0x9c,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0xa1,0x01,0x00,0x00,0xeb,0x02,0x00,0x00,0x44,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x9d,0x01,0x00,0x00,0x9c,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xa1,0x01,0x00,0x00,
    -0x9c,0x01,0x00,0x00,0x9d,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x9c,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xa7,0x01,0x00,0x00,0xd9,0x02,0x00,0x00,0x44,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa9,0x01,0x00,0x00,
    -0xa7,0x01,0x00,0x00,0xeb,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xab,0x01,0x00,0x00,0x37,0x00,0x00,0x00,
    -0x35,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xad,0x01,0x00,0x00,0xd9,0x02,0x00,0x00,0x43,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xae,0x01,0x00,0x00,
    -0xab,0x01,0x00,0x00,0xad,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xb0,0x01,0x00,0x00,0x46,0x00,0x00,0x00,
    -0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xb1,0x01,0x00,0x00,0xae,0x01,0x00,0x00,0xb0,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb3,0x01,0x00,0x00,
    -0xb1,0x01,0x00,0x00,0xeb,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xb5,0x01,0x00,0x00,0xb3,0x01,0x00,0x00,
    -0xb4,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xb7,0x01,0x00,0x00,0xb5,0x01,0x00,0x00,0xd5,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x1f,0x01,0x00,0x00,0xb8,0x01,0x00,0x00,
    -0x04,0x01,0x00,0x00,0xb7,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xcf,0x00,0x00,0x00,0xb9,0x01,0x00,0x00,0xb8,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,0xba,0x01,0x00,0x00,
    -0xa5,0x01,0x00,0x00,0xa9,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0xba,0x01,0x00,0x00,0xb9,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xbc,0x01,0x00,0x00,0xeb,0x02,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x9b,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x9d,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x96,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x96,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbe,0x01,0x00,0x00,
    -0xd9,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x93,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x95,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xc0,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xc0,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xda,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0x95,0x01,0x00,0x00,
    -0xec,0x01,0x00,0x00,0xc3,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0xc6,0x01,0x00,0x00,0xda,0x02,0x00,0x00,
    -0xcb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xc2,0x01,0x00,0x00,
    -0xc3,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xc6,0x01,0x00,0x00,0xc1,0x01,0x00,0x00,0xc2,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xc1,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xc8,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xc8,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xe8,0x02,0x00,0x00,
    -0x20,0x00,0x00,0x00,0xc1,0x01,0x00,0x00,0xea,0x01,0x00,0x00,
    -0xc9,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0xce,0x01,0x00,0x00,0xe8,0x02,0x00,0x00,0xc8,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xca,0x01,0x00,0x00,0xc9,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xce,0x01,0x00,0x00,
    -0xc9,0x01,0x00,0x00,0xca,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xc9,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xd4,0x01,0x00,0x00,0xda,0x02,0x00,0x00,0xc8,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd6,0x01,0x00,0x00,
    -0xd4,0x01,0x00,0x00,0xe8,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xd8,0x01,0x00,0x00,0x3b,0x00,0x00,0x00,
    -0xc5,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xdb,0x01,0x00,0x00,0xda,0x02,0x00,0x00,0xda,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdc,0x01,0x00,0x00,
    -0xd8,0x01,0x00,0x00,0xdb,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xde,0x01,0x00,0x00,0x4a,0x00,0x00,0x00,
    -0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xdf,0x01,0x00,0x00,0xdc,0x01,0x00,0x00,0xde,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe1,0x01,0x00,0x00,
    -0xdf,0x01,0x00,0x00,0xe8,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xe3,0x01,0x00,0x00,0xe1,0x01,0x00,0x00,
    -0xe2,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xe5,0x01,0x00,0x00,0xe3,0x01,0x00,0x00,0xd5,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x1f,0x01,0x00,0x00,0xe6,0x01,0x00,0x00,
    -0x4e,0x01,0x00,0x00,0xe5,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xcf,0x00,0x00,0x00,0xe7,0x01,0x00,0x00,0xe6,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,0xe8,0x01,0x00,0x00,
    -0xd2,0x01,0x00,0x00,0xd6,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0xe8,0x01,0x00,0x00,0xe7,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xea,0x01,0x00,0x00,0xe8,0x02,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xc8,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xca,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xc3,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xc3,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xec,0x01,0x00,0x00,
    -0xda,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xc0,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xc2,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xee,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xee,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xdb,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0xc2,0x01,0x00,0x00,
    -0x30,0x02,0x00,0x00,0xf1,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0xf4,0x01,0x00,0x00,0xdb,0x02,0x00,0x00,
    -0xcb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xf0,0x01,0x00,0x00,
    -0xf1,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xf4,0x01,0x00,0x00,0xef,0x01,0x00,0x00,0xf0,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xef,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xf6,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xf6,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xdf,0x02,0x00,0x00,
    -0x20,0x00,0x00,0x00,0xef,0x01,0x00,0x00,0x2e,0x02,0x00,0x00,
    -0xf9,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0xfc,0x01,0x00,0x00,0xdf,0x02,0x00,0x00,0x42,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xf8,0x01,0x00,0x00,0xf9,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xfc,0x01,0x00,0x00,
    -0xf7,0x01,0x00,0x00,0xf8,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xf7,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xfe,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xfe,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xe1,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    -0xf7,0x01,0x00,0x00,0x2c,0x02,0x00,0x00,0x01,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x04,0x02,0x00,0x00,
    -0xe1,0x02,0x00,0x00,0xc8,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x00,0x02,0x00,0x00,0x01,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x04,0x02,0x00,0x00,0xff,0x01,0x00,0x00,
    -0x00,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xff,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x06,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x06,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xe3,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0xff,0x01,0x00,0x00,
    -0x2a,0x02,0x00,0x00,0x07,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0x0c,0x02,0x00,0x00,0xe3,0x02,0x00,0x00,
    -0x44,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x08,0x02,0x00,0x00,
    -0x07,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x0c,0x02,0x00,0x00,0x07,0x02,0x00,0x00,0x08,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x07,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x0e,0x02,0x00,0x00,0xdb,0x02,0x00,0x00,
    -0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x10,0x02,0x00,0x00,0x0e,0x02,0x00,0x00,0xe1,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x12,0x02,0x00,0x00,
    -0x10,0x02,0x00,0x00,0x11,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x14,0x02,0x00,0x00,0xdf,0x02,0x00,0x00,
    -0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x15,0x02,0x00,0x00,0x12,0x02,0x00,0x00,0x14,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x17,0x02,0x00,0x00,
    -0x15,0x02,0x00,0x00,0xe3,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x1b,0x02,0x00,0x00,0x14,0x02,0x00,0x00,
    -0xe3,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,
    -0x1c,0x02,0x00,0x00,0xa5,0x01,0x00,0x00,0x1b,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0x1d,0x02,0x00,0x00,
    -0x1c,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,
    -0x22,0x02,0x00,0x00,0xd2,0x01,0x00,0x00,0x10,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0x23,0x02,0x00,0x00,
    -0x22,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,
    -0x25,0x02,0x00,0x00,0xd5,0x00,0x00,0x00,0x17,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0x26,0x02,0x00,0x00,
    -0x25,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0xcf,0x00,0x00,0x00,
    -0x27,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,
    -0x1d,0x02,0x00,0x00,0x23,0x02,0x00,0x00,0x26,0x02,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x25,0x02,0x00,0x00,0x27,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2a,0x02,0x00,0x00,
    -0xe3,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x06,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x08,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x01,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x01,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x2c,0x02,0x00,0x00,0xe1,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xfe,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x00,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xf9,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xf9,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x2e,0x02,0x00,0x00,0xdf,0x02,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xf6,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xf8,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xf1,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xf1,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x30,0x02,0x00,0x00,
    -0xdb,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xee,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xf0,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x8e,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x8e,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x32,0x02,0x00,0x00,0xd5,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xb4,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xf2,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,
    +0xca,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0xf5,0x00,0x00,0x00,0xf2,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    +0xf7,0x00,0x03,0x00,0xf7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xf5,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,
    +0xf7,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xf6,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,
    +0xb9,0x02,0x00,0x00,0x50,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,
    +0xac,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xf7,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xf7,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x6b,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,
    +0xe7,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,
    +0xf7,0x00,0x03,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xfd,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,
    +0x1f,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xfe,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x07,0x01,0x00,0x00,
    +0x55,0x00,0x00,0x00,0xca,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x09,0x01,0x00,0x00,0x07,0x01,0x00,0x00,
    +0x08,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x0b,0x01,0x00,0x00,0x09,0x01,0x00,0x00,0x50,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x16,0x01,0x00,0x00,
    +0x07,0x01,0x00,0x00,0xb7,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x17,0x01,0x00,0x00,0xce,0x02,0x00,0x00,
    +0x16,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x19,0x01,0x00,0x00,0x17,0x01,0x00,0x00,0x50,0x00,0x00,0x00,
    +0x41,0x00,0x06,0x00,0x1a,0x01,0x00,0x00,0x1b,0x01,0x00,0x00,
    +0x0f,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x19,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,
    +0x1b,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x1d,0x01,0x00,0x00,
    +0x1e,0x01,0x00,0x00,0x04,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x1e,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xff,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x1f,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x22,0x01,0x00,0x00,0x55,0x00,0x00,0x00,0xca,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x24,0x01,0x00,0x00,
    +0x22,0x01,0x00,0x00,0x23,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x26,0x01,0x00,0x00,0x24,0x01,0x00,0x00,
    +0x50,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x1d,0x01,0x00,0x00,
    +0x27,0x01,0x00,0x00,0x04,0x01,0x00,0x00,0x26,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x27,0x01,0x00,0x00,0xd7,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xff,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xff,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xe9,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xe9,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x2e,0x01,0x00,0x00,0xca,0x02,0x00,0x00,
    +0x2c,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xe6,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xe8,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x30,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x30,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xcb,0x02,0x00,0x00,
    +0x20,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0x83,0x01,0x00,0x00,
    +0x33,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0x36,0x01,0x00,0x00,0xcb,0x02,0x00,0x00,0xa2,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x32,0x01,0x00,0x00,0x33,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x36,0x01,0x00,0x00,
    +0x31,0x01,0x00,0x00,0x32,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x31,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x3b,0x01,0x00,0x00,0xa3,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3d,0x01,0x00,0x00,
    +0x3b,0x01,0x00,0x00,0xcb,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x40,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,
    +0xb7,0x02,0x00,0x00,0xf7,0x00,0x03,0x00,0x42,0x01,0x00,0x00,
    +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x40,0x01,0x00,0x00,
    +0x41,0x01,0x00,0x00,0x76,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x41,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x97,0x00,0x00,0x00,
    +0x46,0x01,0x00,0x00,0x90,0x00,0x00,0x00,0x3d,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,0x47,0x01,0x00,0x00,
    +0x46,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x4f,0x01,0x00,0x00,0x5f,0x00,0x00,0x00,0xcb,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x51,0x01,0x00,0x00,
    +0x4f,0x01,0x00,0x00,0x50,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x53,0x01,0x00,0x00,0x51,0x01,0x00,0x00,
    +0x5a,0x00,0x00,0x00,0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,
    +0x5c,0x01,0x00,0x00,0x47,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,
    +0x5c,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
    +0x5f,0x01,0x00,0x00,0x13,0x00,0x00,0x00,0x5e,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x60,0x01,0x00,0x00,
    +0x5f,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x61,0x01,0x00,0x00,0x5d,0x01,0x00,0x00,0x60,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x62,0x01,0x00,0x00,
    +0xd2,0x02,0x00,0x00,0x61,0x01,0x00,0x00,0x51,0x00,0x05,0x00,
    +0x8b,0x00,0x00,0x00,0x64,0x01,0x00,0x00,0x47,0x01,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x65,0x01,0x00,0x00,0x64,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x16,0x00,0x00,0x00,0x67,0x01,0x00,0x00,0x13,0x00,0x00,0x00,
    +0x66,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x68,0x01,0x00,0x00,0x67,0x01,0x00,0x00,0x89,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x69,0x01,0x00,0x00,0x65,0x01,0x00,0x00,
    +0x68,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
    +0x6b,0x01,0x00,0x00,0x13,0x00,0x00,0x00,0x6a,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x6c,0x01,0x00,0x00,
    +0x6b,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x6d,0x01,0x00,0x00,0x69,0x01,0x00,0x00,0x6c,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6e,0x01,0x00,0x00,
    +0x62,0x01,0x00,0x00,0x6d,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x70,0x01,0x00,0x00,0x6e,0x01,0x00,0x00,
    +0x5a,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x71,0x01,0x00,0x00,
    +0x72,0x01,0x00,0x00,0x58,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    +0x70,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x54,0x01,0x00,0x00,
    +0x73,0x01,0x00,0x00,0x72,0x01,0x00,0x00,0x73,0x00,0x04,0x00,
    +0xcf,0x00,0x00,0x00,0x74,0x01,0x00,0x00,0x73,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x1d,0x01,0x00,0x00,0x75,0x01,0x00,0x00,
    +0x4c,0x01,0x00,0x00,0x53,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x75,0x01,0x00,0x00,0x74,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x42,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x76,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x79,0x01,0x00,0x00,
    +0x5f,0x00,0x00,0x00,0xcb,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x7b,0x01,0x00,0x00,0x79,0x01,0x00,0x00,
    +0x7a,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x7d,0x01,0x00,0x00,0x7b,0x01,0x00,0x00,0x5a,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x1d,0x01,0x00,0x00,0x7e,0x01,0x00,0x00,
    +0x4c,0x01,0x00,0x00,0x7d,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x7e,0x01,0x00,0x00,0xd7,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x42,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x42,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x33,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x33,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x83,0x01,0x00,0x00,0xcb,0x02,0x00,0x00,0x81,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x30,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x32,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x86,0x01,0x00,0x00,0xce,0x02,0x00,0x00,
    +0x84,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x89,0x01,0x00,0x00,0xd2,0x02,0x00,0x00,0x87,0x01,0x00,0x00,
     0xf9,0x00,0x02,0x00,0x8b,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x8d,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xe0,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xe0,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x34,0x02,0x00,0x00,
    -0xba,0x02,0x00,0x00,0x4e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xdd,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xdf,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x39,0x02,0x00,0x00,
    -0x37,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x3a,0x02,0x00,0x00,0xb4,0x00,0x00,0x00,
    -0x39,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x3f,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x40,0x02,0x00,0x00,
    -0xa3,0x00,0x00,0x00,0x3f,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x42,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x42,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xbb,0x02,0x00,0x00,
    -0x20,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0xac,0x02,0x00,0x00,
    -0x45,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0x48,0x02,0x00,0x00,0xbb,0x02,0x00,0x00,0xcb,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x44,0x02,0x00,0x00,0x45,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x48,0x02,0x00,0x00,
    -0x43,0x02,0x00,0x00,0x44,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x43,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x4a,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x4a,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xbc,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x43,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,0x4d,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x50,0x02,0x00,0x00,
    -0xbc,0x02,0x00,0x00,0x42,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x4c,0x02,0x00,0x00,0x4d,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x50,0x02,0x00,0x00,0x4b,0x02,0x00,0x00,
    -0x4c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x4b,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x54,0x02,0x00,0x00,
    -0xbc,0x02,0x00,0x00,0x43,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x55,0x02,0x00,0x00,0x3a,0x02,0x00,0x00,
    -0x54,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x57,0x02,0x00,0x00,0x46,0x00,0x00,0x00,0x44,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x58,0x02,0x00,0x00,
    -0x55,0x02,0x00,0x00,0x57,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x5c,0x02,0x00,0x00,0xbb,0x02,0x00,0x00,
    -0xda,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x5d,0x02,0x00,0x00,0x40,0x02,0x00,0x00,0x5c,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5f,0x02,0x00,0x00,
    -0x4a,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x60,0x02,0x00,0x00,0x5d,0x02,0x00,0x00,
    -0x5f,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x62,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x62,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xbe,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x4b,0x02,0x00,0x00,0xa8,0x02,0x00,0x00,0x65,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x68,0x02,0x00,0x00,
    -0xbe,0x02,0x00,0x00,0xc8,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x64,0x02,0x00,0x00,0x65,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x68,0x02,0x00,0x00,0x63,0x02,0x00,0x00,
    -0x64,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x63,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6c,0x02,0x00,0x00,
    -0x60,0x02,0x00,0x00,0xbe,0x02,0x00,0x00,0xae,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0x6f,0x02,0x00,0x00,0x6c,0x02,0x00,0x00,
    -0xb8,0x02,0x00,0x00,0xf7,0x00,0x03,0x00,0x71,0x02,0x00,0x00,
    -0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x6f,0x02,0x00,0x00,
    -0x70,0x02,0x00,0x00,0x71,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x70,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x64,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x71,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x97,0x00,0x00,0x00,0x75,0x02,0x00,0x00,0x90,0x00,0x00,0x00,
    -0x6c,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,
    -0x76,0x02,0x00,0x00,0x75,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x78,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x78,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xc4,0x02,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x71,0x02,0x00,0x00,0xa6,0x02,0x00,0x00,
    -0x79,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0x7e,0x02,0x00,0x00,0xc4,0x02,0x00,0x00,0x44,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x7a,0x02,0x00,0x00,0x79,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x7e,0x02,0x00,0x00,
    -0x79,0x02,0x00,0x00,0x7a,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x79,0x02,0x00,0x00,0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,
    -0x84,0x02,0x00,0x00,0x76,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x85,0x02,0x00,0x00,
    -0x84,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
    -0x87,0x02,0x00,0x00,0x13,0x00,0x00,0x00,0x86,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x88,0x02,0x00,0x00,
    -0x87,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x89,0x02,0x00,0x00,0x85,0x02,0x00,0x00,0x88,0x02,0x00,0x00,
    -0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,0x8b,0x02,0x00,0x00,
    -0x76,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x8c,0x02,0x00,0x00,0x8b,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0x8e,0x02,0x00,0x00,
    -0x13,0x00,0x00,0x00,0x8d,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x8f,0x02,0x00,0x00,0x8e,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x90,0x02,0x00,0x00,
    -0x8c,0x02,0x00,0x00,0x8f,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x91,0x02,0x00,0x00,0x89,0x02,0x00,0x00,
    -0x90,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x93,0x02,0x00,0x00,0x91,0x02,0x00,0x00,0x58,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x95,0x02,0x00,0x00,
    -0x93,0x02,0x00,0x00,0xc4,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x97,0x02,0x00,0x00,0xbb,0x02,0x00,0x00,
    -0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x99,0x02,0x00,0x00,0x97,0x02,0x00,0x00,0xbe,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9b,0x02,0x00,0x00,
    -0x99,0x02,0x00,0x00,0x9a,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x9d,0x02,0x00,0x00,0xbc,0x02,0x00,0x00,
    -0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x9e,0x02,0x00,0x00,0x9b,0x02,0x00,0x00,0x9d,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa0,0x02,0x00,0x00,
    -0x9e,0x02,0x00,0x00,0xc4,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xd8,0x00,0x00,0x00,0xa1,0x02,0x00,0x00,0xd5,0x00,0x00,0x00,
    -0xa0,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    -0xa2,0x02,0x00,0x00,0xa1,0x02,0x00,0x00,0x41,0x00,0x06,0x00,
    -0xa3,0x02,0x00,0x00,0xa4,0x02,0x00,0x00,0x82,0x02,0x00,0x00,
    -0x15,0x00,0x00,0x00,0x95,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0xa4,0x02,0x00,0x00,0xa2,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xa6,0x02,0x00,0x00,0xc4,0x02,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x78,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x7a,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x65,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x65,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa8,0x02,0x00,0x00,
    -0xbe,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x62,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x64,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x4d,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x4d,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xaa,0x02,0x00,0x00,0xbc,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0x8b,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xd4,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0x32,0x01,0x00,0x00,
    +0x32,0x02,0x00,0x00,0x8e,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x91,0x01,0x00,0x00,0xd4,0x02,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x8d,0x01,0x00,0x00,
    +0x8e,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x91,0x01,0x00,0x00,0x8c,0x01,0x00,0x00,0x8d,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x8c,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x93,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x93,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xd8,0x02,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x8c,0x01,0x00,0x00,0xbe,0x01,0x00,0x00,
    +0x96,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0x99,0x01,0x00,0x00,0xd8,0x02,0x00,0x00,0x42,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x95,0x01,0x00,0x00,0x96,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x99,0x01,0x00,0x00,
    +0x94,0x01,0x00,0x00,0x95,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x94,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x9b,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x9b,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xea,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x94,0x01,0x00,0x00,0xbc,0x01,0x00,0x00,0x9c,0x01,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xa1,0x01,0x00,0x00,
    +0xea,0x02,0x00,0x00,0x44,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x9d,0x01,0x00,0x00,0x9c,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xa1,0x01,0x00,0x00,0x9c,0x01,0x00,0x00,
    +0x9d,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x9c,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa7,0x01,0x00,0x00,
    +0xd8,0x02,0x00,0x00,0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xa9,0x01,0x00,0x00,0xa7,0x01,0x00,0x00,
    +0xea,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xab,0x01,0x00,0x00,0x37,0x00,0x00,0x00,0x35,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xad,0x01,0x00,0x00,
    +0xd8,0x02,0x00,0x00,0x43,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xae,0x01,0x00,0x00,0xab,0x01,0x00,0x00,
    +0xad,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xb0,0x01,0x00,0x00,0x46,0x00,0x00,0x00,0x44,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb1,0x01,0x00,0x00,
    +0xae,0x01,0x00,0x00,0xb0,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xb3,0x01,0x00,0x00,0xb1,0x01,0x00,0x00,
    +0xea,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xb5,0x01,0x00,0x00,0xb3,0x01,0x00,0x00,0xb4,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb7,0x01,0x00,0x00,
    +0xb5,0x01,0x00,0x00,0xd4,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x1d,0x01,0x00,0x00,0xb8,0x01,0x00,0x00,0x04,0x01,0x00,0x00,
    +0xb7,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    +0xb9,0x01,0x00,0x00,0xb8,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xd8,0x00,0x00,0x00,0xba,0x01,0x00,0x00,0xa5,0x01,0x00,0x00,
    +0xa9,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xba,0x01,0x00,0x00,
    +0xb9,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xbc,0x01,0x00,0x00,0xea,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x9b,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x9d,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x96,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x96,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xbe,0x01,0x00,0x00,0xd8,0x02,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x93,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x95,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xc0,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xc0,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xd9,0x02,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x95,0x01,0x00,0x00,0xec,0x01,0x00,0x00,
    +0xc3,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0xc6,0x01,0x00,0x00,0xd9,0x02,0x00,0x00,0xcb,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xc2,0x01,0x00,0x00,0xc3,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xc6,0x01,0x00,0x00,
    +0xc1,0x01,0x00,0x00,0xc2,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xc1,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xc8,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xc8,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xe7,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    +0xc1,0x01,0x00,0x00,0xea,0x01,0x00,0x00,0xc9,0x01,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xce,0x01,0x00,0x00,
    +0xe7,0x02,0x00,0x00,0xc8,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xca,0x01,0x00,0x00,0xc9,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xce,0x01,0x00,0x00,0xc9,0x01,0x00,0x00,
    +0xca,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xc9,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd4,0x01,0x00,0x00,
    +0xd9,0x02,0x00,0x00,0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xd6,0x01,0x00,0x00,0xd4,0x01,0x00,0x00,
    +0xe7,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xd8,0x01,0x00,0x00,0x3b,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdb,0x01,0x00,0x00,
    +0xd9,0x02,0x00,0x00,0xda,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xdc,0x01,0x00,0x00,0xd8,0x01,0x00,0x00,
    +0xdb,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xde,0x01,0x00,0x00,0x4a,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdf,0x01,0x00,0x00,
    +0xdc,0x01,0x00,0x00,0xde,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xe1,0x01,0x00,0x00,0xdf,0x01,0x00,0x00,
    +0xe7,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xe3,0x01,0x00,0x00,0xe1,0x01,0x00,0x00,0xe2,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe5,0x01,0x00,0x00,
    +0xe3,0x01,0x00,0x00,0xd4,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x1d,0x01,0x00,0x00,0xe6,0x01,0x00,0x00,0x4c,0x01,0x00,0x00,
    +0xe5,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    +0xe7,0x01,0x00,0x00,0xe6,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xd8,0x00,0x00,0x00,0xe8,0x01,0x00,0x00,0xd2,0x01,0x00,0x00,
    +0xd6,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xe8,0x01,0x00,0x00,
    +0xe7,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xea,0x01,0x00,0x00,0xe7,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xc8,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xca,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xc3,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xc3,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xec,0x01,0x00,0x00,0xd9,0x02,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xc0,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xc2,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xee,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xee,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xda,0x02,0x00,0x00,
    +0x20,0x00,0x00,0x00,0xc2,0x01,0x00,0x00,0x30,0x02,0x00,0x00,
    +0xf1,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0xf4,0x01,0x00,0x00,0xda,0x02,0x00,0x00,0xcb,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xf0,0x01,0x00,0x00,0xf1,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xf4,0x01,0x00,0x00,
    +0xef,0x01,0x00,0x00,0xf0,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xef,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xf6,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xf6,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xde,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    +0xef,0x01,0x00,0x00,0x2e,0x02,0x00,0x00,0xf9,0x01,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xfc,0x01,0x00,0x00,
    +0xde,0x02,0x00,0x00,0x42,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xf8,0x01,0x00,0x00,0xf9,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xfc,0x01,0x00,0x00,0xf7,0x01,0x00,0x00,
    +0xf8,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xf7,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xfe,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xfe,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xe0,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0xf7,0x01,0x00,0x00,
    +0x2c,0x02,0x00,0x00,0x01,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x04,0x02,0x00,0x00,0xe0,0x02,0x00,0x00,
    +0xc8,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x00,0x02,0x00,0x00,
    +0x01,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x04,0x02,0x00,0x00,0xff,0x01,0x00,0x00,0x00,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xff,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x06,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x06,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xe2,0x02,0x00,0x00,
    +0x20,0x00,0x00,0x00,0xff,0x01,0x00,0x00,0x2a,0x02,0x00,0x00,
    +0x07,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0x0c,0x02,0x00,0x00,0xe2,0x02,0x00,0x00,0x44,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x08,0x02,0x00,0x00,0x07,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x0c,0x02,0x00,0x00,
    +0x07,0x02,0x00,0x00,0x08,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x07,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x0e,0x02,0x00,0x00,0xda,0x02,0x00,0x00,0xc8,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x10,0x02,0x00,0x00,
    +0x0e,0x02,0x00,0x00,0xe0,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x12,0x02,0x00,0x00,0x10,0x02,0x00,0x00,
    +0x11,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x14,0x02,0x00,0x00,0xde,0x02,0x00,0x00,0x44,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x15,0x02,0x00,0x00,
    +0x12,0x02,0x00,0x00,0x14,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x17,0x02,0x00,0x00,0x15,0x02,0x00,0x00,
    +0xe2,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x1b,0x02,0x00,0x00,0x14,0x02,0x00,0x00,0xe2,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,0x1c,0x02,0x00,0x00,
    +0xa5,0x01,0x00,0x00,0x1b,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xcf,0x00,0x00,0x00,0x1d,0x02,0x00,0x00,0x1c,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,0x22,0x02,0x00,0x00,
    +0xd2,0x01,0x00,0x00,0x10,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xcf,0x00,0x00,0x00,0x23,0x02,0x00,0x00,0x22,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,0x25,0x02,0x00,0x00,
    +0xd5,0x00,0x00,0x00,0x17,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xcf,0x00,0x00,0x00,0x26,0x02,0x00,0x00,0x25,0x02,0x00,0x00,
    +0x0c,0x00,0x08,0x00,0xcf,0x00,0x00,0x00,0x27,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x1d,0x02,0x00,0x00,
    +0x23,0x02,0x00,0x00,0x26,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x25,0x02,0x00,0x00,0x27,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x2a,0x02,0x00,0x00,0xe2,0x02,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x06,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x08,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x01,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x01,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2c,0x02,0x00,0x00,
    +0xe0,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xfe,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x00,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xf9,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xf9,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x2e,0x02,0x00,0x00,0xde,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xf6,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xf8,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xf1,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xf1,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x30,0x02,0x00,0x00,0xda,0x02,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xee,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xf0,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x8e,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x8e,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x32,0x02,0x00,0x00,
    +0xd4,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x8b,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x8d,0x01,0x00,0x00,
    +0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0xa0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xe0,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xe0,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x34,0x02,0x00,0x00,0xb9,0x02,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xdd,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xdf,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x39,0x02,0x00,0x00,0x37,0x00,0x00,0x00,
    +0x35,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x3a,0x02,0x00,0x00,0xb4,0x00,0x00,0x00,0x39,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3f,0x02,0x00,0x00,
    +0x3b,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x40,0x02,0x00,0x00,0xa3,0x00,0x00,0x00,
    +0x3f,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x42,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x42,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xba,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    +0xdf,0x00,0x00,0x00,0xab,0x02,0x00,0x00,0x45,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x48,0x02,0x00,0x00,
    +0xba,0x02,0x00,0x00,0xcb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x44,0x02,0x00,0x00,0x45,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x48,0x02,0x00,0x00,0x43,0x02,0x00,0x00,
    +0x44,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x43,0x02,0x00,0x00,
     0xf9,0x00,0x02,0x00,0x4a,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x4c,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x45,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x45,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xac,0x02,0x00,0x00,0xbb,0x02,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x42,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x44,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xad,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xad,0x02,0x00,0x00,
    -0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
    +0x4a,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xbb,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0x43,0x02,0x00,0x00,
    +0xa9,0x02,0x00,0x00,0x4d,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x50,0x02,0x00,0x00,0xbb,0x02,0x00,0x00,
    +0x42,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x4c,0x02,0x00,0x00,
    +0x4d,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x50,0x02,0x00,0x00,0x4b,0x02,0x00,0x00,0x4c,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x4b,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x54,0x02,0x00,0x00,0xbb,0x02,0x00,0x00,
    +0x43,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x55,0x02,0x00,0x00,0x3a,0x02,0x00,0x00,0x54,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x57,0x02,0x00,0x00,
    +0x46,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x58,0x02,0x00,0x00,0x55,0x02,0x00,0x00,
    +0x57,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x5c,0x02,0x00,0x00,0xba,0x02,0x00,0x00,0xda,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5d,0x02,0x00,0x00,
    +0x40,0x02,0x00,0x00,0x5c,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x5f,0x02,0x00,0x00,0x4a,0x00,0x00,0x00,
    +0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x60,0x02,0x00,0x00,0x5d,0x02,0x00,0x00,0x5f,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x62,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x62,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xbd,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0x4b,0x02,0x00,0x00,
    +0xa7,0x02,0x00,0x00,0x65,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x68,0x02,0x00,0x00,0xbd,0x02,0x00,0x00,
    +0xc8,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x64,0x02,0x00,0x00,
    +0x65,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x68,0x02,0x00,0x00,0x63,0x02,0x00,0x00,0x64,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x63,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x6c,0x02,0x00,0x00,0x60,0x02,0x00,0x00,
    +0xbd,0x02,0x00,0x00,0xae,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0x6f,0x02,0x00,0x00,0x6c,0x02,0x00,0x00,0xb7,0x02,0x00,0x00,
    +0xf7,0x00,0x03,0x00,0x71,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x6f,0x02,0x00,0x00,0x70,0x02,0x00,0x00,
    +0x71,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x70,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x64,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x71,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x97,0x00,0x00,0x00,
    +0x75,0x02,0x00,0x00,0x90,0x00,0x00,0x00,0x6c,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,0x76,0x02,0x00,0x00,
    +0x75,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x78,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x78,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xc3,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x71,0x02,0x00,0x00,0xa5,0x02,0x00,0x00,0x79,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x7e,0x02,0x00,0x00,
    +0xc3,0x02,0x00,0x00,0x44,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x7a,0x02,0x00,0x00,0x79,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x7e,0x02,0x00,0x00,0x79,0x02,0x00,0x00,
    +0x7a,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x79,0x02,0x00,0x00,
    +0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,0x84,0x02,0x00,0x00,
    +0x76,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x85,0x02,0x00,0x00,0x84,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0x87,0x02,0x00,0x00,
    +0x13,0x00,0x00,0x00,0x86,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x88,0x02,0x00,0x00,0x87,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x89,0x02,0x00,0x00,
    +0x85,0x02,0x00,0x00,0x88,0x02,0x00,0x00,0x51,0x00,0x05,0x00,
    +0x8b,0x00,0x00,0x00,0x8b,0x02,0x00,0x00,0x76,0x02,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x8c,0x02,0x00,0x00,0x8b,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x16,0x00,0x00,0x00,0x8e,0x02,0x00,0x00,0x13,0x00,0x00,0x00,
    +0x8d,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x8f,0x02,0x00,0x00,0x8e,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x90,0x02,0x00,0x00,0x8c,0x02,0x00,0x00,
    +0x8f,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x91,0x02,0x00,0x00,0x89,0x02,0x00,0x00,0x90,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x93,0x02,0x00,0x00,
    +0x91,0x02,0x00,0x00,0x58,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x95,0x02,0x00,0x00,0x93,0x02,0x00,0x00,
    +0xc3,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x97,0x02,0x00,0x00,0xba,0x02,0x00,0x00,0xc8,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x99,0x02,0x00,0x00,
    +0x97,0x02,0x00,0x00,0xbd,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x9b,0x02,0x00,0x00,0x99,0x02,0x00,0x00,
    +0x9a,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x9d,0x02,0x00,0x00,0xbb,0x02,0x00,0x00,0x44,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9e,0x02,0x00,0x00,
    +0x9b,0x02,0x00,0x00,0x9d,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xa0,0x02,0x00,0x00,0x9e,0x02,0x00,0x00,
    +0xc3,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,
    +0xa1,0x02,0x00,0x00,0xd5,0x00,0x00,0x00,0xa0,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0xa2,0x02,0x00,0x00,
    +0xa1,0x02,0x00,0x00,0x41,0x00,0x06,0x00,0x1a,0x01,0x00,0x00,
    +0xa3,0x02,0x00,0x00,0x82,0x02,0x00,0x00,0x15,0x00,0x00,0x00,
    +0x95,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0xa3,0x02,0x00,0x00,
    +0xa2,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xa5,0x02,0x00,0x00,0xc3,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x78,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x7a,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x65,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x65,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xa7,0x02,0x00,0x00,0xbd,0x02,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x62,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x64,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x4d,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x4d,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa9,0x02,0x00,0x00,
    +0xbb,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x4a,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x4c,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x45,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x45,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xab,0x02,0x00,0x00,0xba,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x42,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x44,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xac,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xac,0x02,0x00,0x00,0xfd,0x00,0x01,0x00,
    +0x38,0x00,0x01,0x00,
     };
    -const uint64_t matmul_id_f16_fp32_len = 10748;
    +const uint64_t matmul_id_f32_f16_fp32_len = 10732;
     
    -unsigned char matmul_id_f32_data[] = {
    +unsigned char matmul_id_f32_f32_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
     0x31,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00,
     0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x09,0x00,0x00,0x00,
    @@ -33986,9 +37714,9 @@ unsigned char matmul_id_f32_data[] = {
     0xb0,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xb0,0x02,0x00,0x00,
     0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
     };
    -const uint64_t matmul_id_f32_len = 10796;
    +const uint64_t matmul_id_f32_f32_len = 10796;
     
    -unsigned char matmul_id_f32_aligned_data[] = {
    +unsigned char matmul_id_f32_f32_aligned_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
     0x6d,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00,
     0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x09,0x00,0x00,0x00,
    @@ -35001,9 +38729,9 @@ unsigned char matmul_id_f32_aligned_data[] = {
     0xfb,0x02,0x00,0x00,0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
     
     };
    -const uint64_t matmul_id_f32_aligned_len = 12120;
    +const uint64_t matmul_id_f32_f32_aligned_len = 12120;
     
    -unsigned char matmul_id_f32_aligned_fp32_data[] = {
    +unsigned char matmul_id_f32_f32_aligned_fp32_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
     0x24,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00,
     0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x16,0x00,0x00,0x00,
    @@ -35907,9 +39635,9 @@ unsigned char matmul_id_f32_aligned_fp32_data[] = {
     0xb2,0x02,0x00,0x00,0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
     
     };
    -const uint64_t matmul_id_f32_aligned_fp32_len = 10812;
    +const uint64_t matmul_id_f32_f32_aligned_fp32_len = 10812;
     
    -unsigned char matmul_id_f32_fp32_data[] = {
    +unsigned char matmul_id_f32_f32_fp32_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
     0x2a,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00,
     0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x16,0x00,0x00,0x00,
    @@ -36802,7 +40530,7 @@ unsigned char matmul_id_f32_fp32_data[] = {
     0xa9,0x02,0x00,0x00,0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
     
     };
    -const uint64_t matmul_id_f32_fp32_len = 10680;
    +const uint64_t matmul_id_f32_f32_fp32_len = 10680;
     
     unsigned char matmul_id_q2_k_f32_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
    @@ -36947,9 +40675,9 @@ unsigned char matmul_id_q2_k_f32_data[] = {
     0x43,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x54,0x00,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x59,0x00,0x00,0x00,
     0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,
    @@ -37060,7 +40788,7 @@ unsigned char matmul_id_q2_k_f32_data[] = {
     0x72,0x01,0x00,0x00,0x51,0x00,0x00,0x00,0x71,0x01,0x00,0x00,
     0x00,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x73,0x01,0x00,0x00,0x84,0x00,0x00,0x00,0x72,0x01,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x74,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0x73,0x01,0x00,0x00,
     0x4e,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x90,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    @@ -37092,7 +40820,7 @@ unsigned char matmul_id_q2_k_f32_data[] = {
     0xc8,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0xc7,0x01,0x00,0x00,
     0x4e,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0xcb,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0xce,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
     0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0xe9,0x01,0x00,0x00,0x84,0x00,0x00,0x00,0x42,0x00,0x00,0x00,
    @@ -37262,7 +40990,7 @@ unsigned char matmul_id_q2_k_f32_data[] = {
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,
     0xb2,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xbe,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xbe,0x00,0x00,0x00,
     0xf8,0x00,0x02,0x00,0xbe,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
     0x06,0x00,0x00,0x00,0x06,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
     0xa7,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,
    @@ -37303,487 +41031,485 @@ unsigned char matmul_id_q2_k_f32_data[] = {
     0x18,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xf4,0x00,0x00,0x00,0xf1,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,
    -0xf4,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0xf4,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,0x1c,0x03,0x00,0x00,
     0xf5,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xf8,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,0x50,0x00,0x00,0x00,
     0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,
    -0xf1,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x50,0x00,0x00,0x00,
    +0xf1,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,
    +0x50,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x05,0x01,0x00,0x00,0xf8,0x00,0x00,0x00,0x04,0x01,0x00,0x00,
    +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x08,0x01,0x00,0x00,
    +0xf8,0x00,0x00,0x00,0x04,0x01,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,0x08,0x01,0x00,0x00,
    +0x0b,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x0e,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,0x0d,0x01,0x00,0x00,
    +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x11,0x01,0x00,0x00,
    +0x08,0x01,0x00,0x00,0x10,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x12,0x01,0x00,0x00,0x11,0x01,0x00,0x00,
     0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x01,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,0x00,0x01,0x00,0x00,
    -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x05,0x01,0x00,0x00,
    -0xf8,0x00,0x00,0x00,0x04,0x01,0x00,0x00,0x89,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0xf8,0x00,0x00,0x00,
    -0x04,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x0c,0x01,0x00,0x00,0x08,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0e,0x01,0x00,0x00,
    -0x0c,0x01,0x00,0x00,0x0d,0x01,0x00,0x00,0x89,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x11,0x01,0x00,0x00,0x08,0x01,0x00,0x00,
    -0x10,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x12,0x01,0x00,0x00,0x11,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x13,0x01,0x00,0x00,
    -0x0e,0x01,0x00,0x00,0x12,0x01,0x00,0x00,0x86,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x17,0x01,0x00,0x00,0x08,0x01,0x00,0x00,
    -0x16,0x01,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x1a,0x01,0x00,0x00,0x08,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,
    -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1b,0x01,0x00,0x00,
    -0x1a,0x01,0x00,0x00,0x10,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,0x1b,0x01,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0x2c,0x01,0x00,0x00,
    -0x2d,0x01,0x00,0x00,0x29,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    -0x05,0x01,0x00,0x00,0x9a,0x00,0x00,0x00,0x13,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x20,0x01,0x00,0x00,0x2e,0x01,0x00,0x00,
    -0x2d,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x2f,0x01,0x00,0x00,0x2e,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x32,0x01,0x00,0x00,0x13,0x01,0x00,0x00,
    -0x1b,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0x2c,0x01,0x00,0x00,
    -0x33,0x01,0x00,0x00,0x29,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    -0x05,0x01,0x00,0x00,0x9a,0x00,0x00,0x00,0x32,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x20,0x01,0x00,0x00,0x34,0x01,0x00,0x00,
    -0x33,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x35,0x01,0x00,0x00,0x34,0x01,0x00,0x00,0x50,0x00,0x05,0x00,
    -0x1d,0x01,0x00,0x00,0x36,0x01,0x00,0x00,0x2f,0x01,0x00,0x00,
    -0x35,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x2c,0x01,0x00,0x00,
    -0x3a,0x01,0x00,0x00,0x29,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    -0x05,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x17,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x20,0x01,0x00,0x00,0x3b,0x01,0x00,0x00,
    -0x3a,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x3c,0x01,0x00,0x00,0x3b,0x01,0x00,0x00,0x41,0x00,0x07,0x00,
    -0x41,0x01,0x00,0x00,0x42,0x01,0x00,0x00,0x29,0x01,0x00,0x00,
    -0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0xaa,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x24,0x01,0x00,0x00,0x43,0x01,0x00,0x00,
    -0x42,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x3d,0x01,0x00,0x00,
    -0x44,0x01,0x00,0x00,0x43,0x01,0x00,0x00,0x51,0x00,0x05,0x00,
    -0xcf,0x00,0x00,0x00,0x47,0x01,0x00,0x00,0x44,0x01,0x00,0x00,
    -0x00,0x00,0x00,0x00,0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x4a,0x01,0x00,0x00,0x3c,0x01,0x00,0x00,0x49,0x01,0x00,0x00,
    -0x70,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0x4b,0x01,0x00,0x00,
    -0x4a,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0xcf,0x00,0x00,0x00,
    -0x4c,0x01,0x00,0x00,0x47,0x01,0x00,0x00,0x4b,0x01,0x00,0x00,
    -0x50,0x00,0x05,0x00,0x1d,0x01,0x00,0x00,0x4f,0x01,0x00,0x00,
    -0x1c,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,
    -0x1d,0x01,0x00,0x00,0x50,0x01,0x00,0x00,0x36,0x01,0x00,0x00,
    -0x4f,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1d,0x01,0x00,0x00,
    -0x53,0x01,0x00,0x00,0x50,0x01,0x00,0x00,0x74,0x03,0x00,0x00,
    -0x70,0x00,0x04,0x00,0x3d,0x01,0x00,0x00,0x54,0x01,0x00,0x00,
    -0x53,0x01,0x00,0x00,0x8e,0x00,0x05,0x00,0x3d,0x01,0x00,0x00,
    -0x55,0x01,0x00,0x00,0x54,0x01,0x00,0x00,0x4c,0x01,0x00,0x00,
    -0x51,0x00,0x05,0x00,0xcf,0x00,0x00,0x00,0x57,0x01,0x00,0x00,
    -0x44,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xc2,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x5a,0x01,0x00,0x00,0x3c,0x01,0x00,0x00,
    -0x59,0x01,0x00,0x00,0x70,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    -0x5b,0x01,0x00,0x00,0x5a,0x01,0x00,0x00,0x85,0x00,0x05,0x00,
    -0xcf,0x00,0x00,0x00,0x5c,0x01,0x00,0x00,0x57,0x01,0x00,0x00,
    -0x5b,0x01,0x00,0x00,0x50,0x00,0x05,0x00,0x3d,0x01,0x00,0x00,
    -0x5d,0x01,0x00,0x00,0x5c,0x01,0x00,0x00,0x5c,0x01,0x00,0x00,
    -0x83,0x00,0x05,0x00,0x3d,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,
    -0x55,0x01,0x00,0x00,0x5d,0x01,0x00,0x00,0x51,0x00,0x05,0x00,
    -0xcf,0x00,0x00,0x00,0x66,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x73,0x00,0x04,0x00,0x23,0x01,0x00,0x00,
    -0x67,0x01,0x00,0x00,0x66,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x68,0x01,0x00,0x00,0x69,0x01,0x00,0x00,0x63,0x01,0x00,0x00,
    -0x01,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x69,0x01,0x00,0x00,
    -0x67,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x6b,0x01,0x00,0x00,0x01,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,
    -0x51,0x00,0x05,0x00,0xcf,0x00,0x00,0x00,0x6d,0x01,0x00,0x00,
    -0x5e,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x73,0x00,0x04,0x00,
    -0x23,0x01,0x00,0x00,0x6e,0x01,0x00,0x00,0x6d,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x68,0x01,0x00,0x00,0x6f,0x01,0x00,0x00,
    -0x63,0x01,0x00,0x00,0x6b,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x6f,0x01,0x00,0x00,0x6e,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x76,0x01,0x00,0x00,0x18,0x03,0x00,0x00,
    -0x74,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xe6,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xe8,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x78,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x78,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x19,0x03,0x00,0x00,
    -0x20,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0xca,0x01,0x00,0x00,
    -0x7b,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0x7e,0x01,0x00,0x00,0x19,0x03,0x00,0x00,0xa2,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x7a,0x01,0x00,0x00,0x7b,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x7e,0x01,0x00,0x00,
    -0x79,0x01,0x00,0x00,0x7a,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x79,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x83,0x01,0x00,0x00,0xa3,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x85,0x01,0x00,0x00,
    -0x83,0x01,0x00,0x00,0x19,0x03,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0x88,0x01,0x00,0x00,0x85,0x01,0x00,0x00,
    -0x05,0x03,0x00,0x00,0xf7,0x00,0x03,0x00,0x8a,0x01,0x00,0x00,
    -0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x88,0x01,0x00,0x00,
    -0x89,0x01,0x00,0x00,0xbc,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x89,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x97,0x00,0x00,0x00,
    -0x8e,0x01,0x00,0x00,0x90,0x00,0x00,0x00,0x85,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,0x8f,0x01,0x00,0x00,
    -0x8e,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x97,0x01,0x00,0x00,0x5f,0x00,0x00,0x00,0x19,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x99,0x01,0x00,0x00,
    -0x97,0x01,0x00,0x00,0x98,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x9b,0x01,0x00,0x00,0x99,0x01,0x00,0x00,
    -0x5a,0x00,0x00,0x00,0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,
    -0xa3,0x01,0x00,0x00,0x8f,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa4,0x01,0x00,0x00,
    -0xa3,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
    -0xa6,0x01,0x00,0x00,0x13,0x00,0x00,0x00,0xa5,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa7,0x01,0x00,0x00,
    -0xa6,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xa8,0x01,0x00,0x00,0xa4,0x01,0x00,0x00,0xa7,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa9,0x01,0x00,0x00,
    -0x20,0x03,0x00,0x00,0xa8,0x01,0x00,0x00,0x51,0x00,0x05,0x00,
    -0x8b,0x00,0x00,0x00,0xab,0x01,0x00,0x00,0x8f,0x01,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0xac,0x01,0x00,0x00,0xab,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x16,0x00,0x00,0x00,0xae,0x01,0x00,0x00,0x13,0x00,0x00,0x00,
    -0xad,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0xaf,0x01,0x00,0x00,0xae,0x01,0x00,0x00,0x89,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xb0,0x01,0x00,0x00,0xac,0x01,0x00,0x00,
    -0xaf,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
    -0xb1,0x01,0x00,0x00,0x13,0x00,0x00,0x00,0x59,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xb2,0x01,0x00,0x00,
    -0xb1,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xb3,0x01,0x00,0x00,0xb0,0x01,0x00,0x00,0xb2,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb4,0x01,0x00,0x00,
    -0xa9,0x01,0x00,0x00,0xb3,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xb6,0x01,0x00,0x00,0xb4,0x01,0x00,0x00,
    -0x5a,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xb7,0x01,0x00,0x00,
    -0xb8,0x01,0x00,0x00,0x9f,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    -0xb6,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    -0xb9,0x01,0x00,0x00,0xb8,0x01,0x00,0x00,0x73,0x00,0x04,0x00,
    -0x23,0x01,0x00,0x00,0xba,0x01,0x00,0x00,0xb9,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x68,0x01,0x00,0x00,0xbb,0x01,0x00,0x00,
    -0x94,0x01,0x00,0x00,0x9b,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0xbb,0x01,0x00,0x00,0xba,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x8a,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xbc,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbf,0x01,0x00,0x00,
    -0x5f,0x00,0x00,0x00,0x19,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xc1,0x01,0x00,0x00,0xbf,0x01,0x00,0x00,
    -0xc0,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xc3,0x01,0x00,0x00,0xc1,0x01,0x00,0x00,0x5a,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x68,0x01,0x00,0x00,0xc5,0x01,0x00,0x00,
    -0x94,0x01,0x00,0x00,0xc3,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0xc5,0x01,0x00,0x00,0xc4,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x8a,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x8a,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x7b,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x7b,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xca,0x01,0x00,0x00,0x19,0x03,0x00,0x00,0xc8,0x01,0x00,0x00,
    +0x13,0x01,0x00,0x00,0x0e,0x01,0x00,0x00,0x12,0x01,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x17,0x01,0x00,0x00,
    +0x08,0x01,0x00,0x00,0x16,0x01,0x00,0x00,0x89,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x1a,0x01,0x00,0x00,0x08,0x01,0x00,0x00,
    +0x0b,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x1b,0x01,0x00,0x00,0x1a,0x01,0x00,0x00,0x10,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,
    +0x1b,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x2c,0x01,0x00,0x00,0x2d,0x01,0x00,0x00,0x29,0x01,0x00,0x00,
    +0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0x13,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x20,0x01,0x00,0x00,
    +0x2e,0x01,0x00,0x00,0x2d,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x2f,0x01,0x00,0x00,0x2e,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x32,0x01,0x00,0x00,
    +0x13,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x2c,0x01,0x00,0x00,0x33,0x01,0x00,0x00,0x29,0x01,0x00,0x00,
    +0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0x32,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x20,0x01,0x00,0x00,
    +0x34,0x01,0x00,0x00,0x33,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x35,0x01,0x00,0x00,0x34,0x01,0x00,0x00,
    +0x50,0x00,0x05,0x00,0x1d,0x01,0x00,0x00,0x36,0x01,0x00,0x00,
    +0x2f,0x01,0x00,0x00,0x35,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x2c,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,0x29,0x01,0x00,0x00,
    +0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    +0x17,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x20,0x01,0x00,0x00,
    +0x3b,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x3c,0x01,0x00,0x00,0x3b,0x01,0x00,0x00,
    +0x41,0x00,0x07,0x00,0x41,0x01,0x00,0x00,0x42,0x01,0x00,0x00,
    +0x29,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,
    +0xaa,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x24,0x01,0x00,0x00,
    +0x43,0x01,0x00,0x00,0x42,0x01,0x00,0x00,0x73,0x00,0x04,0x00,
    +0x3d,0x01,0x00,0x00,0x44,0x01,0x00,0x00,0x43,0x01,0x00,0x00,
    +0x51,0x00,0x05,0x00,0xcf,0x00,0x00,0x00,0x47,0x01,0x00,0x00,
    +0x44,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x4a,0x01,0x00,0x00,0x3c,0x01,0x00,0x00,
    +0x49,0x01,0x00,0x00,0x70,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    +0x4b,0x01,0x00,0x00,0x4a,0x01,0x00,0x00,0x85,0x00,0x05,0x00,
    +0xcf,0x00,0x00,0x00,0x4c,0x01,0x00,0x00,0x47,0x01,0x00,0x00,
    +0x4b,0x01,0x00,0x00,0x50,0x00,0x05,0x00,0x1d,0x01,0x00,0x00,
    +0x4f,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,
    +0xc2,0x00,0x05,0x00,0x1d,0x01,0x00,0x00,0x50,0x01,0x00,0x00,
    +0x36,0x01,0x00,0x00,0x4f,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
    +0x1d,0x01,0x00,0x00,0x53,0x01,0x00,0x00,0x50,0x01,0x00,0x00,
    +0x74,0x03,0x00,0x00,0x70,0x00,0x04,0x00,0x3d,0x01,0x00,0x00,
    +0x54,0x01,0x00,0x00,0x53,0x01,0x00,0x00,0x8e,0x00,0x05,0x00,
    +0x3d,0x01,0x00,0x00,0x55,0x01,0x00,0x00,0x54,0x01,0x00,0x00,
    +0x4c,0x01,0x00,0x00,0x51,0x00,0x05,0x00,0xcf,0x00,0x00,0x00,
    +0x57,0x01,0x00,0x00,0x44,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5a,0x01,0x00,0x00,
    +0x3c,0x01,0x00,0x00,0x59,0x01,0x00,0x00,0x70,0x00,0x04,0x00,
    +0xcf,0x00,0x00,0x00,0x5b,0x01,0x00,0x00,0x5a,0x01,0x00,0x00,
    +0x85,0x00,0x05,0x00,0xcf,0x00,0x00,0x00,0x5c,0x01,0x00,0x00,
    +0x57,0x01,0x00,0x00,0x5b,0x01,0x00,0x00,0x50,0x00,0x05,0x00,
    +0x3d,0x01,0x00,0x00,0x5d,0x01,0x00,0x00,0x5c,0x01,0x00,0x00,
    +0x5c,0x01,0x00,0x00,0x83,0x00,0x05,0x00,0x3d,0x01,0x00,0x00,
    +0x5e,0x01,0x00,0x00,0x55,0x01,0x00,0x00,0x5d,0x01,0x00,0x00,
    +0x51,0x00,0x05,0x00,0xcf,0x00,0x00,0x00,0x66,0x01,0x00,0x00,
    +0x5e,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x00,0x04,0x00,
    +0x23,0x01,0x00,0x00,0x67,0x01,0x00,0x00,0x66,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x68,0x01,0x00,0x00,0x69,0x01,0x00,0x00,
    +0x63,0x01,0x00,0x00,0x01,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x69,0x01,0x00,0x00,0x67,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x6b,0x01,0x00,0x00,0x01,0x01,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x51,0x00,0x05,0x00,0xcf,0x00,0x00,0x00,
    +0x6d,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x73,0x00,0x04,0x00,0x23,0x01,0x00,0x00,0x6e,0x01,0x00,0x00,
    +0x6d,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x68,0x01,0x00,0x00,
    +0x6f,0x01,0x00,0x00,0x63,0x01,0x00,0x00,0x6b,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x6f,0x01,0x00,0x00,0x6e,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x76,0x01,0x00,0x00,
    +0x18,0x03,0x00,0x00,0x74,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xe6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xe8,0x00,0x00,0x00,
     0xf9,0x00,0x02,0x00,0x78,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x7a,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xcd,0x01,0x00,0x00,0x1c,0x03,0x00,0x00,
    -0xcb,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xd0,0x01,0x00,0x00,0x20,0x03,0x00,0x00,0xce,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xd2,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xd2,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x22,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0x7a,0x01,0x00,0x00,
    -0x7c,0x02,0x00,0x00,0xd5,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0xd8,0x01,0x00,0x00,0x22,0x03,0x00,0x00,
    -0x4e,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xd4,0x01,0x00,0x00,
    -0xd5,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xd8,0x01,0x00,0x00,0xd3,0x01,0x00,0x00,0xd4,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xd3,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xda,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xda,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x26,0x03,0x00,0x00,
    -0x20,0x00,0x00,0x00,0xd3,0x01,0x00,0x00,0x06,0x02,0x00,0x00,
    -0xdd,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0xe0,0x01,0x00,0x00,0x26,0x03,0x00,0x00,0x42,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xdc,0x01,0x00,0x00,0xdd,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xe0,0x01,0x00,0x00,
    -0xdb,0x01,0x00,0x00,0xdc,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xdb,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xe2,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xe2,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x38,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    -0xdb,0x01,0x00,0x00,0x04,0x02,0x00,0x00,0xe3,0x01,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xe8,0x01,0x00,0x00,
    -0x38,0x03,0x00,0x00,0x44,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xe4,0x01,0x00,0x00,0xe3,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xe8,0x01,0x00,0x00,0xe3,0x01,0x00,0x00,
    -0xe4,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xe3,0x01,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xee,0x01,0x00,0x00,
    -0x26,0x03,0x00,0x00,0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xf0,0x01,0x00,0x00,0xee,0x01,0x00,0x00,
    -0x38,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xf2,0x01,0x00,0x00,0x37,0x00,0x00,0x00,0x35,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf4,0x01,0x00,0x00,
    -0x26,0x03,0x00,0x00,0x43,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xf5,0x01,0x00,0x00,0xf2,0x01,0x00,0x00,
    -0xf4,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xf7,0x01,0x00,0x00,0x46,0x00,0x00,0x00,0x44,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf8,0x01,0x00,0x00,
    -0xf5,0x01,0x00,0x00,0xf7,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xfa,0x01,0x00,0x00,0xf8,0x01,0x00,0x00,
    -0x38,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xfc,0x01,0x00,0x00,0xfa,0x01,0x00,0x00,0xfb,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfe,0x01,0x00,0x00,
    -0xfc,0x01,0x00,0x00,0x22,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x68,0x01,0x00,0x00,0xff,0x01,0x00,0x00,0x63,0x01,0x00,0x00,
    -0xfe,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x23,0x01,0x00,0x00,
    -0x00,0x02,0x00,0x00,0xff,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x01,0x02,0x00,0x00,0x02,0x02,0x00,0x00,0xec,0x01,0x00,0x00,
    -0xf0,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x02,0x02,0x00,0x00,
    -0x00,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x04,0x02,0x00,0x00,0x38,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xe2,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xe4,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xdd,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xdd,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x06,0x02,0x00,0x00,0x26,0x03,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xda,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xdc,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x08,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x08,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x27,0x03,0x00,0x00,
    -0x20,0x00,0x00,0x00,0xdc,0x01,0x00,0x00,0x34,0x02,0x00,0x00,
    -0x0b,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0x0e,0x02,0x00,0x00,0x27,0x03,0x00,0x00,0xcb,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x0a,0x02,0x00,0x00,0x0b,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x0e,0x02,0x00,0x00,
    -0x09,0x02,0x00,0x00,0x0a,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x09,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x10,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x10,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x35,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x09,0x02,0x00,0x00,0x32,0x02,0x00,0x00,0x11,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x16,0x02,0x00,0x00,
    -0x35,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x12,0x02,0x00,0x00,0x11,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x16,0x02,0x00,0x00,0x11,0x02,0x00,0x00,
    -0x12,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x11,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1c,0x02,0x00,0x00,
    -0x27,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x1e,0x02,0x00,0x00,0x1c,0x02,0x00,0x00,
    -0x35,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x20,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x23,0x02,0x00,0x00,
    -0x27,0x03,0x00,0x00,0x22,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x24,0x02,0x00,0x00,0x20,0x02,0x00,0x00,
    -0x23,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x26,0x02,0x00,0x00,0x4a,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x27,0x02,0x00,0x00,
    -0x24,0x02,0x00,0x00,0x26,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x29,0x02,0x00,0x00,0x27,0x02,0x00,0x00,
    -0x35,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x2b,0x02,0x00,0x00,0x29,0x02,0x00,0x00,0x2a,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2d,0x02,0x00,0x00,
    -0x2b,0x02,0x00,0x00,0x22,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x68,0x01,0x00,0x00,0x2e,0x02,0x00,0x00,0x94,0x01,0x00,0x00,
    -0x2d,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x23,0x01,0x00,0x00,
    -0x2f,0x02,0x00,0x00,0x2e,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x01,0x02,0x00,0x00,0x30,0x02,0x00,0x00,0x1a,0x02,0x00,0x00,
    -0x1e,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0x30,0x02,0x00,0x00,
    -0x2f,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x32,0x02,0x00,0x00,0x35,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x10,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x12,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x0b,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x0b,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x34,0x02,0x00,0x00,0x27,0x03,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x08,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x0a,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x36,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x36,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x28,0x03,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x0a,0x02,0x00,0x00,0x7a,0x02,0x00,0x00,
    -0x39,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0x3c,0x02,0x00,0x00,0x28,0x03,0x00,0x00,0xcb,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x38,0x02,0x00,0x00,0x39,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x3c,0x02,0x00,0x00,
    -0x37,0x02,0x00,0x00,0x38,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x37,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x3e,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x3e,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x2c,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x37,0x02,0x00,0x00,0x78,0x02,0x00,0x00,0x41,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x44,0x02,0x00,0x00,
    -0x2c,0x03,0x00,0x00,0x42,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x40,0x02,0x00,0x00,0x41,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x44,0x02,0x00,0x00,0x3f,0x02,0x00,0x00,
    -0x40,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x3f,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x46,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x46,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x2e,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0x3f,0x02,0x00,0x00,
    -0x76,0x02,0x00,0x00,0x49,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0x4c,0x02,0x00,0x00,0x2e,0x03,0x00,0x00,
    -0xc8,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x48,0x02,0x00,0x00,
    -0x49,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x4c,0x02,0x00,0x00,0x47,0x02,0x00,0x00,0x48,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x47,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x4e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x4e,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x30,0x03,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x47,0x02,0x00,0x00,0x74,0x02,0x00,0x00,
    -0x4f,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0x54,0x02,0x00,0x00,0x30,0x03,0x00,0x00,0x44,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x50,0x02,0x00,0x00,0x4f,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x54,0x02,0x00,0x00,
    -0x4f,0x02,0x00,0x00,0x50,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x4f,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x56,0x02,0x00,0x00,0x28,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x58,0x02,0x00,0x00,
    -0x56,0x02,0x00,0x00,0x2e,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x5a,0x02,0x00,0x00,0x58,0x02,0x00,0x00,
    -0x59,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x5c,0x02,0x00,0x00,0x2c,0x03,0x00,0x00,0x44,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5d,0x02,0x00,0x00,
    -0x5a,0x02,0x00,0x00,0x5c,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x5f,0x02,0x00,0x00,0x5d,0x02,0x00,0x00,
    -0x30,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x63,0x02,0x00,0x00,0x5c,0x02,0x00,0x00,0x30,0x03,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x01,0x02,0x00,0x00,0x64,0x02,0x00,0x00,
    -0xec,0x01,0x00,0x00,0x63,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x23,0x01,0x00,0x00,0x65,0x02,0x00,0x00,0x64,0x02,0x00,0x00,
    -0x73,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0x66,0x02,0x00,0x00,
    -0x65,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x01,0x02,0x00,0x00,
    -0x6b,0x02,0x00,0x00,0x1a,0x02,0x00,0x00,0x58,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x23,0x01,0x00,0x00,0x6c,0x02,0x00,0x00,
    -0x6b,0x02,0x00,0x00,0x73,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    -0x6d,0x02,0x00,0x00,0x6c,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xd8,0x00,0x00,0x00,0x6f,0x02,0x00,0x00,0xd5,0x00,0x00,0x00,
    -0x5f,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    -0x70,0x02,0x00,0x00,0x6f,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,
    -0xcf,0x00,0x00,0x00,0x71,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x32,0x00,0x00,0x00,0x66,0x02,0x00,0x00,0x6d,0x02,0x00,0x00,
    -0x70,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0x6f,0x02,0x00,0x00,
    -0x71,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x74,0x02,0x00,0x00,0x30,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x4e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x50,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x49,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x49,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x76,0x02,0x00,0x00,0x2e,0x03,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x46,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x48,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x41,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x41,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x78,0x02,0x00,0x00,
    -0x2c,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x3e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x40,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x39,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x39,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x7a,0x02,0x00,0x00,0x28,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x36,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x38,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xd5,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xd5,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x7c,0x02,0x00,0x00,0x22,0x03,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xd2,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xd4,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,
    +0x78,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x19,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,
    +0xca,0x01,0x00,0x00,0x7b,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x7e,0x01,0x00,0x00,0x19,0x03,0x00,0x00,
    +0xa2,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x7a,0x01,0x00,0x00,
    +0x7b,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x7e,0x01,0x00,0x00,0x79,0x01,0x00,0x00,0x7a,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x79,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x83,0x01,0x00,0x00,0xa3,0x00,0x00,0x00,
    +0x5f,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x85,0x01,0x00,0x00,0x83,0x01,0x00,0x00,0x19,0x03,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x88,0x01,0x00,0x00,
    +0x85,0x01,0x00,0x00,0x05,0x03,0x00,0x00,0xf7,0x00,0x03,0x00,
    +0x8a,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x88,0x01,0x00,0x00,0x89,0x01,0x00,0x00,0xbc,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x89,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x97,0x00,0x00,0x00,0x8e,0x01,0x00,0x00,0x90,0x00,0x00,0x00,
    +0x85,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,
    +0x8f,0x01,0x00,0x00,0x8e,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x97,0x01,0x00,0x00,0x5f,0x00,0x00,0x00,
    +0x19,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x99,0x01,0x00,0x00,0x97,0x01,0x00,0x00,0x98,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9b,0x01,0x00,0x00,
    +0x99,0x01,0x00,0x00,0x5a,0x00,0x00,0x00,0x51,0x00,0x05,0x00,
    +0x8b,0x00,0x00,0x00,0xa3,0x01,0x00,0x00,0x8f,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0xa4,0x01,0x00,0x00,0xa3,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x16,0x00,0x00,0x00,0xa6,0x01,0x00,0x00,0x13,0x00,0x00,0x00,
    +0xa5,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0xa7,0x01,0x00,0x00,0xa6,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xa8,0x01,0x00,0x00,0xa4,0x01,0x00,0x00,
    +0xa7,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xa9,0x01,0x00,0x00,0x20,0x03,0x00,0x00,0xa8,0x01,0x00,0x00,
    +0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,0xab,0x01,0x00,0x00,
    +0x8f,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0xac,0x01,0x00,0x00,0xab,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0xae,0x01,0x00,0x00,
    +0x13,0x00,0x00,0x00,0xad,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0xaf,0x01,0x00,0x00,0xae,0x01,0x00,0x00,
    +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb0,0x01,0x00,0x00,
    +0xac,0x01,0x00,0x00,0xaf,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x16,0x00,0x00,0x00,0xb1,0x01,0x00,0x00,0x13,0x00,0x00,0x00,
    +0x59,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0xb2,0x01,0x00,0x00,0xb1,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xb3,0x01,0x00,0x00,0xb0,0x01,0x00,0x00,
    +0xb2,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xb4,0x01,0x00,0x00,0xa9,0x01,0x00,0x00,0xb3,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb6,0x01,0x00,0x00,
    +0xb4,0x01,0x00,0x00,0x5a,0x00,0x00,0x00,0x41,0x00,0x06,0x00,
    +0xb7,0x01,0x00,0x00,0xb8,0x01,0x00,0x00,0x9f,0x01,0x00,0x00,
    +0x15,0x00,0x00,0x00,0xb6,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xcf,0x00,0x00,0x00,0xb9,0x01,0x00,0x00,0xb8,0x01,0x00,0x00,
    +0x73,0x00,0x04,0x00,0x23,0x01,0x00,0x00,0xba,0x01,0x00,0x00,
    +0xb9,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x68,0x01,0x00,0x00,
    +0xbb,0x01,0x00,0x00,0x94,0x01,0x00,0x00,0x9b,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0xbb,0x01,0x00,0x00,0xba,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x8a,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xbc,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xbf,0x01,0x00,0x00,0x5f,0x00,0x00,0x00,0x19,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc1,0x01,0x00,0x00,
    +0xbf,0x01,0x00,0x00,0xc0,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xc3,0x01,0x00,0x00,0xc1,0x01,0x00,0x00,
    +0x5a,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x68,0x01,0x00,0x00,
    +0xc5,0x01,0x00,0x00,0x94,0x01,0x00,0x00,0xc3,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0xc5,0x01,0x00,0x00,0xc4,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x8a,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x8a,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x7b,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x7b,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xca,0x01,0x00,0x00,0x19,0x03,0x00,0x00,
    +0xc8,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x78,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x7a,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,
     0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xe0,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xe0,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x7e,0x02,0x00,0x00,0x07,0x03,0x00,0x00,0x4e,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xdd,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xdf,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x83,0x02,0x00,0x00,0x37,0x00,0x00,0x00,0x35,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x84,0x02,0x00,0x00,
    -0xb4,0x00,0x00,0x00,0x83,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x89,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,
    -0xc5,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x8a,0x02,0x00,0x00,0xa3,0x00,0x00,0x00,0x89,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x8c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x8c,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x08,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,
    -0xf5,0x02,0x00,0x00,0x8f,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0x92,0x02,0x00,0x00,0x08,0x03,0x00,0x00,
    -0xcb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x8e,0x02,0x00,0x00,
    -0x8f,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x92,0x02,0x00,0x00,0x8d,0x02,0x00,0x00,0x8e,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x8d,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x94,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x94,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x09,0x03,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x8d,0x02,0x00,0x00,0xf3,0x02,0x00,0x00,
    -0x97,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0x9a,0x02,0x00,0x00,0x09,0x03,0x00,0x00,0x42,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x96,0x02,0x00,0x00,0x97,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x9a,0x02,0x00,0x00,
    -0x95,0x02,0x00,0x00,0x96,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x95,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x9e,0x02,0x00,0x00,0x09,0x03,0x00,0x00,0x43,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9f,0x02,0x00,0x00,
    -0x84,0x02,0x00,0x00,0x9e,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xa1,0x02,0x00,0x00,0x46,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xcd,0x01,0x00,0x00,
    +0x1c,0x03,0x00,0x00,0xcb,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xd0,0x01,0x00,0x00,0x20,0x03,0x00,0x00,
    +0xce,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xd2,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xd2,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x22,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x7a,0x01,0x00,0x00,0x7c,0x02,0x00,0x00,0xd5,0x01,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xd8,0x01,0x00,0x00,
    +0x22,0x03,0x00,0x00,0x4e,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xd4,0x01,0x00,0x00,0xd5,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xd8,0x01,0x00,0x00,0xd3,0x01,0x00,0x00,
    +0xd4,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xd3,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xda,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xda,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x26,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0xd3,0x01,0x00,0x00,
    +0x06,0x02,0x00,0x00,0xdd,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0xe0,0x01,0x00,0x00,0x26,0x03,0x00,0x00,
    +0x42,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xdc,0x01,0x00,0x00,
    +0xdd,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xe0,0x01,0x00,0x00,0xdb,0x01,0x00,0x00,0xdc,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xdb,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xe2,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xe2,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x38,0x03,0x00,0x00,
    +0x20,0x00,0x00,0x00,0xdb,0x01,0x00,0x00,0x04,0x02,0x00,0x00,
    +0xe3,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0xe8,0x01,0x00,0x00,0x38,0x03,0x00,0x00,0x44,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xe4,0x01,0x00,0x00,0xe3,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xe8,0x01,0x00,0x00,
    +0xe3,0x01,0x00,0x00,0xe4,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xe3,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xee,0x01,0x00,0x00,0x26,0x03,0x00,0x00,0x44,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf0,0x01,0x00,0x00,
    +0xee,0x01,0x00,0x00,0x38,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xf2,0x01,0x00,0x00,0x37,0x00,0x00,0x00,
    +0x35,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xf4,0x01,0x00,0x00,0x26,0x03,0x00,0x00,0x43,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf5,0x01,0x00,0x00,
    +0xf2,0x01,0x00,0x00,0xf4,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xf7,0x01,0x00,0x00,0x46,0x00,0x00,0x00,
     0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xa2,0x02,0x00,0x00,0x9f,0x02,0x00,0x00,0xa1,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa6,0x02,0x00,0x00,
    -0x08,0x03,0x00,0x00,0x22,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xa7,0x02,0x00,0x00,0x8a,0x02,0x00,0x00,
    -0xa6,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xa9,0x02,0x00,0x00,0x4a,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xaa,0x02,0x00,0x00,
    -0xa7,0x02,0x00,0x00,0xa9,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xac,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xac,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x0b,0x03,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x95,0x02,0x00,0x00,0xf1,0x02,0x00,0x00,
    -0xaf,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0xb2,0x02,0x00,0x00,0x0b,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xae,0x02,0x00,0x00,0xaf,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xb2,0x02,0x00,0x00,
    -0xad,0x02,0x00,0x00,0xae,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xad,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xb6,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,0x0b,0x03,0x00,0x00,
    -0xae,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xb9,0x02,0x00,0x00,
    -0xb6,0x02,0x00,0x00,0x05,0x03,0x00,0x00,0xf7,0x00,0x03,0x00,
    -0xbb,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xb9,0x02,0x00,0x00,0xba,0x02,0x00,0x00,0xbb,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xba,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xae,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xbb,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x97,0x00,0x00,0x00,0xbf,0x02,0x00,0x00,
    -0x90,0x00,0x00,0x00,0xb6,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x8c,0x00,0x00,0x00,0xc0,0x02,0x00,0x00,0xbf,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xc2,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xc2,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x11,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0xbb,0x02,0x00,0x00,
    -0xef,0x02,0x00,0x00,0xc3,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0xc8,0x02,0x00,0x00,0x11,0x03,0x00,0x00,
    -0x44,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xc4,0x02,0x00,0x00,
    -0xc3,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xc8,0x02,0x00,0x00,0xc3,0x02,0x00,0x00,0xc4,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xc3,0x02,0x00,0x00,0x51,0x00,0x05,0x00,
    -0x8b,0x00,0x00,0x00,0xce,0x02,0x00,0x00,0xc0,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0xcf,0x02,0x00,0x00,0xce,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x16,0x00,0x00,0x00,0xd1,0x02,0x00,0x00,0x13,0x00,0x00,0x00,
    -0xd0,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0xd2,0x02,0x00,0x00,0xd1,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xd3,0x02,0x00,0x00,0xcf,0x02,0x00,0x00,
    -0xd2,0x02,0x00,0x00,0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,
    -0xd5,0x02,0x00,0x00,0xc0,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xd6,0x02,0x00,0x00,
    -0xd5,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
    -0xd8,0x02,0x00,0x00,0x13,0x00,0x00,0x00,0xd7,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xd9,0x02,0x00,0x00,
    -0xd8,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xda,0x02,0x00,0x00,0xd6,0x02,0x00,0x00,0xd9,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdb,0x02,0x00,0x00,
    -0xd3,0x02,0x00,0x00,0xda,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xdd,0x02,0x00,0x00,0xdb,0x02,0x00,0x00,
    -0xa2,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xdf,0x02,0x00,0x00,0xdd,0x02,0x00,0x00,0x11,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe1,0x02,0x00,0x00,
    -0x08,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xe3,0x02,0x00,0x00,0xe1,0x02,0x00,0x00,
    -0x0b,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xe5,0x02,0x00,0x00,0xe3,0x02,0x00,0x00,0xe4,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe7,0x02,0x00,0x00,
    -0x09,0x03,0x00,0x00,0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xe8,0x02,0x00,0x00,0xe5,0x02,0x00,0x00,
    -0xe7,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xea,0x02,0x00,0x00,0xe8,0x02,0x00,0x00,0x11,0x03,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,0xeb,0x02,0x00,0x00,
    -0xd5,0x00,0x00,0x00,0xea,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xcf,0x00,0x00,0x00,0xec,0x02,0x00,0x00,0xeb,0x02,0x00,0x00,
    -0x41,0x00,0x06,0x00,0xb7,0x01,0x00,0x00,0xed,0x02,0x00,0x00,
    -0xcc,0x02,0x00,0x00,0x15,0x00,0x00,0x00,0xdf,0x02,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0xed,0x02,0x00,0x00,0xec,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xef,0x02,0x00,0x00,
    -0x11,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xc2,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xc4,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xaf,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xaf,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xf1,0x02,0x00,0x00,0x0b,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xf8,0x01,0x00,0x00,0xf5,0x01,0x00,0x00,0xf7,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfa,0x01,0x00,0x00,
    +0xf8,0x01,0x00,0x00,0x38,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xfc,0x01,0x00,0x00,0xfa,0x01,0x00,0x00,
    +0xfb,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xfe,0x01,0x00,0x00,0xfc,0x01,0x00,0x00,0x22,0x03,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x68,0x01,0x00,0x00,0xff,0x01,0x00,0x00,
    +0x63,0x01,0x00,0x00,0xfe,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x23,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0xff,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x01,0x02,0x00,0x00,0x02,0x02,0x00,0x00,
    +0xec,0x01,0x00,0x00,0xf0,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x02,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x04,0x02,0x00,0x00,0x38,0x03,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xe2,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xe4,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xdd,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xdd,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x06,0x02,0x00,0x00,
    +0x26,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xda,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xdc,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x08,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x08,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x27,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0xdc,0x01,0x00,0x00,
    +0x34,0x02,0x00,0x00,0x0b,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x0e,0x02,0x00,0x00,0x27,0x03,0x00,0x00,
    +0xcb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x0a,0x02,0x00,0x00,
    +0x0b,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x0e,0x02,0x00,0x00,0x09,0x02,0x00,0x00,0x0a,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x09,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x10,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x10,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x35,0x03,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x09,0x02,0x00,0x00,0x32,0x02,0x00,0x00,
    +0x11,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0x16,0x02,0x00,0x00,0x35,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x12,0x02,0x00,0x00,0x11,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x16,0x02,0x00,0x00,
    +0x11,0x02,0x00,0x00,0x12,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x11,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x1c,0x02,0x00,0x00,0x27,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1e,0x02,0x00,0x00,
    +0x1c,0x02,0x00,0x00,0x35,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x20,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,
    +0xc5,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x23,0x02,0x00,0x00,0x27,0x03,0x00,0x00,0x22,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x24,0x02,0x00,0x00,
    +0x20,0x02,0x00,0x00,0x23,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x26,0x02,0x00,0x00,0x4a,0x00,0x00,0x00,
    +0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x27,0x02,0x00,0x00,0x24,0x02,0x00,0x00,0x26,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x29,0x02,0x00,0x00,
    +0x27,0x02,0x00,0x00,0x35,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x2b,0x02,0x00,0x00,0x29,0x02,0x00,0x00,
    +0x2a,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x2d,0x02,0x00,0x00,0x2b,0x02,0x00,0x00,0x22,0x03,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x68,0x01,0x00,0x00,0x2e,0x02,0x00,0x00,
    +0x94,0x01,0x00,0x00,0x2d,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x23,0x01,0x00,0x00,0x2f,0x02,0x00,0x00,0x2e,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x01,0x02,0x00,0x00,0x30,0x02,0x00,0x00,
    +0x1a,0x02,0x00,0x00,0x1e,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x30,0x02,0x00,0x00,0x2f,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x32,0x02,0x00,0x00,0x35,0x03,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x10,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x12,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x0b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x0b,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x34,0x02,0x00,0x00,
    +0x27,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x08,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x0a,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x36,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x36,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x28,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0x0a,0x02,0x00,0x00,
    +0x7a,0x02,0x00,0x00,0x39,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x3c,0x02,0x00,0x00,0x28,0x03,0x00,0x00,
    +0xcb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x38,0x02,0x00,0x00,
    +0x39,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x3c,0x02,0x00,0x00,0x37,0x02,0x00,0x00,0x38,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x37,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x3e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x3e,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x2c,0x03,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x37,0x02,0x00,0x00,0x78,0x02,0x00,0x00,
    +0x41,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0x44,0x02,0x00,0x00,0x2c,0x03,0x00,0x00,0x42,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x40,0x02,0x00,0x00,0x41,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x44,0x02,0x00,0x00,
    +0x3f,0x02,0x00,0x00,0x40,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x3f,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x46,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x46,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x2e,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x3f,0x02,0x00,0x00,0x76,0x02,0x00,0x00,0x49,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x4c,0x02,0x00,0x00,
    +0x2e,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x48,0x02,0x00,0x00,0x49,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x4c,0x02,0x00,0x00,0x47,0x02,0x00,0x00,
    +0x48,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x47,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x4e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x4e,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x30,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0x47,0x02,0x00,0x00,
    +0x74,0x02,0x00,0x00,0x4f,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x54,0x02,0x00,0x00,0x30,0x03,0x00,0x00,
    +0x44,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x50,0x02,0x00,0x00,
    +0x4f,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x54,0x02,0x00,0x00,0x4f,0x02,0x00,0x00,0x50,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x4f,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x56,0x02,0x00,0x00,0x28,0x03,0x00,0x00,
    +0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x58,0x02,0x00,0x00,0x56,0x02,0x00,0x00,0x2e,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5a,0x02,0x00,0x00,
    +0x58,0x02,0x00,0x00,0x59,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x5c,0x02,0x00,0x00,0x2c,0x03,0x00,0x00,
    +0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x5d,0x02,0x00,0x00,0x5a,0x02,0x00,0x00,0x5c,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5f,0x02,0x00,0x00,
    +0x5d,0x02,0x00,0x00,0x30,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x63,0x02,0x00,0x00,0x5c,0x02,0x00,0x00,
    +0x30,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x01,0x02,0x00,0x00,
    +0x64,0x02,0x00,0x00,0xec,0x01,0x00,0x00,0x63,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x23,0x01,0x00,0x00,0x65,0x02,0x00,0x00,
    +0x64,0x02,0x00,0x00,0x73,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    +0x66,0x02,0x00,0x00,0x65,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x01,0x02,0x00,0x00,0x6b,0x02,0x00,0x00,0x1a,0x02,0x00,0x00,
    +0x58,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x23,0x01,0x00,0x00,
    +0x6c,0x02,0x00,0x00,0x6b,0x02,0x00,0x00,0x73,0x00,0x04,0x00,
    +0xcf,0x00,0x00,0x00,0x6d,0x02,0x00,0x00,0x6c,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,0x6f,0x02,0x00,0x00,
    +0xd5,0x00,0x00,0x00,0x5f,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xcf,0x00,0x00,0x00,0x70,0x02,0x00,0x00,0x6f,0x02,0x00,0x00,
    +0x0c,0x00,0x08,0x00,0xcf,0x00,0x00,0x00,0x71,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x66,0x02,0x00,0x00,
    +0x6d,0x02,0x00,0x00,0x70,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x6f,0x02,0x00,0x00,0x71,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x74,0x02,0x00,0x00,0x30,0x03,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x4e,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x50,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x49,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x49,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x76,0x02,0x00,0x00,
    +0x2e,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x46,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x48,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x41,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x41,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x78,0x02,0x00,0x00,0x2c,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x3e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x40,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x39,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x39,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x7a,0x02,0x00,0x00,0x28,0x03,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x36,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x38,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xd5,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xd5,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7c,0x02,0x00,0x00,
    +0x22,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xd2,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xd4,0x01,0x00,0x00,
    +0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0xa0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xe0,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xe0,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x7e,0x02,0x00,0x00,0x07,0x03,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xdd,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xdf,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x83,0x02,0x00,0x00,0x37,0x00,0x00,0x00,
    +0x35,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x84,0x02,0x00,0x00,0xb4,0x00,0x00,0x00,0x83,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x89,0x02,0x00,0x00,
    +0x3b,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x8a,0x02,0x00,0x00,0xa3,0x00,0x00,0x00,
    +0x89,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x8c,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x8c,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x08,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    +0xdf,0x00,0x00,0x00,0xf5,0x02,0x00,0x00,0x8f,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x92,0x02,0x00,0x00,
    +0x08,0x03,0x00,0x00,0xcb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x8e,0x02,0x00,0x00,0x8f,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x92,0x02,0x00,0x00,0x8d,0x02,0x00,0x00,
    +0x8e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x8d,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x94,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x94,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x09,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0x8d,0x02,0x00,0x00,
    +0xf3,0x02,0x00,0x00,0x97,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x9a,0x02,0x00,0x00,0x09,0x03,0x00,0x00,
    +0x42,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x96,0x02,0x00,0x00,
    +0x97,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x9a,0x02,0x00,0x00,0x95,0x02,0x00,0x00,0x96,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x95,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x9e,0x02,0x00,0x00,0x09,0x03,0x00,0x00,
    +0x43,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x9f,0x02,0x00,0x00,0x84,0x02,0x00,0x00,0x9e,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa1,0x02,0x00,0x00,
    +0x46,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xa2,0x02,0x00,0x00,0x9f,0x02,0x00,0x00,
    +0xa1,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xa6,0x02,0x00,0x00,0x08,0x03,0x00,0x00,0x22,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa7,0x02,0x00,0x00,
    +0x8a,0x02,0x00,0x00,0xa6,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xa9,0x02,0x00,0x00,0x4a,0x00,0x00,0x00,
    +0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xaa,0x02,0x00,0x00,0xa7,0x02,0x00,0x00,0xa9,0x02,0x00,0x00,
     0xf9,0x00,0x02,0x00,0xac,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xae,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x97,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x97,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xf3,0x02,0x00,0x00,0x09,0x03,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x94,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x96,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x8f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x8f,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf5,0x02,0x00,0x00,
    -0x08,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x8c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x8e,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xf6,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xf6,0x02,0x00,0x00,0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
    -
    +0xac,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x0b,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0x95,0x02,0x00,0x00,
    +0xf1,0x02,0x00,0x00,0xaf,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0xb2,0x02,0x00,0x00,0x0b,0x03,0x00,0x00,
    +0xc8,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xae,0x02,0x00,0x00,
    +0xaf,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xb2,0x02,0x00,0x00,0xad,0x02,0x00,0x00,0xae,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xad,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xb6,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,
    +0x0b,0x03,0x00,0x00,0xae,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0xb9,0x02,0x00,0x00,0xb6,0x02,0x00,0x00,0x05,0x03,0x00,0x00,
    +0xf7,0x00,0x03,0x00,0xbb,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xb9,0x02,0x00,0x00,0xba,0x02,0x00,0x00,
    +0xbb,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xba,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xae,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xbb,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x97,0x00,0x00,0x00,
    +0xbf,0x02,0x00,0x00,0x90,0x00,0x00,0x00,0xb6,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,0xc0,0x02,0x00,0x00,
    +0xbf,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xc2,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xc2,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x11,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    +0xbb,0x02,0x00,0x00,0xef,0x02,0x00,0x00,0xc3,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xc8,0x02,0x00,0x00,
    +0x11,0x03,0x00,0x00,0x44,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xc4,0x02,0x00,0x00,0xc3,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xc8,0x02,0x00,0x00,0xc3,0x02,0x00,0x00,
    +0xc4,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xc3,0x02,0x00,0x00,
    +0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,0xce,0x02,0x00,0x00,
    +0xc0,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0xcf,0x02,0x00,0x00,0xce,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0xd1,0x02,0x00,0x00,
    +0x13,0x00,0x00,0x00,0xd0,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0xd2,0x02,0x00,0x00,0xd1,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd3,0x02,0x00,0x00,
    +0xcf,0x02,0x00,0x00,0xd2,0x02,0x00,0x00,0x51,0x00,0x05,0x00,
    +0x8b,0x00,0x00,0x00,0xd5,0x02,0x00,0x00,0xc0,0x02,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0xd6,0x02,0x00,0x00,0xd5,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x16,0x00,0x00,0x00,0xd8,0x02,0x00,0x00,0x13,0x00,0x00,0x00,
    +0xd7,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0xd9,0x02,0x00,0x00,0xd8,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xda,0x02,0x00,0x00,0xd6,0x02,0x00,0x00,
    +0xd9,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xdb,0x02,0x00,0x00,0xd3,0x02,0x00,0x00,0xda,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdd,0x02,0x00,0x00,
    +0xdb,0x02,0x00,0x00,0xa2,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xdf,0x02,0x00,0x00,0xdd,0x02,0x00,0x00,
    +0x11,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xe1,0x02,0x00,0x00,0x08,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe3,0x02,0x00,0x00,
    +0xe1,0x02,0x00,0x00,0x0b,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xe5,0x02,0x00,0x00,0xe3,0x02,0x00,0x00,
    +0xe4,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xe7,0x02,0x00,0x00,0x09,0x03,0x00,0x00,0x44,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe8,0x02,0x00,0x00,
    +0xe5,0x02,0x00,0x00,0xe7,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xea,0x02,0x00,0x00,0xe8,0x02,0x00,0x00,
    +0x11,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,
    +0xeb,0x02,0x00,0x00,0xd5,0x00,0x00,0x00,0xea,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0xec,0x02,0x00,0x00,
    +0xeb,0x02,0x00,0x00,0x41,0x00,0x06,0x00,0xb7,0x01,0x00,0x00,
    +0xed,0x02,0x00,0x00,0xcc,0x02,0x00,0x00,0x15,0x00,0x00,0x00,
    +0xdf,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0xed,0x02,0x00,0x00,
    +0xec,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xef,0x02,0x00,0x00,0x11,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xc2,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xc4,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xaf,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xaf,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xf1,0x02,0x00,0x00,0x0b,0x03,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xac,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xae,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x97,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x97,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf3,0x02,0x00,0x00,
    +0x09,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x94,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x96,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x8f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x8f,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xf5,0x02,0x00,0x00,0x08,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x8c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x8e,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xf6,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xf6,0x02,0x00,0x00,0xfd,0x00,0x01,0x00,
    +0x38,0x00,0x01,0x00,
     };
    -const uint64_t matmul_id_q2_k_f32_len = 11712;
    +const uint64_t matmul_id_q2_k_f32_len = 11692;
     
     unsigned char matmul_id_q2_k_f32_aligned_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
    @@ -39957,9 +43683,9 @@ unsigned char matmul_id_q2_k_f32_fp32_data[] = {
     0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
     0x10,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x4f,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x54,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x59,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
     0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x5e,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    @@ -40069,7 +43795,7 @@ unsigned char matmul_id_q2_k_f32_fp32_data[] = {
     0x06,0x00,0x00,0x00,0x70,0x01,0x00,0x00,0x51,0x00,0x00,0x00,
     0x6f,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x71,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    -0x70,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x70,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x72,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
     0x71,0x01,0x00,0x00,0x4e,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x8e,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
    @@ -40100,7 +43826,7 @@ unsigned char matmul_id_q2_k_f32_fp32_data[] = {
     0xc4,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0xc3,0x01,0x00,0x00,
     0x4e,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0xc7,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0xca,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
     0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0xe5,0x01,0x00,0x00,0x84,0x00,0x00,0x00,0x42,0x00,0x00,0x00,
    @@ -40268,7 +43994,7 @@ unsigned char matmul_id_q2_k_f32_fp32_data[] = {
     0xb4,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,
     0xb8,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xbb,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0xbb,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
     0xf9,0x00,0x02,0x00,0xbe,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
     0xbe,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
     0xff,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,
    @@ -40310,480 +44036,478 @@ unsigned char matmul_id_q2_k_f32_fp32_data[] = {
     0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,
     0xf1,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xf6,0x00,0x00,0x00,0x15,0x03,0x00,0x00,0xf5,0x00,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,
     0xf6,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0xf1,0x00,0x00,0x00,
    -0xfd,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x00,0x01,0x00,0x00,0x50,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x01,0x01,0x00,0x00,
    -0xfe,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x86,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0xf8,0x00,0x00,0x00,
    -0x04,0x01,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x08,0x01,0x00,0x00,0xf8,0x00,0x00,0x00,0x04,0x01,0x00,0x00,
    -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,
    -0x08,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x0e,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,
    -0x0d,0x01,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x11,0x01,0x00,0x00,0x08,0x01,0x00,0x00,0x10,0x01,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x12,0x01,0x00,0x00,
    -0x11,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x13,0x01,0x00,0x00,0x0e,0x01,0x00,0x00,
    -0x12,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x17,0x01,0x00,0x00,0x08,0x01,0x00,0x00,0x16,0x01,0x00,0x00,
    -0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1a,0x01,0x00,0x00,
    -0x08,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,0x86,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x1b,0x01,0x00,0x00,0x1a,0x01,0x00,0x00,
    +0xfd,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x01,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,0x50,0x00,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x05,0x01,0x00,0x00,
    +0xf8,0x00,0x00,0x00,0x04,0x01,0x00,0x00,0x89,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0xf8,0x00,0x00,0x00,
    +0x04,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x0c,0x01,0x00,0x00,0x08,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0e,0x01,0x00,0x00,
    +0x0c,0x01,0x00,0x00,0x0d,0x01,0x00,0x00,0x89,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x11,0x01,0x00,0x00,0x08,0x01,0x00,0x00,
     0x10,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x1c,0x01,0x00,0x00,0x1b,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x41,0x00,0x08,0x00,0x2c,0x01,0x00,0x00,0x2d,0x01,0x00,0x00,
    -0x29,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0x13,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x20,0x01,0x00,0x00,0x2e,0x01,0x00,0x00,0x2d,0x01,0x00,0x00,
    -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x2f,0x01,0x00,0x00,
    -0x2e,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x32,0x01,0x00,0x00,0x13,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,
    -0x41,0x00,0x08,0x00,0x2c,0x01,0x00,0x00,0x33,0x01,0x00,0x00,
    -0x29,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0x32,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x20,0x01,0x00,0x00,0x34,0x01,0x00,0x00,0x33,0x01,0x00,0x00,
    -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x35,0x01,0x00,0x00,
    -0x34,0x01,0x00,0x00,0x50,0x00,0x05,0x00,0x1d,0x01,0x00,0x00,
    -0x36,0x01,0x00,0x00,0x2f,0x01,0x00,0x00,0x35,0x01,0x00,0x00,
    -0x41,0x00,0x08,0x00,0x2c,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,
    -0x29,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,
    -0x15,0x00,0x00,0x00,0x17,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x20,0x01,0x00,0x00,0x3b,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,
    -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x3c,0x01,0x00,0x00,
    -0x3b,0x01,0x00,0x00,0x41,0x00,0x07,0x00,0x41,0x01,0x00,0x00,
    -0x42,0x01,0x00,0x00,0x29,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    -0x05,0x01,0x00,0x00,0xaa,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x24,0x01,0x00,0x00,0x43,0x01,0x00,0x00,0x42,0x01,0x00,0x00,
    -0x73,0x00,0x04,0x00,0x3d,0x01,0x00,0x00,0x44,0x01,0x00,0x00,
    -0x43,0x01,0x00,0x00,0x51,0x00,0x05,0x00,0xcf,0x00,0x00,0x00,
    -0x47,0x01,0x00,0x00,0x44,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    -0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4a,0x01,0x00,0x00,
    -0x3c,0x01,0x00,0x00,0x49,0x01,0x00,0x00,0x70,0x00,0x04,0x00,
    -0xcf,0x00,0x00,0x00,0x4b,0x01,0x00,0x00,0x4a,0x01,0x00,0x00,
    -0x85,0x00,0x05,0x00,0xcf,0x00,0x00,0x00,0x4c,0x01,0x00,0x00,
    -0x47,0x01,0x00,0x00,0x4b,0x01,0x00,0x00,0x50,0x00,0x05,0x00,
    -0x1d,0x01,0x00,0x00,0x4f,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,
    -0x1c,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x1d,0x01,0x00,0x00,
    -0x50,0x01,0x00,0x00,0x36,0x01,0x00,0x00,0x4f,0x01,0x00,0x00,
    -0xc7,0x00,0x05,0x00,0x1d,0x01,0x00,0x00,0x53,0x01,0x00,0x00,
    -0x50,0x01,0x00,0x00,0x6d,0x03,0x00,0x00,0x70,0x00,0x04,0x00,
    -0x3d,0x01,0x00,0x00,0x54,0x01,0x00,0x00,0x53,0x01,0x00,0x00,
    -0x8e,0x00,0x05,0x00,0x3d,0x01,0x00,0x00,0x55,0x01,0x00,0x00,
    -0x54,0x01,0x00,0x00,0x4c,0x01,0x00,0x00,0x51,0x00,0x05,0x00,
    -0xcf,0x00,0x00,0x00,0x57,0x01,0x00,0x00,0x44,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x5a,0x01,0x00,0x00,0x3c,0x01,0x00,0x00,0x59,0x01,0x00,0x00,
    -0x70,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0x5b,0x01,0x00,0x00,
    -0x5a,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0xcf,0x00,0x00,0x00,
    -0x5c,0x01,0x00,0x00,0x57,0x01,0x00,0x00,0x5b,0x01,0x00,0x00,
    -0x50,0x00,0x05,0x00,0x3d,0x01,0x00,0x00,0x5d,0x01,0x00,0x00,
    -0x5c,0x01,0x00,0x00,0x5c,0x01,0x00,0x00,0x83,0x00,0x05,0x00,
    -0x3d,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,0x55,0x01,0x00,0x00,
    -0x5d,0x01,0x00,0x00,0x51,0x00,0x05,0x00,0xcf,0x00,0x00,0x00,
    -0x66,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x67,0x01,0x00,0x00,0x68,0x01,0x00,0x00,
    -0x63,0x01,0x00,0x00,0x01,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x68,0x01,0x00,0x00,0x66,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x6a,0x01,0x00,0x00,0x01,0x01,0x00,0x00,
    -0x1b,0x00,0x00,0x00,0x51,0x00,0x05,0x00,0xcf,0x00,0x00,0x00,
    -0x6c,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x67,0x01,0x00,0x00,0x6d,0x01,0x00,0x00,
    -0x63,0x01,0x00,0x00,0x6a,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x6d,0x01,0x00,0x00,0x6c,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x74,0x01,0x00,0x00,0x11,0x03,0x00,0x00,
    -0x72,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xe6,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xe8,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x76,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x76,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x12,0x03,0x00,0x00,
    -0x20,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0xc6,0x01,0x00,0x00,
    -0x79,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0x7c,0x01,0x00,0x00,0x12,0x03,0x00,0x00,0xa2,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x78,0x01,0x00,0x00,0x79,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x7c,0x01,0x00,0x00,
    -0x77,0x01,0x00,0x00,0x78,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x77,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x81,0x01,0x00,0x00,0xa3,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x83,0x01,0x00,0x00,
    -0x81,0x01,0x00,0x00,0x12,0x03,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0x86,0x01,0x00,0x00,0x83,0x01,0x00,0x00,
    -0xfe,0x02,0x00,0x00,0xf7,0x00,0x03,0x00,0x88,0x01,0x00,0x00,
    -0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x86,0x01,0x00,0x00,
    -0x87,0x01,0x00,0x00,0xb9,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x87,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x97,0x00,0x00,0x00,
    -0x8c,0x01,0x00,0x00,0x90,0x00,0x00,0x00,0x83,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,0x8d,0x01,0x00,0x00,
    -0x8c,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x95,0x01,0x00,0x00,0x5f,0x00,0x00,0x00,0x12,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x97,0x01,0x00,0x00,
    -0x95,0x01,0x00,0x00,0x96,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x99,0x01,0x00,0x00,0x97,0x01,0x00,0x00,
    -0x5a,0x00,0x00,0x00,0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,
    -0xa1,0x01,0x00,0x00,0x8d,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa2,0x01,0x00,0x00,
    -0xa1,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
    -0xa4,0x01,0x00,0x00,0x13,0x00,0x00,0x00,0xa3,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa5,0x01,0x00,0x00,
    -0xa4,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xa6,0x01,0x00,0x00,0xa2,0x01,0x00,0x00,0xa5,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa7,0x01,0x00,0x00,
    -0x19,0x03,0x00,0x00,0xa6,0x01,0x00,0x00,0x51,0x00,0x05,0x00,
    -0x8b,0x00,0x00,0x00,0xa9,0x01,0x00,0x00,0x8d,0x01,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0xaa,0x01,0x00,0x00,0xa9,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x16,0x00,0x00,0x00,0xac,0x01,0x00,0x00,0x13,0x00,0x00,0x00,
    -0xab,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0xad,0x01,0x00,0x00,0xac,0x01,0x00,0x00,0x89,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xae,0x01,0x00,0x00,0xaa,0x01,0x00,0x00,
    -0xad,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
    -0xaf,0x01,0x00,0x00,0x13,0x00,0x00,0x00,0x59,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xb0,0x01,0x00,0x00,
    -0xaf,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xb1,0x01,0x00,0x00,0xae,0x01,0x00,0x00,0xb0,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb2,0x01,0x00,0x00,
    -0xa7,0x01,0x00,0x00,0xb1,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xb4,0x01,0x00,0x00,0xb2,0x01,0x00,0x00,
    -0x5a,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xb5,0x01,0x00,0x00,
    -0xb6,0x01,0x00,0x00,0x9d,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    -0xb4,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    -0xb7,0x01,0x00,0x00,0xb6,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x67,0x01,0x00,0x00,0xb8,0x01,0x00,0x00,0x92,0x01,0x00,0x00,
    -0x99,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xb8,0x01,0x00,0x00,
    -0xb7,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x88,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xb9,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xbc,0x01,0x00,0x00,0x5f,0x00,0x00,0x00,
    +0x12,0x01,0x00,0x00,0x11,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x13,0x01,0x00,0x00,
    +0x0e,0x01,0x00,0x00,0x12,0x01,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x17,0x01,0x00,0x00,0x08,0x01,0x00,0x00,
    +0x16,0x01,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x1a,0x01,0x00,0x00,0x08,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1b,0x01,0x00,0x00,
    +0x1a,0x01,0x00,0x00,0x10,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,0x1b,0x01,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0x2c,0x01,0x00,0x00,
    +0x2d,0x01,0x00,0x00,0x29,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    +0x05,0x01,0x00,0x00,0x9a,0x00,0x00,0x00,0x13,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x20,0x01,0x00,0x00,0x2e,0x01,0x00,0x00,
    +0x2d,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x2f,0x01,0x00,0x00,0x2e,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x32,0x01,0x00,0x00,0x13,0x01,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0x2c,0x01,0x00,0x00,
    +0x33,0x01,0x00,0x00,0x29,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    +0x05,0x01,0x00,0x00,0x9a,0x00,0x00,0x00,0x32,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x20,0x01,0x00,0x00,0x34,0x01,0x00,0x00,
    +0x33,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x35,0x01,0x00,0x00,0x34,0x01,0x00,0x00,0x50,0x00,0x05,0x00,
    +0x1d,0x01,0x00,0x00,0x36,0x01,0x00,0x00,0x2f,0x01,0x00,0x00,
    +0x35,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x2c,0x01,0x00,0x00,
    +0x3a,0x01,0x00,0x00,0x29,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    +0x05,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x17,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x20,0x01,0x00,0x00,0x3b,0x01,0x00,0x00,
    +0x3a,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x3c,0x01,0x00,0x00,0x3b,0x01,0x00,0x00,0x41,0x00,0x07,0x00,
    +0x41,0x01,0x00,0x00,0x42,0x01,0x00,0x00,0x29,0x01,0x00,0x00,
    +0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0xaa,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x24,0x01,0x00,0x00,0x43,0x01,0x00,0x00,
    +0x42,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x3d,0x01,0x00,0x00,
    +0x44,0x01,0x00,0x00,0x43,0x01,0x00,0x00,0x51,0x00,0x05,0x00,
    +0xcf,0x00,0x00,0x00,0x47,0x01,0x00,0x00,0x44,0x01,0x00,0x00,
    +0x00,0x00,0x00,0x00,0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x4a,0x01,0x00,0x00,0x3c,0x01,0x00,0x00,0x49,0x01,0x00,0x00,
    +0x70,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0x4b,0x01,0x00,0x00,
    +0x4a,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0xcf,0x00,0x00,0x00,
    +0x4c,0x01,0x00,0x00,0x47,0x01,0x00,0x00,0x4b,0x01,0x00,0x00,
    +0x50,0x00,0x05,0x00,0x1d,0x01,0x00,0x00,0x4f,0x01,0x00,0x00,
    +0x1c,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,
    +0x1d,0x01,0x00,0x00,0x50,0x01,0x00,0x00,0x36,0x01,0x00,0x00,
    +0x4f,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1d,0x01,0x00,0x00,
    +0x53,0x01,0x00,0x00,0x50,0x01,0x00,0x00,0x6d,0x03,0x00,0x00,
    +0x70,0x00,0x04,0x00,0x3d,0x01,0x00,0x00,0x54,0x01,0x00,0x00,
    +0x53,0x01,0x00,0x00,0x8e,0x00,0x05,0x00,0x3d,0x01,0x00,0x00,
    +0x55,0x01,0x00,0x00,0x54,0x01,0x00,0x00,0x4c,0x01,0x00,0x00,
    +0x51,0x00,0x05,0x00,0xcf,0x00,0x00,0x00,0x57,0x01,0x00,0x00,
    +0x44,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xc2,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x5a,0x01,0x00,0x00,0x3c,0x01,0x00,0x00,
    +0x59,0x01,0x00,0x00,0x70,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    +0x5b,0x01,0x00,0x00,0x5a,0x01,0x00,0x00,0x85,0x00,0x05,0x00,
    +0xcf,0x00,0x00,0x00,0x5c,0x01,0x00,0x00,0x57,0x01,0x00,0x00,
    +0x5b,0x01,0x00,0x00,0x50,0x00,0x05,0x00,0x3d,0x01,0x00,0x00,
    +0x5d,0x01,0x00,0x00,0x5c,0x01,0x00,0x00,0x5c,0x01,0x00,0x00,
    +0x83,0x00,0x05,0x00,0x3d,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,
    +0x55,0x01,0x00,0x00,0x5d,0x01,0x00,0x00,0x51,0x00,0x05,0x00,
    +0xcf,0x00,0x00,0x00,0x66,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x67,0x01,0x00,0x00,
    +0x68,0x01,0x00,0x00,0x63,0x01,0x00,0x00,0x01,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x68,0x01,0x00,0x00,0x66,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6a,0x01,0x00,0x00,
    +0x01,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,0x51,0x00,0x05,0x00,
    +0xcf,0x00,0x00,0x00,0x6c,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x67,0x01,0x00,0x00,
    +0x6d,0x01,0x00,0x00,0x63,0x01,0x00,0x00,0x6a,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x6d,0x01,0x00,0x00,0x6c,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x74,0x01,0x00,0x00,
    +0x11,0x03,0x00,0x00,0x72,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xe6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xe8,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x76,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x76,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x12,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,
    +0xc6,0x01,0x00,0x00,0x79,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x7c,0x01,0x00,0x00,0x12,0x03,0x00,0x00,
    +0xa2,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x78,0x01,0x00,0x00,
    +0x79,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x7c,0x01,0x00,0x00,0x77,0x01,0x00,0x00,0x78,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x77,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x81,0x01,0x00,0x00,0xa3,0x00,0x00,0x00,
    +0x5f,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x83,0x01,0x00,0x00,0x81,0x01,0x00,0x00,0x12,0x03,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x86,0x01,0x00,0x00,
    +0x83,0x01,0x00,0x00,0xfe,0x02,0x00,0x00,0xf7,0x00,0x03,0x00,
    +0x88,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x86,0x01,0x00,0x00,0x87,0x01,0x00,0x00,0xb9,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x87,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x97,0x00,0x00,0x00,0x8c,0x01,0x00,0x00,0x90,0x00,0x00,0x00,
    +0x83,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,
    +0x8d,0x01,0x00,0x00,0x8c,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x95,0x01,0x00,0x00,0x5f,0x00,0x00,0x00,
     0x12,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xbe,0x01,0x00,0x00,0xbc,0x01,0x00,0x00,0xbd,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc0,0x01,0x00,0x00,
    -0xbe,0x01,0x00,0x00,0x5a,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x67,0x01,0x00,0x00,0xc1,0x01,0x00,0x00,0x92,0x01,0x00,0x00,
    -0xc0,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xc1,0x01,0x00,0x00,
    -0xd7,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x88,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x88,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x79,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x79,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc6,0x01,0x00,0x00,
    -0x12,0x03,0x00,0x00,0xc4,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x76,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x78,0x01,0x00,0x00,
    +0x97,0x01,0x00,0x00,0x95,0x01,0x00,0x00,0x96,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x99,0x01,0x00,0x00,
    +0x97,0x01,0x00,0x00,0x5a,0x00,0x00,0x00,0x51,0x00,0x05,0x00,
    +0x8b,0x00,0x00,0x00,0xa1,0x01,0x00,0x00,0x8d,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0xa2,0x01,0x00,0x00,0xa1,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x16,0x00,0x00,0x00,0xa4,0x01,0x00,0x00,0x13,0x00,0x00,0x00,
    +0xa3,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0xa5,0x01,0x00,0x00,0xa4,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xa6,0x01,0x00,0x00,0xa2,0x01,0x00,0x00,
    +0xa5,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xa7,0x01,0x00,0x00,0x19,0x03,0x00,0x00,0xa6,0x01,0x00,0x00,
    +0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,0xa9,0x01,0x00,0x00,
    +0x8d,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0xaa,0x01,0x00,0x00,0xa9,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0xac,0x01,0x00,0x00,
    +0x13,0x00,0x00,0x00,0xab,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0xad,0x01,0x00,0x00,0xac,0x01,0x00,0x00,
    +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xae,0x01,0x00,0x00,
    +0xaa,0x01,0x00,0x00,0xad,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x16,0x00,0x00,0x00,0xaf,0x01,0x00,0x00,0x13,0x00,0x00,0x00,
    +0x59,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0xb0,0x01,0x00,0x00,0xaf,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xb1,0x01,0x00,0x00,0xae,0x01,0x00,0x00,
    +0xb0,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xb2,0x01,0x00,0x00,0xa7,0x01,0x00,0x00,0xb1,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb4,0x01,0x00,0x00,
    +0xb2,0x01,0x00,0x00,0x5a,0x00,0x00,0x00,0x41,0x00,0x06,0x00,
    +0xb5,0x01,0x00,0x00,0xb6,0x01,0x00,0x00,0x9d,0x01,0x00,0x00,
    +0x15,0x00,0x00,0x00,0xb4,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xcf,0x00,0x00,0x00,0xb7,0x01,0x00,0x00,0xb6,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x67,0x01,0x00,0x00,0xb8,0x01,0x00,0x00,
    +0x92,0x01,0x00,0x00,0x99,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0xb8,0x01,0x00,0x00,0xb7,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x88,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xb9,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbc,0x01,0x00,0x00,
    +0x5f,0x00,0x00,0x00,0x12,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xbe,0x01,0x00,0x00,0xbc,0x01,0x00,0x00,
    +0xbd,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xc0,0x01,0x00,0x00,0xbe,0x01,0x00,0x00,0x5a,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x67,0x01,0x00,0x00,0xc1,0x01,0x00,0x00,
    +0x92,0x01,0x00,0x00,0xc0,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0xc1,0x01,0x00,0x00,0xd7,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x88,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x88,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x79,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x79,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xc6,0x01,0x00,0x00,0x12,0x03,0x00,0x00,0xc4,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x76,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x78,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xc9,0x01,0x00,0x00,0x15,0x03,0x00,0x00,
    +0xc7,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xcc,0x01,0x00,0x00,0x19,0x03,0x00,0x00,0xca,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xce,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xce,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x1b,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0x78,0x01,0x00,0x00,
    +0x75,0x02,0x00,0x00,0xd1,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0xd4,0x01,0x00,0x00,0x1b,0x03,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xd0,0x01,0x00,0x00,
    +0xd1,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xd4,0x01,0x00,0x00,0xcf,0x01,0x00,0x00,0xd0,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xcf,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xd6,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xd6,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x1f,0x03,0x00,0x00,
    +0x20,0x00,0x00,0x00,0xcf,0x01,0x00,0x00,0x01,0x02,0x00,0x00,
    +0xd9,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0xdc,0x01,0x00,0x00,0x1f,0x03,0x00,0x00,0x42,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xd8,0x01,0x00,0x00,0xd9,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xdc,0x01,0x00,0x00,
    +0xd7,0x01,0x00,0x00,0xd8,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xd7,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xde,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xde,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x31,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    +0xd7,0x01,0x00,0x00,0xff,0x01,0x00,0x00,0xdf,0x01,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xe4,0x01,0x00,0x00,
    +0x31,0x03,0x00,0x00,0x44,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xe0,0x01,0x00,0x00,0xdf,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xe4,0x01,0x00,0x00,0xdf,0x01,0x00,0x00,
    +0xe0,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xdf,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xea,0x01,0x00,0x00,
    +0x1f,0x03,0x00,0x00,0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xec,0x01,0x00,0x00,0xea,0x01,0x00,0x00,
    +0x31,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xee,0x01,0x00,0x00,0x37,0x00,0x00,0x00,0x35,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf0,0x01,0x00,0x00,
    +0x1f,0x03,0x00,0x00,0x43,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xf1,0x01,0x00,0x00,0xee,0x01,0x00,0x00,
    +0xf0,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xf3,0x01,0x00,0x00,0x46,0x00,0x00,0x00,0x44,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf4,0x01,0x00,0x00,
    +0xf1,0x01,0x00,0x00,0xf3,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xf6,0x01,0x00,0x00,0xf4,0x01,0x00,0x00,
    +0x31,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xf8,0x01,0x00,0x00,0xf6,0x01,0x00,0x00,0xf7,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfa,0x01,0x00,0x00,
    +0xf8,0x01,0x00,0x00,0x1b,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x67,0x01,0x00,0x00,0xfb,0x01,0x00,0x00,0x63,0x01,0x00,0x00,
    +0xfa,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    +0xfc,0x01,0x00,0x00,0xfb,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xd8,0x00,0x00,0x00,0xfd,0x01,0x00,0x00,0xe8,0x01,0x00,0x00,
    +0xec,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xfd,0x01,0x00,0x00,
    +0xfc,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xff,0x01,0x00,0x00,0x31,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xde,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xe0,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xd9,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xd9,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x01,0x02,0x00,0x00,0x1f,0x03,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xd6,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xd8,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x03,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x03,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x20,0x03,0x00,0x00,
    +0x20,0x00,0x00,0x00,0xd8,0x01,0x00,0x00,0x2f,0x02,0x00,0x00,
    +0x06,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0x09,0x02,0x00,0x00,0x20,0x03,0x00,0x00,0xcb,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x05,0x02,0x00,0x00,0x06,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x09,0x02,0x00,0x00,
    +0x04,0x02,0x00,0x00,0x05,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x04,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x0b,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x0b,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x2e,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x04,0x02,0x00,0x00,0x2d,0x02,0x00,0x00,0x0c,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x11,0x02,0x00,0x00,
    +0x2e,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x0d,0x02,0x00,0x00,0x0c,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x11,0x02,0x00,0x00,0x0c,0x02,0x00,0x00,
    +0x0d,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x0c,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x17,0x02,0x00,0x00,
    +0x20,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x19,0x02,0x00,0x00,0x17,0x02,0x00,0x00,
    +0x2e,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x1b,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1e,0x02,0x00,0x00,
    +0x20,0x03,0x00,0x00,0x1d,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x1f,0x02,0x00,0x00,0x1b,0x02,0x00,0x00,
    +0x1e,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x21,0x02,0x00,0x00,0x4a,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x22,0x02,0x00,0x00,
    +0x1f,0x02,0x00,0x00,0x21,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x24,0x02,0x00,0x00,0x22,0x02,0x00,0x00,
    +0x2e,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x26,0x02,0x00,0x00,0x24,0x02,0x00,0x00,0x25,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x28,0x02,0x00,0x00,
    +0x26,0x02,0x00,0x00,0x1b,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x67,0x01,0x00,0x00,0x29,0x02,0x00,0x00,0x92,0x01,0x00,0x00,
    +0x28,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    +0x2a,0x02,0x00,0x00,0x29,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xd8,0x00,0x00,0x00,0x2b,0x02,0x00,0x00,0x15,0x02,0x00,0x00,
    +0x19,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0x2b,0x02,0x00,0x00,
    +0x2a,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x2d,0x02,0x00,0x00,0x2e,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x0b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x0d,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x06,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x06,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x2f,0x02,0x00,0x00,0x20,0x03,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x03,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x05,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x31,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x31,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x21,0x03,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x05,0x02,0x00,0x00,0x73,0x02,0x00,0x00,
    +0x34,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0x37,0x02,0x00,0x00,0x21,0x03,0x00,0x00,0xcb,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x33,0x02,0x00,0x00,0x34,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x37,0x02,0x00,0x00,
    +0x32,0x02,0x00,0x00,0x33,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x32,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x39,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x39,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x25,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x32,0x02,0x00,0x00,0x71,0x02,0x00,0x00,0x3c,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x3f,0x02,0x00,0x00,
    +0x25,0x03,0x00,0x00,0x42,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x3b,0x02,0x00,0x00,0x3c,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x3f,0x02,0x00,0x00,0x3a,0x02,0x00,0x00,
    +0x3b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x3a,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x41,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x41,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x27,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0x3a,0x02,0x00,0x00,
    +0x6f,0x02,0x00,0x00,0x44,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x47,0x02,0x00,0x00,0x27,0x03,0x00,0x00,
    +0xc8,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x43,0x02,0x00,0x00,
    +0x44,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x47,0x02,0x00,0x00,0x42,0x02,0x00,0x00,0x43,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x42,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x49,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x49,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x29,0x03,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x42,0x02,0x00,0x00,0x6d,0x02,0x00,0x00,
    +0x4a,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0x4f,0x02,0x00,0x00,0x29,0x03,0x00,0x00,0x44,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x4b,0x02,0x00,0x00,0x4a,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x4f,0x02,0x00,0x00,
    +0x4a,0x02,0x00,0x00,0x4b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x4a,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x51,0x02,0x00,0x00,0x21,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x53,0x02,0x00,0x00,
    +0x51,0x02,0x00,0x00,0x27,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x55,0x02,0x00,0x00,0x53,0x02,0x00,0x00,
    +0x54,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x57,0x02,0x00,0x00,0x25,0x03,0x00,0x00,0x44,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x58,0x02,0x00,0x00,
    +0x55,0x02,0x00,0x00,0x57,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x5a,0x02,0x00,0x00,0x58,0x02,0x00,0x00,
    +0x29,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x5e,0x02,0x00,0x00,0x57,0x02,0x00,0x00,0x29,0x03,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,0x5f,0x02,0x00,0x00,
    +0xe8,0x01,0x00,0x00,0x5e,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xcf,0x00,0x00,0x00,0x60,0x02,0x00,0x00,0x5f,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,0x65,0x02,0x00,0x00,
    +0x15,0x02,0x00,0x00,0x53,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xcf,0x00,0x00,0x00,0x66,0x02,0x00,0x00,0x65,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,0x68,0x02,0x00,0x00,
    +0xd5,0x00,0x00,0x00,0x5a,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xcf,0x00,0x00,0x00,0x69,0x02,0x00,0x00,0x68,0x02,0x00,0x00,
    +0x0c,0x00,0x08,0x00,0xcf,0x00,0x00,0x00,0x6a,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x60,0x02,0x00,0x00,
    +0x66,0x02,0x00,0x00,0x69,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x68,0x02,0x00,0x00,0x6a,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x6d,0x02,0x00,0x00,0x29,0x03,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x49,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x4b,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x44,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x44,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6f,0x02,0x00,0x00,
    +0x27,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x41,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x43,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x3c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x3c,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x71,0x02,0x00,0x00,0x25,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x39,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x3b,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x34,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x34,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x73,0x02,0x00,0x00,0x21,0x03,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x31,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x33,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xd1,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xd1,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x75,0x02,0x00,0x00,
    +0x1b,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xce,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xd0,0x01,0x00,0x00,
     0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0xa0,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xc9,0x01,0x00,0x00,0x15,0x03,0x00,0x00,0xc7,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xcc,0x01,0x00,0x00,
    -0x19,0x03,0x00,0x00,0xca,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xce,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xce,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x1b,0x03,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x78,0x01,0x00,0x00,0x75,0x02,0x00,0x00,
    -0xd1,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0xd4,0x01,0x00,0x00,0x1b,0x03,0x00,0x00,0x4e,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xd0,0x01,0x00,0x00,0xd1,0x01,0x00,0x00,
    -0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xd4,0x01,0x00,0x00,
    -0xcf,0x01,0x00,0x00,0xd0,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xcf,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xd6,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xd6,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x1f,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    -0xcf,0x01,0x00,0x00,0x01,0x02,0x00,0x00,0xd9,0x01,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xdc,0x01,0x00,0x00,
    -0x1f,0x03,0x00,0x00,0x42,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xd8,0x01,0x00,0x00,0xd9,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xdc,0x01,0x00,0x00,0xd7,0x01,0x00,0x00,
    -0xd8,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xd7,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xde,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xde,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x31,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0xd7,0x01,0x00,0x00,
    -0xff,0x01,0x00,0x00,0xdf,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0xe4,0x01,0x00,0x00,0x31,0x03,0x00,0x00,
    -0x44,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xe0,0x01,0x00,0x00,
    -0xdf,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xe4,0x01,0x00,0x00,0xdf,0x01,0x00,0x00,0xe0,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xdf,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xea,0x01,0x00,0x00,0x1f,0x03,0x00,0x00,
    -0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xec,0x01,0x00,0x00,0xea,0x01,0x00,0x00,0x31,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xee,0x01,0x00,0x00,
    -0x37,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xf0,0x01,0x00,0x00,0x1f,0x03,0x00,0x00,
    +0xa0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xe0,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xe0,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x77,0x02,0x00,0x00,0x00,0x03,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xdd,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xdf,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x7c,0x02,0x00,0x00,0x37,0x00,0x00,0x00,
    +0x35,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x7d,0x02,0x00,0x00,0xb4,0x00,0x00,0x00,0x7c,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x82,0x02,0x00,0x00,
    +0x3b,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x83,0x02,0x00,0x00,0xa3,0x00,0x00,0x00,
    +0x82,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x85,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x85,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x01,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    +0xdf,0x00,0x00,0x00,0xee,0x02,0x00,0x00,0x88,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x8b,0x02,0x00,0x00,
    +0x01,0x03,0x00,0x00,0xcb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x87,0x02,0x00,0x00,0x88,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x8b,0x02,0x00,0x00,0x86,0x02,0x00,0x00,
    +0x87,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x86,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x8d,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x8d,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x02,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0x86,0x02,0x00,0x00,
    +0xec,0x02,0x00,0x00,0x90,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x93,0x02,0x00,0x00,0x02,0x03,0x00,0x00,
    +0x42,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x8f,0x02,0x00,0x00,
    +0x90,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x93,0x02,0x00,0x00,0x8e,0x02,0x00,0x00,0x8f,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x8e,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x97,0x02,0x00,0x00,0x02,0x03,0x00,0x00,
     0x43,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xf1,0x01,0x00,0x00,0xee,0x01,0x00,0x00,0xf0,0x01,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf3,0x01,0x00,0x00,
    +0x98,0x02,0x00,0x00,0x7d,0x02,0x00,0x00,0x97,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9a,0x02,0x00,0x00,
     0x46,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xf4,0x01,0x00,0x00,0xf1,0x01,0x00,0x00,
    -0xf3,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xf6,0x01,0x00,0x00,0xf4,0x01,0x00,0x00,0x31,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf8,0x01,0x00,0x00,
    -0xf6,0x01,0x00,0x00,0xf7,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xfa,0x01,0x00,0x00,0xf8,0x01,0x00,0x00,
    -0x1b,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x67,0x01,0x00,0x00,
    -0xfb,0x01,0x00,0x00,0x63,0x01,0x00,0x00,0xfa,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0xfc,0x01,0x00,0x00,
    -0xfb,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,
    -0xfd,0x01,0x00,0x00,0xe8,0x01,0x00,0x00,0xec,0x01,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0xfd,0x01,0x00,0x00,0xfc,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xff,0x01,0x00,0x00,
    -0x31,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xde,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xe0,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xd9,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xd9,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x01,0x02,0x00,0x00,0x1f,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xd6,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xd8,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x03,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x03,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x20,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    -0xd8,0x01,0x00,0x00,0x2f,0x02,0x00,0x00,0x06,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x09,0x02,0x00,0x00,
    -0x20,0x03,0x00,0x00,0xcb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x05,0x02,0x00,0x00,0x06,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x09,0x02,0x00,0x00,0x04,0x02,0x00,0x00,
    -0x05,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x04,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x0b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x0b,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x2e,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0x04,0x02,0x00,0x00,
    -0x2d,0x02,0x00,0x00,0x0c,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0x11,0x02,0x00,0x00,0x2e,0x03,0x00,0x00,
    -0xc8,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x0d,0x02,0x00,0x00,
    -0x0c,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x11,0x02,0x00,0x00,0x0c,0x02,0x00,0x00,0x0d,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x0c,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x17,0x02,0x00,0x00,0x20,0x03,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x9b,0x02,0x00,0x00,0x98,0x02,0x00,0x00,
    +0x9a,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x9f,0x02,0x00,0x00,0x01,0x03,0x00,0x00,0x1d,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa0,0x02,0x00,0x00,
    +0x83,0x02,0x00,0x00,0x9f,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xa2,0x02,0x00,0x00,0x4a,0x00,0x00,0x00,
     0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x19,0x02,0x00,0x00,0x17,0x02,0x00,0x00,0x2e,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1b,0x02,0x00,0x00,
    -0x3b,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x1e,0x02,0x00,0x00,0x20,0x03,0x00,0x00,
    -0x1d,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x1f,0x02,0x00,0x00,0x1b,0x02,0x00,0x00,0x1e,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x21,0x02,0x00,0x00,
    -0x4a,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x22,0x02,0x00,0x00,0x1f,0x02,0x00,0x00,
    -0x21,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x24,0x02,0x00,0x00,0x22,0x02,0x00,0x00,0x2e,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x26,0x02,0x00,0x00,
    -0x24,0x02,0x00,0x00,0x25,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x28,0x02,0x00,0x00,0x26,0x02,0x00,0x00,
    -0x1b,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x67,0x01,0x00,0x00,
    -0x29,0x02,0x00,0x00,0x92,0x01,0x00,0x00,0x28,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0x2a,0x02,0x00,0x00,
    -0x29,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,
    -0x2b,0x02,0x00,0x00,0x15,0x02,0x00,0x00,0x19,0x02,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x2b,0x02,0x00,0x00,0x2a,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2d,0x02,0x00,0x00,
    -0x2e,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x0b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x0d,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x06,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x06,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x2f,0x02,0x00,0x00,0x20,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x03,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x05,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x31,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x31,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x21,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x05,0x02,0x00,0x00,0x73,0x02,0x00,0x00,0x34,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x37,0x02,0x00,0x00,
    -0x21,0x03,0x00,0x00,0xcb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x33,0x02,0x00,0x00,0x34,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x37,0x02,0x00,0x00,0x32,0x02,0x00,0x00,
    -0x33,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x32,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x39,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x39,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x25,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0x32,0x02,0x00,0x00,
    -0x71,0x02,0x00,0x00,0x3c,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0x3f,0x02,0x00,0x00,0x25,0x03,0x00,0x00,
    -0x42,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x3b,0x02,0x00,0x00,
    -0x3c,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x3f,0x02,0x00,0x00,0x3a,0x02,0x00,0x00,0x3b,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x3a,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x41,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x41,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x27,0x03,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x3a,0x02,0x00,0x00,0x6f,0x02,0x00,0x00,
    -0x44,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0x47,0x02,0x00,0x00,0x27,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x43,0x02,0x00,0x00,0x44,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x47,0x02,0x00,0x00,
    -0x42,0x02,0x00,0x00,0x43,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x42,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x49,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x49,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x29,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x42,0x02,0x00,0x00,0x6d,0x02,0x00,0x00,0x4a,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x4f,0x02,0x00,0x00,
    -0x29,0x03,0x00,0x00,0x44,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x4b,0x02,0x00,0x00,0x4a,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x4f,0x02,0x00,0x00,0x4a,0x02,0x00,0x00,
    -0x4b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x4a,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x51,0x02,0x00,0x00,
    -0x21,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x53,0x02,0x00,0x00,0x51,0x02,0x00,0x00,
    -0x27,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x55,0x02,0x00,0x00,0x53,0x02,0x00,0x00,0x54,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x57,0x02,0x00,0x00,
    -0x25,0x03,0x00,0x00,0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x58,0x02,0x00,0x00,0x55,0x02,0x00,0x00,
    -0x57,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x5a,0x02,0x00,0x00,0x58,0x02,0x00,0x00,0x29,0x03,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5e,0x02,0x00,0x00,
    -0x57,0x02,0x00,0x00,0x29,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xd8,0x00,0x00,0x00,0x5f,0x02,0x00,0x00,0xe8,0x01,0x00,0x00,
    -0x5e,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    -0x60,0x02,0x00,0x00,0x5f,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xd8,0x00,0x00,0x00,0x65,0x02,0x00,0x00,0x15,0x02,0x00,0x00,
    -0x53,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    -0x66,0x02,0x00,0x00,0x65,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xd8,0x00,0x00,0x00,0x68,0x02,0x00,0x00,0xd5,0x00,0x00,0x00,
    -0x5a,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    -0x69,0x02,0x00,0x00,0x68,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,
    -0xcf,0x00,0x00,0x00,0x6a,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x32,0x00,0x00,0x00,0x60,0x02,0x00,0x00,0x66,0x02,0x00,0x00,
    -0x69,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0x68,0x02,0x00,0x00,
    -0x6a,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x6d,0x02,0x00,0x00,0x29,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x49,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x4b,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x44,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x44,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x6f,0x02,0x00,0x00,0x27,0x03,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x41,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x43,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x3c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x3c,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x71,0x02,0x00,0x00,
    -0x25,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x39,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x3b,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x34,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x34,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x73,0x02,0x00,0x00,0x21,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x31,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x33,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xd1,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xd1,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x75,0x02,0x00,0x00,0x1b,0x03,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xce,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xd0,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,
    -0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xe0,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xe0,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x77,0x02,0x00,0x00,0x00,0x03,0x00,0x00,0x4e,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xdd,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xdf,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x7c,0x02,0x00,0x00,0x37,0x00,0x00,0x00,0x35,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7d,0x02,0x00,0x00,
    -0xb4,0x00,0x00,0x00,0x7c,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x82,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,
    -0xc5,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x83,0x02,0x00,0x00,0xa3,0x00,0x00,0x00,0x82,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x85,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x85,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x01,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,
    -0xee,0x02,0x00,0x00,0x88,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0x8b,0x02,0x00,0x00,0x01,0x03,0x00,0x00,
    -0xcb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x87,0x02,0x00,0x00,
    -0x88,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x8b,0x02,0x00,0x00,0x86,0x02,0x00,0x00,0x87,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x86,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x8d,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x8d,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x02,0x03,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x86,0x02,0x00,0x00,0xec,0x02,0x00,0x00,
    -0x90,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0x93,0x02,0x00,0x00,0x02,0x03,0x00,0x00,0x42,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x8f,0x02,0x00,0x00,0x90,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x93,0x02,0x00,0x00,
    -0x8e,0x02,0x00,0x00,0x8f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x8e,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x97,0x02,0x00,0x00,0x02,0x03,0x00,0x00,0x43,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x98,0x02,0x00,0x00,
    -0x7d,0x02,0x00,0x00,0x97,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x9a,0x02,0x00,0x00,0x46,0x00,0x00,0x00,
    -0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x9b,0x02,0x00,0x00,0x98,0x02,0x00,0x00,0x9a,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9f,0x02,0x00,0x00,
    -0x01,0x03,0x00,0x00,0x1d,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xa0,0x02,0x00,0x00,0x83,0x02,0x00,0x00,
    -0x9f,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xa2,0x02,0x00,0x00,0x4a,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa3,0x02,0x00,0x00,
    -0xa0,0x02,0x00,0x00,0xa2,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xa5,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xa5,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x04,0x03,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x8e,0x02,0x00,0x00,0xea,0x02,0x00,0x00,
    -0xa8,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0xab,0x02,0x00,0x00,0x04,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xa7,0x02,0x00,0x00,0xa8,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xab,0x02,0x00,0x00,
    -0xa6,0x02,0x00,0x00,0xa7,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xa6,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xaf,0x02,0x00,0x00,0xa3,0x02,0x00,0x00,0x04,0x03,0x00,0x00,
    -0xae,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xb2,0x02,0x00,0x00,
    -0xaf,0x02,0x00,0x00,0xfe,0x02,0x00,0x00,0xf7,0x00,0x03,0x00,
    -0xb4,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xb2,0x02,0x00,0x00,0xb3,0x02,0x00,0x00,0xb4,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xb3,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xa7,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xb4,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x97,0x00,0x00,0x00,0xb8,0x02,0x00,0x00,
    -0x90,0x00,0x00,0x00,0xaf,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x8c,0x00,0x00,0x00,0xb9,0x02,0x00,0x00,0xb8,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xbb,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xbb,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x0a,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0xb4,0x02,0x00,0x00,
    -0xe8,0x02,0x00,0x00,0xbc,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0xc1,0x02,0x00,0x00,0x0a,0x03,0x00,0x00,
    -0x44,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xbd,0x02,0x00,0x00,
    -0xbc,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xc1,0x02,0x00,0x00,0xbc,0x02,0x00,0x00,0xbd,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xbc,0x02,0x00,0x00,0x51,0x00,0x05,0x00,
    -0x8b,0x00,0x00,0x00,0xc7,0x02,0x00,0x00,0xb9,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0xc8,0x02,0x00,0x00,0xc7,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x16,0x00,0x00,0x00,0xca,0x02,0x00,0x00,0x13,0x00,0x00,0x00,
    -0xc9,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0xcb,0x02,0x00,0x00,0xca,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xcc,0x02,0x00,0x00,0xc8,0x02,0x00,0x00,
    -0xcb,0x02,0x00,0x00,0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,
    -0xce,0x02,0x00,0x00,0xb9,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xcf,0x02,0x00,0x00,
    -0xce,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
    -0xd1,0x02,0x00,0x00,0x13,0x00,0x00,0x00,0xd0,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xd2,0x02,0x00,0x00,
    -0xd1,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xd3,0x02,0x00,0x00,0xcf,0x02,0x00,0x00,0xd2,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd4,0x02,0x00,0x00,
    -0xcc,0x02,0x00,0x00,0xd3,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xd6,0x02,0x00,0x00,0xd4,0x02,0x00,0x00,
    -0x9b,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xd8,0x02,0x00,0x00,0xd6,0x02,0x00,0x00,0x0a,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xda,0x02,0x00,0x00,
    -0x01,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xdc,0x02,0x00,0x00,0xda,0x02,0x00,0x00,
    -0x04,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xde,0x02,0x00,0x00,0xdc,0x02,0x00,0x00,0xdd,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe0,0x02,0x00,0x00,
    -0x02,0x03,0x00,0x00,0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xe1,0x02,0x00,0x00,0xde,0x02,0x00,0x00,
    -0xe0,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xe3,0x02,0x00,0x00,0xe1,0x02,0x00,0x00,0x0a,0x03,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,0xe4,0x02,0x00,0x00,
    -0xd5,0x00,0x00,0x00,0xe3,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xcf,0x00,0x00,0x00,0xe5,0x02,0x00,0x00,0xe4,0x02,0x00,0x00,
    -0x41,0x00,0x06,0x00,0xb5,0x01,0x00,0x00,0xe6,0x02,0x00,0x00,
    -0xc5,0x02,0x00,0x00,0x15,0x00,0x00,0x00,0xd8,0x02,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0xe6,0x02,0x00,0x00,0xe5,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe8,0x02,0x00,0x00,
    -0x0a,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xbb,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xbd,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xa8,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xa8,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xea,0x02,0x00,0x00,0x04,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xa3,0x02,0x00,0x00,0xa0,0x02,0x00,0x00,0xa2,0x02,0x00,0x00,
     0xf9,0x00,0x02,0x00,0xa5,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xa7,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x90,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x90,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xec,0x02,0x00,0x00,0x02,0x03,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x8d,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x8f,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x88,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x88,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xee,0x02,0x00,0x00,
    -0x01,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x85,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x87,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xef,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xef,0x02,0x00,0x00,0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
    -
    +0xa5,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x04,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0x8e,0x02,0x00,0x00,
    +0xea,0x02,0x00,0x00,0xa8,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0xab,0x02,0x00,0x00,0x04,0x03,0x00,0x00,
    +0xc8,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xa7,0x02,0x00,0x00,
    +0xa8,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xab,0x02,0x00,0x00,0xa6,0x02,0x00,0x00,0xa7,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xa6,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xaf,0x02,0x00,0x00,0xa3,0x02,0x00,0x00,
    +0x04,0x03,0x00,0x00,0xae,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0xb2,0x02,0x00,0x00,0xaf,0x02,0x00,0x00,0xfe,0x02,0x00,0x00,
    +0xf7,0x00,0x03,0x00,0xb4,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xb2,0x02,0x00,0x00,0xb3,0x02,0x00,0x00,
    +0xb4,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xb3,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xa7,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xb4,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x97,0x00,0x00,0x00,
    +0xb8,0x02,0x00,0x00,0x90,0x00,0x00,0x00,0xaf,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,0xb9,0x02,0x00,0x00,
    +0xb8,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xbb,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xbb,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x0a,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    +0xb4,0x02,0x00,0x00,0xe8,0x02,0x00,0x00,0xbc,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xc1,0x02,0x00,0x00,
    +0x0a,0x03,0x00,0x00,0x44,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xbd,0x02,0x00,0x00,0xbc,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xc1,0x02,0x00,0x00,0xbc,0x02,0x00,0x00,
    +0xbd,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xbc,0x02,0x00,0x00,
    +0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,0xc7,0x02,0x00,0x00,
    +0xb9,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0xc8,0x02,0x00,0x00,0xc7,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0xca,0x02,0x00,0x00,
    +0x13,0x00,0x00,0x00,0xc9,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0xcb,0x02,0x00,0x00,0xca,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xcc,0x02,0x00,0x00,
    +0xc8,0x02,0x00,0x00,0xcb,0x02,0x00,0x00,0x51,0x00,0x05,0x00,
    +0x8b,0x00,0x00,0x00,0xce,0x02,0x00,0x00,0xb9,0x02,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0xcf,0x02,0x00,0x00,0xce,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x16,0x00,0x00,0x00,0xd1,0x02,0x00,0x00,0x13,0x00,0x00,0x00,
    +0xd0,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0xd2,0x02,0x00,0x00,0xd1,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xd3,0x02,0x00,0x00,0xcf,0x02,0x00,0x00,
    +0xd2,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xd4,0x02,0x00,0x00,0xcc,0x02,0x00,0x00,0xd3,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd6,0x02,0x00,0x00,
    +0xd4,0x02,0x00,0x00,0x9b,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xd8,0x02,0x00,0x00,0xd6,0x02,0x00,0x00,
    +0x0a,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xda,0x02,0x00,0x00,0x01,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdc,0x02,0x00,0x00,
    +0xda,0x02,0x00,0x00,0x04,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xde,0x02,0x00,0x00,0xdc,0x02,0x00,0x00,
    +0xdd,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xe0,0x02,0x00,0x00,0x02,0x03,0x00,0x00,0x44,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe1,0x02,0x00,0x00,
    +0xde,0x02,0x00,0x00,0xe0,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xe3,0x02,0x00,0x00,0xe1,0x02,0x00,0x00,
    +0x0a,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,
    +0xe4,0x02,0x00,0x00,0xd5,0x00,0x00,0x00,0xe3,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0xe5,0x02,0x00,0x00,
    +0xe4,0x02,0x00,0x00,0x41,0x00,0x06,0x00,0xb5,0x01,0x00,0x00,
    +0xe6,0x02,0x00,0x00,0xc5,0x02,0x00,0x00,0x15,0x00,0x00,0x00,
    +0xd8,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0xe6,0x02,0x00,0x00,
    +0xe5,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xe8,0x02,0x00,0x00,0x0a,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xbb,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xbd,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xa8,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xa8,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xea,0x02,0x00,0x00,0x04,0x03,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xa5,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xa7,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x90,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x90,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xec,0x02,0x00,0x00,
    +0x02,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x8d,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x8f,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x88,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x88,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xee,0x02,0x00,0x00,0x01,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x85,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x87,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xef,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xef,0x02,0x00,0x00,0xfd,0x00,0x01,0x00,
    +0x38,0x00,0x01,0x00,
     };
    -const uint64_t matmul_id_q2_k_f32_fp32_len = 11592;
    +const uint64_t matmul_id_q2_k_f32_fp32_len = 11572;
     
     unsigned char matmul_id_q3_k_f32_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
    @@ -40932,9 +44656,9 @@ unsigned char matmul_id_q3_k_f32_data[] = {
     0x44,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x4e,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x4e,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x4e,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
     0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    @@ -41046,7 +44770,7 @@ unsigned char matmul_id_q3_k_f32_data[] = {
     0x06,0x00,0x00,0x00,0xf2,0x01,0x00,0x00,0x51,0x00,0x00,0x00,
     0xf1,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0xf3,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    -0xf2,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0xf2,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0xf4,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
     0xf3,0x01,0x00,0x00,0x4e,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x10,0x02,0x00,0x00,0x80,0x00,0x00,0x00,
    @@ -41078,7 +44802,7 @@ unsigned char matmul_id_q3_k_f32_data[] = {
     0x06,0x00,0x00,0x00,0x48,0x02,0x00,0x00,0x86,0x00,0x00,0x00,
     0x47,0x02,0x00,0x00,0x4e,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x4b,0x02,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x4e,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x4e,0x02,0x00,0x00,0x86,0x00,0x00,0x00,
     0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x69,0x02,0x00,0x00,0x84,0x00,0x00,0x00,
    @@ -41246,7 +44970,7 @@ unsigned char matmul_id_q3_k_f32_data[] = {
     0xb4,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,
     0xb8,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xbb,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0xbb,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
     0xf9,0x00,0x02,0x00,0xbe,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
     0xbe,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
     0x82,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,
    @@ -41288,641 +45012,640 @@ unsigned char matmul_id_q3_k_f32_data[] = {
     0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,
     0xf1,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xf6,0x00,0x00,0x00,0x98,0x03,0x00,0x00,0xf5,0x00,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,
     0xf6,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0xf1,0x00,0x00,0x00,
    -0xfd,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x00,0x01,0x00,0x00,0x50,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x01,0x01,0x00,0x00,
    -0xfe,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x86,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0xf8,0x00,0x00,0x00,
    -0x04,0x01,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x08,0x01,0x00,0x00,0xf8,0x00,0x00,0x00,0x04,0x01,0x00,0x00,
    -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,
    -0x08,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x10,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,
    -0x0f,0x01,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x13,0x01,0x00,0x00,0x08,0x01,0x00,0x00,0x12,0x01,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x14,0x01,0x00,0x00,
    -0x13,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x15,0x01,0x00,0x00,0x10,0x01,0x00,0x00,
    -0x14,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x22,0x01,0x00,0x00,0x08,0x01,0x00,0x00,0x21,0x01,0x00,0x00,
    -0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x25,0x01,0x00,0x00,
    -0x08,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,0x86,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x26,0x01,0x00,0x00,0x25,0x01,0x00,0x00,
    +0xfd,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x01,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,0x50,0x00,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x05,0x01,0x00,0x00,
    +0xf8,0x00,0x00,0x00,0x04,0x01,0x00,0x00,0x89,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0xf8,0x00,0x00,0x00,
    +0x04,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x0c,0x01,0x00,0x00,0x08,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x10,0x01,0x00,0x00,
    +0x0c,0x01,0x00,0x00,0x0f,0x01,0x00,0x00,0x89,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x13,0x01,0x00,0x00,0x08,0x01,0x00,0x00,
     0x12,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x29,0x01,0x00,0x00,0x26,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2c,0x01,0x00,0x00,
    -0x1d,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x2e,0x01,0x00,0x00,0x2c,0x01,0x00,0x00,
    -0x26,0x01,0x00,0x00,0xc4,0x00,0x05,0x00,0x14,0x00,0x00,0x00,
    -0x2f,0x01,0x00,0x00,0x9a,0x00,0x00,0x00,0x2e,0x01,0x00,0x00,
    -0x7c,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x30,0x01,0x00,0x00,
    -0x2f,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0x35,0x01,0x00,0x00,0x22,0x01,0x00,0x00,0x1d,0x01,0x00,0x00,
    -0xf7,0x00,0x03,0x00,0x39,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x35,0x01,0x00,0x00,0x38,0x01,0x00,0x00,
    -0x5b,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x38,0x01,0x00,0x00,
    -0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x47,0x01,0x00,0x00,
    -0x22,0x01,0x00,0x00,0x20,0x00,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x48,0x01,0x00,0x00,0x49,0x01,0x00,0x00,0x44,0x01,0x00,0x00,
    -0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0xaa,0x00,0x00,0x00,
    -0x47,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x3a,0x01,0x00,0x00,
    -0x4a,0x01,0x00,0x00,0x49,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x4b,0x01,0x00,0x00,0x4a,0x01,0x00,0x00,
    -0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x4c,0x01,0x00,0x00,
    -0x4b,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x14,0x00,0x00,0x00,
    -0x4e,0x01,0x00,0x00,0x4c,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x51,0x01,0x00,0x00,
    -0x22,0x01,0x00,0x00,0x21,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x48,0x01,0x00,0x00,0x52,0x01,0x00,0x00,0x44,0x01,0x00,0x00,
    -0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0xaa,0x00,0x00,0x00,
    -0x51,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x3a,0x01,0x00,0x00,
    -0x53,0x01,0x00,0x00,0x52,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,
    -0x3a,0x01,0x00,0x00,0x54,0x01,0x00,0x00,0x53,0x01,0x00,0x00,
    -0x15,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x55,0x01,0x00,0x00,0x54,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    -0x14,0x00,0x00,0x00,0x56,0x01,0x00,0x00,0x55,0x01,0x00,0x00,
    -0xc7,0x00,0x05,0x00,0x14,0x00,0x00,0x00,0x57,0x01,0x00,0x00,
    -0x56,0x01,0x00,0x00,0xb5,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,
    -0x14,0x00,0x00,0x00,0x59,0x01,0x00,0x00,0x57,0x01,0x00,0x00,
    -0x58,0x01,0x00,0x00,0xc5,0x00,0x05,0x00,0x14,0x00,0x00,0x00,
    -0x5a,0x01,0x00,0x00,0x4e,0x01,0x00,0x00,0x59,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x39,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x5b,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0x5d,0x01,0x00,0x00,0x22,0x01,0x00,0x00,0x21,0x01,0x00,0x00,
    -0xf7,0x00,0x03,0x00,0x60,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x5d,0x01,0x00,0x00,0x5f,0x01,0x00,0x00,
    -0x74,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x5f,0x01,0x00,0x00,
    -0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x63,0x01,0x00,0x00,
    -0x22,0x01,0x00,0x00,0x20,0x00,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x48,0x01,0x00,0x00,0x64,0x01,0x00,0x00,0x44,0x01,0x00,0x00,
    -0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0xaa,0x00,0x00,0x00,
    -0x63,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x3a,0x01,0x00,0x00,
    -0x65,0x01,0x00,0x00,0x64,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x66,0x01,0x00,0x00,0x65,0x01,0x00,0x00,
    -0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x67,0x01,0x00,0x00,
    -0x66,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x14,0x00,0x00,0x00,
    -0x68,0x01,0x00,0x00,0x67,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6b,0x01,0x00,0x00,
    -0x22,0x01,0x00,0x00,0x1d,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x48,0x01,0x00,0x00,0x6c,0x01,0x00,0x00,0x44,0x01,0x00,0x00,
    -0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0xaa,0x00,0x00,0x00,
    -0x6b,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x3a,0x01,0x00,0x00,
    -0x6d,0x01,0x00,0x00,0x6c,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,
    -0x3a,0x01,0x00,0x00,0x6e,0x01,0x00,0x00,0x6d,0x01,0x00,0x00,
    -0xaa,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x6f,0x01,0x00,0x00,0x6e,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    -0x14,0x00,0x00,0x00,0x70,0x01,0x00,0x00,0x6f,0x01,0x00,0x00,
    -0xc7,0x00,0x05,0x00,0x14,0x00,0x00,0x00,0x71,0x01,0x00,0x00,
    -0x70,0x01,0x00,0x00,0xb5,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,
    -0x14,0x00,0x00,0x00,0x72,0x01,0x00,0x00,0x71,0x01,0x00,0x00,
    -0x58,0x01,0x00,0x00,0xc5,0x00,0x05,0x00,0x14,0x00,0x00,0x00,
    -0x73,0x01,0x00,0x00,0x68,0x01,0x00,0x00,0x72,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x60,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x74,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0x76,0x01,0x00,0x00,0x22,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,
    -0xf7,0x00,0x03,0x00,0x79,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x76,0x01,0x00,0x00,0x78,0x01,0x00,0x00,
    -0x8d,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x78,0x01,0x00,0x00,
    -0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7c,0x01,0x00,0x00,
    -0x22,0x01,0x00,0x00,0x21,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x48,0x01,0x00,0x00,0x7d,0x01,0x00,0x00,0x44,0x01,0x00,0x00,
    -0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0xaa,0x00,0x00,0x00,
    -0x7c,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x3a,0x01,0x00,0x00,
    -0x7e,0x01,0x00,0x00,0x7d,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,
    -0x3a,0x01,0x00,0x00,0x7f,0x01,0x00,0x00,0x7e,0x01,0x00,0x00,
    -0x58,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x80,0x01,0x00,0x00,0x7f,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    -0x14,0x00,0x00,0x00,0x81,0x01,0x00,0x00,0x80,0x01,0x00,0x00,
    -0x41,0x00,0x08,0x00,0x48,0x01,0x00,0x00,0x85,0x01,0x00,0x00,
    +0x14,0x01,0x00,0x00,0x13,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x15,0x01,0x00,0x00,
    +0x10,0x01,0x00,0x00,0x14,0x01,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x22,0x01,0x00,0x00,0x08,0x01,0x00,0x00,
    +0x21,0x01,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x25,0x01,0x00,0x00,0x08,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x26,0x01,0x00,0x00,
    +0x25,0x01,0x00,0x00,0x12,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x29,0x01,0x00,0x00,0x26,0x01,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x2c,0x01,0x00,0x00,0x1d,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2e,0x01,0x00,0x00,
    +0x2c,0x01,0x00,0x00,0x26,0x01,0x00,0x00,0xc4,0x00,0x05,0x00,
    +0x14,0x00,0x00,0x00,0x2f,0x01,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0x2e,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x30,0x01,0x00,0x00,0x2f,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x35,0x01,0x00,0x00,0x22,0x01,0x00,0x00,
    +0x1d,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,0x39,0x01,0x00,0x00,
    +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x35,0x01,0x00,0x00,
    +0x38,0x01,0x00,0x00,0x5b,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x38,0x01,0x00,0x00,0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x47,0x01,0x00,0x00,0x22,0x01,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x48,0x01,0x00,0x00,0x49,0x01,0x00,0x00,
     0x44,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,
    -0xaa,0x00,0x00,0x00,0x22,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x3a,0x01,0x00,0x00,0x86,0x01,0x00,0x00,0x85,0x01,0x00,0x00,
    -0xc2,0x00,0x05,0x00,0x3a,0x01,0x00,0x00,0x87,0x01,0x00,0x00,
    -0x86,0x01,0x00,0x00,0x58,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x88,0x01,0x00,0x00,0x87,0x01,0x00,0x00,
    -0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x89,0x01,0x00,0x00,
    -0x88,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x14,0x00,0x00,0x00,
    -0x8a,0x01,0x00,0x00,0x89,0x01,0x00,0x00,0xb5,0x00,0x00,0x00,
    -0xc4,0x00,0x05,0x00,0x14,0x00,0x00,0x00,0x8b,0x01,0x00,0x00,
    -0x8a,0x01,0x00,0x00,0x58,0x01,0x00,0x00,0xc5,0x00,0x05,0x00,
    -0x14,0x00,0x00,0x00,0x8c,0x01,0x00,0x00,0x81,0x01,0x00,0x00,
    -0x8b,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x79,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x8d,0x01,0x00,0x00,0x82,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x90,0x01,0x00,0x00,0x22,0x01,0x00,0x00,
    -0x21,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x48,0x01,0x00,0x00,
    -0x91,0x01,0x00,0x00,0x44,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    -0x05,0x01,0x00,0x00,0xaa,0x00,0x00,0x00,0x90,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x3a,0x01,0x00,0x00,0x92,0x01,0x00,0x00,
    -0x91,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x3a,0x01,0x00,0x00,
    -0x93,0x01,0x00,0x00,0x92,0x01,0x00,0x00,0x58,0x01,0x00,0x00,
    -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x94,0x01,0x00,0x00,
    -0x93,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    -0x95,0x01,0x00,0x00,0x94,0x01,0x00,0x00,0x82,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x98,0x01,0x00,0x00,0x22,0x01,0x00,0x00,
    -0x1d,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x48,0x01,0x00,0x00,
    -0x99,0x01,0x00,0x00,0x44,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    -0x05,0x01,0x00,0x00,0xaa,0x00,0x00,0x00,0x98,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x3a,0x01,0x00,0x00,0x9a,0x01,0x00,0x00,
    -0x99,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x3a,0x01,0x00,0x00,
    -0x9b,0x01,0x00,0x00,0x9a,0x01,0x00,0x00,0xaf,0x00,0x00,0x00,
    -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x9c,0x01,0x00,0x00,
    -0x9b,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    -0x9d,0x01,0x00,0x00,0x9c,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
    -0x14,0x00,0x00,0x00,0x9e,0x01,0x00,0x00,0x9d,0x01,0x00,0x00,
    -0xb5,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x14,0x00,0x00,0x00,
    -0x9f,0x01,0x00,0x00,0x9e,0x01,0x00,0x00,0x58,0x01,0x00,0x00,
    -0xc5,0x00,0x05,0x00,0x14,0x00,0x00,0x00,0xa0,0x01,0x00,0x00,
    -0x95,0x01,0x00,0x00,0x9f,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x79,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x79,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x14,0x00,0x00,0x00,0xba,0x03,0x00,0x00,
    -0x8c,0x01,0x00,0x00,0x78,0x01,0x00,0x00,0xa0,0x01,0x00,0x00,
    -0x8d,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x60,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x60,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x14,0x00,0x00,0x00,0xbb,0x03,0x00,0x00,0x73,0x01,0x00,0x00,
    -0x5f,0x01,0x00,0x00,0xba,0x03,0x00,0x00,0x79,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x39,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x39,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x14,0x00,0x00,0x00,
    -0xbc,0x03,0x00,0x00,0x5a,0x01,0x00,0x00,0x38,0x01,0x00,0x00,
    -0xbb,0x03,0x00,0x00,0x60,0x01,0x00,0x00,0x72,0x00,0x04,0x00,
    -0x31,0x01,0x00,0x00,0xa4,0x01,0x00,0x00,0xbc,0x03,0x00,0x00,
    -0x41,0x00,0x07,0x00,0xa7,0x01,0x00,0x00,0xa8,0x01,0x00,0x00,
    +0xaa,0x00,0x00,0x00,0x47,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x3a,0x01,0x00,0x00,0x4a,0x01,0x00,0x00,0x49,0x01,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4b,0x01,0x00,0x00,
    +0x4a,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    +0x4c,0x01,0x00,0x00,0x4b,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
    +0x14,0x00,0x00,0x00,0x4e,0x01,0x00,0x00,0x4c,0x01,0x00,0x00,
    +0x4d,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x51,0x01,0x00,0x00,0x22,0x01,0x00,0x00,0x21,0x01,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x48,0x01,0x00,0x00,0x52,0x01,0x00,0x00,
    +0x44,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,
    +0xaa,0x00,0x00,0x00,0x51,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x3a,0x01,0x00,0x00,0x53,0x01,0x00,0x00,0x52,0x01,0x00,0x00,
    +0xc2,0x00,0x05,0x00,0x3a,0x01,0x00,0x00,0x54,0x01,0x00,0x00,
    +0x53,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x55,0x01,0x00,0x00,0x54,0x01,0x00,0x00,
    +0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x56,0x01,0x00,0x00,
    +0x55,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x14,0x00,0x00,0x00,
    +0x57,0x01,0x00,0x00,0x56,0x01,0x00,0x00,0xb5,0x00,0x00,0x00,
    +0xc4,0x00,0x05,0x00,0x14,0x00,0x00,0x00,0x59,0x01,0x00,0x00,
    +0x57,0x01,0x00,0x00,0x58,0x01,0x00,0x00,0xc5,0x00,0x05,0x00,
    +0x14,0x00,0x00,0x00,0x5a,0x01,0x00,0x00,0x4e,0x01,0x00,0x00,
    +0x59,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x39,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x5b,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,0x22,0x01,0x00,0x00,
    +0x21,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,0x60,0x01,0x00,0x00,
    +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x5d,0x01,0x00,0x00,
    +0x5f,0x01,0x00,0x00,0x74,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x5f,0x01,0x00,0x00,0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x63,0x01,0x00,0x00,0x22,0x01,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x48,0x01,0x00,0x00,0x64,0x01,0x00,0x00,
    +0x44,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,
    +0xaa,0x00,0x00,0x00,0x63,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x3a,0x01,0x00,0x00,0x65,0x01,0x00,0x00,0x64,0x01,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x66,0x01,0x00,0x00,
    +0x65,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    +0x67,0x01,0x00,0x00,0x66,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
    +0x14,0x00,0x00,0x00,0x68,0x01,0x00,0x00,0x67,0x01,0x00,0x00,
    +0x4d,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x6b,0x01,0x00,0x00,0x22,0x01,0x00,0x00,0x1d,0x01,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x48,0x01,0x00,0x00,0x6c,0x01,0x00,0x00,
    +0x44,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,
    +0xaa,0x00,0x00,0x00,0x6b,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x3a,0x01,0x00,0x00,0x6d,0x01,0x00,0x00,0x6c,0x01,0x00,0x00,
    +0xc2,0x00,0x05,0x00,0x3a,0x01,0x00,0x00,0x6e,0x01,0x00,0x00,
    +0x6d,0x01,0x00,0x00,0xaa,0x00,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x6f,0x01,0x00,0x00,0x6e,0x01,0x00,0x00,
    +0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x70,0x01,0x00,0x00,
    +0x6f,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x14,0x00,0x00,0x00,
    +0x71,0x01,0x00,0x00,0x70,0x01,0x00,0x00,0xb5,0x00,0x00,0x00,
    +0xc4,0x00,0x05,0x00,0x14,0x00,0x00,0x00,0x72,0x01,0x00,0x00,
    +0x71,0x01,0x00,0x00,0x58,0x01,0x00,0x00,0xc5,0x00,0x05,0x00,
    +0x14,0x00,0x00,0x00,0x73,0x01,0x00,0x00,0x68,0x01,0x00,0x00,
    +0x72,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x60,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x74,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x76,0x01,0x00,0x00,0x22,0x01,0x00,0x00,
    +0x3d,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,0x79,0x01,0x00,0x00,
    +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x76,0x01,0x00,0x00,
    +0x78,0x01,0x00,0x00,0x8d,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x78,0x01,0x00,0x00,0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x7c,0x01,0x00,0x00,0x22,0x01,0x00,0x00,0x21,0x01,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x48,0x01,0x00,0x00,0x7d,0x01,0x00,0x00,
    +0x44,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,
    +0xaa,0x00,0x00,0x00,0x7c,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x3a,0x01,0x00,0x00,0x7e,0x01,0x00,0x00,0x7d,0x01,0x00,0x00,
    +0xc2,0x00,0x05,0x00,0x3a,0x01,0x00,0x00,0x7f,0x01,0x00,0x00,
    +0x7e,0x01,0x00,0x00,0x58,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x80,0x01,0x00,0x00,0x7f,0x01,0x00,0x00,
    +0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x81,0x01,0x00,0x00,
    +0x80,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x48,0x01,0x00,0x00,
    +0x85,0x01,0x00,0x00,0x44,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    +0x05,0x01,0x00,0x00,0xaa,0x00,0x00,0x00,0x22,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x3a,0x01,0x00,0x00,0x86,0x01,0x00,0x00,
    +0x85,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x3a,0x01,0x00,0x00,
    +0x87,0x01,0x00,0x00,0x86,0x01,0x00,0x00,0x58,0x01,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x88,0x01,0x00,0x00,
    +0x87,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    +0x89,0x01,0x00,0x00,0x88,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
    +0x14,0x00,0x00,0x00,0x8a,0x01,0x00,0x00,0x89,0x01,0x00,0x00,
    +0xb5,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x14,0x00,0x00,0x00,
    +0x8b,0x01,0x00,0x00,0x8a,0x01,0x00,0x00,0x58,0x01,0x00,0x00,
    +0xc5,0x00,0x05,0x00,0x14,0x00,0x00,0x00,0x8c,0x01,0x00,0x00,
    +0x81,0x01,0x00,0x00,0x8b,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x79,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x8d,0x01,0x00,0x00,
    +0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x90,0x01,0x00,0x00,
    +0x22,0x01,0x00,0x00,0x21,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x48,0x01,0x00,0x00,0x91,0x01,0x00,0x00,0x44,0x01,0x00,0x00,
    +0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0xaa,0x00,0x00,0x00,
    +0x90,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x3a,0x01,0x00,0x00,
    +0x92,0x01,0x00,0x00,0x91,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,
    +0x3a,0x01,0x00,0x00,0x93,0x01,0x00,0x00,0x92,0x01,0x00,0x00,
    +0x58,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x94,0x01,0x00,0x00,0x93,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    +0x14,0x00,0x00,0x00,0x95,0x01,0x00,0x00,0x94,0x01,0x00,0x00,
    +0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x98,0x01,0x00,0x00,
    +0x22,0x01,0x00,0x00,0x1d,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x48,0x01,0x00,0x00,0x99,0x01,0x00,0x00,0x44,0x01,0x00,0x00,
    +0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0xaa,0x00,0x00,0x00,
    +0x98,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x3a,0x01,0x00,0x00,
    +0x9a,0x01,0x00,0x00,0x99,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,
    +0x3a,0x01,0x00,0x00,0x9b,0x01,0x00,0x00,0x9a,0x01,0x00,0x00,
    +0xaf,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x9c,0x01,0x00,0x00,0x9b,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    +0x14,0x00,0x00,0x00,0x9d,0x01,0x00,0x00,0x9c,0x01,0x00,0x00,
    +0xc7,0x00,0x05,0x00,0x14,0x00,0x00,0x00,0x9e,0x01,0x00,0x00,
    +0x9d,0x01,0x00,0x00,0xb5,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,
    +0x14,0x00,0x00,0x00,0x9f,0x01,0x00,0x00,0x9e,0x01,0x00,0x00,
    +0x58,0x01,0x00,0x00,0xc5,0x00,0x05,0x00,0x14,0x00,0x00,0x00,
    +0xa0,0x01,0x00,0x00,0x95,0x01,0x00,0x00,0x9f,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x79,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x79,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x14,0x00,0x00,0x00,
    +0xba,0x03,0x00,0x00,0x8c,0x01,0x00,0x00,0x78,0x01,0x00,0x00,
    +0xa0,0x01,0x00,0x00,0x8d,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x60,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x60,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x14,0x00,0x00,0x00,0xbb,0x03,0x00,0x00,
    +0x73,0x01,0x00,0x00,0x5f,0x01,0x00,0x00,0xba,0x03,0x00,0x00,
    +0x79,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x39,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x39,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x14,0x00,0x00,0x00,0xbc,0x03,0x00,0x00,0x5a,0x01,0x00,0x00,
    +0x38,0x01,0x00,0x00,0xbb,0x03,0x00,0x00,0x60,0x01,0x00,0x00,
    +0x72,0x00,0x04,0x00,0x31,0x01,0x00,0x00,0xa4,0x01,0x00,0x00,
    +0xbc,0x03,0x00,0x00,0x41,0x00,0x07,0x00,0xa7,0x01,0x00,0x00,
    +0xa8,0x01,0x00,0x00,0x44,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    +0x05,0x01,0x00,0x00,0xb5,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x3f,0x01,0x00,0x00,0xa9,0x01,0x00,0x00,0xa8,0x01,0x00,0x00,
    +0x73,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0xaa,0x01,0x00,0x00,
    +0xa9,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    +0xac,0x01,0x00,0x00,0xa4,0x01,0x00,0x00,0x82,0x00,0x05,0x00,
    +0x14,0x00,0x00,0x00,0xae,0x01,0x00,0x00,0xac,0x01,0x00,0x00,
    +0xad,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    +0xaf,0x01,0x00,0x00,0xae,0x01,0x00,0x00,0x85,0x00,0x05,0x00,
    +0xcf,0x00,0x00,0x00,0xb0,0x01,0x00,0x00,0xaa,0x01,0x00,0x00,
    +0xaf,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x48,0x01,0x00,0x00,
    +0xba,0x01,0x00,0x00,0x44,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    +0x05,0x01,0x00,0x00,0x9a,0x00,0x00,0x00,0x15,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x3a,0x01,0x00,0x00,0xbb,0x01,0x00,0x00,
    +0xba,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x3a,0x01,0x00,0x00,
    +0xbd,0x01,0x00,0x00,0xbb,0x01,0x00,0x00,0x29,0x01,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xbe,0x01,0x00,0x00,
    +0xbd,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    +0xbf,0x01,0x00,0x00,0xbe,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
    +0x14,0x00,0x00,0x00,0xc0,0x01,0x00,0x00,0xbf,0x01,0x00,0x00,
    +0xb5,0x00,0x00,0x00,0x72,0x00,0x04,0x00,0x31,0x01,0x00,0x00,
    +0xc1,0x01,0x00,0x00,0xc0,0x01,0x00,0x00,0x72,0x00,0x04,0x00,
    +0x14,0x00,0x00,0x00,0xc2,0x01,0x00,0x00,0xc1,0x01,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x48,0x01,0x00,0x00,0xc5,0x01,0x00,0x00,
     0x44,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,
    -0xb5,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x3f,0x01,0x00,0x00,
    -0xa9,0x01,0x00,0x00,0xa8,0x01,0x00,0x00,0x73,0x00,0x04,0x00,
    -0xcf,0x00,0x00,0x00,0xaa,0x01,0x00,0x00,0xa9,0x01,0x00,0x00,
    -0x72,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0xac,0x01,0x00,0x00,
    -0xa4,0x01,0x00,0x00,0x82,0x00,0x05,0x00,0x14,0x00,0x00,0x00,
    -0xae,0x01,0x00,0x00,0xac,0x01,0x00,0x00,0xad,0x01,0x00,0x00,
    -0x6f,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0xaf,0x01,0x00,0x00,
    -0xae,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0xcf,0x00,0x00,0x00,
    -0xb0,0x01,0x00,0x00,0xaa,0x01,0x00,0x00,0xaf,0x01,0x00,0x00,
    -0x41,0x00,0x08,0x00,0x48,0x01,0x00,0x00,0xba,0x01,0x00,0x00,
    +0x15,0x00,0x00,0x00,0x14,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x3a,0x01,0x00,0x00,0xc6,0x01,0x00,0x00,0xc5,0x01,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xc7,0x01,0x00,0x00,
    +0xc6,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xc9,0x01,0x00,0x00,0xc7,0x01,0x00,0x00,0x30,0x01,0x00,0x00,
    +0xab,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xca,0x01,0x00,0x00,
    +0xc9,0x01,0x00,0x00,0x20,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,
    +0x14,0x00,0x00,0x00,0xcb,0x01,0x00,0x00,0xca,0x01,0x00,0x00,
    +0x15,0x00,0x00,0x00,0x58,0x01,0x00,0x00,0x82,0x00,0x05,0x00,
    +0x14,0x00,0x00,0x00,0xcc,0x01,0x00,0x00,0xc2,0x01,0x00,0x00,
    +0xcb,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    +0xcd,0x01,0x00,0x00,0xcc,0x01,0x00,0x00,0x85,0x00,0x05,0x00,
    +0xcf,0x00,0x00,0x00,0xce,0x01,0x00,0x00,0xb0,0x01,0x00,0x00,
    +0xcd,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x3f,0x01,0x00,0x00,
    +0xcf,0x01,0x00,0x00,0xce,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xd0,0x01,0x00,0x00,0xd1,0x01,0x00,0x00,0xb5,0x01,0x00,0x00,
    +0x01,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xd1,0x01,0x00,0x00,
    +0xcf,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xd3,0x01,0x00,0x00,0x01,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd7,0x01,0x00,0x00,
    +0x15,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x48,0x01,0x00,0x00,0xd8,0x01,0x00,0x00,0x44,0x01,0x00,0x00,
    +0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xd7,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x3a,0x01,0x00,0x00,
    +0xd9,0x01,0x00,0x00,0xd8,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,
    +0x3a,0x01,0x00,0x00,0xdb,0x01,0x00,0x00,0xd9,0x01,0x00,0x00,
    +0x29,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0xdc,0x01,0x00,0x00,0xdb,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    +0x14,0x00,0x00,0x00,0xdd,0x01,0x00,0x00,0xdc,0x01,0x00,0x00,
    +0xc7,0x00,0x05,0x00,0x14,0x00,0x00,0x00,0xde,0x01,0x00,0x00,
    +0xdd,0x01,0x00,0x00,0xb5,0x00,0x00,0x00,0x72,0x00,0x04,0x00,
    +0x31,0x01,0x00,0x00,0xdf,0x01,0x00,0x00,0xde,0x01,0x00,0x00,
    +0x72,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0xe0,0x01,0x00,0x00,
    +0xdf,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xe3,0x01,0x00,0x00,0x14,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x48,0x01,0x00,0x00,0xe4,0x01,0x00,0x00,
     0x44,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0x15,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x3a,0x01,0x00,0x00,0xbb,0x01,0x00,0x00,0xba,0x01,0x00,0x00,
    -0xc2,0x00,0x05,0x00,0x3a,0x01,0x00,0x00,0xbd,0x01,0x00,0x00,
    -0xbb,0x01,0x00,0x00,0x29,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0xbe,0x01,0x00,0x00,0xbd,0x01,0x00,0x00,
    -0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0xbf,0x01,0x00,0x00,
    -0xbe,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x14,0x00,0x00,0x00,
    -0xc0,0x01,0x00,0x00,0xbf,0x01,0x00,0x00,0xb5,0x00,0x00,0x00,
    -0x72,0x00,0x04,0x00,0x31,0x01,0x00,0x00,0xc1,0x01,0x00,0x00,
    -0xc0,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    -0xc2,0x01,0x00,0x00,0xc1,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x48,0x01,0x00,0x00,0xc5,0x01,0x00,0x00,0x44,0x01,0x00,0x00,
    -0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    -0x14,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x3a,0x01,0x00,0x00,
    -0xc6,0x01,0x00,0x00,0xc5,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0xc7,0x01,0x00,0x00,0xc6,0x01,0x00,0x00,
    -0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc9,0x01,0x00,0x00,
    -0xc7,0x01,0x00,0x00,0x30,0x01,0x00,0x00,0xab,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0xca,0x01,0x00,0x00,0xc9,0x01,0x00,0x00,
    -0x20,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,0x14,0x00,0x00,0x00,
    -0xcb,0x01,0x00,0x00,0xca,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    -0x58,0x01,0x00,0x00,0x82,0x00,0x05,0x00,0x14,0x00,0x00,0x00,
    -0xcc,0x01,0x00,0x00,0xc2,0x01,0x00,0x00,0xcb,0x01,0x00,0x00,
    -0x6f,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0xcd,0x01,0x00,0x00,
    -0xcc,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0xcf,0x00,0x00,0x00,
    -0xce,0x01,0x00,0x00,0xb0,0x01,0x00,0x00,0xcd,0x01,0x00,0x00,
    -0x73,0x00,0x04,0x00,0x3f,0x01,0x00,0x00,0xcf,0x01,0x00,0x00,
    -0xce,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0xd0,0x01,0x00,0x00,
    -0xd1,0x01,0x00,0x00,0xb5,0x01,0x00,0x00,0x01,0x01,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0xd1,0x01,0x00,0x00,0xcf,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd3,0x01,0x00,0x00,
    -0x01,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xd7,0x01,0x00,0x00,0x15,0x01,0x00,0x00,
    -0x1b,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0x48,0x01,0x00,0x00,
    -0xd8,0x01,0x00,0x00,0x44,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    -0x05,0x01,0x00,0x00,0x9a,0x00,0x00,0x00,0xd7,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x3a,0x01,0x00,0x00,0xd9,0x01,0x00,0x00,
    -0xd8,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x3a,0x01,0x00,0x00,
    -0xdb,0x01,0x00,0x00,0xd9,0x01,0x00,0x00,0x29,0x01,0x00,0x00,
    -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xdc,0x01,0x00,0x00,
    -0xdb,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    -0xdd,0x01,0x00,0x00,0xdc,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
    -0x14,0x00,0x00,0x00,0xde,0x01,0x00,0x00,0xdd,0x01,0x00,0x00,
    -0xb5,0x00,0x00,0x00,0x72,0x00,0x04,0x00,0x31,0x01,0x00,0x00,
    -0xdf,0x01,0x00,0x00,0xde,0x01,0x00,0x00,0x72,0x00,0x04,0x00,
    -0x14,0x00,0x00,0x00,0xe0,0x01,0x00,0x00,0xdf,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe3,0x01,0x00,0x00,
    -0x14,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x48,0x01,0x00,0x00,0xe4,0x01,0x00,0x00,0x44,0x01,0x00,0x00,
    -0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    -0xe3,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x3a,0x01,0x00,0x00,
    -0xe5,0x01,0x00,0x00,0xe4,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0xe6,0x01,0x00,0x00,0xe5,0x01,0x00,0x00,
    -0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe8,0x01,0x00,0x00,
    -0xe6,0x01,0x00,0x00,0x30,0x01,0x00,0x00,0xab,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0xe9,0x01,0x00,0x00,0xe8,0x01,0x00,0x00,
    -0x20,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,0x14,0x00,0x00,0x00,
    -0xea,0x01,0x00,0x00,0xe9,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    -0x58,0x01,0x00,0x00,0x82,0x00,0x05,0x00,0x14,0x00,0x00,0x00,
    -0xeb,0x01,0x00,0x00,0xe0,0x01,0x00,0x00,0xea,0x01,0x00,0x00,
    -0x6f,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0xec,0x01,0x00,0x00,
    -0xeb,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0xcf,0x00,0x00,0x00,
    -0xed,0x01,0x00,0x00,0xb0,0x01,0x00,0x00,0xec,0x01,0x00,0x00,
    -0x73,0x00,0x04,0x00,0x3f,0x01,0x00,0x00,0xee,0x01,0x00,0x00,
    -0xed,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0xd0,0x01,0x00,0x00,
    -0xef,0x01,0x00,0x00,0xb5,0x01,0x00,0x00,0xd3,0x01,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0xef,0x01,0x00,0x00,0xee,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xe9,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xe9,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xf6,0x01,0x00,0x00,0x94,0x03,0x00,0x00,0xf4,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xe6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xe8,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xf8,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xf8,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x95,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    -0xe8,0x00,0x00,0x00,0x4a,0x02,0x00,0x00,0xfb,0x01,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xfe,0x01,0x00,0x00,
    -0x95,0x03,0x00,0x00,0xa2,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xfa,0x01,0x00,0x00,0xfb,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xfe,0x01,0x00,0x00,0xf9,0x01,0x00,0x00,
    -0xfa,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xf9,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x03,0x02,0x00,0x00,
    -0xa3,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x05,0x02,0x00,0x00,0x03,0x02,0x00,0x00,
    -0x95,0x03,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0x08,0x02,0x00,0x00,0x05,0x02,0x00,0x00,0x81,0x03,0x00,0x00,
    -0xf7,0x00,0x03,0x00,0x0a,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x08,0x02,0x00,0x00,0x09,0x02,0x00,0x00,
    -0x3c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x09,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x97,0x00,0x00,0x00,0x0e,0x02,0x00,0x00,
    -0x90,0x00,0x00,0x00,0x05,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x8c,0x00,0x00,0x00,0x0f,0x02,0x00,0x00,0x0e,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x17,0x02,0x00,0x00,
    +0x15,0x00,0x00,0x00,0xe3,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x3a,0x01,0x00,0x00,0xe5,0x01,0x00,0x00,0xe4,0x01,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xe6,0x01,0x00,0x00,
    +0xe5,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xe8,0x01,0x00,0x00,0xe6,0x01,0x00,0x00,0x30,0x01,0x00,0x00,
    +0xab,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xe9,0x01,0x00,0x00,
    +0xe8,0x01,0x00,0x00,0x20,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,
    +0x14,0x00,0x00,0x00,0xea,0x01,0x00,0x00,0xe9,0x01,0x00,0x00,
    +0x15,0x00,0x00,0x00,0x58,0x01,0x00,0x00,0x82,0x00,0x05,0x00,
    +0x14,0x00,0x00,0x00,0xeb,0x01,0x00,0x00,0xe0,0x01,0x00,0x00,
    +0xea,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    +0xec,0x01,0x00,0x00,0xeb,0x01,0x00,0x00,0x85,0x00,0x05,0x00,
    +0xcf,0x00,0x00,0x00,0xed,0x01,0x00,0x00,0xb0,0x01,0x00,0x00,
    +0xec,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x3f,0x01,0x00,0x00,
    +0xee,0x01,0x00,0x00,0xed,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xd0,0x01,0x00,0x00,0xef,0x01,0x00,0x00,0xb5,0x01,0x00,0x00,
    +0xd3,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xef,0x01,0x00,0x00,
    +0xee,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xe9,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xe9,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xf6,0x01,0x00,0x00,0x94,0x03,0x00,0x00,
    +0xf4,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xe6,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xe8,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xf8,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xf8,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x95,0x03,0x00,0x00,
    +0x20,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0x4a,0x02,0x00,0x00,
    +0xfb,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0xfe,0x01,0x00,0x00,0x95,0x03,0x00,0x00,0xa2,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xfa,0x01,0x00,0x00,0xfb,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xfe,0x01,0x00,0x00,
    +0xf9,0x01,0x00,0x00,0xfa,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xf9,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x03,0x02,0x00,0x00,0xa3,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x05,0x02,0x00,0x00,
    +0x03,0x02,0x00,0x00,0x95,0x03,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x08,0x02,0x00,0x00,0x05,0x02,0x00,0x00,
    +0x81,0x03,0x00,0x00,0xf7,0x00,0x03,0x00,0x0a,0x02,0x00,0x00,
    +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x08,0x02,0x00,0x00,
    +0x09,0x02,0x00,0x00,0x3c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x09,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x97,0x00,0x00,0x00,
    +0x0e,0x02,0x00,0x00,0x90,0x00,0x00,0x00,0x05,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,0x0f,0x02,0x00,0x00,
    +0x0e,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x17,0x02,0x00,0x00,0x5f,0x00,0x00,0x00,0x95,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x19,0x02,0x00,0x00,
    +0x17,0x02,0x00,0x00,0x18,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x1b,0x02,0x00,0x00,0x19,0x02,0x00,0x00,
    +0x5a,0x00,0x00,0x00,0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,
    +0x23,0x02,0x00,0x00,0x0f,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x24,0x02,0x00,0x00,
    +0x23,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
    +0x26,0x02,0x00,0x00,0x13,0x00,0x00,0x00,0x25,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x27,0x02,0x00,0x00,
    +0x26,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x28,0x02,0x00,0x00,0x24,0x02,0x00,0x00,0x27,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x29,0x02,0x00,0x00,
    +0x9c,0x03,0x00,0x00,0x28,0x02,0x00,0x00,0x51,0x00,0x05,0x00,
    +0x8b,0x00,0x00,0x00,0x2b,0x02,0x00,0x00,0x0f,0x02,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x2c,0x02,0x00,0x00,0x2b,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x16,0x00,0x00,0x00,0x2e,0x02,0x00,0x00,0x13,0x00,0x00,0x00,
    +0x2d,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x2f,0x02,0x00,0x00,0x2e,0x02,0x00,0x00,0x89,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x30,0x02,0x00,0x00,0x2c,0x02,0x00,0x00,
    +0x2f,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
    +0x31,0x02,0x00,0x00,0x13,0x00,0x00,0x00,0x58,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x32,0x02,0x00,0x00,
    +0x31,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x33,0x02,0x00,0x00,0x30,0x02,0x00,0x00,0x32,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x34,0x02,0x00,0x00,
    +0x29,0x02,0x00,0x00,0x33,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x36,0x02,0x00,0x00,0x34,0x02,0x00,0x00,
    +0x5a,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x37,0x02,0x00,0x00,
    +0x38,0x02,0x00,0x00,0x1f,0x02,0x00,0x00,0x15,0x00,0x00,0x00,
    +0x36,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    +0x39,0x02,0x00,0x00,0x38,0x02,0x00,0x00,0x73,0x00,0x04,0x00,
    +0x3f,0x01,0x00,0x00,0x3a,0x02,0x00,0x00,0x39,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xd0,0x01,0x00,0x00,0x3b,0x02,0x00,0x00,
    +0x14,0x02,0x00,0x00,0x1b,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x3b,0x02,0x00,0x00,0x3a,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x0a,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x3c,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3f,0x02,0x00,0x00,
     0x5f,0x00,0x00,0x00,0x95,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x19,0x02,0x00,0x00,0x17,0x02,0x00,0x00,
    -0x18,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x1b,0x02,0x00,0x00,0x19,0x02,0x00,0x00,0x5a,0x00,0x00,0x00,
    -0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,0x23,0x02,0x00,0x00,
    -0x0f,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x24,0x02,0x00,0x00,0x23,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0x26,0x02,0x00,0x00,
    -0x13,0x00,0x00,0x00,0x25,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x27,0x02,0x00,0x00,0x26,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x28,0x02,0x00,0x00,
    -0x24,0x02,0x00,0x00,0x27,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x29,0x02,0x00,0x00,0x9c,0x03,0x00,0x00,
    -0x28,0x02,0x00,0x00,0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,
    -0x2b,0x02,0x00,0x00,0x0f,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x2c,0x02,0x00,0x00,
    -0x2b,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
    -0x2e,0x02,0x00,0x00,0x13,0x00,0x00,0x00,0x2d,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x2f,0x02,0x00,0x00,
    -0x2e,0x02,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x30,0x02,0x00,0x00,0x2c,0x02,0x00,0x00,0x2f,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0x31,0x02,0x00,0x00,
    -0x13,0x00,0x00,0x00,0x58,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x32,0x02,0x00,0x00,0x31,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x33,0x02,0x00,0x00,
    -0x30,0x02,0x00,0x00,0x32,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x34,0x02,0x00,0x00,0x29,0x02,0x00,0x00,
    -0x33,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x36,0x02,0x00,0x00,0x34,0x02,0x00,0x00,0x5a,0x00,0x00,0x00,
    -0x41,0x00,0x06,0x00,0x37,0x02,0x00,0x00,0x38,0x02,0x00,0x00,
    -0x1f,0x02,0x00,0x00,0x15,0x00,0x00,0x00,0x36,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0x39,0x02,0x00,0x00,
    -0x38,0x02,0x00,0x00,0x73,0x00,0x04,0x00,0x3f,0x01,0x00,0x00,
    -0x3a,0x02,0x00,0x00,0x39,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xd0,0x01,0x00,0x00,0x3b,0x02,0x00,0x00,0x14,0x02,0x00,0x00,
    -0x1b,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0x3b,0x02,0x00,0x00,
    -0x3a,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x0a,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x3c,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x3f,0x02,0x00,0x00,0x5f,0x00,0x00,0x00,
    -0x95,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x41,0x02,0x00,0x00,0x3f,0x02,0x00,0x00,0x40,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x43,0x02,0x00,0x00,
    -0x41,0x02,0x00,0x00,0x5a,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xd0,0x01,0x00,0x00,0x45,0x02,0x00,0x00,0x14,0x02,0x00,0x00,
    -0x43,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0x45,0x02,0x00,0x00,
    -0x44,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x0a,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x0a,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xfb,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xfb,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4a,0x02,0x00,0x00,
    -0x95,0x03,0x00,0x00,0x48,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xf8,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xfa,0x01,0x00,0x00,
    -0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0xa0,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x4d,0x02,0x00,0x00,0x98,0x03,0x00,0x00,0x4b,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x50,0x02,0x00,0x00,
    -0x9c,0x03,0x00,0x00,0x4e,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x52,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x52,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x9e,0x03,0x00,0x00,
    -0x20,0x00,0x00,0x00,0xfa,0x01,0x00,0x00,0xfc,0x02,0x00,0x00,
    -0x55,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0x58,0x02,0x00,0x00,0x9e,0x03,0x00,0x00,0x4e,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x54,0x02,0x00,0x00,0x55,0x02,0x00,0x00,
    -0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x58,0x02,0x00,0x00,
    -0x53,0x02,0x00,0x00,0x54,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x53,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x5a,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x5a,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xa2,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x53,0x02,0x00,0x00,0x86,0x02,0x00,0x00,0x5d,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x60,0x02,0x00,0x00,
    -0xa2,0x03,0x00,0x00,0x42,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x5c,0x02,0x00,0x00,0x5d,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x60,0x02,0x00,0x00,0x5b,0x02,0x00,0x00,
    -0x5c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x5b,0x02,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x41,0x02,0x00,0x00,0x3f,0x02,0x00,0x00,
    +0x40,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x43,0x02,0x00,0x00,0x41,0x02,0x00,0x00,0x5a,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xd0,0x01,0x00,0x00,0x45,0x02,0x00,0x00,
    +0x14,0x02,0x00,0x00,0x43,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x45,0x02,0x00,0x00,0x44,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x0a,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x0a,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xfb,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xfb,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x4a,0x02,0x00,0x00,0x95,0x03,0x00,0x00,0x48,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xf8,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xfa,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x4d,0x02,0x00,0x00,0x98,0x03,0x00,0x00,
    +0x4b,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x50,0x02,0x00,0x00,0x9c,0x03,0x00,0x00,0x4e,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x52,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x52,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x9e,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0xfa,0x01,0x00,0x00,
    +0xfc,0x02,0x00,0x00,0x55,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x58,0x02,0x00,0x00,0x9e,0x03,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x54,0x02,0x00,0x00,
    +0x55,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x58,0x02,0x00,0x00,0x53,0x02,0x00,0x00,0x54,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x53,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x5a,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x5a,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xa2,0x03,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x53,0x02,0x00,0x00,0x86,0x02,0x00,0x00,
    +0x5d,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0x60,0x02,0x00,0x00,0xa2,0x03,0x00,0x00,0x42,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x5c,0x02,0x00,0x00,0x5d,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x60,0x02,0x00,0x00,
    +0x5b,0x02,0x00,0x00,0x5c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x5b,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x62,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x62,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xb4,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x5b,0x02,0x00,0x00,0x84,0x02,0x00,0x00,0x63,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x68,0x02,0x00,0x00,
    +0xb4,0x03,0x00,0x00,0x44,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x64,0x02,0x00,0x00,0x63,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x68,0x02,0x00,0x00,0x63,0x02,0x00,0x00,
    +0x64,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x63,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6e,0x02,0x00,0x00,
    +0xa2,0x03,0x00,0x00,0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x70,0x02,0x00,0x00,0x6e,0x02,0x00,0x00,
    +0xb4,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x72,0x02,0x00,0x00,0x37,0x00,0x00,0x00,0x35,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x74,0x02,0x00,0x00,
    +0xa2,0x03,0x00,0x00,0x43,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x75,0x02,0x00,0x00,0x72,0x02,0x00,0x00,
    +0x74,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x77,0x02,0x00,0x00,0x46,0x00,0x00,0x00,0x44,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x78,0x02,0x00,0x00,
    +0x75,0x02,0x00,0x00,0x77,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x7a,0x02,0x00,0x00,0x78,0x02,0x00,0x00,
    +0xb4,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x7c,0x02,0x00,0x00,0x7a,0x02,0x00,0x00,0x7b,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7e,0x02,0x00,0x00,
    +0x7c,0x02,0x00,0x00,0x9e,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xd0,0x01,0x00,0x00,0x7f,0x02,0x00,0x00,0xb5,0x01,0x00,0x00,
    +0x7e,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x3f,0x01,0x00,0x00,
    +0x80,0x02,0x00,0x00,0x7f,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x81,0x02,0x00,0x00,0x82,0x02,0x00,0x00,0x6c,0x02,0x00,0x00,
    +0x70,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0x82,0x02,0x00,0x00,
    +0x80,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x84,0x02,0x00,0x00,0xb4,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
     0xf9,0x00,0x02,0x00,0x62,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x62,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xb4,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0x5b,0x02,0x00,0x00,
    -0x84,0x02,0x00,0x00,0x63,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0x68,0x02,0x00,0x00,0xb4,0x03,0x00,0x00,
    -0x44,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x64,0x02,0x00,0x00,
    -0x63,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x68,0x02,0x00,0x00,0x63,0x02,0x00,0x00,0x64,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x63,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x6e,0x02,0x00,0x00,0xa2,0x03,0x00,0x00,
    -0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x70,0x02,0x00,0x00,0x6e,0x02,0x00,0x00,0xb4,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x72,0x02,0x00,0x00,
    -0x37,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x74,0x02,0x00,0x00,0xa2,0x03,0x00,0x00,
    -0x43,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x75,0x02,0x00,0x00,0x72,0x02,0x00,0x00,0x74,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x77,0x02,0x00,0x00,
    -0x46,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x78,0x02,0x00,0x00,0x75,0x02,0x00,0x00,
    -0x77,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x7a,0x02,0x00,0x00,0x78,0x02,0x00,0x00,0xb4,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7c,0x02,0x00,0x00,
    -0x7a,0x02,0x00,0x00,0x7b,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x7e,0x02,0x00,0x00,0x7c,0x02,0x00,0x00,
    -0x9e,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0xd0,0x01,0x00,0x00,
    -0x7f,0x02,0x00,0x00,0xb5,0x01,0x00,0x00,0x7e,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x3f,0x01,0x00,0x00,0x80,0x02,0x00,0x00,
    -0x7f,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x81,0x02,0x00,0x00,
    -0x82,0x02,0x00,0x00,0x6c,0x02,0x00,0x00,0x70,0x02,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x82,0x02,0x00,0x00,0x80,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x84,0x02,0x00,0x00,
    -0xb4,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x62,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x64,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x5d,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x5d,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x86,0x02,0x00,0x00,0xa2,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x5a,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x5c,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x88,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x88,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xa3,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x5c,0x02,0x00,0x00,0xb4,0x02,0x00,0x00,0x8b,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x8e,0x02,0x00,0x00,
    -0xa3,0x03,0x00,0x00,0xcb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x8a,0x02,0x00,0x00,0x8b,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x8e,0x02,0x00,0x00,0x89,0x02,0x00,0x00,
    -0x8a,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x89,0x02,0x00,0x00,
    +0x64,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x5d,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x5d,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x86,0x02,0x00,0x00,0xa2,0x03,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x5a,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x5c,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x88,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x88,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xa3,0x03,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x5c,0x02,0x00,0x00,0xb4,0x02,0x00,0x00,
    +0x8b,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0x8e,0x02,0x00,0x00,0xa3,0x03,0x00,0x00,0xcb,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x8a,0x02,0x00,0x00,0x8b,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x8e,0x02,0x00,0x00,
    +0x89,0x02,0x00,0x00,0x8a,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x89,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x90,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x90,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xb1,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x89,0x02,0x00,0x00,0xb2,0x02,0x00,0x00,0x91,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x96,0x02,0x00,0x00,
    +0xb1,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x92,0x02,0x00,0x00,0x91,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x96,0x02,0x00,0x00,0x91,0x02,0x00,0x00,
    +0x92,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x91,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9c,0x02,0x00,0x00,
    +0xa3,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x9e,0x02,0x00,0x00,0x9c,0x02,0x00,0x00,
    +0xb1,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xa0,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa3,0x02,0x00,0x00,
    +0xa3,0x03,0x00,0x00,0xa2,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xa4,0x02,0x00,0x00,0xa0,0x02,0x00,0x00,
    +0xa3,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xa6,0x02,0x00,0x00,0x4a,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa7,0x02,0x00,0x00,
    +0xa4,0x02,0x00,0x00,0xa6,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xa9,0x02,0x00,0x00,0xa7,0x02,0x00,0x00,
    +0xb1,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xab,0x02,0x00,0x00,0xa9,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xad,0x02,0x00,0x00,
    +0xab,0x02,0x00,0x00,0x9e,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xd0,0x01,0x00,0x00,0xae,0x02,0x00,0x00,0x14,0x02,0x00,0x00,
    +0xad,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x3f,0x01,0x00,0x00,
    +0xaf,0x02,0x00,0x00,0xae,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x81,0x02,0x00,0x00,0xb0,0x02,0x00,0x00,0x9a,0x02,0x00,0x00,
    +0x9e,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0xb0,0x02,0x00,0x00,
    +0xaf,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xb2,0x02,0x00,0x00,0xb1,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
     0xf9,0x00,0x02,0x00,0x90,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x90,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xb1,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0x89,0x02,0x00,0x00,
    -0xb2,0x02,0x00,0x00,0x91,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0x96,0x02,0x00,0x00,0xb1,0x03,0x00,0x00,
    -0xc8,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x92,0x02,0x00,0x00,
    -0x91,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x96,0x02,0x00,0x00,0x91,0x02,0x00,0x00,0x92,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x91,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x9c,0x02,0x00,0x00,0xa3,0x03,0x00,0x00,
    -0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x9e,0x02,0x00,0x00,0x9c,0x02,0x00,0x00,0xb1,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa0,0x02,0x00,0x00,
    -0x3b,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xa3,0x02,0x00,0x00,0xa3,0x03,0x00,0x00,
    -0xa2,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xa4,0x02,0x00,0x00,0xa0,0x02,0x00,0x00,0xa3,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa6,0x02,0x00,0x00,
    -0x4a,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xa7,0x02,0x00,0x00,0xa4,0x02,0x00,0x00,
    -0xa6,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xa9,0x02,0x00,0x00,0xa7,0x02,0x00,0x00,0xb1,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xab,0x02,0x00,0x00,
    -0xa9,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xad,0x02,0x00,0x00,0xab,0x02,0x00,0x00,
    -0x9e,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0xd0,0x01,0x00,0x00,
    -0xae,0x02,0x00,0x00,0x14,0x02,0x00,0x00,0xad,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x3f,0x01,0x00,0x00,0xaf,0x02,0x00,0x00,
    -0xae,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x81,0x02,0x00,0x00,
    -0xb0,0x02,0x00,0x00,0x9a,0x02,0x00,0x00,0x9e,0x02,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0xb0,0x02,0x00,0x00,0xaf,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb2,0x02,0x00,0x00,
    -0xb1,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x90,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x92,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x8b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x8b,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xb4,0x02,0x00,0x00,0xa3,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x88,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x8a,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xb6,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xb6,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xa4,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x8a,0x02,0x00,0x00,0xfa,0x02,0x00,0x00,0xb9,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xbc,0x02,0x00,0x00,
    -0xa4,0x03,0x00,0x00,0xcb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xb8,0x02,0x00,0x00,0xb9,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xbc,0x02,0x00,0x00,0xb7,0x02,0x00,0x00,
    -0xb8,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xb7,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xbe,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xbe,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xa8,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0xb7,0x02,0x00,0x00,
    -0xf8,0x02,0x00,0x00,0xc1,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0xc4,0x02,0x00,0x00,0xa8,0x03,0x00,0x00,
    -0x42,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xc0,0x02,0x00,0x00,
    -0xc1,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xc4,0x02,0x00,0x00,0xbf,0x02,0x00,0x00,0xc0,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xbf,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xc6,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xc6,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xaa,0x03,0x00,0x00,
    -0x20,0x00,0x00,0x00,0xbf,0x02,0x00,0x00,0xf6,0x02,0x00,0x00,
    -0xc9,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0xcc,0x02,0x00,0x00,0xaa,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xc8,0x02,0x00,0x00,0xc9,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xcc,0x02,0x00,0x00,
    -0xc7,0x02,0x00,0x00,0xc8,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xc7,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xce,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xce,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xac,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    -0xc7,0x02,0x00,0x00,0xf4,0x02,0x00,0x00,0xcf,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xd4,0x02,0x00,0x00,
    -0xac,0x03,0x00,0x00,0x44,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xd0,0x02,0x00,0x00,0xcf,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xd4,0x02,0x00,0x00,0xcf,0x02,0x00,0x00,
    -0xd0,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xcf,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd6,0x02,0x00,0x00,
    -0xa4,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xd8,0x02,0x00,0x00,0xd6,0x02,0x00,0x00,
    -0xaa,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xda,0x02,0x00,0x00,0xd8,0x02,0x00,0x00,0xd9,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdc,0x02,0x00,0x00,
    -0xa8,0x03,0x00,0x00,0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xdd,0x02,0x00,0x00,0xda,0x02,0x00,0x00,
    -0xdc,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xdf,0x02,0x00,0x00,0xdd,0x02,0x00,0x00,0xac,0x03,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe3,0x02,0x00,0x00,
    -0xdc,0x02,0x00,0x00,0xac,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x81,0x02,0x00,0x00,0xe4,0x02,0x00,0x00,0x6c,0x02,0x00,0x00,
    -0xe3,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x3f,0x01,0x00,0x00,
    -0xe5,0x02,0x00,0x00,0xe4,0x02,0x00,0x00,0x73,0x00,0x04,0x00,
    -0xcf,0x00,0x00,0x00,0xe6,0x02,0x00,0x00,0xe5,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x81,0x02,0x00,0x00,0xeb,0x02,0x00,0x00,
    -0x9a,0x02,0x00,0x00,0xd8,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x3f,0x01,0x00,0x00,0xec,0x02,0x00,0x00,0xeb,0x02,0x00,0x00,
    -0x73,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0xed,0x02,0x00,0x00,
    -0xec,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,
    -0xef,0x02,0x00,0x00,0xd5,0x00,0x00,0x00,0xdf,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0xf0,0x02,0x00,0x00,
    -0xef,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0xcf,0x00,0x00,0x00,
    -0xf1,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,
    -0xe6,0x02,0x00,0x00,0xed,0x02,0x00,0x00,0xf0,0x02,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0xef,0x02,0x00,0x00,0xf1,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf4,0x02,0x00,0x00,
    -0xac,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xce,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xd0,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xc9,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xc9,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xf6,0x02,0x00,0x00,0xaa,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0x92,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x8b,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x8b,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xb4,0x02,0x00,0x00,0xa3,0x03,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x88,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x8a,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xb6,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xb6,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xa4,0x03,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x8a,0x02,0x00,0x00,0xfa,0x02,0x00,0x00,
    +0xb9,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0xbc,0x02,0x00,0x00,0xa4,0x03,0x00,0x00,0xcb,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xb8,0x02,0x00,0x00,0xb9,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xbc,0x02,0x00,0x00,
    +0xb7,0x02,0x00,0x00,0xb8,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xb7,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xbe,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xbe,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xa8,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    +0xb7,0x02,0x00,0x00,0xf8,0x02,0x00,0x00,0xc1,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xc4,0x02,0x00,0x00,
    +0xa8,0x03,0x00,0x00,0x42,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xc0,0x02,0x00,0x00,0xc1,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xc4,0x02,0x00,0x00,0xbf,0x02,0x00,0x00,
    +0xc0,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xbf,0x02,0x00,0x00,
     0xf9,0x00,0x02,0x00,0xc6,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xc8,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xc1,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xc1,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xf8,0x02,0x00,0x00,0xa8,0x03,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xbe,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xc0,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xb9,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xb9,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfa,0x02,0x00,0x00,
    -0xa4,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xb6,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xb8,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x55,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x55,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xfc,0x02,0x00,0x00,0x9e,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x52,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x54,0x02,0x00,0x00,0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xe0,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xe0,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfe,0x02,0x00,0x00,
    -0x83,0x03,0x00,0x00,0x4e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xdd,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xdf,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x03,0x03,0x00,0x00,
    -0x37,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x04,0x03,0x00,0x00,0xb4,0x00,0x00,0x00,
    -0x03,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x09,0x03,0x00,0x00,0x3b,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0a,0x03,0x00,0x00,
    -0xa3,0x00,0x00,0x00,0x09,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x0c,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x0c,0x03,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x84,0x03,0x00,0x00,
    -0x20,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0x75,0x03,0x00,0x00,
    -0x0f,0x03,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0x12,0x03,0x00,0x00,0x84,0x03,0x00,0x00,0xcb,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x0e,0x03,0x00,0x00,0x0f,0x03,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x12,0x03,0x00,0x00,
    -0x0d,0x03,0x00,0x00,0x0e,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x0d,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,0x14,0x03,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x14,0x03,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x85,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x0d,0x03,0x00,0x00,0x73,0x03,0x00,0x00,0x17,0x03,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x1a,0x03,0x00,0x00,
    -0x85,0x03,0x00,0x00,0x42,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x16,0x03,0x00,0x00,0x17,0x03,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x1a,0x03,0x00,0x00,0x15,0x03,0x00,0x00,
    -0x16,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x15,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1e,0x03,0x00,0x00,
    -0x85,0x03,0x00,0x00,0x43,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x1f,0x03,0x00,0x00,0x04,0x03,0x00,0x00,
    -0x1e,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x21,0x03,0x00,0x00,0x46,0x00,0x00,0x00,0x44,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x22,0x03,0x00,0x00,
    -0x1f,0x03,0x00,0x00,0x21,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x26,0x03,0x00,0x00,0x84,0x03,0x00,0x00,
    -0xa2,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x27,0x03,0x00,0x00,0x0a,0x03,0x00,0x00,0x26,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x29,0x03,0x00,0x00,
    -0x4a,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x2a,0x03,0x00,0x00,0x27,0x03,0x00,0x00,
    -0x29,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,0x2c,0x03,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x2c,0x03,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x87,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x15,0x03,0x00,0x00,0x71,0x03,0x00,0x00,0x2f,0x03,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x32,0x03,0x00,0x00,
    -0x87,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x2e,0x03,0x00,0x00,0x2f,0x03,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x32,0x03,0x00,0x00,0x2d,0x03,0x00,0x00,
    -0x2e,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x2d,0x03,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x36,0x03,0x00,0x00,
    -0x2a,0x03,0x00,0x00,0x87,0x03,0x00,0x00,0xae,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0x39,0x03,0x00,0x00,0x36,0x03,0x00,0x00,
    -0x81,0x03,0x00,0x00,0xf7,0x00,0x03,0x00,0x3b,0x03,0x00,0x00,
    -0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x39,0x03,0x00,0x00,
    -0x3a,0x03,0x00,0x00,0x3b,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x3a,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,0x2e,0x03,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x3b,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x97,0x00,0x00,0x00,0x3f,0x03,0x00,0x00,0x90,0x00,0x00,0x00,
    -0x36,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,
    -0x40,0x03,0x00,0x00,0x3f,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x42,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x42,0x03,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x8d,0x03,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x3b,0x03,0x00,0x00,0x6f,0x03,0x00,0x00,
    -0x43,0x03,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0x48,0x03,0x00,0x00,0x8d,0x03,0x00,0x00,0x44,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x44,0x03,0x00,0x00,0x43,0x03,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x48,0x03,0x00,0x00,
    -0x43,0x03,0x00,0x00,0x44,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x43,0x03,0x00,0x00,0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,
    -0x4e,0x03,0x00,0x00,0x40,0x03,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4f,0x03,0x00,0x00,
    -0x4e,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
    -0x51,0x03,0x00,0x00,0x13,0x00,0x00,0x00,0x50,0x03,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x52,0x03,0x00,0x00,
    -0x51,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x53,0x03,0x00,0x00,0x4f,0x03,0x00,0x00,0x52,0x03,0x00,0x00,
    -0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,0x55,0x03,0x00,0x00,
    -0x40,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x56,0x03,0x00,0x00,0x55,0x03,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0x58,0x03,0x00,0x00,
    -0x13,0x00,0x00,0x00,0x57,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x59,0x03,0x00,0x00,0x58,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5a,0x03,0x00,0x00,
    -0x56,0x03,0x00,0x00,0x59,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x5b,0x03,0x00,0x00,0x53,0x03,0x00,0x00,
    -0x5a,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x5d,0x03,0x00,0x00,0x5b,0x03,0x00,0x00,0x22,0x03,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5f,0x03,0x00,0x00,
    -0x5d,0x03,0x00,0x00,0x8d,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x61,0x03,0x00,0x00,0x84,0x03,0x00,0x00,
    -0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x63,0x03,0x00,0x00,0x61,0x03,0x00,0x00,0x87,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x65,0x03,0x00,0x00,
    -0x63,0x03,0x00,0x00,0x64,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x67,0x03,0x00,0x00,0x85,0x03,0x00,0x00,
    +0xc6,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xaa,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0xbf,0x02,0x00,0x00,
    +0xf6,0x02,0x00,0x00,0xc9,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0xcc,0x02,0x00,0x00,0xaa,0x03,0x00,0x00,
    +0xc8,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xc8,0x02,0x00,0x00,
    +0xc9,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xcc,0x02,0x00,0x00,0xc7,0x02,0x00,0x00,0xc8,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xc7,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xce,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xce,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xac,0x03,0x00,0x00,
    +0x20,0x00,0x00,0x00,0xc7,0x02,0x00,0x00,0xf4,0x02,0x00,0x00,
    +0xcf,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0xd4,0x02,0x00,0x00,0xac,0x03,0x00,0x00,0x44,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xd0,0x02,0x00,0x00,0xcf,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xd4,0x02,0x00,0x00,
    +0xcf,0x02,0x00,0x00,0xd0,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xcf,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xd6,0x02,0x00,0x00,0xa4,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd8,0x02,0x00,0x00,
    +0xd6,0x02,0x00,0x00,0xaa,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xda,0x02,0x00,0x00,0xd8,0x02,0x00,0x00,
    +0xd9,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xdc,0x02,0x00,0x00,0xa8,0x03,0x00,0x00,0x44,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdd,0x02,0x00,0x00,
    +0xda,0x02,0x00,0x00,0xdc,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xdf,0x02,0x00,0x00,0xdd,0x02,0x00,0x00,
    +0xac,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xe3,0x02,0x00,0x00,0xdc,0x02,0x00,0x00,0xac,0x03,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x81,0x02,0x00,0x00,0xe4,0x02,0x00,0x00,
    +0x6c,0x02,0x00,0x00,0xe3,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x3f,0x01,0x00,0x00,0xe5,0x02,0x00,0x00,0xe4,0x02,0x00,0x00,
    +0x73,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0xe6,0x02,0x00,0x00,
    +0xe5,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x81,0x02,0x00,0x00,
    +0xeb,0x02,0x00,0x00,0x9a,0x02,0x00,0x00,0xd8,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x3f,0x01,0x00,0x00,0xec,0x02,0x00,0x00,
    +0xeb,0x02,0x00,0x00,0x73,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    +0xed,0x02,0x00,0x00,0xec,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xd8,0x00,0x00,0x00,0xef,0x02,0x00,0x00,0xd5,0x00,0x00,0x00,
    +0xdf,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    +0xf0,0x02,0x00,0x00,0xef,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,
    +0xcf,0x00,0x00,0x00,0xf1,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x32,0x00,0x00,0x00,0xe6,0x02,0x00,0x00,0xed,0x02,0x00,0x00,
    +0xf0,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0xef,0x02,0x00,0x00,
    +0xf1,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xf4,0x02,0x00,0x00,0xac,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xce,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xd0,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xc9,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xc9,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xf6,0x02,0x00,0x00,0xaa,0x03,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xc6,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xc8,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xc1,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xc1,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf8,0x02,0x00,0x00,
    +0xa8,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xbe,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xc0,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xb9,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xb9,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xfa,0x02,0x00,0x00,0xa4,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xb6,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xb8,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x55,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x55,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xfc,0x02,0x00,0x00,0x9e,0x03,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x52,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x54,0x02,0x00,0x00,0xe0,0x00,0x04,0x00,
    +0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xe0,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xe0,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xfe,0x02,0x00,0x00,0x83,0x03,0x00,0x00,0x4e,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xdd,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xdf,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x03,0x03,0x00,0x00,0x37,0x00,0x00,0x00,0x35,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x04,0x03,0x00,0x00,
    +0xb4,0x00,0x00,0x00,0x03,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x09,0x03,0x00,0x00,0x3b,0x00,0x00,0x00,
    +0xc5,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x0a,0x03,0x00,0x00,0xa3,0x00,0x00,0x00,0x09,0x03,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x0c,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x0c,0x03,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x84,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,
    +0x75,0x03,0x00,0x00,0x0f,0x03,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x12,0x03,0x00,0x00,0x84,0x03,0x00,0x00,
    +0xcb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x0e,0x03,0x00,0x00,
    +0x0f,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x12,0x03,0x00,0x00,0x0d,0x03,0x00,0x00,0x0e,0x03,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x0d,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x14,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x14,0x03,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x85,0x03,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x0d,0x03,0x00,0x00,0x73,0x03,0x00,0x00,
    +0x17,0x03,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0x1a,0x03,0x00,0x00,0x85,0x03,0x00,0x00,0x42,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x16,0x03,0x00,0x00,0x17,0x03,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x1a,0x03,0x00,0x00,
    +0x15,0x03,0x00,0x00,0x16,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x15,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x1e,0x03,0x00,0x00,0x85,0x03,0x00,0x00,0x43,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1f,0x03,0x00,0x00,
    +0x04,0x03,0x00,0x00,0x1e,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x21,0x03,0x00,0x00,0x46,0x00,0x00,0x00,
     0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x68,0x03,0x00,0x00,0x65,0x03,0x00,0x00,0x67,0x03,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6a,0x03,0x00,0x00,
    -0x68,0x03,0x00,0x00,0x8d,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xd8,0x00,0x00,0x00,0x6b,0x03,0x00,0x00,0xd5,0x00,0x00,0x00,
    -0x6a,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    -0x6c,0x03,0x00,0x00,0x6b,0x03,0x00,0x00,0x41,0x00,0x06,0x00,
    -0x37,0x02,0x00,0x00,0x6d,0x03,0x00,0x00,0x4c,0x03,0x00,0x00,
    -0x15,0x00,0x00,0x00,0x5f,0x03,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x6d,0x03,0x00,0x00,0x6c,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x6f,0x03,0x00,0x00,0x8d,0x03,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x42,0x03,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x44,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x2f,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x2f,0x03,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x71,0x03,0x00,0x00,
    -0x87,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x2c,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x2e,0x03,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x17,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x17,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x73,0x03,0x00,0x00,0x85,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x14,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x16,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,0x0f,0x03,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x0f,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x75,0x03,0x00,0x00,0x84,0x03,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x0c,0x03,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x0e,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x76,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x76,0x03,0x00,0x00,
    -0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
    +0x22,0x03,0x00,0x00,0x1f,0x03,0x00,0x00,0x21,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x26,0x03,0x00,0x00,
    +0x84,0x03,0x00,0x00,0xa2,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x27,0x03,0x00,0x00,0x0a,0x03,0x00,0x00,
    +0x26,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x29,0x03,0x00,0x00,0x4a,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2a,0x03,0x00,0x00,
    +0x27,0x03,0x00,0x00,0x29,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x2c,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x2c,0x03,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x87,0x03,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x15,0x03,0x00,0x00,0x71,0x03,0x00,0x00,
    +0x2f,0x03,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0x32,0x03,0x00,0x00,0x87,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x2e,0x03,0x00,0x00,0x2f,0x03,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x32,0x03,0x00,0x00,
    +0x2d,0x03,0x00,0x00,0x2e,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x2d,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x36,0x03,0x00,0x00,0x2a,0x03,0x00,0x00,0x87,0x03,0x00,0x00,
    +0xae,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x39,0x03,0x00,0x00,
    +0x36,0x03,0x00,0x00,0x81,0x03,0x00,0x00,0xf7,0x00,0x03,0x00,
    +0x3b,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x39,0x03,0x00,0x00,0x3a,0x03,0x00,0x00,0x3b,0x03,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x3a,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x2e,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x3b,0x03,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x97,0x00,0x00,0x00,0x3f,0x03,0x00,0x00,
    +0x90,0x00,0x00,0x00,0x36,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x8c,0x00,0x00,0x00,0x40,0x03,0x00,0x00,0x3f,0x03,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x42,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x42,0x03,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x8d,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0x3b,0x03,0x00,0x00,
    +0x6f,0x03,0x00,0x00,0x43,0x03,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x48,0x03,0x00,0x00,0x8d,0x03,0x00,0x00,
    +0x44,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x44,0x03,0x00,0x00,
    +0x43,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x48,0x03,0x00,0x00,0x43,0x03,0x00,0x00,0x44,0x03,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x43,0x03,0x00,0x00,0x51,0x00,0x05,0x00,
    +0x8b,0x00,0x00,0x00,0x4e,0x03,0x00,0x00,0x40,0x03,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x4f,0x03,0x00,0x00,0x4e,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x16,0x00,0x00,0x00,0x51,0x03,0x00,0x00,0x13,0x00,0x00,0x00,
    +0x50,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x52,0x03,0x00,0x00,0x51,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x53,0x03,0x00,0x00,0x4f,0x03,0x00,0x00,
    +0x52,0x03,0x00,0x00,0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,
    +0x55,0x03,0x00,0x00,0x40,0x03,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x56,0x03,0x00,0x00,
    +0x55,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
    +0x58,0x03,0x00,0x00,0x13,0x00,0x00,0x00,0x57,0x03,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x59,0x03,0x00,0x00,
    +0x58,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x5a,0x03,0x00,0x00,0x56,0x03,0x00,0x00,0x59,0x03,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5b,0x03,0x00,0x00,
    +0x53,0x03,0x00,0x00,0x5a,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x5d,0x03,0x00,0x00,0x5b,0x03,0x00,0x00,
    +0x22,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x5f,0x03,0x00,0x00,0x5d,0x03,0x00,0x00,0x8d,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x61,0x03,0x00,0x00,
    +0x84,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x63,0x03,0x00,0x00,0x61,0x03,0x00,0x00,
    +0x87,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x65,0x03,0x00,0x00,0x63,0x03,0x00,0x00,0x64,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x67,0x03,0x00,0x00,
    +0x85,0x03,0x00,0x00,0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x68,0x03,0x00,0x00,0x65,0x03,0x00,0x00,
    +0x67,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x6a,0x03,0x00,0x00,0x68,0x03,0x00,0x00,0x8d,0x03,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,0x6b,0x03,0x00,0x00,
    +0xd5,0x00,0x00,0x00,0x6a,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xcf,0x00,0x00,0x00,0x6c,0x03,0x00,0x00,0x6b,0x03,0x00,0x00,
    +0x41,0x00,0x06,0x00,0x37,0x02,0x00,0x00,0x6d,0x03,0x00,0x00,
    +0x4c,0x03,0x00,0x00,0x15,0x00,0x00,0x00,0x5f,0x03,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x6d,0x03,0x00,0x00,0x6c,0x03,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6f,0x03,0x00,0x00,
    +0x8d,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x42,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x44,0x03,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x2f,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x2f,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x71,0x03,0x00,0x00,0x87,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x2c,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x2e,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,0x17,0x03,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x17,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x73,0x03,0x00,0x00,0x85,0x03,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x14,0x03,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x16,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x0f,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x0f,0x03,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x75,0x03,0x00,0x00,
    +0x84,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x0c,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x0e,0x03,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x76,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x76,0x03,0x00,0x00,0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
    +
     };
    -const uint64_t matmul_id_q3_k_f32_len = 13616;
    +const uint64_t matmul_id_q3_k_f32_len = 13596;
     
     unsigned char matmul_id_q3_k_f32_aligned_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
    @@ -44417,9 +48140,9 @@ unsigned char matmul_id_q3_k_f32_fp32_data[] = {
     0x43,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x54,0x00,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x59,0x00,0x00,0x00,
     0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,
    @@ -44531,7 +48254,7 @@ unsigned char matmul_id_q3_k_f32_fp32_data[] = {
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xf0,0x01,0x00,0x00,
     0x51,0x00,0x00,0x00,0xef,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xf1,0x01,0x00,0x00,
    -0x84,0x00,0x00,0x00,0xf0,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x84,0x00,0x00,0x00,0xf0,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xf2,0x01,0x00,0x00,
     0x86,0x00,0x00,0x00,0xf1,0x01,0x00,0x00,0x4e,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x0e,0x02,0x00,0x00,
    @@ -44562,7 +48285,7 @@ unsigned char matmul_id_q3_k_f32_fp32_data[] = {
     0x06,0x00,0x00,0x00,0x44,0x02,0x00,0x00,0x86,0x00,0x00,0x00,
     0x43,0x02,0x00,0x00,0x4e,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x47,0x02,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x4e,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x4a,0x02,0x00,0x00,0x86,0x00,0x00,0x00,
     0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x65,0x02,0x00,0x00,0x84,0x00,0x00,0x00,
    @@ -44729,7 +48452,7 @@ unsigned char matmul_id_q3_k_f32_fp32_data[] = {
     0xb7,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xb9,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,
    -0xb9,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xb9,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
     0xbe,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xbe,0x00,0x00,0x00,
     0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x7b,0x03,0x00,0x00,
     0x20,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,
    @@ -44770,635 +48493,634 @@ unsigned char matmul_id_q3_k_f32_fp32_data[] = {
     0x55,0x00,0x00,0x00,0x8d,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,0xf1,0x00,0x00,0x00,
     0xb7,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xf5,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0xf5,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,
     0x91,0x03,0x00,0x00,0xf5,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,
     0x50,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xfe,0x00,0x00,0x00,0xf1,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x00,0x01,0x00,0x00,
    -0x50,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,
    -0x00,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x05,0x01,0x00,0x00,0xf8,0x00,0x00,0x00,0x04,0x01,0x00,0x00,
    -0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x08,0x01,0x00,0x00,
    -0xf8,0x00,0x00,0x00,0x04,0x01,0x00,0x00,0x86,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,0x08,0x01,0x00,0x00,
    -0x0b,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x10,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,0x0f,0x01,0x00,0x00,
    -0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x13,0x01,0x00,0x00,
    -0x08,0x01,0x00,0x00,0x12,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x14,0x01,0x00,0x00,0x13,0x01,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x15,0x01,0x00,0x00,0x10,0x01,0x00,0x00,0x14,0x01,0x00,0x00,
    -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x22,0x01,0x00,0x00,
    -0x08,0x01,0x00,0x00,0x21,0x01,0x00,0x00,0x89,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x25,0x01,0x00,0x00,0x08,0x01,0x00,0x00,
    -0x0b,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x26,0x01,0x00,0x00,0x25,0x01,0x00,0x00,0x12,0x01,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x29,0x01,0x00,0x00,
    -0x26,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x2c,0x01,0x00,0x00,0x1d,0x01,0x00,0x00,
    -0x0c,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x2e,0x01,0x00,0x00,0x2c,0x01,0x00,0x00,0x26,0x01,0x00,0x00,
    -0xc4,0x00,0x05,0x00,0x14,0x00,0x00,0x00,0x2f,0x01,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0x2e,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x30,0x01,0x00,0x00,0x2f,0x01,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x35,0x01,0x00,0x00,
    -0x22,0x01,0x00,0x00,0x1d,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,
    -0x39,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x35,0x01,0x00,0x00,0x38,0x01,0x00,0x00,0x5b,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x38,0x01,0x00,0x00,0x82,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x47,0x01,0x00,0x00,0x22,0x01,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0x48,0x01,0x00,0x00,
    -0x49,0x01,0x00,0x00,0x44,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    -0x05,0x01,0x00,0x00,0xaa,0x00,0x00,0x00,0x47,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x3a,0x01,0x00,0x00,0x4a,0x01,0x00,0x00,
    -0x49,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x4b,0x01,0x00,0x00,0x4a,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    -0x14,0x00,0x00,0x00,0x4c,0x01,0x00,0x00,0x4b,0x01,0x00,0x00,
    -0xc7,0x00,0x05,0x00,0x14,0x00,0x00,0x00,0x4e,0x01,0x00,0x00,
    -0x4c,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x51,0x01,0x00,0x00,0x22,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x01,0x01,0x00,0x00,
    +0xfe,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0xf8,0x00,0x00,0x00,
    +0x04,0x01,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x08,0x01,0x00,0x00,0xf8,0x00,0x00,0x00,0x04,0x01,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,
    +0x08,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x10,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,
    +0x0f,0x01,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x13,0x01,0x00,0x00,0x08,0x01,0x00,0x00,0x12,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x14,0x01,0x00,0x00,
    +0x13,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x15,0x01,0x00,0x00,0x10,0x01,0x00,0x00,
    +0x14,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x22,0x01,0x00,0x00,0x08,0x01,0x00,0x00,0x21,0x01,0x00,0x00,
    +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x25,0x01,0x00,0x00,
    +0x08,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x26,0x01,0x00,0x00,0x25,0x01,0x00,0x00,
    +0x12,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x29,0x01,0x00,0x00,0x26,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2c,0x01,0x00,0x00,
    +0x1d,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x2e,0x01,0x00,0x00,0x2c,0x01,0x00,0x00,
    +0x26,0x01,0x00,0x00,0xc4,0x00,0x05,0x00,0x14,0x00,0x00,0x00,
    +0x2f,0x01,0x00,0x00,0x9a,0x00,0x00,0x00,0x2e,0x01,0x00,0x00,
    +0x7c,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x30,0x01,0x00,0x00,
    +0x2f,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0x35,0x01,0x00,0x00,0x22,0x01,0x00,0x00,0x1d,0x01,0x00,0x00,
    +0xf7,0x00,0x03,0x00,0x39,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x35,0x01,0x00,0x00,0x38,0x01,0x00,0x00,
    +0x5b,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x38,0x01,0x00,0x00,
    +0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x47,0x01,0x00,0x00,
    +0x22,0x01,0x00,0x00,0x20,0x00,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x48,0x01,0x00,0x00,0x49,0x01,0x00,0x00,0x44,0x01,0x00,0x00,
    +0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0xaa,0x00,0x00,0x00,
    +0x47,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x3a,0x01,0x00,0x00,
    +0x4a,0x01,0x00,0x00,0x49,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x4b,0x01,0x00,0x00,0x4a,0x01,0x00,0x00,
    +0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x4c,0x01,0x00,0x00,
    +0x4b,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x14,0x00,0x00,0x00,
    +0x4e,0x01,0x00,0x00,0x4c,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x51,0x01,0x00,0x00,
    +0x22,0x01,0x00,0x00,0x21,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x48,0x01,0x00,0x00,0x52,0x01,0x00,0x00,0x44,0x01,0x00,0x00,
    +0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0xaa,0x00,0x00,0x00,
    +0x51,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x3a,0x01,0x00,0x00,
    +0x53,0x01,0x00,0x00,0x52,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,
    +0x3a,0x01,0x00,0x00,0x54,0x01,0x00,0x00,0x53,0x01,0x00,0x00,
    +0x15,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x55,0x01,0x00,0x00,0x54,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    +0x14,0x00,0x00,0x00,0x56,0x01,0x00,0x00,0x55,0x01,0x00,0x00,
    +0xc7,0x00,0x05,0x00,0x14,0x00,0x00,0x00,0x57,0x01,0x00,0x00,
    +0x56,0x01,0x00,0x00,0xb5,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,
    +0x14,0x00,0x00,0x00,0x59,0x01,0x00,0x00,0x57,0x01,0x00,0x00,
    +0x58,0x01,0x00,0x00,0xc5,0x00,0x05,0x00,0x14,0x00,0x00,0x00,
    +0x5a,0x01,0x00,0x00,0x4e,0x01,0x00,0x00,0x59,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x39,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x5b,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0x5d,0x01,0x00,0x00,0x22,0x01,0x00,0x00,0x21,0x01,0x00,0x00,
    +0xf7,0x00,0x03,0x00,0x60,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x5d,0x01,0x00,0x00,0x5f,0x01,0x00,0x00,
    +0x74,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x5f,0x01,0x00,0x00,
    +0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x63,0x01,0x00,0x00,
    +0x22,0x01,0x00,0x00,0x20,0x00,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x48,0x01,0x00,0x00,0x64,0x01,0x00,0x00,0x44,0x01,0x00,0x00,
    +0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0xaa,0x00,0x00,0x00,
    +0x63,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x3a,0x01,0x00,0x00,
    +0x65,0x01,0x00,0x00,0x64,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x66,0x01,0x00,0x00,0x65,0x01,0x00,0x00,
    +0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x67,0x01,0x00,0x00,
    +0x66,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x14,0x00,0x00,0x00,
    +0x68,0x01,0x00,0x00,0x67,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6b,0x01,0x00,0x00,
    +0x22,0x01,0x00,0x00,0x1d,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x48,0x01,0x00,0x00,0x6c,0x01,0x00,0x00,0x44,0x01,0x00,0x00,
    +0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0xaa,0x00,0x00,0x00,
    +0x6b,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x3a,0x01,0x00,0x00,
    +0x6d,0x01,0x00,0x00,0x6c,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,
    +0x3a,0x01,0x00,0x00,0x6e,0x01,0x00,0x00,0x6d,0x01,0x00,0x00,
    +0xaa,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x6f,0x01,0x00,0x00,0x6e,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    +0x14,0x00,0x00,0x00,0x70,0x01,0x00,0x00,0x6f,0x01,0x00,0x00,
    +0xc7,0x00,0x05,0x00,0x14,0x00,0x00,0x00,0x71,0x01,0x00,0x00,
    +0x70,0x01,0x00,0x00,0xb5,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,
    +0x14,0x00,0x00,0x00,0x72,0x01,0x00,0x00,0x71,0x01,0x00,0x00,
    +0x58,0x01,0x00,0x00,0xc5,0x00,0x05,0x00,0x14,0x00,0x00,0x00,
    +0x73,0x01,0x00,0x00,0x68,0x01,0x00,0x00,0x72,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x60,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x74,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0x76,0x01,0x00,0x00,0x22,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,
    +0xf7,0x00,0x03,0x00,0x79,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x76,0x01,0x00,0x00,0x78,0x01,0x00,0x00,
    +0x8d,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x78,0x01,0x00,0x00,
    +0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7c,0x01,0x00,0x00,
    +0x22,0x01,0x00,0x00,0x21,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x48,0x01,0x00,0x00,0x7d,0x01,0x00,0x00,0x44,0x01,0x00,0x00,
    +0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0xaa,0x00,0x00,0x00,
    +0x7c,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x3a,0x01,0x00,0x00,
    +0x7e,0x01,0x00,0x00,0x7d,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,
    +0x3a,0x01,0x00,0x00,0x7f,0x01,0x00,0x00,0x7e,0x01,0x00,0x00,
    +0x58,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x80,0x01,0x00,0x00,0x7f,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    +0x14,0x00,0x00,0x00,0x81,0x01,0x00,0x00,0x80,0x01,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x48,0x01,0x00,0x00,0x85,0x01,0x00,0x00,
    +0x44,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,
    +0xaa,0x00,0x00,0x00,0x22,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x3a,0x01,0x00,0x00,0x86,0x01,0x00,0x00,0x85,0x01,0x00,0x00,
    +0xc2,0x00,0x05,0x00,0x3a,0x01,0x00,0x00,0x87,0x01,0x00,0x00,
    +0x86,0x01,0x00,0x00,0x58,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x88,0x01,0x00,0x00,0x87,0x01,0x00,0x00,
    +0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x89,0x01,0x00,0x00,
    +0x88,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x14,0x00,0x00,0x00,
    +0x8a,0x01,0x00,0x00,0x89,0x01,0x00,0x00,0xb5,0x00,0x00,0x00,
    +0xc4,0x00,0x05,0x00,0x14,0x00,0x00,0x00,0x8b,0x01,0x00,0x00,
    +0x8a,0x01,0x00,0x00,0x58,0x01,0x00,0x00,0xc5,0x00,0x05,0x00,
    +0x14,0x00,0x00,0x00,0x8c,0x01,0x00,0x00,0x81,0x01,0x00,0x00,
    +0x8b,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x79,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x8d,0x01,0x00,0x00,0x82,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x90,0x01,0x00,0x00,0x22,0x01,0x00,0x00,
     0x21,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x48,0x01,0x00,0x00,
    -0x52,0x01,0x00,0x00,0x44,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    -0x05,0x01,0x00,0x00,0xaa,0x00,0x00,0x00,0x51,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x3a,0x01,0x00,0x00,0x53,0x01,0x00,0x00,
    -0x52,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x3a,0x01,0x00,0x00,
    -0x54,0x01,0x00,0x00,0x53,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x55,0x01,0x00,0x00,
    -0x54,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    -0x56,0x01,0x00,0x00,0x55,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
    -0x14,0x00,0x00,0x00,0x57,0x01,0x00,0x00,0x56,0x01,0x00,0x00,
    -0xb5,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x14,0x00,0x00,0x00,
    -0x59,0x01,0x00,0x00,0x57,0x01,0x00,0x00,0x58,0x01,0x00,0x00,
    -0xc5,0x00,0x05,0x00,0x14,0x00,0x00,0x00,0x5a,0x01,0x00,0x00,
    -0x4e,0x01,0x00,0x00,0x59,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x39,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x5b,0x01,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,
    -0x22,0x01,0x00,0x00,0x21,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,
    -0x60,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x5d,0x01,0x00,0x00,0x5f,0x01,0x00,0x00,0x74,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x5f,0x01,0x00,0x00,0x82,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x63,0x01,0x00,0x00,0x22,0x01,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0x48,0x01,0x00,0x00,
    -0x64,0x01,0x00,0x00,0x44,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    -0x05,0x01,0x00,0x00,0xaa,0x00,0x00,0x00,0x63,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x3a,0x01,0x00,0x00,0x65,0x01,0x00,0x00,
    -0x64,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x66,0x01,0x00,0x00,0x65,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    -0x14,0x00,0x00,0x00,0x67,0x01,0x00,0x00,0x66,0x01,0x00,0x00,
    -0xc7,0x00,0x05,0x00,0x14,0x00,0x00,0x00,0x68,0x01,0x00,0x00,
    -0x67,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x6b,0x01,0x00,0x00,0x22,0x01,0x00,0x00,
    +0x91,0x01,0x00,0x00,0x44,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    +0x05,0x01,0x00,0x00,0xaa,0x00,0x00,0x00,0x90,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x3a,0x01,0x00,0x00,0x92,0x01,0x00,0x00,
    +0x91,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x3a,0x01,0x00,0x00,
    +0x93,0x01,0x00,0x00,0x92,0x01,0x00,0x00,0x58,0x01,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x94,0x01,0x00,0x00,
    +0x93,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    +0x95,0x01,0x00,0x00,0x94,0x01,0x00,0x00,0x82,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x98,0x01,0x00,0x00,0x22,0x01,0x00,0x00,
     0x1d,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x48,0x01,0x00,0x00,
    -0x6c,0x01,0x00,0x00,0x44,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    -0x05,0x01,0x00,0x00,0xaa,0x00,0x00,0x00,0x6b,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x3a,0x01,0x00,0x00,0x6d,0x01,0x00,0x00,
    -0x6c,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x3a,0x01,0x00,0x00,
    -0x6e,0x01,0x00,0x00,0x6d,0x01,0x00,0x00,0xaa,0x00,0x00,0x00,
    -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x6f,0x01,0x00,0x00,
    -0x6e,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    -0x70,0x01,0x00,0x00,0x6f,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
    -0x14,0x00,0x00,0x00,0x71,0x01,0x00,0x00,0x70,0x01,0x00,0x00,
    +0x99,0x01,0x00,0x00,0x44,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    +0x05,0x01,0x00,0x00,0xaa,0x00,0x00,0x00,0x98,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x3a,0x01,0x00,0x00,0x9a,0x01,0x00,0x00,
    +0x99,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x3a,0x01,0x00,0x00,
    +0x9b,0x01,0x00,0x00,0x9a,0x01,0x00,0x00,0xaf,0x00,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x9c,0x01,0x00,0x00,
    +0x9b,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    +0x9d,0x01,0x00,0x00,0x9c,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
    +0x14,0x00,0x00,0x00,0x9e,0x01,0x00,0x00,0x9d,0x01,0x00,0x00,
     0xb5,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x14,0x00,0x00,0x00,
    -0x72,0x01,0x00,0x00,0x71,0x01,0x00,0x00,0x58,0x01,0x00,0x00,
    -0xc5,0x00,0x05,0x00,0x14,0x00,0x00,0x00,0x73,0x01,0x00,0x00,
    -0x68,0x01,0x00,0x00,0x72,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x60,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x74,0x01,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x76,0x01,0x00,0x00,
    -0x22,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,
    -0x79,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x76,0x01,0x00,0x00,0x78,0x01,0x00,0x00,0x8d,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x78,0x01,0x00,0x00,0x82,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x7c,0x01,0x00,0x00,0x22,0x01,0x00,0x00,
    -0x21,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x48,0x01,0x00,0x00,
    -0x7d,0x01,0x00,0x00,0x44,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    -0x05,0x01,0x00,0x00,0xaa,0x00,0x00,0x00,0x7c,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x3a,0x01,0x00,0x00,0x7e,0x01,0x00,0x00,
    -0x7d,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x3a,0x01,0x00,0x00,
    -0x7f,0x01,0x00,0x00,0x7e,0x01,0x00,0x00,0x58,0x01,0x00,0x00,
    -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x80,0x01,0x00,0x00,
    -0x7f,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    -0x81,0x01,0x00,0x00,0x80,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x48,0x01,0x00,0x00,0x85,0x01,0x00,0x00,0x44,0x01,0x00,0x00,
    -0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0xaa,0x00,0x00,0x00,
    -0x22,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x3a,0x01,0x00,0x00,
    -0x86,0x01,0x00,0x00,0x85,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,
    -0x3a,0x01,0x00,0x00,0x87,0x01,0x00,0x00,0x86,0x01,0x00,0x00,
    -0x58,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x88,0x01,0x00,0x00,0x87,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    -0x14,0x00,0x00,0x00,0x89,0x01,0x00,0x00,0x88,0x01,0x00,0x00,
    -0xc7,0x00,0x05,0x00,0x14,0x00,0x00,0x00,0x8a,0x01,0x00,0x00,
    -0x89,0x01,0x00,0x00,0xb5,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,
    -0x14,0x00,0x00,0x00,0x8b,0x01,0x00,0x00,0x8a,0x01,0x00,0x00,
    -0x58,0x01,0x00,0x00,0xc5,0x00,0x05,0x00,0x14,0x00,0x00,0x00,
    -0x8c,0x01,0x00,0x00,0x81,0x01,0x00,0x00,0x8b,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x79,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x8d,0x01,0x00,0x00,0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x90,0x01,0x00,0x00,0x22,0x01,0x00,0x00,0x21,0x01,0x00,0x00,
    -0x41,0x00,0x08,0x00,0x48,0x01,0x00,0x00,0x91,0x01,0x00,0x00,
    +0x9f,0x01,0x00,0x00,0x9e,0x01,0x00,0x00,0x58,0x01,0x00,0x00,
    +0xc5,0x00,0x05,0x00,0x14,0x00,0x00,0x00,0xa0,0x01,0x00,0x00,
    +0x95,0x01,0x00,0x00,0x9f,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x79,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x79,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x14,0x00,0x00,0x00,0xb3,0x03,0x00,0x00,
    +0x8c,0x01,0x00,0x00,0x78,0x01,0x00,0x00,0xa0,0x01,0x00,0x00,
    +0x8d,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x60,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x60,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x14,0x00,0x00,0x00,0xb4,0x03,0x00,0x00,0x73,0x01,0x00,0x00,
    +0x5f,0x01,0x00,0x00,0xb3,0x03,0x00,0x00,0x79,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x39,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x39,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x14,0x00,0x00,0x00,
    +0xb5,0x03,0x00,0x00,0x5a,0x01,0x00,0x00,0x38,0x01,0x00,0x00,
    +0xb4,0x03,0x00,0x00,0x60,0x01,0x00,0x00,0x72,0x00,0x04,0x00,
    +0x31,0x01,0x00,0x00,0xa4,0x01,0x00,0x00,0xb5,0x03,0x00,0x00,
    +0x41,0x00,0x07,0x00,0xa7,0x01,0x00,0x00,0xa8,0x01,0x00,0x00,
     0x44,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,
    -0xaa,0x00,0x00,0x00,0x90,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x3a,0x01,0x00,0x00,0x92,0x01,0x00,0x00,0x91,0x01,0x00,0x00,
    -0xc2,0x00,0x05,0x00,0x3a,0x01,0x00,0x00,0x93,0x01,0x00,0x00,
    -0x92,0x01,0x00,0x00,0x58,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x94,0x01,0x00,0x00,0x93,0x01,0x00,0x00,
    -0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x95,0x01,0x00,0x00,
    -0x94,0x01,0x00,0x00,0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x98,0x01,0x00,0x00,0x22,0x01,0x00,0x00,0x1d,0x01,0x00,0x00,
    -0x41,0x00,0x08,0x00,0x48,0x01,0x00,0x00,0x99,0x01,0x00,0x00,
    +0xb5,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x3f,0x01,0x00,0x00,
    +0xa9,0x01,0x00,0x00,0xa8,0x01,0x00,0x00,0x73,0x00,0x04,0x00,
    +0xcf,0x00,0x00,0x00,0xaa,0x01,0x00,0x00,0xa9,0x01,0x00,0x00,
    +0x72,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0xac,0x01,0x00,0x00,
    +0xa4,0x01,0x00,0x00,0x82,0x00,0x05,0x00,0x14,0x00,0x00,0x00,
    +0xae,0x01,0x00,0x00,0xac,0x01,0x00,0x00,0xad,0x01,0x00,0x00,
    +0x6f,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0xaf,0x01,0x00,0x00,
    +0xae,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0xcf,0x00,0x00,0x00,
    +0xb0,0x01,0x00,0x00,0xaa,0x01,0x00,0x00,0xaf,0x01,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x48,0x01,0x00,0x00,0xba,0x01,0x00,0x00,
     0x44,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,
    -0xaa,0x00,0x00,0x00,0x98,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x3a,0x01,0x00,0x00,0x9a,0x01,0x00,0x00,0x99,0x01,0x00,0x00,
    -0xc2,0x00,0x05,0x00,0x3a,0x01,0x00,0x00,0x9b,0x01,0x00,0x00,
    -0x9a,0x01,0x00,0x00,0xaf,0x00,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x9c,0x01,0x00,0x00,0x9b,0x01,0x00,0x00,
    -0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x9d,0x01,0x00,0x00,
    -0x9c,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x14,0x00,0x00,0x00,
    -0x9e,0x01,0x00,0x00,0x9d,0x01,0x00,0x00,0xb5,0x00,0x00,0x00,
    -0xc4,0x00,0x05,0x00,0x14,0x00,0x00,0x00,0x9f,0x01,0x00,0x00,
    -0x9e,0x01,0x00,0x00,0x58,0x01,0x00,0x00,0xc5,0x00,0x05,0x00,
    -0x14,0x00,0x00,0x00,0xa0,0x01,0x00,0x00,0x95,0x01,0x00,0x00,
    -0x9f,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x79,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x79,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x14,0x00,0x00,0x00,0xb3,0x03,0x00,0x00,0x8c,0x01,0x00,0x00,
    -0x78,0x01,0x00,0x00,0xa0,0x01,0x00,0x00,0x8d,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x60,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x60,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x14,0x00,0x00,0x00,
    -0xb4,0x03,0x00,0x00,0x73,0x01,0x00,0x00,0x5f,0x01,0x00,0x00,
    -0xb3,0x03,0x00,0x00,0x79,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x39,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x39,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x14,0x00,0x00,0x00,0xb5,0x03,0x00,0x00,
    -0x5a,0x01,0x00,0x00,0x38,0x01,0x00,0x00,0xb4,0x03,0x00,0x00,
    -0x60,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x31,0x01,0x00,0x00,
    -0xa4,0x01,0x00,0x00,0xb5,0x03,0x00,0x00,0x41,0x00,0x07,0x00,
    -0xa7,0x01,0x00,0x00,0xa8,0x01,0x00,0x00,0x44,0x01,0x00,0x00,
    -0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0xb5,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x3f,0x01,0x00,0x00,0xa9,0x01,0x00,0x00,
    -0xa8,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    -0xaa,0x01,0x00,0x00,0xa9,0x01,0x00,0x00,0x72,0x00,0x04,0x00,
    -0x14,0x00,0x00,0x00,0xac,0x01,0x00,0x00,0xa4,0x01,0x00,0x00,
    -0x82,0x00,0x05,0x00,0x14,0x00,0x00,0x00,0xae,0x01,0x00,0x00,
    -0xac,0x01,0x00,0x00,0xad,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,
    -0xcf,0x00,0x00,0x00,0xaf,0x01,0x00,0x00,0xae,0x01,0x00,0x00,
    -0x85,0x00,0x05,0x00,0xcf,0x00,0x00,0x00,0xb0,0x01,0x00,0x00,
    -0xaa,0x01,0x00,0x00,0xaf,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x48,0x01,0x00,0x00,0xba,0x01,0x00,0x00,0x44,0x01,0x00,0x00,
    -0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0x15,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x3a,0x01,0x00,0x00,
    -0xbb,0x01,0x00,0x00,0xba,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,
    -0x3a,0x01,0x00,0x00,0xbd,0x01,0x00,0x00,0xbb,0x01,0x00,0x00,
    -0x29,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0xbe,0x01,0x00,0x00,0xbd,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    -0x14,0x00,0x00,0x00,0xbf,0x01,0x00,0x00,0xbe,0x01,0x00,0x00,
    -0xc7,0x00,0x05,0x00,0x14,0x00,0x00,0x00,0xc0,0x01,0x00,0x00,
    -0xbf,0x01,0x00,0x00,0xb5,0x00,0x00,0x00,0x72,0x00,0x04,0x00,
    -0x31,0x01,0x00,0x00,0xc1,0x01,0x00,0x00,0xc0,0x01,0x00,0x00,
    -0x72,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0xc2,0x01,0x00,0x00,
    -0xc1,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x48,0x01,0x00,0x00,
    -0xc5,0x01,0x00,0x00,0x44,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    -0x05,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x14,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x3a,0x01,0x00,0x00,0xc6,0x01,0x00,0x00,
    -0xc5,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0xc7,0x01,0x00,0x00,0xc6,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xc9,0x01,0x00,0x00,0xc7,0x01,0x00,0x00,
    -0x30,0x01,0x00,0x00,0xab,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0xca,0x01,0x00,0x00,0xc9,0x01,0x00,0x00,0x20,0x00,0x00,0x00,
    -0xa9,0x00,0x06,0x00,0x14,0x00,0x00,0x00,0xcb,0x01,0x00,0x00,
    -0xca,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x58,0x01,0x00,0x00,
    -0x82,0x00,0x05,0x00,0x14,0x00,0x00,0x00,0xcc,0x01,0x00,0x00,
    -0xc2,0x01,0x00,0x00,0xcb,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,
    -0xcf,0x00,0x00,0x00,0xcd,0x01,0x00,0x00,0xcc,0x01,0x00,0x00,
    -0x85,0x00,0x05,0x00,0xcf,0x00,0x00,0x00,0xce,0x01,0x00,0x00,
    -0xb0,0x01,0x00,0x00,0xcd,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xcf,0x01,0x00,0x00,0xd0,0x01,0x00,0x00,0xb5,0x01,0x00,0x00,
    -0x01,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xd0,0x01,0x00,0x00,
    -0xce,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xd2,0x01,0x00,0x00,0x01,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd6,0x01,0x00,0x00,
    -0x15,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x48,0x01,0x00,0x00,0xd7,0x01,0x00,0x00,0x44,0x01,0x00,0x00,
    -0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0xd6,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x3a,0x01,0x00,0x00,
    -0xd8,0x01,0x00,0x00,0xd7,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,
    -0x3a,0x01,0x00,0x00,0xda,0x01,0x00,0x00,0xd8,0x01,0x00,0x00,
    -0x29,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0xdb,0x01,0x00,0x00,0xda,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    -0x14,0x00,0x00,0x00,0xdc,0x01,0x00,0x00,0xdb,0x01,0x00,0x00,
    -0xc7,0x00,0x05,0x00,0x14,0x00,0x00,0x00,0xdd,0x01,0x00,0x00,
    -0xdc,0x01,0x00,0x00,0xb5,0x00,0x00,0x00,0x72,0x00,0x04,0x00,
    -0x31,0x01,0x00,0x00,0xde,0x01,0x00,0x00,0xdd,0x01,0x00,0x00,
    -0x72,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0xdf,0x01,0x00,0x00,
    -0xde,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xe2,0x01,0x00,0x00,0x14,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,
    -0x41,0x00,0x08,0x00,0x48,0x01,0x00,0x00,0xe3,0x01,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0x15,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x3a,0x01,0x00,0x00,0xbb,0x01,0x00,0x00,0xba,0x01,0x00,0x00,
    +0xc2,0x00,0x05,0x00,0x3a,0x01,0x00,0x00,0xbd,0x01,0x00,0x00,
    +0xbb,0x01,0x00,0x00,0x29,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0xbe,0x01,0x00,0x00,0xbd,0x01,0x00,0x00,
    +0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0xbf,0x01,0x00,0x00,
    +0xbe,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x14,0x00,0x00,0x00,
    +0xc0,0x01,0x00,0x00,0xbf,0x01,0x00,0x00,0xb5,0x00,0x00,0x00,
    +0x72,0x00,0x04,0x00,0x31,0x01,0x00,0x00,0xc1,0x01,0x00,0x00,
    +0xc0,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    +0xc2,0x01,0x00,0x00,0xc1,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x48,0x01,0x00,0x00,0xc5,0x01,0x00,0x00,0x44,0x01,0x00,0x00,
    +0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    +0x14,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x3a,0x01,0x00,0x00,
    +0xc6,0x01,0x00,0x00,0xc5,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0xc7,0x01,0x00,0x00,0xc6,0x01,0x00,0x00,
    +0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc9,0x01,0x00,0x00,
    +0xc7,0x01,0x00,0x00,0x30,0x01,0x00,0x00,0xab,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0xca,0x01,0x00,0x00,0xc9,0x01,0x00,0x00,
    +0x20,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,0x14,0x00,0x00,0x00,
    +0xcb,0x01,0x00,0x00,0xca,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    +0x58,0x01,0x00,0x00,0x82,0x00,0x05,0x00,0x14,0x00,0x00,0x00,
    +0xcc,0x01,0x00,0x00,0xc2,0x01,0x00,0x00,0xcb,0x01,0x00,0x00,
    +0x6f,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0xcd,0x01,0x00,0x00,
    +0xcc,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0xcf,0x00,0x00,0x00,
    +0xce,0x01,0x00,0x00,0xb0,0x01,0x00,0x00,0xcd,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xcf,0x01,0x00,0x00,0xd0,0x01,0x00,0x00,
    +0xb5,0x01,0x00,0x00,0x01,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0xd0,0x01,0x00,0x00,0xce,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xd2,0x01,0x00,0x00,0x01,0x01,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xd6,0x01,0x00,0x00,0x15,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x48,0x01,0x00,0x00,0xd7,0x01,0x00,0x00,
     0x44,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,
    -0x15,0x00,0x00,0x00,0xe2,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x3a,0x01,0x00,0x00,0xe4,0x01,0x00,0x00,0xe3,0x01,0x00,0x00,
    -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xe5,0x01,0x00,0x00,
    -0xe4,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xe7,0x01,0x00,0x00,0xe5,0x01,0x00,0x00,0x30,0x01,0x00,0x00,
    -0xab,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xe8,0x01,0x00,0x00,
    -0xe7,0x01,0x00,0x00,0x20,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,
    -0x14,0x00,0x00,0x00,0xe9,0x01,0x00,0x00,0xe8,0x01,0x00,0x00,
    -0x15,0x00,0x00,0x00,0x58,0x01,0x00,0x00,0x82,0x00,0x05,0x00,
    -0x14,0x00,0x00,0x00,0xea,0x01,0x00,0x00,0xdf,0x01,0x00,0x00,
    -0xe9,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    -0xeb,0x01,0x00,0x00,0xea,0x01,0x00,0x00,0x85,0x00,0x05,0x00,
    -0xcf,0x00,0x00,0x00,0xec,0x01,0x00,0x00,0xb0,0x01,0x00,0x00,
    -0xeb,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0xcf,0x01,0x00,0x00,
    -0xed,0x01,0x00,0x00,0xb5,0x01,0x00,0x00,0xd2,0x01,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0xed,0x01,0x00,0x00,0xec,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xe9,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xe9,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xf4,0x01,0x00,0x00,0x8d,0x03,0x00,0x00,0xf2,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xe6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xe8,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xf6,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xf6,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x8e,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    -0xe8,0x00,0x00,0x00,0x46,0x02,0x00,0x00,0xf9,0x01,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xfc,0x01,0x00,0x00,
    -0x8e,0x03,0x00,0x00,0xa2,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xf8,0x01,0x00,0x00,0xf9,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xfc,0x01,0x00,0x00,0xf7,0x01,0x00,0x00,
    -0xf8,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xf7,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x01,0x02,0x00,0x00,
    -0xa3,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x03,0x02,0x00,0x00,0x01,0x02,0x00,0x00,
    -0x8e,0x03,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0x06,0x02,0x00,0x00,0x03,0x02,0x00,0x00,0x7a,0x03,0x00,0x00,
    -0xf7,0x00,0x03,0x00,0x08,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x06,0x02,0x00,0x00,0x07,0x02,0x00,0x00,
    -0x39,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x07,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x97,0x00,0x00,0x00,0x0c,0x02,0x00,0x00,
    -0x90,0x00,0x00,0x00,0x03,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x8c,0x00,0x00,0x00,0x0d,0x02,0x00,0x00,0x0c,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x15,0x02,0x00,0x00,
    -0x5f,0x00,0x00,0x00,0x8e,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x17,0x02,0x00,0x00,0x15,0x02,0x00,0x00,
    -0x16,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x19,0x02,0x00,0x00,0x17,0x02,0x00,0x00,0x5a,0x00,0x00,0x00,
    -0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,0x21,0x02,0x00,0x00,
    -0x0d,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x22,0x02,0x00,0x00,0x21,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0x24,0x02,0x00,0x00,
    -0x13,0x00,0x00,0x00,0x23,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x25,0x02,0x00,0x00,0x24,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x26,0x02,0x00,0x00,
    -0x22,0x02,0x00,0x00,0x25,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x27,0x02,0x00,0x00,0x95,0x03,0x00,0x00,
    -0x26,0x02,0x00,0x00,0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,
    -0x29,0x02,0x00,0x00,0x0d,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x2a,0x02,0x00,0x00,
    -0x29,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
    -0x2c,0x02,0x00,0x00,0x13,0x00,0x00,0x00,0x2b,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x2d,0x02,0x00,0x00,
    -0x2c,0x02,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x2e,0x02,0x00,0x00,0x2a,0x02,0x00,0x00,0x2d,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0x2f,0x02,0x00,0x00,
    -0x13,0x00,0x00,0x00,0x58,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x30,0x02,0x00,0x00,0x2f,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x31,0x02,0x00,0x00,
    -0x2e,0x02,0x00,0x00,0x30,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x32,0x02,0x00,0x00,0x27,0x02,0x00,0x00,
    -0x31,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x34,0x02,0x00,0x00,0x32,0x02,0x00,0x00,0x5a,0x00,0x00,0x00,
    -0x41,0x00,0x06,0x00,0x35,0x02,0x00,0x00,0x36,0x02,0x00,0x00,
    -0x1d,0x02,0x00,0x00,0x15,0x00,0x00,0x00,0x34,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0x37,0x02,0x00,0x00,
    -0x36,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xcf,0x01,0x00,0x00,
    -0x38,0x02,0x00,0x00,0x12,0x02,0x00,0x00,0x19,0x02,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x38,0x02,0x00,0x00,0x37,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x08,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x39,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x3c,0x02,0x00,0x00,0x5f,0x00,0x00,0x00,0x8e,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3e,0x02,0x00,0x00,
    -0x3c,0x02,0x00,0x00,0x3d,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x40,0x02,0x00,0x00,0x3e,0x02,0x00,0x00,
    -0x5a,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0xcf,0x01,0x00,0x00,
    -0x41,0x02,0x00,0x00,0x12,0x02,0x00,0x00,0x40,0x02,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x41,0x02,0x00,0x00,0xd7,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x08,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x08,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xf9,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xf9,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x46,0x02,0x00,0x00,0x8e,0x03,0x00,0x00,
    -0x44,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xf6,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xf8,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,
    -0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x49,0x02,0x00,0x00,
    -0x91,0x03,0x00,0x00,0x47,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x4c,0x02,0x00,0x00,0x95,0x03,0x00,0x00,
    -0x4a,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x4e,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x4e,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x97,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    -0xf8,0x01,0x00,0x00,0xf5,0x02,0x00,0x00,0x51,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x54,0x02,0x00,0x00,
    -0x97,0x03,0x00,0x00,0x4e,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x50,0x02,0x00,0x00,0x51,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x54,0x02,0x00,0x00,0x4f,0x02,0x00,0x00,
    -0x50,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x4f,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x56,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x56,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x9b,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0x4f,0x02,0x00,0x00,
    -0x81,0x02,0x00,0x00,0x59,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0x5c,0x02,0x00,0x00,0x9b,0x03,0x00,0x00,
    -0x42,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x58,0x02,0x00,0x00,
    -0x59,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x5c,0x02,0x00,0x00,0x57,0x02,0x00,0x00,0x58,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x57,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x5e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x5e,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xad,0x03,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x57,0x02,0x00,0x00,0x7f,0x02,0x00,0x00,
    -0x5f,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0x64,0x02,0x00,0x00,0xad,0x03,0x00,0x00,0x44,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x60,0x02,0x00,0x00,0x5f,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x64,0x02,0x00,0x00,
    -0x5f,0x02,0x00,0x00,0x60,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x5f,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x6a,0x02,0x00,0x00,0x9b,0x03,0x00,0x00,0x44,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6c,0x02,0x00,0x00,
    -0x6a,0x02,0x00,0x00,0xad,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x6e,0x02,0x00,0x00,0x37,0x00,0x00,0x00,
    -0x35,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x70,0x02,0x00,0x00,0x9b,0x03,0x00,0x00,0x43,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x71,0x02,0x00,0x00,
    -0x6e,0x02,0x00,0x00,0x70,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x73,0x02,0x00,0x00,0x46,0x00,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xd6,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x3a,0x01,0x00,0x00,0xd8,0x01,0x00,0x00,0xd7,0x01,0x00,0x00,
    +0xc2,0x00,0x05,0x00,0x3a,0x01,0x00,0x00,0xda,0x01,0x00,0x00,
    +0xd8,0x01,0x00,0x00,0x29,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0xdb,0x01,0x00,0x00,0xda,0x01,0x00,0x00,
    +0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0xdc,0x01,0x00,0x00,
    +0xdb,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x14,0x00,0x00,0x00,
    +0xdd,0x01,0x00,0x00,0xdc,0x01,0x00,0x00,0xb5,0x00,0x00,0x00,
    +0x72,0x00,0x04,0x00,0x31,0x01,0x00,0x00,0xde,0x01,0x00,0x00,
    +0xdd,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    +0xdf,0x01,0x00,0x00,0xde,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xe2,0x01,0x00,0x00,0x14,0x01,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0x48,0x01,0x00,0x00,
    +0xe3,0x01,0x00,0x00,0x44,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    +0x05,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0xe2,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x3a,0x01,0x00,0x00,0xe4,0x01,0x00,0x00,
    +0xe3,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0xe5,0x01,0x00,0x00,0xe4,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xe7,0x01,0x00,0x00,0xe5,0x01,0x00,0x00,
    +0x30,0x01,0x00,0x00,0xab,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0xe8,0x01,0x00,0x00,0xe7,0x01,0x00,0x00,0x20,0x00,0x00,0x00,
    +0xa9,0x00,0x06,0x00,0x14,0x00,0x00,0x00,0xe9,0x01,0x00,0x00,
    +0xe8,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x58,0x01,0x00,0x00,
    +0x82,0x00,0x05,0x00,0x14,0x00,0x00,0x00,0xea,0x01,0x00,0x00,
    +0xdf,0x01,0x00,0x00,0xe9,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,
    +0xcf,0x00,0x00,0x00,0xeb,0x01,0x00,0x00,0xea,0x01,0x00,0x00,
    +0x85,0x00,0x05,0x00,0xcf,0x00,0x00,0x00,0xec,0x01,0x00,0x00,
    +0xb0,0x01,0x00,0x00,0xeb,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xcf,0x01,0x00,0x00,0xed,0x01,0x00,0x00,0xb5,0x01,0x00,0x00,
    +0xd2,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xed,0x01,0x00,0x00,
    +0xec,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xe9,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xe9,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xf4,0x01,0x00,0x00,0x8d,0x03,0x00,0x00,
    +0xf2,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xe6,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xe8,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xf6,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xf6,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x8e,0x03,0x00,0x00,
    +0x20,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0x46,0x02,0x00,0x00,
    +0xf9,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0xfc,0x01,0x00,0x00,0x8e,0x03,0x00,0x00,0xa2,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xf8,0x01,0x00,0x00,0xf9,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xfc,0x01,0x00,0x00,
    +0xf7,0x01,0x00,0x00,0xf8,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xf7,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x01,0x02,0x00,0x00,0xa3,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x03,0x02,0x00,0x00,
    +0x01,0x02,0x00,0x00,0x8e,0x03,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x06,0x02,0x00,0x00,0x03,0x02,0x00,0x00,
    +0x7a,0x03,0x00,0x00,0xf7,0x00,0x03,0x00,0x08,0x02,0x00,0x00,
    +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x06,0x02,0x00,0x00,
    +0x07,0x02,0x00,0x00,0x39,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x07,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x97,0x00,0x00,0x00,
    +0x0c,0x02,0x00,0x00,0x90,0x00,0x00,0x00,0x03,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,0x0d,0x02,0x00,0x00,
    +0x0c,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x15,0x02,0x00,0x00,0x5f,0x00,0x00,0x00,0x8e,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x17,0x02,0x00,0x00,
    +0x15,0x02,0x00,0x00,0x16,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x19,0x02,0x00,0x00,0x17,0x02,0x00,0x00,
    +0x5a,0x00,0x00,0x00,0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,
    +0x21,0x02,0x00,0x00,0x0d,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x22,0x02,0x00,0x00,
    +0x21,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
    +0x24,0x02,0x00,0x00,0x13,0x00,0x00,0x00,0x23,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x25,0x02,0x00,0x00,
    +0x24,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x26,0x02,0x00,0x00,0x22,0x02,0x00,0x00,0x25,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x27,0x02,0x00,0x00,
    +0x95,0x03,0x00,0x00,0x26,0x02,0x00,0x00,0x51,0x00,0x05,0x00,
    +0x8b,0x00,0x00,0x00,0x29,0x02,0x00,0x00,0x0d,0x02,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x2a,0x02,0x00,0x00,0x29,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x16,0x00,0x00,0x00,0x2c,0x02,0x00,0x00,0x13,0x00,0x00,0x00,
    +0x2b,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x2d,0x02,0x00,0x00,0x2c,0x02,0x00,0x00,0x89,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x2e,0x02,0x00,0x00,0x2a,0x02,0x00,0x00,
    +0x2d,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
    +0x2f,0x02,0x00,0x00,0x13,0x00,0x00,0x00,0x58,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x30,0x02,0x00,0x00,
    +0x2f,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x31,0x02,0x00,0x00,0x2e,0x02,0x00,0x00,0x30,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x32,0x02,0x00,0x00,
    +0x27,0x02,0x00,0x00,0x31,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x34,0x02,0x00,0x00,0x32,0x02,0x00,0x00,
    +0x5a,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x35,0x02,0x00,0x00,
    +0x36,0x02,0x00,0x00,0x1d,0x02,0x00,0x00,0x15,0x00,0x00,0x00,
    +0x34,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    +0x37,0x02,0x00,0x00,0x36,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xcf,0x01,0x00,0x00,0x38,0x02,0x00,0x00,0x12,0x02,0x00,0x00,
    +0x19,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0x38,0x02,0x00,0x00,
    +0x37,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x08,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x39,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x3c,0x02,0x00,0x00,0x5f,0x00,0x00,0x00,
    +0x8e,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x3e,0x02,0x00,0x00,0x3c,0x02,0x00,0x00,0x3d,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x40,0x02,0x00,0x00,
    +0x3e,0x02,0x00,0x00,0x5a,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xcf,0x01,0x00,0x00,0x41,0x02,0x00,0x00,0x12,0x02,0x00,0x00,
    +0x40,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0x41,0x02,0x00,0x00,
    +0xd7,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x08,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x08,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xf9,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xf9,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x46,0x02,0x00,0x00,
    +0x8e,0x03,0x00,0x00,0x44,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xf6,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xf8,0x01,0x00,0x00,
    +0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0xa0,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x49,0x02,0x00,0x00,0x91,0x03,0x00,0x00,0x47,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4c,0x02,0x00,0x00,
    +0x95,0x03,0x00,0x00,0x4a,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x4e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x4e,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x97,0x03,0x00,0x00,
    +0x20,0x00,0x00,0x00,0xf8,0x01,0x00,0x00,0xf5,0x02,0x00,0x00,
    +0x51,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0x54,0x02,0x00,0x00,0x97,0x03,0x00,0x00,0x4e,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x50,0x02,0x00,0x00,0x51,0x02,0x00,0x00,
    +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x54,0x02,0x00,0x00,
    +0x4f,0x02,0x00,0x00,0x50,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x4f,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x56,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x56,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x9b,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x4f,0x02,0x00,0x00,0x81,0x02,0x00,0x00,0x59,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x5c,0x02,0x00,0x00,
    +0x9b,0x03,0x00,0x00,0x42,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x58,0x02,0x00,0x00,0x59,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x5c,0x02,0x00,0x00,0x57,0x02,0x00,0x00,
    +0x58,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x57,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x5e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x5e,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xad,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0x57,0x02,0x00,0x00,
    +0x7f,0x02,0x00,0x00,0x5f,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x64,0x02,0x00,0x00,0xad,0x03,0x00,0x00,
    +0x44,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x60,0x02,0x00,0x00,
    +0x5f,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x64,0x02,0x00,0x00,0x5f,0x02,0x00,0x00,0x60,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x5f,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x6a,0x02,0x00,0x00,0x9b,0x03,0x00,0x00,
     0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x74,0x02,0x00,0x00,0x71,0x02,0x00,0x00,0x73,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x76,0x02,0x00,0x00,
    -0x74,0x02,0x00,0x00,0xad,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x78,0x02,0x00,0x00,0x76,0x02,0x00,0x00,
    -0x77,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x7a,0x02,0x00,0x00,0x78,0x02,0x00,0x00,0x97,0x03,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xcf,0x01,0x00,0x00,0x7b,0x02,0x00,0x00,
    -0xb5,0x01,0x00,0x00,0x7a,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xcf,0x00,0x00,0x00,0x7c,0x02,0x00,0x00,0x7b,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,0x7d,0x02,0x00,0x00,
    -0x68,0x02,0x00,0x00,0x6c,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x7d,0x02,0x00,0x00,0x7c,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x7f,0x02,0x00,0x00,0xad,0x03,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x5e,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x60,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x59,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x59,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x81,0x02,0x00,0x00,
    -0x9b,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x56,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x58,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x83,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x83,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x9c,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0x58,0x02,0x00,0x00,
    -0xaf,0x02,0x00,0x00,0x86,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0x89,0x02,0x00,0x00,0x9c,0x03,0x00,0x00,
    -0xcb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x85,0x02,0x00,0x00,
    -0x86,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x89,0x02,0x00,0x00,0x84,0x02,0x00,0x00,0x85,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x84,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x8b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x8b,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xaa,0x03,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x84,0x02,0x00,0x00,0xad,0x02,0x00,0x00,
    -0x8c,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0x91,0x02,0x00,0x00,0xaa,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x8d,0x02,0x00,0x00,0x8c,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x91,0x02,0x00,0x00,
    -0x8c,0x02,0x00,0x00,0x8d,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x8c,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x97,0x02,0x00,0x00,0x9c,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x99,0x02,0x00,0x00,
    -0x97,0x02,0x00,0x00,0xaa,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x9b,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,
    -0xc5,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x9e,0x02,0x00,0x00,0x9c,0x03,0x00,0x00,0x9d,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9f,0x02,0x00,0x00,
    -0x9b,0x02,0x00,0x00,0x9e,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xa1,0x02,0x00,0x00,0x4a,0x00,0x00,0x00,
    -0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xa2,0x02,0x00,0x00,0x9f,0x02,0x00,0x00,0xa1,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa4,0x02,0x00,0x00,
    -0xa2,0x02,0x00,0x00,0xaa,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xa6,0x02,0x00,0x00,0xa4,0x02,0x00,0x00,
    -0xa5,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xa8,0x02,0x00,0x00,0xa6,0x02,0x00,0x00,0x97,0x03,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xcf,0x01,0x00,0x00,0xa9,0x02,0x00,0x00,
    -0x12,0x02,0x00,0x00,0xa8,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xcf,0x00,0x00,0x00,0xaa,0x02,0x00,0x00,0xa9,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,0xab,0x02,0x00,0x00,
    -0x95,0x02,0x00,0x00,0x99,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0xab,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xad,0x02,0x00,0x00,0xaa,0x03,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x8b,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x8d,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x86,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x86,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xaf,0x02,0x00,0x00,
    -0x9c,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x83,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x85,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xb1,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xb1,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x9d,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0x85,0x02,0x00,0x00,
    -0xf3,0x02,0x00,0x00,0xb4,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0xb7,0x02,0x00,0x00,0x9d,0x03,0x00,0x00,
    -0xcb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xb3,0x02,0x00,0x00,
    -0xb4,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xb7,0x02,0x00,0x00,0xb2,0x02,0x00,0x00,0xb3,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xb2,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xb9,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xb9,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xa1,0x03,0x00,0x00,
    -0x20,0x00,0x00,0x00,0xb2,0x02,0x00,0x00,0xf1,0x02,0x00,0x00,
    -0xbc,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0xbf,0x02,0x00,0x00,0xa1,0x03,0x00,0x00,0x42,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xbb,0x02,0x00,0x00,0xbc,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xbf,0x02,0x00,0x00,
    -0xba,0x02,0x00,0x00,0xbb,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xba,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xc1,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xc1,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xa3,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    -0xba,0x02,0x00,0x00,0xef,0x02,0x00,0x00,0xc4,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xc7,0x02,0x00,0x00,
    -0xa3,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xc3,0x02,0x00,0x00,0xc4,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xc7,0x02,0x00,0x00,0xc2,0x02,0x00,0x00,
    -0xc3,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xc2,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xc9,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xc9,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xa5,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0xc2,0x02,0x00,0x00,
    -0xed,0x02,0x00,0x00,0xca,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0xcf,0x02,0x00,0x00,0xa5,0x03,0x00,0x00,
    -0x44,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xcb,0x02,0x00,0x00,
    -0xca,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xcf,0x02,0x00,0x00,0xca,0x02,0x00,0x00,0xcb,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xca,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xd1,0x02,0x00,0x00,0x9d,0x03,0x00,0x00,
    +0x6c,0x02,0x00,0x00,0x6a,0x02,0x00,0x00,0xad,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6e,0x02,0x00,0x00,
    +0x37,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x70,0x02,0x00,0x00,0x9b,0x03,0x00,0x00,
    +0x43,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x71,0x02,0x00,0x00,0x6e,0x02,0x00,0x00,0x70,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x73,0x02,0x00,0x00,
    +0x46,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x74,0x02,0x00,0x00,0x71,0x02,0x00,0x00,
    +0x73,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x76,0x02,0x00,0x00,0x74,0x02,0x00,0x00,0xad,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x78,0x02,0x00,0x00,
    +0x76,0x02,0x00,0x00,0x77,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x7a,0x02,0x00,0x00,0x78,0x02,0x00,0x00,
    +0x97,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0xcf,0x01,0x00,0x00,
    +0x7b,0x02,0x00,0x00,0xb5,0x01,0x00,0x00,0x7a,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0x7c,0x02,0x00,0x00,
    +0x7b,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,
    +0x7d,0x02,0x00,0x00,0x68,0x02,0x00,0x00,0x6c,0x02,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x7d,0x02,0x00,0x00,0x7c,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7f,0x02,0x00,0x00,
    +0xad,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x5e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x60,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x59,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x59,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x81,0x02,0x00,0x00,0x9b,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x56,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x58,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x83,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x83,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x9c,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x58,0x02,0x00,0x00,0xaf,0x02,0x00,0x00,0x86,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x89,0x02,0x00,0x00,
    +0x9c,0x03,0x00,0x00,0xcb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x85,0x02,0x00,0x00,0x86,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x89,0x02,0x00,0x00,0x84,0x02,0x00,0x00,
    +0x85,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x84,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x8b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x8b,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xaa,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0x84,0x02,0x00,0x00,
    +0xad,0x02,0x00,0x00,0x8c,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x91,0x02,0x00,0x00,0xaa,0x03,0x00,0x00,
    +0xc8,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x8d,0x02,0x00,0x00,
    +0x8c,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x91,0x02,0x00,0x00,0x8c,0x02,0x00,0x00,0x8d,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x8c,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x97,0x02,0x00,0x00,0x9c,0x03,0x00,0x00,
     0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xd3,0x02,0x00,0x00,0xd1,0x02,0x00,0x00,0xa3,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd5,0x02,0x00,0x00,
    -0xd3,0x02,0x00,0x00,0xd4,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xd7,0x02,0x00,0x00,0xa1,0x03,0x00,0x00,
    -0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xd8,0x02,0x00,0x00,0xd5,0x02,0x00,0x00,0xd7,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xda,0x02,0x00,0x00,
    -0xd8,0x02,0x00,0x00,0xa5,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xde,0x02,0x00,0x00,0xd7,0x02,0x00,0x00,
    -0xa5,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,
    -0xdf,0x02,0x00,0x00,0x68,0x02,0x00,0x00,0xde,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0xe0,0x02,0x00,0x00,
    -0xdf,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,
    -0xe5,0x02,0x00,0x00,0x95,0x02,0x00,0x00,0xd3,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0xe6,0x02,0x00,0x00,
    -0xe5,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,
    -0xe8,0x02,0x00,0x00,0xd5,0x00,0x00,0x00,0xda,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0xe9,0x02,0x00,0x00,
    -0xe8,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0xcf,0x00,0x00,0x00,
    -0xea,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,
    -0xe0,0x02,0x00,0x00,0xe6,0x02,0x00,0x00,0xe9,0x02,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0xe8,0x02,0x00,0x00,0xea,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xed,0x02,0x00,0x00,
    -0xa5,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xc9,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xcb,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xc4,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xc4,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xef,0x02,0x00,0x00,0xa3,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xc1,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xc3,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xbc,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xbc,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xf1,0x02,0x00,0x00,0xa1,0x03,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xb9,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xbb,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xb4,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xb4,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf3,0x02,0x00,0x00,
    -0x9d,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xb1,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xb3,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x51,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x51,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xf5,0x02,0x00,0x00,0x97,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x4e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x50,0x02,0x00,0x00,0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xe0,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xe0,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf7,0x02,0x00,0x00,
    -0x7c,0x03,0x00,0x00,0x4e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xdd,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xdf,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfc,0x02,0x00,0x00,
    -0x37,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xfd,0x02,0x00,0x00,0xb4,0x00,0x00,0x00,
    -0xfc,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x02,0x03,0x00,0x00,0x3b,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x03,0x03,0x00,0x00,
    -0xa3,0x00,0x00,0x00,0x02,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x05,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x05,0x03,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x7d,0x03,0x00,0x00,
    -0x20,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0x6e,0x03,0x00,0x00,
    -0x08,0x03,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0x0b,0x03,0x00,0x00,0x7d,0x03,0x00,0x00,0xcb,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x07,0x03,0x00,0x00,0x08,0x03,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x0b,0x03,0x00,0x00,
    -0x06,0x03,0x00,0x00,0x07,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x06,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,0x0d,0x03,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x0d,0x03,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x7e,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x06,0x03,0x00,0x00,0x6c,0x03,0x00,0x00,0x10,0x03,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x13,0x03,0x00,0x00,
    -0x7e,0x03,0x00,0x00,0x42,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x0f,0x03,0x00,0x00,0x10,0x03,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x13,0x03,0x00,0x00,0x0e,0x03,0x00,0x00,
    -0x0f,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x0e,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x17,0x03,0x00,0x00,
    -0x7e,0x03,0x00,0x00,0x43,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x18,0x03,0x00,0x00,0xfd,0x02,0x00,0x00,
    -0x17,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x1a,0x03,0x00,0x00,0x46,0x00,0x00,0x00,0x44,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1b,0x03,0x00,0x00,
    -0x18,0x03,0x00,0x00,0x1a,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x1f,0x03,0x00,0x00,0x7d,0x03,0x00,0x00,
    +0x99,0x02,0x00,0x00,0x97,0x02,0x00,0x00,0xaa,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9b,0x02,0x00,0x00,
    +0x3b,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x9e,0x02,0x00,0x00,0x9c,0x03,0x00,0x00,
     0x9d,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x20,0x03,0x00,0x00,0x03,0x03,0x00,0x00,0x1f,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x22,0x03,0x00,0x00,
    +0x9f,0x02,0x00,0x00,0x9b,0x02,0x00,0x00,0x9e,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa1,0x02,0x00,0x00,
     0x4a,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x23,0x03,0x00,0x00,0x20,0x03,0x00,0x00,
    -0x22,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,0x25,0x03,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x25,0x03,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x80,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x0e,0x03,0x00,0x00,0x6a,0x03,0x00,0x00,0x28,0x03,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x2b,0x03,0x00,0x00,
    -0x80,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x27,0x03,0x00,0x00,0x28,0x03,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x2b,0x03,0x00,0x00,0x26,0x03,0x00,0x00,
    -0x27,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x26,0x03,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2f,0x03,0x00,0x00,
    -0x23,0x03,0x00,0x00,0x80,0x03,0x00,0x00,0xae,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0x32,0x03,0x00,0x00,0x2f,0x03,0x00,0x00,
    -0x7a,0x03,0x00,0x00,0xf7,0x00,0x03,0x00,0x34,0x03,0x00,0x00,
    -0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x32,0x03,0x00,0x00,
    -0x33,0x03,0x00,0x00,0x34,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x33,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,0x27,0x03,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x34,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x97,0x00,0x00,0x00,0x38,0x03,0x00,0x00,0x90,0x00,0x00,0x00,
    -0x2f,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,
    -0x39,0x03,0x00,0x00,0x38,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x3b,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x3b,0x03,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x86,0x03,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x34,0x03,0x00,0x00,0x68,0x03,0x00,0x00,
    -0x3c,0x03,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0x41,0x03,0x00,0x00,0x86,0x03,0x00,0x00,0x44,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x3d,0x03,0x00,0x00,0x3c,0x03,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x41,0x03,0x00,0x00,
    -0x3c,0x03,0x00,0x00,0x3d,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x3c,0x03,0x00,0x00,0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,
    -0x47,0x03,0x00,0x00,0x39,0x03,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x48,0x03,0x00,0x00,
    -0x47,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
    -0x4a,0x03,0x00,0x00,0x13,0x00,0x00,0x00,0x49,0x03,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4b,0x03,0x00,0x00,
    -0x4a,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x4c,0x03,0x00,0x00,0x48,0x03,0x00,0x00,0x4b,0x03,0x00,0x00,
    -0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,0x4e,0x03,0x00,0x00,
    -0x39,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x4f,0x03,0x00,0x00,0x4e,0x03,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0x51,0x03,0x00,0x00,
    -0x13,0x00,0x00,0x00,0x50,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x52,0x03,0x00,0x00,0x51,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x53,0x03,0x00,0x00,
    -0x4f,0x03,0x00,0x00,0x52,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x54,0x03,0x00,0x00,0x4c,0x03,0x00,0x00,
    -0x53,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x56,0x03,0x00,0x00,0x54,0x03,0x00,0x00,0x1b,0x03,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x58,0x03,0x00,0x00,
    -0x56,0x03,0x00,0x00,0x86,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x5a,0x03,0x00,0x00,0x7d,0x03,0x00,0x00,
    -0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x5c,0x03,0x00,0x00,0x5a,0x03,0x00,0x00,0x80,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5e,0x03,0x00,0x00,
    -0x5c,0x03,0x00,0x00,0x5d,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x60,0x03,0x00,0x00,0x7e,0x03,0x00,0x00,
    +0x06,0x00,0x00,0x00,0xa2,0x02,0x00,0x00,0x9f,0x02,0x00,0x00,
    +0xa1,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xa4,0x02,0x00,0x00,0xa2,0x02,0x00,0x00,0xaa,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa6,0x02,0x00,0x00,
    +0xa4,0x02,0x00,0x00,0xa5,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xa8,0x02,0x00,0x00,0xa6,0x02,0x00,0x00,
    +0x97,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0xcf,0x01,0x00,0x00,
    +0xa9,0x02,0x00,0x00,0x12,0x02,0x00,0x00,0xa8,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0xaa,0x02,0x00,0x00,
    +0xa9,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,
    +0xab,0x02,0x00,0x00,0x95,0x02,0x00,0x00,0x99,0x02,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0xab,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xad,0x02,0x00,0x00,
    +0xaa,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x8b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x8d,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x86,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x86,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xaf,0x02,0x00,0x00,0x9c,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x83,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x85,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xb1,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xb1,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x9d,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x85,0x02,0x00,0x00,0xf3,0x02,0x00,0x00,0xb4,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xb7,0x02,0x00,0x00,
    +0x9d,0x03,0x00,0x00,0xcb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xb3,0x02,0x00,0x00,0xb4,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xb7,0x02,0x00,0x00,0xb2,0x02,0x00,0x00,
    +0xb3,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xb2,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xb9,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xb9,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xa1,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0xb2,0x02,0x00,0x00,
    +0xf1,0x02,0x00,0x00,0xbc,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0xbf,0x02,0x00,0x00,0xa1,0x03,0x00,0x00,
    +0x42,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xbb,0x02,0x00,0x00,
    +0xbc,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xbf,0x02,0x00,0x00,0xba,0x02,0x00,0x00,0xbb,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xba,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xc1,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xc1,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xa3,0x03,0x00,0x00,
    +0x20,0x00,0x00,0x00,0xba,0x02,0x00,0x00,0xef,0x02,0x00,0x00,
    +0xc4,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0xc7,0x02,0x00,0x00,0xa3,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xc3,0x02,0x00,0x00,0xc4,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xc7,0x02,0x00,0x00,
    +0xc2,0x02,0x00,0x00,0xc3,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xc2,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xc9,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xc9,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xa5,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    +0xc2,0x02,0x00,0x00,0xed,0x02,0x00,0x00,0xca,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xcf,0x02,0x00,0x00,
    +0xa5,0x03,0x00,0x00,0x44,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xcb,0x02,0x00,0x00,0xca,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xcf,0x02,0x00,0x00,0xca,0x02,0x00,0x00,
    +0xcb,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xca,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd1,0x02,0x00,0x00,
    +0x9d,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xd3,0x02,0x00,0x00,0xd1,0x02,0x00,0x00,
    +0xa3,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xd5,0x02,0x00,0x00,0xd3,0x02,0x00,0x00,0xd4,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd7,0x02,0x00,0x00,
    +0xa1,0x03,0x00,0x00,0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xd8,0x02,0x00,0x00,0xd5,0x02,0x00,0x00,
    +0xd7,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xda,0x02,0x00,0x00,0xd8,0x02,0x00,0x00,0xa5,0x03,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xde,0x02,0x00,0x00,
    +0xd7,0x02,0x00,0x00,0xa5,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xd8,0x00,0x00,0x00,0xdf,0x02,0x00,0x00,0x68,0x02,0x00,0x00,
    +0xde,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    +0xe0,0x02,0x00,0x00,0xdf,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xd8,0x00,0x00,0x00,0xe5,0x02,0x00,0x00,0x95,0x02,0x00,0x00,
    +0xd3,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    +0xe6,0x02,0x00,0x00,0xe5,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xd8,0x00,0x00,0x00,0xe8,0x02,0x00,0x00,0xd5,0x00,0x00,0x00,
    +0xda,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    +0xe9,0x02,0x00,0x00,0xe8,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,
    +0xcf,0x00,0x00,0x00,0xea,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x32,0x00,0x00,0x00,0xe0,0x02,0x00,0x00,0xe6,0x02,0x00,0x00,
    +0xe9,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0xe8,0x02,0x00,0x00,
    +0xea,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xed,0x02,0x00,0x00,0xa5,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xc9,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xcb,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xc4,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xc4,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xef,0x02,0x00,0x00,0xa3,0x03,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xc1,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xc3,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xbc,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xbc,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf1,0x02,0x00,0x00,
    +0xa1,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xb9,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xbb,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xb4,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xb4,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xf3,0x02,0x00,0x00,0x9d,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xb1,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xb3,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x51,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x51,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xf5,0x02,0x00,0x00,0x97,0x03,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x4e,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x50,0x02,0x00,0x00,0xe0,0x00,0x04,0x00,
    +0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xe0,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xe0,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xf7,0x02,0x00,0x00,0x7c,0x03,0x00,0x00,0x4e,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xdd,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xdf,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xfc,0x02,0x00,0x00,0x37,0x00,0x00,0x00,0x35,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfd,0x02,0x00,0x00,
    +0xb4,0x00,0x00,0x00,0xfc,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x02,0x03,0x00,0x00,0x3b,0x00,0x00,0x00,
    +0xc5,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x03,0x03,0x00,0x00,0xa3,0x00,0x00,0x00,0x02,0x03,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x05,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x05,0x03,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x7d,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,
    +0x6e,0x03,0x00,0x00,0x08,0x03,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x0b,0x03,0x00,0x00,0x7d,0x03,0x00,0x00,
    +0xcb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x07,0x03,0x00,0x00,
    +0x08,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x0b,0x03,0x00,0x00,0x06,0x03,0x00,0x00,0x07,0x03,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x06,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x0d,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x0d,0x03,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x7e,0x03,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x06,0x03,0x00,0x00,0x6c,0x03,0x00,0x00,
    +0x10,0x03,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0x13,0x03,0x00,0x00,0x7e,0x03,0x00,0x00,0x42,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x0f,0x03,0x00,0x00,0x10,0x03,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x13,0x03,0x00,0x00,
    +0x0e,0x03,0x00,0x00,0x0f,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x0e,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x17,0x03,0x00,0x00,0x7e,0x03,0x00,0x00,0x43,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x18,0x03,0x00,0x00,
    +0xfd,0x02,0x00,0x00,0x17,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x1a,0x03,0x00,0x00,0x46,0x00,0x00,0x00,
     0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x61,0x03,0x00,0x00,0x5e,0x03,0x00,0x00,0x60,0x03,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x63,0x03,0x00,0x00,
    -0x61,0x03,0x00,0x00,0x86,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xd8,0x00,0x00,0x00,0x64,0x03,0x00,0x00,0xd5,0x00,0x00,0x00,
    -0x63,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    -0x65,0x03,0x00,0x00,0x64,0x03,0x00,0x00,0x41,0x00,0x06,0x00,
    -0x35,0x02,0x00,0x00,0x66,0x03,0x00,0x00,0x45,0x03,0x00,0x00,
    -0x15,0x00,0x00,0x00,0x58,0x03,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x66,0x03,0x00,0x00,0x65,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x68,0x03,0x00,0x00,0x86,0x03,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x3b,0x03,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x3d,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x28,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x28,0x03,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6a,0x03,0x00,0x00,
    -0x80,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x25,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x27,0x03,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x10,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x10,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x6c,0x03,0x00,0x00,0x7e,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x0d,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x0f,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,0x08,0x03,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x08,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x6e,0x03,0x00,0x00,0x7d,0x03,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x05,0x03,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x07,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x6f,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x6f,0x03,0x00,0x00,
    -0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
    +0x1b,0x03,0x00,0x00,0x18,0x03,0x00,0x00,0x1a,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1f,0x03,0x00,0x00,
    +0x7d,0x03,0x00,0x00,0x9d,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x20,0x03,0x00,0x00,0x03,0x03,0x00,0x00,
    +0x1f,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x22,0x03,0x00,0x00,0x4a,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x23,0x03,0x00,0x00,
    +0x20,0x03,0x00,0x00,0x22,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x25,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x25,0x03,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x80,0x03,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x0e,0x03,0x00,0x00,0x6a,0x03,0x00,0x00,
    +0x28,0x03,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0x2b,0x03,0x00,0x00,0x80,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x27,0x03,0x00,0x00,0x28,0x03,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x2b,0x03,0x00,0x00,
    +0x26,0x03,0x00,0x00,0x27,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x26,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x2f,0x03,0x00,0x00,0x23,0x03,0x00,0x00,0x80,0x03,0x00,0x00,
    +0xae,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x32,0x03,0x00,0x00,
    +0x2f,0x03,0x00,0x00,0x7a,0x03,0x00,0x00,0xf7,0x00,0x03,0x00,
    +0x34,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x32,0x03,0x00,0x00,0x33,0x03,0x00,0x00,0x34,0x03,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x33,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x27,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x34,0x03,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x97,0x00,0x00,0x00,0x38,0x03,0x00,0x00,
    +0x90,0x00,0x00,0x00,0x2f,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x8c,0x00,0x00,0x00,0x39,0x03,0x00,0x00,0x38,0x03,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x3b,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x3b,0x03,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x86,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0x34,0x03,0x00,0x00,
    +0x68,0x03,0x00,0x00,0x3c,0x03,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x41,0x03,0x00,0x00,0x86,0x03,0x00,0x00,
    +0x44,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x3d,0x03,0x00,0x00,
    +0x3c,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x41,0x03,0x00,0x00,0x3c,0x03,0x00,0x00,0x3d,0x03,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x3c,0x03,0x00,0x00,0x51,0x00,0x05,0x00,
    +0x8b,0x00,0x00,0x00,0x47,0x03,0x00,0x00,0x39,0x03,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x48,0x03,0x00,0x00,0x47,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x16,0x00,0x00,0x00,0x4a,0x03,0x00,0x00,0x13,0x00,0x00,0x00,
    +0x49,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x4b,0x03,0x00,0x00,0x4a,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x4c,0x03,0x00,0x00,0x48,0x03,0x00,0x00,
    +0x4b,0x03,0x00,0x00,0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,
    +0x4e,0x03,0x00,0x00,0x39,0x03,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4f,0x03,0x00,0x00,
    +0x4e,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
    +0x51,0x03,0x00,0x00,0x13,0x00,0x00,0x00,0x50,0x03,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x52,0x03,0x00,0x00,
    +0x51,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x53,0x03,0x00,0x00,0x4f,0x03,0x00,0x00,0x52,0x03,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x54,0x03,0x00,0x00,
    +0x4c,0x03,0x00,0x00,0x53,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x56,0x03,0x00,0x00,0x54,0x03,0x00,0x00,
    +0x1b,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x58,0x03,0x00,0x00,0x56,0x03,0x00,0x00,0x86,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5a,0x03,0x00,0x00,
    +0x7d,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x5c,0x03,0x00,0x00,0x5a,0x03,0x00,0x00,
    +0x80,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x5e,0x03,0x00,0x00,0x5c,0x03,0x00,0x00,0x5d,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x60,0x03,0x00,0x00,
    +0x7e,0x03,0x00,0x00,0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x61,0x03,0x00,0x00,0x5e,0x03,0x00,0x00,
    +0x60,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x63,0x03,0x00,0x00,0x61,0x03,0x00,0x00,0x86,0x03,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,0x64,0x03,0x00,0x00,
    +0xd5,0x00,0x00,0x00,0x63,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xcf,0x00,0x00,0x00,0x65,0x03,0x00,0x00,0x64,0x03,0x00,0x00,
    +0x41,0x00,0x06,0x00,0x35,0x02,0x00,0x00,0x66,0x03,0x00,0x00,
    +0x45,0x03,0x00,0x00,0x15,0x00,0x00,0x00,0x58,0x03,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x66,0x03,0x00,0x00,0x65,0x03,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x68,0x03,0x00,0x00,
    +0x86,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x3b,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x3d,0x03,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x28,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x28,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x6a,0x03,0x00,0x00,0x80,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x25,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x27,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,0x10,0x03,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x10,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x6c,0x03,0x00,0x00,0x7e,0x03,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x0d,0x03,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x0f,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x08,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x08,0x03,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6e,0x03,0x00,0x00,
    +0x7d,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x05,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x07,0x03,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x6f,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x6f,0x03,0x00,0x00,0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
    +
     };
    -const uint64_t matmul_id_q3_k_f32_fp32_len = 13496;
    +const uint64_t matmul_id_q3_k_f32_fp32_len = 13476;
     
     unsigned char matmul_id_q4_0_f32_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
    @@ -45540,9 +49262,9 @@ unsigned char matmul_id_q4_0_f32_data[] = {
     0x43,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x54,0x00,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x59,0x00,0x00,0x00,
     0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,
    @@ -45643,7 +49365,7 @@ unsigned char matmul_id_q4_0_f32_data[] = {
     0x06,0x00,0x00,0x00,0x41,0x01,0x00,0x00,0x51,0x00,0x00,0x00,
     0x40,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x42,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    -0x41,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x41,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x43,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
     0x42,0x01,0x00,0x00,0x4e,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x5f,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
    @@ -45675,7 +49397,7 @@ unsigned char matmul_id_q4_0_f32_data[] = {
     0x06,0x00,0x00,0x00,0x97,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
     0x96,0x01,0x00,0x00,0x4e,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x9a,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x4e,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x9d,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
     0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0xb8,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    @@ -45845,7 +49567,7 @@ unsigned char matmul_id_q4_0_f32_data[] = {
     0xb7,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xb9,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,
    -0xb9,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xb9,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
     0xbe,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xbe,0x00,0x00,0x00,
     0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xd3,0x02,0x00,0x00,
     0x20,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,
    @@ -45886,7 +49608,7 @@ unsigned char matmul_id_q4_0_f32_data[] = {
     0x55,0x00,0x00,0x00,0xe5,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,0xf1,0x00,0x00,0x00,
     0xb7,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xf5,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0xf5,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,
     0xe9,0x02,0x00,0x00,0xf5,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,
    @@ -48385,9 +52107,9 @@ unsigned char matmul_id_q4_0_f32_fp32_data[] = {
     0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
     0x10,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x4f,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x54,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x59,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
     0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x5e,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    @@ -48487,7 +52209,7 @@ unsigned char matmul_id_q4_0_f32_fp32_data[] = {
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x3f,0x01,0x00,0x00,
     0x51,0x00,0x00,0x00,0x3e,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x40,0x01,0x00,0x00,
    -0x84,0x00,0x00,0x00,0x3f,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x84,0x00,0x00,0x00,0x3f,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x41,0x01,0x00,0x00,
     0x86,0x00,0x00,0x00,0x40,0x01,0x00,0x00,0x4e,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,
    @@ -48518,7 +52240,7 @@ unsigned char matmul_id_q4_0_f32_fp32_data[] = {
     0x06,0x00,0x00,0x00,0x93,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
     0x92,0x01,0x00,0x00,0x4e,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x96,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x4e,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x99,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
     0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0xb4,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    @@ -48687,7 +52409,7 @@ unsigned char matmul_id_q4_0_f32_fp32_data[] = {
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,
     0xb2,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xbe,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xbe,0x00,0x00,0x00,
     0xf8,0x00,0x02,0x00,0xbe,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
     0x06,0x00,0x00,0x00,0xcc,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
     0xa7,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,
    @@ -48728,7 +52450,7 @@ unsigned char matmul_id_q4_0_f32_fp32_data[] = {
     0xde,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xf4,0x00,0x00,0x00,0xf1,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,
    -0xf4,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0xf4,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,0xe2,0x02,0x00,0x00,
     0xf5,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xf8,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,0x50,0x00,0x00,0x00,
    @@ -49301,9 +53023,9 @@ unsigned char matmul_id_q4_1_f32_data[] = {
     0x44,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x4e,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x4e,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x4e,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
     0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    @@ -49403,7 +53125,7 @@ unsigned char matmul_id_q4_1_f32_data[] = {
     0x46,0x01,0x00,0x00,0x51,0x00,0x00,0x00,0x45,0x01,0x00,0x00,
     0x00,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x47,0x01,0x00,0x00,0x84,0x00,0x00,0x00,0x46,0x01,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x48,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0x47,0x01,0x00,0x00,
     0x4e,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x64,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    @@ -49435,7 +53157,7 @@ unsigned char matmul_id_q4_1_f32_data[] = {
     0x9c,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0x9b,0x01,0x00,0x00,
     0x4e,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x9f,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0xa2,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
     0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0xbd,0x01,0x00,0x00,0x84,0x00,0x00,0x00,0x42,0x00,0x00,0x00,
    @@ -49603,7 +53325,7 @@ unsigned char matmul_id_q4_1_f32_data[] = {
     0xb7,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xb9,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,
    -0xb9,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xb9,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
     0xbe,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xbe,0x00,0x00,0x00,
     0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xd8,0x02,0x00,0x00,
     0x20,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,
    @@ -49644,7 +53366,7 @@ unsigned char matmul_id_q4_1_f32_data[] = {
     0x55,0x00,0x00,0x00,0xea,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,0xf1,0x00,0x00,0x00,
     0xb7,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xf5,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0xf5,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,
     0xee,0x02,0x00,0x00,0xf5,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,
    @@ -52162,9 +55884,9 @@ unsigned char matmul_id_q4_1_f32_fp32_data[] = {
     0x43,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x54,0x00,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x59,0x00,0x00,0x00,
     0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,
    @@ -52264,7 +55986,7 @@ unsigned char matmul_id_q4_1_f32_fp32_data[] = {
     0x06,0x00,0x00,0x00,0x44,0x01,0x00,0x00,0x51,0x00,0x00,0x00,
     0x43,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x45,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    -0x44,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x44,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x46,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
     0x45,0x01,0x00,0x00,0x4e,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x62,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
    @@ -52295,7 +56017,7 @@ unsigned char matmul_id_q4_1_f32_fp32_data[] = {
     0x98,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0x97,0x01,0x00,0x00,
     0x4e,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x9b,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x9e,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
     0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0xb9,0x01,0x00,0x00,0x84,0x00,0x00,0x00,0x42,0x00,0x00,0x00,
    @@ -52462,7 +56184,7 @@ unsigned char matmul_id_q4_1_f32_fp32_data[] = {
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,
     0xb2,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xbe,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xbe,0x00,0x00,0x00,
     0xf8,0x00,0x02,0x00,0xbe,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
     0x06,0x00,0x00,0x00,0xd1,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
     0xa7,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,
    @@ -52503,7 +56225,7 @@ unsigned char matmul_id_q4_1_f32_fp32_data[] = {
     0xe3,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xf4,0x00,0x00,0x00,0xf1,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,
    -0xf4,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0xf4,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,0xe7,0x02,0x00,0x00,
     0xf5,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xf8,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,0x50,0x00,0x00,0x00,
    @@ -53085,9 +56807,9 @@ unsigned char matmul_id_q4_k_f32_data[] = {
     0x44,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x4e,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x4e,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x4e,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
     0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    @@ -53197,7 +56919,7 @@ unsigned char matmul_id_q4_k_f32_data[] = {
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xad,0x01,0x00,0x00,
     0x51,0x00,0x00,0x00,0xac,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xae,0x01,0x00,0x00,
    -0x84,0x00,0x00,0x00,0xad,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x84,0x00,0x00,0x00,0xad,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xaf,0x01,0x00,0x00,
     0x86,0x00,0x00,0x00,0xae,0x01,0x00,0x00,0x4e,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xcb,0x01,0x00,0x00,
    @@ -53229,7 +56951,7 @@ unsigned char matmul_id_q4_k_f32_data[] = {
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x03,0x02,0x00,0x00,
     0x86,0x00,0x00,0x00,0x02,0x02,0x00,0x00,0x4e,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x06,0x02,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x09,0x02,0x00,0x00,
     0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x24,0x02,0x00,0x00,
    @@ -53398,7 +57120,7 @@ unsigned char matmul_id_q4_k_f32_data[] = {
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,
     0xb2,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xbe,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xbe,0x00,0x00,0x00,
     0xf8,0x00,0x02,0x00,0xbe,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
     0x06,0x00,0x00,0x00,0x3f,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
     0xa7,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,
    @@ -53439,557 +57161,555 @@ unsigned char matmul_id_q4_k_f32_data[] = {
     0x51,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xf4,0x00,0x00,0x00,0xf1,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,
    -0xf4,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0xf4,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,0x55,0x03,0x00,0x00,
     0xf5,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xf8,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,0x50,0x00,0x00,0x00,
     0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,
    -0xf1,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x50,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x01,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,0x00,0x01,0x00,0x00,
    -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x05,0x01,0x00,0x00,
    -0xf8,0x00,0x00,0x00,0x04,0x01,0x00,0x00,0x89,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0xf8,0x00,0x00,0x00,
    -0x04,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x0c,0x01,0x00,0x00,0x08,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,
    -0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0f,0x01,0x00,0x00,
    -0x08,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,0x86,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x11,0x01,0x00,0x00,0x0f,0x01,0x00,0x00,
    -0x10,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x14,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x16,0x01,0x00,0x00,
    -0x14,0x01,0x00,0x00,0x11,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x19,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,
    +0xf1,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,
    +0x50,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x05,0x01,0x00,0x00,0xf8,0x00,0x00,0x00,0x04,0x01,0x00,0x00,
    +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x08,0x01,0x00,0x00,
    +0xf8,0x00,0x00,0x00,0x04,0x01,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,0x08,0x01,0x00,0x00,
     0x0b,0x01,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x1b,0x01,0x00,0x00,0x08,0x01,0x00,0x00,0x10,0x01,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,
    -0x1b,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x1d,0x01,0x00,0x00,0x19,0x01,0x00,0x00,
    -0x1c,0x01,0x00,0x00,0x41,0x00,0x07,0x00,0x2d,0x01,0x00,0x00,
    -0x2e,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    -0x05,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x22,0x01,0x00,0x00,0x2f,0x01,0x00,0x00,0x2e,0x01,0x00,0x00,
    -0x73,0x00,0x04,0x00,0x1e,0x01,0x00,0x00,0x30,0x01,0x00,0x00,
    -0x2f,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0x33,0x01,0x00,0x00,0x16,0x01,0x00,0x00,0x32,0x01,0x00,0x00,
    -0xf7,0x00,0x03,0x00,0x35,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x33,0x01,0x00,0x00,0x34,0x01,0x00,0x00,
    -0x4f,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x34,0x01,0x00,0x00,
    -0x41,0x00,0x08,0x00,0x3a,0x01,0x00,0x00,0x3b,0x01,0x00,0x00,
    +0x0f,0x01,0x00,0x00,0x08,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x11,0x01,0x00,0x00,
    +0x0f,0x01,0x00,0x00,0x10,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x14,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x0c,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x16,0x01,0x00,0x00,0x14,0x01,0x00,0x00,0x11,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x19,0x01,0x00,0x00,
    +0x0c,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,0x89,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x1b,0x01,0x00,0x00,0x08,0x01,0x00,0x00,
    +0x10,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x1c,0x01,0x00,0x00,0x1b,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1d,0x01,0x00,0x00,
    +0x19,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,0x41,0x00,0x07,0x00,
    +0x2d,0x01,0x00,0x00,0x2e,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,
    +0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x22,0x01,0x00,0x00,0x2f,0x01,0x00,0x00,
    +0x2e,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x1e,0x01,0x00,0x00,
    +0x30,0x01,0x00,0x00,0x2f,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x33,0x01,0x00,0x00,0x16,0x01,0x00,0x00,
    +0x32,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,0x35,0x01,0x00,0x00,
    +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x33,0x01,0x00,0x00,
    +0x34,0x01,0x00,0x00,0x4f,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x34,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x3a,0x01,0x00,0x00,
    +0x3b,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    +0x05,0x01,0x00,0x00,0x9a,0x00,0x00,0x00,0x16,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x23,0x01,0x00,0x00,0x3c,0x01,0x00,0x00,
    +0x3b,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x3d,0x01,0x00,0x00,0x3c,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    +0x14,0x00,0x00,0x00,0x3e,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,
    +0xc7,0x00,0x05,0x00,0x14,0x00,0x00,0x00,0x40,0x01,0x00,0x00,
    +0x3e,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,0x72,0x00,0x04,0x00,
    +0x41,0x01,0x00,0x00,0x42,0x01,0x00,0x00,0x40,0x01,0x00,0x00,
    +0x7c,0x00,0x04,0x00,0x23,0x01,0x00,0x00,0x43,0x01,0x00,0x00,
    +0x42,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x47,0x01,0x00,0x00,0x16,0x01,0x00,0x00,0x32,0x01,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x3a,0x01,0x00,0x00,0x48,0x01,0x00,0x00,
     0x2b,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0x16,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x23,0x01,0x00,0x00,0x3c,0x01,0x00,0x00,0x3b,0x01,0x00,0x00,
    -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x3d,0x01,0x00,0x00,
    -0x3c,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    -0x3e,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
    -0x14,0x00,0x00,0x00,0x40,0x01,0x00,0x00,0x3e,0x01,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0x47,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x23,0x01,0x00,0x00,0x49,0x01,0x00,0x00,0x48,0x01,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4a,0x01,0x00,0x00,
    +0x49,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    +0x4b,0x01,0x00,0x00,0x4a,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
    +0x14,0x00,0x00,0x00,0x4c,0x01,0x00,0x00,0x4b,0x01,0x00,0x00,
     0x3f,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x41,0x01,0x00,0x00,
    -0x42,0x01,0x00,0x00,0x40,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    -0x23,0x01,0x00,0x00,0x43,0x01,0x00,0x00,0x42,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x47,0x01,0x00,0x00,
    -0x16,0x01,0x00,0x00,0x32,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x3a,0x01,0x00,0x00,0x48,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,
    -0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0x47,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x23,0x01,0x00,0x00,
    -0x49,0x01,0x00,0x00,0x48,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x4a,0x01,0x00,0x00,0x49,0x01,0x00,0x00,
    -0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x4b,0x01,0x00,0x00,
    -0x4a,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x14,0x00,0x00,0x00,
    -0x4c,0x01,0x00,0x00,0x4b,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,
    -0x72,0x00,0x04,0x00,0x41,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,
    -0x4c,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x23,0x01,0x00,0x00,
    -0x4e,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x35,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x4f,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x52,0x01,0x00,0x00,
    -0x16,0x01,0x00,0x00,0x32,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x3a,0x01,0x00,0x00,0x53,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,
    -0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0x52,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x23,0x01,0x00,0x00,
    -0x54,0x01,0x00,0x00,0x53,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x55,0x01,0x00,0x00,0x54,0x01,0x00,0x00,
    -0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x56,0x01,0x00,0x00,
    -0x55,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x14,0x00,0x00,0x00,
    -0x58,0x01,0x00,0x00,0x56,0x01,0x00,0x00,0x57,0x01,0x00,0x00,
    -0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5b,0x01,0x00,0x00,
    -0x16,0x01,0x00,0x00,0x32,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x3a,0x01,0x00,0x00,0x5c,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,
    -0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0x5b,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x23,0x01,0x00,0x00,
    -0x5d,0x01,0x00,0x00,0x5c,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,
    -0x23,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,0x5d,0x01,0x00,0x00,
    -0xaf,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x23,0x01,0x00,0x00,
    -0x60,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,0x5f,0x01,0x00,0x00,
    -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x61,0x01,0x00,0x00,
    -0x60,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    -0x62,0x01,0x00,0x00,0x61,0x01,0x00,0x00,0xc5,0x00,0x05,0x00,
    -0x14,0x00,0x00,0x00,0x63,0x01,0x00,0x00,0x58,0x01,0x00,0x00,
    -0x62,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x41,0x01,0x00,0x00,
    -0x64,0x01,0x00,0x00,0x63,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    -0x23,0x01,0x00,0x00,0x65,0x01,0x00,0x00,0x64,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x23,0x01,0x00,0x00,0x6a,0x01,0x00,0x00,
    -0x53,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x23,0x01,0x00,0x00,
    -0x6b,0x01,0x00,0x00,0x6a,0x01,0x00,0x00,0x5f,0x01,0x00,0x00,
    -0x41,0x00,0x08,0x00,0x3a,0x01,0x00,0x00,0x6e,0x01,0x00,0x00,
    -0x2b,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0x16,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x23,0x01,0x00,0x00,0x6f,0x01,0x00,0x00,0x6e,0x01,0x00,0x00,
    -0xc2,0x00,0x05,0x00,0x23,0x01,0x00,0x00,0x70,0x01,0x00,0x00,
    -0x6f,0x01,0x00,0x00,0xaf,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,
    -0x23,0x01,0x00,0x00,0x71,0x01,0x00,0x00,0x70,0x01,0x00,0x00,
    -0x5f,0x01,0x00,0x00,0xc5,0x00,0x05,0x00,0x23,0x01,0x00,0x00,
    -0x72,0x01,0x00,0x00,0x6b,0x01,0x00,0x00,0x71,0x01,0x00,0x00,
    +0x4d,0x01,0x00,0x00,0x4c,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    +0x23,0x01,0x00,0x00,0x4e,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,
     0xf9,0x00,0x02,0x00,0x35,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x35,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x23,0x01,0x00,0x00,
    -0x78,0x03,0x00,0x00,0x4e,0x01,0x00,0x00,0x34,0x01,0x00,0x00,
    -0x72,0x01,0x00,0x00,0x4f,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x23,0x01,0x00,0x00,0x77,0x03,0x00,0x00,0x43,0x01,0x00,0x00,
    -0x34,0x01,0x00,0x00,0x65,0x01,0x00,0x00,0x4f,0x01,0x00,0x00,
    -0x51,0x00,0x05,0x00,0xcf,0x00,0x00,0x00,0x75,0x01,0x00,0x00,
    -0x30,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x04,0x00,
    -0xcf,0x00,0x00,0x00,0x77,0x01,0x00,0x00,0x77,0x03,0x00,0x00,
    -0x85,0x00,0x05,0x00,0xcf,0x00,0x00,0x00,0x78,0x01,0x00,0x00,
    -0x75,0x01,0x00,0x00,0x77,0x01,0x00,0x00,0x51,0x00,0x05,0x00,
    -0xcf,0x00,0x00,0x00,0x7b,0x01,0x00,0x00,0x30,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x70,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    -0x7d,0x01,0x00,0x00,0x78,0x03,0x00,0x00,0x85,0x00,0x05,0x00,
    -0xcf,0x00,0x00,0x00,0x7e,0x01,0x00,0x00,0x7b,0x01,0x00,0x00,
    -0x7d,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x3a,0x01,0x00,0x00,
    -0x88,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    -0x05,0x01,0x00,0x00,0xaa,0x00,0x00,0x00,0x1d,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x23,0x01,0x00,0x00,0x89,0x01,0x00,0x00,
    -0x88,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x8b,0x01,0x00,0x00,0x11,0x01,0x00,0x00,0x32,0x01,0x00,0x00,
    -0xc2,0x00,0x05,0x00,0x23,0x01,0x00,0x00,0x8c,0x01,0x00,0x00,
    -0x89,0x01,0x00,0x00,0x8b,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x8d,0x01,0x00,0x00,0x8c,0x01,0x00,0x00,
    -0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x8e,0x01,0x00,0x00,
    -0x8d,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x14,0x00,0x00,0x00,
    -0x8f,0x01,0x00,0x00,0x8e,0x01,0x00,0x00,0x57,0x01,0x00,0x00,
    -0x6f,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0x90,0x01,0x00,0x00,
    -0x8f,0x01,0x00,0x00,0x7f,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    -0xb4,0x03,0x00,0x00,0x7e,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,
    -0xcf,0x00,0x00,0x00,0x93,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x32,0x00,0x00,0x00,0x78,0x01,0x00,0x00,0x90,0x01,0x00,0x00,
    -0xb4,0x03,0x00,0x00,0x73,0x00,0x04,0x00,0x21,0x01,0x00,0x00,
    -0x94,0x01,0x00,0x00,0x93,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x95,0x01,0x00,0x00,0x96,0x01,0x00,0x00,0x83,0x01,0x00,0x00,
    -0x01,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x96,0x01,0x00,0x00,
    -0x94,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x98,0x01,0x00,0x00,0x01,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9c,0x01,0x00,0x00,
    -0x1d,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x3a,0x01,0x00,0x00,0x9d,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,
    +0x4f,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x52,0x01,0x00,0x00,0x16,0x01,0x00,0x00,0x32,0x01,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x3a,0x01,0x00,0x00,0x53,0x01,0x00,0x00,
    +0x2b,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0x52,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x23,0x01,0x00,0x00,0x54,0x01,0x00,0x00,0x53,0x01,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x55,0x01,0x00,0x00,
    +0x54,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    +0x56,0x01,0x00,0x00,0x55,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
    +0x14,0x00,0x00,0x00,0x58,0x01,0x00,0x00,0x56,0x01,0x00,0x00,
    +0x57,0x01,0x00,0x00,0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x5b,0x01,0x00,0x00,0x16,0x01,0x00,0x00,0x32,0x01,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x3a,0x01,0x00,0x00,0x5c,0x01,0x00,0x00,
    +0x2b,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0x5b,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x23,0x01,0x00,0x00,0x5d,0x01,0x00,0x00,0x5c,0x01,0x00,0x00,
    +0xc2,0x00,0x05,0x00,0x23,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,
    +0x5d,0x01,0x00,0x00,0xaf,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,
    +0x23,0x01,0x00,0x00,0x60,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,
    +0x5f,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x61,0x01,0x00,0x00,0x60,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    +0x14,0x00,0x00,0x00,0x62,0x01,0x00,0x00,0x61,0x01,0x00,0x00,
    +0xc5,0x00,0x05,0x00,0x14,0x00,0x00,0x00,0x63,0x01,0x00,0x00,
    +0x58,0x01,0x00,0x00,0x62,0x01,0x00,0x00,0x72,0x00,0x04,0x00,
    +0x41,0x01,0x00,0x00,0x64,0x01,0x00,0x00,0x63,0x01,0x00,0x00,
    +0x7c,0x00,0x04,0x00,0x23,0x01,0x00,0x00,0x65,0x01,0x00,0x00,
    +0x64,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x23,0x01,0x00,0x00,
    +0x6a,0x01,0x00,0x00,0x53,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,
    +0x23,0x01,0x00,0x00,0x6b,0x01,0x00,0x00,0x6a,0x01,0x00,0x00,
    +0x5f,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x3a,0x01,0x00,0x00,
    +0x6e,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    +0x05,0x01,0x00,0x00,0x9a,0x00,0x00,0x00,0x16,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x23,0x01,0x00,0x00,0x6f,0x01,0x00,0x00,
    +0x6e,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x23,0x01,0x00,0x00,
    +0x70,0x01,0x00,0x00,0x6f,0x01,0x00,0x00,0xaf,0x00,0x00,0x00,
    +0xc4,0x00,0x05,0x00,0x23,0x01,0x00,0x00,0x71,0x01,0x00,0x00,
    +0x70,0x01,0x00,0x00,0x5f,0x01,0x00,0x00,0xc5,0x00,0x05,0x00,
    +0x23,0x01,0x00,0x00,0x72,0x01,0x00,0x00,0x6b,0x01,0x00,0x00,
    +0x71,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x35,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x35,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x23,0x01,0x00,0x00,0x78,0x03,0x00,0x00,0x4e,0x01,0x00,0x00,
    +0x34,0x01,0x00,0x00,0x72,0x01,0x00,0x00,0x4f,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x23,0x01,0x00,0x00,0x77,0x03,0x00,0x00,
    +0x43,0x01,0x00,0x00,0x34,0x01,0x00,0x00,0x65,0x01,0x00,0x00,
    +0x4f,0x01,0x00,0x00,0x51,0x00,0x05,0x00,0xcf,0x00,0x00,0x00,
    +0x75,0x01,0x00,0x00,0x30,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x70,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0x77,0x01,0x00,0x00,
    +0x77,0x03,0x00,0x00,0x85,0x00,0x05,0x00,0xcf,0x00,0x00,0x00,
    +0x78,0x01,0x00,0x00,0x75,0x01,0x00,0x00,0x77,0x01,0x00,0x00,
    +0x51,0x00,0x05,0x00,0xcf,0x00,0x00,0x00,0x7b,0x01,0x00,0x00,
    +0x30,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x70,0x00,0x04,0x00,
    +0xcf,0x00,0x00,0x00,0x7d,0x01,0x00,0x00,0x78,0x03,0x00,0x00,
    +0x85,0x00,0x05,0x00,0xcf,0x00,0x00,0x00,0x7e,0x01,0x00,0x00,
    +0x7b,0x01,0x00,0x00,0x7d,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x3a,0x01,0x00,0x00,0x88,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,
     0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0xaa,0x00,0x00,0x00,
    -0x9c,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x23,0x01,0x00,0x00,
    -0x9e,0x01,0x00,0x00,0x9d,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,
    -0x23,0x01,0x00,0x00,0xa1,0x01,0x00,0x00,0x9e,0x01,0x00,0x00,
    -0x8b,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0xa2,0x01,0x00,0x00,0xa1,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    -0x14,0x00,0x00,0x00,0xa3,0x01,0x00,0x00,0xa2,0x01,0x00,0x00,
    -0xc7,0x00,0x05,0x00,0x14,0x00,0x00,0x00,0xa4,0x01,0x00,0x00,
    -0xa3,0x01,0x00,0x00,0x57,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,
    -0xcf,0x00,0x00,0x00,0xa5,0x01,0x00,0x00,0xa4,0x01,0x00,0x00,
    -0x0c,0x00,0x08,0x00,0xcf,0x00,0x00,0x00,0xa8,0x01,0x00,0x00,
    +0x1d,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x23,0x01,0x00,0x00,
    +0x89,0x01,0x00,0x00,0x88,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x8b,0x01,0x00,0x00,0x11,0x01,0x00,0x00,
    +0x32,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x23,0x01,0x00,0x00,
    +0x8c,0x01,0x00,0x00,0x89,0x01,0x00,0x00,0x8b,0x01,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x8d,0x01,0x00,0x00,
    +0x8c,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    +0x8e,0x01,0x00,0x00,0x8d,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
    +0x14,0x00,0x00,0x00,0x8f,0x01,0x00,0x00,0x8e,0x01,0x00,0x00,
    +0x57,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    +0x90,0x01,0x00,0x00,0x8f,0x01,0x00,0x00,0x7f,0x00,0x04,0x00,
    +0xcf,0x00,0x00,0x00,0xb4,0x03,0x00,0x00,0x7e,0x01,0x00,0x00,
    +0x0c,0x00,0x08,0x00,0xcf,0x00,0x00,0x00,0x93,0x01,0x00,0x00,
     0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x78,0x01,0x00,0x00,
    -0xa5,0x01,0x00,0x00,0xb4,0x03,0x00,0x00,0x73,0x00,0x04,0x00,
    -0x21,0x01,0x00,0x00,0xa9,0x01,0x00,0x00,0xa8,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x95,0x01,0x00,0x00,0xaa,0x01,0x00,0x00,
    -0x83,0x01,0x00,0x00,0x98,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0xaa,0x01,0x00,0x00,0xa9,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xe9,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xe9,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb1,0x01,0x00,0x00,
    -0x51,0x03,0x00,0x00,0xaf,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xe6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xe8,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xb3,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xb3,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x52,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,
    -0x05,0x02,0x00,0x00,0xb6,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0xb9,0x01,0x00,0x00,0x52,0x03,0x00,0x00,
    -0xa2,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xb5,0x01,0x00,0x00,
    -0xb6,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xb9,0x01,0x00,0x00,0xb4,0x01,0x00,0x00,0xb5,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xb4,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xbe,0x01,0x00,0x00,0xa3,0x00,0x00,0x00,
    -0x5f,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xc0,0x01,0x00,0x00,0xbe,0x01,0x00,0x00,0x52,0x03,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xc3,0x01,0x00,0x00,
    -0xc0,0x01,0x00,0x00,0x3e,0x03,0x00,0x00,0xf7,0x00,0x03,0x00,
    -0xc5,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xc3,0x01,0x00,0x00,0xc4,0x01,0x00,0x00,0xf7,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xc4,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x97,0x00,0x00,0x00,0xc9,0x01,0x00,0x00,0x90,0x00,0x00,0x00,
    -0xc0,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,
    -0xca,0x01,0x00,0x00,0xc9,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xd2,0x01,0x00,0x00,0x5f,0x00,0x00,0x00,
    +0x90,0x01,0x00,0x00,0xb4,0x03,0x00,0x00,0x73,0x00,0x04,0x00,
    +0x21,0x01,0x00,0x00,0x94,0x01,0x00,0x00,0x93,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x95,0x01,0x00,0x00,0x96,0x01,0x00,0x00,
    +0x83,0x01,0x00,0x00,0x01,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x96,0x01,0x00,0x00,0x94,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x98,0x01,0x00,0x00,0x01,0x01,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x9c,0x01,0x00,0x00,0x1d,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x3a,0x01,0x00,0x00,0x9d,0x01,0x00,0x00,
    +0x2b,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,
    +0xaa,0x00,0x00,0x00,0x9c,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x23,0x01,0x00,0x00,0x9e,0x01,0x00,0x00,0x9d,0x01,0x00,0x00,
    +0xc2,0x00,0x05,0x00,0x23,0x01,0x00,0x00,0xa1,0x01,0x00,0x00,
    +0x9e,0x01,0x00,0x00,0x8b,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0xa2,0x01,0x00,0x00,0xa1,0x01,0x00,0x00,
    +0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0xa3,0x01,0x00,0x00,
    +0xa2,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x14,0x00,0x00,0x00,
    +0xa4,0x01,0x00,0x00,0xa3,0x01,0x00,0x00,0x57,0x01,0x00,0x00,
    +0x6f,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0xa5,0x01,0x00,0x00,
    +0xa4,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0xcf,0x00,0x00,0x00,
    +0xa8,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,
    +0x78,0x01,0x00,0x00,0xa5,0x01,0x00,0x00,0xb4,0x03,0x00,0x00,
    +0x73,0x00,0x04,0x00,0x21,0x01,0x00,0x00,0xa9,0x01,0x00,0x00,
    +0xa8,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x95,0x01,0x00,0x00,
    +0xaa,0x01,0x00,0x00,0x83,0x01,0x00,0x00,0x98,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0xaa,0x01,0x00,0x00,0xa9,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xe9,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xe9,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xb1,0x01,0x00,0x00,0x51,0x03,0x00,0x00,0xaf,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xe6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xe8,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xb3,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xb3,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x52,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    +0xe8,0x00,0x00,0x00,0x05,0x02,0x00,0x00,0xb6,0x01,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xb9,0x01,0x00,0x00,
    +0x52,0x03,0x00,0x00,0xa2,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xb5,0x01,0x00,0x00,0xb6,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xb9,0x01,0x00,0x00,0xb4,0x01,0x00,0x00,
    +0xb5,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xb4,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbe,0x01,0x00,0x00,
    +0xa3,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xc0,0x01,0x00,0x00,0xbe,0x01,0x00,0x00,
    +0x52,0x03,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0xc3,0x01,0x00,0x00,0xc0,0x01,0x00,0x00,0x3e,0x03,0x00,0x00,
    +0xf7,0x00,0x03,0x00,0xc5,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xc3,0x01,0x00,0x00,0xc4,0x01,0x00,0x00,
    +0xf7,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xc4,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x97,0x00,0x00,0x00,0xc9,0x01,0x00,0x00,
    +0x90,0x00,0x00,0x00,0xc0,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x8c,0x00,0x00,0x00,0xca,0x01,0x00,0x00,0xc9,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd2,0x01,0x00,0x00,
    +0x5f,0x00,0x00,0x00,0x52,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xd4,0x01,0x00,0x00,0xd2,0x01,0x00,0x00,
    +0xd3,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xd6,0x01,0x00,0x00,0xd4,0x01,0x00,0x00,0x5a,0x00,0x00,0x00,
    +0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,0xde,0x01,0x00,0x00,
    +0xca,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0xdf,0x01,0x00,0x00,0xde,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0xe1,0x01,0x00,0x00,
    +0x13,0x00,0x00,0x00,0xe0,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0xe2,0x01,0x00,0x00,0xe1,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe3,0x01,0x00,0x00,
    +0xdf,0x01,0x00,0x00,0xe2,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xe4,0x01,0x00,0x00,0x59,0x03,0x00,0x00,
    +0xe3,0x01,0x00,0x00,0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,
    +0xe6,0x01,0x00,0x00,0xca,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xe7,0x01,0x00,0x00,
    +0xe6,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
    +0xe9,0x01,0x00,0x00,0x13,0x00,0x00,0x00,0xe8,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xea,0x01,0x00,0x00,
    +0xe9,0x01,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xeb,0x01,0x00,0x00,0xe7,0x01,0x00,0x00,0xea,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0xec,0x01,0x00,0x00,
    +0x13,0x00,0x00,0x00,0x5f,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0xed,0x01,0x00,0x00,0xec,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xee,0x01,0x00,0x00,
    +0xeb,0x01,0x00,0x00,0xed,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xef,0x01,0x00,0x00,0xe4,0x01,0x00,0x00,
    +0xee,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xf1,0x01,0x00,0x00,0xef,0x01,0x00,0x00,0x5a,0x00,0x00,0x00,
    +0x41,0x00,0x06,0x00,0xf2,0x01,0x00,0x00,0xf3,0x01,0x00,0x00,
    +0xda,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0xf1,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0xf4,0x01,0x00,0x00,
    +0xf3,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x21,0x01,0x00,0x00,
    +0xf5,0x01,0x00,0x00,0xf4,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x95,0x01,0x00,0x00,0xf6,0x01,0x00,0x00,0xcf,0x01,0x00,0x00,
    +0xd6,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xf6,0x01,0x00,0x00,
    +0xf5,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xc5,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xf7,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xfa,0x01,0x00,0x00,0x5f,0x00,0x00,0x00,
     0x52,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xd4,0x01,0x00,0x00,0xd2,0x01,0x00,0x00,0xd3,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd6,0x01,0x00,0x00,
    -0xd4,0x01,0x00,0x00,0x5a,0x00,0x00,0x00,0x51,0x00,0x05,0x00,
    -0x8b,0x00,0x00,0x00,0xde,0x01,0x00,0x00,0xca,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0xdf,0x01,0x00,0x00,0xde,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x16,0x00,0x00,0x00,0xe1,0x01,0x00,0x00,0x13,0x00,0x00,0x00,
    -0xe0,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0xe2,0x01,0x00,0x00,0xe1,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xe3,0x01,0x00,0x00,0xdf,0x01,0x00,0x00,
    -0xe2,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xe4,0x01,0x00,0x00,0x59,0x03,0x00,0x00,0xe3,0x01,0x00,0x00,
    -0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,0xe6,0x01,0x00,0x00,
    -0xca,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0xe7,0x01,0x00,0x00,0xe6,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0xe9,0x01,0x00,0x00,
    -0x13,0x00,0x00,0x00,0xe8,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0xea,0x01,0x00,0x00,0xe9,0x01,0x00,0x00,
    -0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xeb,0x01,0x00,0x00,
    -0xe7,0x01,0x00,0x00,0xea,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x16,0x00,0x00,0x00,0xec,0x01,0x00,0x00,0x13,0x00,0x00,0x00,
    -0x5f,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0xed,0x01,0x00,0x00,0xec,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xee,0x01,0x00,0x00,0xeb,0x01,0x00,0x00,
    -0xed,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xef,0x01,0x00,0x00,0xe4,0x01,0x00,0x00,0xee,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf1,0x01,0x00,0x00,
    -0xef,0x01,0x00,0x00,0x5a,0x00,0x00,0x00,0x41,0x00,0x06,0x00,
    -0xf2,0x01,0x00,0x00,0xf3,0x01,0x00,0x00,0xda,0x01,0x00,0x00,
    -0x15,0x00,0x00,0x00,0xf1,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xcf,0x00,0x00,0x00,0xf4,0x01,0x00,0x00,0xf3,0x01,0x00,0x00,
    -0x73,0x00,0x04,0x00,0x21,0x01,0x00,0x00,0xf5,0x01,0x00,0x00,
    -0xf4,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x95,0x01,0x00,0x00,
    -0xf6,0x01,0x00,0x00,0xcf,0x01,0x00,0x00,0xd6,0x01,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0xf6,0x01,0x00,0x00,0xf5,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xc5,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xf7,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xfa,0x01,0x00,0x00,0x5f,0x00,0x00,0x00,0x52,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfc,0x01,0x00,0x00,
    -0xfa,0x01,0x00,0x00,0xfb,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xfe,0x01,0x00,0x00,0xfc,0x01,0x00,0x00,
    -0x5a,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x95,0x01,0x00,0x00,
    -0x00,0x02,0x00,0x00,0xcf,0x01,0x00,0x00,0xfe,0x01,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x00,0x02,0x00,0x00,0xff,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xc5,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xc5,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xb6,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xb6,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x05,0x02,0x00,0x00,0x52,0x03,0x00,0x00,
    -0x03,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xb3,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xb5,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,
    -0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x08,0x02,0x00,0x00,
    -0x55,0x03,0x00,0x00,0x06,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x0b,0x02,0x00,0x00,0x59,0x03,0x00,0x00,
    -0x09,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x0d,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x0d,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x5b,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    -0xb5,0x01,0x00,0x00,0xb7,0x02,0x00,0x00,0x10,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x13,0x02,0x00,0x00,
    -0x5b,0x03,0x00,0x00,0x4e,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x0f,0x02,0x00,0x00,0x10,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x13,0x02,0x00,0x00,0x0e,0x02,0x00,0x00,
    -0x0f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x0e,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x15,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x15,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x5f,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0x0e,0x02,0x00,0x00,
    -0x41,0x02,0x00,0x00,0x18,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0x1b,0x02,0x00,0x00,0x5f,0x03,0x00,0x00,
    -0x42,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x17,0x02,0x00,0x00,
    -0x18,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x1b,0x02,0x00,0x00,0x16,0x02,0x00,0x00,0x17,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x16,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x1d,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x1d,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x71,0x03,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x16,0x02,0x00,0x00,0x3f,0x02,0x00,0x00,
    -0x1e,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0x23,0x02,0x00,0x00,0x71,0x03,0x00,0x00,0x44,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x1f,0x02,0x00,0x00,0x1e,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x23,0x02,0x00,0x00,
    -0x1e,0x02,0x00,0x00,0x1f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x1e,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x29,0x02,0x00,0x00,0x5f,0x03,0x00,0x00,0x44,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2b,0x02,0x00,0x00,
    -0x29,0x02,0x00,0x00,0x71,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x2d,0x02,0x00,0x00,0x37,0x00,0x00,0x00,
    -0x35,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x2f,0x02,0x00,0x00,0x5f,0x03,0x00,0x00,0x43,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x30,0x02,0x00,0x00,
    -0x2d,0x02,0x00,0x00,0x2f,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x32,0x02,0x00,0x00,0x46,0x00,0x00,0x00,
    +0xfc,0x01,0x00,0x00,0xfa,0x01,0x00,0x00,0xfb,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfe,0x01,0x00,0x00,
    +0xfc,0x01,0x00,0x00,0x5a,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x95,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0xcf,0x01,0x00,0x00,
    +0xfe,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x00,0x02,0x00,0x00,
    +0xff,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xc5,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xc5,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xb6,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xb6,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x05,0x02,0x00,0x00,
    +0x52,0x03,0x00,0x00,0x03,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xb3,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xb5,0x01,0x00,0x00,
    +0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0xa0,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x08,0x02,0x00,0x00,0x55,0x03,0x00,0x00,0x06,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0b,0x02,0x00,0x00,
    +0x59,0x03,0x00,0x00,0x09,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x0d,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x0d,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x5b,0x03,0x00,0x00,
    +0x20,0x00,0x00,0x00,0xb5,0x01,0x00,0x00,0xb7,0x02,0x00,0x00,
    +0x10,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0x13,0x02,0x00,0x00,0x5b,0x03,0x00,0x00,0x4e,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x0f,0x02,0x00,0x00,0x10,0x02,0x00,0x00,
    +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x13,0x02,0x00,0x00,
    +0x0e,0x02,0x00,0x00,0x0f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x0e,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x15,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x15,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x5f,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x0e,0x02,0x00,0x00,0x41,0x02,0x00,0x00,0x18,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x1b,0x02,0x00,0x00,
    +0x5f,0x03,0x00,0x00,0x42,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x17,0x02,0x00,0x00,0x18,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x1b,0x02,0x00,0x00,0x16,0x02,0x00,0x00,
    +0x17,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x16,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x1d,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x1d,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x71,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0x16,0x02,0x00,0x00,
    +0x3f,0x02,0x00,0x00,0x1e,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x23,0x02,0x00,0x00,0x71,0x03,0x00,0x00,
    +0x44,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x1f,0x02,0x00,0x00,
    +0x1e,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x23,0x02,0x00,0x00,0x1e,0x02,0x00,0x00,0x1f,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x1e,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x29,0x02,0x00,0x00,0x5f,0x03,0x00,0x00,
     0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x33,0x02,0x00,0x00,0x30,0x02,0x00,0x00,0x32,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x35,0x02,0x00,0x00,
    -0x33,0x02,0x00,0x00,0x71,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x37,0x02,0x00,0x00,0x35,0x02,0x00,0x00,
    -0x36,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x39,0x02,0x00,0x00,0x37,0x02,0x00,0x00,0x5b,0x03,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x95,0x01,0x00,0x00,0x3a,0x02,0x00,0x00,
    -0x83,0x01,0x00,0x00,0x39,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x21,0x01,0x00,0x00,0x3b,0x02,0x00,0x00,0x3a,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x3c,0x02,0x00,0x00,0x3d,0x02,0x00,0x00,
    -0x27,0x02,0x00,0x00,0x2b,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x3d,0x02,0x00,0x00,0x3b,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x3f,0x02,0x00,0x00,0x71,0x03,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x1d,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x1f,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x18,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x18,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x41,0x02,0x00,0x00,
    -0x5f,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x15,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x17,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x43,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x43,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x60,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0x17,0x02,0x00,0x00,
    -0x6f,0x02,0x00,0x00,0x46,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0x49,0x02,0x00,0x00,0x60,0x03,0x00,0x00,
    -0xcb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x45,0x02,0x00,0x00,
    -0x46,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x49,0x02,0x00,0x00,0x44,0x02,0x00,0x00,0x45,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x44,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x4b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x4b,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x6e,0x03,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x44,0x02,0x00,0x00,0x6d,0x02,0x00,0x00,
    -0x4c,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0x51,0x02,0x00,0x00,0x6e,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x4d,0x02,0x00,0x00,0x4c,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x51,0x02,0x00,0x00,
    -0x4c,0x02,0x00,0x00,0x4d,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x4c,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x57,0x02,0x00,0x00,0x60,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x59,0x02,0x00,0x00,
    -0x57,0x02,0x00,0x00,0x6e,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x5b,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,
    -0xc5,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x5e,0x02,0x00,0x00,0x60,0x03,0x00,0x00,0x5d,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5f,0x02,0x00,0x00,
    -0x5b,0x02,0x00,0x00,0x5e,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x61,0x02,0x00,0x00,0x4a,0x00,0x00,0x00,
    +0x2b,0x02,0x00,0x00,0x29,0x02,0x00,0x00,0x71,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2d,0x02,0x00,0x00,
    +0x37,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x2f,0x02,0x00,0x00,0x5f,0x03,0x00,0x00,
    +0x43,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x30,0x02,0x00,0x00,0x2d,0x02,0x00,0x00,0x2f,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x32,0x02,0x00,0x00,
    +0x46,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x33,0x02,0x00,0x00,0x30,0x02,0x00,0x00,
    +0x32,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x35,0x02,0x00,0x00,0x33,0x02,0x00,0x00,0x71,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x37,0x02,0x00,0x00,
    +0x35,0x02,0x00,0x00,0x36,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x39,0x02,0x00,0x00,0x37,0x02,0x00,0x00,
    +0x5b,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x95,0x01,0x00,0x00,
    +0x3a,0x02,0x00,0x00,0x83,0x01,0x00,0x00,0x39,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x21,0x01,0x00,0x00,0x3b,0x02,0x00,0x00,
    +0x3a,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x3c,0x02,0x00,0x00,
    +0x3d,0x02,0x00,0x00,0x27,0x02,0x00,0x00,0x2b,0x02,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x3d,0x02,0x00,0x00,0x3b,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3f,0x02,0x00,0x00,
    +0x71,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x1d,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x1f,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x18,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x18,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x41,0x02,0x00,0x00,0x5f,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x15,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x17,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x43,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x43,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x60,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x17,0x02,0x00,0x00,0x6f,0x02,0x00,0x00,0x46,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x49,0x02,0x00,0x00,
    +0x60,0x03,0x00,0x00,0xcb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x45,0x02,0x00,0x00,0x46,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x49,0x02,0x00,0x00,0x44,0x02,0x00,0x00,
    +0x45,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x44,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x4b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x4b,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x6e,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0x44,0x02,0x00,0x00,
    +0x6d,0x02,0x00,0x00,0x4c,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x51,0x02,0x00,0x00,0x6e,0x03,0x00,0x00,
    +0xc8,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x4d,0x02,0x00,0x00,
    +0x4c,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x51,0x02,0x00,0x00,0x4c,0x02,0x00,0x00,0x4d,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x4c,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x57,0x02,0x00,0x00,0x60,0x03,0x00,0x00,
     0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x62,0x02,0x00,0x00,0x5f,0x02,0x00,0x00,0x61,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x64,0x02,0x00,0x00,
    -0x62,0x02,0x00,0x00,0x6e,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x66,0x02,0x00,0x00,0x64,0x02,0x00,0x00,
    -0x65,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x68,0x02,0x00,0x00,0x66,0x02,0x00,0x00,0x5b,0x03,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x95,0x01,0x00,0x00,0x69,0x02,0x00,0x00,
    -0xcf,0x01,0x00,0x00,0x68,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x21,0x01,0x00,0x00,0x6a,0x02,0x00,0x00,0x69,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x3c,0x02,0x00,0x00,0x6b,0x02,0x00,0x00,
    -0x55,0x02,0x00,0x00,0x59,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x6b,0x02,0x00,0x00,0x6a,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x6d,0x02,0x00,0x00,0x6e,0x03,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x4b,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x4d,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x46,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x46,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6f,0x02,0x00,0x00,
    -0x60,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x43,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x45,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x71,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x71,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x61,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0x45,0x02,0x00,0x00,
    -0xb5,0x02,0x00,0x00,0x74,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0x77,0x02,0x00,0x00,0x61,0x03,0x00,0x00,
    -0xcb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x73,0x02,0x00,0x00,
    -0x74,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x77,0x02,0x00,0x00,0x72,0x02,0x00,0x00,0x73,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x72,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x79,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x79,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x65,0x03,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x72,0x02,0x00,0x00,0xb3,0x02,0x00,0x00,
    -0x7c,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0x7f,0x02,0x00,0x00,0x65,0x03,0x00,0x00,0x42,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x7b,0x02,0x00,0x00,0x7c,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x7f,0x02,0x00,0x00,
    -0x7a,0x02,0x00,0x00,0x7b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x7a,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x81,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x81,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x67,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x7a,0x02,0x00,0x00,0xb1,0x02,0x00,0x00,0x84,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x87,0x02,0x00,0x00,
    -0x67,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x83,0x02,0x00,0x00,0x84,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x87,0x02,0x00,0x00,0x82,0x02,0x00,0x00,
    -0x83,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x82,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x89,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x89,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x69,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0x82,0x02,0x00,0x00,
    -0xaf,0x02,0x00,0x00,0x8a,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0x8f,0x02,0x00,0x00,0x69,0x03,0x00,0x00,
    -0x44,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x8b,0x02,0x00,0x00,
    -0x8a,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x8f,0x02,0x00,0x00,0x8a,0x02,0x00,0x00,0x8b,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x8a,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x91,0x02,0x00,0x00,0x61,0x03,0x00,0x00,
    +0x59,0x02,0x00,0x00,0x57,0x02,0x00,0x00,0x6e,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5b,0x02,0x00,0x00,
    +0x3b,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x5e,0x02,0x00,0x00,0x60,0x03,0x00,0x00,
    +0x5d,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x5f,0x02,0x00,0x00,0x5b,0x02,0x00,0x00,0x5e,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x61,0x02,0x00,0x00,
    +0x4a,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x62,0x02,0x00,0x00,0x5f,0x02,0x00,0x00,
    +0x61,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x64,0x02,0x00,0x00,0x62,0x02,0x00,0x00,0x6e,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x66,0x02,0x00,0x00,
    +0x64,0x02,0x00,0x00,0x65,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x68,0x02,0x00,0x00,0x66,0x02,0x00,0x00,
    +0x5b,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x95,0x01,0x00,0x00,
    +0x69,0x02,0x00,0x00,0xcf,0x01,0x00,0x00,0x68,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x21,0x01,0x00,0x00,0x6a,0x02,0x00,0x00,
    +0x69,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x3c,0x02,0x00,0x00,
    +0x6b,0x02,0x00,0x00,0x55,0x02,0x00,0x00,0x59,0x02,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x6b,0x02,0x00,0x00,0x6a,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6d,0x02,0x00,0x00,
    +0x6e,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x4b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x4d,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x46,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x46,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x6f,0x02,0x00,0x00,0x60,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x43,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x45,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x71,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x71,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x61,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x45,0x02,0x00,0x00,0xb5,0x02,0x00,0x00,0x74,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x77,0x02,0x00,0x00,
    +0x61,0x03,0x00,0x00,0xcb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x73,0x02,0x00,0x00,0x74,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x77,0x02,0x00,0x00,0x72,0x02,0x00,0x00,
    +0x73,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x72,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x79,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x79,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x65,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0x72,0x02,0x00,0x00,
    +0xb3,0x02,0x00,0x00,0x7c,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x7f,0x02,0x00,0x00,0x65,0x03,0x00,0x00,
    +0x42,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x7b,0x02,0x00,0x00,
    +0x7c,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x7f,0x02,0x00,0x00,0x7a,0x02,0x00,0x00,0x7b,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x7a,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x81,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x81,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x67,0x03,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x7a,0x02,0x00,0x00,0xb1,0x02,0x00,0x00,
    +0x84,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0x87,0x02,0x00,0x00,0x67,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x83,0x02,0x00,0x00,0x84,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x87,0x02,0x00,0x00,
    +0x82,0x02,0x00,0x00,0x83,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x82,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x89,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x89,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x69,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x82,0x02,0x00,0x00,0xaf,0x02,0x00,0x00,0x8a,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x8f,0x02,0x00,0x00,
    +0x69,0x03,0x00,0x00,0x44,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x8b,0x02,0x00,0x00,0x8a,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x8f,0x02,0x00,0x00,0x8a,0x02,0x00,0x00,
    +0x8b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x8a,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x91,0x02,0x00,0x00,
    +0x61,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x93,0x02,0x00,0x00,0x91,0x02,0x00,0x00,
    +0x67,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x95,0x02,0x00,0x00,0x93,0x02,0x00,0x00,0x94,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x97,0x02,0x00,0x00,
    +0x65,0x03,0x00,0x00,0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x98,0x02,0x00,0x00,0x95,0x02,0x00,0x00,
    +0x97,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x9a,0x02,0x00,0x00,0x98,0x02,0x00,0x00,0x69,0x03,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9e,0x02,0x00,0x00,
    +0x97,0x02,0x00,0x00,0x69,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x3c,0x02,0x00,0x00,0x9f,0x02,0x00,0x00,0x27,0x02,0x00,0x00,
    +0x9e,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x21,0x01,0x00,0x00,
    +0xa0,0x02,0x00,0x00,0x9f,0x02,0x00,0x00,0x73,0x00,0x04,0x00,
    +0xcf,0x00,0x00,0x00,0xa1,0x02,0x00,0x00,0xa0,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x3c,0x02,0x00,0x00,0xa6,0x02,0x00,0x00,
    +0x55,0x02,0x00,0x00,0x93,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x21,0x01,0x00,0x00,0xa7,0x02,0x00,0x00,0xa6,0x02,0x00,0x00,
    +0x73,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0xa8,0x02,0x00,0x00,
    +0xa7,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,
    +0xaa,0x02,0x00,0x00,0xd5,0x00,0x00,0x00,0x9a,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0xab,0x02,0x00,0x00,
    +0xaa,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0xcf,0x00,0x00,0x00,
    +0xac,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,
    +0xa1,0x02,0x00,0x00,0xa8,0x02,0x00,0x00,0xab,0x02,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0xaa,0x02,0x00,0x00,0xac,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xaf,0x02,0x00,0x00,
    +0x69,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x89,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x8b,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x84,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x84,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xb1,0x02,0x00,0x00,0x67,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x81,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x83,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x7c,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x7c,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xb3,0x02,0x00,0x00,0x65,0x03,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x79,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x7b,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x74,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x74,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb5,0x02,0x00,0x00,
    +0x61,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x71,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x73,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x10,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x10,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xb7,0x02,0x00,0x00,0x5b,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x0d,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x0f,0x02,0x00,0x00,0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xe0,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xe0,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb9,0x02,0x00,0x00,
    +0x40,0x03,0x00,0x00,0x4e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xdd,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xdf,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbe,0x02,0x00,0x00,
    +0x37,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xbf,0x02,0x00,0x00,0xb4,0x00,0x00,0x00,
    +0xbe,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xc4,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc5,0x02,0x00,0x00,
    +0xa3,0x00,0x00,0x00,0xc4,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xc7,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xc7,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x41,0x03,0x00,0x00,
    +0x20,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0x30,0x03,0x00,0x00,
    +0xca,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0xcd,0x02,0x00,0x00,0x41,0x03,0x00,0x00,0xcb,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xc9,0x02,0x00,0x00,0xca,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xcd,0x02,0x00,0x00,
    +0xc8,0x02,0x00,0x00,0xc9,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xc8,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xcf,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xcf,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x42,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    +0xc8,0x02,0x00,0x00,0x2e,0x03,0x00,0x00,0xd2,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xd5,0x02,0x00,0x00,
    +0x42,0x03,0x00,0x00,0x42,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xd1,0x02,0x00,0x00,0xd2,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xd5,0x02,0x00,0x00,0xd0,0x02,0x00,0x00,
    +0xd1,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xd0,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd9,0x02,0x00,0x00,
    +0x42,0x03,0x00,0x00,0x43,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xda,0x02,0x00,0x00,0xbf,0x02,0x00,0x00,
    +0xd9,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xdc,0x02,0x00,0x00,0x46,0x00,0x00,0x00,0x44,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdd,0x02,0x00,0x00,
    +0xda,0x02,0x00,0x00,0xdc,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xe1,0x02,0x00,0x00,0x41,0x03,0x00,0x00,
    +0x5d,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xe2,0x02,0x00,0x00,0xc5,0x02,0x00,0x00,0xe1,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe4,0x02,0x00,0x00,
    +0x4a,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xe5,0x02,0x00,0x00,0xe2,0x02,0x00,0x00,
    +0xe4,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xe7,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xe7,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x44,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    +0xd0,0x02,0x00,0x00,0x2c,0x03,0x00,0x00,0xea,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xed,0x02,0x00,0x00,
    +0x44,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xe9,0x02,0x00,0x00,0xea,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xed,0x02,0x00,0x00,0xe8,0x02,0x00,0x00,
    +0xe9,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xe8,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf1,0x02,0x00,0x00,
    +0xe5,0x02,0x00,0x00,0x44,0x03,0x00,0x00,0xae,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0xf4,0x02,0x00,0x00,0xf1,0x02,0x00,0x00,
    +0x3e,0x03,0x00,0x00,0xf7,0x00,0x03,0x00,0xf6,0x02,0x00,0x00,
    +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xf4,0x02,0x00,0x00,
    +0xf5,0x02,0x00,0x00,0xf6,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xf5,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xe9,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xf6,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x97,0x00,0x00,0x00,0xfa,0x02,0x00,0x00,0x90,0x00,0x00,0x00,
    +0xf1,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,
    +0xfb,0x02,0x00,0x00,0xfa,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xfd,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xfd,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x4a,0x03,0x00,0x00,
    +0x20,0x00,0x00,0x00,0xf6,0x02,0x00,0x00,0x2a,0x03,0x00,0x00,
    +0xfe,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0x03,0x03,0x00,0x00,0x4a,0x03,0x00,0x00,0x44,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xff,0x02,0x00,0x00,0xfe,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x03,0x03,0x00,0x00,
    +0xfe,0x02,0x00,0x00,0xff,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xfe,0x02,0x00,0x00,0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,
    +0x09,0x03,0x00,0x00,0xfb,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x0a,0x03,0x00,0x00,
    +0x09,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
    +0x0c,0x03,0x00,0x00,0x13,0x00,0x00,0x00,0x0b,0x03,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x0d,0x03,0x00,0x00,
    +0x0c,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x0e,0x03,0x00,0x00,0x0a,0x03,0x00,0x00,0x0d,0x03,0x00,0x00,
    +0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,0x10,0x03,0x00,0x00,
    +0xfb,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x11,0x03,0x00,0x00,0x10,0x03,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0x13,0x03,0x00,0x00,
    +0x13,0x00,0x00,0x00,0x12,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x14,0x03,0x00,0x00,0x13,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x15,0x03,0x00,0x00,
    +0x11,0x03,0x00,0x00,0x14,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x16,0x03,0x00,0x00,0x0e,0x03,0x00,0x00,
    +0x15,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x18,0x03,0x00,0x00,0x16,0x03,0x00,0x00,0xdd,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1a,0x03,0x00,0x00,
    +0x18,0x03,0x00,0x00,0x4a,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x1c,0x03,0x00,0x00,0x41,0x03,0x00,0x00,
     0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x93,0x02,0x00,0x00,0x91,0x02,0x00,0x00,0x67,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x95,0x02,0x00,0x00,
    -0x93,0x02,0x00,0x00,0x94,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x97,0x02,0x00,0x00,0x65,0x03,0x00,0x00,
    +0x1e,0x03,0x00,0x00,0x1c,0x03,0x00,0x00,0x44,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x20,0x03,0x00,0x00,
    +0x1e,0x03,0x00,0x00,0x1f,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x22,0x03,0x00,0x00,0x42,0x03,0x00,0x00,
     0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x98,0x02,0x00,0x00,0x95,0x02,0x00,0x00,0x97,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9a,0x02,0x00,0x00,
    -0x98,0x02,0x00,0x00,0x69,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x9e,0x02,0x00,0x00,0x97,0x02,0x00,0x00,
    -0x69,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x3c,0x02,0x00,0x00,
    -0x9f,0x02,0x00,0x00,0x27,0x02,0x00,0x00,0x9e,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x21,0x01,0x00,0x00,0xa0,0x02,0x00,0x00,
    -0x9f,0x02,0x00,0x00,0x73,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    -0xa1,0x02,0x00,0x00,0xa0,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x3c,0x02,0x00,0x00,0xa6,0x02,0x00,0x00,0x55,0x02,0x00,0x00,
    -0x93,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x21,0x01,0x00,0x00,
    -0xa7,0x02,0x00,0x00,0xa6,0x02,0x00,0x00,0x73,0x00,0x04,0x00,
    -0xcf,0x00,0x00,0x00,0xa8,0x02,0x00,0x00,0xa7,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,0xaa,0x02,0x00,0x00,
    -0xd5,0x00,0x00,0x00,0x9a,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xcf,0x00,0x00,0x00,0xab,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,
    -0x0c,0x00,0x08,0x00,0xcf,0x00,0x00,0x00,0xac,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xa1,0x02,0x00,0x00,
    -0xa8,0x02,0x00,0x00,0xab,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0xaa,0x02,0x00,0x00,0xac,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xaf,0x02,0x00,0x00,0x69,0x03,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x89,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x8b,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x84,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x84,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb1,0x02,0x00,0x00,
    -0x67,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x81,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x83,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x7c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x7c,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xb3,0x02,0x00,0x00,0x65,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x79,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x7b,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x74,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x74,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xb5,0x02,0x00,0x00,0x61,0x03,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x71,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x73,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x10,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x10,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb7,0x02,0x00,0x00,
    -0x5b,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x0d,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x0f,0x02,0x00,0x00,
    -0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0xa0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xe0,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xe0,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xb9,0x02,0x00,0x00,0x40,0x03,0x00,0x00,
    -0x4e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xdd,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xdf,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xbe,0x02,0x00,0x00,0x37,0x00,0x00,0x00,
    -0x35,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xbf,0x02,0x00,0x00,0xb4,0x00,0x00,0x00,0xbe,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc4,0x02,0x00,0x00,
    -0x3b,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xc5,0x02,0x00,0x00,0xa3,0x00,0x00,0x00,
    -0xc4,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xc7,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xc7,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x41,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    -0xdf,0x00,0x00,0x00,0x30,0x03,0x00,0x00,0xca,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xcd,0x02,0x00,0x00,
    -0x41,0x03,0x00,0x00,0xcb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xc9,0x02,0x00,0x00,0xca,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xcd,0x02,0x00,0x00,0xc8,0x02,0x00,0x00,
    -0xc9,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xc8,0x02,0x00,0x00,
    +0x23,0x03,0x00,0x00,0x20,0x03,0x00,0x00,0x22,0x03,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x25,0x03,0x00,0x00,
    +0x23,0x03,0x00,0x00,0x4a,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xd8,0x00,0x00,0x00,0x26,0x03,0x00,0x00,0xd5,0x00,0x00,0x00,
    +0x25,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    +0x27,0x03,0x00,0x00,0x26,0x03,0x00,0x00,0x41,0x00,0x06,0x00,
    +0xf2,0x01,0x00,0x00,0x28,0x03,0x00,0x00,0x07,0x03,0x00,0x00,
    +0x15,0x00,0x00,0x00,0x1a,0x03,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x28,0x03,0x00,0x00,0x27,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x2a,0x03,0x00,0x00,0x4a,0x03,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xfd,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xff,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xea,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xea,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2c,0x03,0x00,0x00,
    +0x44,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xe7,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xe9,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xd2,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xd2,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x2e,0x03,0x00,0x00,0x42,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
     0xf9,0x00,0x02,0x00,0xcf,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xcf,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x42,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0xc8,0x02,0x00,0x00,
    -0x2e,0x03,0x00,0x00,0xd2,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0xd5,0x02,0x00,0x00,0x42,0x03,0x00,0x00,
    -0x42,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xd1,0x02,0x00,0x00,
    -0xd2,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xd5,0x02,0x00,0x00,0xd0,0x02,0x00,0x00,0xd1,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xd0,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xd9,0x02,0x00,0x00,0x42,0x03,0x00,0x00,
    -0x43,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xda,0x02,0x00,0x00,0xbf,0x02,0x00,0x00,0xd9,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdc,0x02,0x00,0x00,
    -0x46,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xdd,0x02,0x00,0x00,0xda,0x02,0x00,0x00,
    -0xdc,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xe1,0x02,0x00,0x00,0x41,0x03,0x00,0x00,0x5d,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe2,0x02,0x00,0x00,
    -0xc5,0x02,0x00,0x00,0xe1,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xe4,0x02,0x00,0x00,0x4a,0x00,0x00,0x00,
    -0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xe5,0x02,0x00,0x00,0xe2,0x02,0x00,0x00,0xe4,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xe7,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xe7,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x44,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0xd0,0x02,0x00,0x00,
    -0x2c,0x03,0x00,0x00,0xea,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0xed,0x02,0x00,0x00,0x44,0x03,0x00,0x00,
    -0xc8,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xe9,0x02,0x00,0x00,
    -0xea,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xed,0x02,0x00,0x00,0xe8,0x02,0x00,0x00,0xe9,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xe8,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xf1,0x02,0x00,0x00,0xe5,0x02,0x00,0x00,
    -0x44,0x03,0x00,0x00,0xae,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0xf4,0x02,0x00,0x00,0xf1,0x02,0x00,0x00,0x3e,0x03,0x00,0x00,
    -0xf7,0x00,0x03,0x00,0xf6,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xf4,0x02,0x00,0x00,0xf5,0x02,0x00,0x00,
    -0xf6,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xf5,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xe9,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xf6,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x97,0x00,0x00,0x00,
    -0xfa,0x02,0x00,0x00,0x90,0x00,0x00,0x00,0xf1,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,0xfb,0x02,0x00,0x00,
    -0xfa,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xfd,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xfd,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x4a,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    -0xf6,0x02,0x00,0x00,0x2a,0x03,0x00,0x00,0xfe,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x03,0x03,0x00,0x00,
    -0x4a,0x03,0x00,0x00,0x44,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xff,0x02,0x00,0x00,0xfe,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x03,0x03,0x00,0x00,0xfe,0x02,0x00,0x00,
    -0xff,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xfe,0x02,0x00,0x00,
    -0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,0x09,0x03,0x00,0x00,
    -0xfb,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x0a,0x03,0x00,0x00,0x09,0x03,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0x0c,0x03,0x00,0x00,
    -0x13,0x00,0x00,0x00,0x0b,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x0d,0x03,0x00,0x00,0x0c,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0e,0x03,0x00,0x00,
    -0x0a,0x03,0x00,0x00,0x0d,0x03,0x00,0x00,0x51,0x00,0x05,0x00,
    -0x8b,0x00,0x00,0x00,0x10,0x03,0x00,0x00,0xfb,0x02,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x11,0x03,0x00,0x00,0x10,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x16,0x00,0x00,0x00,0x13,0x03,0x00,0x00,0x13,0x00,0x00,0x00,
    -0x12,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x14,0x03,0x00,0x00,0x13,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x15,0x03,0x00,0x00,0x11,0x03,0x00,0x00,
    -0x14,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x16,0x03,0x00,0x00,0x0e,0x03,0x00,0x00,0x15,0x03,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x18,0x03,0x00,0x00,
    -0x16,0x03,0x00,0x00,0xdd,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x1a,0x03,0x00,0x00,0x18,0x03,0x00,0x00,
    -0x4a,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x1c,0x03,0x00,0x00,0x41,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1e,0x03,0x00,0x00,
    -0x1c,0x03,0x00,0x00,0x44,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x20,0x03,0x00,0x00,0x1e,0x03,0x00,0x00,
    -0x1f,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x22,0x03,0x00,0x00,0x42,0x03,0x00,0x00,0x44,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x23,0x03,0x00,0x00,
    -0x20,0x03,0x00,0x00,0x22,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x25,0x03,0x00,0x00,0x23,0x03,0x00,0x00,
    -0x4a,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,
    -0x26,0x03,0x00,0x00,0xd5,0x00,0x00,0x00,0x25,0x03,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0x27,0x03,0x00,0x00,
    -0x26,0x03,0x00,0x00,0x41,0x00,0x06,0x00,0xf2,0x01,0x00,0x00,
    -0x28,0x03,0x00,0x00,0x07,0x03,0x00,0x00,0x15,0x00,0x00,0x00,
    -0x1a,0x03,0x00,0x00,0x3e,0x00,0x03,0x00,0x28,0x03,0x00,0x00,
    -0x27,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x2a,0x03,0x00,0x00,0x4a,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xfd,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xff,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xea,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xea,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x2c,0x03,0x00,0x00,0x44,0x03,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xe7,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xe9,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xd2,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xd2,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2e,0x03,0x00,0x00,
    -0x42,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xcf,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xd1,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xca,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xca,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x30,0x03,0x00,0x00,0x41,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xc7,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xc9,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x31,0x03,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x31,0x03,0x00,0x00,0xfd,0x00,0x01,0x00,
    -0x38,0x00,0x01,0x00,
    +0xd1,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xca,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xca,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x30,0x03,0x00,0x00,0x41,0x03,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xc7,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xc9,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x31,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x31,0x03,0x00,0x00,
    +0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
     };
    -const uint64_t matmul_id_q4_k_f32_len = 12544;
    +const uint64_t matmul_id_q4_k_f32_len = 12524;
     
     unsigned char matmul_id_q4_k_f32_aligned_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
    @@ -56304,9 +60024,9 @@ unsigned char matmul_id_q4_k_f32_fp32_data[] = {
     0x43,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x54,0x00,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x59,0x00,0x00,0x00,
     0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,
    @@ -56417,7 +60137,7 @@ unsigned char matmul_id_q4_k_f32_fp32_data[] = {
     0xab,0x01,0x00,0x00,0x51,0x00,0x00,0x00,0xaa,0x01,0x00,0x00,
     0x00,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0xac,0x01,0x00,0x00,0x84,0x00,0x00,0x00,0xab,0x01,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0xad,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0xac,0x01,0x00,0x00,
     0x4e,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0xc9,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    @@ -56447,7 +60167,7 @@ unsigned char matmul_id_q4_k_f32_fp32_data[] = {
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xff,0x01,0x00,0x00,
     0x86,0x00,0x00,0x00,0xfe,0x01,0x00,0x00,0x4e,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x02,0x02,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x05,0x02,0x00,0x00,
     0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x20,0x02,0x00,0x00,
    @@ -56614,7 +60334,7 @@ unsigned char matmul_id_q4_k_f32_fp32_data[] = {
     0xb4,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,
     0xb8,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xbb,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0xbb,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
     0xf9,0x00,0x02,0x00,0xbe,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
     0xbe,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
     0x38,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,
    @@ -56656,550 +60376,548 @@ unsigned char matmul_id_q4_k_f32_fp32_data[] = {
     0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,
     0xf1,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xf6,0x00,0x00,0x00,0x4e,0x03,0x00,0x00,0xf5,0x00,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,
     0xf6,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0xf1,0x00,0x00,0x00,
    -0xfd,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x00,0x01,0x00,0x00,0x50,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x01,0x01,0x00,0x00,
    -0xfe,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x86,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0xf8,0x00,0x00,0x00,
    -0x04,0x01,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x08,0x01,0x00,0x00,0xf8,0x00,0x00,0x00,0x04,0x01,0x00,0x00,
    -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,
    -0x08,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,0x89,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x0f,0x01,0x00,0x00,0x08,0x01,0x00,0x00,
    -0x0b,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x11,0x01,0x00,0x00,0x0f,0x01,0x00,0x00,0x10,0x01,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x14,0x01,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x16,0x01,0x00,0x00,0x14,0x01,0x00,0x00,
    -0x11,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x19,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,
    -0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1b,0x01,0x00,0x00,
    -0x08,0x01,0x00,0x00,0x10,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,0x1b,0x01,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x1d,0x01,0x00,0x00,0x19,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,
    -0x41,0x00,0x07,0x00,0x2d,0x01,0x00,0x00,0x2e,0x01,0x00,0x00,
    +0xfd,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x01,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,0x50,0x00,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x05,0x01,0x00,0x00,
    +0xf8,0x00,0x00,0x00,0x04,0x01,0x00,0x00,0x89,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0xf8,0x00,0x00,0x00,
    +0x04,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x0c,0x01,0x00,0x00,0x08,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,
    +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0f,0x01,0x00,0x00,
    +0x08,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x11,0x01,0x00,0x00,0x0f,0x01,0x00,0x00,
    +0x10,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x14,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x16,0x01,0x00,0x00,
    +0x14,0x01,0x00,0x00,0x11,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x19,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,
    +0x0b,0x01,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x1b,0x01,0x00,0x00,0x08,0x01,0x00,0x00,0x10,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,
    +0x1b,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x1d,0x01,0x00,0x00,0x19,0x01,0x00,0x00,
    +0x1c,0x01,0x00,0x00,0x41,0x00,0x07,0x00,0x2d,0x01,0x00,0x00,
    +0x2e,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    +0x05,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x22,0x01,0x00,0x00,0x2f,0x01,0x00,0x00,0x2e,0x01,0x00,0x00,
    +0x73,0x00,0x04,0x00,0x1e,0x01,0x00,0x00,0x30,0x01,0x00,0x00,
    +0x2f,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0x33,0x01,0x00,0x00,0x16,0x01,0x00,0x00,0x32,0x01,0x00,0x00,
    +0xf7,0x00,0x03,0x00,0x35,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x33,0x01,0x00,0x00,0x34,0x01,0x00,0x00,
    +0x4f,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x34,0x01,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x3a,0x01,0x00,0x00,0x3b,0x01,0x00,0x00,
     0x2b,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,
    -0x15,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x22,0x01,0x00,0x00,
    -0x2f,0x01,0x00,0x00,0x2e,0x01,0x00,0x00,0x73,0x00,0x04,0x00,
    -0x1e,0x01,0x00,0x00,0x30,0x01,0x00,0x00,0x2f,0x01,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x33,0x01,0x00,0x00,
    -0x16,0x01,0x00,0x00,0x32,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,
    -0x35,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x33,0x01,0x00,0x00,0x34,0x01,0x00,0x00,0x4f,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x34,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x3a,0x01,0x00,0x00,0x3b,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0x16,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x23,0x01,0x00,0x00,0x3c,0x01,0x00,0x00,0x3b,0x01,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x3d,0x01,0x00,0x00,
    +0x3c,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    +0x3e,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
    +0x14,0x00,0x00,0x00,0x40,0x01,0x00,0x00,0x3e,0x01,0x00,0x00,
    +0x3f,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x41,0x01,0x00,0x00,
    +0x42,0x01,0x00,0x00,0x40,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    +0x23,0x01,0x00,0x00,0x43,0x01,0x00,0x00,0x42,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x47,0x01,0x00,0x00,
    +0x16,0x01,0x00,0x00,0x32,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x3a,0x01,0x00,0x00,0x48,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,
     0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0x16,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x23,0x01,0x00,0x00,
    -0x3c,0x01,0x00,0x00,0x3b,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x3d,0x01,0x00,0x00,0x3c,0x01,0x00,0x00,
    -0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x3e,0x01,0x00,0x00,
    -0x3d,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x14,0x00,0x00,0x00,
    -0x40,0x01,0x00,0x00,0x3e,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,
    -0x72,0x00,0x04,0x00,0x41,0x01,0x00,0x00,0x42,0x01,0x00,0x00,
    -0x40,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x23,0x01,0x00,0x00,
    -0x43,0x01,0x00,0x00,0x42,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x47,0x01,0x00,0x00,0x16,0x01,0x00,0x00,
    -0x32,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x3a,0x01,0x00,0x00,
    -0x48,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    -0x05,0x01,0x00,0x00,0x9a,0x00,0x00,0x00,0x47,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x23,0x01,0x00,0x00,0x49,0x01,0x00,0x00,
    -0x48,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x4a,0x01,0x00,0x00,0x49,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    -0x14,0x00,0x00,0x00,0x4b,0x01,0x00,0x00,0x4a,0x01,0x00,0x00,
    -0xc7,0x00,0x05,0x00,0x14,0x00,0x00,0x00,0x4c,0x01,0x00,0x00,
    -0x4b,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,0x72,0x00,0x04,0x00,
    -0x41,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,0x4c,0x01,0x00,0x00,
    -0x7c,0x00,0x04,0x00,0x23,0x01,0x00,0x00,0x4e,0x01,0x00,0x00,
    -0x4d,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x35,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x4f,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x52,0x01,0x00,0x00,0x16,0x01,0x00,0x00,
    -0x32,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x3a,0x01,0x00,0x00,
    -0x53,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    -0x05,0x01,0x00,0x00,0x9a,0x00,0x00,0x00,0x52,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x23,0x01,0x00,0x00,0x54,0x01,0x00,0x00,
    -0x53,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x55,0x01,0x00,0x00,0x54,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    -0x14,0x00,0x00,0x00,0x56,0x01,0x00,0x00,0x55,0x01,0x00,0x00,
    -0xc7,0x00,0x05,0x00,0x14,0x00,0x00,0x00,0x58,0x01,0x00,0x00,
    -0x56,0x01,0x00,0x00,0x57,0x01,0x00,0x00,0x82,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x5b,0x01,0x00,0x00,0x16,0x01,0x00,0x00,
    -0x32,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x3a,0x01,0x00,0x00,
    -0x5c,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    -0x05,0x01,0x00,0x00,0x9a,0x00,0x00,0x00,0x5b,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x23,0x01,0x00,0x00,0x5d,0x01,0x00,0x00,
    -0x5c,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x23,0x01,0x00,0x00,
    -0x5e,0x01,0x00,0x00,0x5d,0x01,0x00,0x00,0xaf,0x00,0x00,0x00,
    -0xc4,0x00,0x05,0x00,0x23,0x01,0x00,0x00,0x60,0x01,0x00,0x00,
    -0x5e,0x01,0x00,0x00,0x5f,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x61,0x01,0x00,0x00,0x60,0x01,0x00,0x00,
    -0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x62,0x01,0x00,0x00,
    -0x61,0x01,0x00,0x00,0xc5,0x00,0x05,0x00,0x14,0x00,0x00,0x00,
    -0x63,0x01,0x00,0x00,0x58,0x01,0x00,0x00,0x62,0x01,0x00,0x00,
    -0x72,0x00,0x04,0x00,0x41,0x01,0x00,0x00,0x64,0x01,0x00,0x00,
    -0x63,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x23,0x01,0x00,0x00,
    -0x65,0x01,0x00,0x00,0x64,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x23,0x01,0x00,0x00,0x6a,0x01,0x00,0x00,0x53,0x01,0x00,0x00,
    -0xc2,0x00,0x05,0x00,0x23,0x01,0x00,0x00,0x6b,0x01,0x00,0x00,
    -0x6a,0x01,0x00,0x00,0x5f,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x3a,0x01,0x00,0x00,0x6e,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,
    +0x47,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x23,0x01,0x00,0x00,
    +0x49,0x01,0x00,0x00,0x48,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x4a,0x01,0x00,0x00,0x49,0x01,0x00,0x00,
    +0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x4b,0x01,0x00,0x00,
    +0x4a,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x14,0x00,0x00,0x00,
    +0x4c,0x01,0x00,0x00,0x4b,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,
    +0x72,0x00,0x04,0x00,0x41,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,
    +0x4c,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x23,0x01,0x00,0x00,
    +0x4e,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x35,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x4f,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x52,0x01,0x00,0x00,
    +0x16,0x01,0x00,0x00,0x32,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x3a,0x01,0x00,0x00,0x53,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,
     0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0x16,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x23,0x01,0x00,0x00,
    -0x6f,0x01,0x00,0x00,0x6e,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,
    -0x23,0x01,0x00,0x00,0x70,0x01,0x00,0x00,0x6f,0x01,0x00,0x00,
    +0x52,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x23,0x01,0x00,0x00,
    +0x54,0x01,0x00,0x00,0x53,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x55,0x01,0x00,0x00,0x54,0x01,0x00,0x00,
    +0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x56,0x01,0x00,0x00,
    +0x55,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x14,0x00,0x00,0x00,
    +0x58,0x01,0x00,0x00,0x56,0x01,0x00,0x00,0x57,0x01,0x00,0x00,
    +0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5b,0x01,0x00,0x00,
    +0x16,0x01,0x00,0x00,0x32,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x3a,0x01,0x00,0x00,0x5c,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,
    +0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0x5b,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x23,0x01,0x00,0x00,
    +0x5d,0x01,0x00,0x00,0x5c,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,
    +0x23,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,0x5d,0x01,0x00,0x00,
     0xaf,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x23,0x01,0x00,0x00,
    -0x71,0x01,0x00,0x00,0x70,0x01,0x00,0x00,0x5f,0x01,0x00,0x00,
    -0xc5,0x00,0x05,0x00,0x23,0x01,0x00,0x00,0x72,0x01,0x00,0x00,
    -0x6b,0x01,0x00,0x00,0x71,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x35,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x35,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x23,0x01,0x00,0x00,0x71,0x03,0x00,0x00,
    -0x4e,0x01,0x00,0x00,0x34,0x01,0x00,0x00,0x72,0x01,0x00,0x00,
    -0x4f,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x23,0x01,0x00,0x00,
    -0x70,0x03,0x00,0x00,0x43,0x01,0x00,0x00,0x34,0x01,0x00,0x00,
    -0x65,0x01,0x00,0x00,0x4f,0x01,0x00,0x00,0x51,0x00,0x05,0x00,
    -0xcf,0x00,0x00,0x00,0x75,0x01,0x00,0x00,0x30,0x01,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x70,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    -0x77,0x01,0x00,0x00,0x70,0x03,0x00,0x00,0x85,0x00,0x05,0x00,
    -0xcf,0x00,0x00,0x00,0x78,0x01,0x00,0x00,0x75,0x01,0x00,0x00,
    -0x77,0x01,0x00,0x00,0x51,0x00,0x05,0x00,0xcf,0x00,0x00,0x00,
    -0x7b,0x01,0x00,0x00,0x30,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x70,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0x7d,0x01,0x00,0x00,
    -0x71,0x03,0x00,0x00,0x85,0x00,0x05,0x00,0xcf,0x00,0x00,0x00,
    -0x7e,0x01,0x00,0x00,0x7b,0x01,0x00,0x00,0x7d,0x01,0x00,0x00,
    -0x41,0x00,0x08,0x00,0x3a,0x01,0x00,0x00,0x88,0x01,0x00,0x00,
    -0x2b,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,
    -0xaa,0x00,0x00,0x00,0x1d,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x23,0x01,0x00,0x00,0x89,0x01,0x00,0x00,0x88,0x01,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8b,0x01,0x00,0x00,
    -0x11,0x01,0x00,0x00,0x32,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,
    -0x23,0x01,0x00,0x00,0x8c,0x01,0x00,0x00,0x89,0x01,0x00,0x00,
    -0x8b,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x8d,0x01,0x00,0x00,0x8c,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    -0x14,0x00,0x00,0x00,0x8e,0x01,0x00,0x00,0x8d,0x01,0x00,0x00,
    -0xc7,0x00,0x05,0x00,0x14,0x00,0x00,0x00,0x8f,0x01,0x00,0x00,
    -0x8e,0x01,0x00,0x00,0x57,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,
    -0xcf,0x00,0x00,0x00,0x90,0x01,0x00,0x00,0x8f,0x01,0x00,0x00,
    -0x7f,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0xad,0x03,0x00,0x00,
    -0x7e,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0xcf,0x00,0x00,0x00,
    -0x93,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,
    -0x78,0x01,0x00,0x00,0x90,0x01,0x00,0x00,0xad,0x03,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x94,0x01,0x00,0x00,0x95,0x01,0x00,0x00,
    -0x83,0x01,0x00,0x00,0x01,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x95,0x01,0x00,0x00,0x93,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x97,0x01,0x00,0x00,0x01,0x01,0x00,0x00,
    -0x1b,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x9b,0x01,0x00,0x00,0x1d,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,
    -0x41,0x00,0x08,0x00,0x3a,0x01,0x00,0x00,0x9c,0x01,0x00,0x00,
    +0x60,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,0x5f,0x01,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x61,0x01,0x00,0x00,
    +0x60,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    +0x62,0x01,0x00,0x00,0x61,0x01,0x00,0x00,0xc5,0x00,0x05,0x00,
    +0x14,0x00,0x00,0x00,0x63,0x01,0x00,0x00,0x58,0x01,0x00,0x00,
    +0x62,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x41,0x01,0x00,0x00,
    +0x64,0x01,0x00,0x00,0x63,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    +0x23,0x01,0x00,0x00,0x65,0x01,0x00,0x00,0x64,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x23,0x01,0x00,0x00,0x6a,0x01,0x00,0x00,
    +0x53,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x23,0x01,0x00,0x00,
    +0x6b,0x01,0x00,0x00,0x6a,0x01,0x00,0x00,0x5f,0x01,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x3a,0x01,0x00,0x00,0x6e,0x01,0x00,0x00,
     0x2b,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,
    -0xaa,0x00,0x00,0x00,0x9b,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x23,0x01,0x00,0x00,0x9d,0x01,0x00,0x00,0x9c,0x01,0x00,0x00,
    -0xc2,0x00,0x05,0x00,0x23,0x01,0x00,0x00,0xa0,0x01,0x00,0x00,
    -0x9d,0x01,0x00,0x00,0x8b,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0xa1,0x01,0x00,0x00,0xa0,0x01,0x00,0x00,
    -0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0xa2,0x01,0x00,0x00,
    -0xa1,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x14,0x00,0x00,0x00,
    -0xa3,0x01,0x00,0x00,0xa2,0x01,0x00,0x00,0x57,0x01,0x00,0x00,
    -0x6f,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0xa4,0x01,0x00,0x00,
    -0xa3,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0xcf,0x00,0x00,0x00,
    -0xa7,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,
    -0x78,0x01,0x00,0x00,0xa4,0x01,0x00,0x00,0xad,0x03,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x94,0x01,0x00,0x00,0xa8,0x01,0x00,0x00,
    -0x83,0x01,0x00,0x00,0x97,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0xa8,0x01,0x00,0x00,0xa7,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xe9,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xe9,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xaf,0x01,0x00,0x00,
    -0x4a,0x03,0x00,0x00,0xad,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xe6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xe8,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xb1,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xb1,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x4b,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,
    -0x01,0x02,0x00,0x00,0xb4,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0xb7,0x01,0x00,0x00,0x4b,0x03,0x00,0x00,
    -0xa2,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xb3,0x01,0x00,0x00,
    -0xb4,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xb7,0x01,0x00,0x00,0xb2,0x01,0x00,0x00,0xb3,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xb2,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xbc,0x01,0x00,0x00,0xa3,0x00,0x00,0x00,
    -0x5f,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xbe,0x01,0x00,0x00,0xbc,0x01,0x00,0x00,0x4b,0x03,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xc1,0x01,0x00,0x00,
    -0xbe,0x01,0x00,0x00,0x37,0x03,0x00,0x00,0xf7,0x00,0x03,0x00,
    -0xc3,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xc1,0x01,0x00,0x00,0xc2,0x01,0x00,0x00,0xf4,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xc2,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x97,0x00,0x00,0x00,0xc7,0x01,0x00,0x00,0x90,0x00,0x00,0x00,
    -0xbe,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,
    -0xc8,0x01,0x00,0x00,0xc7,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xd0,0x01,0x00,0x00,0x5f,0x00,0x00,0x00,
    -0x4b,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xd2,0x01,0x00,0x00,0xd0,0x01,0x00,0x00,0xd1,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd4,0x01,0x00,0x00,
    -0xd2,0x01,0x00,0x00,0x5a,0x00,0x00,0x00,0x51,0x00,0x05,0x00,
    -0x8b,0x00,0x00,0x00,0xdc,0x01,0x00,0x00,0xc8,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0xdd,0x01,0x00,0x00,0xdc,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x16,0x00,0x00,0x00,0xdf,0x01,0x00,0x00,0x13,0x00,0x00,0x00,
    -0xde,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0xe0,0x01,0x00,0x00,0xdf,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xe1,0x01,0x00,0x00,0xdd,0x01,0x00,0x00,
    -0xe0,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xe2,0x01,0x00,0x00,0x52,0x03,0x00,0x00,0xe1,0x01,0x00,0x00,
    -0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,0xe4,0x01,0x00,0x00,
    -0xc8,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0xe5,0x01,0x00,0x00,0xe4,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0xe7,0x01,0x00,0x00,
    -0x13,0x00,0x00,0x00,0xe6,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0xe8,0x01,0x00,0x00,0xe7,0x01,0x00,0x00,
    -0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe9,0x01,0x00,0x00,
    -0xe5,0x01,0x00,0x00,0xe8,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x16,0x00,0x00,0x00,0xea,0x01,0x00,0x00,0x13,0x00,0x00,0x00,
    -0x5f,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0xeb,0x01,0x00,0x00,0xea,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xec,0x01,0x00,0x00,0xe9,0x01,0x00,0x00,
    -0xeb,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xed,0x01,0x00,0x00,0xe2,0x01,0x00,0x00,0xec,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xef,0x01,0x00,0x00,
    -0xed,0x01,0x00,0x00,0x5a,0x00,0x00,0x00,0x41,0x00,0x06,0x00,
    -0xf0,0x01,0x00,0x00,0xf1,0x01,0x00,0x00,0xd8,0x01,0x00,0x00,
    -0x15,0x00,0x00,0x00,0xef,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xcf,0x00,0x00,0x00,0xf2,0x01,0x00,0x00,0xf1,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x94,0x01,0x00,0x00,0xf3,0x01,0x00,0x00,
    -0xcd,0x01,0x00,0x00,0xd4,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0xf3,0x01,0x00,0x00,0xf2,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xc3,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xf4,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf7,0x01,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0x16,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x23,0x01,0x00,0x00,0x6f,0x01,0x00,0x00,0x6e,0x01,0x00,0x00,
    +0xc2,0x00,0x05,0x00,0x23,0x01,0x00,0x00,0x70,0x01,0x00,0x00,
    +0x6f,0x01,0x00,0x00,0xaf,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,
    +0x23,0x01,0x00,0x00,0x71,0x01,0x00,0x00,0x70,0x01,0x00,0x00,
    +0x5f,0x01,0x00,0x00,0xc5,0x00,0x05,0x00,0x23,0x01,0x00,0x00,
    +0x72,0x01,0x00,0x00,0x6b,0x01,0x00,0x00,0x71,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x35,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x35,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x23,0x01,0x00,0x00,
    +0x71,0x03,0x00,0x00,0x4e,0x01,0x00,0x00,0x34,0x01,0x00,0x00,
    +0x72,0x01,0x00,0x00,0x4f,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x23,0x01,0x00,0x00,0x70,0x03,0x00,0x00,0x43,0x01,0x00,0x00,
    +0x34,0x01,0x00,0x00,0x65,0x01,0x00,0x00,0x4f,0x01,0x00,0x00,
    +0x51,0x00,0x05,0x00,0xcf,0x00,0x00,0x00,0x75,0x01,0x00,0x00,
    +0x30,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x04,0x00,
    +0xcf,0x00,0x00,0x00,0x77,0x01,0x00,0x00,0x70,0x03,0x00,0x00,
    +0x85,0x00,0x05,0x00,0xcf,0x00,0x00,0x00,0x78,0x01,0x00,0x00,
    +0x75,0x01,0x00,0x00,0x77,0x01,0x00,0x00,0x51,0x00,0x05,0x00,
    +0xcf,0x00,0x00,0x00,0x7b,0x01,0x00,0x00,0x30,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x70,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    +0x7d,0x01,0x00,0x00,0x71,0x03,0x00,0x00,0x85,0x00,0x05,0x00,
    +0xcf,0x00,0x00,0x00,0x7e,0x01,0x00,0x00,0x7b,0x01,0x00,0x00,
    +0x7d,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x3a,0x01,0x00,0x00,
    +0x88,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    +0x05,0x01,0x00,0x00,0xaa,0x00,0x00,0x00,0x1d,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x23,0x01,0x00,0x00,0x89,0x01,0x00,0x00,
    +0x88,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x8b,0x01,0x00,0x00,0x11,0x01,0x00,0x00,0x32,0x01,0x00,0x00,
    +0xc2,0x00,0x05,0x00,0x23,0x01,0x00,0x00,0x8c,0x01,0x00,0x00,
    +0x89,0x01,0x00,0x00,0x8b,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x8d,0x01,0x00,0x00,0x8c,0x01,0x00,0x00,
    +0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x8e,0x01,0x00,0x00,
    +0x8d,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x14,0x00,0x00,0x00,
    +0x8f,0x01,0x00,0x00,0x8e,0x01,0x00,0x00,0x57,0x01,0x00,0x00,
    +0x6f,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0x90,0x01,0x00,0x00,
    +0x8f,0x01,0x00,0x00,0x7f,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    +0xad,0x03,0x00,0x00,0x7e,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,
    +0xcf,0x00,0x00,0x00,0x93,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x32,0x00,0x00,0x00,0x78,0x01,0x00,0x00,0x90,0x01,0x00,0x00,
    +0xad,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x94,0x01,0x00,0x00,
    +0x95,0x01,0x00,0x00,0x83,0x01,0x00,0x00,0x01,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x95,0x01,0x00,0x00,0x93,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x97,0x01,0x00,0x00,
    +0x01,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x9b,0x01,0x00,0x00,0x1d,0x01,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0x3a,0x01,0x00,0x00,
    +0x9c,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    +0x05,0x01,0x00,0x00,0xaa,0x00,0x00,0x00,0x9b,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x23,0x01,0x00,0x00,0x9d,0x01,0x00,0x00,
    +0x9c,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x23,0x01,0x00,0x00,
    +0xa0,0x01,0x00,0x00,0x9d,0x01,0x00,0x00,0x8b,0x01,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa1,0x01,0x00,0x00,
    +0xa0,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    +0xa2,0x01,0x00,0x00,0xa1,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
    +0x14,0x00,0x00,0x00,0xa3,0x01,0x00,0x00,0xa2,0x01,0x00,0x00,
    +0x57,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    +0xa4,0x01,0x00,0x00,0xa3,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,
    +0xcf,0x00,0x00,0x00,0xa7,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x32,0x00,0x00,0x00,0x78,0x01,0x00,0x00,0xa4,0x01,0x00,0x00,
    +0xad,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x94,0x01,0x00,0x00,
    +0xa8,0x01,0x00,0x00,0x83,0x01,0x00,0x00,0x97,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0xa8,0x01,0x00,0x00,0xa7,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xe9,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xe9,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xaf,0x01,0x00,0x00,0x4a,0x03,0x00,0x00,0xad,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xe6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xe8,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xb1,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xb1,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x4b,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    +0xe8,0x00,0x00,0x00,0x01,0x02,0x00,0x00,0xb4,0x01,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xb7,0x01,0x00,0x00,
    +0x4b,0x03,0x00,0x00,0xa2,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xb3,0x01,0x00,0x00,0xb4,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xb7,0x01,0x00,0x00,0xb2,0x01,0x00,0x00,
    +0xb3,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xb2,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbc,0x01,0x00,0x00,
    +0xa3,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xbe,0x01,0x00,0x00,0xbc,0x01,0x00,0x00,
    +0x4b,0x03,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0xc1,0x01,0x00,0x00,0xbe,0x01,0x00,0x00,0x37,0x03,0x00,0x00,
    +0xf7,0x00,0x03,0x00,0xc3,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xc1,0x01,0x00,0x00,0xc2,0x01,0x00,0x00,
    +0xf4,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xc2,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x97,0x00,0x00,0x00,0xc7,0x01,0x00,0x00,
    +0x90,0x00,0x00,0x00,0xbe,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x8c,0x00,0x00,0x00,0xc8,0x01,0x00,0x00,0xc7,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd0,0x01,0x00,0x00,
     0x5f,0x00,0x00,0x00,0x4b,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xf9,0x01,0x00,0x00,0xf7,0x01,0x00,0x00,
    -0xf8,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xfb,0x01,0x00,0x00,0xf9,0x01,0x00,0x00,0x5a,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x94,0x01,0x00,0x00,0xfc,0x01,0x00,0x00,
    -0xcd,0x01,0x00,0x00,0xfb,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0xfc,0x01,0x00,0x00,0xd7,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xc3,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xc3,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xb4,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xb4,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x01,0x02,0x00,0x00,0x4b,0x03,0x00,0x00,0xff,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xb1,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xb3,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x04,0x02,0x00,0x00,0x4e,0x03,0x00,0x00,
    -0x02,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x07,0x02,0x00,0x00,0x52,0x03,0x00,0x00,0x05,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x09,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x09,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x54,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0xb3,0x01,0x00,0x00,
    -0xb0,0x02,0x00,0x00,0x0c,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0x0f,0x02,0x00,0x00,0x54,0x03,0x00,0x00,
    -0x4e,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x0b,0x02,0x00,0x00,
    -0x0c,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x0f,0x02,0x00,0x00,0x0a,0x02,0x00,0x00,0x0b,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x0a,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x11,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x11,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x58,0x03,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x0a,0x02,0x00,0x00,0x3c,0x02,0x00,0x00,
    -0x14,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0x17,0x02,0x00,0x00,0x58,0x03,0x00,0x00,0x42,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x13,0x02,0x00,0x00,0x14,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x17,0x02,0x00,0x00,
    -0x12,0x02,0x00,0x00,0x13,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x12,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x19,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x19,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x6a,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x12,0x02,0x00,0x00,0x3a,0x02,0x00,0x00,0x1a,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x1f,0x02,0x00,0x00,
    -0x6a,0x03,0x00,0x00,0x44,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x1b,0x02,0x00,0x00,0x1a,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x1f,0x02,0x00,0x00,0x1a,0x02,0x00,0x00,
    -0x1b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x1a,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x25,0x02,0x00,0x00,
    -0x58,0x03,0x00,0x00,0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x27,0x02,0x00,0x00,0x25,0x02,0x00,0x00,
    -0x6a,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x29,0x02,0x00,0x00,0x37,0x00,0x00,0x00,0x35,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2b,0x02,0x00,0x00,
    -0x58,0x03,0x00,0x00,0x43,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x2c,0x02,0x00,0x00,0x29,0x02,0x00,0x00,
    -0x2b,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x2e,0x02,0x00,0x00,0x46,0x00,0x00,0x00,0x44,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2f,0x02,0x00,0x00,
    -0x2c,0x02,0x00,0x00,0x2e,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x31,0x02,0x00,0x00,0x2f,0x02,0x00,0x00,
    -0x6a,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x33,0x02,0x00,0x00,0x31,0x02,0x00,0x00,0x32,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x35,0x02,0x00,0x00,
    -0x33,0x02,0x00,0x00,0x54,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x94,0x01,0x00,0x00,0x36,0x02,0x00,0x00,0x83,0x01,0x00,0x00,
    -0x35,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    -0x37,0x02,0x00,0x00,0x36,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xd8,0x00,0x00,0x00,0x38,0x02,0x00,0x00,0x23,0x02,0x00,0x00,
    -0x27,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0x38,0x02,0x00,0x00,
    -0x37,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x3a,0x02,0x00,0x00,0x6a,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x19,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x1b,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x14,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x14,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x3c,0x02,0x00,0x00,0x58,0x03,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x11,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x13,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x3e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x3e,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x59,0x03,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x13,0x02,0x00,0x00,0x6a,0x02,0x00,0x00,
    -0x41,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0x44,0x02,0x00,0x00,0x59,0x03,0x00,0x00,0xcb,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x40,0x02,0x00,0x00,0x41,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x44,0x02,0x00,0x00,
    -0x3f,0x02,0x00,0x00,0x40,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x3f,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x46,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x46,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x67,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x3f,0x02,0x00,0x00,0x68,0x02,0x00,0x00,0x47,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x4c,0x02,0x00,0x00,
    -0x67,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x48,0x02,0x00,0x00,0x47,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x4c,0x02,0x00,0x00,0x47,0x02,0x00,0x00,
    -0x48,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x47,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x52,0x02,0x00,0x00,
    -0x59,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x54,0x02,0x00,0x00,0x52,0x02,0x00,0x00,
    -0x67,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x56,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x59,0x02,0x00,0x00,
    -0x59,0x03,0x00,0x00,0x58,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x5a,0x02,0x00,0x00,0x56,0x02,0x00,0x00,
    -0x59,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x5c,0x02,0x00,0x00,0x4a,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5d,0x02,0x00,0x00,
    -0x5a,0x02,0x00,0x00,0x5c,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x5f,0x02,0x00,0x00,0x5d,0x02,0x00,0x00,
    -0x67,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x61,0x02,0x00,0x00,0x5f,0x02,0x00,0x00,0x60,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x63,0x02,0x00,0x00,
    -0x61,0x02,0x00,0x00,0x54,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x94,0x01,0x00,0x00,0x64,0x02,0x00,0x00,0xcd,0x01,0x00,0x00,
    -0x63,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    -0x65,0x02,0x00,0x00,0x64,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xd8,0x00,0x00,0x00,0x66,0x02,0x00,0x00,0x50,0x02,0x00,0x00,
    -0x54,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0x66,0x02,0x00,0x00,
    -0x65,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x68,0x02,0x00,0x00,0x67,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x46,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x48,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x41,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x41,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x6a,0x02,0x00,0x00,0x59,0x03,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x3e,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x40,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x6c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x6c,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x5a,0x03,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x40,0x02,0x00,0x00,0xae,0x02,0x00,0x00,
    -0x6f,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0x72,0x02,0x00,0x00,0x5a,0x03,0x00,0x00,0xcb,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x6e,0x02,0x00,0x00,0x6f,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x72,0x02,0x00,0x00,
    -0x6d,0x02,0x00,0x00,0x6e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x6d,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x74,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x74,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x5e,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x6d,0x02,0x00,0x00,0xac,0x02,0x00,0x00,0x77,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x7a,0x02,0x00,0x00,
    -0x5e,0x03,0x00,0x00,0x42,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x76,0x02,0x00,0x00,0x77,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x7a,0x02,0x00,0x00,0x75,0x02,0x00,0x00,
    -0x76,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x75,0x02,0x00,0x00,
    +0x06,0x00,0x00,0x00,0xd2,0x01,0x00,0x00,0xd0,0x01,0x00,0x00,
    +0xd1,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xd4,0x01,0x00,0x00,0xd2,0x01,0x00,0x00,0x5a,0x00,0x00,0x00,
    +0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,0xdc,0x01,0x00,0x00,
    +0xc8,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0xdd,0x01,0x00,0x00,0xdc,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0xdf,0x01,0x00,0x00,
    +0x13,0x00,0x00,0x00,0xde,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0xe0,0x01,0x00,0x00,0xdf,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe1,0x01,0x00,0x00,
    +0xdd,0x01,0x00,0x00,0xe0,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xe2,0x01,0x00,0x00,0x52,0x03,0x00,0x00,
    +0xe1,0x01,0x00,0x00,0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,
    +0xe4,0x01,0x00,0x00,0xc8,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xe5,0x01,0x00,0x00,
    +0xe4,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
    +0xe7,0x01,0x00,0x00,0x13,0x00,0x00,0x00,0xe6,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xe8,0x01,0x00,0x00,
    +0xe7,0x01,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xe9,0x01,0x00,0x00,0xe5,0x01,0x00,0x00,0xe8,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0xea,0x01,0x00,0x00,
    +0x13,0x00,0x00,0x00,0x5f,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0xeb,0x01,0x00,0x00,0xea,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xec,0x01,0x00,0x00,
    +0xe9,0x01,0x00,0x00,0xeb,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xed,0x01,0x00,0x00,0xe2,0x01,0x00,0x00,
    +0xec,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xef,0x01,0x00,0x00,0xed,0x01,0x00,0x00,0x5a,0x00,0x00,0x00,
    +0x41,0x00,0x06,0x00,0xf0,0x01,0x00,0x00,0xf1,0x01,0x00,0x00,
    +0xd8,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0xef,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0xf2,0x01,0x00,0x00,
    +0xf1,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x94,0x01,0x00,0x00,
    +0xf3,0x01,0x00,0x00,0xcd,0x01,0x00,0x00,0xd4,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0xf3,0x01,0x00,0x00,0xf2,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xc3,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xf4,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xf7,0x01,0x00,0x00,0x5f,0x00,0x00,0x00,0x4b,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf9,0x01,0x00,0x00,
    +0xf7,0x01,0x00,0x00,0xf8,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xfb,0x01,0x00,0x00,0xf9,0x01,0x00,0x00,
    +0x5a,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x94,0x01,0x00,0x00,
    +0xfc,0x01,0x00,0x00,0xcd,0x01,0x00,0x00,0xfb,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0xfc,0x01,0x00,0x00,0xd7,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xc3,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xc3,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xb4,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xb4,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x01,0x02,0x00,0x00,0x4b,0x03,0x00,0x00,
    +0xff,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xb1,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xb3,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,
    +0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x04,0x02,0x00,0x00,
    +0x4e,0x03,0x00,0x00,0x02,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x07,0x02,0x00,0x00,0x52,0x03,0x00,0x00,
    +0x05,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x09,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x09,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x54,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    +0xb3,0x01,0x00,0x00,0xb0,0x02,0x00,0x00,0x0c,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x0f,0x02,0x00,0x00,
    +0x54,0x03,0x00,0x00,0x4e,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x0b,0x02,0x00,0x00,0x0c,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x0f,0x02,0x00,0x00,0x0a,0x02,0x00,0x00,
    +0x0b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x0a,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x11,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x11,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x58,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0x0a,0x02,0x00,0x00,
    +0x3c,0x02,0x00,0x00,0x14,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x17,0x02,0x00,0x00,0x58,0x03,0x00,0x00,
    +0x42,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x13,0x02,0x00,0x00,
    +0x14,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x17,0x02,0x00,0x00,0x12,0x02,0x00,0x00,0x13,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x12,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x19,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x19,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x6a,0x03,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x12,0x02,0x00,0x00,0x3a,0x02,0x00,0x00,
    +0x1a,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0x1f,0x02,0x00,0x00,0x6a,0x03,0x00,0x00,0x44,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x1b,0x02,0x00,0x00,0x1a,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x1f,0x02,0x00,0x00,
    +0x1a,0x02,0x00,0x00,0x1b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x1a,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x25,0x02,0x00,0x00,0x58,0x03,0x00,0x00,0x44,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x27,0x02,0x00,0x00,
    +0x25,0x02,0x00,0x00,0x6a,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x29,0x02,0x00,0x00,0x37,0x00,0x00,0x00,
    +0x35,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x2b,0x02,0x00,0x00,0x58,0x03,0x00,0x00,0x43,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2c,0x02,0x00,0x00,
    +0x29,0x02,0x00,0x00,0x2b,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x2e,0x02,0x00,0x00,0x46,0x00,0x00,0x00,
    +0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x2f,0x02,0x00,0x00,0x2c,0x02,0x00,0x00,0x2e,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x31,0x02,0x00,0x00,
    +0x2f,0x02,0x00,0x00,0x6a,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x33,0x02,0x00,0x00,0x31,0x02,0x00,0x00,
    +0x32,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x35,0x02,0x00,0x00,0x33,0x02,0x00,0x00,0x54,0x03,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x94,0x01,0x00,0x00,0x36,0x02,0x00,0x00,
    +0x83,0x01,0x00,0x00,0x35,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xcf,0x00,0x00,0x00,0x37,0x02,0x00,0x00,0x36,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,0x38,0x02,0x00,0x00,
    +0x23,0x02,0x00,0x00,0x27,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x38,0x02,0x00,0x00,0x37,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x3a,0x02,0x00,0x00,0x6a,0x03,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x19,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x1b,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x14,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x14,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3c,0x02,0x00,0x00,
    +0x58,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x11,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x13,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x3e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x3e,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x59,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0x13,0x02,0x00,0x00,
    +0x6a,0x02,0x00,0x00,0x41,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x44,0x02,0x00,0x00,0x59,0x03,0x00,0x00,
    +0xcb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x40,0x02,0x00,0x00,
    +0x41,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x44,0x02,0x00,0x00,0x3f,0x02,0x00,0x00,0x40,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x3f,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x46,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x46,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x67,0x03,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x3f,0x02,0x00,0x00,0x68,0x02,0x00,0x00,
    +0x47,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0x4c,0x02,0x00,0x00,0x67,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x48,0x02,0x00,0x00,0x47,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x4c,0x02,0x00,0x00,
    +0x47,0x02,0x00,0x00,0x48,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x47,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x52,0x02,0x00,0x00,0x59,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x54,0x02,0x00,0x00,
    +0x52,0x02,0x00,0x00,0x67,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x56,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,
    +0xc5,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x59,0x02,0x00,0x00,0x59,0x03,0x00,0x00,0x58,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5a,0x02,0x00,0x00,
    +0x56,0x02,0x00,0x00,0x59,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x5c,0x02,0x00,0x00,0x4a,0x00,0x00,0x00,
    +0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x5d,0x02,0x00,0x00,0x5a,0x02,0x00,0x00,0x5c,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5f,0x02,0x00,0x00,
    +0x5d,0x02,0x00,0x00,0x67,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x61,0x02,0x00,0x00,0x5f,0x02,0x00,0x00,
    +0x60,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x63,0x02,0x00,0x00,0x61,0x02,0x00,0x00,0x54,0x03,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x94,0x01,0x00,0x00,0x64,0x02,0x00,0x00,
    +0xcd,0x01,0x00,0x00,0x63,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xcf,0x00,0x00,0x00,0x65,0x02,0x00,0x00,0x64,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,0x66,0x02,0x00,0x00,
    +0x50,0x02,0x00,0x00,0x54,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x66,0x02,0x00,0x00,0x65,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x68,0x02,0x00,0x00,0x67,0x03,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x46,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x48,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x41,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x41,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6a,0x02,0x00,0x00,
    +0x59,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x3e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x40,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x6c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x6c,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x5a,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0x40,0x02,0x00,0x00,
    +0xae,0x02,0x00,0x00,0x6f,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x72,0x02,0x00,0x00,0x5a,0x03,0x00,0x00,
    +0xcb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x6e,0x02,0x00,0x00,
    +0x6f,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x72,0x02,0x00,0x00,0x6d,0x02,0x00,0x00,0x6e,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x6d,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x74,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x74,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x5e,0x03,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x6d,0x02,0x00,0x00,0xac,0x02,0x00,0x00,
    +0x77,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0x7a,0x02,0x00,0x00,0x5e,0x03,0x00,0x00,0x42,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x76,0x02,0x00,0x00,0x77,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x7a,0x02,0x00,0x00,
    +0x75,0x02,0x00,0x00,0x76,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x75,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x7c,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x7c,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x60,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x75,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,0x7f,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x82,0x02,0x00,0x00,
    +0x60,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x7e,0x02,0x00,0x00,0x7f,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x82,0x02,0x00,0x00,0x7d,0x02,0x00,0x00,
    +0x7e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x7d,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x84,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x84,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x62,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0x7d,0x02,0x00,0x00,
    +0xa8,0x02,0x00,0x00,0x85,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x8a,0x02,0x00,0x00,0x62,0x03,0x00,0x00,
    +0x44,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x86,0x02,0x00,0x00,
    +0x85,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x8a,0x02,0x00,0x00,0x85,0x02,0x00,0x00,0x86,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x85,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x8c,0x02,0x00,0x00,0x5a,0x03,0x00,0x00,
    +0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x8e,0x02,0x00,0x00,0x8c,0x02,0x00,0x00,0x60,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x90,0x02,0x00,0x00,
    +0x8e,0x02,0x00,0x00,0x8f,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x92,0x02,0x00,0x00,0x5e,0x03,0x00,0x00,
    +0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x93,0x02,0x00,0x00,0x90,0x02,0x00,0x00,0x92,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x95,0x02,0x00,0x00,
    +0x93,0x02,0x00,0x00,0x62,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x99,0x02,0x00,0x00,0x92,0x02,0x00,0x00,
    +0x62,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,
    +0x9a,0x02,0x00,0x00,0x23,0x02,0x00,0x00,0x99,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0x9b,0x02,0x00,0x00,
    +0x9a,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,
    +0xa0,0x02,0x00,0x00,0x50,0x02,0x00,0x00,0x8e,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0xa1,0x02,0x00,0x00,
    +0xa0,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,
    +0xa3,0x02,0x00,0x00,0xd5,0x00,0x00,0x00,0x95,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0xa4,0x02,0x00,0x00,
    +0xa3,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0xcf,0x00,0x00,0x00,
    +0xa5,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,
    +0x9b,0x02,0x00,0x00,0xa1,0x02,0x00,0x00,0xa4,0x02,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0xa3,0x02,0x00,0x00,0xa5,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa8,0x02,0x00,0x00,
    +0x62,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x84,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x86,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x7f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x7f,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xaa,0x02,0x00,0x00,0x60,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
     0xf9,0x00,0x02,0x00,0x7c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x7c,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x60,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0x75,0x02,0x00,0x00,
    -0xaa,0x02,0x00,0x00,0x7f,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0x82,0x02,0x00,0x00,0x60,0x03,0x00,0x00,
    -0xc8,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x7e,0x02,0x00,0x00,
    -0x7f,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x82,0x02,0x00,0x00,0x7d,0x02,0x00,0x00,0x7e,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x7d,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x84,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x84,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x62,0x03,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x7d,0x02,0x00,0x00,0xa8,0x02,0x00,0x00,
    -0x85,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0x8a,0x02,0x00,0x00,0x62,0x03,0x00,0x00,0x44,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x86,0x02,0x00,0x00,0x85,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x8a,0x02,0x00,0x00,
    -0x85,0x02,0x00,0x00,0x86,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x85,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x8c,0x02,0x00,0x00,0x5a,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8e,0x02,0x00,0x00,
    -0x8c,0x02,0x00,0x00,0x60,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x90,0x02,0x00,0x00,0x8e,0x02,0x00,0x00,
    -0x8f,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x92,0x02,0x00,0x00,0x5e,0x03,0x00,0x00,0x44,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x93,0x02,0x00,0x00,
    -0x90,0x02,0x00,0x00,0x92,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x95,0x02,0x00,0x00,0x93,0x02,0x00,0x00,
    -0x62,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x99,0x02,0x00,0x00,0x92,0x02,0x00,0x00,0x62,0x03,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,0x9a,0x02,0x00,0x00,
    -0x23,0x02,0x00,0x00,0x99,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xcf,0x00,0x00,0x00,0x9b,0x02,0x00,0x00,0x9a,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,0xa0,0x02,0x00,0x00,
    -0x50,0x02,0x00,0x00,0x8e,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xcf,0x00,0x00,0x00,0xa1,0x02,0x00,0x00,0xa0,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,0xa3,0x02,0x00,0x00,
    -0xd5,0x00,0x00,0x00,0x95,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xcf,0x00,0x00,0x00,0xa4,0x02,0x00,0x00,0xa3,0x02,0x00,0x00,
    -0x0c,0x00,0x08,0x00,0xcf,0x00,0x00,0x00,0xa5,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x9b,0x02,0x00,0x00,
    -0xa1,0x02,0x00,0x00,0xa4,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0xa3,0x02,0x00,0x00,0xa5,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xa8,0x02,0x00,0x00,0x62,0x03,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x84,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x86,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x7f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x7f,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xaa,0x02,0x00,0x00,
    -0x60,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x7c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x7e,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x77,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x77,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xac,0x02,0x00,0x00,0x5e,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x74,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x76,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x6f,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x6f,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xae,0x02,0x00,0x00,0x5a,0x03,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x6c,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x6e,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x0c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x0c,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb0,0x02,0x00,0x00,
    -0x54,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x09,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x0b,0x02,0x00,0x00,
    -0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0xa0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xe0,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xe0,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xb2,0x02,0x00,0x00,0x39,0x03,0x00,0x00,
    -0x4e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xdd,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xdf,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xb7,0x02,0x00,0x00,0x37,0x00,0x00,0x00,
    -0x35,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xb8,0x02,0x00,0x00,0xb4,0x00,0x00,0x00,0xb7,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbd,0x02,0x00,0x00,
    -0x3b,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xbe,0x02,0x00,0x00,0xa3,0x00,0x00,0x00,
    -0xbd,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xc0,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xc0,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x3a,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    -0xdf,0x00,0x00,0x00,0x29,0x03,0x00,0x00,0xc3,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xc6,0x02,0x00,0x00,
    -0x3a,0x03,0x00,0x00,0xcb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xc2,0x02,0x00,0x00,0xc3,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xc6,0x02,0x00,0x00,0xc1,0x02,0x00,0x00,
    -0xc2,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xc1,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xc8,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xc8,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x3b,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0xc1,0x02,0x00,0x00,
    -0x27,0x03,0x00,0x00,0xcb,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0xce,0x02,0x00,0x00,0x3b,0x03,0x00,0x00,
    -0x42,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xca,0x02,0x00,0x00,
    -0xcb,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xce,0x02,0x00,0x00,0xc9,0x02,0x00,0x00,0xca,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xc9,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xd2,0x02,0x00,0x00,0x3b,0x03,0x00,0x00,
    -0x43,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xd3,0x02,0x00,0x00,0xb8,0x02,0x00,0x00,0xd2,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd5,0x02,0x00,0x00,
    -0x46,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xd6,0x02,0x00,0x00,0xd3,0x02,0x00,0x00,
    -0xd5,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xda,0x02,0x00,0x00,0x3a,0x03,0x00,0x00,0x58,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdb,0x02,0x00,0x00,
    -0xbe,0x02,0x00,0x00,0xda,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xdd,0x02,0x00,0x00,0x4a,0x00,0x00,0x00,
    +0x7e,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x77,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x77,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xac,0x02,0x00,0x00,0x5e,0x03,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x74,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x76,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x6f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x6f,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xae,0x02,0x00,0x00,
    +0x5a,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x6c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x6e,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x0c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x0c,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xb0,0x02,0x00,0x00,0x54,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x09,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x0b,0x02,0x00,0x00,0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xe0,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xe0,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb2,0x02,0x00,0x00,
    +0x39,0x03,0x00,0x00,0x4e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xdd,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xdf,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb7,0x02,0x00,0x00,
    +0x37,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xb8,0x02,0x00,0x00,0xb4,0x00,0x00,0x00,
    +0xb7,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xbd,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbe,0x02,0x00,0x00,
    +0xa3,0x00,0x00,0x00,0xbd,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xc0,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xc0,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x3a,0x03,0x00,0x00,
    +0x20,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0x29,0x03,0x00,0x00,
    +0xc3,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0xc6,0x02,0x00,0x00,0x3a,0x03,0x00,0x00,0xcb,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xc2,0x02,0x00,0x00,0xc3,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xc6,0x02,0x00,0x00,
    +0xc1,0x02,0x00,0x00,0xc2,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xc1,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xc8,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xc8,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x3b,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    +0xc1,0x02,0x00,0x00,0x27,0x03,0x00,0x00,0xcb,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xce,0x02,0x00,0x00,
    +0x3b,0x03,0x00,0x00,0x42,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xca,0x02,0x00,0x00,0xcb,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xce,0x02,0x00,0x00,0xc9,0x02,0x00,0x00,
    +0xca,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xc9,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd2,0x02,0x00,0x00,
    +0x3b,0x03,0x00,0x00,0x43,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xd3,0x02,0x00,0x00,0xb8,0x02,0x00,0x00,
    +0xd2,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xd5,0x02,0x00,0x00,0x46,0x00,0x00,0x00,0x44,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd6,0x02,0x00,0x00,
    +0xd3,0x02,0x00,0x00,0xd5,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xda,0x02,0x00,0x00,0x3a,0x03,0x00,0x00,
    +0x58,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xdb,0x02,0x00,0x00,0xbe,0x02,0x00,0x00,0xda,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdd,0x02,0x00,0x00,
    +0x4a,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xde,0x02,0x00,0x00,0xdb,0x02,0x00,0x00,
    +0xdd,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xe0,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xe0,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x3d,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    +0xc9,0x02,0x00,0x00,0x25,0x03,0x00,0x00,0xe3,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xe6,0x02,0x00,0x00,
    +0x3d,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xe2,0x02,0x00,0x00,0xe3,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xe6,0x02,0x00,0x00,0xe1,0x02,0x00,0x00,
    +0xe2,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xe1,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xea,0x02,0x00,0x00,
    +0xde,0x02,0x00,0x00,0x3d,0x03,0x00,0x00,0xae,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0xed,0x02,0x00,0x00,0xea,0x02,0x00,0x00,
    +0x37,0x03,0x00,0x00,0xf7,0x00,0x03,0x00,0xef,0x02,0x00,0x00,
    +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xed,0x02,0x00,0x00,
    +0xee,0x02,0x00,0x00,0xef,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xee,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xe2,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xef,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x97,0x00,0x00,0x00,0xf3,0x02,0x00,0x00,0x90,0x00,0x00,0x00,
    +0xea,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,
    +0xf4,0x02,0x00,0x00,0xf3,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xf6,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xf6,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x43,0x03,0x00,0x00,
    +0x20,0x00,0x00,0x00,0xef,0x02,0x00,0x00,0x23,0x03,0x00,0x00,
    +0xf7,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0xfc,0x02,0x00,0x00,0x43,0x03,0x00,0x00,0x44,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xf8,0x02,0x00,0x00,0xf7,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xfc,0x02,0x00,0x00,
    +0xf7,0x02,0x00,0x00,0xf8,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xf7,0x02,0x00,0x00,0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,
    +0x02,0x03,0x00,0x00,0xf4,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x03,0x03,0x00,0x00,
    +0x02,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
    +0x05,0x03,0x00,0x00,0x13,0x00,0x00,0x00,0x04,0x03,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x06,0x03,0x00,0x00,
    +0x05,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x07,0x03,0x00,0x00,0x03,0x03,0x00,0x00,0x06,0x03,0x00,0x00,
    +0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,0x09,0x03,0x00,0x00,
    +0xf4,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x0a,0x03,0x00,0x00,0x09,0x03,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0x0c,0x03,0x00,0x00,
    +0x13,0x00,0x00,0x00,0x0b,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x0d,0x03,0x00,0x00,0x0c,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0e,0x03,0x00,0x00,
    +0x0a,0x03,0x00,0x00,0x0d,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x0f,0x03,0x00,0x00,0x07,0x03,0x00,0x00,
    +0x0e,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x11,0x03,0x00,0x00,0x0f,0x03,0x00,0x00,0xd6,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x13,0x03,0x00,0x00,
    +0x11,0x03,0x00,0x00,0x43,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x15,0x03,0x00,0x00,0x3a,0x03,0x00,0x00,
     0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xde,0x02,0x00,0x00,0xdb,0x02,0x00,0x00,0xdd,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xe0,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xe0,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x3d,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0xc9,0x02,0x00,0x00,
    -0x25,0x03,0x00,0x00,0xe3,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0xe6,0x02,0x00,0x00,0x3d,0x03,0x00,0x00,
    -0xc8,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xe2,0x02,0x00,0x00,
    -0xe3,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xe6,0x02,0x00,0x00,0xe1,0x02,0x00,0x00,0xe2,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xe1,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xea,0x02,0x00,0x00,0xde,0x02,0x00,0x00,
    -0x3d,0x03,0x00,0x00,0xae,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0xed,0x02,0x00,0x00,0xea,0x02,0x00,0x00,0x37,0x03,0x00,0x00,
    -0xf7,0x00,0x03,0x00,0xef,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xed,0x02,0x00,0x00,0xee,0x02,0x00,0x00,
    -0xef,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xee,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xe2,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xef,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x97,0x00,0x00,0x00,
    -0xf3,0x02,0x00,0x00,0x90,0x00,0x00,0x00,0xea,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,0xf4,0x02,0x00,0x00,
    -0xf3,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xf6,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xf6,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x43,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    -0xef,0x02,0x00,0x00,0x23,0x03,0x00,0x00,0xf7,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xfc,0x02,0x00,0x00,
    -0x43,0x03,0x00,0x00,0x44,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xf8,0x02,0x00,0x00,0xf7,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xfc,0x02,0x00,0x00,0xf7,0x02,0x00,0x00,
    -0xf8,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xf7,0x02,0x00,0x00,
    -0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,0x02,0x03,0x00,0x00,
    -0xf4,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x03,0x03,0x00,0x00,0x02,0x03,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0x05,0x03,0x00,0x00,
    -0x13,0x00,0x00,0x00,0x04,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x06,0x03,0x00,0x00,0x05,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x07,0x03,0x00,0x00,
    -0x03,0x03,0x00,0x00,0x06,0x03,0x00,0x00,0x51,0x00,0x05,0x00,
    -0x8b,0x00,0x00,0x00,0x09,0x03,0x00,0x00,0xf4,0x02,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x0a,0x03,0x00,0x00,0x09,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x16,0x00,0x00,0x00,0x0c,0x03,0x00,0x00,0x13,0x00,0x00,0x00,
    -0x0b,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x0d,0x03,0x00,0x00,0x0c,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x0e,0x03,0x00,0x00,0x0a,0x03,0x00,0x00,
    -0x0d,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x0f,0x03,0x00,0x00,0x07,0x03,0x00,0x00,0x0e,0x03,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x11,0x03,0x00,0x00,
    -0x0f,0x03,0x00,0x00,0xd6,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x13,0x03,0x00,0x00,0x11,0x03,0x00,0x00,
    -0x43,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x15,0x03,0x00,0x00,0x3a,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x17,0x03,0x00,0x00,
    -0x15,0x03,0x00,0x00,0x3d,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x19,0x03,0x00,0x00,0x17,0x03,0x00,0x00,
    -0x18,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x1b,0x03,0x00,0x00,0x3b,0x03,0x00,0x00,0x44,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1c,0x03,0x00,0x00,
    -0x19,0x03,0x00,0x00,0x1b,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x1e,0x03,0x00,0x00,0x1c,0x03,0x00,0x00,
    -0x43,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,
    -0x1f,0x03,0x00,0x00,0xd5,0x00,0x00,0x00,0x1e,0x03,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0x20,0x03,0x00,0x00,
    -0x1f,0x03,0x00,0x00,0x41,0x00,0x06,0x00,0xf0,0x01,0x00,0x00,
    -0x21,0x03,0x00,0x00,0x00,0x03,0x00,0x00,0x15,0x00,0x00,0x00,
    -0x13,0x03,0x00,0x00,0x3e,0x00,0x03,0x00,0x21,0x03,0x00,0x00,
    -0x20,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x23,0x03,0x00,0x00,0x43,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xf6,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xf8,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xe3,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xe3,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x25,0x03,0x00,0x00,0x3d,0x03,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xe0,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xe2,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xcb,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xcb,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x27,0x03,0x00,0x00,
    -0x3b,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xc8,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xca,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xc3,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xc3,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x29,0x03,0x00,0x00,0x3a,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xc0,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xc2,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x2a,0x03,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x2a,0x03,0x00,0x00,0xfd,0x00,0x01,0x00,
    -0x38,0x00,0x01,0x00,
    +0x17,0x03,0x00,0x00,0x15,0x03,0x00,0x00,0x3d,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x19,0x03,0x00,0x00,
    +0x17,0x03,0x00,0x00,0x18,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x1b,0x03,0x00,0x00,0x3b,0x03,0x00,0x00,
    +0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x1c,0x03,0x00,0x00,0x19,0x03,0x00,0x00,0x1b,0x03,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1e,0x03,0x00,0x00,
    +0x1c,0x03,0x00,0x00,0x43,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xd8,0x00,0x00,0x00,0x1f,0x03,0x00,0x00,0xd5,0x00,0x00,0x00,
    +0x1e,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    +0x20,0x03,0x00,0x00,0x1f,0x03,0x00,0x00,0x41,0x00,0x06,0x00,
    +0xf0,0x01,0x00,0x00,0x21,0x03,0x00,0x00,0x00,0x03,0x00,0x00,
    +0x15,0x00,0x00,0x00,0x13,0x03,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x21,0x03,0x00,0x00,0x20,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x23,0x03,0x00,0x00,0x43,0x03,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xf6,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xf8,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xe3,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xe3,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x25,0x03,0x00,0x00,
    +0x3d,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xe0,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xe2,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xcb,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xcb,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x27,0x03,0x00,0x00,0x3b,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xc8,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xca,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xc3,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xc3,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x29,0x03,0x00,0x00,0x3a,0x03,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xc0,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xc2,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x2a,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x2a,0x03,0x00,0x00,
    +0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
     };
    -const uint64_t matmul_id_q4_k_f32_fp32_len = 12424;
    +const uint64_t matmul_id_q4_k_f32_fp32_len = 12404;
     
     unsigned char matmul_id_q5_0_f32_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
    @@ -57344,9 +61062,9 @@ unsigned char matmul_id_q5_0_f32_data[] = {
     0x43,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x54,0x00,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x59,0x00,0x00,0x00,
     0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,
    @@ -57453,7 +61171,7 @@ unsigned char matmul_id_q5_0_f32_data[] = {
     0x69,0x01,0x00,0x00,0x51,0x00,0x00,0x00,0x68,0x01,0x00,0x00,
     0x00,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x6a,0x01,0x00,0x00,0x84,0x00,0x00,0x00,0x69,0x01,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x6b,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0x6a,0x01,0x00,0x00,
     0x4e,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x87,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    @@ -57485,7 +61203,7 @@ unsigned char matmul_id_q5_0_f32_data[] = {
     0xbf,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0xbe,0x01,0x00,0x00,
     0x4e,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0xc2,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0xc5,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
     0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0xe0,0x01,0x00,0x00,0x84,0x00,0x00,0x00,0x42,0x00,0x00,0x00,
    @@ -57655,7 +61373,7 @@ unsigned char matmul_id_q5_0_f32_data[] = {
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,
     0xb2,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xbe,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xbe,0x00,0x00,0x00,
     0xf8,0x00,0x02,0x00,0xbe,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
     0x06,0x00,0x00,0x00,0xfd,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
     0xa7,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,
    @@ -57696,7 +61414,7 @@ unsigned char matmul_id_q5_0_f32_data[] = {
     0x0f,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xf4,0x00,0x00,0x00,0xf1,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,
    -0xf4,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0xf4,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,0x13,0x03,0x00,0x00,
     0xf5,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xf8,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,0x50,0x00,0x00,0x00,
    @@ -60314,9 +64032,9 @@ unsigned char matmul_id_q5_0_f32_fp32_data[] = {
     0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
     0x10,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x4f,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x54,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x59,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
     0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x5e,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    @@ -60422,7 +64140,7 @@ unsigned char matmul_id_q5_0_f32_fp32_data[] = {
     0x06,0x00,0x00,0x00,0x67,0x01,0x00,0x00,0x51,0x00,0x00,0x00,
     0x66,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x68,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    -0x67,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x67,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x69,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
     0x68,0x01,0x00,0x00,0x4e,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x85,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
    @@ -60453,7 +64171,7 @@ unsigned char matmul_id_q5_0_f32_fp32_data[] = {
     0xbb,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0xba,0x01,0x00,0x00,
     0x4e,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0xbe,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0xc1,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
     0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0xdc,0x01,0x00,0x00,0x84,0x00,0x00,0x00,0x42,0x00,0x00,0x00,
    @@ -60621,7 +64339,7 @@ unsigned char matmul_id_q5_0_f32_fp32_data[] = {
     0xb4,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,
     0xb8,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xbb,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0xbb,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
     0xf9,0x00,0x02,0x00,0xbe,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
     0xbe,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
     0xf6,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,
    @@ -60663,7 +64381,7 @@ unsigned char matmul_id_q5_0_f32_fp32_data[] = {
     0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,
     0xf1,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xf6,0x00,0x00,0x00,0x0c,0x03,0x00,0x00,0xf5,0x00,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,
     0xf6,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    @@ -61271,9 +64989,9 @@ unsigned char matmul_id_q5_1_f32_data[] = {
     0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
     0x10,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x4f,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x54,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x59,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
     0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x5e,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    @@ -61375,7 +65093,7 @@ unsigned char matmul_id_q5_1_f32_data[] = {
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x65,0x01,0x00,0x00,
     0x51,0x00,0x00,0x00,0x64,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x66,0x01,0x00,0x00,
    -0x84,0x00,0x00,0x00,0x65,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x84,0x00,0x00,0x00,0x65,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x67,0x01,0x00,0x00,
     0x86,0x00,0x00,0x00,0x66,0x01,0x00,0x00,0x4e,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x83,0x01,0x00,0x00,
    @@ -61407,7 +65125,7 @@ unsigned char matmul_id_q5_1_f32_data[] = {
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xbb,0x01,0x00,0x00,
     0x86,0x00,0x00,0x00,0xba,0x01,0x00,0x00,0x4e,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xbe,0x01,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xc1,0x01,0x00,0x00,
     0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xdc,0x01,0x00,0x00,
    @@ -61576,7 +65294,7 @@ unsigned char matmul_id_q5_1_f32_data[] = {
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,
     0xb2,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xbe,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xbe,0x00,0x00,0x00,
     0xf8,0x00,0x02,0x00,0xbe,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
     0x06,0x00,0x00,0x00,0xf9,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
     0xa7,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,
    @@ -61617,7 +65335,7 @@ unsigned char matmul_id_q5_1_f32_data[] = {
     0x0b,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xf4,0x00,0x00,0x00,0xf1,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,
    -0xf4,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0xf4,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,0x0f,0x03,0x00,0x00,
     0xf5,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xf8,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,0x50,0x00,0x00,0x00,
    @@ -64213,9 +67931,9 @@ unsigned char matmul_id_q5_1_f32_fp32_data[] = {
     0x44,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x4e,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x4e,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x4e,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
     0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    @@ -64318,7 +68036,7 @@ unsigned char matmul_id_q5_1_f32_fp32_data[] = {
     0x63,0x01,0x00,0x00,0x51,0x00,0x00,0x00,0x62,0x01,0x00,0x00,
     0x00,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x64,0x01,0x00,0x00,0x84,0x00,0x00,0x00,0x63,0x01,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x65,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0x64,0x01,0x00,0x00,
     0x4e,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x81,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    @@ -64348,7 +68066,7 @@ unsigned char matmul_id_q5_1_f32_fp32_data[] = {
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xb7,0x01,0x00,0x00,
     0x86,0x00,0x00,0x00,0xb6,0x01,0x00,0x00,0x4e,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xba,0x01,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xbd,0x01,0x00,0x00,
     0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xd8,0x01,0x00,0x00,
    @@ -64515,7 +68233,7 @@ unsigned char matmul_id_q5_1_f32_fp32_data[] = {
     0xb4,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,
     0xb8,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xbb,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0xbb,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
     0xf9,0x00,0x02,0x00,0xbe,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
     0xbe,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
     0xf2,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,
    @@ -64557,7 +68275,7 @@ unsigned char matmul_id_q5_1_f32_fp32_data[] = {
     0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,
     0xf1,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xf6,0x00,0x00,0x00,0x08,0x03,0x00,0x00,0xf5,0x00,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,
     0xf6,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    @@ -65164,9 +68882,9 @@ unsigned char matmul_id_q5_k_f32_data[] = {
     0x44,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x4e,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x4e,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x4e,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
     0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    @@ -65279,7 +68997,7 @@ unsigned char matmul_id_q5_k_f32_data[] = {
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xd2,0x01,0x00,0x00,
     0x51,0x00,0x00,0x00,0xd1,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xd3,0x01,0x00,0x00,
    -0x84,0x00,0x00,0x00,0xd2,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x84,0x00,0x00,0x00,0xd2,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xd4,0x01,0x00,0x00,
     0x86,0x00,0x00,0x00,0xd3,0x01,0x00,0x00,0x4e,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xf0,0x01,0x00,0x00,
    @@ -65311,7 +69029,7 @@ unsigned char matmul_id_q5_k_f32_data[] = {
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x28,0x02,0x00,0x00,
     0x86,0x00,0x00,0x00,0x27,0x02,0x00,0x00,0x4e,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x2b,0x02,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x2e,0x02,0x00,0x00,
     0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x49,0x02,0x00,0x00,
    @@ -65480,7 +69198,7 @@ unsigned char matmul_id_q5_k_f32_data[] = {
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,
     0xb2,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xbe,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xbe,0x00,0x00,0x00,
     0xf8,0x00,0x02,0x00,0xbe,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
     0x06,0x00,0x00,0x00,0x64,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
     0xa7,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,
    @@ -65521,595 +69239,593 @@ unsigned char matmul_id_q5_k_f32_data[] = {
     0x76,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xf4,0x00,0x00,0x00,0xf1,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,
    -0xf4,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0xf4,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,0x7a,0x03,0x00,0x00,
     0xf5,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xf8,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,0x50,0x00,0x00,0x00,
     0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,
    -0xf1,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x50,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x01,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,0x00,0x01,0x00,0x00,
    -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x05,0x01,0x00,0x00,
    -0xf8,0x00,0x00,0x00,0x04,0x01,0x00,0x00,0x89,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0xf8,0x00,0x00,0x00,
    -0x04,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x0c,0x01,0x00,0x00,0x08,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,
    -0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0f,0x01,0x00,0x00,
    -0x08,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,0x86,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x11,0x01,0x00,0x00,0x0f,0x01,0x00,0x00,
    -0x10,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x14,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x16,0x01,0x00,0x00,
    -0x14,0x01,0x00,0x00,0x11,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x19,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,
    +0xf1,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,
    +0x50,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x05,0x01,0x00,0x00,0xf8,0x00,0x00,0x00,0x04,0x01,0x00,0x00,
    +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x08,0x01,0x00,0x00,
    +0xf8,0x00,0x00,0x00,0x04,0x01,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,0x08,0x01,0x00,0x00,
     0x0b,0x01,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x1b,0x01,0x00,0x00,0x08,0x01,0x00,0x00,0x10,0x01,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,
    -0x1b,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x1d,0x01,0x00,0x00,0x19,0x01,0x00,0x00,
    -0x1c,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x26,0x01,0x00,0x00,0x08,0x01,0x00,0x00,0x10,0x01,0x00,0x00,
    -0xc4,0x00,0x05,0x00,0x14,0x00,0x00,0x00,0x27,0x01,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0x26,0x01,0x00,0x00,0x72,0x00,0x04,0x00,
    -0x28,0x01,0x00,0x00,0x29,0x01,0x00,0x00,0x27,0x01,0x00,0x00,
    -0x7c,0x00,0x04,0x00,0x22,0x01,0x00,0x00,0x2a,0x01,0x00,0x00,
    -0x29,0x01,0x00,0x00,0x41,0x00,0x07,0x00,0x3a,0x01,0x00,0x00,
    -0x3b,0x01,0x00,0x00,0x38,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    -0x05,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x2f,0x01,0x00,0x00,0x3c,0x01,0x00,0x00,0x3b,0x01,0x00,0x00,
    -0x73,0x00,0x04,0x00,0x2b,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,
    -0x3c,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0x40,0x01,0x00,0x00,0x16,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,
    -0xf7,0x00,0x03,0x00,0x42,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x40,0x01,0x00,0x00,0x41,0x01,0x00,0x00,
    -0x5a,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x41,0x01,0x00,0x00,
    -0x41,0x00,0x08,0x00,0x46,0x01,0x00,0x00,0x47,0x01,0x00,0x00,
    +0x0f,0x01,0x00,0x00,0x08,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x11,0x01,0x00,0x00,
    +0x0f,0x01,0x00,0x00,0x10,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x14,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x0c,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x16,0x01,0x00,0x00,0x14,0x01,0x00,0x00,0x11,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x19,0x01,0x00,0x00,
    +0x0c,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,0x89,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x1b,0x01,0x00,0x00,0x08,0x01,0x00,0x00,
    +0x10,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x1c,0x01,0x00,0x00,0x1b,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1d,0x01,0x00,0x00,
    +0x19,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x26,0x01,0x00,0x00,0x08,0x01,0x00,0x00,
    +0x10,0x01,0x00,0x00,0xc4,0x00,0x05,0x00,0x14,0x00,0x00,0x00,
    +0x27,0x01,0x00,0x00,0x9a,0x00,0x00,0x00,0x26,0x01,0x00,0x00,
    +0x72,0x00,0x04,0x00,0x28,0x01,0x00,0x00,0x29,0x01,0x00,0x00,
    +0x27,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x22,0x01,0x00,0x00,
    +0x2a,0x01,0x00,0x00,0x29,0x01,0x00,0x00,0x41,0x00,0x07,0x00,
    +0x3a,0x01,0x00,0x00,0x3b,0x01,0x00,0x00,0x38,0x01,0x00,0x00,
    +0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x2f,0x01,0x00,0x00,0x3c,0x01,0x00,0x00,
    +0x3b,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x2b,0x01,0x00,0x00,
    +0x3d,0x01,0x00,0x00,0x3c,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x40,0x01,0x00,0x00,0x16,0x01,0x00,0x00,
    +0x3f,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,0x42,0x01,0x00,0x00,
    +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x40,0x01,0x00,0x00,
    +0x41,0x01,0x00,0x00,0x5a,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x41,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x46,0x01,0x00,0x00,
    +0x47,0x01,0x00,0x00,0x38,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    +0x05,0x01,0x00,0x00,0x9a,0x00,0x00,0x00,0x16,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x22,0x01,0x00,0x00,0x48,0x01,0x00,0x00,
    +0x47,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x49,0x01,0x00,0x00,0x48,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    +0x14,0x00,0x00,0x00,0x4a,0x01,0x00,0x00,0x49,0x01,0x00,0x00,
    +0xc7,0x00,0x05,0x00,0x14,0x00,0x00,0x00,0x4c,0x01,0x00,0x00,
    +0x4a,0x01,0x00,0x00,0x4b,0x01,0x00,0x00,0x72,0x00,0x04,0x00,
    +0x28,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,0x4c,0x01,0x00,0x00,
    +0x7c,0x00,0x04,0x00,0x22,0x01,0x00,0x00,0x4e,0x01,0x00,0x00,
    +0x4d,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x52,0x01,0x00,0x00,0x16,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x46,0x01,0x00,0x00,0x53,0x01,0x00,0x00,
     0x38,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0x16,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x22,0x01,0x00,0x00,0x48,0x01,0x00,0x00,0x47,0x01,0x00,0x00,
    -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x49,0x01,0x00,0x00,
    -0x48,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    -0x4a,0x01,0x00,0x00,0x49,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
    -0x14,0x00,0x00,0x00,0x4c,0x01,0x00,0x00,0x4a,0x01,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0x52,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x22,0x01,0x00,0x00,0x54,0x01,0x00,0x00,0x53,0x01,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x55,0x01,0x00,0x00,
    +0x54,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    +0x56,0x01,0x00,0x00,0x55,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
    +0x14,0x00,0x00,0x00,0x57,0x01,0x00,0x00,0x56,0x01,0x00,0x00,
     0x4b,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x28,0x01,0x00,0x00,
    -0x4d,0x01,0x00,0x00,0x4c,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    -0x22,0x01,0x00,0x00,0x4e,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x52,0x01,0x00,0x00,
    -0x16,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x46,0x01,0x00,0x00,0x53,0x01,0x00,0x00,0x38,0x01,0x00,0x00,
    -0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0x52,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x22,0x01,0x00,0x00,
    -0x54,0x01,0x00,0x00,0x53,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x55,0x01,0x00,0x00,0x54,0x01,0x00,0x00,
    -0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x56,0x01,0x00,0x00,
    -0x55,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x14,0x00,0x00,0x00,
    -0x57,0x01,0x00,0x00,0x56,0x01,0x00,0x00,0x4b,0x01,0x00,0x00,
    -0x72,0x00,0x04,0x00,0x28,0x01,0x00,0x00,0x58,0x01,0x00,0x00,
    -0x57,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x22,0x01,0x00,0x00,
    -0x59,0x01,0x00,0x00,0x58,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x42,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x5a,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,
    -0x16,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x46,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,0x38,0x01,0x00,0x00,
    -0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0x5d,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x22,0x01,0x00,0x00,
    -0x5f,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x60,0x01,0x00,0x00,0x5f,0x01,0x00,0x00,
    -0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x61,0x01,0x00,0x00,
    -0x60,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x14,0x00,0x00,0x00,
    -0x63,0x01,0x00,0x00,0x61,0x01,0x00,0x00,0x62,0x01,0x00,0x00,
    -0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x66,0x01,0x00,0x00,
    -0x16,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x46,0x01,0x00,0x00,0x67,0x01,0x00,0x00,0x38,0x01,0x00,0x00,
    -0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0x66,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x22,0x01,0x00,0x00,
    -0x68,0x01,0x00,0x00,0x67,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,
    -0x22,0x01,0x00,0x00,0x69,0x01,0x00,0x00,0x68,0x01,0x00,0x00,
    -0xaf,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x22,0x01,0x00,0x00,
    -0x6b,0x01,0x00,0x00,0x69,0x01,0x00,0x00,0x6a,0x01,0x00,0x00,
    -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x6c,0x01,0x00,0x00,
    -0x6b,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    -0x6d,0x01,0x00,0x00,0x6c,0x01,0x00,0x00,0xc5,0x00,0x05,0x00,
    -0x14,0x00,0x00,0x00,0x6e,0x01,0x00,0x00,0x63,0x01,0x00,0x00,
    -0x6d,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x28,0x01,0x00,0x00,
    -0x6f,0x01,0x00,0x00,0x6e,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    -0x22,0x01,0x00,0x00,0x70,0x01,0x00,0x00,0x6f,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x22,0x01,0x00,0x00,0x75,0x01,0x00,0x00,
    -0x5e,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x22,0x01,0x00,0x00,
    -0x76,0x01,0x00,0x00,0x75,0x01,0x00,0x00,0x6a,0x01,0x00,0x00,
    -0x41,0x00,0x08,0x00,0x46,0x01,0x00,0x00,0x79,0x01,0x00,0x00,
    -0x38,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0x16,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x22,0x01,0x00,0x00,0x7a,0x01,0x00,0x00,0x79,0x01,0x00,0x00,
    -0xc2,0x00,0x05,0x00,0x22,0x01,0x00,0x00,0x7b,0x01,0x00,0x00,
    -0x7a,0x01,0x00,0x00,0xaf,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,
    -0x22,0x01,0x00,0x00,0x7c,0x01,0x00,0x00,0x7b,0x01,0x00,0x00,
    -0x6a,0x01,0x00,0x00,0xc5,0x00,0x05,0x00,0x22,0x01,0x00,0x00,
    -0x7d,0x01,0x00,0x00,0x76,0x01,0x00,0x00,0x7c,0x01,0x00,0x00,
    +0x58,0x01,0x00,0x00,0x57,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    +0x22,0x01,0x00,0x00,0x59,0x01,0x00,0x00,0x58,0x01,0x00,0x00,
     0xf9,0x00,0x02,0x00,0x42,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x42,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x22,0x01,0x00,0x00,
    -0x9d,0x03,0x00,0x00,0x59,0x01,0x00,0x00,0x41,0x01,0x00,0x00,
    -0x7d,0x01,0x00,0x00,0x5a,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x22,0x01,0x00,0x00,0x9c,0x03,0x00,0x00,0x4e,0x01,0x00,0x00,
    -0x41,0x01,0x00,0x00,0x70,0x01,0x00,0x00,0x5a,0x01,0x00,0x00,
    -0x51,0x00,0x05,0x00,0xcf,0x00,0x00,0x00,0x80,0x01,0x00,0x00,
    -0x3d,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x04,0x00,
    -0xcf,0x00,0x00,0x00,0x82,0x01,0x00,0x00,0x9c,0x03,0x00,0x00,
    -0x85,0x00,0x05,0x00,0xcf,0x00,0x00,0x00,0x83,0x01,0x00,0x00,
    -0x80,0x01,0x00,0x00,0x82,0x01,0x00,0x00,0x51,0x00,0x05,0x00,
    -0xcf,0x00,0x00,0x00,0x86,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x70,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    -0x88,0x01,0x00,0x00,0x9d,0x03,0x00,0x00,0x85,0x00,0x05,0x00,
    -0xcf,0x00,0x00,0x00,0x89,0x01,0x00,0x00,0x86,0x01,0x00,0x00,
    -0x88,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x46,0x01,0x00,0x00,
    -0x93,0x01,0x00,0x00,0x38,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    -0x05,0x01,0x00,0x00,0xb5,0x00,0x00,0x00,0x1d,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x22,0x01,0x00,0x00,0x94,0x01,0x00,0x00,
    -0x93,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x96,0x01,0x00,0x00,0x11,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,
    -0xc2,0x00,0x05,0x00,0x22,0x01,0x00,0x00,0x97,0x01,0x00,0x00,
    -0x94,0x01,0x00,0x00,0x96,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x98,0x01,0x00,0x00,0x97,0x01,0x00,0x00,
    -0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x99,0x01,0x00,0x00,
    -0x98,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x14,0x00,0x00,0x00,
    -0x9a,0x01,0x00,0x00,0x99,0x01,0x00,0x00,0x62,0x01,0x00,0x00,
    -0x6f,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0x9b,0x01,0x00,0x00,
    -0x9a,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x46,0x01,0x00,0x00,
    -0x9e,0x01,0x00,0x00,0x38,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    -0x05,0x01,0x00,0x00,0xaa,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x22,0x01,0x00,0x00,0x9f,0x01,0x00,0x00,
    -0x9e,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x22,0x01,0x00,0x00,
    -0xa1,0x01,0x00,0x00,0x9f,0x01,0x00,0x00,0x2a,0x01,0x00,0x00,
    -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa2,0x01,0x00,0x00,
    -0xa1,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    -0xa3,0x01,0x00,0x00,0xa2,0x01,0x00,0x00,0xab,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0xa4,0x01,0x00,0x00,0xa3,0x01,0x00,0x00,
    -0x15,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,0x14,0x00,0x00,0x00,
    -0xa6,0x01,0x00,0x00,0xa4,0x01,0x00,0x00,0xa5,0x01,0x00,0x00,
    -0x15,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    -0xa7,0x01,0x00,0x00,0xa6,0x01,0x00,0x00,0x81,0x00,0x05,0x00,
    -0xcf,0x00,0x00,0x00,0xa8,0x01,0x00,0x00,0x9b,0x01,0x00,0x00,
    -0xa7,0x01,0x00,0x00,0x7f,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    -0xd9,0x03,0x00,0x00,0x89,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,
    -0xcf,0x00,0x00,0x00,0xab,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x32,0x00,0x00,0x00,0x83,0x01,0x00,0x00,0xa8,0x01,0x00,0x00,
    -0xd9,0x03,0x00,0x00,0x73,0x00,0x04,0x00,0x2e,0x01,0x00,0x00,
    -0xac,0x01,0x00,0x00,0xab,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xad,0x01,0x00,0x00,0xae,0x01,0x00,0x00,0x8e,0x01,0x00,0x00,
    -0x01,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xae,0x01,0x00,0x00,
    -0xac,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xb0,0x01,0x00,0x00,0x01,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb4,0x01,0x00,0x00,
    -0x1d,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x46,0x01,0x00,0x00,0xb5,0x01,0x00,0x00,0x38,0x01,0x00,0x00,
    +0x5a,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x5d,0x01,0x00,0x00,0x16,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x46,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,
    +0x38,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x22,0x01,0x00,0x00,0x5f,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x60,0x01,0x00,0x00,
    +0x5f,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    +0x61,0x01,0x00,0x00,0x60,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
    +0x14,0x00,0x00,0x00,0x63,0x01,0x00,0x00,0x61,0x01,0x00,0x00,
    +0x62,0x01,0x00,0x00,0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x66,0x01,0x00,0x00,0x16,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x46,0x01,0x00,0x00,0x67,0x01,0x00,0x00,
    +0x38,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0x66,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x22,0x01,0x00,0x00,0x68,0x01,0x00,0x00,0x67,0x01,0x00,0x00,
    +0xc2,0x00,0x05,0x00,0x22,0x01,0x00,0x00,0x69,0x01,0x00,0x00,
    +0x68,0x01,0x00,0x00,0xaf,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,
    +0x22,0x01,0x00,0x00,0x6b,0x01,0x00,0x00,0x69,0x01,0x00,0x00,
    +0x6a,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x6c,0x01,0x00,0x00,0x6b,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    +0x14,0x00,0x00,0x00,0x6d,0x01,0x00,0x00,0x6c,0x01,0x00,0x00,
    +0xc5,0x00,0x05,0x00,0x14,0x00,0x00,0x00,0x6e,0x01,0x00,0x00,
    +0x63,0x01,0x00,0x00,0x6d,0x01,0x00,0x00,0x72,0x00,0x04,0x00,
    +0x28,0x01,0x00,0x00,0x6f,0x01,0x00,0x00,0x6e,0x01,0x00,0x00,
    +0x7c,0x00,0x04,0x00,0x22,0x01,0x00,0x00,0x70,0x01,0x00,0x00,
    +0x6f,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x22,0x01,0x00,0x00,
    +0x75,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,
    +0x22,0x01,0x00,0x00,0x76,0x01,0x00,0x00,0x75,0x01,0x00,0x00,
    +0x6a,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x46,0x01,0x00,0x00,
    +0x79,0x01,0x00,0x00,0x38,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    +0x05,0x01,0x00,0x00,0x9a,0x00,0x00,0x00,0x16,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x22,0x01,0x00,0x00,0x7a,0x01,0x00,0x00,
    +0x79,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x22,0x01,0x00,0x00,
    +0x7b,0x01,0x00,0x00,0x7a,0x01,0x00,0x00,0xaf,0x00,0x00,0x00,
    +0xc4,0x00,0x05,0x00,0x22,0x01,0x00,0x00,0x7c,0x01,0x00,0x00,
    +0x7b,0x01,0x00,0x00,0x6a,0x01,0x00,0x00,0xc5,0x00,0x05,0x00,
    +0x22,0x01,0x00,0x00,0x7d,0x01,0x00,0x00,0x76,0x01,0x00,0x00,
    +0x7c,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x42,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x42,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x22,0x01,0x00,0x00,0x9d,0x03,0x00,0x00,0x59,0x01,0x00,0x00,
    +0x41,0x01,0x00,0x00,0x7d,0x01,0x00,0x00,0x5a,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x22,0x01,0x00,0x00,0x9c,0x03,0x00,0x00,
    +0x4e,0x01,0x00,0x00,0x41,0x01,0x00,0x00,0x70,0x01,0x00,0x00,
    +0x5a,0x01,0x00,0x00,0x51,0x00,0x05,0x00,0xcf,0x00,0x00,0x00,
    +0x80,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x70,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0x82,0x01,0x00,0x00,
    +0x9c,0x03,0x00,0x00,0x85,0x00,0x05,0x00,0xcf,0x00,0x00,0x00,
    +0x83,0x01,0x00,0x00,0x80,0x01,0x00,0x00,0x82,0x01,0x00,0x00,
    +0x51,0x00,0x05,0x00,0xcf,0x00,0x00,0x00,0x86,0x01,0x00,0x00,
    +0x3d,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x70,0x00,0x04,0x00,
    +0xcf,0x00,0x00,0x00,0x88,0x01,0x00,0x00,0x9d,0x03,0x00,0x00,
    +0x85,0x00,0x05,0x00,0xcf,0x00,0x00,0x00,0x89,0x01,0x00,0x00,
    +0x86,0x01,0x00,0x00,0x88,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x46,0x01,0x00,0x00,0x93,0x01,0x00,0x00,0x38,0x01,0x00,0x00,
     0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0xb5,0x00,0x00,0x00,
    -0xb4,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x22,0x01,0x00,0x00,
    -0xb6,0x01,0x00,0x00,0xb5,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,
    -0x22,0x01,0x00,0x00,0xb9,0x01,0x00,0x00,0xb6,0x01,0x00,0x00,
    -0x96,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0xba,0x01,0x00,0x00,0xb9,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    -0x14,0x00,0x00,0x00,0xbb,0x01,0x00,0x00,0xba,0x01,0x00,0x00,
    -0xc7,0x00,0x05,0x00,0x14,0x00,0x00,0x00,0xbc,0x01,0x00,0x00,
    -0xbb,0x01,0x00,0x00,0x62,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,
    -0xcf,0x00,0x00,0x00,0xbd,0x01,0x00,0x00,0xbc,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc0,0x01,0x00,0x00,
    -0x1c,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x46,0x01,0x00,0x00,0xc1,0x01,0x00,0x00,0x38,0x01,0x00,0x00,
    +0x1d,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x22,0x01,0x00,0x00,
    +0x94,0x01,0x00,0x00,0x93,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x96,0x01,0x00,0x00,0x11,0x01,0x00,0x00,
    +0x3f,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x22,0x01,0x00,0x00,
    +0x97,0x01,0x00,0x00,0x94,0x01,0x00,0x00,0x96,0x01,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x98,0x01,0x00,0x00,
    +0x97,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    +0x99,0x01,0x00,0x00,0x98,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
    +0x14,0x00,0x00,0x00,0x9a,0x01,0x00,0x00,0x99,0x01,0x00,0x00,
    +0x62,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    +0x9b,0x01,0x00,0x00,0x9a,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x46,0x01,0x00,0x00,0x9e,0x01,0x00,0x00,0x38,0x01,0x00,0x00,
     0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0xaa,0x00,0x00,0x00,
    -0xc0,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x22,0x01,0x00,0x00,
    -0xc2,0x01,0x00,0x00,0xc1,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
    -0x22,0x01,0x00,0x00,0xc4,0x01,0x00,0x00,0xc2,0x01,0x00,0x00,
    +0x1c,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x22,0x01,0x00,0x00,
    +0x9f,0x01,0x00,0x00,0x9e,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
    +0x22,0x01,0x00,0x00,0xa1,0x01,0x00,0x00,0x9f,0x01,0x00,0x00,
     0x2a,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0xc5,0x01,0x00,0x00,0xc4,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    -0x14,0x00,0x00,0x00,0xc6,0x01,0x00,0x00,0xc5,0x01,0x00,0x00,
    -0xab,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xc7,0x01,0x00,0x00,
    -0xc6,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,
    -0x14,0x00,0x00,0x00,0xc8,0x01,0x00,0x00,0xc7,0x01,0x00,0x00,
    +0xa2,0x01,0x00,0x00,0xa1,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    +0x14,0x00,0x00,0x00,0xa3,0x01,0x00,0x00,0xa2,0x01,0x00,0x00,
    +0xab,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xa4,0x01,0x00,0x00,
    +0xa3,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,
    +0x14,0x00,0x00,0x00,0xa6,0x01,0x00,0x00,0xa4,0x01,0x00,0x00,
     0xa5,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,
    -0xcf,0x00,0x00,0x00,0xc9,0x01,0x00,0x00,0xc8,0x01,0x00,0x00,
    -0x81,0x00,0x05,0x00,0xcf,0x00,0x00,0x00,0xca,0x01,0x00,0x00,
    -0xbd,0x01,0x00,0x00,0xc9,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,
    -0xcf,0x00,0x00,0x00,0xcd,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x32,0x00,0x00,0x00,0x83,0x01,0x00,0x00,0xca,0x01,0x00,0x00,
    -0xd9,0x03,0x00,0x00,0x73,0x00,0x04,0x00,0x2e,0x01,0x00,0x00,
    -0xce,0x01,0x00,0x00,0xcd,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xad,0x01,0x00,0x00,0xcf,0x01,0x00,0x00,0x8e,0x01,0x00,0x00,
    -0xb0,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xcf,0x01,0x00,0x00,
    -0xce,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xe9,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xe9,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xd6,0x01,0x00,0x00,0x76,0x03,0x00,0x00,
    -0xd4,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xe6,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xe8,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xd8,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xd8,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x77,0x03,0x00,0x00,
    -0x20,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0x2a,0x02,0x00,0x00,
    -0xdb,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0xde,0x01,0x00,0x00,0x77,0x03,0x00,0x00,0xa2,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xda,0x01,0x00,0x00,0xdb,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xde,0x01,0x00,0x00,
    -0xd9,0x01,0x00,0x00,0xda,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xd9,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xe3,0x01,0x00,0x00,0xa3,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe5,0x01,0x00,0x00,
    -0xe3,0x01,0x00,0x00,0x77,0x03,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0xe8,0x01,0x00,0x00,0xe5,0x01,0x00,0x00,
    -0x63,0x03,0x00,0x00,0xf7,0x00,0x03,0x00,0xea,0x01,0x00,0x00,
    -0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xe8,0x01,0x00,0x00,
    -0xe9,0x01,0x00,0x00,0x1c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xe9,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x97,0x00,0x00,0x00,
    -0xee,0x01,0x00,0x00,0x90,0x00,0x00,0x00,0xe5,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,0xef,0x01,0x00,0x00,
    -0xee,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xf7,0x01,0x00,0x00,0x5f,0x00,0x00,0x00,0x77,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf9,0x01,0x00,0x00,
    -0xf7,0x01,0x00,0x00,0xf8,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xfb,0x01,0x00,0x00,0xf9,0x01,0x00,0x00,
    -0x5a,0x00,0x00,0x00,0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,
    -0x03,0x02,0x00,0x00,0xef,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x04,0x02,0x00,0x00,
    -0x03,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
    -0x06,0x02,0x00,0x00,0x13,0x00,0x00,0x00,0x05,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x07,0x02,0x00,0x00,
    -0x06,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x08,0x02,0x00,0x00,0x04,0x02,0x00,0x00,0x07,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x09,0x02,0x00,0x00,
    -0x7e,0x03,0x00,0x00,0x08,0x02,0x00,0x00,0x51,0x00,0x05,0x00,
    -0x8b,0x00,0x00,0x00,0x0b,0x02,0x00,0x00,0xef,0x01,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x0c,0x02,0x00,0x00,0x0b,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x16,0x00,0x00,0x00,0x0e,0x02,0x00,0x00,0x13,0x00,0x00,0x00,
    -0x0d,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x0f,0x02,0x00,0x00,0x0e,0x02,0x00,0x00,0x89,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x10,0x02,0x00,0x00,0x0c,0x02,0x00,0x00,
    -0x0f,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
    -0x11,0x02,0x00,0x00,0x13,0x00,0x00,0x00,0x6a,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x12,0x02,0x00,0x00,
    -0x11,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x13,0x02,0x00,0x00,0x10,0x02,0x00,0x00,0x12,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x14,0x02,0x00,0x00,
    -0x09,0x02,0x00,0x00,0x13,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x16,0x02,0x00,0x00,0x14,0x02,0x00,0x00,
    -0x5a,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x17,0x02,0x00,0x00,
    -0x18,0x02,0x00,0x00,0xff,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    -0x16,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    -0x19,0x02,0x00,0x00,0x18,0x02,0x00,0x00,0x73,0x00,0x04,0x00,
    -0x2e,0x01,0x00,0x00,0x1a,0x02,0x00,0x00,0x19,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xad,0x01,0x00,0x00,0x1b,0x02,0x00,0x00,
    -0xf4,0x01,0x00,0x00,0xfb,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x1b,0x02,0x00,0x00,0x1a,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xea,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x1c,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1f,0x02,0x00,0x00,
    -0x5f,0x00,0x00,0x00,0x77,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x21,0x02,0x00,0x00,0x1f,0x02,0x00,0x00,
    -0x20,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x23,0x02,0x00,0x00,0x21,0x02,0x00,0x00,0x5a,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xad,0x01,0x00,0x00,0x25,0x02,0x00,0x00,
    -0xf4,0x01,0x00,0x00,0x23,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x25,0x02,0x00,0x00,0x24,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xea,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xea,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xdb,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xdb,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x2a,0x02,0x00,0x00,0x77,0x03,0x00,0x00,0x28,0x02,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xa7,0x01,0x00,0x00,0xa6,0x01,0x00,0x00,
    +0x81,0x00,0x05,0x00,0xcf,0x00,0x00,0x00,0xa8,0x01,0x00,0x00,
    +0x9b,0x01,0x00,0x00,0xa7,0x01,0x00,0x00,0x7f,0x00,0x04,0x00,
    +0xcf,0x00,0x00,0x00,0xd9,0x03,0x00,0x00,0x89,0x01,0x00,0x00,
    +0x0c,0x00,0x08,0x00,0xcf,0x00,0x00,0x00,0xab,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x83,0x01,0x00,0x00,
    +0xa8,0x01,0x00,0x00,0xd9,0x03,0x00,0x00,0x73,0x00,0x04,0x00,
    +0x2e,0x01,0x00,0x00,0xac,0x01,0x00,0x00,0xab,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xad,0x01,0x00,0x00,0xae,0x01,0x00,0x00,
    +0x8e,0x01,0x00,0x00,0x01,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0xae,0x01,0x00,0x00,0xac,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xb0,0x01,0x00,0x00,0x01,0x01,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xb4,0x01,0x00,0x00,0x1d,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x46,0x01,0x00,0x00,0xb5,0x01,0x00,0x00,
    +0x38,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,
    +0xb5,0x00,0x00,0x00,0xb4,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x22,0x01,0x00,0x00,0xb6,0x01,0x00,0x00,0xb5,0x01,0x00,0x00,
    +0xc2,0x00,0x05,0x00,0x22,0x01,0x00,0x00,0xb9,0x01,0x00,0x00,
    +0xb6,0x01,0x00,0x00,0x96,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0xba,0x01,0x00,0x00,0xb9,0x01,0x00,0x00,
    +0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0xbb,0x01,0x00,0x00,
    +0xba,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x14,0x00,0x00,0x00,
    +0xbc,0x01,0x00,0x00,0xbb,0x01,0x00,0x00,0x62,0x01,0x00,0x00,
    +0x6f,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0xbd,0x01,0x00,0x00,
    +0xbc,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xc0,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x46,0x01,0x00,0x00,0xc1,0x01,0x00,0x00,
    +0x38,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,
    +0xaa,0x00,0x00,0x00,0xc0,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x22,0x01,0x00,0x00,0xc2,0x01,0x00,0x00,0xc1,0x01,0x00,0x00,
    +0xc7,0x00,0x05,0x00,0x22,0x01,0x00,0x00,0xc4,0x01,0x00,0x00,
    +0xc2,0x01,0x00,0x00,0x2a,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0xc5,0x01,0x00,0x00,0xc4,0x01,0x00,0x00,
    +0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0xc6,0x01,0x00,0x00,
    +0xc5,0x01,0x00,0x00,0xab,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0xc7,0x01,0x00,0x00,0xc6,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    +0xa9,0x00,0x06,0x00,0x14,0x00,0x00,0x00,0xc8,0x01,0x00,0x00,
    +0xc7,0x01,0x00,0x00,0xa5,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    +0x6f,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0xc9,0x01,0x00,0x00,
    +0xc8,0x01,0x00,0x00,0x81,0x00,0x05,0x00,0xcf,0x00,0x00,0x00,
    +0xca,0x01,0x00,0x00,0xbd,0x01,0x00,0x00,0xc9,0x01,0x00,0x00,
    +0x0c,0x00,0x08,0x00,0xcf,0x00,0x00,0x00,0xcd,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x83,0x01,0x00,0x00,
    +0xca,0x01,0x00,0x00,0xd9,0x03,0x00,0x00,0x73,0x00,0x04,0x00,
    +0x2e,0x01,0x00,0x00,0xce,0x01,0x00,0x00,0xcd,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xad,0x01,0x00,0x00,0xcf,0x01,0x00,0x00,
    +0x8e,0x01,0x00,0x00,0xb0,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0xcf,0x01,0x00,0x00,0xce,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xe9,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xe9,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd6,0x01,0x00,0x00,
    +0x76,0x03,0x00,0x00,0xd4,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xe6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xe8,0x00,0x00,0x00,
     0xf9,0x00,0x02,0x00,0xd8,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xda,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x2d,0x02,0x00,0x00,0x7a,0x03,0x00,0x00,
    -0x2b,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x30,0x02,0x00,0x00,0x7e,0x03,0x00,0x00,0x2e,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x32,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x32,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x80,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0xda,0x01,0x00,0x00,
    -0xdc,0x02,0x00,0x00,0x35,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0x38,0x02,0x00,0x00,0x80,0x03,0x00,0x00,
    -0x4e,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x34,0x02,0x00,0x00,
    -0x35,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x38,0x02,0x00,0x00,0x33,0x02,0x00,0x00,0x34,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x33,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x3a,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x3a,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x84,0x03,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x33,0x02,0x00,0x00,0x66,0x02,0x00,0x00,
    -0x3d,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0x40,0x02,0x00,0x00,0x84,0x03,0x00,0x00,0x42,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x3c,0x02,0x00,0x00,0x3d,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x40,0x02,0x00,0x00,
    -0x3b,0x02,0x00,0x00,0x3c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x3b,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x42,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x42,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x96,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x3b,0x02,0x00,0x00,0x64,0x02,0x00,0x00,0x43,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x48,0x02,0x00,0x00,
    -0x96,0x03,0x00,0x00,0x44,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x44,0x02,0x00,0x00,0x43,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x48,0x02,0x00,0x00,0x43,0x02,0x00,0x00,
    -0x44,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x43,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4e,0x02,0x00,0x00,
    -0x84,0x03,0x00,0x00,0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x50,0x02,0x00,0x00,0x4e,0x02,0x00,0x00,
    -0x96,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x52,0x02,0x00,0x00,0x37,0x00,0x00,0x00,0x35,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x54,0x02,0x00,0x00,
    -0x84,0x03,0x00,0x00,0x43,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x55,0x02,0x00,0x00,0x52,0x02,0x00,0x00,
    -0x54,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x57,0x02,0x00,0x00,0x46,0x00,0x00,0x00,0x44,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x58,0x02,0x00,0x00,
    -0x55,0x02,0x00,0x00,0x57,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x5a,0x02,0x00,0x00,0x58,0x02,0x00,0x00,
    -0x96,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x5c,0x02,0x00,0x00,0x5a,0x02,0x00,0x00,0x5b,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5e,0x02,0x00,0x00,
    -0x5c,0x02,0x00,0x00,0x80,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xad,0x01,0x00,0x00,0x5f,0x02,0x00,0x00,0x8e,0x01,0x00,0x00,
    -0x5e,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x2e,0x01,0x00,0x00,
    -0x60,0x02,0x00,0x00,0x5f,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x61,0x02,0x00,0x00,0x62,0x02,0x00,0x00,0x4c,0x02,0x00,0x00,
    -0x50,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0x62,0x02,0x00,0x00,
    -0x60,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x64,0x02,0x00,0x00,0x96,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x42,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x44,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x3d,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x3d,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x66,0x02,0x00,0x00,0x84,0x03,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x3a,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x3c,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x68,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x68,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x85,0x03,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x3c,0x02,0x00,0x00,0x94,0x02,0x00,0x00,
    -0x6b,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0x6e,0x02,0x00,0x00,0x85,0x03,0x00,0x00,0xcb,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x6a,0x02,0x00,0x00,0x6b,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x6e,0x02,0x00,0x00,
    -0x69,0x02,0x00,0x00,0x6a,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x69,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x70,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x70,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x93,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x69,0x02,0x00,0x00,0x92,0x02,0x00,0x00,0x71,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x76,0x02,0x00,0x00,
    -0x93,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x72,0x02,0x00,0x00,0x71,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x76,0x02,0x00,0x00,0x71,0x02,0x00,0x00,
    -0x72,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x71,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7c,0x02,0x00,0x00,
    -0x85,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x7e,0x02,0x00,0x00,0x7c,0x02,0x00,0x00,
    -0x93,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x80,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x83,0x02,0x00,0x00,
    -0x85,0x03,0x00,0x00,0x82,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x84,0x02,0x00,0x00,0x80,0x02,0x00,0x00,
    -0x83,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x86,0x02,0x00,0x00,0x4a,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x87,0x02,0x00,0x00,
    -0x84,0x02,0x00,0x00,0x86,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x89,0x02,0x00,0x00,0x87,0x02,0x00,0x00,
    -0x93,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x8b,0x02,0x00,0x00,0x89,0x02,0x00,0x00,0x8a,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8d,0x02,0x00,0x00,
    -0x8b,0x02,0x00,0x00,0x80,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xad,0x01,0x00,0x00,0x8e,0x02,0x00,0x00,0xf4,0x01,0x00,0x00,
    -0x8d,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x2e,0x01,0x00,0x00,
    -0x8f,0x02,0x00,0x00,0x8e,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x61,0x02,0x00,0x00,0x90,0x02,0x00,0x00,0x7a,0x02,0x00,0x00,
    -0x7e,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0x90,0x02,0x00,0x00,
    -0x8f,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x92,0x02,0x00,0x00,0x93,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x70,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x72,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x6b,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x6b,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x94,0x02,0x00,0x00,0x85,0x03,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x68,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x6a,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x96,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x96,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x86,0x03,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x6a,0x02,0x00,0x00,0xda,0x02,0x00,0x00,
    -0x99,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0x9c,0x02,0x00,0x00,0x86,0x03,0x00,0x00,0xcb,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x98,0x02,0x00,0x00,0x99,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x9c,0x02,0x00,0x00,
    -0x97,0x02,0x00,0x00,0x98,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x97,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x9e,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x9e,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x8a,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x97,0x02,0x00,0x00,0xd8,0x02,0x00,0x00,0xa1,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xa4,0x02,0x00,0x00,
    -0x8a,0x03,0x00,0x00,0x42,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xa0,0x02,0x00,0x00,0xa1,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xa4,0x02,0x00,0x00,0x9f,0x02,0x00,0x00,
    -0xa0,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x9f,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xa6,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xa6,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x8c,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0x9f,0x02,0x00,0x00,
    -0xd6,0x02,0x00,0x00,0xa9,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0xac,0x02,0x00,0x00,0x8c,0x03,0x00,0x00,
    -0xc8,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xa8,0x02,0x00,0x00,
    -0xa9,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xac,0x02,0x00,0x00,0xa7,0x02,0x00,0x00,0xa8,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xa7,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xae,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xae,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x8e,0x03,0x00,0x00,
    -0x20,0x00,0x00,0x00,0xa7,0x02,0x00,0x00,0xd4,0x02,0x00,0x00,
    -0xaf,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0xb4,0x02,0x00,0x00,0x8e,0x03,0x00,0x00,0x44,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xb0,0x02,0x00,0x00,0xaf,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xb4,0x02,0x00,0x00,
    -0xaf,0x02,0x00,0x00,0xb0,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xaf,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xb6,0x02,0x00,0x00,0x86,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb8,0x02,0x00,0x00,
    -0xb6,0x02,0x00,0x00,0x8c,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xba,0x02,0x00,0x00,0xb8,0x02,0x00,0x00,
    -0xb9,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xbc,0x02,0x00,0x00,0x8a,0x03,0x00,0x00,0x44,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbd,0x02,0x00,0x00,
    -0xba,0x02,0x00,0x00,0xbc,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xbf,0x02,0x00,0x00,0xbd,0x02,0x00,0x00,
    -0x8e,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xc3,0x02,0x00,0x00,0xbc,0x02,0x00,0x00,0x8e,0x03,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x61,0x02,0x00,0x00,0xc4,0x02,0x00,0x00,
    -0x4c,0x02,0x00,0x00,0xc3,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x2e,0x01,0x00,0x00,0xc5,0x02,0x00,0x00,0xc4,0x02,0x00,0x00,
    -0x73,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0xc6,0x02,0x00,0x00,
    -0xc5,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x61,0x02,0x00,0x00,
    -0xcb,0x02,0x00,0x00,0x7a,0x02,0x00,0x00,0xb8,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x2e,0x01,0x00,0x00,0xcc,0x02,0x00,0x00,
    -0xcb,0x02,0x00,0x00,0x73,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    -0xcd,0x02,0x00,0x00,0xcc,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xd8,0x00,0x00,0x00,0xcf,0x02,0x00,0x00,0xd5,0x00,0x00,0x00,
    -0xbf,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    -0xd0,0x02,0x00,0x00,0xcf,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,
    -0xcf,0x00,0x00,0x00,0xd1,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x32,0x00,0x00,0x00,0xc6,0x02,0x00,0x00,0xcd,0x02,0x00,0x00,
    -0xd0,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0xcf,0x02,0x00,0x00,
    -0xd1,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xd4,0x02,0x00,0x00,0x8e,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xae,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xb0,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xa9,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xa9,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xd6,0x02,0x00,0x00,0x8c,0x03,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xa6,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xa8,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xa1,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xa1,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd8,0x02,0x00,0x00,
    -0x8a,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x9e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xa0,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x99,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x99,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xda,0x02,0x00,0x00,0x86,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x96,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x98,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x35,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x35,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xdc,0x02,0x00,0x00,0x80,0x03,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x32,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x34,0x02,0x00,0x00,0xe0,0x00,0x04,0x00,
    +0xd8,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x77,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,
    +0x2a,0x02,0x00,0x00,0xdb,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0xde,0x01,0x00,0x00,0x77,0x03,0x00,0x00,
    +0xa2,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xda,0x01,0x00,0x00,
    +0xdb,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xde,0x01,0x00,0x00,0xd9,0x01,0x00,0x00,0xda,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xd9,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xe3,0x01,0x00,0x00,0xa3,0x00,0x00,0x00,
    +0x5f,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xe5,0x01,0x00,0x00,0xe3,0x01,0x00,0x00,0x77,0x03,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xe8,0x01,0x00,0x00,
    +0xe5,0x01,0x00,0x00,0x63,0x03,0x00,0x00,0xf7,0x00,0x03,0x00,
    +0xea,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xe8,0x01,0x00,0x00,0xe9,0x01,0x00,0x00,0x1c,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xe9,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x97,0x00,0x00,0x00,0xee,0x01,0x00,0x00,0x90,0x00,0x00,0x00,
    +0xe5,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,
    +0xef,0x01,0x00,0x00,0xee,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xf7,0x01,0x00,0x00,0x5f,0x00,0x00,0x00,
    +0x77,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xf9,0x01,0x00,0x00,0xf7,0x01,0x00,0x00,0xf8,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfb,0x01,0x00,0x00,
    +0xf9,0x01,0x00,0x00,0x5a,0x00,0x00,0x00,0x51,0x00,0x05,0x00,
    +0x8b,0x00,0x00,0x00,0x03,0x02,0x00,0x00,0xef,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x04,0x02,0x00,0x00,0x03,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x16,0x00,0x00,0x00,0x06,0x02,0x00,0x00,0x13,0x00,0x00,0x00,
    +0x05,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x07,0x02,0x00,0x00,0x06,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x08,0x02,0x00,0x00,0x04,0x02,0x00,0x00,
    +0x07,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x09,0x02,0x00,0x00,0x7e,0x03,0x00,0x00,0x08,0x02,0x00,0x00,
    +0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,0x0b,0x02,0x00,0x00,
    +0xef,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x0c,0x02,0x00,0x00,0x0b,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0x0e,0x02,0x00,0x00,
    +0x13,0x00,0x00,0x00,0x0d,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x0f,0x02,0x00,0x00,0x0e,0x02,0x00,0x00,
    +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x10,0x02,0x00,0x00,
    +0x0c,0x02,0x00,0x00,0x0f,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x16,0x00,0x00,0x00,0x11,0x02,0x00,0x00,0x13,0x00,0x00,0x00,
    +0x6a,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x12,0x02,0x00,0x00,0x11,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x13,0x02,0x00,0x00,0x10,0x02,0x00,0x00,
    +0x12,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x14,0x02,0x00,0x00,0x09,0x02,0x00,0x00,0x13,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x16,0x02,0x00,0x00,
    +0x14,0x02,0x00,0x00,0x5a,0x00,0x00,0x00,0x41,0x00,0x06,0x00,
    +0x17,0x02,0x00,0x00,0x18,0x02,0x00,0x00,0xff,0x01,0x00,0x00,
    +0x15,0x00,0x00,0x00,0x16,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xcf,0x00,0x00,0x00,0x19,0x02,0x00,0x00,0x18,0x02,0x00,0x00,
    +0x73,0x00,0x04,0x00,0x2e,0x01,0x00,0x00,0x1a,0x02,0x00,0x00,
    +0x19,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xad,0x01,0x00,0x00,
    +0x1b,0x02,0x00,0x00,0xf4,0x01,0x00,0x00,0xfb,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x1b,0x02,0x00,0x00,0x1a,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xea,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x1c,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x1f,0x02,0x00,0x00,0x5f,0x00,0x00,0x00,0x77,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x21,0x02,0x00,0x00,
    +0x1f,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x23,0x02,0x00,0x00,0x21,0x02,0x00,0x00,
    +0x5a,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0xad,0x01,0x00,0x00,
    +0x25,0x02,0x00,0x00,0xf4,0x01,0x00,0x00,0x23,0x02,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x25,0x02,0x00,0x00,0x24,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xea,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xea,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xdb,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xdb,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x2a,0x02,0x00,0x00,0x77,0x03,0x00,0x00,
    +0x28,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xd8,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xda,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,
     0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xe0,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xe0,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xde,0x02,0x00,0x00,0x65,0x03,0x00,0x00,0x4e,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xdd,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xdf,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xe3,0x02,0x00,0x00,0x37,0x00,0x00,0x00,0x35,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe4,0x02,0x00,0x00,
    -0xb4,0x00,0x00,0x00,0xe3,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xe9,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,
    -0xc5,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xea,0x02,0x00,0x00,0xa3,0x00,0x00,0x00,0xe9,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xec,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xec,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x66,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,
    -0x55,0x03,0x00,0x00,0xef,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0xf2,0x02,0x00,0x00,0x66,0x03,0x00,0x00,
    -0xcb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xee,0x02,0x00,0x00,
    -0xef,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xf2,0x02,0x00,0x00,0xed,0x02,0x00,0x00,0xee,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xed,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xf4,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xf4,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x67,0x03,0x00,0x00,
    -0x20,0x00,0x00,0x00,0xed,0x02,0x00,0x00,0x53,0x03,0x00,0x00,
    -0xf7,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0xfa,0x02,0x00,0x00,0x67,0x03,0x00,0x00,0x42,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xf6,0x02,0x00,0x00,0xf7,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xfa,0x02,0x00,0x00,
    -0xf5,0x02,0x00,0x00,0xf6,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xf5,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xfe,0x02,0x00,0x00,0x67,0x03,0x00,0x00,0x43,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xff,0x02,0x00,0x00,
    -0xe4,0x02,0x00,0x00,0xfe,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x01,0x03,0x00,0x00,0x46,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2d,0x02,0x00,0x00,
    +0x7a,0x03,0x00,0x00,0x2b,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x30,0x02,0x00,0x00,0x7e,0x03,0x00,0x00,
    +0x2e,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x32,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x32,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x80,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    +0xda,0x01,0x00,0x00,0xdc,0x02,0x00,0x00,0x35,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x38,0x02,0x00,0x00,
    +0x80,0x03,0x00,0x00,0x4e,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x34,0x02,0x00,0x00,0x35,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x38,0x02,0x00,0x00,0x33,0x02,0x00,0x00,
    +0x34,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x33,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x3a,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x3a,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x84,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0x33,0x02,0x00,0x00,
    +0x66,0x02,0x00,0x00,0x3d,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x40,0x02,0x00,0x00,0x84,0x03,0x00,0x00,
    +0x42,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x3c,0x02,0x00,0x00,
    +0x3d,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x40,0x02,0x00,0x00,0x3b,0x02,0x00,0x00,0x3c,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x3b,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x42,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x42,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x96,0x03,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x3b,0x02,0x00,0x00,0x64,0x02,0x00,0x00,
    +0x43,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0x48,0x02,0x00,0x00,0x96,0x03,0x00,0x00,0x44,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x44,0x02,0x00,0x00,0x43,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x48,0x02,0x00,0x00,
    +0x43,0x02,0x00,0x00,0x44,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x43,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x4e,0x02,0x00,0x00,0x84,0x03,0x00,0x00,0x44,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x50,0x02,0x00,0x00,
    +0x4e,0x02,0x00,0x00,0x96,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x52,0x02,0x00,0x00,0x37,0x00,0x00,0x00,
    +0x35,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x54,0x02,0x00,0x00,0x84,0x03,0x00,0x00,0x43,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x55,0x02,0x00,0x00,
    +0x52,0x02,0x00,0x00,0x54,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x57,0x02,0x00,0x00,0x46,0x00,0x00,0x00,
     0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x02,0x03,0x00,0x00,0xff,0x02,0x00,0x00,0x01,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x06,0x03,0x00,0x00,
    -0x66,0x03,0x00,0x00,0x82,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x07,0x03,0x00,0x00,0xea,0x02,0x00,0x00,
    -0x06,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x09,0x03,0x00,0x00,0x4a,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0a,0x03,0x00,0x00,
    -0x07,0x03,0x00,0x00,0x09,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x0c,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x0c,0x03,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x69,0x03,0x00,0x00,
    -0x20,0x00,0x00,0x00,0xf5,0x02,0x00,0x00,0x51,0x03,0x00,0x00,
    -0x0f,0x03,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0x12,0x03,0x00,0x00,0x69,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x0e,0x03,0x00,0x00,0x0f,0x03,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x12,0x03,0x00,0x00,
    -0x0d,0x03,0x00,0x00,0x0e,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x0d,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x16,0x03,0x00,0x00,0x0a,0x03,0x00,0x00,0x69,0x03,0x00,0x00,
    -0xae,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x19,0x03,0x00,0x00,
    -0x16,0x03,0x00,0x00,0x63,0x03,0x00,0x00,0xf7,0x00,0x03,0x00,
    -0x1b,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x19,0x03,0x00,0x00,0x1a,0x03,0x00,0x00,0x1b,0x03,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x1a,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x0e,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x1b,0x03,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x97,0x00,0x00,0x00,0x1f,0x03,0x00,0x00,
    -0x90,0x00,0x00,0x00,0x16,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x8c,0x00,0x00,0x00,0x20,0x03,0x00,0x00,0x1f,0x03,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x22,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x22,0x03,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x6f,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0x1b,0x03,0x00,0x00,
    -0x4f,0x03,0x00,0x00,0x23,0x03,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0x28,0x03,0x00,0x00,0x6f,0x03,0x00,0x00,
    -0x44,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x24,0x03,0x00,0x00,
    -0x23,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x28,0x03,0x00,0x00,0x23,0x03,0x00,0x00,0x24,0x03,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x23,0x03,0x00,0x00,0x51,0x00,0x05,0x00,
    -0x8b,0x00,0x00,0x00,0x2e,0x03,0x00,0x00,0x20,0x03,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x2f,0x03,0x00,0x00,0x2e,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x16,0x00,0x00,0x00,0x31,0x03,0x00,0x00,0x13,0x00,0x00,0x00,
    -0x30,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x32,0x03,0x00,0x00,0x31,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x33,0x03,0x00,0x00,0x2f,0x03,0x00,0x00,
    -0x32,0x03,0x00,0x00,0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,
    -0x35,0x03,0x00,0x00,0x20,0x03,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x36,0x03,0x00,0x00,
    -0x35,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
    -0x38,0x03,0x00,0x00,0x13,0x00,0x00,0x00,0x37,0x03,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x39,0x03,0x00,0x00,
    -0x38,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x3a,0x03,0x00,0x00,0x36,0x03,0x00,0x00,0x39,0x03,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3b,0x03,0x00,0x00,
    -0x33,0x03,0x00,0x00,0x3a,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x3d,0x03,0x00,0x00,0x3b,0x03,0x00,0x00,
    -0x02,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x3f,0x03,0x00,0x00,0x3d,0x03,0x00,0x00,0x6f,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x41,0x03,0x00,0x00,
    -0x66,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x43,0x03,0x00,0x00,0x41,0x03,0x00,0x00,
    -0x69,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x45,0x03,0x00,0x00,0x43,0x03,0x00,0x00,0x44,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x47,0x03,0x00,0x00,
    -0x67,0x03,0x00,0x00,0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x48,0x03,0x00,0x00,0x45,0x03,0x00,0x00,
    -0x47,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x4a,0x03,0x00,0x00,0x48,0x03,0x00,0x00,0x6f,0x03,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,0x4b,0x03,0x00,0x00,
    -0xd5,0x00,0x00,0x00,0x4a,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xcf,0x00,0x00,0x00,0x4c,0x03,0x00,0x00,0x4b,0x03,0x00,0x00,
    -0x41,0x00,0x06,0x00,0x17,0x02,0x00,0x00,0x4d,0x03,0x00,0x00,
    -0x2c,0x03,0x00,0x00,0x15,0x00,0x00,0x00,0x3f,0x03,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x4d,0x03,0x00,0x00,0x4c,0x03,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4f,0x03,0x00,0x00,
    -0x6f,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x22,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x24,0x03,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x0f,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x0f,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x51,0x03,0x00,0x00,0x69,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0x58,0x02,0x00,0x00,0x55,0x02,0x00,0x00,0x57,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5a,0x02,0x00,0x00,
    +0x58,0x02,0x00,0x00,0x96,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x5c,0x02,0x00,0x00,0x5a,0x02,0x00,0x00,
    +0x5b,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x5e,0x02,0x00,0x00,0x5c,0x02,0x00,0x00,0x80,0x03,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xad,0x01,0x00,0x00,0x5f,0x02,0x00,0x00,
    +0x8e,0x01,0x00,0x00,0x5e,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x2e,0x01,0x00,0x00,0x60,0x02,0x00,0x00,0x5f,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x61,0x02,0x00,0x00,0x62,0x02,0x00,0x00,
    +0x4c,0x02,0x00,0x00,0x50,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x62,0x02,0x00,0x00,0x60,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x64,0x02,0x00,0x00,0x96,0x03,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x42,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x44,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x3d,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x3d,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x66,0x02,0x00,0x00,
    +0x84,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x3a,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x3c,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x68,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x68,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x85,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0x3c,0x02,0x00,0x00,
    +0x94,0x02,0x00,0x00,0x6b,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x6e,0x02,0x00,0x00,0x85,0x03,0x00,0x00,
    +0xcb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x6a,0x02,0x00,0x00,
    +0x6b,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x6e,0x02,0x00,0x00,0x69,0x02,0x00,0x00,0x6a,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x69,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x70,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x70,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x93,0x03,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x69,0x02,0x00,0x00,0x92,0x02,0x00,0x00,
    +0x71,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0x76,0x02,0x00,0x00,0x93,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x72,0x02,0x00,0x00,0x71,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x76,0x02,0x00,0x00,
    +0x71,0x02,0x00,0x00,0x72,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x71,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x7c,0x02,0x00,0x00,0x85,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7e,0x02,0x00,0x00,
    +0x7c,0x02,0x00,0x00,0x93,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x80,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,
    +0xc5,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x83,0x02,0x00,0x00,0x85,0x03,0x00,0x00,0x82,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x84,0x02,0x00,0x00,
    +0x80,0x02,0x00,0x00,0x83,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x86,0x02,0x00,0x00,0x4a,0x00,0x00,0x00,
    +0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x87,0x02,0x00,0x00,0x84,0x02,0x00,0x00,0x86,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x89,0x02,0x00,0x00,
    +0x87,0x02,0x00,0x00,0x93,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x8b,0x02,0x00,0x00,0x89,0x02,0x00,0x00,
    +0x8a,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x8d,0x02,0x00,0x00,0x8b,0x02,0x00,0x00,0x80,0x03,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xad,0x01,0x00,0x00,0x8e,0x02,0x00,0x00,
    +0xf4,0x01,0x00,0x00,0x8d,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x2e,0x01,0x00,0x00,0x8f,0x02,0x00,0x00,0x8e,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x61,0x02,0x00,0x00,0x90,0x02,0x00,0x00,
    +0x7a,0x02,0x00,0x00,0x7e,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x90,0x02,0x00,0x00,0x8f,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x92,0x02,0x00,0x00,0x93,0x03,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x70,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x72,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x6b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x6b,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x94,0x02,0x00,0x00,
    +0x85,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x68,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x6a,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x96,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x96,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x86,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0x6a,0x02,0x00,0x00,
    +0xda,0x02,0x00,0x00,0x99,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x9c,0x02,0x00,0x00,0x86,0x03,0x00,0x00,
    +0xcb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x98,0x02,0x00,0x00,
    +0x99,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x9c,0x02,0x00,0x00,0x97,0x02,0x00,0x00,0x98,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x97,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x9e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x9e,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x8a,0x03,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x97,0x02,0x00,0x00,0xd8,0x02,0x00,0x00,
    +0xa1,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0xa4,0x02,0x00,0x00,0x8a,0x03,0x00,0x00,0x42,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xa0,0x02,0x00,0x00,0xa1,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xa4,0x02,0x00,0x00,
    +0x9f,0x02,0x00,0x00,0xa0,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x9f,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xa6,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xa6,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x8c,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x9f,0x02,0x00,0x00,0xd6,0x02,0x00,0x00,0xa9,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xac,0x02,0x00,0x00,
    +0x8c,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xa8,0x02,0x00,0x00,0xa9,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xac,0x02,0x00,0x00,0xa7,0x02,0x00,0x00,
    +0xa8,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xa7,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xae,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xae,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x8e,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0xa7,0x02,0x00,0x00,
    +0xd4,0x02,0x00,0x00,0xaf,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0xb4,0x02,0x00,0x00,0x8e,0x03,0x00,0x00,
    +0x44,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xb0,0x02,0x00,0x00,
    +0xaf,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xb4,0x02,0x00,0x00,0xaf,0x02,0x00,0x00,0xb0,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xaf,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xb6,0x02,0x00,0x00,0x86,0x03,0x00,0x00,
    +0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xb8,0x02,0x00,0x00,0xb6,0x02,0x00,0x00,0x8c,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xba,0x02,0x00,0x00,
    +0xb8,0x02,0x00,0x00,0xb9,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xbc,0x02,0x00,0x00,0x8a,0x03,0x00,0x00,
    +0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xbd,0x02,0x00,0x00,0xba,0x02,0x00,0x00,0xbc,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbf,0x02,0x00,0x00,
    +0xbd,0x02,0x00,0x00,0x8e,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xc3,0x02,0x00,0x00,0xbc,0x02,0x00,0x00,
    +0x8e,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x61,0x02,0x00,0x00,
    +0xc4,0x02,0x00,0x00,0x4c,0x02,0x00,0x00,0xc3,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x2e,0x01,0x00,0x00,0xc5,0x02,0x00,0x00,
    +0xc4,0x02,0x00,0x00,0x73,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    +0xc6,0x02,0x00,0x00,0xc5,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x61,0x02,0x00,0x00,0xcb,0x02,0x00,0x00,0x7a,0x02,0x00,0x00,
    +0xb8,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x2e,0x01,0x00,0x00,
    +0xcc,0x02,0x00,0x00,0xcb,0x02,0x00,0x00,0x73,0x00,0x04,0x00,
    +0xcf,0x00,0x00,0x00,0xcd,0x02,0x00,0x00,0xcc,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,0xcf,0x02,0x00,0x00,
    +0xd5,0x00,0x00,0x00,0xbf,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xcf,0x00,0x00,0x00,0xd0,0x02,0x00,0x00,0xcf,0x02,0x00,0x00,
    +0x0c,0x00,0x08,0x00,0xcf,0x00,0x00,0x00,0xd1,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xc6,0x02,0x00,0x00,
    +0xcd,0x02,0x00,0x00,0xd0,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0xcf,0x02,0x00,0x00,0xd1,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xd4,0x02,0x00,0x00,0x8e,0x03,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xae,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xb0,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xa9,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xa9,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd6,0x02,0x00,0x00,
    +0x8c,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xa6,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xa8,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xa1,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xa1,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xd8,0x02,0x00,0x00,0x8a,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x9e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xa0,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x99,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x99,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xda,0x02,0x00,0x00,0x86,0x03,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x96,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x98,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x35,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x35,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdc,0x02,0x00,0x00,
    +0x80,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x32,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x34,0x02,0x00,0x00,
    +0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0xa0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xe0,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xe0,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xde,0x02,0x00,0x00,0x65,0x03,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xdd,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xdf,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xe3,0x02,0x00,0x00,0x37,0x00,0x00,0x00,
    +0x35,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xe4,0x02,0x00,0x00,0xb4,0x00,0x00,0x00,0xe3,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe9,0x02,0x00,0x00,
    +0x3b,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xea,0x02,0x00,0x00,0xa3,0x00,0x00,0x00,
    +0xe9,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xec,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xec,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x66,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    +0xdf,0x00,0x00,0x00,0x55,0x03,0x00,0x00,0xef,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xf2,0x02,0x00,0x00,
    +0x66,0x03,0x00,0x00,0xcb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xee,0x02,0x00,0x00,0xef,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xf2,0x02,0x00,0x00,0xed,0x02,0x00,0x00,
    +0xee,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xed,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xf4,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xf4,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x67,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0xed,0x02,0x00,0x00,
    +0x53,0x03,0x00,0x00,0xf7,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0xfa,0x02,0x00,0x00,0x67,0x03,0x00,0x00,
    +0x42,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xf6,0x02,0x00,0x00,
    +0xf7,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xfa,0x02,0x00,0x00,0xf5,0x02,0x00,0x00,0xf6,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xf5,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xfe,0x02,0x00,0x00,0x67,0x03,0x00,0x00,
    +0x43,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xff,0x02,0x00,0x00,0xe4,0x02,0x00,0x00,0xfe,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x01,0x03,0x00,0x00,
    +0x46,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x02,0x03,0x00,0x00,0xff,0x02,0x00,0x00,
    +0x01,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x03,0x00,0x00,0x66,0x03,0x00,0x00,0x82,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x07,0x03,0x00,0x00,
    +0xea,0x02,0x00,0x00,0x06,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x09,0x03,0x00,0x00,0x4a,0x00,0x00,0x00,
    +0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x0a,0x03,0x00,0x00,0x07,0x03,0x00,0x00,0x09,0x03,0x00,0x00,
     0xf9,0x00,0x02,0x00,0x0c,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x0e,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,0xf7,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xf7,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x53,0x03,0x00,0x00,0x67,0x03,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xf4,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xf6,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xef,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xef,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x55,0x03,0x00,0x00,
    -0x66,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xec,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xee,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x56,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x56,0x03,0x00,0x00,0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
    -
    +0x0c,0x03,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x69,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0xf5,0x02,0x00,0x00,
    +0x51,0x03,0x00,0x00,0x0f,0x03,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x12,0x03,0x00,0x00,0x69,0x03,0x00,0x00,
    +0xc8,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x0e,0x03,0x00,0x00,
    +0x0f,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x12,0x03,0x00,0x00,0x0d,0x03,0x00,0x00,0x0e,0x03,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x0d,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x16,0x03,0x00,0x00,0x0a,0x03,0x00,0x00,
    +0x69,0x03,0x00,0x00,0xae,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0x19,0x03,0x00,0x00,0x16,0x03,0x00,0x00,0x63,0x03,0x00,0x00,
    +0xf7,0x00,0x03,0x00,0x1b,0x03,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x19,0x03,0x00,0x00,0x1a,0x03,0x00,0x00,
    +0x1b,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x1a,0x03,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x0e,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x1b,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x97,0x00,0x00,0x00,
    +0x1f,0x03,0x00,0x00,0x90,0x00,0x00,0x00,0x16,0x03,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,0x20,0x03,0x00,0x00,
    +0x1f,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,0x22,0x03,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x22,0x03,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x6f,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x1b,0x03,0x00,0x00,0x4f,0x03,0x00,0x00,0x23,0x03,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x28,0x03,0x00,0x00,
    +0x6f,0x03,0x00,0x00,0x44,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x24,0x03,0x00,0x00,0x23,0x03,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x28,0x03,0x00,0x00,0x23,0x03,0x00,0x00,
    +0x24,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x23,0x03,0x00,0x00,
    +0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,0x2e,0x03,0x00,0x00,
    +0x20,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x2f,0x03,0x00,0x00,0x2e,0x03,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0x31,0x03,0x00,0x00,
    +0x13,0x00,0x00,0x00,0x30,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x32,0x03,0x00,0x00,0x31,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x33,0x03,0x00,0x00,
    +0x2f,0x03,0x00,0x00,0x32,0x03,0x00,0x00,0x51,0x00,0x05,0x00,
    +0x8b,0x00,0x00,0x00,0x35,0x03,0x00,0x00,0x20,0x03,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x36,0x03,0x00,0x00,0x35,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x16,0x00,0x00,0x00,0x38,0x03,0x00,0x00,0x13,0x00,0x00,0x00,
    +0x37,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x39,0x03,0x00,0x00,0x38,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x3a,0x03,0x00,0x00,0x36,0x03,0x00,0x00,
    +0x39,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x3b,0x03,0x00,0x00,0x33,0x03,0x00,0x00,0x3a,0x03,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3d,0x03,0x00,0x00,
    +0x3b,0x03,0x00,0x00,0x02,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x3f,0x03,0x00,0x00,0x3d,0x03,0x00,0x00,
    +0x6f,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x41,0x03,0x00,0x00,0x66,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x43,0x03,0x00,0x00,
    +0x41,0x03,0x00,0x00,0x69,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x45,0x03,0x00,0x00,0x43,0x03,0x00,0x00,
    +0x44,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x47,0x03,0x00,0x00,0x67,0x03,0x00,0x00,0x44,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x48,0x03,0x00,0x00,
    +0x45,0x03,0x00,0x00,0x47,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x4a,0x03,0x00,0x00,0x48,0x03,0x00,0x00,
    +0x6f,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,
    +0x4b,0x03,0x00,0x00,0xd5,0x00,0x00,0x00,0x4a,0x03,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0x4c,0x03,0x00,0x00,
    +0x4b,0x03,0x00,0x00,0x41,0x00,0x06,0x00,0x17,0x02,0x00,0x00,
    +0x4d,0x03,0x00,0x00,0x2c,0x03,0x00,0x00,0x15,0x00,0x00,0x00,
    +0x3f,0x03,0x00,0x00,0x3e,0x00,0x03,0x00,0x4d,0x03,0x00,0x00,
    +0x4c,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x4f,0x03,0x00,0x00,0x6f,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x22,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x24,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,0x0f,0x03,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x0f,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x51,0x03,0x00,0x00,0x69,0x03,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x0c,0x03,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x0e,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xf7,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xf7,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x53,0x03,0x00,0x00,
    +0x67,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xf4,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xf6,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xef,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xef,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x55,0x03,0x00,0x00,0x66,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xec,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xee,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x56,0x03,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x56,0x03,0x00,0x00,0xfd,0x00,0x01,0x00,
    +0x38,0x00,0x01,0x00,
     };
    -const uint64_t matmul_id_q5_k_f32_len = 13068;
    +const uint64_t matmul_id_q5_k_f32_len = 13048;
     
     unsigned char matmul_id_q5_k_f32_aligned_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
    @@ -68514,9 +72230,9 @@ unsigned char matmul_id_q5_k_f32_fp32_data[] = {
     0x43,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x54,0x00,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x59,0x00,0x00,0x00,
     0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,
    @@ -68630,7 +72346,7 @@ unsigned char matmul_id_q5_k_f32_fp32_data[] = {
     0xd0,0x01,0x00,0x00,0x51,0x00,0x00,0x00,0xcf,0x01,0x00,0x00,
     0x00,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0xd1,0x01,0x00,0x00,0x84,0x00,0x00,0x00,0xd0,0x01,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0xd2,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0xd1,0x01,0x00,0x00,
     0x4e,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0xee,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    @@ -68660,7 +72376,7 @@ unsigned char matmul_id_q5_k_f32_fp32_data[] = {
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x24,0x02,0x00,0x00,
     0x86,0x00,0x00,0x00,0x23,0x02,0x00,0x00,0x4e,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x27,0x02,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x2a,0x02,0x00,0x00,
     0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x45,0x02,0x00,0x00,
    @@ -68827,7 +72543,7 @@ unsigned char matmul_id_q5_k_f32_fp32_data[] = {
     0xb4,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,
     0xb8,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xbb,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0xbb,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
     0xf9,0x00,0x02,0x00,0xbe,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
     0xbe,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
     0x5d,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,
    @@ -68869,588 +72585,586 @@ unsigned char matmul_id_q5_k_f32_fp32_data[] = {
     0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,
     0xf1,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xf6,0x00,0x00,0x00,0x73,0x03,0x00,0x00,0xf5,0x00,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,
     0xf6,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0xf1,0x00,0x00,0x00,
    -0xfd,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x00,0x01,0x00,0x00,0x50,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x01,0x01,0x00,0x00,
    -0xfe,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x86,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0xf8,0x00,0x00,0x00,
    -0x04,0x01,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x08,0x01,0x00,0x00,0xf8,0x00,0x00,0x00,0x04,0x01,0x00,0x00,
    -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,
    -0x08,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,0x89,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x0f,0x01,0x00,0x00,0x08,0x01,0x00,0x00,
    -0x0b,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x11,0x01,0x00,0x00,0x0f,0x01,0x00,0x00,0x10,0x01,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x14,0x01,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x16,0x01,0x00,0x00,0x14,0x01,0x00,0x00,
    -0x11,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x19,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,
    -0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1b,0x01,0x00,0x00,
    -0x08,0x01,0x00,0x00,0x10,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,0x1b,0x01,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x1d,0x01,0x00,0x00,0x19,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,
    -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x26,0x01,0x00,0x00,
    -0x08,0x01,0x00,0x00,0x10,0x01,0x00,0x00,0xc4,0x00,0x05,0x00,
    -0x14,0x00,0x00,0x00,0x27,0x01,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0x26,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x28,0x01,0x00,0x00,
    -0x29,0x01,0x00,0x00,0x27,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    -0x22,0x01,0x00,0x00,0x2a,0x01,0x00,0x00,0x29,0x01,0x00,0x00,
    -0x41,0x00,0x07,0x00,0x3a,0x01,0x00,0x00,0x3b,0x01,0x00,0x00,
    +0xfd,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x01,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,0x50,0x00,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x05,0x01,0x00,0x00,
    +0xf8,0x00,0x00,0x00,0x04,0x01,0x00,0x00,0x89,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0xf8,0x00,0x00,0x00,
    +0x04,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x0c,0x01,0x00,0x00,0x08,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,
    +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0f,0x01,0x00,0x00,
    +0x08,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x11,0x01,0x00,0x00,0x0f,0x01,0x00,0x00,
    +0x10,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x14,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x16,0x01,0x00,0x00,
    +0x14,0x01,0x00,0x00,0x11,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x19,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,
    +0x0b,0x01,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x1b,0x01,0x00,0x00,0x08,0x01,0x00,0x00,0x10,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,
    +0x1b,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x1d,0x01,0x00,0x00,0x19,0x01,0x00,0x00,
    +0x1c,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x26,0x01,0x00,0x00,0x08,0x01,0x00,0x00,0x10,0x01,0x00,0x00,
    +0xc4,0x00,0x05,0x00,0x14,0x00,0x00,0x00,0x27,0x01,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0x26,0x01,0x00,0x00,0x72,0x00,0x04,0x00,
    +0x28,0x01,0x00,0x00,0x29,0x01,0x00,0x00,0x27,0x01,0x00,0x00,
    +0x7c,0x00,0x04,0x00,0x22,0x01,0x00,0x00,0x2a,0x01,0x00,0x00,
    +0x29,0x01,0x00,0x00,0x41,0x00,0x07,0x00,0x3a,0x01,0x00,0x00,
    +0x3b,0x01,0x00,0x00,0x38,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    +0x05,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x2f,0x01,0x00,0x00,0x3c,0x01,0x00,0x00,0x3b,0x01,0x00,0x00,
    +0x73,0x00,0x04,0x00,0x2b,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,
    +0x3c,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0x40,0x01,0x00,0x00,0x16,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,
    +0xf7,0x00,0x03,0x00,0x42,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x40,0x01,0x00,0x00,0x41,0x01,0x00,0x00,
    +0x5a,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x41,0x01,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x46,0x01,0x00,0x00,0x47,0x01,0x00,0x00,
     0x38,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,
    -0x15,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x2f,0x01,0x00,0x00,
    -0x3c,0x01,0x00,0x00,0x3b,0x01,0x00,0x00,0x73,0x00,0x04,0x00,
    -0x2b,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,0x3c,0x01,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x40,0x01,0x00,0x00,
    -0x16,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,
    -0x42,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x40,0x01,0x00,0x00,0x41,0x01,0x00,0x00,0x5a,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x41,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x46,0x01,0x00,0x00,0x47,0x01,0x00,0x00,0x38,0x01,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0x16,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x22,0x01,0x00,0x00,0x48,0x01,0x00,0x00,0x47,0x01,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x49,0x01,0x00,0x00,
    +0x48,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    +0x4a,0x01,0x00,0x00,0x49,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
    +0x14,0x00,0x00,0x00,0x4c,0x01,0x00,0x00,0x4a,0x01,0x00,0x00,
    +0x4b,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x28,0x01,0x00,0x00,
    +0x4d,0x01,0x00,0x00,0x4c,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    +0x22,0x01,0x00,0x00,0x4e,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x52,0x01,0x00,0x00,
    +0x16,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x46,0x01,0x00,0x00,0x53,0x01,0x00,0x00,0x38,0x01,0x00,0x00,
     0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0x16,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x22,0x01,0x00,0x00,
    -0x48,0x01,0x00,0x00,0x47,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x49,0x01,0x00,0x00,0x48,0x01,0x00,0x00,
    -0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x4a,0x01,0x00,0x00,
    -0x49,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x14,0x00,0x00,0x00,
    -0x4c,0x01,0x00,0x00,0x4a,0x01,0x00,0x00,0x4b,0x01,0x00,0x00,
    -0x72,0x00,0x04,0x00,0x28,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,
    -0x4c,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x22,0x01,0x00,0x00,
    -0x4e,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x52,0x01,0x00,0x00,0x16,0x01,0x00,0x00,
    -0x3f,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x46,0x01,0x00,0x00,
    -0x53,0x01,0x00,0x00,0x38,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    -0x05,0x01,0x00,0x00,0x9a,0x00,0x00,0x00,0x52,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x22,0x01,0x00,0x00,0x54,0x01,0x00,0x00,
    -0x53,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x55,0x01,0x00,0x00,0x54,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    -0x14,0x00,0x00,0x00,0x56,0x01,0x00,0x00,0x55,0x01,0x00,0x00,
    -0xc7,0x00,0x05,0x00,0x14,0x00,0x00,0x00,0x57,0x01,0x00,0x00,
    -0x56,0x01,0x00,0x00,0x4b,0x01,0x00,0x00,0x72,0x00,0x04,0x00,
    -0x28,0x01,0x00,0x00,0x58,0x01,0x00,0x00,0x57,0x01,0x00,0x00,
    -0x7c,0x00,0x04,0x00,0x22,0x01,0x00,0x00,0x59,0x01,0x00,0x00,
    -0x58,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x42,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x5a,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,0x16,0x01,0x00,0x00,
    -0x3f,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x46,0x01,0x00,0x00,
    -0x5e,0x01,0x00,0x00,0x38,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    -0x05,0x01,0x00,0x00,0x9a,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x22,0x01,0x00,0x00,0x5f,0x01,0x00,0x00,
    -0x5e,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x60,0x01,0x00,0x00,0x5f,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    -0x14,0x00,0x00,0x00,0x61,0x01,0x00,0x00,0x60,0x01,0x00,0x00,
    -0xc7,0x00,0x05,0x00,0x14,0x00,0x00,0x00,0x63,0x01,0x00,0x00,
    -0x61,0x01,0x00,0x00,0x62,0x01,0x00,0x00,0x82,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x66,0x01,0x00,0x00,0x16,0x01,0x00,0x00,
    -0x3f,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x46,0x01,0x00,0x00,
    -0x67,0x01,0x00,0x00,0x38,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    -0x05,0x01,0x00,0x00,0x9a,0x00,0x00,0x00,0x66,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x22,0x01,0x00,0x00,0x68,0x01,0x00,0x00,
    -0x67,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x22,0x01,0x00,0x00,
    -0x69,0x01,0x00,0x00,0x68,0x01,0x00,0x00,0xaf,0x00,0x00,0x00,
    -0xc4,0x00,0x05,0x00,0x22,0x01,0x00,0x00,0x6b,0x01,0x00,0x00,
    -0x69,0x01,0x00,0x00,0x6a,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x6c,0x01,0x00,0x00,0x6b,0x01,0x00,0x00,
    -0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x6d,0x01,0x00,0x00,
    -0x6c,0x01,0x00,0x00,0xc5,0x00,0x05,0x00,0x14,0x00,0x00,0x00,
    -0x6e,0x01,0x00,0x00,0x63,0x01,0x00,0x00,0x6d,0x01,0x00,0x00,
    -0x72,0x00,0x04,0x00,0x28,0x01,0x00,0x00,0x6f,0x01,0x00,0x00,
    -0x6e,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x22,0x01,0x00,0x00,
    -0x70,0x01,0x00,0x00,0x6f,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x22,0x01,0x00,0x00,0x75,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,
    -0xc2,0x00,0x05,0x00,0x22,0x01,0x00,0x00,0x76,0x01,0x00,0x00,
    -0x75,0x01,0x00,0x00,0x6a,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x46,0x01,0x00,0x00,0x79,0x01,0x00,0x00,0x38,0x01,0x00,0x00,
    +0x52,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x22,0x01,0x00,0x00,
    +0x54,0x01,0x00,0x00,0x53,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x55,0x01,0x00,0x00,0x54,0x01,0x00,0x00,
    +0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x56,0x01,0x00,0x00,
    +0x55,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x14,0x00,0x00,0x00,
    +0x57,0x01,0x00,0x00,0x56,0x01,0x00,0x00,0x4b,0x01,0x00,0x00,
    +0x72,0x00,0x04,0x00,0x28,0x01,0x00,0x00,0x58,0x01,0x00,0x00,
    +0x57,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x22,0x01,0x00,0x00,
    +0x59,0x01,0x00,0x00,0x58,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x42,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x5a,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,
    +0x16,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x46,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,0x38,0x01,0x00,0x00,
     0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0x16,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x22,0x01,0x00,0x00,
    -0x7a,0x01,0x00,0x00,0x79,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,
    -0x22,0x01,0x00,0x00,0x7b,0x01,0x00,0x00,0x7a,0x01,0x00,0x00,
    +0x5d,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x22,0x01,0x00,0x00,
    +0x5f,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x60,0x01,0x00,0x00,0x5f,0x01,0x00,0x00,
    +0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x61,0x01,0x00,0x00,
    +0x60,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x14,0x00,0x00,0x00,
    +0x63,0x01,0x00,0x00,0x61,0x01,0x00,0x00,0x62,0x01,0x00,0x00,
    +0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x66,0x01,0x00,0x00,
    +0x16,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x46,0x01,0x00,0x00,0x67,0x01,0x00,0x00,0x38,0x01,0x00,0x00,
    +0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0x66,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x22,0x01,0x00,0x00,
    +0x68,0x01,0x00,0x00,0x67,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,
    +0x22,0x01,0x00,0x00,0x69,0x01,0x00,0x00,0x68,0x01,0x00,0x00,
     0xaf,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x22,0x01,0x00,0x00,
    -0x7c,0x01,0x00,0x00,0x7b,0x01,0x00,0x00,0x6a,0x01,0x00,0x00,
    -0xc5,0x00,0x05,0x00,0x22,0x01,0x00,0x00,0x7d,0x01,0x00,0x00,
    -0x76,0x01,0x00,0x00,0x7c,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x42,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x42,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x22,0x01,0x00,0x00,0x96,0x03,0x00,0x00,
    -0x59,0x01,0x00,0x00,0x41,0x01,0x00,0x00,0x7d,0x01,0x00,0x00,
    -0x5a,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x22,0x01,0x00,0x00,
    -0x95,0x03,0x00,0x00,0x4e,0x01,0x00,0x00,0x41,0x01,0x00,0x00,
    -0x70,0x01,0x00,0x00,0x5a,0x01,0x00,0x00,0x51,0x00,0x05,0x00,
    -0xcf,0x00,0x00,0x00,0x80,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x70,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    -0x82,0x01,0x00,0x00,0x95,0x03,0x00,0x00,0x85,0x00,0x05,0x00,
    -0xcf,0x00,0x00,0x00,0x83,0x01,0x00,0x00,0x80,0x01,0x00,0x00,
    -0x82,0x01,0x00,0x00,0x51,0x00,0x05,0x00,0xcf,0x00,0x00,0x00,
    -0x86,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x70,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0x88,0x01,0x00,0x00,
    -0x96,0x03,0x00,0x00,0x85,0x00,0x05,0x00,0xcf,0x00,0x00,0x00,
    -0x89,0x01,0x00,0x00,0x86,0x01,0x00,0x00,0x88,0x01,0x00,0x00,
    -0x41,0x00,0x08,0x00,0x46,0x01,0x00,0x00,0x93,0x01,0x00,0x00,
    -0x38,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,
    -0xb5,0x00,0x00,0x00,0x1d,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x22,0x01,0x00,0x00,0x94,0x01,0x00,0x00,0x93,0x01,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x96,0x01,0x00,0x00,
    -0x11,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,
    -0x22,0x01,0x00,0x00,0x97,0x01,0x00,0x00,0x94,0x01,0x00,0x00,
    -0x96,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x98,0x01,0x00,0x00,0x97,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    -0x14,0x00,0x00,0x00,0x99,0x01,0x00,0x00,0x98,0x01,0x00,0x00,
    -0xc7,0x00,0x05,0x00,0x14,0x00,0x00,0x00,0x9a,0x01,0x00,0x00,
    -0x99,0x01,0x00,0x00,0x62,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,
    -0xcf,0x00,0x00,0x00,0x9b,0x01,0x00,0x00,0x9a,0x01,0x00,0x00,
    -0x41,0x00,0x08,0x00,0x46,0x01,0x00,0x00,0x9e,0x01,0x00,0x00,
    -0x38,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,
    -0xaa,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x22,0x01,0x00,0x00,0x9f,0x01,0x00,0x00,0x9e,0x01,0x00,0x00,
    -0xc7,0x00,0x05,0x00,0x22,0x01,0x00,0x00,0xa1,0x01,0x00,0x00,
    -0x9f,0x01,0x00,0x00,0x2a,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0xa2,0x01,0x00,0x00,0xa1,0x01,0x00,0x00,
    -0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0xa3,0x01,0x00,0x00,
    -0xa2,0x01,0x00,0x00,0xab,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0xa4,0x01,0x00,0x00,0xa3,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    -0xa9,0x00,0x06,0x00,0x14,0x00,0x00,0x00,0xa6,0x01,0x00,0x00,
    -0xa4,0x01,0x00,0x00,0xa5,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    -0x6f,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0xa7,0x01,0x00,0x00,
    -0xa6,0x01,0x00,0x00,0x81,0x00,0x05,0x00,0xcf,0x00,0x00,0x00,
    -0xa8,0x01,0x00,0x00,0x9b,0x01,0x00,0x00,0xa7,0x01,0x00,0x00,
    -0x7f,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0xd2,0x03,0x00,0x00,
    -0x89,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0xcf,0x00,0x00,0x00,
    -0xab,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,
    -0x83,0x01,0x00,0x00,0xa8,0x01,0x00,0x00,0xd2,0x03,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xac,0x01,0x00,0x00,0xad,0x01,0x00,0x00,
    -0x8e,0x01,0x00,0x00,0x01,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0xad,0x01,0x00,0x00,0xab,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xaf,0x01,0x00,0x00,0x01,0x01,0x00,0x00,
    -0x1b,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xb3,0x01,0x00,0x00,0x1d,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,
    -0x41,0x00,0x08,0x00,0x46,0x01,0x00,0x00,0xb4,0x01,0x00,0x00,
    -0x38,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,
    -0xb5,0x00,0x00,0x00,0xb3,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x22,0x01,0x00,0x00,0xb5,0x01,0x00,0x00,0xb4,0x01,0x00,0x00,
    -0xc2,0x00,0x05,0x00,0x22,0x01,0x00,0x00,0xb8,0x01,0x00,0x00,
    -0xb5,0x01,0x00,0x00,0x96,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0xb9,0x01,0x00,0x00,0xb8,0x01,0x00,0x00,
    -0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0xba,0x01,0x00,0x00,
    -0xb9,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x14,0x00,0x00,0x00,
    -0xbb,0x01,0x00,0x00,0xba,0x01,0x00,0x00,0x62,0x01,0x00,0x00,
    -0x6f,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0xbc,0x01,0x00,0x00,
    -0xbb,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xbf,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,
    -0x41,0x00,0x08,0x00,0x46,0x01,0x00,0x00,0xc0,0x01,0x00,0x00,
    +0x6b,0x01,0x00,0x00,0x69,0x01,0x00,0x00,0x6a,0x01,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x6c,0x01,0x00,0x00,
    +0x6b,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    +0x6d,0x01,0x00,0x00,0x6c,0x01,0x00,0x00,0xc5,0x00,0x05,0x00,
    +0x14,0x00,0x00,0x00,0x6e,0x01,0x00,0x00,0x63,0x01,0x00,0x00,
    +0x6d,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x28,0x01,0x00,0x00,
    +0x6f,0x01,0x00,0x00,0x6e,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    +0x22,0x01,0x00,0x00,0x70,0x01,0x00,0x00,0x6f,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x22,0x01,0x00,0x00,0x75,0x01,0x00,0x00,
    +0x5e,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x22,0x01,0x00,0x00,
    +0x76,0x01,0x00,0x00,0x75,0x01,0x00,0x00,0x6a,0x01,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x46,0x01,0x00,0x00,0x79,0x01,0x00,0x00,
     0x38,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,
    -0xaa,0x00,0x00,0x00,0xbf,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x22,0x01,0x00,0x00,0xc1,0x01,0x00,0x00,0xc0,0x01,0x00,0x00,
    -0xc7,0x00,0x05,0x00,0x22,0x01,0x00,0x00,0xc3,0x01,0x00,0x00,
    -0xc1,0x01,0x00,0x00,0x2a,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0xc4,0x01,0x00,0x00,0xc3,0x01,0x00,0x00,
    -0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0xc5,0x01,0x00,0x00,
    -0xc4,0x01,0x00,0x00,0xab,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0xc6,0x01,0x00,0x00,0xc5,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    -0xa9,0x00,0x06,0x00,0x14,0x00,0x00,0x00,0xc7,0x01,0x00,0x00,
    -0xc6,0x01,0x00,0x00,0xa5,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    -0x6f,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0xc8,0x01,0x00,0x00,
    -0xc7,0x01,0x00,0x00,0x81,0x00,0x05,0x00,0xcf,0x00,0x00,0x00,
    -0xc9,0x01,0x00,0x00,0xbc,0x01,0x00,0x00,0xc8,0x01,0x00,0x00,
    -0x0c,0x00,0x08,0x00,0xcf,0x00,0x00,0x00,0xcc,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x83,0x01,0x00,0x00,
    -0xc9,0x01,0x00,0x00,0xd2,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xac,0x01,0x00,0x00,0xcd,0x01,0x00,0x00,0x8e,0x01,0x00,0x00,
    -0xaf,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xcd,0x01,0x00,0x00,
    -0xcc,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xe9,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xe9,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xd4,0x01,0x00,0x00,0x6f,0x03,0x00,0x00,
    -0xd2,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xe6,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xe8,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xd6,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xd6,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x70,0x03,0x00,0x00,
    -0x20,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0x26,0x02,0x00,0x00,
    -0xd9,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0xdc,0x01,0x00,0x00,0x70,0x03,0x00,0x00,0xa2,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xd8,0x01,0x00,0x00,0xd9,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xdc,0x01,0x00,0x00,
    -0xd7,0x01,0x00,0x00,0xd8,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xd7,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xe1,0x01,0x00,0x00,0xa3,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe3,0x01,0x00,0x00,
    -0xe1,0x01,0x00,0x00,0x70,0x03,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0xe6,0x01,0x00,0x00,0xe3,0x01,0x00,0x00,
    -0x5c,0x03,0x00,0x00,0xf7,0x00,0x03,0x00,0xe8,0x01,0x00,0x00,
    -0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xe6,0x01,0x00,0x00,
    -0xe7,0x01,0x00,0x00,0x19,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xe7,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x97,0x00,0x00,0x00,
    -0xec,0x01,0x00,0x00,0x90,0x00,0x00,0x00,0xe3,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,0xed,0x01,0x00,0x00,
    -0xec,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xf5,0x01,0x00,0x00,0x5f,0x00,0x00,0x00,0x70,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf7,0x01,0x00,0x00,
    -0xf5,0x01,0x00,0x00,0xf6,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xf9,0x01,0x00,0x00,0xf7,0x01,0x00,0x00,
    -0x5a,0x00,0x00,0x00,0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,
    -0x01,0x02,0x00,0x00,0xed,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x02,0x02,0x00,0x00,
    -0x01,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
    -0x04,0x02,0x00,0x00,0x13,0x00,0x00,0x00,0x03,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x05,0x02,0x00,0x00,
    -0x04,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x06,0x02,0x00,0x00,0x02,0x02,0x00,0x00,0x05,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x07,0x02,0x00,0x00,
    -0x77,0x03,0x00,0x00,0x06,0x02,0x00,0x00,0x51,0x00,0x05,0x00,
    -0x8b,0x00,0x00,0x00,0x09,0x02,0x00,0x00,0xed,0x01,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x0a,0x02,0x00,0x00,0x09,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x16,0x00,0x00,0x00,0x0c,0x02,0x00,0x00,0x13,0x00,0x00,0x00,
    -0x0b,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x0d,0x02,0x00,0x00,0x0c,0x02,0x00,0x00,0x89,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x0e,0x02,0x00,0x00,0x0a,0x02,0x00,0x00,
    -0x0d,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
    -0x0f,0x02,0x00,0x00,0x13,0x00,0x00,0x00,0x6a,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x10,0x02,0x00,0x00,
    -0x0f,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x11,0x02,0x00,0x00,0x0e,0x02,0x00,0x00,0x10,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x12,0x02,0x00,0x00,
    -0x07,0x02,0x00,0x00,0x11,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x14,0x02,0x00,0x00,0x12,0x02,0x00,0x00,
    -0x5a,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x15,0x02,0x00,0x00,
    -0x16,0x02,0x00,0x00,0xfd,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    -0x14,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    -0x17,0x02,0x00,0x00,0x16,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xac,0x01,0x00,0x00,0x18,0x02,0x00,0x00,0xf2,0x01,0x00,0x00,
    -0xf9,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x18,0x02,0x00,0x00,
    -0x17,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xe8,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x19,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x1c,0x02,0x00,0x00,0x5f,0x00,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0x16,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x22,0x01,0x00,0x00,0x7a,0x01,0x00,0x00,0x79,0x01,0x00,0x00,
    +0xc2,0x00,0x05,0x00,0x22,0x01,0x00,0x00,0x7b,0x01,0x00,0x00,
    +0x7a,0x01,0x00,0x00,0xaf,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,
    +0x22,0x01,0x00,0x00,0x7c,0x01,0x00,0x00,0x7b,0x01,0x00,0x00,
    +0x6a,0x01,0x00,0x00,0xc5,0x00,0x05,0x00,0x22,0x01,0x00,0x00,
    +0x7d,0x01,0x00,0x00,0x76,0x01,0x00,0x00,0x7c,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x42,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x42,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x22,0x01,0x00,0x00,
    +0x96,0x03,0x00,0x00,0x59,0x01,0x00,0x00,0x41,0x01,0x00,0x00,
    +0x7d,0x01,0x00,0x00,0x5a,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x22,0x01,0x00,0x00,0x95,0x03,0x00,0x00,0x4e,0x01,0x00,0x00,
    +0x41,0x01,0x00,0x00,0x70,0x01,0x00,0x00,0x5a,0x01,0x00,0x00,
    +0x51,0x00,0x05,0x00,0xcf,0x00,0x00,0x00,0x80,0x01,0x00,0x00,
    +0x3d,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x04,0x00,
    +0xcf,0x00,0x00,0x00,0x82,0x01,0x00,0x00,0x95,0x03,0x00,0x00,
    +0x85,0x00,0x05,0x00,0xcf,0x00,0x00,0x00,0x83,0x01,0x00,0x00,
    +0x80,0x01,0x00,0x00,0x82,0x01,0x00,0x00,0x51,0x00,0x05,0x00,
    +0xcf,0x00,0x00,0x00,0x86,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x70,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    +0x88,0x01,0x00,0x00,0x96,0x03,0x00,0x00,0x85,0x00,0x05,0x00,
    +0xcf,0x00,0x00,0x00,0x89,0x01,0x00,0x00,0x86,0x01,0x00,0x00,
    +0x88,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x46,0x01,0x00,0x00,
    +0x93,0x01,0x00,0x00,0x38,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    +0x05,0x01,0x00,0x00,0xb5,0x00,0x00,0x00,0x1d,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x22,0x01,0x00,0x00,0x94,0x01,0x00,0x00,
    +0x93,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x96,0x01,0x00,0x00,0x11,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,
    +0xc2,0x00,0x05,0x00,0x22,0x01,0x00,0x00,0x97,0x01,0x00,0x00,
    +0x94,0x01,0x00,0x00,0x96,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x98,0x01,0x00,0x00,0x97,0x01,0x00,0x00,
    +0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x99,0x01,0x00,0x00,
    +0x98,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x14,0x00,0x00,0x00,
    +0x9a,0x01,0x00,0x00,0x99,0x01,0x00,0x00,0x62,0x01,0x00,0x00,
    +0x6f,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0x9b,0x01,0x00,0x00,
    +0x9a,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x46,0x01,0x00,0x00,
    +0x9e,0x01,0x00,0x00,0x38,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    +0x05,0x01,0x00,0x00,0xaa,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x22,0x01,0x00,0x00,0x9f,0x01,0x00,0x00,
    +0x9e,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x22,0x01,0x00,0x00,
    +0xa1,0x01,0x00,0x00,0x9f,0x01,0x00,0x00,0x2a,0x01,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa2,0x01,0x00,0x00,
    +0xa1,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    +0xa3,0x01,0x00,0x00,0xa2,0x01,0x00,0x00,0xab,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0xa4,0x01,0x00,0x00,0xa3,0x01,0x00,0x00,
    +0x15,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,0x14,0x00,0x00,0x00,
    +0xa6,0x01,0x00,0x00,0xa4,0x01,0x00,0x00,0xa5,0x01,0x00,0x00,
    +0x15,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    +0xa7,0x01,0x00,0x00,0xa6,0x01,0x00,0x00,0x81,0x00,0x05,0x00,
    +0xcf,0x00,0x00,0x00,0xa8,0x01,0x00,0x00,0x9b,0x01,0x00,0x00,
    +0xa7,0x01,0x00,0x00,0x7f,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    +0xd2,0x03,0x00,0x00,0x89,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,
    +0xcf,0x00,0x00,0x00,0xab,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x32,0x00,0x00,0x00,0x83,0x01,0x00,0x00,0xa8,0x01,0x00,0x00,
    +0xd2,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0xac,0x01,0x00,0x00,
    +0xad,0x01,0x00,0x00,0x8e,0x01,0x00,0x00,0x01,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0xad,0x01,0x00,0x00,0xab,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xaf,0x01,0x00,0x00,
    +0x01,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xb3,0x01,0x00,0x00,0x1d,0x01,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0x46,0x01,0x00,0x00,
    +0xb4,0x01,0x00,0x00,0x38,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    +0x05,0x01,0x00,0x00,0xb5,0x00,0x00,0x00,0xb3,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x22,0x01,0x00,0x00,0xb5,0x01,0x00,0x00,
    +0xb4,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x22,0x01,0x00,0x00,
    +0xb8,0x01,0x00,0x00,0xb5,0x01,0x00,0x00,0x96,0x01,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xb9,0x01,0x00,0x00,
    +0xb8,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    +0xba,0x01,0x00,0x00,0xb9,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
    +0x14,0x00,0x00,0x00,0xbb,0x01,0x00,0x00,0xba,0x01,0x00,0x00,
    +0x62,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    +0xbc,0x01,0x00,0x00,0xbb,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xbf,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0x46,0x01,0x00,0x00,
    +0xc0,0x01,0x00,0x00,0x38,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    +0x05,0x01,0x00,0x00,0xaa,0x00,0x00,0x00,0xbf,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x22,0x01,0x00,0x00,0xc1,0x01,0x00,0x00,
    +0xc0,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x22,0x01,0x00,0x00,
    +0xc3,0x01,0x00,0x00,0xc1,0x01,0x00,0x00,0x2a,0x01,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xc4,0x01,0x00,0x00,
    +0xc3,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    +0xc5,0x01,0x00,0x00,0xc4,0x01,0x00,0x00,0xab,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0xc6,0x01,0x00,0x00,0xc5,0x01,0x00,0x00,
    +0x15,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,0x14,0x00,0x00,0x00,
    +0xc7,0x01,0x00,0x00,0xc6,0x01,0x00,0x00,0xa5,0x01,0x00,0x00,
    +0x15,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    +0xc8,0x01,0x00,0x00,0xc7,0x01,0x00,0x00,0x81,0x00,0x05,0x00,
    +0xcf,0x00,0x00,0x00,0xc9,0x01,0x00,0x00,0xbc,0x01,0x00,0x00,
    +0xc8,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0xcf,0x00,0x00,0x00,
    +0xcc,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,
    +0x83,0x01,0x00,0x00,0xc9,0x01,0x00,0x00,0xd2,0x03,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xac,0x01,0x00,0x00,0xcd,0x01,0x00,0x00,
    +0x8e,0x01,0x00,0x00,0xaf,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0xcd,0x01,0x00,0x00,0xcc,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xe9,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xe9,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd4,0x01,0x00,0x00,
    +0x6f,0x03,0x00,0x00,0xd2,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xe6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xe8,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xd6,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xd6,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x70,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,
    +0x26,0x02,0x00,0x00,0xd9,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0xdc,0x01,0x00,0x00,0x70,0x03,0x00,0x00,
    +0xa2,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xd8,0x01,0x00,0x00,
    +0xd9,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xdc,0x01,0x00,0x00,0xd7,0x01,0x00,0x00,0xd8,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xd7,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xe1,0x01,0x00,0x00,0xa3,0x00,0x00,0x00,
    +0x5f,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xe3,0x01,0x00,0x00,0xe1,0x01,0x00,0x00,0x70,0x03,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xe6,0x01,0x00,0x00,
    +0xe3,0x01,0x00,0x00,0x5c,0x03,0x00,0x00,0xf7,0x00,0x03,0x00,
    +0xe8,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xe6,0x01,0x00,0x00,0xe7,0x01,0x00,0x00,0x19,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xe7,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x97,0x00,0x00,0x00,0xec,0x01,0x00,0x00,0x90,0x00,0x00,0x00,
    +0xe3,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,
    +0xed,0x01,0x00,0x00,0xec,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xf5,0x01,0x00,0x00,0x5f,0x00,0x00,0x00,
     0x70,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x1e,0x02,0x00,0x00,0x1c,0x02,0x00,0x00,0x1d,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x20,0x02,0x00,0x00,
    -0x1e,0x02,0x00,0x00,0x5a,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xac,0x01,0x00,0x00,0x21,0x02,0x00,0x00,0xf2,0x01,0x00,0x00,
    -0x20,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0x21,0x02,0x00,0x00,
    -0xd7,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xe8,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xe8,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xd9,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xd9,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x26,0x02,0x00,0x00,
    -0x70,0x03,0x00,0x00,0x24,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xd6,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xd8,0x01,0x00,0x00,
    -0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0xa0,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x29,0x02,0x00,0x00,0x73,0x03,0x00,0x00,0x27,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2c,0x02,0x00,0x00,
    -0x77,0x03,0x00,0x00,0x2a,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x2e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x2e,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x79,0x03,0x00,0x00,
    -0x20,0x00,0x00,0x00,0xd8,0x01,0x00,0x00,0xd5,0x02,0x00,0x00,
    -0x31,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0x34,0x02,0x00,0x00,0x79,0x03,0x00,0x00,0x4e,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x30,0x02,0x00,0x00,0x31,0x02,0x00,0x00,
    -0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x34,0x02,0x00,0x00,
    -0x2f,0x02,0x00,0x00,0x30,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x2f,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x36,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x36,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x7d,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x2f,0x02,0x00,0x00,0x61,0x02,0x00,0x00,0x39,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x3c,0x02,0x00,0x00,
    -0x7d,0x03,0x00,0x00,0x42,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x38,0x02,0x00,0x00,0x39,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x3c,0x02,0x00,0x00,0x37,0x02,0x00,0x00,
    -0x38,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x37,0x02,0x00,0x00,
    +0xf7,0x01,0x00,0x00,0xf5,0x01,0x00,0x00,0xf6,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf9,0x01,0x00,0x00,
    +0xf7,0x01,0x00,0x00,0x5a,0x00,0x00,0x00,0x51,0x00,0x05,0x00,
    +0x8b,0x00,0x00,0x00,0x01,0x02,0x00,0x00,0xed,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x02,0x02,0x00,0x00,0x01,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x16,0x00,0x00,0x00,0x04,0x02,0x00,0x00,0x13,0x00,0x00,0x00,
    +0x03,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x05,0x02,0x00,0x00,0x04,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x06,0x02,0x00,0x00,0x02,0x02,0x00,0x00,
    +0x05,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x07,0x02,0x00,0x00,0x77,0x03,0x00,0x00,0x06,0x02,0x00,0x00,
    +0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,0x09,0x02,0x00,0x00,
    +0xed,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x0a,0x02,0x00,0x00,0x09,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0x0c,0x02,0x00,0x00,
    +0x13,0x00,0x00,0x00,0x0b,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x0d,0x02,0x00,0x00,0x0c,0x02,0x00,0x00,
    +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0e,0x02,0x00,0x00,
    +0x0a,0x02,0x00,0x00,0x0d,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x16,0x00,0x00,0x00,0x0f,0x02,0x00,0x00,0x13,0x00,0x00,0x00,
    +0x6a,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x10,0x02,0x00,0x00,0x0f,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x11,0x02,0x00,0x00,0x0e,0x02,0x00,0x00,
    +0x10,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x12,0x02,0x00,0x00,0x07,0x02,0x00,0x00,0x11,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x14,0x02,0x00,0x00,
    +0x12,0x02,0x00,0x00,0x5a,0x00,0x00,0x00,0x41,0x00,0x06,0x00,
    +0x15,0x02,0x00,0x00,0x16,0x02,0x00,0x00,0xfd,0x01,0x00,0x00,
    +0x15,0x00,0x00,0x00,0x14,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xcf,0x00,0x00,0x00,0x17,0x02,0x00,0x00,0x16,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xac,0x01,0x00,0x00,0x18,0x02,0x00,0x00,
    +0xf2,0x01,0x00,0x00,0xf9,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x18,0x02,0x00,0x00,0x17,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xe8,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x19,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1c,0x02,0x00,0x00,
    +0x5f,0x00,0x00,0x00,0x70,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x1e,0x02,0x00,0x00,0x1c,0x02,0x00,0x00,
    +0x1d,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x20,0x02,0x00,0x00,0x1e,0x02,0x00,0x00,0x5a,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xac,0x01,0x00,0x00,0x21,0x02,0x00,0x00,
    +0xf2,0x01,0x00,0x00,0x20,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x21,0x02,0x00,0x00,0xd7,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xe8,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xe8,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xd9,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xd9,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x26,0x02,0x00,0x00,0x70,0x03,0x00,0x00,0x24,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xd6,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xd8,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x29,0x02,0x00,0x00,0x73,0x03,0x00,0x00,
    +0x27,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x2c,0x02,0x00,0x00,0x77,0x03,0x00,0x00,0x2a,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x2e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x2e,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x79,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0xd8,0x01,0x00,0x00,
    +0xd5,0x02,0x00,0x00,0x31,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x34,0x02,0x00,0x00,0x79,0x03,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x30,0x02,0x00,0x00,
    +0x31,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x34,0x02,0x00,0x00,0x2f,0x02,0x00,0x00,0x30,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x2f,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x36,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x36,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x7d,0x03,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x2f,0x02,0x00,0x00,0x61,0x02,0x00,0x00,
    +0x39,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0x3c,0x02,0x00,0x00,0x7d,0x03,0x00,0x00,0x42,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x38,0x02,0x00,0x00,0x39,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x3c,0x02,0x00,0x00,
    +0x37,0x02,0x00,0x00,0x38,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x37,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x3e,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x3e,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x8f,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x37,0x02,0x00,0x00,0x5f,0x02,0x00,0x00,0x3f,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x44,0x02,0x00,0x00,
    +0x8f,0x03,0x00,0x00,0x44,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x40,0x02,0x00,0x00,0x3f,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x44,0x02,0x00,0x00,0x3f,0x02,0x00,0x00,
    +0x40,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x3f,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4a,0x02,0x00,0x00,
    +0x7d,0x03,0x00,0x00,0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x4c,0x02,0x00,0x00,0x4a,0x02,0x00,0x00,
    +0x8f,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x4e,0x02,0x00,0x00,0x37,0x00,0x00,0x00,0x35,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x50,0x02,0x00,0x00,
    +0x7d,0x03,0x00,0x00,0x43,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x51,0x02,0x00,0x00,0x4e,0x02,0x00,0x00,
    +0x50,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x53,0x02,0x00,0x00,0x46,0x00,0x00,0x00,0x44,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x54,0x02,0x00,0x00,
    +0x51,0x02,0x00,0x00,0x53,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x56,0x02,0x00,0x00,0x54,0x02,0x00,0x00,
    +0x8f,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x58,0x02,0x00,0x00,0x56,0x02,0x00,0x00,0x57,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5a,0x02,0x00,0x00,
    +0x58,0x02,0x00,0x00,0x79,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xac,0x01,0x00,0x00,0x5b,0x02,0x00,0x00,0x8e,0x01,0x00,0x00,
    +0x5a,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    +0x5c,0x02,0x00,0x00,0x5b,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xd8,0x00,0x00,0x00,0x5d,0x02,0x00,0x00,0x48,0x02,0x00,0x00,
    +0x4c,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0x5d,0x02,0x00,0x00,
    +0x5c,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x5f,0x02,0x00,0x00,0x8f,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
     0xf9,0x00,0x02,0x00,0x3e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x3e,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x8f,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0x37,0x02,0x00,0x00,
    -0x5f,0x02,0x00,0x00,0x3f,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0x44,0x02,0x00,0x00,0x8f,0x03,0x00,0x00,
    -0x44,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x40,0x02,0x00,0x00,
    -0x3f,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x44,0x02,0x00,0x00,0x3f,0x02,0x00,0x00,0x40,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x3f,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x4a,0x02,0x00,0x00,0x7d,0x03,0x00,0x00,
    -0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x4c,0x02,0x00,0x00,0x4a,0x02,0x00,0x00,0x8f,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4e,0x02,0x00,0x00,
    -0x37,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x50,0x02,0x00,0x00,0x7d,0x03,0x00,0x00,
    +0x40,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x39,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x39,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x61,0x02,0x00,0x00,0x7d,0x03,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x36,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x38,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x63,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x63,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x7e,0x03,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x38,0x02,0x00,0x00,0x8f,0x02,0x00,0x00,
    +0x66,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0x69,0x02,0x00,0x00,0x7e,0x03,0x00,0x00,0xcb,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x65,0x02,0x00,0x00,0x66,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x69,0x02,0x00,0x00,
    +0x64,0x02,0x00,0x00,0x65,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x64,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x6b,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x6b,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x8c,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x64,0x02,0x00,0x00,0x8d,0x02,0x00,0x00,0x6c,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x71,0x02,0x00,0x00,
    +0x8c,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x6d,0x02,0x00,0x00,0x6c,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x71,0x02,0x00,0x00,0x6c,0x02,0x00,0x00,
    +0x6d,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x6c,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x77,0x02,0x00,0x00,
    +0x7e,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x79,0x02,0x00,0x00,0x77,0x02,0x00,0x00,
    +0x8c,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x7b,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7e,0x02,0x00,0x00,
    +0x7e,0x03,0x00,0x00,0x7d,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x7f,0x02,0x00,0x00,0x7b,0x02,0x00,0x00,
    +0x7e,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x81,0x02,0x00,0x00,0x4a,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x82,0x02,0x00,0x00,
    +0x7f,0x02,0x00,0x00,0x81,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x84,0x02,0x00,0x00,0x82,0x02,0x00,0x00,
    +0x8c,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x86,0x02,0x00,0x00,0x84,0x02,0x00,0x00,0x85,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x88,0x02,0x00,0x00,
    +0x86,0x02,0x00,0x00,0x79,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xac,0x01,0x00,0x00,0x89,0x02,0x00,0x00,0xf2,0x01,0x00,0x00,
    +0x88,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    +0x8a,0x02,0x00,0x00,0x89,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xd8,0x00,0x00,0x00,0x8b,0x02,0x00,0x00,0x75,0x02,0x00,0x00,
    +0x79,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0x8b,0x02,0x00,0x00,
    +0x8a,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x8d,0x02,0x00,0x00,0x8c,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x6b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x6d,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x66,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x66,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x8f,0x02,0x00,0x00,0x7e,0x03,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x63,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x65,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x91,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x91,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x7f,0x03,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x65,0x02,0x00,0x00,0xd3,0x02,0x00,0x00,
    +0x94,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0x97,0x02,0x00,0x00,0x7f,0x03,0x00,0x00,0xcb,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x93,0x02,0x00,0x00,0x94,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x97,0x02,0x00,0x00,
    +0x92,0x02,0x00,0x00,0x93,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x92,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x99,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x99,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x83,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x92,0x02,0x00,0x00,0xd1,0x02,0x00,0x00,0x9c,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x9f,0x02,0x00,0x00,
    +0x83,0x03,0x00,0x00,0x42,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x9b,0x02,0x00,0x00,0x9c,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x9f,0x02,0x00,0x00,0x9a,0x02,0x00,0x00,
    +0x9b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x9a,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xa1,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xa1,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x85,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0x9a,0x02,0x00,0x00,
    +0xcf,0x02,0x00,0x00,0xa4,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0xa7,0x02,0x00,0x00,0x85,0x03,0x00,0x00,
    +0xc8,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xa3,0x02,0x00,0x00,
    +0xa4,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xa7,0x02,0x00,0x00,0xa2,0x02,0x00,0x00,0xa3,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xa2,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xa9,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xa9,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x87,0x03,0x00,0x00,
    +0x20,0x00,0x00,0x00,0xa2,0x02,0x00,0x00,0xcd,0x02,0x00,0x00,
    +0xaa,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0xaf,0x02,0x00,0x00,0x87,0x03,0x00,0x00,0x44,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xab,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xaf,0x02,0x00,0x00,
    +0xaa,0x02,0x00,0x00,0xab,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xaa,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xb1,0x02,0x00,0x00,0x7f,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb3,0x02,0x00,0x00,
    +0xb1,0x02,0x00,0x00,0x85,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xb5,0x02,0x00,0x00,0xb3,0x02,0x00,0x00,
    +0xb4,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xb7,0x02,0x00,0x00,0x83,0x03,0x00,0x00,0x44,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb8,0x02,0x00,0x00,
    +0xb5,0x02,0x00,0x00,0xb7,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xba,0x02,0x00,0x00,0xb8,0x02,0x00,0x00,
    +0x87,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xbe,0x02,0x00,0x00,0xb7,0x02,0x00,0x00,0x87,0x03,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,0xbf,0x02,0x00,0x00,
    +0x48,0x02,0x00,0x00,0xbe,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xcf,0x00,0x00,0x00,0xc0,0x02,0x00,0x00,0xbf,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,0xc5,0x02,0x00,0x00,
    +0x75,0x02,0x00,0x00,0xb3,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xcf,0x00,0x00,0x00,0xc6,0x02,0x00,0x00,0xc5,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,0xc8,0x02,0x00,0x00,
    +0xd5,0x00,0x00,0x00,0xba,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xcf,0x00,0x00,0x00,0xc9,0x02,0x00,0x00,0xc8,0x02,0x00,0x00,
    +0x0c,0x00,0x08,0x00,0xcf,0x00,0x00,0x00,0xca,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xc0,0x02,0x00,0x00,
    +0xc6,0x02,0x00,0x00,0xc9,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0xc8,0x02,0x00,0x00,0xca,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xcd,0x02,0x00,0x00,0x87,0x03,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xa9,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xab,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xa4,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xa4,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xcf,0x02,0x00,0x00,
    +0x85,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xa1,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xa3,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x9c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x9c,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xd1,0x02,0x00,0x00,0x83,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x99,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x9b,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x94,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x94,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xd3,0x02,0x00,0x00,0x7f,0x03,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x91,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x93,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x31,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x31,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd5,0x02,0x00,0x00,
    +0x79,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x2e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x30,0x02,0x00,0x00,
    +0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0xa0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xe0,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xe0,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xd7,0x02,0x00,0x00,0x5e,0x03,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xdd,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xdf,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xdc,0x02,0x00,0x00,0x37,0x00,0x00,0x00,
    +0x35,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xdd,0x02,0x00,0x00,0xb4,0x00,0x00,0x00,0xdc,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe2,0x02,0x00,0x00,
    +0x3b,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xe3,0x02,0x00,0x00,0xa3,0x00,0x00,0x00,
    +0xe2,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xe5,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xe5,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x5f,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    +0xdf,0x00,0x00,0x00,0x4e,0x03,0x00,0x00,0xe8,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xeb,0x02,0x00,0x00,
    +0x5f,0x03,0x00,0x00,0xcb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xe7,0x02,0x00,0x00,0xe8,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xeb,0x02,0x00,0x00,0xe6,0x02,0x00,0x00,
    +0xe7,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xe6,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xed,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xed,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x60,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0xe6,0x02,0x00,0x00,
    +0x4c,0x03,0x00,0x00,0xf0,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0xf3,0x02,0x00,0x00,0x60,0x03,0x00,0x00,
    +0x42,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xef,0x02,0x00,0x00,
    +0xf0,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xf3,0x02,0x00,0x00,0xee,0x02,0x00,0x00,0xef,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xee,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xf7,0x02,0x00,0x00,0x60,0x03,0x00,0x00,
     0x43,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x51,0x02,0x00,0x00,0x4e,0x02,0x00,0x00,0x50,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x53,0x02,0x00,0x00,
    +0xf8,0x02,0x00,0x00,0xdd,0x02,0x00,0x00,0xf7,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfa,0x02,0x00,0x00,
     0x46,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x54,0x02,0x00,0x00,0x51,0x02,0x00,0x00,
    -0x53,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x56,0x02,0x00,0x00,0x54,0x02,0x00,0x00,0x8f,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x58,0x02,0x00,0x00,
    -0x56,0x02,0x00,0x00,0x57,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x5a,0x02,0x00,0x00,0x58,0x02,0x00,0x00,
    -0x79,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0xac,0x01,0x00,0x00,
    -0x5b,0x02,0x00,0x00,0x8e,0x01,0x00,0x00,0x5a,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0x5c,0x02,0x00,0x00,
    -0x5b,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,
    -0x5d,0x02,0x00,0x00,0x48,0x02,0x00,0x00,0x4c,0x02,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x5d,0x02,0x00,0x00,0x5c,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5f,0x02,0x00,0x00,
    -0x8f,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x3e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x40,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x39,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x39,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x61,0x02,0x00,0x00,0x7d,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x36,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x38,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x63,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x63,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x7e,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x38,0x02,0x00,0x00,0x8f,0x02,0x00,0x00,0x66,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x69,0x02,0x00,0x00,
    -0x7e,0x03,0x00,0x00,0xcb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x65,0x02,0x00,0x00,0x66,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x69,0x02,0x00,0x00,0x64,0x02,0x00,0x00,
    -0x65,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x64,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x6b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x6b,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x8c,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0x64,0x02,0x00,0x00,
    -0x8d,0x02,0x00,0x00,0x6c,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0x71,0x02,0x00,0x00,0x8c,0x03,0x00,0x00,
    -0xc8,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x6d,0x02,0x00,0x00,
    -0x6c,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x71,0x02,0x00,0x00,0x6c,0x02,0x00,0x00,0x6d,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x6c,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x77,0x02,0x00,0x00,0x7e,0x03,0x00,0x00,
    +0x06,0x00,0x00,0x00,0xfb,0x02,0x00,0x00,0xf8,0x02,0x00,0x00,
    +0xfa,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xff,0x02,0x00,0x00,0x5f,0x03,0x00,0x00,0x7d,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x00,0x03,0x00,0x00,
    +0xe3,0x02,0x00,0x00,0xff,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x02,0x03,0x00,0x00,0x4a,0x00,0x00,0x00,
     0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x79,0x02,0x00,0x00,0x77,0x02,0x00,0x00,0x8c,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7b,0x02,0x00,0x00,
    -0x3b,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x7e,0x02,0x00,0x00,0x7e,0x03,0x00,0x00,
    -0x7d,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x7f,0x02,0x00,0x00,0x7b,0x02,0x00,0x00,0x7e,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x81,0x02,0x00,0x00,
    -0x4a,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x82,0x02,0x00,0x00,0x7f,0x02,0x00,0x00,
    -0x81,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x84,0x02,0x00,0x00,0x82,0x02,0x00,0x00,0x8c,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x86,0x02,0x00,0x00,
    -0x84,0x02,0x00,0x00,0x85,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x88,0x02,0x00,0x00,0x86,0x02,0x00,0x00,
    -0x79,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0xac,0x01,0x00,0x00,
    -0x89,0x02,0x00,0x00,0xf2,0x01,0x00,0x00,0x88,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0x8a,0x02,0x00,0x00,
    -0x89,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,
    -0x8b,0x02,0x00,0x00,0x75,0x02,0x00,0x00,0x79,0x02,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x8b,0x02,0x00,0x00,0x8a,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8d,0x02,0x00,0x00,
    -0x8c,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x6b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x6d,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x66,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x66,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x8f,0x02,0x00,0x00,0x7e,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x63,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x65,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x91,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x91,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x7f,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x65,0x02,0x00,0x00,0xd3,0x02,0x00,0x00,0x94,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x97,0x02,0x00,0x00,
    -0x7f,0x03,0x00,0x00,0xcb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x93,0x02,0x00,0x00,0x94,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x97,0x02,0x00,0x00,0x92,0x02,0x00,0x00,
    -0x93,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x92,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x99,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x99,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x83,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0x92,0x02,0x00,0x00,
    -0xd1,0x02,0x00,0x00,0x9c,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0x9f,0x02,0x00,0x00,0x83,0x03,0x00,0x00,
    -0x42,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x9b,0x02,0x00,0x00,
    -0x9c,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x9f,0x02,0x00,0x00,0x9a,0x02,0x00,0x00,0x9b,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x9a,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xa1,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xa1,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x85,0x03,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x9a,0x02,0x00,0x00,0xcf,0x02,0x00,0x00,
    -0xa4,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0xa7,0x02,0x00,0x00,0x85,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xa3,0x02,0x00,0x00,0xa4,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xa7,0x02,0x00,0x00,
    -0xa2,0x02,0x00,0x00,0xa3,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xa2,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xa9,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xa9,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x87,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    -0xa2,0x02,0x00,0x00,0xcd,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xaf,0x02,0x00,0x00,
    -0x87,0x03,0x00,0x00,0x44,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xab,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xaf,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,
    -0xab,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xaa,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb1,0x02,0x00,0x00,
    -0x7f,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xb3,0x02,0x00,0x00,0xb1,0x02,0x00,0x00,
    -0x85,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xb5,0x02,0x00,0x00,0xb3,0x02,0x00,0x00,0xb4,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb7,0x02,0x00,0x00,
    -0x83,0x03,0x00,0x00,0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xb8,0x02,0x00,0x00,0xb5,0x02,0x00,0x00,
    -0xb7,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xba,0x02,0x00,0x00,0xb8,0x02,0x00,0x00,0x87,0x03,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbe,0x02,0x00,0x00,
    -0xb7,0x02,0x00,0x00,0x87,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xd8,0x00,0x00,0x00,0xbf,0x02,0x00,0x00,0x48,0x02,0x00,0x00,
    -0xbe,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    -0xc0,0x02,0x00,0x00,0xbf,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xd8,0x00,0x00,0x00,0xc5,0x02,0x00,0x00,0x75,0x02,0x00,0x00,
    -0xb3,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    -0xc6,0x02,0x00,0x00,0xc5,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xd8,0x00,0x00,0x00,0xc8,0x02,0x00,0x00,0xd5,0x00,0x00,0x00,
    -0xba,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    -0xc9,0x02,0x00,0x00,0xc8,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,
    -0xcf,0x00,0x00,0x00,0xca,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x32,0x00,0x00,0x00,0xc0,0x02,0x00,0x00,0xc6,0x02,0x00,0x00,
    -0xc9,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0xc8,0x02,0x00,0x00,
    -0xca,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xcd,0x02,0x00,0x00,0x87,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xa9,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xab,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xa4,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xa4,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xcf,0x02,0x00,0x00,0x85,0x03,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xa1,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xa3,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x9c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x9c,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd1,0x02,0x00,0x00,
    -0x83,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x99,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x9b,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x94,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x94,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xd3,0x02,0x00,0x00,0x7f,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x91,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x93,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x31,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x31,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xd5,0x02,0x00,0x00,0x79,0x03,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x2e,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x30,0x02,0x00,0x00,0xe0,0x00,0x04,0x00,
    -0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xe0,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xe0,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xd7,0x02,0x00,0x00,0x5e,0x03,0x00,0x00,0x4e,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xdd,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xdf,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xdc,0x02,0x00,0x00,0x37,0x00,0x00,0x00,0x35,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdd,0x02,0x00,0x00,
    -0xb4,0x00,0x00,0x00,0xdc,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xe2,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,
    -0xc5,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xe3,0x02,0x00,0x00,0xa3,0x00,0x00,0x00,0xe2,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xe5,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xe5,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x5f,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,
    -0x4e,0x03,0x00,0x00,0xe8,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0xeb,0x02,0x00,0x00,0x5f,0x03,0x00,0x00,
    -0xcb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xe7,0x02,0x00,0x00,
    -0xe8,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xeb,0x02,0x00,0x00,0xe6,0x02,0x00,0x00,0xe7,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xe6,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xed,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xed,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x60,0x03,0x00,0x00,
    -0x20,0x00,0x00,0x00,0xe6,0x02,0x00,0x00,0x4c,0x03,0x00,0x00,
    -0xf0,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0xf3,0x02,0x00,0x00,0x60,0x03,0x00,0x00,0x42,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xef,0x02,0x00,0x00,0xf0,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xf3,0x02,0x00,0x00,
    -0xee,0x02,0x00,0x00,0xef,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xee,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xf7,0x02,0x00,0x00,0x60,0x03,0x00,0x00,0x43,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf8,0x02,0x00,0x00,
    -0xdd,0x02,0x00,0x00,0xf7,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xfa,0x02,0x00,0x00,0x46,0x00,0x00,0x00,
    -0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xfb,0x02,0x00,0x00,0xf8,0x02,0x00,0x00,0xfa,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xff,0x02,0x00,0x00,
    -0x5f,0x03,0x00,0x00,0x7d,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0xe3,0x02,0x00,0x00,
    -0xff,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x02,0x03,0x00,0x00,0x4a,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x03,0x03,0x00,0x00,
    -0x00,0x03,0x00,0x00,0x02,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x05,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x05,0x03,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x62,0x03,0x00,0x00,
    -0x20,0x00,0x00,0x00,0xee,0x02,0x00,0x00,0x4a,0x03,0x00,0x00,
    -0x08,0x03,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0x0b,0x03,0x00,0x00,0x62,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x07,0x03,0x00,0x00,0x08,0x03,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x0b,0x03,0x00,0x00,
    -0x06,0x03,0x00,0x00,0x07,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x06,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x0f,0x03,0x00,0x00,0x03,0x03,0x00,0x00,0x62,0x03,0x00,0x00,
    -0xae,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x12,0x03,0x00,0x00,
    -0x0f,0x03,0x00,0x00,0x5c,0x03,0x00,0x00,0xf7,0x00,0x03,0x00,
    -0x14,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x12,0x03,0x00,0x00,0x13,0x03,0x00,0x00,0x14,0x03,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x13,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x07,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x14,0x03,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x97,0x00,0x00,0x00,0x18,0x03,0x00,0x00,
    -0x90,0x00,0x00,0x00,0x0f,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x8c,0x00,0x00,0x00,0x19,0x03,0x00,0x00,0x18,0x03,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x1b,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x1b,0x03,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x68,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0x14,0x03,0x00,0x00,
    -0x48,0x03,0x00,0x00,0x1c,0x03,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0x21,0x03,0x00,0x00,0x68,0x03,0x00,0x00,
    -0x44,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x1d,0x03,0x00,0x00,
    -0x1c,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x21,0x03,0x00,0x00,0x1c,0x03,0x00,0x00,0x1d,0x03,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x1c,0x03,0x00,0x00,0x51,0x00,0x05,0x00,
    -0x8b,0x00,0x00,0x00,0x27,0x03,0x00,0x00,0x19,0x03,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x28,0x03,0x00,0x00,0x27,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x16,0x00,0x00,0x00,0x2a,0x03,0x00,0x00,0x13,0x00,0x00,0x00,
    -0x29,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x2b,0x03,0x00,0x00,0x2a,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x2c,0x03,0x00,0x00,0x28,0x03,0x00,0x00,
    -0x2b,0x03,0x00,0x00,0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,
    -0x2e,0x03,0x00,0x00,0x19,0x03,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x2f,0x03,0x00,0x00,
    -0x2e,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
    -0x31,0x03,0x00,0x00,0x13,0x00,0x00,0x00,0x30,0x03,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x32,0x03,0x00,0x00,
    -0x31,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x33,0x03,0x00,0x00,0x2f,0x03,0x00,0x00,0x32,0x03,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x34,0x03,0x00,0x00,
    -0x2c,0x03,0x00,0x00,0x33,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x36,0x03,0x00,0x00,0x34,0x03,0x00,0x00,
    -0xfb,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x38,0x03,0x00,0x00,0x36,0x03,0x00,0x00,0x68,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3a,0x03,0x00,0x00,
    -0x5f,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x3c,0x03,0x00,0x00,0x3a,0x03,0x00,0x00,
    -0x62,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x3e,0x03,0x00,0x00,0x3c,0x03,0x00,0x00,0x3d,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x40,0x03,0x00,0x00,
    -0x60,0x03,0x00,0x00,0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x41,0x03,0x00,0x00,0x3e,0x03,0x00,0x00,
    -0x40,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x43,0x03,0x00,0x00,0x41,0x03,0x00,0x00,0x68,0x03,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,0x44,0x03,0x00,0x00,
    -0xd5,0x00,0x00,0x00,0x43,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xcf,0x00,0x00,0x00,0x45,0x03,0x00,0x00,0x44,0x03,0x00,0x00,
    -0x41,0x00,0x06,0x00,0x15,0x02,0x00,0x00,0x46,0x03,0x00,0x00,
    -0x25,0x03,0x00,0x00,0x15,0x00,0x00,0x00,0x38,0x03,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x46,0x03,0x00,0x00,0x45,0x03,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x48,0x03,0x00,0x00,
    -0x68,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x1b,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x1d,0x03,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x08,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x08,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x4a,0x03,0x00,0x00,0x62,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0x03,0x03,0x00,0x00,0x00,0x03,0x00,0x00,0x02,0x03,0x00,0x00,
     0xf9,0x00,0x02,0x00,0x05,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x07,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,0xf0,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xf0,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x4c,0x03,0x00,0x00,0x60,0x03,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xed,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xef,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xe8,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xe8,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4e,0x03,0x00,0x00,
    -0x5f,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xe5,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xe7,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x4f,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x4f,0x03,0x00,0x00,0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
    -
    +0x05,0x03,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x62,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0xee,0x02,0x00,0x00,
    +0x4a,0x03,0x00,0x00,0x08,0x03,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x0b,0x03,0x00,0x00,0x62,0x03,0x00,0x00,
    +0xc8,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x07,0x03,0x00,0x00,
    +0x08,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x0b,0x03,0x00,0x00,0x06,0x03,0x00,0x00,0x07,0x03,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x06,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x0f,0x03,0x00,0x00,0x03,0x03,0x00,0x00,
    +0x62,0x03,0x00,0x00,0xae,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0x12,0x03,0x00,0x00,0x0f,0x03,0x00,0x00,0x5c,0x03,0x00,0x00,
    +0xf7,0x00,0x03,0x00,0x14,0x03,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x12,0x03,0x00,0x00,0x13,0x03,0x00,0x00,
    +0x14,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x13,0x03,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x07,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x14,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x97,0x00,0x00,0x00,
    +0x18,0x03,0x00,0x00,0x90,0x00,0x00,0x00,0x0f,0x03,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,0x19,0x03,0x00,0x00,
    +0x18,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,0x1b,0x03,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x1b,0x03,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x68,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x14,0x03,0x00,0x00,0x48,0x03,0x00,0x00,0x1c,0x03,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x21,0x03,0x00,0x00,
    +0x68,0x03,0x00,0x00,0x44,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x1d,0x03,0x00,0x00,0x1c,0x03,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x21,0x03,0x00,0x00,0x1c,0x03,0x00,0x00,
    +0x1d,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x1c,0x03,0x00,0x00,
    +0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,0x27,0x03,0x00,0x00,
    +0x19,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x28,0x03,0x00,0x00,0x27,0x03,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0x2a,0x03,0x00,0x00,
    +0x13,0x00,0x00,0x00,0x29,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x2b,0x03,0x00,0x00,0x2a,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2c,0x03,0x00,0x00,
    +0x28,0x03,0x00,0x00,0x2b,0x03,0x00,0x00,0x51,0x00,0x05,0x00,
    +0x8b,0x00,0x00,0x00,0x2e,0x03,0x00,0x00,0x19,0x03,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x2f,0x03,0x00,0x00,0x2e,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x16,0x00,0x00,0x00,0x31,0x03,0x00,0x00,0x13,0x00,0x00,0x00,
    +0x30,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x32,0x03,0x00,0x00,0x31,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x33,0x03,0x00,0x00,0x2f,0x03,0x00,0x00,
    +0x32,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x34,0x03,0x00,0x00,0x2c,0x03,0x00,0x00,0x33,0x03,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x36,0x03,0x00,0x00,
    +0x34,0x03,0x00,0x00,0xfb,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x38,0x03,0x00,0x00,0x36,0x03,0x00,0x00,
    +0x68,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x3a,0x03,0x00,0x00,0x5f,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3c,0x03,0x00,0x00,
    +0x3a,0x03,0x00,0x00,0x62,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x3e,0x03,0x00,0x00,0x3c,0x03,0x00,0x00,
    +0x3d,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x40,0x03,0x00,0x00,0x60,0x03,0x00,0x00,0x44,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x41,0x03,0x00,0x00,
    +0x3e,0x03,0x00,0x00,0x40,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x43,0x03,0x00,0x00,0x41,0x03,0x00,0x00,
    +0x68,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,
    +0x44,0x03,0x00,0x00,0xd5,0x00,0x00,0x00,0x43,0x03,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0x45,0x03,0x00,0x00,
    +0x44,0x03,0x00,0x00,0x41,0x00,0x06,0x00,0x15,0x02,0x00,0x00,
    +0x46,0x03,0x00,0x00,0x25,0x03,0x00,0x00,0x15,0x00,0x00,0x00,
    +0x38,0x03,0x00,0x00,0x3e,0x00,0x03,0x00,0x46,0x03,0x00,0x00,
    +0x45,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x48,0x03,0x00,0x00,0x68,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x1b,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x1d,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,0x08,0x03,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x08,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x4a,0x03,0x00,0x00,0x62,0x03,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x05,0x03,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x07,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xf0,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xf0,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4c,0x03,0x00,0x00,
    +0x60,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xed,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xef,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xe8,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xe8,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x4e,0x03,0x00,0x00,0x5f,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xe5,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xe7,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x4f,0x03,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x4f,0x03,0x00,0x00,0xfd,0x00,0x01,0x00,
    +0x38,0x00,0x01,0x00,
     };
    -const uint64_t matmul_id_q5_k_f32_fp32_len = 12948;
    +const uint64_t matmul_id_q5_k_f32_fp32_len = 12928;
     
     unsigned char matmul_id_q6_k_f32_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
    @@ -69599,9 +73313,9 @@ unsigned char matmul_id_q6_k_f32_data[] = {
     0x44,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x4e,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x4e,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x4e,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
     0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    @@ -69713,7 +73427,7 @@ unsigned char matmul_id_q6_k_f32_data[] = {
     0x06,0x00,0x00,0x00,0x96,0x01,0x00,0x00,0x51,0x00,0x00,0x00,
     0x95,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x97,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    -0x96,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x96,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x98,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
     0x97,0x01,0x00,0x00,0x4e,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0xb4,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
    @@ -69745,7 +73459,7 @@ unsigned char matmul_id_q6_k_f32_data[] = {
     0x06,0x00,0x00,0x00,0xec,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
     0xeb,0x01,0x00,0x00,0x4e,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0xef,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x4e,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0xf2,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
     0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x0d,0x02,0x00,0x00,0x84,0x00,0x00,0x00,
    @@ -69913,7 +73627,7 @@ unsigned char matmul_id_q6_k_f32_data[] = {
     0xb4,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,
     0xb8,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xbb,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0xbb,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
     0xf9,0x00,0x02,0x00,0xbe,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
     0xbe,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
     0x26,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,
    @@ -69955,526 +73669,525 @@ unsigned char matmul_id_q6_k_f32_data[] = {
     0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,
     0xf1,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xf6,0x00,0x00,0x00,0x3c,0x03,0x00,0x00,0xf5,0x00,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,
     0xf6,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0xf1,0x00,0x00,0x00,
    -0xfd,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x00,0x01,0x00,0x00,0x50,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x01,0x01,0x00,0x00,
    -0xfe,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x86,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0xf8,0x00,0x00,0x00,
    -0x04,0x01,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x08,0x01,0x00,0x00,0xf8,0x00,0x00,0x00,0x04,0x01,0x00,0x00,
    -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,
    -0x08,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,0x89,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x0f,0x01,0x00,0x00,0x08,0x01,0x00,0x00,
    -0x0b,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x11,0x01,0x00,0x00,0x0f,0x01,0x00,0x00,0x10,0x01,0x00,0x00,
    -0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x15,0x01,0x00,0x00,
    -0x08,0x01,0x00,0x00,0x14,0x01,0x00,0x00,0x86,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x17,0x01,0x00,0x00,0x15,0x01,0x00,0x00,
    -0x16,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x1b,0x01,0x00,0x00,0x0f,0x01,0x00,0x00,0x14,0x01,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,
    -0x1b,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x1f,0x01,0x00,0x00,0x16,0x01,0x00,0x00,
    -0x0c,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x21,0x01,0x00,0x00,0x1f,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x23,0x01,0x00,0x00,
    -0x21,0x01,0x00,0x00,0x17,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x26,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,
    -0x0b,0x01,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x28,0x01,0x00,0x00,0x08,0x01,0x00,0x00,0x10,0x01,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x29,0x01,0x00,0x00,
    -0x28,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x2a,0x01,0x00,0x00,0x26,0x01,0x00,0x00,
    -0x29,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x2d,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,0x10,0x01,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x30,0x01,0x00,0x00,
    -0x15,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x31,0x01,0x00,0x00,0x2d,0x01,0x00,0x00,
    -0x30,0x01,0x00,0x00,0x41,0x00,0x07,0x00,0x3f,0x01,0x00,0x00,
    -0x40,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    -0x05,0x01,0x00,0x00,0xb5,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x38,0x01,0x00,0x00,0x41,0x01,0x00,0x00,0x40,0x01,0x00,0x00,
    -0x73,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0x42,0x01,0x00,0x00,
    -0x41,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x45,0x01,0x00,0x00,
    -0x46,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    -0x05,0x01,0x00,0x00,0xaa,0x00,0x00,0x00,0x23,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x36,0x01,0x00,0x00,0x47,0x01,0x00,0x00,
    -0x46,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    -0x48,0x01,0x00,0x00,0x47,0x01,0x00,0x00,0x85,0x00,0x05,0x00,
    -0xcf,0x00,0x00,0x00,0x49,0x01,0x00,0x00,0x42,0x01,0x00,0x00,
    -0x48,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x53,0x01,0x00,0x00,
    -0x54,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    -0x05,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x2a,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x33,0x01,0x00,0x00,0x55,0x01,0x00,0x00,
    -0x54,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x58,0x01,0x00,0x00,0x11,0x01,0x00,0x00,0x57,0x01,0x00,0x00,
    -0xc2,0x00,0x05,0x00,0x33,0x01,0x00,0x00,0x59,0x01,0x00,0x00,
    -0x55,0x01,0x00,0x00,0x58,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x5a,0x01,0x00,0x00,0x59,0x01,0x00,0x00,
    -0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x5b,0x01,0x00,0x00,
    -0x5a,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x14,0x00,0x00,0x00,
    -0x5d,0x01,0x00,0x00,0x5b,0x01,0x00,0x00,0x5c,0x01,0x00,0x00,
    -0x41,0x00,0x08,0x00,0x53,0x01,0x00,0x00,0x60,0x01,0x00,0x00,
    -0x3d,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0x31,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x33,0x01,0x00,0x00,0x61,0x01,0x00,0x00,0x60,0x01,0x00,0x00,
    -0xc2,0x00,0x05,0x00,0x33,0x01,0x00,0x00,0x63,0x01,0x00,0x00,
    -0x61,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x64,0x01,0x00,0x00,0x63,0x01,0x00,0x00,
    -0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x65,0x01,0x00,0x00,
    -0x64,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x14,0x00,0x00,0x00,
    -0x66,0x01,0x00,0x00,0x65,0x01,0x00,0x00,0xb5,0x00,0x00,0x00,
    -0xc4,0x00,0x05,0x00,0x14,0x00,0x00,0x00,0x68,0x01,0x00,0x00,
    -0x66,0x01,0x00,0x00,0x67,0x01,0x00,0x00,0xc5,0x00,0x05,0x00,
    -0x14,0x00,0x00,0x00,0x69,0x01,0x00,0x00,0x5d,0x01,0x00,0x00,
    -0x68,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x36,0x01,0x00,0x00,
    -0x6a,0x01,0x00,0x00,0x69,0x01,0x00,0x00,0x72,0x00,0x04,0x00,
    -0x14,0x00,0x00,0x00,0x6b,0x01,0x00,0x00,0x6a,0x01,0x00,0x00,
    -0x82,0x00,0x05,0x00,0x14,0x00,0x00,0x00,0x6d,0x01,0x00,0x00,
    -0x6b,0x01,0x00,0x00,0x6c,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,
    -0xcf,0x00,0x00,0x00,0x6e,0x01,0x00,0x00,0x6d,0x01,0x00,0x00,
    -0x85,0x00,0x05,0x00,0xcf,0x00,0x00,0x00,0x6f,0x01,0x00,0x00,
    -0x49,0x01,0x00,0x00,0x6e,0x01,0x00,0x00,0x73,0x00,0x04,0x00,
    -0x38,0x01,0x00,0x00,0x70,0x01,0x00,0x00,0x6f,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x71,0x01,0x00,0x00,0x72,0x01,0x00,0x00,
    -0x4e,0x01,0x00,0x00,0x01,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x72,0x01,0x00,0x00,0x70,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x74,0x01,0x00,0x00,0x01,0x01,0x00,0x00,
    -0x1b,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x78,0x01,0x00,0x00,0x2a,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,
    -0x41,0x00,0x08,0x00,0x53,0x01,0x00,0x00,0x79,0x01,0x00,0x00,
    +0xfd,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x01,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,0x50,0x00,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x05,0x01,0x00,0x00,
    +0xf8,0x00,0x00,0x00,0x04,0x01,0x00,0x00,0x89,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0xf8,0x00,0x00,0x00,
    +0x04,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x0c,0x01,0x00,0x00,0x08,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,
    +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0f,0x01,0x00,0x00,
    +0x08,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x11,0x01,0x00,0x00,0x0f,0x01,0x00,0x00,
    +0x10,0x01,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x15,0x01,0x00,0x00,0x08,0x01,0x00,0x00,0x14,0x01,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x17,0x01,0x00,0x00,
    +0x15,0x01,0x00,0x00,0x16,0x01,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x1b,0x01,0x00,0x00,0x0f,0x01,0x00,0x00,
    +0x14,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x1c,0x01,0x00,0x00,0x1b,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1f,0x01,0x00,0x00,
    +0x16,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x21,0x01,0x00,0x00,0x1f,0x01,0x00,0x00,
    +0x1c,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x23,0x01,0x00,0x00,0x21,0x01,0x00,0x00,0x17,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x26,0x01,0x00,0x00,
    +0x0c,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,0x89,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x28,0x01,0x00,0x00,0x08,0x01,0x00,0x00,
    +0x10,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x29,0x01,0x00,0x00,0x28,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2a,0x01,0x00,0x00,
    +0x26,0x01,0x00,0x00,0x29,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x2d,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,
    +0x10,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x30,0x01,0x00,0x00,0x15,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x31,0x01,0x00,0x00,
    +0x2d,0x01,0x00,0x00,0x30,0x01,0x00,0x00,0x41,0x00,0x07,0x00,
    +0x3f,0x01,0x00,0x00,0x40,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,
    +0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0xb5,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x38,0x01,0x00,0x00,0x41,0x01,0x00,0x00,
    +0x40,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    +0x42,0x01,0x00,0x00,0x41,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x45,0x01,0x00,0x00,0x46,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,
    +0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0xaa,0x00,0x00,0x00,
    +0x23,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x36,0x01,0x00,0x00,
    +0x47,0x01,0x00,0x00,0x46,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,
    +0xcf,0x00,0x00,0x00,0x48,0x01,0x00,0x00,0x47,0x01,0x00,0x00,
    +0x85,0x00,0x05,0x00,0xcf,0x00,0x00,0x00,0x49,0x01,0x00,0x00,
    +0x42,0x01,0x00,0x00,0x48,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x53,0x01,0x00,0x00,0x54,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,
    +0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    +0x2a,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x33,0x01,0x00,0x00,
    +0x55,0x01,0x00,0x00,0x54,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x58,0x01,0x00,0x00,0x11,0x01,0x00,0x00,
    +0x57,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x33,0x01,0x00,0x00,
    +0x59,0x01,0x00,0x00,0x55,0x01,0x00,0x00,0x58,0x01,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x5a,0x01,0x00,0x00,
    +0x59,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    +0x5b,0x01,0x00,0x00,0x5a,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
    +0x14,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,0x5b,0x01,0x00,0x00,
    +0x5c,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x53,0x01,0x00,0x00,
    +0x60,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    +0x05,0x01,0x00,0x00,0x9a,0x00,0x00,0x00,0x31,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x33,0x01,0x00,0x00,0x61,0x01,0x00,0x00,
    +0x60,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x33,0x01,0x00,0x00,
    +0x63,0x01,0x00,0x00,0x61,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x64,0x01,0x00,0x00,
    +0x63,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    +0x65,0x01,0x00,0x00,0x64,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
    +0x14,0x00,0x00,0x00,0x66,0x01,0x00,0x00,0x65,0x01,0x00,0x00,
    +0xb5,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x14,0x00,0x00,0x00,
    +0x68,0x01,0x00,0x00,0x66,0x01,0x00,0x00,0x67,0x01,0x00,0x00,
    +0xc5,0x00,0x05,0x00,0x14,0x00,0x00,0x00,0x69,0x01,0x00,0x00,
    +0x5d,0x01,0x00,0x00,0x68,0x01,0x00,0x00,0x72,0x00,0x04,0x00,
    +0x36,0x01,0x00,0x00,0x6a,0x01,0x00,0x00,0x69,0x01,0x00,0x00,
    +0x72,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x6b,0x01,0x00,0x00,
    +0x6a,0x01,0x00,0x00,0x82,0x00,0x05,0x00,0x14,0x00,0x00,0x00,
    +0x6d,0x01,0x00,0x00,0x6b,0x01,0x00,0x00,0x6c,0x01,0x00,0x00,
    +0x6f,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0x6e,0x01,0x00,0x00,
    +0x6d,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0xcf,0x00,0x00,0x00,
    +0x6f,0x01,0x00,0x00,0x49,0x01,0x00,0x00,0x6e,0x01,0x00,0x00,
    +0x73,0x00,0x04,0x00,0x38,0x01,0x00,0x00,0x70,0x01,0x00,0x00,
    +0x6f,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x71,0x01,0x00,0x00,
    +0x72,0x01,0x00,0x00,0x4e,0x01,0x00,0x00,0x01,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x72,0x01,0x00,0x00,0x70,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x74,0x01,0x00,0x00,
    +0x01,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x78,0x01,0x00,0x00,0x2a,0x01,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0x53,0x01,0x00,0x00,
    +0x79,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    +0x05,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x78,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x33,0x01,0x00,0x00,0x7a,0x01,0x00,0x00,
    +0x79,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x33,0x01,0x00,0x00,
    +0x7d,0x01,0x00,0x00,0x7a,0x01,0x00,0x00,0x58,0x01,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x7e,0x01,0x00,0x00,
    +0x7d,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    +0x7f,0x01,0x00,0x00,0x7e,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
    +0x14,0x00,0x00,0x00,0x80,0x01,0x00,0x00,0x7f,0x01,0x00,0x00,
    +0x5c,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x83,0x01,0x00,0x00,0x31,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x53,0x01,0x00,0x00,0x84,0x01,0x00,0x00,
     0x3d,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,
    -0x15,0x00,0x00,0x00,0x78,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x33,0x01,0x00,0x00,0x7a,0x01,0x00,0x00,0x79,0x01,0x00,0x00,
    -0xc2,0x00,0x05,0x00,0x33,0x01,0x00,0x00,0x7d,0x01,0x00,0x00,
    -0x7a,0x01,0x00,0x00,0x58,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x7e,0x01,0x00,0x00,0x7d,0x01,0x00,0x00,
    -0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x7f,0x01,0x00,0x00,
    -0x7e,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x14,0x00,0x00,0x00,
    -0x80,0x01,0x00,0x00,0x7f,0x01,0x00,0x00,0x5c,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x83,0x01,0x00,0x00,
    -0x31,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x53,0x01,0x00,0x00,0x84,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,
    -0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0x83,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x33,0x01,0x00,0x00,
    -0x85,0x01,0x00,0x00,0x84,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,
    -0x33,0x01,0x00,0x00,0x87,0x01,0x00,0x00,0x85,0x01,0x00,0x00,
    -0x1c,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x88,0x01,0x00,0x00,0x87,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    -0x14,0x00,0x00,0x00,0x89,0x01,0x00,0x00,0x88,0x01,0x00,0x00,
    -0xc7,0x00,0x05,0x00,0x14,0x00,0x00,0x00,0x8a,0x01,0x00,0x00,
    -0x89,0x01,0x00,0x00,0xb5,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,
    -0x14,0x00,0x00,0x00,0x8b,0x01,0x00,0x00,0x8a,0x01,0x00,0x00,
    -0x67,0x01,0x00,0x00,0xc5,0x00,0x05,0x00,0x14,0x00,0x00,0x00,
    -0x8c,0x01,0x00,0x00,0x80,0x01,0x00,0x00,0x8b,0x01,0x00,0x00,
    -0x72,0x00,0x04,0x00,0x36,0x01,0x00,0x00,0x8d,0x01,0x00,0x00,
    -0x8c,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    -0x8e,0x01,0x00,0x00,0x8d,0x01,0x00,0x00,0x82,0x00,0x05,0x00,
    -0x14,0x00,0x00,0x00,0x8f,0x01,0x00,0x00,0x8e,0x01,0x00,0x00,
    -0x6c,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    -0x90,0x01,0x00,0x00,0x8f,0x01,0x00,0x00,0x85,0x00,0x05,0x00,
    -0xcf,0x00,0x00,0x00,0x91,0x01,0x00,0x00,0x49,0x01,0x00,0x00,
    -0x90,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x38,0x01,0x00,0x00,
    -0x92,0x01,0x00,0x00,0x91,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x71,0x01,0x00,0x00,0x93,0x01,0x00,0x00,0x4e,0x01,0x00,0x00,
    -0x74,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x93,0x01,0x00,0x00,
    -0x92,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x9a,0x01,0x00,0x00,0x38,0x03,0x00,0x00,0x98,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xe6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xe8,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x9c,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x9c,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x39,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    -0xe8,0x00,0x00,0x00,0xee,0x01,0x00,0x00,0x9f,0x01,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xa2,0x01,0x00,0x00,
    -0x39,0x03,0x00,0x00,0xa2,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x9e,0x01,0x00,0x00,0x9f,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xa2,0x01,0x00,0x00,0x9d,0x01,0x00,0x00,
    -0x9e,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x9d,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa7,0x01,0x00,0x00,
    -0xa3,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xa9,0x01,0x00,0x00,0xa7,0x01,0x00,0x00,
    -0x39,0x03,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0xac,0x01,0x00,0x00,0xa9,0x01,0x00,0x00,0x25,0x03,0x00,0x00,
    -0xf7,0x00,0x03,0x00,0xae,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xac,0x01,0x00,0x00,0xad,0x01,0x00,0x00,
    -0xe0,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xad,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x97,0x00,0x00,0x00,0xb2,0x01,0x00,0x00,
    -0x90,0x00,0x00,0x00,0xa9,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x8c,0x00,0x00,0x00,0xb3,0x01,0x00,0x00,0xb2,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbb,0x01,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0x83,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x33,0x01,0x00,0x00,0x85,0x01,0x00,0x00,0x84,0x01,0x00,0x00,
    +0xc2,0x00,0x05,0x00,0x33,0x01,0x00,0x00,0x87,0x01,0x00,0x00,
    +0x85,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x88,0x01,0x00,0x00,0x87,0x01,0x00,0x00,
    +0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x89,0x01,0x00,0x00,
    +0x88,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x14,0x00,0x00,0x00,
    +0x8a,0x01,0x00,0x00,0x89,0x01,0x00,0x00,0xb5,0x00,0x00,0x00,
    +0xc4,0x00,0x05,0x00,0x14,0x00,0x00,0x00,0x8b,0x01,0x00,0x00,
    +0x8a,0x01,0x00,0x00,0x67,0x01,0x00,0x00,0xc5,0x00,0x05,0x00,
    +0x14,0x00,0x00,0x00,0x8c,0x01,0x00,0x00,0x80,0x01,0x00,0x00,
    +0x8b,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x36,0x01,0x00,0x00,
    +0x8d,0x01,0x00,0x00,0x8c,0x01,0x00,0x00,0x72,0x00,0x04,0x00,
    +0x14,0x00,0x00,0x00,0x8e,0x01,0x00,0x00,0x8d,0x01,0x00,0x00,
    +0x82,0x00,0x05,0x00,0x14,0x00,0x00,0x00,0x8f,0x01,0x00,0x00,
    +0x8e,0x01,0x00,0x00,0x6c,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,
    +0xcf,0x00,0x00,0x00,0x90,0x01,0x00,0x00,0x8f,0x01,0x00,0x00,
    +0x85,0x00,0x05,0x00,0xcf,0x00,0x00,0x00,0x91,0x01,0x00,0x00,
    +0x49,0x01,0x00,0x00,0x90,0x01,0x00,0x00,0x73,0x00,0x04,0x00,
    +0x38,0x01,0x00,0x00,0x92,0x01,0x00,0x00,0x91,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x71,0x01,0x00,0x00,0x93,0x01,0x00,0x00,
    +0x4e,0x01,0x00,0x00,0x74,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x93,0x01,0x00,0x00,0x92,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x9a,0x01,0x00,0x00,0x38,0x03,0x00,0x00,
    +0x98,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xe6,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xe8,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x9c,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x9c,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x39,0x03,0x00,0x00,
    +0x20,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0xee,0x01,0x00,0x00,
    +0x9f,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0xa2,0x01,0x00,0x00,0x39,0x03,0x00,0x00,0xa2,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x9e,0x01,0x00,0x00,0x9f,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xa2,0x01,0x00,0x00,
    +0x9d,0x01,0x00,0x00,0x9e,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x9d,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xa7,0x01,0x00,0x00,0xa3,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa9,0x01,0x00,0x00,
    +0xa7,0x01,0x00,0x00,0x39,0x03,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0xac,0x01,0x00,0x00,0xa9,0x01,0x00,0x00,
    +0x25,0x03,0x00,0x00,0xf7,0x00,0x03,0x00,0xae,0x01,0x00,0x00,
    +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xac,0x01,0x00,0x00,
    +0xad,0x01,0x00,0x00,0xe0,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xad,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x97,0x00,0x00,0x00,
    +0xb2,0x01,0x00,0x00,0x90,0x00,0x00,0x00,0xa9,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,0xb3,0x01,0x00,0x00,
    +0xb2,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xbb,0x01,0x00,0x00,0x5f,0x00,0x00,0x00,0x39,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbd,0x01,0x00,0x00,
    +0xbb,0x01,0x00,0x00,0xbc,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xbf,0x01,0x00,0x00,0xbd,0x01,0x00,0x00,
    +0x5a,0x00,0x00,0x00,0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,
    +0xc7,0x01,0x00,0x00,0xb3,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xc8,0x01,0x00,0x00,
    +0xc7,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
    +0xca,0x01,0x00,0x00,0x13,0x00,0x00,0x00,0xc9,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xcb,0x01,0x00,0x00,
    +0xca,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xcc,0x01,0x00,0x00,0xc8,0x01,0x00,0x00,0xcb,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xcd,0x01,0x00,0x00,
    +0x40,0x03,0x00,0x00,0xcc,0x01,0x00,0x00,0x51,0x00,0x05,0x00,
    +0x8b,0x00,0x00,0x00,0xcf,0x01,0x00,0x00,0xb3,0x01,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0xd0,0x01,0x00,0x00,0xcf,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x16,0x00,0x00,0x00,0xd2,0x01,0x00,0x00,0x13,0x00,0x00,0x00,
    +0xd1,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0xd3,0x01,0x00,0x00,0xd2,0x01,0x00,0x00,0x89,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xd4,0x01,0x00,0x00,0xd0,0x01,0x00,0x00,
    +0xd3,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
    +0xd5,0x01,0x00,0x00,0x13,0x00,0x00,0x00,0x67,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xd6,0x01,0x00,0x00,
    +0xd5,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xd7,0x01,0x00,0x00,0xd4,0x01,0x00,0x00,0xd6,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd8,0x01,0x00,0x00,
    +0xcd,0x01,0x00,0x00,0xd7,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xda,0x01,0x00,0x00,0xd8,0x01,0x00,0x00,
    +0x5a,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xdb,0x01,0x00,0x00,
    +0xdc,0x01,0x00,0x00,0xc3,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    +0xda,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    +0xdd,0x01,0x00,0x00,0xdc,0x01,0x00,0x00,0x73,0x00,0x04,0x00,
    +0x38,0x01,0x00,0x00,0xde,0x01,0x00,0x00,0xdd,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x71,0x01,0x00,0x00,0xdf,0x01,0x00,0x00,
    +0xb8,0x01,0x00,0x00,0xbf,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0xdf,0x01,0x00,0x00,0xde,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xae,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xe0,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe3,0x01,0x00,0x00,
     0x5f,0x00,0x00,0x00,0x39,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xbd,0x01,0x00,0x00,0xbb,0x01,0x00,0x00,
    -0xbc,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xbf,0x01,0x00,0x00,0xbd,0x01,0x00,0x00,0x5a,0x00,0x00,0x00,
    -0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,0xc7,0x01,0x00,0x00,
    -0xb3,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0xc8,0x01,0x00,0x00,0xc7,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0xca,0x01,0x00,0x00,
    -0x13,0x00,0x00,0x00,0xc9,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0xcb,0x01,0x00,0x00,0xca,0x01,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xcc,0x01,0x00,0x00,
    -0xc8,0x01,0x00,0x00,0xcb,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xcd,0x01,0x00,0x00,0x40,0x03,0x00,0x00,
    -0xcc,0x01,0x00,0x00,0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,
    -0xcf,0x01,0x00,0x00,0xb3,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xd0,0x01,0x00,0x00,
    -0xcf,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
    -0xd2,0x01,0x00,0x00,0x13,0x00,0x00,0x00,0xd1,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xd3,0x01,0x00,0x00,
    -0xd2,0x01,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xd4,0x01,0x00,0x00,0xd0,0x01,0x00,0x00,0xd3,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0xd5,0x01,0x00,0x00,
    -0x13,0x00,0x00,0x00,0x67,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0xd6,0x01,0x00,0x00,0xd5,0x01,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd7,0x01,0x00,0x00,
    -0xd4,0x01,0x00,0x00,0xd6,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xd8,0x01,0x00,0x00,0xcd,0x01,0x00,0x00,
    -0xd7,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xda,0x01,0x00,0x00,0xd8,0x01,0x00,0x00,0x5a,0x00,0x00,0x00,
    -0x41,0x00,0x06,0x00,0xdb,0x01,0x00,0x00,0xdc,0x01,0x00,0x00,
    -0xc3,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0xda,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0xdd,0x01,0x00,0x00,
    -0xdc,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x38,0x01,0x00,0x00,
    -0xde,0x01,0x00,0x00,0xdd,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x71,0x01,0x00,0x00,0xdf,0x01,0x00,0x00,0xb8,0x01,0x00,0x00,
    -0xbf,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xdf,0x01,0x00,0x00,
    -0xde,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xae,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xe0,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xe3,0x01,0x00,0x00,0x5f,0x00,0x00,0x00,
    -0x39,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xe5,0x01,0x00,0x00,0xe3,0x01,0x00,0x00,0xe4,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe7,0x01,0x00,0x00,
    -0xe5,0x01,0x00,0x00,0x5a,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x71,0x01,0x00,0x00,0xe9,0x01,0x00,0x00,0xb8,0x01,0x00,0x00,
    -0xe7,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xe9,0x01,0x00,0x00,
    -0xe8,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xae,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xae,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x9f,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x9f,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xee,0x01,0x00,0x00,
    -0x39,0x03,0x00,0x00,0xec,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x9c,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x9e,0x01,0x00,0x00,
    -0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0xa0,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xf1,0x01,0x00,0x00,0x3c,0x03,0x00,0x00,0xef,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf4,0x01,0x00,0x00,
    -0x40,0x03,0x00,0x00,0xf2,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xf6,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xf6,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x42,0x03,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x9e,0x01,0x00,0x00,0xa0,0x02,0x00,0x00,
    -0xf9,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0xfc,0x01,0x00,0x00,0x42,0x03,0x00,0x00,0x4e,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xf8,0x01,0x00,0x00,0xf9,0x01,0x00,0x00,
    -0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xfc,0x01,0x00,0x00,
    -0xf7,0x01,0x00,0x00,0xf8,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xf7,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xfe,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xfe,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x46,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    -0xf7,0x01,0x00,0x00,0x2a,0x02,0x00,0x00,0x01,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x04,0x02,0x00,0x00,
    -0x46,0x03,0x00,0x00,0x42,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x00,0x02,0x00,0x00,0x01,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x04,0x02,0x00,0x00,0xff,0x01,0x00,0x00,
    -0x00,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xff,0x01,0x00,0x00,
    +0x06,0x00,0x00,0x00,0xe5,0x01,0x00,0x00,0xe3,0x01,0x00,0x00,
    +0xe4,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xe7,0x01,0x00,0x00,0xe5,0x01,0x00,0x00,0x5a,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x71,0x01,0x00,0x00,0xe9,0x01,0x00,0x00,
    +0xb8,0x01,0x00,0x00,0xe7,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0xe9,0x01,0x00,0x00,0xe8,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xae,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xae,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x9f,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x9f,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xee,0x01,0x00,0x00,0x39,0x03,0x00,0x00,0xec,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x9c,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x9e,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xf1,0x01,0x00,0x00,0x3c,0x03,0x00,0x00,
    +0xef,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xf4,0x01,0x00,0x00,0x40,0x03,0x00,0x00,0xf2,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xf6,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xf6,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x42,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0x9e,0x01,0x00,0x00,
    +0xa0,0x02,0x00,0x00,0xf9,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0xfc,0x01,0x00,0x00,0x42,0x03,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xf8,0x01,0x00,0x00,
    +0xf9,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xfc,0x01,0x00,0x00,0xf7,0x01,0x00,0x00,0xf8,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xf7,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xfe,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xfe,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x46,0x03,0x00,0x00,
    +0x20,0x00,0x00,0x00,0xf7,0x01,0x00,0x00,0x2a,0x02,0x00,0x00,
    +0x01,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0x04,0x02,0x00,0x00,0x46,0x03,0x00,0x00,0x42,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x00,0x02,0x00,0x00,0x01,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x04,0x02,0x00,0x00,
    +0xff,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xff,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x06,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x06,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x58,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    +0xff,0x01,0x00,0x00,0x28,0x02,0x00,0x00,0x07,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x0c,0x02,0x00,0x00,
    +0x58,0x03,0x00,0x00,0x44,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x08,0x02,0x00,0x00,0x07,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x0c,0x02,0x00,0x00,0x07,0x02,0x00,0x00,
    +0x08,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x07,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x12,0x02,0x00,0x00,
    +0x46,0x03,0x00,0x00,0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x14,0x02,0x00,0x00,0x12,0x02,0x00,0x00,
    +0x58,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x16,0x02,0x00,0x00,0x37,0x00,0x00,0x00,0x35,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x18,0x02,0x00,0x00,
    +0x46,0x03,0x00,0x00,0x43,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x19,0x02,0x00,0x00,0x16,0x02,0x00,0x00,
    +0x18,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x1b,0x02,0x00,0x00,0x46,0x00,0x00,0x00,0x44,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1c,0x02,0x00,0x00,
    +0x19,0x02,0x00,0x00,0x1b,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x1e,0x02,0x00,0x00,0x1c,0x02,0x00,0x00,
    +0x58,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x20,0x02,0x00,0x00,0x1e,0x02,0x00,0x00,0x1f,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x22,0x02,0x00,0x00,
    +0x20,0x02,0x00,0x00,0x42,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x71,0x01,0x00,0x00,0x23,0x02,0x00,0x00,0x4e,0x01,0x00,0x00,
    +0x22,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x38,0x01,0x00,0x00,
    +0x24,0x02,0x00,0x00,0x23,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x25,0x02,0x00,0x00,0x26,0x02,0x00,0x00,0x10,0x02,0x00,0x00,
    +0x14,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0x26,0x02,0x00,0x00,
    +0x24,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x28,0x02,0x00,0x00,0x58,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
     0xf9,0x00,0x02,0x00,0x06,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x06,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x58,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0xff,0x01,0x00,0x00,
    -0x28,0x02,0x00,0x00,0x07,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0x0c,0x02,0x00,0x00,0x58,0x03,0x00,0x00,
    -0x44,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x08,0x02,0x00,0x00,
    -0x07,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x0c,0x02,0x00,0x00,0x07,0x02,0x00,0x00,0x08,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x07,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x12,0x02,0x00,0x00,0x46,0x03,0x00,0x00,
    -0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x14,0x02,0x00,0x00,0x12,0x02,0x00,0x00,0x58,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x16,0x02,0x00,0x00,
    -0x37,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x18,0x02,0x00,0x00,0x46,0x03,0x00,0x00,
    -0x43,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x19,0x02,0x00,0x00,0x16,0x02,0x00,0x00,0x18,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1b,0x02,0x00,0x00,
    -0x46,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x1c,0x02,0x00,0x00,0x19,0x02,0x00,0x00,
    -0x1b,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x1e,0x02,0x00,0x00,0x1c,0x02,0x00,0x00,0x58,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x20,0x02,0x00,0x00,
    -0x1e,0x02,0x00,0x00,0x1f,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x22,0x02,0x00,0x00,0x20,0x02,0x00,0x00,
    -0x42,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x71,0x01,0x00,0x00,
    -0x23,0x02,0x00,0x00,0x4e,0x01,0x00,0x00,0x22,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x38,0x01,0x00,0x00,0x24,0x02,0x00,0x00,
    -0x23,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x25,0x02,0x00,0x00,
    -0x26,0x02,0x00,0x00,0x10,0x02,0x00,0x00,0x14,0x02,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x26,0x02,0x00,0x00,0x24,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x28,0x02,0x00,0x00,
    -0x58,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x06,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x08,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x01,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x01,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x2a,0x02,0x00,0x00,0x46,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xfe,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x00,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x2c,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x2c,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x47,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x00,0x02,0x00,0x00,0x58,0x02,0x00,0x00,0x2f,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x32,0x02,0x00,0x00,
    -0x47,0x03,0x00,0x00,0xcb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x2e,0x02,0x00,0x00,0x2f,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x32,0x02,0x00,0x00,0x2d,0x02,0x00,0x00,
    -0x2e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x2d,0x02,0x00,0x00,
    +0x08,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x01,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x01,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x2a,0x02,0x00,0x00,0x46,0x03,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xfe,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x00,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x2c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x2c,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x47,0x03,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x58,0x02,0x00,0x00,
    +0x2f,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0x32,0x02,0x00,0x00,0x47,0x03,0x00,0x00,0xcb,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x2e,0x02,0x00,0x00,0x2f,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x32,0x02,0x00,0x00,
    +0x2d,0x02,0x00,0x00,0x2e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x2d,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x34,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x34,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x55,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x2d,0x02,0x00,0x00,0x56,0x02,0x00,0x00,0x35,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x3a,0x02,0x00,0x00,
    +0x55,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x36,0x02,0x00,0x00,0x35,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x3a,0x02,0x00,0x00,0x35,0x02,0x00,0x00,
    +0x36,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x35,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x40,0x02,0x00,0x00,
    +0x47,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x42,0x02,0x00,0x00,0x40,0x02,0x00,0x00,
    +0x55,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x44,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x47,0x02,0x00,0x00,
    +0x47,0x03,0x00,0x00,0x46,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x48,0x02,0x00,0x00,0x44,0x02,0x00,0x00,
    +0x47,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x4a,0x02,0x00,0x00,0x4a,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4b,0x02,0x00,0x00,
    +0x48,0x02,0x00,0x00,0x4a,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x4d,0x02,0x00,0x00,0x4b,0x02,0x00,0x00,
    +0x55,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x4f,0x02,0x00,0x00,0x4d,0x02,0x00,0x00,0x4e,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x51,0x02,0x00,0x00,
    +0x4f,0x02,0x00,0x00,0x42,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x71,0x01,0x00,0x00,0x52,0x02,0x00,0x00,0xb8,0x01,0x00,0x00,
    +0x51,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x38,0x01,0x00,0x00,
    +0x53,0x02,0x00,0x00,0x52,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x25,0x02,0x00,0x00,0x54,0x02,0x00,0x00,0x3e,0x02,0x00,0x00,
    +0x42,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0x54,0x02,0x00,0x00,
    +0x53,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x56,0x02,0x00,0x00,0x55,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
     0xf9,0x00,0x02,0x00,0x34,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x34,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x55,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0x2d,0x02,0x00,0x00,
    -0x56,0x02,0x00,0x00,0x35,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0x3a,0x02,0x00,0x00,0x55,0x03,0x00,0x00,
    -0xc8,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x36,0x02,0x00,0x00,
    -0x35,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x3a,0x02,0x00,0x00,0x35,0x02,0x00,0x00,0x36,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x35,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x40,0x02,0x00,0x00,0x47,0x03,0x00,0x00,
    -0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x42,0x02,0x00,0x00,0x40,0x02,0x00,0x00,0x55,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x44,0x02,0x00,0x00,
    -0x3b,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x47,0x02,0x00,0x00,0x47,0x03,0x00,0x00,
    -0x46,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x48,0x02,0x00,0x00,0x44,0x02,0x00,0x00,0x47,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4a,0x02,0x00,0x00,
    -0x4a,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x4b,0x02,0x00,0x00,0x48,0x02,0x00,0x00,
    -0x4a,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x4d,0x02,0x00,0x00,0x4b,0x02,0x00,0x00,0x55,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4f,0x02,0x00,0x00,
    -0x4d,0x02,0x00,0x00,0x4e,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x51,0x02,0x00,0x00,0x4f,0x02,0x00,0x00,
    -0x42,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x71,0x01,0x00,0x00,
    -0x52,0x02,0x00,0x00,0xb8,0x01,0x00,0x00,0x51,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x38,0x01,0x00,0x00,0x53,0x02,0x00,0x00,
    -0x52,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x25,0x02,0x00,0x00,
    -0x54,0x02,0x00,0x00,0x3e,0x02,0x00,0x00,0x42,0x02,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x54,0x02,0x00,0x00,0x53,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x56,0x02,0x00,0x00,
    -0x55,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x34,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x36,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x2f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x2f,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x58,0x02,0x00,0x00,0x47,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x2c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x2e,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x5a,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x5a,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x48,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x2e,0x02,0x00,0x00,0x9e,0x02,0x00,0x00,0x5d,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x60,0x02,0x00,0x00,
    -0x48,0x03,0x00,0x00,0xcb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x5c,0x02,0x00,0x00,0x5d,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x60,0x02,0x00,0x00,0x5b,0x02,0x00,0x00,
    -0x5c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x5b,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x62,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x62,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x4c,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0x5b,0x02,0x00,0x00,
    -0x9c,0x02,0x00,0x00,0x65,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0x68,0x02,0x00,0x00,0x4c,0x03,0x00,0x00,
    -0x42,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x64,0x02,0x00,0x00,
    -0x65,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x68,0x02,0x00,0x00,0x63,0x02,0x00,0x00,0x64,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x63,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x6a,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x6a,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x4e,0x03,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x63,0x02,0x00,0x00,0x9a,0x02,0x00,0x00,
    -0x6d,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0x70,0x02,0x00,0x00,0x4e,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x6c,0x02,0x00,0x00,0x6d,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x70,0x02,0x00,0x00,
    -0x6b,0x02,0x00,0x00,0x6c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x6b,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x72,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x72,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x50,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x6b,0x02,0x00,0x00,0x98,0x02,0x00,0x00,0x73,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x78,0x02,0x00,0x00,
    -0x50,0x03,0x00,0x00,0x44,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x74,0x02,0x00,0x00,0x73,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x78,0x02,0x00,0x00,0x73,0x02,0x00,0x00,
    -0x74,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x73,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7a,0x02,0x00,0x00,
    -0x48,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x7c,0x02,0x00,0x00,0x7a,0x02,0x00,0x00,
    -0x4e,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x7e,0x02,0x00,0x00,0x7c,0x02,0x00,0x00,0x7d,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x80,0x02,0x00,0x00,
    -0x4c,0x03,0x00,0x00,0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x81,0x02,0x00,0x00,0x7e,0x02,0x00,0x00,
    -0x80,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x83,0x02,0x00,0x00,0x81,0x02,0x00,0x00,0x50,0x03,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x87,0x02,0x00,0x00,
    -0x80,0x02,0x00,0x00,0x50,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x25,0x02,0x00,0x00,0x88,0x02,0x00,0x00,0x10,0x02,0x00,0x00,
    -0x87,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x38,0x01,0x00,0x00,
    -0x89,0x02,0x00,0x00,0x88,0x02,0x00,0x00,0x73,0x00,0x04,0x00,
    -0xcf,0x00,0x00,0x00,0x8a,0x02,0x00,0x00,0x89,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x25,0x02,0x00,0x00,0x8f,0x02,0x00,0x00,
    -0x3e,0x02,0x00,0x00,0x7c,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x38,0x01,0x00,0x00,0x90,0x02,0x00,0x00,0x8f,0x02,0x00,0x00,
    -0x73,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0x91,0x02,0x00,0x00,
    -0x90,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,
    -0x93,0x02,0x00,0x00,0xd5,0x00,0x00,0x00,0x83,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0x94,0x02,0x00,0x00,
    -0x93,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0xcf,0x00,0x00,0x00,
    -0x95,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,
    -0x8a,0x02,0x00,0x00,0x91,0x02,0x00,0x00,0x94,0x02,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x93,0x02,0x00,0x00,0x95,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x98,0x02,0x00,0x00,
    -0x50,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x72,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x74,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x6d,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x6d,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x9a,0x02,0x00,0x00,0x4e,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0x36,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x2f,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x2f,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x58,0x02,0x00,0x00,0x47,0x03,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x2c,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x2e,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x5a,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x5a,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x48,0x03,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x2e,0x02,0x00,0x00,0x9e,0x02,0x00,0x00,
    +0x5d,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0x60,0x02,0x00,0x00,0x48,0x03,0x00,0x00,0xcb,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x5c,0x02,0x00,0x00,0x5d,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x60,0x02,0x00,0x00,
    +0x5b,0x02,0x00,0x00,0x5c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x5b,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x62,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x62,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x4c,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x5b,0x02,0x00,0x00,0x9c,0x02,0x00,0x00,0x65,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x68,0x02,0x00,0x00,
    +0x4c,0x03,0x00,0x00,0x42,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x64,0x02,0x00,0x00,0x65,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x68,0x02,0x00,0x00,0x63,0x02,0x00,0x00,
    +0x64,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x63,0x02,0x00,0x00,
     0xf9,0x00,0x02,0x00,0x6a,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x6c,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x65,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x65,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x9c,0x02,0x00,0x00,0x4c,0x03,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x62,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x64,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x5d,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x5d,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9e,0x02,0x00,0x00,
    -0x48,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x5a,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x5c,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xf9,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xf9,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xa0,0x02,0x00,0x00,0x42,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xf6,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xf8,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xe0,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xe0,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa2,0x02,0x00,0x00,
    -0x27,0x03,0x00,0x00,0x4e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xdd,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xdf,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa7,0x02,0x00,0x00,
    -0x37,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xa8,0x02,0x00,0x00,0xb4,0x00,0x00,0x00,
    -0xa7,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xad,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xae,0x02,0x00,0x00,
    -0xa3,0x00,0x00,0x00,0xad,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xb0,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xb0,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x28,0x03,0x00,0x00,
    -0x20,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0x19,0x03,0x00,0x00,
    -0xb3,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0xb6,0x02,0x00,0x00,0x28,0x03,0x00,0x00,0xcb,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xb2,0x02,0x00,0x00,0xb3,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xb6,0x02,0x00,0x00,
    -0xb1,0x02,0x00,0x00,0xb2,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xb1,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xb8,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xb8,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x29,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    -0xb1,0x02,0x00,0x00,0x17,0x03,0x00,0x00,0xbb,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xbe,0x02,0x00,0x00,
    -0x29,0x03,0x00,0x00,0x42,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xba,0x02,0x00,0x00,0xbb,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xbe,0x02,0x00,0x00,0xb9,0x02,0x00,0x00,
    -0xba,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xb9,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc2,0x02,0x00,0x00,
    -0x29,0x03,0x00,0x00,0x43,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xc3,0x02,0x00,0x00,0xa8,0x02,0x00,0x00,
    -0xc2,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xc5,0x02,0x00,0x00,0x46,0x00,0x00,0x00,0x44,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc6,0x02,0x00,0x00,
    -0xc3,0x02,0x00,0x00,0xc5,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xca,0x02,0x00,0x00,0x28,0x03,0x00,0x00,
    -0x46,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xcb,0x02,0x00,0x00,0xae,0x02,0x00,0x00,0xca,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xcd,0x02,0x00,0x00,
    -0x4a,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xce,0x02,0x00,0x00,0xcb,0x02,0x00,0x00,
    -0xcd,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xd0,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xd0,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x2b,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    -0xb9,0x02,0x00,0x00,0x15,0x03,0x00,0x00,0xd3,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xd6,0x02,0x00,0x00,
    -0x2b,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xd2,0x02,0x00,0x00,0xd3,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xd6,0x02,0x00,0x00,0xd1,0x02,0x00,0x00,
    -0xd2,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xd1,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xda,0x02,0x00,0x00,
    -0xce,0x02,0x00,0x00,0x2b,0x03,0x00,0x00,0xae,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0xdd,0x02,0x00,0x00,0xda,0x02,0x00,0x00,
    -0x25,0x03,0x00,0x00,0xf7,0x00,0x03,0x00,0xdf,0x02,0x00,0x00,
    -0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xdd,0x02,0x00,0x00,
    -0xde,0x02,0x00,0x00,0xdf,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xde,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xd2,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xdf,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x97,0x00,0x00,0x00,0xe3,0x02,0x00,0x00,0x90,0x00,0x00,0x00,
    -0xda,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,
    -0xe4,0x02,0x00,0x00,0xe3,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xe6,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xe6,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x31,0x03,0x00,0x00,
    -0x20,0x00,0x00,0x00,0xdf,0x02,0x00,0x00,0x13,0x03,0x00,0x00,
    -0xe7,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0xec,0x02,0x00,0x00,0x31,0x03,0x00,0x00,0x44,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xe8,0x02,0x00,0x00,0xe7,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xec,0x02,0x00,0x00,
    -0xe7,0x02,0x00,0x00,0xe8,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xe7,0x02,0x00,0x00,0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,
    -0xf2,0x02,0x00,0x00,0xe4,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xf3,0x02,0x00,0x00,
    -0xf2,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
    -0xf5,0x02,0x00,0x00,0x13,0x00,0x00,0x00,0xf4,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xf6,0x02,0x00,0x00,
    -0xf5,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xf7,0x02,0x00,0x00,0xf3,0x02,0x00,0x00,0xf6,0x02,0x00,0x00,
    -0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,0xf9,0x02,0x00,0x00,
    -0xe4,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0xfa,0x02,0x00,0x00,0xf9,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0xfc,0x02,0x00,0x00,
    -0x13,0x00,0x00,0x00,0xfb,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0xfd,0x02,0x00,0x00,0xfc,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfe,0x02,0x00,0x00,
    -0xfa,0x02,0x00,0x00,0xfd,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xff,0x02,0x00,0x00,0xf7,0x02,0x00,0x00,
    -0xfe,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x01,0x03,0x00,0x00,0xff,0x02,0x00,0x00,0xc6,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x03,0x03,0x00,0x00,
    -0x01,0x03,0x00,0x00,0x31,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x05,0x03,0x00,0x00,0x28,0x03,0x00,0x00,
    -0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x07,0x03,0x00,0x00,0x05,0x03,0x00,0x00,0x2b,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x09,0x03,0x00,0x00,
    -0x07,0x03,0x00,0x00,0x08,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x0b,0x03,0x00,0x00,0x29,0x03,0x00,0x00,
    +0x6a,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x4e,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0x63,0x02,0x00,0x00,
    +0x9a,0x02,0x00,0x00,0x6d,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x70,0x02,0x00,0x00,0x4e,0x03,0x00,0x00,
    +0xc8,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x6c,0x02,0x00,0x00,
    +0x6d,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x70,0x02,0x00,0x00,0x6b,0x02,0x00,0x00,0x6c,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x6b,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x72,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x72,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x50,0x03,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x6b,0x02,0x00,0x00,0x98,0x02,0x00,0x00,
    +0x73,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0x78,0x02,0x00,0x00,0x50,0x03,0x00,0x00,0x44,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x74,0x02,0x00,0x00,0x73,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x78,0x02,0x00,0x00,
    +0x73,0x02,0x00,0x00,0x74,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x73,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x7a,0x02,0x00,0x00,0x48,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7c,0x02,0x00,0x00,
    +0x7a,0x02,0x00,0x00,0x4e,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x7e,0x02,0x00,0x00,0x7c,0x02,0x00,0x00,
    +0x7d,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x80,0x02,0x00,0x00,0x4c,0x03,0x00,0x00,0x44,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x81,0x02,0x00,0x00,
    +0x7e,0x02,0x00,0x00,0x80,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x83,0x02,0x00,0x00,0x81,0x02,0x00,0x00,
    +0x50,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x87,0x02,0x00,0x00,0x80,0x02,0x00,0x00,0x50,0x03,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x25,0x02,0x00,0x00,0x88,0x02,0x00,0x00,
    +0x10,0x02,0x00,0x00,0x87,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x38,0x01,0x00,0x00,0x89,0x02,0x00,0x00,0x88,0x02,0x00,0x00,
    +0x73,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0x8a,0x02,0x00,0x00,
    +0x89,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x25,0x02,0x00,0x00,
    +0x8f,0x02,0x00,0x00,0x3e,0x02,0x00,0x00,0x7c,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x38,0x01,0x00,0x00,0x90,0x02,0x00,0x00,
    +0x8f,0x02,0x00,0x00,0x73,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    +0x91,0x02,0x00,0x00,0x90,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xd8,0x00,0x00,0x00,0x93,0x02,0x00,0x00,0xd5,0x00,0x00,0x00,
    +0x83,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    +0x94,0x02,0x00,0x00,0x93,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,
    +0xcf,0x00,0x00,0x00,0x95,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x32,0x00,0x00,0x00,0x8a,0x02,0x00,0x00,0x91,0x02,0x00,0x00,
    +0x94,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0x93,0x02,0x00,0x00,
    +0x95,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x98,0x02,0x00,0x00,0x50,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x72,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x74,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x6d,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x6d,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x9a,0x02,0x00,0x00,0x4e,0x03,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x6a,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x6c,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x65,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x65,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9c,0x02,0x00,0x00,
    +0x4c,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x62,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x64,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x5d,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x5d,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x9e,0x02,0x00,0x00,0x48,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x5a,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x5c,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xf9,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xf9,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xa0,0x02,0x00,0x00,0x42,0x03,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xf6,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xf8,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,
    +0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xe0,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xe0,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xa2,0x02,0x00,0x00,0x27,0x03,0x00,0x00,0x4e,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xdd,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xdf,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xa7,0x02,0x00,0x00,0x37,0x00,0x00,0x00,0x35,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa8,0x02,0x00,0x00,
    +0xb4,0x00,0x00,0x00,0xa7,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xad,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,
    +0xc5,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xae,0x02,0x00,0x00,0xa3,0x00,0x00,0x00,0xad,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xb0,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xb0,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x28,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,
    +0x19,0x03,0x00,0x00,0xb3,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0xb6,0x02,0x00,0x00,0x28,0x03,0x00,0x00,
    +0xcb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xb2,0x02,0x00,0x00,
    +0xb3,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xb6,0x02,0x00,0x00,0xb1,0x02,0x00,0x00,0xb2,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xb1,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xb8,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xb8,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x29,0x03,0x00,0x00,
    +0x20,0x00,0x00,0x00,0xb1,0x02,0x00,0x00,0x17,0x03,0x00,0x00,
    +0xbb,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0xbe,0x02,0x00,0x00,0x29,0x03,0x00,0x00,0x42,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xba,0x02,0x00,0x00,0xbb,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xbe,0x02,0x00,0x00,
    +0xb9,0x02,0x00,0x00,0xba,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xb9,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xc2,0x02,0x00,0x00,0x29,0x03,0x00,0x00,0x43,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc3,0x02,0x00,0x00,
    +0xa8,0x02,0x00,0x00,0xc2,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xc5,0x02,0x00,0x00,0x46,0x00,0x00,0x00,
     0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x0c,0x03,0x00,0x00,0x09,0x03,0x00,0x00,0x0b,0x03,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0e,0x03,0x00,0x00,
    -0x0c,0x03,0x00,0x00,0x31,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xd8,0x00,0x00,0x00,0x0f,0x03,0x00,0x00,0xd5,0x00,0x00,0x00,
    -0x0e,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    -0x10,0x03,0x00,0x00,0x0f,0x03,0x00,0x00,0x41,0x00,0x06,0x00,
    -0xdb,0x01,0x00,0x00,0x11,0x03,0x00,0x00,0xf0,0x02,0x00,0x00,
    -0x15,0x00,0x00,0x00,0x03,0x03,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x11,0x03,0x00,0x00,0x10,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x13,0x03,0x00,0x00,0x31,0x03,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xe6,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xe8,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xd3,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xd3,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x15,0x03,0x00,0x00,
    -0x2b,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xd0,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xd2,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xbb,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xbb,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x17,0x03,0x00,0x00,0x29,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xb8,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xba,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xb3,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xb3,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x19,0x03,0x00,0x00,0x28,0x03,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xb0,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xb2,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x1a,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x1a,0x03,0x00,0x00,
    -0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
    +0xc6,0x02,0x00,0x00,0xc3,0x02,0x00,0x00,0xc5,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xca,0x02,0x00,0x00,
    +0x28,0x03,0x00,0x00,0x46,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xcb,0x02,0x00,0x00,0xae,0x02,0x00,0x00,
    +0xca,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xcd,0x02,0x00,0x00,0x4a,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xce,0x02,0x00,0x00,
    +0xcb,0x02,0x00,0x00,0xcd,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xd0,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xd0,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x2b,0x03,0x00,0x00,
    +0x20,0x00,0x00,0x00,0xb9,0x02,0x00,0x00,0x15,0x03,0x00,0x00,
    +0xd3,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0xd6,0x02,0x00,0x00,0x2b,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xd2,0x02,0x00,0x00,0xd3,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xd6,0x02,0x00,0x00,
    +0xd1,0x02,0x00,0x00,0xd2,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xd1,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xda,0x02,0x00,0x00,0xce,0x02,0x00,0x00,0x2b,0x03,0x00,0x00,
    +0xae,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xdd,0x02,0x00,0x00,
    +0xda,0x02,0x00,0x00,0x25,0x03,0x00,0x00,0xf7,0x00,0x03,0x00,
    +0xdf,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xdd,0x02,0x00,0x00,0xde,0x02,0x00,0x00,0xdf,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xde,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xd2,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xdf,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x97,0x00,0x00,0x00,0xe3,0x02,0x00,0x00,
    +0x90,0x00,0x00,0x00,0xda,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x8c,0x00,0x00,0x00,0xe4,0x02,0x00,0x00,0xe3,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xe6,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xe6,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x31,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0xdf,0x02,0x00,0x00,
    +0x13,0x03,0x00,0x00,0xe7,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0xec,0x02,0x00,0x00,0x31,0x03,0x00,0x00,
    +0x44,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xe8,0x02,0x00,0x00,
    +0xe7,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xec,0x02,0x00,0x00,0xe7,0x02,0x00,0x00,0xe8,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xe7,0x02,0x00,0x00,0x51,0x00,0x05,0x00,
    +0x8b,0x00,0x00,0x00,0xf2,0x02,0x00,0x00,0xe4,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0xf3,0x02,0x00,0x00,0xf2,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x16,0x00,0x00,0x00,0xf5,0x02,0x00,0x00,0x13,0x00,0x00,0x00,
    +0xf4,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0xf6,0x02,0x00,0x00,0xf5,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xf7,0x02,0x00,0x00,0xf3,0x02,0x00,0x00,
    +0xf6,0x02,0x00,0x00,0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,
    +0xf9,0x02,0x00,0x00,0xe4,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xfa,0x02,0x00,0x00,
    +0xf9,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
    +0xfc,0x02,0x00,0x00,0x13,0x00,0x00,0x00,0xfb,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xfd,0x02,0x00,0x00,
    +0xfc,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xfe,0x02,0x00,0x00,0xfa,0x02,0x00,0x00,0xfd,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xff,0x02,0x00,0x00,
    +0xf7,0x02,0x00,0x00,0xfe,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x01,0x03,0x00,0x00,0xff,0x02,0x00,0x00,
    +0xc6,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x03,0x03,0x00,0x00,0x01,0x03,0x00,0x00,0x31,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x05,0x03,0x00,0x00,
    +0x28,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x07,0x03,0x00,0x00,0x05,0x03,0x00,0x00,
    +0x2b,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x09,0x03,0x00,0x00,0x07,0x03,0x00,0x00,0x08,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0b,0x03,0x00,0x00,
    +0x29,0x03,0x00,0x00,0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x0c,0x03,0x00,0x00,0x09,0x03,0x00,0x00,
    +0x0b,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x0e,0x03,0x00,0x00,0x0c,0x03,0x00,0x00,0x31,0x03,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,0x0f,0x03,0x00,0x00,
    +0xd5,0x00,0x00,0x00,0x0e,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xcf,0x00,0x00,0x00,0x10,0x03,0x00,0x00,0x0f,0x03,0x00,0x00,
    +0x41,0x00,0x06,0x00,0xdb,0x01,0x00,0x00,0x11,0x03,0x00,0x00,
    +0xf0,0x02,0x00,0x00,0x15,0x00,0x00,0x00,0x03,0x03,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x11,0x03,0x00,0x00,0x10,0x03,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x13,0x03,0x00,0x00,
    +0x31,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xe6,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xe8,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xd3,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xd3,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x15,0x03,0x00,0x00,0x2b,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xd0,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xd2,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xbb,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xbb,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x17,0x03,0x00,0x00,0x29,0x03,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xb8,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xba,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xb3,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xb3,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x19,0x03,0x00,0x00,
    +0x28,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xb0,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xb2,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x1a,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x1a,0x03,0x00,0x00,0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
    +
     };
    -const uint64_t matmul_id_q6_k_f32_len = 12236;
    +const uint64_t matmul_id_q6_k_f32_len = 12216;
     
     unsigned char matmul_id_q6_k_f32_aligned_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
    @@ -72739,9 +76452,9 @@ unsigned char matmul_id_q6_k_f32_fp32_data[] = {
     0x43,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x54,0x00,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x59,0x00,0x00,0x00,
     0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,
    @@ -72853,7 +76566,7 @@ unsigned char matmul_id_q6_k_f32_fp32_data[] = {
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x94,0x01,0x00,0x00,
     0x51,0x00,0x00,0x00,0x93,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x95,0x01,0x00,0x00,
    -0x84,0x00,0x00,0x00,0x94,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x84,0x00,0x00,0x00,0x94,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x96,0x01,0x00,0x00,
     0x86,0x00,0x00,0x00,0x95,0x01,0x00,0x00,0x4e,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xb2,0x01,0x00,0x00,
    @@ -72884,7 +76597,7 @@ unsigned char matmul_id_q6_k_f32_fp32_data[] = {
     0x06,0x00,0x00,0x00,0xe8,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
     0xe7,0x01,0x00,0x00,0x4e,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0xeb,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x4e,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0xee,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
     0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x09,0x02,0x00,0x00,0x84,0x00,0x00,0x00,
    @@ -73051,7 +76764,7 @@ unsigned char matmul_id_q6_k_f32_fp32_data[] = {
     0xb7,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xb9,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,
    -0xb9,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xb9,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
     0xbe,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xbe,0x00,0x00,0x00,
     0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x1f,0x03,0x00,0x00,
     0x20,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,
    @@ -73092,520 +76805,519 @@ unsigned char matmul_id_q6_k_f32_fp32_data[] = {
     0x55,0x00,0x00,0x00,0x31,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,0xf1,0x00,0x00,0x00,
     0xb7,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xf5,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0xf5,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,
     0x35,0x03,0x00,0x00,0xf5,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,
     0x50,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xfe,0x00,0x00,0x00,0xf1,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x00,0x01,0x00,0x00,
    -0x50,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,
    -0x00,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x05,0x01,0x00,0x00,0xf8,0x00,0x00,0x00,0x04,0x01,0x00,0x00,
    -0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x08,0x01,0x00,0x00,
    -0xf8,0x00,0x00,0x00,0x04,0x01,0x00,0x00,0x86,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,0x08,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x01,0x01,0x00,0x00,
    +0xfe,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0xf8,0x00,0x00,0x00,
    +0x04,0x01,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x08,0x01,0x00,0x00,0xf8,0x00,0x00,0x00,0x04,0x01,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,
    +0x08,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,0x89,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x0f,0x01,0x00,0x00,0x08,0x01,0x00,0x00,
    +0x0b,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x11,0x01,0x00,0x00,0x0f,0x01,0x00,0x00,0x10,0x01,0x00,0x00,
    +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x15,0x01,0x00,0x00,
    +0x08,0x01,0x00,0x00,0x14,0x01,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x17,0x01,0x00,0x00,0x15,0x01,0x00,0x00,
    +0x16,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x1b,0x01,0x00,0x00,0x0f,0x01,0x00,0x00,0x14,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,
    +0x1b,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x1f,0x01,0x00,0x00,0x16,0x01,0x00,0x00,
    +0x0c,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x21,0x01,0x00,0x00,0x1f,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x23,0x01,0x00,0x00,
    +0x21,0x01,0x00,0x00,0x17,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x26,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,
     0x0b,0x01,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x0f,0x01,0x00,0x00,0x08,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,
    -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x11,0x01,0x00,0x00,
    -0x0f,0x01,0x00,0x00,0x10,0x01,0x00,0x00,0x89,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x15,0x01,0x00,0x00,0x08,0x01,0x00,0x00,
    -0x14,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x17,0x01,0x00,0x00,0x15,0x01,0x00,0x00,0x16,0x01,0x00,0x00,
    -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1b,0x01,0x00,0x00,
    -0x0f,0x01,0x00,0x00,0x14,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,0x1b,0x01,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x1f,0x01,0x00,0x00,0x16,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x21,0x01,0x00,0x00,
    -0x1f,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x23,0x01,0x00,0x00,0x21,0x01,0x00,0x00,
    -0x17,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x26,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,
    -0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x28,0x01,0x00,0x00,
    -0x08,0x01,0x00,0x00,0x10,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x29,0x01,0x00,0x00,0x28,0x01,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x2a,0x01,0x00,0x00,0x26,0x01,0x00,0x00,0x29,0x01,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2d,0x01,0x00,0x00,
    -0x0c,0x01,0x00,0x00,0x10,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x30,0x01,0x00,0x00,0x15,0x01,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x31,0x01,0x00,0x00,0x2d,0x01,0x00,0x00,0x30,0x01,0x00,0x00,
    -0x41,0x00,0x07,0x00,0x3f,0x01,0x00,0x00,0x40,0x01,0x00,0x00,
    -0x3d,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,
    -0xb5,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x38,0x01,0x00,0x00,
    -0x41,0x01,0x00,0x00,0x40,0x01,0x00,0x00,0x73,0x00,0x04,0x00,
    -0xcf,0x00,0x00,0x00,0x42,0x01,0x00,0x00,0x41,0x01,0x00,0x00,
    -0x41,0x00,0x08,0x00,0x45,0x01,0x00,0x00,0x46,0x01,0x00,0x00,
    -0x3d,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,
    -0xaa,0x00,0x00,0x00,0x23,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x36,0x01,0x00,0x00,0x47,0x01,0x00,0x00,0x46,0x01,0x00,0x00,
    -0x6f,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0x48,0x01,0x00,0x00,
    -0x47,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0xcf,0x00,0x00,0x00,
    -0x49,0x01,0x00,0x00,0x42,0x01,0x00,0x00,0x48,0x01,0x00,0x00,
    -0x41,0x00,0x08,0x00,0x53,0x01,0x00,0x00,0x54,0x01,0x00,0x00,
    +0x28,0x01,0x00,0x00,0x08,0x01,0x00,0x00,0x10,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x29,0x01,0x00,0x00,
    +0x28,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x2a,0x01,0x00,0x00,0x26,0x01,0x00,0x00,
    +0x29,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x2d,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,0x10,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x30,0x01,0x00,0x00,
    +0x15,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x31,0x01,0x00,0x00,0x2d,0x01,0x00,0x00,
    +0x30,0x01,0x00,0x00,0x41,0x00,0x07,0x00,0x3f,0x01,0x00,0x00,
    +0x40,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    +0x05,0x01,0x00,0x00,0xb5,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x38,0x01,0x00,0x00,0x41,0x01,0x00,0x00,0x40,0x01,0x00,0x00,
    +0x73,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0x42,0x01,0x00,0x00,
    +0x41,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x45,0x01,0x00,0x00,
    +0x46,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    +0x05,0x01,0x00,0x00,0xaa,0x00,0x00,0x00,0x23,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x36,0x01,0x00,0x00,0x47,0x01,0x00,0x00,
    +0x46,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    +0x48,0x01,0x00,0x00,0x47,0x01,0x00,0x00,0x85,0x00,0x05,0x00,
    +0xcf,0x00,0x00,0x00,0x49,0x01,0x00,0x00,0x42,0x01,0x00,0x00,
    +0x48,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x53,0x01,0x00,0x00,
    +0x54,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    +0x05,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x2a,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x33,0x01,0x00,0x00,0x55,0x01,0x00,0x00,
    +0x54,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x58,0x01,0x00,0x00,0x11,0x01,0x00,0x00,0x57,0x01,0x00,0x00,
    +0xc2,0x00,0x05,0x00,0x33,0x01,0x00,0x00,0x59,0x01,0x00,0x00,
    +0x55,0x01,0x00,0x00,0x58,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x5a,0x01,0x00,0x00,0x59,0x01,0x00,0x00,
    +0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x5b,0x01,0x00,0x00,
    +0x5a,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x14,0x00,0x00,0x00,
    +0x5d,0x01,0x00,0x00,0x5b,0x01,0x00,0x00,0x5c,0x01,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x53,0x01,0x00,0x00,0x60,0x01,0x00,0x00,
     0x3d,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,
    -0x15,0x00,0x00,0x00,0x2a,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x33,0x01,0x00,0x00,0x55,0x01,0x00,0x00,0x54,0x01,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x58,0x01,0x00,0x00,
    -0x11,0x01,0x00,0x00,0x57,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,
    -0x33,0x01,0x00,0x00,0x59,0x01,0x00,0x00,0x55,0x01,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0x31,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x33,0x01,0x00,0x00,0x61,0x01,0x00,0x00,0x60,0x01,0x00,0x00,
    +0xc2,0x00,0x05,0x00,0x33,0x01,0x00,0x00,0x63,0x01,0x00,0x00,
    +0x61,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x64,0x01,0x00,0x00,0x63,0x01,0x00,0x00,
    +0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x65,0x01,0x00,0x00,
    +0x64,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x14,0x00,0x00,0x00,
    +0x66,0x01,0x00,0x00,0x65,0x01,0x00,0x00,0xb5,0x00,0x00,0x00,
    +0xc4,0x00,0x05,0x00,0x14,0x00,0x00,0x00,0x68,0x01,0x00,0x00,
    +0x66,0x01,0x00,0x00,0x67,0x01,0x00,0x00,0xc5,0x00,0x05,0x00,
    +0x14,0x00,0x00,0x00,0x69,0x01,0x00,0x00,0x5d,0x01,0x00,0x00,
    +0x68,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x36,0x01,0x00,0x00,
    +0x6a,0x01,0x00,0x00,0x69,0x01,0x00,0x00,0x72,0x00,0x04,0x00,
    +0x14,0x00,0x00,0x00,0x6b,0x01,0x00,0x00,0x6a,0x01,0x00,0x00,
    +0x82,0x00,0x05,0x00,0x14,0x00,0x00,0x00,0x6d,0x01,0x00,0x00,
    +0x6b,0x01,0x00,0x00,0x6c,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,
    +0xcf,0x00,0x00,0x00,0x6e,0x01,0x00,0x00,0x6d,0x01,0x00,0x00,
    +0x85,0x00,0x05,0x00,0xcf,0x00,0x00,0x00,0x6f,0x01,0x00,0x00,
    +0x49,0x01,0x00,0x00,0x6e,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x70,0x01,0x00,0x00,0x71,0x01,0x00,0x00,0x4e,0x01,0x00,0x00,
    +0x01,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x71,0x01,0x00,0x00,
    +0x6f,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x73,0x01,0x00,0x00,0x01,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x77,0x01,0x00,0x00,
    +0x2a,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x53,0x01,0x00,0x00,0x78,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,
    +0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    +0x77,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x33,0x01,0x00,0x00,
    +0x79,0x01,0x00,0x00,0x78,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,
    +0x33,0x01,0x00,0x00,0x7c,0x01,0x00,0x00,0x79,0x01,0x00,0x00,
     0x58,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x5a,0x01,0x00,0x00,0x59,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    -0x14,0x00,0x00,0x00,0x5b,0x01,0x00,0x00,0x5a,0x01,0x00,0x00,
    -0xc7,0x00,0x05,0x00,0x14,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,
    -0x5b,0x01,0x00,0x00,0x5c,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x53,0x01,0x00,0x00,0x60,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,
    -0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0x31,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x33,0x01,0x00,0x00,
    -0x61,0x01,0x00,0x00,0x60,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,
    -0x33,0x01,0x00,0x00,0x63,0x01,0x00,0x00,0x61,0x01,0x00,0x00,
    -0x1c,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x64,0x01,0x00,0x00,0x63,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    -0x14,0x00,0x00,0x00,0x65,0x01,0x00,0x00,0x64,0x01,0x00,0x00,
    -0xc7,0x00,0x05,0x00,0x14,0x00,0x00,0x00,0x66,0x01,0x00,0x00,
    -0x65,0x01,0x00,0x00,0xb5,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,
    -0x14,0x00,0x00,0x00,0x68,0x01,0x00,0x00,0x66,0x01,0x00,0x00,
    -0x67,0x01,0x00,0x00,0xc5,0x00,0x05,0x00,0x14,0x00,0x00,0x00,
    -0x69,0x01,0x00,0x00,0x5d,0x01,0x00,0x00,0x68,0x01,0x00,0x00,
    -0x72,0x00,0x04,0x00,0x36,0x01,0x00,0x00,0x6a,0x01,0x00,0x00,
    -0x69,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    -0x6b,0x01,0x00,0x00,0x6a,0x01,0x00,0x00,0x82,0x00,0x05,0x00,
    -0x14,0x00,0x00,0x00,0x6d,0x01,0x00,0x00,0x6b,0x01,0x00,0x00,
    -0x6c,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    -0x6e,0x01,0x00,0x00,0x6d,0x01,0x00,0x00,0x85,0x00,0x05,0x00,
    -0xcf,0x00,0x00,0x00,0x6f,0x01,0x00,0x00,0x49,0x01,0x00,0x00,
    -0x6e,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x70,0x01,0x00,0x00,
    -0x71,0x01,0x00,0x00,0x4e,0x01,0x00,0x00,0x01,0x01,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x71,0x01,0x00,0x00,0x6f,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x73,0x01,0x00,0x00,
    -0x01,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x77,0x01,0x00,0x00,0x2a,0x01,0x00,0x00,
    +0x7d,0x01,0x00,0x00,0x7c,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    +0x14,0x00,0x00,0x00,0x7e,0x01,0x00,0x00,0x7d,0x01,0x00,0x00,
    +0xc7,0x00,0x05,0x00,0x14,0x00,0x00,0x00,0x7f,0x01,0x00,0x00,
    +0x7e,0x01,0x00,0x00,0x5c,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x82,0x01,0x00,0x00,0x31,0x01,0x00,0x00,
     0x1b,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0x53,0x01,0x00,0x00,
    -0x78,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    -0x05,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x77,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x33,0x01,0x00,0x00,0x79,0x01,0x00,0x00,
    -0x78,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x33,0x01,0x00,0x00,
    -0x7c,0x01,0x00,0x00,0x79,0x01,0x00,0x00,0x58,0x01,0x00,0x00,
    -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x7d,0x01,0x00,0x00,
    -0x7c,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    -0x7e,0x01,0x00,0x00,0x7d,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
    -0x14,0x00,0x00,0x00,0x7f,0x01,0x00,0x00,0x7e,0x01,0x00,0x00,
    -0x5c,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x82,0x01,0x00,0x00,0x31,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,
    -0x41,0x00,0x08,0x00,0x53,0x01,0x00,0x00,0x83,0x01,0x00,0x00,
    -0x3d,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0x82,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x33,0x01,0x00,0x00,0x84,0x01,0x00,0x00,0x83,0x01,0x00,0x00,
    -0xc2,0x00,0x05,0x00,0x33,0x01,0x00,0x00,0x86,0x01,0x00,0x00,
    -0x84,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x87,0x01,0x00,0x00,0x86,0x01,0x00,0x00,
    -0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x88,0x01,0x00,0x00,
    -0x87,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x14,0x00,0x00,0x00,
    -0x89,0x01,0x00,0x00,0x88,0x01,0x00,0x00,0xb5,0x00,0x00,0x00,
    -0xc4,0x00,0x05,0x00,0x14,0x00,0x00,0x00,0x8a,0x01,0x00,0x00,
    -0x89,0x01,0x00,0x00,0x67,0x01,0x00,0x00,0xc5,0x00,0x05,0x00,
    -0x14,0x00,0x00,0x00,0x8b,0x01,0x00,0x00,0x7f,0x01,0x00,0x00,
    -0x8a,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x36,0x01,0x00,0x00,
    -0x8c,0x01,0x00,0x00,0x8b,0x01,0x00,0x00,0x72,0x00,0x04,0x00,
    -0x14,0x00,0x00,0x00,0x8d,0x01,0x00,0x00,0x8c,0x01,0x00,0x00,
    -0x82,0x00,0x05,0x00,0x14,0x00,0x00,0x00,0x8e,0x01,0x00,0x00,
    -0x8d,0x01,0x00,0x00,0x6c,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,
    -0xcf,0x00,0x00,0x00,0x8f,0x01,0x00,0x00,0x8e,0x01,0x00,0x00,
    -0x85,0x00,0x05,0x00,0xcf,0x00,0x00,0x00,0x90,0x01,0x00,0x00,
    -0x49,0x01,0x00,0x00,0x8f,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x70,0x01,0x00,0x00,0x91,0x01,0x00,0x00,0x4e,0x01,0x00,0x00,
    -0x73,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x91,0x01,0x00,0x00,
    -0x90,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x98,0x01,0x00,0x00,0x31,0x03,0x00,0x00,0x96,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xe6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xe8,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x9a,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x9a,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x32,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    -0xe8,0x00,0x00,0x00,0xea,0x01,0x00,0x00,0x9d,0x01,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xa0,0x01,0x00,0x00,
    -0x32,0x03,0x00,0x00,0xa2,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x9c,0x01,0x00,0x00,0x9d,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xa0,0x01,0x00,0x00,0x9b,0x01,0x00,0x00,
    -0x9c,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x9b,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa5,0x01,0x00,0x00,
    -0xa3,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xa7,0x01,0x00,0x00,0xa5,0x01,0x00,0x00,
    -0x32,0x03,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0xaa,0x01,0x00,0x00,0xa7,0x01,0x00,0x00,0x1e,0x03,0x00,0x00,
    -0xf7,0x00,0x03,0x00,0xac,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xaa,0x01,0x00,0x00,0xab,0x01,0x00,0x00,
    -0xdd,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xab,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x97,0x00,0x00,0x00,0xb0,0x01,0x00,0x00,
    -0x90,0x00,0x00,0x00,0xa7,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x8c,0x00,0x00,0x00,0xb1,0x01,0x00,0x00,0xb0,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb9,0x01,0x00,0x00,
    -0x5f,0x00,0x00,0x00,0x32,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xbb,0x01,0x00,0x00,0xb9,0x01,0x00,0x00,
    -0xba,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xbd,0x01,0x00,0x00,0xbb,0x01,0x00,0x00,0x5a,0x00,0x00,0x00,
    -0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,0xc5,0x01,0x00,0x00,
    -0xb1,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0xc6,0x01,0x00,0x00,0xc5,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0xc8,0x01,0x00,0x00,
    -0x13,0x00,0x00,0x00,0xc7,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0xc9,0x01,0x00,0x00,0xc8,0x01,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xca,0x01,0x00,0x00,
    -0xc6,0x01,0x00,0x00,0xc9,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xcb,0x01,0x00,0x00,0x39,0x03,0x00,0x00,
    -0xca,0x01,0x00,0x00,0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,
    -0xcd,0x01,0x00,0x00,0xb1,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xce,0x01,0x00,0x00,
    -0xcd,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
    -0xd0,0x01,0x00,0x00,0x13,0x00,0x00,0x00,0xcf,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xd1,0x01,0x00,0x00,
    -0xd0,0x01,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xd2,0x01,0x00,0x00,0xce,0x01,0x00,0x00,0xd1,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0xd3,0x01,0x00,0x00,
    -0x13,0x00,0x00,0x00,0x67,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0xd4,0x01,0x00,0x00,0xd3,0x01,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd5,0x01,0x00,0x00,
    -0xd2,0x01,0x00,0x00,0xd4,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xd6,0x01,0x00,0x00,0xcb,0x01,0x00,0x00,
    -0xd5,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xd8,0x01,0x00,0x00,0xd6,0x01,0x00,0x00,0x5a,0x00,0x00,0x00,
    -0x41,0x00,0x06,0x00,0xd9,0x01,0x00,0x00,0xda,0x01,0x00,0x00,
    -0xc1,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0xd8,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0xdb,0x01,0x00,0x00,
    -0xda,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x70,0x01,0x00,0x00,
    -0xdc,0x01,0x00,0x00,0xb6,0x01,0x00,0x00,0xbd,0x01,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0xdc,0x01,0x00,0x00,0xdb,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xac,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xdd,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xe0,0x01,0x00,0x00,0x5f,0x00,0x00,0x00,0x32,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe2,0x01,0x00,0x00,
    -0xe0,0x01,0x00,0x00,0xe1,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xe4,0x01,0x00,0x00,0xe2,0x01,0x00,0x00,
    -0x5a,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x70,0x01,0x00,0x00,
    -0xe5,0x01,0x00,0x00,0xb6,0x01,0x00,0x00,0xe4,0x01,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0xe5,0x01,0x00,0x00,0xd7,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xac,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xac,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x9d,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x9d,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xea,0x01,0x00,0x00,0x32,0x03,0x00,0x00,
    -0xe8,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x9a,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x9c,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,
    -0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xed,0x01,0x00,0x00,
    -0x35,0x03,0x00,0x00,0xeb,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xf0,0x01,0x00,0x00,0x39,0x03,0x00,0x00,
    -0xee,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xf2,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xf2,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x3b,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x9c,0x01,0x00,0x00,0x99,0x02,0x00,0x00,0xf5,0x01,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xf8,0x01,0x00,0x00,
    -0x3b,0x03,0x00,0x00,0x4e,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xf4,0x01,0x00,0x00,0xf5,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xf8,0x01,0x00,0x00,0xf3,0x01,0x00,0x00,
    -0xf4,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xf3,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xfa,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xfa,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x3f,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0xf3,0x01,0x00,0x00,
    -0x25,0x02,0x00,0x00,0xfd,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x3f,0x03,0x00,0x00,
    -0x42,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xfc,0x01,0x00,0x00,
    -0xfd,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x00,0x02,0x00,0x00,0xfb,0x01,0x00,0x00,0xfc,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xfb,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x02,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x02,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x51,0x03,0x00,0x00,
    -0x20,0x00,0x00,0x00,0xfb,0x01,0x00,0x00,0x23,0x02,0x00,0x00,
    -0x03,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0x08,0x02,0x00,0x00,0x51,0x03,0x00,0x00,0x44,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x04,0x02,0x00,0x00,0x03,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x08,0x02,0x00,0x00,
    -0x03,0x02,0x00,0x00,0x04,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x03,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x0e,0x02,0x00,0x00,0x3f,0x03,0x00,0x00,0x44,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x10,0x02,0x00,0x00,
    -0x0e,0x02,0x00,0x00,0x51,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x12,0x02,0x00,0x00,0x37,0x00,0x00,0x00,
    -0x35,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x14,0x02,0x00,0x00,0x3f,0x03,0x00,0x00,0x43,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x15,0x02,0x00,0x00,
    -0x12,0x02,0x00,0x00,0x14,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x17,0x02,0x00,0x00,0x46,0x00,0x00,0x00,
    +0x83,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    +0x05,0x01,0x00,0x00,0x9a,0x00,0x00,0x00,0x82,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x33,0x01,0x00,0x00,0x84,0x01,0x00,0x00,
    +0x83,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x33,0x01,0x00,0x00,
    +0x86,0x01,0x00,0x00,0x84,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x87,0x01,0x00,0x00,
    +0x86,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    +0x88,0x01,0x00,0x00,0x87,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
    +0x14,0x00,0x00,0x00,0x89,0x01,0x00,0x00,0x88,0x01,0x00,0x00,
    +0xb5,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x14,0x00,0x00,0x00,
    +0x8a,0x01,0x00,0x00,0x89,0x01,0x00,0x00,0x67,0x01,0x00,0x00,
    +0xc5,0x00,0x05,0x00,0x14,0x00,0x00,0x00,0x8b,0x01,0x00,0x00,
    +0x7f,0x01,0x00,0x00,0x8a,0x01,0x00,0x00,0x72,0x00,0x04,0x00,
    +0x36,0x01,0x00,0x00,0x8c,0x01,0x00,0x00,0x8b,0x01,0x00,0x00,
    +0x72,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x8d,0x01,0x00,0x00,
    +0x8c,0x01,0x00,0x00,0x82,0x00,0x05,0x00,0x14,0x00,0x00,0x00,
    +0x8e,0x01,0x00,0x00,0x8d,0x01,0x00,0x00,0x6c,0x01,0x00,0x00,
    +0x6f,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0x8f,0x01,0x00,0x00,
    +0x8e,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0xcf,0x00,0x00,0x00,
    +0x90,0x01,0x00,0x00,0x49,0x01,0x00,0x00,0x8f,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x70,0x01,0x00,0x00,0x91,0x01,0x00,0x00,
    +0x4e,0x01,0x00,0x00,0x73,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x91,0x01,0x00,0x00,0x90,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x98,0x01,0x00,0x00,0x31,0x03,0x00,0x00,
    +0x96,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xe6,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xe8,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x9a,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x9a,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x32,0x03,0x00,0x00,
    +0x20,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0xea,0x01,0x00,0x00,
    +0x9d,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0xa0,0x01,0x00,0x00,0x32,0x03,0x00,0x00,0xa2,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x9c,0x01,0x00,0x00,0x9d,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xa0,0x01,0x00,0x00,
    +0x9b,0x01,0x00,0x00,0x9c,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x9b,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xa5,0x01,0x00,0x00,0xa3,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa7,0x01,0x00,0x00,
    +0xa5,0x01,0x00,0x00,0x32,0x03,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0xaa,0x01,0x00,0x00,0xa7,0x01,0x00,0x00,
    +0x1e,0x03,0x00,0x00,0xf7,0x00,0x03,0x00,0xac,0x01,0x00,0x00,
    +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xaa,0x01,0x00,0x00,
    +0xab,0x01,0x00,0x00,0xdd,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xab,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x97,0x00,0x00,0x00,
    +0xb0,0x01,0x00,0x00,0x90,0x00,0x00,0x00,0xa7,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,0xb1,0x01,0x00,0x00,
    +0xb0,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xb9,0x01,0x00,0x00,0x5f,0x00,0x00,0x00,0x32,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbb,0x01,0x00,0x00,
    +0xb9,0x01,0x00,0x00,0xba,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xbd,0x01,0x00,0x00,0xbb,0x01,0x00,0x00,
    +0x5a,0x00,0x00,0x00,0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,
    +0xc5,0x01,0x00,0x00,0xb1,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xc6,0x01,0x00,0x00,
    +0xc5,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
    +0xc8,0x01,0x00,0x00,0x13,0x00,0x00,0x00,0xc7,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xc9,0x01,0x00,0x00,
    +0xc8,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xca,0x01,0x00,0x00,0xc6,0x01,0x00,0x00,0xc9,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xcb,0x01,0x00,0x00,
    +0x39,0x03,0x00,0x00,0xca,0x01,0x00,0x00,0x51,0x00,0x05,0x00,
    +0x8b,0x00,0x00,0x00,0xcd,0x01,0x00,0x00,0xb1,0x01,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0xce,0x01,0x00,0x00,0xcd,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x16,0x00,0x00,0x00,0xd0,0x01,0x00,0x00,0x13,0x00,0x00,0x00,
    +0xcf,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0xd1,0x01,0x00,0x00,0xd0,0x01,0x00,0x00,0x89,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xd2,0x01,0x00,0x00,0xce,0x01,0x00,0x00,
    +0xd1,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
    +0xd3,0x01,0x00,0x00,0x13,0x00,0x00,0x00,0x67,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xd4,0x01,0x00,0x00,
    +0xd3,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xd5,0x01,0x00,0x00,0xd2,0x01,0x00,0x00,0xd4,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd6,0x01,0x00,0x00,
    +0xcb,0x01,0x00,0x00,0xd5,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xd8,0x01,0x00,0x00,0xd6,0x01,0x00,0x00,
    +0x5a,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xd9,0x01,0x00,0x00,
    +0xda,0x01,0x00,0x00,0xc1,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    +0xd8,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    +0xdb,0x01,0x00,0x00,0xda,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x70,0x01,0x00,0x00,0xdc,0x01,0x00,0x00,0xb6,0x01,0x00,0x00,
    +0xbd,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xdc,0x01,0x00,0x00,
    +0xdb,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xac,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xdd,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xe0,0x01,0x00,0x00,0x5f,0x00,0x00,0x00,
    +0x32,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xe2,0x01,0x00,0x00,0xe0,0x01,0x00,0x00,0xe1,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe4,0x01,0x00,0x00,
    +0xe2,0x01,0x00,0x00,0x5a,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x70,0x01,0x00,0x00,0xe5,0x01,0x00,0x00,0xb6,0x01,0x00,0x00,
    +0xe4,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xe5,0x01,0x00,0x00,
    +0xd7,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xac,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xac,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x9d,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x9d,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xea,0x01,0x00,0x00,
    +0x32,0x03,0x00,0x00,0xe8,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x9a,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x9c,0x01,0x00,0x00,
    +0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0xa0,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xed,0x01,0x00,0x00,0x35,0x03,0x00,0x00,0xeb,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf0,0x01,0x00,0x00,
    +0x39,0x03,0x00,0x00,0xee,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xf2,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xf2,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x3b,0x03,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x9c,0x01,0x00,0x00,0x99,0x02,0x00,0x00,
    +0xf5,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0xf8,0x01,0x00,0x00,0x3b,0x03,0x00,0x00,0x4e,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xf4,0x01,0x00,0x00,0xf5,0x01,0x00,0x00,
    +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xf8,0x01,0x00,0x00,
    +0xf3,0x01,0x00,0x00,0xf4,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xf3,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xfa,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xfa,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x3f,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    +0xf3,0x01,0x00,0x00,0x25,0x02,0x00,0x00,0xfd,0x01,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x00,0x02,0x00,0x00,
    +0x3f,0x03,0x00,0x00,0x42,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xfc,0x01,0x00,0x00,0xfd,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x00,0x02,0x00,0x00,0xfb,0x01,0x00,0x00,
    +0xfc,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xfb,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x02,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x02,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x51,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0xfb,0x01,0x00,0x00,
    +0x23,0x02,0x00,0x00,0x03,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x08,0x02,0x00,0x00,0x51,0x03,0x00,0x00,
    +0x44,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x04,0x02,0x00,0x00,
    +0x03,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x08,0x02,0x00,0x00,0x03,0x02,0x00,0x00,0x04,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x03,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x0e,0x02,0x00,0x00,0x3f,0x03,0x00,0x00,
     0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x18,0x02,0x00,0x00,0x15,0x02,0x00,0x00,0x17,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1a,0x02,0x00,0x00,
    -0x18,0x02,0x00,0x00,0x51,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x1c,0x02,0x00,0x00,0x1a,0x02,0x00,0x00,
    -0x1b,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x1e,0x02,0x00,0x00,0x1c,0x02,0x00,0x00,0x3b,0x03,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x70,0x01,0x00,0x00,0x1f,0x02,0x00,0x00,
    -0x4e,0x01,0x00,0x00,0x1e,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xcf,0x00,0x00,0x00,0x20,0x02,0x00,0x00,0x1f,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,0x21,0x02,0x00,0x00,
    -0x0c,0x02,0x00,0x00,0x10,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x21,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x23,0x02,0x00,0x00,0x51,0x03,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x02,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x04,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xfd,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xfd,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x25,0x02,0x00,0x00,
    -0x3f,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xfa,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xfc,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x27,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x27,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x40,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0xfc,0x01,0x00,0x00,
    -0x53,0x02,0x00,0x00,0x2a,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0x2d,0x02,0x00,0x00,0x40,0x03,0x00,0x00,
    -0xcb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x29,0x02,0x00,0x00,
    -0x2a,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x2d,0x02,0x00,0x00,0x28,0x02,0x00,0x00,0x29,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x28,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x2f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x2f,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x4e,0x03,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x28,0x02,0x00,0x00,0x51,0x02,0x00,0x00,
    -0x30,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0x35,0x02,0x00,0x00,0x4e,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x31,0x02,0x00,0x00,0x30,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x35,0x02,0x00,0x00,
    -0x30,0x02,0x00,0x00,0x31,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x30,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x3b,0x02,0x00,0x00,0x40,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3d,0x02,0x00,0x00,
    -0x3b,0x02,0x00,0x00,0x4e,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x3f,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,
    -0xc5,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x42,0x02,0x00,0x00,0x40,0x03,0x00,0x00,0x41,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x43,0x02,0x00,0x00,
    -0x3f,0x02,0x00,0x00,0x42,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x45,0x02,0x00,0x00,0x4a,0x00,0x00,0x00,
    -0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x46,0x02,0x00,0x00,0x43,0x02,0x00,0x00,0x45,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x48,0x02,0x00,0x00,
    -0x46,0x02,0x00,0x00,0x4e,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x4a,0x02,0x00,0x00,0x48,0x02,0x00,0x00,
    -0x49,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x4c,0x02,0x00,0x00,0x4a,0x02,0x00,0x00,0x3b,0x03,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x70,0x01,0x00,0x00,0x4d,0x02,0x00,0x00,
    -0xb6,0x01,0x00,0x00,0x4c,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xcf,0x00,0x00,0x00,0x4e,0x02,0x00,0x00,0x4d,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,0x4f,0x02,0x00,0x00,
    -0x39,0x02,0x00,0x00,0x3d,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x4f,0x02,0x00,0x00,0x4e,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x51,0x02,0x00,0x00,0x4e,0x03,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x2f,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x31,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x2a,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x2a,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x53,0x02,0x00,0x00,
    -0x40,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x27,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x29,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x55,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x55,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x41,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0x29,0x02,0x00,0x00,
    -0x97,0x02,0x00,0x00,0x58,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0x5b,0x02,0x00,0x00,0x41,0x03,0x00,0x00,
    -0xcb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x57,0x02,0x00,0x00,
    -0x58,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x5b,0x02,0x00,0x00,0x56,0x02,0x00,0x00,0x57,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x56,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x5d,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x5d,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x45,0x03,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x56,0x02,0x00,0x00,0x95,0x02,0x00,0x00,
    -0x60,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0x63,0x02,0x00,0x00,0x45,0x03,0x00,0x00,0x42,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x5f,0x02,0x00,0x00,0x60,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x63,0x02,0x00,0x00,
    -0x5e,0x02,0x00,0x00,0x5f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x5e,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x65,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x65,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x47,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x5e,0x02,0x00,0x00,0x93,0x02,0x00,0x00,0x68,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x6b,0x02,0x00,0x00,
    -0x47,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x67,0x02,0x00,0x00,0x68,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x6b,0x02,0x00,0x00,0x66,0x02,0x00,0x00,
    -0x67,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x66,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x6d,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x6d,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x49,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0x66,0x02,0x00,0x00,
    -0x91,0x02,0x00,0x00,0x6e,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0x73,0x02,0x00,0x00,0x49,0x03,0x00,0x00,
    -0x44,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x6f,0x02,0x00,0x00,
    -0x6e,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x73,0x02,0x00,0x00,0x6e,0x02,0x00,0x00,0x6f,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x6e,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x75,0x02,0x00,0x00,0x41,0x03,0x00,0x00,
    +0x10,0x02,0x00,0x00,0x0e,0x02,0x00,0x00,0x51,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x12,0x02,0x00,0x00,
    +0x37,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x14,0x02,0x00,0x00,0x3f,0x03,0x00,0x00,
    +0x43,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x15,0x02,0x00,0x00,0x12,0x02,0x00,0x00,0x14,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x17,0x02,0x00,0x00,
    +0x46,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x18,0x02,0x00,0x00,0x15,0x02,0x00,0x00,
    +0x17,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x1a,0x02,0x00,0x00,0x18,0x02,0x00,0x00,0x51,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1c,0x02,0x00,0x00,
    +0x1a,0x02,0x00,0x00,0x1b,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x1e,0x02,0x00,0x00,0x1c,0x02,0x00,0x00,
    +0x3b,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x70,0x01,0x00,0x00,
    +0x1f,0x02,0x00,0x00,0x4e,0x01,0x00,0x00,0x1e,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0x20,0x02,0x00,0x00,
    +0x1f,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,
    +0x21,0x02,0x00,0x00,0x0c,0x02,0x00,0x00,0x10,0x02,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x21,0x02,0x00,0x00,0x20,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x23,0x02,0x00,0x00,
    +0x51,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x02,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x04,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xfd,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xfd,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x25,0x02,0x00,0x00,0x3f,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xfa,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xfc,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x27,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x27,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x40,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    +0xfc,0x01,0x00,0x00,0x53,0x02,0x00,0x00,0x2a,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x2d,0x02,0x00,0x00,
    +0x40,0x03,0x00,0x00,0xcb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x29,0x02,0x00,0x00,0x2a,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x2d,0x02,0x00,0x00,0x28,0x02,0x00,0x00,
    +0x29,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x28,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x2f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x2f,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x4e,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0x28,0x02,0x00,0x00,
    +0x51,0x02,0x00,0x00,0x30,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x35,0x02,0x00,0x00,0x4e,0x03,0x00,0x00,
    +0xc8,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x31,0x02,0x00,0x00,
    +0x30,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x35,0x02,0x00,0x00,0x30,0x02,0x00,0x00,0x31,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x30,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x3b,0x02,0x00,0x00,0x40,0x03,0x00,0x00,
     0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x77,0x02,0x00,0x00,0x75,0x02,0x00,0x00,0x47,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x79,0x02,0x00,0x00,
    -0x77,0x02,0x00,0x00,0x78,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x7b,0x02,0x00,0x00,0x45,0x03,0x00,0x00,
    -0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x7c,0x02,0x00,0x00,0x79,0x02,0x00,0x00,0x7b,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7e,0x02,0x00,0x00,
    -0x7c,0x02,0x00,0x00,0x49,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x82,0x02,0x00,0x00,0x7b,0x02,0x00,0x00,
    -0x49,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,
    -0x83,0x02,0x00,0x00,0x0c,0x02,0x00,0x00,0x82,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0x84,0x02,0x00,0x00,
    -0x83,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,
    -0x89,0x02,0x00,0x00,0x39,0x02,0x00,0x00,0x77,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0x8a,0x02,0x00,0x00,
    -0x89,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,
    -0x8c,0x02,0x00,0x00,0xd5,0x00,0x00,0x00,0x7e,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0x8d,0x02,0x00,0x00,
    -0x8c,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0xcf,0x00,0x00,0x00,
    -0x8e,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,
    -0x84,0x02,0x00,0x00,0x8a,0x02,0x00,0x00,0x8d,0x02,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x8c,0x02,0x00,0x00,0x8e,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x91,0x02,0x00,0x00,
    -0x49,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x6d,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x6f,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x68,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x68,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x93,0x02,0x00,0x00,0x47,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x65,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x67,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x60,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x60,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x95,0x02,0x00,0x00,0x45,0x03,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x5d,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x5f,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x58,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x58,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x97,0x02,0x00,0x00,
    -0x41,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x55,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x57,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xf5,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xf5,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x99,0x02,0x00,0x00,0x3b,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xf2,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xf4,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xe0,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xe0,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9b,0x02,0x00,0x00,
    -0x20,0x03,0x00,0x00,0x4e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xdd,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xdf,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa0,0x02,0x00,0x00,
    -0x37,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xa1,0x02,0x00,0x00,0xb4,0x00,0x00,0x00,
    -0xa0,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xa6,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa7,0x02,0x00,0x00,
    -0xa3,0x00,0x00,0x00,0xa6,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xa9,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xa9,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x21,0x03,0x00,0x00,
    -0x20,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0x12,0x03,0x00,0x00,
    -0xac,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0xaf,0x02,0x00,0x00,0x21,0x03,0x00,0x00,0xcb,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xab,0x02,0x00,0x00,0xac,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xaf,0x02,0x00,0x00,
    -0xaa,0x02,0x00,0x00,0xab,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xaa,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xb1,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xb1,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x22,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    -0xaa,0x02,0x00,0x00,0x10,0x03,0x00,0x00,0xb4,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xb7,0x02,0x00,0x00,
    -0x22,0x03,0x00,0x00,0x42,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xb3,0x02,0x00,0x00,0xb4,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xb7,0x02,0x00,0x00,0xb2,0x02,0x00,0x00,
    -0xb3,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xb2,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbb,0x02,0x00,0x00,
    -0x22,0x03,0x00,0x00,0x43,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xbc,0x02,0x00,0x00,0xa1,0x02,0x00,0x00,
    -0xbb,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xbe,0x02,0x00,0x00,0x46,0x00,0x00,0x00,0x44,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbf,0x02,0x00,0x00,
    -0xbc,0x02,0x00,0x00,0xbe,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xc3,0x02,0x00,0x00,0x21,0x03,0x00,0x00,
    +0x3d,0x02,0x00,0x00,0x3b,0x02,0x00,0x00,0x4e,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3f,0x02,0x00,0x00,
    +0x3b,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x42,0x02,0x00,0x00,0x40,0x03,0x00,0x00,
     0x41,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xc4,0x02,0x00,0x00,0xa7,0x02,0x00,0x00,0xc3,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc6,0x02,0x00,0x00,
    +0x43,0x02,0x00,0x00,0x3f,0x02,0x00,0x00,0x42,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x45,0x02,0x00,0x00,
     0x4a,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xc7,0x02,0x00,0x00,0xc4,0x02,0x00,0x00,
    -0xc6,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xc9,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xc9,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x24,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    -0xb2,0x02,0x00,0x00,0x0e,0x03,0x00,0x00,0xcc,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xcf,0x02,0x00,0x00,
    -0x24,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xcb,0x02,0x00,0x00,0xcc,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xcf,0x02,0x00,0x00,0xca,0x02,0x00,0x00,
    -0xcb,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xca,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd3,0x02,0x00,0x00,
    -0xc7,0x02,0x00,0x00,0x24,0x03,0x00,0x00,0xae,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0xd6,0x02,0x00,0x00,0xd3,0x02,0x00,0x00,
    -0x1e,0x03,0x00,0x00,0xf7,0x00,0x03,0x00,0xd8,0x02,0x00,0x00,
    -0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xd6,0x02,0x00,0x00,
    -0xd7,0x02,0x00,0x00,0xd8,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xd7,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xcb,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xd8,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x97,0x00,0x00,0x00,0xdc,0x02,0x00,0x00,0x90,0x00,0x00,0x00,
    -0xd3,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,
    -0xdd,0x02,0x00,0x00,0xdc,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xdf,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xdf,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x2a,0x03,0x00,0x00,
    -0x20,0x00,0x00,0x00,0xd8,0x02,0x00,0x00,0x0c,0x03,0x00,0x00,
    -0xe0,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0xe5,0x02,0x00,0x00,0x2a,0x03,0x00,0x00,0x44,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xe1,0x02,0x00,0x00,0xe0,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xe5,0x02,0x00,0x00,
    -0xe0,0x02,0x00,0x00,0xe1,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xe0,0x02,0x00,0x00,0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,
    -0xeb,0x02,0x00,0x00,0xdd,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xec,0x02,0x00,0x00,
    -0xeb,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
    -0xee,0x02,0x00,0x00,0x13,0x00,0x00,0x00,0xed,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xef,0x02,0x00,0x00,
    -0xee,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xf0,0x02,0x00,0x00,0xec,0x02,0x00,0x00,0xef,0x02,0x00,0x00,
    -0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,0xf2,0x02,0x00,0x00,
    -0xdd,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0xf3,0x02,0x00,0x00,0xf2,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0xf5,0x02,0x00,0x00,
    -0x13,0x00,0x00,0x00,0xf4,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0xf6,0x02,0x00,0x00,0xf5,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf7,0x02,0x00,0x00,
    -0xf3,0x02,0x00,0x00,0xf6,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xf8,0x02,0x00,0x00,0xf0,0x02,0x00,0x00,
    -0xf7,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xfa,0x02,0x00,0x00,0xf8,0x02,0x00,0x00,0xbf,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfc,0x02,0x00,0x00,
    -0xfa,0x02,0x00,0x00,0x2a,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xfe,0x02,0x00,0x00,0x21,0x03,0x00,0x00,
    -0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x00,0x03,0x00,0x00,0xfe,0x02,0x00,0x00,0x24,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x02,0x03,0x00,0x00,
    -0x00,0x03,0x00,0x00,0x01,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x04,0x03,0x00,0x00,0x22,0x03,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x46,0x02,0x00,0x00,0x43,0x02,0x00,0x00,
    +0x45,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x48,0x02,0x00,0x00,0x46,0x02,0x00,0x00,0x4e,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4a,0x02,0x00,0x00,
    +0x48,0x02,0x00,0x00,0x49,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x4c,0x02,0x00,0x00,0x4a,0x02,0x00,0x00,
    +0x3b,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x70,0x01,0x00,0x00,
    +0x4d,0x02,0x00,0x00,0xb6,0x01,0x00,0x00,0x4c,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0x4e,0x02,0x00,0x00,
    +0x4d,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,
    +0x4f,0x02,0x00,0x00,0x39,0x02,0x00,0x00,0x3d,0x02,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x4f,0x02,0x00,0x00,0x4e,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x51,0x02,0x00,0x00,
    +0x4e,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x2f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x31,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x2a,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x2a,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x53,0x02,0x00,0x00,0x40,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x27,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x29,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x55,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x55,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x41,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x29,0x02,0x00,0x00,0x97,0x02,0x00,0x00,0x58,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x5b,0x02,0x00,0x00,
    +0x41,0x03,0x00,0x00,0xcb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x57,0x02,0x00,0x00,0x58,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x5b,0x02,0x00,0x00,0x56,0x02,0x00,0x00,
    +0x57,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x56,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x5d,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x5d,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x45,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0x56,0x02,0x00,0x00,
    +0x95,0x02,0x00,0x00,0x60,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x63,0x02,0x00,0x00,0x45,0x03,0x00,0x00,
    +0x42,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x5f,0x02,0x00,0x00,
    +0x60,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x63,0x02,0x00,0x00,0x5e,0x02,0x00,0x00,0x5f,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x5e,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x65,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x65,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x47,0x03,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x5e,0x02,0x00,0x00,0x93,0x02,0x00,0x00,
    +0x68,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0x6b,0x02,0x00,0x00,0x47,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x67,0x02,0x00,0x00,0x68,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x6b,0x02,0x00,0x00,
    +0x66,0x02,0x00,0x00,0x67,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x66,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x6d,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x6d,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x49,0x03,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x66,0x02,0x00,0x00,0x91,0x02,0x00,0x00,0x6e,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x73,0x02,0x00,0x00,
    +0x49,0x03,0x00,0x00,0x44,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x6f,0x02,0x00,0x00,0x6e,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x73,0x02,0x00,0x00,0x6e,0x02,0x00,0x00,
    +0x6f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x6e,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x75,0x02,0x00,0x00,
    +0x41,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x77,0x02,0x00,0x00,0x75,0x02,0x00,0x00,
    +0x47,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x79,0x02,0x00,0x00,0x77,0x02,0x00,0x00,0x78,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7b,0x02,0x00,0x00,
    +0x45,0x03,0x00,0x00,0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x7c,0x02,0x00,0x00,0x79,0x02,0x00,0x00,
    +0x7b,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x7e,0x02,0x00,0x00,0x7c,0x02,0x00,0x00,0x49,0x03,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x82,0x02,0x00,0x00,
    +0x7b,0x02,0x00,0x00,0x49,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xd8,0x00,0x00,0x00,0x83,0x02,0x00,0x00,0x0c,0x02,0x00,0x00,
    +0x82,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    +0x84,0x02,0x00,0x00,0x83,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xd8,0x00,0x00,0x00,0x89,0x02,0x00,0x00,0x39,0x02,0x00,0x00,
    +0x77,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    +0x8a,0x02,0x00,0x00,0x89,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xd8,0x00,0x00,0x00,0x8c,0x02,0x00,0x00,0xd5,0x00,0x00,0x00,
    +0x7e,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    +0x8d,0x02,0x00,0x00,0x8c,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,
    +0xcf,0x00,0x00,0x00,0x8e,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x32,0x00,0x00,0x00,0x84,0x02,0x00,0x00,0x8a,0x02,0x00,0x00,
    +0x8d,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0x8c,0x02,0x00,0x00,
    +0x8e,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x91,0x02,0x00,0x00,0x49,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x6d,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x6f,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x68,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x68,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x93,0x02,0x00,0x00,0x47,0x03,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x65,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x67,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x60,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x60,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x95,0x02,0x00,0x00,
    +0x45,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x5d,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x5f,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x58,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x58,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x97,0x02,0x00,0x00,0x41,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x55,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x57,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xf5,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xf5,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x99,0x02,0x00,0x00,0x3b,0x03,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xf2,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xf4,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,
    +0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xe0,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xe0,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x9b,0x02,0x00,0x00,0x20,0x03,0x00,0x00,0x4e,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xdd,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xdf,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xa0,0x02,0x00,0x00,0x37,0x00,0x00,0x00,0x35,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa1,0x02,0x00,0x00,
    +0xb4,0x00,0x00,0x00,0xa0,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xa6,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,
    +0xc5,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xa7,0x02,0x00,0x00,0xa3,0x00,0x00,0x00,0xa6,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xa9,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xa9,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x21,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,
    +0x12,0x03,0x00,0x00,0xac,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0xaf,0x02,0x00,0x00,0x21,0x03,0x00,0x00,
    +0xcb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xab,0x02,0x00,0x00,
    +0xac,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xaf,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,0xab,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xaa,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xb1,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xb1,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x22,0x03,0x00,0x00,
    +0x20,0x00,0x00,0x00,0xaa,0x02,0x00,0x00,0x10,0x03,0x00,0x00,
    +0xb4,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0xb7,0x02,0x00,0x00,0x22,0x03,0x00,0x00,0x42,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xb3,0x02,0x00,0x00,0xb4,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xb7,0x02,0x00,0x00,
    +0xb2,0x02,0x00,0x00,0xb3,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xb2,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xbb,0x02,0x00,0x00,0x22,0x03,0x00,0x00,0x43,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbc,0x02,0x00,0x00,
    +0xa1,0x02,0x00,0x00,0xbb,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xbe,0x02,0x00,0x00,0x46,0x00,0x00,0x00,
     0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x05,0x03,0x00,0x00,0x02,0x03,0x00,0x00,0x04,0x03,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x07,0x03,0x00,0x00,
    -0x05,0x03,0x00,0x00,0x2a,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xd8,0x00,0x00,0x00,0x08,0x03,0x00,0x00,0xd5,0x00,0x00,0x00,
    -0x07,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    -0x09,0x03,0x00,0x00,0x08,0x03,0x00,0x00,0x41,0x00,0x06,0x00,
    -0xd9,0x01,0x00,0x00,0x0a,0x03,0x00,0x00,0xe9,0x02,0x00,0x00,
    -0x15,0x00,0x00,0x00,0xfc,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x0a,0x03,0x00,0x00,0x09,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x0c,0x03,0x00,0x00,0x2a,0x03,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xdf,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xe1,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xcc,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xcc,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0e,0x03,0x00,0x00,
    -0x24,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xc9,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xcb,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xb4,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xb4,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x10,0x03,0x00,0x00,0x22,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xb1,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xb3,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xac,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xac,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x12,0x03,0x00,0x00,0x21,0x03,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xa9,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xab,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x13,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x13,0x03,0x00,0x00,
    -0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
    +0xbf,0x02,0x00,0x00,0xbc,0x02,0x00,0x00,0xbe,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc3,0x02,0x00,0x00,
    +0x21,0x03,0x00,0x00,0x41,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xc4,0x02,0x00,0x00,0xa7,0x02,0x00,0x00,
    +0xc3,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xc6,0x02,0x00,0x00,0x4a,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc7,0x02,0x00,0x00,
    +0xc4,0x02,0x00,0x00,0xc6,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xc9,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xc9,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x24,0x03,0x00,0x00,
    +0x20,0x00,0x00,0x00,0xb2,0x02,0x00,0x00,0x0e,0x03,0x00,0x00,
    +0xcc,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0xcf,0x02,0x00,0x00,0x24,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xcb,0x02,0x00,0x00,0xcc,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xcf,0x02,0x00,0x00,
    +0xca,0x02,0x00,0x00,0xcb,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xca,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xd3,0x02,0x00,0x00,0xc7,0x02,0x00,0x00,0x24,0x03,0x00,0x00,
    +0xae,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xd6,0x02,0x00,0x00,
    +0xd3,0x02,0x00,0x00,0x1e,0x03,0x00,0x00,0xf7,0x00,0x03,0x00,
    +0xd8,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xd6,0x02,0x00,0x00,0xd7,0x02,0x00,0x00,0xd8,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xd7,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xcb,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xd8,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x97,0x00,0x00,0x00,0xdc,0x02,0x00,0x00,
    +0x90,0x00,0x00,0x00,0xd3,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x8c,0x00,0x00,0x00,0xdd,0x02,0x00,0x00,0xdc,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xdf,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xdf,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x2a,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0xd8,0x02,0x00,0x00,
    +0x0c,0x03,0x00,0x00,0xe0,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0xe5,0x02,0x00,0x00,0x2a,0x03,0x00,0x00,
    +0x44,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xe1,0x02,0x00,0x00,
    +0xe0,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xe5,0x02,0x00,0x00,0xe0,0x02,0x00,0x00,0xe1,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xe0,0x02,0x00,0x00,0x51,0x00,0x05,0x00,
    +0x8b,0x00,0x00,0x00,0xeb,0x02,0x00,0x00,0xdd,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0xec,0x02,0x00,0x00,0xeb,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x16,0x00,0x00,0x00,0xee,0x02,0x00,0x00,0x13,0x00,0x00,0x00,
    +0xed,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0xef,0x02,0x00,0x00,0xee,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xf0,0x02,0x00,0x00,0xec,0x02,0x00,0x00,
    +0xef,0x02,0x00,0x00,0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,
    +0xf2,0x02,0x00,0x00,0xdd,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xf3,0x02,0x00,0x00,
    +0xf2,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
    +0xf5,0x02,0x00,0x00,0x13,0x00,0x00,0x00,0xf4,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xf6,0x02,0x00,0x00,
    +0xf5,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xf7,0x02,0x00,0x00,0xf3,0x02,0x00,0x00,0xf6,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf8,0x02,0x00,0x00,
    +0xf0,0x02,0x00,0x00,0xf7,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xfa,0x02,0x00,0x00,0xf8,0x02,0x00,0x00,
    +0xbf,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xfc,0x02,0x00,0x00,0xfa,0x02,0x00,0x00,0x2a,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfe,0x02,0x00,0x00,
    +0x21,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0xfe,0x02,0x00,0x00,
    +0x24,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x02,0x03,0x00,0x00,0x00,0x03,0x00,0x00,0x01,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x04,0x03,0x00,0x00,
    +0x22,0x03,0x00,0x00,0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x05,0x03,0x00,0x00,0x02,0x03,0x00,0x00,
    +0x04,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x07,0x03,0x00,0x00,0x05,0x03,0x00,0x00,0x2a,0x03,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,0x08,0x03,0x00,0x00,
    +0xd5,0x00,0x00,0x00,0x07,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xcf,0x00,0x00,0x00,0x09,0x03,0x00,0x00,0x08,0x03,0x00,0x00,
    +0x41,0x00,0x06,0x00,0xd9,0x01,0x00,0x00,0x0a,0x03,0x00,0x00,
    +0xe9,0x02,0x00,0x00,0x15,0x00,0x00,0x00,0xfc,0x02,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x0a,0x03,0x00,0x00,0x09,0x03,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0c,0x03,0x00,0x00,
    +0x2a,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xdf,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xe1,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xcc,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xcc,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x0e,0x03,0x00,0x00,0x24,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xc9,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xcb,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xb4,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xb4,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x10,0x03,0x00,0x00,0x22,0x03,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xb1,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xb3,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xac,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xac,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x12,0x03,0x00,0x00,
    +0x21,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xa9,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xab,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x13,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x13,0x03,0x00,0x00,0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
    +
     };
    -const uint64_t matmul_id_q6_k_f32_fp32_len = 12116;
    +const uint64_t matmul_id_q6_k_f32_fp32_len = 12096;
     
     unsigned char matmul_id_q8_0_f32_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
    @@ -73747,9 +77459,9 @@ unsigned char matmul_id_q8_0_f32_data[] = {
     0x43,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x54,0x00,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x59,0x00,0x00,0x00,
     0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,
    @@ -73849,7 +77561,7 @@ unsigned char matmul_id_q8_0_f32_data[] = {
     0x41,0x01,0x00,0x00,0x51,0x00,0x00,0x00,0x40,0x01,0x00,0x00,
     0x00,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x42,0x01,0x00,0x00,0x84,0x00,0x00,0x00,0x41,0x01,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x43,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0x42,0x01,0x00,0x00,
     0x4e,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x5f,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    @@ -73882,7 +77594,7 @@ unsigned char matmul_id_q8_0_f32_data[] = {
     0x06,0x00,0x00,0x00,0x98,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
     0x97,0x01,0x00,0x00,0x4e,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x9b,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x4e,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x9e,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
     0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0xb9,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    @@ -74050,7 +77762,7 @@ unsigned char matmul_id_q8_0_f32_data[] = {
     0xb4,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,
     0xb8,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xbb,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0xbb,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
     0xf9,0x00,0x02,0x00,0xbe,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
     0xbe,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
     0xd4,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,
    @@ -74092,448 +77804,446 @@ unsigned char matmul_id_q8_0_f32_data[] = {
     0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,
     0xf1,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xf6,0x00,0x00,0x00,0xea,0x02,0x00,0x00,0xf5,0x00,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,
     0xf6,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0xf1,0x00,0x00,0x00,
    -0xfd,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x00,0x01,0x00,0x00,0x50,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x01,0x01,0x00,0x00,
    -0xfe,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x86,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0xf8,0x00,0x00,0x00,
    -0x04,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x09,0x01,0x00,0x00,0xf8,0x00,0x00,0x00,0x08,0x01,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0a,0x01,0x00,0x00,
    -0x09,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x41,0x00,0x07,0x00,
    -0x16,0x01,0x00,0x00,0x17,0x01,0x00,0x00,0x14,0x01,0x00,0x00,
    -0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x0c,0x01,0x00,0x00,0x18,0x01,0x00,0x00,
    -0x17,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    -0x19,0x01,0x00,0x00,0x18,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x1f,0x01,0x00,0x00,0x20,0x01,0x00,0x00,0x14,0x01,0x00,0x00,
    -0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0x0a,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x0d,0x01,0x00,0x00,
    -0x21,0x01,0x00,0x00,0x20,0x01,0x00,0x00,0x72,0x00,0x04,0x00,
    -0x14,0x00,0x00,0x00,0x22,0x01,0x00,0x00,0x21,0x01,0x00,0x00,
    -0x6f,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0x23,0x01,0x00,0x00,
    -0x22,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x26,0x01,0x00,0x00,0x0a,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,
    -0x41,0x00,0x08,0x00,0x1f,0x01,0x00,0x00,0x27,0x01,0x00,0x00,
    +0xfd,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x01,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,0x50,0x00,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x05,0x01,0x00,0x00,
    +0xf8,0x00,0x00,0x00,0x04,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x09,0x01,0x00,0x00,0xf8,0x00,0x00,0x00,
    +0x08,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x0a,0x01,0x00,0x00,0x09,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x41,0x00,0x07,0x00,0x16,0x01,0x00,0x00,0x17,0x01,0x00,0x00,
     0x14,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0x26,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x0d,0x01,0x00,0x00,0x28,0x01,0x00,0x00,0x27,0x01,0x00,0x00,
    -0x72,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x29,0x01,0x00,0x00,
    -0x28,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    -0x2a,0x01,0x00,0x00,0x29,0x01,0x00,0x00,0x50,0x00,0x05,0x00,
    -0x1a,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,0x23,0x01,0x00,0x00,
    -0x2a,0x01,0x00,0x00,0x8e,0x00,0x05,0x00,0x1a,0x01,0x00,0x00,
    -0x2d,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,0x19,0x01,0x00,0x00,
    -0x51,0x00,0x05,0x00,0xcf,0x00,0x00,0x00,0x35,0x01,0x00,0x00,
    -0x2d,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x00,0x04,0x00,
    -0x0c,0x01,0x00,0x00,0x36,0x01,0x00,0x00,0x35,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x37,0x01,0x00,0x00,0x38,0x01,0x00,0x00,
    -0x32,0x01,0x00,0x00,0x01,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x38,0x01,0x00,0x00,0x36,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x3a,0x01,0x00,0x00,0x01,0x01,0x00,0x00,
    -0x1b,0x00,0x00,0x00,0x51,0x00,0x05,0x00,0xcf,0x00,0x00,0x00,
    -0x3c,0x01,0x00,0x00,0x2d,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x73,0x00,0x04,0x00,0x0c,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,
    -0x3c,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x37,0x01,0x00,0x00,
    -0x3e,0x01,0x00,0x00,0x32,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x3e,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x45,0x01,0x00,0x00,
    -0xe6,0x02,0x00,0x00,0x43,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xe6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xe8,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x47,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x47,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xe7,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,
    -0x9a,0x01,0x00,0x00,0x4a,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0x4d,0x01,0x00,0x00,0xe7,0x02,0x00,0x00,
    -0xa2,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x49,0x01,0x00,0x00,
    -0x4a,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x4d,0x01,0x00,0x00,0x48,0x01,0x00,0x00,0x49,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x48,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x52,0x01,0x00,0x00,0xa3,0x00,0x00,0x00,
    -0x5f,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x54,0x01,0x00,0x00,0x52,0x01,0x00,0x00,0xe7,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x57,0x01,0x00,0x00,
    -0x54,0x01,0x00,0x00,0xd3,0x02,0x00,0x00,0xf7,0x00,0x03,0x00,
    -0x59,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x57,0x01,0x00,0x00,0x58,0x01,0x00,0x00,0x8c,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x58,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x97,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,0x90,0x00,0x00,0x00,
    -0x54,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,
    -0x5e,0x01,0x00,0x00,0x5d,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x66,0x01,0x00,0x00,0x5f,0x00,0x00,0x00,
    +0x15,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x0c,0x01,0x00,0x00,
    +0x18,0x01,0x00,0x00,0x17,0x01,0x00,0x00,0x73,0x00,0x04,0x00,
    +0xcf,0x00,0x00,0x00,0x19,0x01,0x00,0x00,0x18,0x01,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x1f,0x01,0x00,0x00,0x20,0x01,0x00,0x00,
    +0x14,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0x0a,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x0d,0x01,0x00,0x00,0x21,0x01,0x00,0x00,0x20,0x01,0x00,0x00,
    +0x72,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x22,0x01,0x00,0x00,
    +0x21,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    +0x23,0x01,0x00,0x00,0x22,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x26,0x01,0x00,0x00,0x0a,0x01,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0x1f,0x01,0x00,0x00,
    +0x27,0x01,0x00,0x00,0x14,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    +0x05,0x01,0x00,0x00,0x9a,0x00,0x00,0x00,0x26,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x0d,0x01,0x00,0x00,0x28,0x01,0x00,0x00,
    +0x27,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    +0x29,0x01,0x00,0x00,0x28,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,
    +0xcf,0x00,0x00,0x00,0x2a,0x01,0x00,0x00,0x29,0x01,0x00,0x00,
    +0x50,0x00,0x05,0x00,0x1a,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,
    +0x23,0x01,0x00,0x00,0x2a,0x01,0x00,0x00,0x8e,0x00,0x05,0x00,
    +0x1a,0x01,0x00,0x00,0x2d,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,
    +0x19,0x01,0x00,0x00,0x51,0x00,0x05,0x00,0xcf,0x00,0x00,0x00,
    +0x35,0x01,0x00,0x00,0x2d,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x73,0x00,0x04,0x00,0x0c,0x01,0x00,0x00,0x36,0x01,0x00,0x00,
    +0x35,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x37,0x01,0x00,0x00,
    +0x38,0x01,0x00,0x00,0x32,0x01,0x00,0x00,0x01,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x38,0x01,0x00,0x00,0x36,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3a,0x01,0x00,0x00,
    +0x01,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,0x51,0x00,0x05,0x00,
    +0xcf,0x00,0x00,0x00,0x3c,0x01,0x00,0x00,0x2d,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x73,0x00,0x04,0x00,0x0c,0x01,0x00,0x00,
    +0x3d,0x01,0x00,0x00,0x3c,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x37,0x01,0x00,0x00,0x3e,0x01,0x00,0x00,0x32,0x01,0x00,0x00,
    +0x3a,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x3e,0x01,0x00,0x00,
    +0x3d,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x45,0x01,0x00,0x00,0xe6,0x02,0x00,0x00,0x43,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xe6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xe8,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x47,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x47,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xe7,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    +0xe8,0x00,0x00,0x00,0x9a,0x01,0x00,0x00,0x4a,0x01,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x4d,0x01,0x00,0x00,
    +0xe7,0x02,0x00,0x00,0xa2,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x49,0x01,0x00,0x00,0x4a,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x4d,0x01,0x00,0x00,0x48,0x01,0x00,0x00,
    +0x49,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x48,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x52,0x01,0x00,0x00,
    +0xa3,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x54,0x01,0x00,0x00,0x52,0x01,0x00,0x00,
    +0xe7,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0x57,0x01,0x00,0x00,0x54,0x01,0x00,0x00,0xd3,0x02,0x00,0x00,
    +0xf7,0x00,0x03,0x00,0x59,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x57,0x01,0x00,0x00,0x58,0x01,0x00,0x00,
    +0x8c,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x58,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x97,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,
    +0x90,0x00,0x00,0x00,0x54,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x8c,0x00,0x00,0x00,0x5e,0x01,0x00,0x00,0x5d,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x66,0x01,0x00,0x00,
    +0x5f,0x00,0x00,0x00,0xe7,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x68,0x01,0x00,0x00,0x66,0x01,0x00,0x00,
    +0x67,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x6a,0x01,0x00,0x00,0x68,0x01,0x00,0x00,0x5a,0x00,0x00,0x00,
    +0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,0x72,0x01,0x00,0x00,
    +0x5e,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x73,0x01,0x00,0x00,0x72,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0x75,0x01,0x00,0x00,
    +0x13,0x00,0x00,0x00,0x74,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x76,0x01,0x00,0x00,0x75,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x77,0x01,0x00,0x00,
    +0x73,0x01,0x00,0x00,0x76,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x78,0x01,0x00,0x00,0xee,0x02,0x00,0x00,
    +0x77,0x01,0x00,0x00,0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,
    +0x7a,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x7b,0x01,0x00,0x00,
    +0x7a,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
    +0x7d,0x01,0x00,0x00,0x13,0x00,0x00,0x00,0x7c,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x7e,0x01,0x00,0x00,
    +0x7d,0x01,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x7f,0x01,0x00,0x00,0x7b,0x01,0x00,0x00,0x7e,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0x81,0x01,0x00,0x00,
    +0x13,0x00,0x00,0x00,0x80,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x82,0x01,0x00,0x00,0x81,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x83,0x01,0x00,0x00,
    +0x7f,0x01,0x00,0x00,0x82,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x84,0x01,0x00,0x00,0x78,0x01,0x00,0x00,
    +0x83,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x86,0x01,0x00,0x00,0x84,0x01,0x00,0x00,0x5a,0x00,0x00,0x00,
    +0x41,0x00,0x06,0x00,0x87,0x01,0x00,0x00,0x88,0x01,0x00,0x00,
    +0x6e,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x86,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0x89,0x01,0x00,0x00,
    +0x88,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x0c,0x01,0x00,0x00,
    +0x8a,0x01,0x00,0x00,0x89,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x37,0x01,0x00,0x00,0x8b,0x01,0x00,0x00,0x63,0x01,0x00,0x00,
    +0x6a,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x8b,0x01,0x00,0x00,
    +0x8a,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x59,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x8c,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x8f,0x01,0x00,0x00,0x5f,0x00,0x00,0x00,
     0xe7,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x68,0x01,0x00,0x00,0x66,0x01,0x00,0x00,0x67,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6a,0x01,0x00,0x00,
    -0x68,0x01,0x00,0x00,0x5a,0x00,0x00,0x00,0x51,0x00,0x05,0x00,
    -0x8b,0x00,0x00,0x00,0x72,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x73,0x01,0x00,0x00,0x72,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x16,0x00,0x00,0x00,0x75,0x01,0x00,0x00,0x13,0x00,0x00,0x00,
    -0x74,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x76,0x01,0x00,0x00,0x75,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x77,0x01,0x00,0x00,0x73,0x01,0x00,0x00,
    -0x76,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x78,0x01,0x00,0x00,0xee,0x02,0x00,0x00,0x77,0x01,0x00,0x00,
    -0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,0x7a,0x01,0x00,0x00,
    -0x5e,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x7b,0x01,0x00,0x00,0x7a,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0x7d,0x01,0x00,0x00,
    -0x13,0x00,0x00,0x00,0x7c,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x7e,0x01,0x00,0x00,0x7d,0x01,0x00,0x00,
    -0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7f,0x01,0x00,0x00,
    -0x7b,0x01,0x00,0x00,0x7e,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x16,0x00,0x00,0x00,0x81,0x01,0x00,0x00,0x13,0x00,0x00,0x00,
    -0x80,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x82,0x01,0x00,0x00,0x81,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x83,0x01,0x00,0x00,0x7f,0x01,0x00,0x00,
    -0x82,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x84,0x01,0x00,0x00,0x78,0x01,0x00,0x00,0x83,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x86,0x01,0x00,0x00,
    -0x84,0x01,0x00,0x00,0x5a,0x00,0x00,0x00,0x41,0x00,0x06,0x00,
    -0x87,0x01,0x00,0x00,0x88,0x01,0x00,0x00,0x6e,0x01,0x00,0x00,
    -0x15,0x00,0x00,0x00,0x86,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xcf,0x00,0x00,0x00,0x89,0x01,0x00,0x00,0x88,0x01,0x00,0x00,
    -0x73,0x00,0x04,0x00,0x0c,0x01,0x00,0x00,0x8a,0x01,0x00,0x00,
    -0x89,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x37,0x01,0x00,0x00,
    -0x8b,0x01,0x00,0x00,0x63,0x01,0x00,0x00,0x6a,0x01,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x8b,0x01,0x00,0x00,0x8a,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x59,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x8c,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x8f,0x01,0x00,0x00,0x5f,0x00,0x00,0x00,0xe7,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x91,0x01,0x00,0x00,
    -0x8f,0x01,0x00,0x00,0x90,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x93,0x01,0x00,0x00,0x91,0x01,0x00,0x00,
    -0x5a,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x37,0x01,0x00,0x00,
    -0x95,0x01,0x00,0x00,0x63,0x01,0x00,0x00,0x93,0x01,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x95,0x01,0x00,0x00,0x94,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x59,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x59,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x4a,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x4a,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x9a,0x01,0x00,0x00,0xe7,0x02,0x00,0x00,
    -0x98,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x47,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x49,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,
    -0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9d,0x01,0x00,0x00,
    -0xea,0x02,0x00,0x00,0x9b,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xa0,0x01,0x00,0x00,0xee,0x02,0x00,0x00,
    -0x9e,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xa2,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xa2,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xf0,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x49,0x01,0x00,0x00,0x4c,0x02,0x00,0x00,0xa5,0x01,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xa8,0x01,0x00,0x00,
    -0xf0,0x02,0x00,0x00,0x4e,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xa4,0x01,0x00,0x00,0xa5,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xa8,0x01,0x00,0x00,0xa3,0x01,0x00,0x00,
    -0xa4,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xa3,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xaa,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xaa,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xf4,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0xa3,0x01,0x00,0x00,
    -0xd6,0x01,0x00,0x00,0xad,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0xb0,0x01,0x00,0x00,0xf4,0x02,0x00,0x00,
    -0x42,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xac,0x01,0x00,0x00,
    -0xad,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xb0,0x01,0x00,0x00,0xab,0x01,0x00,0x00,0xac,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xab,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xb2,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xb2,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x06,0x03,0x00,0x00,
    -0x20,0x00,0x00,0x00,0xab,0x01,0x00,0x00,0xd4,0x01,0x00,0x00,
    -0xb3,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0xb8,0x01,0x00,0x00,0x06,0x03,0x00,0x00,0x44,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xb4,0x01,0x00,0x00,0xb3,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xb8,0x01,0x00,0x00,
    -0xb3,0x01,0x00,0x00,0xb4,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xb3,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xbe,0x01,0x00,0x00,0xf4,0x02,0x00,0x00,0x44,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc0,0x01,0x00,0x00,
    -0xbe,0x01,0x00,0x00,0x06,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xc2,0x01,0x00,0x00,0x37,0x00,0x00,0x00,
    -0x35,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xc4,0x01,0x00,0x00,0xf4,0x02,0x00,0x00,0x43,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc5,0x01,0x00,0x00,
    -0xc2,0x01,0x00,0x00,0xc4,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xc7,0x01,0x00,0x00,0x46,0x00,0x00,0x00,
    +0x91,0x01,0x00,0x00,0x8f,0x01,0x00,0x00,0x90,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x93,0x01,0x00,0x00,
    +0x91,0x01,0x00,0x00,0x5a,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x37,0x01,0x00,0x00,0x95,0x01,0x00,0x00,0x63,0x01,0x00,0x00,
    +0x93,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x95,0x01,0x00,0x00,
    +0x94,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x59,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x59,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x4a,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x4a,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9a,0x01,0x00,0x00,
    +0xe7,0x02,0x00,0x00,0x98,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x47,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x49,0x01,0x00,0x00,
    +0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0xa0,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x9d,0x01,0x00,0x00,0xea,0x02,0x00,0x00,0x9b,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa0,0x01,0x00,0x00,
    +0xee,0x02,0x00,0x00,0x9e,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xa2,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xa2,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xf0,0x02,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x49,0x01,0x00,0x00,0x4c,0x02,0x00,0x00,
    +0xa5,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0xa8,0x01,0x00,0x00,0xf0,0x02,0x00,0x00,0x4e,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xa4,0x01,0x00,0x00,0xa5,0x01,0x00,0x00,
    +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xa8,0x01,0x00,0x00,
    +0xa3,0x01,0x00,0x00,0xa4,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xa3,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xaa,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xaa,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xf4,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    +0xa3,0x01,0x00,0x00,0xd6,0x01,0x00,0x00,0xad,0x01,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xb0,0x01,0x00,0x00,
    +0xf4,0x02,0x00,0x00,0x42,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xac,0x01,0x00,0x00,0xad,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xb0,0x01,0x00,0x00,0xab,0x01,0x00,0x00,
    +0xac,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xab,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xb2,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xb2,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0xab,0x01,0x00,0x00,
    +0xd4,0x01,0x00,0x00,0xb3,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0xb8,0x01,0x00,0x00,0x06,0x03,0x00,0x00,
    +0x44,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xb4,0x01,0x00,0x00,
    +0xb3,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xb8,0x01,0x00,0x00,0xb3,0x01,0x00,0x00,0xb4,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xb3,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xbe,0x01,0x00,0x00,0xf4,0x02,0x00,0x00,
     0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xc8,0x01,0x00,0x00,0xc5,0x01,0x00,0x00,0xc7,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xca,0x01,0x00,0x00,
    -0xc8,0x01,0x00,0x00,0x06,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xcc,0x01,0x00,0x00,0xca,0x01,0x00,0x00,
    -0xcb,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xce,0x01,0x00,0x00,0xcc,0x01,0x00,0x00,0xf0,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x37,0x01,0x00,0x00,0xcf,0x01,0x00,0x00,
    -0x32,0x01,0x00,0x00,0xce,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x0c,0x01,0x00,0x00,0xd0,0x01,0x00,0x00,0xcf,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xd1,0x01,0x00,0x00,0xd2,0x01,0x00,0x00,
    -0xbc,0x01,0x00,0x00,0xc0,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0xd2,0x01,0x00,0x00,0xd0,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xd4,0x01,0x00,0x00,0x06,0x03,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xb2,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xb4,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xad,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xad,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd6,0x01,0x00,0x00,
    -0xf4,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xaa,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xac,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xd8,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xd8,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xf5,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0xac,0x01,0x00,0x00,
    -0x04,0x02,0x00,0x00,0xdb,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0xde,0x01,0x00,0x00,0xf5,0x02,0x00,0x00,
    -0xcb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xda,0x01,0x00,0x00,
    -0xdb,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xde,0x01,0x00,0x00,0xd9,0x01,0x00,0x00,0xda,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xd9,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xe0,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xe0,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x03,0x03,0x00,0x00,
    -0x20,0x00,0x00,0x00,0xd9,0x01,0x00,0x00,0x02,0x02,0x00,0x00,
    -0xe1,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0xe6,0x01,0x00,0x00,0x03,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xe2,0x01,0x00,0x00,0xe1,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xe6,0x01,0x00,0x00,
    -0xe1,0x01,0x00,0x00,0xe2,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xe1,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xec,0x01,0x00,0x00,0xf5,0x02,0x00,0x00,0xc8,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xee,0x01,0x00,0x00,
    -0xec,0x01,0x00,0x00,0x03,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xf0,0x01,0x00,0x00,0x3b,0x00,0x00,0x00,
    -0xc5,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xf3,0x01,0x00,0x00,0xf5,0x02,0x00,0x00,0xf2,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf4,0x01,0x00,0x00,
    -0xf0,0x01,0x00,0x00,0xf3,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xf6,0x01,0x00,0x00,0x4a,0x00,0x00,0x00,
    +0xc0,0x01,0x00,0x00,0xbe,0x01,0x00,0x00,0x06,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc2,0x01,0x00,0x00,
    +0x37,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xc4,0x01,0x00,0x00,0xf4,0x02,0x00,0x00,
    +0x43,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xc5,0x01,0x00,0x00,0xc2,0x01,0x00,0x00,0xc4,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc7,0x01,0x00,0x00,
    +0x46,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xc8,0x01,0x00,0x00,0xc5,0x01,0x00,0x00,
    +0xc7,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xca,0x01,0x00,0x00,0xc8,0x01,0x00,0x00,0x06,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xcc,0x01,0x00,0x00,
    +0xca,0x01,0x00,0x00,0xcb,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xce,0x01,0x00,0x00,0xcc,0x01,0x00,0x00,
    +0xf0,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x37,0x01,0x00,0x00,
    +0xcf,0x01,0x00,0x00,0x32,0x01,0x00,0x00,0xce,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x0c,0x01,0x00,0x00,0xd0,0x01,0x00,0x00,
    +0xcf,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0xd1,0x01,0x00,0x00,
    +0xd2,0x01,0x00,0x00,0xbc,0x01,0x00,0x00,0xc0,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0xd2,0x01,0x00,0x00,0xd0,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd4,0x01,0x00,0x00,
    +0x06,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xb2,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xb4,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xad,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xad,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xd6,0x01,0x00,0x00,0xf4,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xaa,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xac,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xd8,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xd8,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xf5,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    +0xac,0x01,0x00,0x00,0x04,0x02,0x00,0x00,0xdb,0x01,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xde,0x01,0x00,0x00,
    +0xf5,0x02,0x00,0x00,0xcb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xda,0x01,0x00,0x00,0xdb,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xde,0x01,0x00,0x00,0xd9,0x01,0x00,0x00,
    +0xda,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xd9,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xe0,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xe0,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x03,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0xd9,0x01,0x00,0x00,
    +0x02,0x02,0x00,0x00,0xe1,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0xe6,0x01,0x00,0x00,0x03,0x03,0x00,0x00,
    +0xc8,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xe2,0x01,0x00,0x00,
    +0xe1,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xe6,0x01,0x00,0x00,0xe1,0x01,0x00,0x00,0xe2,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xe1,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xec,0x01,0x00,0x00,0xf5,0x02,0x00,0x00,
     0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xf7,0x01,0x00,0x00,0xf4,0x01,0x00,0x00,0xf6,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf9,0x01,0x00,0x00,
    -0xf7,0x01,0x00,0x00,0x03,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xfb,0x01,0x00,0x00,0xf9,0x01,0x00,0x00,
    -0xfa,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xfd,0x01,0x00,0x00,0xfb,0x01,0x00,0x00,0xf0,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x37,0x01,0x00,0x00,0xfe,0x01,0x00,0x00,
    -0x63,0x01,0x00,0x00,0xfd,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x0c,0x01,0x00,0x00,0xff,0x01,0x00,0x00,0xfe,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xd1,0x01,0x00,0x00,0x00,0x02,0x00,0x00,
    -0xea,0x01,0x00,0x00,0xee,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x00,0x02,0x00,0x00,0xff,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x02,0x02,0x00,0x00,0x03,0x03,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xe0,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xe2,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xdb,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xdb,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x04,0x02,0x00,0x00,
    -0xf5,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xd8,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xda,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x06,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x06,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xf6,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0xda,0x01,0x00,0x00,
    -0x4a,0x02,0x00,0x00,0x09,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0x0c,0x02,0x00,0x00,0xf6,0x02,0x00,0x00,
    -0xcb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x08,0x02,0x00,0x00,
    -0x09,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x0c,0x02,0x00,0x00,0x07,0x02,0x00,0x00,0x08,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x07,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x0e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x0e,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xfa,0x02,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x07,0x02,0x00,0x00,0x48,0x02,0x00,0x00,
    -0x11,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0x14,0x02,0x00,0x00,0xfa,0x02,0x00,0x00,0x42,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x10,0x02,0x00,0x00,0x11,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x14,0x02,0x00,0x00,
    -0x0f,0x02,0x00,0x00,0x10,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x0f,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x16,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x16,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xfc,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x0f,0x02,0x00,0x00,0x46,0x02,0x00,0x00,0x19,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x1c,0x02,0x00,0x00,
    -0xfc,0x02,0x00,0x00,0xc8,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x18,0x02,0x00,0x00,0x19,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x1c,0x02,0x00,0x00,0x17,0x02,0x00,0x00,
    -0x18,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x17,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x1e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x1e,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xfe,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0x17,0x02,0x00,0x00,
    -0x44,0x02,0x00,0x00,0x1f,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0x24,0x02,0x00,0x00,0xfe,0x02,0x00,0x00,
    -0x44,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x20,0x02,0x00,0x00,
    -0x1f,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x24,0x02,0x00,0x00,0x1f,0x02,0x00,0x00,0x20,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x1f,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x26,0x02,0x00,0x00,0xf6,0x02,0x00,0x00,
    +0xee,0x01,0x00,0x00,0xec,0x01,0x00,0x00,0x03,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf0,0x01,0x00,0x00,
    +0x3b,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xf3,0x01,0x00,0x00,0xf5,0x02,0x00,0x00,
    +0xf2,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xf4,0x01,0x00,0x00,0xf0,0x01,0x00,0x00,0xf3,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf6,0x01,0x00,0x00,
    +0x4a,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xf7,0x01,0x00,0x00,0xf4,0x01,0x00,0x00,
    +0xf6,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xf9,0x01,0x00,0x00,0xf7,0x01,0x00,0x00,0x03,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfb,0x01,0x00,0x00,
    +0xf9,0x01,0x00,0x00,0xfa,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xfd,0x01,0x00,0x00,0xfb,0x01,0x00,0x00,
    +0xf0,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x37,0x01,0x00,0x00,
    +0xfe,0x01,0x00,0x00,0x63,0x01,0x00,0x00,0xfd,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x0c,0x01,0x00,0x00,0xff,0x01,0x00,0x00,
    +0xfe,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0xd1,0x01,0x00,0x00,
    +0x00,0x02,0x00,0x00,0xea,0x01,0x00,0x00,0xee,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x00,0x02,0x00,0x00,0xff,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x02,0x02,0x00,0x00,
    +0x03,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xe0,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xe2,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xdb,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xdb,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x04,0x02,0x00,0x00,0xf5,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xd8,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xda,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x06,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x06,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xf6,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    +0xda,0x01,0x00,0x00,0x4a,0x02,0x00,0x00,0x09,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x0c,0x02,0x00,0x00,
    +0xf6,0x02,0x00,0x00,0xcb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x08,0x02,0x00,0x00,0x09,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x0c,0x02,0x00,0x00,0x07,0x02,0x00,0x00,
    +0x08,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x07,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x0e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x0e,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xfa,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0x07,0x02,0x00,0x00,
    +0x48,0x02,0x00,0x00,0x11,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x14,0x02,0x00,0x00,0xfa,0x02,0x00,0x00,
    +0x42,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x10,0x02,0x00,0x00,
    +0x11,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x14,0x02,0x00,0x00,0x0f,0x02,0x00,0x00,0x10,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x0f,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x16,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x16,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xfc,0x02,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x0f,0x02,0x00,0x00,0x46,0x02,0x00,0x00,
    +0x19,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0x1c,0x02,0x00,0x00,0xfc,0x02,0x00,0x00,0xc8,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x18,0x02,0x00,0x00,0x19,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x1c,0x02,0x00,0x00,
    +0x17,0x02,0x00,0x00,0x18,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x17,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x1e,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x1e,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xfe,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x17,0x02,0x00,0x00,0x44,0x02,0x00,0x00,0x1f,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x24,0x02,0x00,0x00,
    +0xfe,0x02,0x00,0x00,0x44,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x20,0x02,0x00,0x00,0x1f,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x24,0x02,0x00,0x00,0x1f,0x02,0x00,0x00,
    +0x20,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x1f,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x26,0x02,0x00,0x00,
    +0xf6,0x02,0x00,0x00,0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x28,0x02,0x00,0x00,0x26,0x02,0x00,0x00,
    +0xfc,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x2a,0x02,0x00,0x00,0x28,0x02,0x00,0x00,0x29,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2c,0x02,0x00,0x00,
    +0xfa,0x02,0x00,0x00,0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x2d,0x02,0x00,0x00,0x2a,0x02,0x00,0x00,
    +0x2c,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x2f,0x02,0x00,0x00,0x2d,0x02,0x00,0x00,0xfe,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x33,0x02,0x00,0x00,
    +0x2c,0x02,0x00,0x00,0xfe,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xd1,0x01,0x00,0x00,0x34,0x02,0x00,0x00,0xbc,0x01,0x00,0x00,
    +0x33,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x0c,0x01,0x00,0x00,
    +0x35,0x02,0x00,0x00,0x34,0x02,0x00,0x00,0x73,0x00,0x04,0x00,
    +0xcf,0x00,0x00,0x00,0x36,0x02,0x00,0x00,0x35,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xd1,0x01,0x00,0x00,0x3b,0x02,0x00,0x00,
    +0xea,0x01,0x00,0x00,0x28,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x0c,0x01,0x00,0x00,0x3c,0x02,0x00,0x00,0x3b,0x02,0x00,0x00,
    +0x73,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0x3d,0x02,0x00,0x00,
    +0x3c,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,
    +0x3f,0x02,0x00,0x00,0xd5,0x00,0x00,0x00,0x2f,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0x40,0x02,0x00,0x00,
    +0x3f,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0xcf,0x00,0x00,0x00,
    +0x41,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,
    +0x36,0x02,0x00,0x00,0x3d,0x02,0x00,0x00,0x40,0x02,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x3f,0x02,0x00,0x00,0x41,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x44,0x02,0x00,0x00,
    +0xfe,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x1e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x20,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x19,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x19,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x46,0x02,0x00,0x00,0xfc,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x16,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x18,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x11,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x11,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x48,0x02,0x00,0x00,0xfa,0x02,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x0e,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x10,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x09,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x09,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4a,0x02,0x00,0x00,
    +0xf6,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x06,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x08,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xa5,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xa5,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x4c,0x02,0x00,0x00,0xf0,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xa2,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xa4,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xe0,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xe0,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4e,0x02,0x00,0x00,
    +0xd5,0x02,0x00,0x00,0x4e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xdd,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xdf,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x53,0x02,0x00,0x00,
    +0x37,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x54,0x02,0x00,0x00,0xb4,0x00,0x00,0x00,
    +0x53,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x59,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5a,0x02,0x00,0x00,
    +0xa3,0x00,0x00,0x00,0x59,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x5c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x5c,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xd6,0x02,0x00,0x00,
    +0x20,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0xc5,0x02,0x00,0x00,
    +0x5f,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0x62,0x02,0x00,0x00,0xd6,0x02,0x00,0x00,0xcb,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x5e,0x02,0x00,0x00,0x5f,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x62,0x02,0x00,0x00,
    +0x5d,0x02,0x00,0x00,0x5e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x5d,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x64,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x64,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xd7,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x5d,0x02,0x00,0x00,0xc3,0x02,0x00,0x00,0x67,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x6a,0x02,0x00,0x00,
    +0xd7,0x02,0x00,0x00,0x42,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x66,0x02,0x00,0x00,0x67,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x6a,0x02,0x00,0x00,0x65,0x02,0x00,0x00,
    +0x66,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x65,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6e,0x02,0x00,0x00,
    +0xd7,0x02,0x00,0x00,0x43,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x6f,0x02,0x00,0x00,0x54,0x02,0x00,0x00,
    +0x6e,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x71,0x02,0x00,0x00,0x46,0x00,0x00,0x00,0x44,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x72,0x02,0x00,0x00,
    +0x6f,0x02,0x00,0x00,0x71,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x76,0x02,0x00,0x00,0xd6,0x02,0x00,0x00,
    +0xf2,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x77,0x02,0x00,0x00,0x5a,0x02,0x00,0x00,0x76,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x79,0x02,0x00,0x00,
    +0x4a,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x7a,0x02,0x00,0x00,0x77,0x02,0x00,0x00,
    +0x79,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x7c,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x7c,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xd9,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x65,0x02,0x00,0x00,0xc1,0x02,0x00,0x00,0x7f,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x82,0x02,0x00,0x00,
    +0xd9,0x02,0x00,0x00,0xc8,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x7e,0x02,0x00,0x00,0x7f,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x82,0x02,0x00,0x00,0x7d,0x02,0x00,0x00,
    +0x7e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x7d,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x86,0x02,0x00,0x00,
    +0x7a,0x02,0x00,0x00,0xd9,0x02,0x00,0x00,0xae,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x89,0x02,0x00,0x00,0x86,0x02,0x00,0x00,
    +0xd3,0x02,0x00,0x00,0xf7,0x00,0x03,0x00,0x8b,0x02,0x00,0x00,
    +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x89,0x02,0x00,0x00,
    +0x8a,0x02,0x00,0x00,0x8b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x8a,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x7e,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x8b,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x97,0x00,0x00,0x00,0x8f,0x02,0x00,0x00,0x90,0x00,0x00,0x00,
    +0x86,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,
    +0x90,0x02,0x00,0x00,0x8f,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x92,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x92,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xdf,0x02,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x8b,0x02,0x00,0x00,0xbf,0x02,0x00,0x00,
    +0x93,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0x98,0x02,0x00,0x00,0xdf,0x02,0x00,0x00,0x44,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x94,0x02,0x00,0x00,0x93,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x98,0x02,0x00,0x00,
    +0x93,0x02,0x00,0x00,0x94,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x93,0x02,0x00,0x00,0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,
    +0x9e,0x02,0x00,0x00,0x90,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x9f,0x02,0x00,0x00,
    +0x9e,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
    +0xa1,0x02,0x00,0x00,0x13,0x00,0x00,0x00,0xa0,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa2,0x02,0x00,0x00,
    +0xa1,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xa3,0x02,0x00,0x00,0x9f,0x02,0x00,0x00,0xa2,0x02,0x00,0x00,
    +0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,0xa5,0x02,0x00,0x00,
    +0x90,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0xa6,0x02,0x00,0x00,0xa5,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0xa8,0x02,0x00,0x00,
    +0x13,0x00,0x00,0x00,0xa7,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0xa9,0x02,0x00,0x00,0xa8,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xaa,0x02,0x00,0x00,
    +0xa6,0x02,0x00,0x00,0xa9,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xab,0x02,0x00,0x00,0xa3,0x02,0x00,0x00,
    +0xaa,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xad,0x02,0x00,0x00,0xab,0x02,0x00,0x00,0x72,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xaf,0x02,0x00,0x00,
    +0xad,0x02,0x00,0x00,0xdf,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xb1,0x02,0x00,0x00,0xd6,0x02,0x00,0x00,
     0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x28,0x02,0x00,0x00,0x26,0x02,0x00,0x00,0xfc,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2a,0x02,0x00,0x00,
    -0x28,0x02,0x00,0x00,0x29,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x2c,0x02,0x00,0x00,0xfa,0x02,0x00,0x00,
    +0xb3,0x02,0x00,0x00,0xb1,0x02,0x00,0x00,0xd9,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb5,0x02,0x00,0x00,
    +0xb3,0x02,0x00,0x00,0xb4,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xb7,0x02,0x00,0x00,0xd7,0x02,0x00,0x00,
     0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x2d,0x02,0x00,0x00,0x2a,0x02,0x00,0x00,0x2c,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2f,0x02,0x00,0x00,
    -0x2d,0x02,0x00,0x00,0xfe,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x33,0x02,0x00,0x00,0x2c,0x02,0x00,0x00,
    -0xfe,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xd1,0x01,0x00,0x00,
    -0x34,0x02,0x00,0x00,0xbc,0x01,0x00,0x00,0x33,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x0c,0x01,0x00,0x00,0x35,0x02,0x00,0x00,
    -0x34,0x02,0x00,0x00,0x73,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    -0x36,0x02,0x00,0x00,0x35,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xd1,0x01,0x00,0x00,0x3b,0x02,0x00,0x00,0xea,0x01,0x00,0x00,
    -0x28,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x0c,0x01,0x00,0x00,
    -0x3c,0x02,0x00,0x00,0x3b,0x02,0x00,0x00,0x73,0x00,0x04,0x00,
    -0xcf,0x00,0x00,0x00,0x3d,0x02,0x00,0x00,0x3c,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,0x3f,0x02,0x00,0x00,
    -0xd5,0x00,0x00,0x00,0x2f,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xcf,0x00,0x00,0x00,0x40,0x02,0x00,0x00,0x3f,0x02,0x00,0x00,
    -0x0c,0x00,0x08,0x00,0xcf,0x00,0x00,0x00,0x41,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x36,0x02,0x00,0x00,
    -0x3d,0x02,0x00,0x00,0x40,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x3f,0x02,0x00,0x00,0x41,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x44,0x02,0x00,0x00,0xfe,0x02,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x1e,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x20,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x19,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x19,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x46,0x02,0x00,0x00,
    -0xfc,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x16,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x18,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x11,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x11,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x48,0x02,0x00,0x00,0xfa,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x0e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x10,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x09,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x09,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x4a,0x02,0x00,0x00,0xf6,0x02,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x06,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x08,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xa5,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xa5,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4c,0x02,0x00,0x00,
    -0xf0,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xa2,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xa4,0x01,0x00,0x00,
    -0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0xa0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xe0,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xe0,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x4e,0x02,0x00,0x00,0xd5,0x02,0x00,0x00,
    -0x4e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xdd,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xdf,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x53,0x02,0x00,0x00,0x37,0x00,0x00,0x00,
    -0x35,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x54,0x02,0x00,0x00,0xb4,0x00,0x00,0x00,0x53,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x59,0x02,0x00,0x00,
    -0x3b,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x5a,0x02,0x00,0x00,0xa3,0x00,0x00,0x00,
    -0x59,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x5c,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x5c,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xd6,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    -0xdf,0x00,0x00,0x00,0xc5,0x02,0x00,0x00,0x5f,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x62,0x02,0x00,0x00,
    -0xd6,0x02,0x00,0x00,0xcb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x5e,0x02,0x00,0x00,0x5f,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x62,0x02,0x00,0x00,0x5d,0x02,0x00,0x00,
    -0x5e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x5d,0x02,0x00,0x00,
    +0xb8,0x02,0x00,0x00,0xb5,0x02,0x00,0x00,0xb7,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xba,0x02,0x00,0x00,
    +0xb8,0x02,0x00,0x00,0xdf,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xd8,0x00,0x00,0x00,0xbb,0x02,0x00,0x00,0xd5,0x00,0x00,0x00,
    +0xba,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    +0xbc,0x02,0x00,0x00,0xbb,0x02,0x00,0x00,0x41,0x00,0x06,0x00,
    +0x87,0x01,0x00,0x00,0xbd,0x02,0x00,0x00,0x9c,0x02,0x00,0x00,
    +0x15,0x00,0x00,0x00,0xaf,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0xbd,0x02,0x00,0x00,0xbc,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xbf,0x02,0x00,0x00,0xdf,0x02,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x92,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x94,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x7f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x7f,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc1,0x02,0x00,0x00,
    +0xd9,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x7c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x7e,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x67,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x67,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xc3,0x02,0x00,0x00,0xd7,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,
     0xf9,0x00,0x02,0x00,0x64,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x64,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xd7,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0x5d,0x02,0x00,0x00,
    -0xc3,0x02,0x00,0x00,0x67,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0x6a,0x02,0x00,0x00,0xd7,0x02,0x00,0x00,
    -0x42,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x66,0x02,0x00,0x00,
    -0x67,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x6a,0x02,0x00,0x00,0x65,0x02,0x00,0x00,0x66,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x65,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x6e,0x02,0x00,0x00,0xd7,0x02,0x00,0x00,
    -0x43,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x6f,0x02,0x00,0x00,0x54,0x02,0x00,0x00,0x6e,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x71,0x02,0x00,0x00,
    -0x46,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x72,0x02,0x00,0x00,0x6f,0x02,0x00,0x00,
    -0x71,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x76,0x02,0x00,0x00,0xd6,0x02,0x00,0x00,0xf2,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x77,0x02,0x00,0x00,
    -0x5a,0x02,0x00,0x00,0x76,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x79,0x02,0x00,0x00,0x4a,0x00,0x00,0x00,
    -0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x7a,0x02,0x00,0x00,0x77,0x02,0x00,0x00,0x79,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x7c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x7c,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xd9,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0x65,0x02,0x00,0x00,
    -0xc1,0x02,0x00,0x00,0x7f,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0x82,0x02,0x00,0x00,0xd9,0x02,0x00,0x00,
    -0xc8,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x7e,0x02,0x00,0x00,
    -0x7f,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x82,0x02,0x00,0x00,0x7d,0x02,0x00,0x00,0x7e,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x7d,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x86,0x02,0x00,0x00,0x7a,0x02,0x00,0x00,
    -0xd9,0x02,0x00,0x00,0xae,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0x89,0x02,0x00,0x00,0x86,0x02,0x00,0x00,0xd3,0x02,0x00,0x00,
    -0xf7,0x00,0x03,0x00,0x8b,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x89,0x02,0x00,0x00,0x8a,0x02,0x00,0x00,
    -0x8b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x8a,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x7e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x8b,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x97,0x00,0x00,0x00,
    -0x8f,0x02,0x00,0x00,0x90,0x00,0x00,0x00,0x86,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,0x90,0x02,0x00,0x00,
    -0x8f,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x92,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x92,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xdf,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x8b,0x02,0x00,0x00,0xbf,0x02,0x00,0x00,0x93,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x98,0x02,0x00,0x00,
    -0xdf,0x02,0x00,0x00,0x44,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x94,0x02,0x00,0x00,0x93,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x98,0x02,0x00,0x00,0x93,0x02,0x00,0x00,
    -0x94,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x93,0x02,0x00,0x00,
    -0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,0x9e,0x02,0x00,0x00,
    -0x90,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x9f,0x02,0x00,0x00,0x9e,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0xa1,0x02,0x00,0x00,
    -0x13,0x00,0x00,0x00,0xa0,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0xa2,0x02,0x00,0x00,0xa1,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa3,0x02,0x00,0x00,
    -0x9f,0x02,0x00,0x00,0xa2,0x02,0x00,0x00,0x51,0x00,0x05,0x00,
    -0x8b,0x00,0x00,0x00,0xa5,0x02,0x00,0x00,0x90,0x02,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0xa6,0x02,0x00,0x00,0xa5,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x16,0x00,0x00,0x00,0xa8,0x02,0x00,0x00,0x13,0x00,0x00,0x00,
    -0xa7,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0xa9,0x02,0x00,0x00,0xa8,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xaa,0x02,0x00,0x00,0xa6,0x02,0x00,0x00,
    -0xa9,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xab,0x02,0x00,0x00,0xa3,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xad,0x02,0x00,0x00,
    -0xab,0x02,0x00,0x00,0x72,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xaf,0x02,0x00,0x00,0xad,0x02,0x00,0x00,
    -0xdf,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xb1,0x02,0x00,0x00,0xd6,0x02,0x00,0x00,0xc8,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb3,0x02,0x00,0x00,
    -0xb1,0x02,0x00,0x00,0xd9,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xb5,0x02,0x00,0x00,0xb3,0x02,0x00,0x00,
    -0xb4,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xb7,0x02,0x00,0x00,0xd7,0x02,0x00,0x00,0x44,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb8,0x02,0x00,0x00,
    -0xb5,0x02,0x00,0x00,0xb7,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xba,0x02,0x00,0x00,0xb8,0x02,0x00,0x00,
    -0xdf,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,
    -0xbb,0x02,0x00,0x00,0xd5,0x00,0x00,0x00,0xba,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0xbc,0x02,0x00,0x00,
    -0xbb,0x02,0x00,0x00,0x41,0x00,0x06,0x00,0x87,0x01,0x00,0x00,
    -0xbd,0x02,0x00,0x00,0x9c,0x02,0x00,0x00,0x15,0x00,0x00,0x00,
    -0xaf,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0xbd,0x02,0x00,0x00,
    -0xbc,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xbf,0x02,0x00,0x00,0xdf,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x92,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x94,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x7f,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x7f,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xc1,0x02,0x00,0x00,0xd9,0x02,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x7c,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x7e,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x67,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x67,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc3,0x02,0x00,0x00,
    -0xd7,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x64,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x66,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x5f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x5f,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xc5,0x02,0x00,0x00,0xd6,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x5c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x5e,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xc6,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xc6,0x02,0x00,0x00,0xfd,0x00,0x01,0x00,
    -0x38,0x00,0x01,0x00,
    +0x66,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x5f,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x5f,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xc5,0x02,0x00,0x00,0xd6,0x02,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x5c,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x5e,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xc6,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xc6,0x02,0x00,0x00,
    +0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
     };
    -const uint64_t matmul_id_q8_0_f32_len = 11080;
    +const uint64_t matmul_id_q8_0_f32_len = 11060;
     
     unsigned char matmul_id_q8_0_f32_aligned_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
    @@ -76603,9 +80313,9 @@ unsigned char matmul_id_q8_0_f32_fp32_data[] = {
     0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
     0x10,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x4f,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x54,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x59,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
     0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x5e,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    @@ -76704,7 +80414,7 @@ unsigned char matmul_id_q8_0_f32_fp32_data[] = {
     0x06,0x00,0x00,0x00,0x3f,0x01,0x00,0x00,0x51,0x00,0x00,0x00,
     0x3e,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x40,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    -0x3f,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x3f,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x41,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
     0x40,0x01,0x00,0x00,0x4e,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
    @@ -76736,7 +80446,7 @@ unsigned char matmul_id_q8_0_f32_fp32_data[] = {
     0x06,0x00,0x00,0x00,0x94,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
     0x93,0x01,0x00,0x00,0x4e,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x97,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x4e,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x9a,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
     0x4e,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0xb5,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    @@ -76903,7 +80613,7 @@ unsigned char matmul_id_q8_0_f32_fp32_data[] = {
     0xb7,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xb9,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,
    -0xb9,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xb9,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
     0xbe,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xbe,0x00,0x00,0x00,
     0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xcd,0x02,0x00,0x00,
     0x20,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,
    @@ -76944,442 +80654,440 @@ unsigned char matmul_id_q8_0_f32_fp32_data[] = {
     0x55,0x00,0x00,0x00,0xdf,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,0xf1,0x00,0x00,0x00,
     0xb7,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xf5,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0xf5,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,
     0xe3,0x02,0x00,0x00,0xf5,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,
     0x50,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xfe,0x00,0x00,0x00,0xf1,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x00,0x01,0x00,0x00,
    -0x50,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,
    -0x00,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x05,0x01,0x00,0x00,0xf8,0x00,0x00,0x00,0x04,0x01,0x00,0x00,
    -0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x09,0x01,0x00,0x00,
    -0xf8,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x0a,0x01,0x00,0x00,0x09,0x01,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x41,0x00,0x07,0x00,0x16,0x01,0x00,0x00,
    -0x17,0x01,0x00,0x00,0x14,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    -0x05,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x0c,0x01,0x00,0x00,0x18,0x01,0x00,0x00,0x17,0x01,0x00,0x00,
    -0x73,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0x19,0x01,0x00,0x00,
    -0x18,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x1f,0x01,0x00,0x00,
    -0x20,0x01,0x00,0x00,0x14,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    -0x05,0x01,0x00,0x00,0x9a,0x00,0x00,0x00,0x0a,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x0d,0x01,0x00,0x00,0x21,0x01,0x00,0x00,
    -0x20,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x14,0x00,0x00,0x00,
    -0x22,0x01,0x00,0x00,0x21,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,
    -0xcf,0x00,0x00,0x00,0x23,0x01,0x00,0x00,0x22,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x26,0x01,0x00,0x00,
    -0x0a,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x1f,0x01,0x00,0x00,0x27,0x01,0x00,0x00,0x14,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x01,0x01,0x00,0x00,
    +0xfe,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0xf8,0x00,0x00,0x00,
    +0x04,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x09,0x01,0x00,0x00,0xf8,0x00,0x00,0x00,0x08,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0a,0x01,0x00,0x00,
    +0x09,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x41,0x00,0x07,0x00,
    +0x16,0x01,0x00,0x00,0x17,0x01,0x00,0x00,0x14,0x01,0x00,0x00,
    +0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0x15,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x0c,0x01,0x00,0x00,0x18,0x01,0x00,0x00,
    +0x17,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    +0x19,0x01,0x00,0x00,0x18,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x1f,0x01,0x00,0x00,0x20,0x01,0x00,0x00,0x14,0x01,0x00,0x00,
     0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0x26,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x0d,0x01,0x00,0x00,
    -0x28,0x01,0x00,0x00,0x27,0x01,0x00,0x00,0x72,0x00,0x04,0x00,
    -0x14,0x00,0x00,0x00,0x29,0x01,0x00,0x00,0x28,0x01,0x00,0x00,
    -0x6f,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0x2a,0x01,0x00,0x00,
    -0x29,0x01,0x00,0x00,0x50,0x00,0x05,0x00,0x1a,0x01,0x00,0x00,
    -0x2b,0x01,0x00,0x00,0x23,0x01,0x00,0x00,0x2a,0x01,0x00,0x00,
    -0x8e,0x00,0x05,0x00,0x1a,0x01,0x00,0x00,0x2d,0x01,0x00,0x00,
    -0x2b,0x01,0x00,0x00,0x19,0x01,0x00,0x00,0x51,0x00,0x05,0x00,
    -0xcf,0x00,0x00,0x00,0x35,0x01,0x00,0x00,0x2d,0x01,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x36,0x01,0x00,0x00,
    -0x37,0x01,0x00,0x00,0x32,0x01,0x00,0x00,0x01,0x01,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x37,0x01,0x00,0x00,0x35,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x39,0x01,0x00,0x00,
    -0x01,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,0x51,0x00,0x05,0x00,
    -0xcf,0x00,0x00,0x00,0x3b,0x01,0x00,0x00,0x2d,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x36,0x01,0x00,0x00,
    -0x3c,0x01,0x00,0x00,0x32,0x01,0x00,0x00,0x39,0x01,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x3c,0x01,0x00,0x00,0x3b,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x43,0x01,0x00,0x00,
    -0xdf,0x02,0x00,0x00,0x41,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xe6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xe8,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x45,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x45,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xe0,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,
    -0x96,0x01,0x00,0x00,0x48,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0x4b,0x01,0x00,0x00,0xe0,0x02,0x00,0x00,
    -0xa2,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x47,0x01,0x00,0x00,
    -0x48,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x4b,0x01,0x00,0x00,0x46,0x01,0x00,0x00,0x47,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x46,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x50,0x01,0x00,0x00,0xa3,0x00,0x00,0x00,
    -0x5f,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x52,0x01,0x00,0x00,0x50,0x01,0x00,0x00,0xe0,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x55,0x01,0x00,0x00,
    -0x52,0x01,0x00,0x00,0xcc,0x02,0x00,0x00,0xf7,0x00,0x03,0x00,
    -0x57,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x55,0x01,0x00,0x00,0x56,0x01,0x00,0x00,0x89,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x56,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x97,0x00,0x00,0x00,0x5b,0x01,0x00,0x00,0x90,0x00,0x00,0x00,
    -0x52,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,
    -0x5c,0x01,0x00,0x00,0x5b,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x64,0x01,0x00,0x00,0x5f,0x00,0x00,0x00,
    -0xe0,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x66,0x01,0x00,0x00,0x64,0x01,0x00,0x00,0x65,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x68,0x01,0x00,0x00,
    -0x66,0x01,0x00,0x00,0x5a,0x00,0x00,0x00,0x51,0x00,0x05,0x00,
    -0x8b,0x00,0x00,0x00,0x70,0x01,0x00,0x00,0x5c,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x71,0x01,0x00,0x00,0x70,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x16,0x00,0x00,0x00,0x73,0x01,0x00,0x00,0x13,0x00,0x00,0x00,
    -0x72,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x74,0x01,0x00,0x00,0x73,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x75,0x01,0x00,0x00,0x71,0x01,0x00,0x00,
    -0x74,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x76,0x01,0x00,0x00,0xe7,0x02,0x00,0x00,0x75,0x01,0x00,0x00,
    -0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,0x78,0x01,0x00,0x00,
    -0x5c,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x79,0x01,0x00,0x00,0x78,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0x7b,0x01,0x00,0x00,
    -0x13,0x00,0x00,0x00,0x7a,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x7c,0x01,0x00,0x00,0x7b,0x01,0x00,0x00,
    -0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7d,0x01,0x00,0x00,
    -0x79,0x01,0x00,0x00,0x7c,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x16,0x00,0x00,0x00,0x7f,0x01,0x00,0x00,0x13,0x00,0x00,0x00,
    -0x7e,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x80,0x01,0x00,0x00,0x7f,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x81,0x01,0x00,0x00,0x7d,0x01,0x00,0x00,
    -0x80,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x82,0x01,0x00,0x00,0x76,0x01,0x00,0x00,0x81,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x84,0x01,0x00,0x00,
    -0x82,0x01,0x00,0x00,0x5a,0x00,0x00,0x00,0x41,0x00,0x06,0x00,
    -0x85,0x01,0x00,0x00,0x86,0x01,0x00,0x00,0x6c,0x01,0x00,0x00,
    -0x15,0x00,0x00,0x00,0x84,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xcf,0x00,0x00,0x00,0x87,0x01,0x00,0x00,0x86,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x36,0x01,0x00,0x00,0x88,0x01,0x00,0x00,
    -0x61,0x01,0x00,0x00,0x68,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x88,0x01,0x00,0x00,0x87,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x57,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x89,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8c,0x01,0x00,0x00,
    +0x0a,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x0d,0x01,0x00,0x00,
    +0x21,0x01,0x00,0x00,0x20,0x01,0x00,0x00,0x72,0x00,0x04,0x00,
    +0x14,0x00,0x00,0x00,0x22,0x01,0x00,0x00,0x21,0x01,0x00,0x00,
    +0x6f,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0x23,0x01,0x00,0x00,
    +0x22,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x26,0x01,0x00,0x00,0x0a,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x1f,0x01,0x00,0x00,0x27,0x01,0x00,0x00,
    +0x14,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x05,0x01,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0x26,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x0d,0x01,0x00,0x00,0x28,0x01,0x00,0x00,0x27,0x01,0x00,0x00,
    +0x72,0x00,0x04,0x00,0x14,0x00,0x00,0x00,0x29,0x01,0x00,0x00,
    +0x28,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    +0x2a,0x01,0x00,0x00,0x29,0x01,0x00,0x00,0x50,0x00,0x05,0x00,
    +0x1a,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,0x23,0x01,0x00,0x00,
    +0x2a,0x01,0x00,0x00,0x8e,0x00,0x05,0x00,0x1a,0x01,0x00,0x00,
    +0x2d,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,0x19,0x01,0x00,0x00,
    +0x51,0x00,0x05,0x00,0xcf,0x00,0x00,0x00,0x35,0x01,0x00,0x00,
    +0x2d,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x36,0x01,0x00,0x00,0x37,0x01,0x00,0x00,0x32,0x01,0x00,0x00,
    +0x01,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x37,0x01,0x00,0x00,
    +0x35,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x39,0x01,0x00,0x00,0x01,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,
    +0x51,0x00,0x05,0x00,0xcf,0x00,0x00,0x00,0x3b,0x01,0x00,0x00,
    +0x2d,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x36,0x01,0x00,0x00,0x3c,0x01,0x00,0x00,0x32,0x01,0x00,0x00,
    +0x39,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x3c,0x01,0x00,0x00,
    +0x3b,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x43,0x01,0x00,0x00,0xdf,0x02,0x00,0x00,0x41,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xe6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xe8,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x45,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x45,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xe0,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    +0xe8,0x00,0x00,0x00,0x96,0x01,0x00,0x00,0x48,0x01,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x4b,0x01,0x00,0x00,
    +0xe0,0x02,0x00,0x00,0xa2,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x47,0x01,0x00,0x00,0x48,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x4b,0x01,0x00,0x00,0x46,0x01,0x00,0x00,
    +0x47,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x46,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x50,0x01,0x00,0x00,
    +0xa3,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x52,0x01,0x00,0x00,0x50,0x01,0x00,0x00,
    +0xe0,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0x55,0x01,0x00,0x00,0x52,0x01,0x00,0x00,0xcc,0x02,0x00,0x00,
    +0xf7,0x00,0x03,0x00,0x57,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x55,0x01,0x00,0x00,0x56,0x01,0x00,0x00,
    +0x89,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x56,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x97,0x00,0x00,0x00,0x5b,0x01,0x00,0x00,
    +0x90,0x00,0x00,0x00,0x52,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x8c,0x00,0x00,0x00,0x5c,0x01,0x00,0x00,0x5b,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x64,0x01,0x00,0x00,
     0x5f,0x00,0x00,0x00,0xe0,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x8e,0x01,0x00,0x00,0x8c,0x01,0x00,0x00,
    -0x8d,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x90,0x01,0x00,0x00,0x8e,0x01,0x00,0x00,0x5a,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x36,0x01,0x00,0x00,0x91,0x01,0x00,0x00,
    -0x61,0x01,0x00,0x00,0x90,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x91,0x01,0x00,0x00,0xd7,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x57,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x57,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x48,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x48,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x96,0x01,0x00,0x00,0xe0,0x02,0x00,0x00,0x94,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x45,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x47,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x99,0x01,0x00,0x00,0xe3,0x02,0x00,0x00,
    -0x97,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x9c,0x01,0x00,0x00,0xe7,0x02,0x00,0x00,0x9a,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x9e,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x9e,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xe9,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0x47,0x01,0x00,0x00,
    -0x45,0x02,0x00,0x00,0xa1,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0xa4,0x01,0x00,0x00,0xe9,0x02,0x00,0x00,
    -0x4e,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xa0,0x01,0x00,0x00,
    -0xa1,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xa4,0x01,0x00,0x00,0x9f,0x01,0x00,0x00,0xa0,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x9f,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xa6,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xa6,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xed,0x02,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x9f,0x01,0x00,0x00,0xd1,0x01,0x00,0x00,
    -0xa9,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0xac,0x01,0x00,0x00,0xed,0x02,0x00,0x00,0x42,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xa8,0x01,0x00,0x00,0xa9,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xac,0x01,0x00,0x00,
    -0xa7,0x01,0x00,0x00,0xa8,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xa7,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xae,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xae,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xff,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    -0xa7,0x01,0x00,0x00,0xcf,0x01,0x00,0x00,0xaf,0x01,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xb4,0x01,0x00,0x00,
    -0xff,0x02,0x00,0x00,0x44,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xb0,0x01,0x00,0x00,0xaf,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xb4,0x01,0x00,0x00,0xaf,0x01,0x00,0x00,
    -0xb0,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xaf,0x01,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xba,0x01,0x00,0x00,
    -0xed,0x02,0x00,0x00,0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xbc,0x01,0x00,0x00,0xba,0x01,0x00,0x00,
    -0xff,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xbe,0x01,0x00,0x00,0x37,0x00,0x00,0x00,0x35,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc0,0x01,0x00,0x00,
    -0xed,0x02,0x00,0x00,0x43,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xc1,0x01,0x00,0x00,0xbe,0x01,0x00,0x00,
    -0xc0,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xc3,0x01,0x00,0x00,0x46,0x00,0x00,0x00,0x44,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc4,0x01,0x00,0x00,
    -0xc1,0x01,0x00,0x00,0xc3,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xc6,0x01,0x00,0x00,0xc4,0x01,0x00,0x00,
    -0xff,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xc8,0x01,0x00,0x00,0xc6,0x01,0x00,0x00,0xc7,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xca,0x01,0x00,0x00,
    -0xc8,0x01,0x00,0x00,0xe9,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x36,0x01,0x00,0x00,0xcb,0x01,0x00,0x00,0x32,0x01,0x00,0x00,
    -0xca,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    -0xcc,0x01,0x00,0x00,0xcb,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xd8,0x00,0x00,0x00,0xcd,0x01,0x00,0x00,0xb8,0x01,0x00,0x00,
    -0xbc,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xcd,0x01,0x00,0x00,
    -0xcc,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xcf,0x01,0x00,0x00,0xff,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xae,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xb0,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xa9,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xa9,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xd1,0x01,0x00,0x00,0xed,0x02,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xa6,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xa8,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xd3,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xd3,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xee,0x02,0x00,0x00,
    -0x20,0x00,0x00,0x00,0xa8,0x01,0x00,0x00,0xff,0x01,0x00,0x00,
    -0xd6,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0xd9,0x01,0x00,0x00,0xee,0x02,0x00,0x00,0xcb,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xd5,0x01,0x00,0x00,0xd6,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xd9,0x01,0x00,0x00,
    -0xd4,0x01,0x00,0x00,0xd5,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xd4,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xdb,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xdb,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xfc,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    -0xd4,0x01,0x00,0x00,0xfd,0x01,0x00,0x00,0xdc,0x01,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xe1,0x01,0x00,0x00,
    -0xfc,0x02,0x00,0x00,0xc8,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xdd,0x01,0x00,0x00,0xdc,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xe1,0x01,0x00,0x00,0xdc,0x01,0x00,0x00,
    -0xdd,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xdc,0x01,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe7,0x01,0x00,0x00,
    -0xee,0x02,0x00,0x00,0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xe9,0x01,0x00,0x00,0xe7,0x01,0x00,0x00,
    -0xfc,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xeb,0x01,0x00,0x00,0x3b,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xee,0x01,0x00,0x00,
    -0xee,0x02,0x00,0x00,0xed,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xef,0x01,0x00,0x00,0xeb,0x01,0x00,0x00,
    -0xee,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xf1,0x01,0x00,0x00,0x4a,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf2,0x01,0x00,0x00,
    -0xef,0x01,0x00,0x00,0xf1,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xf4,0x01,0x00,0x00,0xf2,0x01,0x00,0x00,
    -0xfc,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xf6,0x01,0x00,0x00,0xf4,0x01,0x00,0x00,0xf5,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf8,0x01,0x00,0x00,
    -0xf6,0x01,0x00,0x00,0xe9,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x36,0x01,0x00,0x00,0xf9,0x01,0x00,0x00,0x61,0x01,0x00,0x00,
    -0xf8,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    -0xfa,0x01,0x00,0x00,0xf9,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xd8,0x00,0x00,0x00,0xfb,0x01,0x00,0x00,0xe5,0x01,0x00,0x00,
    -0xe9,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xfb,0x01,0x00,0x00,
    -0xfa,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xfd,0x01,0x00,0x00,0xfc,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xdb,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xdd,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xd6,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xd6,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xff,0x01,0x00,0x00,0xee,0x02,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xd3,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xd5,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x01,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x01,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xef,0x02,0x00,0x00,
    -0x20,0x00,0x00,0x00,0xd5,0x01,0x00,0x00,0x43,0x02,0x00,0x00,
    -0x04,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0x07,0x02,0x00,0x00,0xef,0x02,0x00,0x00,0xcb,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x03,0x02,0x00,0x00,0x04,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x07,0x02,0x00,0x00,
    -0x02,0x02,0x00,0x00,0x03,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x02,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x09,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x09,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xf3,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x02,0x02,0x00,0x00,0x41,0x02,0x00,0x00,0x0c,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x0f,0x02,0x00,0x00,
    -0xf3,0x02,0x00,0x00,0x42,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x0b,0x02,0x00,0x00,0x0c,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x0f,0x02,0x00,0x00,0x0a,0x02,0x00,0x00,
    -0x0b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x0a,0x02,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x66,0x01,0x00,0x00,0x64,0x01,0x00,0x00,
    +0x65,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x68,0x01,0x00,0x00,0x66,0x01,0x00,0x00,0x5a,0x00,0x00,0x00,
    +0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,0x70,0x01,0x00,0x00,
    +0x5c,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x71,0x01,0x00,0x00,0x70,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0x73,0x01,0x00,0x00,
    +0x13,0x00,0x00,0x00,0x72,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x74,0x01,0x00,0x00,0x73,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x75,0x01,0x00,0x00,
    +0x71,0x01,0x00,0x00,0x74,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x76,0x01,0x00,0x00,0xe7,0x02,0x00,0x00,
    +0x75,0x01,0x00,0x00,0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,
    +0x78,0x01,0x00,0x00,0x5c,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x79,0x01,0x00,0x00,
    +0x78,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
    +0x7b,0x01,0x00,0x00,0x13,0x00,0x00,0x00,0x7a,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x7c,0x01,0x00,0x00,
    +0x7b,0x01,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x7d,0x01,0x00,0x00,0x79,0x01,0x00,0x00,0x7c,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0x7f,0x01,0x00,0x00,
    +0x13,0x00,0x00,0x00,0x7e,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x80,0x01,0x00,0x00,0x7f,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x81,0x01,0x00,0x00,
    +0x7d,0x01,0x00,0x00,0x80,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x82,0x01,0x00,0x00,0x76,0x01,0x00,0x00,
    +0x81,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x84,0x01,0x00,0x00,0x82,0x01,0x00,0x00,0x5a,0x00,0x00,0x00,
    +0x41,0x00,0x06,0x00,0x85,0x01,0x00,0x00,0x86,0x01,0x00,0x00,
    +0x6c,0x01,0x00,0x00,0x15,0x00,0x00,0x00,0x84,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0x87,0x01,0x00,0x00,
    +0x86,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x36,0x01,0x00,0x00,
    +0x88,0x01,0x00,0x00,0x61,0x01,0x00,0x00,0x68,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x88,0x01,0x00,0x00,0x87,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x57,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x89,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x8c,0x01,0x00,0x00,0x5f,0x00,0x00,0x00,0xe0,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8e,0x01,0x00,0x00,
    +0x8c,0x01,0x00,0x00,0x8d,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x90,0x01,0x00,0x00,0x8e,0x01,0x00,0x00,
    +0x5a,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x36,0x01,0x00,0x00,
    +0x91,0x01,0x00,0x00,0x61,0x01,0x00,0x00,0x90,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x91,0x01,0x00,0x00,0xd7,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x57,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x57,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x48,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x48,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x96,0x01,0x00,0x00,0xe0,0x02,0x00,0x00,
    +0x94,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x45,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x47,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,
    +0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x99,0x01,0x00,0x00,
    +0xe3,0x02,0x00,0x00,0x97,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x9c,0x01,0x00,0x00,0xe7,0x02,0x00,0x00,
    +0x9a,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x9e,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x9e,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xe9,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x47,0x01,0x00,0x00,0x45,0x02,0x00,0x00,0xa1,0x01,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0xa4,0x01,0x00,0x00,
    +0xe9,0x02,0x00,0x00,0x4e,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xa0,0x01,0x00,0x00,0xa1,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xa4,0x01,0x00,0x00,0x9f,0x01,0x00,0x00,
    +0xa0,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x9f,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xa6,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xa6,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xed,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0x9f,0x01,0x00,0x00,
    +0xd1,0x01,0x00,0x00,0xa9,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0xac,0x01,0x00,0x00,0xed,0x02,0x00,0x00,
    +0x42,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xa8,0x01,0x00,0x00,
    +0xa9,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xac,0x01,0x00,0x00,0xa7,0x01,0x00,0x00,0xa8,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xa7,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xae,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xae,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xff,0x02,0x00,0x00,
    +0x20,0x00,0x00,0x00,0xa7,0x01,0x00,0x00,0xcf,0x01,0x00,0x00,
    +0xaf,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0xb4,0x01,0x00,0x00,0xff,0x02,0x00,0x00,0x44,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xb0,0x01,0x00,0x00,0xaf,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xb4,0x01,0x00,0x00,
    +0xaf,0x01,0x00,0x00,0xb0,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xaf,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xba,0x01,0x00,0x00,0xed,0x02,0x00,0x00,0x44,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbc,0x01,0x00,0x00,
    +0xba,0x01,0x00,0x00,0xff,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xbe,0x01,0x00,0x00,0x37,0x00,0x00,0x00,
    +0x35,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xc0,0x01,0x00,0x00,0xed,0x02,0x00,0x00,0x43,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc1,0x01,0x00,0x00,
    +0xbe,0x01,0x00,0x00,0xc0,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xc3,0x01,0x00,0x00,0x46,0x00,0x00,0x00,
    +0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xc4,0x01,0x00,0x00,0xc1,0x01,0x00,0x00,0xc3,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc6,0x01,0x00,0x00,
    +0xc4,0x01,0x00,0x00,0xff,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xc8,0x01,0x00,0x00,0xc6,0x01,0x00,0x00,
    +0xc7,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xca,0x01,0x00,0x00,0xc8,0x01,0x00,0x00,0xe9,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x36,0x01,0x00,0x00,0xcb,0x01,0x00,0x00,
    +0x32,0x01,0x00,0x00,0xca,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xcf,0x00,0x00,0x00,0xcc,0x01,0x00,0x00,0xcb,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,0xcd,0x01,0x00,0x00,
    +0xb8,0x01,0x00,0x00,0xbc,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0xcd,0x01,0x00,0x00,0xcc,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xcf,0x01,0x00,0x00,0xff,0x02,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xae,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xb0,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xa9,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xa9,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd1,0x01,0x00,0x00,
    +0xed,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xa6,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xa8,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xd3,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xd3,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xee,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0xa8,0x01,0x00,0x00,
    +0xff,0x01,0x00,0x00,0xd6,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0xd9,0x01,0x00,0x00,0xee,0x02,0x00,0x00,
    +0xcb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xd5,0x01,0x00,0x00,
    +0xd6,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xd9,0x01,0x00,0x00,0xd4,0x01,0x00,0x00,0xd5,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xd4,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xdb,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xdb,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xfc,0x02,0x00,0x00,
    +0x20,0x00,0x00,0x00,0xd4,0x01,0x00,0x00,0xfd,0x01,0x00,0x00,
    +0xdc,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0xe1,0x01,0x00,0x00,0xfc,0x02,0x00,0x00,0xc8,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xdd,0x01,0x00,0x00,0xdc,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xe1,0x01,0x00,0x00,
    +0xdc,0x01,0x00,0x00,0xdd,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xdc,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xe7,0x01,0x00,0x00,0xee,0x02,0x00,0x00,0xc8,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe9,0x01,0x00,0x00,
    +0xe7,0x01,0x00,0x00,0xfc,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xeb,0x01,0x00,0x00,0x3b,0x00,0x00,0x00,
    +0xc5,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xee,0x01,0x00,0x00,0xee,0x02,0x00,0x00,0xed,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xef,0x01,0x00,0x00,
    +0xeb,0x01,0x00,0x00,0xee,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xf1,0x01,0x00,0x00,0x4a,0x00,0x00,0x00,
    +0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xf2,0x01,0x00,0x00,0xef,0x01,0x00,0x00,0xf1,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf4,0x01,0x00,0x00,
    +0xf2,0x01,0x00,0x00,0xfc,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xf6,0x01,0x00,0x00,0xf4,0x01,0x00,0x00,
    +0xf5,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xf8,0x01,0x00,0x00,0xf6,0x01,0x00,0x00,0xe9,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x36,0x01,0x00,0x00,0xf9,0x01,0x00,0x00,
    +0x61,0x01,0x00,0x00,0xf8,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xcf,0x00,0x00,0x00,0xfa,0x01,0x00,0x00,0xf9,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,0xfb,0x01,0x00,0x00,
    +0xe5,0x01,0x00,0x00,0xe9,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0xfb,0x01,0x00,0x00,0xfa,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xfd,0x01,0x00,0x00,0xfc,0x02,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xdb,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xdd,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xd6,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xd6,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xff,0x01,0x00,0x00,
    +0xee,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xd3,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xd5,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x01,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x01,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xef,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0xd5,0x01,0x00,0x00,
    +0x43,0x02,0x00,0x00,0x04,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x07,0x02,0x00,0x00,0xef,0x02,0x00,0x00,
    +0xcb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x03,0x02,0x00,0x00,
    +0x04,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x07,0x02,0x00,0x00,0x02,0x02,0x00,0x00,0x03,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x02,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x09,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x09,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xf3,0x02,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x02,0x02,0x00,0x00,0x41,0x02,0x00,0x00,
    +0x0c,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0x0f,0x02,0x00,0x00,0xf3,0x02,0x00,0x00,0x42,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x0b,0x02,0x00,0x00,0x0c,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x0f,0x02,0x00,0x00,
    +0x0a,0x02,0x00,0x00,0x0b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x0a,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x11,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x11,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xf5,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x0a,0x02,0x00,0x00,0x3f,0x02,0x00,0x00,0x14,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x17,0x02,0x00,0x00,
    +0xf5,0x02,0x00,0x00,0xc8,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x13,0x02,0x00,0x00,0x14,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x17,0x02,0x00,0x00,0x12,0x02,0x00,0x00,
    +0x13,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x12,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x19,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x19,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xf7,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0x12,0x02,0x00,0x00,
    +0x3d,0x02,0x00,0x00,0x1a,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x1f,0x02,0x00,0x00,0xf7,0x02,0x00,0x00,
    +0x44,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x1b,0x02,0x00,0x00,
    +0x1a,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x1f,0x02,0x00,0x00,0x1a,0x02,0x00,0x00,0x1b,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x1a,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x21,0x02,0x00,0x00,0xef,0x02,0x00,0x00,
    +0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x23,0x02,0x00,0x00,0x21,0x02,0x00,0x00,0xf5,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x25,0x02,0x00,0x00,
    +0x23,0x02,0x00,0x00,0x24,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x27,0x02,0x00,0x00,0xf3,0x02,0x00,0x00,
    +0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x28,0x02,0x00,0x00,0x25,0x02,0x00,0x00,0x27,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2a,0x02,0x00,0x00,
    +0x28,0x02,0x00,0x00,0xf7,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x2e,0x02,0x00,0x00,0x27,0x02,0x00,0x00,
    +0xf7,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,
    +0x2f,0x02,0x00,0x00,0xb8,0x01,0x00,0x00,0x2e,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0x30,0x02,0x00,0x00,
    +0x2f,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,
    +0x35,0x02,0x00,0x00,0xe5,0x01,0x00,0x00,0x23,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0x36,0x02,0x00,0x00,
    +0x35,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,
    +0x38,0x02,0x00,0x00,0xd5,0x00,0x00,0x00,0x2a,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0x39,0x02,0x00,0x00,
    +0x38,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0xcf,0x00,0x00,0x00,
    +0x3a,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,
    +0x30,0x02,0x00,0x00,0x36,0x02,0x00,0x00,0x39,0x02,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x38,0x02,0x00,0x00,0x3a,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3d,0x02,0x00,0x00,
    +0xf7,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x19,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x1b,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x14,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x14,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x3f,0x02,0x00,0x00,0xf5,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,
     0xf9,0x00,0x02,0x00,0x11,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x11,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xf5,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0x0a,0x02,0x00,0x00,
    -0x3f,0x02,0x00,0x00,0x14,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0x17,0x02,0x00,0x00,0xf5,0x02,0x00,0x00,
    -0xc8,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x13,0x02,0x00,0x00,
    -0x14,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x17,0x02,0x00,0x00,0x12,0x02,0x00,0x00,0x13,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x12,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x19,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x19,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xf7,0x02,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x12,0x02,0x00,0x00,0x3d,0x02,0x00,0x00,
    -0x1a,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0x1f,0x02,0x00,0x00,0xf7,0x02,0x00,0x00,0x44,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x1b,0x02,0x00,0x00,0x1a,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x1f,0x02,0x00,0x00,
    -0x1a,0x02,0x00,0x00,0x1b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x1a,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x21,0x02,0x00,0x00,0xef,0x02,0x00,0x00,0xc8,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x23,0x02,0x00,0x00,
    -0x21,0x02,0x00,0x00,0xf5,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x25,0x02,0x00,0x00,0x23,0x02,0x00,0x00,
    -0x24,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x27,0x02,0x00,0x00,0xf3,0x02,0x00,0x00,0x44,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x28,0x02,0x00,0x00,
    -0x25,0x02,0x00,0x00,0x27,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x2a,0x02,0x00,0x00,0x28,0x02,0x00,0x00,
    -0xf7,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x2e,0x02,0x00,0x00,0x27,0x02,0x00,0x00,0xf7,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,0x2f,0x02,0x00,0x00,
    -0xb8,0x01,0x00,0x00,0x2e,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xcf,0x00,0x00,0x00,0x30,0x02,0x00,0x00,0x2f,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,0x35,0x02,0x00,0x00,
    -0xe5,0x01,0x00,0x00,0x23,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xcf,0x00,0x00,0x00,0x36,0x02,0x00,0x00,0x35,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,0x38,0x02,0x00,0x00,
    -0xd5,0x00,0x00,0x00,0x2a,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xcf,0x00,0x00,0x00,0x39,0x02,0x00,0x00,0x38,0x02,0x00,0x00,
    -0x0c,0x00,0x08,0x00,0xcf,0x00,0x00,0x00,0x3a,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x30,0x02,0x00,0x00,
    -0x36,0x02,0x00,0x00,0x39,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x38,0x02,0x00,0x00,0x3a,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x3d,0x02,0x00,0x00,0xf7,0x02,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x19,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x1b,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x14,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x14,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3f,0x02,0x00,0x00,
    -0xf5,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x11,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x13,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x0c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x0c,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x41,0x02,0x00,0x00,0xf3,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x09,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x0b,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x04,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x04,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x43,0x02,0x00,0x00,0xef,0x02,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x01,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x03,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xa1,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xa1,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x45,0x02,0x00,0x00,
    -0xe9,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x9e,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xa0,0x01,0x00,0x00,
    -0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0xa0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xe0,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xe0,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x47,0x02,0x00,0x00,0xce,0x02,0x00,0x00,
    -0x4e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xdd,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xdf,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x4c,0x02,0x00,0x00,0x37,0x00,0x00,0x00,
    -0x35,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x4d,0x02,0x00,0x00,0xb4,0x00,0x00,0x00,0x4c,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x52,0x02,0x00,0x00,
    -0x3b,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x53,0x02,0x00,0x00,0xa3,0x00,0x00,0x00,
    -0x52,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x55,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x55,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xcf,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    -0xdf,0x00,0x00,0x00,0xbe,0x02,0x00,0x00,0x58,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x5b,0x02,0x00,0x00,
    -0xcf,0x02,0x00,0x00,0xcb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x57,0x02,0x00,0x00,0x58,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x5b,0x02,0x00,0x00,0x56,0x02,0x00,0x00,
    -0x57,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x56,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x5d,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x5d,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xd0,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0x56,0x02,0x00,0x00,
    -0xbc,0x02,0x00,0x00,0x60,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0x63,0x02,0x00,0x00,0xd0,0x02,0x00,0x00,
    -0x42,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x5f,0x02,0x00,0x00,
    -0x60,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x63,0x02,0x00,0x00,0x5e,0x02,0x00,0x00,0x5f,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x5e,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x67,0x02,0x00,0x00,0xd0,0x02,0x00,0x00,
    -0x43,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x68,0x02,0x00,0x00,0x4d,0x02,0x00,0x00,0x67,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6a,0x02,0x00,0x00,
    -0x46,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x6b,0x02,0x00,0x00,0x68,0x02,0x00,0x00,
    -0x6a,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x6f,0x02,0x00,0x00,0xcf,0x02,0x00,0x00,0xed,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x70,0x02,0x00,0x00,
    -0x53,0x02,0x00,0x00,0x6f,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x72,0x02,0x00,0x00,0x4a,0x00,0x00,0x00,
    +0x13,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x0c,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x0c,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x41,0x02,0x00,0x00,0xf3,0x02,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x09,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x0b,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x04,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x04,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x43,0x02,0x00,0x00,
    +0xef,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x01,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x03,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xa1,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xa1,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x45,0x02,0x00,0x00,0xe9,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x9e,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xa0,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xe0,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xe0,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x47,0x02,0x00,0x00,
    +0xce,0x02,0x00,0x00,0x4e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xdd,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xdf,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4c,0x02,0x00,0x00,
    +0x37,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x4d,0x02,0x00,0x00,0xb4,0x00,0x00,0x00,
    +0x4c,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x52,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x53,0x02,0x00,0x00,
    +0xa3,0x00,0x00,0x00,0x52,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x55,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x55,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xcf,0x02,0x00,0x00,
    +0x20,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0xbe,0x02,0x00,0x00,
    +0x58,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0x5b,0x02,0x00,0x00,0xcf,0x02,0x00,0x00,0xcb,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x57,0x02,0x00,0x00,0x58,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x5b,0x02,0x00,0x00,
    +0x56,0x02,0x00,0x00,0x57,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x56,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x5d,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x5d,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xd0,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x56,0x02,0x00,0x00,0xbc,0x02,0x00,0x00,0x60,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x63,0x02,0x00,0x00,
    +0xd0,0x02,0x00,0x00,0x42,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x5f,0x02,0x00,0x00,0x60,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x63,0x02,0x00,0x00,0x5e,0x02,0x00,0x00,
    +0x5f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x5e,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x67,0x02,0x00,0x00,
    +0xd0,0x02,0x00,0x00,0x43,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x68,0x02,0x00,0x00,0x4d,0x02,0x00,0x00,
    +0x67,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x6a,0x02,0x00,0x00,0x46,0x00,0x00,0x00,0x44,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6b,0x02,0x00,0x00,
    +0x68,0x02,0x00,0x00,0x6a,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x6f,0x02,0x00,0x00,0xcf,0x02,0x00,0x00,
    +0xed,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x70,0x02,0x00,0x00,0x53,0x02,0x00,0x00,0x6f,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x72,0x02,0x00,0x00,
    +0x4a,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x73,0x02,0x00,0x00,0x70,0x02,0x00,0x00,
    +0x72,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x75,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x75,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xd2,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x5e,0x02,0x00,0x00,0xba,0x02,0x00,0x00,0x78,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x7b,0x02,0x00,0x00,
    +0xd2,0x02,0x00,0x00,0xc8,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x77,0x02,0x00,0x00,0x78,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x7b,0x02,0x00,0x00,0x76,0x02,0x00,0x00,
    +0x77,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x76,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7f,0x02,0x00,0x00,
    +0x73,0x02,0x00,0x00,0xd2,0x02,0x00,0x00,0xae,0x00,0x05,0x00,
    +0x6b,0x00,0x00,0x00,0x82,0x02,0x00,0x00,0x7f,0x02,0x00,0x00,
    +0xcc,0x02,0x00,0x00,0xf7,0x00,0x03,0x00,0x84,0x02,0x00,0x00,
    +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x82,0x02,0x00,0x00,
    +0x83,0x02,0x00,0x00,0x84,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x83,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x77,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x84,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x97,0x00,0x00,0x00,0x88,0x02,0x00,0x00,0x90,0x00,0x00,0x00,
    +0x7f,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,
    +0x89,0x02,0x00,0x00,0x88,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x8b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x8b,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xd8,0x02,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x84,0x02,0x00,0x00,0xb8,0x02,0x00,0x00,
    +0x8c,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    +0x91,0x02,0x00,0x00,0xd8,0x02,0x00,0x00,0x44,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x8d,0x02,0x00,0x00,0x8c,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x91,0x02,0x00,0x00,
    +0x8c,0x02,0x00,0x00,0x8d,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x8c,0x02,0x00,0x00,0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,
    +0x97,0x02,0x00,0x00,0x89,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x98,0x02,0x00,0x00,
    +0x97,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
    +0x9a,0x02,0x00,0x00,0x13,0x00,0x00,0x00,0x99,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x9b,0x02,0x00,0x00,
    +0x9a,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x9c,0x02,0x00,0x00,0x98,0x02,0x00,0x00,0x9b,0x02,0x00,0x00,
    +0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,0x9e,0x02,0x00,0x00,
    +0x89,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x9f,0x02,0x00,0x00,0x9e,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0xa1,0x02,0x00,0x00,
    +0x13,0x00,0x00,0x00,0xa0,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0xa2,0x02,0x00,0x00,0xa1,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa3,0x02,0x00,0x00,
    +0x9f,0x02,0x00,0x00,0xa2,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xa4,0x02,0x00,0x00,0x9c,0x02,0x00,0x00,
    +0xa3,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xa6,0x02,0x00,0x00,0xa4,0x02,0x00,0x00,0x6b,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa8,0x02,0x00,0x00,
    +0xa6,0x02,0x00,0x00,0xd8,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xaa,0x02,0x00,0x00,0xcf,0x02,0x00,0x00,
     0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x73,0x02,0x00,0x00,0x70,0x02,0x00,0x00,0x72,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x75,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x75,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xd2,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0x5e,0x02,0x00,0x00,
    -0xba,0x02,0x00,0x00,0x78,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0x6b,0x00,0x00,0x00,0x7b,0x02,0x00,0x00,0xd2,0x02,0x00,0x00,
    -0xc8,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x77,0x02,0x00,0x00,
    -0x78,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x7b,0x02,0x00,0x00,0x76,0x02,0x00,0x00,0x77,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x76,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x7f,0x02,0x00,0x00,0x73,0x02,0x00,0x00,
    -0xd2,0x02,0x00,0x00,0xae,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,
    -0x82,0x02,0x00,0x00,0x7f,0x02,0x00,0x00,0xcc,0x02,0x00,0x00,
    -0xf7,0x00,0x03,0x00,0x84,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x82,0x02,0x00,0x00,0x83,0x02,0x00,0x00,
    -0x84,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x83,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x77,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x84,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x97,0x00,0x00,0x00,
    -0x88,0x02,0x00,0x00,0x90,0x00,0x00,0x00,0x7f,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,0x89,0x02,0x00,0x00,
    -0x88,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x8b,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x8b,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xd8,0x02,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x84,0x02,0x00,0x00,0xb8,0x02,0x00,0x00,0x8c,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0x6b,0x00,0x00,0x00,0x91,0x02,0x00,0x00,
    -0xd8,0x02,0x00,0x00,0x44,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x8d,0x02,0x00,0x00,0x8c,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x91,0x02,0x00,0x00,0x8c,0x02,0x00,0x00,
    -0x8d,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x8c,0x02,0x00,0x00,
    -0x51,0x00,0x05,0x00,0x8b,0x00,0x00,0x00,0x97,0x02,0x00,0x00,
    -0x89,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x98,0x02,0x00,0x00,0x97,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0x9a,0x02,0x00,0x00,
    -0x13,0x00,0x00,0x00,0x99,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x9b,0x02,0x00,0x00,0x9a,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9c,0x02,0x00,0x00,
    -0x98,0x02,0x00,0x00,0x9b,0x02,0x00,0x00,0x51,0x00,0x05,0x00,
    -0x8b,0x00,0x00,0x00,0x9e,0x02,0x00,0x00,0x89,0x02,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x9f,0x02,0x00,0x00,0x9e,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x16,0x00,0x00,0x00,0xa1,0x02,0x00,0x00,0x13,0x00,0x00,0x00,
    -0xa0,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0xa2,0x02,0x00,0x00,0xa1,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xa3,0x02,0x00,0x00,0x9f,0x02,0x00,0x00,
    -0xa2,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xa4,0x02,0x00,0x00,0x9c,0x02,0x00,0x00,0xa3,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa6,0x02,0x00,0x00,
    -0xa4,0x02,0x00,0x00,0x6b,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xa8,0x02,0x00,0x00,0xa6,0x02,0x00,0x00,
    -0xd8,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xaa,0x02,0x00,0x00,0xcf,0x02,0x00,0x00,0xc8,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xac,0x02,0x00,0x00,
    -0xaa,0x02,0x00,0x00,0xd2,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xae,0x02,0x00,0x00,0xac,0x02,0x00,0x00,
    -0xad,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xb0,0x02,0x00,0x00,0xd0,0x02,0x00,0x00,0x44,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb1,0x02,0x00,0x00,
    -0xae,0x02,0x00,0x00,0xb0,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xb3,0x02,0x00,0x00,0xb1,0x02,0x00,0x00,
    -0xd8,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,
    -0xb4,0x02,0x00,0x00,0xd5,0x00,0x00,0x00,0xb3,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0xb5,0x02,0x00,0x00,
    -0xb4,0x02,0x00,0x00,0x41,0x00,0x06,0x00,0x85,0x01,0x00,0x00,
    -0xb6,0x02,0x00,0x00,0x95,0x02,0x00,0x00,0x15,0x00,0x00,0x00,
    -0xa8,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0xb6,0x02,0x00,0x00,
    -0xb5,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xb8,0x02,0x00,0x00,0xd8,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x8b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x8d,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x78,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x78,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xba,0x02,0x00,0x00,0xd2,0x02,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x75,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x77,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x60,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x60,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbc,0x02,0x00,0x00,
    -0xd0,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x5d,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x5f,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x58,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x58,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xbe,0x02,0x00,0x00,0xcf,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x55,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x57,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xbf,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xbf,0x02,0x00,0x00,0xfd,0x00,0x01,0x00,
    -0x38,0x00,0x01,0x00,
    +0xac,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,0xd2,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xae,0x02,0x00,0x00,
    +0xac,0x02,0x00,0x00,0xad,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xb0,0x02,0x00,0x00,0xd0,0x02,0x00,0x00,
    +0x44,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xb1,0x02,0x00,0x00,0xae,0x02,0x00,0x00,0xb0,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb3,0x02,0x00,0x00,
    +0xb1,0x02,0x00,0x00,0xd8,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xd8,0x00,0x00,0x00,0xb4,0x02,0x00,0x00,0xd5,0x00,0x00,0x00,
    +0xb3,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,
    +0xb5,0x02,0x00,0x00,0xb4,0x02,0x00,0x00,0x41,0x00,0x06,0x00,
    +0x85,0x01,0x00,0x00,0xb6,0x02,0x00,0x00,0x95,0x02,0x00,0x00,
    +0x15,0x00,0x00,0x00,0xa8,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0xb6,0x02,0x00,0x00,0xb5,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xb8,0x02,0x00,0x00,0xd8,0x02,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x8b,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x8d,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x78,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x78,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xba,0x02,0x00,0x00,
    +0xd2,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x75,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x77,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x60,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x60,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xbc,0x02,0x00,0x00,0xd0,0x02,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x5d,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x5f,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x58,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x58,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xbe,0x02,0x00,0x00,0xcf,0x02,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x55,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x57,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xbf,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xbf,0x02,0x00,0x00,
    +0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
     };
    -const uint64_t matmul_id_q8_0_f32_fp32_len = 10960;
    +const uint64_t matmul_id_q8_0_f32_fp32_len = 10940;
     
     unsigned char matmul_q2_k_f32_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
    @@ -77524,9 +81232,9 @@ unsigned char matmul_q2_k_f32_data[] = {
     0x63,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x6d,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x6d,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x73,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x6d,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
     0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    @@ -77618,7 +81326,7 @@ unsigned char matmul_q2_k_f32_data[] = {
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x67,0x01,0x00,0x00,
     0x51,0x00,0x00,0x00,0x66,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x68,0x01,0x00,0x00,
    -0x84,0x00,0x00,0x00,0x67,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x84,0x00,0x00,0x00,0x67,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x69,0x01,0x00,0x00,
     0x86,0x00,0x00,0x00,0x68,0x01,0x00,0x00,0x6d,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x87,0x01,0x00,0x00,
    @@ -77649,7 +81357,7 @@ unsigned char matmul_q2_k_f32_data[] = {
     0x6d,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0xb5,0x01,0x00,0x00,0x08,0x01,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0xb6,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x6d,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0xb9,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
     0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0xd4,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    @@ -77761,566 +81469,565 @@ unsigned char matmul_q2_k_f32_data[] = {
     0x88,0x00,0x00,0x00,0x87,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x8a,0x00,0x00,0x00,0x48,0x00,0x00,0x00,
     0x3a,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x8d,0x00,0x00,0x00,0x8a,0x00,0x00,0x00,0x83,0x00,0x00,0x00,
    -0x0c,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x26,0x00,0x00,0x00,0x88,0x00,0x00,0x00,
    -0x8d,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    -0x92,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x91,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x93,0x00,0x00,0x00,
    -0x92,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x94,0x00,0x00,0x00,0x33,0x00,0x00,0x00,0x93,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x96,0x00,0x00,0x00,
    -0x43,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x17,0x00,0x00,0x00,0x98,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    -0x97,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x99,0x00,0x00,0x00,0x98,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,0x96,0x00,0x00,0x00,
    -0x99,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x9b,0x00,0x00,0x00,0x94,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,
    -0x9b,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x9e,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    -0xa2,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0xa1,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,
    -0xa2,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xa4,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,
    -0x4b,0x00,0x00,0x00,0xa6,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x17,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    -0xa8,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0xaa,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xab,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,
    -0xaa,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xac,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,0xab,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xae,0x00,0x00,0x00,
    -0xac,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0xae,0x00,0x00,0x00,
    -0x3a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xb1,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xb1,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xf1,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0x05,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xc2,0x00,0x00,0x00,
    -0xf1,0x02,0x00,0x00,0xc0,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xb3,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xc2,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,
    -0xb3,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xb2,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,0xcd,0x00,0x00,0x00,
    -0xc9,0x00,0x00,0x00,0xf1,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0xcd,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0xf1,0x02,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xb1,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xb3,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xd3,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xd3,0x00,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x0a,0x03,0x00,0x00,
    -0xaf,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,0xbb,0x01,0x00,0x00,
    -0xd6,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x06,0x03,0x00,0x00,0x9e,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,
    -0xb8,0x01,0x00,0x00,0xd6,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xf2,0x02,0x00,0x00,0x84,0x00,0x00,0x00,
    -0xb3,0x00,0x00,0x00,0x69,0x02,0x00,0x00,0xd6,0x00,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xda,0x00,0x00,0x00,
    -0xf2,0x02,0x00,0x00,0x8e,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xd5,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xda,0x00,0x00,0x00,0xd4,0x00,0x00,0x00,
    -0xd5,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xd4,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xdc,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xdc,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x02,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0xd4,0x00,0x00,0x00,
    -0x6b,0x01,0x00,0x00,0xdd,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0xe2,0x00,0x00,0x00,0x02,0x03,0x00,0x00,
    -0x38,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xde,0x00,0x00,0x00,
    -0xdd,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xe2,0x00,0x00,0x00,0xdd,0x00,0x00,0x00,0xde,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xdd,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,0x74,0x00,0x00,0x00,
    -0x02,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xea,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,0x99,0x00,0x00,0x00,
    -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,
    -0xea,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xec,0x00,0x00,0x00,0x06,0x03,0x00,0x00,
    -0xeb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xee,0x00,0x00,0x00,0xec,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,
    -0xe7,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xf7,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,
    -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
    -0xee,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,0x89,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0xee,0x00,0x00,0x00,
    -0xfa,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x02,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,0x01,0x01,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x04,0x01,0x00,0x00,
    -0x02,0x01,0x00,0x00,0x03,0x01,0x00,0x00,0x89,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x07,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,
    -0x06,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x08,0x01,0x00,0x00,0x07,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x09,0x01,0x00,0x00,
    -0x04,0x01,0x00,0x00,0x08,0x01,0x00,0x00,0x86,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x0d,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,
    -0x0c,0x01,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x10,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,0x01,0x01,0x00,0x00,
    -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x11,0x01,0x00,0x00,
    -0x10,0x01,0x00,0x00,0x06,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x12,0x01,0x00,0x00,0x11,0x01,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0x22,0x01,0x00,0x00,
    -0x23,0x01,0x00,0x00,0x1f,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    -0xfb,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x09,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x16,0x01,0x00,0x00,0x24,0x01,0x00,0x00,
    -0x23,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x25,0x01,0x00,0x00,0x24,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x28,0x01,0x00,0x00,0x09,0x01,0x00,0x00,
    -0x3a,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0x22,0x01,0x00,0x00,
    -0x29,0x01,0x00,0x00,0x1f,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    -0xfb,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x28,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x16,0x01,0x00,0x00,0x2a,0x01,0x00,0x00,
    -0x29,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x2b,0x01,0x00,0x00,0x2a,0x01,0x00,0x00,0x50,0x00,0x05,0x00,
    -0x13,0x01,0x00,0x00,0x2c,0x01,0x00,0x00,0x25,0x01,0x00,0x00,
    -0x2b,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x22,0x01,0x00,0x00,
    -0x30,0x01,0x00,0x00,0x1f,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    -0xfb,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x0d,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x16,0x01,0x00,0x00,0x31,0x01,0x00,0x00,
    -0x30,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x32,0x01,0x00,0x00,0x31,0x01,0x00,0x00,0x41,0x00,0x07,0x00,
    -0x37,0x01,0x00,0x00,0x38,0x01,0x00,0x00,0x1f,0x01,0x00,0x00,
    -0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x1a,0x01,0x00,0x00,0x39,0x01,0x00,0x00,
    -0x38,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x33,0x01,0x00,0x00,
    -0x3a,0x01,0x00,0x00,0x39,0x01,0x00,0x00,0x51,0x00,0x05,0x00,
    -0xc3,0x00,0x00,0x00,0x3d,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,
    -0x00,0x00,0x00,0x00,0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x40,0x01,0x00,0x00,0x32,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,
    -0x70,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x41,0x01,0x00,0x00,
    -0x40,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0xc3,0x00,0x00,0x00,
    -0x42,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,0x41,0x01,0x00,0x00,
    -0x50,0x00,0x05,0x00,0x13,0x01,0x00,0x00,0x45,0x01,0x00,0x00,
    -0x12,0x01,0x00,0x00,0x12,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,
    -0x13,0x01,0x00,0x00,0x46,0x01,0x00,0x00,0x2c,0x01,0x00,0x00,
    -0x45,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x13,0x01,0x00,0x00,
    -0x49,0x01,0x00,0x00,0x46,0x01,0x00,0x00,0x4d,0x03,0x00,0x00,
    -0x70,0x00,0x04,0x00,0x33,0x01,0x00,0x00,0x4a,0x01,0x00,0x00,
    -0x49,0x01,0x00,0x00,0x8e,0x00,0x05,0x00,0x33,0x01,0x00,0x00,
    -0x4b,0x01,0x00,0x00,0x4a,0x01,0x00,0x00,0x42,0x01,0x00,0x00,
    -0x51,0x00,0x05,0x00,0xc3,0x00,0x00,0x00,0x4d,0x01,0x00,0x00,
    -0x3a,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xc2,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x4f,0x01,0x00,0x00,0x32,0x01,0x00,0x00,
    -0xa8,0x00,0x00,0x00,0x70,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    -0x50,0x01,0x00,0x00,0x4f,0x01,0x00,0x00,0x85,0x00,0x05,0x00,
    -0xc3,0x00,0x00,0x00,0x51,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,
    -0x50,0x01,0x00,0x00,0x50,0x00,0x05,0x00,0x33,0x01,0x00,0x00,
    -0x52,0x01,0x00,0x00,0x51,0x01,0x00,0x00,0x51,0x01,0x00,0x00,
    -0x83,0x00,0x05,0x00,0x33,0x01,0x00,0x00,0x53,0x01,0x00,0x00,
    -0x4b,0x01,0x00,0x00,0x52,0x01,0x00,0x00,0x51,0x00,0x05,0x00,
    -0xc3,0x00,0x00,0x00,0x5b,0x01,0x00,0x00,0x53,0x01,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x73,0x00,0x04,0x00,0x19,0x01,0x00,0x00,
    -0x5c,0x01,0x00,0x00,0x5b,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x5d,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,0x58,0x01,0x00,0x00,
    -0xf7,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0x5e,0x01,0x00,0x00,
    -0x5c,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x60,0x01,0x00,0x00,0xf7,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    -0x51,0x00,0x05,0x00,0xc3,0x00,0x00,0x00,0x62,0x01,0x00,0x00,
    -0x53,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x73,0x00,0x04,0x00,
    -0x19,0x01,0x00,0x00,0x63,0x01,0x00,0x00,0x62,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x5d,0x01,0x00,0x00,0x64,0x01,0x00,0x00,
    -0x58,0x01,0x00,0x00,0x60,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x64,0x01,0x00,0x00,0x63,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x6b,0x01,0x00,0x00,0x02,0x03,0x00,0x00,
    -0x69,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xdc,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xde,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x6d,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x6d,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x03,0x03,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0xde,0x00,0x00,0x00,0xb4,0x01,0x00,0x00,
    -0x70,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0x73,0x01,0x00,0x00,0x03,0x03,0x00,0x00,0xa6,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x6f,0x01,0x00,0x00,0x70,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x73,0x01,0x00,0x00,
    -0x6e,0x01,0x00,0x00,0x6f,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x6e,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x77,0x01,0x00,0x00,0xa7,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x79,0x01,0x00,0x00,
    -0x77,0x01,0x00,0x00,0x03,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x17,0x00,0x00,0x00,0x7a,0x01,0x00,0x00,0x14,0x00,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x7b,0x01,0x00,0x00,0x7a,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0x7c,0x01,0x00,0x00,0x79,0x01,0x00,0x00,
    -0x7b,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,0x7e,0x01,0x00,0x00,
    -0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x7c,0x01,0x00,0x00,
    -0x7d,0x01,0x00,0x00,0x7e,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x7d,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x81,0x01,0x00,0x00,0xf2,0x02,0x00,0x00,0x79,0x00,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x83,0x01,0x00,0x00,
    -0x81,0x01,0x00,0x00,0x8e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x7e,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x7e,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0xc1,0x00,0x00,0x00,0x84,0x01,0x00,0x00,
    -0x7c,0x01,0x00,0x00,0x6e,0x01,0x00,0x00,0x83,0x01,0x00,0x00,
    -0x7d,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,0x86,0x01,0x00,0x00,
    -0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x84,0x01,0x00,0x00,
    -0x85,0x01,0x00,0x00,0xa6,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x85,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x8e,0x01,0x00,0x00,0x7e,0x00,0x00,0x00,0x03,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x90,0x01,0x00,0x00,
    -0x8e,0x01,0x00,0x00,0x8f,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x92,0x01,0x00,0x00,0x90,0x01,0x00,0x00,
    -0x79,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x9d,0x01,0x00,0x00,0x8e,0x01,0x00,0x00,0xaa,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9e,0x01,0x00,0x00,
    -0x0a,0x03,0x00,0x00,0x9d,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xa0,0x01,0x00,0x00,0x9e,0x01,0x00,0x00,
    -0x79,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xa1,0x01,0x00,0x00,
    -0xa2,0x01,0x00,0x00,0x96,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    -0xa0,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    -0xa3,0x01,0x00,0x00,0xa2,0x01,0x00,0x00,0x73,0x00,0x04,0x00,
    -0x19,0x01,0x00,0x00,0xa4,0x01,0x00,0x00,0xa3,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x5d,0x01,0x00,0x00,0xa5,0x01,0x00,0x00,
    -0x8b,0x01,0x00,0x00,0x92,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0xa5,0x01,0x00,0x00,0xa4,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x86,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xa6,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa9,0x01,0x00,0x00,
    -0x7e,0x00,0x00,0x00,0x03,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xab,0x01,0x00,0x00,0xa9,0x01,0x00,0x00,
    -0xaa,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xad,0x01,0x00,0x00,0xab,0x01,0x00,0x00,0x79,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x5d,0x01,0x00,0x00,0xaf,0x01,0x00,0x00,
    -0x8b,0x01,0x00,0x00,0xad,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0xaf,0x01,0x00,0x00,0xae,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x86,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x86,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x70,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x70,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xb4,0x01,0x00,0x00,0x03,0x03,0x00,0x00,0xb2,0x01,0x00,0x00,
    +0x8d,0x00,0x00,0x00,0x8a,0x00,0x00,0x00,0x83,0x00,0x00,0x00,
    +0x0c,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x26,0x00,0x00,0x00,0x88,0x00,0x00,0x00,
    +0x8d,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    +0x92,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x91,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x93,0x00,0x00,0x00,
    +0x92,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x94,0x00,0x00,0x00,0x33,0x00,0x00,0x00,0x93,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x96,0x00,0x00,0x00,
    +0x43,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x17,0x00,0x00,0x00,0x98,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    +0x97,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x99,0x00,0x00,0x00,0x98,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,0x96,0x00,0x00,0x00,
    +0x99,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x9b,0x00,0x00,0x00,0x94,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,
    +0x9b,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x9e,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    +0xa2,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0xa1,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,
    +0xa2,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xa4,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,
    +0x4b,0x00,0x00,0x00,0xa6,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x17,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    +0xa8,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0xaa,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xab,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,
    +0xaa,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xac,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,0xab,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xae,0x00,0x00,0x00,
    +0xac,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0xae,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xb1,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xb1,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xf1,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x05,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xc2,0x00,0x00,0x00,
    +0xf1,0x02,0x00,0x00,0xc0,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xb3,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xc2,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,
    +0xb3,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xb2,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,0xcd,0x00,0x00,0x00,
    +0xc9,0x00,0x00,0x00,0xf1,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0xcd,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0xf1,0x02,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xb1,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xb3,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xd3,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xd3,0x00,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x0a,0x03,0x00,0x00,
    +0xaf,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,0xbb,0x01,0x00,0x00,
    +0xd6,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x03,0x00,0x00,0x9e,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,
    +0xb8,0x01,0x00,0x00,0xd6,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xf2,0x02,0x00,0x00,0x84,0x00,0x00,0x00,
    +0xb3,0x00,0x00,0x00,0x69,0x02,0x00,0x00,0xd6,0x00,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xda,0x00,0x00,0x00,
    +0xf2,0x02,0x00,0x00,0x8e,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xd5,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xda,0x00,0x00,0x00,0xd4,0x00,0x00,0x00,
    +0xd5,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xd4,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xdc,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xdc,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x02,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0xd4,0x00,0x00,0x00,
    +0x6b,0x01,0x00,0x00,0xdd,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0xe2,0x00,0x00,0x00,0x02,0x03,0x00,0x00,
    +0x38,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xde,0x00,0x00,0x00,
    +0xdd,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xe2,0x00,0x00,0x00,0xdd,0x00,0x00,0x00,0xde,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xdd,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,0x74,0x00,0x00,0x00,
    +0x02,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xea,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,0x99,0x00,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,
    +0xea,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xec,0x00,0x00,0x00,0x06,0x03,0x00,0x00,
    +0xeb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xee,0x00,0x00,0x00,0xec,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,
    +0xe7,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,
    +0x6f,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xfb,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,
    +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,
    +0xee,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x02,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,
    +0x01,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x04,0x01,0x00,0x00,0x02,0x01,0x00,0x00,0x03,0x01,0x00,0x00,
    +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x07,0x01,0x00,0x00,
    +0xfe,0x00,0x00,0x00,0x06,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x07,0x01,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x09,0x01,0x00,0x00,0x04,0x01,0x00,0x00,0x08,0x01,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0d,0x01,0x00,0x00,
    +0xfe,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,0x89,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x10,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,
    +0x01,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x11,0x01,0x00,0x00,0x10,0x01,0x00,0x00,0x06,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x12,0x01,0x00,0x00,
    +0x11,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x22,0x01,0x00,0x00,0x23,0x01,0x00,0x00,0x1f,0x01,0x00,0x00,
    +0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0x09,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x16,0x01,0x00,0x00,
    +0x24,0x01,0x00,0x00,0x23,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x25,0x01,0x00,0x00,0x24,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x28,0x01,0x00,0x00,
    +0x09,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x22,0x01,0x00,0x00,0x29,0x01,0x00,0x00,0x1f,0x01,0x00,0x00,
    +0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0x28,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x16,0x01,0x00,0x00,
    +0x2a,0x01,0x00,0x00,0x29,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x2b,0x01,0x00,0x00,0x2a,0x01,0x00,0x00,
    +0x50,0x00,0x05,0x00,0x13,0x01,0x00,0x00,0x2c,0x01,0x00,0x00,
    +0x25,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x22,0x01,0x00,0x00,0x30,0x01,0x00,0x00,0x1f,0x01,0x00,0x00,
    +0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0x35,0x00,0x00,0x00,
    +0x0d,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x16,0x01,0x00,0x00,
    +0x31,0x01,0x00,0x00,0x30,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x32,0x01,0x00,0x00,0x31,0x01,0x00,0x00,
    +0x41,0x00,0x07,0x00,0x37,0x01,0x00,0x00,0x38,0x01,0x00,0x00,
    +0x1f,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x1a,0x01,0x00,0x00,
    +0x39,0x01,0x00,0x00,0x38,0x01,0x00,0x00,0x73,0x00,0x04,0x00,
    +0x33,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,0x39,0x01,0x00,0x00,
    +0x51,0x00,0x05,0x00,0xc3,0x00,0x00,0x00,0x3d,0x01,0x00,0x00,
    +0x3a,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x40,0x01,0x00,0x00,0x32,0x01,0x00,0x00,
    +0x3f,0x01,0x00,0x00,0x70,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    +0x41,0x01,0x00,0x00,0x40,0x01,0x00,0x00,0x85,0x00,0x05,0x00,
    +0xc3,0x00,0x00,0x00,0x42,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,
    +0x41,0x01,0x00,0x00,0x50,0x00,0x05,0x00,0x13,0x01,0x00,0x00,
    +0x45,0x01,0x00,0x00,0x12,0x01,0x00,0x00,0x12,0x01,0x00,0x00,
    +0xc2,0x00,0x05,0x00,0x13,0x01,0x00,0x00,0x46,0x01,0x00,0x00,
    +0x2c,0x01,0x00,0x00,0x45,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
    +0x13,0x01,0x00,0x00,0x49,0x01,0x00,0x00,0x46,0x01,0x00,0x00,
    +0x4d,0x03,0x00,0x00,0x70,0x00,0x04,0x00,0x33,0x01,0x00,0x00,
    +0x4a,0x01,0x00,0x00,0x49,0x01,0x00,0x00,0x8e,0x00,0x05,0x00,
    +0x33,0x01,0x00,0x00,0x4b,0x01,0x00,0x00,0x4a,0x01,0x00,0x00,
    +0x42,0x01,0x00,0x00,0x51,0x00,0x05,0x00,0xc3,0x00,0x00,0x00,
    +0x4d,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4f,0x01,0x00,0x00,
    +0x32,0x01,0x00,0x00,0xa8,0x00,0x00,0x00,0x70,0x00,0x04,0x00,
    +0xc3,0x00,0x00,0x00,0x50,0x01,0x00,0x00,0x4f,0x01,0x00,0x00,
    +0x85,0x00,0x05,0x00,0xc3,0x00,0x00,0x00,0x51,0x01,0x00,0x00,
    +0x4d,0x01,0x00,0x00,0x50,0x01,0x00,0x00,0x50,0x00,0x05,0x00,
    +0x33,0x01,0x00,0x00,0x52,0x01,0x00,0x00,0x51,0x01,0x00,0x00,
    +0x51,0x01,0x00,0x00,0x83,0x00,0x05,0x00,0x33,0x01,0x00,0x00,
    +0x53,0x01,0x00,0x00,0x4b,0x01,0x00,0x00,0x52,0x01,0x00,0x00,
    +0x51,0x00,0x05,0x00,0xc3,0x00,0x00,0x00,0x5b,0x01,0x00,0x00,
    +0x53,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x00,0x04,0x00,
    +0x19,0x01,0x00,0x00,0x5c,0x01,0x00,0x00,0x5b,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x5d,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,
    +0x58,0x01,0x00,0x00,0xf7,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x5e,0x01,0x00,0x00,0x5c,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x60,0x01,0x00,0x00,0xf7,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x51,0x00,0x05,0x00,0xc3,0x00,0x00,0x00,
    +0x62,0x01,0x00,0x00,0x53,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x73,0x00,0x04,0x00,0x19,0x01,0x00,0x00,0x63,0x01,0x00,0x00,
    +0x62,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x5d,0x01,0x00,0x00,
    +0x64,0x01,0x00,0x00,0x58,0x01,0x00,0x00,0x60,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x64,0x01,0x00,0x00,0x63,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6b,0x01,0x00,0x00,
    +0x02,0x03,0x00,0x00,0x69,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xdc,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xde,0x00,0x00,0x00,
     0xf9,0x00,0x02,0x00,0x6d,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x6f,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0xb5,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xb8,0x01,0x00,0x00,0x06,0x03,0x00,0x00,
    -0xb6,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xbb,0x01,0x00,0x00,0x0a,0x03,0x00,0x00,0xb9,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xbd,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xbd,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x0c,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0x6f,0x01,0x00,0x00,
    -0x67,0x02,0x00,0x00,0xc0,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0xc3,0x01,0x00,0x00,0x0c,0x03,0x00,0x00,
    -0x6d,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xbf,0x01,0x00,0x00,
    -0xc0,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xc3,0x01,0x00,0x00,0xbe,0x01,0x00,0x00,0xbf,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xbe,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xc5,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xc5,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x10,0x03,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0xbe,0x01,0x00,0x00,0xf1,0x01,0x00,0x00,
    -0xc8,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0xcb,0x01,0x00,0x00,0x10,0x03,0x00,0x00,0x61,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xc7,0x01,0x00,0x00,0xc8,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xcb,0x01,0x00,0x00,
    -0xc6,0x01,0x00,0x00,0xc7,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xc6,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xcd,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xcd,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x22,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0xc6,0x01,0x00,0x00,0xef,0x01,0x00,0x00,0xce,0x01,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xd3,0x01,0x00,0x00,
    -0x22,0x03,0x00,0x00,0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xcf,0x01,0x00,0x00,0xce,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xd3,0x01,0x00,0x00,0xce,0x01,0x00,0x00,
    -0xcf,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xce,0x01,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd9,0x01,0x00,0x00,
    -0x10,0x03,0x00,0x00,0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xdb,0x01,0x00,0x00,0xd9,0x01,0x00,0x00,
    -0x22,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xdd,0x01,0x00,0x00,0x56,0x00,0x00,0x00,0x54,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdf,0x01,0x00,0x00,
    -0x10,0x03,0x00,0x00,0x62,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xe0,0x01,0x00,0x00,0xdd,0x01,0x00,0x00,
    -0xdf,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xe2,0x01,0x00,0x00,0x65,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe3,0x01,0x00,0x00,
    -0xe0,0x01,0x00,0x00,0xe2,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xe5,0x01,0x00,0x00,0xe3,0x01,0x00,0x00,
    -0x22,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xe7,0x01,0x00,0x00,0xe5,0x01,0x00,0x00,0xe6,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe9,0x01,0x00,0x00,
    -0xe7,0x01,0x00,0x00,0x0c,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x5d,0x01,0x00,0x00,0xea,0x01,0x00,0x00,0x58,0x01,0x00,0x00,
    -0xe9,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x19,0x01,0x00,0x00,
    -0xeb,0x01,0x00,0x00,0xea,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xec,0x01,0x00,0x00,0xed,0x01,0x00,0x00,0xd7,0x01,0x00,0x00,
    -0xdb,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xed,0x01,0x00,0x00,
    -0xeb,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xef,0x01,0x00,0x00,0x22,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xcd,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xcf,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xc8,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xc8,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xf1,0x01,0x00,0x00,0x10,0x03,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xc5,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xc7,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xf3,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xf3,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x11,0x03,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0xc7,0x01,0x00,0x00,0x1f,0x02,0x00,0x00,
    -0xf6,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0xf9,0x01,0x00,0x00,0x11,0x03,0x00,0x00,0xbe,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xf5,0x01,0x00,0x00,0xf6,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xf9,0x01,0x00,0x00,
    -0xf4,0x01,0x00,0x00,0xf5,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xf4,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xfb,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xfb,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x1f,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0xf4,0x01,0x00,0x00,0x1d,0x02,0x00,0x00,0xfc,0x01,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x01,0x02,0x00,0x00,
    -0x1f,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xfd,0x01,0x00,0x00,0xfc,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x01,0x02,0x00,0x00,0xfc,0x01,0x00,0x00,
    -0xfd,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xfc,0x01,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x07,0x02,0x00,0x00,
    -0x11,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x09,0x02,0x00,0x00,0x07,0x02,0x00,0x00,
    -0x1f,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x0b,0x02,0x00,0x00,0x5a,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0e,0x02,0x00,0x00,
    -0x11,0x03,0x00,0x00,0x0d,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x0f,0x02,0x00,0x00,0x0b,0x02,0x00,0x00,
    -0x0e,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x11,0x02,0x00,0x00,0x69,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x12,0x02,0x00,0x00,
    -0x0f,0x02,0x00,0x00,0x11,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x14,0x02,0x00,0x00,0x12,0x02,0x00,0x00,
    -0x1f,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x16,0x02,0x00,0x00,0x14,0x02,0x00,0x00,0x15,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x18,0x02,0x00,0x00,
    -0x16,0x02,0x00,0x00,0x0c,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x5d,0x01,0x00,0x00,0x19,0x02,0x00,0x00,0x8b,0x01,0x00,0x00,
    -0x18,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x19,0x01,0x00,0x00,
    -0x1a,0x02,0x00,0x00,0x19,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xec,0x01,0x00,0x00,0x1b,0x02,0x00,0x00,0x05,0x02,0x00,0x00,
    -0x09,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0x1b,0x02,0x00,0x00,
    -0x1a,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x1d,0x02,0x00,0x00,0x1f,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xfb,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xfd,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xf6,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xf6,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x1f,0x02,0x00,0x00,0x11,0x03,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xf3,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xf5,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x21,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x21,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x12,0x03,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0xf5,0x01,0x00,0x00,0x65,0x02,0x00,0x00,
    -0x24,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0x27,0x02,0x00,0x00,0x12,0x03,0x00,0x00,0xbe,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x23,0x02,0x00,0x00,0x24,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x27,0x02,0x00,0x00,
    -0x22,0x02,0x00,0x00,0x23,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x22,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x29,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x29,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x16,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0x22,0x02,0x00,0x00,0x63,0x02,0x00,0x00,0x2c,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x2f,0x02,0x00,0x00,
    -0x16,0x03,0x00,0x00,0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x2b,0x02,0x00,0x00,0x2c,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x2f,0x02,0x00,0x00,0x2a,0x02,0x00,0x00,
    -0x2b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x2a,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x31,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x31,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x18,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0x2a,0x02,0x00,0x00,
    -0x61,0x02,0x00,0x00,0x34,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0x37,0x02,0x00,0x00,0x18,0x03,0x00,0x00,
    -0xbb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x33,0x02,0x00,0x00,
    -0x34,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x37,0x02,0x00,0x00,0x32,0x02,0x00,0x00,0x33,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x32,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x39,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x39,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x1a,0x03,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0x32,0x02,0x00,0x00,0x5f,0x02,0x00,0x00,
    -0x3a,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0x3f,0x02,0x00,0x00,0x1a,0x03,0x00,0x00,0x63,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x3b,0x02,0x00,0x00,0x3a,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x3f,0x02,0x00,0x00,
    -0x3a,0x02,0x00,0x00,0x3b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x3a,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x41,0x02,0x00,0x00,0x12,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x43,0x02,0x00,0x00,
    -0x41,0x02,0x00,0x00,0x18,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x45,0x02,0x00,0x00,0x43,0x02,0x00,0x00,
    -0x44,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x47,0x02,0x00,0x00,0x16,0x03,0x00,0x00,0x63,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x48,0x02,0x00,0x00,
    -0x45,0x02,0x00,0x00,0x47,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x4a,0x02,0x00,0x00,0x48,0x02,0x00,0x00,
    -0x1a,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x4e,0x02,0x00,0x00,0x47,0x02,0x00,0x00,0x1a,0x03,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xec,0x01,0x00,0x00,0x4f,0x02,0x00,0x00,
    -0xd7,0x01,0x00,0x00,0x4e,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x19,0x01,0x00,0x00,0x50,0x02,0x00,0x00,0x4f,0x02,0x00,0x00,
    -0x73,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x51,0x02,0x00,0x00,
    -0x50,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xec,0x01,0x00,0x00,
    -0x56,0x02,0x00,0x00,0x05,0x02,0x00,0x00,0x43,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x19,0x01,0x00,0x00,0x57,0x02,0x00,0x00,
    -0x56,0x02,0x00,0x00,0x73,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    -0x58,0x02,0x00,0x00,0x57,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xcc,0x00,0x00,0x00,0x5a,0x02,0x00,0x00,0xc9,0x00,0x00,0x00,
    -0x4a,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    -0x5b,0x02,0x00,0x00,0x5a,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,
    -0xc3,0x00,0x00,0x00,0x5c,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x32,0x00,0x00,0x00,0x51,0x02,0x00,0x00,0x58,0x02,0x00,0x00,
    -0x5b,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0x5a,0x02,0x00,0x00,
    -0x5c,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x5f,0x02,0x00,0x00,0x1a,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x39,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x3b,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x34,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x34,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x61,0x02,0x00,0x00,0x18,0x03,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x31,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x33,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x2c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x2c,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x63,0x02,0x00,0x00,
    -0x16,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x29,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x2b,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x24,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x24,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x65,0x02,0x00,0x00,0x12,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x21,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x23,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xc0,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xc0,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x67,0x02,0x00,0x00,0x0c,0x03,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xbd,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xbf,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,
    +0x6d,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x03,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0xde,0x00,0x00,0x00,
    +0xb4,0x01,0x00,0x00,0x70,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0x73,0x01,0x00,0x00,0x03,0x03,0x00,0x00,
    +0xa6,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x6f,0x01,0x00,0x00,
    +0x70,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x73,0x01,0x00,0x00,0x6e,0x01,0x00,0x00,0x6f,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x6e,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x77,0x01,0x00,0x00,0xa7,0x00,0x00,0x00,
    +0x7e,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x79,0x01,0x00,0x00,0x77,0x01,0x00,0x00,0x03,0x03,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x7a,0x01,0x00,0x00,
    +0x14,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x7b,0x01,0x00,0x00,0x7a,0x01,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x7c,0x01,0x00,0x00,
    +0x79,0x01,0x00,0x00,0x7b,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,
    +0x7e,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x7c,0x01,0x00,0x00,0x7d,0x01,0x00,0x00,0x7e,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x7d,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x81,0x01,0x00,0x00,0xf2,0x02,0x00,0x00,
    +0x79,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0x83,0x01,0x00,0x00,0x81,0x01,0x00,0x00,0x8e,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x7e,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x7e,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0xc1,0x00,0x00,0x00,
    +0x84,0x01,0x00,0x00,0x7c,0x01,0x00,0x00,0x6e,0x01,0x00,0x00,
    +0x83,0x01,0x00,0x00,0x7d,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,
    +0x86,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x84,0x01,0x00,0x00,0x85,0x01,0x00,0x00,0xa6,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x85,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x8e,0x01,0x00,0x00,0x7e,0x00,0x00,0x00,
    +0x03,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x90,0x01,0x00,0x00,0x8e,0x01,0x00,0x00,0x8f,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x92,0x01,0x00,0x00,
    +0x90,0x01,0x00,0x00,0x79,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x9d,0x01,0x00,0x00,0x8e,0x01,0x00,0x00,
    +0xaa,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x9e,0x01,0x00,0x00,0x0a,0x03,0x00,0x00,0x9d,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa0,0x01,0x00,0x00,
    +0x9e,0x01,0x00,0x00,0x79,0x00,0x00,0x00,0x41,0x00,0x06,0x00,
    +0xa1,0x01,0x00,0x00,0xa2,0x01,0x00,0x00,0x96,0x01,0x00,0x00,
    +0x35,0x00,0x00,0x00,0xa0,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xc3,0x00,0x00,0x00,0xa3,0x01,0x00,0x00,0xa2,0x01,0x00,0x00,
    +0x73,0x00,0x04,0x00,0x19,0x01,0x00,0x00,0xa4,0x01,0x00,0x00,
    +0xa3,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x5d,0x01,0x00,0x00,
    +0xa5,0x01,0x00,0x00,0x8b,0x01,0x00,0x00,0x92,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0xa5,0x01,0x00,0x00,0xa4,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x86,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xa6,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xa9,0x01,0x00,0x00,0x7e,0x00,0x00,0x00,0x03,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xab,0x01,0x00,0x00,
    +0xa9,0x01,0x00,0x00,0xaa,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xad,0x01,0x00,0x00,0xab,0x01,0x00,0x00,
    +0x79,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x5d,0x01,0x00,0x00,
    +0xaf,0x01,0x00,0x00,0x8b,0x01,0x00,0x00,0xad,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0xaf,0x01,0x00,0x00,0xae,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x86,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x86,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x70,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x70,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xb4,0x01,0x00,0x00,0x03,0x03,0x00,0x00,
    +0xb2,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x6d,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x6f,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,
     0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xb5,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xd6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xd6,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x69,0x02,0x00,0x00,0xf2,0x02,0x00,0x00,0x6d,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xd3,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xd5,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x6e,0x02,0x00,0x00,0x56,0x00,0x00,0x00,0x54,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6f,0x02,0x00,0x00,
    -0x96,0x00,0x00,0x00,0x6e,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x74,0x02,0x00,0x00,0x5a,0x00,0x00,0x00,
    -0xb8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x75,0x02,0x00,0x00,0xa7,0x00,0x00,0x00,0x74,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x79,0x02,0x00,0x00,
    -0x14,0x00,0x00,0x00,0x78,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x7a,0x02,0x00,0x00,0x79,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7b,0x02,0x00,0x00,
    -0x0f,0x00,0x00,0x00,0x7a,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x7f,0x02,0x00,0x00,0x48,0x00,0x00,0x00,
    -0x7a,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,
    -0x81,0x02,0x00,0x00,0x80,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x82,0x02,0x00,0x00,
    -0x81,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x83,0x02,0x00,0x00,0x7f,0x02,0x00,0x00,0x82,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x84,0x02,0x00,0x00,
    -0x7b,0x02,0x00,0x00,0x83,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x86,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x86,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xf3,0x02,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0xec,0x02,0x00,0x00,
    -0x89,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0x8c,0x02,0x00,0x00,0xf3,0x02,0x00,0x00,0xbe,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x88,0x02,0x00,0x00,0x89,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x8c,0x02,0x00,0x00,
    -0x87,0x02,0x00,0x00,0x88,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x87,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x8e,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x8e,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xf4,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0x87,0x02,0x00,0x00,0xea,0x02,0x00,0x00,0x91,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x94,0x02,0x00,0x00,
    -0xf4,0x02,0x00,0x00,0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x90,0x02,0x00,0x00,0x91,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x94,0x02,0x00,0x00,0x8f,0x02,0x00,0x00,
    -0x90,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x8f,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x98,0x02,0x00,0x00,
    -0xf4,0x02,0x00,0x00,0x62,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x99,0x02,0x00,0x00,0x6f,0x02,0x00,0x00,
    -0x98,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x9b,0x02,0x00,0x00,0x65,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9c,0x02,0x00,0x00,
    -0x99,0x02,0x00,0x00,0x9b,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xa0,0x02,0x00,0x00,0xf3,0x02,0x00,0x00,
    -0x0d,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xa1,0x02,0x00,0x00,0x75,0x02,0x00,0x00,0xa0,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa3,0x02,0x00,0x00,
    -0x69,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xa4,0x02,0x00,0x00,0xa1,0x02,0x00,0x00,
    -0xa3,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xa6,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xa6,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xf6,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0x8f,0x02,0x00,0x00,0xe8,0x02,0x00,0x00,0xa9,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xac,0x02,0x00,0x00,
    -0xf6,0x02,0x00,0x00,0xbb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xa8,0x02,0x00,0x00,0xa9,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xac,0x02,0x00,0x00,0xa7,0x02,0x00,0x00,
    -0xa8,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xa7,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb8,0x01,0x00,0x00,
    +0x06,0x03,0x00,0x00,0xb6,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xbb,0x01,0x00,0x00,0x0a,0x03,0x00,0x00,
    +0xb9,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xbd,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xbd,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x0c,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x6f,0x01,0x00,0x00,0x67,0x02,0x00,0x00,0xc0,0x01,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xc3,0x01,0x00,0x00,
    +0x0c,0x03,0x00,0x00,0x6d,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xbf,0x01,0x00,0x00,0xc0,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xc3,0x01,0x00,0x00,0xbe,0x01,0x00,0x00,
    +0xbf,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xbe,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xc5,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xc5,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x10,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0xbe,0x01,0x00,0x00,
    +0xf1,0x01,0x00,0x00,0xc8,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0xcb,0x01,0x00,0x00,0x10,0x03,0x00,0x00,
    +0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xc7,0x01,0x00,0x00,
    +0xc8,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xcb,0x01,0x00,0x00,0xc6,0x01,0x00,0x00,0xc7,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xc6,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xcd,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xcd,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x22,0x03,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0xc6,0x01,0x00,0x00,0xef,0x01,0x00,0x00,
    +0xce,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0xd3,0x01,0x00,0x00,0x22,0x03,0x00,0x00,0x63,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xcf,0x01,0x00,0x00,0xce,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xd3,0x01,0x00,0x00,
    +0xce,0x01,0x00,0x00,0xcf,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xce,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xd9,0x01,0x00,0x00,0x10,0x03,0x00,0x00,0x63,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdb,0x01,0x00,0x00,
    +0xd9,0x01,0x00,0x00,0x22,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xdd,0x01,0x00,0x00,0x56,0x00,0x00,0x00,
    +0x54,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xdf,0x01,0x00,0x00,0x10,0x03,0x00,0x00,0x62,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe0,0x01,0x00,0x00,
    +0xdd,0x01,0x00,0x00,0xdf,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xe2,0x01,0x00,0x00,0x65,0x00,0x00,0x00,
    +0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xe3,0x01,0x00,0x00,0xe0,0x01,0x00,0x00,0xe2,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe5,0x01,0x00,0x00,
    +0xe3,0x01,0x00,0x00,0x22,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xe7,0x01,0x00,0x00,0xe5,0x01,0x00,0x00,
    +0xe6,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xe9,0x01,0x00,0x00,0xe7,0x01,0x00,0x00,0x0c,0x03,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x5d,0x01,0x00,0x00,0xea,0x01,0x00,0x00,
    +0x58,0x01,0x00,0x00,0xe9,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x19,0x01,0x00,0x00,0xeb,0x01,0x00,0x00,0xea,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xec,0x01,0x00,0x00,0xed,0x01,0x00,0x00,
    +0xd7,0x01,0x00,0x00,0xdb,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0xed,0x01,0x00,0x00,0xeb,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xef,0x01,0x00,0x00,0x22,0x03,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xcd,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xcf,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xc8,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xc8,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf1,0x01,0x00,0x00,
    +0x10,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xc5,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xc7,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xf3,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xf3,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x11,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0xc7,0x01,0x00,0x00,
    +0x1f,0x02,0x00,0x00,0xf6,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0xf9,0x01,0x00,0x00,0x11,0x03,0x00,0x00,
    +0xbe,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xf5,0x01,0x00,0x00,
    +0xf6,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xf9,0x01,0x00,0x00,0xf4,0x01,0x00,0x00,0xf5,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xf4,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xfb,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xfb,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x1f,0x03,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0xf4,0x01,0x00,0x00,0x1d,0x02,0x00,0x00,
    +0xfc,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0x01,0x02,0x00,0x00,0x1f,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xfd,0x01,0x00,0x00,0xfc,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x01,0x02,0x00,0x00,
    +0xfc,0x01,0x00,0x00,0xfd,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xfc,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x07,0x02,0x00,0x00,0x11,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x09,0x02,0x00,0x00,
    +0x07,0x02,0x00,0x00,0x1f,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x0b,0x02,0x00,0x00,0x5a,0x00,0x00,0x00,
    +0xb8,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x0e,0x02,0x00,0x00,0x11,0x03,0x00,0x00,0x0d,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0f,0x02,0x00,0x00,
    +0x0b,0x02,0x00,0x00,0x0e,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x11,0x02,0x00,0x00,0x69,0x00,0x00,0x00,
    +0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x12,0x02,0x00,0x00,0x0f,0x02,0x00,0x00,0x11,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x14,0x02,0x00,0x00,
    +0x12,0x02,0x00,0x00,0x1f,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x16,0x02,0x00,0x00,0x14,0x02,0x00,0x00,
    +0x15,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x18,0x02,0x00,0x00,0x16,0x02,0x00,0x00,0x0c,0x03,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x5d,0x01,0x00,0x00,0x19,0x02,0x00,0x00,
    +0x8b,0x01,0x00,0x00,0x18,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x19,0x01,0x00,0x00,0x1a,0x02,0x00,0x00,0x19,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xec,0x01,0x00,0x00,0x1b,0x02,0x00,0x00,
    +0x05,0x02,0x00,0x00,0x09,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x1b,0x02,0x00,0x00,0x1a,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x1d,0x02,0x00,0x00,0x1f,0x03,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xfb,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xfd,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xf6,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xf6,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1f,0x02,0x00,0x00,
    +0x11,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xf3,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xf5,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x21,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x21,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x12,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0xf5,0x01,0x00,0x00,
    +0x65,0x02,0x00,0x00,0x24,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0x27,0x02,0x00,0x00,0x12,0x03,0x00,0x00,
    +0xbe,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x23,0x02,0x00,0x00,
    +0x24,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x27,0x02,0x00,0x00,0x22,0x02,0x00,0x00,0x23,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x22,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x29,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x29,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x16,0x03,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0x22,0x02,0x00,0x00,0x63,0x02,0x00,0x00,
    +0x2c,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0x2f,0x02,0x00,0x00,0x16,0x03,0x00,0x00,0x61,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x2b,0x02,0x00,0x00,0x2c,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x2f,0x02,0x00,0x00,
    +0x2a,0x02,0x00,0x00,0x2b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x2a,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x31,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x31,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x18,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x2a,0x02,0x00,0x00,0x61,0x02,0x00,0x00,0x34,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x37,0x02,0x00,0x00,
    +0x18,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x33,0x02,0x00,0x00,0x34,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x37,0x02,0x00,0x00,0x32,0x02,0x00,0x00,
    +0x33,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x32,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x39,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x39,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x1a,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0x32,0x02,0x00,0x00,
    +0x5f,0x02,0x00,0x00,0x3a,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0x3f,0x02,0x00,0x00,0x1a,0x03,0x00,0x00,
    +0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x3b,0x02,0x00,0x00,
    +0x3a,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x3f,0x02,0x00,0x00,0x3a,0x02,0x00,0x00,0x3b,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x3a,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x41,0x02,0x00,0x00,0x12,0x03,0x00,0x00,
    +0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x43,0x02,0x00,0x00,0x41,0x02,0x00,0x00,0x18,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x45,0x02,0x00,0x00,
    +0x43,0x02,0x00,0x00,0x44,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x47,0x02,0x00,0x00,0x16,0x03,0x00,0x00,
    +0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x48,0x02,0x00,0x00,0x45,0x02,0x00,0x00,0x47,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4a,0x02,0x00,0x00,
    +0x48,0x02,0x00,0x00,0x1a,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x4e,0x02,0x00,0x00,0x47,0x02,0x00,0x00,
    +0x1a,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0xec,0x01,0x00,0x00,
    +0x4f,0x02,0x00,0x00,0xd7,0x01,0x00,0x00,0x4e,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x19,0x01,0x00,0x00,0x50,0x02,0x00,0x00,
    +0x4f,0x02,0x00,0x00,0x73,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    +0x51,0x02,0x00,0x00,0x50,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xec,0x01,0x00,0x00,0x56,0x02,0x00,0x00,0x05,0x02,0x00,0x00,
    +0x43,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x19,0x01,0x00,0x00,
    +0x57,0x02,0x00,0x00,0x56,0x02,0x00,0x00,0x73,0x00,0x04,0x00,
    +0xc3,0x00,0x00,0x00,0x58,0x02,0x00,0x00,0x57,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,0x5a,0x02,0x00,0x00,
    +0xc9,0x00,0x00,0x00,0x4a,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xc3,0x00,0x00,0x00,0x5b,0x02,0x00,0x00,0x5a,0x02,0x00,0x00,
    +0x0c,0x00,0x08,0x00,0xc3,0x00,0x00,0x00,0x5c,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x51,0x02,0x00,0x00,
    +0x58,0x02,0x00,0x00,0x5b,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x5a,0x02,0x00,0x00,0x5c,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x5f,0x02,0x00,0x00,0x1a,0x03,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x39,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x3b,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x34,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x34,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x61,0x02,0x00,0x00,
    +0x18,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x31,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x33,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x2c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x2c,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x63,0x02,0x00,0x00,0x16,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x29,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x2b,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x24,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x24,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x65,0x02,0x00,0x00,0x12,0x03,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x21,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x23,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xc0,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xc0,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x67,0x02,0x00,0x00,
    +0x0c,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xbd,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xbf,0x01,0x00,0x00,
    +0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0xb5,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xd6,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xd6,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x69,0x02,0x00,0x00,0xf2,0x02,0x00,0x00,
    +0x6d,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xd3,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xd5,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x6e,0x02,0x00,0x00,0x56,0x00,0x00,0x00,
    +0x54,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x6f,0x02,0x00,0x00,0x96,0x00,0x00,0x00,0x6e,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x74,0x02,0x00,0x00,
    +0x5a,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x75,0x02,0x00,0x00,0xa7,0x00,0x00,0x00,
    +0x74,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    +0x79,0x02,0x00,0x00,0x14,0x00,0x00,0x00,0x78,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x7a,0x02,0x00,0x00,
    +0x79,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x7b,0x02,0x00,0x00,0x0f,0x00,0x00,0x00,0x7a,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7f,0x02,0x00,0x00,
    +0x48,0x00,0x00,0x00,0x7a,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x0d,0x00,0x00,0x00,0x81,0x02,0x00,0x00,0x80,0x02,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x82,0x02,0x00,0x00,0x81,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x83,0x02,0x00,0x00,0x7f,0x02,0x00,0x00,
    +0x82,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x84,0x02,0x00,0x00,0x7b,0x02,0x00,0x00,0x83,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x86,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x86,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xf3,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,
    +0xec,0x02,0x00,0x00,0x89,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0x8c,0x02,0x00,0x00,0xf3,0x02,0x00,0x00,
    +0xbe,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x88,0x02,0x00,0x00,
    +0x89,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x8c,0x02,0x00,0x00,0x87,0x02,0x00,0x00,0x88,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x87,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x8e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x8e,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xf4,0x02,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0x87,0x02,0x00,0x00,0xea,0x02,0x00,0x00,
    +0x91,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0x94,0x02,0x00,0x00,0xf4,0x02,0x00,0x00,0x61,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x90,0x02,0x00,0x00,0x91,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x94,0x02,0x00,0x00,
    +0x8f,0x02,0x00,0x00,0x90,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x8f,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x98,0x02,0x00,0x00,0xf4,0x02,0x00,0x00,0x62,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x99,0x02,0x00,0x00,
    +0x6f,0x02,0x00,0x00,0x98,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x9b,0x02,0x00,0x00,0x65,0x00,0x00,0x00,
    +0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x9c,0x02,0x00,0x00,0x99,0x02,0x00,0x00,0x9b,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa0,0x02,0x00,0x00,
    +0xf3,0x02,0x00,0x00,0x0d,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xa1,0x02,0x00,0x00,0x75,0x02,0x00,0x00,
    +0xa0,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xa3,0x02,0x00,0x00,0x69,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa4,0x02,0x00,0x00,
    +0xa1,0x02,0x00,0x00,0xa3,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xa6,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xa6,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xf6,0x02,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0x8f,0x02,0x00,0x00,0xe8,0x02,0x00,0x00,
    +0xa9,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0xac,0x02,0x00,0x00,0xf6,0x02,0x00,0x00,0xbb,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xa8,0x02,0x00,0x00,0xa9,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xac,0x02,0x00,0x00,
    +0xa7,0x02,0x00,0x00,0xa8,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xa7,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xae,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xae,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xf8,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0xa7,0x02,0x00,0x00,0xe6,0x02,0x00,0x00,0xb1,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xb4,0x02,0x00,0x00,
    +0xf8,0x02,0x00,0x00,0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xb0,0x02,0x00,0x00,0xb1,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xb4,0x02,0x00,0x00,0xaf,0x02,0x00,0x00,
    +0xb0,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xaf,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb7,0x02,0x00,0x00,
    +0x9c,0x02,0x00,0x00,0xf8,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0xba,0x02,0x00,0x00,0xb7,0x02,0x00,0x00,
    +0x37,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0xbc,0x02,0x00,0x00,
    +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xba,0x02,0x00,0x00,
    +0xbb,0x02,0x00,0x00,0xbc,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xbb,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xbf,0x02,0x00,0x00,0xa4,0x02,0x00,0x00,0xf6,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xc0,0x02,0x00,0x00,
    +0x14,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0xc1,0x02,0x00,0x00,0xc0,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xc2,0x02,0x00,0x00,
    +0xbf,0x02,0x00,0x00,0xc1,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xbc,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xbc,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0xc1,0x00,0x00,0x00,0xc3,0x02,0x00,0x00,
    +0xba,0x02,0x00,0x00,0xaf,0x02,0x00,0x00,0xc2,0x02,0x00,0x00,
    +0xbb,0x02,0x00,0x00,0xf7,0x00,0x03,0x00,0xc5,0x02,0x00,0x00,
    +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xc3,0x02,0x00,0x00,
    +0xc4,0x02,0x00,0x00,0xc5,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xc4,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xcd,0x02,0x00,0x00,0xa4,0x02,0x00,0x00,0xf6,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xcf,0x02,0x00,0x00,
    +0x14,0x00,0x00,0x00,0xce,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0xd0,0x02,0x00,0x00,0xcf,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd1,0x02,0x00,0x00,
    +0xcd,0x02,0x00,0x00,0xd0,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xd2,0x02,0x00,0x00,0x84,0x02,0x00,0x00,
    +0xd1,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xd4,0x02,0x00,0x00,0xd2,0x02,0x00,0x00,0x9c,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd6,0x02,0x00,0x00,
    +0xd4,0x02,0x00,0x00,0xf8,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xd8,0x02,0x00,0x00,0xf3,0x02,0x00,0x00,
    +0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xda,0x02,0x00,0x00,0xd8,0x02,0x00,0x00,0xf6,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdc,0x02,0x00,0x00,
    +0xda,0x02,0x00,0x00,0xdb,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xde,0x02,0x00,0x00,0xf4,0x02,0x00,0x00,
    +0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xdf,0x02,0x00,0x00,0xdc,0x02,0x00,0x00,0xde,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe1,0x02,0x00,0x00,
    +0xdf,0x02,0x00,0x00,0xf8,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xcc,0x00,0x00,0x00,0xe2,0x02,0x00,0x00,0xc9,0x00,0x00,0x00,
    +0xe1,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    +0xe3,0x02,0x00,0x00,0xe2,0x02,0x00,0x00,0x41,0x00,0x06,0x00,
    +0xa1,0x01,0x00,0x00,0xe4,0x02,0x00,0x00,0xc9,0x02,0x00,0x00,
    +0x35,0x00,0x00,0x00,0xd6,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0xe4,0x02,0x00,0x00,0xe3,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xc5,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xc5,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xb1,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xb1,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xe6,0x02,0x00,0x00,0xf8,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,
     0xf9,0x00,0x02,0x00,0xae,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xae,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xf8,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0xa7,0x02,0x00,0x00,
    -0xe6,0x02,0x00,0x00,0xb1,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0xb4,0x02,0x00,0x00,0xf8,0x02,0x00,0x00,
    -0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xb0,0x02,0x00,0x00,
    -0xb1,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xb4,0x02,0x00,0x00,0xaf,0x02,0x00,0x00,0xb0,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xaf,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xb7,0x02,0x00,0x00,0x9c,0x02,0x00,0x00,
    -0xf8,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0xba,0x02,0x00,0x00,0xb7,0x02,0x00,0x00,0x37,0x00,0x00,0x00,
    -0xf7,0x00,0x03,0x00,0xbc,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xba,0x02,0x00,0x00,0xbb,0x02,0x00,0x00,
    -0xbc,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xbb,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbf,0x02,0x00,0x00,
    -0xa4,0x02,0x00,0x00,0xf6,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x17,0x00,0x00,0x00,0xc0,0x02,0x00,0x00,0x14,0x00,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0xc1,0x02,0x00,0x00,0xc0,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0xc2,0x02,0x00,0x00,0xbf,0x02,0x00,0x00,
    -0xc1,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xbc,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xbc,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0xc1,0x00,0x00,0x00,0xc3,0x02,0x00,0x00,0xba,0x02,0x00,0x00,
    -0xaf,0x02,0x00,0x00,0xc2,0x02,0x00,0x00,0xbb,0x02,0x00,0x00,
    -0xf7,0x00,0x03,0x00,0xc5,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xc3,0x02,0x00,0x00,0xc4,0x02,0x00,0x00,
    -0xc5,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xc4,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xcd,0x02,0x00,0x00,
    -0xa4,0x02,0x00,0x00,0xf6,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x17,0x00,0x00,0x00,0xcf,0x02,0x00,0x00,0x14,0x00,0x00,0x00,
    -0xce,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0xd0,0x02,0x00,0x00,0xcf,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xd1,0x02,0x00,0x00,0xcd,0x02,0x00,0x00,
    -0xd0,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xd2,0x02,0x00,0x00,0x84,0x02,0x00,0x00,0xd1,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd4,0x02,0x00,0x00,
    -0xd2,0x02,0x00,0x00,0x9c,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xd6,0x02,0x00,0x00,0xd4,0x02,0x00,0x00,
    -0xf8,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xd8,0x02,0x00,0x00,0xf3,0x02,0x00,0x00,0xbb,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xda,0x02,0x00,0x00,
    -0xd8,0x02,0x00,0x00,0xf6,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xdc,0x02,0x00,0x00,0xda,0x02,0x00,0x00,
    -0xdb,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xde,0x02,0x00,0x00,0xf4,0x02,0x00,0x00,0x63,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdf,0x02,0x00,0x00,
    -0xdc,0x02,0x00,0x00,0xde,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xe1,0x02,0x00,0x00,0xdf,0x02,0x00,0x00,
    -0xf8,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,
    -0xe2,0x02,0x00,0x00,0xc9,0x00,0x00,0x00,0xe1,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0xe3,0x02,0x00,0x00,
    -0xe2,0x02,0x00,0x00,0x41,0x00,0x06,0x00,0xa1,0x01,0x00,0x00,
    -0xe4,0x02,0x00,0x00,0xc9,0x02,0x00,0x00,0x35,0x00,0x00,0x00,
    -0xd6,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0xe4,0x02,0x00,0x00,
    -0xe3,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xc5,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xc5,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xb1,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xb1,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe6,0x02,0x00,0x00,
    -0xf8,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xae,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xb0,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xa9,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xa9,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xe8,0x02,0x00,0x00,0xf6,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xa6,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xa8,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x91,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x91,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xea,0x02,0x00,0x00,0xf4,0x02,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x8e,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x90,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x89,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x89,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xec,0x02,0x00,0x00,
    -0xf3,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x86,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x88,0x02,0x00,0x00,
    -0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
    +0xb0,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xa9,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xa9,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xe8,0x02,0x00,0x00,0xf6,0x02,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xa6,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xa8,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x91,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x91,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xea,0x02,0x00,0x00,
    +0xf4,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x8e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x90,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x89,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x89,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xec,0x02,0x00,0x00,0xf3,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x86,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x88,0x02,0x00,0x00,0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
    +
     };
    -const uint64_t matmul_q2_k_f32_len = 11240;
    +const uint64_t matmul_q2_k_f32_len = 11220;
     
     unsigned char matmul_q2_k_f32_aligned_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
    @@ -80379,9 +84086,9 @@ unsigned char matmul_q2_k_f32_fp32_data[] = {
     0x62,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x73,0x00,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x78,0x00,0x00,0x00,
     0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,
    @@ -80474,7 +84181,7 @@ unsigned char matmul_q2_k_f32_fp32_data[] = {
     0x65,0x01,0x00,0x00,0x51,0x00,0x00,0x00,0x64,0x01,0x00,0x00,
     0x00,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x66,0x01,0x00,0x00,0x84,0x00,0x00,0x00,0x65,0x01,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x67,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0x66,0x01,0x00,0x00,
     0x6d,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x85,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    @@ -80503,7 +84210,7 @@ unsigned char matmul_q2_k_f32_fp32_data[] = {
     0x6d,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0xb1,0x01,0x00,0x00,0x08,0x01,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0xb2,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x6d,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0xb5,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
     0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0xd0,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    @@ -80632,7 +84339,7 @@ unsigned char matmul_q2_k_f32_fp32_data[] = {
     0x94,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,
     0x84,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x9e,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x9e,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
     0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,
     0x14,0x00,0x00,0x00,0xa1,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,
    @@ -80690,483 +84397,482 @@ unsigned char matmul_q2_k_f32_fp32_data[] = {
     0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xea,0x00,0x00,0x00,
     0xe7,0x00,0x00,0x00,0x99,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0xea,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xec,0x00,0x00,0x00,0xff,0x02,0x00,0x00,0xeb,0x00,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xee,0x00,0x00,0x00,
     0xec,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,
    -0xf3,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xf6,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,
    -0xf4,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0xee,0x00,0x00,0x00,
    -0xfa,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xfe,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,
    -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x02,0x01,0x00,0x00,
    -0xfe,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x04,0x01,0x00,0x00,0x02,0x01,0x00,0x00,
    -0x03,0x01,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x07,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,0x06,0x01,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x08,0x01,0x00,0x00,
    -0x07,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x09,0x01,0x00,0x00,0x04,0x01,0x00,0x00,
    -0x08,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x0d,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,
    -0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x10,0x01,0x00,0x00,
    -0xfe,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x86,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x11,0x01,0x00,0x00,0x10,0x01,0x00,0x00,
    +0xf3,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xf7,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
    +0xee,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,0x89,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0xee,0x00,0x00,0x00,
    +0xfa,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x02,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,0x01,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x04,0x01,0x00,0x00,
    +0x02,0x01,0x00,0x00,0x03,0x01,0x00,0x00,0x89,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x07,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,
     0x06,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x12,0x01,0x00,0x00,0x11,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x41,0x00,0x08,0x00,0x22,0x01,0x00,0x00,0x23,0x01,0x00,0x00,
    -0x1f,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0x09,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x16,0x01,0x00,0x00,0x24,0x01,0x00,0x00,0x23,0x01,0x00,0x00,
    -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x25,0x01,0x00,0x00,
    -0x24,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x28,0x01,0x00,0x00,0x09,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,
    -0x41,0x00,0x08,0x00,0x22,0x01,0x00,0x00,0x29,0x01,0x00,0x00,
    -0x1f,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0x28,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x16,0x01,0x00,0x00,0x2a,0x01,0x00,0x00,0x29,0x01,0x00,0x00,
    -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x2b,0x01,0x00,0x00,
    -0x2a,0x01,0x00,0x00,0x50,0x00,0x05,0x00,0x13,0x01,0x00,0x00,
    -0x2c,0x01,0x00,0x00,0x25,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,
    -0x41,0x00,0x08,0x00,0x22,0x01,0x00,0x00,0x30,0x01,0x00,0x00,
    -0x1f,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
    -0x35,0x00,0x00,0x00,0x0d,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x16,0x01,0x00,0x00,0x31,0x01,0x00,0x00,0x30,0x01,0x00,0x00,
    -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x32,0x01,0x00,0x00,
    -0x31,0x01,0x00,0x00,0x41,0x00,0x07,0x00,0x37,0x01,0x00,0x00,
    -0x38,0x01,0x00,0x00,0x1f,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    -0xfb,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x1a,0x01,0x00,0x00,0x39,0x01,0x00,0x00,0x38,0x01,0x00,0x00,
    -0x73,0x00,0x04,0x00,0x33,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,
    -0x39,0x01,0x00,0x00,0x51,0x00,0x05,0x00,0xc3,0x00,0x00,0x00,
    -0x3d,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    -0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x40,0x01,0x00,0x00,
    -0x32,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,0x70,0x00,0x04,0x00,
    -0xc3,0x00,0x00,0x00,0x41,0x01,0x00,0x00,0x40,0x01,0x00,0x00,
    -0x85,0x00,0x05,0x00,0xc3,0x00,0x00,0x00,0x42,0x01,0x00,0x00,
    -0x3d,0x01,0x00,0x00,0x41,0x01,0x00,0x00,0x50,0x00,0x05,0x00,
    -0x13,0x01,0x00,0x00,0x45,0x01,0x00,0x00,0x12,0x01,0x00,0x00,
    -0x12,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x13,0x01,0x00,0x00,
    -0x46,0x01,0x00,0x00,0x2c,0x01,0x00,0x00,0x45,0x01,0x00,0x00,
    -0xc7,0x00,0x05,0x00,0x13,0x01,0x00,0x00,0x49,0x01,0x00,0x00,
    -0x46,0x01,0x00,0x00,0x46,0x03,0x00,0x00,0x70,0x00,0x04,0x00,
    -0x33,0x01,0x00,0x00,0x4a,0x01,0x00,0x00,0x49,0x01,0x00,0x00,
    -0x8e,0x00,0x05,0x00,0x33,0x01,0x00,0x00,0x4b,0x01,0x00,0x00,
    -0x4a,0x01,0x00,0x00,0x42,0x01,0x00,0x00,0x51,0x00,0x05,0x00,
    -0xc3,0x00,0x00,0x00,0x4d,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x4f,0x01,0x00,0x00,0x32,0x01,0x00,0x00,0xa8,0x00,0x00,0x00,
    -0x70,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x50,0x01,0x00,0x00,
    -0x4f,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0xc3,0x00,0x00,0x00,
    -0x51,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,0x50,0x01,0x00,0x00,
    -0x50,0x00,0x05,0x00,0x33,0x01,0x00,0x00,0x52,0x01,0x00,0x00,
    -0x51,0x01,0x00,0x00,0x51,0x01,0x00,0x00,0x83,0x00,0x05,0x00,
    -0x33,0x01,0x00,0x00,0x53,0x01,0x00,0x00,0x4b,0x01,0x00,0x00,
    -0x52,0x01,0x00,0x00,0x51,0x00,0x05,0x00,0xc3,0x00,0x00,0x00,
    -0x5b,0x01,0x00,0x00,0x53,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x5c,0x01,0x00,0x00,0x5d,0x01,0x00,0x00,
    -0x58,0x01,0x00,0x00,0xf7,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x5d,0x01,0x00,0x00,0x5b,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x5f,0x01,0x00,0x00,0xf7,0x00,0x00,0x00,
    -0x3a,0x00,0x00,0x00,0x51,0x00,0x05,0x00,0xc3,0x00,0x00,0x00,
    -0x61,0x01,0x00,0x00,0x53,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x5c,0x01,0x00,0x00,0x62,0x01,0x00,0x00,
    -0x58,0x01,0x00,0x00,0x5f,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x62,0x01,0x00,0x00,0x61,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x69,0x01,0x00,0x00,0xfb,0x02,0x00,0x00,
    -0x67,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xdc,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xde,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x6b,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x6b,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xfc,0x02,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0xde,0x00,0x00,0x00,0xb0,0x01,0x00,0x00,
    -0x6e,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0x71,0x01,0x00,0x00,0xfc,0x02,0x00,0x00,0xa6,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x6d,0x01,0x00,0x00,0x6e,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x71,0x01,0x00,0x00,
    -0x6c,0x01,0x00,0x00,0x6d,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x6c,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x75,0x01,0x00,0x00,0xa7,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x77,0x01,0x00,0x00,
    -0x75,0x01,0x00,0x00,0xfc,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x17,0x00,0x00,0x00,0x78,0x01,0x00,0x00,0x14,0x00,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x79,0x01,0x00,0x00,0x78,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0x7a,0x01,0x00,0x00,0x77,0x01,0x00,0x00,
    -0x79,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,0x7c,0x01,0x00,0x00,
    -0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x7a,0x01,0x00,0x00,
    -0x7b,0x01,0x00,0x00,0x7c,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x7b,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x7f,0x01,0x00,0x00,0xeb,0x02,0x00,0x00,0x79,0x00,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x81,0x01,0x00,0x00,
    -0x7f,0x01,0x00,0x00,0x8e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x7c,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x7c,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0xc1,0x00,0x00,0x00,0x82,0x01,0x00,0x00,
    -0x7a,0x01,0x00,0x00,0x6c,0x01,0x00,0x00,0x81,0x01,0x00,0x00,
    -0x7b,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,0x84,0x01,0x00,0x00,
    -0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x82,0x01,0x00,0x00,
    -0x83,0x01,0x00,0x00,0xa3,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x83,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x8c,0x01,0x00,0x00,0x7e,0x00,0x00,0x00,0xfc,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8e,0x01,0x00,0x00,
    -0x8c,0x01,0x00,0x00,0x8d,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x90,0x01,0x00,0x00,0x8e,0x01,0x00,0x00,
    -0x79,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x9b,0x01,0x00,0x00,0x8c,0x01,0x00,0x00,0xaa,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9c,0x01,0x00,0x00,
    -0x03,0x03,0x00,0x00,0x9b,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x9e,0x01,0x00,0x00,0x9c,0x01,0x00,0x00,
    -0x79,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x9f,0x01,0x00,0x00,
    -0xa0,0x01,0x00,0x00,0x94,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    -0x9e,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    -0xa1,0x01,0x00,0x00,0xa0,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x5c,0x01,0x00,0x00,0xa2,0x01,0x00,0x00,0x89,0x01,0x00,0x00,
    -0x90,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xa2,0x01,0x00,0x00,
    -0xa1,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x84,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xa3,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xa6,0x01,0x00,0x00,0x7e,0x00,0x00,0x00,
    +0x08,0x01,0x00,0x00,0x07,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x09,0x01,0x00,0x00,
    +0x04,0x01,0x00,0x00,0x08,0x01,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x0d,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,
    +0x0c,0x01,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x10,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,0x01,0x01,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x11,0x01,0x00,0x00,
    +0x10,0x01,0x00,0x00,0x06,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x12,0x01,0x00,0x00,0x11,0x01,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0x22,0x01,0x00,0x00,
    +0x23,0x01,0x00,0x00,0x1f,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    +0xfb,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x09,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x16,0x01,0x00,0x00,0x24,0x01,0x00,0x00,
    +0x23,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x25,0x01,0x00,0x00,0x24,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x28,0x01,0x00,0x00,0x09,0x01,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0x22,0x01,0x00,0x00,
    +0x29,0x01,0x00,0x00,0x1f,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    +0xfb,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x28,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x16,0x01,0x00,0x00,0x2a,0x01,0x00,0x00,
    +0x29,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x2b,0x01,0x00,0x00,0x2a,0x01,0x00,0x00,0x50,0x00,0x05,0x00,
    +0x13,0x01,0x00,0x00,0x2c,0x01,0x00,0x00,0x25,0x01,0x00,0x00,
    +0x2b,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x22,0x01,0x00,0x00,
    +0x30,0x01,0x00,0x00,0x1f,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    +0xfb,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x0d,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x16,0x01,0x00,0x00,0x31,0x01,0x00,0x00,
    +0x30,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x32,0x01,0x00,0x00,0x31,0x01,0x00,0x00,0x41,0x00,0x07,0x00,
    +0x37,0x01,0x00,0x00,0x38,0x01,0x00,0x00,0x1f,0x01,0x00,0x00,
    +0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x1a,0x01,0x00,0x00,0x39,0x01,0x00,0x00,
    +0x38,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x33,0x01,0x00,0x00,
    +0x3a,0x01,0x00,0x00,0x39,0x01,0x00,0x00,0x51,0x00,0x05,0x00,
    +0xc3,0x00,0x00,0x00,0x3d,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,
    +0x00,0x00,0x00,0x00,0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x40,0x01,0x00,0x00,0x32,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,
    +0x70,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x41,0x01,0x00,0x00,
    +0x40,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0xc3,0x00,0x00,0x00,
    +0x42,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,0x41,0x01,0x00,0x00,
    +0x50,0x00,0x05,0x00,0x13,0x01,0x00,0x00,0x45,0x01,0x00,0x00,
    +0x12,0x01,0x00,0x00,0x12,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,
    +0x13,0x01,0x00,0x00,0x46,0x01,0x00,0x00,0x2c,0x01,0x00,0x00,
    +0x45,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x13,0x01,0x00,0x00,
    +0x49,0x01,0x00,0x00,0x46,0x01,0x00,0x00,0x46,0x03,0x00,0x00,
    +0x70,0x00,0x04,0x00,0x33,0x01,0x00,0x00,0x4a,0x01,0x00,0x00,
    +0x49,0x01,0x00,0x00,0x8e,0x00,0x05,0x00,0x33,0x01,0x00,0x00,
    +0x4b,0x01,0x00,0x00,0x4a,0x01,0x00,0x00,0x42,0x01,0x00,0x00,
    +0x51,0x00,0x05,0x00,0xc3,0x00,0x00,0x00,0x4d,0x01,0x00,0x00,
    +0x3a,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xc2,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x4f,0x01,0x00,0x00,0x32,0x01,0x00,0x00,
    +0xa8,0x00,0x00,0x00,0x70,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    +0x50,0x01,0x00,0x00,0x4f,0x01,0x00,0x00,0x85,0x00,0x05,0x00,
    +0xc3,0x00,0x00,0x00,0x51,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,
    +0x50,0x01,0x00,0x00,0x50,0x00,0x05,0x00,0x33,0x01,0x00,0x00,
    +0x52,0x01,0x00,0x00,0x51,0x01,0x00,0x00,0x51,0x01,0x00,0x00,
    +0x83,0x00,0x05,0x00,0x33,0x01,0x00,0x00,0x53,0x01,0x00,0x00,
    +0x4b,0x01,0x00,0x00,0x52,0x01,0x00,0x00,0x51,0x00,0x05,0x00,
    +0xc3,0x00,0x00,0x00,0x5b,0x01,0x00,0x00,0x53,0x01,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x5c,0x01,0x00,0x00,
    +0x5d,0x01,0x00,0x00,0x58,0x01,0x00,0x00,0xf7,0x00,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x5d,0x01,0x00,0x00,0x5b,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5f,0x01,0x00,0x00,
    +0xf7,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x51,0x00,0x05,0x00,
    +0xc3,0x00,0x00,0x00,0x61,0x01,0x00,0x00,0x53,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x5c,0x01,0x00,0x00,
    +0x62,0x01,0x00,0x00,0x58,0x01,0x00,0x00,0x5f,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x62,0x01,0x00,0x00,0x61,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x69,0x01,0x00,0x00,
    +0xfb,0x02,0x00,0x00,0x67,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xdc,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xde,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x6b,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x6b,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xfc,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0xde,0x00,0x00,0x00,
    +0xb0,0x01,0x00,0x00,0x6e,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0x71,0x01,0x00,0x00,0xfc,0x02,0x00,0x00,
    +0xa6,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x6d,0x01,0x00,0x00,
    +0x6e,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x71,0x01,0x00,0x00,0x6c,0x01,0x00,0x00,0x6d,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x6c,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x75,0x01,0x00,0x00,0xa7,0x00,0x00,0x00,
    +0x7e,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x77,0x01,0x00,0x00,0x75,0x01,0x00,0x00,0xfc,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x78,0x01,0x00,0x00,
    +0x14,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x79,0x01,0x00,0x00,0x78,0x01,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x7a,0x01,0x00,0x00,
    +0x77,0x01,0x00,0x00,0x79,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,
    +0x7c,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x7a,0x01,0x00,0x00,0x7b,0x01,0x00,0x00,0x7c,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x7b,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x7f,0x01,0x00,0x00,0xeb,0x02,0x00,0x00,
    +0x79,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0x81,0x01,0x00,0x00,0x7f,0x01,0x00,0x00,0x8e,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x7c,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x7c,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0xc1,0x00,0x00,0x00,
    +0x82,0x01,0x00,0x00,0x7a,0x01,0x00,0x00,0x6c,0x01,0x00,0x00,
    +0x81,0x01,0x00,0x00,0x7b,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,
    +0x84,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x82,0x01,0x00,0x00,0x83,0x01,0x00,0x00,0xa3,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x83,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x8c,0x01,0x00,0x00,0x7e,0x00,0x00,0x00,
     0xfc,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xa8,0x01,0x00,0x00,0xa6,0x01,0x00,0x00,0xa7,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xaa,0x01,0x00,0x00,
    -0xa8,0x01,0x00,0x00,0x79,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x5c,0x01,0x00,0x00,0xab,0x01,0x00,0x00,0x89,0x01,0x00,0x00,
    -0xaa,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xab,0x01,0x00,0x00,
    -0xcb,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x84,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x84,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x6e,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x6e,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb0,0x01,0x00,0x00,
    -0xfc,0x02,0x00,0x00,0xae,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x6b,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x6d,0x01,0x00,0x00,
    -0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0xb1,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xb4,0x01,0x00,0x00,0xff,0x02,0x00,0x00,0xb2,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb7,0x01,0x00,0x00,
    -0x03,0x03,0x00,0x00,0xb5,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xb9,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xb9,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x05,0x03,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0x6d,0x01,0x00,0x00,0x60,0x02,0x00,0x00,
    -0xbc,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0xbf,0x01,0x00,0x00,0x05,0x03,0x00,0x00,0x6d,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xbb,0x01,0x00,0x00,0xbc,0x01,0x00,0x00,
    -0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xbf,0x01,0x00,0x00,
    -0xba,0x01,0x00,0x00,0xbb,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xba,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xc1,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xc1,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x09,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0xba,0x01,0x00,0x00,0xec,0x01,0x00,0x00,0xc4,0x01,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xc7,0x01,0x00,0x00,
    -0x09,0x03,0x00,0x00,0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xc3,0x01,0x00,0x00,0xc4,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xc7,0x01,0x00,0x00,0xc2,0x01,0x00,0x00,
    -0xc3,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xc2,0x01,0x00,0x00,
    +0x8e,0x01,0x00,0x00,0x8c,0x01,0x00,0x00,0x8d,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x90,0x01,0x00,0x00,
    +0x8e,0x01,0x00,0x00,0x79,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x9b,0x01,0x00,0x00,0x8c,0x01,0x00,0x00,
    +0xaa,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x9c,0x01,0x00,0x00,0x03,0x03,0x00,0x00,0x9b,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9e,0x01,0x00,0x00,
    +0x9c,0x01,0x00,0x00,0x79,0x00,0x00,0x00,0x41,0x00,0x06,0x00,
    +0x9f,0x01,0x00,0x00,0xa0,0x01,0x00,0x00,0x94,0x01,0x00,0x00,
    +0x35,0x00,0x00,0x00,0x9e,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xc3,0x00,0x00,0x00,0xa1,0x01,0x00,0x00,0xa0,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x5c,0x01,0x00,0x00,0xa2,0x01,0x00,0x00,
    +0x89,0x01,0x00,0x00,0x90,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0xa2,0x01,0x00,0x00,0xa1,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x84,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xa3,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa6,0x01,0x00,0x00,
    +0x7e,0x00,0x00,0x00,0xfc,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xa8,0x01,0x00,0x00,0xa6,0x01,0x00,0x00,
    +0xa7,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xaa,0x01,0x00,0x00,0xa8,0x01,0x00,0x00,0x79,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x5c,0x01,0x00,0x00,0xab,0x01,0x00,0x00,
    +0x89,0x01,0x00,0x00,0xaa,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0xab,0x01,0x00,0x00,0xcb,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x84,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x84,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x6e,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x6e,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xb0,0x01,0x00,0x00,0xfc,0x02,0x00,0x00,0xae,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x6b,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x6d,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0xb1,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xb4,0x01,0x00,0x00,0xff,0x02,0x00,0x00,
    +0xb2,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xb7,0x01,0x00,0x00,0x03,0x03,0x00,0x00,0xb5,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xb9,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xb9,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x05,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0x6d,0x01,0x00,0x00,
    +0x60,0x02,0x00,0x00,0xbc,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0xbf,0x01,0x00,0x00,0x05,0x03,0x00,0x00,
    +0x6d,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xbb,0x01,0x00,0x00,
    +0xbc,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xbf,0x01,0x00,0x00,0xba,0x01,0x00,0x00,0xbb,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xba,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xc1,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xc1,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x09,0x03,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0xba,0x01,0x00,0x00,0xec,0x01,0x00,0x00,
    +0xc4,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0xc7,0x01,0x00,0x00,0x09,0x03,0x00,0x00,0x61,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xc3,0x01,0x00,0x00,0xc4,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xc7,0x01,0x00,0x00,
    +0xc2,0x01,0x00,0x00,0xc3,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xc2,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xc9,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xc9,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x1b,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0xc2,0x01,0x00,0x00,0xea,0x01,0x00,0x00,0xca,0x01,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xcf,0x01,0x00,0x00,
    +0x1b,0x03,0x00,0x00,0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xcb,0x01,0x00,0x00,0xca,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xcf,0x01,0x00,0x00,0xca,0x01,0x00,0x00,
    +0xcb,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xca,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd5,0x01,0x00,0x00,
    +0x09,0x03,0x00,0x00,0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xd7,0x01,0x00,0x00,0xd5,0x01,0x00,0x00,
    +0x1b,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xd9,0x01,0x00,0x00,0x56,0x00,0x00,0x00,0x54,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdb,0x01,0x00,0x00,
    +0x09,0x03,0x00,0x00,0x62,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xdc,0x01,0x00,0x00,0xd9,0x01,0x00,0x00,
    +0xdb,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xde,0x01,0x00,0x00,0x65,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdf,0x01,0x00,0x00,
    +0xdc,0x01,0x00,0x00,0xde,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xe1,0x01,0x00,0x00,0xdf,0x01,0x00,0x00,
    +0x1b,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xe3,0x01,0x00,0x00,0xe1,0x01,0x00,0x00,0xe2,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe5,0x01,0x00,0x00,
    +0xe3,0x01,0x00,0x00,0x05,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x5c,0x01,0x00,0x00,0xe6,0x01,0x00,0x00,0x58,0x01,0x00,0x00,
    +0xe5,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    +0xe7,0x01,0x00,0x00,0xe6,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xcc,0x00,0x00,0x00,0xe8,0x01,0x00,0x00,0xd3,0x01,0x00,0x00,
    +0xd7,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xe8,0x01,0x00,0x00,
    +0xe7,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xea,0x01,0x00,0x00,0x1b,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
     0xf9,0x00,0x02,0x00,0xc9,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xc9,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x1b,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0xc2,0x01,0x00,0x00,
    -0xea,0x01,0x00,0x00,0xca,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0xcf,0x01,0x00,0x00,0x1b,0x03,0x00,0x00,
    -0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xcb,0x01,0x00,0x00,
    -0xca,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xcf,0x01,0x00,0x00,0xca,0x01,0x00,0x00,0xcb,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xca,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xd5,0x01,0x00,0x00,0x09,0x03,0x00,0x00,
    -0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xd7,0x01,0x00,0x00,0xd5,0x01,0x00,0x00,0x1b,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd9,0x01,0x00,0x00,
    -0x56,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xdb,0x01,0x00,0x00,0x09,0x03,0x00,0x00,
    -0x62,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xdc,0x01,0x00,0x00,0xd9,0x01,0x00,0x00,0xdb,0x01,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xde,0x01,0x00,0x00,
    -0x65,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xdf,0x01,0x00,0x00,0xdc,0x01,0x00,0x00,
    -0xde,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xe1,0x01,0x00,0x00,0xdf,0x01,0x00,0x00,0x1b,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe3,0x01,0x00,0x00,
    -0xe1,0x01,0x00,0x00,0xe2,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xe5,0x01,0x00,0x00,0xe3,0x01,0x00,0x00,
    -0x05,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x5c,0x01,0x00,0x00,
    -0xe6,0x01,0x00,0x00,0x58,0x01,0x00,0x00,0xe5,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0xe7,0x01,0x00,0x00,
    -0xe6,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,
    -0xe8,0x01,0x00,0x00,0xd3,0x01,0x00,0x00,0xd7,0x01,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0xe8,0x01,0x00,0x00,0xe7,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xea,0x01,0x00,0x00,
    -0x1b,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xc9,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xcb,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xc4,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xc4,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xec,0x01,0x00,0x00,0x09,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xc1,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xc3,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xee,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xee,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x0a,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0xc3,0x01,0x00,0x00,0x1a,0x02,0x00,0x00,0xf1,0x01,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xf4,0x01,0x00,0x00,
    -0x0a,0x03,0x00,0x00,0xbe,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xf0,0x01,0x00,0x00,0xf1,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xf4,0x01,0x00,0x00,0xef,0x01,0x00,0x00,
    -0xf0,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xef,0x01,0x00,0x00,
    +0xcb,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xc4,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xc4,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xec,0x01,0x00,0x00,0x09,0x03,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xc1,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xc3,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xee,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xee,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x0a,0x03,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0xc3,0x01,0x00,0x00,0x1a,0x02,0x00,0x00,
    +0xf1,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0xf4,0x01,0x00,0x00,0x0a,0x03,0x00,0x00,0xbe,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xf0,0x01,0x00,0x00,0xf1,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xf4,0x01,0x00,0x00,
    +0xef,0x01,0x00,0x00,0xf0,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xef,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xf6,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xf6,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x18,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0xef,0x01,0x00,0x00,0x18,0x02,0x00,0x00,0xf7,0x01,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xfc,0x01,0x00,0x00,
    +0x18,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xf8,0x01,0x00,0x00,0xf7,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xfc,0x01,0x00,0x00,0xf7,0x01,0x00,0x00,
    +0xf8,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xf7,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x02,0x02,0x00,0x00,
    +0x0a,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x04,0x02,0x00,0x00,0x02,0x02,0x00,0x00,
    +0x18,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x02,0x00,0x00,0x5a,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x09,0x02,0x00,0x00,
    +0x0a,0x03,0x00,0x00,0x08,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x0a,0x02,0x00,0x00,0x06,0x02,0x00,0x00,
    +0x09,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x0c,0x02,0x00,0x00,0x69,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0d,0x02,0x00,0x00,
    +0x0a,0x02,0x00,0x00,0x0c,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x0f,0x02,0x00,0x00,0x0d,0x02,0x00,0x00,
    +0x18,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x11,0x02,0x00,0x00,0x0f,0x02,0x00,0x00,0x10,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x13,0x02,0x00,0x00,
    +0x11,0x02,0x00,0x00,0x05,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x5c,0x01,0x00,0x00,0x14,0x02,0x00,0x00,0x89,0x01,0x00,0x00,
    +0x13,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    +0x15,0x02,0x00,0x00,0x14,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xcc,0x00,0x00,0x00,0x16,0x02,0x00,0x00,0x00,0x02,0x00,0x00,
    +0x04,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0x16,0x02,0x00,0x00,
    +0x15,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x18,0x02,0x00,0x00,0x18,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
     0xf9,0x00,0x02,0x00,0xf6,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xf6,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x18,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0xef,0x01,0x00,0x00,
    -0x18,0x02,0x00,0x00,0xf7,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0xfc,0x01,0x00,0x00,0x18,0x03,0x00,0x00,
    -0xbb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xf8,0x01,0x00,0x00,
    -0xf7,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xfc,0x01,0x00,0x00,0xf7,0x01,0x00,0x00,0xf8,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xf7,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x02,0x02,0x00,0x00,0x0a,0x03,0x00,0x00,
    -0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x04,0x02,0x00,0x00,0x02,0x02,0x00,0x00,0x18,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x06,0x02,0x00,0x00,
    -0x5a,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x09,0x02,0x00,0x00,0x0a,0x03,0x00,0x00,
    -0x08,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x0a,0x02,0x00,0x00,0x06,0x02,0x00,0x00,0x09,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0c,0x02,0x00,0x00,
    -0x69,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x0d,0x02,0x00,0x00,0x0a,0x02,0x00,0x00,
    -0x0c,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x0f,0x02,0x00,0x00,0x0d,0x02,0x00,0x00,0x18,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x11,0x02,0x00,0x00,
    -0x0f,0x02,0x00,0x00,0x10,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x13,0x02,0x00,0x00,0x11,0x02,0x00,0x00,
    -0x05,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x5c,0x01,0x00,0x00,
    -0x14,0x02,0x00,0x00,0x89,0x01,0x00,0x00,0x13,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x15,0x02,0x00,0x00,
    -0x14,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,
    -0x16,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x04,0x02,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x16,0x02,0x00,0x00,0x15,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x18,0x02,0x00,0x00,
    -0x18,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xf6,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xf8,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xf1,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xf1,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x1a,0x02,0x00,0x00,0x0a,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xee,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xf0,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x1c,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x1c,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x0b,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0xf0,0x01,0x00,0x00,0x5e,0x02,0x00,0x00,0x1f,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x22,0x02,0x00,0x00,
    -0x0b,0x03,0x00,0x00,0xbe,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x1e,0x02,0x00,0x00,0x1f,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x22,0x02,0x00,0x00,0x1d,0x02,0x00,0x00,
    -0x1e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x1d,0x02,0x00,0x00,
    +0xf8,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xf1,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xf1,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x1a,0x02,0x00,0x00,0x0a,0x03,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xee,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xf0,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x1c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x1c,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x0b,0x03,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0xf0,0x01,0x00,0x00,0x5e,0x02,0x00,0x00,
    +0x1f,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0x22,0x02,0x00,0x00,0x0b,0x03,0x00,0x00,0xbe,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x1e,0x02,0x00,0x00,0x1f,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x22,0x02,0x00,0x00,
    +0x1d,0x02,0x00,0x00,0x1e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x1d,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x24,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x24,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x0f,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x1d,0x02,0x00,0x00,0x5c,0x02,0x00,0x00,0x27,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x2a,0x02,0x00,0x00,
    +0x0f,0x03,0x00,0x00,0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x26,0x02,0x00,0x00,0x27,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x2a,0x02,0x00,0x00,0x25,0x02,0x00,0x00,
    +0x26,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x25,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x2c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x2c,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x11,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0x25,0x02,0x00,0x00,
    +0x5a,0x02,0x00,0x00,0x2f,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0x32,0x02,0x00,0x00,0x11,0x03,0x00,0x00,
    +0xbb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x2e,0x02,0x00,0x00,
    +0x2f,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x32,0x02,0x00,0x00,0x2d,0x02,0x00,0x00,0x2e,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x2d,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x34,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x34,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x13,0x03,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0x2d,0x02,0x00,0x00,0x58,0x02,0x00,0x00,
    +0x35,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0x3a,0x02,0x00,0x00,0x13,0x03,0x00,0x00,0x63,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x36,0x02,0x00,0x00,0x35,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x3a,0x02,0x00,0x00,
    +0x35,0x02,0x00,0x00,0x36,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x35,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x3c,0x02,0x00,0x00,0x0b,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3e,0x02,0x00,0x00,
    +0x3c,0x02,0x00,0x00,0x11,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x40,0x02,0x00,0x00,0x3e,0x02,0x00,0x00,
    +0x3f,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x42,0x02,0x00,0x00,0x0f,0x03,0x00,0x00,0x63,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x43,0x02,0x00,0x00,
    +0x40,0x02,0x00,0x00,0x42,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x45,0x02,0x00,0x00,0x43,0x02,0x00,0x00,
    +0x13,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x49,0x02,0x00,0x00,0x42,0x02,0x00,0x00,0x13,0x03,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,0x4a,0x02,0x00,0x00,
    +0xd3,0x01,0x00,0x00,0x49,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xc3,0x00,0x00,0x00,0x4b,0x02,0x00,0x00,0x4a,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,0x50,0x02,0x00,0x00,
    +0x00,0x02,0x00,0x00,0x3e,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xc3,0x00,0x00,0x00,0x51,0x02,0x00,0x00,0x50,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,0x53,0x02,0x00,0x00,
    +0xc9,0x00,0x00,0x00,0x45,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xc3,0x00,0x00,0x00,0x54,0x02,0x00,0x00,0x53,0x02,0x00,0x00,
    +0x0c,0x00,0x08,0x00,0xc3,0x00,0x00,0x00,0x55,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x4b,0x02,0x00,0x00,
    +0x51,0x02,0x00,0x00,0x54,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x53,0x02,0x00,0x00,0x55,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x58,0x02,0x00,0x00,0x13,0x03,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x34,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x36,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x2f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x2f,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5a,0x02,0x00,0x00,
    +0x11,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x2c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x2e,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x27,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x27,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x5c,0x02,0x00,0x00,0x0f,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
     0xf9,0x00,0x02,0x00,0x24,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x24,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x0f,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0x1d,0x02,0x00,0x00,
    -0x5c,0x02,0x00,0x00,0x27,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0x2a,0x02,0x00,0x00,0x0f,0x03,0x00,0x00,
    -0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x26,0x02,0x00,0x00,
    -0x27,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x2a,0x02,0x00,0x00,0x25,0x02,0x00,0x00,0x26,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x25,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x2c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x2c,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x11,0x03,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0x25,0x02,0x00,0x00,0x5a,0x02,0x00,0x00,
    -0x2f,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0x32,0x02,0x00,0x00,0x11,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x2e,0x02,0x00,0x00,0x2f,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x32,0x02,0x00,0x00,
    -0x2d,0x02,0x00,0x00,0x2e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x2d,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x34,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x34,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x13,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0x2d,0x02,0x00,0x00,0x58,0x02,0x00,0x00,0x35,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x3a,0x02,0x00,0x00,
    -0x13,0x03,0x00,0x00,0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x36,0x02,0x00,0x00,0x35,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x3a,0x02,0x00,0x00,0x35,0x02,0x00,0x00,
    -0x36,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x35,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3c,0x02,0x00,0x00,
    -0x0b,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x3e,0x02,0x00,0x00,0x3c,0x02,0x00,0x00,
    -0x11,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x40,0x02,0x00,0x00,0x3e,0x02,0x00,0x00,0x3f,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x42,0x02,0x00,0x00,
    -0x0f,0x03,0x00,0x00,0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x43,0x02,0x00,0x00,0x40,0x02,0x00,0x00,
    -0x42,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x45,0x02,0x00,0x00,0x43,0x02,0x00,0x00,0x13,0x03,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x49,0x02,0x00,0x00,
    -0x42,0x02,0x00,0x00,0x13,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xcc,0x00,0x00,0x00,0x4a,0x02,0x00,0x00,0xd3,0x01,0x00,0x00,
    -0x49,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    -0x4b,0x02,0x00,0x00,0x4a,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xcc,0x00,0x00,0x00,0x50,0x02,0x00,0x00,0x00,0x02,0x00,0x00,
    -0x3e,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    -0x51,0x02,0x00,0x00,0x50,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xcc,0x00,0x00,0x00,0x53,0x02,0x00,0x00,0xc9,0x00,0x00,0x00,
    -0x45,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    -0x54,0x02,0x00,0x00,0x53,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,
    -0xc3,0x00,0x00,0x00,0x55,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x32,0x00,0x00,0x00,0x4b,0x02,0x00,0x00,0x51,0x02,0x00,0x00,
    -0x54,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0x53,0x02,0x00,0x00,
    -0x55,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x58,0x02,0x00,0x00,0x13,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x34,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x36,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x2f,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x2f,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x5a,0x02,0x00,0x00,0x11,0x03,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x2c,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x2e,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x27,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x27,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5c,0x02,0x00,0x00,
    -0x0f,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x24,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x26,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x1f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x1f,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x5e,0x02,0x00,0x00,0x0b,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x1c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x1e,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xbc,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xbc,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x60,0x02,0x00,0x00,0x05,0x03,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xb9,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xbb,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,
    -0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xb1,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xd6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xd6,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x62,0x02,0x00,0x00,0xeb,0x02,0x00,0x00,0x6d,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xd3,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xd5,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x67,0x02,0x00,0x00,0x56,0x00,0x00,0x00,0x54,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x68,0x02,0x00,0x00,
    -0x96,0x00,0x00,0x00,0x67,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x6d,0x02,0x00,0x00,0x5a,0x00,0x00,0x00,
    -0xb8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x6e,0x02,0x00,0x00,0xa7,0x00,0x00,0x00,0x6d,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x72,0x02,0x00,0x00,
    -0x14,0x00,0x00,0x00,0x71,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x73,0x02,0x00,0x00,0x72,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x74,0x02,0x00,0x00,
    -0x0f,0x00,0x00,0x00,0x73,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x78,0x02,0x00,0x00,0x48,0x00,0x00,0x00,
    -0x73,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,
    -0x7a,0x02,0x00,0x00,0x79,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x7b,0x02,0x00,0x00,
    -0x7a,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x7c,0x02,0x00,0x00,0x78,0x02,0x00,0x00,0x7b,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7d,0x02,0x00,0x00,
    -0x74,0x02,0x00,0x00,0x7c,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x7f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x7f,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xec,0x02,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0xe5,0x02,0x00,0x00,
    -0x82,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0x85,0x02,0x00,0x00,0xec,0x02,0x00,0x00,0xbe,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x81,0x02,0x00,0x00,0x82,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x85,0x02,0x00,0x00,
    -0x80,0x02,0x00,0x00,0x81,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x80,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x87,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x87,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xed,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0x80,0x02,0x00,0x00,0xe3,0x02,0x00,0x00,0x8a,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x8d,0x02,0x00,0x00,
    -0xed,0x02,0x00,0x00,0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x89,0x02,0x00,0x00,0x8a,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x8d,0x02,0x00,0x00,0x88,0x02,0x00,0x00,
    -0x89,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x88,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x91,0x02,0x00,0x00,
    -0xed,0x02,0x00,0x00,0x62,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x92,0x02,0x00,0x00,0x68,0x02,0x00,0x00,
    -0x91,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x94,0x02,0x00,0x00,0x65,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x95,0x02,0x00,0x00,
    -0x92,0x02,0x00,0x00,0x94,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x99,0x02,0x00,0x00,0xec,0x02,0x00,0x00,
    -0x08,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x9a,0x02,0x00,0x00,0x6e,0x02,0x00,0x00,0x99,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9c,0x02,0x00,0x00,
    -0x69,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x9d,0x02,0x00,0x00,0x9a,0x02,0x00,0x00,
    -0x9c,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x9f,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x9f,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xef,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0x88,0x02,0x00,0x00,0xe1,0x02,0x00,0x00,0xa2,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xa5,0x02,0x00,0x00,
    -0xef,0x02,0x00,0x00,0xbb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xa1,0x02,0x00,0x00,0xa2,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xa5,0x02,0x00,0x00,0xa0,0x02,0x00,0x00,
    -0xa1,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xa0,0x02,0x00,0x00,
    +0x26,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x1f,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x1f,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x5e,0x02,0x00,0x00,0x0b,0x03,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x1c,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x1e,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xbc,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xbc,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x60,0x02,0x00,0x00,
    +0x05,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xb9,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xbb,0x01,0x00,0x00,
    +0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0xb1,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xd6,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xd6,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x62,0x02,0x00,0x00,0xeb,0x02,0x00,0x00,
    +0x6d,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xd3,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xd5,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x67,0x02,0x00,0x00,0x56,0x00,0x00,0x00,
    +0x54,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x68,0x02,0x00,0x00,0x96,0x00,0x00,0x00,0x67,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6d,0x02,0x00,0x00,
    +0x5a,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x6e,0x02,0x00,0x00,0xa7,0x00,0x00,0x00,
    +0x6d,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    +0x72,0x02,0x00,0x00,0x14,0x00,0x00,0x00,0x71,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x73,0x02,0x00,0x00,
    +0x72,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x74,0x02,0x00,0x00,0x0f,0x00,0x00,0x00,0x73,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x78,0x02,0x00,0x00,
    +0x48,0x00,0x00,0x00,0x73,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x0d,0x00,0x00,0x00,0x7a,0x02,0x00,0x00,0x79,0x02,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x7b,0x02,0x00,0x00,0x7a,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x7c,0x02,0x00,0x00,0x78,0x02,0x00,0x00,
    +0x7b,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x7d,0x02,0x00,0x00,0x74,0x02,0x00,0x00,0x7c,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x7f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x7f,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xec,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,
    +0xe5,0x02,0x00,0x00,0x82,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0x85,0x02,0x00,0x00,0xec,0x02,0x00,0x00,
    +0xbe,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x81,0x02,0x00,0x00,
    +0x82,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x85,0x02,0x00,0x00,0x80,0x02,0x00,0x00,0x81,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x80,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x87,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x87,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xed,0x02,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0x80,0x02,0x00,0x00,0xe3,0x02,0x00,0x00,
    +0x8a,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0x8d,0x02,0x00,0x00,0xed,0x02,0x00,0x00,0x61,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x89,0x02,0x00,0x00,0x8a,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x8d,0x02,0x00,0x00,
    +0x88,0x02,0x00,0x00,0x89,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x88,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x91,0x02,0x00,0x00,0xed,0x02,0x00,0x00,0x62,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x92,0x02,0x00,0x00,
    +0x68,0x02,0x00,0x00,0x91,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x94,0x02,0x00,0x00,0x65,0x00,0x00,0x00,
    +0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x95,0x02,0x00,0x00,0x92,0x02,0x00,0x00,0x94,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x99,0x02,0x00,0x00,
    +0xec,0x02,0x00,0x00,0x08,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x9a,0x02,0x00,0x00,0x6e,0x02,0x00,0x00,
    +0x99,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x9c,0x02,0x00,0x00,0x69,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9d,0x02,0x00,0x00,
    +0x9a,0x02,0x00,0x00,0x9c,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x9f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x9f,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xef,0x02,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0x88,0x02,0x00,0x00,0xe1,0x02,0x00,0x00,
    +0xa2,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0xa5,0x02,0x00,0x00,0xef,0x02,0x00,0x00,0xbb,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xa1,0x02,0x00,0x00,0xa2,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xa5,0x02,0x00,0x00,
    +0xa0,0x02,0x00,0x00,0xa1,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xa0,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xa7,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xa7,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xf1,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0xa0,0x02,0x00,0x00,0xdf,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xad,0x02,0x00,0x00,
    +0xf1,0x02,0x00,0x00,0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xa9,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xad,0x02,0x00,0x00,0xa8,0x02,0x00,0x00,
    +0xa9,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xa8,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb0,0x02,0x00,0x00,
    +0x95,0x02,0x00,0x00,0xf1,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0xb3,0x02,0x00,0x00,0xb0,0x02,0x00,0x00,
    +0x37,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0xb5,0x02,0x00,0x00,
    +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xb3,0x02,0x00,0x00,
    +0xb4,0x02,0x00,0x00,0xb5,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xb4,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xb8,0x02,0x00,0x00,0x9d,0x02,0x00,0x00,0xef,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xb9,0x02,0x00,0x00,
    +0x14,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0xba,0x02,0x00,0x00,0xb9,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xbb,0x02,0x00,0x00,
    +0xb8,0x02,0x00,0x00,0xba,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xb5,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xb5,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0xc1,0x00,0x00,0x00,0xbc,0x02,0x00,0x00,
    +0xb3,0x02,0x00,0x00,0xa8,0x02,0x00,0x00,0xbb,0x02,0x00,0x00,
    +0xb4,0x02,0x00,0x00,0xf7,0x00,0x03,0x00,0xbe,0x02,0x00,0x00,
    +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xbc,0x02,0x00,0x00,
    +0xbd,0x02,0x00,0x00,0xbe,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xbd,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xc6,0x02,0x00,0x00,0x9d,0x02,0x00,0x00,0xef,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xc8,0x02,0x00,0x00,
    +0x14,0x00,0x00,0x00,0xc7,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0xc9,0x02,0x00,0x00,0xc8,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xca,0x02,0x00,0x00,
    +0xc6,0x02,0x00,0x00,0xc9,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xcb,0x02,0x00,0x00,0x7d,0x02,0x00,0x00,
    +0xca,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xcd,0x02,0x00,0x00,0xcb,0x02,0x00,0x00,0x95,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xcf,0x02,0x00,0x00,
    +0xcd,0x02,0x00,0x00,0xf1,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xd1,0x02,0x00,0x00,0xec,0x02,0x00,0x00,
    +0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xd3,0x02,0x00,0x00,0xd1,0x02,0x00,0x00,0xef,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd5,0x02,0x00,0x00,
    +0xd3,0x02,0x00,0x00,0xd4,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xd7,0x02,0x00,0x00,0xed,0x02,0x00,0x00,
    +0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xd8,0x02,0x00,0x00,0xd5,0x02,0x00,0x00,0xd7,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xda,0x02,0x00,0x00,
    +0xd8,0x02,0x00,0x00,0xf1,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xcc,0x00,0x00,0x00,0xdb,0x02,0x00,0x00,0xc9,0x00,0x00,0x00,
    +0xda,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    +0xdc,0x02,0x00,0x00,0xdb,0x02,0x00,0x00,0x41,0x00,0x06,0x00,
    +0x9f,0x01,0x00,0x00,0xdd,0x02,0x00,0x00,0xc2,0x02,0x00,0x00,
    +0x35,0x00,0x00,0x00,0xcf,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0xdd,0x02,0x00,0x00,0xdc,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xbe,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xbe,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xaa,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xaa,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xdf,0x02,0x00,0x00,0xf1,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,
     0xf9,0x00,0x02,0x00,0xa7,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xa7,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xf1,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0xa0,0x02,0x00,0x00,
    -0xdf,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0xad,0x02,0x00,0x00,0xf1,0x02,0x00,0x00,
    -0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xa9,0x02,0x00,0x00,
    -0xaa,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xad,0x02,0x00,0x00,0xa8,0x02,0x00,0x00,0xa9,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xa8,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xb0,0x02,0x00,0x00,0x95,0x02,0x00,0x00,
    -0xf1,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0xb3,0x02,0x00,0x00,0xb0,0x02,0x00,0x00,0x37,0x00,0x00,0x00,
    -0xf7,0x00,0x03,0x00,0xb5,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xb3,0x02,0x00,0x00,0xb4,0x02,0x00,0x00,
    -0xb5,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xb4,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb8,0x02,0x00,0x00,
    -0x9d,0x02,0x00,0x00,0xef,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x17,0x00,0x00,0x00,0xb9,0x02,0x00,0x00,0x14,0x00,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0xba,0x02,0x00,0x00,0xb9,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0xbb,0x02,0x00,0x00,0xb8,0x02,0x00,0x00,
    -0xba,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xb5,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xb5,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0xc1,0x00,0x00,0x00,0xbc,0x02,0x00,0x00,0xb3,0x02,0x00,0x00,
    -0xa8,0x02,0x00,0x00,0xbb,0x02,0x00,0x00,0xb4,0x02,0x00,0x00,
    -0xf7,0x00,0x03,0x00,0xbe,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xbc,0x02,0x00,0x00,0xbd,0x02,0x00,0x00,
    -0xbe,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xbd,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc6,0x02,0x00,0x00,
    -0x9d,0x02,0x00,0x00,0xef,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x17,0x00,0x00,0x00,0xc8,0x02,0x00,0x00,0x14,0x00,0x00,0x00,
    -0xc7,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0xc9,0x02,0x00,0x00,0xc8,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xca,0x02,0x00,0x00,0xc6,0x02,0x00,0x00,
    -0xc9,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xcb,0x02,0x00,0x00,0x7d,0x02,0x00,0x00,0xca,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xcd,0x02,0x00,0x00,
    -0xcb,0x02,0x00,0x00,0x95,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xcf,0x02,0x00,0x00,0xcd,0x02,0x00,0x00,
    -0xf1,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xd1,0x02,0x00,0x00,0xec,0x02,0x00,0x00,0xbb,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd3,0x02,0x00,0x00,
    -0xd1,0x02,0x00,0x00,0xef,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xd5,0x02,0x00,0x00,0xd3,0x02,0x00,0x00,
    -0xd4,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xd7,0x02,0x00,0x00,0xed,0x02,0x00,0x00,0x63,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd8,0x02,0x00,0x00,
    -0xd5,0x02,0x00,0x00,0xd7,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xda,0x02,0x00,0x00,0xd8,0x02,0x00,0x00,
    -0xf1,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,
    -0xdb,0x02,0x00,0x00,0xc9,0x00,0x00,0x00,0xda,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0xdc,0x02,0x00,0x00,
    -0xdb,0x02,0x00,0x00,0x41,0x00,0x06,0x00,0x9f,0x01,0x00,0x00,
    -0xdd,0x02,0x00,0x00,0xc2,0x02,0x00,0x00,0x35,0x00,0x00,0x00,
    -0xcf,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0xdd,0x02,0x00,0x00,
    -0xdc,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xbe,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xbe,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xaa,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xaa,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdf,0x02,0x00,0x00,
    -0xf1,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xa7,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xa9,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xa2,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xa2,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xe1,0x02,0x00,0x00,0xef,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x9f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xa1,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x8a,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x8a,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xe3,0x02,0x00,0x00,0xed,0x02,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x87,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x89,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x82,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x82,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe5,0x02,0x00,0x00,
    -0xec,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x7f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x81,0x02,0x00,0x00,
    -0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
    +0xa9,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xa2,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xa2,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xe1,0x02,0x00,0x00,0xef,0x02,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x9f,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xa1,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x8a,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x8a,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe3,0x02,0x00,0x00,
    +0xed,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x87,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x89,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x82,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x82,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xe5,0x02,0x00,0x00,0xec,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x7f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x81,0x02,0x00,0x00,0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
    +
     };
    -const uint64_t matmul_q2_k_f32_fp32_len = 11120;
    +const uint64_t matmul_q2_k_f32_fp32_len = 11100;
     
     unsigned char matmul_q3_k_f32_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
    @@ -81315,9 +85021,9 @@ unsigned char matmul_q3_k_f32_data[] = {
     0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
     0x10,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x6e,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x73,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x78,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
     0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x7d,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    @@ -81411,7 +85117,7 @@ unsigned char matmul_q3_k_f32_data[] = {
     0xe7,0x01,0x00,0x00,0x51,0x00,0x00,0x00,0xe6,0x01,0x00,0x00,
     0x00,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0xe8,0x01,0x00,0x00,0x84,0x00,0x00,0x00,0xe7,0x01,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0xe9,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0xe8,0x01,0x00,0x00,
     0x6d,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x07,0x02,0x00,0x00,0x80,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    @@ -81441,7 +85147,7 @@ unsigned char matmul_q3_k_f32_data[] = {
     0x31,0x02,0x00,0x00,0x6d,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x35,0x02,0x00,0x00,0x08,0x01,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x36,0x02,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x39,0x02,0x00,0x00,
     0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x54,0x02,0x00,0x00,
    @@ -81570,7 +85276,7 @@ unsigned char matmul_q3_k_f32_data[] = {
     0x94,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,
     0x84,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x9e,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x9e,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
     0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,
     0x14,0x00,0x00,0x00,0xa1,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,
    @@ -81628,645 +85334,643 @@ unsigned char matmul_q3_k_f32_data[] = {
     0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xea,0x00,0x00,0x00,
     0xe7,0x00,0x00,0x00,0x99,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0xea,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xec,0x00,0x00,0x00,0x82,0x03,0x00,0x00,0xeb,0x00,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xee,0x00,0x00,0x00,
     0xec,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,
    -0xf3,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xf6,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,
    -0xf4,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0xee,0x00,0x00,0x00,
    -0xfa,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xfe,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,
    -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x02,0x01,0x00,0x00,
    -0xfe,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x06,0x01,0x00,0x00,0x02,0x01,0x00,0x00,
    -0x05,0x01,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x09,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,0x08,0x01,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0a,0x01,0x00,0x00,
    -0x09,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x0b,0x01,0x00,0x00,0x06,0x01,0x00,0x00,
    -0x0a,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x18,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,0x17,0x01,0x00,0x00,
    -0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1b,0x01,0x00,0x00,
    -0xfe,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x86,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,0x1b,0x01,0x00,0x00,
    +0xf3,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xf7,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
    +0xee,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,0x89,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0xee,0x00,0x00,0x00,
    +0xfa,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x02,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,0x01,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x06,0x01,0x00,0x00,
    +0x02,0x01,0x00,0x00,0x05,0x01,0x00,0x00,0x89,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x09,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,
     0x08,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x1f,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x22,0x01,0x00,0x00,
    -0x13,0x01,0x00,0x00,0x02,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x24,0x01,0x00,0x00,0x22,0x01,0x00,0x00,
    -0x1c,0x01,0x00,0x00,0xc4,0x00,0x05,0x00,0x15,0x00,0x00,0x00,
    -0x25,0x01,0x00,0x00,0xcf,0x00,0x00,0x00,0x24,0x01,0x00,0x00,
    -0x7c,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x26,0x01,0x00,0x00,
    -0x25,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0x2b,0x01,0x00,0x00,0x18,0x01,0x00,0x00,0x13,0x01,0x00,0x00,
    -0xf7,0x00,0x03,0x00,0x2f,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x2b,0x01,0x00,0x00,0x2e,0x01,0x00,0x00,
    -0x50,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x2e,0x01,0x00,0x00,
    -0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3d,0x01,0x00,0x00,
    -0x18,0x01,0x00,0x00,0x3f,0x00,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x3e,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,
    -0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x3d,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x30,0x01,0x00,0x00,
    -0x40,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x41,0x01,0x00,0x00,0x40,0x01,0x00,0x00,
    -0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x42,0x01,0x00,0x00,
    -0x41,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x15,0x00,0x00,0x00,
    -0x44,0x01,0x00,0x00,0x42,0x01,0x00,0x00,0x43,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x47,0x01,0x00,0x00,
    +0x0a,0x01,0x00,0x00,0x09,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0b,0x01,0x00,0x00,
    +0x06,0x01,0x00,0x00,0x0a,0x01,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x18,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,
    +0x17,0x01,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x1b,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,0x01,0x01,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,
    +0x1b,0x01,0x00,0x00,0x08,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x1f,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x22,0x01,0x00,0x00,0x13,0x01,0x00,0x00,0x02,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x24,0x01,0x00,0x00,
    +0x22,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,0xc4,0x00,0x05,0x00,
    +0x15,0x00,0x00,0x00,0x25,0x01,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0x24,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x26,0x01,0x00,0x00,0x25,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0x2b,0x01,0x00,0x00,0x18,0x01,0x00,0x00,
    +0x13,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,0x2f,0x01,0x00,0x00,
    +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x2b,0x01,0x00,0x00,
    +0x2e,0x01,0x00,0x00,0x50,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x2e,0x01,0x00,0x00,0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x3d,0x01,0x00,0x00,0x18,0x01,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x3e,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,
    +0x3a,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x3d,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x30,0x01,0x00,0x00,0x40,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x41,0x01,0x00,0x00,
    +0x40,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    +0x42,0x01,0x00,0x00,0x41,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
    +0x15,0x00,0x00,0x00,0x44,0x01,0x00,0x00,0x42,0x01,0x00,0x00,
    +0x43,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x47,0x01,0x00,0x00,0x18,0x01,0x00,0x00,0x17,0x01,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x3e,0x01,0x00,0x00,0x48,0x01,0x00,0x00,
    +0x3a,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x47,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x30,0x01,0x00,0x00,0x49,0x01,0x00,0x00,0x48,0x01,0x00,0x00,
    +0xc2,0x00,0x05,0x00,0x30,0x01,0x00,0x00,0x4a,0x01,0x00,0x00,
    +0x49,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x4b,0x01,0x00,0x00,0x4a,0x01,0x00,0x00,
    +0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x4c,0x01,0x00,0x00,
    +0x4b,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x15,0x00,0x00,0x00,
    +0x4d,0x01,0x00,0x00,0x4c,0x01,0x00,0x00,0x97,0x00,0x00,0x00,
    +0xc4,0x00,0x05,0x00,0x15,0x00,0x00,0x00,0x4e,0x01,0x00,0x00,
    +0x4d,0x01,0x00,0x00,0xa8,0x00,0x00,0x00,0xc5,0x00,0x05,0x00,
    +0x15,0x00,0x00,0x00,0x4f,0x01,0x00,0x00,0x44,0x01,0x00,0x00,
    +0x4e,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x2f,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x50,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0x52,0x01,0x00,0x00,0x18,0x01,0x00,0x00,
    +0x17,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,0x55,0x01,0x00,0x00,
    +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x52,0x01,0x00,0x00,
    +0x54,0x01,0x00,0x00,0x69,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x54,0x01,0x00,0x00,0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x58,0x01,0x00,0x00,0x18,0x01,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x3e,0x01,0x00,0x00,0x59,0x01,0x00,0x00,
    +0x3a,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x58,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x30,0x01,0x00,0x00,0x5a,0x01,0x00,0x00,0x59,0x01,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x5b,0x01,0x00,0x00,
    +0x5a,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    +0x5c,0x01,0x00,0x00,0x5b,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
    +0x15,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,0x5c,0x01,0x00,0x00,
    +0x43,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x60,0x01,0x00,0x00,0x18,0x01,0x00,0x00,0x13,0x01,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x3e,0x01,0x00,0x00,0x61,0x01,0x00,0x00,
    +0x3a,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x60,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x30,0x01,0x00,0x00,0x62,0x01,0x00,0x00,0x61,0x01,0x00,0x00,
    +0xc2,0x00,0x05,0x00,0x30,0x01,0x00,0x00,0x63,0x01,0x00,0x00,
    +0x62,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x64,0x01,0x00,0x00,0x63,0x01,0x00,0x00,
    +0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x65,0x01,0x00,0x00,
    +0x64,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x15,0x00,0x00,0x00,
    +0x66,0x01,0x00,0x00,0x65,0x01,0x00,0x00,0x97,0x00,0x00,0x00,
    +0xc4,0x00,0x05,0x00,0x15,0x00,0x00,0x00,0x67,0x01,0x00,0x00,
    +0x66,0x01,0x00,0x00,0xa8,0x00,0x00,0x00,0xc5,0x00,0x05,0x00,
    +0x15,0x00,0x00,0x00,0x68,0x01,0x00,0x00,0x5d,0x01,0x00,0x00,
    +0x67,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x55,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x69,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0x6b,0x01,0x00,0x00,0x18,0x01,0x00,0x00,
    +0x33,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,0x6e,0x01,0x00,0x00,
    +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x6b,0x01,0x00,0x00,
    +0x6d,0x01,0x00,0x00,0x82,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x6d,0x01,0x00,0x00,0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x71,0x01,0x00,0x00,0x18,0x01,0x00,0x00,0x17,0x01,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x3e,0x01,0x00,0x00,0x72,0x01,0x00,0x00,
    +0x3a,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x71,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x30,0x01,0x00,0x00,0x73,0x01,0x00,0x00,0x72,0x01,0x00,0x00,
    +0xc2,0x00,0x05,0x00,0x30,0x01,0x00,0x00,0x74,0x01,0x00,0x00,
    +0x73,0x01,0x00,0x00,0xa8,0x00,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x75,0x01,0x00,0x00,0x74,0x01,0x00,0x00,
    +0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x76,0x01,0x00,0x00,
    +0x75,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x3e,0x01,0x00,0x00,
    +0x7a,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    +0xfb,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x18,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x30,0x01,0x00,0x00,0x7b,0x01,0x00,0x00,
    +0x7a,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x30,0x01,0x00,0x00,
    +0x7c,0x01,0x00,0x00,0x7b,0x01,0x00,0x00,0xa8,0x00,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x7d,0x01,0x00,0x00,
    +0x7c,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    +0x7e,0x01,0x00,0x00,0x7d,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
    +0x15,0x00,0x00,0x00,0x7f,0x01,0x00,0x00,0x7e,0x01,0x00,0x00,
    +0x97,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x15,0x00,0x00,0x00,
    +0x80,0x01,0x00,0x00,0x7f,0x01,0x00,0x00,0xa8,0x00,0x00,0x00,
    +0xc5,0x00,0x05,0x00,0x15,0x00,0x00,0x00,0x81,0x01,0x00,0x00,
    +0x76,0x01,0x00,0x00,0x80,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x6e,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x82,0x01,0x00,0x00,
    +0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x85,0x01,0x00,0x00,
     0x18,0x01,0x00,0x00,0x17,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x3e,0x01,0x00,0x00,0x48,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,
    -0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x47,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x30,0x01,0x00,0x00,
    -0x49,0x01,0x00,0x00,0x48,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,
    -0x30,0x01,0x00,0x00,0x4a,0x01,0x00,0x00,0x49,0x01,0x00,0x00,
    -0x35,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x4b,0x01,0x00,0x00,0x4a,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    -0x15,0x00,0x00,0x00,0x4c,0x01,0x00,0x00,0x4b,0x01,0x00,0x00,
    -0xc7,0x00,0x05,0x00,0x15,0x00,0x00,0x00,0x4d,0x01,0x00,0x00,
    -0x4c,0x01,0x00,0x00,0x97,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,
    -0x15,0x00,0x00,0x00,0x4e,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,
    -0xa8,0x00,0x00,0x00,0xc5,0x00,0x05,0x00,0x15,0x00,0x00,0x00,
    -0x4f,0x01,0x00,0x00,0x44,0x01,0x00,0x00,0x4e,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x2f,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x50,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0x52,0x01,0x00,0x00,0x18,0x01,0x00,0x00,0x17,0x01,0x00,0x00,
    -0xf7,0x00,0x03,0x00,0x55,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x52,0x01,0x00,0x00,0x54,0x01,0x00,0x00,
    -0x69,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x54,0x01,0x00,0x00,
    -0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x58,0x01,0x00,0x00,
    -0x18,0x01,0x00,0x00,0x3f,0x00,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x3e,0x01,0x00,0x00,0x59,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,
    +0x3e,0x01,0x00,0x00,0x86,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,
     0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x58,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x30,0x01,0x00,0x00,
    -0x5a,0x01,0x00,0x00,0x59,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x5b,0x01,0x00,0x00,0x5a,0x01,0x00,0x00,
    -0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x5c,0x01,0x00,0x00,
    -0x5b,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x15,0x00,0x00,0x00,
    -0x5d,0x01,0x00,0x00,0x5c,0x01,0x00,0x00,0x43,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x60,0x01,0x00,0x00,
    +0x85,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x30,0x01,0x00,0x00,
    +0x87,0x01,0x00,0x00,0x86,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,
    +0x30,0x01,0x00,0x00,0x88,0x01,0x00,0x00,0x87,0x01,0x00,0x00,
    +0xa8,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x89,0x01,0x00,0x00,0x88,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    +0x15,0x00,0x00,0x00,0x8a,0x01,0x00,0x00,0x89,0x01,0x00,0x00,
    +0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8d,0x01,0x00,0x00,
     0x18,0x01,0x00,0x00,0x13,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x3e,0x01,0x00,0x00,0x61,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,
    +0x3e,0x01,0x00,0x00,0x8e,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,
     0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x60,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x30,0x01,0x00,0x00,
    -0x62,0x01,0x00,0x00,0x61,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,
    -0x30,0x01,0x00,0x00,0x63,0x01,0x00,0x00,0x62,0x01,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x64,0x01,0x00,0x00,0x63,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    -0x15,0x00,0x00,0x00,0x65,0x01,0x00,0x00,0x64,0x01,0x00,0x00,
    -0xc7,0x00,0x05,0x00,0x15,0x00,0x00,0x00,0x66,0x01,0x00,0x00,
    -0x65,0x01,0x00,0x00,0x97,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,
    -0x15,0x00,0x00,0x00,0x67,0x01,0x00,0x00,0x66,0x01,0x00,0x00,
    +0x8d,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x30,0x01,0x00,0x00,
    +0x8f,0x01,0x00,0x00,0x8e,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,
    +0x30,0x01,0x00,0x00,0x90,0x01,0x00,0x00,0x8f,0x01,0x00,0x00,
    +0x91,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x91,0x01,0x00,0x00,0x90,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    +0x15,0x00,0x00,0x00,0x92,0x01,0x00,0x00,0x91,0x01,0x00,0x00,
    +0xc7,0x00,0x05,0x00,0x15,0x00,0x00,0x00,0x93,0x01,0x00,0x00,
    +0x92,0x01,0x00,0x00,0x97,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,
    +0x15,0x00,0x00,0x00,0x94,0x01,0x00,0x00,0x93,0x01,0x00,0x00,
     0xa8,0x00,0x00,0x00,0xc5,0x00,0x05,0x00,0x15,0x00,0x00,0x00,
    -0x68,0x01,0x00,0x00,0x5d,0x01,0x00,0x00,0x67,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x55,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x69,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0x6b,0x01,0x00,0x00,0x18,0x01,0x00,0x00,0x33,0x01,0x00,0x00,
    -0xf7,0x00,0x03,0x00,0x6e,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x6b,0x01,0x00,0x00,0x6d,0x01,0x00,0x00,
    -0x82,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x6d,0x01,0x00,0x00,
    -0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x71,0x01,0x00,0x00,
    -0x18,0x01,0x00,0x00,0x17,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x3e,0x01,0x00,0x00,0x72,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,
    -0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x71,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x30,0x01,0x00,0x00,
    -0x73,0x01,0x00,0x00,0x72,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,
    -0x30,0x01,0x00,0x00,0x74,0x01,0x00,0x00,0x73,0x01,0x00,0x00,
    -0xa8,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x75,0x01,0x00,0x00,0x74,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    -0x15,0x00,0x00,0x00,0x76,0x01,0x00,0x00,0x75,0x01,0x00,0x00,
    -0x41,0x00,0x08,0x00,0x3e,0x01,0x00,0x00,0x7a,0x01,0x00,0x00,
    -0x3a,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x18,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x30,0x01,0x00,0x00,0x7b,0x01,0x00,0x00,0x7a,0x01,0x00,0x00,
    -0xc2,0x00,0x05,0x00,0x30,0x01,0x00,0x00,0x7c,0x01,0x00,0x00,
    -0x7b,0x01,0x00,0x00,0xa8,0x00,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x7d,0x01,0x00,0x00,0x7c,0x01,0x00,0x00,
    -0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x7e,0x01,0x00,0x00,
    -0x7d,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x15,0x00,0x00,0x00,
    -0x7f,0x01,0x00,0x00,0x7e,0x01,0x00,0x00,0x97,0x00,0x00,0x00,
    -0xc4,0x00,0x05,0x00,0x15,0x00,0x00,0x00,0x80,0x01,0x00,0x00,
    -0x7f,0x01,0x00,0x00,0xa8,0x00,0x00,0x00,0xc5,0x00,0x05,0x00,
    -0x15,0x00,0x00,0x00,0x81,0x01,0x00,0x00,0x76,0x01,0x00,0x00,
    -0x80,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x6e,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x82,0x01,0x00,0x00,0x82,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x85,0x01,0x00,0x00,0x18,0x01,0x00,0x00,
    -0x17,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x3e,0x01,0x00,0x00,
    -0x86,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    -0xfb,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x85,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x30,0x01,0x00,0x00,0x87,0x01,0x00,0x00,
    -0x86,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x30,0x01,0x00,0x00,
    -0x88,0x01,0x00,0x00,0x87,0x01,0x00,0x00,0xa8,0x00,0x00,0x00,
    -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x89,0x01,0x00,0x00,
    -0x88,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    -0x8a,0x01,0x00,0x00,0x89,0x01,0x00,0x00,0x82,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x8d,0x01,0x00,0x00,0x18,0x01,0x00,0x00,
    -0x13,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x3e,0x01,0x00,0x00,
    -0x8e,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    -0xfb,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x8d,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x30,0x01,0x00,0x00,0x8f,0x01,0x00,0x00,
    -0x8e,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x30,0x01,0x00,0x00,
    -0x90,0x01,0x00,0x00,0x8f,0x01,0x00,0x00,0x91,0x00,0x00,0x00,
    -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x91,0x01,0x00,0x00,
    -0x90,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    -0x92,0x01,0x00,0x00,0x91,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
    -0x15,0x00,0x00,0x00,0x93,0x01,0x00,0x00,0x92,0x01,0x00,0x00,
    -0x97,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x15,0x00,0x00,0x00,
    -0x94,0x01,0x00,0x00,0x93,0x01,0x00,0x00,0xa8,0x00,0x00,0x00,
    -0xc5,0x00,0x05,0x00,0x15,0x00,0x00,0x00,0x95,0x01,0x00,0x00,
    -0x8a,0x01,0x00,0x00,0x94,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x6e,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x6e,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x15,0x00,0x00,0x00,0xa4,0x03,0x00,0x00,
    -0x81,0x01,0x00,0x00,0x6d,0x01,0x00,0x00,0x95,0x01,0x00,0x00,
    -0x82,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x55,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x55,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x15,0x00,0x00,0x00,0xa5,0x03,0x00,0x00,0x68,0x01,0x00,0x00,
    -0x54,0x01,0x00,0x00,0xa4,0x03,0x00,0x00,0x6e,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x2f,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x2f,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x15,0x00,0x00,0x00,
    -0xa6,0x03,0x00,0x00,0x4f,0x01,0x00,0x00,0x2e,0x01,0x00,0x00,
    -0xa5,0x03,0x00,0x00,0x55,0x01,0x00,0x00,0x72,0x00,0x04,0x00,
    -0x27,0x01,0x00,0x00,0x99,0x01,0x00,0x00,0xa6,0x03,0x00,0x00,
    -0x41,0x00,0x07,0x00,0x9c,0x01,0x00,0x00,0x9d,0x01,0x00,0x00,
    +0x95,0x01,0x00,0x00,0x8a,0x01,0x00,0x00,0x94,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x6e,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x6e,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x15,0x00,0x00,0x00,
    +0xa4,0x03,0x00,0x00,0x81,0x01,0x00,0x00,0x6d,0x01,0x00,0x00,
    +0x95,0x01,0x00,0x00,0x82,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x55,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x55,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x15,0x00,0x00,0x00,0xa5,0x03,0x00,0x00,
    +0x68,0x01,0x00,0x00,0x54,0x01,0x00,0x00,0xa4,0x03,0x00,0x00,
    +0x6e,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x2f,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x2f,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x15,0x00,0x00,0x00,0xa6,0x03,0x00,0x00,0x4f,0x01,0x00,0x00,
    +0x2e,0x01,0x00,0x00,0xa5,0x03,0x00,0x00,0x55,0x01,0x00,0x00,
    +0x72,0x00,0x04,0x00,0x27,0x01,0x00,0x00,0x99,0x01,0x00,0x00,
    +0xa6,0x03,0x00,0x00,0x41,0x00,0x07,0x00,0x9c,0x01,0x00,0x00,
    +0x9d,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    +0xfb,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x35,0x01,0x00,0x00,0x9e,0x01,0x00,0x00,0x9d,0x01,0x00,0x00,
    +0x73,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x9f,0x01,0x00,0x00,
    +0x9e,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    +0xa1,0x01,0x00,0x00,0x99,0x01,0x00,0x00,0x82,0x00,0x05,0x00,
    +0x15,0x00,0x00,0x00,0xa3,0x01,0x00,0x00,0xa1,0x01,0x00,0x00,
    +0xa2,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    +0xa4,0x01,0x00,0x00,0xa3,0x01,0x00,0x00,0x85,0x00,0x05,0x00,
    +0xc3,0x00,0x00,0x00,0xa5,0x01,0x00,0x00,0x9f,0x01,0x00,0x00,
    +0xa4,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x3e,0x01,0x00,0x00,
    +0xaf,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    +0xfb,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x0b,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x30,0x01,0x00,0x00,0xb0,0x01,0x00,0x00,
    +0xaf,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x30,0x01,0x00,0x00,
    +0xb2,0x01,0x00,0x00,0xb0,0x01,0x00,0x00,0x1f,0x01,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xb3,0x01,0x00,0x00,
    +0xb2,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    +0xb4,0x01,0x00,0x00,0xb3,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
    +0x15,0x00,0x00,0x00,0xb5,0x01,0x00,0x00,0xb4,0x01,0x00,0x00,
    +0x97,0x00,0x00,0x00,0x72,0x00,0x04,0x00,0x27,0x01,0x00,0x00,
    +0xb6,0x01,0x00,0x00,0xb5,0x01,0x00,0x00,0x72,0x00,0x04,0x00,
    +0x15,0x00,0x00,0x00,0xb7,0x01,0x00,0x00,0xb6,0x01,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x3e,0x01,0x00,0x00,0xba,0x01,0x00,0x00,
     0x3a,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
    -0x97,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x35,0x01,0x00,0x00,
    -0x9e,0x01,0x00,0x00,0x9d,0x01,0x00,0x00,0x73,0x00,0x04,0x00,
    -0xc3,0x00,0x00,0x00,0x9f,0x01,0x00,0x00,0x9e,0x01,0x00,0x00,
    -0x72,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0xa1,0x01,0x00,0x00,
    -0x99,0x01,0x00,0x00,0x82,0x00,0x05,0x00,0x15,0x00,0x00,0x00,
    -0xa3,0x01,0x00,0x00,0xa1,0x01,0x00,0x00,0xa2,0x01,0x00,0x00,
    -0x6f,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0xa4,0x01,0x00,0x00,
    -0xa3,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0xc3,0x00,0x00,0x00,
    -0xa5,0x01,0x00,0x00,0x9f,0x01,0x00,0x00,0xa4,0x01,0x00,0x00,
    -0x41,0x00,0x08,0x00,0x3e,0x01,0x00,0x00,0xaf,0x01,0x00,0x00,
    +0x35,0x00,0x00,0x00,0x0a,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x30,0x01,0x00,0x00,0xbb,0x01,0x00,0x00,0xba,0x01,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xbc,0x01,0x00,0x00,
    +0xbb,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xbe,0x01,0x00,0x00,0xbc,0x01,0x00,0x00,0x26,0x01,0x00,0x00,
    +0xab,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xbf,0x01,0x00,0x00,
    +0xbe,0x01,0x00,0x00,0x3f,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,
    +0x15,0x00,0x00,0x00,0xc0,0x01,0x00,0x00,0xbf,0x01,0x00,0x00,
    +0x35,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,0x82,0x00,0x05,0x00,
    +0x15,0x00,0x00,0x00,0xc1,0x01,0x00,0x00,0xb7,0x01,0x00,0x00,
    +0xc0,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    +0xc2,0x01,0x00,0x00,0xc1,0x01,0x00,0x00,0x85,0x00,0x05,0x00,
    +0xc3,0x00,0x00,0x00,0xc3,0x01,0x00,0x00,0xa5,0x01,0x00,0x00,
    +0xc2,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x35,0x01,0x00,0x00,
    +0xc4,0x01,0x00,0x00,0xc3,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xc5,0x01,0x00,0x00,0xc6,0x01,0x00,0x00,0xaa,0x01,0x00,0x00,
    +0xf7,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0xc6,0x01,0x00,0x00,
    +0xc4,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xc8,0x01,0x00,0x00,0xf7,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xcc,0x01,0x00,0x00,
    +0x0b,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x3e,0x01,0x00,0x00,0xcd,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,
    +0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0xcc,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x30,0x01,0x00,0x00,
    +0xce,0x01,0x00,0x00,0xcd,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,
    +0x30,0x01,0x00,0x00,0xd0,0x01,0x00,0x00,0xce,0x01,0x00,0x00,
    +0x1f,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0xd1,0x01,0x00,0x00,0xd0,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    +0x15,0x00,0x00,0x00,0xd2,0x01,0x00,0x00,0xd1,0x01,0x00,0x00,
    +0xc7,0x00,0x05,0x00,0x15,0x00,0x00,0x00,0xd3,0x01,0x00,0x00,
    +0xd2,0x01,0x00,0x00,0x97,0x00,0x00,0x00,0x72,0x00,0x04,0x00,
    +0x27,0x01,0x00,0x00,0xd4,0x01,0x00,0x00,0xd3,0x01,0x00,0x00,
    +0x72,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0xd5,0x01,0x00,0x00,
    +0xd4,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xd8,0x01,0x00,0x00,0x0a,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x3e,0x01,0x00,0x00,0xd9,0x01,0x00,0x00,
     0x3a,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0x0b,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x30,0x01,0x00,0x00,0xb0,0x01,0x00,0x00,0xaf,0x01,0x00,0x00,
    -0xc2,0x00,0x05,0x00,0x30,0x01,0x00,0x00,0xb2,0x01,0x00,0x00,
    -0xb0,0x01,0x00,0x00,0x1f,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0xb3,0x01,0x00,0x00,0xb2,0x01,0x00,0x00,
    -0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0xb4,0x01,0x00,0x00,
    -0xb3,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x15,0x00,0x00,0x00,
    -0xb5,0x01,0x00,0x00,0xb4,0x01,0x00,0x00,0x97,0x00,0x00,0x00,
    -0x72,0x00,0x04,0x00,0x27,0x01,0x00,0x00,0xb6,0x01,0x00,0x00,
    -0xb5,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    -0xb7,0x01,0x00,0x00,0xb6,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x3e,0x01,0x00,0x00,0xba,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,
    -0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0x35,0x00,0x00,0x00,
    -0x0a,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x30,0x01,0x00,0x00,
    -0xbb,0x01,0x00,0x00,0xba,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0xbc,0x01,0x00,0x00,0xbb,0x01,0x00,0x00,
    -0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbe,0x01,0x00,0x00,
    -0xbc,0x01,0x00,0x00,0x26,0x01,0x00,0x00,0xab,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0xbf,0x01,0x00,0x00,0xbe,0x01,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,0x15,0x00,0x00,0x00,
    -0xc0,0x01,0x00,0x00,0xbf,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    -0xa8,0x00,0x00,0x00,0x82,0x00,0x05,0x00,0x15,0x00,0x00,0x00,
    -0xc1,0x01,0x00,0x00,0xb7,0x01,0x00,0x00,0xc0,0x01,0x00,0x00,
    -0x6f,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0xc2,0x01,0x00,0x00,
    -0xc1,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0xc3,0x00,0x00,0x00,
    -0xc3,0x01,0x00,0x00,0xa5,0x01,0x00,0x00,0xc2,0x01,0x00,0x00,
    -0x73,0x00,0x04,0x00,0x35,0x01,0x00,0x00,0xc4,0x01,0x00,0x00,
    -0xc3,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0xc5,0x01,0x00,0x00,
    -0xc6,0x01,0x00,0x00,0xaa,0x01,0x00,0x00,0xf7,0x00,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0xc6,0x01,0x00,0x00,0xc4,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc8,0x01,0x00,0x00,
    -0xf7,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xcc,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,
    -0x3a,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0x3e,0x01,0x00,0x00,
    -0xcd,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    -0xfb,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0xcc,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x30,0x01,0x00,0x00,0xce,0x01,0x00,0x00,
    -0xcd,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x30,0x01,0x00,0x00,
    -0xd0,0x01,0x00,0x00,0xce,0x01,0x00,0x00,0x1f,0x01,0x00,0x00,
    -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xd1,0x01,0x00,0x00,
    -0xd0,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    -0xd2,0x01,0x00,0x00,0xd1,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
    -0x15,0x00,0x00,0x00,0xd3,0x01,0x00,0x00,0xd2,0x01,0x00,0x00,
    -0x97,0x00,0x00,0x00,0x72,0x00,0x04,0x00,0x27,0x01,0x00,0x00,
    -0xd4,0x01,0x00,0x00,0xd3,0x01,0x00,0x00,0x72,0x00,0x04,0x00,
    -0x15,0x00,0x00,0x00,0xd5,0x01,0x00,0x00,0xd4,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd8,0x01,0x00,0x00,
    -0x0a,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x3e,0x01,0x00,0x00,0xd9,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,
    -0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0x35,0x00,0x00,0x00,
    -0xd8,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x30,0x01,0x00,0x00,
    -0xda,0x01,0x00,0x00,0xd9,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0xdb,0x01,0x00,0x00,0xda,0x01,0x00,0x00,
    -0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdd,0x01,0x00,0x00,
    -0xdb,0x01,0x00,0x00,0x26,0x01,0x00,0x00,0xab,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0xde,0x01,0x00,0x00,0xdd,0x01,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,0x15,0x00,0x00,0x00,
    -0xdf,0x01,0x00,0x00,0xde,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    -0xa8,0x00,0x00,0x00,0x82,0x00,0x05,0x00,0x15,0x00,0x00,0x00,
    -0xe0,0x01,0x00,0x00,0xd5,0x01,0x00,0x00,0xdf,0x01,0x00,0x00,
    -0x6f,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0xe1,0x01,0x00,0x00,
    -0xe0,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0xc3,0x00,0x00,0x00,
    -0xe2,0x01,0x00,0x00,0xa5,0x01,0x00,0x00,0xe1,0x01,0x00,0x00,
    -0x73,0x00,0x04,0x00,0x35,0x01,0x00,0x00,0xe3,0x01,0x00,0x00,
    -0xe2,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0xc5,0x01,0x00,0x00,
    -0xe4,0x01,0x00,0x00,0xaa,0x01,0x00,0x00,0xc8,0x01,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0xe4,0x01,0x00,0x00,0xe3,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xdf,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xdf,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xeb,0x01,0x00,0x00,0x7e,0x03,0x00,0x00,0xe9,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xdc,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xde,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xed,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xed,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x7f,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0xde,0x00,0x00,0x00,0x34,0x02,0x00,0x00,0xf0,0x01,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xf3,0x01,0x00,0x00,
    -0x7f,0x03,0x00,0x00,0xa6,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xef,0x01,0x00,0x00,0xf0,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xf3,0x01,0x00,0x00,0xee,0x01,0x00,0x00,
    -0xef,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xee,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf7,0x01,0x00,0x00,
    -0xa7,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xf9,0x01,0x00,0x00,0xf7,0x01,0x00,0x00,
    -0x7f,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    -0xfa,0x01,0x00,0x00,0x14,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xfb,0x01,0x00,0x00,
    -0xfa,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0xfc,0x01,0x00,0x00,0xf9,0x01,0x00,0x00,0xfb,0x01,0x00,0x00,
    -0xf7,0x00,0x03,0x00,0xfe,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xfc,0x01,0x00,0x00,0xfd,0x01,0x00,0x00,
    -0xfe,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xfd,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x01,0x02,0x00,0x00,
    -0x6e,0x03,0x00,0x00,0x79,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0x03,0x02,0x00,0x00,0x01,0x02,0x00,0x00,
    -0x8e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xfe,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xfe,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0xc1,0x00,0x00,0x00,0x04,0x02,0x00,0x00,0xfc,0x01,0x00,0x00,
    -0xee,0x01,0x00,0x00,0x03,0x02,0x00,0x00,0xfd,0x01,0x00,0x00,
    -0xf7,0x00,0x03,0x00,0x06,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x04,0x02,0x00,0x00,0x05,0x02,0x00,0x00,
    -0x26,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x05,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0e,0x02,0x00,0x00,
    +0x35,0x00,0x00,0x00,0xd8,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x30,0x01,0x00,0x00,0xda,0x01,0x00,0x00,0xd9,0x01,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xdb,0x01,0x00,0x00,
    +0xda,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xdd,0x01,0x00,0x00,0xdb,0x01,0x00,0x00,0x26,0x01,0x00,0x00,
    +0xab,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xde,0x01,0x00,0x00,
    +0xdd,0x01,0x00,0x00,0x3f,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,
    +0x15,0x00,0x00,0x00,0xdf,0x01,0x00,0x00,0xde,0x01,0x00,0x00,
    +0x35,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,0x82,0x00,0x05,0x00,
    +0x15,0x00,0x00,0x00,0xe0,0x01,0x00,0x00,0xd5,0x01,0x00,0x00,
    +0xdf,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    +0xe1,0x01,0x00,0x00,0xe0,0x01,0x00,0x00,0x85,0x00,0x05,0x00,
    +0xc3,0x00,0x00,0x00,0xe2,0x01,0x00,0x00,0xa5,0x01,0x00,0x00,
    +0xe1,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x35,0x01,0x00,0x00,
    +0xe3,0x01,0x00,0x00,0xe2,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xc5,0x01,0x00,0x00,0xe4,0x01,0x00,0x00,0xaa,0x01,0x00,0x00,
    +0xc8,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xe4,0x01,0x00,0x00,
    +0xe3,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xdf,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xdf,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xeb,0x01,0x00,0x00,0x7e,0x03,0x00,0x00,
    +0xe9,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xdc,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xde,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xed,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xed,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x7f,0x03,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0xde,0x00,0x00,0x00,0x34,0x02,0x00,0x00,
    +0xf0,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0xf3,0x01,0x00,0x00,0x7f,0x03,0x00,0x00,0xa6,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xef,0x01,0x00,0x00,0xf0,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xf3,0x01,0x00,0x00,
    +0xee,0x01,0x00,0x00,0xef,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xee,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xf7,0x01,0x00,0x00,0xa7,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf9,0x01,0x00,0x00,
    +0xf7,0x01,0x00,0x00,0x7f,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x17,0x00,0x00,0x00,0xfa,0x01,0x00,0x00,0x14,0x00,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0xfb,0x01,0x00,0x00,0xfa,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0xfc,0x01,0x00,0x00,0xf9,0x01,0x00,0x00,
    +0xfb,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,0xfe,0x01,0x00,0x00,
    +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xfc,0x01,0x00,0x00,
    +0xfd,0x01,0x00,0x00,0xfe,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xfd,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x01,0x02,0x00,0x00,0x6e,0x03,0x00,0x00,0x79,0x00,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x03,0x02,0x00,0x00,
    +0x01,0x02,0x00,0x00,0x8e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xfe,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xfe,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0xc1,0x00,0x00,0x00,0x04,0x02,0x00,0x00,
    +0xfc,0x01,0x00,0x00,0xee,0x01,0x00,0x00,0x03,0x02,0x00,0x00,
    +0xfd,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,0x06,0x02,0x00,0x00,
    +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x04,0x02,0x00,0x00,
    +0x05,0x02,0x00,0x00,0x26,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x05,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x0e,0x02,0x00,0x00,0x7e,0x00,0x00,0x00,0x7f,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x10,0x02,0x00,0x00,
    +0x0e,0x02,0x00,0x00,0x0f,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x12,0x02,0x00,0x00,0x10,0x02,0x00,0x00,
    +0x79,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x1d,0x02,0x00,0x00,0x0e,0x02,0x00,0x00,0xaa,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1e,0x02,0x00,0x00,
    +0x86,0x03,0x00,0x00,0x1d,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x20,0x02,0x00,0x00,0x1e,0x02,0x00,0x00,
    +0x79,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x21,0x02,0x00,0x00,
    +0x22,0x02,0x00,0x00,0x16,0x02,0x00,0x00,0x35,0x00,0x00,0x00,
    +0x20,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    +0x23,0x02,0x00,0x00,0x22,0x02,0x00,0x00,0x73,0x00,0x04,0x00,
    +0x35,0x01,0x00,0x00,0x24,0x02,0x00,0x00,0x23,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xc5,0x01,0x00,0x00,0x25,0x02,0x00,0x00,
    +0x0b,0x02,0x00,0x00,0x12,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x25,0x02,0x00,0x00,0x24,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x06,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x26,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x29,0x02,0x00,0x00,
     0x7e,0x00,0x00,0x00,0x7f,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x10,0x02,0x00,0x00,0x0e,0x02,0x00,0x00,
    -0x0f,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x12,0x02,0x00,0x00,0x10,0x02,0x00,0x00,0x79,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1d,0x02,0x00,0x00,
    -0x0e,0x02,0x00,0x00,0xaa,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x1e,0x02,0x00,0x00,0x86,0x03,0x00,0x00,
    -0x1d,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x20,0x02,0x00,0x00,0x1e,0x02,0x00,0x00,0x79,0x00,0x00,0x00,
    -0x41,0x00,0x06,0x00,0x21,0x02,0x00,0x00,0x22,0x02,0x00,0x00,
    -0x16,0x02,0x00,0x00,0x35,0x00,0x00,0x00,0x20,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x23,0x02,0x00,0x00,
    -0x22,0x02,0x00,0x00,0x73,0x00,0x04,0x00,0x35,0x01,0x00,0x00,
    -0x24,0x02,0x00,0x00,0x23,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xc5,0x01,0x00,0x00,0x25,0x02,0x00,0x00,0x0b,0x02,0x00,0x00,
    -0x12,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0x25,0x02,0x00,0x00,
    -0x24,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x06,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x26,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x29,0x02,0x00,0x00,0x7e,0x00,0x00,0x00,
    -0x7f,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x2b,0x02,0x00,0x00,0x29,0x02,0x00,0x00,0x2a,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2d,0x02,0x00,0x00,
    -0x2b,0x02,0x00,0x00,0x79,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xc5,0x01,0x00,0x00,0x2f,0x02,0x00,0x00,0x0b,0x02,0x00,0x00,
    -0x2d,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0x2f,0x02,0x00,0x00,
    -0x2e,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x06,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x06,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xf0,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xf0,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x34,0x02,0x00,0x00,
    -0x7f,0x03,0x00,0x00,0x32,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xed,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xef,0x01,0x00,0x00,
    -0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x35,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x38,0x02,0x00,0x00,0x82,0x03,0x00,0x00,0x36,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3b,0x02,0x00,0x00,
    -0x86,0x03,0x00,0x00,0x39,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x3d,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x3d,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x88,0x03,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0xef,0x01,0x00,0x00,0xe7,0x02,0x00,0x00,
    -0x40,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0x43,0x02,0x00,0x00,0x88,0x03,0x00,0x00,0x6d,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x3f,0x02,0x00,0x00,0x40,0x02,0x00,0x00,
    -0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x43,0x02,0x00,0x00,
    -0x3e,0x02,0x00,0x00,0x3f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x3e,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x45,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x45,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x8c,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0x3e,0x02,0x00,0x00,0x71,0x02,0x00,0x00,0x48,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x4b,0x02,0x00,0x00,
    -0x8c,0x03,0x00,0x00,0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x47,0x02,0x00,0x00,0x48,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x4b,0x02,0x00,0x00,0x46,0x02,0x00,0x00,
    -0x47,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x46,0x02,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x2b,0x02,0x00,0x00,0x29,0x02,0x00,0x00,
    +0x2a,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x2d,0x02,0x00,0x00,0x2b,0x02,0x00,0x00,0x79,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xc5,0x01,0x00,0x00,0x2f,0x02,0x00,0x00,
    +0x0b,0x02,0x00,0x00,0x2d,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x2f,0x02,0x00,0x00,0x2e,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x06,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x06,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xf0,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xf0,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x34,0x02,0x00,0x00,0x7f,0x03,0x00,0x00,0x32,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xed,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xef,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x35,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x38,0x02,0x00,0x00,0x82,0x03,0x00,0x00,
    +0x36,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x3b,0x02,0x00,0x00,0x86,0x03,0x00,0x00,0x39,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x3d,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x3d,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x88,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0xef,0x01,0x00,0x00,
    +0xe7,0x02,0x00,0x00,0x40,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0x43,0x02,0x00,0x00,0x88,0x03,0x00,0x00,
    +0x6d,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x3f,0x02,0x00,0x00,
    +0x40,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x43,0x02,0x00,0x00,0x3e,0x02,0x00,0x00,0x3f,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x3e,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x45,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x45,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x8c,0x03,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0x3e,0x02,0x00,0x00,0x71,0x02,0x00,0x00,
    +0x48,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0x4b,0x02,0x00,0x00,0x8c,0x03,0x00,0x00,0x61,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x47,0x02,0x00,0x00,0x48,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x4b,0x02,0x00,0x00,
    +0x46,0x02,0x00,0x00,0x47,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x46,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x4d,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x4d,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x9e,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x46,0x02,0x00,0x00,0x6f,0x02,0x00,0x00,0x4e,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x53,0x02,0x00,0x00,
    +0x9e,0x03,0x00,0x00,0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x4f,0x02,0x00,0x00,0x4e,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x53,0x02,0x00,0x00,0x4e,0x02,0x00,0x00,
    +0x4f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x4e,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x59,0x02,0x00,0x00,
    +0x8c,0x03,0x00,0x00,0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x5b,0x02,0x00,0x00,0x59,0x02,0x00,0x00,
    +0x9e,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x5d,0x02,0x00,0x00,0x56,0x00,0x00,0x00,0x54,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5f,0x02,0x00,0x00,
    +0x8c,0x03,0x00,0x00,0x62,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x60,0x02,0x00,0x00,0x5d,0x02,0x00,0x00,
    +0x5f,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x62,0x02,0x00,0x00,0x65,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x63,0x02,0x00,0x00,
    +0x60,0x02,0x00,0x00,0x62,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x65,0x02,0x00,0x00,0x63,0x02,0x00,0x00,
    +0x9e,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x67,0x02,0x00,0x00,0x65,0x02,0x00,0x00,0x66,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x69,0x02,0x00,0x00,
    +0x67,0x02,0x00,0x00,0x88,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xc5,0x01,0x00,0x00,0x6a,0x02,0x00,0x00,0xaa,0x01,0x00,0x00,
    +0x69,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x35,0x01,0x00,0x00,
    +0x6b,0x02,0x00,0x00,0x6a,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x6c,0x02,0x00,0x00,0x6d,0x02,0x00,0x00,0x57,0x02,0x00,0x00,
    +0x5b,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0x6d,0x02,0x00,0x00,
    +0x6b,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x6f,0x02,0x00,0x00,0x9e,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
     0xf9,0x00,0x02,0x00,0x4d,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x4d,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x9e,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0x46,0x02,0x00,0x00,
    -0x6f,0x02,0x00,0x00,0x4e,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0x53,0x02,0x00,0x00,0x9e,0x03,0x00,0x00,
    -0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x4f,0x02,0x00,0x00,
    -0x4e,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x53,0x02,0x00,0x00,0x4e,0x02,0x00,0x00,0x4f,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x4e,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x59,0x02,0x00,0x00,0x8c,0x03,0x00,0x00,
    -0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x5b,0x02,0x00,0x00,0x59,0x02,0x00,0x00,0x9e,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5d,0x02,0x00,0x00,
    -0x56,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x5f,0x02,0x00,0x00,0x8c,0x03,0x00,0x00,
    -0x62,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x60,0x02,0x00,0x00,0x5d,0x02,0x00,0x00,0x5f,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x62,0x02,0x00,0x00,
    -0x65,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x63,0x02,0x00,0x00,0x60,0x02,0x00,0x00,
    -0x62,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x65,0x02,0x00,0x00,0x63,0x02,0x00,0x00,0x9e,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x67,0x02,0x00,0x00,
    -0x65,0x02,0x00,0x00,0x66,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x69,0x02,0x00,0x00,0x67,0x02,0x00,0x00,
    -0x88,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0xc5,0x01,0x00,0x00,
    -0x6a,0x02,0x00,0x00,0xaa,0x01,0x00,0x00,0x69,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x35,0x01,0x00,0x00,0x6b,0x02,0x00,0x00,
    -0x6a,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x6c,0x02,0x00,0x00,
    -0x6d,0x02,0x00,0x00,0x57,0x02,0x00,0x00,0x5b,0x02,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x6d,0x02,0x00,0x00,0x6b,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6f,0x02,0x00,0x00,
    -0x9e,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x4d,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x4f,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x48,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x48,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x71,0x02,0x00,0x00,0x8c,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x45,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x47,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x73,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x73,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x8d,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0x47,0x02,0x00,0x00,0x9f,0x02,0x00,0x00,0x76,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x79,0x02,0x00,0x00,
    -0x8d,0x03,0x00,0x00,0xbe,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x75,0x02,0x00,0x00,0x76,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x79,0x02,0x00,0x00,0x74,0x02,0x00,0x00,
    -0x75,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x74,0x02,0x00,0x00,
    +0x4f,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x48,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x48,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x71,0x02,0x00,0x00,0x8c,0x03,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x45,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x47,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x73,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x73,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x8d,0x03,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0x47,0x02,0x00,0x00,0x9f,0x02,0x00,0x00,
    +0x76,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0x79,0x02,0x00,0x00,0x8d,0x03,0x00,0x00,0xbe,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x75,0x02,0x00,0x00,0x76,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x79,0x02,0x00,0x00,
    +0x74,0x02,0x00,0x00,0x75,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x74,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x7b,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x7b,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x9b,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x74,0x02,0x00,0x00,0x9d,0x02,0x00,0x00,0x7c,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x81,0x02,0x00,0x00,
    +0x9b,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x7d,0x02,0x00,0x00,0x7c,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x81,0x02,0x00,0x00,0x7c,0x02,0x00,0x00,
    +0x7d,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x7c,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x87,0x02,0x00,0x00,
    +0x8d,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x89,0x02,0x00,0x00,0x87,0x02,0x00,0x00,
    +0x9b,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x8b,0x02,0x00,0x00,0x5a,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8e,0x02,0x00,0x00,
    +0x8d,0x03,0x00,0x00,0x8d,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x8f,0x02,0x00,0x00,0x8b,0x02,0x00,0x00,
    +0x8e,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x91,0x02,0x00,0x00,0x69,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x92,0x02,0x00,0x00,
    +0x8f,0x02,0x00,0x00,0x91,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x94,0x02,0x00,0x00,0x92,0x02,0x00,0x00,
    +0x9b,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x96,0x02,0x00,0x00,0x94,0x02,0x00,0x00,0x95,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x98,0x02,0x00,0x00,
    +0x96,0x02,0x00,0x00,0x88,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xc5,0x01,0x00,0x00,0x99,0x02,0x00,0x00,0x0b,0x02,0x00,0x00,
    +0x98,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x35,0x01,0x00,0x00,
    +0x9a,0x02,0x00,0x00,0x99,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x6c,0x02,0x00,0x00,0x9b,0x02,0x00,0x00,0x85,0x02,0x00,0x00,
    +0x89,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0x9b,0x02,0x00,0x00,
    +0x9a,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x9d,0x02,0x00,0x00,0x9b,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
     0xf9,0x00,0x02,0x00,0x7b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x7b,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x9b,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0x74,0x02,0x00,0x00,
    -0x9d,0x02,0x00,0x00,0x7c,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0x81,0x02,0x00,0x00,0x9b,0x03,0x00,0x00,
    -0xbb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x7d,0x02,0x00,0x00,
    -0x7c,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x81,0x02,0x00,0x00,0x7c,0x02,0x00,0x00,0x7d,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x7c,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x87,0x02,0x00,0x00,0x8d,0x03,0x00,0x00,
    -0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x89,0x02,0x00,0x00,0x87,0x02,0x00,0x00,0x9b,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8b,0x02,0x00,0x00,
    -0x5a,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x8e,0x02,0x00,0x00,0x8d,0x03,0x00,0x00,
    +0x7d,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x76,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x76,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x9f,0x02,0x00,0x00,0x8d,0x03,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x73,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x75,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xa1,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xa1,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x8e,0x03,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0x75,0x02,0x00,0x00,0xe5,0x02,0x00,0x00,
    +0xa4,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0xa7,0x02,0x00,0x00,0x8e,0x03,0x00,0x00,0xbe,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xa3,0x02,0x00,0x00,0xa4,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xa7,0x02,0x00,0x00,
    +0xa2,0x02,0x00,0x00,0xa3,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xa2,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xa9,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xa9,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x92,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0xa2,0x02,0x00,0x00,0xe3,0x02,0x00,0x00,0xac,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xaf,0x02,0x00,0x00,
    +0x92,0x03,0x00,0x00,0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xab,0x02,0x00,0x00,0xac,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xaf,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,
    +0xab,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xaa,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xb1,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xb1,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x94,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0xaa,0x02,0x00,0x00,
    +0xe1,0x02,0x00,0x00,0xb4,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0xb7,0x02,0x00,0x00,0x94,0x03,0x00,0x00,
    +0xbb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xb3,0x02,0x00,0x00,
    +0xb4,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xb7,0x02,0x00,0x00,0xb2,0x02,0x00,0x00,0xb3,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xb2,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xb9,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xb9,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x96,0x03,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0xb2,0x02,0x00,0x00,0xdf,0x02,0x00,0x00,
    +0xba,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0xbf,0x02,0x00,0x00,0x96,0x03,0x00,0x00,0x63,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xbb,0x02,0x00,0x00,0xba,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xbf,0x02,0x00,0x00,
    +0xba,0x02,0x00,0x00,0xbb,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xba,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xc1,0x02,0x00,0x00,0x8e,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc3,0x02,0x00,0x00,
    +0xc1,0x02,0x00,0x00,0x94,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xc5,0x02,0x00,0x00,0xc3,0x02,0x00,0x00,
    +0xc4,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xc7,0x02,0x00,0x00,0x92,0x03,0x00,0x00,0x63,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc8,0x02,0x00,0x00,
    +0xc5,0x02,0x00,0x00,0xc7,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xca,0x02,0x00,0x00,0xc8,0x02,0x00,0x00,
    +0x96,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xce,0x02,0x00,0x00,0xc7,0x02,0x00,0x00,0x96,0x03,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x6c,0x02,0x00,0x00,0xcf,0x02,0x00,0x00,
    +0x57,0x02,0x00,0x00,0xce,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x35,0x01,0x00,0x00,0xd0,0x02,0x00,0x00,0xcf,0x02,0x00,0x00,
    +0x73,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0xd1,0x02,0x00,0x00,
    +0xd0,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x6c,0x02,0x00,0x00,
    +0xd6,0x02,0x00,0x00,0x85,0x02,0x00,0x00,0xc3,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x35,0x01,0x00,0x00,0xd7,0x02,0x00,0x00,
    +0xd6,0x02,0x00,0x00,0x73,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    +0xd8,0x02,0x00,0x00,0xd7,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xcc,0x00,0x00,0x00,0xda,0x02,0x00,0x00,0xc9,0x00,0x00,0x00,
    +0xca,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    +0xdb,0x02,0x00,0x00,0xda,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,
    +0xc3,0x00,0x00,0x00,0xdc,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x32,0x00,0x00,0x00,0xd1,0x02,0x00,0x00,0xd8,0x02,0x00,0x00,
    +0xdb,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0xda,0x02,0x00,0x00,
    +0xdc,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xdf,0x02,0x00,0x00,0x96,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xb9,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xbb,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xb4,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xb4,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xe1,0x02,0x00,0x00,0x94,0x03,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xb1,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xb3,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xac,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xac,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe3,0x02,0x00,0x00,
    +0x92,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xa9,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xab,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xa4,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xa4,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xe5,0x02,0x00,0x00,0x8e,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xa1,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xa3,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x40,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x40,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xe7,0x02,0x00,0x00,0x88,0x03,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x3d,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x3f,0x02,0x00,0x00,0xe0,0x00,0x04,0x00,
    +0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x35,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xd6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xd6,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xe9,0x02,0x00,0x00,0x6e,0x03,0x00,0x00,0x6d,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xd3,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xd5,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xee,0x02,0x00,0x00,0x56,0x00,0x00,0x00,0x54,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xef,0x02,0x00,0x00,
    +0x96,0x00,0x00,0x00,0xee,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xf4,0x02,0x00,0x00,0x5a,0x00,0x00,0x00,
    +0xb8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xf5,0x02,0x00,0x00,0xa7,0x00,0x00,0x00,0xf4,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xf9,0x02,0x00,0x00,
    +0x14,0x00,0x00,0x00,0xf8,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0xfa,0x02,0x00,0x00,0xf9,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfb,0x02,0x00,0x00,
    +0x0f,0x00,0x00,0x00,0xfa,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xff,0x02,0x00,0x00,0x48,0x00,0x00,0x00,
    +0xfa,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,
    +0x01,0x03,0x00,0x00,0x00,0x03,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x02,0x03,0x00,0x00,
    +0x01,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x03,0x03,0x00,0x00,0xff,0x02,0x00,0x00,0x02,0x03,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x04,0x03,0x00,0x00,
    +0xfb,0x02,0x00,0x00,0x03,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x06,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x06,0x03,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x6f,0x03,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0x6c,0x03,0x00,0x00,
    +0x09,0x03,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0x0c,0x03,0x00,0x00,0x6f,0x03,0x00,0x00,0xbe,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x08,0x03,0x00,0x00,0x09,0x03,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x0c,0x03,0x00,0x00,
    +0x07,0x03,0x00,0x00,0x08,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x07,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,0x0e,0x03,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x0e,0x03,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x70,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x07,0x03,0x00,0x00,0x6a,0x03,0x00,0x00,0x11,0x03,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x14,0x03,0x00,0x00,
    +0x70,0x03,0x00,0x00,0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x10,0x03,0x00,0x00,0x11,0x03,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x14,0x03,0x00,0x00,0x0f,0x03,0x00,0x00,
    +0x10,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x0f,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x18,0x03,0x00,0x00,
    +0x70,0x03,0x00,0x00,0x62,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x19,0x03,0x00,0x00,0xef,0x02,0x00,0x00,
    +0x18,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x1b,0x03,0x00,0x00,0x65,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1c,0x03,0x00,0x00,
    +0x19,0x03,0x00,0x00,0x1b,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x20,0x03,0x00,0x00,0x6f,0x03,0x00,0x00,
     0x8d,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x8f,0x02,0x00,0x00,0x8b,0x02,0x00,0x00,0x8e,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x91,0x02,0x00,0x00,
    +0x21,0x03,0x00,0x00,0xf5,0x02,0x00,0x00,0x20,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x23,0x03,0x00,0x00,
     0x69,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x92,0x02,0x00,0x00,0x8f,0x02,0x00,0x00,
    -0x91,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x94,0x02,0x00,0x00,0x92,0x02,0x00,0x00,0x9b,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x96,0x02,0x00,0x00,
    -0x94,0x02,0x00,0x00,0x95,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x98,0x02,0x00,0x00,0x96,0x02,0x00,0x00,
    -0x88,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0xc5,0x01,0x00,0x00,
    -0x99,0x02,0x00,0x00,0x0b,0x02,0x00,0x00,0x98,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x35,0x01,0x00,0x00,0x9a,0x02,0x00,0x00,
    -0x99,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x6c,0x02,0x00,0x00,
    -0x9b,0x02,0x00,0x00,0x85,0x02,0x00,0x00,0x89,0x02,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x9b,0x02,0x00,0x00,0x9a,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9d,0x02,0x00,0x00,
    -0x9b,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x7b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x7d,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x76,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x76,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x9f,0x02,0x00,0x00,0x8d,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x73,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x75,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xa1,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xa1,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x8e,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0x75,0x02,0x00,0x00,0xe5,0x02,0x00,0x00,0xa4,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xa7,0x02,0x00,0x00,
    -0x8e,0x03,0x00,0x00,0xbe,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xa3,0x02,0x00,0x00,0xa4,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xa7,0x02,0x00,0x00,0xa2,0x02,0x00,0x00,
    -0xa3,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xa2,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xa9,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xa9,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x92,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0xa2,0x02,0x00,0x00,
    -0xe3,0x02,0x00,0x00,0xac,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0xaf,0x02,0x00,0x00,0x92,0x03,0x00,0x00,
    -0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xab,0x02,0x00,0x00,
    -0xac,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xaf,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,0xab,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xaa,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xb1,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xb1,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x94,0x03,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0xaa,0x02,0x00,0x00,0xe1,0x02,0x00,0x00,
    -0xb4,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0xb7,0x02,0x00,0x00,0x94,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xb3,0x02,0x00,0x00,0xb4,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xb7,0x02,0x00,0x00,
    -0xb2,0x02,0x00,0x00,0xb3,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xb2,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xb9,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xb9,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x96,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0xb2,0x02,0x00,0x00,0xdf,0x02,0x00,0x00,0xba,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xbf,0x02,0x00,0x00,
    -0x96,0x03,0x00,0x00,0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xbb,0x02,0x00,0x00,0xba,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xbf,0x02,0x00,0x00,0xba,0x02,0x00,0x00,
    -0xbb,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xba,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc1,0x02,0x00,0x00,
    -0x8e,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xc3,0x02,0x00,0x00,0xc1,0x02,0x00,0x00,
    -0x94,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xc5,0x02,0x00,0x00,0xc3,0x02,0x00,0x00,0xc4,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc7,0x02,0x00,0x00,
    -0x92,0x03,0x00,0x00,0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xc8,0x02,0x00,0x00,0xc5,0x02,0x00,0x00,
    -0xc7,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xca,0x02,0x00,0x00,0xc8,0x02,0x00,0x00,0x96,0x03,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xce,0x02,0x00,0x00,
    -0xc7,0x02,0x00,0x00,0x96,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x6c,0x02,0x00,0x00,0xcf,0x02,0x00,0x00,0x57,0x02,0x00,0x00,
    -0xce,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x35,0x01,0x00,0x00,
    -0xd0,0x02,0x00,0x00,0xcf,0x02,0x00,0x00,0x73,0x00,0x04,0x00,
    -0xc3,0x00,0x00,0x00,0xd1,0x02,0x00,0x00,0xd0,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x6c,0x02,0x00,0x00,0xd6,0x02,0x00,0x00,
    -0x85,0x02,0x00,0x00,0xc3,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x35,0x01,0x00,0x00,0xd7,0x02,0x00,0x00,0xd6,0x02,0x00,0x00,
    -0x73,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0xd8,0x02,0x00,0x00,
    -0xd7,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,
    -0xda,0x02,0x00,0x00,0xc9,0x00,0x00,0x00,0xca,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0xdb,0x02,0x00,0x00,
    -0xda,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0xc3,0x00,0x00,0x00,
    -0xdc,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,
    -0xd1,0x02,0x00,0x00,0xd8,0x02,0x00,0x00,0xdb,0x02,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0xda,0x02,0x00,0x00,0xdc,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdf,0x02,0x00,0x00,
    -0x96,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xb9,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xbb,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xb4,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xb4,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xe1,0x02,0x00,0x00,0x94,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xb1,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xb3,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xac,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xac,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xe3,0x02,0x00,0x00,0x92,0x03,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xa9,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xab,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xa4,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xa4,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe5,0x02,0x00,0x00,
    -0x8e,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xa1,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xa3,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x40,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x40,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xe7,0x02,0x00,0x00,0x88,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x3d,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x3f,0x02,0x00,0x00,0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x35,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xd6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xd6,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe9,0x02,0x00,0x00,
    -0x6e,0x03,0x00,0x00,0x6d,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xd3,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xd5,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xee,0x02,0x00,0x00,
    -0x56,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xef,0x02,0x00,0x00,0x96,0x00,0x00,0x00,
    -0xee,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xf4,0x02,0x00,0x00,0x5a,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf5,0x02,0x00,0x00,
    -0xa7,0x00,0x00,0x00,0xf4,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x17,0x00,0x00,0x00,0xf9,0x02,0x00,0x00,0x14,0x00,0x00,0x00,
    -0xf8,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0xfa,0x02,0x00,0x00,0xf9,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xfb,0x02,0x00,0x00,0x0f,0x00,0x00,0x00,
    -0xfa,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xff,0x02,0x00,0x00,0x48,0x00,0x00,0x00,0xfa,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,0x01,0x03,0x00,0x00,
    -0x00,0x03,0x00,0x00,0x0c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x02,0x03,0x00,0x00,0x01,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x03,0x03,0x00,0x00,
    -0xff,0x02,0x00,0x00,0x02,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x04,0x03,0x00,0x00,0xfb,0x02,0x00,0x00,
    -0x03,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,0x06,0x03,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x06,0x03,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x6f,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0xd5,0x00,0x00,0x00,0x6c,0x03,0x00,0x00,0x09,0x03,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x0c,0x03,0x00,0x00,
    -0x6f,0x03,0x00,0x00,0xbe,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x08,0x03,0x00,0x00,0x09,0x03,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x0c,0x03,0x00,0x00,0x07,0x03,0x00,0x00,
    -0x08,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x07,0x03,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x0e,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x0e,0x03,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x70,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0x07,0x03,0x00,0x00,
    -0x6a,0x03,0x00,0x00,0x11,0x03,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0x14,0x03,0x00,0x00,0x70,0x03,0x00,0x00,
    -0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x10,0x03,0x00,0x00,
    -0x11,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x14,0x03,0x00,0x00,0x0f,0x03,0x00,0x00,0x10,0x03,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x0f,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x18,0x03,0x00,0x00,0x70,0x03,0x00,0x00,
    -0x62,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x19,0x03,0x00,0x00,0xef,0x02,0x00,0x00,0x18,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1b,0x03,0x00,0x00,
    -0x65,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x1c,0x03,0x00,0x00,0x19,0x03,0x00,0x00,
    -0x1b,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x20,0x03,0x00,0x00,0x6f,0x03,0x00,0x00,0x8d,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x21,0x03,0x00,0x00,
    -0xf5,0x02,0x00,0x00,0x20,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x23,0x03,0x00,0x00,0x69,0x00,0x00,0x00,
    -0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x24,0x03,0x00,0x00,0x21,0x03,0x00,0x00,0x23,0x03,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x24,0x03,0x00,0x00,0x21,0x03,0x00,0x00,
    +0x23,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,0x26,0x03,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x26,0x03,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x72,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x0f,0x03,0x00,0x00,0x68,0x03,0x00,0x00,0x29,0x03,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x2c,0x03,0x00,0x00,
    +0x72,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x28,0x03,0x00,0x00,0x29,0x03,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x2c,0x03,0x00,0x00,0x27,0x03,0x00,0x00,
    +0x28,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x27,0x03,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x2e,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x2e,0x03,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x74,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0x27,0x03,0x00,0x00,
    +0x66,0x03,0x00,0x00,0x31,0x03,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0x34,0x03,0x00,0x00,0x74,0x03,0x00,0x00,
    +0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x30,0x03,0x00,0x00,
    +0x31,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x34,0x03,0x00,0x00,0x2f,0x03,0x00,0x00,0x30,0x03,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x2f,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x37,0x03,0x00,0x00,0x1c,0x03,0x00,0x00,
    +0x74,0x03,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0x3a,0x03,0x00,0x00,0x37,0x03,0x00,0x00,0x37,0x00,0x00,0x00,
    +0xf7,0x00,0x03,0x00,0x3c,0x03,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x3a,0x03,0x00,0x00,0x3b,0x03,0x00,0x00,
    +0x3c,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x3b,0x03,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3f,0x03,0x00,0x00,
    +0x24,0x03,0x00,0x00,0x72,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x17,0x00,0x00,0x00,0x40,0x03,0x00,0x00,0x14,0x00,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x41,0x03,0x00,0x00,0x40,0x03,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0x42,0x03,0x00,0x00,0x3f,0x03,0x00,0x00,
    +0x41,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,0x3c,0x03,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x3c,0x03,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0xc1,0x00,0x00,0x00,0x43,0x03,0x00,0x00,0x3a,0x03,0x00,0x00,
    +0x2f,0x03,0x00,0x00,0x42,0x03,0x00,0x00,0x3b,0x03,0x00,0x00,
    +0xf7,0x00,0x03,0x00,0x45,0x03,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x43,0x03,0x00,0x00,0x44,0x03,0x00,0x00,
    +0x45,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x44,0x03,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4d,0x03,0x00,0x00,
    +0x24,0x03,0x00,0x00,0x72,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x17,0x00,0x00,0x00,0x4f,0x03,0x00,0x00,0x14,0x00,0x00,0x00,
    +0x4e,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x50,0x03,0x00,0x00,0x4f,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x51,0x03,0x00,0x00,0x4d,0x03,0x00,0x00,
    +0x50,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x52,0x03,0x00,0x00,0x04,0x03,0x00,0x00,0x51,0x03,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x54,0x03,0x00,0x00,
    +0x52,0x03,0x00,0x00,0x1c,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x56,0x03,0x00,0x00,0x54,0x03,0x00,0x00,
    +0x74,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x58,0x03,0x00,0x00,0x6f,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5a,0x03,0x00,0x00,
    +0x58,0x03,0x00,0x00,0x72,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x5c,0x03,0x00,0x00,0x5a,0x03,0x00,0x00,
    +0x5b,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x5e,0x03,0x00,0x00,0x70,0x03,0x00,0x00,0x63,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5f,0x03,0x00,0x00,
    +0x5c,0x03,0x00,0x00,0x5e,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x61,0x03,0x00,0x00,0x5f,0x03,0x00,0x00,
    +0x74,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,
    +0x62,0x03,0x00,0x00,0xc9,0x00,0x00,0x00,0x61,0x03,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x63,0x03,0x00,0x00,
    +0x62,0x03,0x00,0x00,0x41,0x00,0x06,0x00,0x21,0x02,0x00,0x00,
    +0x64,0x03,0x00,0x00,0x49,0x03,0x00,0x00,0x35,0x00,0x00,0x00,
    +0x56,0x03,0x00,0x00,0x3e,0x00,0x03,0x00,0x64,0x03,0x00,0x00,
    +0x63,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,0x45,0x03,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x45,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x31,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x31,0x03,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x66,0x03,0x00,0x00,
    +0x74,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x2e,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x30,0x03,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x29,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x29,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x68,0x03,0x00,0x00,0x72,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
     0xf9,0x00,0x02,0x00,0x26,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x26,0x03,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x72,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0x0f,0x03,0x00,0x00,
    -0x68,0x03,0x00,0x00,0x29,0x03,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0x2c,0x03,0x00,0x00,0x72,0x03,0x00,0x00,
    -0xbb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x28,0x03,0x00,0x00,
    -0x29,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x2c,0x03,0x00,0x00,0x27,0x03,0x00,0x00,0x28,0x03,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x27,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x2e,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x2e,0x03,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x74,0x03,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0x27,0x03,0x00,0x00,0x66,0x03,0x00,0x00,
    -0x31,0x03,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0x34,0x03,0x00,0x00,0x74,0x03,0x00,0x00,0x63,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x30,0x03,0x00,0x00,0x31,0x03,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x34,0x03,0x00,0x00,
    -0x2f,0x03,0x00,0x00,0x30,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x2f,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x37,0x03,0x00,0x00,0x1c,0x03,0x00,0x00,0x74,0x03,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x3a,0x03,0x00,0x00,
    -0x37,0x03,0x00,0x00,0x37,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,
    -0x3c,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x3a,0x03,0x00,0x00,0x3b,0x03,0x00,0x00,0x3c,0x03,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x3b,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x3f,0x03,0x00,0x00,0x24,0x03,0x00,0x00,
    -0x72,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    -0x40,0x03,0x00,0x00,0x14,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x41,0x03,0x00,0x00,
    -0x40,0x03,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0x42,0x03,0x00,0x00,0x3f,0x03,0x00,0x00,0x41,0x03,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x3c,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x3c,0x03,0x00,0x00,0xf5,0x00,0x07,0x00,0xc1,0x00,0x00,0x00,
    -0x43,0x03,0x00,0x00,0x3a,0x03,0x00,0x00,0x2f,0x03,0x00,0x00,
    -0x42,0x03,0x00,0x00,0x3b,0x03,0x00,0x00,0xf7,0x00,0x03,0x00,
    -0x45,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x43,0x03,0x00,0x00,0x44,0x03,0x00,0x00,0x45,0x03,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x44,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x4d,0x03,0x00,0x00,0x24,0x03,0x00,0x00,
    -0x72,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    -0x4f,0x03,0x00,0x00,0x14,0x00,0x00,0x00,0x4e,0x03,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x50,0x03,0x00,0x00,
    -0x4f,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x51,0x03,0x00,0x00,0x4d,0x03,0x00,0x00,0x50,0x03,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x52,0x03,0x00,0x00,
    -0x04,0x03,0x00,0x00,0x51,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x54,0x03,0x00,0x00,0x52,0x03,0x00,0x00,
    -0x1c,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x56,0x03,0x00,0x00,0x54,0x03,0x00,0x00,0x74,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x58,0x03,0x00,0x00,
    -0x6f,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x5a,0x03,0x00,0x00,0x58,0x03,0x00,0x00,
    -0x72,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x5c,0x03,0x00,0x00,0x5a,0x03,0x00,0x00,0x5b,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5e,0x03,0x00,0x00,
    -0x70,0x03,0x00,0x00,0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x5f,0x03,0x00,0x00,0x5c,0x03,0x00,0x00,
    -0x5e,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x61,0x03,0x00,0x00,0x5f,0x03,0x00,0x00,0x74,0x03,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,0x62,0x03,0x00,0x00,
    -0xc9,0x00,0x00,0x00,0x61,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xc3,0x00,0x00,0x00,0x63,0x03,0x00,0x00,0x62,0x03,0x00,0x00,
    -0x41,0x00,0x06,0x00,0x21,0x02,0x00,0x00,0x64,0x03,0x00,0x00,
    -0x49,0x03,0x00,0x00,0x35,0x00,0x00,0x00,0x56,0x03,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x64,0x03,0x00,0x00,0x63,0x03,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x45,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x45,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,0x31,0x03,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x31,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x66,0x03,0x00,0x00,0x74,0x03,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x2e,0x03,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x30,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x29,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x29,0x03,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x68,0x03,0x00,0x00,
    -0x72,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x26,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x28,0x03,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x11,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x11,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x6a,0x03,0x00,0x00,0x70,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x0e,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x10,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,0x09,0x03,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x09,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x6c,0x03,0x00,0x00,0x6f,0x03,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x06,0x03,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x08,0x03,0x00,0x00,0xfd,0x00,0x01,0x00,
    -0x38,0x00,0x01,0x00,
    +0x28,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,0x11,0x03,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x11,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x6a,0x03,0x00,0x00,0x70,0x03,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x0e,0x03,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x10,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x09,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x09,0x03,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6c,0x03,0x00,0x00,
    +0x6f,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x06,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x08,0x03,0x00,0x00,
    +0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
     };
    -const uint64_t matmul_q3_k_f32_len = 13144;
    +const uint64_t matmul_q3_k_f32_len = 13124;
     
     unsigned char matmul_q3_k_f32_aligned_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
    @@ -84647,9 +88351,9 @@ unsigned char matmul_q3_k_f32_fp32_data[] = {
     0x63,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x6d,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x6d,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x73,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x6d,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
     0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    @@ -84743,7 +88447,7 @@ unsigned char matmul_q3_k_f32_fp32_data[] = {
     0x06,0x00,0x00,0x00,0xe5,0x01,0x00,0x00,0x51,0x00,0x00,0x00,
     0xe4,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0xe6,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    -0xe5,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0xe5,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0xe7,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
     0xe6,0x01,0x00,0x00,0x6d,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x05,0x02,0x00,0x00,0x80,0x00,0x00,0x00,
    @@ -84772,7 +88476,7 @@ unsigned char matmul_q3_k_f32_fp32_data[] = {
     0x2d,0x02,0x00,0x00,0x6d,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x31,0x02,0x00,0x00,0x08,0x01,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x32,0x02,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x35,0x02,0x00,0x00,
     0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x50,0x02,0x00,0x00,
    @@ -84900,7 +88604,7 @@ unsigned char matmul_q3_k_f32_fp32_data[] = {
     0x9a,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x9d,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9e,0x00,0x00,0x00,
    -0x9d,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x9d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
     0x17,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
     0xa1,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0xa3,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    @@ -84957,639 +88661,637 @@ unsigned char matmul_q3_k_f32_fp32_data[] = {
     0x74,0x00,0x00,0x00,0x77,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xea,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,
     0x99,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xeb,0x00,0x00,0x00,0xea,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0xeb,0x00,0x00,0x00,0xea,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xec,0x00,0x00,0x00,
     0x7b,0x03,0x00,0x00,0xeb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0xec,0x00,0x00,0x00,
     0x6f,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xf4,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,
    -0x6f,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,
    -0xf6,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xfb,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,
    -0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,
    -0xee,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x02,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,
    -0x01,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x06,0x01,0x00,0x00,0x02,0x01,0x00,0x00,0x05,0x01,0x00,0x00,
    -0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x09,0x01,0x00,0x00,
    -0xfe,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x0a,0x01,0x00,0x00,0x09,0x01,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x0b,0x01,0x00,0x00,0x06,0x01,0x00,0x00,0x0a,0x01,0x00,0x00,
    -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x18,0x01,0x00,0x00,
    -0xfe,0x00,0x00,0x00,0x17,0x01,0x00,0x00,0x89,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x1b,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,
    -0x01,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x1c,0x01,0x00,0x00,0x1b,0x01,0x00,0x00,0x08,0x01,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1f,0x01,0x00,0x00,
    -0x1c,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x22,0x01,0x00,0x00,0x13,0x01,0x00,0x00,
    -0x02,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x24,0x01,0x00,0x00,0x22,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,
    -0xc4,0x00,0x05,0x00,0x15,0x00,0x00,0x00,0x25,0x01,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0x24,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x26,0x01,0x00,0x00,0x25,0x01,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x2b,0x01,0x00,0x00,
    -0x18,0x01,0x00,0x00,0x13,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,
    -0x2f,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x2b,0x01,0x00,0x00,0x2e,0x01,0x00,0x00,0x50,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x2e,0x01,0x00,0x00,0x82,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x3d,0x01,0x00,0x00,0x18,0x01,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0x3e,0x01,0x00,0x00,
    -0x3f,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    -0xfb,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x3d,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x30,0x01,0x00,0x00,0x40,0x01,0x00,0x00,
    -0x3f,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x41,0x01,0x00,0x00,0x40,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    -0x15,0x00,0x00,0x00,0x42,0x01,0x00,0x00,0x41,0x01,0x00,0x00,
    -0xc7,0x00,0x05,0x00,0x15,0x00,0x00,0x00,0x44,0x01,0x00,0x00,
    -0x42,0x01,0x00,0x00,0x43,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x47,0x01,0x00,0x00,0x18,0x01,0x00,0x00,
    -0x17,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x3e,0x01,0x00,0x00,
    -0x48,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    -0xfb,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x47,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x30,0x01,0x00,0x00,0x49,0x01,0x00,0x00,
    -0x48,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x30,0x01,0x00,0x00,
    -0x4a,0x01,0x00,0x00,0x49,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4b,0x01,0x00,0x00,
    -0x4a,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    -0x4c,0x01,0x00,0x00,0x4b,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
    -0x15,0x00,0x00,0x00,0x4d,0x01,0x00,0x00,0x4c,0x01,0x00,0x00,
    -0x97,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x15,0x00,0x00,0x00,
    -0x4e,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,0xa8,0x00,0x00,0x00,
    -0xc5,0x00,0x05,0x00,0x15,0x00,0x00,0x00,0x4f,0x01,0x00,0x00,
    -0x44,0x01,0x00,0x00,0x4e,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x2f,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x50,0x01,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x52,0x01,0x00,0x00,
    -0x18,0x01,0x00,0x00,0x17,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,
    -0x55,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x52,0x01,0x00,0x00,0x54,0x01,0x00,0x00,0x69,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x54,0x01,0x00,0x00,0x82,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x58,0x01,0x00,0x00,0x18,0x01,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0x3e,0x01,0x00,0x00,
    -0x59,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    -0xfb,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x58,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x30,0x01,0x00,0x00,0x5a,0x01,0x00,0x00,
    -0x59,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x5b,0x01,0x00,0x00,0x5a,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    -0x15,0x00,0x00,0x00,0x5c,0x01,0x00,0x00,0x5b,0x01,0x00,0x00,
    -0xc7,0x00,0x05,0x00,0x15,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,
    -0x5c,0x01,0x00,0x00,0x43,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x60,0x01,0x00,0x00,0x18,0x01,0x00,0x00,
    -0x13,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x3e,0x01,0x00,0x00,
    -0x61,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    -0xfb,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x60,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x30,0x01,0x00,0x00,0x62,0x01,0x00,0x00,
    -0x61,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x30,0x01,0x00,0x00,
    -0x63,0x01,0x00,0x00,0x62,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x64,0x01,0x00,0x00,
    -0x63,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    -0x65,0x01,0x00,0x00,0x64,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
    -0x15,0x00,0x00,0x00,0x66,0x01,0x00,0x00,0x65,0x01,0x00,0x00,
    -0x97,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x15,0x00,0x00,0x00,
    -0x67,0x01,0x00,0x00,0x66,0x01,0x00,0x00,0xa8,0x00,0x00,0x00,
    -0xc5,0x00,0x05,0x00,0x15,0x00,0x00,0x00,0x68,0x01,0x00,0x00,
    -0x5d,0x01,0x00,0x00,0x67,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x55,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x69,0x01,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x6b,0x01,0x00,0x00,
    -0x18,0x01,0x00,0x00,0x33,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,
    -0x6e,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x6b,0x01,0x00,0x00,0x6d,0x01,0x00,0x00,0x82,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x6d,0x01,0x00,0x00,0x82,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x71,0x01,0x00,0x00,0x18,0x01,0x00,0x00,
    -0x17,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x3e,0x01,0x00,0x00,
    -0x72,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    -0xfb,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x71,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x30,0x01,0x00,0x00,0x73,0x01,0x00,0x00,
    -0x72,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x30,0x01,0x00,0x00,
    -0x74,0x01,0x00,0x00,0x73,0x01,0x00,0x00,0xa8,0x00,0x00,0x00,
    -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x75,0x01,0x00,0x00,
    -0x74,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    -0x76,0x01,0x00,0x00,0x75,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x3e,0x01,0x00,0x00,0x7a,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,
    +0xf4,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0xee,0x00,0x00,0x00,
    +0xfa,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xfe,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x02,0x01,0x00,0x00,
    +0xfe,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x06,0x01,0x00,0x00,0x02,0x01,0x00,0x00,
    +0x05,0x01,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x09,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,0x08,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0a,0x01,0x00,0x00,
    +0x09,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x0b,0x01,0x00,0x00,0x06,0x01,0x00,0x00,
    +0x0a,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x18,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,0x17,0x01,0x00,0x00,
    +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1b,0x01,0x00,0x00,
    +0xfe,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,0x1b,0x01,0x00,0x00,
    +0x08,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x1f,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x22,0x01,0x00,0x00,
    +0x13,0x01,0x00,0x00,0x02,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x24,0x01,0x00,0x00,0x22,0x01,0x00,0x00,
    +0x1c,0x01,0x00,0x00,0xc4,0x00,0x05,0x00,0x15,0x00,0x00,0x00,
    +0x25,0x01,0x00,0x00,0xcf,0x00,0x00,0x00,0x24,0x01,0x00,0x00,
    +0x7c,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x26,0x01,0x00,0x00,
    +0x25,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0x2b,0x01,0x00,0x00,0x18,0x01,0x00,0x00,0x13,0x01,0x00,0x00,
    +0xf7,0x00,0x03,0x00,0x2f,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x2b,0x01,0x00,0x00,0x2e,0x01,0x00,0x00,
    +0x50,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x2e,0x01,0x00,0x00,
    +0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3d,0x01,0x00,0x00,
    +0x18,0x01,0x00,0x00,0x3f,0x00,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x3e,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,
     0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x18,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x30,0x01,0x00,0x00,
    -0x7b,0x01,0x00,0x00,0x7a,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,
    -0x30,0x01,0x00,0x00,0x7c,0x01,0x00,0x00,0x7b,0x01,0x00,0x00,
    -0xa8,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x7d,0x01,0x00,0x00,0x7c,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    -0x15,0x00,0x00,0x00,0x7e,0x01,0x00,0x00,0x7d,0x01,0x00,0x00,
    -0xc7,0x00,0x05,0x00,0x15,0x00,0x00,0x00,0x7f,0x01,0x00,0x00,
    -0x7e,0x01,0x00,0x00,0x97,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,
    -0x15,0x00,0x00,0x00,0x80,0x01,0x00,0x00,0x7f,0x01,0x00,0x00,
    +0x3d,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x30,0x01,0x00,0x00,
    +0x40,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x41,0x01,0x00,0x00,0x40,0x01,0x00,0x00,
    +0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x42,0x01,0x00,0x00,
    +0x41,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x15,0x00,0x00,0x00,
    +0x44,0x01,0x00,0x00,0x42,0x01,0x00,0x00,0x43,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x47,0x01,0x00,0x00,
    +0x18,0x01,0x00,0x00,0x17,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x3e,0x01,0x00,0x00,0x48,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,
    +0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x47,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x30,0x01,0x00,0x00,
    +0x49,0x01,0x00,0x00,0x48,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,
    +0x30,0x01,0x00,0x00,0x4a,0x01,0x00,0x00,0x49,0x01,0x00,0x00,
    +0x35,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x4b,0x01,0x00,0x00,0x4a,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    +0x15,0x00,0x00,0x00,0x4c,0x01,0x00,0x00,0x4b,0x01,0x00,0x00,
    +0xc7,0x00,0x05,0x00,0x15,0x00,0x00,0x00,0x4d,0x01,0x00,0x00,
    +0x4c,0x01,0x00,0x00,0x97,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,
    +0x15,0x00,0x00,0x00,0x4e,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,
     0xa8,0x00,0x00,0x00,0xc5,0x00,0x05,0x00,0x15,0x00,0x00,0x00,
    -0x81,0x01,0x00,0x00,0x76,0x01,0x00,0x00,0x80,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x6e,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x82,0x01,0x00,0x00,0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x85,0x01,0x00,0x00,0x18,0x01,0x00,0x00,0x17,0x01,0x00,0x00,
    -0x41,0x00,0x08,0x00,0x3e,0x01,0x00,0x00,0x86,0x01,0x00,0x00,
    +0x4f,0x01,0x00,0x00,0x44,0x01,0x00,0x00,0x4e,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x2f,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x50,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0x52,0x01,0x00,0x00,0x18,0x01,0x00,0x00,0x17,0x01,0x00,0x00,
    +0xf7,0x00,0x03,0x00,0x55,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x52,0x01,0x00,0x00,0x54,0x01,0x00,0x00,
    +0x69,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x54,0x01,0x00,0x00,
    +0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x58,0x01,0x00,0x00,
    +0x18,0x01,0x00,0x00,0x3f,0x00,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x3e,0x01,0x00,0x00,0x59,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,
    +0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x58,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x30,0x01,0x00,0x00,
    +0x5a,0x01,0x00,0x00,0x59,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x5b,0x01,0x00,0x00,0x5a,0x01,0x00,0x00,
    +0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x5c,0x01,0x00,0x00,
    +0x5b,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x15,0x00,0x00,0x00,
    +0x5d,0x01,0x00,0x00,0x5c,0x01,0x00,0x00,0x43,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x60,0x01,0x00,0x00,
    +0x18,0x01,0x00,0x00,0x13,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x3e,0x01,0x00,0x00,0x61,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,
    +0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x60,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x30,0x01,0x00,0x00,
    +0x62,0x01,0x00,0x00,0x61,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,
    +0x30,0x01,0x00,0x00,0x63,0x01,0x00,0x00,0x62,0x01,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x64,0x01,0x00,0x00,0x63,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    +0x15,0x00,0x00,0x00,0x65,0x01,0x00,0x00,0x64,0x01,0x00,0x00,
    +0xc7,0x00,0x05,0x00,0x15,0x00,0x00,0x00,0x66,0x01,0x00,0x00,
    +0x65,0x01,0x00,0x00,0x97,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,
    +0x15,0x00,0x00,0x00,0x67,0x01,0x00,0x00,0x66,0x01,0x00,0x00,
    +0xa8,0x00,0x00,0x00,0xc5,0x00,0x05,0x00,0x15,0x00,0x00,0x00,
    +0x68,0x01,0x00,0x00,0x5d,0x01,0x00,0x00,0x67,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x55,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x69,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0x6b,0x01,0x00,0x00,0x18,0x01,0x00,0x00,0x33,0x01,0x00,0x00,
    +0xf7,0x00,0x03,0x00,0x6e,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x6b,0x01,0x00,0x00,0x6d,0x01,0x00,0x00,
    +0x82,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x6d,0x01,0x00,0x00,
    +0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x71,0x01,0x00,0x00,
    +0x18,0x01,0x00,0x00,0x17,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x3e,0x01,0x00,0x00,0x72,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,
    +0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x71,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x30,0x01,0x00,0x00,
    +0x73,0x01,0x00,0x00,0x72,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,
    +0x30,0x01,0x00,0x00,0x74,0x01,0x00,0x00,0x73,0x01,0x00,0x00,
    +0xa8,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x75,0x01,0x00,0x00,0x74,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    +0x15,0x00,0x00,0x00,0x76,0x01,0x00,0x00,0x75,0x01,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x3e,0x01,0x00,0x00,0x7a,0x01,0x00,0x00,
     0x3a,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x85,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x30,0x01,0x00,0x00,0x87,0x01,0x00,0x00,0x86,0x01,0x00,0x00,
    -0xc2,0x00,0x05,0x00,0x30,0x01,0x00,0x00,0x88,0x01,0x00,0x00,
    -0x87,0x01,0x00,0x00,0xa8,0x00,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x89,0x01,0x00,0x00,0x88,0x01,0x00,0x00,
    -0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x8a,0x01,0x00,0x00,
    -0x89,0x01,0x00,0x00,0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x8d,0x01,0x00,0x00,0x18,0x01,0x00,0x00,0x13,0x01,0x00,0x00,
    -0x41,0x00,0x08,0x00,0x3e,0x01,0x00,0x00,0x8e,0x01,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x18,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x30,0x01,0x00,0x00,0x7b,0x01,0x00,0x00,0x7a,0x01,0x00,0x00,
    +0xc2,0x00,0x05,0x00,0x30,0x01,0x00,0x00,0x7c,0x01,0x00,0x00,
    +0x7b,0x01,0x00,0x00,0xa8,0x00,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x7d,0x01,0x00,0x00,0x7c,0x01,0x00,0x00,
    +0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x7e,0x01,0x00,0x00,
    +0x7d,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x15,0x00,0x00,0x00,
    +0x7f,0x01,0x00,0x00,0x7e,0x01,0x00,0x00,0x97,0x00,0x00,0x00,
    +0xc4,0x00,0x05,0x00,0x15,0x00,0x00,0x00,0x80,0x01,0x00,0x00,
    +0x7f,0x01,0x00,0x00,0xa8,0x00,0x00,0x00,0xc5,0x00,0x05,0x00,
    +0x15,0x00,0x00,0x00,0x81,0x01,0x00,0x00,0x76,0x01,0x00,0x00,
    +0x80,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x6e,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x82,0x01,0x00,0x00,0x82,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x85,0x01,0x00,0x00,0x18,0x01,0x00,0x00,
    +0x17,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x3e,0x01,0x00,0x00,
    +0x86,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    +0xfb,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x85,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x30,0x01,0x00,0x00,0x87,0x01,0x00,0x00,
    +0x86,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x30,0x01,0x00,0x00,
    +0x88,0x01,0x00,0x00,0x87,0x01,0x00,0x00,0xa8,0x00,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x89,0x01,0x00,0x00,
    +0x88,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    +0x8a,0x01,0x00,0x00,0x89,0x01,0x00,0x00,0x82,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x8d,0x01,0x00,0x00,0x18,0x01,0x00,0x00,
    +0x13,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x3e,0x01,0x00,0x00,
    +0x8e,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    +0xfb,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x8d,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x30,0x01,0x00,0x00,0x8f,0x01,0x00,0x00,
    +0x8e,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x30,0x01,0x00,0x00,
    +0x90,0x01,0x00,0x00,0x8f,0x01,0x00,0x00,0x91,0x00,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x91,0x01,0x00,0x00,
    +0x90,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    +0x92,0x01,0x00,0x00,0x91,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
    +0x15,0x00,0x00,0x00,0x93,0x01,0x00,0x00,0x92,0x01,0x00,0x00,
    +0x97,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x15,0x00,0x00,0x00,
    +0x94,0x01,0x00,0x00,0x93,0x01,0x00,0x00,0xa8,0x00,0x00,0x00,
    +0xc5,0x00,0x05,0x00,0x15,0x00,0x00,0x00,0x95,0x01,0x00,0x00,
    +0x8a,0x01,0x00,0x00,0x94,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x6e,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x6e,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x15,0x00,0x00,0x00,0x9d,0x03,0x00,0x00,
    +0x81,0x01,0x00,0x00,0x6d,0x01,0x00,0x00,0x95,0x01,0x00,0x00,
    +0x82,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x55,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x55,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x15,0x00,0x00,0x00,0x9e,0x03,0x00,0x00,0x68,0x01,0x00,0x00,
    +0x54,0x01,0x00,0x00,0x9d,0x03,0x00,0x00,0x6e,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x2f,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x2f,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x15,0x00,0x00,0x00,
    +0x9f,0x03,0x00,0x00,0x4f,0x01,0x00,0x00,0x2e,0x01,0x00,0x00,
    +0x9e,0x03,0x00,0x00,0x55,0x01,0x00,0x00,0x72,0x00,0x04,0x00,
    +0x27,0x01,0x00,0x00,0x99,0x01,0x00,0x00,0x9f,0x03,0x00,0x00,
    +0x41,0x00,0x07,0x00,0x9c,0x01,0x00,0x00,0x9d,0x01,0x00,0x00,
     0x3a,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x8d,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x30,0x01,0x00,0x00,0x8f,0x01,0x00,0x00,0x8e,0x01,0x00,0x00,
    -0xc2,0x00,0x05,0x00,0x30,0x01,0x00,0x00,0x90,0x01,0x00,0x00,
    -0x8f,0x01,0x00,0x00,0x91,0x00,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x91,0x01,0x00,0x00,0x90,0x01,0x00,0x00,
    -0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x92,0x01,0x00,0x00,
    -0x91,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x15,0x00,0x00,0x00,
    -0x93,0x01,0x00,0x00,0x92,0x01,0x00,0x00,0x97,0x00,0x00,0x00,
    -0xc4,0x00,0x05,0x00,0x15,0x00,0x00,0x00,0x94,0x01,0x00,0x00,
    -0x93,0x01,0x00,0x00,0xa8,0x00,0x00,0x00,0xc5,0x00,0x05,0x00,
    -0x15,0x00,0x00,0x00,0x95,0x01,0x00,0x00,0x8a,0x01,0x00,0x00,
    -0x94,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x6e,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x6e,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x15,0x00,0x00,0x00,0x9d,0x03,0x00,0x00,0x81,0x01,0x00,0x00,
    -0x6d,0x01,0x00,0x00,0x95,0x01,0x00,0x00,0x82,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x55,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x55,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x15,0x00,0x00,0x00,
    -0x9e,0x03,0x00,0x00,0x68,0x01,0x00,0x00,0x54,0x01,0x00,0x00,
    -0x9d,0x03,0x00,0x00,0x6e,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x2f,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x2f,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x15,0x00,0x00,0x00,0x9f,0x03,0x00,0x00,
    -0x4f,0x01,0x00,0x00,0x2e,0x01,0x00,0x00,0x9e,0x03,0x00,0x00,
    -0x55,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x27,0x01,0x00,0x00,
    -0x99,0x01,0x00,0x00,0x9f,0x03,0x00,0x00,0x41,0x00,0x07,0x00,
    -0x9c,0x01,0x00,0x00,0x9d,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,
    -0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0x97,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x35,0x01,0x00,0x00,0x9e,0x01,0x00,0x00,
    -0x9d,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    -0x9f,0x01,0x00,0x00,0x9e,0x01,0x00,0x00,0x72,0x00,0x04,0x00,
    -0x15,0x00,0x00,0x00,0xa1,0x01,0x00,0x00,0x99,0x01,0x00,0x00,
    -0x82,0x00,0x05,0x00,0x15,0x00,0x00,0x00,0xa3,0x01,0x00,0x00,
    -0xa1,0x01,0x00,0x00,0xa2,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,
    -0xc3,0x00,0x00,0x00,0xa4,0x01,0x00,0x00,0xa3,0x01,0x00,0x00,
    -0x85,0x00,0x05,0x00,0xc3,0x00,0x00,0x00,0xa5,0x01,0x00,0x00,
    -0x9f,0x01,0x00,0x00,0xa4,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x3e,0x01,0x00,0x00,0xaf,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,
    -0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0x0b,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x30,0x01,0x00,0x00,
    -0xb0,0x01,0x00,0x00,0xaf,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,
    -0x30,0x01,0x00,0x00,0xb2,0x01,0x00,0x00,0xb0,0x01,0x00,0x00,
    -0x1f,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0xb3,0x01,0x00,0x00,0xb2,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    -0x15,0x00,0x00,0x00,0xb4,0x01,0x00,0x00,0xb3,0x01,0x00,0x00,
    -0xc7,0x00,0x05,0x00,0x15,0x00,0x00,0x00,0xb5,0x01,0x00,0x00,
    -0xb4,0x01,0x00,0x00,0x97,0x00,0x00,0x00,0x72,0x00,0x04,0x00,
    -0x27,0x01,0x00,0x00,0xb6,0x01,0x00,0x00,0xb5,0x01,0x00,0x00,
    -0x72,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0xb7,0x01,0x00,0x00,
    -0xb6,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x3e,0x01,0x00,0x00,
    -0xba,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    -0xfb,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x0a,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x30,0x01,0x00,0x00,0xbb,0x01,0x00,0x00,
    -0xba,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0xbc,0x01,0x00,0x00,0xbb,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xbe,0x01,0x00,0x00,0xbc,0x01,0x00,0x00,
    -0x26,0x01,0x00,0x00,0xab,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0xbf,0x01,0x00,0x00,0xbe,0x01,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0xa9,0x00,0x06,0x00,0x15,0x00,0x00,0x00,0xc0,0x01,0x00,0x00,
    -0xbf,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,
    -0x82,0x00,0x05,0x00,0x15,0x00,0x00,0x00,0xc1,0x01,0x00,0x00,
    -0xb7,0x01,0x00,0x00,0xc0,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,
    -0xc3,0x00,0x00,0x00,0xc2,0x01,0x00,0x00,0xc1,0x01,0x00,0x00,
    -0x85,0x00,0x05,0x00,0xc3,0x00,0x00,0x00,0xc3,0x01,0x00,0x00,
    -0xa5,0x01,0x00,0x00,0xc2,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xc4,0x01,0x00,0x00,0xc5,0x01,0x00,0x00,0xaa,0x01,0x00,0x00,
    -0xf7,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0xc5,0x01,0x00,0x00,
    -0xc3,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xc7,0x01,0x00,0x00,0xf7,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xcb,0x01,0x00,0x00,
    -0x0b,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x3e,0x01,0x00,0x00,0xcc,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,
    -0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0xcb,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x30,0x01,0x00,0x00,
    -0xcd,0x01,0x00,0x00,0xcc,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,
    -0x30,0x01,0x00,0x00,0xcf,0x01,0x00,0x00,0xcd,0x01,0x00,0x00,
    -0x1f,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0xd0,0x01,0x00,0x00,0xcf,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    -0x15,0x00,0x00,0x00,0xd1,0x01,0x00,0x00,0xd0,0x01,0x00,0x00,
    -0xc7,0x00,0x05,0x00,0x15,0x00,0x00,0x00,0xd2,0x01,0x00,0x00,
    -0xd1,0x01,0x00,0x00,0x97,0x00,0x00,0x00,0x72,0x00,0x04,0x00,
    -0x27,0x01,0x00,0x00,0xd3,0x01,0x00,0x00,0xd2,0x01,0x00,0x00,
    -0x72,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0xd4,0x01,0x00,0x00,
    -0xd3,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xd7,0x01,0x00,0x00,0x0a,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,
    -0x41,0x00,0x08,0x00,0x3e,0x01,0x00,0x00,0xd8,0x01,0x00,0x00,
    +0x97,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x35,0x01,0x00,0x00,
    +0x9e,0x01,0x00,0x00,0x9d,0x01,0x00,0x00,0x73,0x00,0x04,0x00,
    +0xc3,0x00,0x00,0x00,0x9f,0x01,0x00,0x00,0x9e,0x01,0x00,0x00,
    +0x72,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0xa1,0x01,0x00,0x00,
    +0x99,0x01,0x00,0x00,0x82,0x00,0x05,0x00,0x15,0x00,0x00,0x00,
    +0xa3,0x01,0x00,0x00,0xa1,0x01,0x00,0x00,0xa2,0x01,0x00,0x00,
    +0x6f,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0xa4,0x01,0x00,0x00,
    +0xa3,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0xc3,0x00,0x00,0x00,
    +0xa5,0x01,0x00,0x00,0x9f,0x01,0x00,0x00,0xa4,0x01,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x3e,0x01,0x00,0x00,0xaf,0x01,0x00,0x00,
     0x3a,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
    -0x35,0x00,0x00,0x00,0xd7,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x30,0x01,0x00,0x00,0xd9,0x01,0x00,0x00,0xd8,0x01,0x00,0x00,
    -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xda,0x01,0x00,0x00,
    -0xd9,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xdc,0x01,0x00,0x00,0xda,0x01,0x00,0x00,0x26,0x01,0x00,0x00,
    -0xab,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xdd,0x01,0x00,0x00,
    -0xdc,0x01,0x00,0x00,0x3f,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,
    -0x15,0x00,0x00,0x00,0xde,0x01,0x00,0x00,0xdd,0x01,0x00,0x00,
    -0x35,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,0x82,0x00,0x05,0x00,
    -0x15,0x00,0x00,0x00,0xdf,0x01,0x00,0x00,0xd4,0x01,0x00,0x00,
    -0xde,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    -0xe0,0x01,0x00,0x00,0xdf,0x01,0x00,0x00,0x85,0x00,0x05,0x00,
    -0xc3,0x00,0x00,0x00,0xe1,0x01,0x00,0x00,0xa5,0x01,0x00,0x00,
    -0xe0,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0xc4,0x01,0x00,0x00,
    -0xe2,0x01,0x00,0x00,0xaa,0x01,0x00,0x00,0xc7,0x01,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0xe2,0x01,0x00,0x00,0xe1,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xdf,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xdf,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xe9,0x01,0x00,0x00,0x77,0x03,0x00,0x00,0xe7,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xdc,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xde,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xeb,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xeb,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x78,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0xde,0x00,0x00,0x00,0x30,0x02,0x00,0x00,0xee,0x01,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xf1,0x01,0x00,0x00,
    -0x78,0x03,0x00,0x00,0xa6,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xed,0x01,0x00,0x00,0xee,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xf1,0x01,0x00,0x00,0xec,0x01,0x00,0x00,
    -0xed,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xec,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf5,0x01,0x00,0x00,
    -0xa7,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xf7,0x01,0x00,0x00,0xf5,0x01,0x00,0x00,
    -0x78,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    -0xf8,0x01,0x00,0x00,0x14,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xf9,0x01,0x00,0x00,
    -0xf8,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0xfa,0x01,0x00,0x00,0xf7,0x01,0x00,0x00,0xf9,0x01,0x00,0x00,
    -0xf7,0x00,0x03,0x00,0xfc,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xfa,0x01,0x00,0x00,0xfb,0x01,0x00,0x00,
    -0xfc,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xfb,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xff,0x01,0x00,0x00,
    -0x67,0x03,0x00,0x00,0x79,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0x01,0x02,0x00,0x00,0xff,0x01,0x00,0x00,
    -0x8e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xfc,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xfc,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0xc1,0x00,0x00,0x00,0x02,0x02,0x00,0x00,0xfa,0x01,0x00,0x00,
    -0xec,0x01,0x00,0x00,0x01,0x02,0x00,0x00,0xfb,0x01,0x00,0x00,
    -0xf7,0x00,0x03,0x00,0x04,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x02,0x02,0x00,0x00,0x03,0x02,0x00,0x00,
    -0x23,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x03,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0c,0x02,0x00,0x00,
    -0x7e,0x00,0x00,0x00,0x78,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x0e,0x02,0x00,0x00,0x0c,0x02,0x00,0x00,
    -0x0d,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x10,0x02,0x00,0x00,0x0e,0x02,0x00,0x00,0x79,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1b,0x02,0x00,0x00,
    -0x0c,0x02,0x00,0x00,0xaa,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x1c,0x02,0x00,0x00,0x7f,0x03,0x00,0x00,
    -0x1b,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x1e,0x02,0x00,0x00,0x1c,0x02,0x00,0x00,0x79,0x00,0x00,0x00,
    -0x41,0x00,0x06,0x00,0x1f,0x02,0x00,0x00,0x20,0x02,0x00,0x00,
    -0x14,0x02,0x00,0x00,0x35,0x00,0x00,0x00,0x1e,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x21,0x02,0x00,0x00,
    -0x20,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xc4,0x01,0x00,0x00,
    -0x22,0x02,0x00,0x00,0x09,0x02,0x00,0x00,0x10,0x02,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x22,0x02,0x00,0x00,0x21,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x04,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x23,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x26,0x02,0x00,0x00,0x7e,0x00,0x00,0x00,0x78,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x28,0x02,0x00,0x00,
    -0x26,0x02,0x00,0x00,0x27,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x2a,0x02,0x00,0x00,0x28,0x02,0x00,0x00,
    -0x79,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0xc4,0x01,0x00,0x00,
    -0x2b,0x02,0x00,0x00,0x09,0x02,0x00,0x00,0x2a,0x02,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x2b,0x02,0x00,0x00,0xcb,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x04,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x04,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xee,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xee,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x30,0x02,0x00,0x00,0x78,0x03,0x00,0x00,
    -0x2e,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xeb,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xed,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,
    -0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x31,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x34,0x02,0x00,0x00,
    -0x7b,0x03,0x00,0x00,0x32,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x37,0x02,0x00,0x00,0x7f,0x03,0x00,0x00,
    -0x35,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x39,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x39,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x81,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0xed,0x01,0x00,0x00,0xe0,0x02,0x00,0x00,0x3c,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x3f,0x02,0x00,0x00,
    -0x81,0x03,0x00,0x00,0x6d,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x3b,0x02,0x00,0x00,0x3c,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x3f,0x02,0x00,0x00,0x3a,0x02,0x00,0x00,
    -0x3b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x3a,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x41,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x41,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x85,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0x3a,0x02,0x00,0x00,
    -0x6c,0x02,0x00,0x00,0x44,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0x47,0x02,0x00,0x00,0x85,0x03,0x00,0x00,
    -0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x43,0x02,0x00,0x00,
    -0x44,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x47,0x02,0x00,0x00,0x42,0x02,0x00,0x00,0x43,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x42,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x49,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x49,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x97,0x03,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0x42,0x02,0x00,0x00,0x6a,0x02,0x00,0x00,
    -0x4a,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0x4f,0x02,0x00,0x00,0x97,0x03,0x00,0x00,0x63,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x4b,0x02,0x00,0x00,0x4a,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x4f,0x02,0x00,0x00,
    -0x4a,0x02,0x00,0x00,0x4b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x4a,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x55,0x02,0x00,0x00,0x85,0x03,0x00,0x00,0x63,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x57,0x02,0x00,0x00,
    -0x55,0x02,0x00,0x00,0x97,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x59,0x02,0x00,0x00,0x56,0x00,0x00,0x00,
    -0x54,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x5b,0x02,0x00,0x00,0x85,0x03,0x00,0x00,0x62,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5c,0x02,0x00,0x00,
    -0x59,0x02,0x00,0x00,0x5b,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x5e,0x02,0x00,0x00,0x65,0x00,0x00,0x00,
    -0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x5f,0x02,0x00,0x00,0x5c,0x02,0x00,0x00,0x5e,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x61,0x02,0x00,0x00,
    -0x5f,0x02,0x00,0x00,0x97,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x63,0x02,0x00,0x00,0x61,0x02,0x00,0x00,
    -0x62,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x65,0x02,0x00,0x00,0x63,0x02,0x00,0x00,0x81,0x03,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xc4,0x01,0x00,0x00,0x66,0x02,0x00,0x00,
    -0xaa,0x01,0x00,0x00,0x65,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xc3,0x00,0x00,0x00,0x67,0x02,0x00,0x00,0x66,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,0x68,0x02,0x00,0x00,
    -0x53,0x02,0x00,0x00,0x57,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x68,0x02,0x00,0x00,0x67,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x6a,0x02,0x00,0x00,0x97,0x03,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x49,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x4b,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x44,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x44,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6c,0x02,0x00,0x00,
    -0x85,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x41,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x43,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x6e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x6e,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x86,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0x43,0x02,0x00,0x00,
    -0x9a,0x02,0x00,0x00,0x71,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0x74,0x02,0x00,0x00,0x86,0x03,0x00,0x00,
    -0xbe,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x70,0x02,0x00,0x00,
    -0x71,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x74,0x02,0x00,0x00,0x6f,0x02,0x00,0x00,0x70,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x6f,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x76,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x76,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x94,0x03,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0x6f,0x02,0x00,0x00,0x98,0x02,0x00,0x00,
    -0x77,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0x7c,0x02,0x00,0x00,0x94,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x78,0x02,0x00,0x00,0x77,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x7c,0x02,0x00,0x00,
    -0x77,0x02,0x00,0x00,0x78,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x77,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x82,0x02,0x00,0x00,0x86,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x84,0x02,0x00,0x00,
    -0x82,0x02,0x00,0x00,0x94,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x86,0x02,0x00,0x00,0x5a,0x00,0x00,0x00,
    -0xb8,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x89,0x02,0x00,0x00,0x86,0x03,0x00,0x00,0x88,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8a,0x02,0x00,0x00,
    -0x86,0x02,0x00,0x00,0x89,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x8c,0x02,0x00,0x00,0x69,0x00,0x00,0x00,
    -0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x8d,0x02,0x00,0x00,0x8a,0x02,0x00,0x00,0x8c,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8f,0x02,0x00,0x00,
    -0x8d,0x02,0x00,0x00,0x94,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x91,0x02,0x00,0x00,0x8f,0x02,0x00,0x00,
    -0x90,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x93,0x02,0x00,0x00,0x91,0x02,0x00,0x00,0x81,0x03,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xc4,0x01,0x00,0x00,0x94,0x02,0x00,0x00,
    -0x09,0x02,0x00,0x00,0x93,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xc3,0x00,0x00,0x00,0x95,0x02,0x00,0x00,0x94,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,0x96,0x02,0x00,0x00,
    -0x80,0x02,0x00,0x00,0x84,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x96,0x02,0x00,0x00,0x95,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x98,0x02,0x00,0x00,0x94,0x03,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x76,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x78,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x71,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x71,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9a,0x02,0x00,0x00,
    -0x86,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x6e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x70,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x9c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x9c,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x87,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0x70,0x02,0x00,0x00,
    -0xde,0x02,0x00,0x00,0x9f,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0xa2,0x02,0x00,0x00,0x87,0x03,0x00,0x00,
    -0xbe,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x9e,0x02,0x00,0x00,
    -0x9f,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xa2,0x02,0x00,0x00,0x9d,0x02,0x00,0x00,0x9e,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x9d,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xa4,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xa4,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x8b,0x03,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0x9d,0x02,0x00,0x00,0xdc,0x02,0x00,0x00,
    -0xa7,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0xaa,0x02,0x00,0x00,0x8b,0x03,0x00,0x00,0x61,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xa6,0x02,0x00,0x00,0xa7,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xaa,0x02,0x00,0x00,
    -0xa5,0x02,0x00,0x00,0xa6,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xa5,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xac,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xac,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x8d,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0xa5,0x02,0x00,0x00,0xda,0x02,0x00,0x00,0xaf,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xb2,0x02,0x00,0x00,
    -0x8d,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xae,0x02,0x00,0x00,0xaf,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xb2,0x02,0x00,0x00,0xad,0x02,0x00,0x00,
    -0xae,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xad,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xb4,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xb4,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x8f,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0xad,0x02,0x00,0x00,
    -0xd8,0x02,0x00,0x00,0xb5,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0xba,0x02,0x00,0x00,0x8f,0x03,0x00,0x00,
    -0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xb6,0x02,0x00,0x00,
    -0xb5,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xba,0x02,0x00,0x00,0xb5,0x02,0x00,0x00,0xb6,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xb5,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xbc,0x02,0x00,0x00,0x87,0x03,0x00,0x00,
    -0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xbe,0x02,0x00,0x00,0xbc,0x02,0x00,0x00,0x8d,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc0,0x02,0x00,0x00,
    -0xbe,0x02,0x00,0x00,0xbf,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xc2,0x02,0x00,0x00,0x8b,0x03,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0x0b,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x30,0x01,0x00,0x00,0xb0,0x01,0x00,0x00,0xaf,0x01,0x00,0x00,
    +0xc2,0x00,0x05,0x00,0x30,0x01,0x00,0x00,0xb2,0x01,0x00,0x00,
    +0xb0,0x01,0x00,0x00,0x1f,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0xb3,0x01,0x00,0x00,0xb2,0x01,0x00,0x00,
    +0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0xb4,0x01,0x00,0x00,
    +0xb3,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x15,0x00,0x00,0x00,
    +0xb5,0x01,0x00,0x00,0xb4,0x01,0x00,0x00,0x97,0x00,0x00,0x00,
    +0x72,0x00,0x04,0x00,0x27,0x01,0x00,0x00,0xb6,0x01,0x00,0x00,
    +0xb5,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    +0xb7,0x01,0x00,0x00,0xb6,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x3e,0x01,0x00,0x00,0xba,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,
    +0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0x35,0x00,0x00,0x00,
    +0x0a,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x30,0x01,0x00,0x00,
    +0xbb,0x01,0x00,0x00,0xba,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0xbc,0x01,0x00,0x00,0xbb,0x01,0x00,0x00,
    +0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbe,0x01,0x00,0x00,
    +0xbc,0x01,0x00,0x00,0x26,0x01,0x00,0x00,0xab,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0xbf,0x01,0x00,0x00,0xbe,0x01,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,0x15,0x00,0x00,0x00,
    +0xc0,0x01,0x00,0x00,0xbf,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    +0xa8,0x00,0x00,0x00,0x82,0x00,0x05,0x00,0x15,0x00,0x00,0x00,
    +0xc1,0x01,0x00,0x00,0xb7,0x01,0x00,0x00,0xc0,0x01,0x00,0x00,
    +0x6f,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0xc2,0x01,0x00,0x00,
    +0xc1,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0xc3,0x00,0x00,0x00,
    +0xc3,0x01,0x00,0x00,0xa5,0x01,0x00,0x00,0xc2,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xc4,0x01,0x00,0x00,0xc5,0x01,0x00,0x00,
    +0xaa,0x01,0x00,0x00,0xf7,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0xc5,0x01,0x00,0x00,0xc3,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xc7,0x01,0x00,0x00,0xf7,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xcb,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x3e,0x01,0x00,0x00,0xcc,0x01,0x00,0x00,
    +0x3a,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xcb,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x30,0x01,0x00,0x00,0xcd,0x01,0x00,0x00,0xcc,0x01,0x00,0x00,
    +0xc2,0x00,0x05,0x00,0x30,0x01,0x00,0x00,0xcf,0x01,0x00,0x00,
    +0xcd,0x01,0x00,0x00,0x1f,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0xd0,0x01,0x00,0x00,0xcf,0x01,0x00,0x00,
    +0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0xd1,0x01,0x00,0x00,
    +0xd0,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x15,0x00,0x00,0x00,
    +0xd2,0x01,0x00,0x00,0xd1,0x01,0x00,0x00,0x97,0x00,0x00,0x00,
    +0x72,0x00,0x04,0x00,0x27,0x01,0x00,0x00,0xd3,0x01,0x00,0x00,
    +0xd2,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    +0xd4,0x01,0x00,0x00,0xd3,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xd7,0x01,0x00,0x00,0x0a,0x01,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0x3e,0x01,0x00,0x00,
    +0xd8,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    +0xfb,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0xd7,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x30,0x01,0x00,0x00,0xd9,0x01,0x00,0x00,
    +0xd8,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0xda,0x01,0x00,0x00,0xd9,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xdc,0x01,0x00,0x00,0xda,0x01,0x00,0x00,
    +0x26,0x01,0x00,0x00,0xab,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0xdd,0x01,0x00,0x00,0xdc,0x01,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0xa9,0x00,0x06,0x00,0x15,0x00,0x00,0x00,0xde,0x01,0x00,0x00,
    +0xdd,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,
    +0x82,0x00,0x05,0x00,0x15,0x00,0x00,0x00,0xdf,0x01,0x00,0x00,
    +0xd4,0x01,0x00,0x00,0xde,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,
    +0xc3,0x00,0x00,0x00,0xe0,0x01,0x00,0x00,0xdf,0x01,0x00,0x00,
    +0x85,0x00,0x05,0x00,0xc3,0x00,0x00,0x00,0xe1,0x01,0x00,0x00,
    +0xa5,0x01,0x00,0x00,0xe0,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xc4,0x01,0x00,0x00,0xe2,0x01,0x00,0x00,0xaa,0x01,0x00,0x00,
    +0xc7,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xe2,0x01,0x00,0x00,
    +0xe1,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xdf,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xdf,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xe9,0x01,0x00,0x00,0x77,0x03,0x00,0x00,
    +0xe7,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xdc,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xde,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xeb,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xeb,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x78,0x03,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0xde,0x00,0x00,0x00,0x30,0x02,0x00,0x00,
    +0xee,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0xf1,0x01,0x00,0x00,0x78,0x03,0x00,0x00,0xa6,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xed,0x01,0x00,0x00,0xee,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xf1,0x01,0x00,0x00,
    +0xec,0x01,0x00,0x00,0xed,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xec,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xf5,0x01,0x00,0x00,0xa7,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf7,0x01,0x00,0x00,
    +0xf5,0x01,0x00,0x00,0x78,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x17,0x00,0x00,0x00,0xf8,0x01,0x00,0x00,0x14,0x00,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0xf9,0x01,0x00,0x00,0xf8,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0xfa,0x01,0x00,0x00,0xf7,0x01,0x00,0x00,
    +0xf9,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,0xfc,0x01,0x00,0x00,
    +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xfa,0x01,0x00,0x00,
    +0xfb,0x01,0x00,0x00,0xfc,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xfb,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xff,0x01,0x00,0x00,0x67,0x03,0x00,0x00,0x79,0x00,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x01,0x02,0x00,0x00,
    +0xff,0x01,0x00,0x00,0x8e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xfc,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xfc,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0xc1,0x00,0x00,0x00,0x02,0x02,0x00,0x00,
    +0xfa,0x01,0x00,0x00,0xec,0x01,0x00,0x00,0x01,0x02,0x00,0x00,
    +0xfb,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,0x04,0x02,0x00,0x00,
    +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x02,0x02,0x00,0x00,
    +0x03,0x02,0x00,0x00,0x23,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x03,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x0c,0x02,0x00,0x00,0x7e,0x00,0x00,0x00,0x78,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0e,0x02,0x00,0x00,
    +0x0c,0x02,0x00,0x00,0x0d,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x10,0x02,0x00,0x00,0x0e,0x02,0x00,0x00,
    +0x79,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x1b,0x02,0x00,0x00,0x0c,0x02,0x00,0x00,0xaa,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1c,0x02,0x00,0x00,
    +0x7f,0x03,0x00,0x00,0x1b,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x1e,0x02,0x00,0x00,0x1c,0x02,0x00,0x00,
    +0x79,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x1f,0x02,0x00,0x00,
    +0x20,0x02,0x00,0x00,0x14,0x02,0x00,0x00,0x35,0x00,0x00,0x00,
    +0x1e,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    +0x21,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xc4,0x01,0x00,0x00,0x22,0x02,0x00,0x00,0x09,0x02,0x00,0x00,
    +0x10,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0x22,0x02,0x00,0x00,
    +0x21,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x04,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x23,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x26,0x02,0x00,0x00,0x7e,0x00,0x00,0x00,
    +0x78,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x28,0x02,0x00,0x00,0x26,0x02,0x00,0x00,0x27,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2a,0x02,0x00,0x00,
    +0x28,0x02,0x00,0x00,0x79,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xc4,0x01,0x00,0x00,0x2b,0x02,0x00,0x00,0x09,0x02,0x00,0x00,
    +0x2a,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0x2b,0x02,0x00,0x00,
    +0xcb,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x04,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x04,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xee,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xee,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x30,0x02,0x00,0x00,
    +0x78,0x03,0x00,0x00,0x2e,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xeb,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xed,0x01,0x00,0x00,
    +0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x31,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x34,0x02,0x00,0x00,0x7b,0x03,0x00,0x00,0x32,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x37,0x02,0x00,0x00,
    +0x7f,0x03,0x00,0x00,0x35,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x39,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x39,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x81,0x03,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0xed,0x01,0x00,0x00,0xe0,0x02,0x00,0x00,
    +0x3c,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0x3f,0x02,0x00,0x00,0x81,0x03,0x00,0x00,0x6d,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x3b,0x02,0x00,0x00,0x3c,0x02,0x00,0x00,
    +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x3f,0x02,0x00,0x00,
    +0x3a,0x02,0x00,0x00,0x3b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x3a,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x41,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x41,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x85,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x3a,0x02,0x00,0x00,0x6c,0x02,0x00,0x00,0x44,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x47,0x02,0x00,0x00,
    +0x85,0x03,0x00,0x00,0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x43,0x02,0x00,0x00,0x44,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x47,0x02,0x00,0x00,0x42,0x02,0x00,0x00,
    +0x43,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x42,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x49,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x49,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x97,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0x42,0x02,0x00,0x00,
    +0x6a,0x02,0x00,0x00,0x4a,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0x4f,0x02,0x00,0x00,0x97,0x03,0x00,0x00,
    +0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x4b,0x02,0x00,0x00,
    +0x4a,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x4f,0x02,0x00,0x00,0x4a,0x02,0x00,0x00,0x4b,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x4a,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x55,0x02,0x00,0x00,0x85,0x03,0x00,0x00,
     0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xc3,0x02,0x00,0x00,0xc0,0x02,0x00,0x00,0xc2,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc5,0x02,0x00,0x00,
    -0xc3,0x02,0x00,0x00,0x8f,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xc9,0x02,0x00,0x00,0xc2,0x02,0x00,0x00,
    -0x8f,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,
    -0xca,0x02,0x00,0x00,0x53,0x02,0x00,0x00,0xc9,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0xcb,0x02,0x00,0x00,
    -0xca,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,
    -0xd0,0x02,0x00,0x00,0x80,0x02,0x00,0x00,0xbe,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0xd1,0x02,0x00,0x00,
    -0xd0,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,
    -0xd3,0x02,0x00,0x00,0xc9,0x00,0x00,0x00,0xc5,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0xd4,0x02,0x00,0x00,
    -0xd3,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0xc3,0x00,0x00,0x00,
    -0xd5,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,
    -0xcb,0x02,0x00,0x00,0xd1,0x02,0x00,0x00,0xd4,0x02,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0xd3,0x02,0x00,0x00,0xd5,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd8,0x02,0x00,0x00,
    -0x8f,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xb4,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xb6,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xaf,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xaf,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xda,0x02,0x00,0x00,0x8d,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xac,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xae,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xa7,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xa7,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xdc,0x02,0x00,0x00,0x8b,0x03,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xa4,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xa6,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x9f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x9f,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xde,0x02,0x00,0x00,
    -0x87,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x9c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x9e,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x3c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x3c,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xe0,0x02,0x00,0x00,0x81,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x39,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x3b,0x02,0x00,0x00,0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x31,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xd6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xd6,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe2,0x02,0x00,0x00,
    -0x67,0x03,0x00,0x00,0x6d,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xd3,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xd5,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe7,0x02,0x00,0x00,
    -0x56,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xe8,0x02,0x00,0x00,0x96,0x00,0x00,0x00,
    -0xe7,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xed,0x02,0x00,0x00,0x5a,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xee,0x02,0x00,0x00,
    -0xa7,0x00,0x00,0x00,0xed,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x17,0x00,0x00,0x00,0xf2,0x02,0x00,0x00,0x14,0x00,0x00,0x00,
    -0xf1,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0xf3,0x02,0x00,0x00,0xf2,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xf4,0x02,0x00,0x00,0x0f,0x00,0x00,0x00,
    -0xf3,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xf8,0x02,0x00,0x00,0x48,0x00,0x00,0x00,0xf3,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,0xfa,0x02,0x00,0x00,
    -0xf9,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0xfb,0x02,0x00,0x00,0xfa,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfc,0x02,0x00,0x00,
    -0xf8,0x02,0x00,0x00,0xfb,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xfd,0x02,0x00,0x00,0xf4,0x02,0x00,0x00,
    -0xfc,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xff,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xff,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x68,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0xd5,0x00,0x00,0x00,0x65,0x03,0x00,0x00,0x02,0x03,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x05,0x03,0x00,0x00,
    -0x68,0x03,0x00,0x00,0xbe,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x01,0x03,0x00,0x00,0x02,0x03,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x05,0x03,0x00,0x00,0x00,0x03,0x00,0x00,
    -0x01,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x00,0x03,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x07,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x07,0x03,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x69,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0x00,0x03,0x00,0x00,
    -0x63,0x03,0x00,0x00,0x0a,0x03,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0x0d,0x03,0x00,0x00,0x69,0x03,0x00,0x00,
    -0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x09,0x03,0x00,0x00,
    -0x0a,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x0d,0x03,0x00,0x00,0x08,0x03,0x00,0x00,0x09,0x03,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x08,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x11,0x03,0x00,0x00,0x69,0x03,0x00,0x00,
    +0x57,0x02,0x00,0x00,0x55,0x02,0x00,0x00,0x97,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x59,0x02,0x00,0x00,
    +0x56,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x5b,0x02,0x00,0x00,0x85,0x03,0x00,0x00,
     0x62,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x12,0x03,0x00,0x00,0xe8,0x02,0x00,0x00,0x11,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x14,0x03,0x00,0x00,
    +0x5c,0x02,0x00,0x00,0x59,0x02,0x00,0x00,0x5b,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5e,0x02,0x00,0x00,
     0x65,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x15,0x03,0x00,0x00,0x12,0x03,0x00,0x00,
    -0x14,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x19,0x03,0x00,0x00,0x68,0x03,0x00,0x00,0x88,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1a,0x03,0x00,0x00,
    -0xee,0x02,0x00,0x00,0x19,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x1c,0x03,0x00,0x00,0x69,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x5f,0x02,0x00,0x00,0x5c,0x02,0x00,0x00,
    +0x5e,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x61,0x02,0x00,0x00,0x5f,0x02,0x00,0x00,0x97,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x63,0x02,0x00,0x00,
    +0x61,0x02,0x00,0x00,0x62,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x65,0x02,0x00,0x00,0x63,0x02,0x00,0x00,
    +0x81,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0xc4,0x01,0x00,0x00,
    +0x66,0x02,0x00,0x00,0xaa,0x01,0x00,0x00,0x65,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x67,0x02,0x00,0x00,
    +0x66,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,
    +0x68,0x02,0x00,0x00,0x53,0x02,0x00,0x00,0x57,0x02,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x68,0x02,0x00,0x00,0x67,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6a,0x02,0x00,0x00,
    +0x97,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x49,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x4b,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x44,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x44,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x6c,0x02,0x00,0x00,0x85,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x41,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x43,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x6e,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x6e,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x86,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x43,0x02,0x00,0x00,0x9a,0x02,0x00,0x00,0x71,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x74,0x02,0x00,0x00,
    +0x86,0x03,0x00,0x00,0xbe,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x70,0x02,0x00,0x00,0x71,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x74,0x02,0x00,0x00,0x6f,0x02,0x00,0x00,
    +0x70,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x6f,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x76,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x76,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x94,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0x6f,0x02,0x00,0x00,
    +0x98,0x02,0x00,0x00,0x77,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0x7c,0x02,0x00,0x00,0x94,0x03,0x00,0x00,
    +0xbb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x78,0x02,0x00,0x00,
    +0x77,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x7c,0x02,0x00,0x00,0x77,0x02,0x00,0x00,0x78,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x77,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x82,0x02,0x00,0x00,0x86,0x03,0x00,0x00,
     0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x1d,0x03,0x00,0x00,0x1a,0x03,0x00,0x00,0x1c,0x03,0x00,0x00,
    +0x84,0x02,0x00,0x00,0x82,0x02,0x00,0x00,0x94,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x86,0x02,0x00,0x00,
    +0x5a,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x89,0x02,0x00,0x00,0x86,0x03,0x00,0x00,
    +0x88,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x8a,0x02,0x00,0x00,0x86,0x02,0x00,0x00,0x89,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8c,0x02,0x00,0x00,
    +0x69,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x8d,0x02,0x00,0x00,0x8a,0x02,0x00,0x00,
    +0x8c,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x8f,0x02,0x00,0x00,0x8d,0x02,0x00,0x00,0x94,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x91,0x02,0x00,0x00,
    +0x8f,0x02,0x00,0x00,0x90,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x93,0x02,0x00,0x00,0x91,0x02,0x00,0x00,
    +0x81,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0xc4,0x01,0x00,0x00,
    +0x94,0x02,0x00,0x00,0x09,0x02,0x00,0x00,0x93,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x95,0x02,0x00,0x00,
    +0x94,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,
    +0x96,0x02,0x00,0x00,0x80,0x02,0x00,0x00,0x84,0x02,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x96,0x02,0x00,0x00,0x95,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x98,0x02,0x00,0x00,
    +0x94,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x76,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x78,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x71,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x71,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x9a,0x02,0x00,0x00,0x86,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x6e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x70,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x9c,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x9c,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x87,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x70,0x02,0x00,0x00,0xde,0x02,0x00,0x00,0x9f,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xa2,0x02,0x00,0x00,
    +0x87,0x03,0x00,0x00,0xbe,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x9e,0x02,0x00,0x00,0x9f,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xa2,0x02,0x00,0x00,0x9d,0x02,0x00,0x00,
    +0x9e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x9d,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xa4,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xa4,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x8b,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0x9d,0x02,0x00,0x00,
    +0xdc,0x02,0x00,0x00,0xa7,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0xaa,0x02,0x00,0x00,0x8b,0x03,0x00,0x00,
    +0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xa6,0x02,0x00,0x00,
    +0xa7,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xaa,0x02,0x00,0x00,0xa5,0x02,0x00,0x00,0xa6,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xa5,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xac,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xac,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x8d,0x03,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0xa5,0x02,0x00,0x00,0xda,0x02,0x00,0x00,
    +0xaf,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0xb2,0x02,0x00,0x00,0x8d,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xae,0x02,0x00,0x00,0xaf,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xb2,0x02,0x00,0x00,
    +0xad,0x02,0x00,0x00,0xae,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xad,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xb4,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xb4,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x8f,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0xad,0x02,0x00,0x00,0xd8,0x02,0x00,0x00,0xb5,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xba,0x02,0x00,0x00,
    +0x8f,0x03,0x00,0x00,0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xb6,0x02,0x00,0x00,0xb5,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xba,0x02,0x00,0x00,0xb5,0x02,0x00,0x00,
    +0xb6,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xb5,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbc,0x02,0x00,0x00,
    +0x87,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xbe,0x02,0x00,0x00,0xbc,0x02,0x00,0x00,
    +0x8d,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xc0,0x02,0x00,0x00,0xbe,0x02,0x00,0x00,0xbf,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc2,0x02,0x00,0x00,
    +0x8b,0x03,0x00,0x00,0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xc3,0x02,0x00,0x00,0xc0,0x02,0x00,0x00,
    +0xc2,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xc5,0x02,0x00,0x00,0xc3,0x02,0x00,0x00,0x8f,0x03,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc9,0x02,0x00,0x00,
    +0xc2,0x02,0x00,0x00,0x8f,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xcc,0x00,0x00,0x00,0xca,0x02,0x00,0x00,0x53,0x02,0x00,0x00,
    +0xc9,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    +0xcb,0x02,0x00,0x00,0xca,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xcc,0x00,0x00,0x00,0xd0,0x02,0x00,0x00,0x80,0x02,0x00,0x00,
    +0xbe,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    +0xd1,0x02,0x00,0x00,0xd0,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xcc,0x00,0x00,0x00,0xd3,0x02,0x00,0x00,0xc9,0x00,0x00,0x00,
    +0xc5,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    +0xd4,0x02,0x00,0x00,0xd3,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,
    +0xc3,0x00,0x00,0x00,0xd5,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x32,0x00,0x00,0x00,0xcb,0x02,0x00,0x00,0xd1,0x02,0x00,0x00,
    +0xd4,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0xd3,0x02,0x00,0x00,
    +0xd5,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xd8,0x02,0x00,0x00,0x8f,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xb4,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xb6,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xaf,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xaf,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xda,0x02,0x00,0x00,0x8d,0x03,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xac,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xae,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xa7,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xa7,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdc,0x02,0x00,0x00,
    +0x8b,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xa4,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xa6,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x9f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x9f,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xde,0x02,0x00,0x00,0x87,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x9c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x9e,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x3c,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x3c,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xe0,0x02,0x00,0x00,0x81,0x03,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x39,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x3b,0x02,0x00,0x00,0xe0,0x00,0x04,0x00,
    +0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x31,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xd6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xd6,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xe2,0x02,0x00,0x00,0x67,0x03,0x00,0x00,0x6d,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xd3,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xd5,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xe7,0x02,0x00,0x00,0x56,0x00,0x00,0x00,0x54,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe8,0x02,0x00,0x00,
    +0x96,0x00,0x00,0x00,0xe7,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xed,0x02,0x00,0x00,0x5a,0x00,0x00,0x00,
    +0xb8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xee,0x02,0x00,0x00,0xa7,0x00,0x00,0x00,0xed,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xf2,0x02,0x00,0x00,
    +0x14,0x00,0x00,0x00,0xf1,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0xf3,0x02,0x00,0x00,0xf2,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf4,0x02,0x00,0x00,
    +0x0f,0x00,0x00,0x00,0xf3,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xf8,0x02,0x00,0x00,0x48,0x00,0x00,0x00,
    +0xf3,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,
    +0xfa,0x02,0x00,0x00,0xf9,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xfb,0x02,0x00,0x00,
    +0xfa,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xfc,0x02,0x00,0x00,0xf8,0x02,0x00,0x00,0xfb,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfd,0x02,0x00,0x00,
    +0xf4,0x02,0x00,0x00,0xfc,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xff,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xff,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x68,0x03,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0x65,0x03,0x00,0x00,
    +0x02,0x03,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0x05,0x03,0x00,0x00,0x68,0x03,0x00,0x00,0xbe,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x01,0x03,0x00,0x00,0x02,0x03,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x05,0x03,0x00,0x00,
    +0x00,0x03,0x00,0x00,0x01,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x00,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,0x07,0x03,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x07,0x03,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x69,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x00,0x03,0x00,0x00,0x63,0x03,0x00,0x00,0x0a,0x03,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x0d,0x03,0x00,0x00,
    +0x69,0x03,0x00,0x00,0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x09,0x03,0x00,0x00,0x0a,0x03,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x0d,0x03,0x00,0x00,0x08,0x03,0x00,0x00,
    +0x09,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x08,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x11,0x03,0x00,0x00,
    +0x69,0x03,0x00,0x00,0x62,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x12,0x03,0x00,0x00,0xe8,0x02,0x00,0x00,
    +0x11,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x14,0x03,0x00,0x00,0x65,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x15,0x03,0x00,0x00,
    +0x12,0x03,0x00,0x00,0x14,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x19,0x03,0x00,0x00,0x68,0x03,0x00,0x00,
    +0x88,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x1a,0x03,0x00,0x00,0xee,0x02,0x00,0x00,0x19,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1c,0x03,0x00,0x00,
    +0x69,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x1d,0x03,0x00,0x00,0x1a,0x03,0x00,0x00,
    +0x1c,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,0x1f,0x03,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x1f,0x03,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x6b,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x08,0x03,0x00,0x00,0x61,0x03,0x00,0x00,0x22,0x03,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x25,0x03,0x00,0x00,
    +0x6b,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x21,0x03,0x00,0x00,0x22,0x03,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x25,0x03,0x00,0x00,0x20,0x03,0x00,0x00,
    +0x21,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x20,0x03,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x27,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x27,0x03,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x6d,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0x20,0x03,0x00,0x00,
    +0x5f,0x03,0x00,0x00,0x2a,0x03,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0x2d,0x03,0x00,0x00,0x6d,0x03,0x00,0x00,
    +0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x29,0x03,0x00,0x00,
    +0x2a,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x2d,0x03,0x00,0x00,0x28,0x03,0x00,0x00,0x29,0x03,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x28,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x30,0x03,0x00,0x00,0x15,0x03,0x00,0x00,
    +0x6d,0x03,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0x33,0x03,0x00,0x00,0x30,0x03,0x00,0x00,0x37,0x00,0x00,0x00,
    +0xf7,0x00,0x03,0x00,0x35,0x03,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x33,0x03,0x00,0x00,0x34,0x03,0x00,0x00,
    +0x35,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x34,0x03,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x38,0x03,0x00,0x00,
    +0x1d,0x03,0x00,0x00,0x6b,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x17,0x00,0x00,0x00,0x39,0x03,0x00,0x00,0x14,0x00,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x3a,0x03,0x00,0x00,0x39,0x03,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0x3b,0x03,0x00,0x00,0x38,0x03,0x00,0x00,
    +0x3a,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,0x35,0x03,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x35,0x03,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0xc1,0x00,0x00,0x00,0x3c,0x03,0x00,0x00,0x33,0x03,0x00,0x00,
    +0x28,0x03,0x00,0x00,0x3b,0x03,0x00,0x00,0x34,0x03,0x00,0x00,
    +0xf7,0x00,0x03,0x00,0x3e,0x03,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x3c,0x03,0x00,0x00,0x3d,0x03,0x00,0x00,
    +0x3e,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x3d,0x03,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x46,0x03,0x00,0x00,
    +0x1d,0x03,0x00,0x00,0x6b,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x17,0x00,0x00,0x00,0x48,0x03,0x00,0x00,0x14,0x00,0x00,0x00,
    +0x47,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x49,0x03,0x00,0x00,0x48,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x4a,0x03,0x00,0x00,0x46,0x03,0x00,0x00,
    +0x49,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x4b,0x03,0x00,0x00,0xfd,0x02,0x00,0x00,0x4a,0x03,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4d,0x03,0x00,0x00,
    +0x4b,0x03,0x00,0x00,0x15,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x4f,0x03,0x00,0x00,0x4d,0x03,0x00,0x00,
    +0x6d,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x51,0x03,0x00,0x00,0x68,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x53,0x03,0x00,0x00,
    +0x51,0x03,0x00,0x00,0x6b,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x55,0x03,0x00,0x00,0x53,0x03,0x00,0x00,
    +0x54,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x57,0x03,0x00,0x00,0x69,0x03,0x00,0x00,0x63,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x58,0x03,0x00,0x00,
    +0x55,0x03,0x00,0x00,0x57,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x5a,0x03,0x00,0x00,0x58,0x03,0x00,0x00,
    +0x6d,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,
    +0x5b,0x03,0x00,0x00,0xc9,0x00,0x00,0x00,0x5a,0x03,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x5c,0x03,0x00,0x00,
    +0x5b,0x03,0x00,0x00,0x41,0x00,0x06,0x00,0x1f,0x02,0x00,0x00,
    +0x5d,0x03,0x00,0x00,0x42,0x03,0x00,0x00,0x35,0x00,0x00,0x00,
    +0x4f,0x03,0x00,0x00,0x3e,0x00,0x03,0x00,0x5d,0x03,0x00,0x00,
    +0x5c,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,0x3e,0x03,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x3e,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x2a,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x2a,0x03,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5f,0x03,0x00,0x00,
    +0x6d,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x27,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x29,0x03,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x22,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x22,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x61,0x03,0x00,0x00,0x6b,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
     0xf9,0x00,0x02,0x00,0x1f,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x1f,0x03,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x6b,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0x08,0x03,0x00,0x00,
    -0x61,0x03,0x00,0x00,0x22,0x03,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0x25,0x03,0x00,0x00,0x6b,0x03,0x00,0x00,
    -0xbb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x21,0x03,0x00,0x00,
    -0x22,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x25,0x03,0x00,0x00,0x20,0x03,0x00,0x00,0x21,0x03,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x20,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x27,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x27,0x03,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x6d,0x03,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0x20,0x03,0x00,0x00,0x5f,0x03,0x00,0x00,
    -0x2a,0x03,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0x2d,0x03,0x00,0x00,0x6d,0x03,0x00,0x00,0x63,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x29,0x03,0x00,0x00,0x2a,0x03,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x2d,0x03,0x00,0x00,
    -0x28,0x03,0x00,0x00,0x29,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x28,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x30,0x03,0x00,0x00,0x15,0x03,0x00,0x00,0x6d,0x03,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x33,0x03,0x00,0x00,
    -0x30,0x03,0x00,0x00,0x37,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,
    -0x35,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x33,0x03,0x00,0x00,0x34,0x03,0x00,0x00,0x35,0x03,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x34,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x38,0x03,0x00,0x00,0x1d,0x03,0x00,0x00,
    -0x6b,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    -0x39,0x03,0x00,0x00,0x14,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x3a,0x03,0x00,0x00,
    -0x39,0x03,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0x3b,0x03,0x00,0x00,0x38,0x03,0x00,0x00,0x3a,0x03,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x35,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x35,0x03,0x00,0x00,0xf5,0x00,0x07,0x00,0xc1,0x00,0x00,0x00,
    -0x3c,0x03,0x00,0x00,0x33,0x03,0x00,0x00,0x28,0x03,0x00,0x00,
    -0x3b,0x03,0x00,0x00,0x34,0x03,0x00,0x00,0xf7,0x00,0x03,0x00,
    -0x3e,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x3c,0x03,0x00,0x00,0x3d,0x03,0x00,0x00,0x3e,0x03,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x3d,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x46,0x03,0x00,0x00,0x1d,0x03,0x00,0x00,
    -0x6b,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    -0x48,0x03,0x00,0x00,0x14,0x00,0x00,0x00,0x47,0x03,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x49,0x03,0x00,0x00,
    -0x48,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x4a,0x03,0x00,0x00,0x46,0x03,0x00,0x00,0x49,0x03,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4b,0x03,0x00,0x00,
    -0xfd,0x02,0x00,0x00,0x4a,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x4d,0x03,0x00,0x00,0x4b,0x03,0x00,0x00,
    -0x15,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x4f,0x03,0x00,0x00,0x4d,0x03,0x00,0x00,0x6d,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x51,0x03,0x00,0x00,
    -0x68,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x53,0x03,0x00,0x00,0x51,0x03,0x00,0x00,
    -0x6b,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x55,0x03,0x00,0x00,0x53,0x03,0x00,0x00,0x54,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x57,0x03,0x00,0x00,
    -0x69,0x03,0x00,0x00,0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x58,0x03,0x00,0x00,0x55,0x03,0x00,0x00,
    -0x57,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x5a,0x03,0x00,0x00,0x58,0x03,0x00,0x00,0x6d,0x03,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,0x5b,0x03,0x00,0x00,
    -0xc9,0x00,0x00,0x00,0x5a,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xc3,0x00,0x00,0x00,0x5c,0x03,0x00,0x00,0x5b,0x03,0x00,0x00,
    -0x41,0x00,0x06,0x00,0x1f,0x02,0x00,0x00,0x5d,0x03,0x00,0x00,
    -0x42,0x03,0x00,0x00,0x35,0x00,0x00,0x00,0x4f,0x03,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x5d,0x03,0x00,0x00,0x5c,0x03,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x3e,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x3e,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,0x2a,0x03,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x2a,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x5f,0x03,0x00,0x00,0x6d,0x03,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x27,0x03,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x29,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x22,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x22,0x03,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x61,0x03,0x00,0x00,
    -0x6b,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x1f,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x21,0x03,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x0a,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x0a,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x63,0x03,0x00,0x00,0x69,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x07,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x09,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,0x02,0x03,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x02,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x65,0x03,0x00,0x00,0x68,0x03,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xff,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x01,0x03,0x00,0x00,0xfd,0x00,0x01,0x00,
    -0x38,0x00,0x01,0x00,
    +0x21,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,0x0a,0x03,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x0a,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x63,0x03,0x00,0x00,0x69,0x03,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x07,0x03,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x09,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x02,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x02,0x03,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x65,0x03,0x00,0x00,
    +0x68,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xff,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x01,0x03,0x00,0x00,
    +0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
     };
    -const uint64_t matmul_q3_k_f32_fp32_len = 13024;
    +const uint64_t matmul_q3_k_f32_fp32_len = 13004;
     
     unsigned char matmul_q4_0_f32_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
    @@ -85731,9 +89433,9 @@ unsigned char matmul_q4_0_f32_data[] = {
     0x63,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x6d,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x6d,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x73,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x6d,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
     0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    @@ -85816,7 +89518,7 @@ unsigned char matmul_q4_0_f32_data[] = {
     0x36,0x01,0x00,0x00,0x51,0x00,0x00,0x00,0x35,0x01,0x00,0x00,
     0x00,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x37,0x01,0x00,0x00,0x84,0x00,0x00,0x00,0x36,0x01,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x38,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0x37,0x01,0x00,0x00,
     0x6d,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x56,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    @@ -85846,7 +89548,7 @@ unsigned char matmul_q4_0_f32_data[] = {
     0x80,0x01,0x00,0x00,0x6d,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x84,0x01,0x00,0x00,0x08,0x01,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x85,0x01,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x88,0x01,0x00,0x00,
     0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xa3,0x01,0x00,0x00,
    @@ -85977,7 +89679,7 @@ unsigned char matmul_q4_0_f32_data[] = {
     0x9a,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x9d,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9e,0x00,0x00,0x00,
    -0x9d,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x9d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
     0x17,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
     0xa1,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0xa3,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    @@ -86034,7 +89736,7 @@ unsigned char matmul_q4_0_f32_data[] = {
     0x74,0x00,0x00,0x00,0xcf,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xea,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,
     0x99,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xeb,0x00,0x00,0x00,0xea,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0xeb,0x00,0x00,0x00,0xea,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xec,0x00,0x00,0x00,
     0xd3,0x02,0x00,0x00,0xeb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0xec,0x00,0x00,0x00,
    @@ -88421,9 +92123,9 @@ unsigned char matmul_q4_0_f32_fp32_data[] = {
     0x62,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x73,0x00,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x78,0x00,0x00,0x00,
     0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,
    @@ -88506,7 +92208,7 @@ unsigned char matmul_q4_0_f32_fp32_data[] = {
     0x06,0x00,0x00,0x00,0x34,0x01,0x00,0x00,0x51,0x00,0x00,0x00,
     0x33,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x35,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    -0x34,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x34,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x36,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
     0x35,0x01,0x00,0x00,0x6d,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x54,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
    @@ -88535,7 +92237,7 @@ unsigned char matmul_q4_0_f32_fp32_data[] = {
     0x7c,0x01,0x00,0x00,0x6d,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x80,0x01,0x00,0x00,0x08,0x01,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x81,0x01,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x84,0x01,0x00,0x00,
     0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x9f,0x01,0x00,0x00,
    @@ -88665,7 +92367,7 @@ unsigned char matmul_q4_0_f32_fp32_data[] = {
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,
     0x9b,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x9e,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
     0xa2,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0xa1,0x00,0x00,0x00,
     0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,
     0xa2,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    @@ -88722,7 +92424,7 @@ unsigned char matmul_q4_0_f32_fp32_data[] = {
     0xc8,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xea,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,0x99,0x00,0x00,0x00,
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,
    -0xea,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0xea,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xec,0x00,0x00,0x00,0xcc,0x02,0x00,0x00,
     0xeb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xee,0x00,0x00,0x00,0xec,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,
    @@ -89299,9 +93001,9 @@ unsigned char matmul_q4_1_f32_data[] = {
     0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
     0x10,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x6e,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x73,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x78,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
     0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x7d,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    @@ -89382,7 +93084,7 @@ unsigned char matmul_q4_1_f32_data[] = {
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x3b,0x01,0x00,0x00,
     0x51,0x00,0x00,0x00,0x3a,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x3c,0x01,0x00,0x00,
    -0x84,0x00,0x00,0x00,0x3b,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x84,0x00,0x00,0x00,0x3b,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x3d,0x01,0x00,0x00,
     0x86,0x00,0x00,0x00,0x3c,0x01,0x00,0x00,0x6d,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x5b,0x01,0x00,0x00,
    @@ -89413,7 +93115,7 @@ unsigned char matmul_q4_1_f32_data[] = {
     0x6d,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x89,0x01,0x00,0x00,0x08,0x01,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x8a,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x6d,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x8d,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
     0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0xa8,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    @@ -89542,7 +93244,7 @@ unsigned char matmul_q4_1_f32_data[] = {
     0x9a,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x9d,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9e,0x00,0x00,0x00,
    -0x9d,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x9d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
     0x17,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
     0xa1,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0xa3,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    @@ -89599,7 +93301,7 @@ unsigned char matmul_q4_1_f32_data[] = {
     0x74,0x00,0x00,0x00,0xd4,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xea,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,
     0x99,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xeb,0x00,0x00,0x00,0xea,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0xeb,0x00,0x00,0x00,0xea,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xec,0x00,0x00,0x00,
     0xd8,0x02,0x00,0x00,0xeb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0xec,0x00,0x00,0x00,
    @@ -92007,9 +95709,9 @@ unsigned char matmul_q4_1_f32_fp32_data[] = {
     0x63,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x6d,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x6d,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x73,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x6d,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
     0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    @@ -92091,7 +95793,7 @@ unsigned char matmul_q4_1_f32_fp32_data[] = {
     0x39,0x01,0x00,0x00,0x51,0x00,0x00,0x00,0x38,0x01,0x00,0x00,
     0x00,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x3a,0x01,0x00,0x00,0x84,0x00,0x00,0x00,0x39,0x01,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x3b,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0x3a,0x01,0x00,0x00,
     0x6d,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x59,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    @@ -92120,7 +95822,7 @@ unsigned char matmul_q4_1_f32_fp32_data[] = {
     0x6d,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x85,0x01,0x00,0x00,0x08,0x01,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x86,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x6d,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x89,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
     0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0xa4,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    @@ -92248,7 +95950,7 @@ unsigned char matmul_q4_1_f32_fp32_data[] = {
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,
     0x9b,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x9e,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
     0xa2,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0xa1,0x00,0x00,0x00,
     0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,
     0xa2,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    @@ -92305,7 +96007,7 @@ unsigned char matmul_q4_1_f32_fp32_data[] = {
     0xcd,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xea,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,0x99,0x00,0x00,0x00,
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,
    -0xea,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0xea,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xec,0x00,0x00,0x00,0xd1,0x02,0x00,0x00,
     0xeb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xee,0x00,0x00,0x00,0xec,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,
    @@ -92891,9 +96593,9 @@ unsigned char matmul_q4_k_f32_data[] = {
     0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
     0x10,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x6e,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x73,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x78,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
     0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x7d,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    @@ -92985,7 +96687,7 @@ unsigned char matmul_q4_k_f32_data[] = {
     0x06,0x00,0x00,0x00,0xa2,0x01,0x00,0x00,0x51,0x00,0x00,0x00,
     0xa1,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0xa3,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    -0xa2,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0xa2,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0xa4,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
     0xa3,0x01,0x00,0x00,0x6d,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0xc2,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
    @@ -93016,7 +96718,7 @@ unsigned char matmul_q4_k_f32_data[] = {
     0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xf0,0x01,0x00,0x00,
     0x08,0x01,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0xf1,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0xf4,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
     0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x0f,0x02,0x00,0x00,0x84,0x00,0x00,0x00,0x61,0x00,0x00,0x00,
    @@ -93145,7 +96847,7 @@ unsigned char matmul_q4_k_f32_data[] = {
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,
     0x9b,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x9e,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
     0xa2,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0xa1,0x00,0x00,0x00,
     0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,
     0xa2,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    @@ -93202,561 +96904,559 @@ unsigned char matmul_q4_k_f32_data[] = {
     0x3b,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xea,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,0x99,0x00,0x00,0x00,
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,
    -0xea,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0xea,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xec,0x00,0x00,0x00,0x3f,0x03,0x00,0x00,
     0xeb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xee,0x00,0x00,0x00,0xec,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,
     0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,
    -0xe7,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xf7,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,
    -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
    -0xee,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,0x89,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0xee,0x00,0x00,0x00,
    -0xfa,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x02,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,0x01,0x01,0x00,0x00,
    -0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x05,0x01,0x00,0x00,
    -0xfe,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x86,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x07,0x01,0x00,0x00,0x05,0x01,0x00,0x00,
    -0x06,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x0a,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x02,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,
    -0x0a,0x01,0x00,0x00,0x07,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x0f,0x01,0x00,0x00,0x02,0x01,0x00,0x00,
    +0xe7,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,
    +0x6f,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xfb,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,
    +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,
    +0xee,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x02,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,
     0x01,0x01,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x11,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,0x06,0x01,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x12,0x01,0x00,0x00,
    -0x11,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x13,0x01,0x00,0x00,0x0f,0x01,0x00,0x00,
    -0x12,0x01,0x00,0x00,0x41,0x00,0x07,0x00,0x23,0x01,0x00,0x00,
    -0x24,0x01,0x00,0x00,0x21,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    -0xfb,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x18,0x01,0x00,0x00,0x25,0x01,0x00,0x00,0x24,0x01,0x00,0x00,
    -0x73,0x00,0x04,0x00,0x14,0x01,0x00,0x00,0x26,0x01,0x00,0x00,
    -0x25,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0x29,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,0x28,0x01,0x00,0x00,
    -0xf7,0x00,0x03,0x00,0x2b,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x29,0x01,0x00,0x00,0x2a,0x01,0x00,0x00,
    -0x45,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x2a,0x01,0x00,0x00,
    -0x41,0x00,0x08,0x00,0x30,0x01,0x00,0x00,0x31,0x01,0x00,0x00,
    +0x05,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,0x01,0x01,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x07,0x01,0x00,0x00,
    +0x05,0x01,0x00,0x00,0x06,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x0a,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x02,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x0c,0x01,0x00,0x00,0x0a,0x01,0x00,0x00,0x07,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0f,0x01,0x00,0x00,
    +0x02,0x01,0x00,0x00,0x01,0x01,0x00,0x00,0x89,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x11,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,
    +0x06,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x12,0x01,0x00,0x00,0x11,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x13,0x01,0x00,0x00,
    +0x0f,0x01,0x00,0x00,0x12,0x01,0x00,0x00,0x41,0x00,0x07,0x00,
    +0x23,0x01,0x00,0x00,0x24,0x01,0x00,0x00,0x21,0x01,0x00,0x00,
    +0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0x35,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x18,0x01,0x00,0x00,0x25,0x01,0x00,0x00,
    +0x24,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x14,0x01,0x00,0x00,
    +0x26,0x01,0x00,0x00,0x25,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0x29,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,
    +0x28,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,0x2b,0x01,0x00,0x00,
    +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x29,0x01,0x00,0x00,
    +0x2a,0x01,0x00,0x00,0x45,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x2a,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x30,0x01,0x00,0x00,
    +0x31,0x01,0x00,0x00,0x21,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    +0xfb,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x19,0x01,0x00,0x00,0x32,0x01,0x00,0x00,
    +0x31,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x33,0x01,0x00,0x00,0x32,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    +0x15,0x00,0x00,0x00,0x34,0x01,0x00,0x00,0x33,0x01,0x00,0x00,
    +0xc7,0x00,0x05,0x00,0x15,0x00,0x00,0x00,0x36,0x01,0x00,0x00,
    +0x34,0x01,0x00,0x00,0x35,0x01,0x00,0x00,0x72,0x00,0x04,0x00,
    +0x37,0x01,0x00,0x00,0x38,0x01,0x00,0x00,0x36,0x01,0x00,0x00,
    +0x7c,0x00,0x04,0x00,0x19,0x01,0x00,0x00,0x39,0x01,0x00,0x00,
    +0x38,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x3d,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,0x28,0x01,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x30,0x01,0x00,0x00,0x3e,0x01,0x00,0x00,
     0x21,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x19,0x01,0x00,0x00,0x32,0x01,0x00,0x00,0x31,0x01,0x00,0x00,
    -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x33,0x01,0x00,0x00,
    -0x32,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    -0x34,0x01,0x00,0x00,0x33,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
    -0x15,0x00,0x00,0x00,0x36,0x01,0x00,0x00,0x34,0x01,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0x3d,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x19,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,0x3e,0x01,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x40,0x01,0x00,0x00,
    +0x3f,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    +0x41,0x01,0x00,0x00,0x40,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
    +0x15,0x00,0x00,0x00,0x42,0x01,0x00,0x00,0x41,0x01,0x00,0x00,
     0x35,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x37,0x01,0x00,0x00,
    -0x38,0x01,0x00,0x00,0x36,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    -0x19,0x01,0x00,0x00,0x39,0x01,0x00,0x00,0x38,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3d,0x01,0x00,0x00,
    -0x0c,0x01,0x00,0x00,0x28,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x30,0x01,0x00,0x00,0x3e,0x01,0x00,0x00,0x21,0x01,0x00,0x00,
    -0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0x3d,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x19,0x01,0x00,0x00,
    -0x3f,0x01,0x00,0x00,0x3e,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x40,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,
    -0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x41,0x01,0x00,0x00,
    -0x40,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x15,0x00,0x00,0x00,
    -0x42,0x01,0x00,0x00,0x41,0x01,0x00,0x00,0x35,0x01,0x00,0x00,
    -0x72,0x00,0x04,0x00,0x37,0x01,0x00,0x00,0x43,0x01,0x00,0x00,
    -0x42,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x19,0x01,0x00,0x00,
    -0x44,0x01,0x00,0x00,0x43,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x2b,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x45,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x48,0x01,0x00,0x00,
    -0x0c,0x01,0x00,0x00,0x28,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x30,0x01,0x00,0x00,0x49,0x01,0x00,0x00,0x21,0x01,0x00,0x00,
    -0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0x48,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x19,0x01,0x00,0x00,
    -0x4a,0x01,0x00,0x00,0x49,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x4b,0x01,0x00,0x00,0x4a,0x01,0x00,0x00,
    -0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x4c,0x01,0x00,0x00,
    -0x4b,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x15,0x00,0x00,0x00,
    -0x4e,0x01,0x00,0x00,0x4c,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,
    -0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x51,0x01,0x00,0x00,
    -0x0c,0x01,0x00,0x00,0x28,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x30,0x01,0x00,0x00,0x52,0x01,0x00,0x00,0x21,0x01,0x00,0x00,
    -0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0x51,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x19,0x01,0x00,0x00,
    -0x53,0x01,0x00,0x00,0x52,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,
    -0x19,0x01,0x00,0x00,0x54,0x01,0x00,0x00,0x53,0x01,0x00,0x00,
    -0x91,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x19,0x01,0x00,0x00,
    -0x55,0x01,0x00,0x00,0x54,0x01,0x00,0x00,0xa8,0x00,0x00,0x00,
    -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x56,0x01,0x00,0x00,
    -0x55,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    -0x57,0x01,0x00,0x00,0x56,0x01,0x00,0x00,0xc5,0x00,0x05,0x00,
    -0x15,0x00,0x00,0x00,0x58,0x01,0x00,0x00,0x4e,0x01,0x00,0x00,
    -0x57,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x37,0x01,0x00,0x00,
    -0x59,0x01,0x00,0x00,0x58,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    -0x19,0x01,0x00,0x00,0x5a,0x01,0x00,0x00,0x59,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x19,0x01,0x00,0x00,0x5f,0x01,0x00,0x00,
    -0x49,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x19,0x01,0x00,0x00,
    -0x60,0x01,0x00,0x00,0x5f,0x01,0x00,0x00,0xa8,0x00,0x00,0x00,
    -0x41,0x00,0x08,0x00,0x30,0x01,0x00,0x00,0x63,0x01,0x00,0x00,
    -0x21,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x19,0x01,0x00,0x00,0x64,0x01,0x00,0x00,0x63,0x01,0x00,0x00,
    -0xc2,0x00,0x05,0x00,0x19,0x01,0x00,0x00,0x65,0x01,0x00,0x00,
    -0x64,0x01,0x00,0x00,0x91,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,
    -0x19,0x01,0x00,0x00,0x66,0x01,0x00,0x00,0x65,0x01,0x00,0x00,
    -0xa8,0x00,0x00,0x00,0xc5,0x00,0x05,0x00,0x19,0x01,0x00,0x00,
    -0x67,0x01,0x00,0x00,0x60,0x01,0x00,0x00,0x66,0x01,0x00,0x00,
    +0x43,0x01,0x00,0x00,0x42,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    +0x19,0x01,0x00,0x00,0x44,0x01,0x00,0x00,0x43,0x01,0x00,0x00,
     0xf9,0x00,0x02,0x00,0x2b,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x2b,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x19,0x01,0x00,0x00,
    -0x62,0x03,0x00,0x00,0x44,0x01,0x00,0x00,0x2a,0x01,0x00,0x00,
    -0x67,0x01,0x00,0x00,0x45,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x19,0x01,0x00,0x00,0x61,0x03,0x00,0x00,0x39,0x01,0x00,0x00,
    -0x2a,0x01,0x00,0x00,0x5a,0x01,0x00,0x00,0x45,0x01,0x00,0x00,
    -0x51,0x00,0x05,0x00,0xc3,0x00,0x00,0x00,0x6a,0x01,0x00,0x00,
    -0x26,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x04,0x00,
    -0xc3,0x00,0x00,0x00,0x6c,0x01,0x00,0x00,0x61,0x03,0x00,0x00,
    -0x85,0x00,0x05,0x00,0xc3,0x00,0x00,0x00,0x6d,0x01,0x00,0x00,
    -0x6a,0x01,0x00,0x00,0x6c,0x01,0x00,0x00,0x51,0x00,0x05,0x00,
    -0xc3,0x00,0x00,0x00,0x70,0x01,0x00,0x00,0x26,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x70,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    -0x72,0x01,0x00,0x00,0x62,0x03,0x00,0x00,0x85,0x00,0x05,0x00,
    -0xc3,0x00,0x00,0x00,0x73,0x01,0x00,0x00,0x70,0x01,0x00,0x00,
    -0x72,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x30,0x01,0x00,0x00,
    -0x7d,0x01,0x00,0x00,0x21,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    -0xfb,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x13,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x19,0x01,0x00,0x00,0x7e,0x01,0x00,0x00,
    -0x7d,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x80,0x01,0x00,0x00,0x07,0x01,0x00,0x00,0x28,0x01,0x00,0x00,
    -0xc2,0x00,0x05,0x00,0x19,0x01,0x00,0x00,0x81,0x01,0x00,0x00,
    -0x7e,0x01,0x00,0x00,0x80,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x82,0x01,0x00,0x00,0x81,0x01,0x00,0x00,
    -0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x83,0x01,0x00,0x00,
    -0x82,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x15,0x00,0x00,0x00,
    -0x84,0x01,0x00,0x00,0x83,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,
    -0x6f,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x85,0x01,0x00,0x00,
    -0x84,0x01,0x00,0x00,0x7f,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    -0x8c,0x03,0x00,0x00,0x73,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,
    -0xc3,0x00,0x00,0x00,0x88,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x32,0x00,0x00,0x00,0x6d,0x01,0x00,0x00,0x85,0x01,0x00,0x00,
    -0x8c,0x03,0x00,0x00,0x73,0x00,0x04,0x00,0x17,0x01,0x00,0x00,
    -0x89,0x01,0x00,0x00,0x88,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x8a,0x01,0x00,0x00,0x8b,0x01,0x00,0x00,0x78,0x01,0x00,0x00,
    -0xf7,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0x8b,0x01,0x00,0x00,
    -0x89,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x8d,0x01,0x00,0x00,0xf7,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x91,0x01,0x00,0x00,
    -0x13,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x30,0x01,0x00,0x00,0x92,0x01,0x00,0x00,0x21,0x01,0x00,0x00,
    +0x45,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x48,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,0x28,0x01,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x30,0x01,0x00,0x00,0x49,0x01,0x00,0x00,
    +0x21,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0x48,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x19,0x01,0x00,0x00,0x4a,0x01,0x00,0x00,0x49,0x01,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4b,0x01,0x00,0x00,
    +0x4a,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    +0x4c,0x01,0x00,0x00,0x4b,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
    +0x15,0x00,0x00,0x00,0x4e,0x01,0x00,0x00,0x4c,0x01,0x00,0x00,
    +0x4d,0x01,0x00,0x00,0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x51,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,0x28,0x01,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x30,0x01,0x00,0x00,0x52,0x01,0x00,0x00,
    +0x21,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0x51,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x19,0x01,0x00,0x00,0x53,0x01,0x00,0x00,0x52,0x01,0x00,0x00,
    +0xc2,0x00,0x05,0x00,0x19,0x01,0x00,0x00,0x54,0x01,0x00,0x00,
    +0x53,0x01,0x00,0x00,0x91,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,
    +0x19,0x01,0x00,0x00,0x55,0x01,0x00,0x00,0x54,0x01,0x00,0x00,
    +0xa8,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x56,0x01,0x00,0x00,0x55,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    +0x15,0x00,0x00,0x00,0x57,0x01,0x00,0x00,0x56,0x01,0x00,0x00,
    +0xc5,0x00,0x05,0x00,0x15,0x00,0x00,0x00,0x58,0x01,0x00,0x00,
    +0x4e,0x01,0x00,0x00,0x57,0x01,0x00,0x00,0x72,0x00,0x04,0x00,
    +0x37,0x01,0x00,0x00,0x59,0x01,0x00,0x00,0x58,0x01,0x00,0x00,
    +0x7c,0x00,0x04,0x00,0x19,0x01,0x00,0x00,0x5a,0x01,0x00,0x00,
    +0x59,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x19,0x01,0x00,0x00,
    +0x5f,0x01,0x00,0x00,0x49,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,
    +0x19,0x01,0x00,0x00,0x60,0x01,0x00,0x00,0x5f,0x01,0x00,0x00,
    +0xa8,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0x30,0x01,0x00,0x00,
    +0x63,0x01,0x00,0x00,0x21,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    +0xfb,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x19,0x01,0x00,0x00,0x64,0x01,0x00,0x00,
    +0x63,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x19,0x01,0x00,0x00,
    +0x65,0x01,0x00,0x00,0x64,0x01,0x00,0x00,0x91,0x00,0x00,0x00,
    +0xc4,0x00,0x05,0x00,0x19,0x01,0x00,0x00,0x66,0x01,0x00,0x00,
    +0x65,0x01,0x00,0x00,0xa8,0x00,0x00,0x00,0xc5,0x00,0x05,0x00,
    +0x19,0x01,0x00,0x00,0x67,0x01,0x00,0x00,0x60,0x01,0x00,0x00,
    +0x66,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x2b,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x2b,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x19,0x01,0x00,0x00,0x62,0x03,0x00,0x00,0x44,0x01,0x00,0x00,
    +0x2a,0x01,0x00,0x00,0x67,0x01,0x00,0x00,0x45,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x19,0x01,0x00,0x00,0x61,0x03,0x00,0x00,
    +0x39,0x01,0x00,0x00,0x2a,0x01,0x00,0x00,0x5a,0x01,0x00,0x00,
    +0x45,0x01,0x00,0x00,0x51,0x00,0x05,0x00,0xc3,0x00,0x00,0x00,
    +0x6a,0x01,0x00,0x00,0x26,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x70,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x6c,0x01,0x00,0x00,
    +0x61,0x03,0x00,0x00,0x85,0x00,0x05,0x00,0xc3,0x00,0x00,0x00,
    +0x6d,0x01,0x00,0x00,0x6a,0x01,0x00,0x00,0x6c,0x01,0x00,0x00,
    +0x51,0x00,0x05,0x00,0xc3,0x00,0x00,0x00,0x70,0x01,0x00,0x00,
    +0x26,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x70,0x00,0x04,0x00,
    +0xc3,0x00,0x00,0x00,0x72,0x01,0x00,0x00,0x62,0x03,0x00,0x00,
    +0x85,0x00,0x05,0x00,0xc3,0x00,0x00,0x00,0x73,0x01,0x00,0x00,
    +0x70,0x01,0x00,0x00,0x72,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x30,0x01,0x00,0x00,0x7d,0x01,0x00,0x00,0x21,0x01,0x00,0x00,
     0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x91,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x19,0x01,0x00,0x00,
    -0x93,0x01,0x00,0x00,0x92,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,
    -0x19,0x01,0x00,0x00,0x96,0x01,0x00,0x00,0x93,0x01,0x00,0x00,
    -0x80,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x97,0x01,0x00,0x00,0x96,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    -0x15,0x00,0x00,0x00,0x98,0x01,0x00,0x00,0x97,0x01,0x00,0x00,
    -0xc7,0x00,0x05,0x00,0x15,0x00,0x00,0x00,0x99,0x01,0x00,0x00,
    -0x98,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,
    -0xc3,0x00,0x00,0x00,0x9a,0x01,0x00,0x00,0x99,0x01,0x00,0x00,
    -0x0c,0x00,0x08,0x00,0xc3,0x00,0x00,0x00,0x9d,0x01,0x00,0x00,
    +0x13,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x19,0x01,0x00,0x00,
    +0x7e,0x01,0x00,0x00,0x7d,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x80,0x01,0x00,0x00,0x07,0x01,0x00,0x00,
    +0x28,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x19,0x01,0x00,0x00,
    +0x81,0x01,0x00,0x00,0x7e,0x01,0x00,0x00,0x80,0x01,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x82,0x01,0x00,0x00,
    +0x81,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    +0x83,0x01,0x00,0x00,0x82,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
    +0x15,0x00,0x00,0x00,0x84,0x01,0x00,0x00,0x83,0x01,0x00,0x00,
    +0x4d,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    +0x85,0x01,0x00,0x00,0x84,0x01,0x00,0x00,0x7f,0x00,0x04,0x00,
    +0xc3,0x00,0x00,0x00,0x8c,0x03,0x00,0x00,0x73,0x01,0x00,0x00,
    +0x0c,0x00,0x08,0x00,0xc3,0x00,0x00,0x00,0x88,0x01,0x00,0x00,
     0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x6d,0x01,0x00,0x00,
    -0x9a,0x01,0x00,0x00,0x8c,0x03,0x00,0x00,0x73,0x00,0x04,0x00,
    -0x17,0x01,0x00,0x00,0x9e,0x01,0x00,0x00,0x9d,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x8a,0x01,0x00,0x00,0x9f,0x01,0x00,0x00,
    -0x78,0x01,0x00,0x00,0x8d,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x9f,0x01,0x00,0x00,0x9e,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xdf,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xdf,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa6,0x01,0x00,0x00,
    -0x3b,0x03,0x00,0x00,0xa4,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xdc,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xde,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xa8,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xa8,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x3c,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0xde,0x00,0x00,0x00,
    -0xef,0x01,0x00,0x00,0xab,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0xae,0x01,0x00,0x00,0x3c,0x03,0x00,0x00,
    -0xa6,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xaa,0x01,0x00,0x00,
    -0xab,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xae,0x01,0x00,0x00,0xa9,0x01,0x00,0x00,0xaa,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xa9,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xb2,0x01,0x00,0x00,0xa7,0x00,0x00,0x00,
    -0x7e,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xb4,0x01,0x00,0x00,0xb2,0x01,0x00,0x00,0x3c,0x03,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xb5,0x01,0x00,0x00,
    -0x14,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0xb6,0x01,0x00,0x00,0xb5,0x01,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xb7,0x01,0x00,0x00,
    -0xb4,0x01,0x00,0x00,0xb6,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,
    -0xb9,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xb7,0x01,0x00,0x00,0xb8,0x01,0x00,0x00,0xb9,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xb8,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xbc,0x01,0x00,0x00,0x2b,0x03,0x00,0x00,
    -0x79,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0xbe,0x01,0x00,0x00,0xbc,0x01,0x00,0x00,0x8e,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xb9,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xb9,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0xc1,0x00,0x00,0x00,
    -0xbf,0x01,0x00,0x00,0xb7,0x01,0x00,0x00,0xa9,0x01,0x00,0x00,
    -0xbe,0x01,0x00,0x00,0xb8,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,
    -0xc1,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xbf,0x01,0x00,0x00,0xc0,0x01,0x00,0x00,0xe1,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xc0,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xc9,0x01,0x00,0x00,0x7e,0x00,0x00,0x00,
    +0x85,0x01,0x00,0x00,0x8c,0x03,0x00,0x00,0x73,0x00,0x04,0x00,
    +0x17,0x01,0x00,0x00,0x89,0x01,0x00,0x00,0x88,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x8a,0x01,0x00,0x00,0x8b,0x01,0x00,0x00,
    +0x78,0x01,0x00,0x00,0xf7,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x8b,0x01,0x00,0x00,0x89,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x8d,0x01,0x00,0x00,0xf7,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x91,0x01,0x00,0x00,0x13,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x30,0x01,0x00,0x00,0x92,0x01,0x00,0x00,
    +0x21,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x91,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x19,0x01,0x00,0x00,0x93,0x01,0x00,0x00,0x92,0x01,0x00,0x00,
    +0xc2,0x00,0x05,0x00,0x19,0x01,0x00,0x00,0x96,0x01,0x00,0x00,
    +0x93,0x01,0x00,0x00,0x80,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x97,0x01,0x00,0x00,0x96,0x01,0x00,0x00,
    +0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x98,0x01,0x00,0x00,
    +0x97,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x15,0x00,0x00,0x00,
    +0x99,0x01,0x00,0x00,0x98,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,
    +0x6f,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x9a,0x01,0x00,0x00,
    +0x99,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0xc3,0x00,0x00,0x00,
    +0x9d,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,
    +0x6d,0x01,0x00,0x00,0x9a,0x01,0x00,0x00,0x8c,0x03,0x00,0x00,
    +0x73,0x00,0x04,0x00,0x17,0x01,0x00,0x00,0x9e,0x01,0x00,0x00,
    +0x9d,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x8a,0x01,0x00,0x00,
    +0x9f,0x01,0x00,0x00,0x78,0x01,0x00,0x00,0x8d,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x9f,0x01,0x00,0x00,0x9e,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xdf,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xdf,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xa6,0x01,0x00,0x00,0x3b,0x03,0x00,0x00,0xa4,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xdc,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xde,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xa8,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xa8,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x3c,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0xde,0x00,0x00,0x00,0xef,0x01,0x00,0x00,0xab,0x01,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xae,0x01,0x00,0x00,
    +0x3c,0x03,0x00,0x00,0xa6,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xaa,0x01,0x00,0x00,0xab,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xae,0x01,0x00,0x00,0xa9,0x01,0x00,0x00,
    +0xaa,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xa9,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb2,0x01,0x00,0x00,
    +0xa7,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xb4,0x01,0x00,0x00,0xb2,0x01,0x00,0x00,
    +0x3c,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    +0xb5,0x01,0x00,0x00,0x14,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xb6,0x01,0x00,0x00,
    +0xb5,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0xb7,0x01,0x00,0x00,0xb4,0x01,0x00,0x00,0xb6,0x01,0x00,0x00,
    +0xf7,0x00,0x03,0x00,0xb9,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xb7,0x01,0x00,0x00,0xb8,0x01,0x00,0x00,
    +0xb9,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xb8,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbc,0x01,0x00,0x00,
    +0x2b,0x03,0x00,0x00,0x79,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0xbe,0x01,0x00,0x00,0xbc,0x01,0x00,0x00,
    +0x8e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xb9,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xb9,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0xc1,0x00,0x00,0x00,0xbf,0x01,0x00,0x00,0xb7,0x01,0x00,0x00,
    +0xa9,0x01,0x00,0x00,0xbe,0x01,0x00,0x00,0xb8,0x01,0x00,0x00,
    +0xf7,0x00,0x03,0x00,0xc1,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xbf,0x01,0x00,0x00,0xc0,0x01,0x00,0x00,
    +0xe1,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xc0,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc9,0x01,0x00,0x00,
    +0x7e,0x00,0x00,0x00,0x3c,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xcb,0x01,0x00,0x00,0xc9,0x01,0x00,0x00,
    +0xca,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xcd,0x01,0x00,0x00,0xcb,0x01,0x00,0x00,0x79,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd8,0x01,0x00,0x00,
    +0xc9,0x01,0x00,0x00,0xaa,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xd9,0x01,0x00,0x00,0x43,0x03,0x00,0x00,
    +0xd8,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xdb,0x01,0x00,0x00,0xd9,0x01,0x00,0x00,0x79,0x00,0x00,0x00,
    +0x41,0x00,0x06,0x00,0xdc,0x01,0x00,0x00,0xdd,0x01,0x00,0x00,
    +0xd1,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0xdb,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0xde,0x01,0x00,0x00,
    +0xdd,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x17,0x01,0x00,0x00,
    +0xdf,0x01,0x00,0x00,0xde,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x8a,0x01,0x00,0x00,0xe0,0x01,0x00,0x00,0xc6,0x01,0x00,0x00,
    +0xcd,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xe0,0x01,0x00,0x00,
    +0xdf,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xc1,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xe1,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xe4,0x01,0x00,0x00,0x7e,0x00,0x00,0x00,
     0x3c,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xcb,0x01,0x00,0x00,0xc9,0x01,0x00,0x00,0xca,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xcd,0x01,0x00,0x00,
    -0xcb,0x01,0x00,0x00,0x79,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xd8,0x01,0x00,0x00,0xc9,0x01,0x00,0x00,
    -0xaa,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xd9,0x01,0x00,0x00,0x43,0x03,0x00,0x00,0xd8,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdb,0x01,0x00,0x00,
    -0xd9,0x01,0x00,0x00,0x79,0x00,0x00,0x00,0x41,0x00,0x06,0x00,
    -0xdc,0x01,0x00,0x00,0xdd,0x01,0x00,0x00,0xd1,0x01,0x00,0x00,
    -0x35,0x00,0x00,0x00,0xdb,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xc3,0x00,0x00,0x00,0xde,0x01,0x00,0x00,0xdd,0x01,0x00,0x00,
    -0x73,0x00,0x04,0x00,0x17,0x01,0x00,0x00,0xdf,0x01,0x00,0x00,
    -0xde,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x8a,0x01,0x00,0x00,
    -0xe0,0x01,0x00,0x00,0xc6,0x01,0x00,0x00,0xcd,0x01,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0xe0,0x01,0x00,0x00,0xdf,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xc1,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xe1,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xe4,0x01,0x00,0x00,0x7e,0x00,0x00,0x00,0x3c,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe6,0x01,0x00,0x00,
    -0xe4,0x01,0x00,0x00,0xe5,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xe8,0x01,0x00,0x00,0xe6,0x01,0x00,0x00,
    -0x79,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x8a,0x01,0x00,0x00,
    -0xea,0x01,0x00,0x00,0xc6,0x01,0x00,0x00,0xe8,0x01,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0xea,0x01,0x00,0x00,0xe9,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xc1,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xc1,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xab,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xab,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xef,0x01,0x00,0x00,0x3c,0x03,0x00,0x00,
    -0xed,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xa8,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xaa,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,
    -0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xf0,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf3,0x01,0x00,0x00,
    -0x3f,0x03,0x00,0x00,0xf1,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xf6,0x01,0x00,0x00,0x43,0x03,0x00,0x00,
    -0xf4,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xf8,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xf8,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x45,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0xaa,0x01,0x00,0x00,0xa2,0x02,0x00,0x00,0xfb,0x01,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xfe,0x01,0x00,0x00,
    -0x45,0x03,0x00,0x00,0x6d,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xfa,0x01,0x00,0x00,0xfb,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xfe,0x01,0x00,0x00,0xf9,0x01,0x00,0x00,
    -0xfa,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xf9,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x00,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x00,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x49,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0xf9,0x01,0x00,0x00,
    -0x2c,0x02,0x00,0x00,0x03,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0x06,0x02,0x00,0x00,0x49,0x03,0x00,0x00,
    -0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x02,0x02,0x00,0x00,
    -0x03,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x06,0x02,0x00,0x00,0x01,0x02,0x00,0x00,0x02,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x01,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x08,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x08,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x5b,0x03,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0x01,0x02,0x00,0x00,0x2a,0x02,0x00,0x00,
    -0x09,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0x0e,0x02,0x00,0x00,0x5b,0x03,0x00,0x00,0x63,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x0a,0x02,0x00,0x00,0x09,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x0e,0x02,0x00,0x00,
    -0x09,0x02,0x00,0x00,0x0a,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x09,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x14,0x02,0x00,0x00,0x49,0x03,0x00,0x00,0x63,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x16,0x02,0x00,0x00,
    -0x14,0x02,0x00,0x00,0x5b,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x18,0x02,0x00,0x00,0x56,0x00,0x00,0x00,
    -0x54,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x1a,0x02,0x00,0x00,0x49,0x03,0x00,0x00,0x62,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1b,0x02,0x00,0x00,
    -0x18,0x02,0x00,0x00,0x1a,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x1d,0x02,0x00,0x00,0x65,0x00,0x00,0x00,
    +0xe6,0x01,0x00,0x00,0xe4,0x01,0x00,0x00,0xe5,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe8,0x01,0x00,0x00,
    +0xe6,0x01,0x00,0x00,0x79,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x8a,0x01,0x00,0x00,0xea,0x01,0x00,0x00,0xc6,0x01,0x00,0x00,
    +0xe8,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xea,0x01,0x00,0x00,
    +0xe9,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xc1,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xc1,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xab,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xab,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xef,0x01,0x00,0x00,
    +0x3c,0x03,0x00,0x00,0xed,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xa8,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xaa,0x01,0x00,0x00,
    +0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0xf0,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xf3,0x01,0x00,0x00,0x3f,0x03,0x00,0x00,0xf1,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf6,0x01,0x00,0x00,
    +0x43,0x03,0x00,0x00,0xf4,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xf8,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xf8,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x45,0x03,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0xaa,0x01,0x00,0x00,0xa2,0x02,0x00,0x00,
    +0xfb,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0xfe,0x01,0x00,0x00,0x45,0x03,0x00,0x00,0x6d,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xfa,0x01,0x00,0x00,0xfb,0x01,0x00,0x00,
    +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xfe,0x01,0x00,0x00,
    +0xf9,0x01,0x00,0x00,0xfa,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xf9,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x00,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x00,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x49,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0xf9,0x01,0x00,0x00,0x2c,0x02,0x00,0x00,0x03,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x06,0x02,0x00,0x00,
    +0x49,0x03,0x00,0x00,0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x02,0x02,0x00,0x00,0x03,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x06,0x02,0x00,0x00,0x01,0x02,0x00,0x00,
    +0x02,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x01,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x08,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x08,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x5b,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0x01,0x02,0x00,0x00,
    +0x2a,0x02,0x00,0x00,0x09,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0x0e,0x02,0x00,0x00,0x5b,0x03,0x00,0x00,
    +0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x0a,0x02,0x00,0x00,
    +0x09,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x0e,0x02,0x00,0x00,0x09,0x02,0x00,0x00,0x0a,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x09,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x14,0x02,0x00,0x00,0x49,0x03,0x00,0x00,
     0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x1e,0x02,0x00,0x00,0x1b,0x02,0x00,0x00,0x1d,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x20,0x02,0x00,0x00,
    -0x1e,0x02,0x00,0x00,0x5b,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x22,0x02,0x00,0x00,0x20,0x02,0x00,0x00,
    -0x21,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x24,0x02,0x00,0x00,0x22,0x02,0x00,0x00,0x45,0x03,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x8a,0x01,0x00,0x00,0x25,0x02,0x00,0x00,
    -0x78,0x01,0x00,0x00,0x24,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x17,0x01,0x00,0x00,0x26,0x02,0x00,0x00,0x25,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x27,0x02,0x00,0x00,0x28,0x02,0x00,0x00,
    -0x12,0x02,0x00,0x00,0x16,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x28,0x02,0x00,0x00,0x26,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x2a,0x02,0x00,0x00,0x5b,0x03,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x08,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x0a,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x03,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x03,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2c,0x02,0x00,0x00,
    -0x49,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x00,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x02,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x2e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x2e,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x4a,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0x02,0x02,0x00,0x00,
    -0x5a,0x02,0x00,0x00,0x31,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0x34,0x02,0x00,0x00,0x4a,0x03,0x00,0x00,
    -0xbe,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x30,0x02,0x00,0x00,
    -0x31,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x34,0x02,0x00,0x00,0x2f,0x02,0x00,0x00,0x30,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x2f,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x36,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x36,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x58,0x03,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0x2f,0x02,0x00,0x00,0x58,0x02,0x00,0x00,
    -0x37,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0x3c,0x02,0x00,0x00,0x58,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x38,0x02,0x00,0x00,0x37,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x3c,0x02,0x00,0x00,
    -0x37,0x02,0x00,0x00,0x38,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x37,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x42,0x02,0x00,0x00,0x4a,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x44,0x02,0x00,0x00,
    -0x42,0x02,0x00,0x00,0x58,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x46,0x02,0x00,0x00,0x5a,0x00,0x00,0x00,
    -0xb8,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x49,0x02,0x00,0x00,0x4a,0x03,0x00,0x00,0x48,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4a,0x02,0x00,0x00,
    -0x46,0x02,0x00,0x00,0x49,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x4c,0x02,0x00,0x00,0x69,0x00,0x00,0x00,
    -0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x4d,0x02,0x00,0x00,0x4a,0x02,0x00,0x00,0x4c,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4f,0x02,0x00,0x00,
    -0x4d,0x02,0x00,0x00,0x58,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x51,0x02,0x00,0x00,0x4f,0x02,0x00,0x00,
    -0x50,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x53,0x02,0x00,0x00,0x51,0x02,0x00,0x00,0x45,0x03,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x8a,0x01,0x00,0x00,0x54,0x02,0x00,0x00,
    -0xc6,0x01,0x00,0x00,0x53,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x17,0x01,0x00,0x00,0x55,0x02,0x00,0x00,0x54,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x27,0x02,0x00,0x00,0x56,0x02,0x00,0x00,
    -0x40,0x02,0x00,0x00,0x44,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x56,0x02,0x00,0x00,0x55,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x58,0x02,0x00,0x00,0x58,0x03,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x36,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x38,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x31,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x31,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5a,0x02,0x00,0x00,
    -0x4a,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x2e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x30,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x5c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x5c,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x4b,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0x30,0x02,0x00,0x00,
    -0xa0,0x02,0x00,0x00,0x5f,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0x62,0x02,0x00,0x00,0x4b,0x03,0x00,0x00,
    -0xbe,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x5e,0x02,0x00,0x00,
    -0x5f,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x62,0x02,0x00,0x00,0x5d,0x02,0x00,0x00,0x5e,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x5d,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x64,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x64,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x4f,0x03,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0x5d,0x02,0x00,0x00,0x9e,0x02,0x00,0x00,
    -0x67,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0x6a,0x02,0x00,0x00,0x4f,0x03,0x00,0x00,0x61,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x66,0x02,0x00,0x00,0x67,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x6a,0x02,0x00,0x00,
    -0x65,0x02,0x00,0x00,0x66,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x65,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x6c,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x6c,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x51,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0x65,0x02,0x00,0x00,0x9c,0x02,0x00,0x00,0x6f,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x72,0x02,0x00,0x00,
    -0x51,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x6e,0x02,0x00,0x00,0x6f,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x72,0x02,0x00,0x00,0x6d,0x02,0x00,0x00,
    -0x6e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x6d,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x74,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x74,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x53,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0x6d,0x02,0x00,0x00,
    -0x9a,0x02,0x00,0x00,0x75,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0x7a,0x02,0x00,0x00,0x53,0x03,0x00,0x00,
    -0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x76,0x02,0x00,0x00,
    -0x75,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x7a,0x02,0x00,0x00,0x75,0x02,0x00,0x00,0x76,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x75,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x7c,0x02,0x00,0x00,0x4b,0x03,0x00,0x00,
    +0x16,0x02,0x00,0x00,0x14,0x02,0x00,0x00,0x5b,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x18,0x02,0x00,0x00,
    +0x56,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x1a,0x02,0x00,0x00,0x49,0x03,0x00,0x00,
    +0x62,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x1b,0x02,0x00,0x00,0x18,0x02,0x00,0x00,0x1a,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1d,0x02,0x00,0x00,
    +0x65,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x1e,0x02,0x00,0x00,0x1b,0x02,0x00,0x00,
    +0x1d,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x20,0x02,0x00,0x00,0x1e,0x02,0x00,0x00,0x5b,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x22,0x02,0x00,0x00,
    +0x20,0x02,0x00,0x00,0x21,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x24,0x02,0x00,0x00,0x22,0x02,0x00,0x00,
    +0x45,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x8a,0x01,0x00,0x00,
    +0x25,0x02,0x00,0x00,0x78,0x01,0x00,0x00,0x24,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x17,0x01,0x00,0x00,0x26,0x02,0x00,0x00,
    +0x25,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x27,0x02,0x00,0x00,
    +0x28,0x02,0x00,0x00,0x12,0x02,0x00,0x00,0x16,0x02,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x28,0x02,0x00,0x00,0x26,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2a,0x02,0x00,0x00,
    +0x5b,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x08,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x0a,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x03,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x03,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x2c,0x02,0x00,0x00,0x49,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x00,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x02,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x2e,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x2e,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x4a,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x02,0x02,0x00,0x00,0x5a,0x02,0x00,0x00,0x31,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x34,0x02,0x00,0x00,
    +0x4a,0x03,0x00,0x00,0xbe,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x30,0x02,0x00,0x00,0x31,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x34,0x02,0x00,0x00,0x2f,0x02,0x00,0x00,
    +0x30,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x2f,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x36,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x36,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x58,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0x2f,0x02,0x00,0x00,
    +0x58,0x02,0x00,0x00,0x37,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0x3c,0x02,0x00,0x00,0x58,0x03,0x00,0x00,
    +0xbb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x38,0x02,0x00,0x00,
    +0x37,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x3c,0x02,0x00,0x00,0x37,0x02,0x00,0x00,0x38,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x37,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x42,0x02,0x00,0x00,0x4a,0x03,0x00,0x00,
     0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x7e,0x02,0x00,0x00,0x7c,0x02,0x00,0x00,0x51,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x80,0x02,0x00,0x00,
    -0x7e,0x02,0x00,0x00,0x7f,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x82,0x02,0x00,0x00,0x4f,0x03,0x00,0x00,
    -0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x83,0x02,0x00,0x00,0x80,0x02,0x00,0x00,0x82,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x85,0x02,0x00,0x00,
    -0x83,0x02,0x00,0x00,0x53,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x89,0x02,0x00,0x00,0x82,0x02,0x00,0x00,
    -0x53,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x27,0x02,0x00,0x00,
    -0x8a,0x02,0x00,0x00,0x12,0x02,0x00,0x00,0x89,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x17,0x01,0x00,0x00,0x8b,0x02,0x00,0x00,
    -0x8a,0x02,0x00,0x00,0x73,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    -0x8c,0x02,0x00,0x00,0x8b,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x27,0x02,0x00,0x00,0x91,0x02,0x00,0x00,0x40,0x02,0x00,0x00,
    -0x7e,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x17,0x01,0x00,0x00,
    -0x92,0x02,0x00,0x00,0x91,0x02,0x00,0x00,0x73,0x00,0x04,0x00,
    -0xc3,0x00,0x00,0x00,0x93,0x02,0x00,0x00,0x92,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,0x95,0x02,0x00,0x00,
    -0xc9,0x00,0x00,0x00,0x85,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xc3,0x00,0x00,0x00,0x96,0x02,0x00,0x00,0x95,0x02,0x00,0x00,
    -0x0c,0x00,0x08,0x00,0xc3,0x00,0x00,0x00,0x97,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x8c,0x02,0x00,0x00,
    -0x93,0x02,0x00,0x00,0x96,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x95,0x02,0x00,0x00,0x97,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x9a,0x02,0x00,0x00,0x53,0x03,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x74,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x76,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x6f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x6f,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9c,0x02,0x00,0x00,
    -0x51,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x6c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x6e,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x67,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x67,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x9e,0x02,0x00,0x00,0x4f,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0x44,0x02,0x00,0x00,0x42,0x02,0x00,0x00,0x58,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x46,0x02,0x00,0x00,
    +0x5a,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x49,0x02,0x00,0x00,0x4a,0x03,0x00,0x00,
    +0x48,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x4a,0x02,0x00,0x00,0x46,0x02,0x00,0x00,0x49,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4c,0x02,0x00,0x00,
    +0x69,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x4d,0x02,0x00,0x00,0x4a,0x02,0x00,0x00,
    +0x4c,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x4f,0x02,0x00,0x00,0x4d,0x02,0x00,0x00,0x58,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x51,0x02,0x00,0x00,
    +0x4f,0x02,0x00,0x00,0x50,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x53,0x02,0x00,0x00,0x51,0x02,0x00,0x00,
    +0x45,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x8a,0x01,0x00,0x00,
    +0x54,0x02,0x00,0x00,0xc6,0x01,0x00,0x00,0x53,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x17,0x01,0x00,0x00,0x55,0x02,0x00,0x00,
    +0x54,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x27,0x02,0x00,0x00,
    +0x56,0x02,0x00,0x00,0x40,0x02,0x00,0x00,0x44,0x02,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x56,0x02,0x00,0x00,0x55,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x58,0x02,0x00,0x00,
    +0x58,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x36,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x38,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x31,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x31,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x5a,0x02,0x00,0x00,0x4a,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x2e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x30,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x5c,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x5c,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x4b,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x30,0x02,0x00,0x00,0xa0,0x02,0x00,0x00,0x5f,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x62,0x02,0x00,0x00,
    +0x4b,0x03,0x00,0x00,0xbe,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x5e,0x02,0x00,0x00,0x5f,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x62,0x02,0x00,0x00,0x5d,0x02,0x00,0x00,
    +0x5e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x5d,0x02,0x00,0x00,
     0xf9,0x00,0x02,0x00,0x64,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x66,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x5f,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x5f,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xa0,0x02,0x00,0x00,0x4b,0x03,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x5c,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x5e,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xfb,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xfb,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa2,0x02,0x00,0x00,
    -0x45,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xf8,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xfa,0x01,0x00,0x00,
    -0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0xf0,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xd6,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xd6,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xa4,0x02,0x00,0x00,0x2b,0x03,0x00,0x00,
    -0x6d,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xd3,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xd5,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xa9,0x02,0x00,0x00,0x56,0x00,0x00,0x00,
    -0x54,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xaa,0x02,0x00,0x00,0x96,0x00,0x00,0x00,0xa9,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xaf,0x02,0x00,0x00,
    -0x5a,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xb0,0x02,0x00,0x00,0xa7,0x00,0x00,0x00,
    -0xaf,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    -0xb4,0x02,0x00,0x00,0x14,0x00,0x00,0x00,0xb3,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xb5,0x02,0x00,0x00,
    -0xb4,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xb6,0x02,0x00,0x00,0x0f,0x00,0x00,0x00,0xb5,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xba,0x02,0x00,0x00,
    -0x48,0x00,0x00,0x00,0xb5,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x0d,0x00,0x00,0x00,0xbc,0x02,0x00,0x00,0xbb,0x02,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0xbd,0x02,0x00,0x00,0xbc,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xbe,0x02,0x00,0x00,0xba,0x02,0x00,0x00,
    -0xbd,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xbf,0x02,0x00,0x00,0xb6,0x02,0x00,0x00,0xbe,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xc1,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xc1,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x2c,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,
    -0x27,0x03,0x00,0x00,0xc4,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0xc7,0x02,0x00,0x00,0x2c,0x03,0x00,0x00,
    -0xbe,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xc3,0x02,0x00,0x00,
    -0xc4,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xc7,0x02,0x00,0x00,0xc2,0x02,0x00,0x00,0xc3,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xc2,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xc9,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xc9,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x2d,0x03,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0xc2,0x02,0x00,0x00,0x25,0x03,0x00,0x00,
    -0xcc,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0xcf,0x02,0x00,0x00,0x2d,0x03,0x00,0x00,0x61,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xcb,0x02,0x00,0x00,0xcc,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xcf,0x02,0x00,0x00,
    -0xca,0x02,0x00,0x00,0xcb,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xca,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xd3,0x02,0x00,0x00,0x2d,0x03,0x00,0x00,0x62,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd4,0x02,0x00,0x00,
    -0xaa,0x02,0x00,0x00,0xd3,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xd6,0x02,0x00,0x00,0x65,0x00,0x00,0x00,
    -0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xd7,0x02,0x00,0x00,0xd4,0x02,0x00,0x00,0xd6,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdb,0x02,0x00,0x00,
    -0x2c,0x03,0x00,0x00,0x48,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xdc,0x02,0x00,0x00,0xb0,0x02,0x00,0x00,
    -0xdb,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xde,0x02,0x00,0x00,0x69,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdf,0x02,0x00,0x00,
    -0xdc,0x02,0x00,0x00,0xde,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xe1,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xe1,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x2f,0x03,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0xca,0x02,0x00,0x00,0x23,0x03,0x00,0x00,
    -0xe4,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0xe7,0x02,0x00,0x00,0x2f,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xe3,0x02,0x00,0x00,0xe4,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xe7,0x02,0x00,0x00,
    -0xe2,0x02,0x00,0x00,0xe3,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xe2,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xe9,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xe9,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x31,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0xe2,0x02,0x00,0x00,0x21,0x03,0x00,0x00,0xec,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xef,0x02,0x00,0x00,
    -0x31,0x03,0x00,0x00,0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xeb,0x02,0x00,0x00,0xec,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xef,0x02,0x00,0x00,0xea,0x02,0x00,0x00,
    -0xeb,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xea,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf2,0x02,0x00,0x00,
    -0xd7,0x02,0x00,0x00,0x31,0x03,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0xf5,0x02,0x00,0x00,0xf2,0x02,0x00,0x00,
    -0x37,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0xf7,0x02,0x00,0x00,
    -0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xf5,0x02,0x00,0x00,
    -0xf6,0x02,0x00,0x00,0xf7,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xf6,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xfa,0x02,0x00,0x00,0xdf,0x02,0x00,0x00,0x2f,0x03,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xfb,0x02,0x00,0x00,
    -0x14,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0xfc,0x02,0x00,0x00,0xfb,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xfd,0x02,0x00,0x00,
    -0xfa,0x02,0x00,0x00,0xfc,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xf7,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xf7,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0xc1,0x00,0x00,0x00,0xfe,0x02,0x00,0x00,
    -0xf5,0x02,0x00,0x00,0xea,0x02,0x00,0x00,0xfd,0x02,0x00,0x00,
    -0xf6,0x02,0x00,0x00,0xf7,0x00,0x03,0x00,0x00,0x03,0x00,0x00,
    -0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xfe,0x02,0x00,0x00,
    -0xff,0x02,0x00,0x00,0x00,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xff,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x08,0x03,0x00,0x00,0xdf,0x02,0x00,0x00,0x2f,0x03,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x0a,0x03,0x00,0x00,
    -0x14,0x00,0x00,0x00,0x09,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x0b,0x03,0x00,0x00,0x0a,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0c,0x03,0x00,0x00,
    -0x08,0x03,0x00,0x00,0x0b,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x0d,0x03,0x00,0x00,0xbf,0x02,0x00,0x00,
    -0x0c,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x0f,0x03,0x00,0x00,0x0d,0x03,0x00,0x00,0xd7,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x11,0x03,0x00,0x00,
    -0x0f,0x03,0x00,0x00,0x31,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x13,0x03,0x00,0x00,0x2c,0x03,0x00,0x00,
    +0x64,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x4f,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0x5d,0x02,0x00,0x00,
    +0x9e,0x02,0x00,0x00,0x67,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0x6a,0x02,0x00,0x00,0x4f,0x03,0x00,0x00,
    +0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x66,0x02,0x00,0x00,
    +0x67,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x6a,0x02,0x00,0x00,0x65,0x02,0x00,0x00,0x66,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x65,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x6c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x6c,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x51,0x03,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0x65,0x02,0x00,0x00,0x9c,0x02,0x00,0x00,
    +0x6f,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0x72,0x02,0x00,0x00,0x51,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x6e,0x02,0x00,0x00,0x6f,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x72,0x02,0x00,0x00,
    +0x6d,0x02,0x00,0x00,0x6e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x6d,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x74,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x74,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x53,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x6d,0x02,0x00,0x00,0x9a,0x02,0x00,0x00,0x75,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x7a,0x02,0x00,0x00,
    +0x53,0x03,0x00,0x00,0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x76,0x02,0x00,0x00,0x75,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x7a,0x02,0x00,0x00,0x75,0x02,0x00,0x00,
    +0x76,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x75,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7c,0x02,0x00,0x00,
    +0x4b,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x7e,0x02,0x00,0x00,0x7c,0x02,0x00,0x00,
    +0x51,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x80,0x02,0x00,0x00,0x7e,0x02,0x00,0x00,0x7f,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x82,0x02,0x00,0x00,
    +0x4f,0x03,0x00,0x00,0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x83,0x02,0x00,0x00,0x80,0x02,0x00,0x00,
    +0x82,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x85,0x02,0x00,0x00,0x83,0x02,0x00,0x00,0x53,0x03,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x89,0x02,0x00,0x00,
    +0x82,0x02,0x00,0x00,0x53,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x27,0x02,0x00,0x00,0x8a,0x02,0x00,0x00,0x12,0x02,0x00,0x00,
    +0x89,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x17,0x01,0x00,0x00,
    +0x8b,0x02,0x00,0x00,0x8a,0x02,0x00,0x00,0x73,0x00,0x04,0x00,
    +0xc3,0x00,0x00,0x00,0x8c,0x02,0x00,0x00,0x8b,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x27,0x02,0x00,0x00,0x91,0x02,0x00,0x00,
    +0x40,0x02,0x00,0x00,0x7e,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x17,0x01,0x00,0x00,0x92,0x02,0x00,0x00,0x91,0x02,0x00,0x00,
    +0x73,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x93,0x02,0x00,0x00,
    +0x92,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,
    +0x95,0x02,0x00,0x00,0xc9,0x00,0x00,0x00,0x85,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x96,0x02,0x00,0x00,
    +0x95,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0xc3,0x00,0x00,0x00,
    +0x97,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,
    +0x8c,0x02,0x00,0x00,0x93,0x02,0x00,0x00,0x96,0x02,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x95,0x02,0x00,0x00,0x97,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9a,0x02,0x00,0x00,
    +0x53,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x74,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x76,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x6f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x6f,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x9c,0x02,0x00,0x00,0x51,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x6c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x6e,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x67,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x67,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x9e,0x02,0x00,0x00,0x4f,0x03,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x64,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x66,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x5f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x5f,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa0,0x02,0x00,0x00,
    +0x4b,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x5c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x5e,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xfb,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xfb,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xa2,0x02,0x00,0x00,0x45,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xf8,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xfa,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0xf0,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xd6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xd6,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa4,0x02,0x00,0x00,
    +0x2b,0x03,0x00,0x00,0x6d,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xd3,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xd5,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa9,0x02,0x00,0x00,
    +0x56,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xaa,0x02,0x00,0x00,0x96,0x00,0x00,0x00,
    +0xa9,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xaf,0x02,0x00,0x00,0x5a,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb0,0x02,0x00,0x00,
    +0xa7,0x00,0x00,0x00,0xaf,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x17,0x00,0x00,0x00,0xb4,0x02,0x00,0x00,0x14,0x00,0x00,0x00,
    +0xb3,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0xb5,0x02,0x00,0x00,0xb4,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xb6,0x02,0x00,0x00,0x0f,0x00,0x00,0x00,
    +0xb5,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xba,0x02,0x00,0x00,0x48,0x00,0x00,0x00,0xb5,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,0xbc,0x02,0x00,0x00,
    +0xbb,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0xbd,0x02,0x00,0x00,0xbc,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbe,0x02,0x00,0x00,
    +0xba,0x02,0x00,0x00,0xbd,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xbf,0x02,0x00,0x00,0xb6,0x02,0x00,0x00,
    +0xbe,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xc1,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xc1,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x2c,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0xd5,0x00,0x00,0x00,0x27,0x03,0x00,0x00,0xc4,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xc7,0x02,0x00,0x00,
    +0x2c,0x03,0x00,0x00,0xbe,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xc3,0x02,0x00,0x00,0xc4,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xc7,0x02,0x00,0x00,0xc2,0x02,0x00,0x00,
    +0xc3,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xc2,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xc9,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xc9,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x2d,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0xc2,0x02,0x00,0x00,
    +0x25,0x03,0x00,0x00,0xcc,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0xcf,0x02,0x00,0x00,0x2d,0x03,0x00,0x00,
    +0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xcb,0x02,0x00,0x00,
    +0xcc,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xcf,0x02,0x00,0x00,0xca,0x02,0x00,0x00,0xcb,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xca,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xd3,0x02,0x00,0x00,0x2d,0x03,0x00,0x00,
    +0x62,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xd4,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,0xd3,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd6,0x02,0x00,0x00,
    +0x65,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xd7,0x02,0x00,0x00,0xd4,0x02,0x00,0x00,
    +0xd6,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xdb,0x02,0x00,0x00,0x2c,0x03,0x00,0x00,0x48,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdc,0x02,0x00,0x00,
    +0xb0,0x02,0x00,0x00,0xdb,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xde,0x02,0x00,0x00,0x69,0x00,0x00,0x00,
     0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x15,0x03,0x00,0x00,0x13,0x03,0x00,0x00,0x2f,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x17,0x03,0x00,0x00,
    -0x15,0x03,0x00,0x00,0x16,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x19,0x03,0x00,0x00,0x2d,0x03,0x00,0x00,
    -0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x1a,0x03,0x00,0x00,0x17,0x03,0x00,0x00,0x19,0x03,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1c,0x03,0x00,0x00,
    -0x1a,0x03,0x00,0x00,0x31,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xcc,0x00,0x00,0x00,0x1d,0x03,0x00,0x00,0xc9,0x00,0x00,0x00,
    -0x1c,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    -0x1e,0x03,0x00,0x00,0x1d,0x03,0x00,0x00,0x41,0x00,0x06,0x00,
    -0xdc,0x01,0x00,0x00,0x1f,0x03,0x00,0x00,0x04,0x03,0x00,0x00,
    -0x35,0x00,0x00,0x00,0x11,0x03,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x1f,0x03,0x00,0x00,0x1e,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x00,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x00,0x03,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xec,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xec,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x21,0x03,0x00,0x00,0x31,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xe9,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xeb,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xe4,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xe4,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x23,0x03,0x00,0x00,0x2f,0x03,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xe1,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xe3,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xcc,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xcc,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x25,0x03,0x00,0x00,
    -0x2d,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xc9,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xcb,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xc4,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xc4,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x27,0x03,0x00,0x00,0x2c,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xc1,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xc3,0x02,0x00,0x00,0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
    -
    +0xdf,0x02,0x00,0x00,0xdc,0x02,0x00,0x00,0xde,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xe1,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xe1,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x2f,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0xca,0x02,0x00,0x00,
    +0x23,0x03,0x00,0x00,0xe4,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0xe7,0x02,0x00,0x00,0x2f,0x03,0x00,0x00,
    +0xbb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xe3,0x02,0x00,0x00,
    +0xe4,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xe7,0x02,0x00,0x00,0xe2,0x02,0x00,0x00,0xe3,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xe2,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xe9,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xe9,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x31,0x03,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0xe2,0x02,0x00,0x00,0x21,0x03,0x00,0x00,
    +0xec,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0xef,0x02,0x00,0x00,0x31,0x03,0x00,0x00,0x63,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xeb,0x02,0x00,0x00,0xec,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xef,0x02,0x00,0x00,
    +0xea,0x02,0x00,0x00,0xeb,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xea,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xf2,0x02,0x00,0x00,0xd7,0x02,0x00,0x00,0x31,0x03,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xf5,0x02,0x00,0x00,
    +0xf2,0x02,0x00,0x00,0x37,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,
    +0xf7,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xf5,0x02,0x00,0x00,0xf6,0x02,0x00,0x00,0xf7,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xf6,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xfa,0x02,0x00,0x00,0xdf,0x02,0x00,0x00,
    +0x2f,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    +0xfb,0x02,0x00,0x00,0x14,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xfc,0x02,0x00,0x00,
    +0xfb,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0xfd,0x02,0x00,0x00,0xfa,0x02,0x00,0x00,0xfc,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xf7,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xf7,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0xc1,0x00,0x00,0x00,
    +0xfe,0x02,0x00,0x00,0xf5,0x02,0x00,0x00,0xea,0x02,0x00,0x00,
    +0xfd,0x02,0x00,0x00,0xf6,0x02,0x00,0x00,0xf7,0x00,0x03,0x00,
    +0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xfe,0x02,0x00,0x00,0xff,0x02,0x00,0x00,0x00,0x03,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xff,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x08,0x03,0x00,0x00,0xdf,0x02,0x00,0x00,
    +0x2f,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    +0x0a,0x03,0x00,0x00,0x14,0x00,0x00,0x00,0x09,0x03,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x0b,0x03,0x00,0x00,
    +0x0a,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x0c,0x03,0x00,0x00,0x08,0x03,0x00,0x00,0x0b,0x03,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0d,0x03,0x00,0x00,
    +0xbf,0x02,0x00,0x00,0x0c,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x0f,0x03,0x00,0x00,0x0d,0x03,0x00,0x00,
    +0xd7,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x11,0x03,0x00,0x00,0x0f,0x03,0x00,0x00,0x31,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x13,0x03,0x00,0x00,
    +0x2c,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x15,0x03,0x00,0x00,0x13,0x03,0x00,0x00,
    +0x2f,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x17,0x03,0x00,0x00,0x15,0x03,0x00,0x00,0x16,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x19,0x03,0x00,0x00,
    +0x2d,0x03,0x00,0x00,0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x1a,0x03,0x00,0x00,0x17,0x03,0x00,0x00,
    +0x19,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x1c,0x03,0x00,0x00,0x1a,0x03,0x00,0x00,0x31,0x03,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,0x1d,0x03,0x00,0x00,
    +0xc9,0x00,0x00,0x00,0x1c,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xc3,0x00,0x00,0x00,0x1e,0x03,0x00,0x00,0x1d,0x03,0x00,0x00,
    +0x41,0x00,0x06,0x00,0xdc,0x01,0x00,0x00,0x1f,0x03,0x00,0x00,
    +0x04,0x03,0x00,0x00,0x35,0x00,0x00,0x00,0x11,0x03,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x1f,0x03,0x00,0x00,0x1e,0x03,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x00,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x00,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,0xec,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xec,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x21,0x03,0x00,0x00,0x31,0x03,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xe9,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xeb,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xe4,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xe4,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x23,0x03,0x00,0x00,
    +0x2f,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xe1,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xe3,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xcc,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xcc,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x25,0x03,0x00,0x00,0x2d,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xc9,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xcb,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xc4,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xc4,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x27,0x03,0x00,0x00,0x2c,0x03,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xc1,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xc3,0x02,0x00,0x00,0xfd,0x00,0x01,0x00,
    +0x38,0x00,0x01,0x00,
     };
    -const uint64_t matmul_q4_k_f32_len = 12072;
    +const uint64_t matmul_q4_k_f32_len = 12052;
     
     unsigned char matmul_q4_k_f32_aligned_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
    @@ -95956,9 +99656,9 @@ unsigned char matmul_q4_k_f32_fp32_data[] = {
     0x63,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x6d,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x6d,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x73,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x6d,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
     0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    @@ -96050,7 +99750,7 @@ unsigned char matmul_q4_k_f32_fp32_data[] = {
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xa0,0x01,0x00,0x00,
     0x51,0x00,0x00,0x00,0x9f,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xa1,0x01,0x00,0x00,
    -0x84,0x00,0x00,0x00,0xa0,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x84,0x00,0x00,0x00,0xa0,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xa2,0x01,0x00,0x00,
     0x86,0x00,0x00,0x00,0xa1,0x01,0x00,0x00,0x6d,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xc0,0x01,0x00,0x00,
    @@ -96080,7 +99780,7 @@ unsigned char matmul_q4_k_f32_fp32_data[] = {
     0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xec,0x01,0x00,0x00,
     0x08,0x01,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0xed,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0xf0,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
     0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x0b,0x02,0x00,0x00,0x84,0x00,0x00,0x00,0x61,0x00,0x00,0x00,
    @@ -96207,7 +99907,7 @@ unsigned char matmul_q4_k_f32_fp32_data[] = {
     0x94,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,
     0x84,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x9e,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x9e,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
     0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,
     0x14,0x00,0x00,0x00,0xa1,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,
    @@ -96265,554 +99965,552 @@ unsigned char matmul_q4_k_f32_fp32_data[] = {
     0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xea,0x00,0x00,0x00,
     0xe7,0x00,0x00,0x00,0x99,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0xea,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xec,0x00,0x00,0x00,0x38,0x03,0x00,0x00,0xeb,0x00,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xee,0x00,0x00,0x00,
     0xec,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,
    -0xf3,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xf6,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,
    -0xf4,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0xee,0x00,0x00,0x00,
    -0xfa,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xfe,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,
    -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x02,0x01,0x00,0x00,
    -0xfe,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x89,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,
    -0x01,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x07,0x01,0x00,0x00,0x05,0x01,0x00,0x00,0x06,0x01,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0a,0x01,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x02,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,0x0a,0x01,0x00,0x00,
    -0x07,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x0f,0x01,0x00,0x00,0x02,0x01,0x00,0x00,0x01,0x01,0x00,0x00,
    -0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x11,0x01,0x00,0x00,
    -0xfe,0x00,0x00,0x00,0x06,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x12,0x01,0x00,0x00,0x11,0x01,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x13,0x01,0x00,0x00,0x0f,0x01,0x00,0x00,0x12,0x01,0x00,0x00,
    -0x41,0x00,0x07,0x00,0x23,0x01,0x00,0x00,0x24,0x01,0x00,0x00,
    +0xf3,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xf7,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
    +0xee,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,0x89,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0xee,0x00,0x00,0x00,
    +0xfa,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x02,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,0x01,0x01,0x00,0x00,
    +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x05,0x01,0x00,0x00,
    +0xfe,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x07,0x01,0x00,0x00,0x05,0x01,0x00,0x00,
    +0x06,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x0a,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x02,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,
    +0x0a,0x01,0x00,0x00,0x07,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x0f,0x01,0x00,0x00,0x02,0x01,0x00,0x00,
    +0x01,0x01,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x11,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,0x06,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x12,0x01,0x00,0x00,
    +0x11,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x13,0x01,0x00,0x00,0x0f,0x01,0x00,0x00,
    +0x12,0x01,0x00,0x00,0x41,0x00,0x07,0x00,0x23,0x01,0x00,0x00,
    +0x24,0x01,0x00,0x00,0x21,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    +0xfb,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x18,0x01,0x00,0x00,0x25,0x01,0x00,0x00,0x24,0x01,0x00,0x00,
    +0x73,0x00,0x04,0x00,0x14,0x01,0x00,0x00,0x26,0x01,0x00,0x00,
    +0x25,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0x29,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,0x28,0x01,0x00,0x00,
    +0xf7,0x00,0x03,0x00,0x2b,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x29,0x01,0x00,0x00,0x2a,0x01,0x00,0x00,
    +0x45,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x2a,0x01,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x30,0x01,0x00,0x00,0x31,0x01,0x00,0x00,
     0x21,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
    -0x35,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x18,0x01,0x00,0x00,
    -0x25,0x01,0x00,0x00,0x24,0x01,0x00,0x00,0x73,0x00,0x04,0x00,
    -0x14,0x01,0x00,0x00,0x26,0x01,0x00,0x00,0x25,0x01,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x29,0x01,0x00,0x00,
    -0x0c,0x01,0x00,0x00,0x28,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,
    -0x2b,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x29,0x01,0x00,0x00,0x2a,0x01,0x00,0x00,0x45,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x2a,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x30,0x01,0x00,0x00,0x31,0x01,0x00,0x00,0x21,0x01,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x19,0x01,0x00,0x00,0x32,0x01,0x00,0x00,0x31,0x01,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x33,0x01,0x00,0x00,
    +0x32,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    +0x34,0x01,0x00,0x00,0x33,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
    +0x15,0x00,0x00,0x00,0x36,0x01,0x00,0x00,0x34,0x01,0x00,0x00,
    +0x35,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x37,0x01,0x00,0x00,
    +0x38,0x01,0x00,0x00,0x36,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    +0x19,0x01,0x00,0x00,0x39,0x01,0x00,0x00,0x38,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3d,0x01,0x00,0x00,
    +0x0c,0x01,0x00,0x00,0x28,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x30,0x01,0x00,0x00,0x3e,0x01,0x00,0x00,0x21,0x01,0x00,0x00,
     0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0x0c,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x19,0x01,0x00,0x00,
    -0x32,0x01,0x00,0x00,0x31,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x33,0x01,0x00,0x00,0x32,0x01,0x00,0x00,
    -0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x34,0x01,0x00,0x00,
    -0x33,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x15,0x00,0x00,0x00,
    -0x36,0x01,0x00,0x00,0x34,0x01,0x00,0x00,0x35,0x01,0x00,0x00,
    -0x72,0x00,0x04,0x00,0x37,0x01,0x00,0x00,0x38,0x01,0x00,0x00,
    -0x36,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x19,0x01,0x00,0x00,
    -0x39,0x01,0x00,0x00,0x38,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x3d,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,
    -0x28,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x30,0x01,0x00,0x00,
    -0x3e,0x01,0x00,0x00,0x21,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    -0xfb,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x3d,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x19,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,
    -0x3e,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x40,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    -0x15,0x00,0x00,0x00,0x41,0x01,0x00,0x00,0x40,0x01,0x00,0x00,
    -0xc7,0x00,0x05,0x00,0x15,0x00,0x00,0x00,0x42,0x01,0x00,0x00,
    -0x41,0x01,0x00,0x00,0x35,0x01,0x00,0x00,0x72,0x00,0x04,0x00,
    -0x37,0x01,0x00,0x00,0x43,0x01,0x00,0x00,0x42,0x01,0x00,0x00,
    -0x7c,0x00,0x04,0x00,0x19,0x01,0x00,0x00,0x44,0x01,0x00,0x00,
    -0x43,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x2b,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x45,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x48,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,
    -0x28,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x30,0x01,0x00,0x00,
    -0x49,0x01,0x00,0x00,0x21,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    -0xfb,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x48,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x19,0x01,0x00,0x00,0x4a,0x01,0x00,0x00,
    -0x49,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x4b,0x01,0x00,0x00,0x4a,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    -0x15,0x00,0x00,0x00,0x4c,0x01,0x00,0x00,0x4b,0x01,0x00,0x00,
    -0xc7,0x00,0x05,0x00,0x15,0x00,0x00,0x00,0x4e,0x01,0x00,0x00,
    -0x4c,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,0x82,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x51,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,
    -0x28,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x30,0x01,0x00,0x00,
    -0x52,0x01,0x00,0x00,0x21,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    -0xfb,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x51,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x19,0x01,0x00,0x00,0x53,0x01,0x00,0x00,
    -0x52,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x19,0x01,0x00,0x00,
    -0x54,0x01,0x00,0x00,0x53,0x01,0x00,0x00,0x91,0x00,0x00,0x00,
    -0xc4,0x00,0x05,0x00,0x19,0x01,0x00,0x00,0x55,0x01,0x00,0x00,
    -0x54,0x01,0x00,0x00,0xa8,0x00,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x56,0x01,0x00,0x00,0x55,0x01,0x00,0x00,
    -0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x57,0x01,0x00,0x00,
    -0x56,0x01,0x00,0x00,0xc5,0x00,0x05,0x00,0x15,0x00,0x00,0x00,
    -0x58,0x01,0x00,0x00,0x4e,0x01,0x00,0x00,0x57,0x01,0x00,0x00,
    -0x72,0x00,0x04,0x00,0x37,0x01,0x00,0x00,0x59,0x01,0x00,0x00,
    -0x58,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x19,0x01,0x00,0x00,
    -0x5a,0x01,0x00,0x00,0x59,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x19,0x01,0x00,0x00,0x5f,0x01,0x00,0x00,0x49,0x01,0x00,0x00,
    -0xc2,0x00,0x05,0x00,0x19,0x01,0x00,0x00,0x60,0x01,0x00,0x00,
    -0x5f,0x01,0x00,0x00,0xa8,0x00,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x30,0x01,0x00,0x00,0x63,0x01,0x00,0x00,0x21,0x01,0x00,0x00,
    +0x3d,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x19,0x01,0x00,0x00,
    +0x3f,0x01,0x00,0x00,0x3e,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x40,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,
    +0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x41,0x01,0x00,0x00,
    +0x40,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x15,0x00,0x00,0x00,
    +0x42,0x01,0x00,0x00,0x41,0x01,0x00,0x00,0x35,0x01,0x00,0x00,
    +0x72,0x00,0x04,0x00,0x37,0x01,0x00,0x00,0x43,0x01,0x00,0x00,
    +0x42,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x19,0x01,0x00,0x00,
    +0x44,0x01,0x00,0x00,0x43,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x2b,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x45,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x48,0x01,0x00,0x00,
    +0x0c,0x01,0x00,0x00,0x28,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x30,0x01,0x00,0x00,0x49,0x01,0x00,0x00,0x21,0x01,0x00,0x00,
    +0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0x48,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x19,0x01,0x00,0x00,
    +0x4a,0x01,0x00,0x00,0x49,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x4b,0x01,0x00,0x00,0x4a,0x01,0x00,0x00,
    +0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x4c,0x01,0x00,0x00,
    +0x4b,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x15,0x00,0x00,0x00,
    +0x4e,0x01,0x00,0x00,0x4c,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,
    +0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x51,0x01,0x00,0x00,
    +0x0c,0x01,0x00,0x00,0x28,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x30,0x01,0x00,0x00,0x52,0x01,0x00,0x00,0x21,0x01,0x00,0x00,
     0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0x0c,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x19,0x01,0x00,0x00,
    -0x64,0x01,0x00,0x00,0x63,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,
    -0x19,0x01,0x00,0x00,0x65,0x01,0x00,0x00,0x64,0x01,0x00,0x00,
    +0x51,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x19,0x01,0x00,0x00,
    +0x53,0x01,0x00,0x00,0x52,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,
    +0x19,0x01,0x00,0x00,0x54,0x01,0x00,0x00,0x53,0x01,0x00,0x00,
     0x91,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x19,0x01,0x00,0x00,
    -0x66,0x01,0x00,0x00,0x65,0x01,0x00,0x00,0xa8,0x00,0x00,0x00,
    -0xc5,0x00,0x05,0x00,0x19,0x01,0x00,0x00,0x67,0x01,0x00,0x00,
    -0x60,0x01,0x00,0x00,0x66,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x2b,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x2b,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x19,0x01,0x00,0x00,0x5b,0x03,0x00,0x00,
    -0x44,0x01,0x00,0x00,0x2a,0x01,0x00,0x00,0x67,0x01,0x00,0x00,
    -0x45,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x19,0x01,0x00,0x00,
    -0x5a,0x03,0x00,0x00,0x39,0x01,0x00,0x00,0x2a,0x01,0x00,0x00,
    -0x5a,0x01,0x00,0x00,0x45,0x01,0x00,0x00,0x51,0x00,0x05,0x00,
    -0xc3,0x00,0x00,0x00,0x6a,0x01,0x00,0x00,0x26,0x01,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x70,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    -0x6c,0x01,0x00,0x00,0x5a,0x03,0x00,0x00,0x85,0x00,0x05,0x00,
    -0xc3,0x00,0x00,0x00,0x6d,0x01,0x00,0x00,0x6a,0x01,0x00,0x00,
    -0x6c,0x01,0x00,0x00,0x51,0x00,0x05,0x00,0xc3,0x00,0x00,0x00,
    -0x70,0x01,0x00,0x00,0x26,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x70,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x72,0x01,0x00,0x00,
    -0x5b,0x03,0x00,0x00,0x85,0x00,0x05,0x00,0xc3,0x00,0x00,0x00,
    -0x73,0x01,0x00,0x00,0x70,0x01,0x00,0x00,0x72,0x01,0x00,0x00,
    -0x41,0x00,0x08,0x00,0x30,0x01,0x00,0x00,0x7d,0x01,0x00,0x00,
    -0x21,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x13,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x19,0x01,0x00,0x00,0x7e,0x01,0x00,0x00,0x7d,0x01,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x80,0x01,0x00,0x00,
    -0x07,0x01,0x00,0x00,0x28,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,
    -0x19,0x01,0x00,0x00,0x81,0x01,0x00,0x00,0x7e,0x01,0x00,0x00,
    -0x80,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x82,0x01,0x00,0x00,0x81,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    -0x15,0x00,0x00,0x00,0x83,0x01,0x00,0x00,0x82,0x01,0x00,0x00,
    -0xc7,0x00,0x05,0x00,0x15,0x00,0x00,0x00,0x84,0x01,0x00,0x00,
    -0x83,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,
    -0xc3,0x00,0x00,0x00,0x85,0x01,0x00,0x00,0x84,0x01,0x00,0x00,
    -0x7f,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x85,0x03,0x00,0x00,
    -0x73,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0xc3,0x00,0x00,0x00,
    -0x88,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,
    -0x6d,0x01,0x00,0x00,0x85,0x01,0x00,0x00,0x85,0x03,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x89,0x01,0x00,0x00,0x8a,0x01,0x00,0x00,
    -0x78,0x01,0x00,0x00,0xf7,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x8a,0x01,0x00,0x00,0x88,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x8c,0x01,0x00,0x00,0xf7,0x00,0x00,0x00,
    -0x3a,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x90,0x01,0x00,0x00,0x13,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,
    -0x41,0x00,0x08,0x00,0x30,0x01,0x00,0x00,0x91,0x01,0x00,0x00,
    +0x55,0x01,0x00,0x00,0x54,0x01,0x00,0x00,0xa8,0x00,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x56,0x01,0x00,0x00,
    +0x55,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    +0x57,0x01,0x00,0x00,0x56,0x01,0x00,0x00,0xc5,0x00,0x05,0x00,
    +0x15,0x00,0x00,0x00,0x58,0x01,0x00,0x00,0x4e,0x01,0x00,0x00,
    +0x57,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x37,0x01,0x00,0x00,
    +0x59,0x01,0x00,0x00,0x58,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    +0x19,0x01,0x00,0x00,0x5a,0x01,0x00,0x00,0x59,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x19,0x01,0x00,0x00,0x5f,0x01,0x00,0x00,
    +0x49,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x19,0x01,0x00,0x00,
    +0x60,0x01,0x00,0x00,0x5f,0x01,0x00,0x00,0xa8,0x00,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x30,0x01,0x00,0x00,0x63,0x01,0x00,0x00,
     0x21,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x90,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x19,0x01,0x00,0x00,0x92,0x01,0x00,0x00,0x91,0x01,0x00,0x00,
    -0xc2,0x00,0x05,0x00,0x19,0x01,0x00,0x00,0x95,0x01,0x00,0x00,
    -0x92,0x01,0x00,0x00,0x80,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x96,0x01,0x00,0x00,0x95,0x01,0x00,0x00,
    -0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x97,0x01,0x00,0x00,
    -0x96,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x15,0x00,0x00,0x00,
    -0x98,0x01,0x00,0x00,0x97,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,
    -0x6f,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x99,0x01,0x00,0x00,
    -0x98,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0xc3,0x00,0x00,0x00,
    -0x9c,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,
    -0x6d,0x01,0x00,0x00,0x99,0x01,0x00,0x00,0x85,0x03,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x89,0x01,0x00,0x00,0x9d,0x01,0x00,0x00,
    -0x78,0x01,0x00,0x00,0x8c,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x9d,0x01,0x00,0x00,0x9c,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xdf,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xdf,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa4,0x01,0x00,0x00,
    -0x34,0x03,0x00,0x00,0xa2,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xdc,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xde,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xa6,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xa6,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x35,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0xde,0x00,0x00,0x00,
    -0xeb,0x01,0x00,0x00,0xa9,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0xac,0x01,0x00,0x00,0x35,0x03,0x00,0x00,
    -0xa6,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xa8,0x01,0x00,0x00,
    -0xa9,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xac,0x01,0x00,0x00,0xa7,0x01,0x00,0x00,0xa8,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xa7,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xb0,0x01,0x00,0x00,0xa7,0x00,0x00,0x00,
    -0x7e,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xb2,0x01,0x00,0x00,0xb0,0x01,0x00,0x00,0x35,0x03,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xb3,0x01,0x00,0x00,
    -0x14,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0xb4,0x01,0x00,0x00,0xb3,0x01,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xb5,0x01,0x00,0x00,
    -0xb2,0x01,0x00,0x00,0xb4,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,
    -0xb7,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xb5,0x01,0x00,0x00,0xb6,0x01,0x00,0x00,0xb7,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xb6,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xba,0x01,0x00,0x00,0x24,0x03,0x00,0x00,
    -0x79,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0xbc,0x01,0x00,0x00,0xba,0x01,0x00,0x00,0x8e,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xb7,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xb7,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0xc1,0x00,0x00,0x00,
    -0xbd,0x01,0x00,0x00,0xb5,0x01,0x00,0x00,0xa7,0x01,0x00,0x00,
    -0xbc,0x01,0x00,0x00,0xb6,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,
    -0xbf,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xbd,0x01,0x00,0x00,0xbe,0x01,0x00,0x00,0xde,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xbe,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xc7,0x01,0x00,0x00,0x7e,0x00,0x00,0x00,
    -0x35,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xc9,0x01,0x00,0x00,0xc7,0x01,0x00,0x00,0xc8,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xcb,0x01,0x00,0x00,
    -0xc9,0x01,0x00,0x00,0x79,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xd6,0x01,0x00,0x00,0xc7,0x01,0x00,0x00,
    -0xaa,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xd7,0x01,0x00,0x00,0x3c,0x03,0x00,0x00,0xd6,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd9,0x01,0x00,0x00,
    -0xd7,0x01,0x00,0x00,0x79,0x00,0x00,0x00,0x41,0x00,0x06,0x00,
    -0xda,0x01,0x00,0x00,0xdb,0x01,0x00,0x00,0xcf,0x01,0x00,0x00,
    -0x35,0x00,0x00,0x00,0xd9,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xc3,0x00,0x00,0x00,0xdc,0x01,0x00,0x00,0xdb,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x89,0x01,0x00,0x00,0xdd,0x01,0x00,0x00,
    -0xc4,0x01,0x00,0x00,0xcb,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0xdd,0x01,0x00,0x00,0xdc,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xbf,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xde,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe1,0x01,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x19,0x01,0x00,0x00,0x64,0x01,0x00,0x00,0x63,0x01,0x00,0x00,
    +0xc2,0x00,0x05,0x00,0x19,0x01,0x00,0x00,0x65,0x01,0x00,0x00,
    +0x64,0x01,0x00,0x00,0x91,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,
    +0x19,0x01,0x00,0x00,0x66,0x01,0x00,0x00,0x65,0x01,0x00,0x00,
    +0xa8,0x00,0x00,0x00,0xc5,0x00,0x05,0x00,0x19,0x01,0x00,0x00,
    +0x67,0x01,0x00,0x00,0x60,0x01,0x00,0x00,0x66,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x2b,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x2b,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x19,0x01,0x00,0x00,
    +0x5b,0x03,0x00,0x00,0x44,0x01,0x00,0x00,0x2a,0x01,0x00,0x00,
    +0x67,0x01,0x00,0x00,0x45,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x19,0x01,0x00,0x00,0x5a,0x03,0x00,0x00,0x39,0x01,0x00,0x00,
    +0x2a,0x01,0x00,0x00,0x5a,0x01,0x00,0x00,0x45,0x01,0x00,0x00,
    +0x51,0x00,0x05,0x00,0xc3,0x00,0x00,0x00,0x6a,0x01,0x00,0x00,
    +0x26,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x04,0x00,
    +0xc3,0x00,0x00,0x00,0x6c,0x01,0x00,0x00,0x5a,0x03,0x00,0x00,
    +0x85,0x00,0x05,0x00,0xc3,0x00,0x00,0x00,0x6d,0x01,0x00,0x00,
    +0x6a,0x01,0x00,0x00,0x6c,0x01,0x00,0x00,0x51,0x00,0x05,0x00,
    +0xc3,0x00,0x00,0x00,0x70,0x01,0x00,0x00,0x26,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x70,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    +0x72,0x01,0x00,0x00,0x5b,0x03,0x00,0x00,0x85,0x00,0x05,0x00,
    +0xc3,0x00,0x00,0x00,0x73,0x01,0x00,0x00,0x70,0x01,0x00,0x00,
    +0x72,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x30,0x01,0x00,0x00,
    +0x7d,0x01,0x00,0x00,0x21,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    +0xfb,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x13,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x19,0x01,0x00,0x00,0x7e,0x01,0x00,0x00,
    +0x7d,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x80,0x01,0x00,0x00,0x07,0x01,0x00,0x00,0x28,0x01,0x00,0x00,
    +0xc2,0x00,0x05,0x00,0x19,0x01,0x00,0x00,0x81,0x01,0x00,0x00,
    +0x7e,0x01,0x00,0x00,0x80,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x82,0x01,0x00,0x00,0x81,0x01,0x00,0x00,
    +0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x83,0x01,0x00,0x00,
    +0x82,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x15,0x00,0x00,0x00,
    +0x84,0x01,0x00,0x00,0x83,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,
    +0x6f,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x85,0x01,0x00,0x00,
    +0x84,0x01,0x00,0x00,0x7f,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    +0x85,0x03,0x00,0x00,0x73,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,
    +0xc3,0x00,0x00,0x00,0x88,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x32,0x00,0x00,0x00,0x6d,0x01,0x00,0x00,0x85,0x01,0x00,0x00,
    +0x85,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x89,0x01,0x00,0x00,
    +0x8a,0x01,0x00,0x00,0x78,0x01,0x00,0x00,0xf7,0x00,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x8a,0x01,0x00,0x00,0x88,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8c,0x01,0x00,0x00,
    +0xf7,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x90,0x01,0x00,0x00,0x13,0x01,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0x30,0x01,0x00,0x00,
    +0x91,0x01,0x00,0x00,0x21,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    +0xfb,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x90,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x19,0x01,0x00,0x00,0x92,0x01,0x00,0x00,
    +0x91,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x19,0x01,0x00,0x00,
    +0x95,0x01,0x00,0x00,0x92,0x01,0x00,0x00,0x80,0x01,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x96,0x01,0x00,0x00,
    +0x95,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    +0x97,0x01,0x00,0x00,0x96,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
    +0x15,0x00,0x00,0x00,0x98,0x01,0x00,0x00,0x97,0x01,0x00,0x00,
    +0x4d,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    +0x99,0x01,0x00,0x00,0x98,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,
    +0xc3,0x00,0x00,0x00,0x9c,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x32,0x00,0x00,0x00,0x6d,0x01,0x00,0x00,0x99,0x01,0x00,0x00,
    +0x85,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x89,0x01,0x00,0x00,
    +0x9d,0x01,0x00,0x00,0x78,0x01,0x00,0x00,0x8c,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x9d,0x01,0x00,0x00,0x9c,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xdf,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xdf,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xa4,0x01,0x00,0x00,0x34,0x03,0x00,0x00,0xa2,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xdc,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xde,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xa6,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xa6,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x35,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0xde,0x00,0x00,0x00,0xeb,0x01,0x00,0x00,0xa9,0x01,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xac,0x01,0x00,0x00,
    +0x35,0x03,0x00,0x00,0xa6,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xa8,0x01,0x00,0x00,0xa9,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xac,0x01,0x00,0x00,0xa7,0x01,0x00,0x00,
    +0xa8,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xa7,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb0,0x01,0x00,0x00,
    +0xa7,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xb2,0x01,0x00,0x00,0xb0,0x01,0x00,0x00,
    +0x35,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    +0xb3,0x01,0x00,0x00,0x14,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xb4,0x01,0x00,0x00,
    +0xb3,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0xb5,0x01,0x00,0x00,0xb2,0x01,0x00,0x00,0xb4,0x01,0x00,0x00,
    +0xf7,0x00,0x03,0x00,0xb7,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xb5,0x01,0x00,0x00,0xb6,0x01,0x00,0x00,
    +0xb7,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xb6,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xba,0x01,0x00,0x00,
    +0x24,0x03,0x00,0x00,0x79,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0xbc,0x01,0x00,0x00,0xba,0x01,0x00,0x00,
    +0x8e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xb7,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xb7,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0xc1,0x00,0x00,0x00,0xbd,0x01,0x00,0x00,0xb5,0x01,0x00,0x00,
    +0xa7,0x01,0x00,0x00,0xbc,0x01,0x00,0x00,0xb6,0x01,0x00,0x00,
    +0xf7,0x00,0x03,0x00,0xbf,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xbd,0x01,0x00,0x00,0xbe,0x01,0x00,0x00,
    +0xde,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xbe,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc7,0x01,0x00,0x00,
     0x7e,0x00,0x00,0x00,0x35,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xe3,0x01,0x00,0x00,0xe1,0x01,0x00,0x00,
    -0xe2,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xe5,0x01,0x00,0x00,0xe3,0x01,0x00,0x00,0x79,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x89,0x01,0x00,0x00,0xe6,0x01,0x00,0x00,
    -0xc4,0x01,0x00,0x00,0xe5,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0xe6,0x01,0x00,0x00,0xcb,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xbf,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xbf,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xa9,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xa9,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xeb,0x01,0x00,0x00,0x35,0x03,0x00,0x00,0xe9,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xa6,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xa8,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0xec,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xef,0x01,0x00,0x00,0x38,0x03,0x00,0x00,
    -0xed,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xf2,0x01,0x00,0x00,0x3c,0x03,0x00,0x00,0xf0,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xf4,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xf4,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x3e,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0xa8,0x01,0x00,0x00,
    -0x9b,0x02,0x00,0x00,0xf7,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0xfa,0x01,0x00,0x00,0x3e,0x03,0x00,0x00,
    -0x6d,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xf6,0x01,0x00,0x00,
    -0xf7,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xfa,0x01,0x00,0x00,0xf5,0x01,0x00,0x00,0xf6,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xf5,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xfc,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xfc,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x42,0x03,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0xf5,0x01,0x00,0x00,0x27,0x02,0x00,0x00,
    -0xff,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0x02,0x02,0x00,0x00,0x42,0x03,0x00,0x00,0x61,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xfe,0x01,0x00,0x00,0xff,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x02,0x02,0x00,0x00,
    -0xfd,0x01,0x00,0x00,0xfe,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xfd,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x04,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x04,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x54,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0xfd,0x01,0x00,0x00,0x25,0x02,0x00,0x00,0x05,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x0a,0x02,0x00,0x00,
    -0x54,0x03,0x00,0x00,0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x06,0x02,0x00,0x00,0x05,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x0a,0x02,0x00,0x00,0x05,0x02,0x00,0x00,
    -0x06,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x05,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x10,0x02,0x00,0x00,
    -0x42,0x03,0x00,0x00,0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x12,0x02,0x00,0x00,0x10,0x02,0x00,0x00,
    -0x54,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x14,0x02,0x00,0x00,0x56,0x00,0x00,0x00,0x54,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x16,0x02,0x00,0x00,
    -0x42,0x03,0x00,0x00,0x62,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x17,0x02,0x00,0x00,0x14,0x02,0x00,0x00,
    -0x16,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x19,0x02,0x00,0x00,0x65,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1a,0x02,0x00,0x00,
    -0x17,0x02,0x00,0x00,0x19,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x1c,0x02,0x00,0x00,0x1a,0x02,0x00,0x00,
    -0x54,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x1e,0x02,0x00,0x00,0x1c,0x02,0x00,0x00,0x1d,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x20,0x02,0x00,0x00,
    -0x1e,0x02,0x00,0x00,0x3e,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x89,0x01,0x00,0x00,0x21,0x02,0x00,0x00,0x78,0x01,0x00,0x00,
    -0x20,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    -0x22,0x02,0x00,0x00,0x21,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xcc,0x00,0x00,0x00,0x23,0x02,0x00,0x00,0x0e,0x02,0x00,0x00,
    -0x12,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0x23,0x02,0x00,0x00,
    -0x22,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x25,0x02,0x00,0x00,0x54,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x04,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x06,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xff,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xff,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x27,0x02,0x00,0x00,0x42,0x03,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xfc,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xfe,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x29,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x29,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x43,0x03,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0xfe,0x01,0x00,0x00,0x55,0x02,0x00,0x00,
    -0x2c,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0x2f,0x02,0x00,0x00,0x43,0x03,0x00,0x00,0xbe,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x2b,0x02,0x00,0x00,0x2c,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x2f,0x02,0x00,0x00,
    -0x2a,0x02,0x00,0x00,0x2b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x2a,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x31,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x31,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x51,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0x2a,0x02,0x00,0x00,0x53,0x02,0x00,0x00,0x32,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x37,0x02,0x00,0x00,
    -0x51,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x33,0x02,0x00,0x00,0x32,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x37,0x02,0x00,0x00,0x32,0x02,0x00,0x00,
    -0x33,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x32,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3d,0x02,0x00,0x00,
    -0x43,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x3f,0x02,0x00,0x00,0x3d,0x02,0x00,0x00,
    -0x51,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x41,0x02,0x00,0x00,0x5a,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x44,0x02,0x00,0x00,
    -0x43,0x03,0x00,0x00,0x43,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x45,0x02,0x00,0x00,0x41,0x02,0x00,0x00,
    -0x44,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x47,0x02,0x00,0x00,0x69,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x48,0x02,0x00,0x00,
    -0x45,0x02,0x00,0x00,0x47,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x4a,0x02,0x00,0x00,0x48,0x02,0x00,0x00,
    -0x51,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x4c,0x02,0x00,0x00,0x4a,0x02,0x00,0x00,0x4b,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4e,0x02,0x00,0x00,
    -0x4c,0x02,0x00,0x00,0x3e,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x89,0x01,0x00,0x00,0x4f,0x02,0x00,0x00,0xc4,0x01,0x00,0x00,
    -0x4e,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    -0x50,0x02,0x00,0x00,0x4f,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xcc,0x00,0x00,0x00,0x51,0x02,0x00,0x00,0x3b,0x02,0x00,0x00,
    -0x3f,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0x51,0x02,0x00,0x00,
    -0x50,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x53,0x02,0x00,0x00,0x51,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x31,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x33,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x2c,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x2c,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x55,0x02,0x00,0x00,0x43,0x03,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x29,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x2b,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x57,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x57,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x44,0x03,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0x2b,0x02,0x00,0x00,0x99,0x02,0x00,0x00,
    -0x5a,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0x5d,0x02,0x00,0x00,0x44,0x03,0x00,0x00,0xbe,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x59,0x02,0x00,0x00,0x5a,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x5d,0x02,0x00,0x00,
    -0x58,0x02,0x00,0x00,0x59,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x58,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x5f,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x5f,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x48,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0x58,0x02,0x00,0x00,0x97,0x02,0x00,0x00,0x62,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x65,0x02,0x00,0x00,
    -0x48,0x03,0x00,0x00,0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x61,0x02,0x00,0x00,0x62,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x65,0x02,0x00,0x00,0x60,0x02,0x00,0x00,
    -0x61,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x60,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x67,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x67,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x4a,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0x60,0x02,0x00,0x00,
    -0x95,0x02,0x00,0x00,0x6a,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0x6d,0x02,0x00,0x00,0x4a,0x03,0x00,0x00,
    -0xbb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x69,0x02,0x00,0x00,
    -0x6a,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x6d,0x02,0x00,0x00,0x68,0x02,0x00,0x00,0x69,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x68,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x6f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x6f,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x4c,0x03,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0x68,0x02,0x00,0x00,0x93,0x02,0x00,0x00,
    -0x70,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0x75,0x02,0x00,0x00,0x4c,0x03,0x00,0x00,0x63,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x71,0x02,0x00,0x00,0x70,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x75,0x02,0x00,0x00,
    -0x70,0x02,0x00,0x00,0x71,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x70,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x77,0x02,0x00,0x00,0x44,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x79,0x02,0x00,0x00,
    -0x77,0x02,0x00,0x00,0x4a,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x7b,0x02,0x00,0x00,0x79,0x02,0x00,0x00,
    -0x7a,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x7d,0x02,0x00,0x00,0x48,0x03,0x00,0x00,0x63,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7e,0x02,0x00,0x00,
    -0x7b,0x02,0x00,0x00,0x7d,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x80,0x02,0x00,0x00,0x7e,0x02,0x00,0x00,
    -0x4c,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x84,0x02,0x00,0x00,0x7d,0x02,0x00,0x00,0x4c,0x03,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,0x85,0x02,0x00,0x00,
    -0x0e,0x02,0x00,0x00,0x84,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xc3,0x00,0x00,0x00,0x86,0x02,0x00,0x00,0x85,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,0x8b,0x02,0x00,0x00,
    -0x3b,0x02,0x00,0x00,0x79,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xc3,0x00,0x00,0x00,0x8c,0x02,0x00,0x00,0x8b,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,0x8e,0x02,0x00,0x00,
    -0xc9,0x00,0x00,0x00,0x80,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xc3,0x00,0x00,0x00,0x8f,0x02,0x00,0x00,0x8e,0x02,0x00,0x00,
    -0x0c,0x00,0x08,0x00,0xc3,0x00,0x00,0x00,0x90,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x86,0x02,0x00,0x00,
    -0x8c,0x02,0x00,0x00,0x8f,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x8e,0x02,0x00,0x00,0x90,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x93,0x02,0x00,0x00,0x4c,0x03,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x6f,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x71,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x6a,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x6a,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x95,0x02,0x00,0x00,
    -0x4a,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x67,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x69,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x62,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x62,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x97,0x02,0x00,0x00,0x48,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x5f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x61,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x5a,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x5a,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x99,0x02,0x00,0x00,0x44,0x03,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x57,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x59,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xf7,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xf7,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9b,0x02,0x00,0x00,
    -0x3e,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xf4,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xf6,0x01,0x00,0x00,
    -0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0xec,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xd6,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xd6,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x9d,0x02,0x00,0x00,0x24,0x03,0x00,0x00,
    -0x6d,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xd3,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xd5,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xa2,0x02,0x00,0x00,0x56,0x00,0x00,0x00,
    -0x54,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xa3,0x02,0x00,0x00,0x96,0x00,0x00,0x00,0xa2,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa8,0x02,0x00,0x00,
    -0x5a,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xa9,0x02,0x00,0x00,0xa7,0x00,0x00,0x00,
    -0xa8,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    -0xad,0x02,0x00,0x00,0x14,0x00,0x00,0x00,0xac,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xae,0x02,0x00,0x00,
    -0xad,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xaf,0x02,0x00,0x00,0x0f,0x00,0x00,0x00,0xae,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb3,0x02,0x00,0x00,
    -0x48,0x00,0x00,0x00,0xae,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x0d,0x00,0x00,0x00,0xb5,0x02,0x00,0x00,0xb4,0x02,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0xb6,0x02,0x00,0x00,0xb5,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xb7,0x02,0x00,0x00,0xb3,0x02,0x00,0x00,
    -0xb6,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xb8,0x02,0x00,0x00,0xaf,0x02,0x00,0x00,0xb7,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xba,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xba,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x25,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,
    -0x20,0x03,0x00,0x00,0xbd,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0xc0,0x02,0x00,0x00,0x25,0x03,0x00,0x00,
    -0xbe,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xbc,0x02,0x00,0x00,
    -0xbd,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xc0,0x02,0x00,0x00,0xbb,0x02,0x00,0x00,0xbc,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xbb,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xc2,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xc2,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x26,0x03,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0xbb,0x02,0x00,0x00,0x1e,0x03,0x00,0x00,
    -0xc5,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0xc8,0x02,0x00,0x00,0x26,0x03,0x00,0x00,0x61,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xc4,0x02,0x00,0x00,0xc5,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xc8,0x02,0x00,0x00,
    -0xc3,0x02,0x00,0x00,0xc4,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xc3,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xcc,0x02,0x00,0x00,0x26,0x03,0x00,0x00,0x62,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xcd,0x02,0x00,0x00,
    -0xa3,0x02,0x00,0x00,0xcc,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xcf,0x02,0x00,0x00,0x65,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0xc9,0x01,0x00,0x00,0xc7,0x01,0x00,0x00,
    +0xc8,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xcb,0x01,0x00,0x00,0xc9,0x01,0x00,0x00,0x79,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd6,0x01,0x00,0x00,
    +0xc7,0x01,0x00,0x00,0xaa,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xd7,0x01,0x00,0x00,0x3c,0x03,0x00,0x00,
    +0xd6,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xd9,0x01,0x00,0x00,0xd7,0x01,0x00,0x00,0x79,0x00,0x00,0x00,
    +0x41,0x00,0x06,0x00,0xda,0x01,0x00,0x00,0xdb,0x01,0x00,0x00,
    +0xcf,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0xd9,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0xdc,0x01,0x00,0x00,
    +0xdb,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x89,0x01,0x00,0x00,
    +0xdd,0x01,0x00,0x00,0xc4,0x01,0x00,0x00,0xcb,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0xdd,0x01,0x00,0x00,0xdc,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xbf,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xde,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xe1,0x01,0x00,0x00,0x7e,0x00,0x00,0x00,0x35,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe3,0x01,0x00,0x00,
    +0xe1,0x01,0x00,0x00,0xe2,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xe5,0x01,0x00,0x00,0xe3,0x01,0x00,0x00,
    +0x79,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x89,0x01,0x00,0x00,
    +0xe6,0x01,0x00,0x00,0xc4,0x01,0x00,0x00,0xe5,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0xe6,0x01,0x00,0x00,0xcb,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xbf,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xbf,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xa9,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xa9,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xeb,0x01,0x00,0x00,0x35,0x03,0x00,0x00,
    +0xe9,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xa6,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xa8,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,
    +0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xec,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xef,0x01,0x00,0x00,
    +0x38,0x03,0x00,0x00,0xed,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xf2,0x01,0x00,0x00,0x3c,0x03,0x00,0x00,
    +0xf0,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xf4,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xf4,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x3e,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0xa8,0x01,0x00,0x00,0x9b,0x02,0x00,0x00,0xf7,0x01,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xfa,0x01,0x00,0x00,
    +0x3e,0x03,0x00,0x00,0x6d,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xf6,0x01,0x00,0x00,0xf7,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xfa,0x01,0x00,0x00,0xf5,0x01,0x00,0x00,
    +0xf6,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xf5,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xfc,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xfc,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x42,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0xf5,0x01,0x00,0x00,
    +0x27,0x02,0x00,0x00,0xff,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0x02,0x02,0x00,0x00,0x42,0x03,0x00,0x00,
    +0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xfe,0x01,0x00,0x00,
    +0xff,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x02,0x02,0x00,0x00,0xfd,0x01,0x00,0x00,0xfe,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xfd,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x04,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x04,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x54,0x03,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0xfd,0x01,0x00,0x00,0x25,0x02,0x00,0x00,
    +0x05,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0x0a,0x02,0x00,0x00,0x54,0x03,0x00,0x00,0x63,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x06,0x02,0x00,0x00,0x05,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x0a,0x02,0x00,0x00,
    +0x05,0x02,0x00,0x00,0x06,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x05,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x10,0x02,0x00,0x00,0x42,0x03,0x00,0x00,0x63,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x12,0x02,0x00,0x00,
    +0x10,0x02,0x00,0x00,0x54,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x14,0x02,0x00,0x00,0x56,0x00,0x00,0x00,
    +0x54,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x16,0x02,0x00,0x00,0x42,0x03,0x00,0x00,0x62,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x17,0x02,0x00,0x00,
    +0x14,0x02,0x00,0x00,0x16,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x19,0x02,0x00,0x00,0x65,0x00,0x00,0x00,
     0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xd0,0x02,0x00,0x00,0xcd,0x02,0x00,0x00,0xcf,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd4,0x02,0x00,0x00,
    -0x25,0x03,0x00,0x00,0x43,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xd5,0x02,0x00,0x00,0xa9,0x02,0x00,0x00,
    -0xd4,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xd7,0x02,0x00,0x00,0x69,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd8,0x02,0x00,0x00,
    -0xd5,0x02,0x00,0x00,0xd7,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xda,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xda,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x28,0x03,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0xc3,0x02,0x00,0x00,0x1c,0x03,0x00,0x00,
    -0xdd,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0xe0,0x02,0x00,0x00,0x28,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xdc,0x02,0x00,0x00,0xdd,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xe0,0x02,0x00,0x00,
    -0xdb,0x02,0x00,0x00,0xdc,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xdb,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xe2,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xe2,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x2a,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0xdb,0x02,0x00,0x00,0x1a,0x03,0x00,0x00,0xe5,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xe8,0x02,0x00,0x00,
    -0x2a,0x03,0x00,0x00,0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xe4,0x02,0x00,0x00,0xe5,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xe8,0x02,0x00,0x00,0xe3,0x02,0x00,0x00,
    -0xe4,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xe3,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xeb,0x02,0x00,0x00,
    -0xd0,0x02,0x00,0x00,0x2a,0x03,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0xee,0x02,0x00,0x00,0xeb,0x02,0x00,0x00,
    -0x37,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0xf0,0x02,0x00,0x00,
    -0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xee,0x02,0x00,0x00,
    -0xef,0x02,0x00,0x00,0xf0,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xef,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xf3,0x02,0x00,0x00,0xd8,0x02,0x00,0x00,0x28,0x03,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xf4,0x02,0x00,0x00,
    -0x14,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0xf5,0x02,0x00,0x00,0xf4,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xf6,0x02,0x00,0x00,
    -0xf3,0x02,0x00,0x00,0xf5,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xf0,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xf0,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0xc1,0x00,0x00,0x00,0xf7,0x02,0x00,0x00,
    -0xee,0x02,0x00,0x00,0xe3,0x02,0x00,0x00,0xf6,0x02,0x00,0x00,
    -0xef,0x02,0x00,0x00,0xf7,0x00,0x03,0x00,0xf9,0x02,0x00,0x00,
    -0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xf7,0x02,0x00,0x00,
    -0xf8,0x02,0x00,0x00,0xf9,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xf8,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x01,0x03,0x00,0x00,0xd8,0x02,0x00,0x00,0x28,0x03,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x03,0x03,0x00,0x00,
    -0x14,0x00,0x00,0x00,0x02,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x04,0x03,0x00,0x00,0x03,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x05,0x03,0x00,0x00,
    -0x01,0x03,0x00,0x00,0x04,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x06,0x03,0x00,0x00,0xb8,0x02,0x00,0x00,
    -0x05,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x08,0x03,0x00,0x00,0x06,0x03,0x00,0x00,0xd0,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0a,0x03,0x00,0x00,
    -0x08,0x03,0x00,0x00,0x2a,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x0c,0x03,0x00,0x00,0x25,0x03,0x00,0x00,
    +0x1a,0x02,0x00,0x00,0x17,0x02,0x00,0x00,0x19,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1c,0x02,0x00,0x00,
    +0x1a,0x02,0x00,0x00,0x54,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x1e,0x02,0x00,0x00,0x1c,0x02,0x00,0x00,
    +0x1d,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x20,0x02,0x00,0x00,0x1e,0x02,0x00,0x00,0x3e,0x03,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x89,0x01,0x00,0x00,0x21,0x02,0x00,0x00,
    +0x78,0x01,0x00,0x00,0x20,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xc3,0x00,0x00,0x00,0x22,0x02,0x00,0x00,0x21,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,0x23,0x02,0x00,0x00,
    +0x0e,0x02,0x00,0x00,0x12,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x23,0x02,0x00,0x00,0x22,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x25,0x02,0x00,0x00,0x54,0x03,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x04,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x06,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xff,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xff,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x27,0x02,0x00,0x00,
    +0x42,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xfc,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xfe,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x29,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x29,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x43,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0xfe,0x01,0x00,0x00,
    +0x55,0x02,0x00,0x00,0x2c,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0x2f,0x02,0x00,0x00,0x43,0x03,0x00,0x00,
    +0xbe,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x2b,0x02,0x00,0x00,
    +0x2c,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x2f,0x02,0x00,0x00,0x2a,0x02,0x00,0x00,0x2b,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x2a,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x31,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x31,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x51,0x03,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0x2a,0x02,0x00,0x00,0x53,0x02,0x00,0x00,
    +0x32,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0x37,0x02,0x00,0x00,0x51,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x33,0x02,0x00,0x00,0x32,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x37,0x02,0x00,0x00,
    +0x32,0x02,0x00,0x00,0x33,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x32,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x3d,0x02,0x00,0x00,0x43,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3f,0x02,0x00,0x00,
    +0x3d,0x02,0x00,0x00,0x51,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x41,0x02,0x00,0x00,0x5a,0x00,0x00,0x00,
    +0xb8,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x44,0x02,0x00,0x00,0x43,0x03,0x00,0x00,0x43,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x45,0x02,0x00,0x00,
    +0x41,0x02,0x00,0x00,0x44,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x47,0x02,0x00,0x00,0x69,0x00,0x00,0x00,
    +0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x48,0x02,0x00,0x00,0x45,0x02,0x00,0x00,0x47,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4a,0x02,0x00,0x00,
    +0x48,0x02,0x00,0x00,0x51,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x4c,0x02,0x00,0x00,0x4a,0x02,0x00,0x00,
    +0x4b,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x4e,0x02,0x00,0x00,0x4c,0x02,0x00,0x00,0x3e,0x03,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x89,0x01,0x00,0x00,0x4f,0x02,0x00,0x00,
    +0xc4,0x01,0x00,0x00,0x4e,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xc3,0x00,0x00,0x00,0x50,0x02,0x00,0x00,0x4f,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,0x51,0x02,0x00,0x00,
    +0x3b,0x02,0x00,0x00,0x3f,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x51,0x02,0x00,0x00,0x50,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x53,0x02,0x00,0x00,0x51,0x03,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x31,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x33,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x2c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x2c,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x55,0x02,0x00,0x00,
    +0x43,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x29,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x2b,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x57,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x57,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x44,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0x2b,0x02,0x00,0x00,
    +0x99,0x02,0x00,0x00,0x5a,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0x5d,0x02,0x00,0x00,0x44,0x03,0x00,0x00,
    +0xbe,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x59,0x02,0x00,0x00,
    +0x5a,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x5d,0x02,0x00,0x00,0x58,0x02,0x00,0x00,0x59,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x58,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x5f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x5f,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x48,0x03,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0x58,0x02,0x00,0x00,0x97,0x02,0x00,0x00,
    +0x62,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0x65,0x02,0x00,0x00,0x48,0x03,0x00,0x00,0x61,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x61,0x02,0x00,0x00,0x62,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x65,0x02,0x00,0x00,
    +0x60,0x02,0x00,0x00,0x61,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x60,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x67,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x67,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x4a,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x60,0x02,0x00,0x00,0x95,0x02,0x00,0x00,0x6a,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x6d,0x02,0x00,0x00,
    +0x4a,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x69,0x02,0x00,0x00,0x6a,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x6d,0x02,0x00,0x00,0x68,0x02,0x00,0x00,
    +0x69,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x68,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x6f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x6f,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x4c,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0x68,0x02,0x00,0x00,
    +0x93,0x02,0x00,0x00,0x70,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0x75,0x02,0x00,0x00,0x4c,0x03,0x00,0x00,
    +0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x71,0x02,0x00,0x00,
    +0x70,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x75,0x02,0x00,0x00,0x70,0x02,0x00,0x00,0x71,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x70,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x77,0x02,0x00,0x00,0x44,0x03,0x00,0x00,
     0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x0e,0x03,0x00,0x00,0x0c,0x03,0x00,0x00,0x28,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x10,0x03,0x00,0x00,
    -0x0e,0x03,0x00,0x00,0x0f,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x12,0x03,0x00,0x00,0x26,0x03,0x00,0x00,
    +0x79,0x02,0x00,0x00,0x77,0x02,0x00,0x00,0x4a,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7b,0x02,0x00,0x00,
    +0x79,0x02,0x00,0x00,0x7a,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x7d,0x02,0x00,0x00,0x48,0x03,0x00,0x00,
     0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x13,0x03,0x00,0x00,0x10,0x03,0x00,0x00,0x12,0x03,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x15,0x03,0x00,0x00,
    -0x13,0x03,0x00,0x00,0x2a,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xcc,0x00,0x00,0x00,0x16,0x03,0x00,0x00,0xc9,0x00,0x00,0x00,
    -0x15,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    -0x17,0x03,0x00,0x00,0x16,0x03,0x00,0x00,0x41,0x00,0x06,0x00,
    -0xda,0x01,0x00,0x00,0x18,0x03,0x00,0x00,0xfd,0x02,0x00,0x00,
    -0x35,0x00,0x00,0x00,0x0a,0x03,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x18,0x03,0x00,0x00,0x17,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xf9,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xf9,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xe5,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xe5,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x1a,0x03,0x00,0x00,0x2a,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xe2,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xe4,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xdd,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xdd,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x1c,0x03,0x00,0x00,0x28,0x03,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xda,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xdc,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xc5,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xc5,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1e,0x03,0x00,0x00,
    -0x26,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xc2,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xc4,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xbd,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xbd,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x20,0x03,0x00,0x00,0x25,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xba,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xbc,0x02,0x00,0x00,0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
    -
    +0x7e,0x02,0x00,0x00,0x7b,0x02,0x00,0x00,0x7d,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x80,0x02,0x00,0x00,
    +0x7e,0x02,0x00,0x00,0x4c,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x84,0x02,0x00,0x00,0x7d,0x02,0x00,0x00,
    +0x4c,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,
    +0x85,0x02,0x00,0x00,0x0e,0x02,0x00,0x00,0x84,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x86,0x02,0x00,0x00,
    +0x85,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,
    +0x8b,0x02,0x00,0x00,0x3b,0x02,0x00,0x00,0x79,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x8c,0x02,0x00,0x00,
    +0x8b,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,
    +0x8e,0x02,0x00,0x00,0xc9,0x00,0x00,0x00,0x80,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x8f,0x02,0x00,0x00,
    +0x8e,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0xc3,0x00,0x00,0x00,
    +0x90,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,
    +0x86,0x02,0x00,0x00,0x8c,0x02,0x00,0x00,0x8f,0x02,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x8e,0x02,0x00,0x00,0x90,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x93,0x02,0x00,0x00,
    +0x4c,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x6f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x71,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x6a,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x6a,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x95,0x02,0x00,0x00,0x4a,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x67,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x69,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x62,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x62,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x97,0x02,0x00,0x00,0x48,0x03,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x5f,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x61,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x5a,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x5a,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x99,0x02,0x00,0x00,
    +0x44,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x57,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x59,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xf7,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xf7,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x9b,0x02,0x00,0x00,0x3e,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xf4,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xf6,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0xec,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xd6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xd6,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9d,0x02,0x00,0x00,
    +0x24,0x03,0x00,0x00,0x6d,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xd3,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xd5,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa2,0x02,0x00,0x00,
    +0x56,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xa3,0x02,0x00,0x00,0x96,0x00,0x00,0x00,
    +0xa2,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xa8,0x02,0x00,0x00,0x5a,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa9,0x02,0x00,0x00,
    +0xa7,0x00,0x00,0x00,0xa8,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x17,0x00,0x00,0x00,0xad,0x02,0x00,0x00,0x14,0x00,0x00,0x00,
    +0xac,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0xae,0x02,0x00,0x00,0xad,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xaf,0x02,0x00,0x00,0x0f,0x00,0x00,0x00,
    +0xae,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xb3,0x02,0x00,0x00,0x48,0x00,0x00,0x00,0xae,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,0xb5,0x02,0x00,0x00,
    +0xb4,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0xb6,0x02,0x00,0x00,0xb5,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb7,0x02,0x00,0x00,
    +0xb3,0x02,0x00,0x00,0xb6,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xb8,0x02,0x00,0x00,0xaf,0x02,0x00,0x00,
    +0xb7,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xba,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xba,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x25,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0xd5,0x00,0x00,0x00,0x20,0x03,0x00,0x00,0xbd,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xc0,0x02,0x00,0x00,
    +0x25,0x03,0x00,0x00,0xbe,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xbc,0x02,0x00,0x00,0xbd,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xc0,0x02,0x00,0x00,0xbb,0x02,0x00,0x00,
    +0xbc,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xbb,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xc2,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xc2,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x26,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0xbb,0x02,0x00,0x00,
    +0x1e,0x03,0x00,0x00,0xc5,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0xc8,0x02,0x00,0x00,0x26,0x03,0x00,0x00,
    +0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xc4,0x02,0x00,0x00,
    +0xc5,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xc8,0x02,0x00,0x00,0xc3,0x02,0x00,0x00,0xc4,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xc3,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xcc,0x02,0x00,0x00,0x26,0x03,0x00,0x00,
    +0x62,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xcd,0x02,0x00,0x00,0xa3,0x02,0x00,0x00,0xcc,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xcf,0x02,0x00,0x00,
    +0x65,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xd0,0x02,0x00,0x00,0xcd,0x02,0x00,0x00,
    +0xcf,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xd4,0x02,0x00,0x00,0x25,0x03,0x00,0x00,0x43,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd5,0x02,0x00,0x00,
    +0xa9,0x02,0x00,0x00,0xd4,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xd7,0x02,0x00,0x00,0x69,0x00,0x00,0x00,
    +0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xd8,0x02,0x00,0x00,0xd5,0x02,0x00,0x00,0xd7,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xda,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xda,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x28,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0xc3,0x02,0x00,0x00,
    +0x1c,0x03,0x00,0x00,0xdd,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0xe0,0x02,0x00,0x00,0x28,0x03,0x00,0x00,
    +0xbb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xdc,0x02,0x00,0x00,
    +0xdd,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xe0,0x02,0x00,0x00,0xdb,0x02,0x00,0x00,0xdc,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xdb,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xe2,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xe2,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x2a,0x03,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0xdb,0x02,0x00,0x00,0x1a,0x03,0x00,0x00,
    +0xe5,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0xe8,0x02,0x00,0x00,0x2a,0x03,0x00,0x00,0x63,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xe4,0x02,0x00,0x00,0xe5,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xe8,0x02,0x00,0x00,
    +0xe3,0x02,0x00,0x00,0xe4,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xe3,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xeb,0x02,0x00,0x00,0xd0,0x02,0x00,0x00,0x2a,0x03,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xee,0x02,0x00,0x00,
    +0xeb,0x02,0x00,0x00,0x37,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,
    +0xf0,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xee,0x02,0x00,0x00,0xef,0x02,0x00,0x00,0xf0,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xef,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xf3,0x02,0x00,0x00,0xd8,0x02,0x00,0x00,
    +0x28,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    +0xf4,0x02,0x00,0x00,0x14,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xf5,0x02,0x00,0x00,
    +0xf4,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0xf6,0x02,0x00,0x00,0xf3,0x02,0x00,0x00,0xf5,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xf0,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xf0,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0xc1,0x00,0x00,0x00,
    +0xf7,0x02,0x00,0x00,0xee,0x02,0x00,0x00,0xe3,0x02,0x00,0x00,
    +0xf6,0x02,0x00,0x00,0xef,0x02,0x00,0x00,0xf7,0x00,0x03,0x00,
    +0xf9,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xf7,0x02,0x00,0x00,0xf8,0x02,0x00,0x00,0xf9,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xf8,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x01,0x03,0x00,0x00,0xd8,0x02,0x00,0x00,
    +0x28,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    +0x03,0x03,0x00,0x00,0x14,0x00,0x00,0x00,0x02,0x03,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x04,0x03,0x00,0x00,
    +0x03,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x05,0x03,0x00,0x00,0x01,0x03,0x00,0x00,0x04,0x03,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x06,0x03,0x00,0x00,
    +0xb8,0x02,0x00,0x00,0x05,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x08,0x03,0x00,0x00,0x06,0x03,0x00,0x00,
    +0xd0,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x0a,0x03,0x00,0x00,0x08,0x03,0x00,0x00,0x2a,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0c,0x03,0x00,0x00,
    +0x25,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x0e,0x03,0x00,0x00,0x0c,0x03,0x00,0x00,
    +0x28,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x10,0x03,0x00,0x00,0x0e,0x03,0x00,0x00,0x0f,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x12,0x03,0x00,0x00,
    +0x26,0x03,0x00,0x00,0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x13,0x03,0x00,0x00,0x10,0x03,0x00,0x00,
    +0x12,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x15,0x03,0x00,0x00,0x13,0x03,0x00,0x00,0x2a,0x03,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,0x16,0x03,0x00,0x00,
    +0xc9,0x00,0x00,0x00,0x15,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xc3,0x00,0x00,0x00,0x17,0x03,0x00,0x00,0x16,0x03,0x00,0x00,
    +0x41,0x00,0x06,0x00,0xda,0x01,0x00,0x00,0x18,0x03,0x00,0x00,
    +0xfd,0x02,0x00,0x00,0x35,0x00,0x00,0x00,0x0a,0x03,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x18,0x03,0x00,0x00,0x17,0x03,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xf9,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xf9,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xe5,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xe5,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x1a,0x03,0x00,0x00,0x2a,0x03,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xe2,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xe4,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xdd,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xdd,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1c,0x03,0x00,0x00,
    +0x28,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xda,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xdc,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xc5,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xc5,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x1e,0x03,0x00,0x00,0x26,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xc2,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xc4,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xbd,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xbd,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x20,0x03,0x00,0x00,0x25,0x03,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xba,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xbc,0x02,0x00,0x00,0xfd,0x00,0x01,0x00,
    +0x38,0x00,0x01,0x00,
     };
    -const uint64_t matmul_q4_k_f32_fp32_len = 11952;
    +const uint64_t matmul_q4_k_f32_fp32_len = 11932;
     
     unsigned char matmul_q5_0_f32_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
    @@ -96957,9 +100655,9 @@ unsigned char matmul_q5_0_f32_data[] = {
     0x63,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x6d,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x6d,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x73,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x6d,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
     0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    @@ -97049,7 +100747,7 @@ unsigned char matmul_q5_0_f32_data[] = {
     0x5f,0x01,0x00,0x00,0x51,0x00,0x00,0x00,0x5e,0x01,0x00,0x00,
     0x00,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x60,0x01,0x00,0x00,0x84,0x00,0x00,0x00,0x5f,0x01,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x61,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0x60,0x01,0x00,0x00,
     0x6d,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x7f,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    @@ -97079,7 +100777,7 @@ unsigned char matmul_q5_0_f32_data[] = {
     0xa9,0x01,0x00,0x00,0x6d,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0xad,0x01,0x00,0x00,0x08,0x01,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xae,0x01,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xb1,0x01,0x00,0x00,
     0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xcc,0x01,0x00,0x00,
    @@ -97210,7 +100908,7 @@ unsigned char matmul_q5_0_f32_data[] = {
     0x9a,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x9d,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9e,0x00,0x00,0x00,
    -0x9d,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x9d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
     0x17,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
     0xa1,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0xa3,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    @@ -97267,7 +100965,7 @@ unsigned char matmul_q5_0_f32_data[] = {
     0x74,0x00,0x00,0x00,0xfa,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xea,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,
     0x99,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xeb,0x00,0x00,0x00,0xea,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0xeb,0x00,0x00,0x00,0xea,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xec,0x00,0x00,0x00,
     0xfe,0x02,0x00,0x00,0xeb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0xec,0x00,0x00,0x00,
    @@ -99776,9 +103474,9 @@ unsigned char matmul_q5_0_f32_fp32_data[] = {
     0x62,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x73,0x00,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x78,0x00,0x00,0x00,
     0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,
    @@ -99868,7 +103566,7 @@ unsigned char matmul_q5_0_f32_fp32_data[] = {
     0x06,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,0x51,0x00,0x00,0x00,
     0x5c,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x5e,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    -0x5d,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x5d,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x5f,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
     0x5e,0x01,0x00,0x00,0x6d,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x7d,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
    @@ -99897,7 +103595,7 @@ unsigned char matmul_q5_0_f32_fp32_data[] = {
     0xa5,0x01,0x00,0x00,0x6d,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0xa9,0x01,0x00,0x00,0x08,0x01,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xaa,0x01,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xad,0x01,0x00,0x00,
     0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xc8,0x01,0x00,0x00,
    @@ -100027,7 +103725,7 @@ unsigned char matmul_q5_0_f32_fp32_data[] = {
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,
     0x9b,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x9e,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
     0xa2,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0xa1,0x00,0x00,0x00,
     0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,
     0xa2,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    @@ -100084,7 +103782,7 @@ unsigned char matmul_q5_0_f32_fp32_data[] = {
     0xf3,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xea,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,0x99,0x00,0x00,0x00,
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,
    -0xea,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0xea,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xec,0x00,0x00,0x00,0xf7,0x02,0x00,0x00,
     0xeb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xee,0x00,0x00,0x00,0xec,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,
    @@ -100695,9 +104393,9 @@ unsigned char matmul_q5_1_f32_data[] = {
     0x62,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x73,0x00,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x78,0x00,0x00,0x00,
     0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,
    @@ -100782,7 +104480,7 @@ unsigned char matmul_q5_1_f32_data[] = {
     0x06,0x00,0x00,0x00,0x5a,0x01,0x00,0x00,0x51,0x00,0x00,0x00,
     0x59,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x5b,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    -0x5a,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x5a,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x5c,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
     0x5b,0x01,0x00,0x00,0x6d,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x7a,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
    @@ -100813,7 +104511,7 @@ unsigned char matmul_q5_1_f32_data[] = {
     0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa8,0x01,0x00,0x00,
     0x08,0x01,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0xa9,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0xac,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
     0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0xc7,0x01,0x00,0x00,0x84,0x00,0x00,0x00,0x61,0x00,0x00,0x00,
    @@ -100942,7 +104640,7 @@ unsigned char matmul_q5_1_f32_data[] = {
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,
     0x9b,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x9e,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
     0xa2,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0xa1,0x00,0x00,0x00,
     0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,
     0xa2,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    @@ -100999,7 +104697,7 @@ unsigned char matmul_q5_1_f32_data[] = {
     0xf5,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xea,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,0x99,0x00,0x00,0x00,
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,
    -0xea,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0xea,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xec,0x00,0x00,0x00,0xf9,0x02,0x00,0x00,
     0xeb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xee,0x00,0x00,0x00,0xec,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,
    @@ -103485,9 +107183,9 @@ unsigned char matmul_q5_1_f32_fp32_data[] = {
     0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
     0x10,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x6e,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x73,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x78,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
     0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x7d,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    @@ -103571,7 +107269,7 @@ unsigned char matmul_q5_1_f32_fp32_data[] = {
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x58,0x01,0x00,0x00,
     0x51,0x00,0x00,0x00,0x57,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x59,0x01,0x00,0x00,
    -0x84,0x00,0x00,0x00,0x58,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x84,0x00,0x00,0x00,0x58,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x5a,0x01,0x00,0x00,
     0x86,0x00,0x00,0x00,0x59,0x01,0x00,0x00,0x6d,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x78,0x01,0x00,0x00,
    @@ -103601,7 +107299,7 @@ unsigned char matmul_q5_1_f32_fp32_data[] = {
     0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa4,0x01,0x00,0x00,
     0x08,0x01,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0xa5,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0xa8,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
     0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0xc3,0x01,0x00,0x00,0x84,0x00,0x00,0x00,0x61,0x00,0x00,0x00,
    @@ -103728,7 +107426,7 @@ unsigned char matmul_q5_1_f32_fp32_data[] = {
     0x94,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,
     0x84,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x9e,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x9e,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
     0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,
     0x14,0x00,0x00,0x00,0xa1,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,
    @@ -103786,7 +107484,7 @@ unsigned char matmul_q5_1_f32_fp32_data[] = {
     0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xea,0x00,0x00,0x00,
     0xe7,0x00,0x00,0x00,0x99,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0xea,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xec,0x00,0x00,0x00,0xf2,0x02,0x00,0x00,0xeb,0x00,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xee,0x00,0x00,0x00,
     0xec,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    @@ -104397,9 +108095,9 @@ unsigned char matmul_q5_k_f32_data[] = {
     0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
     0x10,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x6e,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x73,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x78,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
     0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x7d,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    @@ -104494,7 +108192,7 @@ unsigned char matmul_q5_k_f32_data[] = {
     0x06,0x00,0x00,0x00,0xc7,0x01,0x00,0x00,0x51,0x00,0x00,0x00,
     0xc6,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0xc8,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    -0xc7,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0xc7,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0xc9,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
     0xc8,0x01,0x00,0x00,0x6d,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0xe7,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
    @@ -104525,7 +108223,7 @@ unsigned char matmul_q5_k_f32_data[] = {
     0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x15,0x02,0x00,0x00,
     0x08,0x01,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x16,0x02,0x00,0x00,0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x19,0x02,0x00,0x00,0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
     0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x34,0x02,0x00,0x00,0x84,0x00,0x00,0x00,0x61,0x00,0x00,0x00,
    @@ -104654,7 +108352,7 @@ unsigned char matmul_q5_k_f32_data[] = {
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,
     0x9b,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x9e,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
     0xa2,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0xa1,0x00,0x00,0x00,
     0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,
     0xa2,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    @@ -104711,598 +108409,597 @@ unsigned char matmul_q5_k_f32_data[] = {
     0x60,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xea,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,0x99,0x00,0x00,0x00,
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,
    -0xea,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0xea,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xec,0x00,0x00,0x00,0x64,0x03,0x00,0x00,
     0xeb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xee,0x00,0x00,0x00,0xec,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,
     0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,
    -0xe7,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xf7,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,
    -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
    -0xee,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,0x89,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0xee,0x00,0x00,0x00,
    -0xfa,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x02,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,0x01,0x01,0x00,0x00,
    -0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x05,0x01,0x00,0x00,
    -0xfe,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x86,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x07,0x01,0x00,0x00,0x05,0x01,0x00,0x00,
    -0x06,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x0a,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x02,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,
    -0x0a,0x01,0x00,0x00,0x07,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x0f,0x01,0x00,0x00,0x02,0x01,0x00,0x00,
    +0xe7,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,
    +0x6f,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xfb,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,
    +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,
    +0xee,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x02,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,
     0x01,0x01,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x11,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,0x06,0x01,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x12,0x01,0x00,0x00,
    -0x11,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x13,0x01,0x00,0x00,0x0f,0x01,0x00,0x00,
    -0x12,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x1c,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,0x06,0x01,0x00,0x00,
    -0xc4,0x00,0x05,0x00,0x15,0x00,0x00,0x00,0x1d,0x01,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,0x72,0x00,0x04,0x00,
    -0x1e,0x01,0x00,0x00,0x1f,0x01,0x00,0x00,0x1d,0x01,0x00,0x00,
    -0x7c,0x00,0x04,0x00,0x18,0x01,0x00,0x00,0x20,0x01,0x00,0x00,
    -0x1f,0x01,0x00,0x00,0x41,0x00,0x07,0x00,0x30,0x01,0x00,0x00,
    -0x31,0x01,0x00,0x00,0x2e,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    -0xfb,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x25,0x01,0x00,0x00,0x32,0x01,0x00,0x00,0x31,0x01,0x00,0x00,
    -0x73,0x00,0x04,0x00,0x21,0x01,0x00,0x00,0x33,0x01,0x00,0x00,
    -0x32,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0x36,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,0x35,0x01,0x00,0x00,
    -0xf7,0x00,0x03,0x00,0x38,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x36,0x01,0x00,0x00,0x37,0x01,0x00,0x00,
    -0x50,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x37,0x01,0x00,0x00,
    -0x41,0x00,0x08,0x00,0x3c,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,
    +0x05,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,0x01,0x01,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x07,0x01,0x00,0x00,
    +0x05,0x01,0x00,0x00,0x06,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x0a,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x02,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x0c,0x01,0x00,0x00,0x0a,0x01,0x00,0x00,0x07,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0f,0x01,0x00,0x00,
    +0x02,0x01,0x00,0x00,0x01,0x01,0x00,0x00,0x89,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x11,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,
    +0x06,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x12,0x01,0x00,0x00,0x11,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x13,0x01,0x00,0x00,
    +0x0f,0x01,0x00,0x00,0x12,0x01,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,
    +0x06,0x01,0x00,0x00,0xc4,0x00,0x05,0x00,0x15,0x00,0x00,0x00,
    +0x1d,0x01,0x00,0x00,0xcf,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,
    +0x72,0x00,0x04,0x00,0x1e,0x01,0x00,0x00,0x1f,0x01,0x00,0x00,
    +0x1d,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x18,0x01,0x00,0x00,
    +0x20,0x01,0x00,0x00,0x1f,0x01,0x00,0x00,0x41,0x00,0x07,0x00,
    +0x30,0x01,0x00,0x00,0x31,0x01,0x00,0x00,0x2e,0x01,0x00,0x00,
    +0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0x35,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x25,0x01,0x00,0x00,0x32,0x01,0x00,0x00,
    +0x31,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x21,0x01,0x00,0x00,
    +0x33,0x01,0x00,0x00,0x32,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0x36,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,
    +0x35,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,0x38,0x01,0x00,0x00,
    +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x36,0x01,0x00,0x00,
    +0x37,0x01,0x00,0x00,0x50,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x37,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x3c,0x01,0x00,0x00,
    +0x3d,0x01,0x00,0x00,0x2e,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    +0xfb,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x18,0x01,0x00,0x00,0x3e,0x01,0x00,0x00,
    +0x3d,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x3f,0x01,0x00,0x00,0x3e,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    +0x15,0x00,0x00,0x00,0x40,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,
    +0xc7,0x00,0x05,0x00,0x15,0x00,0x00,0x00,0x42,0x01,0x00,0x00,
    +0x40,0x01,0x00,0x00,0x41,0x01,0x00,0x00,0x72,0x00,0x04,0x00,
    +0x1e,0x01,0x00,0x00,0x43,0x01,0x00,0x00,0x42,0x01,0x00,0x00,
    +0x7c,0x00,0x04,0x00,0x18,0x01,0x00,0x00,0x44,0x01,0x00,0x00,
    +0x43,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x48,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,0x35,0x01,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x3c,0x01,0x00,0x00,0x49,0x01,0x00,0x00,
     0x2e,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x18,0x01,0x00,0x00,0x3e,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,
    -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x3f,0x01,0x00,0x00,
    -0x3e,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    -0x40,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
    -0x15,0x00,0x00,0x00,0x42,0x01,0x00,0x00,0x40,0x01,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0x48,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x18,0x01,0x00,0x00,0x4a,0x01,0x00,0x00,0x49,0x01,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4b,0x01,0x00,0x00,
    +0x4a,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    +0x4c,0x01,0x00,0x00,0x4b,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
    +0x15,0x00,0x00,0x00,0x4d,0x01,0x00,0x00,0x4c,0x01,0x00,0x00,
     0x41,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x1e,0x01,0x00,0x00,
    -0x43,0x01,0x00,0x00,0x42,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    -0x18,0x01,0x00,0x00,0x44,0x01,0x00,0x00,0x43,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x48,0x01,0x00,0x00,
    -0x0c,0x01,0x00,0x00,0x35,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x3c,0x01,0x00,0x00,0x49,0x01,0x00,0x00,0x2e,0x01,0x00,0x00,
    -0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0x48,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x18,0x01,0x00,0x00,
    -0x4a,0x01,0x00,0x00,0x49,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x4b,0x01,0x00,0x00,0x4a,0x01,0x00,0x00,
    -0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x4c,0x01,0x00,0x00,
    -0x4b,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x15,0x00,0x00,0x00,
    -0x4d,0x01,0x00,0x00,0x4c,0x01,0x00,0x00,0x41,0x01,0x00,0x00,
    -0x72,0x00,0x04,0x00,0x1e,0x01,0x00,0x00,0x4e,0x01,0x00,0x00,
    -0x4d,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x18,0x01,0x00,0x00,
    -0x4f,0x01,0x00,0x00,0x4e,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x38,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x50,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x53,0x01,0x00,0x00,
    -0x0c,0x01,0x00,0x00,0x35,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x3c,0x01,0x00,0x00,0x54,0x01,0x00,0x00,0x2e,0x01,0x00,0x00,
    -0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0x53,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x18,0x01,0x00,0x00,
    -0x55,0x01,0x00,0x00,0x54,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x56,0x01,0x00,0x00,0x55,0x01,0x00,0x00,
    -0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x57,0x01,0x00,0x00,
    -0x56,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x15,0x00,0x00,0x00,
    -0x59,0x01,0x00,0x00,0x57,0x01,0x00,0x00,0x58,0x01,0x00,0x00,
    -0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5c,0x01,0x00,0x00,
    -0x0c,0x01,0x00,0x00,0x35,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x3c,0x01,0x00,0x00,0x5d,0x01,0x00,0x00,0x2e,0x01,0x00,0x00,
    -0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0x5c,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x18,0x01,0x00,0x00,
    -0x5e,0x01,0x00,0x00,0x5d,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,
    -0x18,0x01,0x00,0x00,0x5f,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,
    -0x91,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x18,0x01,0x00,0x00,
    -0x60,0x01,0x00,0x00,0x5f,0x01,0x00,0x00,0xa8,0x00,0x00,0x00,
    -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x61,0x01,0x00,0x00,
    -0x60,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    -0x62,0x01,0x00,0x00,0x61,0x01,0x00,0x00,0xc5,0x00,0x05,0x00,
    -0x15,0x00,0x00,0x00,0x63,0x01,0x00,0x00,0x59,0x01,0x00,0x00,
    -0x62,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x1e,0x01,0x00,0x00,
    -0x64,0x01,0x00,0x00,0x63,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    -0x18,0x01,0x00,0x00,0x65,0x01,0x00,0x00,0x64,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x18,0x01,0x00,0x00,0x6a,0x01,0x00,0x00,
    -0x54,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x18,0x01,0x00,0x00,
    -0x6b,0x01,0x00,0x00,0x6a,0x01,0x00,0x00,0xa8,0x00,0x00,0x00,
    -0x41,0x00,0x08,0x00,0x3c,0x01,0x00,0x00,0x6e,0x01,0x00,0x00,
    -0x2e,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x18,0x01,0x00,0x00,0x6f,0x01,0x00,0x00,0x6e,0x01,0x00,0x00,
    -0xc2,0x00,0x05,0x00,0x18,0x01,0x00,0x00,0x70,0x01,0x00,0x00,
    -0x6f,0x01,0x00,0x00,0x91,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,
    -0x18,0x01,0x00,0x00,0x71,0x01,0x00,0x00,0x70,0x01,0x00,0x00,
    -0xa8,0x00,0x00,0x00,0xc5,0x00,0x05,0x00,0x18,0x01,0x00,0x00,
    -0x72,0x01,0x00,0x00,0x6b,0x01,0x00,0x00,0x71,0x01,0x00,0x00,
    +0x4e,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    +0x18,0x01,0x00,0x00,0x4f,0x01,0x00,0x00,0x4e,0x01,0x00,0x00,
     0xf9,0x00,0x02,0x00,0x38,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x38,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x18,0x01,0x00,0x00,
    -0x87,0x03,0x00,0x00,0x4f,0x01,0x00,0x00,0x37,0x01,0x00,0x00,
    -0x72,0x01,0x00,0x00,0x50,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x18,0x01,0x00,0x00,0x86,0x03,0x00,0x00,0x44,0x01,0x00,0x00,
    -0x37,0x01,0x00,0x00,0x65,0x01,0x00,0x00,0x50,0x01,0x00,0x00,
    -0x51,0x00,0x05,0x00,0xc3,0x00,0x00,0x00,0x75,0x01,0x00,0x00,
    -0x33,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x04,0x00,
    -0xc3,0x00,0x00,0x00,0x77,0x01,0x00,0x00,0x86,0x03,0x00,0x00,
    -0x85,0x00,0x05,0x00,0xc3,0x00,0x00,0x00,0x78,0x01,0x00,0x00,
    -0x75,0x01,0x00,0x00,0x77,0x01,0x00,0x00,0x51,0x00,0x05,0x00,
    -0xc3,0x00,0x00,0x00,0x7b,0x01,0x00,0x00,0x33,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x70,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    -0x7d,0x01,0x00,0x00,0x87,0x03,0x00,0x00,0x85,0x00,0x05,0x00,
    -0xc3,0x00,0x00,0x00,0x7e,0x01,0x00,0x00,0x7b,0x01,0x00,0x00,
    -0x7d,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x3c,0x01,0x00,0x00,
    -0x88,0x01,0x00,0x00,0x2e,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    -0xfb,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x13,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x18,0x01,0x00,0x00,0x89,0x01,0x00,0x00,
    -0x88,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x8b,0x01,0x00,0x00,0x07,0x01,0x00,0x00,0x35,0x01,0x00,0x00,
    -0xc2,0x00,0x05,0x00,0x18,0x01,0x00,0x00,0x8c,0x01,0x00,0x00,
    -0x89,0x01,0x00,0x00,0x8b,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x8d,0x01,0x00,0x00,0x8c,0x01,0x00,0x00,
    -0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x8e,0x01,0x00,0x00,
    -0x8d,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x15,0x00,0x00,0x00,
    -0x8f,0x01,0x00,0x00,0x8e,0x01,0x00,0x00,0x58,0x01,0x00,0x00,
    -0x6f,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x90,0x01,0x00,0x00,
    -0x8f,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x3c,0x01,0x00,0x00,
    -0x93,0x01,0x00,0x00,0x2e,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    -0xfb,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x12,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x18,0x01,0x00,0x00,0x94,0x01,0x00,0x00,
    -0x93,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x18,0x01,0x00,0x00,
    -0x96,0x01,0x00,0x00,0x94,0x01,0x00,0x00,0x20,0x01,0x00,0x00,
    -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x97,0x01,0x00,0x00,
    -0x96,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    -0x98,0x01,0x00,0x00,0x97,0x01,0x00,0x00,0xab,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0x99,0x01,0x00,0x00,0x98,0x01,0x00,0x00,
    -0x35,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,0x15,0x00,0x00,0x00,
    -0x9b,0x01,0x00,0x00,0x99,0x01,0x00,0x00,0x9a,0x01,0x00,0x00,
    -0x35,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    -0x9c,0x01,0x00,0x00,0x9b,0x01,0x00,0x00,0x81,0x00,0x05,0x00,
    -0xc3,0x00,0x00,0x00,0x9d,0x01,0x00,0x00,0x90,0x01,0x00,0x00,
    -0x9c,0x01,0x00,0x00,0x7f,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    -0xb1,0x03,0x00,0x00,0x7e,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,
    -0xc3,0x00,0x00,0x00,0xa0,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x32,0x00,0x00,0x00,0x78,0x01,0x00,0x00,0x9d,0x01,0x00,0x00,
    -0xb1,0x03,0x00,0x00,0x73,0x00,0x04,0x00,0x24,0x01,0x00,0x00,
    -0xa1,0x01,0x00,0x00,0xa0,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xa2,0x01,0x00,0x00,0xa3,0x01,0x00,0x00,0x83,0x01,0x00,0x00,
    -0xf7,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0xa3,0x01,0x00,0x00,
    -0xa1,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xa5,0x01,0x00,0x00,0xf7,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa9,0x01,0x00,0x00,
    -0x13,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x3c,0x01,0x00,0x00,0xaa,0x01,0x00,0x00,0x2e,0x01,0x00,0x00,
    +0x50,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x53,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,0x35,0x01,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x3c,0x01,0x00,0x00,0x54,0x01,0x00,0x00,
    +0x2e,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0x53,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x18,0x01,0x00,0x00,0x55,0x01,0x00,0x00,0x54,0x01,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x56,0x01,0x00,0x00,
    +0x55,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    +0x57,0x01,0x00,0x00,0x56,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
    +0x15,0x00,0x00,0x00,0x59,0x01,0x00,0x00,0x57,0x01,0x00,0x00,
    +0x58,0x01,0x00,0x00,0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x5c,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,0x35,0x01,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x3c,0x01,0x00,0x00,0x5d,0x01,0x00,0x00,
    +0x2e,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0x5c,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x18,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,0x5d,0x01,0x00,0x00,
    +0xc2,0x00,0x05,0x00,0x18,0x01,0x00,0x00,0x5f,0x01,0x00,0x00,
    +0x5e,0x01,0x00,0x00,0x91,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,
    +0x18,0x01,0x00,0x00,0x60,0x01,0x00,0x00,0x5f,0x01,0x00,0x00,
    +0xa8,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x61,0x01,0x00,0x00,0x60,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    +0x15,0x00,0x00,0x00,0x62,0x01,0x00,0x00,0x61,0x01,0x00,0x00,
    +0xc5,0x00,0x05,0x00,0x15,0x00,0x00,0x00,0x63,0x01,0x00,0x00,
    +0x59,0x01,0x00,0x00,0x62,0x01,0x00,0x00,0x72,0x00,0x04,0x00,
    +0x1e,0x01,0x00,0x00,0x64,0x01,0x00,0x00,0x63,0x01,0x00,0x00,
    +0x7c,0x00,0x04,0x00,0x18,0x01,0x00,0x00,0x65,0x01,0x00,0x00,
    +0x64,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x18,0x01,0x00,0x00,
    +0x6a,0x01,0x00,0x00,0x54,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,
    +0x18,0x01,0x00,0x00,0x6b,0x01,0x00,0x00,0x6a,0x01,0x00,0x00,
    +0xa8,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0x3c,0x01,0x00,0x00,
    +0x6e,0x01,0x00,0x00,0x2e,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    +0xfb,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x18,0x01,0x00,0x00,0x6f,0x01,0x00,0x00,
    +0x6e,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x18,0x01,0x00,0x00,
    +0x70,0x01,0x00,0x00,0x6f,0x01,0x00,0x00,0x91,0x00,0x00,0x00,
    +0xc4,0x00,0x05,0x00,0x18,0x01,0x00,0x00,0x71,0x01,0x00,0x00,
    +0x70,0x01,0x00,0x00,0xa8,0x00,0x00,0x00,0xc5,0x00,0x05,0x00,
    +0x18,0x01,0x00,0x00,0x72,0x01,0x00,0x00,0x6b,0x01,0x00,0x00,
    +0x71,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x38,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x38,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x18,0x01,0x00,0x00,0x87,0x03,0x00,0x00,0x4f,0x01,0x00,0x00,
    +0x37,0x01,0x00,0x00,0x72,0x01,0x00,0x00,0x50,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x18,0x01,0x00,0x00,0x86,0x03,0x00,0x00,
    +0x44,0x01,0x00,0x00,0x37,0x01,0x00,0x00,0x65,0x01,0x00,0x00,
    +0x50,0x01,0x00,0x00,0x51,0x00,0x05,0x00,0xc3,0x00,0x00,0x00,
    +0x75,0x01,0x00,0x00,0x33,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x70,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x77,0x01,0x00,0x00,
    +0x86,0x03,0x00,0x00,0x85,0x00,0x05,0x00,0xc3,0x00,0x00,0x00,
    +0x78,0x01,0x00,0x00,0x75,0x01,0x00,0x00,0x77,0x01,0x00,0x00,
    +0x51,0x00,0x05,0x00,0xc3,0x00,0x00,0x00,0x7b,0x01,0x00,0x00,
    +0x33,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x70,0x00,0x04,0x00,
    +0xc3,0x00,0x00,0x00,0x7d,0x01,0x00,0x00,0x87,0x03,0x00,0x00,
    +0x85,0x00,0x05,0x00,0xc3,0x00,0x00,0x00,0x7e,0x01,0x00,0x00,
    +0x7b,0x01,0x00,0x00,0x7d,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x3c,0x01,0x00,0x00,0x88,0x01,0x00,0x00,0x2e,0x01,0x00,0x00,
     0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0x97,0x00,0x00,0x00,
    -0xa9,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x18,0x01,0x00,0x00,
    -0xab,0x01,0x00,0x00,0xaa,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,
    -0x18,0x01,0x00,0x00,0xae,0x01,0x00,0x00,0xab,0x01,0x00,0x00,
    -0x8b,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0xaf,0x01,0x00,0x00,0xae,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    -0x15,0x00,0x00,0x00,0xb0,0x01,0x00,0x00,0xaf,0x01,0x00,0x00,
    -0xc7,0x00,0x05,0x00,0x15,0x00,0x00,0x00,0xb1,0x01,0x00,0x00,
    -0xb0,0x01,0x00,0x00,0x58,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,
    -0xc3,0x00,0x00,0x00,0xb2,0x01,0x00,0x00,0xb1,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb5,0x01,0x00,0x00,
    -0x12,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x3c,0x01,0x00,0x00,0xb6,0x01,0x00,0x00,0x2e,0x01,0x00,0x00,
    +0x13,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x18,0x01,0x00,0x00,
    +0x89,0x01,0x00,0x00,0x88,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x8b,0x01,0x00,0x00,0x07,0x01,0x00,0x00,
    +0x35,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x18,0x01,0x00,0x00,
    +0x8c,0x01,0x00,0x00,0x89,0x01,0x00,0x00,0x8b,0x01,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x8d,0x01,0x00,0x00,
    +0x8c,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    +0x8e,0x01,0x00,0x00,0x8d,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
    +0x15,0x00,0x00,0x00,0x8f,0x01,0x00,0x00,0x8e,0x01,0x00,0x00,
    +0x58,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    +0x90,0x01,0x00,0x00,0x8f,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x3c,0x01,0x00,0x00,0x93,0x01,0x00,0x00,0x2e,0x01,0x00,0x00,
     0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0xb5,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x18,0x01,0x00,0x00,
    -0xb7,0x01,0x00,0x00,0xb6,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
    -0x18,0x01,0x00,0x00,0xb9,0x01,0x00,0x00,0xb7,0x01,0x00,0x00,
    +0x12,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x18,0x01,0x00,0x00,
    +0x94,0x01,0x00,0x00,0x93,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
    +0x18,0x01,0x00,0x00,0x96,0x01,0x00,0x00,0x94,0x01,0x00,0x00,
     0x20,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0xba,0x01,0x00,0x00,0xb9,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    -0x15,0x00,0x00,0x00,0xbb,0x01,0x00,0x00,0xba,0x01,0x00,0x00,
    -0xab,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xbc,0x01,0x00,0x00,
    -0xbb,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,
    -0x15,0x00,0x00,0x00,0xbd,0x01,0x00,0x00,0xbc,0x01,0x00,0x00,
    +0x97,0x01,0x00,0x00,0x96,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    +0x15,0x00,0x00,0x00,0x98,0x01,0x00,0x00,0x97,0x01,0x00,0x00,
    +0xab,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x99,0x01,0x00,0x00,
    +0x98,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,
    +0x15,0x00,0x00,0x00,0x9b,0x01,0x00,0x00,0x99,0x01,0x00,0x00,
     0x9a,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,
    -0xc3,0x00,0x00,0x00,0xbe,0x01,0x00,0x00,0xbd,0x01,0x00,0x00,
    -0x81,0x00,0x05,0x00,0xc3,0x00,0x00,0x00,0xbf,0x01,0x00,0x00,
    -0xb2,0x01,0x00,0x00,0xbe,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,
    -0xc3,0x00,0x00,0x00,0xc2,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x32,0x00,0x00,0x00,0x78,0x01,0x00,0x00,0xbf,0x01,0x00,0x00,
    -0xb1,0x03,0x00,0x00,0x73,0x00,0x04,0x00,0x24,0x01,0x00,0x00,
    -0xc3,0x01,0x00,0x00,0xc2,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xa2,0x01,0x00,0x00,0xc4,0x01,0x00,0x00,0x83,0x01,0x00,0x00,
    -0xa5,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xc4,0x01,0x00,0x00,
    -0xc3,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xdf,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xdf,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xcb,0x01,0x00,0x00,0x60,0x03,0x00,0x00,
    -0xc9,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xdc,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xde,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xcd,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xcd,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x61,0x03,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0xde,0x00,0x00,0x00,0x14,0x02,0x00,0x00,
    -0xd0,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0xd3,0x01,0x00,0x00,0x61,0x03,0x00,0x00,0xa6,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xcf,0x01,0x00,0x00,0xd0,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xd3,0x01,0x00,0x00,
    -0xce,0x01,0x00,0x00,0xcf,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xce,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xd7,0x01,0x00,0x00,0xa7,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd9,0x01,0x00,0x00,
    -0xd7,0x01,0x00,0x00,0x61,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x17,0x00,0x00,0x00,0xda,0x01,0x00,0x00,0x14,0x00,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0xdb,0x01,0x00,0x00,0xda,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0xdc,0x01,0x00,0x00,0xd9,0x01,0x00,0x00,
    -0xdb,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,0xde,0x01,0x00,0x00,
    -0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xdc,0x01,0x00,0x00,
    -0xdd,0x01,0x00,0x00,0xde,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xdd,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xe1,0x01,0x00,0x00,0x50,0x03,0x00,0x00,0x79,0x00,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xe3,0x01,0x00,0x00,
    -0xe1,0x01,0x00,0x00,0x8e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xde,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xde,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0xc1,0x00,0x00,0x00,0xe4,0x01,0x00,0x00,
    -0xdc,0x01,0x00,0x00,0xce,0x01,0x00,0x00,0xe3,0x01,0x00,0x00,
    -0xdd,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,0xe6,0x01,0x00,0x00,
    -0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xe4,0x01,0x00,0x00,
    -0xe5,0x01,0x00,0x00,0x06,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xe5,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xee,0x01,0x00,0x00,0x7e,0x00,0x00,0x00,0x61,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf0,0x01,0x00,0x00,
    -0xee,0x01,0x00,0x00,0xef,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xf2,0x01,0x00,0x00,0xf0,0x01,0x00,0x00,
    -0x79,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xfd,0x01,0x00,0x00,0xee,0x01,0x00,0x00,0xaa,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfe,0x01,0x00,0x00,
    -0x68,0x03,0x00,0x00,0xfd,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0xfe,0x01,0x00,0x00,
    -0x79,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x01,0x02,0x00,0x00,
    -0x02,0x02,0x00,0x00,0xf6,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    -0x00,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    -0x03,0x02,0x00,0x00,0x02,0x02,0x00,0x00,0x73,0x00,0x04,0x00,
    -0x24,0x01,0x00,0x00,0x04,0x02,0x00,0x00,0x03,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xa2,0x01,0x00,0x00,0x05,0x02,0x00,0x00,
    -0xeb,0x01,0x00,0x00,0xf2,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x05,0x02,0x00,0x00,0x04,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xe6,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x06,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x09,0x02,0x00,0x00,
    -0x7e,0x00,0x00,0x00,0x61,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x0b,0x02,0x00,0x00,0x09,0x02,0x00,0x00,
    -0x0a,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x0d,0x02,0x00,0x00,0x0b,0x02,0x00,0x00,0x79,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xa2,0x01,0x00,0x00,0x0f,0x02,0x00,0x00,
    -0xeb,0x01,0x00,0x00,0x0d,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x0f,0x02,0x00,0x00,0x0e,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xe6,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xe6,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xd0,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xd0,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x14,0x02,0x00,0x00,0x61,0x03,0x00,0x00,0x12,0x02,0x00,0x00,
    +0xc3,0x00,0x00,0x00,0x9c,0x01,0x00,0x00,0x9b,0x01,0x00,0x00,
    +0x81,0x00,0x05,0x00,0xc3,0x00,0x00,0x00,0x9d,0x01,0x00,0x00,
    +0x90,0x01,0x00,0x00,0x9c,0x01,0x00,0x00,0x7f,0x00,0x04,0x00,
    +0xc3,0x00,0x00,0x00,0xb1,0x03,0x00,0x00,0x7e,0x01,0x00,0x00,
    +0x0c,0x00,0x08,0x00,0xc3,0x00,0x00,0x00,0xa0,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x78,0x01,0x00,0x00,
    +0x9d,0x01,0x00,0x00,0xb1,0x03,0x00,0x00,0x73,0x00,0x04,0x00,
    +0x24,0x01,0x00,0x00,0xa1,0x01,0x00,0x00,0xa0,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xa2,0x01,0x00,0x00,0xa3,0x01,0x00,0x00,
    +0x83,0x01,0x00,0x00,0xf7,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0xa3,0x01,0x00,0x00,0xa1,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xa5,0x01,0x00,0x00,0xf7,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xa9,0x01,0x00,0x00,0x13,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x3c,0x01,0x00,0x00,0xaa,0x01,0x00,0x00,
    +0x2e,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
    +0x97,0x00,0x00,0x00,0xa9,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x18,0x01,0x00,0x00,0xab,0x01,0x00,0x00,0xaa,0x01,0x00,0x00,
    +0xc2,0x00,0x05,0x00,0x18,0x01,0x00,0x00,0xae,0x01,0x00,0x00,
    +0xab,0x01,0x00,0x00,0x8b,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0xaf,0x01,0x00,0x00,0xae,0x01,0x00,0x00,
    +0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0xb0,0x01,0x00,0x00,
    +0xaf,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x15,0x00,0x00,0x00,
    +0xb1,0x01,0x00,0x00,0xb0,0x01,0x00,0x00,0x58,0x01,0x00,0x00,
    +0x6f,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0xb2,0x01,0x00,0x00,
    +0xb1,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xb5,0x01,0x00,0x00,0x12,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x3c,0x01,0x00,0x00,0xb6,0x01,0x00,0x00,
    +0x2e,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0xb5,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x18,0x01,0x00,0x00,0xb7,0x01,0x00,0x00,0xb6,0x01,0x00,0x00,
    +0xc7,0x00,0x05,0x00,0x18,0x01,0x00,0x00,0xb9,0x01,0x00,0x00,
    +0xb7,0x01,0x00,0x00,0x20,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0xba,0x01,0x00,0x00,0xb9,0x01,0x00,0x00,
    +0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0xbb,0x01,0x00,0x00,
    +0xba,0x01,0x00,0x00,0xab,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0xbc,0x01,0x00,0x00,0xbb,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    +0xa9,0x00,0x06,0x00,0x15,0x00,0x00,0x00,0xbd,0x01,0x00,0x00,
    +0xbc,0x01,0x00,0x00,0x9a,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    +0x6f,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0xbe,0x01,0x00,0x00,
    +0xbd,0x01,0x00,0x00,0x81,0x00,0x05,0x00,0xc3,0x00,0x00,0x00,
    +0xbf,0x01,0x00,0x00,0xb2,0x01,0x00,0x00,0xbe,0x01,0x00,0x00,
    +0x0c,0x00,0x08,0x00,0xc3,0x00,0x00,0x00,0xc2,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x78,0x01,0x00,0x00,
    +0xbf,0x01,0x00,0x00,0xb1,0x03,0x00,0x00,0x73,0x00,0x04,0x00,
    +0x24,0x01,0x00,0x00,0xc3,0x01,0x00,0x00,0xc2,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xa2,0x01,0x00,0x00,0xc4,0x01,0x00,0x00,
    +0x83,0x01,0x00,0x00,0xa5,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0xc4,0x01,0x00,0x00,0xc3,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xdf,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xdf,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xcb,0x01,0x00,0x00,
    +0x60,0x03,0x00,0x00,0xc9,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xdc,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xde,0x00,0x00,0x00,
     0xf9,0x00,0x02,0x00,0xcd,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xcf,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x15,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x18,0x02,0x00,0x00,0x64,0x03,0x00,0x00,
    -0x16,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x1b,0x02,0x00,0x00,0x68,0x03,0x00,0x00,0x19,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x1d,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x1d,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x6a,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0xcf,0x01,0x00,0x00,
    -0xc7,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0x23,0x02,0x00,0x00,0x6a,0x03,0x00,0x00,
    -0x6d,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x1f,0x02,0x00,0x00,
    -0x20,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x23,0x02,0x00,0x00,0x1e,0x02,0x00,0x00,0x1f,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x1e,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x25,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x25,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x6e,0x03,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0x1e,0x02,0x00,0x00,0x51,0x02,0x00,0x00,
    -0x28,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0x2b,0x02,0x00,0x00,0x6e,0x03,0x00,0x00,0x61,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x27,0x02,0x00,0x00,0x28,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x2b,0x02,0x00,0x00,
    -0x26,0x02,0x00,0x00,0x27,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x26,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x2d,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x2d,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x80,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0x26,0x02,0x00,0x00,0x4f,0x02,0x00,0x00,0x2e,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x33,0x02,0x00,0x00,
    -0x80,0x03,0x00,0x00,0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x2f,0x02,0x00,0x00,0x2e,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x33,0x02,0x00,0x00,0x2e,0x02,0x00,0x00,
    -0x2f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x2e,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x39,0x02,0x00,0x00,
    -0x6e,0x03,0x00,0x00,0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x3b,0x02,0x00,0x00,0x39,0x02,0x00,0x00,
    -0x80,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x3d,0x02,0x00,0x00,0x56,0x00,0x00,0x00,0x54,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3f,0x02,0x00,0x00,
    -0x6e,0x03,0x00,0x00,0x62,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x40,0x02,0x00,0x00,0x3d,0x02,0x00,0x00,
    -0x3f,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x42,0x02,0x00,0x00,0x65,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x43,0x02,0x00,0x00,
    -0x40,0x02,0x00,0x00,0x42,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x45,0x02,0x00,0x00,0x43,0x02,0x00,0x00,
    -0x80,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x47,0x02,0x00,0x00,0x45,0x02,0x00,0x00,0x46,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x49,0x02,0x00,0x00,
    -0x47,0x02,0x00,0x00,0x6a,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xa2,0x01,0x00,0x00,0x4a,0x02,0x00,0x00,0x83,0x01,0x00,0x00,
    -0x49,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x24,0x01,0x00,0x00,
    -0x4b,0x02,0x00,0x00,0x4a,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x4c,0x02,0x00,0x00,0x4d,0x02,0x00,0x00,0x37,0x02,0x00,0x00,
    -0x3b,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0x4d,0x02,0x00,0x00,
    -0x4b,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x4f,0x02,0x00,0x00,0x80,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x2d,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x2f,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x28,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x28,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x51,0x02,0x00,0x00,0x6e,0x03,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x25,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x27,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x53,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x53,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x6f,0x03,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0x27,0x02,0x00,0x00,0x7f,0x02,0x00,0x00,
    -0x56,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0x59,0x02,0x00,0x00,0x6f,0x03,0x00,0x00,0xbe,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x55,0x02,0x00,0x00,0x56,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x59,0x02,0x00,0x00,
    -0x54,0x02,0x00,0x00,0x55,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x54,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x5b,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x5b,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x7d,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0x54,0x02,0x00,0x00,0x7d,0x02,0x00,0x00,0x5c,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x61,0x02,0x00,0x00,
    -0x7d,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x5d,0x02,0x00,0x00,0x5c,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x61,0x02,0x00,0x00,0x5c,0x02,0x00,0x00,
    -0x5d,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x5c,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x67,0x02,0x00,0x00,
    -0x6f,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x69,0x02,0x00,0x00,0x67,0x02,0x00,0x00,
    -0x7d,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x6b,0x02,0x00,0x00,0x5a,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6e,0x02,0x00,0x00,
    -0x6f,0x03,0x00,0x00,0x6d,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x6f,0x02,0x00,0x00,0x6b,0x02,0x00,0x00,
    -0x6e,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x71,0x02,0x00,0x00,0x69,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x72,0x02,0x00,0x00,
    -0x6f,0x02,0x00,0x00,0x71,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x74,0x02,0x00,0x00,0x72,0x02,0x00,0x00,
    -0x7d,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x76,0x02,0x00,0x00,0x74,0x02,0x00,0x00,0x75,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x78,0x02,0x00,0x00,
    -0x76,0x02,0x00,0x00,0x6a,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xa2,0x01,0x00,0x00,0x79,0x02,0x00,0x00,0xeb,0x01,0x00,0x00,
    -0x78,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x24,0x01,0x00,0x00,
    -0x7a,0x02,0x00,0x00,0x79,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x4c,0x02,0x00,0x00,0x7b,0x02,0x00,0x00,0x65,0x02,0x00,0x00,
    -0x69,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0x7b,0x02,0x00,0x00,
    -0x7a,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x7d,0x02,0x00,0x00,0x7d,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x5b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x5d,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x56,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x56,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x7f,0x02,0x00,0x00,0x6f,0x03,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x53,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x55,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x81,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x81,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x70,0x03,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0x55,0x02,0x00,0x00,0xc5,0x02,0x00,0x00,
    -0x84,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0x87,0x02,0x00,0x00,0x70,0x03,0x00,0x00,0xbe,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x83,0x02,0x00,0x00,0x84,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x87,0x02,0x00,0x00,
    -0x82,0x02,0x00,0x00,0x83,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x82,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x89,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x89,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x74,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0x82,0x02,0x00,0x00,0xc3,0x02,0x00,0x00,0x8c,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x8f,0x02,0x00,0x00,
    -0x74,0x03,0x00,0x00,0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x8b,0x02,0x00,0x00,0x8c,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x8f,0x02,0x00,0x00,0x8a,0x02,0x00,0x00,
    -0x8b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x8a,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x91,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x91,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x76,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0x8a,0x02,0x00,0x00,
    -0xc1,0x02,0x00,0x00,0x94,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0x97,0x02,0x00,0x00,0x76,0x03,0x00,0x00,
    -0xbb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x93,0x02,0x00,0x00,
    -0x94,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x97,0x02,0x00,0x00,0x92,0x02,0x00,0x00,0x93,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x92,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x99,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x99,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x78,0x03,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0x92,0x02,0x00,0x00,0xbf,0x02,0x00,0x00,
    -0x9a,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0x9f,0x02,0x00,0x00,0x78,0x03,0x00,0x00,0x63,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x9b,0x02,0x00,0x00,0x9a,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x9f,0x02,0x00,0x00,
    -0x9a,0x02,0x00,0x00,0x9b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x9a,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xa1,0x02,0x00,0x00,0x70,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa3,0x02,0x00,0x00,
    -0xa1,0x02,0x00,0x00,0x76,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xa5,0x02,0x00,0x00,0xa3,0x02,0x00,0x00,
    -0xa4,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xa7,0x02,0x00,0x00,0x74,0x03,0x00,0x00,0x63,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa8,0x02,0x00,0x00,
    -0xa5,0x02,0x00,0x00,0xa7,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xaa,0x02,0x00,0x00,0xa8,0x02,0x00,0x00,
    -0x78,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xae,0x02,0x00,0x00,0xa7,0x02,0x00,0x00,0x78,0x03,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x4c,0x02,0x00,0x00,0xaf,0x02,0x00,0x00,
    -0x37,0x02,0x00,0x00,0xae,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x24,0x01,0x00,0x00,0xb0,0x02,0x00,0x00,0xaf,0x02,0x00,0x00,
    -0x73,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0xb1,0x02,0x00,0x00,
    -0xb0,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x4c,0x02,0x00,0x00,
    -0xb6,0x02,0x00,0x00,0x65,0x02,0x00,0x00,0xa3,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x24,0x01,0x00,0x00,0xb7,0x02,0x00,0x00,
    -0xb6,0x02,0x00,0x00,0x73,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    -0xb8,0x02,0x00,0x00,0xb7,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xcc,0x00,0x00,0x00,0xba,0x02,0x00,0x00,0xc9,0x00,0x00,0x00,
    -0xaa,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    -0xbb,0x02,0x00,0x00,0xba,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,
    -0xc3,0x00,0x00,0x00,0xbc,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x32,0x00,0x00,0x00,0xb1,0x02,0x00,0x00,0xb8,0x02,0x00,0x00,
    -0xbb,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0xba,0x02,0x00,0x00,
    -0xbc,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xbf,0x02,0x00,0x00,0x78,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x99,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x9b,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x94,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x94,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xc1,0x02,0x00,0x00,0x76,0x03,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x91,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x93,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x8c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x8c,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc3,0x02,0x00,0x00,
    -0x74,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x89,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x8b,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x84,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x84,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xc5,0x02,0x00,0x00,0x70,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x81,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x83,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x20,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x20,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xc7,0x02,0x00,0x00,0x6a,0x03,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x1d,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x1f,0x02,0x00,0x00,0xe0,0x00,0x04,0x00,
    +0xcd,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x61,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0xde,0x00,0x00,0x00,
    +0x14,0x02,0x00,0x00,0xd0,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0xd3,0x01,0x00,0x00,0x61,0x03,0x00,0x00,
    +0xa6,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xcf,0x01,0x00,0x00,
    +0xd0,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xd3,0x01,0x00,0x00,0xce,0x01,0x00,0x00,0xcf,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xce,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xd7,0x01,0x00,0x00,0xa7,0x00,0x00,0x00,
    +0x7e,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xd9,0x01,0x00,0x00,0xd7,0x01,0x00,0x00,0x61,0x03,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xda,0x01,0x00,0x00,
    +0x14,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0xdb,0x01,0x00,0x00,0xda,0x01,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xdc,0x01,0x00,0x00,
    +0xd9,0x01,0x00,0x00,0xdb,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,
    +0xde,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xdc,0x01,0x00,0x00,0xdd,0x01,0x00,0x00,0xde,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xdd,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xe1,0x01,0x00,0x00,0x50,0x03,0x00,0x00,
    +0x79,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0xe3,0x01,0x00,0x00,0xe1,0x01,0x00,0x00,0x8e,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xde,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xde,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0xc1,0x00,0x00,0x00,
    +0xe4,0x01,0x00,0x00,0xdc,0x01,0x00,0x00,0xce,0x01,0x00,0x00,
    +0xe3,0x01,0x00,0x00,0xdd,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,
    +0xe6,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xe4,0x01,0x00,0x00,0xe5,0x01,0x00,0x00,0x06,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xe5,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xee,0x01,0x00,0x00,0x7e,0x00,0x00,0x00,
    +0x61,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xf0,0x01,0x00,0x00,0xee,0x01,0x00,0x00,0xef,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf2,0x01,0x00,0x00,
    +0xf0,0x01,0x00,0x00,0x79,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xfd,0x01,0x00,0x00,0xee,0x01,0x00,0x00,
    +0xaa,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xfe,0x01,0x00,0x00,0x68,0x03,0x00,0x00,0xfd,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x00,0x02,0x00,0x00,
    +0xfe,0x01,0x00,0x00,0x79,0x00,0x00,0x00,0x41,0x00,0x06,0x00,
    +0x01,0x02,0x00,0x00,0x02,0x02,0x00,0x00,0xf6,0x01,0x00,0x00,
    +0x35,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xc3,0x00,0x00,0x00,0x03,0x02,0x00,0x00,0x02,0x02,0x00,0x00,
    +0x73,0x00,0x04,0x00,0x24,0x01,0x00,0x00,0x04,0x02,0x00,0x00,
    +0x03,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xa2,0x01,0x00,0x00,
    +0x05,0x02,0x00,0x00,0xeb,0x01,0x00,0x00,0xf2,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x05,0x02,0x00,0x00,0x04,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xe6,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x06,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x09,0x02,0x00,0x00,0x7e,0x00,0x00,0x00,0x61,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0b,0x02,0x00,0x00,
    +0x09,0x02,0x00,0x00,0x0a,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x0d,0x02,0x00,0x00,0x0b,0x02,0x00,0x00,
    +0x79,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0xa2,0x01,0x00,0x00,
    +0x0f,0x02,0x00,0x00,0xeb,0x01,0x00,0x00,0x0d,0x02,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x0f,0x02,0x00,0x00,0x0e,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xe6,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xe6,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xd0,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xd0,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x14,0x02,0x00,0x00,0x61,0x03,0x00,0x00,
    +0x12,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xcd,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xcf,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,
     0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x15,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xd6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xd6,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xc9,0x02,0x00,0x00,0x50,0x03,0x00,0x00,0x6d,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xd3,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xd5,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xce,0x02,0x00,0x00,0x56,0x00,0x00,0x00,0x54,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xcf,0x02,0x00,0x00,
    -0x96,0x00,0x00,0x00,0xce,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xd4,0x02,0x00,0x00,0x5a,0x00,0x00,0x00,
    -0xb8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xd5,0x02,0x00,0x00,0xa7,0x00,0x00,0x00,0xd4,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xd9,0x02,0x00,0x00,
    -0x14,0x00,0x00,0x00,0xd8,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0xda,0x02,0x00,0x00,0xd9,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdb,0x02,0x00,0x00,
    -0x0f,0x00,0x00,0x00,0xda,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xdf,0x02,0x00,0x00,0x48,0x00,0x00,0x00,
    -0xda,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,
    -0xe1,0x02,0x00,0x00,0xe0,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xe2,0x02,0x00,0x00,
    -0xe1,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xe3,0x02,0x00,0x00,0xdf,0x02,0x00,0x00,0xe2,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe4,0x02,0x00,0x00,
    -0xdb,0x02,0x00,0x00,0xe3,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xe6,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xe6,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x51,0x03,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0x4c,0x03,0x00,0x00,
    -0xe9,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0xec,0x02,0x00,0x00,0x51,0x03,0x00,0x00,0xbe,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xe8,0x02,0x00,0x00,0xe9,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xec,0x02,0x00,0x00,
    -0xe7,0x02,0x00,0x00,0xe8,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xe7,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xee,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xee,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x52,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0xe7,0x02,0x00,0x00,0x4a,0x03,0x00,0x00,0xf1,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xf4,0x02,0x00,0x00,
    -0x52,0x03,0x00,0x00,0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xf0,0x02,0x00,0x00,0xf1,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xf4,0x02,0x00,0x00,0xef,0x02,0x00,0x00,
    -0xf0,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xef,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf8,0x02,0x00,0x00,
    -0x52,0x03,0x00,0x00,0x62,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xf9,0x02,0x00,0x00,0xcf,0x02,0x00,0x00,
    -0xf8,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xfb,0x02,0x00,0x00,0x65,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfc,0x02,0x00,0x00,
    -0xf9,0x02,0x00,0x00,0xfb,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x51,0x03,0x00,0x00,
    -0x6d,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x01,0x03,0x00,0x00,0xd5,0x02,0x00,0x00,0x00,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x03,0x03,0x00,0x00,
    -0x69,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x04,0x03,0x00,0x00,0x01,0x03,0x00,0x00,
    -0x03,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,0x06,0x03,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x06,0x03,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x54,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0xef,0x02,0x00,0x00,0x48,0x03,0x00,0x00,0x09,0x03,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x0c,0x03,0x00,0x00,
    -0x54,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x08,0x03,0x00,0x00,0x09,0x03,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x0c,0x03,0x00,0x00,0x07,0x03,0x00,0x00,
    -0x08,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x07,0x03,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x18,0x02,0x00,0x00,
    +0x64,0x03,0x00,0x00,0x16,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x1b,0x02,0x00,0x00,0x68,0x03,0x00,0x00,
    +0x19,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x1d,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x1d,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x6a,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0xcf,0x01,0x00,0x00,0xc7,0x02,0x00,0x00,0x20,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x23,0x02,0x00,0x00,
    +0x6a,0x03,0x00,0x00,0x6d,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x1f,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x23,0x02,0x00,0x00,0x1e,0x02,0x00,0x00,
    +0x1f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x1e,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x25,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x25,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x6e,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0x1e,0x02,0x00,0x00,
    +0x51,0x02,0x00,0x00,0x28,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0x2b,0x02,0x00,0x00,0x6e,0x03,0x00,0x00,
    +0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x27,0x02,0x00,0x00,
    +0x28,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x2b,0x02,0x00,0x00,0x26,0x02,0x00,0x00,0x27,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x26,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x2d,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x2d,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x80,0x03,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0x26,0x02,0x00,0x00,0x4f,0x02,0x00,0x00,
    +0x2e,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0x33,0x02,0x00,0x00,0x80,0x03,0x00,0x00,0x63,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x2f,0x02,0x00,0x00,0x2e,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x33,0x02,0x00,0x00,
    +0x2e,0x02,0x00,0x00,0x2f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x2e,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x39,0x02,0x00,0x00,0x6e,0x03,0x00,0x00,0x63,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3b,0x02,0x00,0x00,
    +0x39,0x02,0x00,0x00,0x80,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x3d,0x02,0x00,0x00,0x56,0x00,0x00,0x00,
    +0x54,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x3f,0x02,0x00,0x00,0x6e,0x03,0x00,0x00,0x62,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x40,0x02,0x00,0x00,
    +0x3d,0x02,0x00,0x00,0x3f,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x42,0x02,0x00,0x00,0x65,0x00,0x00,0x00,
    +0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x43,0x02,0x00,0x00,0x40,0x02,0x00,0x00,0x42,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x45,0x02,0x00,0x00,
    +0x43,0x02,0x00,0x00,0x80,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x47,0x02,0x00,0x00,0x45,0x02,0x00,0x00,
    +0x46,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x49,0x02,0x00,0x00,0x47,0x02,0x00,0x00,0x6a,0x03,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xa2,0x01,0x00,0x00,0x4a,0x02,0x00,0x00,
    +0x83,0x01,0x00,0x00,0x49,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x24,0x01,0x00,0x00,0x4b,0x02,0x00,0x00,0x4a,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x4c,0x02,0x00,0x00,0x4d,0x02,0x00,0x00,
    +0x37,0x02,0x00,0x00,0x3b,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x4d,0x02,0x00,0x00,0x4b,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x4f,0x02,0x00,0x00,0x80,0x03,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x2d,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x2f,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x28,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x28,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x51,0x02,0x00,0x00,
    +0x6e,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x25,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x27,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x53,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x53,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x6f,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0x27,0x02,0x00,0x00,
    +0x7f,0x02,0x00,0x00,0x56,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0x59,0x02,0x00,0x00,0x6f,0x03,0x00,0x00,
    +0xbe,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x55,0x02,0x00,0x00,
    +0x56,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x59,0x02,0x00,0x00,0x54,0x02,0x00,0x00,0x55,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x54,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x5b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x5b,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x7d,0x03,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0x54,0x02,0x00,0x00,0x7d,0x02,0x00,0x00,
    +0x5c,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0x61,0x02,0x00,0x00,0x7d,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x5d,0x02,0x00,0x00,0x5c,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x61,0x02,0x00,0x00,
    +0x5c,0x02,0x00,0x00,0x5d,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x5c,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x67,0x02,0x00,0x00,0x6f,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x69,0x02,0x00,0x00,
    +0x67,0x02,0x00,0x00,0x7d,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x6b,0x02,0x00,0x00,0x5a,0x00,0x00,0x00,
    +0xb8,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x6e,0x02,0x00,0x00,0x6f,0x03,0x00,0x00,0x6d,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6f,0x02,0x00,0x00,
    +0x6b,0x02,0x00,0x00,0x6e,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x71,0x02,0x00,0x00,0x69,0x00,0x00,0x00,
    +0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x72,0x02,0x00,0x00,0x6f,0x02,0x00,0x00,0x71,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x74,0x02,0x00,0x00,
    +0x72,0x02,0x00,0x00,0x7d,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x76,0x02,0x00,0x00,0x74,0x02,0x00,0x00,
    +0x75,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x78,0x02,0x00,0x00,0x76,0x02,0x00,0x00,0x6a,0x03,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xa2,0x01,0x00,0x00,0x79,0x02,0x00,0x00,
    +0xeb,0x01,0x00,0x00,0x78,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x24,0x01,0x00,0x00,0x7a,0x02,0x00,0x00,0x79,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x4c,0x02,0x00,0x00,0x7b,0x02,0x00,0x00,
    +0x65,0x02,0x00,0x00,0x69,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x7b,0x02,0x00,0x00,0x7a,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x7d,0x02,0x00,0x00,0x7d,0x03,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x5b,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x5d,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x56,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x56,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7f,0x02,0x00,0x00,
    +0x6f,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x53,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x55,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x81,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x81,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x70,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0x55,0x02,0x00,0x00,
    +0xc5,0x02,0x00,0x00,0x84,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0x87,0x02,0x00,0x00,0x70,0x03,0x00,0x00,
    +0xbe,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x83,0x02,0x00,0x00,
    +0x84,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x87,0x02,0x00,0x00,0x82,0x02,0x00,0x00,0x83,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x82,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x89,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x89,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x74,0x03,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0x82,0x02,0x00,0x00,0xc3,0x02,0x00,0x00,
    +0x8c,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0x8f,0x02,0x00,0x00,0x74,0x03,0x00,0x00,0x61,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x8b,0x02,0x00,0x00,0x8c,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x8f,0x02,0x00,0x00,
    +0x8a,0x02,0x00,0x00,0x8b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x8a,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x91,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x91,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x76,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x8a,0x02,0x00,0x00,0xc1,0x02,0x00,0x00,0x94,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x97,0x02,0x00,0x00,
    +0x76,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x93,0x02,0x00,0x00,0x94,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x97,0x02,0x00,0x00,0x92,0x02,0x00,0x00,
    +0x93,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x92,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x99,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x99,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x78,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0x92,0x02,0x00,0x00,
    +0xbf,0x02,0x00,0x00,0x9a,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0x9f,0x02,0x00,0x00,0x78,0x03,0x00,0x00,
    +0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x9b,0x02,0x00,0x00,
    +0x9a,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x9f,0x02,0x00,0x00,0x9a,0x02,0x00,0x00,0x9b,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x9a,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xa1,0x02,0x00,0x00,0x70,0x03,0x00,0x00,
    +0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xa3,0x02,0x00,0x00,0xa1,0x02,0x00,0x00,0x76,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa5,0x02,0x00,0x00,
    +0xa3,0x02,0x00,0x00,0xa4,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xa7,0x02,0x00,0x00,0x74,0x03,0x00,0x00,
    +0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xa8,0x02,0x00,0x00,0xa5,0x02,0x00,0x00,0xa7,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xaa,0x02,0x00,0x00,
    +0xa8,0x02,0x00,0x00,0x78,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xae,0x02,0x00,0x00,0xa7,0x02,0x00,0x00,
    +0x78,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x4c,0x02,0x00,0x00,
    +0xaf,0x02,0x00,0x00,0x37,0x02,0x00,0x00,0xae,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x24,0x01,0x00,0x00,0xb0,0x02,0x00,0x00,
    +0xaf,0x02,0x00,0x00,0x73,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    +0xb1,0x02,0x00,0x00,0xb0,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x4c,0x02,0x00,0x00,0xb6,0x02,0x00,0x00,0x65,0x02,0x00,0x00,
    +0xa3,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x24,0x01,0x00,0x00,
    +0xb7,0x02,0x00,0x00,0xb6,0x02,0x00,0x00,0x73,0x00,0x04,0x00,
    +0xc3,0x00,0x00,0x00,0xb8,0x02,0x00,0x00,0xb7,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,0xba,0x02,0x00,0x00,
    +0xc9,0x00,0x00,0x00,0xaa,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xc3,0x00,0x00,0x00,0xbb,0x02,0x00,0x00,0xba,0x02,0x00,0x00,
    +0x0c,0x00,0x08,0x00,0xc3,0x00,0x00,0x00,0xbc,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xb1,0x02,0x00,0x00,
    +0xb8,0x02,0x00,0x00,0xbb,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0xba,0x02,0x00,0x00,0xbc,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xbf,0x02,0x00,0x00,0x78,0x03,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x99,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x9b,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x94,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x94,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc1,0x02,0x00,0x00,
    +0x76,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x91,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x93,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x8c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x8c,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xc3,0x02,0x00,0x00,0x74,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x89,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x8b,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x84,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x84,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xc5,0x02,0x00,0x00,0x70,0x03,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x81,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x83,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x20,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x20,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc7,0x02,0x00,0x00,
    +0x6a,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x1d,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x1f,0x02,0x00,0x00,
    +0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x15,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xd6,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xd6,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xc9,0x02,0x00,0x00,0x50,0x03,0x00,0x00,
    +0x6d,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xd3,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xd5,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xce,0x02,0x00,0x00,0x56,0x00,0x00,0x00,
    +0x54,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xcf,0x02,0x00,0x00,0x96,0x00,0x00,0x00,0xce,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd4,0x02,0x00,0x00,
    +0x5a,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xd5,0x02,0x00,0x00,0xa7,0x00,0x00,0x00,
    +0xd4,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    +0xd9,0x02,0x00,0x00,0x14,0x00,0x00,0x00,0xd8,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xda,0x02,0x00,0x00,
    +0xd9,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xdb,0x02,0x00,0x00,0x0f,0x00,0x00,0x00,0xda,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdf,0x02,0x00,0x00,
    +0x48,0x00,0x00,0x00,0xda,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x0d,0x00,0x00,0x00,0xe1,0x02,0x00,0x00,0xe0,0x02,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0xe2,0x02,0x00,0x00,0xe1,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xe3,0x02,0x00,0x00,0xdf,0x02,0x00,0x00,
    +0xe2,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xe4,0x02,0x00,0x00,0xdb,0x02,0x00,0x00,0xe3,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xe6,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xe6,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x51,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,
    +0x4c,0x03,0x00,0x00,0xe9,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0xec,0x02,0x00,0x00,0x51,0x03,0x00,0x00,
    +0xbe,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xe8,0x02,0x00,0x00,
    +0xe9,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xec,0x02,0x00,0x00,0xe7,0x02,0x00,0x00,0xe8,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xe7,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xee,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xee,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x52,0x03,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0xe7,0x02,0x00,0x00,0x4a,0x03,0x00,0x00,
    +0xf1,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0xf4,0x02,0x00,0x00,0x52,0x03,0x00,0x00,0x61,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xf0,0x02,0x00,0x00,0xf1,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xf4,0x02,0x00,0x00,
    +0xef,0x02,0x00,0x00,0xf0,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xef,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xf8,0x02,0x00,0x00,0x52,0x03,0x00,0x00,0x62,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf9,0x02,0x00,0x00,
    +0xcf,0x02,0x00,0x00,0xf8,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xfb,0x02,0x00,0x00,0x65,0x00,0x00,0x00,
    +0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xfc,0x02,0x00,0x00,0xf9,0x02,0x00,0x00,0xfb,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x00,0x03,0x00,0x00,
    +0x51,0x03,0x00,0x00,0x6d,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x01,0x03,0x00,0x00,0xd5,0x02,0x00,0x00,
    +0x00,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x03,0x03,0x00,0x00,0x69,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x04,0x03,0x00,0x00,
    +0x01,0x03,0x00,0x00,0x03,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x06,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x06,0x03,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x54,0x03,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0xef,0x02,0x00,0x00,0x48,0x03,0x00,0x00,
    +0x09,0x03,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0x0c,0x03,0x00,0x00,0x54,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x08,0x03,0x00,0x00,0x09,0x03,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x0c,0x03,0x00,0x00,
    +0x07,0x03,0x00,0x00,0x08,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x07,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,0x0e,0x03,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x0e,0x03,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x56,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x07,0x03,0x00,0x00,0x46,0x03,0x00,0x00,0x11,0x03,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x14,0x03,0x00,0x00,
    +0x56,0x03,0x00,0x00,0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x10,0x03,0x00,0x00,0x11,0x03,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x14,0x03,0x00,0x00,0x0f,0x03,0x00,0x00,
    +0x10,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x0f,0x03,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x17,0x03,0x00,0x00,
    +0xfc,0x02,0x00,0x00,0x56,0x03,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0x1a,0x03,0x00,0x00,0x17,0x03,0x00,0x00,
    +0x37,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0x1c,0x03,0x00,0x00,
    +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x1a,0x03,0x00,0x00,
    +0x1b,0x03,0x00,0x00,0x1c,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x1b,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x1f,0x03,0x00,0x00,0x04,0x03,0x00,0x00,0x54,0x03,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x20,0x03,0x00,0x00,
    +0x14,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x21,0x03,0x00,0x00,0x20,0x03,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x22,0x03,0x00,0x00,
    +0x1f,0x03,0x00,0x00,0x21,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x1c,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x1c,0x03,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0xc1,0x00,0x00,0x00,0x23,0x03,0x00,0x00,
    +0x1a,0x03,0x00,0x00,0x0f,0x03,0x00,0x00,0x22,0x03,0x00,0x00,
    +0x1b,0x03,0x00,0x00,0xf7,0x00,0x03,0x00,0x25,0x03,0x00,0x00,
    +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x23,0x03,0x00,0x00,
    +0x24,0x03,0x00,0x00,0x25,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x24,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x2d,0x03,0x00,0x00,0x04,0x03,0x00,0x00,0x54,0x03,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x2f,0x03,0x00,0x00,
    +0x14,0x00,0x00,0x00,0x2e,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x30,0x03,0x00,0x00,0x2f,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x31,0x03,0x00,0x00,
    +0x2d,0x03,0x00,0x00,0x30,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x32,0x03,0x00,0x00,0xe4,0x02,0x00,0x00,
    +0x31,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x34,0x03,0x00,0x00,0x32,0x03,0x00,0x00,0xfc,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x36,0x03,0x00,0x00,
    +0x34,0x03,0x00,0x00,0x56,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x38,0x03,0x00,0x00,0x51,0x03,0x00,0x00,
    +0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x3a,0x03,0x00,0x00,0x38,0x03,0x00,0x00,0x54,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3c,0x03,0x00,0x00,
    +0x3a,0x03,0x00,0x00,0x3b,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x3e,0x03,0x00,0x00,0x52,0x03,0x00,0x00,
    +0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x3f,0x03,0x00,0x00,0x3c,0x03,0x00,0x00,0x3e,0x03,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x41,0x03,0x00,0x00,
    +0x3f,0x03,0x00,0x00,0x56,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xcc,0x00,0x00,0x00,0x42,0x03,0x00,0x00,0xc9,0x00,0x00,0x00,
    +0x41,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    +0x43,0x03,0x00,0x00,0x42,0x03,0x00,0x00,0x41,0x00,0x06,0x00,
    +0x01,0x02,0x00,0x00,0x44,0x03,0x00,0x00,0x29,0x03,0x00,0x00,
    +0x35,0x00,0x00,0x00,0x36,0x03,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x44,0x03,0x00,0x00,0x43,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x25,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x25,0x03,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x11,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x11,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x46,0x03,0x00,0x00,0x56,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
     0xf9,0x00,0x02,0x00,0x0e,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x0e,0x03,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x56,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0x07,0x03,0x00,0x00,
    -0x46,0x03,0x00,0x00,0x11,0x03,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0x14,0x03,0x00,0x00,0x56,0x03,0x00,0x00,
    -0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x10,0x03,0x00,0x00,
    -0x11,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x14,0x03,0x00,0x00,0x0f,0x03,0x00,0x00,0x10,0x03,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x0f,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x17,0x03,0x00,0x00,0xfc,0x02,0x00,0x00,
    -0x56,0x03,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0x1a,0x03,0x00,0x00,0x17,0x03,0x00,0x00,0x37,0x00,0x00,0x00,
    -0xf7,0x00,0x03,0x00,0x1c,0x03,0x00,0x00,0x00,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x1a,0x03,0x00,0x00,0x1b,0x03,0x00,0x00,
    -0x1c,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x1b,0x03,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1f,0x03,0x00,0x00,
    -0x04,0x03,0x00,0x00,0x54,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x17,0x00,0x00,0x00,0x20,0x03,0x00,0x00,0x14,0x00,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x21,0x03,0x00,0x00,0x20,0x03,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0x22,0x03,0x00,0x00,0x1f,0x03,0x00,0x00,
    -0x21,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,0x1c,0x03,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x1c,0x03,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0xc1,0x00,0x00,0x00,0x23,0x03,0x00,0x00,0x1a,0x03,0x00,0x00,
    -0x0f,0x03,0x00,0x00,0x22,0x03,0x00,0x00,0x1b,0x03,0x00,0x00,
    -0xf7,0x00,0x03,0x00,0x25,0x03,0x00,0x00,0x00,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x23,0x03,0x00,0x00,0x24,0x03,0x00,0x00,
    -0x25,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x24,0x03,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2d,0x03,0x00,0x00,
    -0x04,0x03,0x00,0x00,0x54,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x17,0x00,0x00,0x00,0x2f,0x03,0x00,0x00,0x14,0x00,0x00,0x00,
    -0x2e,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x30,0x03,0x00,0x00,0x2f,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x31,0x03,0x00,0x00,0x2d,0x03,0x00,0x00,
    -0x30,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x32,0x03,0x00,0x00,0xe4,0x02,0x00,0x00,0x31,0x03,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x34,0x03,0x00,0x00,
    -0x32,0x03,0x00,0x00,0xfc,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x36,0x03,0x00,0x00,0x34,0x03,0x00,0x00,
    -0x56,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x38,0x03,0x00,0x00,0x51,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3a,0x03,0x00,0x00,
    -0x38,0x03,0x00,0x00,0x54,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x3c,0x03,0x00,0x00,0x3a,0x03,0x00,0x00,
    -0x3b,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x3e,0x03,0x00,0x00,0x52,0x03,0x00,0x00,0x63,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3f,0x03,0x00,0x00,
    -0x3c,0x03,0x00,0x00,0x3e,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x41,0x03,0x00,0x00,0x3f,0x03,0x00,0x00,
    -0x56,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,
    -0x42,0x03,0x00,0x00,0xc9,0x00,0x00,0x00,0x41,0x03,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x43,0x03,0x00,0x00,
    -0x42,0x03,0x00,0x00,0x41,0x00,0x06,0x00,0x01,0x02,0x00,0x00,
    -0x44,0x03,0x00,0x00,0x29,0x03,0x00,0x00,0x35,0x00,0x00,0x00,
    -0x36,0x03,0x00,0x00,0x3e,0x00,0x03,0x00,0x44,0x03,0x00,0x00,
    -0x43,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,0x25,0x03,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x25,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x11,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x11,0x03,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x46,0x03,0x00,0x00,
    -0x56,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x0e,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x10,0x03,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x09,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x09,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x48,0x03,0x00,0x00,0x54,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x06,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x08,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,0xf1,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xf1,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x4a,0x03,0x00,0x00,0x52,0x03,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xee,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xf0,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xe9,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xe9,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4c,0x03,0x00,0x00,
    -0x51,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xe6,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xe8,0x02,0x00,0x00,
    -0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
    +0x10,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,0x09,0x03,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x09,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x48,0x03,0x00,0x00,0x54,0x03,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x06,0x03,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x08,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xf1,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xf1,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4a,0x03,0x00,0x00,
    +0x52,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xee,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xf0,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xe9,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xe9,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x4c,0x03,0x00,0x00,0x51,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xe6,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xe8,0x02,0x00,0x00,0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
    +
     };
    -const uint64_t matmul_q5_k_f32_len = 12596;
    +const uint64_t matmul_q5_k_f32_len = 12576;
     
     unsigned char matmul_q5_k_f32_aligned_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
    @@ -107592,9 +111289,9 @@ unsigned char matmul_q5_k_f32_fp32_data[] = {
     0x63,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x6d,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x6d,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x73,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x6d,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
     0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    @@ -107689,7 +111386,7 @@ unsigned char matmul_q5_k_f32_fp32_data[] = {
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xc5,0x01,0x00,0x00,
     0x51,0x00,0x00,0x00,0xc4,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xc6,0x01,0x00,0x00,
    -0x84,0x00,0x00,0x00,0xc5,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x84,0x00,0x00,0x00,0xc5,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xc7,0x01,0x00,0x00,
     0x86,0x00,0x00,0x00,0xc6,0x01,0x00,0x00,0x6d,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xe5,0x01,0x00,0x00,
    @@ -107719,7 +111416,7 @@ unsigned char matmul_q5_k_f32_fp32_data[] = {
     0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x11,0x02,0x00,0x00,
     0x08,0x01,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x12,0x02,0x00,0x00,0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x15,0x02,0x00,0x00,0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
     0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x30,0x02,0x00,0x00,0x84,0x00,0x00,0x00,0x61,0x00,0x00,0x00,
    @@ -107846,7 +111543,7 @@ unsigned char matmul_q5_k_f32_fp32_data[] = {
     0x94,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,
     0x84,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x9e,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x9e,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
     0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,
     0x14,0x00,0x00,0x00,0xa1,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,
    @@ -107904,591 +111601,590 @@ unsigned char matmul_q5_k_f32_fp32_data[] = {
     0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xea,0x00,0x00,0x00,
     0xe7,0x00,0x00,0x00,0x99,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0xea,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xec,0x00,0x00,0x00,0x5d,0x03,0x00,0x00,0xeb,0x00,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xee,0x00,0x00,0x00,
     0xec,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,
    -0xf3,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xf6,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,
    -0xf4,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0xee,0x00,0x00,0x00,
    -0xfa,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xfe,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,
    -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x02,0x01,0x00,0x00,
    -0xfe,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x89,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,
    -0x01,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x07,0x01,0x00,0x00,0x05,0x01,0x00,0x00,0x06,0x01,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0a,0x01,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x02,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,0x0a,0x01,0x00,0x00,
    -0x07,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x0f,0x01,0x00,0x00,0x02,0x01,0x00,0x00,0x01,0x01,0x00,0x00,
    -0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x11,0x01,0x00,0x00,
    -0xfe,0x00,0x00,0x00,0x06,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x12,0x01,0x00,0x00,0x11,0x01,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x13,0x01,0x00,0x00,0x0f,0x01,0x00,0x00,0x12,0x01,0x00,0x00,
    -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,
    -0xfe,0x00,0x00,0x00,0x06,0x01,0x00,0x00,0xc4,0x00,0x05,0x00,
    -0x15,0x00,0x00,0x00,0x1d,0x01,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0x1c,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x1e,0x01,0x00,0x00,
    -0x1f,0x01,0x00,0x00,0x1d,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    -0x18,0x01,0x00,0x00,0x20,0x01,0x00,0x00,0x1f,0x01,0x00,0x00,
    -0x41,0x00,0x07,0x00,0x30,0x01,0x00,0x00,0x31,0x01,0x00,0x00,
    +0xf3,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xf7,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
    +0xee,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,0x89,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0xee,0x00,0x00,0x00,
    +0xfa,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x02,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,0x01,0x01,0x00,0x00,
    +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x05,0x01,0x00,0x00,
    +0xfe,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x07,0x01,0x00,0x00,0x05,0x01,0x00,0x00,
    +0x06,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x0a,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x02,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,
    +0x0a,0x01,0x00,0x00,0x07,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x0f,0x01,0x00,0x00,0x02,0x01,0x00,0x00,
    +0x01,0x01,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x11,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,0x06,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x12,0x01,0x00,0x00,
    +0x11,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x13,0x01,0x00,0x00,0x0f,0x01,0x00,0x00,
    +0x12,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x1c,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,0x06,0x01,0x00,0x00,
    +0xc4,0x00,0x05,0x00,0x15,0x00,0x00,0x00,0x1d,0x01,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,0x72,0x00,0x04,0x00,
    +0x1e,0x01,0x00,0x00,0x1f,0x01,0x00,0x00,0x1d,0x01,0x00,0x00,
    +0x7c,0x00,0x04,0x00,0x18,0x01,0x00,0x00,0x20,0x01,0x00,0x00,
    +0x1f,0x01,0x00,0x00,0x41,0x00,0x07,0x00,0x30,0x01,0x00,0x00,
    +0x31,0x01,0x00,0x00,0x2e,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    +0xfb,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x25,0x01,0x00,0x00,0x32,0x01,0x00,0x00,0x31,0x01,0x00,0x00,
    +0x73,0x00,0x04,0x00,0x21,0x01,0x00,0x00,0x33,0x01,0x00,0x00,
    +0x32,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0x36,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,0x35,0x01,0x00,0x00,
    +0xf7,0x00,0x03,0x00,0x38,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x36,0x01,0x00,0x00,0x37,0x01,0x00,0x00,
    +0x50,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x37,0x01,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x3c,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,
     0x2e,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
    -0x35,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x25,0x01,0x00,0x00,
    -0x32,0x01,0x00,0x00,0x31,0x01,0x00,0x00,0x73,0x00,0x04,0x00,
    -0x21,0x01,0x00,0x00,0x33,0x01,0x00,0x00,0x32,0x01,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x36,0x01,0x00,0x00,
    -0x0c,0x01,0x00,0x00,0x35,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,
    -0x38,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x36,0x01,0x00,0x00,0x37,0x01,0x00,0x00,0x50,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x37,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x3c,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,0x2e,0x01,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x18,0x01,0x00,0x00,0x3e,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x3f,0x01,0x00,0x00,
    +0x3e,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    +0x40,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
    +0x15,0x00,0x00,0x00,0x42,0x01,0x00,0x00,0x40,0x01,0x00,0x00,
    +0x41,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x1e,0x01,0x00,0x00,
    +0x43,0x01,0x00,0x00,0x42,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    +0x18,0x01,0x00,0x00,0x44,0x01,0x00,0x00,0x43,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x48,0x01,0x00,0x00,
    +0x0c,0x01,0x00,0x00,0x35,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x3c,0x01,0x00,0x00,0x49,0x01,0x00,0x00,0x2e,0x01,0x00,0x00,
     0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0x0c,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x18,0x01,0x00,0x00,
    -0x3e,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x3f,0x01,0x00,0x00,0x3e,0x01,0x00,0x00,
    -0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x40,0x01,0x00,0x00,
    -0x3f,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x15,0x00,0x00,0x00,
    -0x42,0x01,0x00,0x00,0x40,0x01,0x00,0x00,0x41,0x01,0x00,0x00,
    -0x72,0x00,0x04,0x00,0x1e,0x01,0x00,0x00,0x43,0x01,0x00,0x00,
    -0x42,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x18,0x01,0x00,0x00,
    -0x44,0x01,0x00,0x00,0x43,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x48,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,
    -0x35,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x3c,0x01,0x00,0x00,
    -0x49,0x01,0x00,0x00,0x2e,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    -0xfb,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x48,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x18,0x01,0x00,0x00,0x4a,0x01,0x00,0x00,
    -0x49,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x4b,0x01,0x00,0x00,0x4a,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    -0x15,0x00,0x00,0x00,0x4c,0x01,0x00,0x00,0x4b,0x01,0x00,0x00,
    -0xc7,0x00,0x05,0x00,0x15,0x00,0x00,0x00,0x4d,0x01,0x00,0x00,
    -0x4c,0x01,0x00,0x00,0x41,0x01,0x00,0x00,0x72,0x00,0x04,0x00,
    -0x1e,0x01,0x00,0x00,0x4e,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,
    -0x7c,0x00,0x04,0x00,0x18,0x01,0x00,0x00,0x4f,0x01,0x00,0x00,
    -0x4e,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x38,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x50,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x53,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,
    -0x35,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x3c,0x01,0x00,0x00,
    -0x54,0x01,0x00,0x00,0x2e,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    -0xfb,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x53,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x18,0x01,0x00,0x00,0x55,0x01,0x00,0x00,
    -0x54,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x56,0x01,0x00,0x00,0x55,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    -0x15,0x00,0x00,0x00,0x57,0x01,0x00,0x00,0x56,0x01,0x00,0x00,
    -0xc7,0x00,0x05,0x00,0x15,0x00,0x00,0x00,0x59,0x01,0x00,0x00,
    -0x57,0x01,0x00,0x00,0x58,0x01,0x00,0x00,0x82,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x5c,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,
    -0x35,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x3c,0x01,0x00,0x00,
    -0x5d,0x01,0x00,0x00,0x2e,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    -0xfb,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x5c,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x18,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,
    -0x5d,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x18,0x01,0x00,0x00,
    -0x5f,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,0x91,0x00,0x00,0x00,
    -0xc4,0x00,0x05,0x00,0x18,0x01,0x00,0x00,0x60,0x01,0x00,0x00,
    -0x5f,0x01,0x00,0x00,0xa8,0x00,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x61,0x01,0x00,0x00,0x60,0x01,0x00,0x00,
    -0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x62,0x01,0x00,0x00,
    -0x61,0x01,0x00,0x00,0xc5,0x00,0x05,0x00,0x15,0x00,0x00,0x00,
    -0x63,0x01,0x00,0x00,0x59,0x01,0x00,0x00,0x62,0x01,0x00,0x00,
    -0x72,0x00,0x04,0x00,0x1e,0x01,0x00,0x00,0x64,0x01,0x00,0x00,
    -0x63,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x18,0x01,0x00,0x00,
    -0x65,0x01,0x00,0x00,0x64,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x18,0x01,0x00,0x00,0x6a,0x01,0x00,0x00,0x54,0x01,0x00,0x00,
    -0xc2,0x00,0x05,0x00,0x18,0x01,0x00,0x00,0x6b,0x01,0x00,0x00,
    -0x6a,0x01,0x00,0x00,0xa8,0x00,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x3c,0x01,0x00,0x00,0x6e,0x01,0x00,0x00,0x2e,0x01,0x00,0x00,
    +0x48,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x18,0x01,0x00,0x00,
    +0x4a,0x01,0x00,0x00,0x49,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x4b,0x01,0x00,0x00,0x4a,0x01,0x00,0x00,
    +0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x4c,0x01,0x00,0x00,
    +0x4b,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x15,0x00,0x00,0x00,
    +0x4d,0x01,0x00,0x00,0x4c,0x01,0x00,0x00,0x41,0x01,0x00,0x00,
    +0x72,0x00,0x04,0x00,0x1e,0x01,0x00,0x00,0x4e,0x01,0x00,0x00,
    +0x4d,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x18,0x01,0x00,0x00,
    +0x4f,0x01,0x00,0x00,0x4e,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x38,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x50,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x53,0x01,0x00,0x00,
    +0x0c,0x01,0x00,0x00,0x35,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x3c,0x01,0x00,0x00,0x54,0x01,0x00,0x00,0x2e,0x01,0x00,0x00,
     0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0x0c,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x18,0x01,0x00,0x00,
    -0x6f,0x01,0x00,0x00,0x6e,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,
    -0x18,0x01,0x00,0x00,0x70,0x01,0x00,0x00,0x6f,0x01,0x00,0x00,
    +0x53,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x18,0x01,0x00,0x00,
    +0x55,0x01,0x00,0x00,0x54,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x56,0x01,0x00,0x00,0x55,0x01,0x00,0x00,
    +0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x57,0x01,0x00,0x00,
    +0x56,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x15,0x00,0x00,0x00,
    +0x59,0x01,0x00,0x00,0x57,0x01,0x00,0x00,0x58,0x01,0x00,0x00,
    +0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5c,0x01,0x00,0x00,
    +0x0c,0x01,0x00,0x00,0x35,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x3c,0x01,0x00,0x00,0x5d,0x01,0x00,0x00,0x2e,0x01,0x00,0x00,
    +0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0x5c,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x18,0x01,0x00,0x00,
    +0x5e,0x01,0x00,0x00,0x5d,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,
    +0x18,0x01,0x00,0x00,0x5f,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,
     0x91,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x18,0x01,0x00,0x00,
    -0x71,0x01,0x00,0x00,0x70,0x01,0x00,0x00,0xa8,0x00,0x00,0x00,
    -0xc5,0x00,0x05,0x00,0x18,0x01,0x00,0x00,0x72,0x01,0x00,0x00,
    -0x6b,0x01,0x00,0x00,0x71,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x38,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x38,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x18,0x01,0x00,0x00,0x80,0x03,0x00,0x00,
    -0x4f,0x01,0x00,0x00,0x37,0x01,0x00,0x00,0x72,0x01,0x00,0x00,
    -0x50,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x18,0x01,0x00,0x00,
    -0x7f,0x03,0x00,0x00,0x44,0x01,0x00,0x00,0x37,0x01,0x00,0x00,
    -0x65,0x01,0x00,0x00,0x50,0x01,0x00,0x00,0x51,0x00,0x05,0x00,
    -0xc3,0x00,0x00,0x00,0x75,0x01,0x00,0x00,0x33,0x01,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x70,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    -0x77,0x01,0x00,0x00,0x7f,0x03,0x00,0x00,0x85,0x00,0x05,0x00,
    -0xc3,0x00,0x00,0x00,0x78,0x01,0x00,0x00,0x75,0x01,0x00,0x00,
    -0x77,0x01,0x00,0x00,0x51,0x00,0x05,0x00,0xc3,0x00,0x00,0x00,
    -0x7b,0x01,0x00,0x00,0x33,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x70,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x7d,0x01,0x00,0x00,
    -0x80,0x03,0x00,0x00,0x85,0x00,0x05,0x00,0xc3,0x00,0x00,0x00,
    -0x7e,0x01,0x00,0x00,0x7b,0x01,0x00,0x00,0x7d,0x01,0x00,0x00,
    -0x41,0x00,0x08,0x00,0x3c,0x01,0x00,0x00,0x88,0x01,0x00,0x00,
    -0x2e,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
    -0x97,0x00,0x00,0x00,0x13,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x18,0x01,0x00,0x00,0x89,0x01,0x00,0x00,0x88,0x01,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8b,0x01,0x00,0x00,
    -0x07,0x01,0x00,0x00,0x35,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,
    -0x18,0x01,0x00,0x00,0x8c,0x01,0x00,0x00,0x89,0x01,0x00,0x00,
    -0x8b,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x8d,0x01,0x00,0x00,0x8c,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    -0x15,0x00,0x00,0x00,0x8e,0x01,0x00,0x00,0x8d,0x01,0x00,0x00,
    -0xc7,0x00,0x05,0x00,0x15,0x00,0x00,0x00,0x8f,0x01,0x00,0x00,
    -0x8e,0x01,0x00,0x00,0x58,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,
    -0xc3,0x00,0x00,0x00,0x90,0x01,0x00,0x00,0x8f,0x01,0x00,0x00,
    -0x41,0x00,0x08,0x00,0x3c,0x01,0x00,0x00,0x93,0x01,0x00,0x00,
    -0x2e,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x12,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x18,0x01,0x00,0x00,0x94,0x01,0x00,0x00,0x93,0x01,0x00,0x00,
    -0xc7,0x00,0x05,0x00,0x18,0x01,0x00,0x00,0x96,0x01,0x00,0x00,
    -0x94,0x01,0x00,0x00,0x20,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x97,0x01,0x00,0x00,0x96,0x01,0x00,0x00,
    -0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x98,0x01,0x00,0x00,
    -0x97,0x01,0x00,0x00,0xab,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0x99,0x01,0x00,0x00,0x98,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    -0xa9,0x00,0x06,0x00,0x15,0x00,0x00,0x00,0x9b,0x01,0x00,0x00,
    -0x99,0x01,0x00,0x00,0x9a,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    -0x6f,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x9c,0x01,0x00,0x00,
    -0x9b,0x01,0x00,0x00,0x81,0x00,0x05,0x00,0xc3,0x00,0x00,0x00,
    -0x9d,0x01,0x00,0x00,0x90,0x01,0x00,0x00,0x9c,0x01,0x00,0x00,
    -0x7f,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0xaa,0x03,0x00,0x00,
    -0x7e,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0xc3,0x00,0x00,0x00,
    -0xa0,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,
    -0x78,0x01,0x00,0x00,0x9d,0x01,0x00,0x00,0xaa,0x03,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xa1,0x01,0x00,0x00,0xa2,0x01,0x00,0x00,
    -0x83,0x01,0x00,0x00,0xf7,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0xa2,0x01,0x00,0x00,0xa0,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xa4,0x01,0x00,0x00,0xf7,0x00,0x00,0x00,
    -0x3a,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xa8,0x01,0x00,0x00,0x13,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,
    -0x41,0x00,0x08,0x00,0x3c,0x01,0x00,0x00,0xa9,0x01,0x00,0x00,
    -0x2e,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
    -0x97,0x00,0x00,0x00,0xa8,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x18,0x01,0x00,0x00,0xaa,0x01,0x00,0x00,0xa9,0x01,0x00,0x00,
    -0xc2,0x00,0x05,0x00,0x18,0x01,0x00,0x00,0xad,0x01,0x00,0x00,
    -0xaa,0x01,0x00,0x00,0x8b,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0xae,0x01,0x00,0x00,0xad,0x01,0x00,0x00,
    -0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0xaf,0x01,0x00,0x00,
    -0xae,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x15,0x00,0x00,0x00,
    -0xb0,0x01,0x00,0x00,0xaf,0x01,0x00,0x00,0x58,0x01,0x00,0x00,
    -0x6f,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0xb1,0x01,0x00,0x00,
    -0xb0,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xb4,0x01,0x00,0x00,0x12,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,
    -0x41,0x00,0x08,0x00,0x3c,0x01,0x00,0x00,0xb5,0x01,0x00,0x00,
    +0x60,0x01,0x00,0x00,0x5f,0x01,0x00,0x00,0xa8,0x00,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x61,0x01,0x00,0x00,
    +0x60,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    +0x62,0x01,0x00,0x00,0x61,0x01,0x00,0x00,0xc5,0x00,0x05,0x00,
    +0x15,0x00,0x00,0x00,0x63,0x01,0x00,0x00,0x59,0x01,0x00,0x00,
    +0x62,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x1e,0x01,0x00,0x00,
    +0x64,0x01,0x00,0x00,0x63,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    +0x18,0x01,0x00,0x00,0x65,0x01,0x00,0x00,0x64,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x18,0x01,0x00,0x00,0x6a,0x01,0x00,0x00,
    +0x54,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x18,0x01,0x00,0x00,
    +0x6b,0x01,0x00,0x00,0x6a,0x01,0x00,0x00,0xa8,0x00,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x3c,0x01,0x00,0x00,0x6e,0x01,0x00,0x00,
     0x2e,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
    -0x86,0x00,0x00,0x00,0xb4,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x18,0x01,0x00,0x00,0xb6,0x01,0x00,0x00,0xb5,0x01,0x00,0x00,
    -0xc7,0x00,0x05,0x00,0x18,0x01,0x00,0x00,0xb8,0x01,0x00,0x00,
    -0xb6,0x01,0x00,0x00,0x20,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0xb9,0x01,0x00,0x00,0xb8,0x01,0x00,0x00,
    -0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0xba,0x01,0x00,0x00,
    -0xb9,0x01,0x00,0x00,0xab,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0xbb,0x01,0x00,0x00,0xba,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    -0xa9,0x00,0x06,0x00,0x15,0x00,0x00,0x00,0xbc,0x01,0x00,0x00,
    -0xbb,0x01,0x00,0x00,0x9a,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    -0x6f,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0xbd,0x01,0x00,0x00,
    -0xbc,0x01,0x00,0x00,0x81,0x00,0x05,0x00,0xc3,0x00,0x00,0x00,
    -0xbe,0x01,0x00,0x00,0xb1,0x01,0x00,0x00,0xbd,0x01,0x00,0x00,
    -0x0c,0x00,0x08,0x00,0xc3,0x00,0x00,0x00,0xc1,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x78,0x01,0x00,0x00,
    -0xbe,0x01,0x00,0x00,0xaa,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xa1,0x01,0x00,0x00,0xc2,0x01,0x00,0x00,0x83,0x01,0x00,0x00,
    -0xa4,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xc2,0x01,0x00,0x00,
    -0xc1,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xdf,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xdf,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xc9,0x01,0x00,0x00,0x59,0x03,0x00,0x00,
    -0xc7,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xdc,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xde,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xcb,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xcb,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x5a,0x03,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0xde,0x00,0x00,0x00,0x10,0x02,0x00,0x00,
    -0xce,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0xd1,0x01,0x00,0x00,0x5a,0x03,0x00,0x00,0xa6,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xcd,0x01,0x00,0x00,0xce,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xd1,0x01,0x00,0x00,
    -0xcc,0x01,0x00,0x00,0xcd,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xcc,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xd5,0x01,0x00,0x00,0xa7,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd7,0x01,0x00,0x00,
    -0xd5,0x01,0x00,0x00,0x5a,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x17,0x00,0x00,0x00,0xd8,0x01,0x00,0x00,0x14,0x00,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0xd9,0x01,0x00,0x00,0xd8,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0xda,0x01,0x00,0x00,0xd7,0x01,0x00,0x00,
    -0xd9,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,0xdc,0x01,0x00,0x00,
    -0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xda,0x01,0x00,0x00,
    -0xdb,0x01,0x00,0x00,0xdc,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xdb,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xdf,0x01,0x00,0x00,0x49,0x03,0x00,0x00,0x79,0x00,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xe1,0x01,0x00,0x00,
    -0xdf,0x01,0x00,0x00,0x8e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xdc,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xdc,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0xc1,0x00,0x00,0x00,0xe2,0x01,0x00,0x00,
    -0xda,0x01,0x00,0x00,0xcc,0x01,0x00,0x00,0xe1,0x01,0x00,0x00,
    -0xdb,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,0xe4,0x01,0x00,0x00,
    -0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xe2,0x01,0x00,0x00,
    -0xe3,0x01,0x00,0x00,0x03,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xe3,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xec,0x01,0x00,0x00,0x7e,0x00,0x00,0x00,0x5a,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xee,0x01,0x00,0x00,
    -0xec,0x01,0x00,0x00,0xed,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xf0,0x01,0x00,0x00,0xee,0x01,0x00,0x00,
    -0x79,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xfb,0x01,0x00,0x00,0xec,0x01,0x00,0x00,0xaa,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfc,0x01,0x00,0x00,
    -0x61,0x03,0x00,0x00,0xfb,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xfe,0x01,0x00,0x00,0xfc,0x01,0x00,0x00,
    -0x79,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xff,0x01,0x00,0x00,
    -0x00,0x02,0x00,0x00,0xf4,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    -0xfe,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    -0x01,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xa1,0x01,0x00,0x00,0x02,0x02,0x00,0x00,0xe9,0x01,0x00,0x00,
    -0xf0,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x02,0x02,0x00,0x00,
    -0x01,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xe4,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x03,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x06,0x02,0x00,0x00,0x7e,0x00,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x18,0x01,0x00,0x00,0x6f,0x01,0x00,0x00,0x6e,0x01,0x00,0x00,
    +0xc2,0x00,0x05,0x00,0x18,0x01,0x00,0x00,0x70,0x01,0x00,0x00,
    +0x6f,0x01,0x00,0x00,0x91,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,
    +0x18,0x01,0x00,0x00,0x71,0x01,0x00,0x00,0x70,0x01,0x00,0x00,
    +0xa8,0x00,0x00,0x00,0xc5,0x00,0x05,0x00,0x18,0x01,0x00,0x00,
    +0x72,0x01,0x00,0x00,0x6b,0x01,0x00,0x00,0x71,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x38,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x38,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x18,0x01,0x00,0x00,
    +0x80,0x03,0x00,0x00,0x4f,0x01,0x00,0x00,0x37,0x01,0x00,0x00,
    +0x72,0x01,0x00,0x00,0x50,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x18,0x01,0x00,0x00,0x7f,0x03,0x00,0x00,0x44,0x01,0x00,0x00,
    +0x37,0x01,0x00,0x00,0x65,0x01,0x00,0x00,0x50,0x01,0x00,0x00,
    +0x51,0x00,0x05,0x00,0xc3,0x00,0x00,0x00,0x75,0x01,0x00,0x00,
    +0x33,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x04,0x00,
    +0xc3,0x00,0x00,0x00,0x77,0x01,0x00,0x00,0x7f,0x03,0x00,0x00,
    +0x85,0x00,0x05,0x00,0xc3,0x00,0x00,0x00,0x78,0x01,0x00,0x00,
    +0x75,0x01,0x00,0x00,0x77,0x01,0x00,0x00,0x51,0x00,0x05,0x00,
    +0xc3,0x00,0x00,0x00,0x7b,0x01,0x00,0x00,0x33,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x70,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    +0x7d,0x01,0x00,0x00,0x80,0x03,0x00,0x00,0x85,0x00,0x05,0x00,
    +0xc3,0x00,0x00,0x00,0x7e,0x01,0x00,0x00,0x7b,0x01,0x00,0x00,
    +0x7d,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x3c,0x01,0x00,0x00,
    +0x88,0x01,0x00,0x00,0x2e,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    +0xfb,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x13,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x18,0x01,0x00,0x00,0x89,0x01,0x00,0x00,
    +0x88,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x8b,0x01,0x00,0x00,0x07,0x01,0x00,0x00,0x35,0x01,0x00,0x00,
    +0xc2,0x00,0x05,0x00,0x18,0x01,0x00,0x00,0x8c,0x01,0x00,0x00,
    +0x89,0x01,0x00,0x00,0x8b,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x8d,0x01,0x00,0x00,0x8c,0x01,0x00,0x00,
    +0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x8e,0x01,0x00,0x00,
    +0x8d,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x15,0x00,0x00,0x00,
    +0x8f,0x01,0x00,0x00,0x8e,0x01,0x00,0x00,0x58,0x01,0x00,0x00,
    +0x6f,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x90,0x01,0x00,0x00,
    +0x8f,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x3c,0x01,0x00,0x00,
    +0x93,0x01,0x00,0x00,0x2e,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    +0xfb,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x12,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x18,0x01,0x00,0x00,0x94,0x01,0x00,0x00,
    +0x93,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x18,0x01,0x00,0x00,
    +0x96,0x01,0x00,0x00,0x94,0x01,0x00,0x00,0x20,0x01,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x97,0x01,0x00,0x00,
    +0x96,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    +0x98,0x01,0x00,0x00,0x97,0x01,0x00,0x00,0xab,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0x99,0x01,0x00,0x00,0x98,0x01,0x00,0x00,
    +0x35,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,0x15,0x00,0x00,0x00,
    +0x9b,0x01,0x00,0x00,0x99,0x01,0x00,0x00,0x9a,0x01,0x00,0x00,
    +0x35,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    +0x9c,0x01,0x00,0x00,0x9b,0x01,0x00,0x00,0x81,0x00,0x05,0x00,
    +0xc3,0x00,0x00,0x00,0x9d,0x01,0x00,0x00,0x90,0x01,0x00,0x00,
    +0x9c,0x01,0x00,0x00,0x7f,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    +0xaa,0x03,0x00,0x00,0x7e,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,
    +0xc3,0x00,0x00,0x00,0xa0,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x32,0x00,0x00,0x00,0x78,0x01,0x00,0x00,0x9d,0x01,0x00,0x00,
    +0xaa,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0xa1,0x01,0x00,0x00,
    +0xa2,0x01,0x00,0x00,0x83,0x01,0x00,0x00,0xf7,0x00,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0xa2,0x01,0x00,0x00,0xa0,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa4,0x01,0x00,0x00,
    +0xf7,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xa8,0x01,0x00,0x00,0x13,0x01,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0x3c,0x01,0x00,0x00,
    +0xa9,0x01,0x00,0x00,0x2e,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    +0xfb,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0xa8,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x18,0x01,0x00,0x00,0xaa,0x01,0x00,0x00,
    +0xa9,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x18,0x01,0x00,0x00,
    +0xad,0x01,0x00,0x00,0xaa,0x01,0x00,0x00,0x8b,0x01,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xae,0x01,0x00,0x00,
    +0xad,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    +0xaf,0x01,0x00,0x00,0xae,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
    +0x15,0x00,0x00,0x00,0xb0,0x01,0x00,0x00,0xaf,0x01,0x00,0x00,
    +0x58,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    +0xb1,0x01,0x00,0x00,0xb0,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xb4,0x01,0x00,0x00,0x12,0x01,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0x3c,0x01,0x00,0x00,
    +0xb5,0x01,0x00,0x00,0x2e,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    +0xfb,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0xb4,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x18,0x01,0x00,0x00,0xb6,0x01,0x00,0x00,
    +0xb5,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x18,0x01,0x00,0x00,
    +0xb8,0x01,0x00,0x00,0xb6,0x01,0x00,0x00,0x20,0x01,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xb9,0x01,0x00,0x00,
    +0xb8,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    +0xba,0x01,0x00,0x00,0xb9,0x01,0x00,0x00,0xab,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0xbb,0x01,0x00,0x00,0xba,0x01,0x00,0x00,
    +0x35,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,0x15,0x00,0x00,0x00,
    +0xbc,0x01,0x00,0x00,0xbb,0x01,0x00,0x00,0x9a,0x01,0x00,0x00,
    +0x35,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    +0xbd,0x01,0x00,0x00,0xbc,0x01,0x00,0x00,0x81,0x00,0x05,0x00,
    +0xc3,0x00,0x00,0x00,0xbe,0x01,0x00,0x00,0xb1,0x01,0x00,0x00,
    +0xbd,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0xc3,0x00,0x00,0x00,
    +0xc1,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,
    +0x78,0x01,0x00,0x00,0xbe,0x01,0x00,0x00,0xaa,0x03,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xa1,0x01,0x00,0x00,0xc2,0x01,0x00,0x00,
    +0x83,0x01,0x00,0x00,0xa4,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0xc2,0x01,0x00,0x00,0xc1,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xdf,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xdf,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc9,0x01,0x00,0x00,
    +0x59,0x03,0x00,0x00,0xc7,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xdc,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xde,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xcb,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xcb,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x5a,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0xde,0x00,0x00,0x00,
    +0x10,0x02,0x00,0x00,0xce,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0xd1,0x01,0x00,0x00,0x5a,0x03,0x00,0x00,
    +0xa6,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xcd,0x01,0x00,0x00,
    +0xce,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xd1,0x01,0x00,0x00,0xcc,0x01,0x00,0x00,0xcd,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xcc,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xd5,0x01,0x00,0x00,0xa7,0x00,0x00,0x00,
    +0x7e,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xd7,0x01,0x00,0x00,0xd5,0x01,0x00,0x00,0x5a,0x03,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xd8,0x01,0x00,0x00,
    +0x14,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0xd9,0x01,0x00,0x00,0xd8,0x01,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xda,0x01,0x00,0x00,
    +0xd7,0x01,0x00,0x00,0xd9,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,
    +0xdc,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xda,0x01,0x00,0x00,0xdb,0x01,0x00,0x00,0xdc,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xdb,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xdf,0x01,0x00,0x00,0x49,0x03,0x00,0x00,
    +0x79,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0xe1,0x01,0x00,0x00,0xdf,0x01,0x00,0x00,0x8e,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xdc,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xdc,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0xc1,0x00,0x00,0x00,
    +0xe2,0x01,0x00,0x00,0xda,0x01,0x00,0x00,0xcc,0x01,0x00,0x00,
    +0xe1,0x01,0x00,0x00,0xdb,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,
    +0xe4,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xe2,0x01,0x00,0x00,0xe3,0x01,0x00,0x00,0x03,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xe3,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xec,0x01,0x00,0x00,0x7e,0x00,0x00,0x00,
     0x5a,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x08,0x02,0x00,0x00,0x06,0x02,0x00,0x00,0x07,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0a,0x02,0x00,0x00,
    -0x08,0x02,0x00,0x00,0x79,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xa1,0x01,0x00,0x00,0x0b,0x02,0x00,0x00,0xe9,0x01,0x00,0x00,
    -0x0a,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0x0b,0x02,0x00,0x00,
    -0xcb,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xe4,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xe4,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xce,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xce,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x10,0x02,0x00,0x00,
    -0x5a,0x03,0x00,0x00,0x0e,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xcb,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xcd,0x01,0x00,0x00,
    -0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x11,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x14,0x02,0x00,0x00,0x5d,0x03,0x00,0x00,0x12,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x17,0x02,0x00,0x00,
    -0x61,0x03,0x00,0x00,0x15,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x19,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x19,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x63,0x03,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0xcd,0x01,0x00,0x00,0xc0,0x02,0x00,0x00,
    -0x1c,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0x1f,0x02,0x00,0x00,0x63,0x03,0x00,0x00,0x6d,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x1b,0x02,0x00,0x00,0x1c,0x02,0x00,0x00,
    -0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x1f,0x02,0x00,0x00,
    -0x1a,0x02,0x00,0x00,0x1b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x1a,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x21,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x21,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x67,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0x1a,0x02,0x00,0x00,0x4c,0x02,0x00,0x00,0x24,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x27,0x02,0x00,0x00,
    -0x67,0x03,0x00,0x00,0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x23,0x02,0x00,0x00,0x24,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x27,0x02,0x00,0x00,0x22,0x02,0x00,0x00,
    -0x23,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x22,0x02,0x00,0x00,
    +0xee,0x01,0x00,0x00,0xec,0x01,0x00,0x00,0xed,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf0,0x01,0x00,0x00,
    +0xee,0x01,0x00,0x00,0x79,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xfb,0x01,0x00,0x00,0xec,0x01,0x00,0x00,
    +0xaa,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xfc,0x01,0x00,0x00,0x61,0x03,0x00,0x00,0xfb,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfe,0x01,0x00,0x00,
    +0xfc,0x01,0x00,0x00,0x79,0x00,0x00,0x00,0x41,0x00,0x06,0x00,
    +0xff,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0xf4,0x01,0x00,0x00,
    +0x35,0x00,0x00,0x00,0xfe,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xc3,0x00,0x00,0x00,0x01,0x02,0x00,0x00,0x00,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xa1,0x01,0x00,0x00,0x02,0x02,0x00,0x00,
    +0xe9,0x01,0x00,0x00,0xf0,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x02,0x02,0x00,0x00,0x01,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xe4,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x03,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x06,0x02,0x00,0x00,
    +0x7e,0x00,0x00,0x00,0x5a,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x08,0x02,0x00,0x00,0x06,0x02,0x00,0x00,
    +0x07,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x0a,0x02,0x00,0x00,0x08,0x02,0x00,0x00,0x79,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xa1,0x01,0x00,0x00,0x0b,0x02,0x00,0x00,
    +0xe9,0x01,0x00,0x00,0x0a,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x0b,0x02,0x00,0x00,0xcb,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xe4,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xe4,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xce,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xce,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x10,0x02,0x00,0x00,0x5a,0x03,0x00,0x00,0x0e,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xcb,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xcd,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x11,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x14,0x02,0x00,0x00,0x5d,0x03,0x00,0x00,
    +0x12,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x17,0x02,0x00,0x00,0x61,0x03,0x00,0x00,0x15,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x19,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x19,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x63,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0xcd,0x01,0x00,0x00,
    +0xc0,0x02,0x00,0x00,0x1c,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0x1f,0x02,0x00,0x00,0x63,0x03,0x00,0x00,
    +0x6d,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x1b,0x02,0x00,0x00,
    +0x1c,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x1f,0x02,0x00,0x00,0x1a,0x02,0x00,0x00,0x1b,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x1a,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x21,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x21,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x67,0x03,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0x1a,0x02,0x00,0x00,0x4c,0x02,0x00,0x00,
    +0x24,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0x27,0x02,0x00,0x00,0x67,0x03,0x00,0x00,0x61,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x23,0x02,0x00,0x00,0x24,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x27,0x02,0x00,0x00,
    +0x22,0x02,0x00,0x00,0x23,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x22,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x29,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x29,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x79,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x22,0x02,0x00,0x00,0x4a,0x02,0x00,0x00,0x2a,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x2f,0x02,0x00,0x00,
    +0x79,0x03,0x00,0x00,0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x2b,0x02,0x00,0x00,0x2a,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x2f,0x02,0x00,0x00,0x2a,0x02,0x00,0x00,
    +0x2b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x2a,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x35,0x02,0x00,0x00,
    +0x67,0x03,0x00,0x00,0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x37,0x02,0x00,0x00,0x35,0x02,0x00,0x00,
    +0x79,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x39,0x02,0x00,0x00,0x56,0x00,0x00,0x00,0x54,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3b,0x02,0x00,0x00,
    +0x67,0x03,0x00,0x00,0x62,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x3c,0x02,0x00,0x00,0x39,0x02,0x00,0x00,
    +0x3b,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x3e,0x02,0x00,0x00,0x65,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3f,0x02,0x00,0x00,
    +0x3c,0x02,0x00,0x00,0x3e,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x41,0x02,0x00,0x00,0x3f,0x02,0x00,0x00,
    +0x79,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x43,0x02,0x00,0x00,0x41,0x02,0x00,0x00,0x42,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x45,0x02,0x00,0x00,
    +0x43,0x02,0x00,0x00,0x63,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xa1,0x01,0x00,0x00,0x46,0x02,0x00,0x00,0x83,0x01,0x00,0x00,
    +0x45,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    +0x47,0x02,0x00,0x00,0x46,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xcc,0x00,0x00,0x00,0x48,0x02,0x00,0x00,0x33,0x02,0x00,0x00,
    +0x37,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0x48,0x02,0x00,0x00,
    +0x47,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x4a,0x02,0x00,0x00,0x79,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
     0xf9,0x00,0x02,0x00,0x29,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x29,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x79,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0x22,0x02,0x00,0x00,
    -0x4a,0x02,0x00,0x00,0x2a,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0x2f,0x02,0x00,0x00,0x79,0x03,0x00,0x00,
    -0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x2b,0x02,0x00,0x00,
    -0x2a,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x2f,0x02,0x00,0x00,0x2a,0x02,0x00,0x00,0x2b,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x2a,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x35,0x02,0x00,0x00,0x67,0x03,0x00,0x00,
    -0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x37,0x02,0x00,0x00,0x35,0x02,0x00,0x00,0x79,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x39,0x02,0x00,0x00,
    -0x56,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x3b,0x02,0x00,0x00,0x67,0x03,0x00,0x00,
    -0x62,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x3c,0x02,0x00,0x00,0x39,0x02,0x00,0x00,0x3b,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3e,0x02,0x00,0x00,
    -0x65,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x3f,0x02,0x00,0x00,0x3c,0x02,0x00,0x00,
    -0x3e,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x41,0x02,0x00,0x00,0x3f,0x02,0x00,0x00,0x79,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x43,0x02,0x00,0x00,
    -0x41,0x02,0x00,0x00,0x42,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x45,0x02,0x00,0x00,0x43,0x02,0x00,0x00,
    -0x63,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0xa1,0x01,0x00,0x00,
    -0x46,0x02,0x00,0x00,0x83,0x01,0x00,0x00,0x45,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x47,0x02,0x00,0x00,
    -0x46,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,
    -0x48,0x02,0x00,0x00,0x33,0x02,0x00,0x00,0x37,0x02,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x48,0x02,0x00,0x00,0x47,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4a,0x02,0x00,0x00,
    -0x79,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x29,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x2b,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x24,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x24,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x4c,0x02,0x00,0x00,0x67,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x21,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x23,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x4e,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x4e,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x68,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0x23,0x02,0x00,0x00,0x7a,0x02,0x00,0x00,0x51,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x54,0x02,0x00,0x00,
    -0x68,0x03,0x00,0x00,0xbe,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x50,0x02,0x00,0x00,0x51,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x54,0x02,0x00,0x00,0x4f,0x02,0x00,0x00,
    -0x50,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x4f,0x02,0x00,0x00,
    +0x2b,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x24,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x24,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x4c,0x02,0x00,0x00,0x67,0x03,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x21,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x23,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x4e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x4e,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x68,0x03,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0x23,0x02,0x00,0x00,0x7a,0x02,0x00,0x00,
    +0x51,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0x54,0x02,0x00,0x00,0x68,0x03,0x00,0x00,0xbe,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x50,0x02,0x00,0x00,0x51,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x54,0x02,0x00,0x00,
    +0x4f,0x02,0x00,0x00,0x50,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x4f,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x56,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x56,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x76,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x4f,0x02,0x00,0x00,0x78,0x02,0x00,0x00,0x57,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x5c,0x02,0x00,0x00,
    +0x76,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x58,0x02,0x00,0x00,0x57,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x5c,0x02,0x00,0x00,0x57,0x02,0x00,0x00,
    +0x58,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x57,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x62,0x02,0x00,0x00,
    +0x68,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x64,0x02,0x00,0x00,0x62,0x02,0x00,0x00,
    +0x76,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x66,0x02,0x00,0x00,0x5a,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x69,0x02,0x00,0x00,
    +0x68,0x03,0x00,0x00,0x68,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x6a,0x02,0x00,0x00,0x66,0x02,0x00,0x00,
    +0x69,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x6c,0x02,0x00,0x00,0x69,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6d,0x02,0x00,0x00,
    +0x6a,0x02,0x00,0x00,0x6c,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x6f,0x02,0x00,0x00,0x6d,0x02,0x00,0x00,
    +0x76,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x71,0x02,0x00,0x00,0x6f,0x02,0x00,0x00,0x70,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x73,0x02,0x00,0x00,
    +0x71,0x02,0x00,0x00,0x63,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xa1,0x01,0x00,0x00,0x74,0x02,0x00,0x00,0xe9,0x01,0x00,0x00,
    +0x73,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    +0x75,0x02,0x00,0x00,0x74,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xcc,0x00,0x00,0x00,0x76,0x02,0x00,0x00,0x60,0x02,0x00,0x00,
    +0x64,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0x76,0x02,0x00,0x00,
    +0x75,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x78,0x02,0x00,0x00,0x76,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
     0xf9,0x00,0x02,0x00,0x56,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x56,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x76,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0x4f,0x02,0x00,0x00,
    -0x78,0x02,0x00,0x00,0x57,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0x5c,0x02,0x00,0x00,0x76,0x03,0x00,0x00,
    -0xbb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x58,0x02,0x00,0x00,
    -0x57,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x5c,0x02,0x00,0x00,0x57,0x02,0x00,0x00,0x58,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x57,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x62,0x02,0x00,0x00,0x68,0x03,0x00,0x00,
    -0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x64,0x02,0x00,0x00,0x62,0x02,0x00,0x00,0x76,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x66,0x02,0x00,0x00,
    -0x5a,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x69,0x02,0x00,0x00,0x68,0x03,0x00,0x00,
    -0x68,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x6a,0x02,0x00,0x00,0x66,0x02,0x00,0x00,0x69,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6c,0x02,0x00,0x00,
    -0x69,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x6d,0x02,0x00,0x00,0x6a,0x02,0x00,0x00,
    -0x6c,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x6f,0x02,0x00,0x00,0x6d,0x02,0x00,0x00,0x76,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x71,0x02,0x00,0x00,
    -0x6f,0x02,0x00,0x00,0x70,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x73,0x02,0x00,0x00,0x71,0x02,0x00,0x00,
    -0x63,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0xa1,0x01,0x00,0x00,
    -0x74,0x02,0x00,0x00,0xe9,0x01,0x00,0x00,0x73,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x75,0x02,0x00,0x00,
    -0x74,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,
    -0x76,0x02,0x00,0x00,0x60,0x02,0x00,0x00,0x64,0x02,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x76,0x02,0x00,0x00,0x75,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x78,0x02,0x00,0x00,
    -0x76,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x56,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x58,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x51,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x51,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x7a,0x02,0x00,0x00,0x68,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x4e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x50,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x7c,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x7c,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x69,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0x50,0x02,0x00,0x00,0xbe,0x02,0x00,0x00,0x7f,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x82,0x02,0x00,0x00,
    -0x69,0x03,0x00,0x00,0xbe,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x7e,0x02,0x00,0x00,0x7f,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x82,0x02,0x00,0x00,0x7d,0x02,0x00,0x00,
    -0x7e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x7d,0x02,0x00,0x00,
    +0x58,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x51,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x51,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x7a,0x02,0x00,0x00,0x68,0x03,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x4e,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x50,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x7c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x7c,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x69,0x03,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0x50,0x02,0x00,0x00,0xbe,0x02,0x00,0x00,
    +0x7f,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0x82,0x02,0x00,0x00,0x69,0x03,0x00,0x00,0xbe,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x7e,0x02,0x00,0x00,0x7f,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x82,0x02,0x00,0x00,
    +0x7d,0x02,0x00,0x00,0x7e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x7d,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x84,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x84,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x6d,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x7d,0x02,0x00,0x00,0xbc,0x02,0x00,0x00,0x87,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x8a,0x02,0x00,0x00,
    +0x6d,0x03,0x00,0x00,0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x86,0x02,0x00,0x00,0x87,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x8a,0x02,0x00,0x00,0x85,0x02,0x00,0x00,
    +0x86,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x85,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x8c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x8c,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x6f,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0x85,0x02,0x00,0x00,
    +0xba,0x02,0x00,0x00,0x8f,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0x92,0x02,0x00,0x00,0x6f,0x03,0x00,0x00,
    +0xbb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x8e,0x02,0x00,0x00,
    +0x8f,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x92,0x02,0x00,0x00,0x8d,0x02,0x00,0x00,0x8e,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x8d,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x94,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x94,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x71,0x03,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0x8d,0x02,0x00,0x00,0xb8,0x02,0x00,0x00,
    +0x95,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0x9a,0x02,0x00,0x00,0x71,0x03,0x00,0x00,0x63,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x96,0x02,0x00,0x00,0x95,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x9a,0x02,0x00,0x00,
    +0x95,0x02,0x00,0x00,0x96,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x95,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x9c,0x02,0x00,0x00,0x69,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9e,0x02,0x00,0x00,
    +0x9c,0x02,0x00,0x00,0x6f,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xa0,0x02,0x00,0x00,0x9e,0x02,0x00,0x00,
    +0x9f,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xa2,0x02,0x00,0x00,0x6d,0x03,0x00,0x00,0x63,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa3,0x02,0x00,0x00,
    +0xa0,0x02,0x00,0x00,0xa2,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xa5,0x02,0x00,0x00,0xa3,0x02,0x00,0x00,
    +0x71,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xa9,0x02,0x00,0x00,0xa2,0x02,0x00,0x00,0x71,0x03,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,0xaa,0x02,0x00,0x00,
    +0x33,0x02,0x00,0x00,0xa9,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xc3,0x00,0x00,0x00,0xab,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,0xb0,0x02,0x00,0x00,
    +0x60,0x02,0x00,0x00,0x9e,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xc3,0x00,0x00,0x00,0xb1,0x02,0x00,0x00,0xb0,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,0xb3,0x02,0x00,0x00,
    +0xc9,0x00,0x00,0x00,0xa5,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xc3,0x00,0x00,0x00,0xb4,0x02,0x00,0x00,0xb3,0x02,0x00,0x00,
    +0x0c,0x00,0x08,0x00,0xc3,0x00,0x00,0x00,0xb5,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xab,0x02,0x00,0x00,
    +0xb1,0x02,0x00,0x00,0xb4,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0xb3,0x02,0x00,0x00,0xb5,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xb8,0x02,0x00,0x00,0x71,0x03,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x94,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x96,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x8f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x8f,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xba,0x02,0x00,0x00,
    +0x6f,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x8c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x8e,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x87,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x87,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xbc,0x02,0x00,0x00,0x6d,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
     0xf9,0x00,0x02,0x00,0x84,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x84,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x6d,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0x7d,0x02,0x00,0x00,
    -0xbc,0x02,0x00,0x00,0x87,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0x8a,0x02,0x00,0x00,0x6d,0x03,0x00,0x00,
    -0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x86,0x02,0x00,0x00,
    -0x87,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x8a,0x02,0x00,0x00,0x85,0x02,0x00,0x00,0x86,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x85,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x8c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x8c,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x6f,0x03,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0x85,0x02,0x00,0x00,0xba,0x02,0x00,0x00,
    -0x8f,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0x92,0x02,0x00,0x00,0x6f,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x8e,0x02,0x00,0x00,0x8f,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x92,0x02,0x00,0x00,
    -0x8d,0x02,0x00,0x00,0x8e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x8d,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x94,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x94,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x71,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0x8d,0x02,0x00,0x00,0xb8,0x02,0x00,0x00,0x95,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x9a,0x02,0x00,0x00,
    -0x71,0x03,0x00,0x00,0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x96,0x02,0x00,0x00,0x95,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x9a,0x02,0x00,0x00,0x95,0x02,0x00,0x00,
    -0x96,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x95,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9c,0x02,0x00,0x00,
    -0x69,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x9e,0x02,0x00,0x00,0x9c,0x02,0x00,0x00,
    -0x6f,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xa0,0x02,0x00,0x00,0x9e,0x02,0x00,0x00,0x9f,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa2,0x02,0x00,0x00,
    -0x6d,0x03,0x00,0x00,0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xa3,0x02,0x00,0x00,0xa0,0x02,0x00,0x00,
    -0xa2,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xa5,0x02,0x00,0x00,0xa3,0x02,0x00,0x00,0x71,0x03,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa9,0x02,0x00,0x00,
    -0xa2,0x02,0x00,0x00,0x71,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xcc,0x00,0x00,0x00,0xaa,0x02,0x00,0x00,0x33,0x02,0x00,0x00,
    -0xa9,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    -0xab,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xcc,0x00,0x00,0x00,0xb0,0x02,0x00,0x00,0x60,0x02,0x00,0x00,
    -0x9e,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    -0xb1,0x02,0x00,0x00,0xb0,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xcc,0x00,0x00,0x00,0xb3,0x02,0x00,0x00,0xc9,0x00,0x00,0x00,
    -0xa5,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    -0xb4,0x02,0x00,0x00,0xb3,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,
    -0xc3,0x00,0x00,0x00,0xb5,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x32,0x00,0x00,0x00,0xab,0x02,0x00,0x00,0xb1,0x02,0x00,0x00,
    -0xb4,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0xb3,0x02,0x00,0x00,
    -0xb5,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xb8,0x02,0x00,0x00,0x71,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x94,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x96,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x8f,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x8f,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xba,0x02,0x00,0x00,0x6f,0x03,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x8c,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x8e,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x87,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x87,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbc,0x02,0x00,0x00,
    -0x6d,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x84,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x86,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x7f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x7f,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xbe,0x02,0x00,0x00,0x69,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x7c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x7e,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x1c,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x1c,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xc0,0x02,0x00,0x00,0x63,0x03,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x19,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x1b,0x02,0x00,0x00,0xe0,0x00,0x04,0x00,
    -0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x11,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xd6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xd6,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xc2,0x02,0x00,0x00,0x49,0x03,0x00,0x00,0x6d,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xd3,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xd5,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xc7,0x02,0x00,0x00,0x56,0x00,0x00,0x00,0x54,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc8,0x02,0x00,0x00,
    -0x96,0x00,0x00,0x00,0xc7,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xcd,0x02,0x00,0x00,0x5a,0x00,0x00,0x00,
    -0xb8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xce,0x02,0x00,0x00,0xa7,0x00,0x00,0x00,0xcd,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xd2,0x02,0x00,0x00,
    -0x14,0x00,0x00,0x00,0xd1,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0xd3,0x02,0x00,0x00,0xd2,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd4,0x02,0x00,0x00,
    -0x0f,0x00,0x00,0x00,0xd3,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xd8,0x02,0x00,0x00,0x48,0x00,0x00,0x00,
    -0xd3,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,
    -0xda,0x02,0x00,0x00,0xd9,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xdb,0x02,0x00,0x00,
    -0xda,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xdc,0x02,0x00,0x00,0xd8,0x02,0x00,0x00,0xdb,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdd,0x02,0x00,0x00,
    -0xd4,0x02,0x00,0x00,0xdc,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xdf,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xdf,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x4a,0x03,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0x45,0x03,0x00,0x00,
    -0xe2,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0xe5,0x02,0x00,0x00,0x4a,0x03,0x00,0x00,0xbe,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xe1,0x02,0x00,0x00,0xe2,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xe5,0x02,0x00,0x00,
    -0xe0,0x02,0x00,0x00,0xe1,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xe0,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xe7,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xe7,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x4b,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0xe0,0x02,0x00,0x00,0x43,0x03,0x00,0x00,0xea,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xed,0x02,0x00,0x00,
    -0x4b,0x03,0x00,0x00,0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xe9,0x02,0x00,0x00,0xea,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xed,0x02,0x00,0x00,0xe8,0x02,0x00,0x00,
    -0xe9,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xe8,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf1,0x02,0x00,0x00,
    -0x4b,0x03,0x00,0x00,0x62,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xf2,0x02,0x00,0x00,0xc8,0x02,0x00,0x00,
    -0xf1,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xf4,0x02,0x00,0x00,0x65,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf5,0x02,0x00,0x00,
    -0xf2,0x02,0x00,0x00,0xf4,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xf9,0x02,0x00,0x00,0x4a,0x03,0x00,0x00,
    -0x68,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xfa,0x02,0x00,0x00,0xce,0x02,0x00,0x00,0xf9,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfc,0x02,0x00,0x00,
    -0x69,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xfd,0x02,0x00,0x00,0xfa,0x02,0x00,0x00,
    -0xfc,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xff,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xff,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x4d,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0xe8,0x02,0x00,0x00,0x41,0x03,0x00,0x00,0x02,0x03,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x05,0x03,0x00,0x00,
    -0x4d,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x01,0x03,0x00,0x00,0x02,0x03,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x05,0x03,0x00,0x00,0x00,0x03,0x00,0x00,
    -0x01,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x00,0x03,0x00,0x00,
    +0x86,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x7f,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x7f,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xbe,0x02,0x00,0x00,0x69,0x03,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x7c,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x7e,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x1c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x1c,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc0,0x02,0x00,0x00,
    +0x63,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x19,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x1b,0x02,0x00,0x00,
    +0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x11,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xd6,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xd6,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xc2,0x02,0x00,0x00,0x49,0x03,0x00,0x00,
    +0x6d,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xd3,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xd5,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xc7,0x02,0x00,0x00,0x56,0x00,0x00,0x00,
    +0x54,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xc8,0x02,0x00,0x00,0x96,0x00,0x00,0x00,0xc7,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xcd,0x02,0x00,0x00,
    +0x5a,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xce,0x02,0x00,0x00,0xa7,0x00,0x00,0x00,
    +0xcd,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    +0xd2,0x02,0x00,0x00,0x14,0x00,0x00,0x00,0xd1,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xd3,0x02,0x00,0x00,
    +0xd2,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xd4,0x02,0x00,0x00,0x0f,0x00,0x00,0x00,0xd3,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd8,0x02,0x00,0x00,
    +0x48,0x00,0x00,0x00,0xd3,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x0d,0x00,0x00,0x00,0xda,0x02,0x00,0x00,0xd9,0x02,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0xdb,0x02,0x00,0x00,0xda,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xdc,0x02,0x00,0x00,0xd8,0x02,0x00,0x00,
    +0xdb,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xdd,0x02,0x00,0x00,0xd4,0x02,0x00,0x00,0xdc,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xdf,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xdf,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x4a,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,
    +0x45,0x03,0x00,0x00,0xe2,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0xe5,0x02,0x00,0x00,0x4a,0x03,0x00,0x00,
    +0xbe,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xe1,0x02,0x00,0x00,
    +0xe2,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xe5,0x02,0x00,0x00,0xe0,0x02,0x00,0x00,0xe1,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xe0,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xe7,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xe7,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x4b,0x03,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0xe0,0x02,0x00,0x00,0x43,0x03,0x00,0x00,
    +0xea,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0xed,0x02,0x00,0x00,0x4b,0x03,0x00,0x00,0x61,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xe9,0x02,0x00,0x00,0xea,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xed,0x02,0x00,0x00,
    +0xe8,0x02,0x00,0x00,0xe9,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xe8,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xf1,0x02,0x00,0x00,0x4b,0x03,0x00,0x00,0x62,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf2,0x02,0x00,0x00,
    +0xc8,0x02,0x00,0x00,0xf1,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xf4,0x02,0x00,0x00,0x65,0x00,0x00,0x00,
    +0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xf5,0x02,0x00,0x00,0xf2,0x02,0x00,0x00,0xf4,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf9,0x02,0x00,0x00,
    +0x4a,0x03,0x00,0x00,0x68,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xfa,0x02,0x00,0x00,0xce,0x02,0x00,0x00,
    +0xf9,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xfc,0x02,0x00,0x00,0x69,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfd,0x02,0x00,0x00,
    +0xfa,0x02,0x00,0x00,0xfc,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xff,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xff,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x4d,0x03,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0xe8,0x02,0x00,0x00,0x41,0x03,0x00,0x00,
    +0x02,0x03,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0x05,0x03,0x00,0x00,0x4d,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x01,0x03,0x00,0x00,0x02,0x03,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x05,0x03,0x00,0x00,
    +0x00,0x03,0x00,0x00,0x01,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x00,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,0x07,0x03,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x07,0x03,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x4f,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x00,0x03,0x00,0x00,0x3f,0x03,0x00,0x00,0x0a,0x03,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x0d,0x03,0x00,0x00,
    +0x4f,0x03,0x00,0x00,0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x09,0x03,0x00,0x00,0x0a,0x03,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x0d,0x03,0x00,0x00,0x08,0x03,0x00,0x00,
    +0x09,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x08,0x03,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x10,0x03,0x00,0x00,
    +0xf5,0x02,0x00,0x00,0x4f,0x03,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0x13,0x03,0x00,0x00,0x10,0x03,0x00,0x00,
    +0x37,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0x15,0x03,0x00,0x00,
    +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x13,0x03,0x00,0x00,
    +0x14,0x03,0x00,0x00,0x15,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x14,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x18,0x03,0x00,0x00,0xfd,0x02,0x00,0x00,0x4d,0x03,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x19,0x03,0x00,0x00,
    +0x14,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x1a,0x03,0x00,0x00,0x19,0x03,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x1b,0x03,0x00,0x00,
    +0x18,0x03,0x00,0x00,0x1a,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x15,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x15,0x03,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0xc1,0x00,0x00,0x00,0x1c,0x03,0x00,0x00,
    +0x13,0x03,0x00,0x00,0x08,0x03,0x00,0x00,0x1b,0x03,0x00,0x00,
    +0x14,0x03,0x00,0x00,0xf7,0x00,0x03,0x00,0x1e,0x03,0x00,0x00,
    +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x1c,0x03,0x00,0x00,
    +0x1d,0x03,0x00,0x00,0x1e,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x1d,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x26,0x03,0x00,0x00,0xfd,0x02,0x00,0x00,0x4d,0x03,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x28,0x03,0x00,0x00,
    +0x14,0x00,0x00,0x00,0x27,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x29,0x03,0x00,0x00,0x28,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2a,0x03,0x00,0x00,
    +0x26,0x03,0x00,0x00,0x29,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x2b,0x03,0x00,0x00,0xdd,0x02,0x00,0x00,
    +0x2a,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x2d,0x03,0x00,0x00,0x2b,0x03,0x00,0x00,0xf5,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2f,0x03,0x00,0x00,
    +0x2d,0x03,0x00,0x00,0x4f,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x31,0x03,0x00,0x00,0x4a,0x03,0x00,0x00,
    +0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x33,0x03,0x00,0x00,0x31,0x03,0x00,0x00,0x4d,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x35,0x03,0x00,0x00,
    +0x33,0x03,0x00,0x00,0x34,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x37,0x03,0x00,0x00,0x4b,0x03,0x00,0x00,
    +0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x38,0x03,0x00,0x00,0x35,0x03,0x00,0x00,0x37,0x03,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3a,0x03,0x00,0x00,
    +0x38,0x03,0x00,0x00,0x4f,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xcc,0x00,0x00,0x00,0x3b,0x03,0x00,0x00,0xc9,0x00,0x00,0x00,
    +0x3a,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    +0x3c,0x03,0x00,0x00,0x3b,0x03,0x00,0x00,0x41,0x00,0x06,0x00,
    +0xff,0x01,0x00,0x00,0x3d,0x03,0x00,0x00,0x22,0x03,0x00,0x00,
    +0x35,0x00,0x00,0x00,0x2f,0x03,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x3d,0x03,0x00,0x00,0x3c,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x1e,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x1e,0x03,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x0a,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x0a,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x3f,0x03,0x00,0x00,0x4f,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
     0xf9,0x00,0x02,0x00,0x07,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x07,0x03,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x4f,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0x00,0x03,0x00,0x00,
    -0x3f,0x03,0x00,0x00,0x0a,0x03,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0x0d,0x03,0x00,0x00,0x4f,0x03,0x00,0x00,
    -0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x09,0x03,0x00,0x00,
    -0x0a,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x0d,0x03,0x00,0x00,0x08,0x03,0x00,0x00,0x09,0x03,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x08,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x10,0x03,0x00,0x00,0xf5,0x02,0x00,0x00,
    -0x4f,0x03,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0x13,0x03,0x00,0x00,0x10,0x03,0x00,0x00,0x37,0x00,0x00,0x00,
    -0xf7,0x00,0x03,0x00,0x15,0x03,0x00,0x00,0x00,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x13,0x03,0x00,0x00,0x14,0x03,0x00,0x00,
    -0x15,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x14,0x03,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x18,0x03,0x00,0x00,
    -0xfd,0x02,0x00,0x00,0x4d,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x17,0x00,0x00,0x00,0x19,0x03,0x00,0x00,0x14,0x00,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x1a,0x03,0x00,0x00,0x19,0x03,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0x1b,0x03,0x00,0x00,0x18,0x03,0x00,0x00,
    -0x1a,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,0x15,0x03,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x15,0x03,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0xc1,0x00,0x00,0x00,0x1c,0x03,0x00,0x00,0x13,0x03,0x00,0x00,
    -0x08,0x03,0x00,0x00,0x1b,0x03,0x00,0x00,0x14,0x03,0x00,0x00,
    -0xf7,0x00,0x03,0x00,0x1e,0x03,0x00,0x00,0x00,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x1c,0x03,0x00,0x00,0x1d,0x03,0x00,0x00,
    -0x1e,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x1d,0x03,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x26,0x03,0x00,0x00,
    -0xfd,0x02,0x00,0x00,0x4d,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x17,0x00,0x00,0x00,0x28,0x03,0x00,0x00,0x14,0x00,0x00,0x00,
    -0x27,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x29,0x03,0x00,0x00,0x28,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x2a,0x03,0x00,0x00,0x26,0x03,0x00,0x00,
    -0x29,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x2b,0x03,0x00,0x00,0xdd,0x02,0x00,0x00,0x2a,0x03,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2d,0x03,0x00,0x00,
    -0x2b,0x03,0x00,0x00,0xf5,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x2f,0x03,0x00,0x00,0x2d,0x03,0x00,0x00,
    -0x4f,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x31,0x03,0x00,0x00,0x4a,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x33,0x03,0x00,0x00,
    -0x31,0x03,0x00,0x00,0x4d,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x35,0x03,0x00,0x00,0x33,0x03,0x00,0x00,
    -0x34,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x37,0x03,0x00,0x00,0x4b,0x03,0x00,0x00,0x63,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x38,0x03,0x00,0x00,
    -0x35,0x03,0x00,0x00,0x37,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x3a,0x03,0x00,0x00,0x38,0x03,0x00,0x00,
    -0x4f,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,
    -0x3b,0x03,0x00,0x00,0xc9,0x00,0x00,0x00,0x3a,0x03,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x3c,0x03,0x00,0x00,
    -0x3b,0x03,0x00,0x00,0x41,0x00,0x06,0x00,0xff,0x01,0x00,0x00,
    -0x3d,0x03,0x00,0x00,0x22,0x03,0x00,0x00,0x35,0x00,0x00,0x00,
    -0x2f,0x03,0x00,0x00,0x3e,0x00,0x03,0x00,0x3d,0x03,0x00,0x00,
    -0x3c,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,0x1e,0x03,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x1e,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x0a,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x0a,0x03,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3f,0x03,0x00,0x00,
    -0x4f,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x07,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x09,0x03,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x02,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x02,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x41,0x03,0x00,0x00,0x4d,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xff,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x01,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,0xea,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xea,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x43,0x03,0x00,0x00,0x4b,0x03,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xe7,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xe9,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xe2,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xe2,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x45,0x03,0x00,0x00,
    -0x4a,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xdf,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xe1,0x02,0x00,0x00,
    -0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
    +0x09,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,0x02,0x03,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x02,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x41,0x03,0x00,0x00,0x4d,0x03,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xff,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x01,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xea,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xea,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x43,0x03,0x00,0x00,
    +0x4b,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xe7,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xe9,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xe2,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xe2,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x45,0x03,0x00,0x00,0x4a,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xdf,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xe1,0x02,0x00,0x00,0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
    +
     };
    -const uint64_t matmul_q5_k_f32_fp32_len = 12476;
    +const uint64_t matmul_q5_k_f32_fp32_len = 12456;
     
     unsigned char matmul_q6_k_f32_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
    @@ -108637,9 +112333,9 @@ unsigned char matmul_q6_k_f32_data[] = {
     0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
     0x10,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x6e,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x73,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x78,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
     0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x7d,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    @@ -108733,7 +112429,7 @@ unsigned char matmul_q6_k_f32_data[] = {
     0x8b,0x01,0x00,0x00,0x51,0x00,0x00,0x00,0x8a,0x01,0x00,0x00,
     0x00,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x8c,0x01,0x00,0x00,0x84,0x00,0x00,0x00,0x8b,0x01,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x8d,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0x8c,0x01,0x00,0x00,
     0x6d,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0xab,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    @@ -108763,7 +112459,7 @@ unsigned char matmul_q6_k_f32_data[] = {
     0xd5,0x01,0x00,0x00,0x6d,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0xd9,0x01,0x00,0x00,0x08,0x01,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xda,0x01,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xdd,0x01,0x00,0x00,
     0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xf8,0x01,0x00,0x00,
    @@ -108892,7 +112588,7 @@ unsigned char matmul_q6_k_f32_data[] = {
     0x94,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,
     0x84,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x9e,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x9e,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
     0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,
     0x14,0x00,0x00,0x00,0xa1,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,
    @@ -108950,530 +112646,528 @@ unsigned char matmul_q6_k_f32_data[] = {
     0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xea,0x00,0x00,0x00,
     0xe7,0x00,0x00,0x00,0x99,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0xea,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xec,0x00,0x00,0x00,0x26,0x03,0x00,0x00,0xeb,0x00,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xee,0x00,0x00,0x00,
     0xec,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,
    -0xf3,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xf6,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,
    -0xf4,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0xee,0x00,0x00,0x00,
    -0xfa,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xfe,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,
    -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x02,0x01,0x00,0x00,
    -0xfe,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x89,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,
    -0x01,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x07,0x01,0x00,0x00,0x05,0x01,0x00,0x00,0x06,0x01,0x00,0x00,
    -0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0b,0x01,0x00,0x00,
    -0xfe,0x00,0x00,0x00,0x0a,0x01,0x00,0x00,0x86,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x0d,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,
    -0x0c,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x11,0x01,0x00,0x00,0x05,0x01,0x00,0x00,0x0a,0x01,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x12,0x01,0x00,0x00,
    -0x11,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x15,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,
    -0x02,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x17,0x01,0x00,0x00,0x15,0x01,0x00,0x00,0x12,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x19,0x01,0x00,0x00,
    -0x17,0x01,0x00,0x00,0x0d,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,0x02,0x01,0x00,0x00,
    -0x01,0x01,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x1e,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,0x06,0x01,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1f,0x01,0x00,0x00,
    -0x1e,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x20,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,
    -0x1f,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x23,0x01,0x00,0x00,0x02,0x01,0x00,0x00,0x06,0x01,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x26,0x01,0x00,0x00,
    -0x0b,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x27,0x01,0x00,0x00,0x23,0x01,0x00,0x00,
    -0x26,0x01,0x00,0x00,0x41,0x00,0x07,0x00,0x35,0x01,0x00,0x00,
    -0x36,0x01,0x00,0x00,0x33,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    -0xfb,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x2e,0x01,0x00,0x00,0x37,0x01,0x00,0x00,0x36,0x01,0x00,0x00,
    -0x73,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x38,0x01,0x00,0x00,
    -0x37,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x3b,0x01,0x00,0x00,
    -0x3c,0x01,0x00,0x00,0x33,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    -0xfb,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x19,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x2c,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,
    -0x3c,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    -0x3e,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,0x85,0x00,0x05,0x00,
    -0xc3,0x00,0x00,0x00,0x3f,0x01,0x00,0x00,0x38,0x01,0x00,0x00,
    -0x3e,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x49,0x01,0x00,0x00,
    -0x4a,0x01,0x00,0x00,0x33,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    -0xfb,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x20,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x29,0x01,0x00,0x00,0x4b,0x01,0x00,0x00,
    -0x4a,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x4e,0x01,0x00,0x00,0x07,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,
    -0xc2,0x00,0x05,0x00,0x29,0x01,0x00,0x00,0x4f,0x01,0x00,0x00,
    -0x4b,0x01,0x00,0x00,0x4e,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x50,0x01,0x00,0x00,0x4f,0x01,0x00,0x00,
    -0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x51,0x01,0x00,0x00,
    -0x50,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x15,0x00,0x00,0x00,
    -0x53,0x01,0x00,0x00,0x51,0x01,0x00,0x00,0x52,0x01,0x00,0x00,
    -0x41,0x00,0x08,0x00,0x49,0x01,0x00,0x00,0x56,0x01,0x00,0x00,
    -0x33,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0x27,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x29,0x01,0x00,0x00,0x57,0x01,0x00,0x00,0x56,0x01,0x00,0x00,
    -0xc2,0x00,0x05,0x00,0x29,0x01,0x00,0x00,0x59,0x01,0x00,0x00,
    -0x57,0x01,0x00,0x00,0x12,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x5a,0x01,0x00,0x00,0x59,0x01,0x00,0x00,
    -0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x5b,0x01,0x00,0x00,
    -0x5a,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x15,0x00,0x00,0x00,
    -0x5c,0x01,0x00,0x00,0x5b,0x01,0x00,0x00,0x97,0x00,0x00,0x00,
    -0xc4,0x00,0x05,0x00,0x15,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,
    -0x5c,0x01,0x00,0x00,0xa8,0x00,0x00,0x00,0xc5,0x00,0x05,0x00,
    -0x15,0x00,0x00,0x00,0x5e,0x01,0x00,0x00,0x53,0x01,0x00,0x00,
    -0x5d,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x2c,0x01,0x00,0x00,
    -0x5f,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,0x72,0x00,0x04,0x00,
    -0x15,0x00,0x00,0x00,0x60,0x01,0x00,0x00,0x5f,0x01,0x00,0x00,
    -0x82,0x00,0x05,0x00,0x15,0x00,0x00,0x00,0x62,0x01,0x00,0x00,
    -0x60,0x01,0x00,0x00,0x61,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,
    -0xc3,0x00,0x00,0x00,0x63,0x01,0x00,0x00,0x62,0x01,0x00,0x00,
    -0x85,0x00,0x05,0x00,0xc3,0x00,0x00,0x00,0x64,0x01,0x00,0x00,
    -0x3f,0x01,0x00,0x00,0x63,0x01,0x00,0x00,0x73,0x00,0x04,0x00,
    -0x2e,0x01,0x00,0x00,0x65,0x01,0x00,0x00,0x64,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x66,0x01,0x00,0x00,0x67,0x01,0x00,0x00,
    -0x44,0x01,0x00,0x00,0xf7,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x67,0x01,0x00,0x00,0x65,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x69,0x01,0x00,0x00,0xf7,0x00,0x00,0x00,
    -0x3a,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x6d,0x01,0x00,0x00,0x20,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,
    -0x41,0x00,0x08,0x00,0x49,0x01,0x00,0x00,0x6e,0x01,0x00,0x00,
    +0xf3,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xf7,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
    +0xee,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,0x89,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0xee,0x00,0x00,0x00,
    +0xfa,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x02,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,0x01,0x01,0x00,0x00,
    +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x05,0x01,0x00,0x00,
    +0xfe,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x07,0x01,0x00,0x00,0x05,0x01,0x00,0x00,
    +0x06,0x01,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x0b,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,0x0a,0x01,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0d,0x01,0x00,0x00,
    +0x0b,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x11,0x01,0x00,0x00,0x05,0x01,0x00,0x00,
    +0x0a,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x12,0x01,0x00,0x00,0x11,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x15,0x01,0x00,0x00,
    +0x0c,0x01,0x00,0x00,0x02,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x17,0x01,0x00,0x00,0x15,0x01,0x00,0x00,
    +0x12,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x19,0x01,0x00,0x00,0x17,0x01,0x00,0x00,0x0d,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,
    +0x02,0x01,0x00,0x00,0x01,0x01,0x00,0x00,0x89,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x1e,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,
    +0x06,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x1f,0x01,0x00,0x00,0x1e,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x20,0x01,0x00,0x00,
    +0x1c,0x01,0x00,0x00,0x1f,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x23,0x01,0x00,0x00,0x02,0x01,0x00,0x00,
    +0x06,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x26,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x27,0x01,0x00,0x00,
    +0x23,0x01,0x00,0x00,0x26,0x01,0x00,0x00,0x41,0x00,0x07,0x00,
    +0x35,0x01,0x00,0x00,0x36,0x01,0x00,0x00,0x33,0x01,0x00,0x00,
    +0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0x97,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x2e,0x01,0x00,0x00,0x37,0x01,0x00,0x00,
    +0x36,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    +0x38,0x01,0x00,0x00,0x37,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x3b,0x01,0x00,0x00,0x3c,0x01,0x00,0x00,0x33,0x01,0x00,0x00,
    +0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x19,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x2c,0x01,0x00,0x00,
    +0x3d,0x01,0x00,0x00,0x3c,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,
    +0xc3,0x00,0x00,0x00,0x3e,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,
    +0x85,0x00,0x05,0x00,0xc3,0x00,0x00,0x00,0x3f,0x01,0x00,0x00,
    +0x38,0x01,0x00,0x00,0x3e,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x49,0x01,0x00,0x00,0x4a,0x01,0x00,0x00,0x33,0x01,0x00,0x00,
    +0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0x35,0x00,0x00,0x00,
    +0x20,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x29,0x01,0x00,0x00,
    +0x4b,0x01,0x00,0x00,0x4a,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x4e,0x01,0x00,0x00,0x07,0x01,0x00,0x00,
    +0x4d,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x29,0x01,0x00,0x00,
    +0x4f,0x01,0x00,0x00,0x4b,0x01,0x00,0x00,0x4e,0x01,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x50,0x01,0x00,0x00,
    +0x4f,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    +0x51,0x01,0x00,0x00,0x50,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
    +0x15,0x00,0x00,0x00,0x53,0x01,0x00,0x00,0x51,0x01,0x00,0x00,
    +0x52,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x49,0x01,0x00,0x00,
    +0x56,0x01,0x00,0x00,0x33,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    +0xfb,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x27,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x29,0x01,0x00,0x00,0x57,0x01,0x00,0x00,
    +0x56,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x29,0x01,0x00,0x00,
    +0x59,0x01,0x00,0x00,0x57,0x01,0x00,0x00,0x12,0x01,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x5a,0x01,0x00,0x00,
    +0x59,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    +0x5b,0x01,0x00,0x00,0x5a,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
    +0x15,0x00,0x00,0x00,0x5c,0x01,0x00,0x00,0x5b,0x01,0x00,0x00,
    +0x97,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x15,0x00,0x00,0x00,
    +0x5d,0x01,0x00,0x00,0x5c,0x01,0x00,0x00,0xa8,0x00,0x00,0x00,
    +0xc5,0x00,0x05,0x00,0x15,0x00,0x00,0x00,0x5e,0x01,0x00,0x00,
    +0x53,0x01,0x00,0x00,0x5d,0x01,0x00,0x00,0x72,0x00,0x04,0x00,
    +0x2c,0x01,0x00,0x00,0x5f,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,
    +0x72,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x60,0x01,0x00,0x00,
    +0x5f,0x01,0x00,0x00,0x82,0x00,0x05,0x00,0x15,0x00,0x00,0x00,
    +0x62,0x01,0x00,0x00,0x60,0x01,0x00,0x00,0x61,0x01,0x00,0x00,
    +0x6f,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x63,0x01,0x00,0x00,
    +0x62,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0xc3,0x00,0x00,0x00,
    +0x64,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,0x63,0x01,0x00,0x00,
    +0x73,0x00,0x04,0x00,0x2e,0x01,0x00,0x00,0x65,0x01,0x00,0x00,
    +0x64,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x66,0x01,0x00,0x00,
    +0x67,0x01,0x00,0x00,0x44,0x01,0x00,0x00,0xf7,0x00,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x67,0x01,0x00,0x00,0x65,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x69,0x01,0x00,0x00,
    +0xf7,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x6d,0x01,0x00,0x00,0x20,0x01,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0x49,0x01,0x00,0x00,
    +0x6e,0x01,0x00,0x00,0x33,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    +0xfb,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x6d,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x29,0x01,0x00,0x00,0x6f,0x01,0x00,0x00,
    +0x6e,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x29,0x01,0x00,0x00,
    +0x72,0x01,0x00,0x00,0x6f,0x01,0x00,0x00,0x4e,0x01,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x73,0x01,0x00,0x00,
    +0x72,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    +0x74,0x01,0x00,0x00,0x73,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
    +0x15,0x00,0x00,0x00,0x75,0x01,0x00,0x00,0x74,0x01,0x00,0x00,
    +0x52,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x78,0x01,0x00,0x00,0x27,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x49,0x01,0x00,0x00,0x79,0x01,0x00,0x00,
     0x33,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
    -0x35,0x00,0x00,0x00,0x6d,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x29,0x01,0x00,0x00,0x6f,0x01,0x00,0x00,0x6e,0x01,0x00,0x00,
    -0xc2,0x00,0x05,0x00,0x29,0x01,0x00,0x00,0x72,0x01,0x00,0x00,
    -0x6f,0x01,0x00,0x00,0x4e,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x73,0x01,0x00,0x00,0x72,0x01,0x00,0x00,
    -0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x74,0x01,0x00,0x00,
    -0x73,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x15,0x00,0x00,0x00,
    -0x75,0x01,0x00,0x00,0x74,0x01,0x00,0x00,0x52,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x78,0x01,0x00,0x00,
    -0x27,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x49,0x01,0x00,0x00,0x79,0x01,0x00,0x00,0x33,0x01,0x00,0x00,
    -0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0x78,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x29,0x01,0x00,0x00,
    -0x7a,0x01,0x00,0x00,0x79,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,
    -0x29,0x01,0x00,0x00,0x7c,0x01,0x00,0x00,0x7a,0x01,0x00,0x00,
    -0x12,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x7d,0x01,0x00,0x00,0x7c,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    -0x15,0x00,0x00,0x00,0x7e,0x01,0x00,0x00,0x7d,0x01,0x00,0x00,
    -0xc7,0x00,0x05,0x00,0x15,0x00,0x00,0x00,0x7f,0x01,0x00,0x00,
    -0x7e,0x01,0x00,0x00,0x97,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,
    -0x15,0x00,0x00,0x00,0x80,0x01,0x00,0x00,0x7f,0x01,0x00,0x00,
    -0xa8,0x00,0x00,0x00,0xc5,0x00,0x05,0x00,0x15,0x00,0x00,0x00,
    -0x81,0x01,0x00,0x00,0x75,0x01,0x00,0x00,0x80,0x01,0x00,0x00,
    -0x72,0x00,0x04,0x00,0x2c,0x01,0x00,0x00,0x82,0x01,0x00,0x00,
    -0x81,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    -0x83,0x01,0x00,0x00,0x82,0x01,0x00,0x00,0x82,0x00,0x05,0x00,
    -0x15,0x00,0x00,0x00,0x84,0x01,0x00,0x00,0x83,0x01,0x00,0x00,
    -0x61,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    -0x85,0x01,0x00,0x00,0x84,0x01,0x00,0x00,0x85,0x00,0x05,0x00,
    -0xc3,0x00,0x00,0x00,0x86,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,
    -0x85,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x2e,0x01,0x00,0x00,
    -0x87,0x01,0x00,0x00,0x86,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x66,0x01,0x00,0x00,0x88,0x01,0x00,0x00,0x44,0x01,0x00,0x00,
    -0x69,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x88,0x01,0x00,0x00,
    -0x87,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x8f,0x01,0x00,0x00,0x22,0x03,0x00,0x00,0x8d,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xdc,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xde,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x91,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x91,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x23,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0xde,0x00,0x00,0x00,0xd8,0x01,0x00,0x00,0x94,0x01,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x97,0x01,0x00,0x00,
    -0x23,0x03,0x00,0x00,0xa6,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x93,0x01,0x00,0x00,0x94,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x97,0x01,0x00,0x00,0x92,0x01,0x00,0x00,
    -0x93,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x92,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9b,0x01,0x00,0x00,
    -0xa7,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x9d,0x01,0x00,0x00,0x9b,0x01,0x00,0x00,
    -0x23,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    -0x9e,0x01,0x00,0x00,0x14,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x9f,0x01,0x00,0x00,
    -0x9e,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0xa0,0x01,0x00,0x00,0x9d,0x01,0x00,0x00,0x9f,0x01,0x00,0x00,
    -0xf7,0x00,0x03,0x00,0xa2,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xa0,0x01,0x00,0x00,0xa1,0x01,0x00,0x00,
    -0xa2,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xa1,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa5,0x01,0x00,0x00,
    -0x12,0x03,0x00,0x00,0x79,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0xa7,0x01,0x00,0x00,0xa5,0x01,0x00,0x00,
    -0x8e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xa2,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xa2,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0xc1,0x00,0x00,0x00,0xa8,0x01,0x00,0x00,0xa0,0x01,0x00,0x00,
    -0x92,0x01,0x00,0x00,0xa7,0x01,0x00,0x00,0xa1,0x01,0x00,0x00,
    -0xf7,0x00,0x03,0x00,0xaa,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xa8,0x01,0x00,0x00,0xa9,0x01,0x00,0x00,
    -0xca,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xa9,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb2,0x01,0x00,0x00,
    -0x7e,0x00,0x00,0x00,0x23,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xb4,0x01,0x00,0x00,0xb2,0x01,0x00,0x00,
    -0xb3,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xb6,0x01,0x00,0x00,0xb4,0x01,0x00,0x00,0x79,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc1,0x01,0x00,0x00,
    -0xb2,0x01,0x00,0x00,0xaa,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xc2,0x01,0x00,0x00,0x2a,0x03,0x00,0x00,
    -0xc1,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xc4,0x01,0x00,0x00,0xc2,0x01,0x00,0x00,0x79,0x00,0x00,0x00,
    -0x41,0x00,0x06,0x00,0xc5,0x01,0x00,0x00,0xc6,0x01,0x00,0x00,
    -0xba,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0xc4,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0xc7,0x01,0x00,0x00,
    -0xc6,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x2e,0x01,0x00,0x00,
    -0xc8,0x01,0x00,0x00,0xc7,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x66,0x01,0x00,0x00,0xc9,0x01,0x00,0x00,0xaf,0x01,0x00,0x00,
    -0xb6,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xc9,0x01,0x00,0x00,
    -0xc8,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xaa,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xca,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xcd,0x01,0x00,0x00,0x7e,0x00,0x00,0x00,
    -0x23,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xcf,0x01,0x00,0x00,0xcd,0x01,0x00,0x00,0xce,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd1,0x01,0x00,0x00,
    -0xcf,0x01,0x00,0x00,0x79,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x66,0x01,0x00,0x00,0xd3,0x01,0x00,0x00,0xaf,0x01,0x00,0x00,
    -0xd1,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xd3,0x01,0x00,0x00,
    -0xd2,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xaa,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xaa,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x94,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x94,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd8,0x01,0x00,0x00,
    -0x23,0x03,0x00,0x00,0xd6,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x91,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x93,0x01,0x00,0x00,
    -0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0xd9,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xdc,0x01,0x00,0x00,0x26,0x03,0x00,0x00,0xda,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdf,0x01,0x00,0x00,
    -0x2a,0x03,0x00,0x00,0xdd,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xe1,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xe1,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x2c,0x03,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0x93,0x01,0x00,0x00,0x8b,0x02,0x00,0x00,
    -0xe4,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0xe7,0x01,0x00,0x00,0x2c,0x03,0x00,0x00,0x6d,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xe3,0x01,0x00,0x00,0xe4,0x01,0x00,0x00,
    -0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xe7,0x01,0x00,0x00,
    -0xe2,0x01,0x00,0x00,0xe3,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xe2,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xe9,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xe9,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x30,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0xe2,0x01,0x00,0x00,0x15,0x02,0x00,0x00,0xec,0x01,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xef,0x01,0x00,0x00,
    -0x30,0x03,0x00,0x00,0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xeb,0x01,0x00,0x00,0xec,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xef,0x01,0x00,0x00,0xea,0x01,0x00,0x00,
    -0xeb,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xea,0x01,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0x78,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x29,0x01,0x00,0x00,0x7a,0x01,0x00,0x00,0x79,0x01,0x00,0x00,
    +0xc2,0x00,0x05,0x00,0x29,0x01,0x00,0x00,0x7c,0x01,0x00,0x00,
    +0x7a,0x01,0x00,0x00,0x12,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x7d,0x01,0x00,0x00,0x7c,0x01,0x00,0x00,
    +0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x7e,0x01,0x00,0x00,
    +0x7d,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x15,0x00,0x00,0x00,
    +0x7f,0x01,0x00,0x00,0x7e,0x01,0x00,0x00,0x97,0x00,0x00,0x00,
    +0xc4,0x00,0x05,0x00,0x15,0x00,0x00,0x00,0x80,0x01,0x00,0x00,
    +0x7f,0x01,0x00,0x00,0xa8,0x00,0x00,0x00,0xc5,0x00,0x05,0x00,
    +0x15,0x00,0x00,0x00,0x81,0x01,0x00,0x00,0x75,0x01,0x00,0x00,
    +0x80,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x2c,0x01,0x00,0x00,
    +0x82,0x01,0x00,0x00,0x81,0x01,0x00,0x00,0x72,0x00,0x04,0x00,
    +0x15,0x00,0x00,0x00,0x83,0x01,0x00,0x00,0x82,0x01,0x00,0x00,
    +0x82,0x00,0x05,0x00,0x15,0x00,0x00,0x00,0x84,0x01,0x00,0x00,
    +0x83,0x01,0x00,0x00,0x61,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,
    +0xc3,0x00,0x00,0x00,0x85,0x01,0x00,0x00,0x84,0x01,0x00,0x00,
    +0x85,0x00,0x05,0x00,0xc3,0x00,0x00,0x00,0x86,0x01,0x00,0x00,
    +0x3f,0x01,0x00,0x00,0x85,0x01,0x00,0x00,0x73,0x00,0x04,0x00,
    +0x2e,0x01,0x00,0x00,0x87,0x01,0x00,0x00,0x86,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x66,0x01,0x00,0x00,0x88,0x01,0x00,0x00,
    +0x44,0x01,0x00,0x00,0x69,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x88,0x01,0x00,0x00,0x87,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x8f,0x01,0x00,0x00,0x22,0x03,0x00,0x00,
    +0x8d,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xdc,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xde,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x91,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x91,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x23,0x03,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0xde,0x00,0x00,0x00,0xd8,0x01,0x00,0x00,
    +0x94,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0x97,0x01,0x00,0x00,0x23,0x03,0x00,0x00,0xa6,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x93,0x01,0x00,0x00,0x94,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x97,0x01,0x00,0x00,
    +0x92,0x01,0x00,0x00,0x93,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x92,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x9b,0x01,0x00,0x00,0xa7,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9d,0x01,0x00,0x00,
    +0x9b,0x01,0x00,0x00,0x23,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x17,0x00,0x00,0x00,0x9e,0x01,0x00,0x00,0x14,0x00,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x9f,0x01,0x00,0x00,0x9e,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0xa0,0x01,0x00,0x00,0x9d,0x01,0x00,0x00,
    +0x9f,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,0xa2,0x01,0x00,0x00,
    +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xa0,0x01,0x00,0x00,
    +0xa1,0x01,0x00,0x00,0xa2,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xa1,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xa5,0x01,0x00,0x00,0x12,0x03,0x00,0x00,0x79,0x00,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xa7,0x01,0x00,0x00,
    +0xa5,0x01,0x00,0x00,0x8e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xa2,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xa2,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0xc1,0x00,0x00,0x00,0xa8,0x01,0x00,0x00,
    +0xa0,0x01,0x00,0x00,0x92,0x01,0x00,0x00,0xa7,0x01,0x00,0x00,
    +0xa1,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,0xaa,0x01,0x00,0x00,
    +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xa8,0x01,0x00,0x00,
    +0xa9,0x01,0x00,0x00,0xca,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xa9,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xb2,0x01,0x00,0x00,0x7e,0x00,0x00,0x00,0x23,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb4,0x01,0x00,0x00,
    +0xb2,0x01,0x00,0x00,0xb3,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xb6,0x01,0x00,0x00,0xb4,0x01,0x00,0x00,
    +0x79,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xc1,0x01,0x00,0x00,0xb2,0x01,0x00,0x00,0xaa,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc2,0x01,0x00,0x00,
    +0x2a,0x03,0x00,0x00,0xc1,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xc4,0x01,0x00,0x00,0xc2,0x01,0x00,0x00,
    +0x79,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xc5,0x01,0x00,0x00,
    +0xc6,0x01,0x00,0x00,0xba,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    +0xc4,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    +0xc7,0x01,0x00,0x00,0xc6,0x01,0x00,0x00,0x73,0x00,0x04,0x00,
    +0x2e,0x01,0x00,0x00,0xc8,0x01,0x00,0x00,0xc7,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x66,0x01,0x00,0x00,0xc9,0x01,0x00,0x00,
    +0xaf,0x01,0x00,0x00,0xb6,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0xc9,0x01,0x00,0x00,0xc8,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xaa,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xca,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xcd,0x01,0x00,0x00,
    +0x7e,0x00,0x00,0x00,0x23,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xcf,0x01,0x00,0x00,0xcd,0x01,0x00,0x00,
    +0xce,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xd1,0x01,0x00,0x00,0xcf,0x01,0x00,0x00,0x79,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x66,0x01,0x00,0x00,0xd3,0x01,0x00,0x00,
    +0xaf,0x01,0x00,0x00,0xd1,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0xd3,0x01,0x00,0x00,0xd2,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xaa,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xaa,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x94,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x94,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xd8,0x01,0x00,0x00,0x23,0x03,0x00,0x00,0xd6,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x91,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x93,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0xd9,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xdc,0x01,0x00,0x00,0x26,0x03,0x00,0x00,
    +0xda,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xdf,0x01,0x00,0x00,0x2a,0x03,0x00,0x00,0xdd,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xe1,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xe1,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x2c,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0x93,0x01,0x00,0x00,
    +0x8b,0x02,0x00,0x00,0xe4,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0xe7,0x01,0x00,0x00,0x2c,0x03,0x00,0x00,
    +0x6d,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xe3,0x01,0x00,0x00,
    +0xe4,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xe7,0x01,0x00,0x00,0xe2,0x01,0x00,0x00,0xe3,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xe2,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xe9,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xe9,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x30,0x03,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0xe2,0x01,0x00,0x00,0x15,0x02,0x00,0x00,
    +0xec,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0xef,0x01,0x00,0x00,0x30,0x03,0x00,0x00,0x61,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xeb,0x01,0x00,0x00,0xec,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xef,0x01,0x00,0x00,
    +0xea,0x01,0x00,0x00,0xeb,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xea,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xf1,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xf1,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x42,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0xea,0x01,0x00,0x00,0x13,0x02,0x00,0x00,0xf2,0x01,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xf7,0x01,0x00,0x00,
    +0x42,0x03,0x00,0x00,0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xf3,0x01,0x00,0x00,0xf2,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xf7,0x01,0x00,0x00,0xf2,0x01,0x00,0x00,
    +0xf3,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xf2,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfd,0x01,0x00,0x00,
    +0x30,0x03,0x00,0x00,0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xff,0x01,0x00,0x00,0xfd,0x01,0x00,0x00,
    +0x42,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x01,0x02,0x00,0x00,0x56,0x00,0x00,0x00,0x54,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x03,0x02,0x00,0x00,
    +0x30,0x03,0x00,0x00,0x62,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x04,0x02,0x00,0x00,0x01,0x02,0x00,0x00,
    +0x03,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x02,0x00,0x00,0x65,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x07,0x02,0x00,0x00,
    +0x04,0x02,0x00,0x00,0x06,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x09,0x02,0x00,0x00,0x07,0x02,0x00,0x00,
    +0x42,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x0b,0x02,0x00,0x00,0x09,0x02,0x00,0x00,0x0a,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0d,0x02,0x00,0x00,
    +0x0b,0x02,0x00,0x00,0x2c,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x66,0x01,0x00,0x00,0x0e,0x02,0x00,0x00,0x44,0x01,0x00,0x00,
    +0x0d,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x2e,0x01,0x00,0x00,
    +0x0f,0x02,0x00,0x00,0x0e,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x10,0x02,0x00,0x00,0x11,0x02,0x00,0x00,0xfb,0x01,0x00,0x00,
    +0xff,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x11,0x02,0x00,0x00,
    +0x0f,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x13,0x02,0x00,0x00,0x42,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
     0xf9,0x00,0x02,0x00,0xf1,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xf1,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x42,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0xea,0x01,0x00,0x00,
    -0x13,0x02,0x00,0x00,0xf2,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0xf7,0x01,0x00,0x00,0x42,0x03,0x00,0x00,
    -0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xf3,0x01,0x00,0x00,
    -0xf2,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xf7,0x01,0x00,0x00,0xf2,0x01,0x00,0x00,0xf3,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xf2,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xfd,0x01,0x00,0x00,0x30,0x03,0x00,0x00,
    -0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xff,0x01,0x00,0x00,0xfd,0x01,0x00,0x00,0x42,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x01,0x02,0x00,0x00,
    -0x56,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x03,0x02,0x00,0x00,0x30,0x03,0x00,0x00,
    -0x62,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x04,0x02,0x00,0x00,0x01,0x02,0x00,0x00,0x03,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x06,0x02,0x00,0x00,
    -0x65,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x07,0x02,0x00,0x00,0x04,0x02,0x00,0x00,
    -0x06,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x09,0x02,0x00,0x00,0x07,0x02,0x00,0x00,0x42,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0b,0x02,0x00,0x00,
    -0x09,0x02,0x00,0x00,0x0a,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x0d,0x02,0x00,0x00,0x0b,0x02,0x00,0x00,
    -0x2c,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x66,0x01,0x00,0x00,
    -0x0e,0x02,0x00,0x00,0x44,0x01,0x00,0x00,0x0d,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x2e,0x01,0x00,0x00,0x0f,0x02,0x00,0x00,
    -0x0e,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x10,0x02,0x00,0x00,
    -0x11,0x02,0x00,0x00,0xfb,0x01,0x00,0x00,0xff,0x01,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x11,0x02,0x00,0x00,0x0f,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x13,0x02,0x00,0x00,
    -0x42,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xf1,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xf3,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xec,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xec,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x15,0x02,0x00,0x00,0x30,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xe9,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xeb,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x17,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x17,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x31,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0xeb,0x01,0x00,0x00,0x43,0x02,0x00,0x00,0x1a,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x1d,0x02,0x00,0x00,
    -0x31,0x03,0x00,0x00,0xbe,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x19,0x02,0x00,0x00,0x1a,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x1d,0x02,0x00,0x00,0x18,0x02,0x00,0x00,
    -0x19,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x18,0x02,0x00,0x00,
    +0xf3,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xec,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xec,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x15,0x02,0x00,0x00,0x30,0x03,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xe9,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xeb,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x17,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x17,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x31,0x03,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0xeb,0x01,0x00,0x00,0x43,0x02,0x00,0x00,
    +0x1a,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0x1d,0x02,0x00,0x00,0x31,0x03,0x00,0x00,0xbe,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x19,0x02,0x00,0x00,0x1a,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x1d,0x02,0x00,0x00,
    +0x18,0x02,0x00,0x00,0x19,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x18,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x1f,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x1f,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x3f,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x18,0x02,0x00,0x00,0x41,0x02,0x00,0x00,0x20,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x25,0x02,0x00,0x00,
    +0x3f,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x21,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x25,0x02,0x00,0x00,0x20,0x02,0x00,0x00,
    +0x21,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x20,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2b,0x02,0x00,0x00,
    +0x31,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x2d,0x02,0x00,0x00,0x2b,0x02,0x00,0x00,
    +0x3f,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x2f,0x02,0x00,0x00,0x5a,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x32,0x02,0x00,0x00,
    +0x31,0x03,0x00,0x00,0x31,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x33,0x02,0x00,0x00,0x2f,0x02,0x00,0x00,
    +0x32,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x35,0x02,0x00,0x00,0x69,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x36,0x02,0x00,0x00,
    +0x33,0x02,0x00,0x00,0x35,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x38,0x02,0x00,0x00,0x36,0x02,0x00,0x00,
    +0x3f,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x3a,0x02,0x00,0x00,0x38,0x02,0x00,0x00,0x39,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3c,0x02,0x00,0x00,
    +0x3a,0x02,0x00,0x00,0x2c,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x66,0x01,0x00,0x00,0x3d,0x02,0x00,0x00,0xaf,0x01,0x00,0x00,
    +0x3c,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x2e,0x01,0x00,0x00,
    +0x3e,0x02,0x00,0x00,0x3d,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x10,0x02,0x00,0x00,0x3f,0x02,0x00,0x00,0x29,0x02,0x00,0x00,
    +0x2d,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0x3f,0x02,0x00,0x00,
    +0x3e,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x41,0x02,0x00,0x00,0x3f,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
     0xf9,0x00,0x02,0x00,0x1f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x1f,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x3f,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0x18,0x02,0x00,0x00,
    -0x41,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0x25,0x02,0x00,0x00,0x3f,0x03,0x00,0x00,
    -0xbb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x21,0x02,0x00,0x00,
    -0x20,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x25,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x21,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x20,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x2b,0x02,0x00,0x00,0x31,0x03,0x00,0x00,
    -0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x2d,0x02,0x00,0x00,0x2b,0x02,0x00,0x00,0x3f,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2f,0x02,0x00,0x00,
    -0x5a,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x32,0x02,0x00,0x00,0x31,0x03,0x00,0x00,
    +0x21,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x1a,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x1a,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x43,0x02,0x00,0x00,0x31,0x03,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x17,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x19,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x45,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x45,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x32,0x03,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0x19,0x02,0x00,0x00,0x89,0x02,0x00,0x00,
    +0x48,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0x4b,0x02,0x00,0x00,0x32,0x03,0x00,0x00,0xbe,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x47,0x02,0x00,0x00,0x48,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x4b,0x02,0x00,0x00,
    +0x46,0x02,0x00,0x00,0x47,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x46,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x4d,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x4d,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x36,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x46,0x02,0x00,0x00,0x87,0x02,0x00,0x00,0x50,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x53,0x02,0x00,0x00,
    +0x36,0x03,0x00,0x00,0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x4f,0x02,0x00,0x00,0x50,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x53,0x02,0x00,0x00,0x4e,0x02,0x00,0x00,
    +0x4f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x4e,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x55,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x55,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x38,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0x4e,0x02,0x00,0x00,
    +0x85,0x02,0x00,0x00,0x58,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0x5b,0x02,0x00,0x00,0x38,0x03,0x00,0x00,
    +0xbb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x57,0x02,0x00,0x00,
    +0x58,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x5b,0x02,0x00,0x00,0x56,0x02,0x00,0x00,0x57,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x56,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x5d,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x5d,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x3a,0x03,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0x56,0x02,0x00,0x00,0x83,0x02,0x00,0x00,
    +0x5e,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0x63,0x02,0x00,0x00,0x3a,0x03,0x00,0x00,0x63,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x5f,0x02,0x00,0x00,0x5e,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x63,0x02,0x00,0x00,
    +0x5e,0x02,0x00,0x00,0x5f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x5e,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x65,0x02,0x00,0x00,0x32,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x67,0x02,0x00,0x00,
    +0x65,0x02,0x00,0x00,0x38,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x69,0x02,0x00,0x00,0x67,0x02,0x00,0x00,
    +0x68,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x6b,0x02,0x00,0x00,0x36,0x03,0x00,0x00,0x63,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6c,0x02,0x00,0x00,
    +0x69,0x02,0x00,0x00,0x6b,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x6e,0x02,0x00,0x00,0x6c,0x02,0x00,0x00,
    +0x3a,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x72,0x02,0x00,0x00,0x6b,0x02,0x00,0x00,0x3a,0x03,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x10,0x02,0x00,0x00,0x73,0x02,0x00,0x00,
    +0xfb,0x01,0x00,0x00,0x72,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x2e,0x01,0x00,0x00,0x74,0x02,0x00,0x00,0x73,0x02,0x00,0x00,
    +0x73,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x75,0x02,0x00,0x00,
    +0x74,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x10,0x02,0x00,0x00,
    +0x7a,0x02,0x00,0x00,0x29,0x02,0x00,0x00,0x67,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x2e,0x01,0x00,0x00,0x7b,0x02,0x00,0x00,
    +0x7a,0x02,0x00,0x00,0x73,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    +0x7c,0x02,0x00,0x00,0x7b,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xcc,0x00,0x00,0x00,0x7e,0x02,0x00,0x00,0xc9,0x00,0x00,0x00,
    +0x6e,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    +0x7f,0x02,0x00,0x00,0x7e,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,
    +0xc3,0x00,0x00,0x00,0x80,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x32,0x00,0x00,0x00,0x75,0x02,0x00,0x00,0x7c,0x02,0x00,0x00,
    +0x7f,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0x7e,0x02,0x00,0x00,
    +0x80,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x83,0x02,0x00,0x00,0x3a,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x5d,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x5f,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x58,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x58,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x85,0x02,0x00,0x00,0x38,0x03,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x55,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x57,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x50,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x50,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x87,0x02,0x00,0x00,
    +0x36,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x4d,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x4f,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x48,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x48,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x89,0x02,0x00,0x00,0x32,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x45,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x47,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xe4,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xe4,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x8b,0x02,0x00,0x00,0x2c,0x03,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xe1,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xe3,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,
    +0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xd9,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xd6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xd6,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x8d,0x02,0x00,0x00,0x12,0x03,0x00,0x00,0x6d,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xd3,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xd5,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x92,0x02,0x00,0x00,0x56,0x00,0x00,0x00,0x54,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x93,0x02,0x00,0x00,
    +0x96,0x00,0x00,0x00,0x92,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x98,0x02,0x00,0x00,0x5a,0x00,0x00,0x00,
    +0xb8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x99,0x02,0x00,0x00,0xa7,0x00,0x00,0x00,0x98,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x9d,0x02,0x00,0x00,
    +0x14,0x00,0x00,0x00,0x9c,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x9e,0x02,0x00,0x00,0x9d,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9f,0x02,0x00,0x00,
    +0x0f,0x00,0x00,0x00,0x9e,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xa3,0x02,0x00,0x00,0x48,0x00,0x00,0x00,
    +0x9e,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,
    +0xa5,0x02,0x00,0x00,0xa4,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa6,0x02,0x00,0x00,
    +0xa5,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xa7,0x02,0x00,0x00,0xa3,0x02,0x00,0x00,0xa6,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa8,0x02,0x00,0x00,
    +0x9f,0x02,0x00,0x00,0xa7,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xaa,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xaa,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x13,0x03,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0x10,0x03,0x00,0x00,
    +0xad,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0xb0,0x02,0x00,0x00,0x13,0x03,0x00,0x00,0xbe,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xac,0x02,0x00,0x00,0xad,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xb0,0x02,0x00,0x00,
    +0xab,0x02,0x00,0x00,0xac,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xab,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xb2,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xb2,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x14,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0xab,0x02,0x00,0x00,0x0e,0x03,0x00,0x00,0xb5,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xb8,0x02,0x00,0x00,
    +0x14,0x03,0x00,0x00,0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xb4,0x02,0x00,0x00,0xb5,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xb8,0x02,0x00,0x00,0xb3,0x02,0x00,0x00,
    +0xb4,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xb3,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbc,0x02,0x00,0x00,
    +0x14,0x03,0x00,0x00,0x62,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xbd,0x02,0x00,0x00,0x93,0x02,0x00,0x00,
    +0xbc,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xbf,0x02,0x00,0x00,0x65,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc0,0x02,0x00,0x00,
    +0xbd,0x02,0x00,0x00,0xbf,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xc4,0x02,0x00,0x00,0x13,0x03,0x00,0x00,
     0x31,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x33,0x02,0x00,0x00,0x2f,0x02,0x00,0x00,0x32,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x35,0x02,0x00,0x00,
    +0xc5,0x02,0x00,0x00,0x99,0x02,0x00,0x00,0xc4,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc7,0x02,0x00,0x00,
     0x69,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x36,0x02,0x00,0x00,0x33,0x02,0x00,0x00,
    -0x35,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x38,0x02,0x00,0x00,0x36,0x02,0x00,0x00,0x3f,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3a,0x02,0x00,0x00,
    -0x38,0x02,0x00,0x00,0x39,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x3c,0x02,0x00,0x00,0x3a,0x02,0x00,0x00,
    -0x2c,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x66,0x01,0x00,0x00,
    -0x3d,0x02,0x00,0x00,0xaf,0x01,0x00,0x00,0x3c,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x2e,0x01,0x00,0x00,0x3e,0x02,0x00,0x00,
    -0x3d,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x10,0x02,0x00,0x00,
    -0x3f,0x02,0x00,0x00,0x29,0x02,0x00,0x00,0x2d,0x02,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x3f,0x02,0x00,0x00,0x3e,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x41,0x02,0x00,0x00,
    -0x3f,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x1f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x21,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x1a,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x1a,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x43,0x02,0x00,0x00,0x31,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x17,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x19,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x45,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x45,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x32,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0x19,0x02,0x00,0x00,0x89,0x02,0x00,0x00,0x48,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x4b,0x02,0x00,0x00,
    -0x32,0x03,0x00,0x00,0xbe,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x47,0x02,0x00,0x00,0x48,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x4b,0x02,0x00,0x00,0x46,0x02,0x00,0x00,
    -0x47,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x46,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x4d,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x4d,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x36,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0x46,0x02,0x00,0x00,
    -0x87,0x02,0x00,0x00,0x50,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0x53,0x02,0x00,0x00,0x36,0x03,0x00,0x00,
    -0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x4f,0x02,0x00,0x00,
    -0x50,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x53,0x02,0x00,0x00,0x4e,0x02,0x00,0x00,0x4f,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x4e,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x55,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x55,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x38,0x03,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0x4e,0x02,0x00,0x00,0x85,0x02,0x00,0x00,
    -0x58,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0x5b,0x02,0x00,0x00,0x38,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x57,0x02,0x00,0x00,0x58,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x5b,0x02,0x00,0x00,
    -0x56,0x02,0x00,0x00,0x57,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x56,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x5d,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x5d,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x3a,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0x56,0x02,0x00,0x00,0x83,0x02,0x00,0x00,0x5e,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x63,0x02,0x00,0x00,
    -0x3a,0x03,0x00,0x00,0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x5f,0x02,0x00,0x00,0x5e,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x63,0x02,0x00,0x00,0x5e,0x02,0x00,0x00,
    -0x5f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x5e,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x65,0x02,0x00,0x00,
    -0x32,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x67,0x02,0x00,0x00,0x65,0x02,0x00,0x00,
    -0x38,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x69,0x02,0x00,0x00,0x67,0x02,0x00,0x00,0x68,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6b,0x02,0x00,0x00,
    -0x36,0x03,0x00,0x00,0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x6c,0x02,0x00,0x00,0x69,0x02,0x00,0x00,
    -0x6b,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x6e,0x02,0x00,0x00,0x6c,0x02,0x00,0x00,0x3a,0x03,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x72,0x02,0x00,0x00,
    -0x6b,0x02,0x00,0x00,0x3a,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x10,0x02,0x00,0x00,0x73,0x02,0x00,0x00,0xfb,0x01,0x00,0x00,
    -0x72,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x2e,0x01,0x00,0x00,
    -0x74,0x02,0x00,0x00,0x73,0x02,0x00,0x00,0x73,0x00,0x04,0x00,
    -0xc3,0x00,0x00,0x00,0x75,0x02,0x00,0x00,0x74,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x10,0x02,0x00,0x00,0x7a,0x02,0x00,0x00,
    -0x29,0x02,0x00,0x00,0x67,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x2e,0x01,0x00,0x00,0x7b,0x02,0x00,0x00,0x7a,0x02,0x00,0x00,
    -0x73,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x7c,0x02,0x00,0x00,
    -0x7b,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,
    -0x7e,0x02,0x00,0x00,0xc9,0x00,0x00,0x00,0x6e,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x7f,0x02,0x00,0x00,
    -0x7e,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0xc3,0x00,0x00,0x00,
    -0x80,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,
    -0x75,0x02,0x00,0x00,0x7c,0x02,0x00,0x00,0x7f,0x02,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x7e,0x02,0x00,0x00,0x80,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x83,0x02,0x00,0x00,
    -0x3a,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x5d,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x5f,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x58,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x58,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x85,0x02,0x00,0x00,0x38,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x55,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x57,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x50,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x50,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x87,0x02,0x00,0x00,0x36,0x03,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x4d,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x4f,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x48,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x48,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x89,0x02,0x00,0x00,
    -0x32,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x45,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x47,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xe4,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xe4,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x8b,0x02,0x00,0x00,0x2c,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xe1,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xe3,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0xd9,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xd6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xd6,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8d,0x02,0x00,0x00,
    -0x12,0x03,0x00,0x00,0x6d,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xd3,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xd5,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x92,0x02,0x00,0x00,
    -0x56,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x93,0x02,0x00,0x00,0x96,0x00,0x00,0x00,
    -0x92,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x98,0x02,0x00,0x00,0x5a,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x99,0x02,0x00,0x00,
    -0xa7,0x00,0x00,0x00,0x98,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x17,0x00,0x00,0x00,0x9d,0x02,0x00,0x00,0x14,0x00,0x00,0x00,
    -0x9c,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x9e,0x02,0x00,0x00,0x9d,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x9f,0x02,0x00,0x00,0x0f,0x00,0x00,0x00,
    -0x9e,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xa3,0x02,0x00,0x00,0x48,0x00,0x00,0x00,0x9e,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,0xa5,0x02,0x00,0x00,
    -0xa4,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0xa6,0x02,0x00,0x00,0xa5,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa7,0x02,0x00,0x00,
    -0xa3,0x02,0x00,0x00,0xa6,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xa8,0x02,0x00,0x00,0x9f,0x02,0x00,0x00,
    -0xa7,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xaa,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xaa,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x13,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0xd5,0x00,0x00,0x00,0x10,0x03,0x00,0x00,0xad,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xb0,0x02,0x00,0x00,
    -0x13,0x03,0x00,0x00,0xbe,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xac,0x02,0x00,0x00,0xad,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xb0,0x02,0x00,0x00,0xab,0x02,0x00,0x00,
    -0xac,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xab,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xb2,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xb2,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x14,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0xab,0x02,0x00,0x00,
    -0x0e,0x03,0x00,0x00,0xb5,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0xb8,0x02,0x00,0x00,0x14,0x03,0x00,0x00,
    -0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xb4,0x02,0x00,0x00,
    -0xb5,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xb8,0x02,0x00,0x00,0xb3,0x02,0x00,0x00,0xb4,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xb3,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xbc,0x02,0x00,0x00,0x14,0x03,0x00,0x00,
    -0x62,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xbd,0x02,0x00,0x00,0x93,0x02,0x00,0x00,0xbc,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbf,0x02,0x00,0x00,
    -0x65,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xc0,0x02,0x00,0x00,0xbd,0x02,0x00,0x00,
    -0xbf,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xc4,0x02,0x00,0x00,0x13,0x03,0x00,0x00,0x31,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc5,0x02,0x00,0x00,
    -0x99,0x02,0x00,0x00,0xc4,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xc7,0x02,0x00,0x00,0x69,0x00,0x00,0x00,
    -0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xc8,0x02,0x00,0x00,0xc5,0x02,0x00,0x00,0xc7,0x02,0x00,0x00,
    +0x06,0x00,0x00,0x00,0xc8,0x02,0x00,0x00,0xc5,0x02,0x00,0x00,
    +0xc7,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xca,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xca,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x16,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0xb3,0x02,0x00,0x00,0x0c,0x03,0x00,0x00,0xcd,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xd0,0x02,0x00,0x00,
    +0x16,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xcc,0x02,0x00,0x00,0xcd,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xd0,0x02,0x00,0x00,0xcb,0x02,0x00,0x00,
    +0xcc,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xcb,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xd2,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xd2,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x18,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0xcb,0x02,0x00,0x00,
    +0x0a,0x03,0x00,0x00,0xd5,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0xd8,0x02,0x00,0x00,0x18,0x03,0x00,0x00,
    +0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xd4,0x02,0x00,0x00,
    +0xd5,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xd8,0x02,0x00,0x00,0xd3,0x02,0x00,0x00,0xd4,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xd3,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xdb,0x02,0x00,0x00,0xc0,0x02,0x00,0x00,
    +0x18,0x03,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0xde,0x02,0x00,0x00,0xdb,0x02,0x00,0x00,0x37,0x00,0x00,0x00,
    +0xf7,0x00,0x03,0x00,0xe0,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xde,0x02,0x00,0x00,0xdf,0x02,0x00,0x00,
    +0xe0,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xdf,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe3,0x02,0x00,0x00,
    +0xc8,0x02,0x00,0x00,0x16,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x17,0x00,0x00,0x00,0xe4,0x02,0x00,0x00,0x14,0x00,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0xe5,0x02,0x00,0x00,0xe4,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0xe6,0x02,0x00,0x00,0xe3,0x02,0x00,0x00,
    +0xe5,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xe0,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xe0,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0xc1,0x00,0x00,0x00,0xe7,0x02,0x00,0x00,0xde,0x02,0x00,0x00,
    +0xd3,0x02,0x00,0x00,0xe6,0x02,0x00,0x00,0xdf,0x02,0x00,0x00,
    +0xf7,0x00,0x03,0x00,0xe9,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xe7,0x02,0x00,0x00,0xe8,0x02,0x00,0x00,
    +0xe9,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xe8,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf1,0x02,0x00,0x00,
    +0xc8,0x02,0x00,0x00,0x16,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x17,0x00,0x00,0x00,0xf3,0x02,0x00,0x00,0x14,0x00,0x00,0x00,
    +0xf2,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0xf4,0x02,0x00,0x00,0xf3,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xf5,0x02,0x00,0x00,0xf1,0x02,0x00,0x00,
    +0xf4,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xf6,0x02,0x00,0x00,0xa8,0x02,0x00,0x00,0xf5,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf8,0x02,0x00,0x00,
    +0xf6,0x02,0x00,0x00,0xc0,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xfa,0x02,0x00,0x00,0xf8,0x02,0x00,0x00,
    +0x18,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xfc,0x02,0x00,0x00,0x13,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfe,0x02,0x00,0x00,
    +0xfc,0x02,0x00,0x00,0x16,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0xfe,0x02,0x00,0x00,
    +0xff,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x02,0x03,0x00,0x00,0x14,0x03,0x00,0x00,0x63,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x03,0x03,0x00,0x00,
    +0x00,0x03,0x00,0x00,0x02,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x05,0x03,0x00,0x00,0x03,0x03,0x00,0x00,
    +0x18,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,
    +0x06,0x03,0x00,0x00,0xc9,0x00,0x00,0x00,0x05,0x03,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x07,0x03,0x00,0x00,
    +0x06,0x03,0x00,0x00,0x41,0x00,0x06,0x00,0xc5,0x01,0x00,0x00,
    +0x08,0x03,0x00,0x00,0xed,0x02,0x00,0x00,0x35,0x00,0x00,0x00,
    +0xfa,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0x08,0x03,0x00,0x00,
    +0x07,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,0xe9,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xe9,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xd5,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xd5,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0a,0x03,0x00,0x00,
    +0x18,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xd2,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xd4,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xcd,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xcd,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x0c,0x03,0x00,0x00,0x16,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
     0xf9,0x00,0x02,0x00,0xca,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xca,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x16,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0xb3,0x02,0x00,0x00,
    -0x0c,0x03,0x00,0x00,0xcd,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0xd0,0x02,0x00,0x00,0x16,0x03,0x00,0x00,
    -0xbb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xcc,0x02,0x00,0x00,
    -0xcd,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xd0,0x02,0x00,0x00,0xcb,0x02,0x00,0x00,0xcc,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xcb,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xd2,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xd2,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x18,0x03,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0xcb,0x02,0x00,0x00,0x0a,0x03,0x00,0x00,
    -0xd5,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0xd8,0x02,0x00,0x00,0x18,0x03,0x00,0x00,0x63,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xd4,0x02,0x00,0x00,0xd5,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xd8,0x02,0x00,0x00,
    -0xd3,0x02,0x00,0x00,0xd4,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xd3,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xdb,0x02,0x00,0x00,0xc0,0x02,0x00,0x00,0x18,0x03,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xde,0x02,0x00,0x00,
    -0xdb,0x02,0x00,0x00,0x37,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,
    -0xe0,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xde,0x02,0x00,0x00,0xdf,0x02,0x00,0x00,0xe0,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xdf,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xe3,0x02,0x00,0x00,0xc8,0x02,0x00,0x00,
    -0x16,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    -0xe4,0x02,0x00,0x00,0x14,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xe5,0x02,0x00,0x00,
    -0xe4,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0xe6,0x02,0x00,0x00,0xe3,0x02,0x00,0x00,0xe5,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xe0,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xe0,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0xc1,0x00,0x00,0x00,
    -0xe7,0x02,0x00,0x00,0xde,0x02,0x00,0x00,0xd3,0x02,0x00,0x00,
    -0xe6,0x02,0x00,0x00,0xdf,0x02,0x00,0x00,0xf7,0x00,0x03,0x00,
    -0xe9,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xe7,0x02,0x00,0x00,0xe8,0x02,0x00,0x00,0xe9,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xe8,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xf1,0x02,0x00,0x00,0xc8,0x02,0x00,0x00,
    -0x16,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    -0xf3,0x02,0x00,0x00,0x14,0x00,0x00,0x00,0xf2,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xf4,0x02,0x00,0x00,
    -0xf3,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xf5,0x02,0x00,0x00,0xf1,0x02,0x00,0x00,0xf4,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf6,0x02,0x00,0x00,
    -0xa8,0x02,0x00,0x00,0xf5,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xf8,0x02,0x00,0x00,0xf6,0x02,0x00,0x00,
    -0xc0,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xfa,0x02,0x00,0x00,0xf8,0x02,0x00,0x00,0x18,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfc,0x02,0x00,0x00,
    -0x13,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xfe,0x02,0x00,0x00,0xfc,0x02,0x00,0x00,
    -0x16,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x00,0x03,0x00,0x00,0xfe,0x02,0x00,0x00,0xff,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x02,0x03,0x00,0x00,
    -0x14,0x03,0x00,0x00,0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x03,0x03,0x00,0x00,0x00,0x03,0x00,0x00,
    -0x02,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x05,0x03,0x00,0x00,0x03,0x03,0x00,0x00,0x18,0x03,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,0x06,0x03,0x00,0x00,
    -0xc9,0x00,0x00,0x00,0x05,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xc3,0x00,0x00,0x00,0x07,0x03,0x00,0x00,0x06,0x03,0x00,0x00,
    -0x41,0x00,0x06,0x00,0xc5,0x01,0x00,0x00,0x08,0x03,0x00,0x00,
    -0xed,0x02,0x00,0x00,0x35,0x00,0x00,0x00,0xfa,0x02,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x08,0x03,0x00,0x00,0x07,0x03,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xe9,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xe9,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xd5,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xd5,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x0a,0x03,0x00,0x00,0x18,0x03,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xd2,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xd4,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xcd,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xcd,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0c,0x03,0x00,0x00,
    -0x16,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xca,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xcc,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xb5,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xb5,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x0e,0x03,0x00,0x00,0x14,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xb2,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xb4,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xad,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xad,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x10,0x03,0x00,0x00,0x13,0x03,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xaa,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xac,0x02,0x00,0x00,0xfd,0x00,0x01,0x00,
    -0x38,0x00,0x01,0x00,
    +0xcc,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xb5,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xb5,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x0e,0x03,0x00,0x00,0x14,0x03,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xb2,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xb4,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xad,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xad,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x10,0x03,0x00,0x00,
    +0x13,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xaa,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xac,0x02,0x00,0x00,
    +0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
     };
    -const uint64_t matmul_q6_k_f32_len = 11764;
    +const uint64_t matmul_q6_k_f32_len = 11744;
     
     unsigned char matmul_q6_k_f32_aligned_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
    @@ -111624,9 +115318,9 @@ unsigned char matmul_q6_k_f32_fp32_data[] = {
     0x63,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x6d,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x6d,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x73,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x6d,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
     0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    @@ -111720,7 +115414,7 @@ unsigned char matmul_q6_k_f32_fp32_data[] = {
     0x06,0x00,0x00,0x00,0x89,0x01,0x00,0x00,0x51,0x00,0x00,0x00,
     0x88,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x8a,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    -0x89,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x89,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x8b,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
     0x8a,0x01,0x00,0x00,0x6d,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0xa9,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
    @@ -111749,7 +115443,7 @@ unsigned char matmul_q6_k_f32_fp32_data[] = {
     0xd1,0x01,0x00,0x00,0x6d,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0xd5,0x01,0x00,0x00,0x08,0x01,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xd6,0x01,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xd9,0x01,0x00,0x00,
     0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xf4,0x01,0x00,0x00,
    @@ -111877,7 +115571,7 @@ unsigned char matmul_q6_k_f32_fp32_data[] = {
     0x9a,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x9d,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9e,0x00,0x00,0x00,
    -0x9d,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x9d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
     0x17,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
     0xa1,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0xa3,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    @@ -111934,524 +115628,522 @@ unsigned char matmul_q6_k_f32_fp32_data[] = {
     0x74,0x00,0x00,0x00,0x1b,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xea,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,
     0x99,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xeb,0x00,0x00,0x00,0xea,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0xeb,0x00,0x00,0x00,0xea,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xec,0x00,0x00,0x00,
     0x1f,0x03,0x00,0x00,0xeb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0xec,0x00,0x00,0x00,
     0x6f,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xf4,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,
    -0x6f,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,
    -0xf6,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xfb,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,
    -0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,
    -0xee,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x02,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,
    +0xf4,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0xee,0x00,0x00,0x00,
    +0xfa,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xfe,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x02,0x01,0x00,0x00,
    +0xfe,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x89,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,
    +0x01,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x07,0x01,0x00,0x00,0x05,0x01,0x00,0x00,0x06,0x01,0x00,0x00,
    +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0b,0x01,0x00,0x00,
    +0xfe,0x00,0x00,0x00,0x0a,0x01,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x0d,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,
    +0x0c,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x11,0x01,0x00,0x00,0x05,0x01,0x00,0x00,0x0a,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x12,0x01,0x00,0x00,
    +0x11,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x15,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,
    +0x02,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x17,0x01,0x00,0x00,0x15,0x01,0x00,0x00,0x12,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x19,0x01,0x00,0x00,
    +0x17,0x01,0x00,0x00,0x0d,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,0x02,0x01,0x00,0x00,
     0x01,0x01,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x05,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,0x01,0x01,0x00,0x00,
    -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x07,0x01,0x00,0x00,
    -0x05,0x01,0x00,0x00,0x06,0x01,0x00,0x00,0x89,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x0b,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,
    -0x0a,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x0d,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,
    -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x11,0x01,0x00,0x00,
    -0x05,0x01,0x00,0x00,0x0a,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x12,0x01,0x00,0x00,0x11,0x01,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x15,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,0x02,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x17,0x01,0x00,0x00,
    -0x15,0x01,0x00,0x00,0x12,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x19,0x01,0x00,0x00,0x17,0x01,0x00,0x00,
    -0x0d,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x1c,0x01,0x00,0x00,0x02,0x01,0x00,0x00,0x01,0x01,0x00,0x00,
    -0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1e,0x01,0x00,0x00,
    -0xfe,0x00,0x00,0x00,0x06,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x1f,0x01,0x00,0x00,0x1e,0x01,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x20,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,0x1f,0x01,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x23,0x01,0x00,0x00,
    -0x02,0x01,0x00,0x00,0x06,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x26,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x27,0x01,0x00,0x00,0x23,0x01,0x00,0x00,0x26,0x01,0x00,0x00,
    -0x41,0x00,0x07,0x00,0x35,0x01,0x00,0x00,0x36,0x01,0x00,0x00,
    -0x33,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
    -0x97,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x2e,0x01,0x00,0x00,
    -0x37,0x01,0x00,0x00,0x36,0x01,0x00,0x00,0x73,0x00,0x04,0x00,
    -0xc3,0x00,0x00,0x00,0x38,0x01,0x00,0x00,0x37,0x01,0x00,0x00,
    -0x41,0x00,0x08,0x00,0x3b,0x01,0x00,0x00,0x3c,0x01,0x00,0x00,
    -0x33,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x19,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x2c,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,0x3c,0x01,0x00,0x00,
    -0x6f,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x3e,0x01,0x00,0x00,
    -0x3d,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0xc3,0x00,0x00,0x00,
    -0x3f,0x01,0x00,0x00,0x38,0x01,0x00,0x00,0x3e,0x01,0x00,0x00,
    -0x41,0x00,0x08,0x00,0x49,0x01,0x00,0x00,0x4a,0x01,0x00,0x00,
    +0x1e,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,0x06,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1f,0x01,0x00,0x00,
    +0x1e,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x20,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,
    +0x1f,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x23,0x01,0x00,0x00,0x02,0x01,0x00,0x00,0x06,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x26,0x01,0x00,0x00,
    +0x0b,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x27,0x01,0x00,0x00,0x23,0x01,0x00,0x00,
    +0x26,0x01,0x00,0x00,0x41,0x00,0x07,0x00,0x35,0x01,0x00,0x00,
    +0x36,0x01,0x00,0x00,0x33,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    +0xfb,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x2e,0x01,0x00,0x00,0x37,0x01,0x00,0x00,0x36,0x01,0x00,0x00,
    +0x73,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x38,0x01,0x00,0x00,
    +0x37,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x3b,0x01,0x00,0x00,
    +0x3c,0x01,0x00,0x00,0x33,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    +0xfb,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x19,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x2c,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,
    +0x3c,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    +0x3e,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,0x85,0x00,0x05,0x00,
    +0xc3,0x00,0x00,0x00,0x3f,0x01,0x00,0x00,0x38,0x01,0x00,0x00,
    +0x3e,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x49,0x01,0x00,0x00,
    +0x4a,0x01,0x00,0x00,0x33,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    +0xfb,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x20,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x29,0x01,0x00,0x00,0x4b,0x01,0x00,0x00,
    +0x4a,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x4e,0x01,0x00,0x00,0x07,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,
    +0xc2,0x00,0x05,0x00,0x29,0x01,0x00,0x00,0x4f,0x01,0x00,0x00,
    +0x4b,0x01,0x00,0x00,0x4e,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x50,0x01,0x00,0x00,0x4f,0x01,0x00,0x00,
    +0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x51,0x01,0x00,0x00,
    +0x50,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x15,0x00,0x00,0x00,
    +0x53,0x01,0x00,0x00,0x51,0x01,0x00,0x00,0x52,0x01,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x49,0x01,0x00,0x00,0x56,0x01,0x00,0x00,
     0x33,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
    -0x35,0x00,0x00,0x00,0x20,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x29,0x01,0x00,0x00,0x4b,0x01,0x00,0x00,0x4a,0x01,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4e,0x01,0x00,0x00,
    -0x07,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,
    -0x29,0x01,0x00,0x00,0x4f,0x01,0x00,0x00,0x4b,0x01,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0x27,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x29,0x01,0x00,0x00,0x57,0x01,0x00,0x00,0x56,0x01,0x00,0x00,
    +0xc2,0x00,0x05,0x00,0x29,0x01,0x00,0x00,0x59,0x01,0x00,0x00,
    +0x57,0x01,0x00,0x00,0x12,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x5a,0x01,0x00,0x00,0x59,0x01,0x00,0x00,
    +0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x5b,0x01,0x00,0x00,
    +0x5a,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x15,0x00,0x00,0x00,
    +0x5c,0x01,0x00,0x00,0x5b,0x01,0x00,0x00,0x97,0x00,0x00,0x00,
    +0xc4,0x00,0x05,0x00,0x15,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,
    +0x5c,0x01,0x00,0x00,0xa8,0x00,0x00,0x00,0xc5,0x00,0x05,0x00,
    +0x15,0x00,0x00,0x00,0x5e,0x01,0x00,0x00,0x53,0x01,0x00,0x00,
    +0x5d,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x2c,0x01,0x00,0x00,
    +0x5f,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,0x72,0x00,0x04,0x00,
    +0x15,0x00,0x00,0x00,0x60,0x01,0x00,0x00,0x5f,0x01,0x00,0x00,
    +0x82,0x00,0x05,0x00,0x15,0x00,0x00,0x00,0x62,0x01,0x00,0x00,
    +0x60,0x01,0x00,0x00,0x61,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,
    +0xc3,0x00,0x00,0x00,0x63,0x01,0x00,0x00,0x62,0x01,0x00,0x00,
    +0x85,0x00,0x05,0x00,0xc3,0x00,0x00,0x00,0x64,0x01,0x00,0x00,
    +0x3f,0x01,0x00,0x00,0x63,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x65,0x01,0x00,0x00,0x66,0x01,0x00,0x00,0x44,0x01,0x00,0x00,
    +0xf7,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0x66,0x01,0x00,0x00,
    +0x64,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x68,0x01,0x00,0x00,0xf7,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6c,0x01,0x00,0x00,
    +0x20,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x49,0x01,0x00,0x00,0x6d,0x01,0x00,0x00,0x33,0x01,0x00,0x00,
    +0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0x35,0x00,0x00,0x00,
    +0x6c,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x29,0x01,0x00,0x00,
    +0x6e,0x01,0x00,0x00,0x6d,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,
    +0x29,0x01,0x00,0x00,0x71,0x01,0x00,0x00,0x6e,0x01,0x00,0x00,
     0x4e,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x50,0x01,0x00,0x00,0x4f,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    -0x15,0x00,0x00,0x00,0x51,0x01,0x00,0x00,0x50,0x01,0x00,0x00,
    -0xc7,0x00,0x05,0x00,0x15,0x00,0x00,0x00,0x53,0x01,0x00,0x00,
    -0x51,0x01,0x00,0x00,0x52,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x49,0x01,0x00,0x00,0x56,0x01,0x00,0x00,0x33,0x01,0x00,0x00,
    -0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0x27,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x29,0x01,0x00,0x00,
    -0x57,0x01,0x00,0x00,0x56,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,
    -0x29,0x01,0x00,0x00,0x59,0x01,0x00,0x00,0x57,0x01,0x00,0x00,
    -0x12,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x5a,0x01,0x00,0x00,0x59,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    -0x15,0x00,0x00,0x00,0x5b,0x01,0x00,0x00,0x5a,0x01,0x00,0x00,
    -0xc7,0x00,0x05,0x00,0x15,0x00,0x00,0x00,0x5c,0x01,0x00,0x00,
    -0x5b,0x01,0x00,0x00,0x97,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,
    -0x15,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,0x5c,0x01,0x00,0x00,
    -0xa8,0x00,0x00,0x00,0xc5,0x00,0x05,0x00,0x15,0x00,0x00,0x00,
    -0x5e,0x01,0x00,0x00,0x53,0x01,0x00,0x00,0x5d,0x01,0x00,0x00,
    -0x72,0x00,0x04,0x00,0x2c,0x01,0x00,0x00,0x5f,0x01,0x00,0x00,
    -0x5e,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    -0x60,0x01,0x00,0x00,0x5f,0x01,0x00,0x00,0x82,0x00,0x05,0x00,
    -0x15,0x00,0x00,0x00,0x62,0x01,0x00,0x00,0x60,0x01,0x00,0x00,
    -0x61,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    -0x63,0x01,0x00,0x00,0x62,0x01,0x00,0x00,0x85,0x00,0x05,0x00,
    -0xc3,0x00,0x00,0x00,0x64,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,
    -0x63,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x65,0x01,0x00,0x00,
    -0x66,0x01,0x00,0x00,0x44,0x01,0x00,0x00,0xf7,0x00,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x66,0x01,0x00,0x00,0x64,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x68,0x01,0x00,0x00,
    -0xf7,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x6c,0x01,0x00,0x00,0x20,0x01,0x00,0x00,
    +0x72,0x01,0x00,0x00,0x71,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
    +0x15,0x00,0x00,0x00,0x73,0x01,0x00,0x00,0x72,0x01,0x00,0x00,
    +0xc7,0x00,0x05,0x00,0x15,0x00,0x00,0x00,0x74,0x01,0x00,0x00,
    +0x73,0x01,0x00,0x00,0x52,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x77,0x01,0x00,0x00,0x27,0x01,0x00,0x00,
     0x3a,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0x49,0x01,0x00,0x00,
    -0x6d,0x01,0x00,0x00,0x33,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    -0xfb,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x6c,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x29,0x01,0x00,0x00,0x6e,0x01,0x00,0x00,
    -0x6d,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x29,0x01,0x00,0x00,
    -0x71,0x01,0x00,0x00,0x6e,0x01,0x00,0x00,0x4e,0x01,0x00,0x00,
    -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x72,0x01,0x00,0x00,
    -0x71,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    -0x73,0x01,0x00,0x00,0x72,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
    -0x15,0x00,0x00,0x00,0x74,0x01,0x00,0x00,0x73,0x01,0x00,0x00,
    -0x52,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x77,0x01,0x00,0x00,0x27,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,
    -0x41,0x00,0x08,0x00,0x49,0x01,0x00,0x00,0x78,0x01,0x00,0x00,
    -0x33,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0x77,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x29,0x01,0x00,0x00,0x79,0x01,0x00,0x00,0x78,0x01,0x00,0x00,
    -0xc2,0x00,0x05,0x00,0x29,0x01,0x00,0x00,0x7b,0x01,0x00,0x00,
    -0x79,0x01,0x00,0x00,0x12,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x7c,0x01,0x00,0x00,0x7b,0x01,0x00,0x00,
    -0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x7d,0x01,0x00,0x00,
    -0x7c,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x15,0x00,0x00,0x00,
    -0x7e,0x01,0x00,0x00,0x7d,0x01,0x00,0x00,0x97,0x00,0x00,0x00,
    -0xc4,0x00,0x05,0x00,0x15,0x00,0x00,0x00,0x7f,0x01,0x00,0x00,
    -0x7e,0x01,0x00,0x00,0xa8,0x00,0x00,0x00,0xc5,0x00,0x05,0x00,
    -0x15,0x00,0x00,0x00,0x80,0x01,0x00,0x00,0x74,0x01,0x00,0x00,
    -0x7f,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x2c,0x01,0x00,0x00,
    -0x81,0x01,0x00,0x00,0x80,0x01,0x00,0x00,0x72,0x00,0x04,0x00,
    -0x15,0x00,0x00,0x00,0x82,0x01,0x00,0x00,0x81,0x01,0x00,0x00,
    -0x82,0x00,0x05,0x00,0x15,0x00,0x00,0x00,0x83,0x01,0x00,0x00,
    -0x82,0x01,0x00,0x00,0x61,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,
    -0xc3,0x00,0x00,0x00,0x84,0x01,0x00,0x00,0x83,0x01,0x00,0x00,
    -0x85,0x00,0x05,0x00,0xc3,0x00,0x00,0x00,0x85,0x01,0x00,0x00,
    -0x3f,0x01,0x00,0x00,0x84,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x65,0x01,0x00,0x00,0x86,0x01,0x00,0x00,0x44,0x01,0x00,0x00,
    -0x68,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x86,0x01,0x00,0x00,
    -0x85,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x8d,0x01,0x00,0x00,0x1b,0x03,0x00,0x00,0x8b,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xdc,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xde,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x8f,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x8f,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x1c,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0xde,0x00,0x00,0x00,0xd4,0x01,0x00,0x00,0x92,0x01,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x95,0x01,0x00,0x00,
    -0x1c,0x03,0x00,0x00,0xa6,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x91,0x01,0x00,0x00,0x92,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x95,0x01,0x00,0x00,0x90,0x01,0x00,0x00,
    -0x91,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x90,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x99,0x01,0x00,0x00,
    -0xa7,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x9b,0x01,0x00,0x00,0x99,0x01,0x00,0x00,
    -0x1c,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    -0x9c,0x01,0x00,0x00,0x14,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x9d,0x01,0x00,0x00,
    -0x9c,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0x9e,0x01,0x00,0x00,0x9b,0x01,0x00,0x00,0x9d,0x01,0x00,0x00,
    -0xf7,0x00,0x03,0x00,0xa0,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x9e,0x01,0x00,0x00,0x9f,0x01,0x00,0x00,
    -0xa0,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x9f,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa3,0x01,0x00,0x00,
    -0x0b,0x03,0x00,0x00,0x79,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0xa5,0x01,0x00,0x00,0xa3,0x01,0x00,0x00,
    -0x8e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xa0,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xa0,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0xc1,0x00,0x00,0x00,0xa6,0x01,0x00,0x00,0x9e,0x01,0x00,0x00,
    -0x90,0x01,0x00,0x00,0xa5,0x01,0x00,0x00,0x9f,0x01,0x00,0x00,
    -0xf7,0x00,0x03,0x00,0xa8,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xa6,0x01,0x00,0x00,0xa7,0x01,0x00,0x00,
    -0xc7,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xa7,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb0,0x01,0x00,0x00,
    -0x7e,0x00,0x00,0x00,0x1c,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xb2,0x01,0x00,0x00,0xb0,0x01,0x00,0x00,
    -0xb1,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xb4,0x01,0x00,0x00,0xb2,0x01,0x00,0x00,0x79,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbf,0x01,0x00,0x00,
    -0xb0,0x01,0x00,0x00,0xaa,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xc0,0x01,0x00,0x00,0x23,0x03,0x00,0x00,
    -0xbf,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xc2,0x01,0x00,0x00,0xc0,0x01,0x00,0x00,0x79,0x00,0x00,0x00,
    -0x41,0x00,0x06,0x00,0xc3,0x01,0x00,0x00,0xc4,0x01,0x00,0x00,
    -0xb8,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0xc2,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0xc5,0x01,0x00,0x00,
    -0xc4,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x65,0x01,0x00,0x00,
    -0xc6,0x01,0x00,0x00,0xad,0x01,0x00,0x00,0xb4,0x01,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0xc6,0x01,0x00,0x00,0xc5,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xa8,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xc7,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xca,0x01,0x00,0x00,0x7e,0x00,0x00,0x00,0x1c,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xcc,0x01,0x00,0x00,
    -0xca,0x01,0x00,0x00,0xcb,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xce,0x01,0x00,0x00,0xcc,0x01,0x00,0x00,
    -0x79,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x65,0x01,0x00,0x00,
    -0xcf,0x01,0x00,0x00,0xad,0x01,0x00,0x00,0xce,0x01,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0xcf,0x01,0x00,0x00,0xcb,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xa8,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xa8,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x92,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x92,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xd4,0x01,0x00,0x00,0x1c,0x03,0x00,0x00,
    -0xd2,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x8f,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x91,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,
    -0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xd5,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd8,0x01,0x00,0x00,
    -0x1f,0x03,0x00,0x00,0xd6,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xdb,0x01,0x00,0x00,0x23,0x03,0x00,0x00,
    -0xd9,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xdd,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xdd,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x25,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0x91,0x01,0x00,0x00,0x84,0x02,0x00,0x00,0xe0,0x01,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xe3,0x01,0x00,0x00,
    -0x25,0x03,0x00,0x00,0x6d,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xdf,0x01,0x00,0x00,0xe0,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xe3,0x01,0x00,0x00,0xde,0x01,0x00,0x00,
    -0xdf,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xde,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xe5,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xe5,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x29,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0xde,0x01,0x00,0x00,
    -0x10,0x02,0x00,0x00,0xe8,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0xeb,0x01,0x00,0x00,0x29,0x03,0x00,0x00,
    -0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xe7,0x01,0x00,0x00,
    -0xe8,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xeb,0x01,0x00,0x00,0xe6,0x01,0x00,0x00,0xe7,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xe6,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xed,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xed,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x3b,0x03,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0xe6,0x01,0x00,0x00,0x0e,0x02,0x00,0x00,
    -0xee,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0xf3,0x01,0x00,0x00,0x3b,0x03,0x00,0x00,0x63,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xef,0x01,0x00,0x00,0xee,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xf3,0x01,0x00,0x00,
    -0xee,0x01,0x00,0x00,0xef,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xee,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xf9,0x01,0x00,0x00,0x29,0x03,0x00,0x00,0x63,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfb,0x01,0x00,0x00,
    -0xf9,0x01,0x00,0x00,0x3b,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xfd,0x01,0x00,0x00,0x56,0x00,0x00,0x00,
    -0x54,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xff,0x01,0x00,0x00,0x29,0x03,0x00,0x00,0x62,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x00,0x02,0x00,0x00,
    -0xfd,0x01,0x00,0x00,0xff,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x02,0x02,0x00,0x00,0x65,0x00,0x00,0x00,
    -0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x03,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x02,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x05,0x02,0x00,0x00,
    -0x03,0x02,0x00,0x00,0x3b,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x07,0x02,0x00,0x00,0x05,0x02,0x00,0x00,
    -0x06,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x09,0x02,0x00,0x00,0x07,0x02,0x00,0x00,0x25,0x03,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x65,0x01,0x00,0x00,0x0a,0x02,0x00,0x00,
    -0x44,0x01,0x00,0x00,0x09,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xc3,0x00,0x00,0x00,0x0b,0x02,0x00,0x00,0x0a,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,0x0c,0x02,0x00,0x00,
    -0xf7,0x01,0x00,0x00,0xfb,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x0c,0x02,0x00,0x00,0x0b,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x0e,0x02,0x00,0x00,0x3b,0x03,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xed,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xef,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xe8,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xe8,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x10,0x02,0x00,0x00,
    -0x29,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xe5,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xe7,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x12,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x12,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x2a,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0xe7,0x01,0x00,0x00,
    -0x3e,0x02,0x00,0x00,0x15,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0x18,0x02,0x00,0x00,0x2a,0x03,0x00,0x00,
    -0xbe,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x14,0x02,0x00,0x00,
    -0x15,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x18,0x02,0x00,0x00,0x13,0x02,0x00,0x00,0x14,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x13,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x1a,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x1a,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x38,0x03,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0x13,0x02,0x00,0x00,0x3c,0x02,0x00,0x00,
    -0x1b,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0x20,0x02,0x00,0x00,0x38,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x1c,0x02,0x00,0x00,0x1b,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x20,0x02,0x00,0x00,
    -0x1b,0x02,0x00,0x00,0x1c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x1b,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x26,0x02,0x00,0x00,0x2a,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x28,0x02,0x00,0x00,
    -0x26,0x02,0x00,0x00,0x38,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x2a,0x02,0x00,0x00,0x5a,0x00,0x00,0x00,
    -0xb8,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x2d,0x02,0x00,0x00,0x2a,0x03,0x00,0x00,0x2c,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2e,0x02,0x00,0x00,
    -0x2a,0x02,0x00,0x00,0x2d,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x30,0x02,0x00,0x00,0x69,0x00,0x00,0x00,
    -0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x31,0x02,0x00,0x00,0x2e,0x02,0x00,0x00,0x30,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x33,0x02,0x00,0x00,
    -0x31,0x02,0x00,0x00,0x38,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x35,0x02,0x00,0x00,0x33,0x02,0x00,0x00,
    -0x34,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x37,0x02,0x00,0x00,0x35,0x02,0x00,0x00,0x25,0x03,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x65,0x01,0x00,0x00,0x38,0x02,0x00,0x00,
    -0xad,0x01,0x00,0x00,0x37,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xc3,0x00,0x00,0x00,0x39,0x02,0x00,0x00,0x38,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,0x3a,0x02,0x00,0x00,
    -0x24,0x02,0x00,0x00,0x28,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x3a,0x02,0x00,0x00,0x39,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x3c,0x02,0x00,0x00,0x38,0x03,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x1a,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x1c,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x15,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x15,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3e,0x02,0x00,0x00,
    -0x2a,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x12,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x14,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x40,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x40,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x2b,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0x14,0x02,0x00,0x00,
    -0x82,0x02,0x00,0x00,0x43,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0x46,0x02,0x00,0x00,0x2b,0x03,0x00,0x00,
    -0xbe,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x42,0x02,0x00,0x00,
    -0x43,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x46,0x02,0x00,0x00,0x41,0x02,0x00,0x00,0x42,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x41,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x48,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x48,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x2f,0x03,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0x41,0x02,0x00,0x00,0x80,0x02,0x00,0x00,
    -0x4b,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0x4e,0x02,0x00,0x00,0x2f,0x03,0x00,0x00,0x61,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x4a,0x02,0x00,0x00,0x4b,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x4e,0x02,0x00,0x00,
    -0x49,0x02,0x00,0x00,0x4a,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x49,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x50,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x50,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x31,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0x49,0x02,0x00,0x00,0x7e,0x02,0x00,0x00,0x53,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x56,0x02,0x00,0x00,
    -0x31,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x52,0x02,0x00,0x00,0x53,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x56,0x02,0x00,0x00,0x51,0x02,0x00,0x00,
    -0x52,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x51,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x58,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x58,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x33,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0x51,0x02,0x00,0x00,
    -0x7c,0x02,0x00,0x00,0x59,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0x5e,0x02,0x00,0x00,0x33,0x03,0x00,0x00,
    -0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x5a,0x02,0x00,0x00,
    -0x59,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x5e,0x02,0x00,0x00,0x59,0x02,0x00,0x00,0x5a,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x59,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x60,0x02,0x00,0x00,0x2b,0x03,0x00,0x00,
    -0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x62,0x02,0x00,0x00,0x60,0x02,0x00,0x00,0x31,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x64,0x02,0x00,0x00,
    -0x62,0x02,0x00,0x00,0x63,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x66,0x02,0x00,0x00,0x2f,0x03,0x00,0x00,
    +0x78,0x01,0x00,0x00,0x33,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    +0xfb,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x77,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x29,0x01,0x00,0x00,0x79,0x01,0x00,0x00,
    +0x78,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x29,0x01,0x00,0x00,
    +0x7b,0x01,0x00,0x00,0x79,0x01,0x00,0x00,0x12,0x01,0x00,0x00,
    +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x7c,0x01,0x00,0x00,
    +0x7b,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    +0x7d,0x01,0x00,0x00,0x7c,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
    +0x15,0x00,0x00,0x00,0x7e,0x01,0x00,0x00,0x7d,0x01,0x00,0x00,
    +0x97,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x15,0x00,0x00,0x00,
    +0x7f,0x01,0x00,0x00,0x7e,0x01,0x00,0x00,0xa8,0x00,0x00,0x00,
    +0xc5,0x00,0x05,0x00,0x15,0x00,0x00,0x00,0x80,0x01,0x00,0x00,
    +0x74,0x01,0x00,0x00,0x7f,0x01,0x00,0x00,0x72,0x00,0x04,0x00,
    +0x2c,0x01,0x00,0x00,0x81,0x01,0x00,0x00,0x80,0x01,0x00,0x00,
    +0x72,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x82,0x01,0x00,0x00,
    +0x81,0x01,0x00,0x00,0x82,0x00,0x05,0x00,0x15,0x00,0x00,0x00,
    +0x83,0x01,0x00,0x00,0x82,0x01,0x00,0x00,0x61,0x01,0x00,0x00,
    +0x6f,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x84,0x01,0x00,0x00,
    +0x83,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0xc3,0x00,0x00,0x00,
    +0x85,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,0x84,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x65,0x01,0x00,0x00,0x86,0x01,0x00,0x00,
    +0x44,0x01,0x00,0x00,0x68,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x86,0x01,0x00,0x00,0x85,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x8d,0x01,0x00,0x00,0x1b,0x03,0x00,0x00,
    +0x8b,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xdc,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xde,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x8f,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x8f,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x1c,0x03,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0xde,0x00,0x00,0x00,0xd4,0x01,0x00,0x00,
    +0x92,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0x95,0x01,0x00,0x00,0x1c,0x03,0x00,0x00,0xa6,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x91,0x01,0x00,0x00,0x92,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x95,0x01,0x00,0x00,
    +0x90,0x01,0x00,0x00,0x91,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x90,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x99,0x01,0x00,0x00,0xa7,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9b,0x01,0x00,0x00,
    +0x99,0x01,0x00,0x00,0x1c,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x17,0x00,0x00,0x00,0x9c,0x01,0x00,0x00,0x14,0x00,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x9d,0x01,0x00,0x00,0x9c,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0x9e,0x01,0x00,0x00,0x9b,0x01,0x00,0x00,
    +0x9d,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,0xa0,0x01,0x00,0x00,
    +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x9e,0x01,0x00,0x00,
    +0x9f,0x01,0x00,0x00,0xa0,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x9f,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xa3,0x01,0x00,0x00,0x0b,0x03,0x00,0x00,0x79,0x00,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xa5,0x01,0x00,0x00,
    +0xa3,0x01,0x00,0x00,0x8e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xa0,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xa0,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0xc1,0x00,0x00,0x00,0xa6,0x01,0x00,0x00,
    +0x9e,0x01,0x00,0x00,0x90,0x01,0x00,0x00,0xa5,0x01,0x00,0x00,
    +0x9f,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,0xa8,0x01,0x00,0x00,
    +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xa6,0x01,0x00,0x00,
    +0xa7,0x01,0x00,0x00,0xc7,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xa7,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xb0,0x01,0x00,0x00,0x7e,0x00,0x00,0x00,0x1c,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb2,0x01,0x00,0x00,
    +0xb0,0x01,0x00,0x00,0xb1,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xb4,0x01,0x00,0x00,0xb2,0x01,0x00,0x00,
    +0x79,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xbf,0x01,0x00,0x00,0xb0,0x01,0x00,0x00,0xaa,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc0,0x01,0x00,0x00,
    +0x23,0x03,0x00,0x00,0xbf,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xc2,0x01,0x00,0x00,0xc0,0x01,0x00,0x00,
    +0x79,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xc3,0x01,0x00,0x00,
    +0xc4,0x01,0x00,0x00,0xb8,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    +0xc2,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    +0xc5,0x01,0x00,0x00,0xc4,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x65,0x01,0x00,0x00,0xc6,0x01,0x00,0x00,0xad,0x01,0x00,0x00,
    +0xb4,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xc6,0x01,0x00,0x00,
    +0xc5,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xa8,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xc7,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xca,0x01,0x00,0x00,0x7e,0x00,0x00,0x00,
    +0x1c,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xcc,0x01,0x00,0x00,0xca,0x01,0x00,0x00,0xcb,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xce,0x01,0x00,0x00,
    +0xcc,0x01,0x00,0x00,0x79,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x65,0x01,0x00,0x00,0xcf,0x01,0x00,0x00,0xad,0x01,0x00,0x00,
    +0xce,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xcf,0x01,0x00,0x00,
    +0xcb,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xa8,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xa8,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x92,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x92,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd4,0x01,0x00,0x00,
    +0x1c,0x03,0x00,0x00,0xd2,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x8f,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x91,0x01,0x00,0x00,
    +0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0xd5,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xd8,0x01,0x00,0x00,0x1f,0x03,0x00,0x00,0xd6,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdb,0x01,0x00,0x00,
    +0x23,0x03,0x00,0x00,0xd9,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xdd,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xdd,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x25,0x03,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0x91,0x01,0x00,0x00,0x84,0x02,0x00,0x00,
    +0xe0,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0xe3,0x01,0x00,0x00,0x25,0x03,0x00,0x00,0x6d,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xdf,0x01,0x00,0x00,0xe0,0x01,0x00,0x00,
    +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xe3,0x01,0x00,0x00,
    +0xde,0x01,0x00,0x00,0xdf,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xde,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xe5,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xe5,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x29,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0xde,0x01,0x00,0x00,0x10,0x02,0x00,0x00,0xe8,0x01,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xeb,0x01,0x00,0x00,
    +0x29,0x03,0x00,0x00,0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xe7,0x01,0x00,0x00,0xe8,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xeb,0x01,0x00,0x00,0xe6,0x01,0x00,0x00,
    +0xe7,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xe6,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xed,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xed,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x3b,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0xe6,0x01,0x00,0x00,
    +0x0e,0x02,0x00,0x00,0xee,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0xf3,0x01,0x00,0x00,0x3b,0x03,0x00,0x00,
    +0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xef,0x01,0x00,0x00,
    +0xee,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xf3,0x01,0x00,0x00,0xee,0x01,0x00,0x00,0xef,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xee,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xf9,0x01,0x00,0x00,0x29,0x03,0x00,0x00,
     0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x67,0x02,0x00,0x00,0x64,0x02,0x00,0x00,0x66,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x69,0x02,0x00,0x00,
    -0x67,0x02,0x00,0x00,0x33,0x03,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x6d,0x02,0x00,0x00,0x66,0x02,0x00,0x00,
    -0x33,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,
    -0x6e,0x02,0x00,0x00,0xf7,0x01,0x00,0x00,0x6d,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x6f,0x02,0x00,0x00,
    -0x6e,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,
    -0x74,0x02,0x00,0x00,0x24,0x02,0x00,0x00,0x62,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x75,0x02,0x00,0x00,
    -0x74,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,
    -0x77,0x02,0x00,0x00,0xc9,0x00,0x00,0x00,0x69,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x78,0x02,0x00,0x00,
    -0x77,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0xc3,0x00,0x00,0x00,
    -0x79,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,
    -0x6f,0x02,0x00,0x00,0x75,0x02,0x00,0x00,0x78,0x02,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x77,0x02,0x00,0x00,0x79,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7c,0x02,0x00,0x00,
    -0x33,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x58,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x5a,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x53,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x53,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x7e,0x02,0x00,0x00,0x31,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x50,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x52,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x4b,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x4b,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x80,0x02,0x00,0x00,0x2f,0x03,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x48,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x4a,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x43,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x43,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x82,0x02,0x00,0x00,
    -0x2b,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x40,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x42,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xe0,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xe0,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x84,0x02,0x00,0x00,0x25,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xdd,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xdf,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0xd5,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xd6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xd6,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x86,0x02,0x00,0x00,
    -0x0b,0x03,0x00,0x00,0x6d,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xd3,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xd5,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8b,0x02,0x00,0x00,
    -0x56,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x8c,0x02,0x00,0x00,0x96,0x00,0x00,0x00,
    -0x8b,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x91,0x02,0x00,0x00,0x5a,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x92,0x02,0x00,0x00,
    -0xa7,0x00,0x00,0x00,0x91,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x17,0x00,0x00,0x00,0x96,0x02,0x00,0x00,0x14,0x00,0x00,0x00,
    -0x95,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x97,0x02,0x00,0x00,0x96,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x98,0x02,0x00,0x00,0x0f,0x00,0x00,0x00,
    -0x97,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x9c,0x02,0x00,0x00,0x48,0x00,0x00,0x00,0x97,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,0x9e,0x02,0x00,0x00,
    -0x9d,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x9f,0x02,0x00,0x00,0x9e,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa0,0x02,0x00,0x00,
    -0x9c,0x02,0x00,0x00,0x9f,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xa1,0x02,0x00,0x00,0x98,0x02,0x00,0x00,
    -0xa0,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xa3,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xa3,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0x0c,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0xd5,0x00,0x00,0x00,0x09,0x03,0x00,0x00,0xa6,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xa9,0x02,0x00,0x00,
    -0x0c,0x03,0x00,0x00,0xbe,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xa5,0x02,0x00,0x00,0xa6,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xa9,0x02,0x00,0x00,0xa4,0x02,0x00,0x00,
    -0xa5,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xa4,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xab,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xab,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x0d,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0xa4,0x02,0x00,0x00,
    -0x07,0x03,0x00,0x00,0xae,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0xb1,0x02,0x00,0x00,0x0d,0x03,0x00,0x00,
    -0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xad,0x02,0x00,0x00,
    -0xae,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xb1,0x02,0x00,0x00,0xac,0x02,0x00,0x00,0xad,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xac,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xb5,0x02,0x00,0x00,0x0d,0x03,0x00,0x00,
    +0xfb,0x01,0x00,0x00,0xf9,0x01,0x00,0x00,0x3b,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfd,0x01,0x00,0x00,
    +0x56,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xff,0x01,0x00,0x00,0x29,0x03,0x00,0x00,
     0x62,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xb6,0x02,0x00,0x00,0x8c,0x02,0x00,0x00,0xb5,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb8,0x02,0x00,0x00,
    +0x00,0x02,0x00,0x00,0xfd,0x01,0x00,0x00,0xff,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x02,0x02,0x00,0x00,
     0x65,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xb9,0x02,0x00,0x00,0xb6,0x02,0x00,0x00,
    -0xb8,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xbd,0x02,0x00,0x00,0x0c,0x03,0x00,0x00,0x2c,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbe,0x02,0x00,0x00,
    -0x92,0x02,0x00,0x00,0xbd,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xc0,0x02,0x00,0x00,0x69,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x03,0x02,0x00,0x00,0x00,0x02,0x00,0x00,
    +0x02,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x05,0x02,0x00,0x00,0x03,0x02,0x00,0x00,0x3b,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x07,0x02,0x00,0x00,
    +0x05,0x02,0x00,0x00,0x06,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x09,0x02,0x00,0x00,0x07,0x02,0x00,0x00,
    +0x25,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x65,0x01,0x00,0x00,
    +0x0a,0x02,0x00,0x00,0x44,0x01,0x00,0x00,0x09,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x0b,0x02,0x00,0x00,
    +0x0a,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,
    +0x0c,0x02,0x00,0x00,0xf7,0x01,0x00,0x00,0xfb,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x0c,0x02,0x00,0x00,0x0b,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0e,0x02,0x00,0x00,
    +0x3b,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xed,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xef,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xe8,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xe8,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x10,0x02,0x00,0x00,0x29,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xe5,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xe7,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x12,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x12,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x2a,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0xe7,0x01,0x00,0x00,0x3e,0x02,0x00,0x00,0x15,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x18,0x02,0x00,0x00,
    +0x2a,0x03,0x00,0x00,0xbe,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x14,0x02,0x00,0x00,0x15,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x18,0x02,0x00,0x00,0x13,0x02,0x00,0x00,
    +0x14,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x13,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x1a,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x1a,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x38,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0x13,0x02,0x00,0x00,
    +0x3c,0x02,0x00,0x00,0x1b,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0x20,0x02,0x00,0x00,0x38,0x03,0x00,0x00,
    +0xbb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x1c,0x02,0x00,0x00,
    +0x1b,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x20,0x02,0x00,0x00,0x1b,0x02,0x00,0x00,0x1c,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x1b,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x26,0x02,0x00,0x00,0x2a,0x03,0x00,0x00,
     0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xc1,0x02,0x00,0x00,0xbe,0x02,0x00,0x00,0xc0,0x02,0x00,0x00,
    +0x28,0x02,0x00,0x00,0x26,0x02,0x00,0x00,0x38,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2a,0x02,0x00,0x00,
    +0x5a,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x2d,0x02,0x00,0x00,0x2a,0x03,0x00,0x00,
    +0x2c,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x2e,0x02,0x00,0x00,0x2a,0x02,0x00,0x00,0x2d,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x30,0x02,0x00,0x00,
    +0x69,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x31,0x02,0x00,0x00,0x2e,0x02,0x00,0x00,
    +0x30,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x33,0x02,0x00,0x00,0x31,0x02,0x00,0x00,0x38,0x03,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x35,0x02,0x00,0x00,
    +0x33,0x02,0x00,0x00,0x34,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x37,0x02,0x00,0x00,0x35,0x02,0x00,0x00,
    +0x25,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x65,0x01,0x00,0x00,
    +0x38,0x02,0x00,0x00,0xad,0x01,0x00,0x00,0x37,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x39,0x02,0x00,0x00,
    +0x38,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,
    +0x3a,0x02,0x00,0x00,0x24,0x02,0x00,0x00,0x28,0x02,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x3a,0x02,0x00,0x00,0x39,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3c,0x02,0x00,0x00,
    +0x38,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x1a,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x1c,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x15,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x15,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x3e,0x02,0x00,0x00,0x2a,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x12,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x14,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x40,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x40,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x2b,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x14,0x02,0x00,0x00,0x82,0x02,0x00,0x00,0x43,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x46,0x02,0x00,0x00,
    +0x2b,0x03,0x00,0x00,0xbe,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x42,0x02,0x00,0x00,0x43,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x46,0x02,0x00,0x00,0x41,0x02,0x00,0x00,
    +0x42,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x41,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x48,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x48,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x2f,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0x41,0x02,0x00,0x00,
    +0x80,0x02,0x00,0x00,0x4b,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0x4e,0x02,0x00,0x00,0x2f,0x03,0x00,0x00,
    +0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x4a,0x02,0x00,0x00,
    +0x4b,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x4e,0x02,0x00,0x00,0x49,0x02,0x00,0x00,0x4a,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x49,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x50,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x50,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x31,0x03,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0x49,0x02,0x00,0x00,0x7e,0x02,0x00,0x00,
    +0x53,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0x56,0x02,0x00,0x00,0x31,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x52,0x02,0x00,0x00,0x53,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x56,0x02,0x00,0x00,
    +0x51,0x02,0x00,0x00,0x52,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x51,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x58,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x58,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x33,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x51,0x02,0x00,0x00,0x7c,0x02,0x00,0x00,0x59,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x5e,0x02,0x00,0x00,
    +0x33,0x03,0x00,0x00,0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x5a,0x02,0x00,0x00,0x59,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x5e,0x02,0x00,0x00,0x59,0x02,0x00,0x00,
    +0x5a,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x59,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x60,0x02,0x00,0x00,
    +0x2b,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x62,0x02,0x00,0x00,0x60,0x02,0x00,0x00,
    +0x31,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x64,0x02,0x00,0x00,0x62,0x02,0x00,0x00,0x63,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x66,0x02,0x00,0x00,
    +0x2f,0x03,0x00,0x00,0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x67,0x02,0x00,0x00,0x64,0x02,0x00,0x00,
    +0x66,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x69,0x02,0x00,0x00,0x67,0x02,0x00,0x00,0x33,0x03,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6d,0x02,0x00,0x00,
    +0x66,0x02,0x00,0x00,0x33,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xcc,0x00,0x00,0x00,0x6e,0x02,0x00,0x00,0xf7,0x01,0x00,0x00,
    +0x6d,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    +0x6f,0x02,0x00,0x00,0x6e,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xcc,0x00,0x00,0x00,0x74,0x02,0x00,0x00,0x24,0x02,0x00,0x00,
    +0x62,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    +0x75,0x02,0x00,0x00,0x74,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xcc,0x00,0x00,0x00,0x77,0x02,0x00,0x00,0xc9,0x00,0x00,0x00,
    +0x69,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    +0x78,0x02,0x00,0x00,0x77,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,
    +0xc3,0x00,0x00,0x00,0x79,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x32,0x00,0x00,0x00,0x6f,0x02,0x00,0x00,0x75,0x02,0x00,0x00,
    +0x78,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0x77,0x02,0x00,0x00,
    +0x79,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x7c,0x02,0x00,0x00,0x33,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x58,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x5a,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x53,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x53,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x7e,0x02,0x00,0x00,0x31,0x03,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x50,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x52,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x4b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x4b,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x80,0x02,0x00,0x00,
    +0x2f,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x48,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x4a,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x43,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x43,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x82,0x02,0x00,0x00,0x2b,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x40,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x42,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xe0,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xe0,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x84,0x02,0x00,0x00,0x25,0x03,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xdd,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xdf,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,
    +0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xd5,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xd6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xd6,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x86,0x02,0x00,0x00,0x0b,0x03,0x00,0x00,0x6d,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xd3,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xd5,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x8b,0x02,0x00,0x00,0x56,0x00,0x00,0x00,0x54,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8c,0x02,0x00,0x00,
    +0x96,0x00,0x00,0x00,0x8b,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x91,0x02,0x00,0x00,0x5a,0x00,0x00,0x00,
    +0xb8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x92,0x02,0x00,0x00,0xa7,0x00,0x00,0x00,0x91,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x96,0x02,0x00,0x00,
    +0x14,0x00,0x00,0x00,0x95,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x97,0x02,0x00,0x00,0x96,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x98,0x02,0x00,0x00,
    +0x0f,0x00,0x00,0x00,0x97,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x9c,0x02,0x00,0x00,0x48,0x00,0x00,0x00,
    +0x97,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,
    +0x9e,0x02,0x00,0x00,0x9d,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x9f,0x02,0x00,0x00,
    +0x9e,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xa0,0x02,0x00,0x00,0x9c,0x02,0x00,0x00,0x9f,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa1,0x02,0x00,0x00,
    +0x98,0x02,0x00,0x00,0xa0,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xa3,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xa3,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x0c,0x03,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0x09,0x03,0x00,0x00,
    +0xa6,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0xa9,0x02,0x00,0x00,0x0c,0x03,0x00,0x00,0xbe,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xa5,0x02,0x00,0x00,0xa6,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xa9,0x02,0x00,0x00,
    +0xa4,0x02,0x00,0x00,0xa5,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xa4,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xab,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xab,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x0d,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0xa4,0x02,0x00,0x00,0x07,0x03,0x00,0x00,0xae,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xb1,0x02,0x00,0x00,
    +0x0d,0x03,0x00,0x00,0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xad,0x02,0x00,0x00,0xae,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xb1,0x02,0x00,0x00,0xac,0x02,0x00,0x00,
    +0xad,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xac,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb5,0x02,0x00,0x00,
    +0x0d,0x03,0x00,0x00,0x62,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xb6,0x02,0x00,0x00,0x8c,0x02,0x00,0x00,
    +0xb5,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xb8,0x02,0x00,0x00,0x65,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb9,0x02,0x00,0x00,
    +0xb6,0x02,0x00,0x00,0xb8,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xbd,0x02,0x00,0x00,0x0c,0x03,0x00,0x00,
    +0x2c,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xbe,0x02,0x00,0x00,0x92,0x02,0x00,0x00,0xbd,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc0,0x02,0x00,0x00,
    +0x69,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xc1,0x02,0x00,0x00,0xbe,0x02,0x00,0x00,
    +0xc0,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xc3,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xc3,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0x0f,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0xac,0x02,0x00,0x00,0x05,0x03,0x00,0x00,0xc6,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xc9,0x02,0x00,0x00,
    +0x0f,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xc5,0x02,0x00,0x00,0xc6,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xc9,0x02,0x00,0x00,0xc4,0x02,0x00,0x00,
    +0xc5,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xc4,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xcb,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xcb,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x11,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0xc4,0x02,0x00,0x00,
    +0x03,0x03,0x00,0x00,0xce,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0xd1,0x02,0x00,0x00,0x11,0x03,0x00,0x00,
    +0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xcd,0x02,0x00,0x00,
    +0xce,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xd1,0x02,0x00,0x00,0xcc,0x02,0x00,0x00,0xcd,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xcc,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xd4,0x02,0x00,0x00,0xb9,0x02,0x00,0x00,
    +0x11,0x03,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0xd7,0x02,0x00,0x00,0xd4,0x02,0x00,0x00,0x37,0x00,0x00,0x00,
    +0xf7,0x00,0x03,0x00,0xd9,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xd7,0x02,0x00,0x00,0xd8,0x02,0x00,0x00,
    +0xd9,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xd8,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdc,0x02,0x00,0x00,
    +0xc1,0x02,0x00,0x00,0x0f,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x17,0x00,0x00,0x00,0xdd,0x02,0x00,0x00,0x14,0x00,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0xde,0x02,0x00,0x00,0xdd,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0xdf,0x02,0x00,0x00,0xdc,0x02,0x00,0x00,
    +0xde,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xd9,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xd9,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0xc1,0x00,0x00,0x00,0xe0,0x02,0x00,0x00,0xd7,0x02,0x00,0x00,
    +0xcc,0x02,0x00,0x00,0xdf,0x02,0x00,0x00,0xd8,0x02,0x00,0x00,
    +0xf7,0x00,0x03,0x00,0xe2,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xe0,0x02,0x00,0x00,0xe1,0x02,0x00,0x00,
    +0xe2,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xe1,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xea,0x02,0x00,0x00,
    +0xc1,0x02,0x00,0x00,0x0f,0x03,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x17,0x00,0x00,0x00,0xec,0x02,0x00,0x00,0x14,0x00,0x00,0x00,
    +0xeb,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0xed,0x02,0x00,0x00,0xec,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xee,0x02,0x00,0x00,0xea,0x02,0x00,0x00,
    +0xed,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xef,0x02,0x00,0x00,0xa1,0x02,0x00,0x00,0xee,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf1,0x02,0x00,0x00,
    +0xef,0x02,0x00,0x00,0xb9,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xf3,0x02,0x00,0x00,0xf1,0x02,0x00,0x00,
    +0x11,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xf5,0x02,0x00,0x00,0x0c,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf7,0x02,0x00,0x00,
    +0xf5,0x02,0x00,0x00,0x0f,0x03,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xf9,0x02,0x00,0x00,0xf7,0x02,0x00,0x00,
    +0xf8,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xfb,0x02,0x00,0x00,0x0d,0x03,0x00,0x00,0x63,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfc,0x02,0x00,0x00,
    +0xf9,0x02,0x00,0x00,0xfb,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xfe,0x02,0x00,0x00,0xfc,0x02,0x00,0x00,
    +0x11,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,
    +0xff,0x02,0x00,0x00,0xc9,0x00,0x00,0x00,0xfe,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x00,0x03,0x00,0x00,
    +0xff,0x02,0x00,0x00,0x41,0x00,0x06,0x00,0xc3,0x01,0x00,0x00,
    +0x01,0x03,0x00,0x00,0xe6,0x02,0x00,0x00,0x35,0x00,0x00,0x00,
    +0xf3,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0x01,0x03,0x00,0x00,
    +0x00,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,0xe2,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xe2,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xce,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xce,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x03,0x03,0x00,0x00,
    +0x11,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xcb,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xcd,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xc6,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xc6,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x05,0x03,0x00,0x00,0x0f,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
     0xf9,0x00,0x02,0x00,0xc3,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xc3,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x0f,0x03,0x00,0x00,0x3f,0x00,0x00,0x00,0xac,0x02,0x00,0x00,
    -0x05,0x03,0x00,0x00,0xc6,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0xc9,0x02,0x00,0x00,0x0f,0x03,0x00,0x00,
    -0xbb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xc5,0x02,0x00,0x00,
    -0xc6,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xc9,0x02,0x00,0x00,0xc4,0x02,0x00,0x00,0xc5,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xc4,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xcb,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xcb,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x11,0x03,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0xc4,0x02,0x00,0x00,0x03,0x03,0x00,0x00,
    -0xce,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0xd1,0x02,0x00,0x00,0x11,0x03,0x00,0x00,0x63,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xcd,0x02,0x00,0x00,0xce,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xd1,0x02,0x00,0x00,
    -0xcc,0x02,0x00,0x00,0xcd,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xcc,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xd4,0x02,0x00,0x00,0xb9,0x02,0x00,0x00,0x11,0x03,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xd7,0x02,0x00,0x00,
    -0xd4,0x02,0x00,0x00,0x37,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,
    -0xd9,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xd7,0x02,0x00,0x00,0xd8,0x02,0x00,0x00,0xd9,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xd8,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xdc,0x02,0x00,0x00,0xc1,0x02,0x00,0x00,
    -0x0f,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    -0xdd,0x02,0x00,0x00,0x14,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xde,0x02,0x00,0x00,
    -0xdd,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0xdf,0x02,0x00,0x00,0xdc,0x02,0x00,0x00,0xde,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xd9,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xd9,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0xc1,0x00,0x00,0x00,
    -0xe0,0x02,0x00,0x00,0xd7,0x02,0x00,0x00,0xcc,0x02,0x00,0x00,
    -0xdf,0x02,0x00,0x00,0xd8,0x02,0x00,0x00,0xf7,0x00,0x03,0x00,
    -0xe2,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xe0,0x02,0x00,0x00,0xe1,0x02,0x00,0x00,0xe2,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xe1,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xea,0x02,0x00,0x00,0xc1,0x02,0x00,0x00,
    -0x0f,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    -0xec,0x02,0x00,0x00,0x14,0x00,0x00,0x00,0xeb,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xed,0x02,0x00,0x00,
    -0xec,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xee,0x02,0x00,0x00,0xea,0x02,0x00,0x00,0xed,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xef,0x02,0x00,0x00,
    -0xa1,0x02,0x00,0x00,0xee,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xf1,0x02,0x00,0x00,0xef,0x02,0x00,0x00,
    -0xb9,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xf3,0x02,0x00,0x00,0xf1,0x02,0x00,0x00,0x11,0x03,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf5,0x02,0x00,0x00,
    -0x0c,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xf7,0x02,0x00,0x00,0xf5,0x02,0x00,0x00,
    -0x0f,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xf9,0x02,0x00,0x00,0xf7,0x02,0x00,0x00,0xf8,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfb,0x02,0x00,0x00,
    -0x0d,0x03,0x00,0x00,0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xfc,0x02,0x00,0x00,0xf9,0x02,0x00,0x00,
    -0xfb,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xfe,0x02,0x00,0x00,0xfc,0x02,0x00,0x00,0x11,0x03,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,0xff,0x02,0x00,0x00,
    -0xc9,0x00,0x00,0x00,0xfe,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xc3,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0xff,0x02,0x00,0x00,
    -0x41,0x00,0x06,0x00,0xc3,0x01,0x00,0x00,0x01,0x03,0x00,0x00,
    -0xe6,0x02,0x00,0x00,0x35,0x00,0x00,0x00,0xf3,0x02,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x01,0x03,0x00,0x00,0x00,0x03,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xe2,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xe2,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xce,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xce,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x03,0x03,0x00,0x00,0x11,0x03,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xcb,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xcd,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xc6,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xc6,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x05,0x03,0x00,0x00,
    -0x0f,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xc3,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xc5,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xae,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xae,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x07,0x03,0x00,0x00,0x0d,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xab,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xad,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xa6,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xa6,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x09,0x03,0x00,0x00,0x0c,0x03,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xa3,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xa5,0x02,0x00,0x00,0xfd,0x00,0x01,0x00,
    -0x38,0x00,0x01,0x00,
    +0xc5,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xae,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xae,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x07,0x03,0x00,0x00,0x0d,0x03,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xab,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xad,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xa6,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xa6,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x09,0x03,0x00,0x00,
    +0x0c,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xa3,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xa5,0x02,0x00,0x00,
    +0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
     };
    -const uint64_t matmul_q6_k_f32_fp32_len = 11644;
    +const uint64_t matmul_q6_k_f32_fp32_len = 11624;
     
     unsigned char matmul_q8_0_f32_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
    @@ -112593,9 +116285,9 @@ unsigned char matmul_q8_0_f32_data[] = {
     0x63,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x6d,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x6d,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x73,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x6d,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
     0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    @@ -112678,7 +116370,7 @@ unsigned char matmul_q8_0_f32_data[] = {
     0x37,0x01,0x00,0x00,0x51,0x00,0x00,0x00,0x36,0x01,0x00,0x00,
     0x00,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x38,0x01,0x00,0x00,0x84,0x00,0x00,0x00,0x37,0x01,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x39,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0x38,0x01,0x00,0x00,
     0x6d,0x00,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x57,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    @@ -112708,7 +116400,7 @@ unsigned char matmul_q8_0_f32_data[] = {
     0x81,0x01,0x00,0x00,0x6d,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x85,0x01,0x00,0x00,0x08,0x01,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x86,0x01,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x89,0x01,0x00,0x00,
     0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xa4,0x01,0x00,0x00,
    @@ -112837,7 +116529,7 @@ unsigned char matmul_q8_0_f32_data[] = {
     0x94,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,
     0x84,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x9e,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x9e,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
     0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,
     0x14,0x00,0x00,0x00,0xa1,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,
    @@ -112895,452 +116587,450 @@ unsigned char matmul_q8_0_f32_data[] = {
     0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xea,0x00,0x00,0x00,
     0xe7,0x00,0x00,0x00,0x99,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0xea,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xec,0x00,0x00,0x00,0xd4,0x02,0x00,0x00,0xeb,0x00,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xee,0x00,0x00,0x00,
     0xec,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,
    -0xf3,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xf6,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,
    -0xf4,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0xee,0x00,0x00,0x00,
    -0xfa,0x00,0x00,0x00,0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xff,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x00,0x01,0x00,0x00,
    -0xff,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x41,0x00,0x07,0x00,
    -0x0c,0x01,0x00,0x00,0x0d,0x01,0x00,0x00,0x0a,0x01,0x00,0x00,
    -0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0x35,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x02,0x01,0x00,0x00,0x0e,0x01,0x00,0x00,
    -0x0d,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    -0x0f,0x01,0x00,0x00,0x0e,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x15,0x01,0x00,0x00,0x16,0x01,0x00,0x00,0x0a,0x01,0x00,0x00,
    -0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0x00,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x03,0x01,0x00,0x00,
    -0x17,0x01,0x00,0x00,0x16,0x01,0x00,0x00,0x72,0x00,0x04,0x00,
    -0x15,0x00,0x00,0x00,0x18,0x01,0x00,0x00,0x17,0x01,0x00,0x00,
    -0x6f,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x19,0x01,0x00,0x00,
    -0x18,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x1c,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,
    -0x41,0x00,0x08,0x00,0x15,0x01,0x00,0x00,0x1d,0x01,0x00,0x00,
    +0xf3,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xf7,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
    +0xee,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,0xc7,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xee,0x00,0x00,0x00,
    +0xfe,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x00,0x01,0x00,0x00,0xff,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x41,0x00,0x07,0x00,0x0c,0x01,0x00,0x00,0x0d,0x01,0x00,0x00,
     0x0a,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x03,0x01,0x00,0x00,0x1e,0x01,0x00,0x00,0x1d,0x01,0x00,0x00,
    -0x72,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x1f,0x01,0x00,0x00,
    -0x1e,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    -0x20,0x01,0x00,0x00,0x1f,0x01,0x00,0x00,0x50,0x00,0x05,0x00,
    -0x10,0x01,0x00,0x00,0x21,0x01,0x00,0x00,0x19,0x01,0x00,0x00,
    -0x20,0x01,0x00,0x00,0x8e,0x00,0x05,0x00,0x10,0x01,0x00,0x00,
    -0x23,0x01,0x00,0x00,0x21,0x01,0x00,0x00,0x0f,0x01,0x00,0x00,
    -0x51,0x00,0x05,0x00,0xc3,0x00,0x00,0x00,0x2b,0x01,0x00,0x00,
    -0x23,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x00,0x04,0x00,
    -0x02,0x01,0x00,0x00,0x2c,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x2d,0x01,0x00,0x00,0x2e,0x01,0x00,0x00,
    -0x28,0x01,0x00,0x00,0xf7,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x2e,0x01,0x00,0x00,0x2c,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x30,0x01,0x00,0x00,0xf7,0x00,0x00,0x00,
    -0x3a,0x00,0x00,0x00,0x51,0x00,0x05,0x00,0xc3,0x00,0x00,0x00,
    -0x32,0x01,0x00,0x00,0x23,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x73,0x00,0x04,0x00,0x02,0x01,0x00,0x00,0x33,0x01,0x00,0x00,
    -0x32,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x2d,0x01,0x00,0x00,
    -0x34,0x01,0x00,0x00,0x28,0x01,0x00,0x00,0x30,0x01,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x34,0x01,0x00,0x00,0x33,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3b,0x01,0x00,0x00,
    -0xd0,0x02,0x00,0x00,0x39,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xdc,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xde,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x3d,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x3d,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xd1,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0xde,0x00,0x00,0x00,
    -0x84,0x01,0x00,0x00,0x40,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0x43,0x01,0x00,0x00,0xd1,0x02,0x00,0x00,
    -0xa6,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x3f,0x01,0x00,0x00,
    -0x40,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x43,0x01,0x00,0x00,0x3e,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x3e,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x47,0x01,0x00,0x00,0xa7,0x00,0x00,0x00,
    -0x7e,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x49,0x01,0x00,0x00,0x47,0x01,0x00,0x00,0xd1,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x4a,0x01,0x00,0x00,
    -0x14,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x4b,0x01,0x00,0x00,0x4a,0x01,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x4c,0x01,0x00,0x00,
    -0x49,0x01,0x00,0x00,0x4b,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,
    -0x4e,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x4c,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,0x4e,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x4d,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x51,0x01,0x00,0x00,0xc0,0x02,0x00,0x00,
    -0x79,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0x53,0x01,0x00,0x00,0x51,0x01,0x00,0x00,0x8e,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x4e,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x4e,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0xc1,0x00,0x00,0x00,
    -0x54,0x01,0x00,0x00,0x4c,0x01,0x00,0x00,0x3e,0x01,0x00,0x00,
    -0x53,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,
    -0x56,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x54,0x01,0x00,0x00,0x55,0x01,0x00,0x00,0x76,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x55,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x5e,0x01,0x00,0x00,0x7e,0x00,0x00,0x00,
    +0x35,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x02,0x01,0x00,0x00,
    +0x0e,0x01,0x00,0x00,0x0d,0x01,0x00,0x00,0x73,0x00,0x04,0x00,
    +0xc3,0x00,0x00,0x00,0x0f,0x01,0x00,0x00,0x0e,0x01,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x15,0x01,0x00,0x00,0x16,0x01,0x00,0x00,
    +0x0a,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x03,0x01,0x00,0x00,0x17,0x01,0x00,0x00,0x16,0x01,0x00,0x00,
    +0x72,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x18,0x01,0x00,0x00,
    +0x17,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    +0x19,0x01,0x00,0x00,0x18,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,0x00,0x01,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0x15,0x01,0x00,0x00,
    +0x1d,0x01,0x00,0x00,0x0a,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    +0xfb,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x03,0x01,0x00,0x00,0x1e,0x01,0x00,0x00,
    +0x1d,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    +0x1f,0x01,0x00,0x00,0x1e,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,
    +0xc3,0x00,0x00,0x00,0x20,0x01,0x00,0x00,0x1f,0x01,0x00,0x00,
    +0x50,0x00,0x05,0x00,0x10,0x01,0x00,0x00,0x21,0x01,0x00,0x00,
    +0x19,0x01,0x00,0x00,0x20,0x01,0x00,0x00,0x8e,0x00,0x05,0x00,
    +0x10,0x01,0x00,0x00,0x23,0x01,0x00,0x00,0x21,0x01,0x00,0x00,
    +0x0f,0x01,0x00,0x00,0x51,0x00,0x05,0x00,0xc3,0x00,0x00,0x00,
    +0x2b,0x01,0x00,0x00,0x23,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x73,0x00,0x04,0x00,0x02,0x01,0x00,0x00,0x2c,0x01,0x00,0x00,
    +0x2b,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x2d,0x01,0x00,0x00,
    +0x2e,0x01,0x00,0x00,0x28,0x01,0x00,0x00,0xf7,0x00,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x2e,0x01,0x00,0x00,0x2c,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x30,0x01,0x00,0x00,
    +0xf7,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x51,0x00,0x05,0x00,
    +0xc3,0x00,0x00,0x00,0x32,0x01,0x00,0x00,0x23,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x73,0x00,0x04,0x00,0x02,0x01,0x00,0x00,
    +0x33,0x01,0x00,0x00,0x32,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x2d,0x01,0x00,0x00,0x34,0x01,0x00,0x00,0x28,0x01,0x00,0x00,
    +0x30,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x34,0x01,0x00,0x00,
    +0x33,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x3b,0x01,0x00,0x00,0xd0,0x02,0x00,0x00,0x39,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xdc,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xde,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x3d,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x3d,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xd1,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0xde,0x00,0x00,0x00,0x84,0x01,0x00,0x00,0x40,0x01,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x43,0x01,0x00,0x00,
    +0xd1,0x02,0x00,0x00,0xa6,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x3f,0x01,0x00,0x00,0x40,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x43,0x01,0x00,0x00,0x3e,0x01,0x00,0x00,
    +0x3f,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x3e,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x47,0x01,0x00,0x00,
    +0xa7,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x49,0x01,0x00,0x00,0x47,0x01,0x00,0x00,
    +0xd1,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    +0x4a,0x01,0x00,0x00,0x14,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4b,0x01,0x00,0x00,
    +0x4a,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0x4c,0x01,0x00,0x00,0x49,0x01,0x00,0x00,0x4b,0x01,0x00,0x00,
    +0xf7,0x00,0x03,0x00,0x4e,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x4c,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,
    +0x4e,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x4d,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x51,0x01,0x00,0x00,
    +0xc0,0x02,0x00,0x00,0x79,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0x53,0x01,0x00,0x00,0x51,0x01,0x00,0x00,
    +0x8e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x4e,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x4e,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0xc1,0x00,0x00,0x00,0x54,0x01,0x00,0x00,0x4c,0x01,0x00,0x00,
    +0x3e,0x01,0x00,0x00,0x53,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,
    +0xf7,0x00,0x03,0x00,0x56,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x54,0x01,0x00,0x00,0x55,0x01,0x00,0x00,
    +0x76,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x55,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5e,0x01,0x00,0x00,
    +0x7e,0x00,0x00,0x00,0xd1,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x60,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,
    +0x5f,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x62,0x01,0x00,0x00,0x60,0x01,0x00,0x00,0x79,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6d,0x01,0x00,0x00,
    +0x5e,0x01,0x00,0x00,0xaa,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x6e,0x01,0x00,0x00,0xd8,0x02,0x00,0x00,
    +0x6d,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x70,0x01,0x00,0x00,0x6e,0x01,0x00,0x00,0x79,0x00,0x00,0x00,
    +0x41,0x00,0x06,0x00,0x71,0x01,0x00,0x00,0x72,0x01,0x00,0x00,
    +0x66,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0x70,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x73,0x01,0x00,0x00,
    +0x72,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x02,0x01,0x00,0x00,
    +0x74,0x01,0x00,0x00,0x73,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x2d,0x01,0x00,0x00,0x75,0x01,0x00,0x00,0x5b,0x01,0x00,0x00,
    +0x62,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x75,0x01,0x00,0x00,
    +0x74,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x56,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x76,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x79,0x01,0x00,0x00,0x7e,0x00,0x00,0x00,
     0xd1,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x60,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,0x5f,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x62,0x01,0x00,0x00,
    -0x60,0x01,0x00,0x00,0x79,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x6d,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,
    -0xaa,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x6e,0x01,0x00,0x00,0xd8,0x02,0x00,0x00,0x6d,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x70,0x01,0x00,0x00,
    -0x6e,0x01,0x00,0x00,0x79,0x00,0x00,0x00,0x41,0x00,0x06,0x00,
    -0x71,0x01,0x00,0x00,0x72,0x01,0x00,0x00,0x66,0x01,0x00,0x00,
    -0x35,0x00,0x00,0x00,0x70,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xc3,0x00,0x00,0x00,0x73,0x01,0x00,0x00,0x72,0x01,0x00,0x00,
    -0x73,0x00,0x04,0x00,0x02,0x01,0x00,0x00,0x74,0x01,0x00,0x00,
    -0x73,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x2d,0x01,0x00,0x00,
    -0x75,0x01,0x00,0x00,0x5b,0x01,0x00,0x00,0x62,0x01,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x75,0x01,0x00,0x00,0x74,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x56,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x76,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x79,0x01,0x00,0x00,0x7e,0x00,0x00,0x00,0xd1,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7b,0x01,0x00,0x00,
    -0x79,0x01,0x00,0x00,0x7a,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x7d,0x01,0x00,0x00,0x7b,0x01,0x00,0x00,
    -0x79,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x2d,0x01,0x00,0x00,
    -0x7f,0x01,0x00,0x00,0x5b,0x01,0x00,0x00,0x7d,0x01,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x7f,0x01,0x00,0x00,0x7e,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x56,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x56,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x40,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x40,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x84,0x01,0x00,0x00,0xd1,0x02,0x00,0x00,
    -0x82,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x3d,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x3f,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,
    -0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x85,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x88,0x01,0x00,0x00,
    -0xd4,0x02,0x00,0x00,0x86,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x8b,0x01,0x00,0x00,0xd8,0x02,0x00,0x00,
    -0x89,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x8d,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x8d,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xda,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0x3f,0x01,0x00,0x00,0x37,0x02,0x00,0x00,0x90,0x01,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x93,0x01,0x00,0x00,
    -0xda,0x02,0x00,0x00,0x6d,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x8f,0x01,0x00,0x00,0x90,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x93,0x01,0x00,0x00,0x8e,0x01,0x00,0x00,
    -0x8f,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x8e,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x95,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x95,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xde,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0x8e,0x01,0x00,0x00,
    -0xc1,0x01,0x00,0x00,0x98,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0x9b,0x01,0x00,0x00,0xde,0x02,0x00,0x00,
    -0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x97,0x01,0x00,0x00,
    -0x98,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x9b,0x01,0x00,0x00,0x96,0x01,0x00,0x00,0x97,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x96,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x9d,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x9d,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xf0,0x02,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0x96,0x01,0x00,0x00,0xbf,0x01,0x00,0x00,
    -0x9e,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0xa3,0x01,0x00,0x00,0xf0,0x02,0x00,0x00,0x63,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x9f,0x01,0x00,0x00,0x9e,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xa3,0x01,0x00,0x00,
    -0x9e,0x01,0x00,0x00,0x9f,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x9e,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xa9,0x01,0x00,0x00,0xde,0x02,0x00,0x00,0x63,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xab,0x01,0x00,0x00,
    -0xa9,0x01,0x00,0x00,0xf0,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xad,0x01,0x00,0x00,0x56,0x00,0x00,0x00,
    -0x54,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xaf,0x01,0x00,0x00,0xde,0x02,0x00,0x00,0x62,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb0,0x01,0x00,0x00,
    -0xad,0x01,0x00,0x00,0xaf,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xb2,0x01,0x00,0x00,0x65,0x00,0x00,0x00,
    +0x7b,0x01,0x00,0x00,0x79,0x01,0x00,0x00,0x7a,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7d,0x01,0x00,0x00,
    +0x7b,0x01,0x00,0x00,0x79,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x2d,0x01,0x00,0x00,0x7f,0x01,0x00,0x00,0x5b,0x01,0x00,0x00,
    +0x7d,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x7f,0x01,0x00,0x00,
    +0x7e,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x56,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x56,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x40,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x40,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x84,0x01,0x00,0x00,
    +0xd1,0x02,0x00,0x00,0x82,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x3d,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x3f,0x01,0x00,0x00,
    +0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x85,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x88,0x01,0x00,0x00,0xd4,0x02,0x00,0x00,0x86,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8b,0x01,0x00,0x00,
    +0xd8,0x02,0x00,0x00,0x89,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x8d,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x8d,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xda,0x02,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0x3f,0x01,0x00,0x00,0x37,0x02,0x00,0x00,
    +0x90,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0x93,0x01,0x00,0x00,0xda,0x02,0x00,0x00,0x6d,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x8f,0x01,0x00,0x00,0x90,0x01,0x00,0x00,
    +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x93,0x01,0x00,0x00,
    +0x8e,0x01,0x00,0x00,0x8f,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x8e,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x95,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x95,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xde,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x8e,0x01,0x00,0x00,0xc1,0x01,0x00,0x00,0x98,0x01,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x9b,0x01,0x00,0x00,
    +0xde,0x02,0x00,0x00,0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x97,0x01,0x00,0x00,0x98,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x9b,0x01,0x00,0x00,0x96,0x01,0x00,0x00,
    +0x97,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x96,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x9d,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x9d,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xf0,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0x96,0x01,0x00,0x00,
    +0xbf,0x01,0x00,0x00,0x9e,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0xa3,0x01,0x00,0x00,0xf0,0x02,0x00,0x00,
    +0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x9f,0x01,0x00,0x00,
    +0x9e,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xa3,0x01,0x00,0x00,0x9e,0x01,0x00,0x00,0x9f,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x9e,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xa9,0x01,0x00,0x00,0xde,0x02,0x00,0x00,
     0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xb3,0x01,0x00,0x00,0xb0,0x01,0x00,0x00,0xb2,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb5,0x01,0x00,0x00,
    -0xb3,0x01,0x00,0x00,0xf0,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xb7,0x01,0x00,0x00,0xb5,0x01,0x00,0x00,
    -0xb6,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xb9,0x01,0x00,0x00,0xb7,0x01,0x00,0x00,0xda,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x2d,0x01,0x00,0x00,0xba,0x01,0x00,0x00,
    -0x28,0x01,0x00,0x00,0xb9,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x02,0x01,0x00,0x00,0xbb,0x01,0x00,0x00,0xba,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xbc,0x01,0x00,0x00,0xbd,0x01,0x00,0x00,
    -0xa7,0x01,0x00,0x00,0xab,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0xbd,0x01,0x00,0x00,0xbb,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xbf,0x01,0x00,0x00,0xf0,0x02,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x9d,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x9f,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x98,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x98,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc1,0x01,0x00,0x00,
    -0xde,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x95,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x97,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xc3,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xc3,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xdf,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0x97,0x01,0x00,0x00,
    -0xef,0x01,0x00,0x00,0xc6,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0xc9,0x01,0x00,0x00,0xdf,0x02,0x00,0x00,
    -0xbe,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xc5,0x01,0x00,0x00,
    -0xc6,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xc9,0x01,0x00,0x00,0xc4,0x01,0x00,0x00,0xc5,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xc4,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xcb,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xcb,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xed,0x02,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0xc4,0x01,0x00,0x00,0xed,0x01,0x00,0x00,
    -0xcc,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0xd1,0x01,0x00,0x00,0xed,0x02,0x00,0x00,0xbb,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xcd,0x01,0x00,0x00,0xcc,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xd1,0x01,0x00,0x00,
    -0xcc,0x01,0x00,0x00,0xcd,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xcc,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xd7,0x01,0x00,0x00,0xdf,0x02,0x00,0x00,0xbb,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd9,0x01,0x00,0x00,
    -0xd7,0x01,0x00,0x00,0xed,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xdb,0x01,0x00,0x00,0x5a,0x00,0x00,0x00,
    -0xb8,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xde,0x01,0x00,0x00,0xdf,0x02,0x00,0x00,0xdd,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdf,0x01,0x00,0x00,
    -0xdb,0x01,0x00,0x00,0xde,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xe1,0x01,0x00,0x00,0x69,0x00,0x00,0x00,
    -0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xe2,0x01,0x00,0x00,0xdf,0x01,0x00,0x00,0xe1,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe4,0x01,0x00,0x00,
    -0xe2,0x01,0x00,0x00,0xed,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xe6,0x01,0x00,0x00,0xe4,0x01,0x00,0x00,
    -0xe5,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xe8,0x01,0x00,0x00,0xe6,0x01,0x00,0x00,0xda,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x2d,0x01,0x00,0x00,0xe9,0x01,0x00,0x00,
    -0x5b,0x01,0x00,0x00,0xe8,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x02,0x01,0x00,0x00,0xea,0x01,0x00,0x00,0xe9,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xbc,0x01,0x00,0x00,0xeb,0x01,0x00,0x00,
    -0xd5,0x01,0x00,0x00,0xd9,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0xeb,0x01,0x00,0x00,0xea,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xed,0x01,0x00,0x00,0xed,0x02,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xcb,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xcd,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xc6,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xc6,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xef,0x01,0x00,0x00,
    -0xdf,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xc3,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xc5,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xf1,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xf1,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xe0,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0xc5,0x01,0x00,0x00,
    -0x35,0x02,0x00,0x00,0xf4,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0xf7,0x01,0x00,0x00,0xe0,0x02,0x00,0x00,
    -0xbe,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xf3,0x01,0x00,0x00,
    -0xf4,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0xf7,0x01,0x00,0x00,0xf2,0x01,0x00,0x00,0xf3,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xf2,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xf9,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xf9,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xe4,0x02,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0xf2,0x01,0x00,0x00,0x33,0x02,0x00,0x00,
    -0xfc,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0xff,0x01,0x00,0x00,0xe4,0x02,0x00,0x00,0x61,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xfb,0x01,0x00,0x00,0xfc,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xff,0x01,0x00,0x00,
    -0xfa,0x01,0x00,0x00,0xfb,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xfa,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x01,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x01,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xe6,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0xfa,0x01,0x00,0x00,0x31,0x02,0x00,0x00,0x04,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x07,0x02,0x00,0x00,
    -0xe6,0x02,0x00,0x00,0xbb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x03,0x02,0x00,0x00,0x04,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x07,0x02,0x00,0x00,0x02,0x02,0x00,0x00,
    -0x03,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x02,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x09,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x09,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xe8,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0x02,0x02,0x00,0x00,
    -0x2f,0x02,0x00,0x00,0x0a,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0x0f,0x02,0x00,0x00,0xe8,0x02,0x00,0x00,
    -0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x0b,0x02,0x00,0x00,
    -0x0a,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x0f,0x02,0x00,0x00,0x0a,0x02,0x00,0x00,0x0b,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x0a,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x11,0x02,0x00,0x00,0xe0,0x02,0x00,0x00,
    +0xab,0x01,0x00,0x00,0xa9,0x01,0x00,0x00,0xf0,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xad,0x01,0x00,0x00,
    +0x56,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xaf,0x01,0x00,0x00,0xde,0x02,0x00,0x00,
    +0x62,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xb0,0x01,0x00,0x00,0xad,0x01,0x00,0x00,0xaf,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb2,0x01,0x00,0x00,
    +0x65,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xb3,0x01,0x00,0x00,0xb0,0x01,0x00,0x00,
    +0xb2,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xb5,0x01,0x00,0x00,0xb3,0x01,0x00,0x00,0xf0,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb7,0x01,0x00,0x00,
    +0xb5,0x01,0x00,0x00,0xb6,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xb9,0x01,0x00,0x00,0xb7,0x01,0x00,0x00,
    +0xda,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x2d,0x01,0x00,0x00,
    +0xba,0x01,0x00,0x00,0x28,0x01,0x00,0x00,0xb9,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x02,0x01,0x00,0x00,0xbb,0x01,0x00,0x00,
    +0xba,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0xbc,0x01,0x00,0x00,
    +0xbd,0x01,0x00,0x00,0xa7,0x01,0x00,0x00,0xab,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0xbd,0x01,0x00,0x00,0xbb,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbf,0x01,0x00,0x00,
    +0xf0,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x9d,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x9f,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x98,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x98,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xc1,0x01,0x00,0x00,0xde,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x95,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x97,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xc3,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xc3,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xdf,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x97,0x01,0x00,0x00,0xef,0x01,0x00,0x00,0xc6,0x01,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xc9,0x01,0x00,0x00,
    +0xdf,0x02,0x00,0x00,0xbe,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xc5,0x01,0x00,0x00,0xc6,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xc9,0x01,0x00,0x00,0xc4,0x01,0x00,0x00,
    +0xc5,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xc4,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xcb,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xcb,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xed,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0xc4,0x01,0x00,0x00,
    +0xed,0x01,0x00,0x00,0xcc,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0xd1,0x01,0x00,0x00,0xed,0x02,0x00,0x00,
    +0xbb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xcd,0x01,0x00,0x00,
    +0xcc,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xd1,0x01,0x00,0x00,0xcc,0x01,0x00,0x00,0xcd,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xcc,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xd7,0x01,0x00,0x00,0xdf,0x02,0x00,0x00,
     0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x13,0x02,0x00,0x00,0x11,0x02,0x00,0x00,0xe6,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x15,0x02,0x00,0x00,
    -0x13,0x02,0x00,0x00,0x14,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x17,0x02,0x00,0x00,0xe4,0x02,0x00,0x00,
    -0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x18,0x02,0x00,0x00,0x15,0x02,0x00,0x00,0x17,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1a,0x02,0x00,0x00,
    -0x18,0x02,0x00,0x00,0xe8,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x1e,0x02,0x00,0x00,0x17,0x02,0x00,0x00,
    -0xe8,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xbc,0x01,0x00,0x00,
    -0x1f,0x02,0x00,0x00,0xa7,0x01,0x00,0x00,0x1e,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x02,0x01,0x00,0x00,0x20,0x02,0x00,0x00,
    -0x1f,0x02,0x00,0x00,0x73,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    -0x21,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xbc,0x01,0x00,0x00,0x26,0x02,0x00,0x00,0xd5,0x01,0x00,0x00,
    -0x13,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x02,0x01,0x00,0x00,
    -0x27,0x02,0x00,0x00,0x26,0x02,0x00,0x00,0x73,0x00,0x04,0x00,
    -0xc3,0x00,0x00,0x00,0x28,0x02,0x00,0x00,0x27,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,0x2a,0x02,0x00,0x00,
    -0xc9,0x00,0x00,0x00,0x1a,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xc3,0x00,0x00,0x00,0x2b,0x02,0x00,0x00,0x2a,0x02,0x00,0x00,
    -0x0c,0x00,0x08,0x00,0xc3,0x00,0x00,0x00,0x2c,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x21,0x02,0x00,0x00,
    -0x28,0x02,0x00,0x00,0x2b,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x2a,0x02,0x00,0x00,0x2c,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x2f,0x02,0x00,0x00,0xe8,0x02,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x09,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x0b,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x04,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x04,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x31,0x02,0x00,0x00,
    -0xe6,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x01,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x03,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xfc,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xfc,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x33,0x02,0x00,0x00,0xe4,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0xd9,0x01,0x00,0x00,0xd7,0x01,0x00,0x00,0xed,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdb,0x01,0x00,0x00,
    +0x5a,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xde,0x01,0x00,0x00,0xdf,0x02,0x00,0x00,
    +0xdd,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xdf,0x01,0x00,0x00,0xdb,0x01,0x00,0x00,0xde,0x01,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe1,0x01,0x00,0x00,
    +0x69,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xe2,0x01,0x00,0x00,0xdf,0x01,0x00,0x00,
    +0xe1,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xe4,0x01,0x00,0x00,0xe2,0x01,0x00,0x00,0xed,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe6,0x01,0x00,0x00,
    +0xe4,0x01,0x00,0x00,0xe5,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xe8,0x01,0x00,0x00,0xe6,0x01,0x00,0x00,
    +0xda,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x2d,0x01,0x00,0x00,
    +0xe9,0x01,0x00,0x00,0x5b,0x01,0x00,0x00,0xe8,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x02,0x01,0x00,0x00,0xea,0x01,0x00,0x00,
    +0xe9,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0xbc,0x01,0x00,0x00,
    +0xeb,0x01,0x00,0x00,0xd5,0x01,0x00,0x00,0xd9,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0xeb,0x01,0x00,0x00,0xea,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xed,0x01,0x00,0x00,
    +0xed,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xcb,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xcd,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xc6,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xc6,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xef,0x01,0x00,0x00,0xdf,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xc3,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xc5,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xf1,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xf1,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xe0,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0xc5,0x01,0x00,0x00,0x35,0x02,0x00,0x00,0xf4,0x01,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xf7,0x01,0x00,0x00,
    +0xe0,0x02,0x00,0x00,0xbe,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xf3,0x01,0x00,0x00,0xf4,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xf7,0x01,0x00,0x00,0xf2,0x01,0x00,0x00,
    +0xf3,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xf2,0x01,0x00,0x00,
     0xf9,0x00,0x02,0x00,0xf9,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xfb,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xf4,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xf4,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x35,0x02,0x00,0x00,0xe0,0x02,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xf1,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xf3,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x90,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x90,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x37,0x02,0x00,0x00,
    -0xda,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x8d,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x8f,0x01,0x00,0x00,
    -0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x85,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xd6,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xd6,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x39,0x02,0x00,0x00,0xc0,0x02,0x00,0x00,
    -0x6d,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xd3,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xd5,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x3e,0x02,0x00,0x00,0x56,0x00,0x00,0x00,
    -0x54,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x3f,0x02,0x00,0x00,0x96,0x00,0x00,0x00,0x3e,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x44,0x02,0x00,0x00,
    -0x5a,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x45,0x02,0x00,0x00,0xa7,0x00,0x00,0x00,
    -0x44,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    -0x49,0x02,0x00,0x00,0x14,0x00,0x00,0x00,0x48,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4a,0x02,0x00,0x00,
    -0x49,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x4b,0x02,0x00,0x00,0x0f,0x00,0x00,0x00,0x4a,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4f,0x02,0x00,0x00,
    -0x48,0x00,0x00,0x00,0x4a,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x0d,0x00,0x00,0x00,0x51,0x02,0x00,0x00,0x50,0x02,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x52,0x02,0x00,0x00,0x51,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x53,0x02,0x00,0x00,0x4f,0x02,0x00,0x00,
    -0x52,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x54,0x02,0x00,0x00,0x4b,0x02,0x00,0x00,0x53,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x56,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x56,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xc1,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,
    -0xbc,0x02,0x00,0x00,0x59,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0x5c,0x02,0x00,0x00,0xc1,0x02,0x00,0x00,
    -0xbe,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x58,0x02,0x00,0x00,
    -0x59,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x5c,0x02,0x00,0x00,0x57,0x02,0x00,0x00,0x58,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x57,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x5e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x5e,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xc2,0x02,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0x57,0x02,0x00,0x00,0xba,0x02,0x00,0x00,
    -0x61,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0x64,0x02,0x00,0x00,0xc2,0x02,0x00,0x00,0x61,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x60,0x02,0x00,0x00,0x61,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x64,0x02,0x00,0x00,
    -0x5f,0x02,0x00,0x00,0x60,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x5f,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x68,0x02,0x00,0x00,0xc2,0x02,0x00,0x00,0x62,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x69,0x02,0x00,0x00,
    -0x3f,0x02,0x00,0x00,0x68,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x6b,0x02,0x00,0x00,0x65,0x00,0x00,0x00,
    -0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x6c,0x02,0x00,0x00,0x69,0x02,0x00,0x00,0x6b,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x70,0x02,0x00,0x00,
    -0xc1,0x02,0x00,0x00,0xdd,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x71,0x02,0x00,0x00,0x45,0x02,0x00,0x00,
    -0x70,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x73,0x02,0x00,0x00,0x69,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x74,0x02,0x00,0x00,
    -0x71,0x02,0x00,0x00,0x73,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x76,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x76,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xc4,0x02,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0x5f,0x02,0x00,0x00,0xb8,0x02,0x00,0x00,
    -0x79,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0x7c,0x02,0x00,0x00,0xc4,0x02,0x00,0x00,0xbb,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x78,0x02,0x00,0x00,0x79,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x7c,0x02,0x00,0x00,
    -0x77,0x02,0x00,0x00,0x78,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x77,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x7e,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x7e,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xc6,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0x77,0x02,0x00,0x00,0xb6,0x02,0x00,0x00,0x81,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x84,0x02,0x00,0x00,
    -0xc6,0x02,0x00,0x00,0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x80,0x02,0x00,0x00,0x81,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x84,0x02,0x00,0x00,0x7f,0x02,0x00,0x00,
    -0x80,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x7f,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x87,0x02,0x00,0x00,
    -0x6c,0x02,0x00,0x00,0xc6,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0x8a,0x02,0x00,0x00,0x87,0x02,0x00,0x00,
    -0x37,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0x8c,0x02,0x00,0x00,
    -0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x8a,0x02,0x00,0x00,
    -0x8b,0x02,0x00,0x00,0x8c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x8b,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x8f,0x02,0x00,0x00,0x74,0x02,0x00,0x00,0xc4,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x90,0x02,0x00,0x00,
    -0x14,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x91,0x02,0x00,0x00,0x90,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x92,0x02,0x00,0x00,
    -0x8f,0x02,0x00,0x00,0x91,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x8c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x8c,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0xc1,0x00,0x00,0x00,0x93,0x02,0x00,0x00,
    -0x8a,0x02,0x00,0x00,0x7f,0x02,0x00,0x00,0x92,0x02,0x00,0x00,
    -0x8b,0x02,0x00,0x00,0xf7,0x00,0x03,0x00,0x95,0x02,0x00,0x00,
    -0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x93,0x02,0x00,0x00,
    -0x94,0x02,0x00,0x00,0x95,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x94,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x9d,0x02,0x00,0x00,0x74,0x02,0x00,0x00,0xc4,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x9f,0x02,0x00,0x00,
    -0x14,0x00,0x00,0x00,0x9e,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0xa0,0x02,0x00,0x00,0x9f,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa1,0x02,0x00,0x00,
    -0x9d,0x02,0x00,0x00,0xa0,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xa2,0x02,0x00,0x00,0x54,0x02,0x00,0x00,
    -0xa1,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xa4,0x02,0x00,0x00,0xa2,0x02,0x00,0x00,0x6c,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa6,0x02,0x00,0x00,
    -0xa4,0x02,0x00,0x00,0xc6,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xa8,0x02,0x00,0x00,0xc1,0x02,0x00,0x00,
    +0xf9,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xe4,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0xf2,0x01,0x00,0x00,
    +0x33,0x02,0x00,0x00,0xfc,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0xff,0x01,0x00,0x00,0xe4,0x02,0x00,0x00,
    +0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xfb,0x01,0x00,0x00,
    +0xfc,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xff,0x01,0x00,0x00,0xfa,0x01,0x00,0x00,0xfb,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xfa,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x01,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x01,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xe6,0x02,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0xfa,0x01,0x00,0x00,0x31,0x02,0x00,0x00,
    +0x04,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0x07,0x02,0x00,0x00,0xe6,0x02,0x00,0x00,0xbb,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x03,0x02,0x00,0x00,0x04,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x07,0x02,0x00,0x00,
    +0x02,0x02,0x00,0x00,0x03,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x02,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x09,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x09,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xe8,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x02,0x02,0x00,0x00,0x2f,0x02,0x00,0x00,0x0a,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x0f,0x02,0x00,0x00,
    +0xe8,0x02,0x00,0x00,0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x0b,0x02,0x00,0x00,0x0a,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x0f,0x02,0x00,0x00,0x0a,0x02,0x00,0x00,
    +0x0b,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x0a,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x11,0x02,0x00,0x00,
    +0xe0,0x02,0x00,0x00,0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x13,0x02,0x00,0x00,0x11,0x02,0x00,0x00,
    +0xe6,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x15,0x02,0x00,0x00,0x13,0x02,0x00,0x00,0x14,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x17,0x02,0x00,0x00,
    +0xe4,0x02,0x00,0x00,0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x18,0x02,0x00,0x00,0x15,0x02,0x00,0x00,
    +0x17,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x1a,0x02,0x00,0x00,0x18,0x02,0x00,0x00,0xe8,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1e,0x02,0x00,0x00,
    +0x17,0x02,0x00,0x00,0xe8,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0xbc,0x01,0x00,0x00,0x1f,0x02,0x00,0x00,0xa7,0x01,0x00,0x00,
    +0x1e,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x02,0x01,0x00,0x00,
    +0x20,0x02,0x00,0x00,0x1f,0x02,0x00,0x00,0x73,0x00,0x04,0x00,
    +0xc3,0x00,0x00,0x00,0x21,0x02,0x00,0x00,0x20,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xbc,0x01,0x00,0x00,0x26,0x02,0x00,0x00,
    +0xd5,0x01,0x00,0x00,0x13,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x02,0x01,0x00,0x00,0x27,0x02,0x00,0x00,0x26,0x02,0x00,0x00,
    +0x73,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x28,0x02,0x00,0x00,
    +0x27,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,
    +0x2a,0x02,0x00,0x00,0xc9,0x00,0x00,0x00,0x1a,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x2b,0x02,0x00,0x00,
    +0x2a,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0xc3,0x00,0x00,0x00,
    +0x2c,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,
    +0x21,0x02,0x00,0x00,0x28,0x02,0x00,0x00,0x2b,0x02,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x2a,0x02,0x00,0x00,0x2c,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2f,0x02,0x00,0x00,
    +0xe8,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x09,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x0b,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x04,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x04,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x31,0x02,0x00,0x00,0xe6,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x01,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x03,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xfc,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xfc,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x33,0x02,0x00,0x00,0xe4,0x02,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xf9,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xfb,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xf4,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xf4,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x35,0x02,0x00,0x00,
    +0xe0,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xf1,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xf3,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x90,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x90,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x37,0x02,0x00,0x00,0xda,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x8d,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x8f,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x85,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xd6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xd6,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x39,0x02,0x00,0x00,
    +0xc0,0x02,0x00,0x00,0x6d,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xd3,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xd5,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3e,0x02,0x00,0x00,
    +0x56,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x3f,0x02,0x00,0x00,0x96,0x00,0x00,0x00,
    +0x3e,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x44,0x02,0x00,0x00,0x5a,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x45,0x02,0x00,0x00,
    +0xa7,0x00,0x00,0x00,0x44,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x17,0x00,0x00,0x00,0x49,0x02,0x00,0x00,0x14,0x00,0x00,0x00,
    +0x48,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x4a,0x02,0x00,0x00,0x49,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x4b,0x02,0x00,0x00,0x0f,0x00,0x00,0x00,
    +0x4a,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x4f,0x02,0x00,0x00,0x48,0x00,0x00,0x00,0x4a,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,0x51,0x02,0x00,0x00,
    +0x50,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x52,0x02,0x00,0x00,0x51,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x53,0x02,0x00,0x00,
    +0x4f,0x02,0x00,0x00,0x52,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x54,0x02,0x00,0x00,0x4b,0x02,0x00,0x00,
    +0x53,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x56,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x56,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xc1,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0xd5,0x00,0x00,0x00,0xbc,0x02,0x00,0x00,0x59,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x5c,0x02,0x00,0x00,
    +0xc1,0x02,0x00,0x00,0xbe,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x58,0x02,0x00,0x00,0x59,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x5c,0x02,0x00,0x00,0x57,0x02,0x00,0x00,
    +0x58,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x57,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x5e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x5e,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xc2,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0x57,0x02,0x00,0x00,
    +0xba,0x02,0x00,0x00,0x61,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0x64,0x02,0x00,0x00,0xc2,0x02,0x00,0x00,
    +0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x60,0x02,0x00,0x00,
    +0x61,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x64,0x02,0x00,0x00,0x5f,0x02,0x00,0x00,0x60,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x5f,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x68,0x02,0x00,0x00,0xc2,0x02,0x00,0x00,
    +0x62,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x69,0x02,0x00,0x00,0x3f,0x02,0x00,0x00,0x68,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6b,0x02,0x00,0x00,
    +0x65,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x6c,0x02,0x00,0x00,0x69,0x02,0x00,0x00,
    +0x6b,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x70,0x02,0x00,0x00,0xc1,0x02,0x00,0x00,0xdd,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x71,0x02,0x00,0x00,
    +0x45,0x02,0x00,0x00,0x70,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x73,0x02,0x00,0x00,0x69,0x00,0x00,0x00,
     0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xaa,0x02,0x00,0x00,0xa8,0x02,0x00,0x00,0xc4,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xac,0x02,0x00,0x00,
    -0xaa,0x02,0x00,0x00,0xab,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xae,0x02,0x00,0x00,0xc2,0x02,0x00,0x00,
    -0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xaf,0x02,0x00,0x00,0xac,0x02,0x00,0x00,0xae,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb1,0x02,0x00,0x00,
    -0xaf,0x02,0x00,0x00,0xc6,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xcc,0x00,0x00,0x00,0xb2,0x02,0x00,0x00,0xc9,0x00,0x00,0x00,
    -0xb1,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    -0xb3,0x02,0x00,0x00,0xb2,0x02,0x00,0x00,0x41,0x00,0x06,0x00,
    -0x71,0x01,0x00,0x00,0xb4,0x02,0x00,0x00,0x99,0x02,0x00,0x00,
    -0x35,0x00,0x00,0x00,0xa6,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0xb4,0x02,0x00,0x00,0xb3,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x95,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x95,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x81,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x81,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xb6,0x02,0x00,0x00,0xc6,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x7e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x80,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x79,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x79,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xb8,0x02,0x00,0x00,0xc4,0x02,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x76,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x78,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x61,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x61,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xba,0x02,0x00,0x00,
    -0xc2,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x5e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x60,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x59,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x59,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xbc,0x02,0x00,0x00,0xc1,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x56,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x58,0x02,0x00,0x00,0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
    -
    +0x74,0x02,0x00,0x00,0x71,0x02,0x00,0x00,0x73,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x76,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x76,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xc4,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0x5f,0x02,0x00,0x00,
    +0xb8,0x02,0x00,0x00,0x79,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0x7c,0x02,0x00,0x00,0xc4,0x02,0x00,0x00,
    +0xbb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x78,0x02,0x00,0x00,
    +0x79,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x7c,0x02,0x00,0x00,0x77,0x02,0x00,0x00,0x78,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x77,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x7e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x7e,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xc6,0x02,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0x77,0x02,0x00,0x00,0xb6,0x02,0x00,0x00,
    +0x81,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0x84,0x02,0x00,0x00,0xc6,0x02,0x00,0x00,0x63,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x80,0x02,0x00,0x00,0x81,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x84,0x02,0x00,0x00,
    +0x7f,0x02,0x00,0x00,0x80,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x7f,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x87,0x02,0x00,0x00,0x6c,0x02,0x00,0x00,0xc6,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x8a,0x02,0x00,0x00,
    +0x87,0x02,0x00,0x00,0x37,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,
    +0x8c,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x8a,0x02,0x00,0x00,0x8b,0x02,0x00,0x00,0x8c,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x8b,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x8f,0x02,0x00,0x00,0x74,0x02,0x00,0x00,
    +0xc4,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    +0x90,0x02,0x00,0x00,0x14,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x91,0x02,0x00,0x00,
    +0x90,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0x92,0x02,0x00,0x00,0x8f,0x02,0x00,0x00,0x91,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x8c,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x8c,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0xc1,0x00,0x00,0x00,
    +0x93,0x02,0x00,0x00,0x8a,0x02,0x00,0x00,0x7f,0x02,0x00,0x00,
    +0x92,0x02,0x00,0x00,0x8b,0x02,0x00,0x00,0xf7,0x00,0x03,0x00,
    +0x95,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x93,0x02,0x00,0x00,0x94,0x02,0x00,0x00,0x95,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x94,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x9d,0x02,0x00,0x00,0x74,0x02,0x00,0x00,
    +0xc4,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    +0x9f,0x02,0x00,0x00,0x14,0x00,0x00,0x00,0x9e,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa0,0x02,0x00,0x00,
    +0x9f,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xa1,0x02,0x00,0x00,0x9d,0x02,0x00,0x00,0xa0,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa2,0x02,0x00,0x00,
    +0x54,0x02,0x00,0x00,0xa1,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xa4,0x02,0x00,0x00,0xa2,0x02,0x00,0x00,
    +0x6c,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xa6,0x02,0x00,0x00,0xa4,0x02,0x00,0x00,0xc6,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa8,0x02,0x00,0x00,
    +0xc1,0x02,0x00,0x00,0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xaa,0x02,0x00,0x00,0xa8,0x02,0x00,0x00,
    +0xc4,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xac,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,0xab,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xae,0x02,0x00,0x00,
    +0xc2,0x02,0x00,0x00,0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xaf,0x02,0x00,0x00,0xac,0x02,0x00,0x00,
    +0xae,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xb1,0x02,0x00,0x00,0xaf,0x02,0x00,0x00,0xc6,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,0xb2,0x02,0x00,0x00,
    +0xc9,0x00,0x00,0x00,0xb1,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xc3,0x00,0x00,0x00,0xb3,0x02,0x00,0x00,0xb2,0x02,0x00,0x00,
    +0x41,0x00,0x06,0x00,0x71,0x01,0x00,0x00,0xb4,0x02,0x00,0x00,
    +0x99,0x02,0x00,0x00,0x35,0x00,0x00,0x00,0xa6,0x02,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0xb4,0x02,0x00,0x00,0xb3,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x95,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x95,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x81,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x81,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xb6,0x02,0x00,0x00,0xc6,0x02,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x7e,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x80,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x79,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x79,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb8,0x02,0x00,0x00,
    +0xc4,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x76,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x78,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x61,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x61,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xba,0x02,0x00,0x00,0xc2,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x5e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x60,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x59,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x59,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xbc,0x02,0x00,0x00,0xc1,0x02,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x56,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x58,0x02,0x00,0x00,0xfd,0x00,0x01,0x00,
    +0x38,0x00,0x01,0x00,
     };
    -const uint64_t matmul_q8_0_f32_len = 10608;
    +const uint64_t matmul_q8_0_f32_len = 10588;
     
     unsigned char matmul_q8_0_f32_aligned_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
    @@ -115295,9 +118985,9 @@ unsigned char matmul_q8_0_f32_fp32_data[] = {
     0x62,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x73,0x00,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x78,0x00,0x00,0x00,
     0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,
    @@ -115380,7 +119070,7 @@ unsigned char matmul_q8_0_f32_fp32_data[] = {
     0x06,0x00,0x00,0x00,0x35,0x01,0x00,0x00,0x51,0x00,0x00,0x00,
     0x34,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x36,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    -0x35,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
    +0x35,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x37,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
     0x36,0x01,0x00,0x00,0x6d,0x00,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x55,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
    @@ -115409,7 +119099,7 @@ unsigned char matmul_q8_0_f32_fp32_data[] = {
     0x7d,0x01,0x00,0x00,0x6d,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x81,0x01,0x00,0x00,0x08,0x01,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x82,0x01,0x00,0x00,
    -0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x85,0x01,0x00,0x00,
     0x86,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xa0,0x01,0x00,0x00,
    @@ -115499,541 +119189,539 @@ unsigned char matmul_q8_0_f32_fp32_data[] = {
     0x51,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x89,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,
     0x50,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x65,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,0x64,0x00,0x00,0x00,
    -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x69,0x00,0x00,0x00,
    -0x5e,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x89,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,
    -0x6e,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x74,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x73,0x00,0x00,0x00,
    -0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x79,0x00,0x00,0x00,
    -0x4f,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,
    -0x7d,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    -0x82,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x81,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x83,0x00,0x00,0x00,
    -0x82,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x84,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x83,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x87,0x00,0x00,0x00,
    -0x14,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x88,0x00,0x00,0x00,0x87,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8a,0x00,0x00,0x00,
    -0x48,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,0x8a,0x00,0x00,0x00,
    -0x83,0x00,0x00,0x00,0x0c,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x8e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x26,0x00,0x00,0x00,
    -0x88,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x17,0x00,0x00,0x00,0x92,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    -0x91,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x93,0x00,0x00,0x00,0x92,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x94,0x00,0x00,0x00,0x33,0x00,0x00,0x00,
    -0x93,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x96,0x00,0x00,0x00,0x43,0x00,0x00,0x00,0x38,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x98,0x00,0x00,0x00,
    -0x14,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x99,0x00,0x00,0x00,0x98,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0x96,0x00,0x00,0x00,0x99,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,0x94,0x00,0x00,0x00,
    -0x9a,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x9d,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9e,0x00,0x00,0x00,
    -0x9d,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x17,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    -0xa1,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0xa3,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,
    -0xa3,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xa7,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0xa6,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,
    -0x14,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0xaa,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xab,0x00,0x00,0x00,
    -0xa7,0x00,0x00,0x00,0xaa,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xac,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,
    -0xab,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xae,0x00,0x00,0x00,0xac,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,
    -0xae,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xb1,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xb1,0x00,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xb8,0x02,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,
    -0xb2,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0xc2,0x00,0x00,0x00,0xb8,0x02,0x00,0x00,0xc0,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xb3,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xc2,0x00,0x00,0x00,
    -0xb2,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xb2,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,
    -0xcd,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0xb8,0x02,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0xcd,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,
    -0xb8,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xb1,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xb3,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xd3,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xd3,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xd1,0x02,0x00,0x00,0xaf,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,
    -0x87,0x01,0x00,0x00,0xd6,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xcd,0x02,0x00,0x00,0x9e,0x00,0x00,0x00,
    -0xb3,0x00,0x00,0x00,0x84,0x01,0x00,0x00,0xd6,0x00,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xb9,0x02,0x00,0x00,
    -0x84,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,0x32,0x02,0x00,0x00,
    -0xd6,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0xda,0x00,0x00,0x00,0xb9,0x02,0x00,0x00,0x8e,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xd5,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xda,0x00,0x00,0x00,
    -0xd4,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xd4,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xdc,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xdc,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xc9,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0xd4,0x00,0x00,0x00,0x39,0x01,0x00,0x00,0xdd,0x00,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xe2,0x00,0x00,0x00,
    -0xc9,0x02,0x00,0x00,0x38,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xde,0x00,0x00,0x00,0xdd,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xe2,0x00,0x00,0x00,0xdd,0x00,0x00,0x00,
    -0xde,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xdd,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,
    -0x74,0x00,0x00,0x00,0xc9,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xea,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,
    -0x99,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xeb,0x00,0x00,0x00,0xea,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xec,0x00,0x00,0x00,
    -0xcd,0x02,0x00,0x00,0xeb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0xec,0x00,0x00,0x00,
    -0x6f,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xf4,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,
    -0x6f,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,
    -0xf6,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xfb,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,
    -0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xff,0x00,0x00,0x00,
    -0xee,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0xff,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x41,0x00,0x07,0x00,0x0c,0x01,0x00,0x00,
    -0x0d,0x01,0x00,0x00,0x0a,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    -0xfb,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x02,0x01,0x00,0x00,0x0e,0x01,0x00,0x00,0x0d,0x01,0x00,0x00,
    -0x73,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x0f,0x01,0x00,0x00,
    -0x0e,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x15,0x01,0x00,0x00,
    -0x16,0x01,0x00,0x00,0x0a,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    -0xfb,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x00,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x03,0x01,0x00,0x00,0x17,0x01,0x00,0x00,
    -0x16,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x15,0x00,0x00,0x00,
    -0x18,0x01,0x00,0x00,0x17,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,
    -0xc3,0x00,0x00,0x00,0x19,0x01,0x00,0x00,0x18,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,
    -0x00,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x15,0x01,0x00,0x00,0x1d,0x01,0x00,0x00,0x0a,0x01,0x00,0x00,
    -0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0x1c,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x03,0x01,0x00,0x00,
    -0x1e,0x01,0x00,0x00,0x1d,0x01,0x00,0x00,0x72,0x00,0x04,0x00,
    -0x15,0x00,0x00,0x00,0x1f,0x01,0x00,0x00,0x1e,0x01,0x00,0x00,
    -0x6f,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x20,0x01,0x00,0x00,
    -0x1f,0x01,0x00,0x00,0x50,0x00,0x05,0x00,0x10,0x01,0x00,0x00,
    -0x21,0x01,0x00,0x00,0x19,0x01,0x00,0x00,0x20,0x01,0x00,0x00,
    -0x8e,0x00,0x05,0x00,0x10,0x01,0x00,0x00,0x23,0x01,0x00,0x00,
    -0x21,0x01,0x00,0x00,0x0f,0x01,0x00,0x00,0x51,0x00,0x05,0x00,
    -0xc3,0x00,0x00,0x00,0x2b,0x01,0x00,0x00,0x23,0x01,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x2c,0x01,0x00,0x00,
    -0x2d,0x01,0x00,0x00,0x28,0x01,0x00,0x00,0xf7,0x00,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x2d,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2f,0x01,0x00,0x00,
    -0xf7,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x51,0x00,0x05,0x00,
    -0xc3,0x00,0x00,0x00,0x31,0x01,0x00,0x00,0x23,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x2c,0x01,0x00,0x00,
    -0x32,0x01,0x00,0x00,0x28,0x01,0x00,0x00,0x2f,0x01,0x00,0x00,
    -0x3e,0x00,0x03,0x00,0x32,0x01,0x00,0x00,0x31,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x39,0x01,0x00,0x00,
    -0xc9,0x02,0x00,0x00,0x37,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xdc,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xde,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x3b,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x3b,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xca,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0xde,0x00,0x00,0x00,
    -0x80,0x01,0x00,0x00,0x3e,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0x41,0x01,0x00,0x00,0xca,0x02,0x00,0x00,
    -0xa6,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x3d,0x01,0x00,0x00,
    -0x3e,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x41,0x01,0x00,0x00,0x3c,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x3c,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x45,0x01,0x00,0x00,0xa7,0x00,0x00,0x00,
    -0x7e,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x47,0x01,0x00,0x00,0x45,0x01,0x00,0x00,0xca,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x48,0x01,0x00,0x00,
    -0x14,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x49,0x01,0x00,0x00,0x48,0x01,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x4a,0x01,0x00,0x00,
    -0x47,0x01,0x00,0x00,0x49,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,
    -0x4c,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x4a,0x01,0x00,0x00,0x4b,0x01,0x00,0x00,0x4c,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x4b,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x4f,0x01,0x00,0x00,0xb9,0x02,0x00,0x00,
    -0x79,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0x51,0x01,0x00,0x00,0x4f,0x01,0x00,0x00,0x8e,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x4c,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x4c,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0xc1,0x00,0x00,0x00,
    -0x52,0x01,0x00,0x00,0x4a,0x01,0x00,0x00,0x3c,0x01,0x00,0x00,
    -0x51,0x01,0x00,0x00,0x4b,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,
    -0x54,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x52,0x01,0x00,0x00,0x53,0x01,0x00,0x00,0x73,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x53,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x5c,0x01,0x00,0x00,0x7e,0x00,0x00,0x00,
    -0xca,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x5e,0x01,0x00,0x00,0x5c,0x01,0x00,0x00,0x5d,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x60,0x01,0x00,0x00,
    -0x5e,0x01,0x00,0x00,0x79,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x6b,0x01,0x00,0x00,0x5c,0x01,0x00,0x00,
    -0xaa,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x6c,0x01,0x00,0x00,0xd1,0x02,0x00,0x00,0x6b,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6e,0x01,0x00,0x00,
    -0x6c,0x01,0x00,0x00,0x79,0x00,0x00,0x00,0x41,0x00,0x06,0x00,
    -0x6f,0x01,0x00,0x00,0x70,0x01,0x00,0x00,0x64,0x01,0x00,0x00,
    -0x35,0x00,0x00,0x00,0x6e,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xc3,0x00,0x00,0x00,0x71,0x01,0x00,0x00,0x70,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x2c,0x01,0x00,0x00,0x72,0x01,0x00,0x00,
    -0x59,0x01,0x00,0x00,0x60,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x72,0x01,0x00,0x00,0x71,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x54,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x73,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x76,0x01,0x00,0x00,
    -0x7e,0x00,0x00,0x00,0xca,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x78,0x01,0x00,0x00,0x76,0x01,0x00,0x00,
    -0x77,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x7a,0x01,0x00,0x00,0x78,0x01,0x00,0x00,0x79,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x2c,0x01,0x00,0x00,0x7b,0x01,0x00,0x00,
    -0x59,0x01,0x00,0x00,0x7a,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x7b,0x01,0x00,0x00,0xcb,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x54,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x54,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x3e,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x3e,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x80,0x01,0x00,0x00,0xca,0x02,0x00,0x00,0x7e,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x3b,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x3d,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x81,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x84,0x01,0x00,0x00,0xcd,0x02,0x00,0x00,
    -0x82,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x87,0x01,0x00,0x00,0xd1,0x02,0x00,0x00,0x85,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x89,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x89,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xd3,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0x3d,0x01,0x00,0x00,
    -0x30,0x02,0x00,0x00,0x8c,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0x8f,0x01,0x00,0x00,0xd3,0x02,0x00,0x00,
    -0x6d,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x8b,0x01,0x00,0x00,
    -0x8c,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x8f,0x01,0x00,0x00,0x8a,0x01,0x00,0x00,0x8b,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x8a,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x91,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x91,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xd7,0x02,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0x8a,0x01,0x00,0x00,0xbc,0x01,0x00,0x00,
    -0x94,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0x97,0x01,0x00,0x00,0xd7,0x02,0x00,0x00,0x61,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x93,0x01,0x00,0x00,0x94,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x97,0x01,0x00,0x00,
    -0x92,0x01,0x00,0x00,0x93,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x92,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x99,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x99,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xe9,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0x92,0x01,0x00,0x00,0xba,0x01,0x00,0x00,0x9a,0x01,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x9f,0x01,0x00,0x00,
    -0xe9,0x02,0x00,0x00,0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x9b,0x01,0x00,0x00,0x9a,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x9f,0x01,0x00,0x00,0x9a,0x01,0x00,0x00,
    -0x9b,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x9a,0x01,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa5,0x01,0x00,0x00,
    -0xd7,0x02,0x00,0x00,0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xa7,0x01,0x00,0x00,0xa5,0x01,0x00,0x00,
    -0xe9,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xa9,0x01,0x00,0x00,0x56,0x00,0x00,0x00,0x54,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xab,0x01,0x00,0x00,
    -0xd7,0x02,0x00,0x00,0x62,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xac,0x01,0x00,0x00,0xa9,0x01,0x00,0x00,
    -0xab,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xae,0x01,0x00,0x00,0x65,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xaf,0x01,0x00,0x00,
    -0xac,0x01,0x00,0x00,0xae,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xb1,0x01,0x00,0x00,0xaf,0x01,0x00,0x00,
    -0xe9,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xb3,0x01,0x00,0x00,0xb1,0x01,0x00,0x00,0xb2,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb5,0x01,0x00,0x00,
    -0xb3,0x01,0x00,0x00,0xd3,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x2c,0x01,0x00,0x00,0xb6,0x01,0x00,0x00,0x28,0x01,0x00,0x00,
    -0xb5,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    -0xb7,0x01,0x00,0x00,0xb6,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xcc,0x00,0x00,0x00,0xb8,0x01,0x00,0x00,0xa3,0x01,0x00,0x00,
    -0xa7,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xb8,0x01,0x00,0x00,
    -0xb7,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xba,0x01,0x00,0x00,0xe9,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x99,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x9b,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x94,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x94,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xbc,0x01,0x00,0x00,0xd7,0x02,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x91,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x93,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xbe,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xbe,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xd8,0x02,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0x93,0x01,0x00,0x00,0xea,0x01,0x00,0x00,
    -0xc1,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0xc4,0x01,0x00,0x00,0xd8,0x02,0x00,0x00,0xbe,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xc0,0x01,0x00,0x00,0xc1,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xc4,0x01,0x00,0x00,
    -0xbf,0x01,0x00,0x00,0xc0,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xbf,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xc6,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xc6,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xe6,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0xbf,0x01,0x00,0x00,0xe8,0x01,0x00,0x00,0xc7,0x01,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xcc,0x01,0x00,0x00,
    -0xe6,0x02,0x00,0x00,0xbb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xc8,0x01,0x00,0x00,0xc7,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xcc,0x01,0x00,0x00,0xc7,0x01,0x00,0x00,
    -0xc8,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xc7,0x01,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd2,0x01,0x00,0x00,
    -0xd8,0x02,0x00,0x00,0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xd4,0x01,0x00,0x00,0xd2,0x01,0x00,0x00,
    -0xe6,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xd6,0x01,0x00,0x00,0x5a,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd9,0x01,0x00,0x00,
    -0xd8,0x02,0x00,0x00,0xd8,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xda,0x01,0x00,0x00,0xd6,0x01,0x00,0x00,
    -0xd9,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xdc,0x01,0x00,0x00,0x69,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdd,0x01,0x00,0x00,
    -0xda,0x01,0x00,0x00,0xdc,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xdf,0x01,0x00,0x00,0xdd,0x01,0x00,0x00,
    -0xe6,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xe1,0x01,0x00,0x00,0xdf,0x01,0x00,0x00,0xe0,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe3,0x01,0x00,0x00,
    -0xe1,0x01,0x00,0x00,0xd3,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x2c,0x01,0x00,0x00,0xe4,0x01,0x00,0x00,0x59,0x01,0x00,0x00,
    -0xe3,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    -0xe5,0x01,0x00,0x00,0xe4,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xcc,0x00,0x00,0x00,0xe6,0x01,0x00,0x00,0xd0,0x01,0x00,0x00,
    -0xd4,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xe6,0x01,0x00,0x00,
    -0xe5,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xe8,0x01,0x00,0x00,0xe6,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xc6,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xc8,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xc1,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xc1,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xea,0x01,0x00,0x00,0xd8,0x02,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xbe,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xc0,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xec,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xec,0x01,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xd9,0x02,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0xc0,0x01,0x00,0x00,0x2e,0x02,0x00,0x00,
    -0xef,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0xf2,0x01,0x00,0x00,0xd9,0x02,0x00,0x00,0xbe,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0xee,0x01,0x00,0x00,0xef,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xf2,0x01,0x00,0x00,
    -0xed,0x01,0x00,0x00,0xee,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xed,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xf4,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xf4,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xdd,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0xed,0x01,0x00,0x00,0x2c,0x02,0x00,0x00,0xf7,0x01,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xfa,0x01,0x00,0x00,
    -0xdd,0x02,0x00,0x00,0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0xf6,0x01,0x00,0x00,0xf7,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0xfa,0x01,0x00,0x00,0xf5,0x01,0x00,0x00,
    -0xf6,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xf5,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xfc,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xfc,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xdf,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0xf5,0x01,0x00,0x00,
    -0x2a,0x02,0x00,0x00,0xff,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0x02,0x02,0x00,0x00,0xdf,0x02,0x00,0x00,
    -0xbb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xfe,0x01,0x00,0x00,
    -0xff,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x02,0x02,0x00,0x00,0xfd,0x01,0x00,0x00,0xfe,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xfd,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x04,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x04,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xe1,0x02,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0xfd,0x01,0x00,0x00,0x28,0x02,0x00,0x00,
    -0x05,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0x0a,0x02,0x00,0x00,0xe1,0x02,0x00,0x00,0x63,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x06,0x02,0x00,0x00,0x05,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x0a,0x02,0x00,0x00,
    -0x05,0x02,0x00,0x00,0x06,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x05,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x0c,0x02,0x00,0x00,0xd9,0x02,0x00,0x00,0xbb,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0e,0x02,0x00,0x00,
    -0x0c,0x02,0x00,0x00,0xdf,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x10,0x02,0x00,0x00,0x0e,0x02,0x00,0x00,
    -0x0f,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x12,0x02,0x00,0x00,0xdd,0x02,0x00,0x00,0x63,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x13,0x02,0x00,0x00,
    -0x10,0x02,0x00,0x00,0x12,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x15,0x02,0x00,0x00,0x13,0x02,0x00,0x00,
    -0xe1,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x19,0x02,0x00,0x00,0x12,0x02,0x00,0x00,0xe1,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,0x1a,0x02,0x00,0x00,
    -0xa3,0x01,0x00,0x00,0x19,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xc3,0x00,0x00,0x00,0x1b,0x02,0x00,0x00,0x1a,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,0x20,0x02,0x00,0x00,
    -0xd0,0x01,0x00,0x00,0x0e,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xc3,0x00,0x00,0x00,0x21,0x02,0x00,0x00,0x20,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,0x23,0x02,0x00,0x00,
    -0xc9,0x00,0x00,0x00,0x15,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0xc3,0x00,0x00,0x00,0x24,0x02,0x00,0x00,0x23,0x02,0x00,0x00,
    -0x0c,0x00,0x08,0x00,0xc3,0x00,0x00,0x00,0x25,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x1b,0x02,0x00,0x00,
    -0x21,0x02,0x00,0x00,0x24,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0x23,0x02,0x00,0x00,0x25,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x28,0x02,0x00,0x00,0xe1,0x02,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x04,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x06,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xff,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xff,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2a,0x02,0x00,0x00,
    -0xdf,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0xfc,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xfe,0x01,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xf7,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xf7,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x2c,0x02,0x00,0x00,0xdd,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0xf4,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xf6,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xef,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xef,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x2e,0x02,0x00,0x00,0xd9,0x02,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xec,0x01,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xee,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x8c,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x8c,0x01,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x30,0x02,0x00,0x00,
    -0xd3,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x89,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x8b,0x01,0x00,0x00,
    -0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x81,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xd6,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xd6,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x32,0x02,0x00,0x00,0xb9,0x02,0x00,0x00,
    -0x6d,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xd3,0x00,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0xd5,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x37,0x02,0x00,0x00,0x56,0x00,0x00,0x00,
    -0x54,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x38,0x02,0x00,0x00,0x96,0x00,0x00,0x00,0x37,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3d,0x02,0x00,0x00,
    -0x5a,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x3e,0x02,0x00,0x00,0xa7,0x00,0x00,0x00,
    -0x3d,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    -0x42,0x02,0x00,0x00,0x14,0x00,0x00,0x00,0x41,0x02,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x43,0x02,0x00,0x00,
    -0x42,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x44,0x02,0x00,0x00,0x0f,0x00,0x00,0x00,0x43,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x48,0x02,0x00,0x00,
    -0x48,0x00,0x00,0x00,0x43,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x0d,0x00,0x00,0x00,0x4a,0x02,0x00,0x00,0x49,0x02,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x4b,0x02,0x00,0x00,0x4a,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x4c,0x02,0x00,0x00,0x48,0x02,0x00,0x00,
    -0x4b,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x4d,0x02,0x00,0x00,0x44,0x02,0x00,0x00,0x4c,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x4f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x4f,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0xba,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,
    -0xb5,0x02,0x00,0x00,0x52,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0x55,0x02,0x00,0x00,0xba,0x02,0x00,0x00,
    -0xbe,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x51,0x02,0x00,0x00,
    -0x52,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    -0x55,0x02,0x00,0x00,0x50,0x02,0x00,0x00,0x51,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x50,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x57,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x57,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xbb,0x02,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0x50,0x02,0x00,0x00,0xb3,0x02,0x00,0x00,
    -0x5a,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0x5d,0x02,0x00,0x00,0xbb,0x02,0x00,0x00,0x61,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x59,0x02,0x00,0x00,0x5a,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x5d,0x02,0x00,0x00,
    -0x58,0x02,0x00,0x00,0x59,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x58,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x61,0x02,0x00,0x00,0xbb,0x02,0x00,0x00,0x62,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x62,0x02,0x00,0x00,
    -0x38,0x02,0x00,0x00,0x61,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x64,0x02,0x00,0x00,0x65,0x00,0x00,0x00,
    +0x65,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,0x64,0x00,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x69,0x00,0x00,0x00,
    +0x5e,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x89,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,
    +0x6e,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x74,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x73,0x00,0x00,0x00,
    +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x79,0x00,0x00,0x00,
    +0x4f,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,
    +0x7d,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    +0x82,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x81,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x83,0x00,0x00,0x00,
    +0x82,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x84,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x83,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x87,0x00,0x00,0x00,
    +0x14,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x88,0x00,0x00,0x00,0x87,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8a,0x00,0x00,0x00,
    +0x48,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,0x8a,0x00,0x00,0x00,
    +0x83,0x00,0x00,0x00,0x0c,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0x8e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x26,0x00,0x00,0x00,
    +0x88,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x17,0x00,0x00,0x00,0x92,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    +0x91,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x93,0x00,0x00,0x00,0x92,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x94,0x00,0x00,0x00,0x33,0x00,0x00,0x00,
    +0x93,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x96,0x00,0x00,0x00,0x43,0x00,0x00,0x00,0x38,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x98,0x00,0x00,0x00,
    +0x14,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x99,0x00,0x00,0x00,0x98,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0x96,0x00,0x00,0x00,0x99,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,0x94,0x00,0x00,0x00,
    +0x9a,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x9d,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9e,0x00,0x00,0x00,
    +0x9d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x17,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    +0xa1,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0xa3,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,
    +0xa3,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xa7,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0xa6,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,
    +0x14,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0xaa,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xab,0x00,0x00,0x00,
    +0xa7,0x00,0x00,0x00,0xaa,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xac,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,
    +0xab,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xae,0x00,0x00,0x00,0xac,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,
    +0xae,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xb1,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xb1,0x00,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xb8,0x02,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,
    +0xb2,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0xc2,0x00,0x00,0x00,0xb8,0x02,0x00,0x00,0xc0,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xb3,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xc2,0x00,0x00,0x00,
    +0xb2,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xb2,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,
    +0xcd,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0xb8,0x02,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0xcd,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,
    +0xb8,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xb1,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xb3,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xd3,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xd3,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xd1,0x02,0x00,0x00,0xaf,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,
    +0x87,0x01,0x00,0x00,0xd6,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xcd,0x02,0x00,0x00,0x9e,0x00,0x00,0x00,
    +0xb3,0x00,0x00,0x00,0x84,0x01,0x00,0x00,0xd6,0x00,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xb9,0x02,0x00,0x00,
    +0x84,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,0x32,0x02,0x00,0x00,
    +0xd6,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0xda,0x00,0x00,0x00,0xb9,0x02,0x00,0x00,0x8e,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xd5,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xda,0x00,0x00,0x00,
    +0xd4,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xd4,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xdc,0x00,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xdc,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xc9,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0xd4,0x00,0x00,0x00,0x39,0x01,0x00,0x00,0xdd,0x00,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0xe2,0x00,0x00,0x00,
    +0xc9,0x02,0x00,0x00,0x38,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xde,0x00,0x00,0x00,0xdd,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0xe2,0x00,0x00,0x00,0xdd,0x00,0x00,0x00,
    +0xde,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xdd,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,
    +0x74,0x00,0x00,0x00,0xc9,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xea,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,
    +0x99,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xeb,0x00,0x00,0x00,0xea,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xec,0x00,0x00,0x00,
    +0xcd,0x02,0x00,0x00,0xeb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0xec,0x00,0x00,0x00,
    +0x6f,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xf4,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,
    +0xf4,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0xee,0x00,0x00,0x00,
    +0xfa,0x00,0x00,0x00,0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xff,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x00,0x01,0x00,0x00,
    +0xff,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x41,0x00,0x07,0x00,
    +0x0c,0x01,0x00,0x00,0x0d,0x01,0x00,0x00,0x0a,0x01,0x00,0x00,
    +0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0x35,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x02,0x01,0x00,0x00,0x0e,0x01,0x00,0x00,
    +0x0d,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    +0x0f,0x01,0x00,0x00,0x0e,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x15,0x01,0x00,0x00,0x16,0x01,0x00,0x00,0x0a,0x01,0x00,0x00,
    +0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0x00,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x03,0x01,0x00,0x00,
    +0x17,0x01,0x00,0x00,0x16,0x01,0x00,0x00,0x72,0x00,0x04,0x00,
    +0x15,0x00,0x00,0x00,0x18,0x01,0x00,0x00,0x17,0x01,0x00,0x00,
    +0x6f,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x19,0x01,0x00,0x00,
    +0x18,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x1c,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x15,0x01,0x00,0x00,0x1d,0x01,0x00,0x00,
    +0x0a,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x03,0x01,0x00,0x00,0x1e,0x01,0x00,0x00,0x1d,0x01,0x00,0x00,
    +0x72,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x1f,0x01,0x00,0x00,
    +0x1e,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    +0x20,0x01,0x00,0x00,0x1f,0x01,0x00,0x00,0x50,0x00,0x05,0x00,
    +0x10,0x01,0x00,0x00,0x21,0x01,0x00,0x00,0x19,0x01,0x00,0x00,
    +0x20,0x01,0x00,0x00,0x8e,0x00,0x05,0x00,0x10,0x01,0x00,0x00,
    +0x23,0x01,0x00,0x00,0x21,0x01,0x00,0x00,0x0f,0x01,0x00,0x00,
    +0x51,0x00,0x05,0x00,0xc3,0x00,0x00,0x00,0x2b,0x01,0x00,0x00,
    +0x23,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x2c,0x01,0x00,0x00,0x2d,0x01,0x00,0x00,0x28,0x01,0x00,0x00,
    +0xf7,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0x2d,0x01,0x00,0x00,
    +0x2b,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x2f,0x01,0x00,0x00,0xf7,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
    +0x51,0x00,0x05,0x00,0xc3,0x00,0x00,0x00,0x31,0x01,0x00,0x00,
    +0x23,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x2c,0x01,0x00,0x00,0x32,0x01,0x00,0x00,0x28,0x01,0x00,0x00,
    +0x2f,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x32,0x01,0x00,0x00,
    +0x31,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x39,0x01,0x00,0x00,0xc9,0x02,0x00,0x00,0x37,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xdc,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xde,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x3b,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x3b,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xca,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0xde,0x00,0x00,0x00,0x80,0x01,0x00,0x00,0x3e,0x01,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x41,0x01,0x00,0x00,
    +0xca,0x02,0x00,0x00,0xa6,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x3d,0x01,0x00,0x00,0x3e,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x41,0x01,0x00,0x00,0x3c,0x01,0x00,0x00,
    +0x3d,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x3c,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x45,0x01,0x00,0x00,
    +0xa7,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x47,0x01,0x00,0x00,0x45,0x01,0x00,0x00,
    +0xca,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    +0x48,0x01,0x00,0x00,0x14,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x49,0x01,0x00,0x00,
    +0x48,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0x4a,0x01,0x00,0x00,0x47,0x01,0x00,0x00,0x49,0x01,0x00,0x00,
    +0xf7,0x00,0x03,0x00,0x4c,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x4a,0x01,0x00,0x00,0x4b,0x01,0x00,0x00,
    +0x4c,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x4b,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4f,0x01,0x00,0x00,
    +0xb9,0x02,0x00,0x00,0x79,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0x51,0x01,0x00,0x00,0x4f,0x01,0x00,0x00,
    +0x8e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x4c,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x4c,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0xc1,0x00,0x00,0x00,0x52,0x01,0x00,0x00,0x4a,0x01,0x00,0x00,
    +0x3c,0x01,0x00,0x00,0x51,0x01,0x00,0x00,0x4b,0x01,0x00,0x00,
    +0xf7,0x00,0x03,0x00,0x54,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x52,0x01,0x00,0x00,0x53,0x01,0x00,0x00,
    +0x73,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x53,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5c,0x01,0x00,0x00,
    +0x7e,0x00,0x00,0x00,0xca,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x5e,0x01,0x00,0x00,0x5c,0x01,0x00,0x00,
    +0x5d,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x60,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,0x79,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6b,0x01,0x00,0x00,
    +0x5c,0x01,0x00,0x00,0xaa,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x6c,0x01,0x00,0x00,0xd1,0x02,0x00,0x00,
    +0x6b,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x6e,0x01,0x00,0x00,0x6c,0x01,0x00,0x00,0x79,0x00,0x00,0x00,
    +0x41,0x00,0x06,0x00,0x6f,0x01,0x00,0x00,0x70,0x01,0x00,0x00,
    +0x64,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0x6e,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x71,0x01,0x00,0x00,
    +0x70,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x2c,0x01,0x00,0x00,
    +0x72,0x01,0x00,0x00,0x59,0x01,0x00,0x00,0x60,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x72,0x01,0x00,0x00,0x71,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x54,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x73,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x76,0x01,0x00,0x00,0x7e,0x00,0x00,0x00,0xca,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x78,0x01,0x00,0x00,
    +0x76,0x01,0x00,0x00,0x77,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x7a,0x01,0x00,0x00,0x78,0x01,0x00,0x00,
    +0x79,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x2c,0x01,0x00,0x00,
    +0x7b,0x01,0x00,0x00,0x59,0x01,0x00,0x00,0x7a,0x01,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x7b,0x01,0x00,0x00,0xcb,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x54,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x54,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x3e,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x3e,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x80,0x01,0x00,0x00,0xca,0x02,0x00,0x00,
    +0x7e,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x3b,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x3d,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,
    +0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x81,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x84,0x01,0x00,0x00,
    +0xcd,0x02,0x00,0x00,0x82,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x87,0x01,0x00,0x00,0xd1,0x02,0x00,0x00,
    +0x85,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x89,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x89,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xd3,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0x3d,0x01,0x00,0x00,0x30,0x02,0x00,0x00,0x8c,0x01,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x8f,0x01,0x00,0x00,
    +0xd3,0x02,0x00,0x00,0x6d,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x8b,0x01,0x00,0x00,0x8c,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x8f,0x01,0x00,0x00,0x8a,0x01,0x00,0x00,
    +0x8b,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x8a,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x91,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x91,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xd7,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0x8a,0x01,0x00,0x00,
    +0xbc,0x01,0x00,0x00,0x94,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0x97,0x01,0x00,0x00,0xd7,0x02,0x00,0x00,
    +0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x93,0x01,0x00,0x00,
    +0x94,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x97,0x01,0x00,0x00,0x92,0x01,0x00,0x00,0x93,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x92,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x99,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x99,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xe9,0x02,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0x92,0x01,0x00,0x00,0xba,0x01,0x00,0x00,
    +0x9a,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0x9f,0x01,0x00,0x00,0xe9,0x02,0x00,0x00,0x63,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x9b,0x01,0x00,0x00,0x9a,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x9f,0x01,0x00,0x00,
    +0x9a,0x01,0x00,0x00,0x9b,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x9a,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xa5,0x01,0x00,0x00,0xd7,0x02,0x00,0x00,0x63,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa7,0x01,0x00,0x00,
    +0xa5,0x01,0x00,0x00,0xe9,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xa9,0x01,0x00,0x00,0x56,0x00,0x00,0x00,
    +0x54,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xab,0x01,0x00,0x00,0xd7,0x02,0x00,0x00,0x62,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xac,0x01,0x00,0x00,
    +0xa9,0x01,0x00,0x00,0xab,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xae,0x01,0x00,0x00,0x65,0x00,0x00,0x00,
     0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x65,0x02,0x00,0x00,0x62,0x02,0x00,0x00,0x64,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x69,0x02,0x00,0x00,
    -0xba,0x02,0x00,0x00,0xd8,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x6a,0x02,0x00,0x00,0x3e,0x02,0x00,0x00,
    -0x69,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x6c,0x02,0x00,0x00,0x69,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6d,0x02,0x00,0x00,
    -0x6a,0x02,0x00,0x00,0x6c,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x6f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x6f,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xbd,0x02,0x00,0x00,
    -0x3f,0x00,0x00,0x00,0x58,0x02,0x00,0x00,0xb1,0x02,0x00,0x00,
    -0x72,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    -0x75,0x02,0x00,0x00,0xbd,0x02,0x00,0x00,0xbb,0x00,0x00,0x00,
    -0xf6,0x00,0x04,0x00,0x71,0x02,0x00,0x00,0x72,0x02,0x00,0x00,
    -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x75,0x02,0x00,0x00,
    -0x70,0x02,0x00,0x00,0x71,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x70,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x77,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x77,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    -0x06,0x00,0x00,0x00,0xbf,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    -0x70,0x02,0x00,0x00,0xaf,0x02,0x00,0x00,0x7a,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x7d,0x02,0x00,0x00,
    -0xbf,0x02,0x00,0x00,0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    -0x79,0x02,0x00,0x00,0x7a,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    -0xfa,0x00,0x04,0x00,0x7d,0x02,0x00,0x00,0x78,0x02,0x00,0x00,
    -0x79,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x78,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x80,0x02,0x00,0x00,
    -0x65,0x02,0x00,0x00,0xbf,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    -0xc1,0x00,0x00,0x00,0x83,0x02,0x00,0x00,0x80,0x02,0x00,0x00,
    -0x37,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0x85,0x02,0x00,0x00,
    -0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x83,0x02,0x00,0x00,
    -0x84,0x02,0x00,0x00,0x85,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x84,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x88,0x02,0x00,0x00,0x6d,0x02,0x00,0x00,0xbd,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x89,0x02,0x00,0x00,
    -0x14,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x8a,0x02,0x00,0x00,0x89,0x02,0x00,0x00,
    -0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x8b,0x02,0x00,0x00,
    -0x88,0x02,0x00,0x00,0x8a,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x85,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x85,0x02,0x00,0x00,
    -0xf5,0x00,0x07,0x00,0xc1,0x00,0x00,0x00,0x8c,0x02,0x00,0x00,
    -0x83,0x02,0x00,0x00,0x78,0x02,0x00,0x00,0x8b,0x02,0x00,0x00,
    -0x84,0x02,0x00,0x00,0xf7,0x00,0x03,0x00,0x8e,0x02,0x00,0x00,
    -0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x8c,0x02,0x00,0x00,
    -0x8d,0x02,0x00,0x00,0x8e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x8d,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x96,0x02,0x00,0x00,0x6d,0x02,0x00,0x00,0xbd,0x02,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x98,0x02,0x00,0x00,
    -0x14,0x00,0x00,0x00,0x97,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x99,0x02,0x00,0x00,0x98,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9a,0x02,0x00,0x00,
    -0x96,0x02,0x00,0x00,0x99,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0x9b,0x02,0x00,0x00,0x4d,0x02,0x00,0x00,
    -0x9a,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x9d,0x02,0x00,0x00,0x9b,0x02,0x00,0x00,0x65,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9f,0x02,0x00,0x00,
    -0x9d,0x02,0x00,0x00,0xbf,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xa1,0x02,0x00,0x00,0xba,0x02,0x00,0x00,
    +0xaf,0x01,0x00,0x00,0xac,0x01,0x00,0x00,0xae,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb1,0x01,0x00,0x00,
    +0xaf,0x01,0x00,0x00,0xe9,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xb3,0x01,0x00,0x00,0xb1,0x01,0x00,0x00,
    +0xb2,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xb5,0x01,0x00,0x00,0xb3,0x01,0x00,0x00,0xd3,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x2c,0x01,0x00,0x00,0xb6,0x01,0x00,0x00,
    +0x28,0x01,0x00,0x00,0xb5,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xc3,0x00,0x00,0x00,0xb7,0x01,0x00,0x00,0xb6,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,0xb8,0x01,0x00,0x00,
    +0xa3,0x01,0x00,0x00,0xa7,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0xb8,0x01,0x00,0x00,0xb7,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xba,0x01,0x00,0x00,0xe9,0x02,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x99,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x9b,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x94,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x94,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbc,0x01,0x00,0x00,
    +0xd7,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x91,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x93,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xbe,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xbe,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xd8,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0x93,0x01,0x00,0x00,
    +0xea,0x01,0x00,0x00,0xc1,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0xc4,0x01,0x00,0x00,0xd8,0x02,0x00,0x00,
    +0xbe,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xc0,0x01,0x00,0x00,
    +0xc1,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xc4,0x01,0x00,0x00,0xbf,0x01,0x00,0x00,0xc0,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xbf,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xc6,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xc6,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xe6,0x02,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0xbf,0x01,0x00,0x00,0xe8,0x01,0x00,0x00,
    +0xc7,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0xcc,0x01,0x00,0x00,0xe6,0x02,0x00,0x00,0xbb,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xc8,0x01,0x00,0x00,0xc7,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xcc,0x01,0x00,0x00,
    +0xc7,0x01,0x00,0x00,0xc8,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xc7,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xd2,0x01,0x00,0x00,0xd8,0x02,0x00,0x00,0xbb,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd4,0x01,0x00,0x00,
    +0xd2,0x01,0x00,0x00,0xe6,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xd6,0x01,0x00,0x00,0x5a,0x00,0x00,0x00,
    +0xb8,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xd9,0x01,0x00,0x00,0xd8,0x02,0x00,0x00,0xd8,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xda,0x01,0x00,0x00,
    +0xd6,0x01,0x00,0x00,0xd9,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xdc,0x01,0x00,0x00,0x69,0x00,0x00,0x00,
     0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xa3,0x02,0x00,0x00,0xa1,0x02,0x00,0x00,0xbd,0x02,0x00,0x00,
    -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa5,0x02,0x00,0x00,
    -0xa3,0x02,0x00,0x00,0xa4,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xa7,0x02,0x00,0x00,0xbb,0x02,0x00,0x00,
    +0xdd,0x01,0x00,0x00,0xda,0x01,0x00,0x00,0xdc,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdf,0x01,0x00,0x00,
    +0xdd,0x01,0x00,0x00,0xe6,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xe1,0x01,0x00,0x00,0xdf,0x01,0x00,0x00,
    +0xe0,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xe3,0x01,0x00,0x00,0xe1,0x01,0x00,0x00,0xd3,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x2c,0x01,0x00,0x00,0xe4,0x01,0x00,0x00,
    +0x59,0x01,0x00,0x00,0xe3,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xc3,0x00,0x00,0x00,0xe5,0x01,0x00,0x00,0xe4,0x01,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,0xe6,0x01,0x00,0x00,
    +0xd0,0x01,0x00,0x00,0xd4,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0xe6,0x01,0x00,0x00,0xe5,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xe8,0x01,0x00,0x00,0xe6,0x02,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xc6,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xc8,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xc1,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xc1,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xea,0x01,0x00,0x00,
    +0xd8,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xbe,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xc0,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xec,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xec,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xd9,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0xc0,0x01,0x00,0x00,
    +0x2e,0x02,0x00,0x00,0xef,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0xf2,0x01,0x00,0x00,0xd9,0x02,0x00,0x00,
    +0xbe,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xee,0x01,0x00,0x00,
    +0xef,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0xf2,0x01,0x00,0x00,0xed,0x01,0x00,0x00,0xee,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xed,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xf4,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xf4,0x01,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xdd,0x02,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0xed,0x01,0x00,0x00,0x2c,0x02,0x00,0x00,
    +0xf7,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0xfa,0x01,0x00,0x00,0xdd,0x02,0x00,0x00,0x61,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0xf6,0x01,0x00,0x00,0xf7,0x01,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xfa,0x01,0x00,0x00,
    +0xf5,0x01,0x00,0x00,0xf6,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xf5,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xfc,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xfc,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xdf,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0xf5,0x01,0x00,0x00,0x2a,0x02,0x00,0x00,0xff,0x01,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x02,0x02,0x00,0x00,
    +0xdf,0x02,0x00,0x00,0xbb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xfe,0x01,0x00,0x00,0xff,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x02,0x02,0x00,0x00,0xfd,0x01,0x00,0x00,
    +0xfe,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xfd,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x04,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x04,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xe1,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0xfd,0x01,0x00,0x00,
    +0x28,0x02,0x00,0x00,0x05,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0x0a,0x02,0x00,0x00,0xe1,0x02,0x00,0x00,
    +0x63,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x06,0x02,0x00,0x00,
    +0x05,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x0a,0x02,0x00,0x00,0x05,0x02,0x00,0x00,0x06,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x05,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x0c,0x02,0x00,0x00,0xd9,0x02,0x00,0x00,
    +0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x0e,0x02,0x00,0x00,0x0c,0x02,0x00,0x00,0xdf,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x10,0x02,0x00,0x00,
    +0x0e,0x02,0x00,0x00,0x0f,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x12,0x02,0x00,0x00,0xdd,0x02,0x00,0x00,
     0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xa8,0x02,0x00,0x00,0xa5,0x02,0x00,0x00,0xa7,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xaa,0x02,0x00,0x00,
    -0xa8,0x02,0x00,0x00,0xbf,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    -0xcc,0x00,0x00,0x00,0xab,0x02,0x00,0x00,0xc9,0x00,0x00,0x00,
    -0xaa,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,
    -0xac,0x02,0x00,0x00,0xab,0x02,0x00,0x00,0x41,0x00,0x06,0x00,
    -0x6f,0x01,0x00,0x00,0xad,0x02,0x00,0x00,0x92,0x02,0x00,0x00,
    -0x35,0x00,0x00,0x00,0x9f,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,
    -0xad,0x02,0x00,0x00,0xac,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x8e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x8e,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x7a,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x7a,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xaf,0x02,0x00,0x00,0xbf,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x77,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x79,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x72,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x72,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xb1,0x02,0x00,0x00,0xbd,0x02,0x00,0x00,
    -0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x6f,0x02,0x00,0x00,
    -0xf8,0x00,0x02,0x00,0x71,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x5a,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x5a,0x02,0x00,0x00,
    -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb3,0x02,0x00,0x00,
    -0xbb,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    -0x57,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x59,0x02,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x52,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x52,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xb5,0x02,0x00,0x00,0xba,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0xf9,0x00,0x02,0x00,0x4f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x51,0x02,0x00,0x00,0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
    -
    +0x13,0x02,0x00,0x00,0x10,0x02,0x00,0x00,0x12,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x15,0x02,0x00,0x00,
    +0x13,0x02,0x00,0x00,0xe1,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x19,0x02,0x00,0x00,0x12,0x02,0x00,0x00,
    +0xe1,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,
    +0x1a,0x02,0x00,0x00,0xa3,0x01,0x00,0x00,0x19,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x1b,0x02,0x00,0x00,
    +0x1a,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,
    +0x20,0x02,0x00,0x00,0xd0,0x01,0x00,0x00,0x0e,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x21,0x02,0x00,0x00,
    +0x20,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,
    +0x23,0x02,0x00,0x00,0xc9,0x00,0x00,0x00,0x15,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x24,0x02,0x00,0x00,
    +0x23,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0xc3,0x00,0x00,0x00,
    +0x25,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,
    +0x1b,0x02,0x00,0x00,0x21,0x02,0x00,0x00,0x24,0x02,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0x23,0x02,0x00,0x00,0x25,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x28,0x02,0x00,0x00,
    +0xe1,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x04,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x06,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xff,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xff,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x2a,0x02,0x00,0x00,0xdf,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0xfc,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0xfe,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xf7,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xf7,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x2c,0x02,0x00,0x00,0xdd,0x02,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xf4,0x01,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0xf6,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xef,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xef,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2e,0x02,0x00,0x00,
    +0xd9,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xec,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xee,0x01,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x8c,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x8c,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x30,0x02,0x00,0x00,0xd3,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x89,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x8b,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x81,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xd6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xd6,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x32,0x02,0x00,0x00,
    +0xb9,0x02,0x00,0x00,0x6d,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xd3,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xd5,0x00,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x37,0x02,0x00,0x00,
    +0x56,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x38,0x02,0x00,0x00,0x96,0x00,0x00,0x00,
    +0x37,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x3d,0x02,0x00,0x00,0x5a,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3e,0x02,0x00,0x00,
    +0xa7,0x00,0x00,0x00,0x3d,0x02,0x00,0x00,0x41,0x00,0x05,0x00,
    +0x17,0x00,0x00,0x00,0x42,0x02,0x00,0x00,0x14,0x00,0x00,0x00,
    +0x41,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x43,0x02,0x00,0x00,0x42,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x44,0x02,0x00,0x00,0x0f,0x00,0x00,0x00,
    +0x43,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x48,0x02,0x00,0x00,0x48,0x00,0x00,0x00,0x43,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x0d,0x00,0x00,0x00,0x4a,0x02,0x00,0x00,
    +0x49,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x4b,0x02,0x00,0x00,0x4a,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4c,0x02,0x00,0x00,
    +0x48,0x02,0x00,0x00,0x4b,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x4d,0x02,0x00,0x00,0x44,0x02,0x00,0x00,
    +0x4c,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x4f,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x4f,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,
    +0x06,0x00,0x00,0x00,0xba,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,
    +0xd5,0x00,0x00,0x00,0xb5,0x02,0x00,0x00,0x52,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x55,0x02,0x00,0x00,
    +0xba,0x02,0x00,0x00,0xbe,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x51,0x02,0x00,0x00,0x52,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
    +0xfa,0x00,0x04,0x00,0x55,0x02,0x00,0x00,0x50,0x02,0x00,0x00,
    +0x51,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x50,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x57,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x57,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xbb,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0x50,0x02,0x00,0x00,
    +0xb3,0x02,0x00,0x00,0x5a,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0x5d,0x02,0x00,0x00,0xbb,0x02,0x00,0x00,
    +0x61,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x59,0x02,0x00,0x00,
    +0x5a,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x5d,0x02,0x00,0x00,0x58,0x02,0x00,0x00,0x59,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x58,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x61,0x02,0x00,0x00,0xbb,0x02,0x00,0x00,
    +0x62,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x62,0x02,0x00,0x00,0x38,0x02,0x00,0x00,0x61,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x64,0x02,0x00,0x00,
    +0x65,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x65,0x02,0x00,0x00,0x62,0x02,0x00,0x00,
    +0x64,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x69,0x02,0x00,0x00,0xba,0x02,0x00,0x00,0xd8,0x01,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6a,0x02,0x00,0x00,
    +0x3e,0x02,0x00,0x00,0x69,0x02,0x00,0x00,0x84,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x6c,0x02,0x00,0x00,0x69,0x00,0x00,0x00,
    +0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x6d,0x02,0x00,0x00,0x6a,0x02,0x00,0x00,0x6c,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x6f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x6f,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    +0xbd,0x02,0x00,0x00,0x3f,0x00,0x00,0x00,0x58,0x02,0x00,0x00,
    +0xb1,0x02,0x00,0x00,0x72,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,
    +0xc1,0x00,0x00,0x00,0x75,0x02,0x00,0x00,0xbd,0x02,0x00,0x00,
    +0xbb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x71,0x02,0x00,0x00,
    +0x72,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x75,0x02,0x00,0x00,0x70,0x02,0x00,0x00,0x71,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x70,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x77,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x77,0x02,0x00,0x00,
    +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xbf,0x02,0x00,0x00,
    +0x3f,0x00,0x00,0x00,0x70,0x02,0x00,0x00,0xaf,0x02,0x00,0x00,
    +0x7a,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0x7d,0x02,0x00,0x00,0xbf,0x02,0x00,0x00,0x63,0x00,0x00,0x00,
    +0xf6,0x00,0x04,0x00,0x79,0x02,0x00,0x00,0x7a,0x02,0x00,0x00,
    +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x7d,0x02,0x00,0x00,
    +0x78,0x02,0x00,0x00,0x79,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x78,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x80,0x02,0x00,0x00,0x65,0x02,0x00,0x00,0xbf,0x02,0x00,0x00,
    +0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x83,0x02,0x00,0x00,
    +0x80,0x02,0x00,0x00,0x37,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,
    +0x85,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x83,0x02,0x00,0x00,0x84,0x02,0x00,0x00,0x85,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x84,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x88,0x02,0x00,0x00,0x6d,0x02,0x00,0x00,
    +0xbd,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    +0x89,0x02,0x00,0x00,0x14,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x8a,0x02,0x00,0x00,
    +0x89,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,
    +0x8b,0x02,0x00,0x00,0x88,0x02,0x00,0x00,0x8a,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x85,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x85,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0xc1,0x00,0x00,0x00,
    +0x8c,0x02,0x00,0x00,0x83,0x02,0x00,0x00,0x78,0x02,0x00,0x00,
    +0x8b,0x02,0x00,0x00,0x84,0x02,0x00,0x00,0xf7,0x00,0x03,0x00,
    +0x8e,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
    +0x8c,0x02,0x00,0x00,0x8d,0x02,0x00,0x00,0x8e,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x8d,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x96,0x02,0x00,0x00,0x6d,0x02,0x00,0x00,
    +0xbd,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    +0x98,0x02,0x00,0x00,0x14,0x00,0x00,0x00,0x97,0x02,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x99,0x02,0x00,0x00,
    +0x98,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x9a,0x02,0x00,0x00,0x96,0x02,0x00,0x00,0x99,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9b,0x02,0x00,0x00,
    +0x4d,0x02,0x00,0x00,0x9a,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0x9d,0x02,0x00,0x00,0x9b,0x02,0x00,0x00,
    +0x65,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x9f,0x02,0x00,0x00,0x9d,0x02,0x00,0x00,0xbf,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa1,0x02,0x00,0x00,
    +0xba,0x02,0x00,0x00,0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xa3,0x02,0x00,0x00,0xa1,0x02,0x00,0x00,
    +0xbd,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xa5,0x02,0x00,0x00,0xa3,0x02,0x00,0x00,0xa4,0x02,0x00,0x00,
    +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa7,0x02,0x00,0x00,
    +0xbb,0x02,0x00,0x00,0x63,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xa8,0x02,0x00,0x00,0xa5,0x02,0x00,0x00,
    +0xa7,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xaa,0x02,0x00,0x00,0xa8,0x02,0x00,0x00,0xbf,0x02,0x00,0x00,
    +0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,0xab,0x02,0x00,0x00,
    +0xc9,0x00,0x00,0x00,0xaa,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xc3,0x00,0x00,0x00,0xac,0x02,0x00,0x00,0xab,0x02,0x00,0x00,
    +0x41,0x00,0x06,0x00,0x6f,0x01,0x00,0x00,0xad,0x02,0x00,0x00,
    +0x92,0x02,0x00,0x00,0x35,0x00,0x00,0x00,0x9f,0x02,0x00,0x00,
    +0x3e,0x00,0x03,0x00,0xad,0x02,0x00,0x00,0xac,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x8e,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x8e,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x7a,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x7a,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xaf,0x02,0x00,0x00,0xbf,0x02,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x77,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x79,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x72,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x72,0x02,0x00,0x00,
    +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb1,0x02,0x00,0x00,
    +0xbd,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x6f,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0x71,0x02,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x5a,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x5a,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xb3,0x02,0x00,0x00,0xbb,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0xf9,0x00,0x02,0x00,0x57,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,
    +0x59,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x52,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x52,0x02,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x06,0x00,0x00,0x00,0xb5,0x02,0x00,0x00,0xba,0x02,0x00,0x00,
    +0xcf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x4f,0x02,0x00,0x00,
    +0xf8,0x00,0x02,0x00,0x51,0x02,0x00,0x00,0xfd,0x00,0x01,0x00,
    +0x38,0x00,0x01,0x00,
     };
    -const uint64_t matmul_q8_0_f32_fp32_len = 10488;
    +const uint64_t matmul_q8_0_f32_fp32_len = 10468;
     
     unsigned char mul_f32_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
    @@ -116404,40 +120092,40 @@ unsigned char mul_mat_vec_f16_f16_f32_data[] = {
     0x2e,0x73,0x74,0x64,0x2e,0x34,0x35,0x30,0x00,0x00,0x00,0x00,
     0x0e,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
     0x0f,0x00,0x0d,0x00,0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x6d,0x61,0x69,0x6e,0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    -0x22,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x69,0x00,0x00,0x00,
    +0x6d,0x61,0x69,0x6e,0x00,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,
    +0x32,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x69,0x00,0x00,0x00,
     0x6e,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,
     0xf8,0x00,0x00,0x00,0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00,
     0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x19,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x17,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x48,0x00,0x04,0x00,
    +0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    +0x18,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x1a,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x1a,0x00,0x00,0x00,0x21,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x32,0x00,0x00,0x00,
     0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,
    +0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x38,0x00,0x00,0x00,
     0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x38,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
     0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x20,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,
    +0x38,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x38,0x00,0x00,0x00,
     0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x38,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
     0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x20,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,
    +0x38,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x38,0x00,0x00,0x00,
     0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x38,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
     0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x20,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x24,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,
    +0x38,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x24,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x38,0x00,0x00,0x00,
     0x0a,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x28,0x00,0x00,0x00,
    -0x47,0x00,0x03,0x00,0x20,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x52,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x53,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x53,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x53,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x55,0x00,0x00,0x00,
    -0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x55,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x47,0x00,0x03,0x00,0x38,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
     0x47,0x00,0x04,0x00,0x69,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
     0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x6e,0x00,0x00,0x00,
     0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    @@ -116464,56 +120152,56 @@ unsigned char mul_mat_vec_f16_f16_f32_data[] = {
     0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00,
     0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x00,0x03,0x00,
    -0x0e,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x17,0x00,0x04,0x00,
    -0x17,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x17,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x18,0x00,0x00,0x00,
    -0x19,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x1e,0x00,0x0d,0x00,0x20,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x21,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x09,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x23,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x16,0x00,0x03,0x00,
    +0x16,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    +0x17,0x00,0x00,0x00,0x16,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
    +0x18,0x00,0x00,0x00,0x17,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x19,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,
     0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x25,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,
    -0x30,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x23,0x00,0x00,0x00,0x36,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x3c,0x00,0x00,0x00,
    -0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,
    -0x43,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x23,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0x51,0x00,0x00,0x00,
    -0x10,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x52,0x00,0x00,0x00,
    -0x51,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x53,0x00,0x00,0x00,
    -0x52,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x54,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x53,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0x54,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x56,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x5a,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0x18,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x20,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x16,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x27,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x17,0x00,0x04,0x00,
    +0x30,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x31,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x30,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x31,0x00,0x00,0x00,
    +0x32,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x33,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x1e,0x00,0x0d,0x00,0x38,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x39,0x00,0x00,0x00,
    +0x09,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0x39,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x3c,0x00,0x00,0x00,
    +0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x1b,0x00,0x00,0x00,0x47,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,
    +0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,
    +0x53,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x1b,0x00,0x00,0x00,0x5a,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,
    +0x05,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,
    +0x64,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0x31,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
     0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x6a,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x18,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x31,0x00,0x00,0x00,
     0x6e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x1c,0x00,0x04,0x00,0x7c,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,
    +0x1c,0x00,0x04,0x00,0x7c,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
     0x7b,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x7d,0x00,0x00,0x00,
     0x04,0x00,0x00,0x00,0x7c,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
     0x7d,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0x80,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x80,0x00,0x00,0x00,
     0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x81,0x00,0x00,0x00,
    -0x04,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x14,0x00,0x02,0x00,
    +0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x14,0x00,0x02,0x00,
     0x8d,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x92,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    -0xb5,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
    +0xb5,0x00,0x00,0x00,0x16,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
     0xb6,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
     0xb7,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xb6,0x00,0x00,0x00,
     0x3b,0x00,0x04,0x00,0xb7,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,
    @@ -116521,61 +120209,61 @@ unsigned char mul_mat_vec_f16_f16_f32_data[] = {
     0xd5,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0xd7,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
     0x7b,0x00,0x00,0x00,0x92,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x23,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x1d,0x00,0x03,0x00,0xf5,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x1d,0x00,0x03,0x00,0xf5,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
     0x1e,0x00,0x03,0x00,0xf6,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,
     0x20,0x00,0x04,0x00,0xf7,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
     0xf6,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xf7,0x00,0x00,0x00,
     0xf8,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0xfe,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,
    +0xfe,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
     0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x00,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x33,0x00,0x06,0x00,0x17,0x00,0x00,0x00,
    -0x01,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x1a,0x00,0x00,0x00,
    -0x1a,0x00,0x00,0x00,0x36,0x00,0x05,0x00,0x02,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x33,0x00,0x06,0x00,0x30,0x00,0x00,0x00,
    +0x01,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x27,0x00,0x00,0x00,
    +0x27,0x00,0x00,0x00,0x36,0x00,0x05,0x00,0x02,0x00,0x00,0x00,
     0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
     0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x1b,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,0x69,0x00,0x00,0x00,
    +0x33,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,0x69,0x00,0x00,0x00,
     0x6a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x6c,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x1b,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,
    +0x33,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,
     0x6a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x70,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x1b,0x00,0x00,0x00,0x09,0x01,0x00,0x00,0x19,0x00,0x00,0x00,
    -0x1a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x33,0x00,0x00,0x00,0x09,0x01,0x00,0x00,0x32,0x00,0x00,0x00,
    +0x27,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x0a,0x01,0x00,0x00,0x09,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x25,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x24,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x3c,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,
    +0x3b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x0d,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,0x86,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x0e,0x01,0x00,0x00,0x0a,0x01,0x00,0x00,
     0x0d,0x01,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x12,0x01,0x00,0x00,0x0a,0x01,0x00,0x00,0x0d,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,0x14,0x01,0x00,0x00,
    -0x22,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x3c,0x00,0x00,0x00,0x14,0x01,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x47,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x15,0x01,0x00,0x00,0x14,0x01,0x00,0x00,
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x16,0x01,0x00,0x00,
     0x0e,0x01,0x00,0x00,0x15,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x25,0x00,0x00,0x00,0x18,0x01,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x36,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x3c,0x00,0x00,0x00,0x18,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,
    +0x4d,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x19,0x01,0x00,0x00,0x18,0x01,0x00,0x00,0x86,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x1a,0x01,0x00,0x00,0x12,0x01,0x00,0x00,
    -0x19,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,
    -0x1c,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x3c,0x00,0x00,0x00,
    +0x19,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x3c,0x00,0x00,0x00,
    +0x1c,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,0x53,0x00,0x00,0x00,
     0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x1d,0x01,0x00,0x00,
     0x1c,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x1e,0x01,0x00,0x00,0x16,0x01,0x00,0x00,0x1d,0x01,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x20,0x01,0x00,0x00,
     0x1e,0x01,0x00,0x00,0x1a,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x25,0x00,0x00,0x00,0x22,0x01,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x43,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x3c,0x00,0x00,0x00,0x22,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,
    +0x5a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x23,0x01,0x00,0x00,0x22,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x24,0x01,0x00,0x00,0x20,0x01,0x00,0x00,
    -0x23,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,
    -0x26,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x48,0x00,0x00,0x00,
    +0x23,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x3c,0x00,0x00,0x00,
    +0x26,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,
     0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x27,0x01,0x00,0x00,
     0x26,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x28,0x01,0x00,0x00,0x0a,0x01,0x00,0x00,0x27,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,0x2a,0x01,0x00,0x00,
    -0x22,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x3c,0x00,0x00,0x00,0x2a,0x01,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x2b,0x01,0x00,0x00,0x2a,0x01,0x00,0x00,
     0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2c,0x01,0x00,0x00,
     0x0a,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    @@ -116585,8 +120273,8 @@ unsigned char mul_mat_vec_f16_f16_f32_data[] = {
     0xf8,0x00,0x02,0x00,0x84,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
     0x06,0x00,0x00,0x00,0x3f,0x01,0x00,0x00,0x6a,0x00,0x00,0x00,
     0x05,0x00,0x00,0x00,0xd4,0x00,0x00,0x00,0x85,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,0x8a,0x00,0x00,0x00,
    -0x22,0x00,0x00,0x00,0x56,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x3c,0x00,0x00,0x00,0x8a,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x8b,0x00,0x00,0x00,0x8a,0x00,0x00,0x00,
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8c,0x00,0x00,0x00,
     0x8b,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,
    @@ -116604,47 +120292,47 @@ unsigned char mul_mat_vec_f16_f16_f32_data[] = {
     0x8b,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x9c,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,0x95,0x00,0x00,0x00,
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,
    -0x9c,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x89,0x00,0x05,0x00,
    +0x9c,0x00,0x00,0x00,0x27,0x00,0x00,0x00,0x89,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0x95,0x00,0x00,0x00,
    -0x1a,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xa1,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,
    +0x27,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xa1,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0x27,0x00,0x00,0x00,
     0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa6,0x00,0x00,0x00,
     0x95,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xaa,0x00,0x00,0x00,0x24,0x01,0x00,0x00,
    -0x1a,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x27,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x31,0x01,0x00,0x00,0xaa,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,
    -0x41,0x00,0x06,0x00,0x5a,0x00,0x00,0x00,0x32,0x01,0x00,0x00,
    -0x55,0x00,0x00,0x00,0x56,0x00,0x00,0x00,0x31,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x51,0x00,0x00,0x00,0x33,0x01,0x00,0x00,
    -0x32,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,
    +0x41,0x00,0x06,0x00,0x20,0x00,0x00,0x00,0x32,0x01,0x00,0x00,
    +0x1a,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x31,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x16,0x00,0x00,0x00,0x33,0x01,0x00,0x00,
    +0x32,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00,
     0x34,0x01,0x00,0x00,0x33,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x38,0x01,0x00,0x00,0x31,0x01,0x00,0x00,
    -0x1a,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x5a,0x00,0x00,0x00,
    -0x39,0x01,0x00,0x00,0x55,0x00,0x00,0x00,0x56,0x00,0x00,0x00,
    -0x38,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x51,0x00,0x00,0x00,
    +0x27,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x20,0x00,0x00,0x00,
    +0x39,0x01,0x00,0x00,0x1a,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,
    +0x38,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x16,0x00,0x00,0x00,
     0x3a,0x01,0x00,0x00,0x39,0x01,0x00,0x00,0x73,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0x3b,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x3b,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,
     0x28,0x01,0x00,0x00,0xa6,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xbd,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,
    -0xa1,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x5a,0x00,0x00,0x00,
    -0xbe,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0x56,0x00,0x00,0x00,
    -0xbd,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x51,0x00,0x00,0x00,
    +0xa1,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x20,0x00,0x00,0x00,
    +0xbe,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,
    +0xbd,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x16,0x00,0x00,0x00,
     0xbf,0x00,0x00,0x00,0xbe,0x00,0x00,0x00,0x73,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,
    -0xbd,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x41,0x00,0x06,0x00,
    -0x5a,0x00,0x00,0x00,0xca,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,
    -0x56,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x51,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,0xca,0x00,0x00,0x00,
    -0x73,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,
    -0xcb,0x00,0x00,0x00,0x85,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,
    +0xbd,0x00,0x00,0x00,0x27,0x00,0x00,0x00,0x41,0x00,0x06,0x00,
    +0x20,0x00,0x00,0x00,0xca,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,
    +0x1c,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x16,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,0xca,0x00,0x00,0x00,
    +0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,
    +0xcb,0x00,0x00,0x00,0x85,0x00,0x05,0x00,0x08,0x00,0x00,0x00,
     0xcd,0x00,0x00,0x00,0x3b,0x01,0x00,0x00,0xcc,0x00,0x00,0x00,
    -0x0c,0x00,0x08,0x00,0x0e,0x00,0x00,0x00,0xce,0x00,0x00,0x00,
    +0x0c,0x00,0x08,0x00,0x08,0x00,0x00,0x00,0xce,0x00,0x00,0x00,
     0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x34,0x01,0x00,0x00,
     0xc0,0x00,0x00,0x00,0xcd,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0x82,0x00,0x00,0x00,
    -0x81,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0x82,0x00,0x00,0x00,
    +0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,
     0xd0,0x00,0x00,0x00,0xce,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,
     0x82,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xd4,0x00,0x00,0x00,0x3f,0x01,0x00,0x00,
    @@ -116668,9 +120356,9 @@ unsigned char mul_mat_vec_f16_f16_f32_data[] = {
     0xe7,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x40,0x01,0x00,0x00,
     0x41,0x00,0x05,0x00,0x81,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,
     0x7e,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,
    -0x82,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,
    +0x82,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00,
     0xec,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,
     0x3e,0x00,0x03,0x00,0x82,0x00,0x00,0x00,0xec,0x00,0x00,0x00,
     0xf9,0x00,0x02,0x00,0xe3,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    @@ -116687,10 +120375,10 @@ unsigned char mul_mat_vec_f16_f16_f32_data[] = {
     0xf8,0x00,0x02,0x00,0xf3,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0x2c,0x01,0x00,0x00,
     0x6c,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x81,0x00,0x00,0x00,
    -0xfc,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x56,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,
    +0xfc,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,
     0xfc,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xfe,0x00,0x00,0x00,
    -0xff,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0x56,0x00,0x00,0x00,
    +0xff,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,
     0xfb,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0xff,0x00,0x00,0x00,
     0xfd,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xf4,0x00,0x00,0x00,
     0xf8,0x00,0x02,0x00,0xf4,0x00,0x00,0x00,0xfd,0x00,0x01,0x00,
    @@ -116706,40 +120394,40 @@ unsigned char mul_mat_vec_f16_f32_f32_data[] = {
     0x2e,0x73,0x74,0x64,0x2e,0x34,0x35,0x30,0x00,0x00,0x00,0x00,
     0x0e,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
     0x0f,0x00,0x0d,0x00,0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x6d,0x61,0x69,0x6e,0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    -0x22,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x69,0x00,0x00,0x00,
    +0x6d,0x61,0x69,0x6e,0x00,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,
    +0x32,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x69,0x00,0x00,0x00,
     0x6e,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,
     0xf7,0x00,0x00,0x00,0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00,
     0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x19,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x17,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x48,0x00,0x04,0x00,
    +0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    +0x18,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x1a,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x1a,0x00,0x00,0x00,0x21,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x32,0x00,0x00,0x00,
     0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,
    +0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x38,0x00,0x00,0x00,
     0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x38,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
     0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x20,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,
    +0x38,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x38,0x00,0x00,0x00,
     0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x38,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
     0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x20,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,
    +0x38,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x38,0x00,0x00,0x00,
     0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x38,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
     0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x20,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x24,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,
    +0x38,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x24,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x38,0x00,0x00,0x00,
     0x0a,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x28,0x00,0x00,0x00,
    -0x47,0x00,0x03,0x00,0x20,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x52,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x53,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x53,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x53,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x55,0x00,0x00,0x00,
    -0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x55,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x47,0x00,0x03,0x00,0x38,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
     0x47,0x00,0x04,0x00,0x69,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
     0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x6e,0x00,0x00,0x00,
     0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    @@ -116766,118 +120454,118 @@ unsigned char mul_mat_vec_f16_f32_f32_data[] = {
     0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00,
     0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x00,0x03,0x00,
    -0x0e,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x17,0x00,0x04,0x00,
    -0x17,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x17,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x18,0x00,0x00,0x00,
    -0x19,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x1e,0x00,0x0d,0x00,0x20,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x21,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x09,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x23,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x16,0x00,0x03,0x00,
    +0x16,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    +0x17,0x00,0x00,0x00,0x16,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
    +0x18,0x00,0x00,0x00,0x17,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x19,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,
     0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x25,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,
    -0x30,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x23,0x00,0x00,0x00,0x36,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x3c,0x00,0x00,0x00,
    -0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,
    -0x43,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x23,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0x51,0x00,0x00,0x00,
    -0x10,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x52,0x00,0x00,0x00,
    -0x51,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x53,0x00,0x00,0x00,
    -0x52,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x54,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x53,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0x54,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x56,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x5a,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0x18,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x20,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x16,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x27,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x17,0x00,0x04,0x00,
    +0x30,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x31,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x30,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x31,0x00,0x00,0x00,
    +0x32,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x33,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x1e,0x00,0x0d,0x00,0x38,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x39,0x00,0x00,0x00,
    +0x09,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0x39,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x3c,0x00,0x00,0x00,
    +0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x1b,0x00,0x00,0x00,0x47,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,
    +0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,
    +0x53,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x1b,0x00,0x00,0x00,0x5a,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,
    +0x05,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,
    +0x64,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0x31,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
     0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x6a,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x18,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x31,0x00,0x00,0x00,
     0x6e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x1c,0x00,0x04,0x00,0x7c,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,
    +0x1c,0x00,0x04,0x00,0x7c,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
     0x7b,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x7d,0x00,0x00,0x00,
     0x04,0x00,0x00,0x00,0x7c,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
     0x7d,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0x80,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x80,0x00,0x00,0x00,
     0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x81,0x00,0x00,0x00,
    -0x04,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x14,0x00,0x02,0x00,
    +0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x14,0x00,0x02,0x00,
     0x8d,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x92,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    -0xb5,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
    +0xb5,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
     0xb6,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
     0xb7,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xb6,0x00,0x00,0x00,
     0x3b,0x00,0x04,0x00,0xb7,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,
     0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xbe,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x0c,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0xd4,0x00,0x00,0x00,0x08,0x01,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,
     0x86,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,0x92,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0xed,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xed,0x00,0x00,0x00,
     0x01,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0xf4,0x00,0x00,0x00,
    -0x0e,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xf5,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xf5,0x00,0x00,0x00,
     0xf4,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xf6,0x00,0x00,0x00,
     0x0c,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
     0xf6,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
     0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x33,0x00,0x06,0x00,0x17,0x00,0x00,0x00,
    -0xff,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,
    -0x1a,0x00,0x00,0x00,0x36,0x00,0x05,0x00,0x02,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x33,0x00,0x06,0x00,0x30,0x00,0x00,0x00,
    +0xff,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0x27,0x00,0x00,0x00,
    +0x27,0x00,0x00,0x00,0x36,0x00,0x05,0x00,0x02,0x00,0x00,0x00,
     0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
     0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x1b,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,0x69,0x00,0x00,0x00,
    +0x33,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,0x69,0x00,0x00,0x00,
     0x6a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x6c,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x1b,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,
    +0x33,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,
     0x6a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x70,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x1b,0x00,0x00,0x00,0x07,0x01,0x00,0x00,0x19,0x00,0x00,0x00,
    -0x1a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x33,0x00,0x00,0x00,0x07,0x01,0x00,0x00,0x32,0x00,0x00,0x00,
    +0x27,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x08,0x01,0x00,0x00,0x07,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x25,0x00,0x00,0x00,0x0a,0x01,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x24,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x3c,0x00,0x00,0x00,0x0a,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,
    +0x3b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x0b,0x01,0x00,0x00,0x0a,0x01,0x00,0x00,0x86,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,0x08,0x01,0x00,0x00,
     0x0b,0x01,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x10,0x01,0x00,0x00,0x08,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,0x12,0x01,0x00,0x00,
    -0x22,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x3c,0x00,0x00,0x00,0x12,0x01,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x47,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x13,0x01,0x00,0x00,0x12,0x01,0x00,0x00,
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x14,0x01,0x00,0x00,
     0x0c,0x01,0x00,0x00,0x13,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x25,0x00,0x00,0x00,0x16,0x01,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x36,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x3c,0x00,0x00,0x00,0x16,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,
    +0x4d,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x17,0x01,0x00,0x00,0x16,0x01,0x00,0x00,0x86,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x18,0x01,0x00,0x00,0x10,0x01,0x00,0x00,
    -0x17,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,
    -0x1a,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x3c,0x00,0x00,0x00,
    +0x17,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x3c,0x00,0x00,0x00,
    +0x1a,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,0x53,0x00,0x00,0x00,
     0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x1b,0x01,0x00,0x00,
     0x1a,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x1c,0x01,0x00,0x00,0x14,0x01,0x00,0x00,0x1b,0x01,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1e,0x01,0x00,0x00,
     0x1c,0x01,0x00,0x00,0x18,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x25,0x00,0x00,0x00,0x20,0x01,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x43,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x3c,0x00,0x00,0x00,0x20,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,
    +0x5a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x21,0x01,0x00,0x00,0x20,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x22,0x01,0x00,0x00,0x1e,0x01,0x00,0x00,
    -0x21,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,
    -0x24,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x48,0x00,0x00,0x00,
    +0x21,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x3c,0x00,0x00,0x00,
    +0x24,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,
     0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x25,0x01,0x00,0x00,
     0x24,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x26,0x01,0x00,0x00,0x08,0x01,0x00,0x00,0x25,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,0x28,0x01,0x00,0x00,
    -0x22,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x3c,0x00,0x00,0x00,0x28,0x01,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x29,0x01,0x00,0x00,0x28,0x01,0x00,0x00,
     0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2a,0x01,0x00,0x00,
     0x08,0x01,0x00,0x00,0x29,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    @@ -116887,8 +120575,8 @@ unsigned char mul_mat_vec_f16_f32_f32_data[] = {
     0xf8,0x00,0x02,0x00,0x84,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
     0x06,0x00,0x00,0x00,0x3d,0x01,0x00,0x00,0x6a,0x00,0x00,0x00,
     0x05,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,0x85,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,0x8a,0x00,0x00,0x00,
    -0x22,0x00,0x00,0x00,0x56,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x3c,0x00,0x00,0x00,0x8a,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x8b,0x00,0x00,0x00,0x8a,0x00,0x00,0x00,
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8c,0x00,0x00,0x00,
     0x8b,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,
    @@ -116906,44 +120594,44 @@ unsigned char mul_mat_vec_f16_f32_f32_data[] = {
     0x8b,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x9c,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,0x95,0x00,0x00,0x00,
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,
    -0x9c,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x89,0x00,0x05,0x00,
    +0x9c,0x00,0x00,0x00,0x27,0x00,0x00,0x00,0x89,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0x95,0x00,0x00,0x00,
    -0x1a,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xa1,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,
    +0x27,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xa1,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0x27,0x00,0x00,0x00,
     0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa6,0x00,0x00,0x00,
     0x95,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xaa,0x00,0x00,0x00,0x22,0x01,0x00,0x00,
    -0x1a,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x27,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x2f,0x01,0x00,0x00,0xaa,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,
    -0x41,0x00,0x06,0x00,0x5a,0x00,0x00,0x00,0x30,0x01,0x00,0x00,
    -0x55,0x00,0x00,0x00,0x56,0x00,0x00,0x00,0x2f,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x51,0x00,0x00,0x00,0x31,0x01,0x00,0x00,
    -0x30,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,
    +0x41,0x00,0x06,0x00,0x20,0x00,0x00,0x00,0x30,0x01,0x00,0x00,
    +0x1a,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x2f,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x16,0x00,0x00,0x00,0x31,0x01,0x00,0x00,
    +0x30,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00,
     0x32,0x01,0x00,0x00,0x31,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x36,0x01,0x00,0x00,0x2f,0x01,0x00,0x00,
    -0x1a,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x5a,0x00,0x00,0x00,
    -0x37,0x01,0x00,0x00,0x55,0x00,0x00,0x00,0x56,0x00,0x00,0x00,
    -0x36,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x51,0x00,0x00,0x00,
    +0x27,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x20,0x00,0x00,0x00,
    +0x37,0x01,0x00,0x00,0x1a,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,
    +0x36,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x16,0x00,0x00,0x00,
     0x38,0x01,0x00,0x00,0x37,0x01,0x00,0x00,0x73,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0x39,0x01,0x00,0x00,0x38,0x01,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x39,0x01,0x00,0x00,0x38,0x01,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,
     0x26,0x01,0x00,0x00,0xa6,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xbd,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,
     0xa1,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xbe,0x00,0x00,0x00,
    -0xbf,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0x56,0x00,0x00,0x00,
    -0xbd,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,
    +0xbf,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,
    +0xbd,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,
     0xc0,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0xbd,0x00,0x00,0x00,
    -0x1a,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xbe,0x00,0x00,0x00,
    -0xca,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0x56,0x00,0x00,0x00,
    -0xc9,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,
    +0x27,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xbe,0x00,0x00,0x00,
    +0xca,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,
    +0xc9,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,
     0xcb,0x00,0x00,0x00,0xca,0x00,0x00,0x00,0x85,0x00,0x05,0x00,
    -0x0e,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,0x39,0x01,0x00,0x00,
    -0xcb,0x00,0x00,0x00,0x0c,0x00,0x08,0x00,0x0e,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,0x39,0x01,0x00,0x00,
    +0xcb,0x00,0x00,0x00,0x0c,0x00,0x08,0x00,0x08,0x00,0x00,0x00,
     0xcd,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,
     0x32,0x01,0x00,0x00,0xc0,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0x82,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0x82,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00,
     0xd0,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0xcd,0x00,0x00,0x00,
     0x3e,0x00,0x03,0x00,0x82,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,
    @@ -116967,10 +120655,10 @@ unsigned char mul_mat_vec_f16_f32_f32_data[] = {
     0x06,0x00,0x00,0x00,0xe6,0x00,0x00,0x00,0x70,0x00,0x00,0x00,
     0x3e,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x81,0x00,0x00,0x00,
     0xe7,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0xe6,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,
    -0xe7,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,
    +0xe7,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,
     0xea,0x00,0x00,0x00,0x82,0x00,0x00,0x00,0x81,0x00,0x05,0x00,
    -0x0e,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0xea,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0xea,0x00,0x00,0x00,
     0xe8,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0x82,0x00,0x00,0x00,
     0xeb,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xe2,0x00,0x00,0x00,
     0xf8,0x00,0x02,0x00,0xe2,0x00,0x00,0x00,0xe0,0x00,0x04,0x00,
    @@ -116987,10 +120675,10 @@ unsigned char mul_mat_vec_f16_f32_f32_data[] = {
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,
     0x2a,0x01,0x00,0x00,0x6c,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
     0x81,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,
    -0x56,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,
    +0x1c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,
     0xfc,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0x41,0x00,0x06,0x00,
     0xbe,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,
    -0x56,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x1c,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,
     0xfd,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
     0xf3,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xf3,0x00,0x00,0x00,
     0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
    @@ -117006,39 +120694,39 @@ unsigned char mul_mat_vec_f32_f16_f32_data[] = {
     0x0e,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
     0x0f,0x00,0x0d,0x00,0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
     0x6d,0x61,0x69,0x6e,0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    -0x22,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x66,0x00,0x00,0x00,
    +0x2f,0x00,0x00,0x00,0x37,0x00,0x00,0x00,0x66,0x00,0x00,0x00,
     0x6b,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,0xb6,0x00,0x00,0x00,
     0xf7,0x00,0x00,0x00,0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00,
     0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x19,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x16,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,
    +0x17,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    +0x17,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x19,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x21,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x2f,0x00,0x00,0x00,
     0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,
    +0x35,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x35,0x00,0x00,0x00,
     0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x35,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
     0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x20,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,
    +0x35,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x35,0x00,0x00,0x00,
     0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x35,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
     0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x20,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,
    +0x35,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x35,0x00,0x00,0x00,
     0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x35,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
     0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x20,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x24,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,
    +0x35,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x24,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x35,0x00,0x00,0x00,
     0x0a,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x28,0x00,0x00,0x00,
    -0x47,0x00,0x03,0x00,0x20,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x51,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x52,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x52,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x52,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x54,0x00,0x00,0x00,
    -0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x54,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x47,0x00,0x03,0x00,0x35,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
     0x47,0x00,0x04,0x00,0x66,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
     0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x6b,0x00,0x00,0x00,
     0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    @@ -117065,52 +120753,52 @@ unsigned char mul_mat_vec_f32_f16_f32_data[] = {
     0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00,
     0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x00,0x03,0x00,
    -0x0e,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x17,0x00,0x04,0x00,
    -0x17,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x17,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x18,0x00,0x00,0x00,
    -0x19,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x1e,0x00,0x0d,0x00,0x20,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    +0x16,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
    +0x17,0x00,0x00,0x00,0x16,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x18,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x17,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x1a,0x00,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x1a,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x25,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x17,0x00,0x04,0x00,
    +0x2d,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x2e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x2d,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x2e,0x00,0x00,0x00,
    +0x2f,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x30,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x1e,0x00,0x0d,0x00,0x35,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
     0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
     0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
     0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x21,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x09,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x23,0x00,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x25,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,
    -0x30,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x23,0x00,0x00,0x00,0x36,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x3c,0x00,0x00,0x00,
    -0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,
    -0x43,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x23,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x51,0x00,0x00,0x00,
    -0x0e,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x52,0x00,0x00,0x00,
    -0x51,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x53,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x52,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0x53,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x55,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x59,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0x18,0x00,0x00,0x00,0x66,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x36,0x00,0x00,0x00,
    +0x09,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0x36,0x00,0x00,0x00,0x37,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x1a,0x00,0x00,0x00,0x38,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x39,0x00,0x00,0x00,
    +0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x1a,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x1a,0x00,0x00,0x00,0x4a,0x00,0x00,0x00,
    +0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1a,0x00,0x00,0x00,
    +0x50,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x1a,0x00,0x00,0x00,0x57,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x1a,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,
    +0x05,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1a,0x00,0x00,0x00,
    +0x61,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0x2e,0x00,0x00,0x00,0x66,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
     0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x67,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x18,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x2e,0x00,0x00,0x00,
     0x6b,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x1c,0x00,0x04,0x00,0x79,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,
    +0x1c,0x00,0x04,0x00,0x79,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
     0x78,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x7a,0x00,0x00,0x00,
     0x04,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
     0x7a,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,
     0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x7e,0x00,0x00,0x00,
    -0x04,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x14,0x00,0x02,0x00,
    +0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x14,0x00,0x02,0x00,
     0x8a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x8f,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x16,0x00,0x03,0x00,
     0xb2,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    @@ -117123,60 +120811,60 @@ unsigned char mul_mat_vec_f32_f16_f32_data[] = {
     0x06,0x00,0x00,0x00,0xd4,0x00,0x00,0x00,0x08,0x01,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,
     0x86,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x8f,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0xed,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x1a,0x00,0x00,0x00,0xed,0x00,0x00,0x00,
     0x01,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0xf4,0x00,0x00,0x00,
    -0x0e,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xf5,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xf5,0x00,0x00,0x00,
     0xf4,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xf6,0x00,0x00,0x00,
     0x0c,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
     0xf6,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
     0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x33,0x00,0x06,0x00,0x17,0x00,0x00,0x00,
    -0xff,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,
    -0x1a,0x00,0x00,0x00,0x36,0x00,0x05,0x00,0x02,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x33,0x00,0x06,0x00,0x2d,0x00,0x00,0x00,
    +0xff,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0x25,0x00,0x00,0x00,
    +0x25,0x00,0x00,0x00,0x36,0x00,0x05,0x00,0x02,0x00,0x00,0x00,
     0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
     0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x1b,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x66,0x00,0x00,0x00,
    +0x30,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x66,0x00,0x00,0x00,
     0x67,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x69,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x1b,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,
    +0x30,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,
     0x67,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x6d,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x1b,0x00,0x00,0x00,0x07,0x01,0x00,0x00,0x19,0x00,0x00,0x00,
    -0x1a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x30,0x00,0x00,0x00,0x07,0x01,0x00,0x00,0x2f,0x00,0x00,0x00,
    +0x25,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x08,0x01,0x00,0x00,0x07,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x25,0x00,0x00,0x00,0x0a,0x01,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x24,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x39,0x00,0x00,0x00,0x0a,0x01,0x00,0x00,0x37,0x00,0x00,0x00,
    +0x38,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x0b,0x01,0x00,0x00,0x0a,0x01,0x00,0x00,0x86,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,0x08,0x01,0x00,0x00,
     0x0b,0x01,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x10,0x01,0x00,0x00,0x08,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,0x12,0x01,0x00,0x00,
    -0x22,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x39,0x00,0x00,0x00,0x12,0x01,0x00,0x00,
    +0x37,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x13,0x01,0x00,0x00,0x12,0x01,0x00,0x00,
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x14,0x01,0x00,0x00,
     0x0c,0x01,0x00,0x00,0x13,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x25,0x00,0x00,0x00,0x16,0x01,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x36,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x39,0x00,0x00,0x00,0x16,0x01,0x00,0x00,0x37,0x00,0x00,0x00,
    +0x4a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x17,0x01,0x00,0x00,0x16,0x01,0x00,0x00,0x86,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x18,0x01,0x00,0x00,0x10,0x01,0x00,0x00,
    -0x17,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,
    -0x1a,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x3c,0x00,0x00,0x00,
    +0x17,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x39,0x00,0x00,0x00,
    +0x1a,0x01,0x00,0x00,0x37,0x00,0x00,0x00,0x50,0x00,0x00,0x00,
     0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x1b,0x01,0x00,0x00,
     0x1a,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x1c,0x01,0x00,0x00,0x14,0x01,0x00,0x00,0x1b,0x01,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1e,0x01,0x00,0x00,
     0x1c,0x01,0x00,0x00,0x18,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x25,0x00,0x00,0x00,0x20,0x01,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x43,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x39,0x00,0x00,0x00,0x20,0x01,0x00,0x00,0x37,0x00,0x00,0x00,
    +0x57,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x21,0x01,0x00,0x00,0x20,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x22,0x01,0x00,0x00,0x1e,0x01,0x00,0x00,
    -0x21,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,
    -0x24,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x48,0x00,0x00,0x00,
    +0x21,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x39,0x00,0x00,0x00,
    +0x24,0x01,0x00,0x00,0x37,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,
     0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x25,0x01,0x00,0x00,
     0x24,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x26,0x01,0x00,0x00,0x08,0x01,0x00,0x00,0x25,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,0x28,0x01,0x00,0x00,
    -0x22,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x39,0x00,0x00,0x00,0x28,0x01,0x00,0x00,
    +0x37,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x29,0x01,0x00,0x00,0x28,0x01,0x00,0x00,
     0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2a,0x01,0x00,0x00,
     0x08,0x01,0x00,0x00,0x29,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    @@ -117186,8 +120874,8 @@ unsigned char mul_mat_vec_f32_f16_f32_data[] = {
     0xf8,0x00,0x02,0x00,0x81,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
     0x06,0x00,0x00,0x00,0x3b,0x01,0x00,0x00,0x67,0x00,0x00,0x00,
     0x05,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,0x82,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,0x87,0x00,0x00,0x00,
    -0x22,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x39,0x00,0x00,0x00,0x87,0x00,0x00,0x00,
    +0x37,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x88,0x00,0x00,0x00,0x87,0x00,0x00,0x00,
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x89,0x00,0x00,0x00,
     0x88,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,
    @@ -117205,44 +120893,44 @@ unsigned char mul_mat_vec_f32_f16_f32_data[] = {
     0x88,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x99,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x92,0x00,0x00,0x00,
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0x99,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x89,0x00,0x05,0x00,
    +0x99,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x89,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0x92,0x00,0x00,0x00,
    -0x1a,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x9e,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,
    +0x25,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x9e,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0x25,0x00,0x00,0x00,
     0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,
     0x92,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,0x22,0x01,0x00,0x00,
    -0x1a,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x25,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x2f,0x01,0x00,0x00,0xa7,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0x41,0x00,0x06,0x00,0x59,0x00,0x00,0x00,0x30,0x01,0x00,0x00,
    -0x54,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x2f,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0x31,0x01,0x00,0x00,
    +0x41,0x00,0x06,0x00,0x1f,0x00,0x00,0x00,0x30,0x01,0x00,0x00,
    +0x19,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x2f,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x31,0x01,0x00,0x00,
     0x30,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x35,0x01,0x00,0x00,0x2f,0x01,0x00,0x00,0x1a,0x00,0x00,0x00,
    -0x41,0x00,0x06,0x00,0x59,0x00,0x00,0x00,0x36,0x01,0x00,0x00,
    -0x54,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x35,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0x37,0x01,0x00,0x00,
    +0x35,0x01,0x00,0x00,0x2f,0x01,0x00,0x00,0x25,0x00,0x00,0x00,
    +0x41,0x00,0x06,0x00,0x1f,0x00,0x00,0x00,0x36,0x01,0x00,0x00,
    +0x19,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x35,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x37,0x01,0x00,0x00,
     0x36,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xb9,0x00,0x00,0x00,0x26,0x01,0x00,0x00,0xa3,0x00,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,
     0xb9,0x00,0x00,0x00,0x9e,0x00,0x00,0x00,0x41,0x00,0x06,0x00,
     0xbc,0x00,0x00,0x00,0xbd,0x00,0x00,0x00,0xb6,0x00,0x00,0x00,
    -0x55,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x1b,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0xb2,0x00,0x00,0x00,0xbe,0x00,0x00,0x00,0xbd,0x00,0x00,0x00,
    -0x73,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,
    +0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,
     0xbe,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xc8,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,
    +0xc8,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0x25,0x00,0x00,0x00,
     0x41,0x00,0x06,0x00,0xbc,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,
    -0xb6,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,
    +0xb6,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,
     0x3d,0x00,0x04,0x00,0xb2,0x00,0x00,0x00,0xca,0x00,0x00,0x00,
    -0xc9,0x00,0x00,0x00,0x73,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,
    +0xc9,0x00,0x00,0x00,0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00,
     0xcb,0x00,0x00,0x00,0xca,0x00,0x00,0x00,0x85,0x00,0x05,0x00,
    -0x0e,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,0x37,0x01,0x00,0x00,
    -0xcb,0x00,0x00,0x00,0x0c,0x00,0x08,0x00,0x0e,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,0x37,0x01,0x00,0x00,
    +0xcb,0x00,0x00,0x00,0x0c,0x00,0x08,0x00,0x08,0x00,0x00,0x00,
     0xcd,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,
     0x31,0x01,0x00,0x00,0xbf,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,
    -0x7f,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0x7f,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00,
     0xd0,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0xcd,0x00,0x00,0x00,
     0x3e,0x00,0x03,0x00,0x7f,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,
    @@ -117266,10 +120954,10 @@ unsigned char mul_mat_vec_f32_f16_f32_data[] = {
     0x06,0x00,0x00,0x00,0xe6,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
     0x3c,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x7e,0x00,0x00,0x00,
     0xe7,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,0xe6,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,
    -0xe7,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,
    +0xe7,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,
     0xea,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,0x81,0x00,0x05,0x00,
    -0x0e,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0xea,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0xea,0x00,0x00,0x00,
     0xe8,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0x7f,0x00,0x00,0x00,
     0xeb,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xe2,0x00,0x00,0x00,
     0xf8,0x00,0x02,0x00,0xe2,0x00,0x00,0x00,0xe0,0x00,0x04,0x00,
    @@ -117286,10 +120974,10 @@ unsigned char mul_mat_vec_f32_f16_f32_data[] = {
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,
     0x2a,0x01,0x00,0x00,0x69,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
     0x7e,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,
    -0x55,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,
     0xfc,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0x41,0x00,0x06,0x00,
    -0x59,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,
    -0x55,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x1f,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,
     0xfd,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
     0xf3,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xf3,0x00,0x00,0x00,
     0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
    @@ -117304,40 +120992,40 @@ unsigned char mul_mat_vec_f32_f32_f32_data[] = {
     0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00,0x00,0x00,0x00,0x00,
     0x01,0x00,0x00,0x00,0x0f,0x00,0x0d,0x00,0x05,0x00,0x00,0x00,
     0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e,0x00,0x00,0x00,0x00,
    -0x19,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x54,0x00,0x00,0x00,
    +0x19,0x00,0x00,0x00,0x2f,0x00,0x00,0x00,0x37,0x00,0x00,0x00,
     0x66,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,
     0xb5,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,0x10,0x00,0x06,0x00,
     0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
     0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x19,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x16,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x48,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x17,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x47,0x00,0x03,0x00,0x17,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x19,0x00,0x00,0x00,
    +0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x2f,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x35,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
     0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,
    +0x35,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x35,0x00,0x00,0x00,
     0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x35,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
     0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x20,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,
    +0x35,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x35,0x00,0x00,0x00,
     0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x35,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
     0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x20,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,
    +0x35,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x35,0x00,0x00,0x00,
     0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x35,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
     0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x20,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x28,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x20,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x51,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,
    -0x52,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x52,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    -0x52,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x54,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x54,0x00,0x00,0x00,0x21,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x66,0x00,0x00,0x00,
    +0x35,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x28,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x35,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x66,0x00,0x00,0x00,
     0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
     0x6b,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
     0x47,0x00,0x04,0x00,0x78,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    @@ -117363,55 +121051,55 @@ unsigned char mul_mat_vec_f32_f32_f32_data[] = {
     0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00,
     0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x16,0x00,0x03,0x00,0x0e,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x17,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x18,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x17,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0x18,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x1e,0x00,0x0d,0x00,
    -0x20,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x16,0x00,0x03,0x00,0x08,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x1d,0x00,0x03,0x00,0x16,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    +0x1e,0x00,0x03,0x00,0x17,0x00,0x00,0x00,0x16,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x17,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x18,0x00,0x00,0x00,
    +0x19,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x15,0x00,0x04,0x00,
    +0x1a,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x1a,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x17,0x00,0x04,0x00,0x2d,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x2e,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x2d,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0x2e,0x00,0x00,0x00,0x2f,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x30,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x1e,0x00,0x0d,0x00,0x35,0x00,0x00,0x00,
     0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
     0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
     0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
    -0x22,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x15,0x00,0x04,0x00,
    -0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,
    -0x08,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x25,0x00,0x00,0x00,
    -0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x23,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x36,0x00,0x00,0x00,
    -0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,
    -0x3c,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x23,0x00,0x00,0x00,0x43,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x48,0x00,0x00,0x00,
    -0x05,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,
    -0x4d,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    -0x51,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
    -0x52,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x53,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x52,0x00,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0x53,0x00,0x00,0x00,0x54,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,
    -0x55,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x59,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x66,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x36,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x35,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x36,0x00,0x00,0x00,0x37,0x00,0x00,0x00,
    +0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1a,0x00,0x00,0x00,
    +0x38,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x39,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x1a,0x00,0x00,0x00,0x44,0x00,0x00,0x00,
    +0x0a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1a,0x00,0x00,0x00,
    +0x4a,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x1a,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x1a,0x00,0x00,0x00,0x57,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1a,0x00,0x00,0x00,
    +0x5c,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x1a,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x2e,0x00,0x00,0x00,0x66,0x00,0x00,0x00,
     0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x67,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0x18,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x2e,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
     0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x78,0x00,0x00,0x00,
     0x20,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0x79,0x00,0x00,0x00,
    -0x0e,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x08,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
     0x7a,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x79,0x00,0x00,0x00,
     0x3b,0x00,0x04,0x00,0x7a,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,
    -0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x08,0x00,0x00,0x00,
     0x7d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x7e,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,
    +0x7e,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
     0x14,0x00,0x02,0x00,0x8a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x8f,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    -0x1d,0x00,0x03,0x00,0xb2,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,
    +0x1d,0x00,0x03,0x00,0xb2,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
     0x1e,0x00,0x03,0x00,0xb3,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,
     0x20,0x00,0x04,0x00,0xb4,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
     0xb3,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xb4,0x00,0x00,0x00,
    @@ -117419,60 +121107,60 @@ unsigned char mul_mat_vec_f32_f32_f32_data[] = {
     0x06,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0x08,0x01,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,
     0x86,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x8f,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x1a,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,
     0x01,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0xf0,0x00,0x00,0x00,
    -0x0e,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xf1,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xf1,0x00,0x00,0x00,
     0xf0,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xf2,0x00,0x00,0x00,
     0x0c,0x00,0x00,0x00,0xf1,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
     0xf2,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
     0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x33,0x00,0x06,0x00,0x17,0x00,0x00,0x00,
    -0xfb,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,
    -0x1a,0x00,0x00,0x00,0x36,0x00,0x05,0x00,0x02,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x33,0x00,0x06,0x00,0x2d,0x00,0x00,0x00,
    +0xfb,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,0x25,0x00,0x00,0x00,
    +0x25,0x00,0x00,0x00,0x36,0x00,0x05,0x00,0x02,0x00,0x00,0x00,
     0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
     0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x1b,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x66,0x00,0x00,0x00,
    +0x30,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x66,0x00,0x00,0x00,
     0x67,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x69,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x1b,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,
    +0x30,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,
     0x67,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x6d,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x1b,0x00,0x00,0x00,0x03,0x01,0x00,0x00,0x19,0x00,0x00,0x00,
    -0x1a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x30,0x00,0x00,0x00,0x03,0x01,0x00,0x00,0x2f,0x00,0x00,0x00,
    +0x25,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x04,0x01,0x00,0x00,0x03,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x25,0x00,0x00,0x00,0x06,0x01,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x24,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x39,0x00,0x00,0x00,0x06,0x01,0x00,0x00,0x37,0x00,0x00,0x00,
    +0x38,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x07,0x01,0x00,0x00,0x06,0x01,0x00,0x00,0x86,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x04,0x01,0x00,0x00,
     0x07,0x01,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x0c,0x01,0x00,0x00,0x04,0x01,0x00,0x00,0x07,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,0x0e,0x01,0x00,0x00,
    -0x22,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x39,0x00,0x00,0x00,0x0e,0x01,0x00,0x00,
    +0x37,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x0f,0x01,0x00,0x00,0x0e,0x01,0x00,0x00,
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x10,0x01,0x00,0x00,
     0x08,0x01,0x00,0x00,0x0f,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x25,0x00,0x00,0x00,0x12,0x01,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x36,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x39,0x00,0x00,0x00,0x12,0x01,0x00,0x00,0x37,0x00,0x00,0x00,
    +0x4a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x13,0x01,0x00,0x00,0x12,0x01,0x00,0x00,0x86,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x14,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,
    -0x13,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,
    -0x16,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x3c,0x00,0x00,0x00,
    +0x13,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x39,0x00,0x00,0x00,
    +0x16,0x01,0x00,0x00,0x37,0x00,0x00,0x00,0x50,0x00,0x00,0x00,
     0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x17,0x01,0x00,0x00,
     0x16,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x18,0x01,0x00,0x00,0x10,0x01,0x00,0x00,0x17,0x01,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1a,0x01,0x00,0x00,
     0x18,0x01,0x00,0x00,0x14,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x25,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x43,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x39,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,0x37,0x00,0x00,0x00,
    +0x57,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x1d,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x1e,0x01,0x00,0x00,0x1a,0x01,0x00,0x00,
    -0x1d,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,
    -0x20,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x48,0x00,0x00,0x00,
    +0x1d,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x39,0x00,0x00,0x00,
    +0x20,0x01,0x00,0x00,0x37,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,
     0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x21,0x01,0x00,0x00,
     0x20,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x22,0x01,0x00,0x00,0x04,0x01,0x00,0x00,0x21,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,0x24,0x01,0x00,0x00,
    -0x22,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x39,0x00,0x00,0x00,0x24,0x01,0x00,0x00,
    +0x37,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x25,0x01,0x00,0x00,0x24,0x01,0x00,0x00,
     0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x26,0x01,0x00,0x00,
     0x04,0x01,0x00,0x00,0x25,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    @@ -117482,8 +121170,8 @@ unsigned char mul_mat_vec_f32_f32_f32_data[] = {
     0xf8,0x00,0x02,0x00,0x81,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
     0x06,0x00,0x00,0x00,0x37,0x01,0x00,0x00,0x67,0x00,0x00,0x00,
     0x05,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x82,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,0x87,0x00,0x00,0x00,
    -0x22,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x39,0x00,0x00,0x00,0x87,0x00,0x00,0x00,
    +0x37,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x88,0x00,0x00,0x00,0x87,0x00,0x00,0x00,
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x89,0x00,0x00,0x00,
     0x88,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,
    @@ -117501,42 +121189,42 @@ unsigned char mul_mat_vec_f32_f32_f32_data[] = {
     0x88,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x99,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x92,0x00,0x00,0x00,
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0x99,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x89,0x00,0x05,0x00,
    +0x99,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x89,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0x92,0x00,0x00,0x00,
    -0x1a,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x9e,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,
    +0x25,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x9e,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0x25,0x00,0x00,0x00,
     0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,
     0x92,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,0x1e,0x01,0x00,0x00,
    -0x1a,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x25,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x2b,0x01,0x00,0x00,0xa7,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0x41,0x00,0x06,0x00,0x59,0x00,0x00,0x00,0x2c,0x01,0x00,0x00,
    -0x54,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x2b,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0x2d,0x01,0x00,0x00,
    +0x41,0x00,0x06,0x00,0x1f,0x00,0x00,0x00,0x2c,0x01,0x00,0x00,
    +0x19,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x2b,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x2d,0x01,0x00,0x00,
     0x2c,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x31,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,0x1a,0x00,0x00,0x00,
    -0x41,0x00,0x06,0x00,0x59,0x00,0x00,0x00,0x32,0x01,0x00,0x00,
    -0x54,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x31,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0x33,0x01,0x00,0x00,
    +0x31,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,0x25,0x00,0x00,0x00,
    +0x41,0x00,0x06,0x00,0x1f,0x00,0x00,0x00,0x32,0x01,0x00,0x00,
    +0x19,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x31,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x33,0x01,0x00,0x00,
     0x32,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xb8,0x00,0x00,0x00,0x22,0x01,0x00,0x00,0xa3,0x00,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xba,0x00,0x00,0x00,
     0xb8,0x00,0x00,0x00,0x9e,0x00,0x00,0x00,0x41,0x00,0x06,0x00,
    -0x59,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,
    -0x55,0x00,0x00,0x00,0xba,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,
    +0x1f,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0xba,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x08,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,
    -0xba,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x41,0x00,0x06,0x00,
    -0x59,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,
    -0x55,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,
    -0x85,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,
    +0xba,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x41,0x00,0x06,0x00,
    +0x1f,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x08,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,
    +0x85,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,
     0x33,0x01,0x00,0x00,0xc7,0x00,0x00,0x00,0x0c,0x00,0x08,0x00,
    -0x0e,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
     0x32,0x00,0x00,0x00,0x2d,0x01,0x00,0x00,0xbc,0x00,0x00,0x00,
    -0xc8,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,
    +0xc8,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,
     0xcb,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,0x81,0x00,0x05,0x00,
    -0x0e,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,
     0xc9,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0x7f,0x00,0x00,0x00,
     0xcc,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xcf,0x00,0x00,0x00,0x37,0x01,0x00,0x00,0x8f,0x00,0x00,0x00,
    @@ -117559,10 +121247,10 @@ unsigned char mul_mat_vec_f32_f32_f32_data[] = {
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe2,0x00,0x00,0x00,
     0x6d,0x00,0x00,0x00,0x38,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
     0x7e,0x00,0x00,0x00,0xe3,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,
    -0xe2,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,
    +0xe2,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,
     0xe4,0x00,0x00,0x00,0xe3,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0xe6,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,
    -0x81,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0xe6,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,
    +0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,
     0xe6,0x00,0x00,0x00,0xe4,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,
     0x7f,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
     0xde,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xde,0x00,0x00,0x00,
    @@ -117579,10 +121267,10 @@ unsigned char mul_mat_vec_f32_f32_f32_data[] = {
     0xee,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xf6,0x00,0x00,0x00,0x26,0x01,0x00,0x00,0x69,0x00,0x00,0x00,
     0x41,0x00,0x05,0x00,0x7e,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,
    -0x7b,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,
    -0x41,0x00,0x06,0x00,0x59,0x00,0x00,0x00,0xf9,0x00,0x00,0x00,
    -0xf3,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,
    +0x7b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x08,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,
    +0x41,0x00,0x06,0x00,0x1f,0x00,0x00,0x00,0xf9,0x00,0x00,0x00,
    +0xf3,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,
     0x3e,0x00,0x03,0x00,0xf9,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,
     0xf9,0x00,0x02,0x00,0xef,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
     0xef,0x00,0x00,0x00,0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
    @@ -117598,45 +121286,45 @@ unsigned char mul_mat_vec_id_f16_f32_data[] = {
     0x2e,0x73,0x74,0x64,0x2e,0x34,0x35,0x30,0x00,0x00,0x00,0x00,
     0x0e,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
     0x0f,0x00,0x0e,0x00,0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x6d,0x61,0x69,0x6e,0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x2d,0x00,0x00,0x00,0x45,0x00,0x00,0x00,
    +0x6d,0x61,0x69,0x6e,0x00,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,
    +0x32,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x43,0x00,0x00,0x00,
     0x58,0x00,0x00,0x00,0x5d,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
     0xa7,0x00,0x00,0x00,0xe6,0x00,0x00,0x00,0x10,0x00,0x06,0x00,
     0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
     0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x19,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x20,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
    +0x17,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x48,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x47,0x00,0x03,0x00,0x18,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x1a,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x1a,0x00,0x00,0x00,
    +0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x32,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x37,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x38,0x00,0x00,0x00,
     0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x21,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x23,0x00,0x00,0x00,
    +0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x38,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x3a,0x00,0x00,0x00,
     0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x23,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x2b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x41,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
     0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x2b,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x2b,0x00,0x00,0x00,
    +0x41,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x41,0x00,0x00,0x00,
     0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x2b,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x41,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
     0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x2b,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x2b,0x00,0x00,0x00,
    +0x41,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x41,0x00,0x00,0x00,
     0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x2b,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x41,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
     0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x2b,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x2b,0x00,0x00,0x00,
    +0x41,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x41,0x00,0x00,0x00,
     0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x47,0x00,0x03,0x00,0x2b,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x42,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x43,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x43,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x43,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x45,0x00,0x00,0x00,
    -0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x45,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x47,0x00,0x03,0x00,0x41,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
     0x47,0x00,0x04,0x00,0x58,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
     0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x5d,0x00,0x00,0x00,
     0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    @@ -117663,107 +121351,107 @@ unsigned char mul_mat_vec_id_f16_f32_data[] = {
     0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00,
     0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x00,0x03,0x00,
    -0x0e,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x17,0x00,0x04,0x00,
    -0x17,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x17,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x18,0x00,0x00,0x00,
    -0x19,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    -0x20,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
    -0x21,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x22,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x21,0x00,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0x22,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,
    -0x24,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x26,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,
    -0x1e,0x00,0x0b,0x00,0x2b,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x16,0x00,0x03,0x00,
    +0x16,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    +0x17,0x00,0x00,0x00,0x16,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
    +0x18,0x00,0x00,0x00,0x17,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x19,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x1b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x20,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x16,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x27,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x17,0x00,0x04,0x00,
    +0x30,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x31,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x30,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x31,0x00,0x00,0x00,
    +0x32,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x33,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x1d,0x00,0x03,0x00,0x37,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
    +0x1e,0x00,0x03,0x00,0x38,0x00,0x00,0x00,0x37,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x39,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x38,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x39,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x3c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
    +0x1e,0x00,0x0b,0x00,0x41,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
     0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
     0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
     0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x2c,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x2b,0x00,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0x2c,0x00,0x00,0x00,0x2d,0x00,0x00,0x00,
    -0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,
    -0x2e,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x2f,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,0x34,0x00,0x00,0x00,
    -0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,
    -0x38,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x1f,0x00,0x00,0x00,0x3d,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
    -0x16,0x00,0x03,0x00,0x41,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
    -0x1d,0x00,0x03,0x00,0x42,0x00,0x00,0x00,0x41,0x00,0x00,0x00,
    -0x1e,0x00,0x03,0x00,0x43,0x00,0x00,0x00,0x42,0x00,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x44,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x43,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x44,0x00,0x00,0x00,
    -0x45,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x49,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x41,0x00,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x58,0x00,0x00,0x00,
    +0x42,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x41,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x42,0x00,0x00,0x00,0x43,0x00,0x00,0x00,
    +0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,
    +0x44,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x45,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x4a,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x1b,0x00,0x00,0x00,0x53,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x31,0x00,0x00,0x00,0x58,0x00,0x00,0x00,
     0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x59,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0x18,0x00,0x00,0x00,0x5d,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x31,0x00,0x00,0x00,0x5d,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
     0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x6a,0x00,0x00,0x00,
     0x20,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0x6b,0x00,0x00,0x00,
    -0x0e,0x00,0x00,0x00,0x6a,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x08,0x00,0x00,0x00,0x6a,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
     0x6c,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,
     0x3b,0x00,0x04,0x00,0x6c,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    -0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x08,0x00,0x00,0x00,
     0x6f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x70,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,
    +0x70,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
     0x14,0x00,0x02,0x00,0x7c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x81,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    -0x1d,0x00,0x03,0x00,0xa4,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,
    +0x1d,0x00,0x03,0x00,0xa4,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
     0x1e,0x00,0x03,0x00,0xa5,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,
     0x20,0x00,0x04,0x00,0xa6,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
     0xa5,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xa6,0x00,0x00,0x00,
     0xa7,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0xad,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,
    +0xad,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
     0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xc3,0x00,0x00,0x00,
     0x08,0x01,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0xc5,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x6a,0x00,0x00,0x00,
    -0x81,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,
    +0x81,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,
     0xdc,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    -0xe3,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
    +0xe3,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
     0xe4,0x00,0x00,0x00,0xe3,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
     0xe5,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xe4,0x00,0x00,0x00,
     0x3b,0x00,0x04,0x00,0xe5,0x00,0x00,0x00,0xe6,0x00,0x00,0x00,
     0x0c,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0xed,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x33,0x00,0x06,0x00,
    -0x17,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0xed,0x00,0x00,0x00,
    -0x1a,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x36,0x00,0x05,0x00,
    +0x30,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0xed,0x00,0x00,0x00,
    +0x27,0x00,0x00,0x00,0x27,0x00,0x00,0x00,0x36,0x00,0x05,0x00,
     0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
     0x03,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x5a,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x33,0x00,0x00,0x00,0x5a,0x00,0x00,0x00,
     0x58,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x5b,0x00,0x00,0x00,0x5a,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x33,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,
     0x5d,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xf2,0x00,0x00,0x00,
    -0x19,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x33,0x00,0x00,0x00,0xf2,0x00,0x00,0x00,
    +0x32,0x00,0x00,0x00,0x27,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,0xf2,0x00,0x00,0x00,
    -0x41,0x00,0x06,0x00,0x26,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,
    +0x41,0x00,0x06,0x00,0x3c,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,
    +0x3a,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,
     0xf5,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0xf7,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x2f,0x00,0x00,0x00,0xf9,0x00,0x00,0x00,0x2d,0x00,0x00,0x00,
    -0x2e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x45,0x00,0x00,0x00,0xf9,0x00,0x00,0x00,0x43,0x00,0x00,0x00,
    +0x44,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0xfa,0x00,0x00,0x00,0xf9,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,
    -0xfa,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x2f,0x00,0x00,0x00,
    -0xfd,0x00,0x00,0x00,0x2d,0x00,0x00,0x00,0x34,0x00,0x00,0x00,
    +0xfa,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x45,0x00,0x00,0x00,
    +0xfd,0x00,0x00,0x00,0x43,0x00,0x00,0x00,0x4a,0x00,0x00,0x00,
     0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,
     0xfd,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xff,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x2f,0x00,0x00,0x00,0x00,0x01,0x00,0x00,
    -0x2d,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x45,0x00,0x00,0x00,0x00,0x01,0x00,0x00,
    +0x43,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x01,0x00,0x00,
     0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x02,0x01,0x00,0x00,
     0xff,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x2f,0x00,0x00,0x00,0x04,0x01,0x00,0x00,0x2d,0x00,0x00,0x00,
    -0x3d,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x45,0x00,0x00,0x00,0x04,0x01,0x00,0x00,0x43,0x00,0x00,0x00,
    +0x53,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x05,0x01,0x00,0x00,0x04,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x06,0x01,0x00,0x00,0xf3,0x00,0x00,0x00,
     0x05,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x70,0x00,0x00,0x00,
    @@ -117773,8 +121461,8 @@ unsigned char mul_mat_vec_id_f16_f32_data[] = {
     0x73,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
     0x19,0x01,0x00,0x00,0x59,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
     0xc2,0x00,0x00,0x00,0x74,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x2f,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x2d,0x00,0x00,0x00,
    -0x24,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x45,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x43,0x00,0x00,0x00,
    +0x1c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x7a,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,0x7a,0x00,0x00,0x00,
     0x6a,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0x7c,0x00,0x00,0x00,
    @@ -117792,44 +121480,44 @@ unsigned char mul_mat_vec_id_f16_f32_data[] = {
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8b,0x00,0x00,0x00,
     0x89,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x8c,0x00,0x00,0x00,0x8b,0x00,0x00,0x00,
    -0x1a,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x8f,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,
    +0x27,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x8f,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x27,0x00,0x00,0x00,
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x90,0x00,0x00,0x00,
    -0x8f,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x82,0x00,0x05,0x00,
    +0x8f,0x00,0x00,0x00,0x27,0x00,0x00,0x00,0x82,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x95,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
     0x8f,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x99,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,
    +0x99,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0x27,0x00,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0b,0x01,0x00,0x00,
     0x99,0x00,0x00,0x00,0x8c,0x00,0x00,0x00,0x41,0x00,0x06,0x00,
    -0x49,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,0x45,0x00,0x00,0x00,
    -0x24,0x00,0x00,0x00,0x0b,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x41,0x00,0x00,0x00,0x0d,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,
    -0x73,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0x0e,0x01,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,0x1a,0x00,0x00,0x00,
    +0x1c,0x00,0x00,0x00,0x0b,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x16,0x00,0x00,0x00,0x0d,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,
    +0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x0e,0x01,0x00,0x00,
     0x0d,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x12,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,0x1a,0x00,0x00,0x00,
    -0x41,0x00,0x06,0x00,0x49,0x00,0x00,0x00,0x13,0x01,0x00,0x00,
    -0x45,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x12,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x41,0x00,0x00,0x00,0x14,0x01,0x00,0x00,
    -0x13,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,
    +0x12,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,0x27,0x00,0x00,0x00,
    +0x41,0x00,0x06,0x00,0x20,0x00,0x00,0x00,0x13,0x01,0x00,0x00,
    +0x1a,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x12,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x16,0x00,0x00,0x00,0x14,0x01,0x00,0x00,
    +0x13,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00,
     0x15,0x01,0x00,0x00,0x14,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xaa,0x00,0x00,0x00,0x02,0x01,0x00,0x00,
     0x95,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xac,0x00,0x00,0x00,0xaa,0x00,0x00,0x00,0x90,0x00,0x00,0x00,
     0x41,0x00,0x06,0x00,0xad,0x00,0x00,0x00,0xae,0x00,0x00,0x00,
    -0xa7,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0xac,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,
    +0xa7,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xac,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,
     0xae,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xb8,0x00,0x00,0x00,0xac,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,
    +0xb8,0x00,0x00,0x00,0xac,0x00,0x00,0x00,0x27,0x00,0x00,0x00,
     0x41,0x00,0x06,0x00,0xad,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,
    -0xa7,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0xba,0x00,0x00,0x00,
    -0xb9,0x00,0x00,0x00,0x85,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,
    +0xa7,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xba,0x00,0x00,0x00,
    +0xb9,0x00,0x00,0x00,0x85,0x00,0x05,0x00,0x08,0x00,0x00,0x00,
     0xbb,0x00,0x00,0x00,0x15,0x01,0x00,0x00,0xba,0x00,0x00,0x00,
    -0x0c,0x00,0x08,0x00,0x0e,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,
    +0x0c,0x00,0x08,0x00,0x08,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,
     0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x0e,0x01,0x00,0x00,
     0xaf,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0xbe,0x00,0x00,0x00,0x71,0x00,0x00,0x00,
    -0x81,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0xbe,0x00,0x00,0x00,0x71,0x00,0x00,0x00,
    +0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,
     0xbe,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,
     0x71,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xc2,0x00,0x00,0x00,0x19,0x01,0x00,0x00,
    @@ -117853,9 +121541,9 @@ unsigned char mul_mat_vec_id_f16_f32_data[] = {
     0xd5,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,0x1a,0x01,0x00,0x00,
     0x41,0x00,0x05,0x00,0x70,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,
     0x6d,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0xd7,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0xd9,0x00,0x00,0x00,
    -0x71,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0xd7,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xd9,0x00,0x00,0x00,
    +0x71,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00,
     0xda,0x00,0x00,0x00,0xd9,0x00,0x00,0x00,0xd7,0x00,0x00,0x00,
     0x3e,0x00,0x03,0x00,0x71,0x00,0x00,0x00,0xda,0x00,0x00,0x00,
     0xf9,0x00,0x02,0x00,0xd1,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    @@ -117872,10 +121560,10 @@ unsigned char mul_mat_vec_id_f16_f32_data[] = {
     0xf8,0x00,0x02,0x00,0xe1,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,0x06,0x01,0x00,0x00,
     0x5b,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x70,0x00,0x00,0x00,
    -0xea,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x24,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,
    +0xea,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,
     0xea,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xad,0x00,0x00,0x00,
    -0xec,0x00,0x00,0x00,0xe6,0x00,0x00,0x00,0x24,0x00,0x00,0x00,
    +0xec,0x00,0x00,0x00,0xe6,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,
     0xe9,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0xec,0x00,0x00,0x00,
     0xeb,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xe2,0x00,0x00,0x00,
     0xf8,0x00,0x02,0x00,0xe2,0x00,0x00,0x00,0xfd,0x00,0x01,0x00,
    @@ -117891,45 +121579,45 @@ unsigned char mul_mat_vec_id_f32_f32_data[] = {
     0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00,0x00,0x00,0x00,0x00,
     0x01,0x00,0x00,0x00,0x0f,0x00,0x0e,0x00,0x05,0x00,0x00,0x00,
     0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e,0x00,0x00,0x00,0x00,
    -0x19,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x2d,0x00,0x00,0x00,
    -0x44,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x5a,0x00,0x00,0x00,
    +0x19,0x00,0x00,0x00,0x2f,0x00,0x00,0x00,0x37,0x00,0x00,0x00,
    +0x40,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x5a,0x00,0x00,0x00,
     0x6a,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,0xe2,0x00,0x00,0x00,
     0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00,
     0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    -0x1c,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x20,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x16,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x17,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x17,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x17,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x19,0x00,0x00,0x00,
    +0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x19,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x2f,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    +0x1c,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x34,0x00,0x00,0x00,
     0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,
    -0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x35,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x35,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
     0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    -0x21,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x23,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x21,0x00,0x00,0x00,
    -0x03,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x2b,0x00,0x00,0x00,
    +0x35,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x37,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x37,0x00,0x00,0x00,0x21,0x00,0x00,0x00,
    +0x03,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x3e,0x00,0x00,0x00,
     0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x2b,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x3e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
     0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x2b,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x2b,0x00,0x00,0x00,
    +0x3e,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x3e,0x00,0x00,0x00,
     0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x2b,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x3e,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
     0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x2b,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x2b,0x00,0x00,0x00,
    +0x3e,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x3e,0x00,0x00,0x00,
     0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x2b,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x3e,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
     0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x2b,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x2b,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x41,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,
    -0x42,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x42,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    -0x42,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x44,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x44,0x00,0x00,0x00,0x21,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x55,0x00,0x00,0x00,
    +0x3e,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x3e,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x55,0x00,0x00,0x00,
     0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
     0x5a,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
     0x47,0x00,0x04,0x00,0x67,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    @@ -117955,105 +121643,105 @@ unsigned char mul_mat_vec_id_f32_f32_data[] = {
     0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00,
     0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x16,0x00,0x03,0x00,0x0e,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x17,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x18,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x17,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0x18,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x15,0x00,0x04,0x00,
    -0x1f,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x1d,0x00,0x03,0x00,0x20,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,
    -0x1e,0x00,0x03,0x00,0x21,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x22,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x21,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x22,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x1f,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x26,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x1f,0x00,0x00,0x00,0x1e,0x00,0x0b,0x00,0x2b,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x2c,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    -0x2b,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x2c,0x00,0x00,0x00,
    -0x2d,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x1f,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x2f,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,
    -0x34,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x1f,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,0x3d,0x00,0x00,0x00,
    -0x03,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x41,0x00,0x00,0x00,
    -0x0e,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x42,0x00,0x00,0x00,
    -0x41,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x43,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x42,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0x43,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x48,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x0e,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x18,0x00,0x00,0x00,
    +0x16,0x00,0x03,0x00,0x08,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x1d,0x00,0x03,0x00,0x16,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    +0x1e,0x00,0x03,0x00,0x17,0x00,0x00,0x00,0x16,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x17,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x18,0x00,0x00,0x00,
    +0x19,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x15,0x00,0x04,0x00,
    +0x1a,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x1a,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x17,0x00,0x04,0x00,0x2d,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x2e,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x2d,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0x2e,0x00,0x00,0x00,0x2f,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x30,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x34,0x00,0x00,0x00,
    +0x1a,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x35,0x00,0x00,0x00,
    +0x34,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x36,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0x36,0x00,0x00,0x00,0x37,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x39,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x1a,0x00,0x00,0x00,0x1e,0x00,0x0b,0x00,0x3e,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x3f,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x3e,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x3f,0x00,0x00,0x00,
    +0x40,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x1a,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x42,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1a,0x00,0x00,0x00,
    +0x47,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x1a,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x1a,0x00,0x00,0x00,0x50,0x00,0x00,0x00,
    +0x03,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x2e,0x00,0x00,0x00,
     0x55,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x56,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x5a,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x2e,0x00,0x00,0x00,0x5a,0x00,0x00,0x00,
     0x01,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x67,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,
    -0x68,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x67,0x00,0x00,0x00,
    +0x68,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x67,0x00,0x00,0x00,
     0x20,0x00,0x04,0x00,0x69,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
     0x68,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x69,0x00,0x00,0x00,
     0x6a,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
     0x20,0x00,0x04,0x00,0x6d,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x0e,0x00,0x00,0x00,0x14,0x00,0x02,0x00,0x79,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x14,0x00,0x02,0x00,0x79,0x00,0x00,0x00,
     0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,
     0x02,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0xa1,0x00,0x00,0x00,
    -0x0e,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xa2,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xa2,0x00,0x00,0x00,
     0xa1,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xa3,0x00,0x00,0x00,
     0x0c,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
     0xa3,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
     0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,
     0x08,0x01,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0xc1,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x67,0x00,0x00,0x00,
    -0x7e,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,
    +0x7e,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1a,0x00,0x00,0x00,
     0xd8,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    -0xdf,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
    +0xdf,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
     0xe0,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
     0xe1,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xe0,0x00,0x00,0x00,
     0x3b,0x00,0x04,0x00,0xe1,0x00,0x00,0x00,0xe2,0x00,0x00,0x00,
     0x0c,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0xe9,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x33,0x00,0x06,0x00,
    -0x17,0x00,0x00,0x00,0xea,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,
    -0x1a,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x36,0x00,0x05,0x00,
    +0x2d,0x00,0x00,0x00,0xea,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,
    +0x25,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x36,0x00,0x05,0x00,
     0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
     0x03,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x57,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x30,0x00,0x00,0x00,0x57,0x00,0x00,0x00,
     0x55,0x00,0x00,0x00,0x56,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x58,0x00,0x00,0x00,0x57,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x5b,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x30,0x00,0x00,0x00,0x5b,0x00,0x00,0x00,
     0x5a,0x00,0x00,0x00,0x56,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,0x5b,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xee,0x00,0x00,0x00,
    -0x19,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x30,0x00,0x00,0x00,0xee,0x00,0x00,0x00,
    +0x2f,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0xef,0x00,0x00,0x00,0xee,0x00,0x00,0x00,
    -0x41,0x00,0x06,0x00,0x26,0x00,0x00,0x00,0xf1,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0xef,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,0xf2,0x00,0x00,0x00,
    +0x41,0x00,0x06,0x00,0x39,0x00,0x00,0x00,0xf1,0x00,0x00,0x00,
    +0x37,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0xef,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x1a,0x00,0x00,0x00,0xf2,0x00,0x00,0x00,
     0xf1,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0xf3,0x00,0x00,0x00,0xf2,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x2f,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,0x2d,0x00,0x00,0x00,
    -0x2e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x42,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,0x40,0x00,0x00,0x00,
    +0x41,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0xf6,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,
    -0xf6,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x2f,0x00,0x00,0x00,
    -0xf9,0x00,0x00,0x00,0x2d,0x00,0x00,0x00,0x34,0x00,0x00,0x00,
    +0xf6,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x42,0x00,0x00,0x00,
    +0xf9,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x47,0x00,0x00,0x00,
     0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,
     0xf9,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xfb,0x00,0x00,0x00,0xef,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x2f,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,
    -0x2d,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x42,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,
    +0x40,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,
     0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,
     0xfb,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x2f,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x2d,0x00,0x00,0x00,
    -0x3d,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x42,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x40,0x00,0x00,0x00,
    +0x50,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x01,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x02,0x01,0x00,0x00,0xef,0x00,0x00,0x00,
     0x01,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x6d,0x00,0x00,0x00,
    @@ -118063,8 +121751,8 @@ unsigned char mul_mat_vec_id_f32_f32_data[] = {
     0x70,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
     0x13,0x01,0x00,0x00,0x56,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
     0xbe,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x2f,0x00,0x00,0x00,0x76,0x00,0x00,0x00,0x2d,0x00,0x00,0x00,
    -0x24,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x42,0x00,0x00,0x00,0x76,0x00,0x00,0x00,0x40,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x77,0x00,0x00,0x00,0x76,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x77,0x00,0x00,0x00,
     0x67,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0x79,0x00,0x00,0x00,
    @@ -118082,41 +121770,41 @@ unsigned char mul_mat_vec_id_f32_f32_data[] = {
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x88,0x00,0x00,0x00,
     0x86,0x00,0x00,0x00,0x81,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x89,0x00,0x00,0x00,0x88,0x00,0x00,0x00,
    -0x1a,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x8c,0x00,0x00,0x00,0x81,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,
    +0x25,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x8c,0x00,0x00,0x00,0x81,0x00,0x00,0x00,0x25,0x00,0x00,0x00,
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,
    -0x8c,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x82,0x00,0x05,0x00,
    +0x8c,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x82,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x92,0x00,0x00,0x00,0x81,0x00,0x00,0x00,
     0x8c,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x96,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,
    +0x96,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,0x25,0x00,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x07,0x01,0x00,0x00,
     0x96,0x00,0x00,0x00,0x89,0x00,0x00,0x00,0x41,0x00,0x06,0x00,
    -0x48,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x44,0x00,0x00,0x00,
    -0x24,0x00,0x00,0x00,0x07,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0x09,0x01,0x00,0x00,0x08,0x01,0x00,0x00,
    +0x1f,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x19,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x07,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x08,0x00,0x00,0x00,0x09,0x01,0x00,0x00,0x08,0x01,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0d,0x01,0x00,0x00,
    -0x07,0x01,0x00,0x00,0x1a,0x00,0x00,0x00,0x41,0x00,0x06,0x00,
    -0x48,0x00,0x00,0x00,0x0e,0x01,0x00,0x00,0x44,0x00,0x00,0x00,
    -0x24,0x00,0x00,0x00,0x0d,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0x0f,0x01,0x00,0x00,0x0e,0x01,0x00,0x00,
    +0x07,0x01,0x00,0x00,0x25,0x00,0x00,0x00,0x41,0x00,0x06,0x00,
    +0x1f,0x00,0x00,0x00,0x0e,0x01,0x00,0x00,0x19,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x0d,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x08,0x00,0x00,0x00,0x0f,0x01,0x00,0x00,0x0e,0x01,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,
     0xfe,0x00,0x00,0x00,0x92,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,
    -0x8d,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x48,0x00,0x00,0x00,
    -0xaa,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,0x24,0x00,0x00,0x00,
    -0xa9,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,
    +0x8d,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x1f,0x00,0x00,0x00,
    +0xaa,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
    +0xa9,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,
     0xab,0x00,0x00,0x00,0xaa,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,
    -0x1a,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x48,0x00,0x00,0x00,
    -0xb5,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,0x24,0x00,0x00,0x00,
    -0xb4,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,
    +0x25,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x1f,0x00,0x00,0x00,
    +0xb5,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
    +0xb4,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,
     0xb6,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,0x85,0x00,0x05,0x00,
    -0x0e,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,0x0f,0x01,0x00,0x00,
    -0xb6,0x00,0x00,0x00,0x0c,0x00,0x08,0x00,0x0e,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,0x0f,0x01,0x00,0x00,
    +0xb6,0x00,0x00,0x00,0x0c,0x00,0x08,0x00,0x08,0x00,0x00,0x00,
     0xb8,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,
     0x09,0x01,0x00,0x00,0xab,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0xba,0x00,0x00,0x00,
    -0x6e,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xba,0x00,0x00,0x00,
    +0x6e,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00,
     0xbb,0x00,0x00,0x00,0xba,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,
     0x3e,0x00,0x03,0x00,0x6e,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbe,0x00,0x00,0x00,
    @@ -118140,10 +121828,10 @@ unsigned char mul_mat_vec_id_f32_f32_data[] = {
     0x06,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,
     0x14,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x6d,0x00,0x00,0x00,
     0xd2,0x00,0x00,0x00,0x6a,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,
    -0xd2,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,
    +0xd2,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,
     0xd5,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x81,0x00,0x05,0x00,
    -0x0e,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,
     0xd3,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0x6e,0x00,0x00,0x00,
     0xd6,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xcd,0x00,0x00,0x00,
     0xf8,0x00,0x02,0x00,0xcd,0x00,0x00,0x00,0xe0,0x00,0x04,0x00,
    @@ -118160,17 +121848,17 @@ unsigned char mul_mat_vec_id_f32_f32_data[] = {
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe5,0x00,0x00,0x00,
     0x02,0x01,0x00,0x00,0x58,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
     0x6d,0x00,0x00,0x00,0xe6,0x00,0x00,0x00,0x6a,0x00,0x00,0x00,
    -0x24,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,
     0xe7,0x00,0x00,0x00,0xe6,0x00,0x00,0x00,0x41,0x00,0x06,0x00,
    -0x48,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0xe2,0x00,0x00,0x00,
    -0x24,0x00,0x00,0x00,0xe5,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x1f,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0xe2,0x00,0x00,0x00,
    +0x1b,0x00,0x00,0x00,0xe5,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,
     0xe8,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
     0xde,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xde,0x00,0x00,0x00,
     0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
     };
     const uint64_t mul_mat_vec_id_f32_f32_len = 3392;
     
    -unsigned char mul_mat_vec_id_q2_K_f32_data[] = {
    +unsigned char mul_mat_vec_id_q2_k_f32_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
     0x14,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00,
     0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x27,0x00,0x00,0x00,
    @@ -118861,9 +122549,9 @@ unsigned char mul_mat_vec_id_q2_K_f32_data[] = {
     0xe7,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xe7,0x02,0x00,0x00,
     0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
     };
    -const uint64_t mul_mat_vec_id_q2_K_f32_len = 8264;
    +const uint64_t mul_mat_vec_id_q2_k_f32_len = 8264;
     
    -unsigned char mul_mat_vec_id_q3_K_f32_data[] = {
    +unsigned char mul_mat_vec_id_q3_k_f32_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
     0x5c,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00,
     0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x27,0x00,0x00,0x00,
    @@ -119688,7 +123376,7 @@ unsigned char mul_mat_vec_id_q3_K_f32_data[] = {
     0x33,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x33,0x03,0x00,0x00,
     0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
     };
    -const uint64_t mul_mat_vec_id_q3_K_f32_len = 9872;
    +const uint64_t mul_mat_vec_id_q3_k_f32_len = 9872;
     
     unsigned char mul_mat_vec_id_q4_0_f32_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
    @@ -119699,50 +123387,50 @@ unsigned char mul_mat_vec_id_q4_0_f32_data[] = {
     0x2e,0x34,0x35,0x30,0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00,
     0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0f,0x00,0x0e,0x00,
     0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e,
    -0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x2d,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x47,0x00,0x00,0x00,
    +0x50,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
     0x72,0x00,0x00,0x00,0x82,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,
     0xfa,0x00,0x00,0x00,0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00,
     0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x19,0x00,0x00,0x00,
    -0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x20,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x48,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x21,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x47,0x00,0x03,0x00,0x21,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x23,0x00,0x00,0x00,
    -0x21,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x2b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x2b,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x2b,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x2b,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x2b,0x00,0x00,0x00,
    -0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x2b,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x2b,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x2b,0x00,0x00,0x00,
    -0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x2b,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    -0x2b,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x46,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x47,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x47,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x48,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x48,0x00,0x04,0x00,
    -0x49,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x49,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x1c,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x1d,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x12,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x1e,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x1e,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x20,0x00,0x00,0x00,
    +0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x20,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x47,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    +0x1c,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x4d,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,
    +0x4e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x4e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
     0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    -0x49,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x4b,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x4b,0x00,0x00,0x00,0x21,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x6d,0x00,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x50,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x50,0x00,0x00,0x00,0x21,0x00,0x00,0x00,
    +0x03,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x57,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x57,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x57,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x57,0x00,0x00,0x00,
    +0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x57,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x57,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x57,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x57,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x57,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x57,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x6d,0x00,0x00,0x00,
     0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
     0x72,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
     0x47,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    @@ -119768,121 +123456,121 @@ unsigned char mul_mat_vec_id_q4_0_f32_data[] = {
     0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00,
     0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x16,0x00,0x03,0x00,0x0e,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x17,0x00,0x04,0x00,0x0f,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x17,0x00,0x04,0x00,0x17,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x18,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x17,0x00,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x1a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x1b,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x15,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x20,0x00,0x00,0x00,
    -0x1f,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x21,0x00,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x22,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0x22,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,0x24,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x26,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,0x1e,0x00,0x0b,0x00,
    -0x2b,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x2c,0x00,0x00,0x00,
    -0x09,0x00,0x00,0x00,0x2b,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0x2c,0x00,0x00,0x00,0x2d,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,
    -0x04,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x2f,0x00,0x00,0x00,
    -0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x1f,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,0x38,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,
    -0x3d,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x16,0x00,0x03,0x00,
    -0x43,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x15,0x00,0x04,0x00,
    -0x44,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x45,0x00,0x00,0x00,
    -0x10,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0x46,0x00,0x00,0x00,
    -0x44,0x00,0x00,0x00,0x45,0x00,0x00,0x00,0x1e,0x00,0x04,0x00,
    -0x47,0x00,0x00,0x00,0x43,0x00,0x00,0x00,0x46,0x00,0x00,0x00,
    -0x1d,0x00,0x03,0x00,0x48,0x00,0x00,0x00,0x47,0x00,0x00,0x00,
    -0x1e,0x00,0x03,0x00,0x49,0x00,0x00,0x00,0x48,0x00,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x4a,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x49,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x4a,0x00,0x00,0x00,
    -0x4b,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x4f,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x43,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,0x57,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x59,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0x65,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x41,0x3b,0x00,0x04,0x00,0x18,0x00,0x00,0x00,
    +0x16,0x00,0x03,0x00,0x08,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x17,0x00,0x04,0x00,0x09,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0x18,0x00,0x00,0x00,
    +0x10,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x19,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
    +0x1c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    +0x1a,0x00,0x00,0x00,0x1e,0x00,0x04,0x00,0x1c,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    +0x1d,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
    +0x1e,0x00,0x00,0x00,0x1d,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x1f,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x21,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x26,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
    +0x2e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x30,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x35,0x00,0x00,0x00,
    +0x0f,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
    +0x39,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x08,0x00,0x00,0x00,0x3d,0x00,0x00,0x00,0x00,0x00,0x00,0x41,
    +0x17,0x00,0x04,0x00,0x45,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x46,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x45,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0x46,0x00,0x00,0x00,0x47,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x48,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x49,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    +0x4d,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
    +0x4e,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x4f,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x4f,0x00,0x00,0x00,0x50,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x52,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x1e,0x00,0x0b,0x00,
    +0x57,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x58,0x00,0x00,0x00,
    +0x09,0x00,0x00,0x00,0x57,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0x58,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x5a,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
    +0x5f,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x21,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x68,0x00,0x00,0x00,
    +0x03,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x46,0x00,0x00,0x00,
     0x6d,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x72,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x46,0x00,0x00,0x00,0x72,0x00,0x00,0x00,
     0x01,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x7f,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,
    -0x80,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,
    +0x80,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,
     0x20,0x00,0x04,0x00,0x81,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
     0x80,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x81,0x00,0x00,0x00,
     0x82,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
     0x20,0x00,0x04,0x00,0x85,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x0e,0x00,0x00,0x00,0x14,0x00,0x02,0x00,0x91,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x14,0x00,0x02,0x00,0x91,0x00,0x00,0x00,
     0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x96,0x00,0x00,0x00,
     0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0xa1,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    -0xb9,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
    +0xb9,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
     0xba,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
     0xbb,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xba,0x00,0x00,0x00,
     0x3b,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,
     0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xc2,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x0c,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0xd8,0x00,0x00,0x00,0x08,0x01,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xda,0x00,0x00,0x00,
     0x86,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,0x96,0x00,0x00,0x00,
    -0x1d,0x00,0x03,0x00,0xf7,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,
    +0x1d,0x00,0x03,0x00,0xf7,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
     0x1e,0x00,0x03,0x00,0xf8,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,
     0x20,0x00,0x04,0x00,0xf9,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
     0xf8,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xf9,0x00,0x00,0x00,
     0xfa,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x33,0x00,0x06,0x00,0x17,0x00,0x00,0x00,0x02,0x01,0x00,0x00,
    -0x01,0x01,0x00,0x00,0x1a,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,
    -0x2c,0x00,0x05,0x00,0x0f,0x00,0x00,0x00,0x3c,0x01,0x00,0x00,
    -0x65,0x00,0x00,0x00,0x65,0x00,0x00,0x00,0x36,0x00,0x05,0x00,
    +0x33,0x00,0x06,0x00,0x45,0x00,0x00,0x00,0x02,0x01,0x00,0x00,
    +0x01,0x01,0x00,0x00,0x48,0x00,0x00,0x00,0x48,0x00,0x00,0x00,
    +0x2c,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0x3c,0x01,0x00,0x00,
    +0x3d,0x00,0x00,0x00,0x3d,0x00,0x00,0x00,0x36,0x00,0x05,0x00,
     0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
     0x03,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x49,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,
     0x6d,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x73,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x49,0x00,0x00,0x00,0x73,0x00,0x00,0x00,
     0x72,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x74,0x00,0x00,0x00,0x73,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x06,0x01,0x00,0x00,
    -0x19,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x49,0x00,0x00,0x00,0x06,0x01,0x00,0x00,
    +0x47,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x07,0x01,0x00,0x00,0x06,0x01,0x00,0x00,
    -0x41,0x00,0x06,0x00,0x26,0x00,0x00,0x00,0x09,0x01,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x07,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,0x0a,0x01,0x00,0x00,
    +0x41,0x00,0x06,0x00,0x52,0x00,0x00,0x00,0x09,0x01,0x00,0x00,
    +0x50,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x07,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x0a,0x01,0x00,0x00,
     0x09,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x0b,0x01,0x00,0x00,0x0a,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x2f,0x00,0x00,0x00,0x0d,0x01,0x00,0x00,0x2d,0x00,0x00,0x00,
    -0x2e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x5a,0x00,0x00,0x00,0x0d,0x01,0x00,0x00,0x59,0x00,0x00,0x00,
    +0x39,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x0e,0x01,0x00,0x00,0x0d,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x0f,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,
    -0x0e,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x2f,0x00,0x00,0x00,
    -0x11,0x01,0x00,0x00,0x2d,0x00,0x00,0x00,0x34,0x00,0x00,0x00,
    +0x0e,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x5a,0x00,0x00,0x00,
    +0x11,0x01,0x00,0x00,0x59,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,
     0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x12,0x01,0x00,0x00,
     0x11,0x01,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x13,0x01,0x00,0x00,0x07,0x01,0x00,0x00,0x12,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x2f,0x00,0x00,0x00,0x14,0x01,0x00,0x00,
    -0x2d,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x5a,0x00,0x00,0x00,0x14,0x01,0x00,0x00,
    +0x59,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x15,0x01,0x00,0x00,0x14,0x01,0x00,0x00,
     0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x16,0x01,0x00,0x00,
     0x13,0x01,0x00,0x00,0x15,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x2f,0x00,0x00,0x00,0x18,0x01,0x00,0x00,0x2d,0x00,0x00,0x00,
    -0x3d,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x5a,0x00,0x00,0x00,0x18,0x01,0x00,0x00,0x59,0x00,0x00,0x00,
    +0x68,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x19,0x01,0x00,0x00,0x18,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x1a,0x01,0x00,0x00,0x07,0x01,0x00,0x00,
     0x19,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x85,0x00,0x00,0x00,
    @@ -119892,8 +123580,8 @@ unsigned char mul_mat_vec_id_q4_0_f32_data[] = {
     0x88,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
     0x39,0x01,0x00,0x00,0x6e,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
     0xd7,0x00,0x00,0x00,0x89,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x2f,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,0x2d,0x00,0x00,0x00,
    -0x24,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x5a,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,0x59,0x00,0x00,0x00,
    +0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x8f,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x90,0x00,0x00,0x00,0x8f,0x00,0x00,0x00,
     0x7f,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0x91,0x00,0x00,0x00,
    @@ -119920,49 +123608,49 @@ unsigned char mul_mat_vec_id_q4_0_f32_data[] = {
     0xaf,0x00,0x00,0x00,0x0f,0x01,0x00,0x00,0xa1,0x00,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x21,0x01,0x00,0x00,
     0xaf,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,0x41,0x00,0x07,0x00,
    -0x4f,0x00,0x00,0x00,0x22,0x01,0x00,0x00,0x4b,0x00,0x00,0x00,
    -0x24,0x00,0x00,0x00,0x21,0x01,0x00,0x00,0x24,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x43,0x00,0x00,0x00,0x23,0x01,0x00,0x00,
    -0x22,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,
    +0x26,0x00,0x00,0x00,0x22,0x01,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x22,0x00,0x00,0x00,0x21,0x01,0x00,0x00,0x22,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x23,0x01,0x00,0x00,
    +0x22,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00,
     0x24,0x01,0x00,0x00,0x23,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x59,0x00,0x00,0x00,0x29,0x01,0x00,0x00,0x4b,0x00,0x00,0x00,
    -0x24,0x00,0x00,0x00,0x21,0x01,0x00,0x00,0x57,0x00,0x00,0x00,
    -0xa6,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x44,0x00,0x00,0x00,
    +0x30,0x00,0x00,0x00,0x29,0x01,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x22,0x00,0x00,0x00,0x21,0x01,0x00,0x00,0x2e,0x00,0x00,0x00,
    +0xa6,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x19,0x00,0x00,0x00,
     0x2a,0x01,0x00,0x00,0x29,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x2b,0x01,0x00,0x00,0x2a,0x01,0x00,0x00,
     0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2d,0x01,0x00,0x00,
    -0x2b,0x01,0x00,0x00,0x5e,0x00,0x00,0x00,0x70,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0x2e,0x01,0x00,0x00,0x2d,0x01,0x00,0x00,
    +0x2b,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0x70,0x00,0x04,0x00,
    +0x08,0x00,0x00,0x00,0x2e,0x01,0x00,0x00,0x2d,0x01,0x00,0x00,
     0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x30,0x01,0x00,0x00,
    -0x2b,0x01,0x00,0x00,0x2e,0x00,0x00,0x00,0x70,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0x31,0x01,0x00,0x00,0x30,0x01,0x00,0x00,
    -0x50,0x00,0x05,0x00,0x0f,0x00,0x00,0x00,0x32,0x01,0x00,0x00,
    +0x2b,0x01,0x00,0x00,0x39,0x00,0x00,0x00,0x70,0x00,0x04,0x00,
    +0x08,0x00,0x00,0x00,0x31,0x01,0x00,0x00,0x30,0x01,0x00,0x00,
    +0x50,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0x32,0x01,0x00,0x00,
     0x2e,0x01,0x00,0x00,0x31,0x01,0x00,0x00,0x83,0x00,0x05,0x00,
    -0x0f,0x00,0x00,0x00,0x34,0x01,0x00,0x00,0x32,0x01,0x00,0x00,
    -0x3c,0x01,0x00,0x00,0x8e,0x00,0x05,0x00,0x0f,0x00,0x00,0x00,
    +0x09,0x00,0x00,0x00,0x34,0x01,0x00,0x00,0x32,0x01,0x00,0x00,
    +0x3c,0x01,0x00,0x00,0x8e,0x00,0x05,0x00,0x09,0x00,0x00,0x00,
     0x36,0x01,0x00,0x00,0x34,0x01,0x00,0x00,0x24,0x01,0x00,0x00,
    -0x51,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,
    +0x51,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,
     0x36,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0x16,0x01,0x00,0x00,
     0xab,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xc1,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0xa6,0x00,0x00,0x00,
     0x41,0x00,0x06,0x00,0xc2,0x00,0x00,0x00,0xc3,0x00,0x00,0x00,
    -0xbc,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0xc1,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,
    -0xc3,0x00,0x00,0x00,0x51,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,
    +0xbc,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0xc1,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,
    +0xc3,0x00,0x00,0x00,0x51,0x00,0x05,0x00,0x08,0x00,0x00,0x00,
     0xc7,0x00,0x00,0x00,0x36,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xcd,0x00,0x00,0x00,
    -0xc1,0x00,0x00,0x00,0x45,0x00,0x00,0x00,0x41,0x00,0x06,0x00,
    +0xc1,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x41,0x00,0x06,0x00,
     0xc2,0x00,0x00,0x00,0xce,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,
    -0x24,0x00,0x00,0x00,0xcd,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0xce,0x00,0x00,0x00,
    -0x85,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,
    +0x22,0x00,0x00,0x00,0xcd,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x08,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0xce,0x00,0x00,0x00,
    +0x85,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,
     0xc7,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x0c,0x00,0x08,0x00,
    -0x0e,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
     0x32,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,
    -0xd0,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,
    +0xd0,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,
     0xd3,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x81,0x00,0x05,0x00,
    -0x0e,0x00,0x00,0x00,0xd4,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0xd4,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,
     0xd1,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0x86,0x00,0x00,0x00,
     0xd4,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xd7,0x00,0x00,0x00,0x39,0x01,0x00,0x00,0x96,0x00,0x00,0x00,
    @@ -119985,10 +123673,10 @@ unsigned char mul_mat_vec_id_q4_0_f32_data[] = {
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xea,0x00,0x00,0x00,
     0x74,0x00,0x00,0x00,0x3a,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
     0x85,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0x82,0x00,0x00,0x00,
    -0xea,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,
    +0xea,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,
     0xec,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    -0x81,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,0xef,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0xef,0x00,0x00,0x00,
     0xee,0x00,0x00,0x00,0xec,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,
     0x86,0x00,0x00,0x00,0xef,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
     0xe6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xe6,0x00,0x00,0x00,
    @@ -119996,7 +123684,7 @@ unsigned char mul_mat_vec_id_q4_0_f32_data[] = {
     0xd8,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xde,0x00,0x00,0x00,
     0xf8,0x00,0x02,0x00,0xde,0x00,0x00,0x00,0xc2,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xf2,0x00,0x00,0x00,0x3a,0x01,0x00,0x00,
    -0x57,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xdb,0x00,0x00,0x00,
    +0x2e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xdb,0x00,0x00,0x00,
     0xf8,0x00,0x02,0x00,0xdd,0x00,0x00,0x00,0xaa,0x00,0x05,0x00,
     0x91,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,0x74,0x00,0x00,0x00,
     0x6e,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0xf6,0x00,0x00,0x00,
    @@ -120005,10 +123693,10 @@ unsigned char mul_mat_vec_id_q4_0_f32_data[] = {
     0xf5,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xfd,0x00,0x00,0x00,0x1a,0x01,0x00,0x00,0x70,0x00,0x00,0x00,
     0x41,0x00,0x05,0x00,0x85,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,
    -0x82,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,
    +0x82,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x08,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,
     0x41,0x00,0x06,0x00,0xc2,0x00,0x00,0x00,0x00,0x01,0x00,0x00,
    -0xfa,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,
    +0xfa,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,
     0x3e,0x00,0x03,0x00,0x00,0x01,0x00,0x00,0xff,0x00,0x00,0x00,
     0xf9,0x00,0x02,0x00,0xf6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
     0xf6,0x00,0x00,0x00,0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
    @@ -120025,51 +123713,51 @@ unsigned char mul_mat_vec_id_q4_1_f32_data[] = {
     0x2e,0x34,0x35,0x30,0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00,
     0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0f,0x00,0x0e,0x00,
     0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e,
    -0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x2d,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0x74,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,
    +0x58,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x74,0x00,0x00,0x00,
     0x79,0x00,0x00,0x00,0x89,0x00,0x00,0x00,0xc3,0x00,0x00,0x00,
     0x01,0x01,0x00,0x00,0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00,
     0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x19,0x00,0x00,0x00,
    -0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x20,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x48,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x21,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x1c,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x1c,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x1d,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    +0x48,0x00,0x04,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x1e,0x00,0x00,0x00,
     0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x47,0x00,0x03,0x00,0x21,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x23,0x00,0x00,0x00,
    -0x21,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x2b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x2b,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x2b,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x2b,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x2b,0x00,0x00,0x00,
    -0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x2b,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x2b,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x2b,0x00,0x00,0x00,
    -0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x2b,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    -0x2b,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x46,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x47,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x47,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x47,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x48,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x14,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x49,0x00,0x00,0x00,
    +0x47,0x00,0x03,0x00,0x1e,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x20,0x00,0x00,0x00,
    +0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x4f,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x55,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x56,0x00,0x00,0x00,
     0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x49,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x49,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x4b,0x00,0x00,0x00,
    +0x56,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x56,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x58,0x00,0x00,0x00,
     0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x4b,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x58,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x5f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x5f,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x5f,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x5f,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x5f,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x5f,0x00,0x00,0x00,
    +0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x5f,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x5f,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x5f,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x47,0x00,0x03,0x00,0x5f,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
     0x47,0x00,0x04,0x00,0x74,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
     0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x79,0x00,0x00,0x00,
     0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    @@ -120096,118 +123784,118 @@ unsigned char mul_mat_vec_id_q4_1_f32_data[] = {
     0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00,
     0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x00,0x03,0x00,
    -0x0e,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x17,0x00,0x04,0x00,
    -0x0f,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    -0x17,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x18,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x17,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0x18,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x15,0x00,0x04,0x00,
    -0x1f,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x1d,0x00,0x03,0x00,0x20,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,
    -0x1e,0x00,0x03,0x00,0x21,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x22,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x21,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x22,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x1f,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x17,0x00,0x04,0x00,
    +0x09,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x16,0x00,0x03,0x00,0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
    +0x15,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x1a,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,
    +0x1b,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,
    +0x1e,0x00,0x05,0x00,0x1c,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    +0x1d,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
    +0x1e,0x00,0x00,0x00,0x1d,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x1f,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x21,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
     0x20,0x00,0x04,0x00,0x26,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x1f,0x00,0x00,0x00,0x1e,0x00,0x0b,0x00,0x2b,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x2c,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    -0x2b,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x2c,0x00,0x00,0x00,
    -0x2d,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x1f,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x2f,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,
    -0x34,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x1f,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,0x3d,0x00,0x00,0x00,
    -0x03,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0x43,0x00,0x00,0x00,
    -0x10,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x44,0x00,0x00,0x00,
    -0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x45,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
    -0x1c,0x00,0x04,0x00,0x46,0x00,0x00,0x00,0x44,0x00,0x00,0x00,
    -0x45,0x00,0x00,0x00,0x1e,0x00,0x05,0x00,0x47,0x00,0x00,0x00,
    -0x43,0x00,0x00,0x00,0x43,0x00,0x00,0x00,0x46,0x00,0x00,0x00,
    -0x1d,0x00,0x03,0x00,0x48,0x00,0x00,0x00,0x47,0x00,0x00,0x00,
    -0x1e,0x00,0x03,0x00,0x49,0x00,0x00,0x00,0x48,0x00,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x4a,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x49,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x4a,0x00,0x00,0x00,
    -0x4b,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x4f,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x43,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,0x57,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x60,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x65,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x74,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
    +0x2e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x21,0x00,0x00,0x00,0x36,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x38,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x19,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x3d,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x21,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x17,0x00,0x04,0x00,0x4d,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x4e,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0x4e,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x50,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x51,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    +0x55,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
    +0x56,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x57,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x56,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x57,0x00,0x00,0x00,0x58,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x5a,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x1e,0x00,0x0b,0x00,
    +0x5f,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x60,0x00,0x00,0x00,
    +0x09,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0x60,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x62,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
    +0x67,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x21,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x4e,0x00,0x00,0x00,0x74,0x00,0x00,0x00,
     0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x75,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0x18,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
     0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
     0x20,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0x87,0x00,0x00,0x00,
    -0x0e,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x08,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
     0x88,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x87,0x00,0x00,0x00,
     0x3b,0x00,0x04,0x00,0x88,0x00,0x00,0x00,0x89,0x00,0x00,0x00,
    -0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x08,0x00,0x00,0x00,
     0x8b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x8c,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,
    +0x8c,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
     0x14,0x00,0x02,0x00,0x98,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
     0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,
     0x20,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0xc0,0x00,0x00,0x00,
    -0x0e,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xc1,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xc1,0x00,0x00,0x00,
     0xc0,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xc2,0x00,0x00,0x00,
     0x0c,0x00,0x00,0x00,0xc1,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
     0xc2,0x00,0x00,0x00,0xc3,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
     0x20,0x00,0x04,0x00,0xc9,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x0e,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0xdf,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0xe1,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
     0x86,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    -0xfe,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
    +0xfe,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
     0xff,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
     0x00,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0xff,0x00,0x00,0x00,
     0x3b,0x00,0x04,0x00,0x00,0x01,0x00,0x00,0x01,0x01,0x00,0x00,
     0x0c,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x08,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x33,0x00,0x06,0x00,
    -0x17,0x00,0x00,0x00,0x09,0x01,0x00,0x00,0x08,0x01,0x00,0x00,
    -0x1a,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x36,0x00,0x05,0x00,
    +0x4d,0x00,0x00,0x00,0x09,0x01,0x00,0x00,0x08,0x01,0x00,0x00,
    +0x50,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x36,0x00,0x05,0x00,
     0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
     0x03,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x76,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x51,0x00,0x00,0x00,0x76,0x00,0x00,0x00,
     0x74,0x00,0x00,0x00,0x75,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x77,0x00,0x00,0x00,0x76,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x7a,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x51,0x00,0x00,0x00,0x7a,0x00,0x00,0x00,
     0x79,0x00,0x00,0x00,0x75,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,0x7a,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x0d,0x01,0x00,0x00,
    -0x19,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x51,0x00,0x00,0x00,0x0d,0x01,0x00,0x00,
    +0x4f,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x0e,0x01,0x00,0x00,0x0d,0x01,0x00,0x00,
    -0x41,0x00,0x06,0x00,0x26,0x00,0x00,0x00,0x10,0x01,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x0e,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,0x11,0x01,0x00,0x00,
    +0x41,0x00,0x06,0x00,0x5a,0x00,0x00,0x00,0x10,0x01,0x00,0x00,
    +0x58,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x0e,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x11,0x01,0x00,0x00,
     0x10,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x12,0x01,0x00,0x00,0x11,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x2f,0x00,0x00,0x00,0x14,0x01,0x00,0x00,0x2d,0x00,0x00,0x00,
    -0x2e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x62,0x00,0x00,0x00,0x14,0x01,0x00,0x00,0x61,0x00,0x00,0x00,
    +0x41,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x15,0x01,0x00,0x00,0x14,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x16,0x01,0x00,0x00,0x12,0x01,0x00,0x00,
    -0x15,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x2f,0x00,0x00,0x00,
    -0x18,0x01,0x00,0x00,0x2d,0x00,0x00,0x00,0x34,0x00,0x00,0x00,
    +0x15,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x62,0x00,0x00,0x00,
    +0x18,0x01,0x00,0x00,0x61,0x00,0x00,0x00,0x67,0x00,0x00,0x00,
     0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x19,0x01,0x00,0x00,
     0x18,0x01,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x1a,0x01,0x00,0x00,0x0e,0x01,0x00,0x00,0x19,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x2f,0x00,0x00,0x00,0x1b,0x01,0x00,0x00,
    -0x2d,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x62,0x00,0x00,0x00,0x1b,0x01,0x00,0x00,
    +0x61,0x00,0x00,0x00,0x36,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,0x1b,0x01,0x00,0x00,
     0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1d,0x01,0x00,0x00,
     0x1a,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x2f,0x00,0x00,0x00,0x1f,0x01,0x00,0x00,0x2d,0x00,0x00,0x00,
    -0x3d,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x62,0x00,0x00,0x00,0x1f,0x01,0x00,0x00,0x61,0x00,0x00,0x00,
    +0x6f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x20,0x01,0x00,0x00,0x1f,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x21,0x01,0x00,0x00,0x0e,0x01,0x00,0x00,
     0x20,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x8c,0x00,0x00,0x00,
    @@ -120217,8 +123905,8 @@ unsigned char mul_mat_vec_id_q4_1_f32_data[] = {
     0x8f,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
     0x48,0x01,0x00,0x00,0x75,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
     0xde,0x00,0x00,0x00,0x90,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x2f,0x00,0x00,0x00,0x95,0x00,0x00,0x00,0x2d,0x00,0x00,0x00,
    -0x24,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x62,0x00,0x00,0x00,0x95,0x00,0x00,0x00,0x61,0x00,0x00,0x00,
    +0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x96,0x00,0x00,0x00,0x95,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x96,0x00,0x00,0x00,
     0x86,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0x98,0x00,0x00,0x00,
    @@ -120245,55 +123933,55 @@ unsigned char mul_mat_vec_id_q4_1_f32_data[] = {
     0xb6,0x00,0x00,0x00,0x16,0x01,0x00,0x00,0xa8,0x00,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x29,0x01,0x00,0x00,
     0xb6,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,0x41,0x00,0x07,0x00,
    -0x4f,0x00,0x00,0x00,0x2a,0x01,0x00,0x00,0x4b,0x00,0x00,0x00,
    -0x24,0x00,0x00,0x00,0x29,0x01,0x00,0x00,0x24,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x43,0x00,0x00,0x00,0x2b,0x01,0x00,0x00,
    -0x2a,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,
    +0x26,0x00,0x00,0x00,0x2a,0x01,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x22,0x00,0x00,0x00,0x29,0x01,0x00,0x00,0x22,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x2b,0x01,0x00,0x00,
    +0x2a,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00,
     0x2c,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,0x41,0x00,0x07,0x00,
    -0x4f,0x00,0x00,0x00,0x30,0x01,0x00,0x00,0x4b,0x00,0x00,0x00,
    -0x24,0x00,0x00,0x00,0x29,0x01,0x00,0x00,0x57,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x43,0x00,0x00,0x00,0x31,0x01,0x00,0x00,
    -0x30,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,
    +0x26,0x00,0x00,0x00,0x30,0x01,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x22,0x00,0x00,0x00,0x29,0x01,0x00,0x00,0x2e,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x31,0x01,0x00,0x00,
    +0x30,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00,
     0x32,0x01,0x00,0x00,0x31,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x60,0x00,0x00,0x00,0x37,0x01,0x00,0x00,0x4b,0x00,0x00,0x00,
    -0x24,0x00,0x00,0x00,0x29,0x01,0x00,0x00,0x38,0x00,0x00,0x00,
    -0xad,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x44,0x00,0x00,0x00,
    +0x38,0x00,0x00,0x00,0x37,0x01,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x22,0x00,0x00,0x00,0x29,0x01,0x00,0x00,0x36,0x00,0x00,0x00,
    +0xad,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x19,0x00,0x00,0x00,
     0x38,0x01,0x00,0x00,0x37,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x39,0x01,0x00,0x00,0x38,0x01,0x00,0x00,
     0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3b,0x01,0x00,0x00,
    -0x39,0x01,0x00,0x00,0x65,0x00,0x00,0x00,0x70,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0x3c,0x01,0x00,0x00,0x3b,0x01,0x00,0x00,
    +0x39,0x01,0x00,0x00,0x3d,0x00,0x00,0x00,0x70,0x00,0x04,0x00,
    +0x08,0x00,0x00,0x00,0x3c,0x01,0x00,0x00,0x3b,0x01,0x00,0x00,
     0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3e,0x01,0x00,0x00,
    -0x39,0x01,0x00,0x00,0x2e,0x00,0x00,0x00,0x70,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0x3f,0x01,0x00,0x00,0x3e,0x01,0x00,0x00,
    -0x50,0x00,0x05,0x00,0x0f,0x00,0x00,0x00,0x40,0x01,0x00,0x00,
    +0x39,0x01,0x00,0x00,0x41,0x00,0x00,0x00,0x70,0x00,0x04,0x00,
    +0x08,0x00,0x00,0x00,0x3f,0x01,0x00,0x00,0x3e,0x01,0x00,0x00,
    +0x50,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0x40,0x01,0x00,0x00,
     0x3c,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,0x8e,0x00,0x05,0x00,
    -0x0f,0x00,0x00,0x00,0x42,0x01,0x00,0x00,0x40,0x01,0x00,0x00,
    -0x2c,0x01,0x00,0x00,0x50,0x00,0x05,0x00,0x0f,0x00,0x00,0x00,
    +0x09,0x00,0x00,0x00,0x42,0x01,0x00,0x00,0x40,0x01,0x00,0x00,
    +0x2c,0x01,0x00,0x00,0x50,0x00,0x05,0x00,0x09,0x00,0x00,0x00,
     0x44,0x01,0x00,0x00,0x32,0x01,0x00,0x00,0x32,0x01,0x00,0x00,
    -0x81,0x00,0x05,0x00,0x0f,0x00,0x00,0x00,0x45,0x01,0x00,0x00,
    +0x81,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0x45,0x01,0x00,0x00,
     0x42,0x01,0x00,0x00,0x44,0x01,0x00,0x00,0x51,0x00,0x05,0x00,
    -0x0e,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0x45,0x01,0x00,0x00,
    +0x08,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0x45,0x01,0x00,0x00,
     0x00,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xc6,0x00,0x00,0x00,0x1d,0x01,0x00,0x00,0xb2,0x00,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,
     0xc6,0x00,0x00,0x00,0xad,0x00,0x00,0x00,0x41,0x00,0x06,0x00,
     0xc9,0x00,0x00,0x00,0xca,0x00,0x00,0x00,0xc3,0x00,0x00,0x00,
    -0x24,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,0xca,0x00,0x00,0x00,
    -0x51,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,0xce,0x00,0x00,0x00,
    +0x22,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x08,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,0xca,0x00,0x00,0x00,
    +0x51,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0xce,0x00,0x00,0x00,
     0x45,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xd4,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,
    -0x45,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xc9,0x00,0x00,0x00,
    -0xd5,0x00,0x00,0x00,0xc3,0x00,0x00,0x00,0x24,0x00,0x00,0x00,
    -0xd4,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,
    +0x1a,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xc9,0x00,0x00,0x00,
    +0xd5,0x00,0x00,0x00,0xc3,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    +0xd4,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,
     0xd6,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0x85,0x00,0x05,0x00,
    -0x0e,0x00,0x00,0x00,0xd7,0x00,0x00,0x00,0xce,0x00,0x00,0x00,
    -0xd6,0x00,0x00,0x00,0x0c,0x00,0x08,0x00,0x0e,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0xd7,0x00,0x00,0x00,0xce,0x00,0x00,0x00,
    +0xd6,0x00,0x00,0x00,0x0c,0x00,0x08,0x00,0x08,0x00,0x00,0x00,
     0xd8,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,
     0xbf,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,0xd7,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0xda,0x00,0x00,0x00,
    -0x8d,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xda,0x00,0x00,0x00,
    +0x8d,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00,
     0xdb,0x00,0x00,0x00,0xda,0x00,0x00,0x00,0xd8,0x00,0x00,0x00,
     0x3e,0x00,0x03,0x00,0x8d,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xde,0x00,0x00,0x00,
    @@ -120317,17 +124005,17 @@ unsigned char mul_mat_vec_id_q4_1_f32_data[] = {
     0x06,0x00,0x00,0x00,0xf1,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,
     0x49,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x8c,0x00,0x00,0x00,
     0xf2,0x00,0x00,0x00,0x89,0x00,0x00,0x00,0xf1,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,
    -0xf2,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,
    +0xf2,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,
     0xf5,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,0x81,0x00,0x05,0x00,
    -0x0e,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,
     0xf3,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0x8d,0x00,0x00,0x00,
     0xf6,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xed,0x00,0x00,0x00,
     0xf8,0x00,0x02,0x00,0xed,0x00,0x00,0x00,0xe0,0x00,0x04,0x00,
     0x9d,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,
     0xf9,0x00,0x02,0x00,0xe5,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
     0xe5,0x00,0x00,0x00,0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xf9,0x00,0x00,0x00,0x49,0x01,0x00,0x00,0x57,0x00,0x00,0x00,
    +0xf9,0x00,0x00,0x00,0x49,0x01,0x00,0x00,0x2e,0x00,0x00,0x00,
     0xf9,0x00,0x02,0x00,0xe2,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
     0xe4,0x00,0x00,0x00,0xaa,0x00,0x05,0x00,0x98,0x00,0x00,0x00,
     0xfb,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,0x75,0x00,0x00,0x00,
    @@ -120337,17 +124025,17 @@ unsigned char mul_mat_vec_id_q4_1_f32_data[] = {
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x04,0x01,0x00,0x00,
     0x21,0x01,0x00,0x00,0x77,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
     0x8c,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0x89,0x00,0x00,0x00,
    -0x24,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,
    +0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,
     0x06,0x01,0x00,0x00,0x05,0x01,0x00,0x00,0x41,0x00,0x06,0x00,
     0xc9,0x00,0x00,0x00,0x07,0x01,0x00,0x00,0x01,0x01,0x00,0x00,
    -0x24,0x00,0x00,0x00,0x04,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x22,0x00,0x00,0x00,0x04,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
     0x07,0x01,0x00,0x00,0x06,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
     0xfd,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xfd,0x00,0x00,0x00,
     0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
     };
     const uint64_t mul_mat_vec_id_q4_1_f32_len = 3920;
     
    -unsigned char mul_mat_vec_id_q4_K_f32_data[] = {
    +unsigned char mul_mat_vec_id_q4_k_f32_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
     0xc7,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00,
     0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x27,0x00,0x00,0x00,
    @@ -121166,7 +124854,7 @@ unsigned char mul_mat_vec_id_q4_K_f32_data[] = {
     0xf8,0x00,0x02,0x00,0x9e,0x03,0x00,0x00,0xfd,0x00,0x01,0x00,
     0x38,0x00,0x01,0x00,
     };
    -const uint64_t mul_mat_vec_id_q4_K_f32_len = 9796;
    +const uint64_t mul_mat_vec_id_q4_k_f32_len = 9796;
     
     unsigned char mul_mat_vec_id_q5_0_f32_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
    @@ -121177,53 +124865,53 @@ unsigned char mul_mat_vec_id_q5_0_f32_data[] = {
     0x2e,0x34,0x35,0x30,0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00,
     0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0f,0x00,0x0e,0x00,
     0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e,
    -0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x2d,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x9c,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x78,0x00,0x00,0x00,
    +0x80,0x00,0x00,0x00,0x89,0x00,0x00,0x00,0x9c,0x00,0x00,0x00,
     0xa0,0x00,0x00,0x00,0xb0,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,
     0x27,0x01,0x00,0x00,0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00,
     0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x19,0x00,0x00,0x00,
    -0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x20,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x48,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x21,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x47,0x00,0x03,0x00,0x21,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x23,0x00,0x00,0x00,
    -0x21,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x2b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x2b,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x2b,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x2b,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x2b,0x00,0x00,0x00,
    -0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x2b,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x2b,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x2b,0x00,0x00,0x00,
    -0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x2b,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    -0x2b,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x46,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x49,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x4a,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x4a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x4a,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x4b,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x16,0x00,0x00,0x00,0x48,0x00,0x04,0x00,
    -0x4c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x4c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x1e,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x1f,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x1f,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x20,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x16,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x21,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x23,0x00,0x00,0x00,
    +0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x23,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x78,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    +0x1c,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x7d,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,
    +0x7e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x7e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
     0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    -0x4c,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x4e,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x4e,0x00,0x00,0x00,0x21,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x9c,0x00,0x00,0x00,
    +0x7e,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x80,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x80,0x00,0x00,0x00,0x21,0x00,0x00,0x00,
    +0x03,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x87,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x87,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x87,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x87,0x00,0x00,0x00,
    +0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x87,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x87,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x87,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x87,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x87,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x87,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x9c,0x00,0x00,0x00,
     0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
     0xa0,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
     0x47,0x00,0x04,0x00,0xad,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    @@ -121249,128 +124937,128 @@ unsigned char mul_mat_vec_id_q5_0_f32_data[] = {
     0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00,
     0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x16,0x00,0x03,0x00,0x0e,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x17,0x00,0x04,0x00,0x0f,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x17,0x00,0x04,0x00,0x17,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x18,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x17,0x00,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x1a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x1b,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x15,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x20,0x00,0x00,0x00,
    -0x1f,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x21,0x00,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x22,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0x22,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,0x24,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x26,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,0x1e,0x00,0x0b,0x00,
    -0x2b,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x2c,0x00,0x00,0x00,
    -0x09,0x00,0x00,0x00,0x2b,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0x2c,0x00,0x00,0x00,0x2d,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,
    -0x04,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x2f,0x00,0x00,0x00,
    -0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x1f,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,0x38,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,
    -0x3d,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x16,0x00,0x03,0x00,
    -0x43,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x15,0x00,0x04,0x00,
    -0x44,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x45,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0x46,0x00,0x00,0x00,
    -0x44,0x00,0x00,0x00,0x45,0x00,0x00,0x00,0x15,0x00,0x04,0x00,
    -0x47,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x48,0x00,0x00,0x00,
    -0x10,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0x49,0x00,0x00,0x00,
    -0x47,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x1e,0x00,0x05,0x00,
    -0x4a,0x00,0x00,0x00,0x43,0x00,0x00,0x00,0x46,0x00,0x00,0x00,
    -0x49,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x4b,0x00,0x00,0x00,
    -0x4a,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x4c,0x00,0x00,0x00,
    -0x4b,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x4d,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x4c,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0x4d,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x52,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x43,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,
    -0x5a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x5b,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x44,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,
    -0x10,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x73,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x7e,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x47,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x83,0x00,0x00,0x00,
    +0x16,0x00,0x03,0x00,0x08,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x17,0x00,0x04,0x00,0x09,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0x18,0x00,0x00,0x00,
    +0x10,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x19,0x00,0x00,0x00,
    +0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x1c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    +0x1a,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x1c,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x1d,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
    +0x1c,0x00,0x04,0x00,0x1e,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,
    +0x1d,0x00,0x00,0x00,0x1e,0x00,0x05,0x00,0x1f,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,
    +0x1d,0x00,0x03,0x00,0x20,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,
    +0x1e,0x00,0x03,0x00,0x21,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x22,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x21,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x22,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x15,0x00,0x04,0x00,
    +0x24,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x24,0x00,0x00,0x00,0x25,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x29,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x24,0x00,0x00,0x00,0x31,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x32,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x19,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x24,0x00,0x00,0x00,
    +0x36,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x24,0x00,0x00,0x00,0x45,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x24,0x00,0x00,0x00,
    +0x55,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x57,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,
     0x0f,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x85,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0x94,0x00,0x00,0x00,0x00,0x00,0x80,0x41,
    -0x3b,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x9c,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x18,0x00,0x00,0x00,
    +0x5e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x67,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,
    +0x00,0x00,0x80,0x41,0x17,0x00,0x04,0x00,0x76,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x77,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x77,0x00,0x00,0x00,0x78,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x79,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    +0x7d,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
    +0x7e,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x7f,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0x80,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x82,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x1e,0x00,0x0b,0x00,
    +0x87,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x88,0x00,0x00,0x00,
    +0x09,0x00,0x00,0x00,0x87,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0x88,0x00,0x00,0x00,0x89,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x8a,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x24,0x00,0x00,0x00,
    +0x8f,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x24,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x77,0x00,0x00,0x00,0x9c,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x77,0x00,0x00,0x00,
     0xa0,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0xad,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x1c,0x00,0x04,0x00,0xae,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,
    +0x1c,0x00,0x04,0x00,0xae,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
     0xad,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xaf,0x00,0x00,0x00,
     0x04,0x00,0x00,0x00,0xae,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
     0xaf,0x00,0x00,0x00,0xb0,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,
     0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xb3,0x00,0x00,0x00,
    -0x04,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x14,0x00,0x02,0x00,
    +0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x14,0x00,0x02,0x00,
     0xbf,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0xce,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    -0xe6,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
    +0xe6,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
     0xe7,0x00,0x00,0x00,0xe6,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
     0xe8,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,
     0x3b,0x00,0x04,0x00,0xe8,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,
     0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xef,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x0c,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0x08,0x01,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x07,0x01,0x00,0x00,
    -0x86,0x00,0x00,0x00,0xad,0x00,0x00,0x00,0x45,0x00,0x00,0x00,
    -0x1d,0x00,0x03,0x00,0x24,0x01,0x00,0x00,0x0e,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0xad,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,
    +0x1d,0x00,0x03,0x00,0x24,0x01,0x00,0x00,0x08,0x00,0x00,0x00,
     0x1e,0x00,0x03,0x00,0x25,0x01,0x00,0x00,0x24,0x01,0x00,0x00,
     0x20,0x00,0x04,0x00,0x26,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
     0x25,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,0x26,0x01,0x00,0x00,
     0x27,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x2e,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x33,0x00,0x06,0x00,0x17,0x00,0x00,0x00,0x2f,0x01,0x00,0x00,
    -0x2e,0x01,0x00,0x00,0x1a,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,
    -0x2c,0x00,0x05,0x00,0x0f,0x00,0x00,0x00,0x90,0x01,0x00,0x00,
    -0x94,0x00,0x00,0x00,0x94,0x00,0x00,0x00,0x36,0x00,0x05,0x00,
    +0x33,0x00,0x06,0x00,0x76,0x00,0x00,0x00,0x2f,0x01,0x00,0x00,
    +0x2e,0x01,0x00,0x00,0x67,0x00,0x00,0x00,0x67,0x00,0x00,0x00,
    +0x2c,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0x90,0x01,0x00,0x00,
    +0x6e,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x36,0x00,0x05,0x00,
     0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
     0x03,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,
    -0x9c,0x00,0x00,0x00,0x85,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x79,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,
    +0x9c,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x9e,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xa1,0x00,0x00,0x00,
    -0xa0,0x00,0x00,0x00,0x85,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x79,0x00,0x00,0x00,0xa1,0x00,0x00,0x00,
    +0xa0,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,0xa1,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x33,0x01,0x00,0x00,
    -0x19,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x79,0x00,0x00,0x00,0x33,0x01,0x00,0x00,
    +0x78,0x00,0x00,0x00,0x67,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x34,0x01,0x00,0x00,0x33,0x01,0x00,0x00,
    -0x41,0x00,0x06,0x00,0x26,0x00,0x00,0x00,0x36,0x01,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x34,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,0x37,0x01,0x00,0x00,
    +0x41,0x00,0x06,0x00,0x82,0x00,0x00,0x00,0x36,0x01,0x00,0x00,
    +0x80,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x34,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x24,0x00,0x00,0x00,0x37,0x01,0x00,0x00,
     0x36,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x38,0x01,0x00,0x00,0x37,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x2f,0x00,0x00,0x00,0x3a,0x01,0x00,0x00,0x2d,0x00,0x00,0x00,
    -0x2e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x8a,0x00,0x00,0x00,0x3a,0x01,0x00,0x00,0x89,0x00,0x00,0x00,
    +0x45,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x3b,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x3c,0x01,0x00,0x00,0x38,0x01,0x00,0x00,
    -0x3b,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x2f,0x00,0x00,0x00,
    -0x3e,0x01,0x00,0x00,0x2d,0x00,0x00,0x00,0x34,0x00,0x00,0x00,
    +0x3b,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x8a,0x00,0x00,0x00,
    +0x3e,0x01,0x00,0x00,0x89,0x00,0x00,0x00,0x8f,0x00,0x00,0x00,
     0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x3f,0x01,0x00,0x00,
     0x3e,0x01,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x40,0x01,0x00,0x00,0x34,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x2f,0x00,0x00,0x00,0x41,0x01,0x00,0x00,
    -0x2d,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x8a,0x00,0x00,0x00,0x41,0x01,0x00,0x00,
    +0x89,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x42,0x01,0x00,0x00,0x41,0x01,0x00,0x00,
     0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x43,0x01,0x00,0x00,
     0x40,0x01,0x00,0x00,0x42,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x2f,0x00,0x00,0x00,0x45,0x01,0x00,0x00,0x2d,0x00,0x00,0x00,
    -0x3d,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x8a,0x00,0x00,0x00,0x45,0x01,0x00,0x00,0x89,0x00,0x00,0x00,
    +0x97,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x46,0x01,0x00,0x00,0x45,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x47,0x01,0x00,0x00,0x34,0x01,0x00,0x00,
     0x46,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0xb3,0x00,0x00,0x00,
    @@ -121378,10 +125066,10 @@ unsigned char mul_mat_vec_id_q5_0_f32_data[] = {
     0x3e,0x00,0x03,0x00,0xb4,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,
     0xf9,0x00,0x02,0x00,0xb6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
     0xb6,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
    -0x8d,0x01,0x00,0x00,0x85,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
    +0x8d,0x01,0x00,0x00,0x5e,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
     0x04,0x01,0x00,0x00,0xb7,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x2f,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,0x2d,0x00,0x00,0x00,
    -0x24,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x8a,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,0x89,0x00,0x00,0x00,
    +0x25,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0xbd,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xbe,0x00,0x00,0x00,0xbd,0x00,0x00,0x00,
     0xad,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0xbf,0x00,0x00,0x00,
    @@ -121392,7 +125080,7 @@ unsigned char mul_mat_vec_id_q5_0_f32_data[] = {
     0xb7,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xc3,0x00,0x00,0x00,0x8d,0x01,0x00,0x00,0xad,0x00,0x00,0x00,
     0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,
    -0x45,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x1a,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,0xc3,0x00,0x00,0x00,
     0xc5,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xcb,0x00,0x00,0x00,0x9e,0x00,0x00,0x00,0xbd,0x00,0x00,0x00,
    @@ -121402,99 +125090,99 @@ unsigned char mul_mat_vec_id_q5_0_f32_data[] = {
     0xce,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xd2,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,0xce,0x00,0x00,0x00,
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,
    -0xd2,0x00,0x00,0x00,0x45,0x00,0x00,0x00,0x82,0x00,0x05,0x00,
    +0xd2,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x82,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xd8,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,
     0xd2,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xdc,0x00,0x00,0x00,0x3c,0x01,0x00,0x00,0xce,0x00,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x50,0x01,0x00,0x00,
     0xdc,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x41,0x00,0x07,0x00,
    -0x52,0x00,0x00,0x00,0x51,0x01,0x00,0x00,0x4e,0x00,0x00,0x00,
    -0x24,0x00,0x00,0x00,0x50,0x01,0x00,0x00,0x24,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x43,0x00,0x00,0x00,0x52,0x01,0x00,0x00,
    -0x51,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,
    +0x29,0x00,0x00,0x00,0x51,0x01,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x25,0x00,0x00,0x00,0x50,0x01,0x00,0x00,0x25,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x52,0x01,0x00,0x00,
    +0x51,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00,
     0x53,0x01,0x00,0x00,0x52,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x5b,0x00,0x00,0x00,0x57,0x01,0x00,0x00,0x4e,0x00,0x00,0x00,
    -0x24,0x00,0x00,0x00,0x50,0x01,0x00,0x00,0x5a,0x00,0x00,0x00,
    -0x5a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x44,0x00,0x00,0x00,
    +0x32,0x00,0x00,0x00,0x57,0x01,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x25,0x00,0x00,0x00,0x50,0x01,0x00,0x00,0x31,0x00,0x00,0x00,
    +0x31,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x19,0x00,0x00,0x00,
     0x58,0x01,0x00,0x00,0x57,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x59,0x01,0x00,0x00,0x58,0x01,0x00,0x00,
     0xc4,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5a,0x01,0x00,0x00,
    -0x59,0x01,0x00,0x00,0x5f,0x00,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x5b,0x00,0x00,0x00,0x5e,0x01,0x00,0x00,0x4e,0x00,0x00,0x00,
    -0x24,0x00,0x00,0x00,0x50,0x01,0x00,0x00,0x5a,0x00,0x00,0x00,
    -0x24,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x44,0x00,0x00,0x00,
    +0x59,0x01,0x00,0x00,0x36,0x00,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x32,0x00,0x00,0x00,0x5e,0x01,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x25,0x00,0x00,0x00,0x50,0x01,0x00,0x00,0x31,0x00,0x00,0x00,
    +0x25,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x19,0x00,0x00,0x00,
     0x5f,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x60,0x01,0x00,0x00,0x5f,0x01,0x00,0x00,
     0xc5,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x61,0x01,0x00,0x00,
     0x5a,0x01,0x00,0x00,0x60,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x64,0x01,0x00,0x00,0x61,0x01,0x00,0x00,
     0xd3,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x65,0x01,0x00,0x00,0x64,0x01,0x00,0x00,0x2e,0x00,0x00,0x00,
    +0x65,0x01,0x00,0x00,0x64,0x01,0x00,0x00,0x45,0x00,0x00,0x00,
     0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x66,0x01,0x00,0x00,
    -0x65,0x01,0x00,0x00,0x48,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,
    -0x1f,0x00,0x00,0x00,0x67,0x01,0x00,0x00,0x66,0x01,0x00,0x00,
    +0x65,0x01,0x00,0x00,0x1d,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,
    +0x24,0x00,0x00,0x00,0x67,0x01,0x00,0x00,0x66,0x01,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6a,0x01,0x00,0x00,
    -0xd3,0x00,0x00,0x00,0x73,0x00,0x00,0x00,0xc2,0x00,0x05,0x00,
    +0xd3,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0xc2,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x6b,0x01,0x00,0x00,0x61,0x01,0x00,0x00,
     0x6a,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x6c,0x01,0x00,0x00,0x6b,0x01,0x00,0x00,0x48,0x00,0x00,0x00,
    -0x7c,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,0x6d,0x01,0x00,0x00,
    -0x6c,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x7e,0x00,0x00,0x00,
    -0x73,0x01,0x00,0x00,0x4e,0x00,0x00,0x00,0x24,0x00,0x00,0x00,
    -0x50,0x01,0x00,0x00,0x38,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x47,0x00,0x00,0x00,0x74,0x01,0x00,0x00,
    +0x6c,0x01,0x00,0x00,0x6b,0x01,0x00,0x00,0x1d,0x00,0x00,0x00,
    +0x7c,0x00,0x04,0x00,0x24,0x00,0x00,0x00,0x6d,0x01,0x00,0x00,
    +0x6c,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x57,0x00,0x00,0x00,
    +0x73,0x01,0x00,0x00,0x23,0x00,0x00,0x00,0x25,0x00,0x00,0x00,
    +0x50,0x01,0x00,0x00,0x55,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x1c,0x00,0x00,0x00,0x74,0x01,0x00,0x00,
     0x73,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x75,0x01,0x00,0x00,0x74,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x77,0x01,0x00,0x00,0x75,0x01,0x00,0x00,
    -0x83,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x5c,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x7a,0x01,0x00,0x00,0x67,0x01,0x00,0x00,0xc5,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x7b,0x01,0x00,0x00,0x77,0x01,0x00,0x00,
    -0x7a,0x01,0x00,0x00,0x70,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,
    +0x7a,0x01,0x00,0x00,0x70,0x00,0x04,0x00,0x08,0x00,0x00,0x00,
     0x7c,0x01,0x00,0x00,0x7b,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x7e,0x01,0x00,0x00,0x75,0x01,0x00,0x00,
    -0x2e,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x45,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x81,0x01,0x00,0x00,0x6d,0x01,0x00,0x00,0xc5,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x82,0x01,0x00,0x00,0x7e,0x01,0x00,0x00,
    -0x81,0x01,0x00,0x00,0x70,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,
    +0x81,0x01,0x00,0x00,0x70,0x00,0x04,0x00,0x08,0x00,0x00,0x00,
     0x83,0x01,0x00,0x00,0x82,0x01,0x00,0x00,0x50,0x00,0x05,0x00,
    -0x0f,0x00,0x00,0x00,0x84,0x01,0x00,0x00,0x7c,0x01,0x00,0x00,
    -0x83,0x01,0x00,0x00,0x83,0x00,0x05,0x00,0x0f,0x00,0x00,0x00,
    +0x09,0x00,0x00,0x00,0x84,0x01,0x00,0x00,0x7c,0x01,0x00,0x00,
    +0x83,0x01,0x00,0x00,0x83,0x00,0x05,0x00,0x09,0x00,0x00,0x00,
     0x86,0x01,0x00,0x00,0x84,0x01,0x00,0x00,0x90,0x01,0x00,0x00,
    -0x8e,0x00,0x05,0x00,0x0f,0x00,0x00,0x00,0x88,0x01,0x00,0x00,
    +0x8e,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0x88,0x01,0x00,0x00,
     0x86,0x01,0x00,0x00,0x53,0x01,0x00,0x00,0x51,0x00,0x05,0x00,
    -0x0e,0x00,0x00,0x00,0xe5,0x00,0x00,0x00,0x88,0x01,0x00,0x00,
    +0x08,0x00,0x00,0x00,0xe5,0x00,0x00,0x00,0x88,0x01,0x00,0x00,
     0x00,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xec,0x00,0x00,0x00,0x43,0x01,0x00,0x00,0xd8,0x00,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xee,0x00,0x00,0x00,
     0xec,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,0x41,0x00,0x06,0x00,
     0xef,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,
    -0x24,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0xf1,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,
    -0x51,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,
    +0x25,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x08,0x00,0x00,0x00,0xf1,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,
    +0x51,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,
     0x88,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,0xee,0x00,0x00,0x00,
    -0x48,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xef,0x00,0x00,0x00,
    -0xfb,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,0x24,0x00,0x00,0x00,
    -0xfa,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,
    +0x1d,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xef,0x00,0x00,0x00,
    +0xfb,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,0x25,0x00,0x00,0x00,
    +0xfa,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,
     0xfc,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0x85,0x00,0x05,0x00,
    -0x0e,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,
    -0xfc,0x00,0x00,0x00,0x0c,0x00,0x08,0x00,0x0e,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,
    +0xfc,0x00,0x00,0x00,0x0c,0x00,0x08,0x00,0x08,0x00,0x00,0x00,
     0xfe,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,
     0xe5,0x00,0x00,0x00,0xf1,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0x00,0x01,0x00,0x00,
    -0xb4,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x00,0x01,0x00,0x00,
    +0xb4,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00,
     0x01,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,
     0x3e,0x00,0x03,0x00,0xb4,0x00,0x00,0x00,0x01,0x01,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x04,0x01,0x00,0x00,
    -0x8d,0x01,0x00,0x00,0x45,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x8d,0x01,0x00,0x00,0x1a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
     0xb6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xb8,0x00,0x00,0x00,
    -0xe0,0x00,0x04,0x00,0x45,0x00,0x00,0x00,0x45,0x00,0x00,0x00,
    +0xe0,0x00,0x04,0x00,0x1a,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,
     0x05,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x08,0x01,0x00,0x00,
     0xf8,0x00,0x02,0x00,0x08,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
     0x06,0x00,0x00,0x00,0x8e,0x01,0x00,0x00,0x07,0x01,0x00,0x00,
     0xb8,0x00,0x00,0x00,0x1f,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,
     0xac,0x00,0x05,0x00,0xbf,0x00,0x00,0x00,0x0e,0x01,0x00,0x00,
    -0x8e,0x01,0x00,0x00,0x85,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x8e,0x01,0x00,0x00,0x5e,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
     0x0a,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
     0xfa,0x00,0x04,0x00,0x0e,0x01,0x00,0x00,0x09,0x01,0x00,0x00,
     0x0a,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x09,0x01,0x00,0x00,
    @@ -121506,30 +125194,30 @@ unsigned char mul_mat_vec_id_q5_0_f32_data[] = {
     0x06,0x00,0x00,0x00,0x17,0x01,0x00,0x00,0xa2,0x00,0x00,0x00,
     0x8e,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0xb3,0x00,0x00,0x00,
     0x18,0x01,0x00,0x00,0xb0,0x00,0x00,0x00,0x17,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0x19,0x01,0x00,0x00,
    -0x18,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x19,0x01,0x00,0x00,
    +0x18,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,
     0x1b,0x01,0x00,0x00,0xb4,0x00,0x00,0x00,0x81,0x00,0x05,0x00,
    -0x0e,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,0x1b,0x01,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,0x1b,0x01,0x00,0x00,
     0x19,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xb4,0x00,0x00,0x00,
     0x1c,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x13,0x01,0x00,0x00,
     0xf8,0x00,0x02,0x00,0x13,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,
    -0x45,0x00,0x00,0x00,0x45,0x00,0x00,0x00,0x05,0x01,0x00,0x00,
    +0x1a,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x05,0x01,0x00,0x00,
     0xf9,0x00,0x02,0x00,0x0b,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
     0x0b,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x1f,0x01,0x00,0x00,0x8e,0x01,0x00,0x00,0x5a,0x00,0x00,0x00,
    +0x1f,0x01,0x00,0x00,0x8e,0x01,0x00,0x00,0x31,0x00,0x00,0x00,
     0xf9,0x00,0x02,0x00,0x08,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
     0x0a,0x01,0x00,0x00,0xaa,0x00,0x05,0x00,0xbf,0x00,0x00,0x00,
    -0x21,0x01,0x00,0x00,0xa2,0x00,0x00,0x00,0x85,0x00,0x00,0x00,
    +0x21,0x01,0x00,0x00,0xa2,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,
     0xf7,0x00,0x03,0x00,0x23,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
     0xfa,0x00,0x04,0x00,0x21,0x01,0x00,0x00,0x22,0x01,0x00,0x00,
     0x23,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x22,0x01,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2a,0x01,0x00,0x00,
     0x47,0x01,0x00,0x00,0x9e,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
     0xb3,0x00,0x00,0x00,0x2b,0x01,0x00,0x00,0xb0,0x00,0x00,0x00,
    -0x24,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,
    +0x25,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,
     0x2c,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,0x41,0x00,0x06,0x00,
     0xef,0x00,0x00,0x00,0x2d,0x01,0x00,0x00,0x27,0x01,0x00,0x00,
    -0x24,0x00,0x00,0x00,0x2a,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x25,0x00,0x00,0x00,0x2a,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
     0x2d,0x01,0x00,0x00,0x2c,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
     0x23,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x23,0x01,0x00,0x00,
     0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
    @@ -121545,53 +125233,53 @@ unsigned char mul_mat_vec_id_q5_1_f32_data[] = {
     0x2e,0x34,0x35,0x30,0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00,
     0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0f,0x00,0x0e,0x00,
     0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e,
    -0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x2d,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0x96,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x73,0x00,0x00,0x00,
    +0x7b,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x96,0x00,0x00,0x00,
     0x9a,0x00,0x00,0x00,0xaa,0x00,0x00,0x00,0xe4,0x00,0x00,0x00,
     0x22,0x01,0x00,0x00,0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00,
     0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x19,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x1c,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x1c,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x1c,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x1d,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x04,0x00,
    +0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    +0x1e,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x20,0x00,0x00,0x00,0x21,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x73,0x00,0x00,0x00,
     0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x20,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x48,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x21,0x00,0x00,0x00,
    +0x78,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x48,0x00,0x04,0x00,0x79,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x79,0x00,0x00,0x00,
     0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x47,0x00,0x03,0x00,0x21,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x23,0x00,0x00,0x00,
    +0x47,0x00,0x03,0x00,0x79,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x7b,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x7b,0x00,0x00,0x00,
     0x21,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x2b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x2b,0x00,0x00,0x00,
    +0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x82,0x00,0x00,0x00,
     0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x2b,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x82,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
     0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x2b,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x2b,0x00,0x00,0x00,
    +0x82,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x82,0x00,0x00,0x00,
     0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x2b,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x82,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
     0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x2b,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x2b,0x00,0x00,0x00,
    +0x82,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x82,0x00,0x00,0x00,
     0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x2b,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x82,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
     0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    -0x2b,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x46,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x47,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x47,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x47,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x47,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x48,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    -0x48,0x00,0x04,0x00,0x49,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x49,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x47,0x00,0x03,0x00,0x49,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x4b,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x4b,0x00,0x00,0x00,
    -0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x82,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
     0x96,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,
     0x47,0x00,0x04,0x00,0x9a,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
     0x1b,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xa7,0x00,0x00,0x00,
    @@ -121617,121 +125305,121 @@ unsigned char mul_mat_vec_id_q5_1_f32_data[] = {
     0x19,0x00,0x00,0x00,0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00,
     0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
     0x15,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0x0e,0x00,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x17,0x00,0x04,0x00,0x0f,0x00,0x00,0x00,
    -0x0e,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x17,0x00,0x04,0x00,
    -0x17,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x17,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x18,0x00,0x00,0x00,
    -0x19,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    -0x20,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
    -0x21,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x22,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x21,0x00,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0x22,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,
    -0x24,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x26,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,
    -0x1e,0x00,0x0b,0x00,0x2b,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0x08,0x00,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x17,0x00,0x04,0x00,0x09,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x16,0x00,0x03,0x00,
    +0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x15,0x00,0x04,0x00,
    +0x19,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,
    +0x10,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,
    +0x19,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x1e,0x00,0x06,0x00,
    +0x1c,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    +0x1d,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
    +0x1e,0x00,0x00,0x00,0x1d,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x1f,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x21,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x26,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
    +0x2e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x21,0x00,0x00,0x00,0x36,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x37,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
    +0x40,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x46,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x50,0x00,0x00,0x00,
    +0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x52,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x57,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x59,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x62,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x17,0x00,0x04,0x00,
    +0x71,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x72,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x71,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x72,0x00,0x00,0x00,
    +0x73,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x74,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x1d,0x00,0x03,0x00,0x78,0x00,0x00,0x00,0x21,0x00,0x00,0x00,
    +0x1e,0x00,0x03,0x00,0x79,0x00,0x00,0x00,0x78,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x7a,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x79,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x7a,0x00,0x00,0x00,
    +0x7b,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x7d,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x21,0x00,0x00,0x00,
    +0x1e,0x00,0x0b,0x00,0x82,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
     0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
     0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
     0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x2c,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x2b,0x00,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0x2c,0x00,0x00,0x00,0x2d,0x00,0x00,0x00,
    -0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,
    -0x2e,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x2f,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,0x34,0x00,0x00,0x00,
    -0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,
    -0x38,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x1f,0x00,0x00,0x00,0x3d,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
    -0x16,0x00,0x03,0x00,0x43,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
    -0x15,0x00,0x04,0x00,0x44,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x45,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,
    -0x46,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x45,0x00,0x00,0x00,
    -0x1e,0x00,0x06,0x00,0x47,0x00,0x00,0x00,0x43,0x00,0x00,0x00,
    -0x43,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x46,0x00,0x00,0x00,
    -0x1d,0x00,0x03,0x00,0x48,0x00,0x00,0x00,0x47,0x00,0x00,0x00,
    -0x1e,0x00,0x03,0x00,0x49,0x00,0x00,0x00,0x48,0x00,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x4a,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x49,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x4a,0x00,0x00,0x00,
    -0x4b,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x4f,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x43,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,0x57,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x5f,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x78,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x44,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x7d,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x96,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x18,0x00,0x00,0x00,
    +0x83,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x82,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x83,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    +0x09,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x85,0x00,0x00,0x00,
    +0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x21,0x00,0x00,0x00,0x8a,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x72,0x00,0x00,0x00,0x96,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x72,0x00,0x00,0x00,
     0x9a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x1c,0x00,0x04,0x00,0xa8,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,
    +0x1c,0x00,0x04,0x00,0xa8,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
     0xa7,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xa9,0x00,0x00,0x00,
     0x04,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
     0xa9,0x00,0x00,0x00,0xaa,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0xac,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xac,0x00,0x00,0x00,
     0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xad,0x00,0x00,0x00,
    -0x04,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x14,0x00,0x02,0x00,
    +0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x14,0x00,0x02,0x00,
     0xb9,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0xbe,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x1d,0x00,0x03,0x00,0xe1,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,
    +0x1d,0x00,0x03,0x00,0xe1,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
     0x1e,0x00,0x03,0x00,0xe2,0x00,0x00,0x00,0xe1,0x00,0x00,0x00,
     0x20,0x00,0x04,0x00,0xe3,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
     0xe2,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xe3,0x00,0x00,0x00,
     0xe4,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0xea,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,
    +0xea,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
     0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x00,0x01,0x00,0x00,
     0x08,0x01,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x02,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,
     0xbe,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x1f,0x01,0x00,0x00,
    -0x0e,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x20,0x01,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x20,0x01,0x00,0x00,
     0x1f,0x01,0x00,0x00,0x20,0x00,0x04,0x00,0x21,0x01,0x00,0x00,
     0x0c,0x00,0x00,0x00,0x20,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,
     0x21,0x01,0x00,0x00,0x22,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
     0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x29,0x01,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x33,0x00,0x06,0x00,0x17,0x00,0x00,0x00,
    -0x2a,0x01,0x00,0x00,0x29,0x01,0x00,0x00,0x1a,0x00,0x00,0x00,
    -0x1a,0x00,0x00,0x00,0x36,0x00,0x05,0x00,0x02,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x33,0x00,0x06,0x00,0x71,0x00,0x00,0x00,
    +0x2a,0x01,0x00,0x00,0x29,0x01,0x00,0x00,0x62,0x00,0x00,0x00,
    +0x62,0x00,0x00,0x00,0x36,0x00,0x05,0x00,0x02,0x00,0x00,0x00,
     0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
     0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x1b,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x96,0x00,0x00,0x00,
    -0x7f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x74,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x96,0x00,0x00,0x00,
    +0x59,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x98,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x1b,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0x7f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x74,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,
    +0x59,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x9c,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x1b,0x00,0x00,0x00,0x2e,0x01,0x00,0x00,0x19,0x00,0x00,0x00,
    -0x1a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x74,0x00,0x00,0x00,0x2e,0x01,0x00,0x00,0x73,0x00,0x00,0x00,
    +0x62,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x2f,0x01,0x00,0x00,0x2e,0x01,0x00,0x00,0x41,0x00,0x06,0x00,
    -0x26,0x00,0x00,0x00,0x31,0x01,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x24,0x00,0x00,0x00,0x2f,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x1f,0x00,0x00,0x00,0x32,0x01,0x00,0x00,0x31,0x01,0x00,0x00,
    +0x7d,0x00,0x00,0x00,0x31,0x01,0x00,0x00,0x7b,0x00,0x00,0x00,
    +0x22,0x00,0x00,0x00,0x2f,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x21,0x00,0x00,0x00,0x32,0x01,0x00,0x00,0x31,0x01,0x00,0x00,
     0x7c,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x33,0x01,0x00,0x00,
    -0x32,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x2f,0x00,0x00,0x00,
    -0x35,0x01,0x00,0x00,0x2d,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,
    +0x32,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x85,0x00,0x00,0x00,
    +0x35,0x01,0x00,0x00,0x84,0x00,0x00,0x00,0x40,0x00,0x00,0x00,
     0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x36,0x01,0x00,0x00,
     0x35,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x37,0x01,0x00,0x00,0x33,0x01,0x00,0x00,0x36,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x2f,0x00,0x00,0x00,0x39,0x01,0x00,0x00,
    -0x2d,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x85,0x00,0x00,0x00,0x39,0x01,0x00,0x00,
    +0x84,0x00,0x00,0x00,0x8a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x3a,0x01,0x00,0x00,0x39,0x01,0x00,0x00,
     0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3b,0x01,0x00,0x00,
     0x2f,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x2f,0x00,0x00,0x00,0x3c,0x01,0x00,0x00,0x2d,0x00,0x00,0x00,
    -0x38,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x85,0x00,0x00,0x00,0x3c,0x01,0x00,0x00,0x84,0x00,0x00,0x00,
    +0x36,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x3d,0x01,0x00,0x00,0x3c,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x3e,0x01,0x00,0x00,0x3b,0x01,0x00,0x00,
    -0x3d,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x2f,0x00,0x00,0x00,
    -0x40,0x01,0x00,0x00,0x2d,0x00,0x00,0x00,0x3d,0x00,0x00,0x00,
    +0x3d,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x85,0x00,0x00,0x00,
    +0x40,0x01,0x00,0x00,0x84,0x00,0x00,0x00,0x50,0x00,0x00,0x00,
     0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x41,0x01,0x00,0x00,
     0x40,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x42,0x01,0x00,0x00,0x2f,0x01,0x00,0x00,0x41,0x01,0x00,0x00,
    @@ -121740,9 +125428,9 @@ unsigned char mul_mat_vec_id_q5_1_f32_data[] = {
     0xae,0x00,0x00,0x00,0xac,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
     0xb0,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xb0,0x00,0x00,0x00,
     0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x87,0x01,0x00,0x00,
    -0x7f,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0xff,0x00,0x00,0x00,
    -0xb1,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x2f,0x00,0x00,0x00,
    -0xb6,0x00,0x00,0x00,0x2d,0x00,0x00,0x00,0x24,0x00,0x00,0x00,
    +0x59,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0xff,0x00,0x00,0x00,
    +0xb1,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x85,0x00,0x00,0x00,
    +0xb6,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
     0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,
     0xb6,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xb8,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,
    @@ -121769,78 +125457,78 @@ unsigned char mul_mat_vec_id_q5_1_f32_data[] = {
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd7,0x00,0x00,0x00,
     0x37,0x01,0x00,0x00,0xc9,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x4c,0x01,0x00,0x00,0xd7,0x00,0x00,0x00,
    -0xca,0x00,0x00,0x00,0x41,0x00,0x07,0x00,0x4f,0x00,0x00,0x00,
    -0x4d,0x01,0x00,0x00,0x4b,0x00,0x00,0x00,0x24,0x00,0x00,0x00,
    -0x4c,0x01,0x00,0x00,0x24,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x43,0x00,0x00,0x00,0x4e,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,
    -0x73,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0x4f,0x01,0x00,0x00,
    -0x4e,0x01,0x00,0x00,0x41,0x00,0x07,0x00,0x4f,0x00,0x00,0x00,
    -0x53,0x01,0x00,0x00,0x4b,0x00,0x00,0x00,0x24,0x00,0x00,0x00,
    -0x4c,0x01,0x00,0x00,0x57,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x43,0x00,0x00,0x00,0x54,0x01,0x00,0x00,0x53,0x01,0x00,0x00,
    -0x73,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0x55,0x01,0x00,0x00,
    -0x54,0x01,0x00,0x00,0x41,0x00,0x07,0x00,0x5f,0x00,0x00,0x00,
    -0x59,0x01,0x00,0x00,0x4b,0x00,0x00,0x00,0x24,0x00,0x00,0x00,
    -0x4c,0x01,0x00,0x00,0x38,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xca,0x00,0x00,0x00,0x41,0x00,0x07,0x00,0x26,0x00,0x00,0x00,
    +0x4d,0x01,0x00,0x00,0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    +0x4c,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x18,0x00,0x00,0x00,0x4e,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,
    +0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x4f,0x01,0x00,0x00,
    +0x4e,0x01,0x00,0x00,0x41,0x00,0x07,0x00,0x26,0x00,0x00,0x00,
    +0x53,0x01,0x00,0x00,0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    +0x4c,0x01,0x00,0x00,0x2e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x18,0x00,0x00,0x00,0x54,0x01,0x00,0x00,0x53,0x01,0x00,0x00,
    +0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x55,0x01,0x00,0x00,
    +0x54,0x01,0x00,0x00,0x41,0x00,0x07,0x00,0x37,0x00,0x00,0x00,
    +0x59,0x01,0x00,0x00,0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    +0x4c,0x01,0x00,0x00,0x36,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x5a,0x01,0x00,0x00,0x59,0x01,0x00,0x00,
     0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,
     0x5a,0x01,0x00,0x00,0xce,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x5e,0x01,0x00,0x00,0x5d,0x01,0x00,0x00,
    -0x2e,0x00,0x00,0x00,0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x5f,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,0x45,0x00,0x00,0x00,
    -0x7c,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,0x60,0x01,0x00,0x00,
    +0x40,0x00,0x00,0x00,0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x5f,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,0x1a,0x00,0x00,0x00,
    +0x7c,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x60,0x01,0x00,0x00,
     0x5f,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x63,0x01,0x00,0x00,0xce,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    +0x63,0x01,0x00,0x00,0xce,0x00,0x00,0x00,0x46,0x00,0x00,0x00,
     0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x64,0x01,0x00,0x00,
     0x5a,0x01,0x00,0x00,0x63,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x65,0x01,0x00,0x00,0x64,0x01,0x00,0x00,
    -0x45,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,
    +0x1a,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
     0x66,0x01,0x00,0x00,0x65,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x78,0x00,0x00,0x00,0x6c,0x01,0x00,0x00,0x4b,0x00,0x00,0x00,
    -0x24,0x00,0x00,0x00,0x4c,0x01,0x00,0x00,0x3d,0x00,0x00,0x00,
    -0xce,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x44,0x00,0x00,0x00,
    +0x52,0x00,0x00,0x00,0x6c,0x01,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x22,0x00,0x00,0x00,0x4c,0x01,0x00,0x00,0x50,0x00,0x00,0x00,
    +0xce,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x19,0x00,0x00,0x00,
     0x6d,0x01,0x00,0x00,0x6c,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x6e,0x01,0x00,0x00,0x6d,0x01,0x00,0x00,
     0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x70,0x01,0x00,0x00,
    -0x6e,0x01,0x00,0x00,0x7d,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,
    +0x6e,0x01,0x00,0x00,0x57,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x73,0x01,0x00,0x00,0x60,0x01,0x00,0x00,
     0xc5,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x74,0x01,0x00,0x00,
     0x70,0x01,0x00,0x00,0x73,0x01,0x00,0x00,0x70,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0x75,0x01,0x00,0x00,0x74,0x01,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x75,0x01,0x00,0x00,0x74,0x01,0x00,0x00,
     0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x77,0x01,0x00,0x00,
    -0x6e,0x01,0x00,0x00,0x2e,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,
    +0x6e,0x01,0x00,0x00,0x40,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x7a,0x01,0x00,0x00,0x66,0x01,0x00,0x00,
     0xc5,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7b,0x01,0x00,0x00,
     0x77,0x01,0x00,0x00,0x7a,0x01,0x00,0x00,0x70,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0x7c,0x01,0x00,0x00,0x7b,0x01,0x00,0x00,
    -0x50,0x00,0x05,0x00,0x0f,0x00,0x00,0x00,0x7d,0x01,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x7c,0x01,0x00,0x00,0x7b,0x01,0x00,0x00,
    +0x50,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0x7d,0x01,0x00,0x00,
     0x75,0x01,0x00,0x00,0x7c,0x01,0x00,0x00,0x8e,0x00,0x05,0x00,
    -0x0f,0x00,0x00,0x00,0x7f,0x01,0x00,0x00,0x7d,0x01,0x00,0x00,
    -0x4f,0x01,0x00,0x00,0x50,0x00,0x05,0x00,0x0f,0x00,0x00,0x00,
    +0x09,0x00,0x00,0x00,0x7f,0x01,0x00,0x00,0x7d,0x01,0x00,0x00,
    +0x4f,0x01,0x00,0x00,0x50,0x00,0x05,0x00,0x09,0x00,0x00,0x00,
     0x81,0x01,0x00,0x00,0x55,0x01,0x00,0x00,0x55,0x01,0x00,0x00,
    -0x81,0x00,0x05,0x00,0x0f,0x00,0x00,0x00,0x82,0x01,0x00,0x00,
    +0x81,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0x82,0x01,0x00,0x00,
     0x7f,0x01,0x00,0x00,0x81,0x01,0x00,0x00,0x51,0x00,0x05,0x00,
    -0x0e,0x00,0x00,0x00,0xe0,0x00,0x00,0x00,0x82,0x01,0x00,0x00,
    +0x08,0x00,0x00,0x00,0xe0,0x00,0x00,0x00,0x82,0x01,0x00,0x00,
     0x00,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xe7,0x00,0x00,0x00,0x3e,0x01,0x00,0x00,0xd3,0x00,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,
     0xe7,0x00,0x00,0x00,0xce,0x00,0x00,0x00,0x41,0x00,0x06,0x00,
     0xea,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0xe4,0x00,0x00,0x00,
    -0x24,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0xec,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,
    -0x51,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,0xef,0x00,0x00,0x00,
    +0x22,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x08,0x00,0x00,0x00,0xec,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,
    +0x51,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0xef,0x00,0x00,0x00,
     0x82,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,
    -0x45,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xea,0x00,0x00,0x00,
    -0xf6,0x00,0x00,0x00,0xe4,0x00,0x00,0x00,0x24,0x00,0x00,0x00,
    -0xf5,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,
    +0x1a,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xea,0x00,0x00,0x00,
    +0xf6,0x00,0x00,0x00,0xe4,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    +0xf5,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,
     0xf7,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,0x85,0x00,0x05,0x00,
    -0x0e,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0xef,0x00,0x00,0x00,
    -0xf7,0x00,0x00,0x00,0x0c,0x00,0x08,0x00,0x0e,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0xef,0x00,0x00,0x00,
    +0xf7,0x00,0x00,0x00,0x0c,0x00,0x08,0x00,0x08,0x00,0x00,0x00,
     0xf9,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,
     0xe0,0x00,0x00,0x00,0xec,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
    -0xae,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
    +0xae,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00,
     0xfc,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0xf9,0x00,0x00,0x00,
     0x3e,0x00,0x03,0x00,0xae,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xff,0x00,0x00,0x00,
    @@ -121852,7 +125540,7 @@ unsigned char mul_mat_vec_id_q5_1_f32_data[] = {
     0x06,0x00,0x00,0x00,0x88,0x01,0x00,0x00,0x02,0x01,0x00,0x00,
     0xb2,0x00,0x00,0x00,0x1a,0x01,0x00,0x00,0x06,0x01,0x00,0x00,
     0xac,0x00,0x05,0x00,0xb9,0x00,0x00,0x00,0x09,0x01,0x00,0x00,
    -0x88,0x01,0x00,0x00,0x7f,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0x88,0x01,0x00,0x00,0x59,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
     0x05,0x01,0x00,0x00,0x06,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
     0xfa,0x00,0x04,0x00,0x09,0x01,0x00,0x00,0x04,0x01,0x00,0x00,
     0x05,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x04,0x01,0x00,0x00,
    @@ -121864,37 +125552,37 @@ unsigned char mul_mat_vec_id_q5_1_f32_data[] = {
     0x06,0x00,0x00,0x00,0x12,0x01,0x00,0x00,0x9c,0x00,0x00,0x00,
     0x88,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0xad,0x00,0x00,0x00,
     0x13,0x01,0x00,0x00,0xaa,0x00,0x00,0x00,0x12,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0x14,0x01,0x00,0x00,
    -0x13,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x14,0x01,0x00,0x00,
    +0x13,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,
     0x16,0x01,0x00,0x00,0xae,0x00,0x00,0x00,0x81,0x00,0x05,0x00,
    -0x0e,0x00,0x00,0x00,0x17,0x01,0x00,0x00,0x16,0x01,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x17,0x01,0x00,0x00,0x16,0x01,0x00,0x00,
     0x14,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xae,0x00,0x00,0x00,
     0x17,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x0e,0x01,0x00,0x00,
     0xf8,0x00,0x02,0x00,0x0e,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,
     0xbe,0x00,0x00,0x00,0xbe,0x00,0x00,0x00,0x00,0x01,0x00,0x00,
     0xf9,0x00,0x02,0x00,0x06,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
     0x06,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x1a,0x01,0x00,0x00,0x88,0x01,0x00,0x00,0x57,0x00,0x00,0x00,
    +0x1a,0x01,0x00,0x00,0x88,0x01,0x00,0x00,0x2e,0x00,0x00,0x00,
     0xf9,0x00,0x02,0x00,0x03,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
     0x05,0x01,0x00,0x00,0xaa,0x00,0x05,0x00,0xb9,0x00,0x00,0x00,
    -0x1c,0x01,0x00,0x00,0x9c,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,
    +0x1c,0x01,0x00,0x00,0x9c,0x00,0x00,0x00,0x59,0x00,0x00,0x00,
     0xf7,0x00,0x03,0x00,0x1e,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
     0xfa,0x00,0x04,0x00,0x1c,0x01,0x00,0x00,0x1d,0x01,0x00,0x00,
     0x1e,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x1d,0x01,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x25,0x01,0x00,0x00,
     0x42,0x01,0x00,0x00,0x98,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
     0xad,0x00,0x00,0x00,0x26,0x01,0x00,0x00,0xaa,0x00,0x00,0x00,
    -0x24,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,
    +0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,
     0x27,0x01,0x00,0x00,0x26,0x01,0x00,0x00,0x41,0x00,0x06,0x00,
     0xea,0x00,0x00,0x00,0x28,0x01,0x00,0x00,0x22,0x01,0x00,0x00,
    -0x24,0x00,0x00,0x00,0x25,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x22,0x00,0x00,0x00,0x25,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
     0x28,0x01,0x00,0x00,0x27,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
     0x1e,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x1e,0x01,0x00,0x00,
     0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
     };
     const uint64_t mul_mat_vec_id_q5_1_f32_len = 4244;
     
    -unsigned char mul_mat_vec_id_q5_K_f32_data[] = {
    +unsigned char mul_mat_vec_id_q5_k_f32_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
     0xb2,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00,
     0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x27,0x00,0x00,0x00,
    @@ -122952,9 +126640,9 @@ unsigned char mul_mat_vec_id_q5_K_f32_data[] = {
     0x89,0x04,0x00,0x00,0xf8,0x00,0x02,0x00,0x89,0x04,0x00,0x00,
     0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
     };
    -const uint64_t mul_mat_vec_id_q5_K_f32_len = 12668;
    +const uint64_t mul_mat_vec_id_q5_k_f32_len = 12668;
     
    -unsigned char mul_mat_vec_id_q6_K_f32_data[] = {
    +unsigned char mul_mat_vec_id_q6_k_f32_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
     0xf1,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00,
     0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x27,0x00,0x00,0x00,
    @@ -123924,7 +127612,7 @@ unsigned char mul_mat_vec_id_q6_K_f32_data[] = {
     0xcf,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xcf,0x01,0x00,0x00,
     0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
     };
    -const uint64_t mul_mat_vec_id_q6_K_f32_len = 11612;
    +const uint64_t mul_mat_vec_id_q6_k_f32_len = 11612;
     
     unsigned char mul_mat_vec_id_q8_0_f32_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
    @@ -123935,50 +127623,50 @@ unsigned char mul_mat_vec_id_q8_0_f32_data[] = {
     0x2e,0x34,0x35,0x30,0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00,
     0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0f,0x00,0x0e,0x00,
     0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e,
    -0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x2d,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x46,0x00,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0x57,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,
     0x71,0x00,0x00,0x00,0x81,0x00,0x00,0x00,0xba,0x00,0x00,0x00,
     0xf8,0x00,0x00,0x00,0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00,
     0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x19,0x00,0x00,0x00,
    -0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x20,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x48,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x21,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x47,0x00,0x03,0x00,0x21,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x23,0x00,0x00,0x00,
    -0x21,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x2b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x2b,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x2b,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x2b,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x2b,0x00,0x00,0x00,
    -0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x2b,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x2b,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x2b,0x00,0x00,0x00,
    -0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x2b,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    -0x2b,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x46,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x47,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x47,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x48,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x48,0x00,0x04,0x00,
    -0x49,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x49,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x1c,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x1d,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x22,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x1e,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x1e,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x20,0x00,0x00,0x00,
    +0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x20,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x46,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    +0x1c,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x4b,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,
    +0x4c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x4c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
     0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    -0x49,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x4b,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x4b,0x00,0x00,0x00,0x21,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x6c,0x00,0x00,0x00,
    +0x4c,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x4e,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x4e,0x00,0x00,0x00,0x21,0x00,0x00,0x00,
    +0x03,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x55,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x55,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x55,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x55,0x00,0x00,0x00,
    +0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x55,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x55,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x55,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x55,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x55,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x55,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x6c,0x00,0x00,0x00,
     0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
     0x71,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
     0x47,0x00,0x04,0x00,0x7e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    @@ -124004,115 +127692,115 @@ unsigned char mul_mat_vec_id_q8_0_f32_data[] = {
     0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00,
     0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x16,0x00,0x03,0x00,0x0e,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x17,0x00,0x04,0x00,0x0f,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x17,0x00,0x04,0x00,0x17,0x00,0x00,0x00,
    +0x16,0x00,0x03,0x00,0x08,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x17,0x00,0x04,0x00,0x09,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0x18,0x00,0x00,0x00,
    +0x10,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x19,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x1c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    +0x1a,0x00,0x00,0x00,0x1e,0x00,0x04,0x00,0x1c,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    +0x1d,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
    +0x1e,0x00,0x00,0x00,0x1d,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x1f,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x21,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x26,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
    +0x2d,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x2f,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x38,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x17,0x00,0x04,0x00,0x44,0x00,0x00,0x00,
     0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x18,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x17,0x00,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x1a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x1b,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x15,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x20,0x00,0x00,0x00,
    -0x1f,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x21,0x00,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x22,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0x22,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,0x24,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x26,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,0x1e,0x00,0x0b,0x00,
    -0x2b,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x2c,0x00,0x00,0x00,
    -0x09,0x00,0x00,0x00,0x2b,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0x2c,0x00,0x00,0x00,0x2d,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,
    -0x04,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x2f,0x00,0x00,0x00,
    +0x45,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x44,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x45,0x00,0x00,0x00,0x46,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x47,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    +0x4b,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
    +0x4c,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x4d,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x4c,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x4d,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x50,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x1e,0x00,0x0b,0x00,
    +0x55,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x56,0x00,0x00,0x00,
    +0x09,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0x56,0x00,0x00,0x00,0x57,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x58,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x59,0x00,0x00,0x00,
     0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x1f,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,0x38,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,
    -0x3d,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x16,0x00,0x03,0x00,
    -0x43,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x15,0x00,0x04,0x00,
    -0x44,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x45,0x00,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0x46,0x00,0x00,0x00,
    -0x44,0x00,0x00,0x00,0x45,0x00,0x00,0x00,0x1e,0x00,0x04,0x00,
    -0x47,0x00,0x00,0x00,0x43,0x00,0x00,0x00,0x46,0x00,0x00,0x00,
    -0x1d,0x00,0x03,0x00,0x48,0x00,0x00,0x00,0x47,0x00,0x00,0x00,
    -0x1e,0x00,0x03,0x00,0x49,0x00,0x00,0x00,0x48,0x00,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x4a,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x49,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x4a,0x00,0x00,0x00,
    -0x4b,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x4f,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x43,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,0x56,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x58,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0x18,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x21,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x62,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
    +0x67,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0x45,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
     0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x18,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x45,0x00,0x00,0x00,
     0x71,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x1c,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,
    +0x1c,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
     0x7e,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x80,0x00,0x00,0x00,
     0x04,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
     0x80,0x00,0x00,0x00,0x81,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0x83,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x83,0x00,0x00,0x00,
     0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x84,0x00,0x00,0x00,
    -0x04,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x14,0x00,0x02,0x00,
    +0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x14,0x00,0x02,0x00,
     0x90,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x95,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    -0xb7,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
    +0xb7,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
     0xb8,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
     0xb9,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,
     0x3b,0x00,0x04,0x00,0xb9,0x00,0x00,0x00,0xba,0x00,0x00,0x00,
     0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xc0,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x0c,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,0x08,0x01,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xd8,0x00,0x00,0x00,
     0x86,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x95,0x00,0x00,0x00,
    -0x1d,0x00,0x03,0x00,0xf5,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,
    +0x1d,0x00,0x03,0x00,0xf5,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
     0x1e,0x00,0x03,0x00,0xf6,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,
     0x20,0x00,0x04,0x00,0xf7,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
     0xf6,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xf7,0x00,0x00,0x00,
     0xf8,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x33,0x00,0x06,0x00,0x17,0x00,0x00,0x00,0x00,0x01,0x00,0x00,
    -0xff,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,
    +0x33,0x00,0x06,0x00,0x44,0x00,0x00,0x00,0x00,0x01,0x00,0x00,
    +0xff,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x38,0x00,0x00,0x00,
     0x36,0x00,0x05,0x00,0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
     0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x05,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,
    +0x05,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x47,0x00,0x00,0x00,
     0x6e,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
     0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,
    -0x6e,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,
    +0x6e,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x47,0x00,0x00,0x00,
     0x72,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
     0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x73,0x00,0x00,0x00,
    -0x72,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,
    -0x04,0x01,0x00,0x00,0x19,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,
    +0x72,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x47,0x00,0x00,0x00,
    +0x04,0x01,0x00,0x00,0x46,0x00,0x00,0x00,0x38,0x00,0x00,0x00,
     0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x05,0x01,0x00,0x00,
    -0x04,0x01,0x00,0x00,0x41,0x00,0x06,0x00,0x26,0x00,0x00,0x00,
    -0x07,0x01,0x00,0x00,0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,
    -0x05,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,
    +0x04,0x01,0x00,0x00,0x41,0x00,0x06,0x00,0x50,0x00,0x00,0x00,
    +0x07,0x01,0x00,0x00,0x4e,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    +0x05,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
     0x08,0x01,0x00,0x00,0x07,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x09,0x01,0x00,0x00,0x08,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x2f,0x00,0x00,0x00,0x0b,0x01,0x00,0x00,
    -0x2d,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x59,0x00,0x00,0x00,0x0b,0x01,0x00,0x00,
    +0x57,0x00,0x00,0x00,0x58,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,
     0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0d,0x01,0x00,0x00,
     0x09,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x2f,0x00,0x00,0x00,0x0f,0x01,0x00,0x00,0x2d,0x00,0x00,0x00,
    -0x34,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x59,0x00,0x00,0x00,0x0f,0x01,0x00,0x00,0x57,0x00,0x00,0x00,
    +0x5e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x10,0x01,0x00,0x00,0x0f,0x01,0x00,0x00,0x89,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x11,0x01,0x00,0x00,0x05,0x01,0x00,0x00,
    -0x10,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x2f,0x00,0x00,0x00,
    -0x12,0x01,0x00,0x00,0x2d,0x00,0x00,0x00,0x38,0x00,0x00,0x00,
    +0x10,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x59,0x00,0x00,0x00,
    +0x12,0x01,0x00,0x00,0x57,0x00,0x00,0x00,0x62,0x00,0x00,0x00,
     0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x13,0x01,0x00,0x00,
     0x12,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x14,0x01,0x00,0x00,0x11,0x01,0x00,0x00,0x13,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x2f,0x00,0x00,0x00,0x16,0x01,0x00,0x00,
    -0x2d,0x00,0x00,0x00,0x3d,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x59,0x00,0x00,0x00,0x16,0x01,0x00,0x00,
    +0x57,0x00,0x00,0x00,0x67,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x17,0x01,0x00,0x00,0x16,0x01,0x00,0x00,
     0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x18,0x01,0x00,0x00,
     0x05,0x01,0x00,0x00,0x17,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    @@ -124122,8 +127810,8 @@ unsigned char mul_mat_vec_id_q8_0_f32_data[] = {
     0xf8,0x00,0x02,0x00,0x87,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
     0x06,0x00,0x00,0x00,0x38,0x01,0x00,0x00,0x6d,0x00,0x00,0x00,
     0x05,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0x88,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x2f,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,
    -0x2d,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x59,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,
    +0x57,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8f,0x00,0x00,0x00,
     0x8e,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,
    @@ -124141,60 +127829,60 @@ unsigned char mul_mat_vec_id_q8_0_f32_data[] = {
     0x8e,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x9f,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0x98,0x00,0x00,0x00,
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,
    -0x9f,0x00,0x00,0x00,0x45,0x00,0x00,0x00,0x89,0x00,0x05,0x00,
    +0x9f,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x89,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0x98,0x00,0x00,0x00,
    -0x45,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xa4,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,
    +0x1a,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0xa4,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0x38,0x00,0x00,0x00,
     0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,
     0x98,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xad,0x00,0x00,0x00,0x0d,0x01,0x00,0x00,
    -0x45,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x1a,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x1e,0x01,0x00,0x00,0xad,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,
    -0x41,0x00,0x07,0x00,0x4f,0x00,0x00,0x00,0x1f,0x01,0x00,0x00,
    -0x4b,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x1e,0x01,0x00,0x00,
    -0x24,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x43,0x00,0x00,0x00,
    +0x41,0x00,0x07,0x00,0x26,0x00,0x00,0x00,0x1f,0x01,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x1e,0x01,0x00,0x00,
    +0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x18,0x00,0x00,0x00,
     0x20,0x01,0x00,0x00,0x1f,0x01,0x00,0x00,0x73,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0x21,0x01,0x00,0x00,0x20,0x01,0x00,0x00,
    -0x41,0x00,0x08,0x00,0x58,0x00,0x00,0x00,0x26,0x01,0x00,0x00,
    -0x4b,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x1e,0x01,0x00,0x00,
    -0x56,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x44,0x00,0x00,0x00,0x27,0x01,0x00,0x00,0x26,0x01,0x00,0x00,
    -0x72,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,0x28,0x01,0x00,0x00,
    -0x27,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x21,0x01,0x00,0x00,0x20,0x01,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x2f,0x00,0x00,0x00,0x26,0x01,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x1e,0x01,0x00,0x00,
    +0x2d,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x19,0x00,0x00,0x00,0x27,0x01,0x00,0x00,0x26,0x01,0x00,0x00,
    +0x72,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x28,0x01,0x00,0x00,
    +0x27,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x08,0x00,0x00,0x00,
     0x29,0x01,0x00,0x00,0x28,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x2e,0x01,0x00,0x00,0xa4,0x00,0x00,0x00,
    -0x1a,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0x58,0x00,0x00,0x00,
    -0x2f,0x01,0x00,0x00,0x4b,0x00,0x00,0x00,0x24,0x00,0x00,0x00,
    -0x1e,0x01,0x00,0x00,0x56,0x00,0x00,0x00,0x2e,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x44,0x00,0x00,0x00,0x30,0x01,0x00,0x00,
    -0x2f,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,
    +0x38,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0x2f,0x00,0x00,0x00,
    +0x2f,0x01,0x00,0x00,0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    +0x1e,0x01,0x00,0x00,0x2d,0x00,0x00,0x00,0x2e,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x30,0x01,0x00,0x00,
    +0x2f,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
     0x31,0x01,0x00,0x00,0x30,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0x32,0x01,0x00,0x00,0x31,0x01,0x00,0x00,
    -0x50,0x00,0x05,0x00,0x0f,0x00,0x00,0x00,0x33,0x01,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x32,0x01,0x00,0x00,0x31,0x01,0x00,0x00,
    +0x50,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0x33,0x01,0x00,0x00,
     0x29,0x01,0x00,0x00,0x32,0x01,0x00,0x00,0x8e,0x00,0x05,0x00,
    -0x0f,0x00,0x00,0x00,0x35,0x01,0x00,0x00,0x33,0x01,0x00,0x00,
    -0x21,0x01,0x00,0x00,0x51,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,
    +0x09,0x00,0x00,0x00,0x35,0x01,0x00,0x00,0x33,0x01,0x00,0x00,
    +0x21,0x01,0x00,0x00,0x51,0x00,0x05,0x00,0x08,0x00,0x00,0x00,
     0xb6,0x00,0x00,0x00,0x35,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbd,0x00,0x00,0x00,
     0x14,0x01,0x00,0x00,0xa9,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0xbd,0x00,0x00,0x00,
     0xa4,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xc0,0x00,0x00,0x00,
    -0xc1,0x00,0x00,0x00,0xba,0x00,0x00,0x00,0x24,0x00,0x00,0x00,
    -0xbf,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,
    +0xc1,0x00,0x00,0x00,0xba,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    +0xbf,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,
     0xc2,0x00,0x00,0x00,0xc1,0x00,0x00,0x00,0x51,0x00,0x05,0x00,
    -0x0e,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0x35,0x01,0x00,0x00,
    +0x08,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0x35,0x01,0x00,0x00,
     0x01,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xcb,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,
    +0xcb,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0x38,0x00,0x00,0x00,
     0x41,0x00,0x06,0x00,0xc0,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,
    -0xba,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0xcd,0x00,0x00,0x00,
    -0xcc,0x00,0x00,0x00,0x85,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,
    +0xba,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xcd,0x00,0x00,0x00,
    +0xcc,0x00,0x00,0x00,0x85,0x00,0x05,0x00,0x08,0x00,0x00,0x00,
     0xce,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0xcd,0x00,0x00,0x00,
    -0x0c,0x00,0x08,0x00,0x0e,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,
    +0x0c,0x00,0x08,0x00,0x08,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,
     0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xb6,0x00,0x00,0x00,
     0xc2,0x00,0x00,0x00,0xce,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,0x85,0x00,0x00,0x00,
    -0x81,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,0x85,0x00,0x00,0x00,
    +0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,
     0xd1,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,
     0x85,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0x38,0x01,0x00,0x00,
    @@ -124218,9 +127906,9 @@ unsigned char mul_mat_vec_id_q8_0_f32_data[] = {
     0xe8,0x00,0x00,0x00,0x73,0x00,0x00,0x00,0x39,0x01,0x00,0x00,
     0x41,0x00,0x05,0x00,0x84,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,
     0x81,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0xea,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0xec,0x00,0x00,0x00,
    -0x85,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0xea,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xec,0x00,0x00,0x00,
    +0x85,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00,
     0xed,0x00,0x00,0x00,0xec,0x00,0x00,0x00,0xea,0x00,0x00,0x00,
     0x3e,0x00,0x03,0x00,0x85,0x00,0x00,0x00,0xed,0x00,0x00,0x00,
     0xf9,0x00,0x02,0x00,0xe4,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    @@ -124228,7 +127916,7 @@ unsigned char mul_mat_vec_id_q8_0_f32_data[] = {
     0x95,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
     0xdc,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xdc,0x00,0x00,0x00,
     0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,
    -0x39,0x01,0x00,0x00,0x56,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x39,0x01,0x00,0x00,0x2d,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
     0xd9,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xdb,0x00,0x00,0x00,
     0xaa,0x00,0x05,0x00,0x90,0x00,0x00,0x00,0xf2,0x00,0x00,0x00,
     0x73,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,
    @@ -124237,10 +127925,10 @@ unsigned char mul_mat_vec_id_q8_0_f32_data[] = {
     0xf8,0x00,0x02,0x00,0xf3,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0x18,0x01,0x00,0x00,
     0x6f,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x84,0x00,0x00,0x00,
    -0xfc,0x00,0x00,0x00,0x81,0x00,0x00,0x00,0x24,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,
    +0xfc,0x00,0x00,0x00,0x81,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,
     0xfc,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xc0,0x00,0x00,0x00,
    -0xfe,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0x24,0x00,0x00,0x00,
    +0xfe,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
     0xfb,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0xfe,0x00,0x00,0x00,
     0xfd,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xf4,0x00,0x00,0x00,
     0xf8,0x00,0x02,0x00,0xf4,0x00,0x00,0x00,0xfd,0x00,0x01,0x00,
    @@ -124723,7 +128411,7 @@ unsigned char mul_mat_vec_p021_f16_f32_data[] = {
     };
     const uint64_t mul_mat_vec_p021_f16_f32_len = 2768;
     
    -unsigned char mul_mat_vec_q2_K_f16_f32_data[] = {
    +unsigned char mul_mat_vec_q2_k_f16_f32_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
     0x49,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00,
     0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x27,0x00,0x00,0x00,
    @@ -125443,9 +129131,9 @@ unsigned char mul_mat_vec_q2_K_f16_f32_data[] = {
     0x08,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x08,0x03,0x00,0x00,
     0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
     };
    -const uint64_t mul_mat_vec_q2_K_f16_f32_len = 8612;
    +const uint64_t mul_mat_vec_q2_k_f16_f32_len = 8612;
     
    -unsigned char mul_mat_vec_q2_K_f32_f32_data[] = {
    +unsigned char mul_mat_vec_q2_k_f32_f32_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
     0x39,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00,
     0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x27,0x00,0x00,0x00,
    @@ -126144,9 +129832,9 @@ unsigned char mul_mat_vec_q2_K_f32_f32_data[] = {
     0xf8,0x00,0x02,0x00,0xf9,0x02,0x00,0x00,0xfd,0x00,0x01,0x00,
     0x38,0x00,0x01,0x00,
     };
    -const uint64_t mul_mat_vec_q2_K_f32_f32_len = 8356;
    +const uint64_t mul_mat_vec_q2_k_f32_f32_len = 8356;
     
    -unsigned char mul_mat_vec_q3_K_f16_f32_data[] = {
    +unsigned char mul_mat_vec_q3_k_f16_f32_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
     0x85,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00,
     0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x27,0x00,0x00,0x00,
    @@ -126984,9 +130672,9 @@ unsigned char mul_mat_vec_q3_K_f16_f32_data[] = {
     0x48,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x48,0x03,0x00,0x00,
     0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
     };
    -const uint64_t mul_mat_vec_q3_K_f16_f32_len = 10028;
    +const uint64_t mul_mat_vec_q3_k_f16_f32_len = 10028;
     
    -unsigned char mul_mat_vec_q3_K_f32_f32_data[] = {
    +unsigned char mul_mat_vec_q3_k_f32_f32_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
     0x7d,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00,
     0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x27,0x00,0x00,0x00,
    @@ -127814,7 +131502,7 @@ unsigned char mul_mat_vec_q3_K_f32_f32_data[] = {
     0x41,0x03,0x00,0x00,0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
     
     };
    -const uint64_t mul_mat_vec_q3_K_f32_f32_len = 9900;
    +const uint64_t mul_mat_vec_q3_k_f32_f32_len = 9900;
     
     unsigned char mul_mat_vec_q4_0_f16_f32_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
    @@ -127825,45 +131513,45 @@ unsigned char mul_mat_vec_q4_0_f16_f32_data[] = {
     0x2e,0x34,0x35,0x30,0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00,
     0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0f,0x00,0x0d,0x00,
     0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e,
    -0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x5b,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x83,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x47,0x00,0x00,0x00,
    +0x50,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x83,0x00,0x00,0x00,
     0x93,0x00,0x00,0x00,0xcd,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,
     0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00,
     0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    -0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x1c,0x00,0x00,0x00,
     0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x20,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,
    -0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x20,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x20,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,
    -0x09,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    -0x20,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x56,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x57,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x1c,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x1d,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x12,0x00,0x00,0x00,
    +0x48,0x00,0x04,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x1e,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x47,0x00,0x03,0x00,0x1e,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x20,0x00,0x00,0x00,
    +0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x47,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x4e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
     0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x57,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x58,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x48,0x00,0x04,0x00,
    -0x59,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x59,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    -0x59,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x5b,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x5b,0x00,0x00,0x00,0x21,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x7e,0x00,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x4e,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x4e,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x4e,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x4e,0x00,0x00,0x00,
    +0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x4e,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x4e,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x4e,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x4e,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x4e,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x28,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x4e,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x7e,0x00,0x00,0x00,
     0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
     0x83,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
     0x47,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    @@ -127889,70 +131577,70 @@ unsigned char mul_mat_vec_q4_0_f16_f32_data[] = {
     0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00,
     0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x16,0x00,0x03,0x00,0x0e,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x17,0x00,0x04,0x00,0x0f,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x17,0x00,0x04,0x00,0x17,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x18,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x17,0x00,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x1a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x1b,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x1e,0x00,0x0d,0x00,0x20,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
    -0x09,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0x21,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    -0x15,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,
    -0x24,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x25,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x30,0x00,0x00,0x00,
    -0x0a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,
    -0x36,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x23,0x00,0x00,0x00,0x3c,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x43,0x00,0x00,0x00,
    -0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,
    -0x48,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x23,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x16,0x00,0x03,0x00,0x53,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
    -0x15,0x00,0x04,0x00,0x54,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x55,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,
    -0x56,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x55,0x00,0x00,0x00,
    -0x1e,0x00,0x04,0x00,0x57,0x00,0x00,0x00,0x53,0x00,0x00,0x00,
    -0x56,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x58,0x00,0x00,0x00,
    -0x57,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x59,0x00,0x00,0x00,
    -0x58,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x5a,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0x5a,0x00,0x00,0x00,0x5b,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x60,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x53,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x23,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x6a,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x54,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x6f,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0x76,0x00,0x00,0x00,0x00,0x00,0x00,0x41,
    -0x3b,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,
    +0x16,0x00,0x03,0x00,0x08,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x17,0x00,0x04,0x00,0x09,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0x18,0x00,0x00,0x00,
    +0x10,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x19,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
    +0x1c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    +0x1a,0x00,0x00,0x00,0x1e,0x00,0x04,0x00,0x1c,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    +0x1d,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
    +0x1e,0x00,0x00,0x00,0x1d,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x1f,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x21,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x26,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
    +0x2e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x30,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x35,0x00,0x00,0x00,
    +0x0f,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
    +0x39,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x08,0x00,0x00,0x00,0x3d,0x00,0x00,0x00,0x00,0x00,0x00,0x41,
    +0x17,0x00,0x04,0x00,0x45,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x46,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x45,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0x46,0x00,0x00,0x00,0x47,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x48,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x49,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x1e,0x00,0x0d,0x00,
    +0x4e,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x4f,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x4f,0x00,0x00,0x00,
    +0x50,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x21,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x52,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
    +0x5d,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x21,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x69,0x00,0x00,0x00,
    +0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
    +0x74,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x21,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x46,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,
     0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0x18,0x00,0x00,0x00,0x83,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x46,0x00,0x00,0x00,0x83,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
     0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x90,0x00,0x00,0x00,
     0x20,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0x91,0x00,0x00,0x00,
    -0x0e,0x00,0x00,0x00,0x90,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x08,0x00,0x00,0x00,0x90,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
     0x92,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x91,0x00,0x00,0x00,
     0x3b,0x00,0x04,0x00,0x92,0x00,0x00,0x00,0x93,0x00,0x00,0x00,
    -0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x08,0x00,0x00,0x00,
     0x95,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x96,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,
    +0x96,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
     0x14,0x00,0x02,0x00,0xa2,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
     0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,
     0x20,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0xca,0x00,0x00,0x00,
    -0x53,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xcb,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xcb,0x00,0x00,0x00,
     0xca,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xcc,0x00,0x00,0x00,
     0x0c,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
     0xcc,0x00,0x00,0x00,0xcd,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    @@ -127960,61 +131648,61 @@ unsigned char mul_mat_vec_q4_0_f16_f32_data[] = {
     0x08,0x01,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0xec,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x90,0x00,0x00,0x00,
     0xa7,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x09,0x01,0x00,0x00,
    -0x0e,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x0a,0x01,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x0a,0x01,0x00,0x00,
     0x09,0x01,0x00,0x00,0x20,0x00,0x04,0x00,0x0b,0x01,0x00,0x00,
     0x0c,0x00,0x00,0x00,0x0a,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,
     0x0b,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
     0x20,0x00,0x04,0x00,0x12,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x0e,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x14,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x33,0x00,0x06,0x00,
    -0x17,0x00,0x00,0x00,0x15,0x01,0x00,0x00,0x14,0x01,0x00,0x00,
    -0x1a,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x2c,0x00,0x05,0x00,
    -0x0f,0x00,0x00,0x00,0x62,0x01,0x00,0x00,0x76,0x00,0x00,0x00,
    -0x76,0x00,0x00,0x00,0x36,0x00,0x05,0x00,0x02,0x00,0x00,0x00,
    +0x45,0x00,0x00,0x00,0x15,0x01,0x00,0x00,0x14,0x01,0x00,0x00,
    +0x48,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x2c,0x00,0x05,0x00,
    +0x09,0x00,0x00,0x00,0x62,0x01,0x00,0x00,0x3d,0x00,0x00,0x00,
    +0x3d,0x00,0x00,0x00,0x36,0x00,0x05,0x00,0x02,0x00,0x00,0x00,
     0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
     0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x1b,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,
    +0x49,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,
     0x7f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x81,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x1b,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x83,0x00,0x00,0x00,
    +0x49,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x83,0x00,0x00,0x00,
     0x7f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x85,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x1b,0x00,0x00,0x00,0x1d,0x01,0x00,0x00,0x19,0x00,0x00,0x00,
    -0x1a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x49,0x00,0x00,0x00,0x1d,0x01,0x00,0x00,0x47,0x00,0x00,0x00,
    +0x48,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x1e,0x01,0x00,0x00,0x1d,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x25,0x00,0x00,0x00,0x20,0x01,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x24,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x52,0x00,0x00,0x00,0x20,0x01,0x00,0x00,0x50,0x00,0x00,0x00,
    +0x51,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x21,0x01,0x00,0x00,0x20,0x01,0x00,0x00,0x86,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x22,0x01,0x00,0x00,0x1e,0x01,0x00,0x00,
     0x21,0x01,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x26,0x01,0x00,0x00,0x1e,0x01,0x00,0x00,0x21,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,0x28,0x01,0x00,0x00,
    -0x22,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x52,0x00,0x00,0x00,0x28,0x01,0x00,0x00,
    +0x50,0x00,0x00,0x00,0x5d,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x29,0x01,0x00,0x00,0x28,0x01,0x00,0x00,
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2a,0x01,0x00,0x00,
     0x22,0x01,0x00,0x00,0x29,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x25,0x00,0x00,0x00,0x2c,0x01,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x36,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x52,0x00,0x00,0x00,0x2c,0x01,0x00,0x00,0x50,0x00,0x00,0x00,
    +0x63,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x2d,0x01,0x00,0x00,0x2c,0x01,0x00,0x00,0x86,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x2e,0x01,0x00,0x00,0x26,0x01,0x00,0x00,
    -0x2d,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,
    -0x30,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x3c,0x00,0x00,0x00,
    +0x2d,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x52,0x00,0x00,0x00,
    +0x30,0x01,0x00,0x00,0x50,0x00,0x00,0x00,0x69,0x00,0x00,0x00,
     0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x31,0x01,0x00,0x00,
     0x30,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x32,0x01,0x00,0x00,0x2a,0x01,0x00,0x00,0x31,0x01,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x34,0x01,0x00,0x00,
     0x32,0x01,0x00,0x00,0x2e,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x25,0x00,0x00,0x00,0x36,0x01,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x43,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x52,0x00,0x00,0x00,0x36,0x01,0x00,0x00,0x50,0x00,0x00,0x00,
    +0x39,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x37,0x01,0x00,0x00,0x36,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x38,0x01,0x00,0x00,0x34,0x01,0x00,0x00,
    -0x37,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,
    -0x3a,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x48,0x00,0x00,0x00,
    +0x37,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x52,0x00,0x00,0x00,
    +0x3a,0x01,0x00,0x00,0x50,0x00,0x00,0x00,0x74,0x00,0x00,0x00,
     0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x3b,0x01,0x00,0x00,
     0x3a,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x3c,0x01,0x00,0x00,0x1e,0x01,0x00,0x00,0x3b,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,0x3e,0x01,0x00,0x00,
    -0x22,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x52,0x00,0x00,0x00,0x3e,0x01,0x00,0x00,
    +0x50,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x3f,0x01,0x00,0x00,0x3e,0x01,0x00,0x00,
     0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x40,0x01,0x00,0x00,
     0x1e,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    @@ -128024,8 +131712,8 @@ unsigned char mul_mat_vec_q4_0_f16_f32_data[] = {
     0xf8,0x00,0x02,0x00,0x99,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
     0x06,0x00,0x00,0x00,0x5f,0x01,0x00,0x00,0x7f,0x00,0x00,0x00,
     0x05,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,0x9f,0x00,0x00,0x00,
    -0x22,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x52,0x00,0x00,0x00,0x9f,0x00,0x00,0x00,
    +0x50,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0x9f,0x00,0x00,0x00,
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa1,0x00,0x00,0x00,
     0xa0,0x00,0x00,0x00,0x90,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,
    @@ -128052,52 +131740,52 @@ unsigned char mul_mat_vec_q4_0_f16_f32_data[] = {
     0x06,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x38,0x01,0x00,0x00,
     0xb2,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x47,0x01,0x00,0x00,0xc0,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,
    -0x41,0x00,0x07,0x00,0x60,0x00,0x00,0x00,0x48,0x01,0x00,0x00,
    -0x5b,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,0x47,0x01,0x00,0x00,
    -0x5c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x53,0x00,0x00,0x00,
    +0x41,0x00,0x07,0x00,0x26,0x00,0x00,0x00,0x48,0x01,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x47,0x01,0x00,0x00,
    +0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x18,0x00,0x00,0x00,
     0x49,0x01,0x00,0x00,0x48,0x01,0x00,0x00,0x73,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0x4a,0x01,0x00,0x00,0x49,0x01,0x00,0x00,
    -0x41,0x00,0x08,0x00,0x6a,0x00,0x00,0x00,0x4f,0x01,0x00,0x00,
    -0x5b,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,0x47,0x01,0x00,0x00,
    -0x68,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x54,0x00,0x00,0x00,0x50,0x01,0x00,0x00,0x4f,0x01,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x4a,0x01,0x00,0x00,0x49,0x01,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x30,0x00,0x00,0x00,0x4f,0x01,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x47,0x01,0x00,0x00,
    +0x2e,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x19,0x00,0x00,0x00,0x50,0x01,0x00,0x00,0x4f,0x01,0x00,0x00,
     0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x51,0x01,0x00,0x00,
     0x50,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x53,0x01,0x00,0x00,0x51,0x01,0x00,0x00,0x6f,0x00,0x00,0x00,
    -0x70,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0x54,0x01,0x00,0x00,
    +0x53,0x01,0x00,0x00,0x51,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    +0x70,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x54,0x01,0x00,0x00,
     0x53,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x56,0x01,0x00,0x00,0x51,0x01,0x00,0x00,0x43,0x00,0x00,0x00,
    -0x70,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0x57,0x01,0x00,0x00,
    -0x56,0x01,0x00,0x00,0x50,0x00,0x05,0x00,0x0f,0x00,0x00,0x00,
    +0x56,0x01,0x00,0x00,0x51,0x01,0x00,0x00,0x39,0x00,0x00,0x00,
    +0x70,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x57,0x01,0x00,0x00,
    +0x56,0x01,0x00,0x00,0x50,0x00,0x05,0x00,0x09,0x00,0x00,0x00,
     0x58,0x01,0x00,0x00,0x54,0x01,0x00,0x00,0x57,0x01,0x00,0x00,
    -0x83,0x00,0x05,0x00,0x0f,0x00,0x00,0x00,0x5a,0x01,0x00,0x00,
    +0x83,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0x5a,0x01,0x00,0x00,
     0x58,0x01,0x00,0x00,0x62,0x01,0x00,0x00,0x8e,0x00,0x05,0x00,
    -0x0f,0x00,0x00,0x00,0x5c,0x01,0x00,0x00,0x5a,0x01,0x00,0x00,
    -0x4a,0x01,0x00,0x00,0x51,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,
    +0x09,0x00,0x00,0x00,0x5c,0x01,0x00,0x00,0x5a,0x01,0x00,0x00,
    +0x4a,0x01,0x00,0x00,0x51,0x00,0x05,0x00,0x08,0x00,0x00,0x00,
     0xc9,0x00,0x00,0x00,0x5c,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,
     0x3c,0x01,0x00,0x00,0xbc,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,
    -0xb7,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x60,0x00,0x00,0x00,
    -0xd3,0x00,0x00,0x00,0xcd,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,
    -0xd2,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x53,0x00,0x00,0x00,
    +0xb7,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x26,0x00,0x00,0x00,
    +0xd3,0x00,0x00,0x00,0xcd,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    +0xd2,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x18,0x00,0x00,0x00,
     0xd4,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,0x73,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0xd4,0x00,0x00,0x00,
    -0x51,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,0xd8,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0xd4,0x00,0x00,0x00,
    +0x51,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0xd8,0x00,0x00,0x00,
     0x5c,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xde,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,
    -0x55,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x60,0x00,0x00,0x00,
    -0xdf,0x00,0x00,0x00,0xcd,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,
    -0xde,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x53,0x00,0x00,0x00,
    +0x1a,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x26,0x00,0x00,0x00,
    +0xdf,0x00,0x00,0x00,0xcd,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    +0xde,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x18,0x00,0x00,0x00,
     0xe0,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0x73,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0xe1,0x00,0x00,0x00,0xe0,0x00,0x00,0x00,
    -0x85,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,0xe2,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0xe1,0x00,0x00,0x00,0xe0,0x00,0x00,0x00,
    +0x85,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0xe2,0x00,0x00,0x00,
     0xd8,0x00,0x00,0x00,0xe1,0x00,0x00,0x00,0x0c,0x00,0x08,0x00,
    -0x0e,0x00,0x00,0x00,0xe3,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0xe3,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
     0x32,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,
    -0xe2,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,
    +0xe2,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,
     0xe5,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x81,0x00,0x05,0x00,
    -0x0e,0x00,0x00,0x00,0xe6,0x00,0x00,0x00,0xe5,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0xe6,0x00,0x00,0x00,0xe5,0x00,0x00,0x00,
     0xe3,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0x97,0x00,0x00,0x00,
     0xe6,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xe9,0x00,0x00,0x00,0x5f,0x01,0x00,0x00,0xa7,0x00,0x00,0x00,
    @@ -128120,10 +131808,10 @@ unsigned char mul_mat_vec_q4_0_f16_f32_data[] = {
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,
     0x85,0x00,0x00,0x00,0x60,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
     0x96,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,0x93,0x00,0x00,0x00,
    -0xfc,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,
    +0xfc,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,
     0xfe,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x97,0x00,0x00,0x00,
    -0x81,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,0x01,0x01,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x97,0x00,0x00,0x00,
    +0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0x01,0x01,0x00,0x00,
     0x00,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,
     0x97,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
     0xf8,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xf8,0x00,0x00,0x00,
    @@ -128131,7 +131819,7 @@ unsigned char mul_mat_vec_q4_0_f16_f32_data[] = {
     0xea,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xf0,0x00,0x00,0x00,
     0xf8,0x00,0x02,0x00,0xf0,0x00,0x00,0x00,0xc2,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x04,0x01,0x00,0x00,0x60,0x01,0x00,0x00,
    -0x68,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xed,0x00,0x00,0x00,
    +0x2e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xed,0x00,0x00,0x00,
     0xf8,0x00,0x02,0x00,0xef,0x00,0x00,0x00,0xaa,0x00,0x05,0x00,
     0xa2,0x00,0x00,0x00,0x06,0x01,0x00,0x00,0x85,0x00,0x00,0x00,
     0x7f,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0x08,0x01,0x00,0x00,
    @@ -128140,10 +131828,10 @@ unsigned char mul_mat_vec_q4_0_f16_f32_data[] = {
     0x07,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x0f,0x01,0x00,0x00,0x40,0x01,0x00,0x00,0x81,0x00,0x00,0x00,
     0x41,0x00,0x05,0x00,0x96,0x00,0x00,0x00,0x10,0x01,0x00,0x00,
    -0x93,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0x11,0x01,0x00,0x00,0x10,0x01,0x00,0x00,
    +0x93,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x08,0x00,0x00,0x00,0x11,0x01,0x00,0x00,0x10,0x01,0x00,0x00,
     0x41,0x00,0x06,0x00,0x12,0x01,0x00,0x00,0x13,0x01,0x00,0x00,
    -0x0c,0x01,0x00,0x00,0x5c,0x00,0x00,0x00,0x0f,0x01,0x00,0x00,
    +0x0c,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x0f,0x01,0x00,0x00,
     0x3e,0x00,0x03,0x00,0x13,0x01,0x00,0x00,0x11,0x01,0x00,0x00,
     0xf9,0x00,0x02,0x00,0x08,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
     0x08,0x01,0x00,0x00,0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
    @@ -128160,45 +131848,45 @@ unsigned char mul_mat_vec_q4_0_f32_f32_data[] = {
     0x2e,0x34,0x35,0x30,0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00,
     0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0f,0x00,0x0d,0x00,
     0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e,
    -0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x5b,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x83,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x47,0x00,0x00,0x00,
    +0x50,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x83,0x00,0x00,0x00,
     0x93,0x00,0x00,0x00,0xcd,0x00,0x00,0x00,0x0b,0x01,0x00,0x00,
     0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00,
     0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    -0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x1c,0x00,0x00,0x00,
     0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x20,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,
    -0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x20,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x20,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,
    -0x09,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    -0x20,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x56,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x57,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x1c,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x1d,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x12,0x00,0x00,0x00,
    +0x48,0x00,0x04,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x1e,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x47,0x00,0x03,0x00,0x1e,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x20,0x00,0x00,0x00,
    +0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x47,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x4e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
     0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x57,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x58,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x48,0x00,0x04,0x00,
    -0x59,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x59,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    -0x59,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x5b,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x5b,0x00,0x00,0x00,0x21,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x7e,0x00,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x4e,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x4e,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x4e,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x4e,0x00,0x00,0x00,
    +0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x4e,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x4e,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x4e,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x4e,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x4e,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x28,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x4e,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x7e,0x00,0x00,0x00,
     0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
     0x83,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
     0x47,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    @@ -128224,132 +131912,132 @@ unsigned char mul_mat_vec_q4_0_f32_f32_data[] = {
     0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00,
     0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x16,0x00,0x03,0x00,0x0e,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x17,0x00,0x04,0x00,0x0f,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x17,0x00,0x04,0x00,0x17,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x18,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x17,0x00,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x1a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x1b,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x1e,0x00,0x0d,0x00,0x20,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
    -0x09,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0x21,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    -0x15,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,
    -0x24,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x25,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x30,0x00,0x00,0x00,
    -0x0a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,
    -0x36,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x23,0x00,0x00,0x00,0x3c,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x43,0x00,0x00,0x00,
    -0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,
    -0x48,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x23,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x16,0x00,0x03,0x00,0x53,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
    -0x15,0x00,0x04,0x00,0x54,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x55,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,
    -0x56,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x55,0x00,0x00,0x00,
    -0x1e,0x00,0x04,0x00,0x57,0x00,0x00,0x00,0x53,0x00,0x00,0x00,
    -0x56,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x58,0x00,0x00,0x00,
    -0x57,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x59,0x00,0x00,0x00,
    -0x58,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x5a,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0x5a,0x00,0x00,0x00,0x5b,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x60,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x53,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x23,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x6a,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x54,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x6f,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0x76,0x00,0x00,0x00,0x00,0x00,0x00,0x41,
    -0x3b,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,
    +0x16,0x00,0x03,0x00,0x08,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x17,0x00,0x04,0x00,0x09,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0x18,0x00,0x00,0x00,
    +0x10,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x19,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
    +0x1c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    +0x1a,0x00,0x00,0x00,0x1e,0x00,0x04,0x00,0x1c,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    +0x1d,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
    +0x1e,0x00,0x00,0x00,0x1d,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x1f,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x21,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x26,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
    +0x2e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x30,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x35,0x00,0x00,0x00,
    +0x0f,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
    +0x39,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x08,0x00,0x00,0x00,0x3d,0x00,0x00,0x00,0x00,0x00,0x00,0x41,
    +0x17,0x00,0x04,0x00,0x45,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x46,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x45,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0x46,0x00,0x00,0x00,0x47,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x48,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x49,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x1e,0x00,0x0d,0x00,
    +0x4e,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x4f,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x4f,0x00,0x00,0x00,
    +0x50,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x21,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x52,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
    +0x5d,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x21,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x69,0x00,0x00,0x00,
    +0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
    +0x74,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x21,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x46,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,
     0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0x18,0x00,0x00,0x00,0x83,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x46,0x00,0x00,0x00,0x83,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
     0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x90,0x00,0x00,0x00,
     0x20,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0x91,0x00,0x00,0x00,
    -0x0e,0x00,0x00,0x00,0x90,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x08,0x00,0x00,0x00,0x90,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
     0x92,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x91,0x00,0x00,0x00,
     0x3b,0x00,0x04,0x00,0x92,0x00,0x00,0x00,0x93,0x00,0x00,0x00,
    -0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x08,0x00,0x00,0x00,
     0x95,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x96,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,
    +0x96,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
     0x14,0x00,0x02,0x00,0xa2,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
     0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,
     0x20,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0xca,0x00,0x00,0x00,
    -0x0e,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xcb,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xcb,0x00,0x00,0x00,
     0xca,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xcc,0x00,0x00,0x00,
     0x0c,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
     0xcc,0x00,0x00,0x00,0xcd,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
     0x20,0x00,0x04,0x00,0xd3,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x0e,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0xe9,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
     0x90,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    -0x08,0x01,0x00,0x00,0x0e,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
    +0x08,0x01,0x00,0x00,0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
     0x09,0x01,0x00,0x00,0x08,0x01,0x00,0x00,0x20,0x00,0x04,0x00,
     0x0a,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x09,0x01,0x00,0x00,
     0x3b,0x00,0x04,0x00,0x0a,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,
     0x0c,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x12,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x33,0x00,0x06,0x00,
    -0x17,0x00,0x00,0x00,0x13,0x01,0x00,0x00,0x12,0x01,0x00,0x00,
    -0x1a,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x2c,0x00,0x05,0x00,
    -0x0f,0x00,0x00,0x00,0x60,0x01,0x00,0x00,0x76,0x00,0x00,0x00,
    -0x76,0x00,0x00,0x00,0x36,0x00,0x05,0x00,0x02,0x00,0x00,0x00,
    +0x45,0x00,0x00,0x00,0x13,0x01,0x00,0x00,0x12,0x01,0x00,0x00,
    +0x48,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x2c,0x00,0x05,0x00,
    +0x09,0x00,0x00,0x00,0x60,0x01,0x00,0x00,0x3d,0x00,0x00,0x00,
    +0x3d,0x00,0x00,0x00,0x36,0x00,0x05,0x00,0x02,0x00,0x00,0x00,
     0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
     0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x1b,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,
    +0x49,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,
     0x7f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x81,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x1b,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x83,0x00,0x00,0x00,
    +0x49,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x83,0x00,0x00,0x00,
     0x7f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x85,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x1b,0x00,0x00,0x00,0x1b,0x01,0x00,0x00,0x19,0x00,0x00,0x00,
    -0x1a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x49,0x00,0x00,0x00,0x1b,0x01,0x00,0x00,0x47,0x00,0x00,0x00,
    +0x48,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x1c,0x01,0x00,0x00,0x1b,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x25,0x00,0x00,0x00,0x1e,0x01,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x24,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x52,0x00,0x00,0x00,0x1e,0x01,0x00,0x00,0x50,0x00,0x00,0x00,
    +0x51,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x1f,0x01,0x00,0x00,0x1e,0x01,0x00,0x00,0x86,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x20,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,
     0x1f,0x01,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x24,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,0x1f,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,0x26,0x01,0x00,0x00,
    -0x22,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x52,0x00,0x00,0x00,0x26,0x01,0x00,0x00,
    +0x50,0x00,0x00,0x00,0x5d,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x27,0x01,0x00,0x00,0x26,0x01,0x00,0x00,
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x28,0x01,0x00,0x00,
     0x20,0x01,0x00,0x00,0x27,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x25,0x00,0x00,0x00,0x2a,0x01,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x36,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x52,0x00,0x00,0x00,0x2a,0x01,0x00,0x00,0x50,0x00,0x00,0x00,
    +0x63,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x2b,0x01,0x00,0x00,0x2a,0x01,0x00,0x00,0x86,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x2c,0x01,0x00,0x00,0x24,0x01,0x00,0x00,
    -0x2b,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,
    -0x2e,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x3c,0x00,0x00,0x00,
    +0x2b,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x52,0x00,0x00,0x00,
    +0x2e,0x01,0x00,0x00,0x50,0x00,0x00,0x00,0x69,0x00,0x00,0x00,
     0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x2f,0x01,0x00,0x00,
     0x2e,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x30,0x01,0x00,0x00,0x28,0x01,0x00,0x00,0x2f,0x01,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x32,0x01,0x00,0x00,
     0x30,0x01,0x00,0x00,0x2c,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x25,0x00,0x00,0x00,0x34,0x01,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x43,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x52,0x00,0x00,0x00,0x34,0x01,0x00,0x00,0x50,0x00,0x00,0x00,
    +0x39,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x35,0x01,0x00,0x00,0x34,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x36,0x01,0x00,0x00,0x32,0x01,0x00,0x00,
    -0x35,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,
    -0x38,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x48,0x00,0x00,0x00,
    +0x35,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x52,0x00,0x00,0x00,
    +0x38,0x01,0x00,0x00,0x50,0x00,0x00,0x00,0x74,0x00,0x00,0x00,
     0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x39,0x01,0x00,0x00,
     0x38,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x3a,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,0x39,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,0x3c,0x01,0x00,0x00,
    -0x22,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x52,0x00,0x00,0x00,0x3c,0x01,0x00,0x00,
    +0x50,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x3d,0x01,0x00,0x00,0x3c,0x01,0x00,0x00,
     0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3e,0x01,0x00,0x00,
     0x1c,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    @@ -128359,8 +132047,8 @@ unsigned char mul_mat_vec_q4_0_f32_f32_data[] = {
     0xf8,0x00,0x02,0x00,0x99,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
     0x06,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,0x7f,0x00,0x00,0x00,
     0x05,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,0x9f,0x00,0x00,0x00,
    -0x22,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x52,0x00,0x00,0x00,0x9f,0x00,0x00,0x00,
    +0x50,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0x9f,0x00,0x00,0x00,
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa1,0x00,0x00,0x00,
     0xa0,0x00,0x00,0x00,0x90,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,
    @@ -128387,49 +132075,49 @@ unsigned char mul_mat_vec_q4_0_f32_f32_data[] = {
     0x06,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x36,0x01,0x00,0x00,
     0xb2,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x45,0x01,0x00,0x00,0xc0,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,
    -0x41,0x00,0x07,0x00,0x60,0x00,0x00,0x00,0x46,0x01,0x00,0x00,
    -0x5b,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,0x45,0x01,0x00,0x00,
    -0x5c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x53,0x00,0x00,0x00,
    +0x41,0x00,0x07,0x00,0x26,0x00,0x00,0x00,0x46,0x01,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x45,0x01,0x00,0x00,
    +0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x18,0x00,0x00,0x00,
     0x47,0x01,0x00,0x00,0x46,0x01,0x00,0x00,0x73,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0x48,0x01,0x00,0x00,0x47,0x01,0x00,0x00,
    -0x41,0x00,0x08,0x00,0x6a,0x00,0x00,0x00,0x4d,0x01,0x00,0x00,
    -0x5b,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,0x45,0x01,0x00,0x00,
    -0x68,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x54,0x00,0x00,0x00,0x4e,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x48,0x01,0x00,0x00,0x47,0x01,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x30,0x00,0x00,0x00,0x4d,0x01,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x45,0x01,0x00,0x00,
    +0x2e,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x19,0x00,0x00,0x00,0x4e,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,
     0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4f,0x01,0x00,0x00,
     0x4e,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x51,0x01,0x00,0x00,0x4f,0x01,0x00,0x00,0x6f,0x00,0x00,0x00,
    -0x70,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0x52,0x01,0x00,0x00,
    +0x51,0x01,0x00,0x00,0x4f,0x01,0x00,0x00,0x35,0x00,0x00,0x00,
    +0x70,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x52,0x01,0x00,0x00,
     0x51,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x54,0x01,0x00,0x00,0x4f,0x01,0x00,0x00,0x43,0x00,0x00,0x00,
    -0x70,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0x55,0x01,0x00,0x00,
    -0x54,0x01,0x00,0x00,0x50,0x00,0x05,0x00,0x0f,0x00,0x00,0x00,
    +0x54,0x01,0x00,0x00,0x4f,0x01,0x00,0x00,0x39,0x00,0x00,0x00,
    +0x70,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x55,0x01,0x00,0x00,
    +0x54,0x01,0x00,0x00,0x50,0x00,0x05,0x00,0x09,0x00,0x00,0x00,
     0x56,0x01,0x00,0x00,0x52,0x01,0x00,0x00,0x55,0x01,0x00,0x00,
    -0x83,0x00,0x05,0x00,0x0f,0x00,0x00,0x00,0x58,0x01,0x00,0x00,
    +0x83,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0x58,0x01,0x00,0x00,
     0x56,0x01,0x00,0x00,0x60,0x01,0x00,0x00,0x8e,0x00,0x05,0x00,
    -0x0f,0x00,0x00,0x00,0x5a,0x01,0x00,0x00,0x58,0x01,0x00,0x00,
    -0x48,0x01,0x00,0x00,0x51,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,
    +0x09,0x00,0x00,0x00,0x5a,0x01,0x00,0x00,0x58,0x01,0x00,0x00,
    +0x48,0x01,0x00,0x00,0x51,0x00,0x05,0x00,0x08,0x00,0x00,0x00,
     0xc9,0x00,0x00,0x00,0x5a,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,
     0x3a,0x01,0x00,0x00,0xbc,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,
     0xb7,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xd3,0x00,0x00,0x00,
    -0xd4,0x00,0x00,0x00,0xcd,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,
    -0xd2,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,
    +0xd4,0x00,0x00,0x00,0xcd,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    +0xd2,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,
     0xd5,0x00,0x00,0x00,0xd4,0x00,0x00,0x00,0x51,0x00,0x05,0x00,
    -0x0e,0x00,0x00,0x00,0xd8,0x00,0x00,0x00,0x5a,0x01,0x00,0x00,
    +0x08,0x00,0x00,0x00,0xd8,0x00,0x00,0x00,0x5a,0x01,0x00,0x00,
     0x01,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xde,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,0x55,0x00,0x00,0x00,
    +0xde,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,
     0x41,0x00,0x06,0x00,0xd3,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,
    -0xcd,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,0xde,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0xe0,0x00,0x00,0x00,
    -0xdf,0x00,0x00,0x00,0x85,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,
    +0xcd,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0xde,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xe0,0x00,0x00,0x00,
    +0xdf,0x00,0x00,0x00,0x85,0x00,0x05,0x00,0x08,0x00,0x00,0x00,
     0xe1,0x00,0x00,0x00,0xd8,0x00,0x00,0x00,0xe0,0x00,0x00,0x00,
    -0x0c,0x00,0x08,0x00,0x0e,0x00,0x00,0x00,0xe2,0x00,0x00,0x00,
    +0x0c,0x00,0x08,0x00,0x08,0x00,0x00,0x00,0xe2,0x00,0x00,0x00,
     0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,
     0xd5,0x00,0x00,0x00,0xe1,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0xe4,0x00,0x00,0x00,0x97,0x00,0x00,0x00,
    -0x81,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,0xe5,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0xe4,0x00,0x00,0x00,0x97,0x00,0x00,0x00,
    +0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0xe5,0x00,0x00,0x00,
     0xe4,0x00,0x00,0x00,0xe2,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,
     0x97,0x00,0x00,0x00,0xe5,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,
    @@ -128453,9 +132141,9 @@ unsigned char mul_mat_vec_q4_0_f32_f32_data[] = {
     0xfb,0x00,0x00,0x00,0x85,0x00,0x00,0x00,0x5e,0x01,0x00,0x00,
     0x41,0x00,0x05,0x00,0x96,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,
     0x93,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0xff,0x00,0x00,0x00,
    -0x97,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xff,0x00,0x00,0x00,
    +0x97,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00,
     0x00,0x01,0x00,0x00,0xff,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,
     0x3e,0x00,0x03,0x00,0x97,0x00,0x00,0x00,0x00,0x01,0x00,0x00,
     0xf9,0x00,0x02,0x00,0xf7,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    @@ -128463,7 +132151,7 @@ unsigned char mul_mat_vec_q4_0_f32_f32_data[] = {
     0xa7,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
     0xef,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xef,0x00,0x00,0x00,
     0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x03,0x01,0x00,0x00,
    -0x5e,0x01,0x00,0x00,0x68,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x5e,0x01,0x00,0x00,0x2e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
     0xec,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xee,0x00,0x00,0x00,
     0xaa,0x00,0x05,0x00,0xa2,0x00,0x00,0x00,0x05,0x01,0x00,0x00,
     0x85,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,
    @@ -128472,10 +132160,10 @@ unsigned char mul_mat_vec_q4_0_f32_f32_data[] = {
     0xf8,0x00,0x02,0x00,0x06,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x0e,0x01,0x00,0x00,0x3e,0x01,0x00,0x00,
     0x81,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x96,0x00,0x00,0x00,
    -0x0f,0x01,0x00,0x00,0x93,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0x10,0x01,0x00,0x00,
    +0x0f,0x01,0x00,0x00,0x93,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x10,0x01,0x00,0x00,
     0x0f,0x01,0x00,0x00,0x41,0x00,0x06,0x00,0xd3,0x00,0x00,0x00,
    -0x11,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,0x5c,0x00,0x00,0x00,
    +0x11,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,0x22,0x00,0x00,0x00,
     0x0e,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x11,0x01,0x00,0x00,
     0x10,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x07,0x01,0x00,0x00,
     0xf8,0x00,0x02,0x00,0x07,0x01,0x00,0x00,0xfd,0x00,0x01,0x00,
    @@ -128492,46 +132180,46 @@ unsigned char mul_mat_vec_q4_1_f16_f32_data[] = {
     0x2e,0x34,0x35,0x30,0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00,
     0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0f,0x00,0x0d,0x00,
     0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e,
    -0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x5b,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x8b,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,
    +0x58,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x8b,0x00,0x00,0x00,
     0x9b,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0x14,0x01,0x00,0x00,
     0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00,
     0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    -0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x1c,0x00,0x00,0x00,
     0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x20,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,
    -0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x20,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x20,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,
    -0x09,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    -0x20,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x56,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x57,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x57,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x57,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x58,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x14,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x59,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x59,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x59,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x5b,0x00,0x00,0x00,
    -0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x5b,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x1c,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x1c,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x1d,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x48,0x00,0x04,0x00,
    +0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    +0x1e,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x20,0x00,0x00,0x00,0x21,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x4f,0x00,0x00,0x00,
    +0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x56,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x56,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x56,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x56,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x56,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x56,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x56,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x56,0x00,0x00,0x00,
    +0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x56,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x56,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x24,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x56,0x00,0x00,0x00,
    +0x0a,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x28,0x00,0x00,0x00,
    +0x47,0x00,0x03,0x00,0x56,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
     0x47,0x00,0x04,0x00,0x86,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
     0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x8b,0x00,0x00,0x00,
     0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    @@ -128558,70 +132246,70 @@ unsigned char mul_mat_vec_q4_1_f16_f32_data[] = {
     0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00,
     0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x00,0x03,0x00,
    -0x0e,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x17,0x00,0x04,0x00,
    -0x0f,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    -0x17,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x18,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x17,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0x18,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x17,0x00,0x04,0x00,
    +0x09,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x16,0x00,0x03,0x00,0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
    +0x15,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x1a,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,
    +0x1b,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,
    +0x1e,0x00,0x05,0x00,0x1c,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    +0x1d,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
    +0x1e,0x00,0x00,0x00,0x1d,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x1f,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x21,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x26,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
    +0x2e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x21,0x00,0x00,0x00,0x36,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x38,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x19,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x3d,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x21,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x17,0x00,0x04,0x00,0x4d,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x4e,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0x4e,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x50,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x51,0x00,0x00,0x00,
     0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x1e,0x00,0x0d,0x00,
    -0x20,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x56,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
     0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
     0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
     0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
    -0x22,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x15,0x00,0x04,0x00,
    -0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,
    -0x08,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x25,0x00,0x00,0x00,
    -0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x23,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x36,0x00,0x00,0x00,
    -0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,
    -0x3c,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x23,0x00,0x00,0x00,0x43,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x48,0x00,0x00,0x00,
    -0x05,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,
    -0x4d,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x16,0x00,0x03,0x00,
    -0x53,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x15,0x00,0x04,0x00,
    -0x54,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x55,0x00,0x00,0x00,
    -0x10,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0x56,0x00,0x00,0x00,
    -0x54,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x1e,0x00,0x05,0x00,
    -0x57,0x00,0x00,0x00,0x53,0x00,0x00,0x00,0x53,0x00,0x00,0x00,
    -0x56,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x58,0x00,0x00,0x00,
    -0x57,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x59,0x00,0x00,0x00,
    -0x58,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x5a,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0x5a,0x00,0x00,0x00,0x5b,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x60,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x53,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x23,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x70,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x72,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x77,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x57,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x56,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x57,0x00,0x00,0x00,
    +0x58,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x21,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x5a,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
    +0x65,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x21,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x71,0x00,0x00,0x00,
    +0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
    +0x7c,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x21,0x00,0x00,0x00,0x81,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x4e,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
     0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x87,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0x18,0x00,0x00,0x00,0x8b,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0x8b,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
     0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x98,0x00,0x00,0x00,
     0x20,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0x99,0x00,0x00,0x00,
    -0x0e,0x00,0x00,0x00,0x98,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x08,0x00,0x00,0x00,0x98,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
     0x9a,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x99,0x00,0x00,0x00,
     0x3b,0x00,0x04,0x00,0x9a,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,
    -0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x08,0x00,0x00,0x00,
     0x9d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x9e,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,
    +0x9e,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
     0x14,0x00,0x02,0x00,0xaa,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
     0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xba,0x00,0x00,0x00,
     0x20,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0xd2,0x00,0x00,0x00,
    -0x53,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xd3,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xd3,0x00,0x00,0x00,
     0xd2,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xd4,0x00,0x00,0x00,
     0x0c,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
     0xd4,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    @@ -128629,59 +132317,59 @@ unsigned char mul_mat_vec_q4_1_f16_f32_data[] = {
     0x08,0x01,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0xf4,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x98,0x00,0x00,0x00,
     0xaf,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x11,0x01,0x00,0x00,
    -0x0e,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x12,0x01,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x12,0x01,0x00,0x00,
     0x11,0x01,0x00,0x00,0x20,0x00,0x04,0x00,0x13,0x01,0x00,0x00,
     0x0c,0x00,0x00,0x00,0x12,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,
     0x13,0x01,0x00,0x00,0x14,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
     0x20,0x00,0x04,0x00,0x1a,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x0e,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x1c,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x33,0x00,0x06,0x00,
    -0x17,0x00,0x00,0x00,0x1d,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,
    -0x1a,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x36,0x00,0x05,0x00,
    +0x4d,0x00,0x00,0x00,0x1d,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,
    +0x50,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x36,0x00,0x05,0x00,
     0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
     0x03,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x88,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x51,0x00,0x00,0x00,0x88,0x00,0x00,0x00,
     0x86,0x00,0x00,0x00,0x87,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x89,0x00,0x00,0x00,0x88,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x8c,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x51,0x00,0x00,0x00,0x8c,0x00,0x00,0x00,
     0x8b,0x00,0x00,0x00,0x87,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,0x8c,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x25,0x01,0x00,0x00,
    -0x19,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x51,0x00,0x00,0x00,0x25,0x01,0x00,0x00,
    +0x4f,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x26,0x01,0x00,0x00,0x25,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,0x28,0x01,0x00,0x00,
    -0x22,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x5a,0x00,0x00,0x00,0x28,0x01,0x00,0x00,
    +0x58,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x29,0x01,0x00,0x00,0x28,0x01,0x00,0x00,
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2a,0x01,0x00,0x00,
     0x26,0x01,0x00,0x00,0x29,0x01,0x00,0x00,0x89,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x2e,0x01,0x00,0x00,0x26,0x01,0x00,0x00,
    -0x29,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,
    -0x30,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x30,0x00,0x00,0x00,
    +0x29,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x5a,0x00,0x00,0x00,
    +0x30,0x01,0x00,0x00,0x58,0x00,0x00,0x00,0x65,0x00,0x00,0x00,
     0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x31,0x01,0x00,0x00,
     0x30,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x32,0x01,0x00,0x00,0x2a,0x01,0x00,0x00,0x31,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,0x34,0x01,0x00,0x00,
    -0x22,0x00,0x00,0x00,0x36,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x5a,0x00,0x00,0x00,0x34,0x01,0x00,0x00,
    +0x58,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x35,0x01,0x00,0x00,0x34,0x01,0x00,0x00,
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x36,0x01,0x00,0x00,
     0x2e,0x01,0x00,0x00,0x35,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x25,0x00,0x00,0x00,0x38,0x01,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x3c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x5a,0x00,0x00,0x00,0x38,0x01,0x00,0x00,0x58,0x00,0x00,0x00,
    +0x71,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x39,0x01,0x00,0x00,0x38,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x3a,0x01,0x00,0x00,0x32,0x01,0x00,0x00,
     0x39,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x3c,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,0x36,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,0x3e,0x01,0x00,0x00,
    -0x22,0x00,0x00,0x00,0x43,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x5a,0x00,0x00,0x00,0x3e,0x01,0x00,0x00,
    +0x58,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x3f,0x01,0x00,0x00,0x3e,0x01,0x00,0x00,
     0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x40,0x01,0x00,0x00,
     0x3c,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x25,0x00,0x00,0x00,0x42,0x01,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x48,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x5a,0x00,0x00,0x00,0x42,0x01,0x00,0x00,0x58,0x00,0x00,0x00,
    +0x7c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x43,0x01,0x00,0x00,0x42,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x44,0x01,0x00,0x00,0x26,0x01,0x00,0x00,
    -0x43,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,
    -0x46,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,
    +0x43,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x5a,0x00,0x00,0x00,
    +0x46,0x01,0x00,0x00,0x58,0x00,0x00,0x00,0x81,0x00,0x00,0x00,
     0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x47,0x01,0x00,0x00,
     0x46,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x48,0x01,0x00,0x00,0x26,0x01,0x00,0x00,0x47,0x01,0x00,0x00,
    @@ -128691,8 +132379,8 @@ unsigned char mul_mat_vec_q4_1_f16_f32_data[] = {
     0xa1,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xa1,0x00,0x00,0x00,
     0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x6f,0x01,0x00,0x00,
     0x87,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0xf1,0x00,0x00,0x00,
    -0xa2,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,
    -0xa7,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,
    +0xa2,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x5a,0x00,0x00,0x00,
    +0xa7,0x00,0x00,0x00,0x58,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
     0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,
     0xa7,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xa9,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,0x98,0x00,0x00,0x00,
    @@ -128719,59 +132407,59 @@ unsigned char mul_mat_vec_q4_1_f16_f32_data[] = {
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,
     0x40,0x01,0x00,0x00,0xba,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x50,0x01,0x00,0x00,0xc8,0x00,0x00,0x00,
    -0xbb,0x00,0x00,0x00,0x41,0x00,0x07,0x00,0x60,0x00,0x00,0x00,
    -0x51,0x01,0x00,0x00,0x5b,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,
    -0x50,0x01,0x00,0x00,0x5c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x53,0x00,0x00,0x00,0x52,0x01,0x00,0x00,0x51,0x01,0x00,0x00,
    -0x73,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0x53,0x01,0x00,0x00,
    -0x52,0x01,0x00,0x00,0x41,0x00,0x07,0x00,0x60,0x00,0x00,0x00,
    -0x57,0x01,0x00,0x00,0x5b,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,
    -0x50,0x01,0x00,0x00,0x68,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x53,0x00,0x00,0x00,0x58,0x01,0x00,0x00,0x57,0x01,0x00,0x00,
    -0x73,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0x59,0x01,0x00,0x00,
    -0x58,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x72,0x00,0x00,0x00,
    -0x5e,0x01,0x00,0x00,0x5b,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,
    -0x50,0x01,0x00,0x00,0x70,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x54,0x00,0x00,0x00,0x5f,0x01,0x00,0x00,
    +0xbb,0x00,0x00,0x00,0x41,0x00,0x07,0x00,0x26,0x00,0x00,0x00,
    +0x51,0x01,0x00,0x00,0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    +0x50,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x18,0x00,0x00,0x00,0x52,0x01,0x00,0x00,0x51,0x01,0x00,0x00,
    +0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x53,0x01,0x00,0x00,
    +0x52,0x01,0x00,0x00,0x41,0x00,0x07,0x00,0x26,0x00,0x00,0x00,
    +0x57,0x01,0x00,0x00,0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    +0x50,0x01,0x00,0x00,0x2e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x18,0x00,0x00,0x00,0x58,0x01,0x00,0x00,0x57,0x01,0x00,0x00,
    +0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x59,0x01,0x00,0x00,
    +0x58,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x38,0x00,0x00,0x00,
    +0x5e,0x01,0x00,0x00,0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    +0x50,0x01,0x00,0x00,0x36,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x5f,0x01,0x00,0x00,
     0x5e,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x60,0x01,0x00,0x00,0x5f,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x62,0x01,0x00,0x00,0x60,0x01,0x00,0x00,
    -0x77,0x00,0x00,0x00,0x70,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,
    +0x3d,0x00,0x00,0x00,0x70,0x00,0x04,0x00,0x08,0x00,0x00,0x00,
     0x63,0x01,0x00,0x00,0x62,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x65,0x01,0x00,0x00,0x60,0x01,0x00,0x00,
    -0x43,0x00,0x00,0x00,0x70,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,
    +0x41,0x00,0x00,0x00,0x70,0x00,0x04,0x00,0x08,0x00,0x00,0x00,
     0x66,0x01,0x00,0x00,0x65,0x01,0x00,0x00,0x50,0x00,0x05,0x00,
    -0x0f,0x00,0x00,0x00,0x67,0x01,0x00,0x00,0x63,0x01,0x00,0x00,
    -0x66,0x01,0x00,0x00,0x8e,0x00,0x05,0x00,0x0f,0x00,0x00,0x00,
    +0x09,0x00,0x00,0x00,0x67,0x01,0x00,0x00,0x63,0x01,0x00,0x00,
    +0x66,0x01,0x00,0x00,0x8e,0x00,0x05,0x00,0x09,0x00,0x00,0x00,
     0x69,0x01,0x00,0x00,0x67,0x01,0x00,0x00,0x53,0x01,0x00,0x00,
    -0x50,0x00,0x05,0x00,0x0f,0x00,0x00,0x00,0x6b,0x01,0x00,0x00,
    +0x50,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0x6b,0x01,0x00,0x00,
     0x59,0x01,0x00,0x00,0x59,0x01,0x00,0x00,0x81,0x00,0x05,0x00,
    -0x0f,0x00,0x00,0x00,0x6c,0x01,0x00,0x00,0x69,0x01,0x00,0x00,
    -0x6b,0x01,0x00,0x00,0x51,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,
    +0x09,0x00,0x00,0x00,0x6c,0x01,0x00,0x00,0x69,0x01,0x00,0x00,
    +0x6b,0x01,0x00,0x00,0x51,0x00,0x05,0x00,0x08,0x00,0x00,0x00,
     0xd1,0x00,0x00,0x00,0x6c,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd8,0x00,0x00,0x00,
     0x44,0x01,0x00,0x00,0xc4,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xda,0x00,0x00,0x00,0xd8,0x00,0x00,0x00,
    -0xbf,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x60,0x00,0x00,0x00,
    -0xdb,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,
    -0xda,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x53,0x00,0x00,0x00,
    +0xbf,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x26,0x00,0x00,0x00,
    +0xdb,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    +0xda,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x18,0x00,0x00,0x00,
     0xdc,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,0x73,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0xdd,0x00,0x00,0x00,0xdc,0x00,0x00,0x00,
    -0x51,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,0xe0,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0xdd,0x00,0x00,0x00,0xdc,0x00,0x00,0x00,
    +0x51,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0xe0,0x00,0x00,0x00,
     0x6c,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xe6,0x00,0x00,0x00,0xda,0x00,0x00,0x00,
    -0x55,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x60,0x00,0x00,0x00,
    -0xe7,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,
    -0xe6,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x53,0x00,0x00,0x00,
    +0x1a,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x26,0x00,0x00,0x00,
    +0xe7,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    +0xe6,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x18,0x00,0x00,0x00,
     0xe8,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,0x73,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,
    -0x85,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,0xea,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,
    +0x85,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0xea,0x00,0x00,0x00,
     0xe0,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,0x0c,0x00,0x08,0x00,
    -0x0e,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
     0x32,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,0xdd,0x00,0x00,0x00,
    -0xea,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,
    +0xea,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,
     0xed,0x00,0x00,0x00,0x9f,0x00,0x00,0x00,0x81,0x00,0x05,0x00,
    -0x0e,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0xed,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0xed,0x00,0x00,0x00,
     0xeb,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0x9f,0x00,0x00,0x00,
     0xee,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xf1,0x00,0x00,0x00,0x6f,0x01,0x00,0x00,0xaf,0x00,0x00,0x00,
    @@ -128794,10 +132482,10 @@ unsigned char mul_mat_vec_q4_1_f16_f32_data[] = {
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x04,0x01,0x00,0x00,
     0x8d,0x00,0x00,0x00,0x70,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
     0x9e,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0x9b,0x00,0x00,0x00,
    -0x04,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,
    +0x04,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,
     0x06,0x01,0x00,0x00,0x05,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x9f,0x00,0x00,0x00,
    -0x81,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,0x09,0x01,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x9f,0x00,0x00,0x00,
    +0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0x09,0x01,0x00,0x00,
     0x08,0x01,0x00,0x00,0x06,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
     0x9f,0x00,0x00,0x00,0x09,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
     0x00,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x00,0x01,0x00,0x00,
    @@ -128805,7 +132493,7 @@ unsigned char mul_mat_vec_q4_1_f16_f32_data[] = {
     0xf2,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xf8,0x00,0x00,0x00,
     0xf8,0x00,0x02,0x00,0xf8,0x00,0x00,0x00,0xc2,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,0x70,0x01,0x00,0x00,
    -0x68,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xf5,0x00,0x00,0x00,
    +0x2e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xf5,0x00,0x00,0x00,
     0xf8,0x00,0x02,0x00,0xf7,0x00,0x00,0x00,0xaa,0x00,0x05,0x00,
     0xaa,0x00,0x00,0x00,0x0e,0x01,0x00,0x00,0x8d,0x00,0x00,0x00,
     0x87,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0x10,0x01,0x00,0x00,
    @@ -128814,10 +132502,10 @@ unsigned char mul_mat_vec_q4_1_f16_f32_data[] = {
     0x0f,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x17,0x01,0x00,0x00,0x48,0x01,0x00,0x00,0x89,0x00,0x00,0x00,
     0x41,0x00,0x05,0x00,0x9e,0x00,0x00,0x00,0x18,0x01,0x00,0x00,
    -0x9b,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0x19,0x01,0x00,0x00,0x18,0x01,0x00,0x00,
    +0x9b,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x08,0x00,0x00,0x00,0x19,0x01,0x00,0x00,0x18,0x01,0x00,0x00,
     0x41,0x00,0x06,0x00,0x1a,0x01,0x00,0x00,0x1b,0x01,0x00,0x00,
    -0x14,0x01,0x00,0x00,0x5c,0x00,0x00,0x00,0x17,0x01,0x00,0x00,
    +0x14,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x17,0x01,0x00,0x00,
     0x3e,0x00,0x03,0x00,0x1b,0x01,0x00,0x00,0x19,0x01,0x00,0x00,
     0xf9,0x00,0x02,0x00,0x10,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
     0x10,0x01,0x00,0x00,0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
    @@ -128834,46 +132522,46 @@ unsigned char mul_mat_vec_q4_1_f32_f32_data[] = {
     0x2e,0x34,0x35,0x30,0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00,
     0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0f,0x00,0x0d,0x00,
     0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e,
    -0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x5b,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x8b,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,
    +0x58,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x8b,0x00,0x00,0x00,
     0x9b,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0x13,0x01,0x00,0x00,
     0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00,
     0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    -0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x1c,0x00,0x00,0x00,
     0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x20,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,
    -0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x20,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x20,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,
    -0x09,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    -0x20,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x56,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x57,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x57,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x57,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x58,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x14,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x59,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x59,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x59,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x5b,0x00,0x00,0x00,
    -0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x5b,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x1c,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x1c,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x1d,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x48,0x00,0x04,0x00,
    +0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    +0x1e,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x20,0x00,0x00,0x00,0x21,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x4f,0x00,0x00,0x00,
    +0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x56,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x56,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x56,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x56,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x56,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x56,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x56,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x56,0x00,0x00,0x00,
    +0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x56,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x56,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x24,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x56,0x00,0x00,0x00,
    +0x0a,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x28,0x00,0x00,0x00,
    +0x47,0x00,0x03,0x00,0x56,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
     0x47,0x00,0x04,0x00,0x86,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
     0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x8b,0x00,0x00,0x00,
     0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    @@ -128900,130 +132588,130 @@ unsigned char mul_mat_vec_q4_1_f32_f32_data[] = {
     0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00,
     0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x00,0x03,0x00,
    -0x0e,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x17,0x00,0x04,0x00,
    -0x0f,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    -0x17,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x18,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x17,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0x18,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x17,0x00,0x04,0x00,
    +0x09,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x16,0x00,0x03,0x00,0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
    +0x15,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x1a,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,
    +0x1b,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,
    +0x1e,0x00,0x05,0x00,0x1c,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    +0x1d,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
    +0x1e,0x00,0x00,0x00,0x1d,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x1f,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x21,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x26,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
    +0x2e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x21,0x00,0x00,0x00,0x36,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x38,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x19,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x3d,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x21,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x17,0x00,0x04,0x00,0x4d,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x4e,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0x4e,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x50,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x51,0x00,0x00,0x00,
     0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x1e,0x00,0x0d,0x00,
    -0x20,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x56,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
     0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
     0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
     0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
    -0x22,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x15,0x00,0x04,0x00,
    -0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,
    -0x08,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x25,0x00,0x00,0x00,
    -0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x23,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x36,0x00,0x00,0x00,
    -0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,
    -0x3c,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x23,0x00,0x00,0x00,0x43,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x48,0x00,0x00,0x00,
    -0x05,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,
    -0x4d,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x16,0x00,0x03,0x00,
    -0x53,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x15,0x00,0x04,0x00,
    -0x54,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x55,0x00,0x00,0x00,
    -0x10,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0x56,0x00,0x00,0x00,
    -0x54,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x1e,0x00,0x05,0x00,
    -0x57,0x00,0x00,0x00,0x53,0x00,0x00,0x00,0x53,0x00,0x00,0x00,
    -0x56,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x58,0x00,0x00,0x00,
    -0x57,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x59,0x00,0x00,0x00,
    -0x58,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x5a,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0x5a,0x00,0x00,0x00,0x5b,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x60,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x53,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x23,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x70,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x72,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x77,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x57,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x56,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x57,0x00,0x00,0x00,
    +0x58,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x21,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x5a,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
    +0x65,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x21,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x71,0x00,0x00,0x00,
    +0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
    +0x7c,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x21,0x00,0x00,0x00,0x81,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x4e,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
     0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x87,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0x18,0x00,0x00,0x00,0x8b,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0x8b,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
     0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x98,0x00,0x00,0x00,
     0x20,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0x99,0x00,0x00,0x00,
    -0x0e,0x00,0x00,0x00,0x98,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x08,0x00,0x00,0x00,0x98,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
     0x9a,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x99,0x00,0x00,0x00,
     0x3b,0x00,0x04,0x00,0x9a,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,
    -0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x08,0x00,0x00,0x00,
     0x9d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x9e,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,
    +0x9e,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
     0x14,0x00,0x02,0x00,0xaa,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
     0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xba,0x00,0x00,0x00,
     0x20,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0xd2,0x00,0x00,0x00,
    -0x0e,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xd3,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xd3,0x00,0x00,0x00,
     0xd2,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xd4,0x00,0x00,0x00,
     0x0c,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
     0xd4,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
     0x20,0x00,0x04,0x00,0xdb,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x0e,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0xf1,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
     0x98,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    -0x10,0x01,0x00,0x00,0x0e,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
    +0x10,0x01,0x00,0x00,0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
     0x11,0x01,0x00,0x00,0x10,0x01,0x00,0x00,0x20,0x00,0x04,0x00,
     0x12,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x11,0x01,0x00,0x00,
     0x3b,0x00,0x04,0x00,0x12,0x01,0x00,0x00,0x13,0x01,0x00,0x00,
     0x0c,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x1a,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x33,0x00,0x06,0x00,
    -0x17,0x00,0x00,0x00,0x1b,0x01,0x00,0x00,0x1a,0x01,0x00,0x00,
    -0x1a,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x36,0x00,0x05,0x00,
    +0x4d,0x00,0x00,0x00,0x1b,0x01,0x00,0x00,0x1a,0x01,0x00,0x00,
    +0x50,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x36,0x00,0x05,0x00,
     0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
     0x03,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x88,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x51,0x00,0x00,0x00,0x88,0x00,0x00,0x00,
     0x86,0x00,0x00,0x00,0x87,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x89,0x00,0x00,0x00,0x88,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x8c,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x51,0x00,0x00,0x00,0x8c,0x00,0x00,0x00,
     0x8b,0x00,0x00,0x00,0x87,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,0x8c,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x23,0x01,0x00,0x00,
    -0x19,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x51,0x00,0x00,0x00,0x23,0x01,0x00,0x00,
    +0x4f,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x24,0x01,0x00,0x00,0x23,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,0x26,0x01,0x00,0x00,
    -0x22,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x5a,0x00,0x00,0x00,0x26,0x01,0x00,0x00,
    +0x58,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x27,0x01,0x00,0x00,0x26,0x01,0x00,0x00,
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x28,0x01,0x00,0x00,
     0x24,0x01,0x00,0x00,0x27,0x01,0x00,0x00,0x89,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x2c,0x01,0x00,0x00,0x24,0x01,0x00,0x00,
    -0x27,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,
    -0x2e,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x30,0x00,0x00,0x00,
    +0x27,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x5a,0x00,0x00,0x00,
    +0x2e,0x01,0x00,0x00,0x58,0x00,0x00,0x00,0x65,0x00,0x00,0x00,
     0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x2f,0x01,0x00,0x00,
     0x2e,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x30,0x01,0x00,0x00,0x28,0x01,0x00,0x00,0x2f,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,0x32,0x01,0x00,0x00,
    -0x22,0x00,0x00,0x00,0x36,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x5a,0x00,0x00,0x00,0x32,0x01,0x00,0x00,
    +0x58,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x33,0x01,0x00,0x00,0x32,0x01,0x00,0x00,
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x34,0x01,0x00,0x00,
     0x2c,0x01,0x00,0x00,0x33,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x25,0x00,0x00,0x00,0x36,0x01,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x3c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x5a,0x00,0x00,0x00,0x36,0x01,0x00,0x00,0x58,0x00,0x00,0x00,
    +0x71,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x37,0x01,0x00,0x00,0x36,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x38,0x01,0x00,0x00,0x30,0x01,0x00,0x00,
     0x37,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x3a,0x01,0x00,0x00,0x38,0x01,0x00,0x00,0x34,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,0x3c,0x01,0x00,0x00,
    -0x22,0x00,0x00,0x00,0x43,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x5a,0x00,0x00,0x00,0x3c,0x01,0x00,0x00,
    +0x58,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x3d,0x01,0x00,0x00,0x3c,0x01,0x00,0x00,
     0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3e,0x01,0x00,0x00,
     0x3a,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x25,0x00,0x00,0x00,0x40,0x01,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x48,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x5a,0x00,0x00,0x00,0x40,0x01,0x00,0x00,0x58,0x00,0x00,0x00,
    +0x7c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x41,0x01,0x00,0x00,0x40,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x42,0x01,0x00,0x00,0x24,0x01,0x00,0x00,
    -0x41,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,
    -0x44,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,
    +0x41,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x5a,0x00,0x00,0x00,
    +0x44,0x01,0x00,0x00,0x58,0x00,0x00,0x00,0x81,0x00,0x00,0x00,
     0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x45,0x01,0x00,0x00,
     0x44,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x46,0x01,0x00,0x00,0x24,0x01,0x00,0x00,0x45,0x01,0x00,0x00,
    @@ -129033,8 +132721,8 @@ unsigned char mul_mat_vec_q4_1_f32_f32_data[] = {
     0xa1,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xa1,0x00,0x00,0x00,
     0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x6d,0x01,0x00,0x00,
     0x87,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,
    -0xa2,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,
    -0xa7,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,
    +0xa2,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x5a,0x00,0x00,0x00,
    +0xa7,0x00,0x00,0x00,0x58,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
     0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,
     0xa7,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xa9,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,0x98,0x00,0x00,0x00,
    @@ -129061,56 +132749,56 @@ unsigned char mul_mat_vec_q4_1_f32_f32_data[] = {
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,
     0x3e,0x01,0x00,0x00,0xba,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x4e,0x01,0x00,0x00,0xc8,0x00,0x00,0x00,
    -0xbb,0x00,0x00,0x00,0x41,0x00,0x07,0x00,0x60,0x00,0x00,0x00,
    -0x4f,0x01,0x00,0x00,0x5b,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,
    -0x4e,0x01,0x00,0x00,0x5c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x53,0x00,0x00,0x00,0x50,0x01,0x00,0x00,0x4f,0x01,0x00,0x00,
    -0x73,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0x51,0x01,0x00,0x00,
    -0x50,0x01,0x00,0x00,0x41,0x00,0x07,0x00,0x60,0x00,0x00,0x00,
    -0x55,0x01,0x00,0x00,0x5b,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,
    -0x4e,0x01,0x00,0x00,0x68,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x53,0x00,0x00,0x00,0x56,0x01,0x00,0x00,0x55,0x01,0x00,0x00,
    -0x73,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0x57,0x01,0x00,0x00,
    -0x56,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x72,0x00,0x00,0x00,
    -0x5c,0x01,0x00,0x00,0x5b,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,
    -0x4e,0x01,0x00,0x00,0x70,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x54,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,
    +0xbb,0x00,0x00,0x00,0x41,0x00,0x07,0x00,0x26,0x00,0x00,0x00,
    +0x4f,0x01,0x00,0x00,0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    +0x4e,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x18,0x00,0x00,0x00,0x50,0x01,0x00,0x00,0x4f,0x01,0x00,0x00,
    +0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x51,0x01,0x00,0x00,
    +0x50,0x01,0x00,0x00,0x41,0x00,0x07,0x00,0x26,0x00,0x00,0x00,
    +0x55,0x01,0x00,0x00,0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    +0x4e,0x01,0x00,0x00,0x2e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x18,0x00,0x00,0x00,0x56,0x01,0x00,0x00,0x55,0x01,0x00,0x00,
    +0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x57,0x01,0x00,0x00,
    +0x56,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x38,0x00,0x00,0x00,
    +0x5c,0x01,0x00,0x00,0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    +0x4e,0x01,0x00,0x00,0x36,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,
     0x5c,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x5e,0x01,0x00,0x00,0x5d,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x60,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,
    -0x77,0x00,0x00,0x00,0x70,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,
    +0x3d,0x00,0x00,0x00,0x70,0x00,0x04,0x00,0x08,0x00,0x00,0x00,
     0x61,0x01,0x00,0x00,0x60,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x63,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,
    -0x43,0x00,0x00,0x00,0x70,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,
    +0x41,0x00,0x00,0x00,0x70,0x00,0x04,0x00,0x08,0x00,0x00,0x00,
     0x64,0x01,0x00,0x00,0x63,0x01,0x00,0x00,0x50,0x00,0x05,0x00,
    -0x0f,0x00,0x00,0x00,0x65,0x01,0x00,0x00,0x61,0x01,0x00,0x00,
    -0x64,0x01,0x00,0x00,0x8e,0x00,0x05,0x00,0x0f,0x00,0x00,0x00,
    +0x09,0x00,0x00,0x00,0x65,0x01,0x00,0x00,0x61,0x01,0x00,0x00,
    +0x64,0x01,0x00,0x00,0x8e,0x00,0x05,0x00,0x09,0x00,0x00,0x00,
     0x67,0x01,0x00,0x00,0x65,0x01,0x00,0x00,0x51,0x01,0x00,0x00,
    -0x50,0x00,0x05,0x00,0x0f,0x00,0x00,0x00,0x69,0x01,0x00,0x00,
    +0x50,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0x69,0x01,0x00,0x00,
     0x57,0x01,0x00,0x00,0x57,0x01,0x00,0x00,0x81,0x00,0x05,0x00,
    -0x0f,0x00,0x00,0x00,0x6a,0x01,0x00,0x00,0x67,0x01,0x00,0x00,
    -0x69,0x01,0x00,0x00,0x51,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,
    +0x09,0x00,0x00,0x00,0x6a,0x01,0x00,0x00,0x67,0x01,0x00,0x00,
    +0x69,0x01,0x00,0x00,0x51,0x00,0x05,0x00,0x08,0x00,0x00,0x00,
     0xd1,0x00,0x00,0x00,0x6a,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd8,0x00,0x00,0x00,
     0x42,0x01,0x00,0x00,0xc4,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xda,0x00,0x00,0x00,0xd8,0x00,0x00,0x00,
     0xbf,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xdb,0x00,0x00,0x00,
    -0xdc,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,
    -0xda,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,
    +0xdc,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    +0xda,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,
     0xdd,0x00,0x00,0x00,0xdc,0x00,0x00,0x00,0x51,0x00,0x05,0x00,
    -0x0e,0x00,0x00,0x00,0xe0,0x00,0x00,0x00,0x6a,0x01,0x00,0x00,
    +0x08,0x00,0x00,0x00,0xe0,0x00,0x00,0x00,0x6a,0x01,0x00,0x00,
     0x01,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xe6,0x00,0x00,0x00,0xda,0x00,0x00,0x00,0x55,0x00,0x00,0x00,
    +0xe6,0x00,0x00,0x00,0xda,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,
     0x41,0x00,0x06,0x00,0xdb,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,
    -0xd5,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,0xe6,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,
    -0xe7,0x00,0x00,0x00,0x85,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,
    +0xd5,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0xe6,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,
    +0xe7,0x00,0x00,0x00,0x85,0x00,0x05,0x00,0x08,0x00,0x00,0x00,
     0xe9,0x00,0x00,0x00,0xe0,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,
    -0x0c,0x00,0x08,0x00,0x0e,0x00,0x00,0x00,0xea,0x00,0x00,0x00,
    +0x0c,0x00,0x08,0x00,0x08,0x00,0x00,0x00,0xea,0x00,0x00,0x00,
     0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,
     0xdd,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0xec,0x00,0x00,0x00,0x9f,0x00,0x00,0x00,
    -0x81,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,0xed,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0xec,0x00,0x00,0x00,0x9f,0x00,0x00,0x00,
    +0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0xed,0x00,0x00,0x00,
     0xec,0x00,0x00,0x00,0xea,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,
     0x9f,0x00,0x00,0x00,0xed,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x6d,0x01,0x00,0x00,
    @@ -129134,9 +132822,9 @@ unsigned char mul_mat_vec_q4_1_f32_f32_data[] = {
     0x03,0x01,0x00,0x00,0x8d,0x00,0x00,0x00,0x6e,0x01,0x00,0x00,
     0x41,0x00,0x05,0x00,0x9e,0x00,0x00,0x00,0x04,0x01,0x00,0x00,
     0x9b,0x00,0x00,0x00,0x03,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0x04,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0x07,0x01,0x00,0x00,
    -0x9f,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0x04,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x07,0x01,0x00,0x00,
    +0x9f,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00,
     0x08,0x01,0x00,0x00,0x07,0x01,0x00,0x00,0x05,0x01,0x00,0x00,
     0x3e,0x00,0x03,0x00,0x9f,0x00,0x00,0x00,0x08,0x01,0x00,0x00,
     0xf9,0x00,0x02,0x00,0xff,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    @@ -129144,7 +132832,7 @@ unsigned char mul_mat_vec_q4_1_f32_f32_data[] = {
     0xaf,0x00,0x00,0x00,0xf1,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
     0xf7,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xf7,0x00,0x00,0x00,
     0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0b,0x01,0x00,0x00,
    -0x6e,0x01,0x00,0x00,0x68,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x6e,0x01,0x00,0x00,0x2e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
     0xf4,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xf6,0x00,0x00,0x00,
     0xaa,0x00,0x05,0x00,0xaa,0x00,0x00,0x00,0x0d,0x01,0x00,0x00,
     0x8d,0x00,0x00,0x00,0x87,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,
    @@ -129153,10 +132841,10 @@ unsigned char mul_mat_vec_q4_1_f32_f32_data[] = {
     0xf8,0x00,0x02,0x00,0x0e,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x16,0x01,0x00,0x00,0x46,0x01,0x00,0x00,
     0x89,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x9e,0x00,0x00,0x00,
    -0x17,0x01,0x00,0x00,0x9b,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0x18,0x01,0x00,0x00,
    +0x17,0x01,0x00,0x00,0x9b,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x18,0x01,0x00,0x00,
     0x17,0x01,0x00,0x00,0x41,0x00,0x06,0x00,0xdb,0x00,0x00,0x00,
    -0x19,0x01,0x00,0x00,0x13,0x01,0x00,0x00,0x5c,0x00,0x00,0x00,
    +0x19,0x01,0x00,0x00,0x13,0x01,0x00,0x00,0x22,0x00,0x00,0x00,
     0x16,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x19,0x01,0x00,0x00,
     0x18,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x0f,0x01,0x00,0x00,
     0xf8,0x00,0x02,0x00,0x0f,0x01,0x00,0x00,0xfd,0x00,0x01,0x00,
    @@ -129164,7 +132852,7 @@ unsigned char mul_mat_vec_q4_1_f32_f32_data[] = {
     };
     const uint64_t mul_mat_vec_q4_1_f32_f32_len = 4012;
     
    -unsigned char mul_mat_vec_q4_K_f16_f32_data[] = {
    +unsigned char mul_mat_vec_q4_k_f16_f32_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
     0x0c,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00,
     0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x27,0x00,0x00,0x00,
    @@ -130033,9 +133721,9 @@ unsigned char mul_mat_vec_q4_K_f16_f32_data[] = {
     0xcf,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0xcf,0x03,0x00,0x00,
     0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
     };
    -const uint64_t mul_mat_vec_q4_K_f16_f32_len = 10400;
    +const uint64_t mul_mat_vec_q4_k_f16_f32_len = 10400;
     
    -unsigned char mul_mat_vec_q4_K_f32_f32_data[] = {
    +unsigned char mul_mat_vec_q4_k_f32_f32_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
     0xec,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00,
     0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x27,0x00,0x00,0x00,
    @@ -130862,7 +134550,7 @@ unsigned char mul_mat_vec_q4_K_f32_f32_data[] = {
     0xb0,0x03,0x00,0x00,0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
     
     };
    -const uint64_t mul_mat_vec_q4_K_f32_f32_len = 9888;
    +const uint64_t mul_mat_vec_q4_k_f32_f32_len = 9888;
     
     unsigned char mul_mat_vec_q5_0_f16_f32_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
    @@ -130873,48 +134561,48 @@ unsigned char mul_mat_vec_q5_0_f16_f32_data[] = {
     0x2e,0x34,0x35,0x30,0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00,
     0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0f,0x00,0x0d,0x00,
     0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e,
    -0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x5e,0x00,0x00,0x00,0xae,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x78,0x00,0x00,0x00,
    +0x80,0x00,0x00,0x00,0xae,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,
     0xc2,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0x3a,0x01,0x00,0x00,
     0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00,
     0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    -0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x20,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,
    -0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x20,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x20,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,
    -0x09,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    -0x20,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x56,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x59,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x5a,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x1e,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x1f,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x1f,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x20,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x16,0x00,0x00,0x00,
    +0x48,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x21,0x00,0x00,0x00,
     0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x5a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x5a,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x5b,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x16,0x00,0x00,0x00,0x48,0x00,0x04,0x00,
    -0x5c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x5c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    -0x5c,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x5e,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x5e,0x00,0x00,0x00,0x21,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xae,0x00,0x00,0x00,
    +0x47,0x00,0x03,0x00,0x21,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x23,0x00,0x00,0x00,
    +0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x78,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x7e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x7e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x7e,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x7e,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x7e,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x7e,0x00,0x00,0x00,
    +0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x7e,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x7e,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x7e,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x7e,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x7e,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x28,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x7e,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xae,0x00,0x00,0x00,
     0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
     0xb2,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
     0x47,0x00,0x04,0x00,0xbf,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    @@ -130940,140 +134628,140 @@ unsigned char mul_mat_vec_q5_0_f16_f32_data[] = {
     0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00,
     0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x16,0x00,0x03,0x00,0x0e,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x17,0x00,0x04,0x00,0x0f,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x17,0x00,0x04,0x00,0x17,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x18,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x17,0x00,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x1a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x1b,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x1e,0x00,0x0d,0x00,0x20,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
    -0x09,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0x21,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    -0x15,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,
    -0x24,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x25,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x30,0x00,0x00,0x00,
    -0x0a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,
    -0x36,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x23,0x00,0x00,0x00,0x3c,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x43,0x00,0x00,0x00,
    -0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,
    -0x48,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x23,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x16,0x00,0x03,0x00,0x53,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
    -0x15,0x00,0x04,0x00,0x54,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x55,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,
    -0x56,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x55,0x00,0x00,0x00,
    -0x15,0x00,0x04,0x00,0x57,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x58,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,
    -0x59,0x00,0x00,0x00,0x57,0x00,0x00,0x00,0x58,0x00,0x00,0x00,
    -0x1e,0x00,0x05,0x00,0x5a,0x00,0x00,0x00,0x53,0x00,0x00,0x00,
    -0x56,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    -0x5b,0x00,0x00,0x00,0x5a,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
    -0x5c,0x00,0x00,0x00,0x5b,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x5d,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0x5d,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,
    -0x5f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x63,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x53,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x6c,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x23,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,
    -0x8e,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x90,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x57,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x95,0x00,0x00,0x00,
    +0x16,0x00,0x03,0x00,0x08,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x17,0x00,0x04,0x00,0x09,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0x18,0x00,0x00,0x00,
    +0x10,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x19,0x00,0x00,0x00,
    +0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x1c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    +0x1a,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x1c,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x1d,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
    +0x1c,0x00,0x04,0x00,0x1e,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,
    +0x1d,0x00,0x00,0x00,0x1e,0x00,0x05,0x00,0x1f,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,
    +0x1d,0x00,0x03,0x00,0x20,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,
    +0x1e,0x00,0x03,0x00,0x21,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x22,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x21,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x22,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x15,0x00,0x04,0x00,
    +0x24,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x24,0x00,0x00,0x00,0x25,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x29,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x24,0x00,0x00,0x00,0x31,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x32,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x19,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x24,0x00,0x00,0x00,
    +0x36,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x24,0x00,0x00,0x00,0x45,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x24,0x00,0x00,0x00,
    +0x55,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x57,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,
     0x0f,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x97,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0xa6,0x00,0x00,0x00,0x00,0x00,0x80,0x41,
    -0x3b,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0xae,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x18,0x00,0x00,0x00,
    +0x5e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x67,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,
    +0x00,0x00,0x80,0x41,0x17,0x00,0x04,0x00,0x76,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x77,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x77,0x00,0x00,0x00,0x78,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x79,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x1e,0x00,0x0d,0x00,
    +0x7e,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x7e,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,
    +0x80,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x24,0x00,0x00,0x00,0x81,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x82,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x24,0x00,0x00,0x00,
    +0x8d,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x24,0x00,0x00,0x00,0x93,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x24,0x00,0x00,0x00,0x99,0x00,0x00,0x00,
    +0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x24,0x00,0x00,0x00,
    +0xa4,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x24,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x77,0x00,0x00,0x00,0xae,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x77,0x00,0x00,0x00,
     0xb2,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x1c,0x00,0x04,0x00,0xc0,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,
    +0x1c,0x00,0x04,0x00,0xc0,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
     0xbf,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xc1,0x00,0x00,0x00,
     0x04,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
     0xc1,0x00,0x00,0x00,0xc2,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,
     0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xc5,0x00,0x00,0x00,
    -0x04,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x14,0x00,0x02,0x00,
    +0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x14,0x00,0x02,0x00,
     0xd1,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0xe0,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    -0xf8,0x00,0x00,0x00,0x53,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
    +0xf8,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
     0xf9,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
     0xfa,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xf9,0x00,0x00,0x00,
     0x3b,0x00,0x04,0x00,0xfa,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
     0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x18,0x01,0x00,0x00,0x08,0x01,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x1a,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
    -0xbf,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    -0x37,0x01,0x00,0x00,0x0e,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
    +0xbf,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    +0x37,0x01,0x00,0x00,0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
     0x38,0x01,0x00,0x00,0x37,0x01,0x00,0x00,0x20,0x00,0x04,0x00,
     0x39,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x38,0x01,0x00,0x00,
     0x3b,0x00,0x04,0x00,0x39,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,
     0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x40,0x01,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
    +0x0c,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x42,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x33,0x00,0x06,0x00,0x17,0x00,0x00,0x00,0x43,0x01,0x00,0x00,
    -0x42,0x01,0x00,0x00,0x1a,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,
    -0x2c,0x00,0x05,0x00,0x0f,0x00,0x00,0x00,0xb7,0x01,0x00,0x00,
    -0xa6,0x00,0x00,0x00,0xa6,0x00,0x00,0x00,0x36,0x00,0x05,0x00,
    +0x33,0x00,0x06,0x00,0x76,0x00,0x00,0x00,0x43,0x01,0x00,0x00,
    +0x42,0x01,0x00,0x00,0x67,0x00,0x00,0x00,0x67,0x00,0x00,0x00,
    +0x2c,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0xb7,0x01,0x00,0x00,
    +0x6e,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x36,0x00,0x05,0x00,
     0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
     0x03,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,
    -0xae,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x79,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,
    +0xae,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0xb0,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,
    -0xb2,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x79,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,
    +0xb2,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x4b,0x01,0x00,0x00,
    -0x19,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x79,0x00,0x00,0x00,0x4b,0x01,0x00,0x00,
    +0x78,0x00,0x00,0x00,0x67,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x4c,0x01,0x00,0x00,0x4b,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,0x4e,0x01,0x00,0x00,
    -0x22,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x82,0x00,0x00,0x00,0x4e,0x01,0x00,0x00,
    +0x80,0x00,0x00,0x00,0x81,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x4f,0x01,0x00,0x00,0x4e,0x01,0x00,0x00,
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x50,0x01,0x00,0x00,
     0x4c,0x01,0x00,0x00,0x4f,0x01,0x00,0x00,0x89,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x54,0x01,0x00,0x00,0x4c,0x01,0x00,0x00,
    -0x4f,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,
    -0x56,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x30,0x00,0x00,0x00,
    +0x4f,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x82,0x00,0x00,0x00,
    +0x56,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,
     0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x57,0x01,0x00,0x00,
     0x56,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x58,0x01,0x00,0x00,0x50,0x01,0x00,0x00,0x57,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,0x5a,0x01,0x00,0x00,
    -0x22,0x00,0x00,0x00,0x36,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x82,0x00,0x00,0x00,0x5a,0x01,0x00,0x00,
    +0x80,0x00,0x00,0x00,0x93,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x5b,0x01,0x00,0x00,0x5a,0x01,0x00,0x00,
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5c,0x01,0x00,0x00,
     0x54,0x01,0x00,0x00,0x5b,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x25,0x00,0x00,0x00,0x5e,0x01,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x3c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x82,0x00,0x00,0x00,0x5e,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
    +0x99,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x5f,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x60,0x01,0x00,0x00,0x58,0x01,0x00,0x00,
     0x5f,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x62,0x01,0x00,0x00,0x60,0x01,0x00,0x00,0x5c,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,0x64,0x01,0x00,0x00,
    -0x22,0x00,0x00,0x00,0x43,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x82,0x00,0x00,0x00,0x64,0x01,0x00,0x00,
    +0x80,0x00,0x00,0x00,0x45,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x65,0x01,0x00,0x00,0x64,0x01,0x00,0x00,
     0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x66,0x01,0x00,0x00,
     0x62,0x01,0x00,0x00,0x65,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x25,0x00,0x00,0x00,0x68,0x01,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x48,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x82,0x00,0x00,0x00,0x68,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
    +0xa4,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x69,0x01,0x00,0x00,0x68,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x6a,0x01,0x00,0x00,0x4c,0x01,0x00,0x00,
    -0x69,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,
    -0x6c,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,
    +0x69,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x82,0x00,0x00,0x00,
    +0x6c,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,
     0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x6d,0x01,0x00,0x00,
     0x6c,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x6e,0x01,0x00,0x00,0x4c,0x01,0x00,0x00,0x6d,0x01,0x00,0x00,
    @@ -131082,9 +134770,9 @@ unsigned char mul_mat_vec_q5_0_f16_f32_data[] = {
     0xc6,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
     0xc8,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xc8,0x00,0x00,0x00,
     0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xb4,0x01,0x00,0x00,
    -0x97,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x17,0x01,0x00,0x00,
    -0xc9,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,
    -0xce,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,
    +0x5e,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x17,0x01,0x00,0x00,
    +0xc9,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x82,0x00,0x00,0x00,
    +0xce,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x25,0x00,0x00,0x00,
     0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,
     0xce,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xd0,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,
    @@ -131095,7 +134783,7 @@ unsigned char mul_mat_vec_q5_0_f16_f32_data[] = {
     0xca,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xc9,0x00,0x00,0x00,
     0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,
     0xb4,0x01,0x00,0x00,0xbf,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xd7,0x00,0x00,0x00,0x55,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0xd7,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,
     0xb4,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xd8,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0xd7,0x00,0x00,0x00,
     0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdd,0x00,0x00,0x00,
    @@ -131106,101 +134794,101 @@ unsigned char mul_mat_vec_q5_0_f16_f32_data[] = {
     0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe4,0x00,0x00,0x00,
     0xd8,0x00,0x00,0x00,0xe0,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xe5,0x00,0x00,0x00,0xe4,0x00,0x00,0x00,
    -0x55,0x00,0x00,0x00,0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x1a,0x00,0x00,0x00,0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xea,0x00,0x00,0x00,0xd8,0x00,0x00,0x00,0xe4,0x00,0x00,0x00,
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xee,0x00,0x00,0x00,
     0x66,0x01,0x00,0x00,0xe0,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x77,0x01,0x00,0x00,0xee,0x00,0x00,0x00,
    -0xe1,0x00,0x00,0x00,0x41,0x00,0x07,0x00,0x63,0x00,0x00,0x00,
    -0x78,0x01,0x00,0x00,0x5e,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,
    -0x77,0x01,0x00,0x00,0x5f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x53,0x00,0x00,0x00,0x79,0x01,0x00,0x00,0x78,0x01,0x00,0x00,
    -0x73,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0x7a,0x01,0x00,0x00,
    -0x79,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x6c,0x00,0x00,0x00,
    -0x7e,0x01,0x00,0x00,0x5e,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,
    -0x77,0x01,0x00,0x00,0x6b,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x54,0x00,0x00,0x00,0x7f,0x01,0x00,0x00,
    +0xe1,0x00,0x00,0x00,0x41,0x00,0x07,0x00,0x29,0x00,0x00,0x00,
    +0x78,0x01,0x00,0x00,0x23,0x00,0x00,0x00,0x25,0x00,0x00,0x00,
    +0x77,0x01,0x00,0x00,0x25,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x18,0x00,0x00,0x00,0x79,0x01,0x00,0x00,0x78,0x01,0x00,0x00,
    +0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x7a,0x01,0x00,0x00,
    +0x79,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x32,0x00,0x00,0x00,
    +0x7e,0x01,0x00,0x00,0x23,0x00,0x00,0x00,0x25,0x00,0x00,0x00,
    +0x77,0x01,0x00,0x00,0x31,0x00,0x00,0x00,0x31,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x7f,0x01,0x00,0x00,
     0x7e,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x80,0x01,0x00,0x00,0x7f,0x01,0x00,0x00,0xc4,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x81,0x01,0x00,0x00,0x80,0x01,0x00,0x00,
    -0x70,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0x6c,0x00,0x00,0x00,
    -0x85,0x01,0x00,0x00,0x5e,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,
    -0x77,0x01,0x00,0x00,0x6b,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x54,0x00,0x00,0x00,0x86,0x01,0x00,0x00,
    +0x36,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0x32,0x00,0x00,0x00,
    +0x85,0x01,0x00,0x00,0x23,0x00,0x00,0x00,0x25,0x00,0x00,0x00,
    +0x77,0x01,0x00,0x00,0x31,0x00,0x00,0x00,0x25,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x86,0x01,0x00,0x00,
     0x85,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x87,0x01,0x00,0x00,0x86,0x01,0x00,0x00,0xc5,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x88,0x01,0x00,0x00,0x81,0x01,0x00,0x00,
     0x87,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x8b,0x01,0x00,0x00,0x88,0x01,0x00,0x00,0xe5,0x00,0x00,0x00,
     0xc4,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8c,0x01,0x00,0x00,
    -0x8b,0x01,0x00,0x00,0x43,0x00,0x00,0x00,0xc7,0x00,0x05,0x00,
    +0x8b,0x01,0x00,0x00,0x45,0x00,0x00,0x00,0xc7,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x8d,0x01,0x00,0x00,0x8c,0x01,0x00,0x00,
    -0x58,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x23,0x00,0x00,0x00,
    +0x1d,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x24,0x00,0x00,0x00,
     0x8e,0x01,0x00,0x00,0x8d,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x91,0x01,0x00,0x00,0xe5,0x00,0x00,0x00,
    -0x84,0x00,0x00,0x00,0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x4b,0x00,0x00,0x00,0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x92,0x01,0x00,0x00,0x88,0x01,0x00,0x00,0x91,0x01,0x00,0x00,
     0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x93,0x01,0x00,0x00,
    -0x92,0x01,0x00,0x00,0x58,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,
    -0x23,0x00,0x00,0x00,0x94,0x01,0x00,0x00,0x93,0x01,0x00,0x00,
    -0x41,0x00,0x08,0x00,0x90,0x00,0x00,0x00,0x9a,0x01,0x00,0x00,
    -0x5e,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,0x77,0x01,0x00,0x00,
    -0x8e,0x00,0x00,0x00,0xe5,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x57,0x00,0x00,0x00,0x9b,0x01,0x00,0x00,0x9a,0x01,0x00,0x00,
    +0x92,0x01,0x00,0x00,0x1d,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,
    +0x24,0x00,0x00,0x00,0x94,0x01,0x00,0x00,0x93,0x01,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x57,0x00,0x00,0x00,0x9a,0x01,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x77,0x01,0x00,0x00,
    +0x55,0x00,0x00,0x00,0xe5,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x1c,0x00,0x00,0x00,0x9b,0x01,0x00,0x00,0x9a,0x01,0x00,0x00,
     0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x9c,0x01,0x00,0x00,
     0x9b,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x9e,0x01,0x00,0x00,0x9c,0x01,0x00,0x00,0x95,0x00,0x00,0x00,
    +0x9e,0x01,0x00,0x00,0x9c,0x01,0x00,0x00,0x5c,0x00,0x00,0x00,
     0x7c,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa1,0x01,0x00,0x00,
     0x8e,0x01,0x00,0x00,0xc5,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xa2,0x01,0x00,0x00,0x9e,0x01,0x00,0x00,0xa1,0x01,0x00,0x00,
    -0x70,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0xa3,0x01,0x00,0x00,
    +0x70,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xa3,0x01,0x00,0x00,
     0xa2,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xa5,0x01,0x00,0x00,0x9c,0x01,0x00,0x00,0x43,0x00,0x00,0x00,
    +0xa5,0x01,0x00,0x00,0x9c,0x01,0x00,0x00,0x45,0x00,0x00,0x00,
     0x7c,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa8,0x01,0x00,0x00,
     0x94,0x01,0x00,0x00,0xc5,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xa9,0x01,0x00,0x00,0xa5,0x01,0x00,0x00,0xa8,0x01,0x00,0x00,
    -0x70,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0xaa,0x01,0x00,0x00,
    -0xa9,0x01,0x00,0x00,0x50,0x00,0x05,0x00,0x0f,0x00,0x00,0x00,
    +0x70,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xaa,0x01,0x00,0x00,
    +0xa9,0x01,0x00,0x00,0x50,0x00,0x05,0x00,0x09,0x00,0x00,0x00,
     0xab,0x01,0x00,0x00,0xa3,0x01,0x00,0x00,0xaa,0x01,0x00,0x00,
    -0x83,0x00,0x05,0x00,0x0f,0x00,0x00,0x00,0xad,0x01,0x00,0x00,
    +0x83,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0xad,0x01,0x00,0x00,
     0xab,0x01,0x00,0x00,0xb7,0x01,0x00,0x00,0x8e,0x00,0x05,0x00,
    -0x0f,0x00,0x00,0x00,0xaf,0x01,0x00,0x00,0xad,0x01,0x00,0x00,
    -0x7a,0x01,0x00,0x00,0x51,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,
    +0x09,0x00,0x00,0x00,0xaf,0x01,0x00,0x00,0xad,0x01,0x00,0x00,
    +0x7a,0x01,0x00,0x00,0x51,0x00,0x05,0x00,0x08,0x00,0x00,0x00,
     0xf7,0x00,0x00,0x00,0xaf,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,
     0x6a,0x01,0x00,0x00,0xea,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,
    -0xe5,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x63,0x00,0x00,0x00,
    -0x01,0x01,0x00,0x00,0xfb,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,
    -0x00,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x53,0x00,0x00,0x00,
    +0xe5,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x29,0x00,0x00,0x00,
    +0x01,0x01,0x00,0x00,0xfb,0x00,0x00,0x00,0x25,0x00,0x00,0x00,
    +0x00,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x18,0x00,0x00,0x00,
     0x02,0x01,0x00,0x00,0x01,0x01,0x00,0x00,0x73,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0x03,0x01,0x00,0x00,0x02,0x01,0x00,0x00,
    -0x51,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,0x06,0x01,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x03,0x01,0x00,0x00,0x02,0x01,0x00,0x00,
    +0x51,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0x06,0x01,0x00,0x00,
     0xaf,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,0x00,0x01,0x00,0x00,
    -0x58,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x63,0x00,0x00,0x00,
    -0x0d,0x01,0x00,0x00,0xfb,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,
    -0x0c,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x53,0x00,0x00,0x00,
    +0x1d,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x29,0x00,0x00,0x00,
    +0x0d,0x01,0x00,0x00,0xfb,0x00,0x00,0x00,0x25,0x00,0x00,0x00,
    +0x0c,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x18,0x00,0x00,0x00,
     0x0e,0x01,0x00,0x00,0x0d,0x01,0x00,0x00,0x73,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0x0f,0x01,0x00,0x00,0x0e,0x01,0x00,0x00,
    -0x85,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,0x10,0x01,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x0f,0x01,0x00,0x00,0x0e,0x01,0x00,0x00,
    +0x85,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0x10,0x01,0x00,0x00,
     0x06,0x01,0x00,0x00,0x0f,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,
    -0x0e,0x00,0x00,0x00,0x11,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x11,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
     0x32,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,0x03,0x01,0x00,0x00,
    -0x10,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,
    +0x10,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,
     0x13,0x01,0x00,0x00,0xc6,0x00,0x00,0x00,0x81,0x00,0x05,0x00,
    -0x0e,0x00,0x00,0x00,0x14,0x01,0x00,0x00,0x13,0x01,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x14,0x01,0x00,0x00,0x13,0x01,0x00,0x00,
     0x11,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xc6,0x00,0x00,0x00,
     0x14,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x17,0x01,0x00,0x00,0xb4,0x01,0x00,0x00,0x55,0x00,0x00,0x00,
    +0x17,0x01,0x00,0x00,0xb4,0x01,0x00,0x00,0x1a,0x00,0x00,0x00,
     0xf9,0x00,0x02,0x00,0xc8,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0xca,0x00,0x00,0x00,0xe0,0x00,0x04,0x00,0x55,0x00,0x00,0x00,
    -0x55,0x00,0x00,0x00,0x18,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xca,0x00,0x00,0x00,0xe0,0x00,0x04,0x00,0x1a,0x00,0x00,0x00,
    +0x1a,0x00,0x00,0x00,0x18,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
     0x1b,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x1b,0x01,0x00,0x00,
     0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xb5,0x01,0x00,0x00,
     0x1a,0x01,0x00,0x00,0xca,0x00,0x00,0x00,0x32,0x01,0x00,0x00,
     0x1e,0x01,0x00,0x00,0xac,0x00,0x05,0x00,0xd1,0x00,0x00,0x00,
    -0x21,0x01,0x00,0x00,0xb5,0x01,0x00,0x00,0x97,0x00,0x00,0x00,
    +0x21,0x01,0x00,0x00,0xb5,0x01,0x00,0x00,0x5e,0x00,0x00,0x00,
     0xf6,0x00,0x04,0x00,0x1d,0x01,0x00,0x00,0x1e,0x01,0x00,0x00,
     0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x21,0x01,0x00,0x00,
     0x1c,0x01,0x00,0x00,0x1d,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    @@ -131212,30 +134900,30 @@ unsigned char mul_mat_vec_q5_0_f16_f32_data[] = {
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2a,0x01,0x00,0x00,
     0xb4,0x00,0x00,0x00,0xb5,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
     0xc5,0x00,0x00,0x00,0x2b,0x01,0x00,0x00,0xc2,0x00,0x00,0x00,
    -0x2a,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,
    +0x2a,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,
     0x2c,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0x2e,0x01,0x00,0x00,0xc6,0x00,0x00,0x00,
    -0x81,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,0x2f,0x01,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x2e,0x01,0x00,0x00,0xc6,0x00,0x00,0x00,
    +0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0x2f,0x01,0x00,0x00,
     0x2e,0x01,0x00,0x00,0x2c,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
     0xc6,0x00,0x00,0x00,0x2f,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
     0x26,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x26,0x01,0x00,0x00,
    -0xe0,0x00,0x04,0x00,0x55,0x00,0x00,0x00,0x55,0x00,0x00,0x00,
    +0xe0,0x00,0x04,0x00,0x1a,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,
     0x18,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x1e,0x01,0x00,0x00,
     0xf8,0x00,0x02,0x00,0x1e,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x32,0x01,0x00,0x00,0xb5,0x01,0x00,0x00,
    -0x6b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x1b,0x01,0x00,0x00,
    +0x31,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x1b,0x01,0x00,0x00,
     0xf8,0x00,0x02,0x00,0x1d,0x01,0x00,0x00,0xaa,0x00,0x05,0x00,
     0xd1,0x00,0x00,0x00,0x34,0x01,0x00,0x00,0xb4,0x00,0x00,0x00,
    -0x97,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0x36,0x01,0x00,0x00,
    +0x5e,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0x36,0x01,0x00,0x00,
     0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x34,0x01,0x00,0x00,
     0x35,0x01,0x00,0x00,0x36,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
     0x35,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x3d,0x01,0x00,0x00,0x6e,0x01,0x00,0x00,0xb0,0x00,0x00,0x00,
     0x41,0x00,0x05,0x00,0xc5,0x00,0x00,0x00,0x3e,0x01,0x00,0x00,
    -0xc2,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0x3f,0x01,0x00,0x00,0x3e,0x01,0x00,0x00,
    +0xc2,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x08,0x00,0x00,0x00,0x3f,0x01,0x00,0x00,0x3e,0x01,0x00,0x00,
     0x41,0x00,0x06,0x00,0x40,0x01,0x00,0x00,0x41,0x01,0x00,0x00,
    -0x3a,0x01,0x00,0x00,0x5f,0x00,0x00,0x00,0x3d,0x01,0x00,0x00,
    +0x3a,0x01,0x00,0x00,0x25,0x00,0x00,0x00,0x3d,0x01,0x00,0x00,
     0x3e,0x00,0x03,0x00,0x41,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,
     0xf9,0x00,0x02,0x00,0x36,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
     0x36,0x01,0x00,0x00,0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
    @@ -131252,48 +134940,48 @@ unsigned char mul_mat_vec_q5_0_f32_f32_data[] = {
     0x2e,0x34,0x35,0x30,0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00,
     0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0f,0x00,0x0d,0x00,
     0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e,
    -0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x5e,0x00,0x00,0x00,0xae,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x78,0x00,0x00,0x00,
    +0x80,0x00,0x00,0x00,0xae,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,
     0xc2,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0x39,0x01,0x00,0x00,
     0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00,
     0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    -0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x20,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,
    -0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x20,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x20,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,
    -0x09,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    -0x20,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x56,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x59,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x5a,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x1e,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x1f,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x1f,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x20,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x16,0x00,0x00,0x00,
    +0x48,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x21,0x00,0x00,0x00,
     0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x5a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x5a,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x5b,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x16,0x00,0x00,0x00,0x48,0x00,0x04,0x00,
    -0x5c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x5c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    -0x5c,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x5e,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x5e,0x00,0x00,0x00,0x21,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xae,0x00,0x00,0x00,
    +0x47,0x00,0x03,0x00,0x21,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x23,0x00,0x00,0x00,
    +0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x78,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x7e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x7e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x7e,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x7e,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x7e,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x7e,0x00,0x00,0x00,
    +0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x7e,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x7e,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x7e,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x7e,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x7e,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x28,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x7e,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xae,0x00,0x00,0x00,
     0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
     0xb2,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
     0x47,0x00,0x04,0x00,0xbf,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    @@ -131319,140 +135007,140 @@ unsigned char mul_mat_vec_q5_0_f32_f32_data[] = {
     0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00,
     0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x16,0x00,0x03,0x00,0x0e,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x17,0x00,0x04,0x00,0x0f,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x17,0x00,0x04,0x00,0x17,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x18,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x17,0x00,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x1a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x1b,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x1e,0x00,0x0d,0x00,0x20,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
    -0x09,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0x21,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    -0x15,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,
    -0x24,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x25,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x30,0x00,0x00,0x00,
    -0x0a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,
    -0x36,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x23,0x00,0x00,0x00,0x3c,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x43,0x00,0x00,0x00,
    -0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,
    -0x48,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x23,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x16,0x00,0x03,0x00,0x53,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
    -0x15,0x00,0x04,0x00,0x54,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x55,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,
    -0x56,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x55,0x00,0x00,0x00,
    -0x15,0x00,0x04,0x00,0x57,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x58,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,
    -0x59,0x00,0x00,0x00,0x57,0x00,0x00,0x00,0x58,0x00,0x00,0x00,
    -0x1e,0x00,0x05,0x00,0x5a,0x00,0x00,0x00,0x53,0x00,0x00,0x00,
    -0x56,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    -0x5b,0x00,0x00,0x00,0x5a,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
    -0x5c,0x00,0x00,0x00,0x5b,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x5d,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0x5d,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,
    -0x5f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x63,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x53,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x6c,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x23,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,
    -0x8e,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x90,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x57,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x95,0x00,0x00,0x00,
    +0x16,0x00,0x03,0x00,0x08,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x17,0x00,0x04,0x00,0x09,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0x18,0x00,0x00,0x00,
    +0x10,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x19,0x00,0x00,0x00,
    +0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x1c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    +0x1a,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x1c,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x1d,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
    +0x1c,0x00,0x04,0x00,0x1e,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,
    +0x1d,0x00,0x00,0x00,0x1e,0x00,0x05,0x00,0x1f,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,
    +0x1d,0x00,0x03,0x00,0x20,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,
    +0x1e,0x00,0x03,0x00,0x21,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x22,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x21,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x22,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x15,0x00,0x04,0x00,
    +0x24,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x24,0x00,0x00,0x00,0x25,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x29,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x24,0x00,0x00,0x00,0x31,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x32,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x19,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x24,0x00,0x00,0x00,
    +0x36,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x24,0x00,0x00,0x00,0x45,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x24,0x00,0x00,0x00,
    +0x55,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x57,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,
     0x0f,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x97,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0xa6,0x00,0x00,0x00,0x00,0x00,0x80,0x41,
    -0x3b,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0xae,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x18,0x00,0x00,0x00,
    +0x5e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x67,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,
    +0x00,0x00,0x80,0x41,0x17,0x00,0x04,0x00,0x76,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x77,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x77,0x00,0x00,0x00,0x78,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x79,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x1e,0x00,0x0d,0x00,
    +0x7e,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x7e,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,
    +0x80,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x24,0x00,0x00,0x00,0x81,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x82,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x24,0x00,0x00,0x00,
    +0x8d,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x24,0x00,0x00,0x00,0x93,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x24,0x00,0x00,0x00,0x99,0x00,0x00,0x00,
    +0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x24,0x00,0x00,0x00,
    +0xa4,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x24,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x77,0x00,0x00,0x00,0xae,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x77,0x00,0x00,0x00,
     0xb2,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x1c,0x00,0x04,0x00,0xc0,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,
    +0x1c,0x00,0x04,0x00,0xc0,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
     0xbf,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xc1,0x00,0x00,0x00,
     0x04,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
     0xc1,0x00,0x00,0x00,0xc2,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,
     0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xc5,0x00,0x00,0x00,
    -0x04,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x14,0x00,0x02,0x00,
    +0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x14,0x00,0x02,0x00,
     0xd1,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0xe0,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    -0xf8,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
    +0xf8,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
     0xf9,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
     0xfa,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xf9,0x00,0x00,0x00,
     0x3b,0x00,0x04,0x00,0xfa,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
     0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x01,0x01,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x0c,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x17,0x01,0x00,0x00,0x08,0x01,0x00,0x00,
     0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x19,0x01,0x00,0x00,
    -0x86,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0x55,0x00,0x00,0x00,
    -0x1d,0x00,0x03,0x00,0x36,0x01,0x00,0x00,0x0e,0x00,0x00,0x00,
    +0x86,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,
    +0x1d,0x00,0x03,0x00,0x36,0x01,0x00,0x00,0x08,0x00,0x00,0x00,
     0x1e,0x00,0x03,0x00,0x37,0x01,0x00,0x00,0x36,0x01,0x00,0x00,
     0x20,0x00,0x04,0x00,0x38,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
     0x37,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,0x38,0x01,0x00,0x00,
     0x39,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x32,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x40,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x33,0x00,0x06,0x00,0x17,0x00,0x00,0x00,0x41,0x01,0x00,0x00,
    -0x40,0x01,0x00,0x00,0x1a,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,
    -0x2c,0x00,0x05,0x00,0x0f,0x00,0x00,0x00,0xb5,0x01,0x00,0x00,
    -0xa6,0x00,0x00,0x00,0xa6,0x00,0x00,0x00,0x36,0x00,0x05,0x00,
    +0x33,0x00,0x06,0x00,0x76,0x00,0x00,0x00,0x41,0x01,0x00,0x00,
    +0x40,0x01,0x00,0x00,0x67,0x00,0x00,0x00,0x67,0x00,0x00,0x00,
    +0x2c,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0xb5,0x01,0x00,0x00,
    +0x6e,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x36,0x00,0x05,0x00,
     0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
     0x03,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,
    -0xae,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x79,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,
    +0xae,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0xb0,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,
    -0xb2,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x79,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,
    +0xb2,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x49,0x01,0x00,0x00,
    -0x19,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x79,0x00,0x00,0x00,0x49,0x01,0x00,0x00,
    +0x78,0x00,0x00,0x00,0x67,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x4a,0x01,0x00,0x00,0x49,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,0x4c,0x01,0x00,0x00,
    -0x22,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x82,0x00,0x00,0x00,0x4c,0x01,0x00,0x00,
    +0x80,0x00,0x00,0x00,0x81,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x4d,0x01,0x00,0x00,0x4c,0x01,0x00,0x00,
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4e,0x01,0x00,0x00,
     0x4a,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,0x89,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x52,0x01,0x00,0x00,0x4a,0x01,0x00,0x00,
    -0x4d,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,
    -0x54,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x30,0x00,0x00,0x00,
    +0x4d,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x82,0x00,0x00,0x00,
    +0x54,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,
     0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x55,0x01,0x00,0x00,
     0x54,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x56,0x01,0x00,0x00,0x4e,0x01,0x00,0x00,0x55,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,0x58,0x01,0x00,0x00,
    -0x22,0x00,0x00,0x00,0x36,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x82,0x00,0x00,0x00,0x58,0x01,0x00,0x00,
    +0x80,0x00,0x00,0x00,0x93,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x59,0x01,0x00,0x00,0x58,0x01,0x00,0x00,
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5a,0x01,0x00,0x00,
     0x52,0x01,0x00,0x00,0x59,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x25,0x00,0x00,0x00,0x5c,0x01,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x3c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x82,0x00,0x00,0x00,0x5c,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
    +0x99,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x5d,0x01,0x00,0x00,0x5c,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x5e,0x01,0x00,0x00,0x56,0x01,0x00,0x00,
     0x5d,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x60,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,0x5a,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,0x62,0x01,0x00,0x00,
    -0x22,0x00,0x00,0x00,0x43,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x82,0x00,0x00,0x00,0x62,0x01,0x00,0x00,
    +0x80,0x00,0x00,0x00,0x45,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x63,0x01,0x00,0x00,0x62,0x01,0x00,0x00,
     0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x64,0x01,0x00,0x00,
     0x60,0x01,0x00,0x00,0x63,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x25,0x00,0x00,0x00,0x66,0x01,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x48,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x82,0x00,0x00,0x00,0x66,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
    +0xa4,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x67,0x01,0x00,0x00,0x66,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x68,0x01,0x00,0x00,0x4a,0x01,0x00,0x00,
    -0x67,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,
    -0x6a,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,
    +0x67,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x82,0x00,0x00,0x00,
    +0x6a,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,
     0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x6b,0x01,0x00,0x00,
     0x6a,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x6c,0x01,0x00,0x00,0x4a,0x01,0x00,0x00,0x6b,0x01,0x00,0x00,
    @@ -131461,9 +135149,9 @@ unsigned char mul_mat_vec_q5_0_f32_f32_data[] = {
     0xc6,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
     0xc8,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xc8,0x00,0x00,0x00,
     0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xb2,0x01,0x00,0x00,
    -0x97,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x16,0x01,0x00,0x00,
    -0xc9,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,
    -0xce,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,
    +0x5e,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x16,0x01,0x00,0x00,
    +0xc9,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x82,0x00,0x00,0x00,
    +0xce,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x25,0x00,0x00,0x00,
     0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,
     0xce,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xd0,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,
    @@ -131474,7 +135162,7 @@ unsigned char mul_mat_vec_q5_0_f32_f32_data[] = {
     0xca,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xc9,0x00,0x00,0x00,
     0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,
     0xb2,0x01,0x00,0x00,0xbf,0x00,0x00,0x00,0x84,0x00,0x05,0x00,
    -0x06,0x00,0x00,0x00,0xd7,0x00,0x00,0x00,0x55,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0xd7,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,
     0xb4,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xd8,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0xd7,0x00,0x00,0x00,
     0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdd,0x00,0x00,0x00,
    @@ -131485,99 +135173,99 @@ unsigned char mul_mat_vec_q5_0_f32_f32_data[] = {
     0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe4,0x00,0x00,0x00,
     0xd8,0x00,0x00,0x00,0xe0,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xe5,0x00,0x00,0x00,0xe4,0x00,0x00,0x00,
    -0x55,0x00,0x00,0x00,0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x1a,0x00,0x00,0x00,0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xea,0x00,0x00,0x00,0xd8,0x00,0x00,0x00,0xe4,0x00,0x00,0x00,
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xee,0x00,0x00,0x00,
     0x64,0x01,0x00,0x00,0xe0,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x75,0x01,0x00,0x00,0xee,0x00,0x00,0x00,
    -0xe1,0x00,0x00,0x00,0x41,0x00,0x07,0x00,0x63,0x00,0x00,0x00,
    -0x76,0x01,0x00,0x00,0x5e,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,
    -0x75,0x01,0x00,0x00,0x5f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x53,0x00,0x00,0x00,0x77,0x01,0x00,0x00,0x76,0x01,0x00,0x00,
    -0x73,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0x78,0x01,0x00,0x00,
    -0x77,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x6c,0x00,0x00,0x00,
    -0x7c,0x01,0x00,0x00,0x5e,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,
    -0x75,0x01,0x00,0x00,0x6b,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x54,0x00,0x00,0x00,0x7d,0x01,0x00,0x00,
    +0xe1,0x00,0x00,0x00,0x41,0x00,0x07,0x00,0x29,0x00,0x00,0x00,
    +0x76,0x01,0x00,0x00,0x23,0x00,0x00,0x00,0x25,0x00,0x00,0x00,
    +0x75,0x01,0x00,0x00,0x25,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x18,0x00,0x00,0x00,0x77,0x01,0x00,0x00,0x76,0x01,0x00,0x00,
    +0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x78,0x01,0x00,0x00,
    +0x77,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x32,0x00,0x00,0x00,
    +0x7c,0x01,0x00,0x00,0x23,0x00,0x00,0x00,0x25,0x00,0x00,0x00,
    +0x75,0x01,0x00,0x00,0x31,0x00,0x00,0x00,0x31,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x7d,0x01,0x00,0x00,
     0x7c,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x7e,0x01,0x00,0x00,0x7d,0x01,0x00,0x00,0xc4,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x7f,0x01,0x00,0x00,0x7e,0x01,0x00,0x00,
    -0x70,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0x6c,0x00,0x00,0x00,
    -0x83,0x01,0x00,0x00,0x5e,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,
    -0x75,0x01,0x00,0x00,0x6b,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x54,0x00,0x00,0x00,0x84,0x01,0x00,0x00,
    +0x36,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0x32,0x00,0x00,0x00,
    +0x83,0x01,0x00,0x00,0x23,0x00,0x00,0x00,0x25,0x00,0x00,0x00,
    +0x75,0x01,0x00,0x00,0x31,0x00,0x00,0x00,0x25,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x84,0x01,0x00,0x00,
     0x83,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x85,0x01,0x00,0x00,0x84,0x01,0x00,0x00,0xc5,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x86,0x01,0x00,0x00,0x7f,0x01,0x00,0x00,
     0x85,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x89,0x01,0x00,0x00,0x86,0x01,0x00,0x00,0xe5,0x00,0x00,0x00,
     0xc4,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8a,0x01,0x00,0x00,
    -0x89,0x01,0x00,0x00,0x43,0x00,0x00,0x00,0xc7,0x00,0x05,0x00,
    +0x89,0x01,0x00,0x00,0x45,0x00,0x00,0x00,0xc7,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x8b,0x01,0x00,0x00,0x8a,0x01,0x00,0x00,
    -0x58,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x23,0x00,0x00,0x00,
    +0x1d,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x24,0x00,0x00,0x00,
     0x8c,0x01,0x00,0x00,0x8b,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x8f,0x01,0x00,0x00,0xe5,0x00,0x00,0x00,
    -0x84,0x00,0x00,0x00,0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x4b,0x00,0x00,0x00,0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x90,0x01,0x00,0x00,0x86,0x01,0x00,0x00,0x8f,0x01,0x00,0x00,
     0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x91,0x01,0x00,0x00,
    -0x90,0x01,0x00,0x00,0x58,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,
    -0x23,0x00,0x00,0x00,0x92,0x01,0x00,0x00,0x91,0x01,0x00,0x00,
    -0x41,0x00,0x08,0x00,0x90,0x00,0x00,0x00,0x98,0x01,0x00,0x00,
    -0x5e,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,0x75,0x01,0x00,0x00,
    -0x8e,0x00,0x00,0x00,0xe5,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x57,0x00,0x00,0x00,0x99,0x01,0x00,0x00,0x98,0x01,0x00,0x00,
    +0x90,0x01,0x00,0x00,0x1d,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,
    +0x24,0x00,0x00,0x00,0x92,0x01,0x00,0x00,0x91,0x01,0x00,0x00,
    +0x41,0x00,0x08,0x00,0x57,0x00,0x00,0x00,0x98,0x01,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x75,0x01,0x00,0x00,
    +0x55,0x00,0x00,0x00,0xe5,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x1c,0x00,0x00,0x00,0x99,0x01,0x00,0x00,0x98,0x01,0x00,0x00,
     0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x9a,0x01,0x00,0x00,
     0x99,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x9c,0x01,0x00,0x00,0x9a,0x01,0x00,0x00,0x95,0x00,0x00,0x00,
    +0x9c,0x01,0x00,0x00,0x9a,0x01,0x00,0x00,0x5c,0x00,0x00,0x00,
     0x7c,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x9f,0x01,0x00,0x00,
     0x8c,0x01,0x00,0x00,0xc5,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xa0,0x01,0x00,0x00,0x9c,0x01,0x00,0x00,0x9f,0x01,0x00,0x00,
    -0x70,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0xa1,0x01,0x00,0x00,
    +0x70,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xa1,0x01,0x00,0x00,
     0xa0,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xa3,0x01,0x00,0x00,0x9a,0x01,0x00,0x00,0x43,0x00,0x00,0x00,
    +0xa3,0x01,0x00,0x00,0x9a,0x01,0x00,0x00,0x45,0x00,0x00,0x00,
     0x7c,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa6,0x01,0x00,0x00,
     0x92,0x01,0x00,0x00,0xc5,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xa7,0x01,0x00,0x00,0xa3,0x01,0x00,0x00,0xa6,0x01,0x00,0x00,
    -0x70,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0xa8,0x01,0x00,0x00,
    -0xa7,0x01,0x00,0x00,0x50,0x00,0x05,0x00,0x0f,0x00,0x00,0x00,
    +0x70,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xa8,0x01,0x00,0x00,
    +0xa7,0x01,0x00,0x00,0x50,0x00,0x05,0x00,0x09,0x00,0x00,0x00,
     0xa9,0x01,0x00,0x00,0xa1,0x01,0x00,0x00,0xa8,0x01,0x00,0x00,
    -0x83,0x00,0x05,0x00,0x0f,0x00,0x00,0x00,0xab,0x01,0x00,0x00,
    +0x83,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0xab,0x01,0x00,0x00,
     0xa9,0x01,0x00,0x00,0xb5,0x01,0x00,0x00,0x8e,0x00,0x05,0x00,
    -0x0f,0x00,0x00,0x00,0xad,0x01,0x00,0x00,0xab,0x01,0x00,0x00,
    -0x78,0x01,0x00,0x00,0x51,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,
    +0x09,0x00,0x00,0x00,0xad,0x01,0x00,0x00,0xab,0x01,0x00,0x00,
    +0x78,0x01,0x00,0x00,0x51,0x00,0x05,0x00,0x08,0x00,0x00,0x00,
     0xf7,0x00,0x00,0x00,0xad,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,
     0x68,0x01,0x00,0x00,0xea,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,
     0xe5,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x01,0x01,0x00,0x00,
    -0x02,0x01,0x00,0x00,0xfb,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,
    -0x00,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,
    +0x02,0x01,0x00,0x00,0xfb,0x00,0x00,0x00,0x25,0x00,0x00,0x00,
    +0x00,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,
     0x03,0x01,0x00,0x00,0x02,0x01,0x00,0x00,0x51,0x00,0x05,0x00,
    -0x0e,0x00,0x00,0x00,0x06,0x01,0x00,0x00,0xad,0x01,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x06,0x01,0x00,0x00,0xad,0x01,0x00,0x00,
     0x01,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x0c,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x58,0x00,0x00,0x00,
    +0x0c,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x1d,0x00,0x00,0x00,
     0x41,0x00,0x06,0x00,0x01,0x01,0x00,0x00,0x0d,0x01,0x00,0x00,
    -0xfb,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0x0e,0x01,0x00,0x00,
    -0x0d,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,
    +0xfb,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x0e,0x01,0x00,0x00,
    +0x0d,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x08,0x00,0x00,0x00,
     0x0f,0x01,0x00,0x00,0x06,0x01,0x00,0x00,0x0e,0x01,0x00,0x00,
    -0x0c,0x00,0x08,0x00,0x0e,0x00,0x00,0x00,0x10,0x01,0x00,0x00,
    +0x0c,0x00,0x08,0x00,0x08,0x00,0x00,0x00,0x10,0x01,0x00,0x00,
     0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,
     0x03,0x01,0x00,0x00,0x0f,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0x12,0x01,0x00,0x00,0xc6,0x00,0x00,0x00,
    -0x81,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,0x13,0x01,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x12,0x01,0x00,0x00,0xc6,0x00,0x00,0x00,
    +0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0x13,0x01,0x00,0x00,
     0x12,0x01,0x00,0x00,0x10,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
     0xc6,0x00,0x00,0x00,0x13,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x16,0x01,0x00,0x00,0xb2,0x01,0x00,0x00,
    -0x55,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xc8,0x00,0x00,0x00,
    +0x1a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xc8,0x00,0x00,0x00,
     0xf8,0x00,0x02,0x00,0xca,0x00,0x00,0x00,0xe0,0x00,0x04,0x00,
    -0x55,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x17,0x01,0x00,0x00,
    +0x1a,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x17,0x01,0x00,0x00,
     0xf9,0x00,0x02,0x00,0x1a,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
     0x1a,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
     0xb3,0x01,0x00,0x00,0x19,0x01,0x00,0x00,0xca,0x00,0x00,0x00,
     0x31,0x01,0x00,0x00,0x1d,0x01,0x00,0x00,0xac,0x00,0x05,0x00,
     0xd1,0x00,0x00,0x00,0x20,0x01,0x00,0x00,0xb3,0x01,0x00,0x00,
    -0x97,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x1c,0x01,0x00,0x00,
    +0x5e,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x1c,0x01,0x00,0x00,
     0x1d,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
     0x20,0x01,0x00,0x00,0x1b,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,
     0xf8,0x00,0x02,0x00,0x1b,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    @@ -131589,29 +135277,29 @@ unsigned char mul_mat_vec_q5_0_f32_f32_data[] = {
     0x29,0x01,0x00,0x00,0xb4,0x00,0x00,0x00,0xb3,0x01,0x00,0x00,
     0x41,0x00,0x05,0x00,0xc5,0x00,0x00,0x00,0x2a,0x01,0x00,0x00,
     0xc2,0x00,0x00,0x00,0x29,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0x2b,0x01,0x00,0x00,0x2a,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0x2d,0x01,0x00,0x00,
    -0xc6,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x2b,0x01,0x00,0x00,0x2a,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x2d,0x01,0x00,0x00,
    +0xc6,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00,
     0x2e,0x01,0x00,0x00,0x2d,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,
     0x3e,0x00,0x03,0x00,0xc6,0x00,0x00,0x00,0x2e,0x01,0x00,0x00,
     0xf9,0x00,0x02,0x00,0x25,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    -0x25,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,0x55,0x00,0x00,0x00,
    -0x55,0x00,0x00,0x00,0x17,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x25,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,0x1a,0x00,0x00,0x00,
    +0x1a,0x00,0x00,0x00,0x17,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
     0x1d,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x1d,0x01,0x00,0x00,
     0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x31,0x01,0x00,0x00,
    -0xb3,0x01,0x00,0x00,0x6b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xb3,0x01,0x00,0x00,0x31,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
     0x1a,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x1c,0x01,0x00,0x00,
     0xaa,0x00,0x05,0x00,0xd1,0x00,0x00,0x00,0x33,0x01,0x00,0x00,
    -0xb4,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,
    +0xb4,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,
     0x35,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
     0x33,0x01,0x00,0x00,0x34,0x01,0x00,0x00,0x35,0x01,0x00,0x00,
     0xf8,0x00,0x02,0x00,0x34,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x3c,0x01,0x00,0x00,0x6c,0x01,0x00,0x00,
     0xb0,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0xc5,0x00,0x00,0x00,
    -0x3d,0x01,0x00,0x00,0xc2,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0x3e,0x01,0x00,0x00,
    +0x3d,0x01,0x00,0x00,0xc2,0x00,0x00,0x00,0x25,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x3e,0x01,0x00,0x00,
     0x3d,0x01,0x00,0x00,0x41,0x00,0x06,0x00,0x01,0x01,0x00,0x00,
    -0x3f,0x01,0x00,0x00,0x39,0x01,0x00,0x00,0x5f,0x00,0x00,0x00,
    +0x3f,0x01,0x00,0x00,0x39,0x01,0x00,0x00,0x25,0x00,0x00,0x00,
     0x3c,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x3f,0x01,0x00,0x00,
     0x3e,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x35,0x01,0x00,0x00,
     0xf8,0x00,0x02,0x00,0x35,0x01,0x00,0x00,0xfd,0x00,0x01,0x00,
    @@ -131628,48 +135316,48 @@ unsigned char mul_mat_vec_q5_1_f16_f32_data[] = {
     0x2e,0x34,0x35,0x30,0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00,
     0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0f,0x00,0x0d,0x00,
     0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e,
    -0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x5b,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,0xad,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x73,0x00,0x00,0x00,
    +0x7b,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,0xad,0x00,0x00,0x00,
     0xbd,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,0x36,0x01,0x00,0x00,
     0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00,
     0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    -0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x1c,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x1c,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x1c,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x1c,0x00,0x00,0x00,
    +0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x1d,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x1e,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x1e,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x20,0x00,0x00,0x00,
    +0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x20,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x73,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    +0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x79,0x00,0x00,0x00,
     0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x79,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
     0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x20,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,
    +0x79,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x79,0x00,0x00,0x00,
     0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x79,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
     0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x20,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,
    +0x79,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x79,0x00,0x00,0x00,
     0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x79,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
     0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x20,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,
    +0x79,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x79,0x00,0x00,0x00,
     0x09,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x79,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,
     0x23,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    -0x20,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x56,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x57,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x57,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x57,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x57,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x58,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    -0x48,0x00,0x04,0x00,0x59,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x59,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x47,0x00,0x03,0x00,0x59,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x5b,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x5b,0x00,0x00,0x00,
    -0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x79,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
     0xa9,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,
     0x47,0x00,0x04,0x00,0xad,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
     0x1b,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xba,0x00,0x00,0x00,
    @@ -131695,75 +135383,75 @@ unsigned char mul_mat_vec_q5_1_f16_f32_data[] = {
     0x19,0x00,0x00,0x00,0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00,
     0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
     0x15,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0x0e,0x00,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x17,0x00,0x04,0x00,0x0f,0x00,0x00,0x00,
    -0x0e,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x17,0x00,0x04,0x00,
    -0x17,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x17,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x18,0x00,0x00,0x00,
    -0x19,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x1e,0x00,0x0d,0x00,0x20,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0x08,0x00,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x17,0x00,0x04,0x00,0x09,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x16,0x00,0x03,0x00,
    +0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x15,0x00,0x04,0x00,
    +0x19,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,
    +0x10,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,
    +0x19,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x1e,0x00,0x06,0x00,
    +0x1c,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    +0x1d,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
    +0x1e,0x00,0x00,0x00,0x1d,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x1f,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x21,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x26,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
    +0x2e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x21,0x00,0x00,0x00,0x36,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x37,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
    +0x40,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x46,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x50,0x00,0x00,0x00,
    +0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x52,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x57,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x59,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x62,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x17,0x00,0x04,0x00,
    +0x71,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x72,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x71,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x72,0x00,0x00,0x00,
    +0x73,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x74,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x1e,0x00,0x0d,0x00,0x79,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
     0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
     0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
     0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x21,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x09,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x23,0x00,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x25,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,
    -0x30,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x23,0x00,0x00,0x00,0x36,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x3c,0x00,0x00,0x00,
    -0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,
    -0x43,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x23,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0x53,0x00,0x00,0x00,
    -0x10,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x54,0x00,0x00,0x00,
    -0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
    -0x1c,0x00,0x04,0x00,0x56,0x00,0x00,0x00,0x54,0x00,0x00,0x00,
    -0x55,0x00,0x00,0x00,0x1e,0x00,0x06,0x00,0x57,0x00,0x00,0x00,
    -0x53,0x00,0x00,0x00,0x53,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x56,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x58,0x00,0x00,0x00,
    -0x57,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x59,0x00,0x00,0x00,
    -0x58,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x5a,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0x5a,0x00,0x00,0x00,0x5b,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x60,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x53,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x23,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x70,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x71,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x89,0x00,0x00,0x00,
    -0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x8b,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x90,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x92,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x18,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x7a,0x00,0x00,0x00,
    +0x09,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0x7a,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x7c,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x7d,0x00,0x00,0x00,
    +0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x21,0x00,0x00,0x00,0x88,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,
    +0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
    +0x94,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x21,0x00,0x00,0x00,0x9f,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x72,0x00,0x00,0x00,
     0xa9,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0x18,0x00,0x00,0x00,0xad,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x72,0x00,0x00,0x00,0xad,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
     0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xba,0x00,0x00,0x00,
     0x20,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,
    -0x0e,0x00,0x00,0x00,0xba,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x08,0x00,0x00,0x00,0xba,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
     0xbc,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,
     0x3b,0x00,0x04,0x00,0xbc,0x00,0x00,0x00,0xbd,0x00,0x00,0x00,
    -0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x08,0x00,0x00,0x00,
     0xbf,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0xc0,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,
    +0xc0,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
     0x14,0x00,0x02,0x00,0xcc,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
     0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xdc,0x00,0x00,0x00,
     0x20,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0xf4,0x00,0x00,0x00,
    -0x53,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xf5,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xf5,0x00,0x00,0x00,
     0xf4,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xf6,0x00,0x00,0x00,
     0x0c,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
     0xf6,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    @@ -131771,59 +135459,59 @@ unsigned char mul_mat_vec_q5_1_f16_f32_data[] = {
     0x08,0x01,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0x16,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0xba,0x00,0x00,0x00,
     0xd1,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x33,0x01,0x00,0x00,
    -0x0e,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x34,0x01,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x34,0x01,0x00,0x00,
     0x33,0x01,0x00,0x00,0x20,0x00,0x04,0x00,0x35,0x01,0x00,0x00,
     0x0c,0x00,0x00,0x00,0x34,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,
     0x35,0x01,0x00,0x00,0x36,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
     0x20,0x00,0x04,0x00,0x3c,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x0e,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x3e,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x33,0x00,0x06,0x00,
    -0x17,0x00,0x00,0x00,0x3f,0x01,0x00,0x00,0x3e,0x01,0x00,0x00,
    -0x1a,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x36,0x00,0x05,0x00,
    +0x71,0x00,0x00,0x00,0x3f,0x01,0x00,0x00,0x3e,0x01,0x00,0x00,
    +0x62,0x00,0x00,0x00,0x62,0x00,0x00,0x00,0x36,0x00,0x05,0x00,
     0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
     0x03,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xaa,0x00,0x00,0x00,
    -0xa9,0x00,0x00,0x00,0x92,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x74,0x00,0x00,0x00,0xaa,0x00,0x00,0x00,
    +0xa9,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0xab,0x00,0x00,0x00,0xaa,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xae,0x00,0x00,0x00,
    -0xad,0x00,0x00,0x00,0x92,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x74,0x00,0x00,0x00,0xae,0x00,0x00,0x00,
    +0xad,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0xae,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x47,0x01,0x00,0x00,
    -0x19,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x74,0x00,0x00,0x00,0x47,0x01,0x00,0x00,
    +0x73,0x00,0x00,0x00,0x62,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x48,0x01,0x00,0x00,0x47,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,0x4a,0x01,0x00,0x00,
    -0x22,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x7d,0x00,0x00,0x00,0x4a,0x01,0x00,0x00,
    +0x7b,0x00,0x00,0x00,0x7c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x4b,0x01,0x00,0x00,0x4a,0x01,0x00,0x00,
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4c,0x01,0x00,0x00,
     0x48,0x01,0x00,0x00,0x4b,0x01,0x00,0x00,0x89,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x50,0x01,0x00,0x00,0x48,0x01,0x00,0x00,
    -0x4b,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,
    -0x52,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x30,0x00,0x00,0x00,
    +0x4b,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x7d,0x00,0x00,0x00,
    +0x52,0x01,0x00,0x00,0x7b,0x00,0x00,0x00,0x88,0x00,0x00,0x00,
     0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x53,0x01,0x00,0x00,
     0x52,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x54,0x01,0x00,0x00,0x4c,0x01,0x00,0x00,0x53,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,0x56,0x01,0x00,0x00,
    -0x22,0x00,0x00,0x00,0x36,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x7d,0x00,0x00,0x00,0x56,0x01,0x00,0x00,
    +0x7b,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x57,0x01,0x00,0x00,0x56,0x01,0x00,0x00,
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x58,0x01,0x00,0x00,
     0x50,0x01,0x00,0x00,0x57,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x25,0x00,0x00,0x00,0x5a,0x01,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x3c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x7d,0x00,0x00,0x00,0x5a,0x01,0x00,0x00,0x7b,0x00,0x00,0x00,
    +0x94,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x5b,0x01,0x00,0x00,0x5a,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x5c,0x01,0x00,0x00,0x54,0x01,0x00,0x00,
     0x5b,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x5e,0x01,0x00,0x00,0x5c,0x01,0x00,0x00,0x58,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,0x60,0x01,0x00,0x00,
    -0x22,0x00,0x00,0x00,0x43,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x7d,0x00,0x00,0x00,0x60,0x01,0x00,0x00,
    +0x7b,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x61,0x01,0x00,0x00,0x60,0x01,0x00,0x00,
     0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x62,0x01,0x00,0x00,
     0x5e,0x01,0x00,0x00,0x61,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x25,0x00,0x00,0x00,0x64,0x01,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x48,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x7d,0x00,0x00,0x00,0x64,0x01,0x00,0x00,0x7b,0x00,0x00,0x00,
    +0x9f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x65,0x01,0x00,0x00,0x64,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x66,0x01,0x00,0x00,0x48,0x01,0x00,0x00,
    -0x65,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,
    -0x68,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,
    +0x65,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x7d,0x00,0x00,0x00,
    +0x68,0x01,0x00,0x00,0x7b,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,
     0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x69,0x01,0x00,0x00,
     0x68,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x6a,0x01,0x00,0x00,0x48,0x01,0x00,0x00,0x69,0x01,0x00,0x00,
    @@ -131832,9 +135520,9 @@ unsigned char mul_mat_vec_q5_1_f16_f32_data[] = {
     0xc1,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
     0xc3,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xc3,0x00,0x00,0x00,
     0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xaf,0x01,0x00,0x00,
    -0x92,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x13,0x01,0x00,0x00,
    -0xc4,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,
    -0xc9,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,
    +0x59,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x13,0x01,0x00,0x00,
    +0xc4,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x7d,0x00,0x00,0x00,
    +0xc9,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
     0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xca,0x00,0x00,0x00,
     0xc9,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xcb,0x00,0x00,0x00,0xca,0x00,0x00,0x00,0xba,0x00,0x00,0x00,
    @@ -131861,81 +135549,81 @@ unsigned char mul_mat_vec_q5_1_f16_f32_data[] = {
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xea,0x00,0x00,0x00,
     0x62,0x01,0x00,0x00,0xdc,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x74,0x01,0x00,0x00,0xea,0x00,0x00,0x00,
    -0xdd,0x00,0x00,0x00,0x41,0x00,0x07,0x00,0x60,0x00,0x00,0x00,
    -0x75,0x01,0x00,0x00,0x5b,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,
    -0x74,0x01,0x00,0x00,0x5c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x53,0x00,0x00,0x00,0x76,0x01,0x00,0x00,0x75,0x01,0x00,0x00,
    -0x73,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0x77,0x01,0x00,0x00,
    -0x76,0x01,0x00,0x00,0x41,0x00,0x07,0x00,0x60,0x00,0x00,0x00,
    -0x7b,0x01,0x00,0x00,0x5b,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,
    -0x74,0x01,0x00,0x00,0x68,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x53,0x00,0x00,0x00,0x7c,0x01,0x00,0x00,0x7b,0x01,0x00,0x00,
    -0x73,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0x7d,0x01,0x00,0x00,
    -0x7c,0x01,0x00,0x00,0x41,0x00,0x07,0x00,0x71,0x00,0x00,0x00,
    -0x81,0x01,0x00,0x00,0x5b,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,
    -0x74,0x01,0x00,0x00,0x70,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xdd,0x00,0x00,0x00,0x41,0x00,0x07,0x00,0x26,0x00,0x00,0x00,
    +0x75,0x01,0x00,0x00,0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    +0x74,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x18,0x00,0x00,0x00,0x76,0x01,0x00,0x00,0x75,0x01,0x00,0x00,
    +0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x77,0x01,0x00,0x00,
    +0x76,0x01,0x00,0x00,0x41,0x00,0x07,0x00,0x26,0x00,0x00,0x00,
    +0x7b,0x01,0x00,0x00,0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    +0x74,0x01,0x00,0x00,0x2e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x18,0x00,0x00,0x00,0x7c,0x01,0x00,0x00,0x7b,0x01,0x00,0x00,
    +0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x7d,0x01,0x00,0x00,
    +0x7c,0x01,0x00,0x00,0x41,0x00,0x07,0x00,0x37,0x00,0x00,0x00,
    +0x81,0x01,0x00,0x00,0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    +0x74,0x01,0x00,0x00,0x36,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x82,0x01,0x00,0x00,0x81,0x01,0x00,0x00,
     0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x85,0x01,0x00,0x00,
     0x82,0x01,0x00,0x00,0xe1,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x86,0x01,0x00,0x00,0x85,0x01,0x00,0x00,
    -0x43,0x00,0x00,0x00,0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x87,0x01,0x00,0x00,0x86,0x01,0x00,0x00,0x55,0x00,0x00,0x00,
    -0x7c,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x88,0x01,0x00,0x00,
    +0x40,0x00,0x00,0x00,0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x87,0x01,0x00,0x00,0x86,0x01,0x00,0x00,0x1a,0x00,0x00,0x00,
    +0x7c,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x88,0x01,0x00,0x00,
     0x87,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x8b,0x01,0x00,0x00,0xe1,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,
    +0x8b,0x01,0x00,0x00,0xe1,0x00,0x00,0x00,0x46,0x00,0x00,0x00,
     0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8c,0x01,0x00,0x00,
     0x82,0x01,0x00,0x00,0x8b,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x8d,0x01,0x00,0x00,0x8c,0x01,0x00,0x00,
    -0x55,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x23,0x00,0x00,0x00,
    +0x1a,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
     0x8e,0x01,0x00,0x00,0x8d,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x8b,0x00,0x00,0x00,0x94,0x01,0x00,0x00,0x5b,0x00,0x00,0x00,
    -0x5c,0x00,0x00,0x00,0x74,0x01,0x00,0x00,0x89,0x00,0x00,0x00,
    -0xe1,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x54,0x00,0x00,0x00,
    +0x52,0x00,0x00,0x00,0x94,0x01,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x22,0x00,0x00,0x00,0x74,0x01,0x00,0x00,0x50,0x00,0x00,0x00,
    +0xe1,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x19,0x00,0x00,0x00,
     0x95,0x01,0x00,0x00,0x94,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x96,0x01,0x00,0x00,0x95,0x01,0x00,0x00,
     0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x98,0x01,0x00,0x00,
    -0x96,0x01,0x00,0x00,0x90,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,
    +0x96,0x01,0x00,0x00,0x57,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x9b,0x01,0x00,0x00,0x88,0x01,0x00,0x00,
     0xc5,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9c,0x01,0x00,0x00,
     0x98,0x01,0x00,0x00,0x9b,0x01,0x00,0x00,0x70,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0x9d,0x01,0x00,0x00,0x9c,0x01,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x9d,0x01,0x00,0x00,0x9c,0x01,0x00,0x00,
     0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9f,0x01,0x00,0x00,
    -0x96,0x01,0x00,0x00,0x43,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,
    +0x96,0x01,0x00,0x00,0x40,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0xa2,0x01,0x00,0x00,0x8e,0x01,0x00,0x00,
     0xc5,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa3,0x01,0x00,0x00,
     0x9f,0x01,0x00,0x00,0xa2,0x01,0x00,0x00,0x70,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0xa4,0x01,0x00,0x00,0xa3,0x01,0x00,0x00,
    -0x50,0x00,0x05,0x00,0x0f,0x00,0x00,0x00,0xa5,0x01,0x00,0x00,
    +0x08,0x00,0x00,0x00,0xa4,0x01,0x00,0x00,0xa3,0x01,0x00,0x00,
    +0x50,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0xa5,0x01,0x00,0x00,
     0x9d,0x01,0x00,0x00,0xa4,0x01,0x00,0x00,0x8e,0x00,0x05,0x00,
    -0x0f,0x00,0x00,0x00,0xa7,0x01,0x00,0x00,0xa5,0x01,0x00,0x00,
    -0x77,0x01,0x00,0x00,0x50,0x00,0x05,0x00,0x0f,0x00,0x00,0x00,
    +0x09,0x00,0x00,0x00,0xa7,0x01,0x00,0x00,0xa5,0x01,0x00,0x00,
    +0x77,0x01,0x00,0x00,0x50,0x00,0x05,0x00,0x09,0x00,0x00,0x00,
     0xa9,0x01,0x00,0x00,0x7d,0x01,0x00,0x00,0x7d,0x01,0x00,0x00,
    -0x81,0x00,0x05,0x00,0x0f,0x00,0x00,0x00,0xaa,0x01,0x00,0x00,
    +0x81,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0xaa,0x01,0x00,0x00,
     0xa7,0x01,0x00,0x00,0xa9,0x01,0x00,0x00,0x51,0x00,0x05,0x00,
    -0x0e,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,0xaa,0x01,0x00,0x00,
    +0x08,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,0xaa,0x01,0x00,0x00,
     0x00,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xfa,0x00,0x00,0x00,0x66,0x01,0x00,0x00,0xe6,0x00,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,
     0xfa,0x00,0x00,0x00,0xe1,0x00,0x00,0x00,0x41,0x00,0x06,0x00,
    -0x60,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,
    -0x5c,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x53,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,
    -0x73,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0xff,0x00,0x00,0x00,
    -0xfe,0x00,0x00,0x00,0x51,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,
    +0x26,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,
    +0x22,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x18,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,
    +0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xff,0x00,0x00,0x00,
    +0xfe,0x00,0x00,0x00,0x51,0x00,0x05,0x00,0x08,0x00,0x00,0x00,
     0x02,0x01,0x00,0x00,0xaa,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x08,0x01,0x00,0x00,
    -0xfc,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x41,0x00,0x06,0x00,
    -0x60,0x00,0x00,0x00,0x09,0x01,0x00,0x00,0xf7,0x00,0x00,0x00,
    -0x5c,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x53,0x00,0x00,0x00,0x0a,0x01,0x00,0x00,0x09,0x01,0x00,0x00,
    -0x73,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0x0b,0x01,0x00,0x00,
    -0x0a,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,
    +0xfc,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x41,0x00,0x06,0x00,
    +0x26,0x00,0x00,0x00,0x09,0x01,0x00,0x00,0xf7,0x00,0x00,0x00,
    +0x22,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x18,0x00,0x00,0x00,0x0a,0x01,0x00,0x00,0x09,0x01,0x00,0x00,
    +0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x0b,0x01,0x00,0x00,
    +0x0a,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x08,0x00,0x00,0x00,
     0x0c,0x01,0x00,0x00,0x02,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,
    -0x0c,0x00,0x08,0x00,0x0e,0x00,0x00,0x00,0x0d,0x01,0x00,0x00,
    +0x0c,0x00,0x08,0x00,0x08,0x00,0x00,0x00,0x0d,0x01,0x00,0x00,
     0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,
     0xff,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0x0f,0x01,0x00,0x00,0xc1,0x00,0x00,0x00,
    -0x81,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,0x10,0x01,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x0f,0x01,0x00,0x00,0xc1,0x00,0x00,0x00,
    +0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0x10,0x01,0x00,0x00,
     0x0f,0x01,0x00,0x00,0x0d,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
     0xc1,0x00,0x00,0x00,0x10,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x13,0x01,0x00,0x00,0xaf,0x01,0x00,0x00,
    @@ -131947,7 +135635,7 @@ unsigned char mul_mat_vec_q5_1_f16_f32_data[] = {
     0xb0,0x01,0x00,0x00,0x16,0x01,0x00,0x00,0xc5,0x00,0x00,0x00,
     0x2e,0x01,0x00,0x00,0x1a,0x01,0x00,0x00,0xac,0x00,0x05,0x00,
     0xcc,0x00,0x00,0x00,0x1d,0x01,0x00,0x00,0xb0,0x01,0x00,0x00,
    -0x92,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x19,0x01,0x00,0x00,
    +0x59,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x19,0x01,0x00,0x00,
     0x1a,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
     0x1d,0x01,0x00,0x00,0x18,0x01,0x00,0x00,0x19,0x01,0x00,0x00,
     0xf8,0x00,0x02,0x00,0x18,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,
    @@ -131959,9 +135647,9 @@ unsigned char mul_mat_vec_q5_1_f16_f32_data[] = {
     0x26,0x01,0x00,0x00,0xaf,0x00,0x00,0x00,0xb0,0x01,0x00,0x00,
     0x41,0x00,0x05,0x00,0xc0,0x00,0x00,0x00,0x27,0x01,0x00,0x00,
     0xbd,0x00,0x00,0x00,0x26,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0x28,0x01,0x00,0x00,0x27,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0x2a,0x01,0x00,0x00,
    -0xc1,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x28,0x01,0x00,0x00,0x27,0x01,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x2a,0x01,0x00,0x00,
    +0xc1,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00,
     0x2b,0x01,0x00,0x00,0x2a,0x01,0x00,0x00,0x28,0x01,0x00,0x00,
     0x3e,0x00,0x03,0x00,0xc1,0x00,0x00,0x00,0x2b,0x01,0x00,0x00,
     0xf9,0x00,0x02,0x00,0x22,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
    @@ -131969,19 +135657,19 @@ unsigned char mul_mat_vec_q5_1_f16_f32_data[] = {
     0xd1,0x00,0x00,0x00,0x14,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
     0x1a,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x1a,0x01,0x00,0x00,
     0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2e,0x01,0x00,0x00,
    -0xb0,0x01,0x00,0x00,0x68,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0xb0,0x01,0x00,0x00,0x2e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
     0x17,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x19,0x01,0x00,0x00,
     0xaa,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,0x30,0x01,0x00,0x00,
    -0xaf,0x00,0x00,0x00,0x92,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,
    +0xaf,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,
     0x32,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
     0x30,0x01,0x00,0x00,0x31,0x01,0x00,0x00,0x32,0x01,0x00,0x00,
     0xf8,0x00,0x02,0x00,0x31,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x39,0x01,0x00,0x00,0x6a,0x01,0x00,0x00,
     0xab,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0xc0,0x00,0x00,0x00,
    -0x3a,0x01,0x00,0x00,0xbd,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0x3b,0x01,0x00,0x00,
    +0x3a,0x01,0x00,0x00,0xbd,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x3b,0x01,0x00,0x00,
     0x3a,0x01,0x00,0x00,0x41,0x00,0x06,0x00,0x3c,0x01,0x00,0x00,
    -0x3d,0x01,0x00,0x00,0x36,0x01,0x00,0x00,0x5c,0x00,0x00,0x00,
    +0x3d,0x01,0x00,0x00,0x36,0x01,0x00,0x00,0x22,0x00,0x00,0x00,
     0x39,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x3d,0x01,0x00,0x00,
     0x3b,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x32,0x01,0x00,0x00,
     0xf8,0x00,0x02,0x00,0x32,0x01,0x00,0x00,0xfd,0x00,0x01,0x00,
    @@ -131998,48 +135686,48 @@ unsigned char mul_mat_vec_q5_1_f32_f32_data[] = {
     0x2e,0x34,0x35,0x30,0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00,
     0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0f,0x00,0x0d,0x00,
     0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e,
    -0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x5b,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,0xad,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x73,0x00,0x00,0x00,
    +0x7b,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,0xad,0x00,0x00,0x00,
     0xbd,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,0x35,0x01,0x00,0x00,
     0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00,
     0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    -0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x1c,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x1c,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x1c,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x1c,0x00,0x00,0x00,
    +0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x1d,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x1e,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x1e,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x20,0x00,0x00,0x00,
    +0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x20,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x73,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    +0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x79,0x00,0x00,0x00,
     0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x79,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
     0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x20,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,
    +0x79,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x79,0x00,0x00,0x00,
     0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x79,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
     0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x20,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,
    +0x79,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x79,0x00,0x00,0x00,
     0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x79,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
     0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x20,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,
    +0x79,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x79,0x00,0x00,0x00,
     0x09,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x79,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,
     0x23,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    -0x20,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x56,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x57,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x57,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x57,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x57,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x58,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    -0x48,0x00,0x04,0x00,0x59,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x59,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x47,0x00,0x03,0x00,0x59,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x5b,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x5b,0x00,0x00,0x00,
    -0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x79,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
     0xa9,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,
     0x47,0x00,0x04,0x00,0xad,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
     0x1b,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xba,0x00,0x00,0x00,
    @@ -132065,135 +135753,135 @@ unsigned char mul_mat_vec_q5_1_f32_f32_data[] = {
     0x19,0x00,0x00,0x00,0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00,
     0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
     0x15,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0x0e,0x00,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x17,0x00,0x04,0x00,0x0f,0x00,0x00,0x00,
    -0x0e,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x17,0x00,0x04,0x00,
    -0x17,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x17,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x18,0x00,0x00,0x00,
    -0x19,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x1e,0x00,0x0d,0x00,0x20,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0x08,0x00,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x17,0x00,0x04,0x00,0x09,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x16,0x00,0x03,0x00,
    +0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x15,0x00,0x04,0x00,
    +0x19,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,
    +0x10,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,
    +0x19,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x1e,0x00,0x06,0x00,
    +0x1c,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    +0x1d,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
    +0x1e,0x00,0x00,0x00,0x1d,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x1f,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x21,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x26,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
    +0x2e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x21,0x00,0x00,0x00,0x36,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x37,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
    +0x40,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x46,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x50,0x00,0x00,0x00,
    +0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x52,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x57,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x59,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x62,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x17,0x00,0x04,0x00,
    +0x71,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x72,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x71,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x72,0x00,0x00,0x00,
    +0x73,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x74,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x1e,0x00,0x0d,0x00,0x79,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
     0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
     0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
     0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x21,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x09,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x23,0x00,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x25,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,
    -0x30,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x23,0x00,0x00,0x00,0x36,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x3c,0x00,0x00,0x00,
    -0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,
    -0x43,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x23,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0x53,0x00,0x00,0x00,
    -0x10,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x54,0x00,0x00,0x00,
    -0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
    -0x1c,0x00,0x04,0x00,0x56,0x00,0x00,0x00,0x54,0x00,0x00,0x00,
    -0x55,0x00,0x00,0x00,0x1e,0x00,0x06,0x00,0x57,0x00,0x00,0x00,
    -0x53,0x00,0x00,0x00,0x53,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x56,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x58,0x00,0x00,0x00,
    -0x57,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x59,0x00,0x00,0x00,
    -0x58,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x5a,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0x5a,0x00,0x00,0x00,0x5b,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x60,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x53,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x23,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x70,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x71,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x89,0x00,0x00,0x00,
    -0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x8b,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x06,0x00,0x00,0x00,0x90,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x92,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x18,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x7a,0x00,0x00,0x00,
    +0x09,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    +0x7a,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x7c,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x7d,0x00,0x00,0x00,
    +0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x21,0x00,0x00,0x00,0x88,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,
    +0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
    +0x94,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x21,0x00,0x00,0x00,0x9f,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x72,0x00,0x00,0x00,
     0xa9,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0x18,0x00,0x00,0x00,0xad,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x72,0x00,0x00,0x00,0xad,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
     0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xba,0x00,0x00,0x00,
     0x20,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,
    -0x0e,0x00,0x00,0x00,0xba,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x08,0x00,0x00,0x00,0xba,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
     0xbc,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,
     0x3b,0x00,0x04,0x00,0xbc,0x00,0x00,0x00,0xbd,0x00,0x00,0x00,
    -0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x08,0x00,0x00,0x00,
     0xbf,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0xc0,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,
    +0xc0,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
     0x14,0x00,0x02,0x00,0xcc,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
     0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xdc,0x00,0x00,0x00,
     0x20,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0xf4,0x00,0x00,0x00,
    -0x0e,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xf5,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xf5,0x00,0x00,0x00,
     0xf4,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xf6,0x00,0x00,0x00,
     0x0c,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
     0xf6,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
     0x20,0x00,0x04,0x00,0xfd,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x0e,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x13,0x01,0x00,0x00,0x08,0x01,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0x15,0x01,0x00,0x00,0x86,0x00,0x00,0x00,
     0xba,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    -0x32,0x01,0x00,0x00,0x0e,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
    +0x32,0x01,0x00,0x00,0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
     0x33,0x01,0x00,0x00,0x32,0x01,0x00,0x00,0x20,0x00,0x04,0x00,
     0x34,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x33,0x01,0x00,0x00,
     0x3b,0x00,0x04,0x00,0x34,0x01,0x00,0x00,0x35,0x01,0x00,0x00,
     0x0c,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x3c,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x33,0x00,0x06,0x00,
    -0x17,0x00,0x00,0x00,0x3d,0x01,0x00,0x00,0x3c,0x01,0x00,0x00,
    -0x1a,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x36,0x00,0x05,0x00,
    +0x71,0x00,0x00,0x00,0x3d,0x01,0x00,0x00,0x3c,0x01,0x00,0x00,
    +0x62,0x00,0x00,0x00,0x62,0x00,0x00,0x00,0x36,0x00,0x05,0x00,
     0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
     0x03,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xaa,0x00,0x00,0x00,
    -0xa9,0x00,0x00,0x00,0x92,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x74,0x00,0x00,0x00,0xaa,0x00,0x00,0x00,
    +0xa9,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0xab,0x00,0x00,0x00,0xaa,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xae,0x00,0x00,0x00,
    -0xad,0x00,0x00,0x00,0x92,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x74,0x00,0x00,0x00,0xae,0x00,0x00,0x00,
    +0xad,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0xae,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x45,0x01,0x00,0x00,
    -0x19,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x74,0x00,0x00,0x00,0x45,0x01,0x00,0x00,
    +0x73,0x00,0x00,0x00,0x62,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x46,0x01,0x00,0x00,0x45,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,0x48,0x01,0x00,0x00,
    -0x22,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x7d,0x00,0x00,0x00,0x48,0x01,0x00,0x00,
    +0x7b,0x00,0x00,0x00,0x7c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x49,0x01,0x00,0x00,0x48,0x01,0x00,0x00,
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4a,0x01,0x00,0x00,
     0x46,0x01,0x00,0x00,0x49,0x01,0x00,0x00,0x89,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x4e,0x01,0x00,0x00,0x46,0x01,0x00,0x00,
    -0x49,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,
    -0x50,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x30,0x00,0x00,0x00,
    +0x49,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x7d,0x00,0x00,0x00,
    +0x50,0x01,0x00,0x00,0x7b,0x00,0x00,0x00,0x88,0x00,0x00,0x00,
     0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x51,0x01,0x00,0x00,
     0x50,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x52,0x01,0x00,0x00,0x4a,0x01,0x00,0x00,0x51,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,0x54,0x01,0x00,0x00,
    -0x22,0x00,0x00,0x00,0x36,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x7d,0x00,0x00,0x00,0x54,0x01,0x00,0x00,
    +0x7b,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x55,0x01,0x00,0x00,0x54,0x01,0x00,0x00,
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x56,0x01,0x00,0x00,
     0x4e,0x01,0x00,0x00,0x55,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x25,0x00,0x00,0x00,0x58,0x01,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x3c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x7d,0x00,0x00,0x00,0x58,0x01,0x00,0x00,0x7b,0x00,0x00,0x00,
    +0x94,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x59,0x01,0x00,0x00,0x58,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x5a,0x01,0x00,0x00,0x52,0x01,0x00,0x00,
     0x59,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x5c,0x01,0x00,0x00,0x5a,0x01,0x00,0x00,0x56,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,0x5e,0x01,0x00,0x00,
    -0x22,0x00,0x00,0x00,0x43,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x7d,0x00,0x00,0x00,0x5e,0x01,0x00,0x00,
    +0x7b,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x5f,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,
     0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x60,0x01,0x00,0x00,
     0x5c,0x01,0x00,0x00,0x5f,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x25,0x00,0x00,0x00,0x62,0x01,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x48,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x7d,0x00,0x00,0x00,0x62,0x01,0x00,0x00,0x7b,0x00,0x00,0x00,
    +0x9f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x63,0x01,0x00,0x00,0x62,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x64,0x01,0x00,0x00,0x46,0x01,0x00,0x00,
    -0x63,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,
    -0x66,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,
    +0x63,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x7d,0x00,0x00,0x00,
    +0x66,0x01,0x00,0x00,0x7b,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,
     0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x67,0x01,0x00,0x00,
     0x66,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x68,0x01,0x00,0x00,0x46,0x01,0x00,0x00,0x67,0x01,0x00,0x00,
    @@ -132202,9 +135890,9 @@ unsigned char mul_mat_vec_q5_1_f32_f32_data[] = {
     0xc1,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
     0xc3,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xc3,0x00,0x00,0x00,
     0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xad,0x01,0x00,0x00,
    -0x92,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x12,0x01,0x00,0x00,
    -0xc4,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,
    -0xc9,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,
    +0x59,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x12,0x01,0x00,0x00,
    +0xc4,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x7d,0x00,0x00,0x00,
    +0xc9,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
     0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xca,0x00,0x00,0x00,
     0xc9,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xcb,0x00,0x00,0x00,0xca,0x00,0x00,0x00,0xba,0x00,0x00,0x00,
    @@ -132231,78 +135919,78 @@ unsigned char mul_mat_vec_q5_1_f32_f32_data[] = {
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xea,0x00,0x00,0x00,
     0x60,0x01,0x00,0x00,0xdc,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x72,0x01,0x00,0x00,0xea,0x00,0x00,0x00,
    -0xdd,0x00,0x00,0x00,0x41,0x00,0x07,0x00,0x60,0x00,0x00,0x00,
    -0x73,0x01,0x00,0x00,0x5b,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,
    -0x72,0x01,0x00,0x00,0x5c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x53,0x00,0x00,0x00,0x74,0x01,0x00,0x00,0x73,0x01,0x00,0x00,
    -0x73,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0x75,0x01,0x00,0x00,
    -0x74,0x01,0x00,0x00,0x41,0x00,0x07,0x00,0x60,0x00,0x00,0x00,
    -0x79,0x01,0x00,0x00,0x5b,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,
    -0x72,0x01,0x00,0x00,0x68,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x53,0x00,0x00,0x00,0x7a,0x01,0x00,0x00,0x79,0x01,0x00,0x00,
    -0x73,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0x7b,0x01,0x00,0x00,
    -0x7a,0x01,0x00,0x00,0x41,0x00,0x07,0x00,0x71,0x00,0x00,0x00,
    -0x7f,0x01,0x00,0x00,0x5b,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,
    -0x72,0x01,0x00,0x00,0x70,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0xdd,0x00,0x00,0x00,0x41,0x00,0x07,0x00,0x26,0x00,0x00,0x00,
    +0x73,0x01,0x00,0x00,0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    +0x72,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x18,0x00,0x00,0x00,0x74,0x01,0x00,0x00,0x73,0x01,0x00,0x00,
    +0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x75,0x01,0x00,0x00,
    +0x74,0x01,0x00,0x00,0x41,0x00,0x07,0x00,0x26,0x00,0x00,0x00,
    +0x79,0x01,0x00,0x00,0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    +0x72,0x01,0x00,0x00,0x2e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x18,0x00,0x00,0x00,0x7a,0x01,0x00,0x00,0x79,0x01,0x00,0x00,
    +0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x7b,0x01,0x00,0x00,
    +0x7a,0x01,0x00,0x00,0x41,0x00,0x07,0x00,0x37,0x00,0x00,0x00,
    +0x7f,0x01,0x00,0x00,0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    +0x72,0x01,0x00,0x00,0x36,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x80,0x01,0x00,0x00,0x7f,0x01,0x00,0x00,
     0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x83,0x01,0x00,0x00,
     0x80,0x01,0x00,0x00,0xe1,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x84,0x01,0x00,0x00,0x83,0x01,0x00,0x00,
    -0x43,0x00,0x00,0x00,0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x85,0x01,0x00,0x00,0x84,0x01,0x00,0x00,0x55,0x00,0x00,0x00,
    -0x7c,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x86,0x01,0x00,0x00,
    +0x40,0x00,0x00,0x00,0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x85,0x01,0x00,0x00,0x84,0x01,0x00,0x00,0x1a,0x00,0x00,0x00,
    +0x7c,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x86,0x01,0x00,0x00,
     0x85,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x89,0x01,0x00,0x00,0xe1,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,
    +0x89,0x01,0x00,0x00,0xe1,0x00,0x00,0x00,0x46,0x00,0x00,0x00,
     0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8a,0x01,0x00,0x00,
     0x80,0x01,0x00,0x00,0x89,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x8b,0x01,0x00,0x00,0x8a,0x01,0x00,0x00,
    -0x55,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x23,0x00,0x00,0x00,
    +0x1a,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
     0x8c,0x01,0x00,0x00,0x8b,0x01,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x8b,0x00,0x00,0x00,0x92,0x01,0x00,0x00,0x5b,0x00,0x00,0x00,
    -0x5c,0x00,0x00,0x00,0x72,0x01,0x00,0x00,0x89,0x00,0x00,0x00,
    -0xe1,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x54,0x00,0x00,0x00,
    +0x52,0x00,0x00,0x00,0x92,0x01,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x22,0x00,0x00,0x00,0x72,0x01,0x00,0x00,0x50,0x00,0x00,0x00,
    +0xe1,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x19,0x00,0x00,0x00,
     0x93,0x01,0x00,0x00,0x92,0x01,0x00,0x00,0x71,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x94,0x01,0x00,0x00,0x93,0x01,0x00,0x00,
     0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x96,0x01,0x00,0x00,
    -0x94,0x01,0x00,0x00,0x90,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,
    +0x94,0x01,0x00,0x00,0x57,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x99,0x01,0x00,0x00,0x86,0x01,0x00,0x00,
     0xc5,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9a,0x01,0x00,0x00,
     0x96,0x01,0x00,0x00,0x99,0x01,0x00,0x00,0x70,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0x9b,0x01,0x00,0x00,0x9a,0x01,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x9b,0x01,0x00,0x00,0x9a,0x01,0x00,0x00,
     0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9d,0x01,0x00,0x00,
    -0x94,0x01,0x00,0x00,0x43,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,
    +0x94,0x01,0x00,0x00,0x40,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0xa0,0x01,0x00,0x00,0x8c,0x01,0x00,0x00,
     0xc5,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa1,0x01,0x00,0x00,
     0x9d,0x01,0x00,0x00,0xa0,0x01,0x00,0x00,0x70,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0xa2,0x01,0x00,0x00,0xa1,0x01,0x00,0x00,
    -0x50,0x00,0x05,0x00,0x0f,0x00,0x00,0x00,0xa3,0x01,0x00,0x00,
    +0x08,0x00,0x00,0x00,0xa2,0x01,0x00,0x00,0xa1,0x01,0x00,0x00,
    +0x50,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0xa3,0x01,0x00,0x00,
     0x9b,0x01,0x00,0x00,0xa2,0x01,0x00,0x00,0x8e,0x00,0x05,0x00,
    -0x0f,0x00,0x00,0x00,0xa5,0x01,0x00,0x00,0xa3,0x01,0x00,0x00,
    -0x75,0x01,0x00,0x00,0x50,0x00,0x05,0x00,0x0f,0x00,0x00,0x00,
    +0x09,0x00,0x00,0x00,0xa5,0x01,0x00,0x00,0xa3,0x01,0x00,0x00,
    +0x75,0x01,0x00,0x00,0x50,0x00,0x05,0x00,0x09,0x00,0x00,0x00,
     0xa7,0x01,0x00,0x00,0x7b,0x01,0x00,0x00,0x7b,0x01,0x00,0x00,
    -0x81,0x00,0x05,0x00,0x0f,0x00,0x00,0x00,0xa8,0x01,0x00,0x00,
    +0x81,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0xa8,0x01,0x00,0x00,
     0xa5,0x01,0x00,0x00,0xa7,0x01,0x00,0x00,0x51,0x00,0x05,0x00,
    -0x0e,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,0xa8,0x01,0x00,0x00,
    +0x08,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,0xa8,0x01,0x00,0x00,
     0x00,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xfa,0x00,0x00,0x00,0x64,0x01,0x00,0x00,0xe6,0x00,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,
     0xfa,0x00,0x00,0x00,0xe1,0x00,0x00,0x00,0x41,0x00,0x06,0x00,
     0xfd,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,
    -0x5c,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,
    -0x51,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,0x02,0x01,0x00,0x00,
    +0x22,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x08,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,
    +0x51,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0x02,0x01,0x00,0x00,
     0xa8,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0xfc,0x00,0x00,0x00,
    -0x55,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xfd,0x00,0x00,0x00,
    -0x09,0x01,0x00,0x00,0xf7,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,
    -0x08,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,
    +0x1a,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xfd,0x00,0x00,0x00,
    +0x09,0x01,0x00,0x00,0xf7,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    +0x08,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,
     0x0a,0x01,0x00,0x00,0x09,0x01,0x00,0x00,0x85,0x00,0x05,0x00,
    -0x0e,0x00,0x00,0x00,0x0b,0x01,0x00,0x00,0x02,0x01,0x00,0x00,
    -0x0a,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0x0e,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x0b,0x01,0x00,0x00,0x02,0x01,0x00,0x00,
    +0x0a,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0x08,0x00,0x00,0x00,
     0x0c,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,
     0xf3,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x0b,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0x0e,0x01,0x00,0x00,
    -0xc1,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x0e,0x01,0x00,0x00,
    +0xc1,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00,
     0x0f,0x01,0x00,0x00,0x0e,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,
     0x3e,0x00,0x03,0x00,0xc1,0x00,0x00,0x00,0x0f,0x01,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x12,0x01,0x00,0x00,
    @@ -132314,7 +136002,7 @@ unsigned char mul_mat_vec_q5_1_f32_f32_data[] = {
     0x06,0x00,0x00,0x00,0xae,0x01,0x00,0x00,0x15,0x01,0x00,0x00,
     0xc5,0x00,0x00,0x00,0x2d,0x01,0x00,0x00,0x19,0x01,0x00,0x00,
     0xac,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,
    -0xae,0x01,0x00,0x00,0x92,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
    +0xae,0x01,0x00,0x00,0x59,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
     0x18,0x01,0x00,0x00,0x19,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
     0xfa,0x00,0x04,0x00,0x1c,0x01,0x00,0x00,0x17,0x01,0x00,0x00,
     0x18,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x17,0x01,0x00,0x00,
    @@ -132326,37 +136014,37 @@ unsigned char mul_mat_vec_q5_1_f32_f32_data[] = {
     0x06,0x00,0x00,0x00,0x25,0x01,0x00,0x00,0xaf,0x00,0x00,0x00,
     0xae,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0xc0,0x00,0x00,0x00,
     0x26,0x01,0x00,0x00,0xbd,0x00,0x00,0x00,0x25,0x01,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0x27,0x01,0x00,0x00,
    -0x26,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x27,0x01,0x00,0x00,
    +0x26,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,
     0x29,0x01,0x00,0x00,0xc1,0x00,0x00,0x00,0x81,0x00,0x05,0x00,
    -0x0e,0x00,0x00,0x00,0x2a,0x01,0x00,0x00,0x29,0x01,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x2a,0x01,0x00,0x00,0x29,0x01,0x00,0x00,
     0x27,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xc1,0x00,0x00,0x00,
     0x2a,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x21,0x01,0x00,0x00,
     0xf8,0x00,0x02,0x00,0x21,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,
     0xd1,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,0x13,0x01,0x00,0x00,
     0xf9,0x00,0x02,0x00,0x19,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
     0x19,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x2d,0x01,0x00,0x00,0xae,0x01,0x00,0x00,0x68,0x00,0x00,0x00,
    +0x2d,0x01,0x00,0x00,0xae,0x01,0x00,0x00,0x2e,0x00,0x00,0x00,
     0xf9,0x00,0x02,0x00,0x16,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
     0x18,0x01,0x00,0x00,0xaa,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,
    -0x2f,0x01,0x00,0x00,0xaf,0x00,0x00,0x00,0x92,0x00,0x00,0x00,
    +0x2f,0x01,0x00,0x00,0xaf,0x00,0x00,0x00,0x59,0x00,0x00,0x00,
     0xf7,0x00,0x03,0x00,0x31,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
     0xfa,0x00,0x04,0x00,0x2f,0x01,0x00,0x00,0x30,0x01,0x00,0x00,
     0x31,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x30,0x01,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x38,0x01,0x00,0x00,
     0x68,0x01,0x00,0x00,0xab,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
     0xc0,0x00,0x00,0x00,0x39,0x01,0x00,0x00,0xbd,0x00,0x00,0x00,
    -0x5c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,
    +0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,
     0x3a,0x01,0x00,0x00,0x39,0x01,0x00,0x00,0x41,0x00,0x06,0x00,
     0xfd,0x00,0x00,0x00,0x3b,0x01,0x00,0x00,0x35,0x01,0x00,0x00,
    -0x5c,0x00,0x00,0x00,0x38,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x22,0x00,0x00,0x00,0x38,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
     0x3b,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
     0x31,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x31,0x01,0x00,0x00,
     0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
     };
     const uint64_t mul_mat_vec_q5_1_f32_f32_len = 4352;
     
    -unsigned char mul_mat_vec_q5_K_f16_f32_data[] = {
    +unsigned char mul_mat_vec_q5_k_f16_f32_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
     0xf8,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00,
     0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x27,0x00,0x00,0x00,
    @@ -133466,9 +137154,9 @@ unsigned char mul_mat_vec_q5_K_f16_f32_data[] = {
     0xf8,0x00,0x02,0x00,0xbb,0x04,0x00,0x00,0xfd,0x00,0x01,0x00,
     0x38,0x00,0x01,0x00,
     };
    -const uint64_t mul_mat_vec_q5_K_f16_f32_len = 13288;
    +const uint64_t mul_mat_vec_q5_k_f16_f32_len = 13288;
     
    -unsigned char mul_mat_vec_q5_K_f32_f32_data[] = {
    +unsigned char mul_mat_vec_q5_k_f32_f32_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
     0xd8,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00,
     0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x27,0x00,0x00,0x00,
    @@ -134535,9 +138223,9 @@ unsigned char mul_mat_vec_q5_K_f32_f32_data[] = {
     0x9c,0x04,0x00,0x00,0xf8,0x00,0x02,0x00,0x9c,0x04,0x00,0x00,
     0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
     };
    -const uint64_t mul_mat_vec_q5_K_f32_f32_len = 12776;
    +const uint64_t mul_mat_vec_q5_k_f32_f32_len = 12776;
     
    -unsigned char mul_mat_vec_q6_K_f16_f32_data[] = {
    +unsigned char mul_mat_vec_q6_k_f16_f32_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
     0x26,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00,
     0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x27,0x00,0x00,0x00,
    @@ -135536,9 +139224,9 @@ unsigned char mul_mat_vec_q6_K_f16_f32_data[] = {
     0xe4,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xe4,0x01,0x00,0x00,
     0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
     };
    -const uint64_t mul_mat_vec_q6_K_f16_f32_len = 11960;
    +const uint64_t mul_mat_vec_q6_k_f16_f32_len = 11960;
     
    -unsigned char mul_mat_vec_q6_K_f32_f32_data[] = {
    +unsigned char mul_mat_vec_q6_k_f32_f32_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
     0x16,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00,
     0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x27,0x00,0x00,0x00,
    @@ -136516,7 +140204,7 @@ unsigned char mul_mat_vec_q6_K_f32_f32_data[] = {
     0xf8,0x00,0x02,0x00,0xe1,0x01,0x00,0x00,0xfd,0x00,0x01,0x00,
     0x38,0x00,0x01,0x00,
     };
    -const uint64_t mul_mat_vec_q6_K_f32_f32_len = 11704;
    +const uint64_t mul_mat_vec_q6_k_f32_f32_len = 11704;
     
     unsigned char mul_mat_vec_q8_0_f16_f32_data[] = {
     0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00,
    @@ -136527,45 +140215,45 @@ unsigned char mul_mat_vec_q8_0_f16_f32_data[] = {
     0x2e,0x34,0x35,0x30,0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00,
     0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0f,0x00,0x0d,0x00,
     0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e,
    -0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x5b,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,0x82,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x46,0x00,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,0x82,0x00,0x00,0x00,
     0x92,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,0x0a,0x01,0x00,0x00,
     0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00,
     0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    -0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x1c,0x00,0x00,0x00,
     0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x20,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,
    -0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x20,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x20,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,
    -0x09,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    -0x20,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x56,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x57,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x1c,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x1d,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    +0x48,0x00,0x04,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x1e,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x47,0x00,0x03,0x00,0x1e,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x20,0x00,0x00,0x00,
    +0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x46,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x4c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
     0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x57,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x58,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x48,0x00,0x04,0x00,
    -0x59,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x59,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    -0x59,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x5b,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x5b,0x00,0x00,0x00,0x21,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x7d,0x00,0x00,0x00,
    +0x4c,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x4c,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x4c,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x4c,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x4c,0x00,0x00,0x00,
    +0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x4c,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x4c,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x4c,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x4c,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x4c,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x28,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x4c,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x7d,0x00,0x00,0x00,
     0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
     0x82,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
     0x47,0x00,0x04,0x00,0x8f,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    @@ -136591,66 +140279,66 @@ unsigned char mul_mat_vec_q8_0_f16_f32_data[] = {
     0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00,
     0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x16,0x00,0x03,0x00,0x0e,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x17,0x00,0x04,0x00,0x0f,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x17,0x00,0x04,0x00,0x17,0x00,0x00,0x00,
    +0x16,0x00,0x03,0x00,0x08,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x17,0x00,0x04,0x00,0x09,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0x18,0x00,0x00,0x00,
    +0x10,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x19,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x1c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    +0x1a,0x00,0x00,0x00,0x1e,0x00,0x04,0x00,0x1c,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    +0x1d,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
    +0x1e,0x00,0x00,0x00,0x1d,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x1f,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x21,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x26,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
    +0x2d,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x2f,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x38,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x17,0x00,0x04,0x00,0x44,0x00,0x00,0x00,
     0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x18,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x17,0x00,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x1a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x1b,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x1e,0x00,0x0d,0x00,0x20,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
    -0x09,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0x21,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    -0x15,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,
    -0x24,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x25,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x30,0x00,0x00,0x00,
    -0x0a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,
    -0x36,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x23,0x00,0x00,0x00,0x3c,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x43,0x00,0x00,0x00,
    -0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,
    -0x48,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x23,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x16,0x00,0x03,0x00,0x53,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
    -0x15,0x00,0x04,0x00,0x54,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x55,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,
    -0x56,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x55,0x00,0x00,0x00,
    -0x1e,0x00,0x04,0x00,0x57,0x00,0x00,0x00,0x53,0x00,0x00,0x00,
    -0x56,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x58,0x00,0x00,0x00,
    -0x57,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x59,0x00,0x00,0x00,
    -0x58,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x5a,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0x5a,0x00,0x00,0x00,0x5b,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x60,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x53,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x23,0x00,0x00,0x00,0x67,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x69,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x54,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x18,0x00,0x00,0x00,
    +0x45,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x44,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x45,0x00,0x00,0x00,0x46,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x47,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x1e,0x00,0x0d,0x00,
    +0x4c,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x4d,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x4c,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x4d,0x00,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x21,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x50,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
    +0x5b,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x21,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x67,0x00,0x00,0x00,
    +0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
    +0x6e,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x21,0x00,0x00,0x00,0x73,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x78,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x45,0x00,0x00,0x00,
     0x7d,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x82,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x45,0x00,0x00,0x00,0x82,0x00,0x00,0x00,
     0x01,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x8f,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,
    -0x90,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x8f,0x00,0x00,0x00,
    +0x90,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x8f,0x00,0x00,0x00,
     0x20,0x00,0x04,0x00,0x91,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
     0x90,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x91,0x00,0x00,0x00,
     0x92,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0x94,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x94,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
     0x20,0x00,0x04,0x00,0x95,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x0e,0x00,0x00,0x00,0x14,0x00,0x02,0x00,0xa1,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x14,0x00,0x02,0x00,0xa1,0x00,0x00,0x00,
     0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa6,0x00,0x00,0x00,
     0x02,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0xc8,0x00,0x00,0x00,
    -0x53,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xc9,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xc9,0x00,0x00,0x00,
     0xc8,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xca,0x00,0x00,0x00,
     0x0c,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
     0xca,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    @@ -136658,59 +140346,59 @@ unsigned char mul_mat_vec_q8_0_f16_f32_data[] = {
     0x08,0x01,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
     0xea,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x8f,0x00,0x00,0x00,
     0xa6,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x07,0x01,0x00,0x00,
    -0x0e,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x08,0x01,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x08,0x01,0x00,0x00,
     0x07,0x01,0x00,0x00,0x20,0x00,0x04,0x00,0x09,0x01,0x00,0x00,
     0x0c,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,
     0x09,0x01,0x00,0x00,0x0a,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
     0x20,0x00,0x04,0x00,0x10,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x0e,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x12,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x33,0x00,0x06,0x00,
    -0x17,0x00,0x00,0x00,0x13,0x01,0x00,0x00,0x12,0x01,0x00,0x00,
    -0x1a,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x36,0x00,0x05,0x00,
    +0x44,0x00,0x00,0x00,0x13,0x01,0x00,0x00,0x12,0x01,0x00,0x00,
    +0x38,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x36,0x00,0x05,0x00,
     0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
     0x03,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x47,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,
     0x7d,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x83,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x47,0x00,0x00,0x00,0x83,0x00,0x00,0x00,
     0x82,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x83,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x1b,0x01,0x00,0x00,
    -0x19,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x47,0x00,0x00,0x00,0x1b,0x01,0x00,0x00,
    +0x46,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,0x1b,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,0x1e,0x01,0x00,0x00,
    -0x22,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x50,0x00,0x00,0x00,0x1e,0x01,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x1f,0x01,0x00,0x00,0x1e,0x01,0x00,0x00,
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x20,0x01,0x00,0x00,
     0x1c,0x01,0x00,0x00,0x1f,0x01,0x00,0x00,0x89,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x24,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,
    -0x1f,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,
    -0x26,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x30,0x00,0x00,0x00,
    +0x1f,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x50,0x00,0x00,0x00,
    +0x26,0x01,0x00,0x00,0x4e,0x00,0x00,0x00,0x5b,0x00,0x00,0x00,
     0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x27,0x01,0x00,0x00,
     0x26,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x28,0x01,0x00,0x00,0x20,0x01,0x00,0x00,0x27,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,0x2a,0x01,0x00,0x00,
    -0x22,0x00,0x00,0x00,0x36,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x50,0x00,0x00,0x00,0x2a,0x01,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x2b,0x01,0x00,0x00,0x2a,0x01,0x00,0x00,
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2c,0x01,0x00,0x00,
     0x24,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x25,0x00,0x00,0x00,0x2e,0x01,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x3c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x50,0x00,0x00,0x00,0x2e,0x01,0x00,0x00,0x4e,0x00,0x00,0x00,
    +0x67,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x2f,0x01,0x00,0x00,0x2e,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x30,0x01,0x00,0x00,0x28,0x01,0x00,0x00,
     0x2f,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x32,0x01,0x00,0x00,0x30,0x01,0x00,0x00,0x2c,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,0x34,0x01,0x00,0x00,
    -0x22,0x00,0x00,0x00,0x43,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x50,0x00,0x00,0x00,0x34,0x01,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x35,0x01,0x00,0x00,0x34,0x01,0x00,0x00,
     0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x36,0x01,0x00,0x00,
     0x32,0x01,0x00,0x00,0x35,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x25,0x00,0x00,0x00,0x38,0x01,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x48,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x50,0x00,0x00,0x00,0x38,0x01,0x00,0x00,0x4e,0x00,0x00,0x00,
    +0x73,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x39,0x01,0x00,0x00,0x38,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x3a,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,
    -0x39,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,
    -0x3c,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,
    +0x39,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x50,0x00,0x00,0x00,
    +0x3c,0x01,0x00,0x00,0x4e,0x00,0x00,0x00,0x78,0x00,0x00,0x00,
     0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x3d,0x01,0x00,0x00,
     0x3c,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x3e,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,
    @@ -136720,8 +140408,8 @@ unsigned char mul_mat_vec_q8_0_f16_f32_data[] = {
     0x98,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x98,0x00,0x00,0x00,
     0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x5e,0x01,0x00,0x00,
     0x7e,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,
    -0x99,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,
    -0x9e,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,
    +0x99,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x50,0x00,0x00,0x00,
    +0x9e,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
     0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x9f,0x00,0x00,0x00,
     0x9e,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xa0,0x00,0x00,0x00,0x9f,0x00,0x00,0x00,0x8f,0x00,0x00,0x00,
    @@ -136739,63 +140427,63 @@ unsigned char mul_mat_vec_q8_0_f16_f32_data[] = {
     0x80,0x00,0x00,0x00,0x9f,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xb0,0x00,0x00,0x00,0xae,0x00,0x00,0x00,
     0xa9,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xb1,0x00,0x00,0x00,0xb0,0x00,0x00,0x00,0x55,0x00,0x00,0x00,
    +0xb1,0x00,0x00,0x00,0xb0,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,
     0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,
    -0xa9,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    +0xa9,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,
    -0x1a,0x00,0x00,0x00,0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x38,0x00,0x00,0x00,0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xba,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbe,0x00,0x00,0x00,
    -0x36,0x01,0x00,0x00,0x55,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x36,0x01,0x00,0x00,0x1a,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x44,0x01,0x00,0x00,0xbe,0x00,0x00,0x00,
    -0xb1,0x00,0x00,0x00,0x41,0x00,0x07,0x00,0x60,0x00,0x00,0x00,
    -0x45,0x01,0x00,0x00,0x5b,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,
    -0x44,0x01,0x00,0x00,0x5c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x53,0x00,0x00,0x00,0x46,0x01,0x00,0x00,0x45,0x01,0x00,0x00,
    -0x73,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0x47,0x01,0x00,0x00,
    -0x46,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x69,0x00,0x00,0x00,
    -0x4c,0x01,0x00,0x00,0x5b,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,
    -0x44,0x01,0x00,0x00,0x67,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x54,0x00,0x00,0x00,0x4d,0x01,0x00,0x00,
    -0x4c,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x23,0x00,0x00,0x00,
    +0xb1,0x00,0x00,0x00,0x41,0x00,0x07,0x00,0x26,0x00,0x00,0x00,
    +0x45,0x01,0x00,0x00,0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    +0x44,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x18,0x00,0x00,0x00,0x46,0x01,0x00,0x00,0x45,0x01,0x00,0x00,
    +0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x47,0x01,0x00,0x00,
    +0x46,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x2f,0x00,0x00,0x00,
    +0x4c,0x01,0x00,0x00,0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    +0x44,0x01,0x00,0x00,0x2d,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x4d,0x01,0x00,0x00,
    +0x4c,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
     0x4e,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0x4f,0x01,0x00,0x00,0x4e,0x01,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x4f,0x01,0x00,0x00,0x4e,0x01,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x54,0x01,0x00,0x00,
    -0xb5,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x69,0x00,0x00,0x00,0x55,0x01,0x00,0x00,0x5b,0x00,0x00,0x00,
    -0x5c,0x00,0x00,0x00,0x44,0x01,0x00,0x00,0x67,0x00,0x00,0x00,
    -0x54,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x54,0x00,0x00,0x00,
    +0xb5,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x2f,0x00,0x00,0x00,0x55,0x01,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x22,0x00,0x00,0x00,0x44,0x01,0x00,0x00,0x2d,0x00,0x00,0x00,
    +0x54,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x19,0x00,0x00,0x00,
     0x56,0x01,0x00,0x00,0x55,0x01,0x00,0x00,0x72,0x00,0x04,0x00,
    -0x23,0x00,0x00,0x00,0x57,0x01,0x00,0x00,0x56,0x01,0x00,0x00,
    -0x6f,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0x58,0x01,0x00,0x00,
    -0x57,0x01,0x00,0x00,0x50,0x00,0x05,0x00,0x0f,0x00,0x00,0x00,
    +0x21,0x00,0x00,0x00,0x57,0x01,0x00,0x00,0x56,0x01,0x00,0x00,
    +0x6f,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x58,0x01,0x00,0x00,
    +0x57,0x01,0x00,0x00,0x50,0x00,0x05,0x00,0x09,0x00,0x00,0x00,
     0x59,0x01,0x00,0x00,0x4f,0x01,0x00,0x00,0x58,0x01,0x00,0x00,
    -0x8e,0x00,0x05,0x00,0x0f,0x00,0x00,0x00,0x5b,0x01,0x00,0x00,
    +0x8e,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0x5b,0x01,0x00,0x00,
     0x59,0x01,0x00,0x00,0x47,0x01,0x00,0x00,0x51,0x00,0x05,0x00,
    -0x0e,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,0x5b,0x01,0x00,0x00,
    +0x08,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,0x5b,0x01,0x00,0x00,
     0x00,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xce,0x00,0x00,0x00,0x3a,0x01,0x00,0x00,0xba,0x00,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,
     0xce,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,0x41,0x00,0x06,0x00,
    -0x60,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,
    -0x5c,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x53,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,
    -0x73,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,
    -0xd2,0x00,0x00,0x00,0x51,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,
    +0x26,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,
    +0x22,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x18,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,
    +0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,
    +0xd2,0x00,0x00,0x00,0x51,0x00,0x05,0x00,0x08,0x00,0x00,0x00,
     0xd6,0x00,0x00,0x00,0x5b,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdc,0x00,0x00,0x00,
    -0xd0,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x41,0x00,0x06,0x00,
    -0x60,0x00,0x00,0x00,0xdd,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,
    -0x5c,0x00,0x00,0x00,0xdc,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x53,0x00,0x00,0x00,0xde,0x00,0x00,0x00,0xdd,0x00,0x00,0x00,
    -0x73,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,
    -0xde,0x00,0x00,0x00,0x85,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,
    +0xd0,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x41,0x00,0x06,0x00,
    +0x26,0x00,0x00,0x00,0xdd,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,
    +0x22,0x00,0x00,0x00,0xdc,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x18,0x00,0x00,0x00,0xde,0x00,0x00,0x00,0xdd,0x00,0x00,0x00,
    +0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,
    +0xde,0x00,0x00,0x00,0x85,0x00,0x05,0x00,0x08,0x00,0x00,0x00,
     0xe0,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,
    -0x0c,0x00,0x08,0x00,0x0e,0x00,0x00,0x00,0xe1,0x00,0x00,0x00,
    +0x0c,0x00,0x08,0x00,0x08,0x00,0x00,0x00,0xe1,0x00,0x00,0x00,
     0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,
     0xd3,0x00,0x00,0x00,0xe0,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0xe3,0x00,0x00,0x00,0x96,0x00,0x00,0x00,
    -0x81,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,0xe4,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0xe3,0x00,0x00,0x00,0x96,0x00,0x00,0x00,
    +0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0xe4,0x00,0x00,0x00,
     0xe3,0x00,0x00,0x00,0xe1,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,
     0x96,0x00,0x00,0x00,0xe4,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,0x5e,0x01,0x00,0x00,
    @@ -136819,9 +140507,9 @@ unsigned char mul_mat_vec_q8_0_f16_f32_data[] = {
     0xfa,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x5f,0x01,0x00,0x00,
     0x41,0x00,0x05,0x00,0x95,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
     0x92,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,
    -0x96,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,
    +0x96,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00,
     0xff,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,
     0x3e,0x00,0x03,0x00,0x96,0x00,0x00,0x00,0xff,0x00,0x00,0x00,
     0xf9,0x00,0x02,0x00,0xf6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
    @@ -136829,7 +140517,7 @@ unsigned char mul_mat_vec_q8_0_f16_f32_data[] = {
     0xa6,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
     0xee,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xee,0x00,0x00,0x00,
     0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x02,0x01,0x00,0x00,
    -0x5f,0x01,0x00,0x00,0x67,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
    +0x5f,0x01,0x00,0x00,0x2d,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
     0xeb,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xed,0x00,0x00,0x00,
     0xaa,0x00,0x05,0x00,0xa1,0x00,0x00,0x00,0x04,0x01,0x00,0x00,
     0x84,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,
    @@ -136838,10 +140526,10 @@ unsigned char mul_mat_vec_q8_0_f16_f32_data[] = {
     0xf8,0x00,0x02,0x00,0x05,0x01,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x0d,0x01,0x00,0x00,0x3e,0x01,0x00,0x00,
     0x80,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x95,0x00,0x00,0x00,
    -0x0e,0x01,0x00,0x00,0x92,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0x0f,0x01,0x00,0x00,
    +0x0e,0x01,0x00,0x00,0x92,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x0f,0x01,0x00,0x00,
     0x0e,0x01,0x00,0x00,0x41,0x00,0x06,0x00,0x10,0x01,0x00,0x00,
    -0x11,0x01,0x00,0x00,0x0a,0x01,0x00,0x00,0x5c,0x00,0x00,0x00,
    +0x11,0x01,0x00,0x00,0x0a,0x01,0x00,0x00,0x22,0x00,0x00,0x00,
     0x0d,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x11,0x01,0x00,0x00,
     0x0f,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x06,0x01,0x00,0x00,
     0xf8,0x00,0x02,0x00,0x06,0x01,0x00,0x00,0xfd,0x00,0x01,0x00,
    @@ -136858,45 +140546,45 @@ unsigned char mul_mat_vec_q8_0_f32_f32_data[] = {
     0x2e,0x34,0x35,0x30,0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00,
     0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0f,0x00,0x0d,0x00,
     0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e,
    -0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x5b,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,0x82,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x46,0x00,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,0x82,0x00,0x00,0x00,
     0x92,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,0x09,0x01,0x00,0x00,
     0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00,
     0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
    -0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x1c,0x00,0x00,0x00,
     0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x20,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,
    -0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x20,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x20,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x20,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,
    -0x09,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x20,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    -0x20,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x56,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x57,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x1c,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x1d,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    +0x48,0x00,0x04,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x1e,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x47,0x00,0x03,0x00,0x1e,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
    +0x47,0x00,0x04,0x00,0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x20,0x00,0x00,0x00,
    +0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    +0x46,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x4c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
     0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    -0x57,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x58,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x48,0x00,0x04,0x00,
    -0x59,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
    -0x48,0x00,0x05,0x00,0x59,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
    -0x59,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
    -0x5b,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x47,0x00,0x04,0x00,0x5b,0x00,0x00,0x00,0x21,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x7d,0x00,0x00,0x00,
    +0x4c,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x4c,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x4c,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x4c,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x4c,0x00,0x00,0x00,
    +0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x4c,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x4c,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x4c,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x48,0x00,0x05,0x00,0x4c,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
    +0x4c,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
    +0x28,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x4c,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x7d,0x00,0x00,0x00,
     0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
     0x82,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
     0x47,0x00,0x04,0x00,0x8f,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    @@ -136922,126 +140610,126 @@ unsigned char mul_mat_vec_q8_0_f32_f32_data[] = {
     0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00,
     0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x16,0x00,0x03,0x00,0x0e,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x17,0x00,0x04,0x00,0x0f,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,
    -0x02,0x00,0x00,0x00,0x17,0x00,0x04,0x00,0x17,0x00,0x00,0x00,
    +0x16,0x00,0x03,0x00,0x08,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x17,0x00,0x04,0x00,0x09,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    +0x02,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0x18,0x00,0x00,0x00,
    +0x10,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x19,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x06,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x1c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    +0x1a,0x00,0x00,0x00,0x1e,0x00,0x04,0x00,0x1c,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    +0x1d,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
    +0x1e,0x00,0x00,0x00,0x1d,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x1f,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x0c,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
    +0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x21,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x26,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    +0x18,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
    +0x2d,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    +0x2f,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x38,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x17,0x00,0x04,0x00,0x44,0x00,0x00,0x00,
     0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x18,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x17,0x00,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x1a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x1b,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x1e,0x00,0x0d,0x00,0x20,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
    -0x09,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0x21,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    -0x15,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,
    -0x24,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
    -0x25,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x30,0x00,0x00,0x00,
    -0x0a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,
    -0x36,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x23,0x00,0x00,0x00,0x3c,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x43,0x00,0x00,0x00,
    -0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,
    -0x48,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x23,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    -0x16,0x00,0x03,0x00,0x53,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
    -0x15,0x00,0x04,0x00,0x54,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    -0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    -0x55,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,
    -0x56,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x55,0x00,0x00,0x00,
    -0x1e,0x00,0x04,0x00,0x57,0x00,0x00,0x00,0x53,0x00,0x00,0x00,
    -0x56,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x58,0x00,0x00,0x00,
    -0x57,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x59,0x00,0x00,0x00,
    -0x58,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x5a,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
    -0x5a,0x00,0x00,0x00,0x5b,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x2b,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,
    -0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x60,0x00,0x00,0x00,
    -0x0c,0x00,0x00,0x00,0x53,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x23,0x00,0x00,0x00,0x67,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
    -0x20,0x00,0x04,0x00,0x69,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x54,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x18,0x00,0x00,0x00,
    +0x45,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x44,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x45,0x00,0x00,0x00,0x46,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x47,0x00,0x00,0x00,
    +0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x1e,0x00,0x0d,0x00,
    +0x4c,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x4d,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x4c,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x4d,0x00,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x21,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
    +0x20,0x00,0x04,0x00,0x50,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
    +0x5b,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x21,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x67,0x00,0x00,0x00,
    +0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
    +0x6e,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    +0x21,0x00,0x00,0x00,0x73,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
    +0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x78,0x00,0x00,0x00,
    +0x06,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x45,0x00,0x00,0x00,
     0x7d,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    -0x3b,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x82,0x00,0x00,0x00,
    +0x3b,0x00,0x04,0x00,0x45,0x00,0x00,0x00,0x82,0x00,0x00,0x00,
     0x01,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x8f,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,
    -0x90,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x8f,0x00,0x00,0x00,
    +0x90,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x8f,0x00,0x00,0x00,
     0x20,0x00,0x04,0x00,0x91,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
     0x90,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x91,0x00,0x00,0x00,
     0x92,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0x94,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x94,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
     0x20,0x00,0x04,0x00,0x95,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    -0x0e,0x00,0x00,0x00,0x14,0x00,0x02,0x00,0xa1,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x14,0x00,0x02,0x00,0xa1,0x00,0x00,0x00,
     0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa6,0x00,0x00,0x00,
     0x02,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0xc8,0x00,0x00,0x00,
    -0x0e,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xc9,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xc9,0x00,0x00,0x00,
     0xc8,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xca,0x00,0x00,0x00,
     0x0c,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
     0xca,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
     0x20,0x00,0x04,0x00,0xd1,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
    -0x0e,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0xe7,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x34,0x00,0x06,0x00,
     0x06,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
     0x8f,0x00,0x00,0x00,0xa6,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,
    -0x06,0x01,0x00,0x00,0x0e,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
    +0x06,0x01,0x00,0x00,0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
     0x07,0x01,0x00,0x00,0x06,0x01,0x00,0x00,0x20,0x00,0x04,0x00,
     0x08,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x07,0x01,0x00,0x00,
     0x3b,0x00,0x04,0x00,0x08,0x01,0x00,0x00,0x09,0x01,0x00,0x00,
     0x0c,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x10,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x33,0x00,0x06,0x00,
    -0x17,0x00,0x00,0x00,0x11,0x01,0x00,0x00,0x10,0x01,0x00,0x00,
    -0x1a,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x36,0x00,0x05,0x00,
    +0x44,0x00,0x00,0x00,0x11,0x01,0x00,0x00,0x10,0x01,0x00,0x00,
    +0x38,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x36,0x00,0x05,0x00,
     0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
     0x03,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x47,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,
     0x7d,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x83,0x00,0x00,0x00,
    +0x41,0x00,0x05,0x00,0x47,0x00,0x00,0x00,0x83,0x00,0x00,0x00,
     0x82,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x83,0x00,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x19,0x01,0x00,0x00,
    -0x19,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x47,0x00,0x00,0x00,0x19,0x01,0x00,0x00,
    +0x46,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x1a,0x01,0x00,0x00,0x19,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,
    -0x22,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x50,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x1d,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1e,0x01,0x00,0x00,
     0x1a,0x01,0x00,0x00,0x1d,0x01,0x00,0x00,0x89,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x22,0x01,0x00,0x00,0x1a,0x01,0x00,0x00,
    -0x1d,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,
    -0x24,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x30,0x00,0x00,0x00,
    +0x1d,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x50,0x00,0x00,0x00,
    +0x24,0x01,0x00,0x00,0x4e,0x00,0x00,0x00,0x5b,0x00,0x00,0x00,
     0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x25,0x01,0x00,0x00,
     0x24,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x26,0x01,0x00,0x00,0x1e,0x01,0x00,0x00,0x25,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,0x28,0x01,0x00,0x00,
    -0x22,0x00,0x00,0x00,0x36,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x50,0x00,0x00,0x00,0x28,0x01,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x29,0x01,0x00,0x00,0x28,0x01,0x00,0x00,
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2a,0x01,0x00,0x00,
     0x22,0x01,0x00,0x00,0x29,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x25,0x00,0x00,0x00,0x2c,0x01,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x3c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x50,0x00,0x00,0x00,0x2c,0x01,0x00,0x00,0x4e,0x00,0x00,0x00,
    +0x67,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x2d,0x01,0x00,0x00,0x2c,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x2e,0x01,0x00,0x00,0x26,0x01,0x00,0x00,
     0x2d,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x30,0x01,0x00,0x00,0x2e,0x01,0x00,0x00,0x2a,0x01,0x00,0x00,
    -0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,0x32,0x01,0x00,0x00,
    -0x22,0x00,0x00,0x00,0x43,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x41,0x00,0x05,0x00,0x50,0x00,0x00,0x00,0x32,0x01,0x00,0x00,
    +0x4e,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
     0x06,0x00,0x00,0x00,0x33,0x01,0x00,0x00,0x32,0x01,0x00,0x00,
     0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x34,0x01,0x00,0x00,
     0x30,0x01,0x00,0x00,0x33,0x01,0x00,0x00,0x41,0x00,0x05,0x00,
    -0x25,0x00,0x00,0x00,0x36,0x01,0x00,0x00,0x22,0x00,0x00,0x00,
    -0x48,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
    +0x50,0x00,0x00,0x00,0x36,0x01,0x00,0x00,0x4e,0x00,0x00,0x00,
    +0x73,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
     0x37,0x01,0x00,0x00,0x36,0x01,0x00,0x00,0x84,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x38,0x01,0x00,0x00,0x1a,0x01,0x00,0x00,
    -0x37,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,
    -0x3a,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,
    +0x37,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x50,0x00,0x00,0x00,
    +0x3a,0x01,0x00,0x00,0x4e,0x00,0x00,0x00,0x78,0x00,0x00,0x00,
     0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x3b,0x01,0x00,0x00,
     0x3a,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0x3c,0x01,0x00,0x00,0x1a,0x01,0x00,0x00,0x3b,0x01,0x00,0x00,
    @@ -137051,8 +140739,8 @@ unsigned char mul_mat_vec_q8_0_f32_f32_data[] = {
     0x98,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x98,0x00,0x00,0x00,
     0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x5c,0x01,0x00,0x00,
     0x7e,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0xe6,0x00,0x00,0x00,
    -0x99,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x25,0x00,0x00,0x00,
    -0x9e,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,
    +0x99,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x50,0x00,0x00,0x00,
    +0x9e,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
     0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x9f,0x00,0x00,0x00,
     0x9e,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xa0,0x00,0x00,0x00,0x9f,0x00,0x00,0x00,0x8f,0x00,0x00,0x00,
    @@ -137070,60 +140758,60 @@ unsigned char mul_mat_vec_q8_0_f32_f32_data[] = {
     0x80,0x00,0x00,0x00,0x9f,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xb0,0x00,0x00,0x00,0xae,0x00,0x00,0x00,
     0xa9,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0xb1,0x00,0x00,0x00,0xb0,0x00,0x00,0x00,0x55,0x00,0x00,0x00,
    +0xb1,0x00,0x00,0x00,0xb0,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,
     0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,
    -0xa9,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
    +0xa9,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x86,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,
    -0x1a,0x00,0x00,0x00,0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    +0x38,0x00,0x00,0x00,0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xba,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,
     0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbe,0x00,0x00,0x00,
    -0x34,0x01,0x00,0x00,0x55,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
    +0x34,0x01,0x00,0x00,0x1a,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0x42,0x01,0x00,0x00,0xbe,0x00,0x00,0x00,
    -0xb1,0x00,0x00,0x00,0x41,0x00,0x07,0x00,0x60,0x00,0x00,0x00,
    -0x43,0x01,0x00,0x00,0x5b,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,
    -0x42,0x01,0x00,0x00,0x5c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x53,0x00,0x00,0x00,0x44,0x01,0x00,0x00,0x43,0x01,0x00,0x00,
    -0x73,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0x45,0x01,0x00,0x00,
    -0x44,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x69,0x00,0x00,0x00,
    -0x4a,0x01,0x00,0x00,0x5b,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,
    -0x42,0x01,0x00,0x00,0x67,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x54,0x00,0x00,0x00,0x4b,0x01,0x00,0x00,
    -0x4a,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x23,0x00,0x00,0x00,
    +0xb1,0x00,0x00,0x00,0x41,0x00,0x07,0x00,0x26,0x00,0x00,0x00,
    +0x43,0x01,0x00,0x00,0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    +0x42,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x18,0x00,0x00,0x00,0x44,0x01,0x00,0x00,0x43,0x01,0x00,0x00,
    +0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x45,0x01,0x00,0x00,
    +0x44,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x2f,0x00,0x00,0x00,
    +0x4a,0x01,0x00,0x00,0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    +0x42,0x01,0x00,0x00,0x2d,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x4b,0x01,0x00,0x00,
    +0x4a,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
     0x4c,0x01,0x00,0x00,0x4b,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0x4d,0x01,0x00,0x00,0x4c,0x01,0x00,0x00,
    +0x08,0x00,0x00,0x00,0x4d,0x01,0x00,0x00,0x4c,0x01,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x52,0x01,0x00,0x00,
    -0xb5,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x41,0x00,0x08,0x00,
    -0x69,0x00,0x00,0x00,0x53,0x01,0x00,0x00,0x5b,0x00,0x00,0x00,
    -0x5c,0x00,0x00,0x00,0x42,0x01,0x00,0x00,0x67,0x00,0x00,0x00,
    -0x52,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x54,0x00,0x00,0x00,
    +0xb5,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x41,0x00,0x08,0x00,
    +0x2f,0x00,0x00,0x00,0x53,0x01,0x00,0x00,0x20,0x00,0x00,0x00,
    +0x22,0x00,0x00,0x00,0x42,0x01,0x00,0x00,0x2d,0x00,0x00,0x00,
    +0x52,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x19,0x00,0x00,0x00,
     0x54,0x01,0x00,0x00,0x53,0x01,0x00,0x00,0x72,0x00,0x04,0x00,
    -0x23,0x00,0x00,0x00,0x55,0x01,0x00,0x00,0x54,0x01,0x00,0x00,
    -0x6f,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0x56,0x01,0x00,0x00,
    -0x55,0x01,0x00,0x00,0x50,0x00,0x05,0x00,0x0f,0x00,0x00,0x00,
    +0x21,0x00,0x00,0x00,0x55,0x01,0x00,0x00,0x54,0x01,0x00,0x00,
    +0x6f,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x56,0x01,0x00,0x00,
    +0x55,0x01,0x00,0x00,0x50,0x00,0x05,0x00,0x09,0x00,0x00,0x00,
     0x57,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,0x56,0x01,0x00,0x00,
    -0x8e,0x00,0x05,0x00,0x0f,0x00,0x00,0x00,0x59,0x01,0x00,0x00,
    +0x8e,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0x59,0x01,0x00,0x00,
     0x57,0x01,0x00,0x00,0x45,0x01,0x00,0x00,0x51,0x00,0x05,0x00,
    -0x0e,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,0x59,0x01,0x00,0x00,
    +0x08,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,0x59,0x01,0x00,0x00,
     0x00,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
     0xce,0x00,0x00,0x00,0x38,0x01,0x00,0x00,0xba,0x00,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,
     0xce,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,0x41,0x00,0x06,0x00,
     0xd1,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,
    -0x5c,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    -0x0e,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,
    -0x51,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,
    +0x22,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
    +0x08,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,
    +0x51,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,
     0x59,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x80,0x00,0x05,0x00,
     0x06,0x00,0x00,0x00,0xdc,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,
    -0x1a,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xd1,0x00,0x00,0x00,
    -0xdd,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,
    -0xdc,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,
    +0x38,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xd1,0x00,0x00,0x00,
    +0xdd,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
    +0xdc,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,
     0xde,0x00,0x00,0x00,0xdd,0x00,0x00,0x00,0x85,0x00,0x05,0x00,
    -0x0e,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,
    -0xde,0x00,0x00,0x00,0x0c,0x00,0x08,0x00,0x0e,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,
    +0xde,0x00,0x00,0x00,0x0c,0x00,0x08,0x00,0x08,0x00,0x00,0x00,
     0xe0,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,
     0xc7,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0xe2,0x00,0x00,0x00,
    -0x96,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xe2,0x00,0x00,0x00,
    +0x96,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00,
     0xe3,0x00,0x00,0x00,0xe2,0x00,0x00,0x00,0xe0,0x00,0x00,0x00,
     0x3e,0x00,0x03,0x00,0x96,0x00,0x00,0x00,0xe3,0x00,0x00,0x00,
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe6,0x00,0x00,0x00,
    @@ -137147,17 +140835,17 @@ unsigned char mul_mat_vec_q8_0_f32_f32_data[] = {
     0x06,0x00,0x00,0x00,0xf9,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
     0x5d,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x95,0x00,0x00,0x00,
     0xfa,0x00,0x00,0x00,0x92,0x00,0x00,0x00,0xf9,0x00,0x00,0x00,
    -0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
    -0xfa,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,
    +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,
    +0xfa,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,
     0xfd,0x00,0x00,0x00,0x96,0x00,0x00,0x00,0x81,0x00,0x05,0x00,
    -0x0e,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,
    +0x08,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,
     0xfb,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0x96,0x00,0x00,0x00,
     0xfe,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xf5,0x00,0x00,0x00,
     0xf8,0x00,0x02,0x00,0xf5,0x00,0x00,0x00,0xe0,0x00,0x04,0x00,
     0xa6,0x00,0x00,0x00,0xa6,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,
     0xf9,0x00,0x02,0x00,0xed,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
     0xed,0x00,0x00,0x00,0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
    -0x01,0x01,0x00,0x00,0x5d,0x01,0x00,0x00,0x67,0x00,0x00,0x00,
    +0x01,0x01,0x00,0x00,0x5d,0x01,0x00,0x00,0x2d,0x00,0x00,0x00,
     0xf9,0x00,0x02,0x00,0xea,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
     0xec,0x00,0x00,0x00,0xaa,0x00,0x05,0x00,0xa1,0x00,0x00,0x00,
     0x03,0x01,0x00,0x00,0x84,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,
    @@ -137167,10 +140855,10 @@ unsigned char mul_mat_vec_q8_0_f32_f32_data[] = {
     0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,
     0x3c,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
     0x95,0x00,0x00,0x00,0x0d,0x01,0x00,0x00,0x92,0x00,0x00,0x00,
    -0x5c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,
    +0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,
     0x0e,0x01,0x00,0x00,0x0d,0x01,0x00,0x00,0x41,0x00,0x06,0x00,
     0xd1,0x00,0x00,0x00,0x0f,0x01,0x00,0x00,0x09,0x01,0x00,0x00,
    -0x5c,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
    +0x22,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,
     0x0f,0x01,0x00,0x00,0x0e,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
     0x05,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x05,0x01,0x00,0x00,
     0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
    diff --git a/ggml-vulkan.cpp b/ggml-vulkan.cpp
    index e2d17a3523a48..f389934ead3ed 100644
    --- a/ggml-vulkan.cpp
    +++ b/ggml-vulkan.cpp
    @@ -8,6 +8,7 @@
     
     #include 
     #include 
    +#include 
     #include 
     #include 
     #include 
    @@ -57,6 +58,12 @@ static_assert(K_QUANTS_PER_ITERATION == 1 || K_QUANTS_PER_ITERATION == 2, "K_QUA
             }                                                           \
         } while (0)
     
    +#ifdef GGML_VULKAN_DEBUG
    +#define VK_LOG_DEBUG(msg) std::cerr << msg << std::endl
    +#else
    +#define VK_LOG_DEBUG(msg) ((void) 0)
    +#endif // GGML_VULKAN_DEBUG
    +
     struct ggml_backend_vk_context;
     
     struct vk_queue {
    @@ -159,9 +166,7 @@ struct vk_device {
         std::vector pipelines;
     
         ~vk_device() {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "destroy device " << name << std::endl;
    -#endif
    +        VK_LOG_DEBUG("destroy device " << name);
             device.destroyCommandPool(compute_queue.pool);
             if (!single_queue) {
                 device.destroyCommandPool(transfer_queue.pool);
    @@ -196,9 +201,7 @@ struct vk_buffer_struct {
             if (size == 0) {
                 return;
             }
    -#ifdef GGML_VULKAN_DEBUG
    -        std::cerr << "~vk_buffer_struct(" << buffer << ", " << size << ")" << std::endl;
    -#endif
    +        VK_LOG_DEBUG("~vk_buffer_struct(" << buffer << ", " << size << ")");
     
             device->device.freeMemory(device_memory);
             device->device.destroyBuffer(buffer);
    @@ -355,6 +358,49 @@ struct ggml_vk_garbage_collector {
         std::vector contexts;
     };
     
    +#if defined(GGML_VULKAN_MEMORY_DEBUG) || defined(GGML_VULKAN_DEBUG)
    +#include 
    +
    +#define VK_LOG_MEMORY(msg) std::cerr << "ggml_vulkan memory: " << msg << std::endl
    +
    +static std::string format_size(size_t size) {
    +    const size_t kib = 1024;
    +    const size_t mib = kib * 1024;
    +    const size_t gib = mib * 1024;
    +
    +    std::ostringstream oss;
    +    oss << std::fixed << std::setprecision(2);
    +
    +    if (size >= gib) {
    +        oss << static_cast(size) / gib << " GiB";
    +    } else if (size >= mib) {
    +        oss << static_cast(size) / mib << " MiB";
    +    } else if (size >= kib) {
    +        oss << static_cast(size) / kib << " KiB";
    +    } else {
    +        oss << size << " B";
    +    }
    +
    +    return oss.str();
    +}
    +
    +static std::mutex log_mutex;
    +
    +class vk_memory_logger {
    +public:
    +    vk_memory_logger(): total_device(0), total_host(0) {}
    +    void log_allocation(vk_buffer_ref buf_ref, size_t size);
    +    void log_deallocation(vk_buffer_ref buf_ref);
    +
    +private:
    +    std::map allocations; // Track allocations
    +    size_t total_device;
    +    size_t total_host;
    +};
    +#else
    +#define VK_LOG_MEMORY(msg) ((void) 0)
    +#endif // GGML_VULKAN_MEMORY_DEBUG
    +
     struct ggml_backend_vk_context {
         std::string name;
     
    @@ -379,8 +425,45 @@ struct ggml_backend_vk_context {
         bool initialized;
     
         size_t idx;
    +
    +#ifdef GGML_VULKAN_MEMORY_DEBUG
    +    vk_memory_logger memory_logger;
    +#endif
     };
     
    +#ifdef GGML_VULKAN_MEMORY_DEBUG
    +void vk_memory_logger::log_allocation(vk_buffer_ref buf_ref, size_t size) {
    +    std::lock_guard guard(log_mutex);
    +    vk_buffer buf = buf_ref.lock();
    +    const bool device = bool(buf->memory_property_flags & vk::MemoryPropertyFlagBits::eDeviceLocal);
    +    const std::string type = device ? "device" : "host";
    +    allocations[buf->buffer] = size;
    +    total_device += device ? size : 0;
    +    total_host += device ? 0 : size;
    +    VK_LOG_MEMORY("VULKAN" << buf->ctx->idx << ": +" << format_size(size) << " " << type << " at " << buf->buffer << ". Total device: " << format_size(total_device) << ", total host: " << format_size(total_host));
    +}
    +
    +void vk_memory_logger::log_deallocation(vk_buffer_ref buf_ref) {
    +    if (buf_ref.expired() || buf_ref.lock()->size == 0) {
    +        return;
    +    }
    +
    +    std::lock_guard guard(log_mutex);
    +    vk_buffer buf = buf_ref.lock();
    +    const bool device = bool(buf->memory_property_flags & vk::MemoryPropertyFlagBits::eDeviceLocal);
    +    std::string type = device ? "device" : "host";
    +    auto it = allocations.find(buf->buffer);
    +    total_device -= device ? it->second : 0;
    +    total_host -= device ? 0 : it->second;
    +    if (it != allocations.end()) {
    +        VK_LOG_MEMORY("VULKAN" << buf->ctx->idx << ": -" << format_size(it->second) << " " << type << " at " << buf->buffer << ". Total device: " << format_size(total_device) << ", total host: " << format_size(total_host));
    +        allocations.erase(it);
    +    } else {
    +        VK_LOG_MEMORY("ERROR VULKAN" << buf->ctx->idx << ": Attempted to deallocate unknown " << type << " memory at " << buf->buffer);
    +    }
    +}
    +#endif // GGML_VULKAN_MEMORY_DEBUG
    +
     struct vk_instance_t {
         vk::Instance instance;
     
    @@ -393,15 +476,11 @@ struct vk_instance_t {
     };
     
     static std::shared_ptr ggml_vk_get_device(size_t idx) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_get_device(" << idx << ")" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_vk_get_device(" << idx << ")");
         static std::weak_ptr devices[GGML_VK_MAX_DEVICES];
     
         if (devices[idx].expired()) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "Initializing new vk_device" << std::endl;
    -#endif
    +        VK_LOG_DEBUG("Initializing new vk_device");
             std::shared_ptr device = std::make_shared();
             device->initialized = false;
             devices[idx] = device;
    @@ -428,9 +507,7 @@ static vk_instance_t vk_instance;
     GGML_CALL static void ggml_backend_vk_free(ggml_backend_t backend);
     
     static void ggml_vk_create_pipeline(ggml_backend_vk_context * ctx, vk_pipeline& pipeline, const std::string& name, size_t spv_size, const void* spv_data, const std::string& entrypoint, uint32_t parameter_count, uint32_t push_constant_size, std::array wg_denoms, std::vector&& specialization_constants, uint32_t align) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_create_pipeline(" << name << ", " << entrypoint << ", " << parameter_count << ", " << push_constant_size << ", (" << wg_denoms[0] << "," << wg_denoms[1] << "," << wg_denoms[2] << "), specialization_constants, " << align << ")" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_vk_create_pipeline(" << name << ", " << entrypoint << ", " << parameter_count << ", " << push_constant_size << ", (" << wg_denoms[0] << "," << wg_denoms[1] << "," << wg_denoms[2] << "), specialization_constants, " << align << ")");
         GGML_ASSERT(parameter_count > 0);
         GGML_ASSERT(wg_denoms[0] > 0 && wg_denoms[1] > 0 && wg_denoms[2] > 0); // NOLINT
     
    @@ -531,9 +608,7 @@ static void ggml_vk_create_pipeline(ggml_backend_vk_context * ctx, vk_pipeline&
     }
     
     static void ggml_vk_destroy_pipeline(vk::Device& device, vk_pipeline& pipeline) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_pipeline_destroy_pipeline(" << pipeline->name << ")" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_pipeline_destroy_pipeline(" << pipeline->name << ")");
         for (auto& pool : pipeline->descriptor_pools) {
             device.destroyDescriptorPool(pool);
         }
    @@ -551,9 +626,7 @@ static void ggml_vk_destroy_pipeline(vk::Device& device, vk_pipeline& pipeline)
     }
     
     static void ggml_pipeline_allocate_descriptor_sets(ggml_backend_vk_context * ctx, vk_pipeline& pipeline, uint32_t n) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_pipeline_allocate_descriptor_sets(" << pipeline->name << ", " << n << ")" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_pipeline_allocate_descriptor_sets(" << pipeline->name << ", " << n << ")");
         if (pipeline->descriptor_sets.size() >= pipeline->descriptor_set_idx + n) {
             // Enough descriptors are available
             return;
    @@ -583,16 +656,12 @@ static void ggml_pipeline_allocate_descriptor_sets(ggml_backend_vk_context * ctx
     }
     
     static void ggml_pipeline_cleanup(vk_pipeline& pipeline) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_pipeline_cleanup(" << pipeline->name << ")" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_pipeline_cleanup(" << pipeline->name << ")");
         pipeline->descriptor_set_idx = 0;
     }
     
     static vk::CommandBuffer ggml_vk_create_cmd_buffer(ggml_backend_vk_context * ctx, vk_queue& q) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_create_cmd_buffer()" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_vk_create_cmd_buffer()");
         if (q.cmd_buffers.size() > q.cmd_buffer_idx) {
             // Reuse command buffer
             return q.cmd_buffers[q.cmd_buffer_idx++];
    @@ -612,9 +681,7 @@ static vk::CommandBuffer ggml_vk_create_cmd_buffer(ggml_backend_vk_context * ctx
     }
     
     static vk_submission ggml_vk_create_submission(ggml_backend_vk_context * ctx, vk_queue& q, std::vector wait_semaphores, std::vector signal_semaphores) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_create_submission()" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_vk_create_submission()");
         vk_submission s;
         s.buffer = ggml_vk_create_cmd_buffer(ctx, q);
         s.wait_semaphores = std::move(wait_semaphores);
    @@ -623,9 +690,7 @@ static vk_submission ggml_vk_create_submission(ggml_backend_vk_context * ctx, vk
     }
     
     static void ggml_vk_submit(vk_context * ctx, vk::Fence fence) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_submit(" << ctx->seqs.size() << ", " << fence << ")" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_vk_submit(" << ctx->seqs.size() << ", " << fence << ")");
         if (ctx->seqs.empty()) {
             return;
         }
    @@ -699,9 +764,7 @@ static void ggml_vk_submit(vk_context * ctx, vk::Fence fence) {
     }
     
     static uint32_t ggml_vk_find_queue_family_index(std::vector& queue_family_props, const vk::QueueFlags& required, const vk::QueueFlags& avoid, int32_t compute_index, uint32_t min_num_queues) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_find_queue_family_index()" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_vk_find_queue_family_index()");
         const uint32_t qfsize = queue_family_props.size();
     
         // Try with avoid preferences first
    @@ -747,9 +810,7 @@ static uint32_t ggml_vk_find_queue_family_index(std::vectorgc.contexts.emplace_back();
         vk_context * result = &ctx->gc.contexts[ctx->gc.contexts.size() - 1];
         memset((void *) result, 0, sizeof(vk_context));
    @@ -775,9 +834,7 @@ static vk_context * ggml_vk_create_context(ggml_backend_vk_context * ctx, vk_que
     }
     
     static vk_semaphore * ggml_vk_create_binary_semaphore(ggml_backend_vk_context * ctx) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_create_timeline_semaphore()" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_vk_create_timeline_semaphore()");
         vk::SemaphoreTypeCreateInfo tci{ vk::SemaphoreType::eBinary, 0 };
         vk::SemaphoreCreateInfo ci{};
         ci.setPNext(&tci);
    @@ -787,9 +844,7 @@ static vk_semaphore * ggml_vk_create_binary_semaphore(ggml_backend_vk_context *
     }
     
     static vk_semaphore * ggml_vk_create_timeline_semaphore(ggml_backend_vk_context * ctx) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_create_timeline_semaphore()" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_vk_create_timeline_semaphore()");
         if (ctx->semaphore_idx >= ctx->gc.tl_semaphores.size()) {
             vk::SemaphoreTypeCreateInfo tci{ vk::SemaphoreType::eTimeline, 0 };
             vk::SemaphoreCreateInfo ci{};
    @@ -808,9 +863,7 @@ static vk::Event ggml_vk_create_event(ggml_backend_vk_context * ctx) {
     }
     
     static void ggml_vk_queue_cleanup(ggml_backend_vk_context * ctx, vk_queue& q) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_queue_cleanup()" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_vk_queue_cleanup()");
         // Requires command buffers to be done
     
         ctx->device->device.resetCommandPool(q.pool);
    @@ -830,9 +883,7 @@ static uint32_t find_properties(const vk::PhysicalDeviceMemoryProperties* mem_pr
     }
     
     static vk_buffer ggml_vk_create_buffer(ggml_backend_vk_context * ctx, size_t size, vk::MemoryPropertyFlags req_flags, vk::MemoryPropertyFlags fallback_flags = vk::MemoryPropertyFlags(0)) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_create_buffer(device " << ctx->idx << ", " << size << ", " << to_string(req_flags) << ", " << to_string(fallback_flags) << ")" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_vk_create_buffer(device " << ctx->idx << ", " << size << ", " << to_string(req_flags) << ", " << to_string(fallback_flags) << ")");
         vk_buffer buf = std::make_shared();
     
         if (size == 0) {
    @@ -892,8 +943,8 @@ static vk_buffer ggml_vk_create_buffer(ggml_backend_vk_context * ctx, size_t siz
     
         buf->device = ctx->device;
     
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "Created buffer " << buf->buffer << std::endl;
    +#ifdef GGML_VULKAN_MEMORY_DEBUG
    +    ctx->memory_logger.log_allocation(buf, size);
     #endif
     
         return buf;
    @@ -928,6 +979,14 @@ static vk_buffer ggml_vk_create_buffer_device(ggml_backend_vk_context * ctx, siz
     }
     
     static void ggml_vk_destroy_buffer(vk_buffer& buf) {
    +    if (buf == nullptr) {
    +        return;
    +    }
    +
    +#ifdef GGML_VULKAN_MEMORY_DEBUG
    +    buf->ctx->memory_logger.log_deallocation(buf);
    +#endif
    +
         buf.reset();
     }
     
    @@ -936,9 +995,7 @@ static vk_subbuffer ggml_vk_subbuffer(vk_buffer& buf) {
     }
     
     static void ggml_vk_sync_buffers(vk_context * ctx) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_sync_buffers()" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_vk_sync_buffers()");
         const std::vector mem_barriers{ { { vk::AccessFlagBits::eMemoryRead | vk::AccessFlagBits::eMemoryWrite }, { vk::AccessFlagBits::eMemoryRead | vk::AccessFlagBits::eMemoryWrite } } };
     
         ctx->s->buffer.pipelineBarrier(
    @@ -952,9 +1009,7 @@ static void ggml_vk_sync_buffers(vk_context * ctx) {
     }
     
     static void ggml_vk_wait_events(vk_context * ctx, std::vector&& events) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_wait_events()" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_vk_wait_events()");
         if (events.empty()) {
             return;
         }
    @@ -989,9 +1044,7 @@ static bool ggml_vk_build_shader(ggml_type type) {
     }
     
     static void ggml_vk_load_shaders(ggml_backend_vk_context * ctx) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_load_shaders(" << ctx->name << ")" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_vk_load_shaders(" << ctx->name << ")");
     
         const std::shared_ptr device = ctx->device;
     
    @@ -1042,12 +1095,12 @@ static void ggml_vk_load_shaders(ggml_backend_vk_context * ctx) {
         ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q6_K] = std::make_shared();
     
         if (device->fp16) {
    -        ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f32->l, "matmul_f32_l", matmul_f32_len, matmul_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_l, 1);
    -        ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f32->m, "matmul_f32_m", matmul_f32_len, matmul_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_m, 1);
    -        ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f32->s, "matmul_f32_s", matmul_f32_len, matmul_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_s, 1);
    -        ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f32->a_l, "matmul_f32_aligned_l", matmul_f32_aligned_len, matmul_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_l, l_align);
    -        ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f32->a_m, "matmul_f32_aligned_m", matmul_f32_aligned_len, matmul_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_m, m_align);
    -        ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f32->a_s, "matmul_f32_aligned_s", matmul_f32_aligned_len, matmul_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_s, s_align);
    +        ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f32->l, "matmul_f32_l", matmul_f32_f32_len, matmul_f32_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_l, 1);
    +        ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f32->m, "matmul_f32_m", matmul_f32_f32_len, matmul_f32_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_m, 1);
    +        ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f32->s, "matmul_f32_s", matmul_f32_f32_len, matmul_f32_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_s, 1);
    +        ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f32->a_l, "matmul_f32_aligned_l", matmul_f32_f32_aligned_len, matmul_f32_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_l, l_align);
    +        ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f32->a_m, "matmul_f32_aligned_m", matmul_f32_f32_aligned_len, matmul_f32_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_m, m_align);
    +        ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f32->a_s, "matmul_f32_aligned_s", matmul_f32_f32_aligned_len, matmul_f32_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_s, s_align);
     
             ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f32_f16->l, "matmul_f32_f16_l", matmul_f32_f16_len, matmul_f32_f16_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_l, 1);
             ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f32_f16->m, "matmul_f32_f16_m", matmul_f32_f16_len, matmul_f32_f16_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_m, 1);
    @@ -1140,12 +1193,12 @@ static void ggml_vk_load_shaders(ggml_backend_vk_context * ctx) {
             ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q6_K]->a_m, "matmul_q6_k_f32_aligned_m", matmul_q6_k_f32_aligned_len, matmul_q6_k_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align);
             ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q6_K]->a_s, "matmul_q6_k_f32_aligned_s", matmul_q6_k_f32_aligned_len, matmul_q6_k_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align);
     
    -        ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_id_f32->l, "matmul_id_f32_l", matmul_id_f32_len, matmul_id_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_l, 1);
    -        ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_id_f32->m, "matmul_id_f32_m", matmul_id_f32_len, matmul_id_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_m, 1);
    -        ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_id_f32->s, "matmul_id_f32_s", matmul_id_f32_len, matmul_id_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_s, 1);
    -        ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_id_f32->a_l, "matmul_id_f32_aligned_l", matmul_id_f32_aligned_len, matmul_id_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_l, l_align);
    -        ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_id_f32->a_m, "matmul_id_f32_aligned_m", matmul_id_f32_aligned_len, matmul_id_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_m, m_align);
    -        ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_id_f32->a_s, "matmul_id_f32_aligned_s", matmul_id_f32_aligned_len, matmul_id_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_s, s_align);
    +        ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_id_f32->l, "matmul_id_f32_l", matmul_id_f32_f32_len, matmul_id_f32_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_l, 1);
    +        ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_id_f32->m, "matmul_id_f32_m", matmul_id_f32_f32_len, matmul_id_f32_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_m, 1);
    +        ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_id_f32->s, "matmul_id_f32_s", matmul_id_f32_f32_len, matmul_id_f32_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_s, 1);
    +        ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_id_f32->a_l, "matmul_id_f32_aligned_l", matmul_id_f32_f32_aligned_len, matmul_id_f32_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_l, l_align);
    +        ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_id_f32->a_m, "matmul_id_f32_aligned_m", matmul_id_f32_f32_aligned_len, matmul_id_f32_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_m, m_align);
    +        ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_id_f32->a_s, "matmul_id_f32_aligned_s", matmul_id_f32_f32_aligned_len, matmul_id_f32_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_s, s_align);
     
             ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_id_f16->l, "matmul_id_f16_l", matmul_id_f16_len, matmul_id_f16_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_l, 1);
             ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_id_f16->m, "matmul_id_f16_m", matmul_id_f16_len, matmul_id_f16_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_m, 1);
    @@ -1231,12 +1284,12 @@ static void ggml_vk_load_shaders(ggml_backend_vk_context * ctx) {
             ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q6_K]->a_m, "matmul_id_q6_k_f32_aligned_m", matmul_id_q6_k_f32_aligned_len, matmul_id_q6_k_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align);
             ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q6_K]->a_s, "matmul_id_q6_k_f32_aligned_s", matmul_id_q6_k_f32_aligned_len, matmul_id_q6_k_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align);
         } else {
    -        ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f32->l, "matmul_f32_l", matmul_f32_fp32_len, matmul_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_l, 1);
    -        ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f32->m, "matmul_f32_m", matmul_f32_fp32_len, matmul_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_m, 1);
    -        ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f32->s, "matmul_f32_s", matmul_f32_fp32_len, matmul_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_s, 1);
    -        ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f32->a_l, "matmul_f32_aligned_l", matmul_f32_aligned_fp32_len, matmul_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_l, l_align);
    -        ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f32->a_m, "matmul_f32_aligned_m", matmul_f32_aligned_fp32_len, matmul_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_m, m_align);
    -        ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f32->a_s, "matmul_f32_aligned_s", matmul_f32_aligned_fp32_len, matmul_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_s, s_align);
    +        ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f32->l, "matmul_f32_l", matmul_f32_f32_fp32_len, matmul_f32_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_l, 1);
    +        ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f32->m, "matmul_f32_m", matmul_f32_f32_fp32_len, matmul_f32_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_m, 1);
    +        ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f32->s, "matmul_f32_s", matmul_f32_f32_fp32_len, matmul_f32_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_s, 1);
    +        ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f32->a_l, "matmul_f32_aligned_l", matmul_f32_f32_aligned_fp32_len, matmul_f32_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_l, l_align);
    +        ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f32->a_m, "matmul_f32_aligned_m", matmul_f32_f32_aligned_fp32_len, matmul_f32_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_m, m_align);
    +        ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f32->a_s, "matmul_f32_aligned_s", matmul_f32_f32_aligned_fp32_len, matmul_f32_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_s, s_align);
     
             ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f32_f16->l, "matmul_f32_f16_l", matmul_f32_f16_fp32_len, matmul_f32_f16_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_l, 1);
             ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f32_f16->m, "matmul_f32_f16_m", matmul_f32_f16_fp32_len, matmul_f32_f16_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_m, 1);
    @@ -1329,12 +1382,12 @@ static void ggml_vk_load_shaders(ggml_backend_vk_context * ctx) {
             ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q6_K]->a_m, "matmul_q6_k_f32_aligned_m", matmul_q6_k_f32_aligned_fp32_len, matmul_q6_k_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align);
             ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q6_K]->a_s, "matmul_q6_k_f32_aligned_s", matmul_q6_k_f32_aligned_fp32_len, matmul_q6_k_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align);
     
    -        ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_id_f32->l, "matmul_id_f32_l", matmul_id_f32_fp32_len, matmul_id_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_l, 1);
    -        ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_id_f32->m, "matmul_id_f32_m", matmul_id_f32_fp32_len, matmul_id_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_m, 1);
    -        ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_id_f32->s, "matmul_id_f32_s", matmul_id_f32_fp32_len, matmul_id_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_s, 1);
    -        ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_id_f32->a_l, "matmul_id_f32_aligned_l", matmul_id_f32_aligned_fp32_len, matmul_id_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_l, l_align);
    -        ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_id_f32->a_m, "matmul_id_f32_aligned_m", matmul_id_f32_aligned_fp32_len, matmul_id_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_m, m_align);
    -        ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_id_f32->a_s, "matmul_id_f32_aligned_s", matmul_id_f32_aligned_fp32_len, matmul_id_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_s, s_align);
    +        ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_id_f32->l, "matmul_id_f32_l", matmul_id_f32_f32_fp32_len, matmul_id_f32_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_l, 1);
    +        ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_id_f32->m, "matmul_id_f32_m", matmul_id_f32_f32_fp32_len, matmul_id_f32_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_m, 1);
    +        ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_id_f32->s, "matmul_id_f32_s", matmul_id_f32_f32_fp32_len, matmul_id_f32_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_s, 1);
    +        ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_id_f32->a_l, "matmul_id_f32_aligned_l", matmul_id_f32_f32_aligned_fp32_len, matmul_id_f32_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_l, l_align);
    +        ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_id_f32->a_m, "matmul_id_f32_aligned_m", matmul_id_f32_f32_aligned_fp32_len, matmul_id_f32_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_m, m_align);
    +        ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_id_f32->a_s, "matmul_id_f32_aligned_s", matmul_id_f32_f32_aligned_fp32_len, matmul_id_f32_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_s, s_align);
     
             ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_id_f16->l, "matmul_id_f16_l", matmul_id_f16_fp32_len, matmul_id_f16_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_l, 1);
             ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_id_f16->m, "matmul_id_f16_m", matmul_id_f16_fp32_len, matmul_id_f16_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_m, 1);
    @@ -1429,11 +1482,11 @@ static void ggml_vk_load_shaders(ggml_backend_vk_context * ctx) {
         ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_f32_f32[GGML_TYPE_Q5_0], "mul_mat_vec_q5_0_f32_f32", mul_mat_vec_q5_0_f32_f32_len, mul_mat_vec_q5_0_f32_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1);
         ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_f32_f32[GGML_TYPE_Q5_1], "mul_mat_vec_q5_1_f32_f32", mul_mat_vec_q5_1_f32_f32_len, mul_mat_vec_q5_1_f32_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1);
         ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_f32_f32[GGML_TYPE_Q8_0], "mul_mat_vec_q8_0_f32_f32", mul_mat_vec_q8_0_f32_f32_len, mul_mat_vec_q8_0_f32_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1);
    -    ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_f32_f32[GGML_TYPE_Q2_K], "mul_mat_vec_q2_K_f32_f32", mul_mat_vec_q2_K_f32_f32_len, mul_mat_vec_q2_K_f32_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1);
    -    ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_f32_f32[GGML_TYPE_Q3_K], "mul_mat_vec_q3_K_f32_f32", mul_mat_vec_q3_K_f32_f32_len, mul_mat_vec_q3_K_f32_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1);
    -    ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_f32_f32[GGML_TYPE_Q4_K], "mul_mat_vec_q4_K_f32_f32", mul_mat_vec_q4_K_f32_f32_len, mul_mat_vec_q4_K_f32_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1);
    -    ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_f32_f32[GGML_TYPE_Q5_K], "mul_mat_vec_q5_K_f32_f32", mul_mat_vec_q5_K_f32_f32_len, mul_mat_vec_q5_K_f32_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1);
    -    ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_f32_f32[GGML_TYPE_Q6_K], "mul_mat_vec_q6_K_f32_f32", mul_mat_vec_q6_K_f32_f32_len, mul_mat_vec_q6_K_f32_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1);
    +    ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_f32_f32[GGML_TYPE_Q2_K], "mul_mat_vec_q2_k_f32_f32", mul_mat_vec_q2_k_f32_f32_len, mul_mat_vec_q2_k_f32_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1);
    +    ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_f32_f32[GGML_TYPE_Q3_K], "mul_mat_vec_q3_k_f32_f32", mul_mat_vec_q3_k_f32_f32_len, mul_mat_vec_q3_k_f32_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1);
    +    ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_f32_f32[GGML_TYPE_Q4_K], "mul_mat_vec_q4_k_f32_f32", mul_mat_vec_q4_k_f32_f32_len, mul_mat_vec_q4_k_f32_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1);
    +    ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_f32_f32[GGML_TYPE_Q5_K], "mul_mat_vec_q5_k_f32_f32", mul_mat_vec_q5_k_f32_f32_len, mul_mat_vec_q5_k_f32_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1);
    +    ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_f32_f32[GGML_TYPE_Q6_K], "mul_mat_vec_q6_k_f32_f32", mul_mat_vec_q6_k_f32_f32_len, mul_mat_vec_q6_k_f32_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1);
     
         ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_f16_f32[GGML_TYPE_F32 ], "mul_mat_vec_f32_f16_f32",  mul_mat_vec_f32_f16_f32_len,  mul_mat_vec_f32_f16_f32_data,  "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1);
         ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_f16_f32[GGML_TYPE_F16 ], "mul_mat_vec_f16_f16_f32",  mul_mat_vec_f16_f16_f32_len,  mul_mat_vec_f16_f16_f32_data,  "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1);
    @@ -1442,11 +1495,11 @@ static void ggml_vk_load_shaders(ggml_backend_vk_context * ctx) {
         ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_f16_f32[GGML_TYPE_Q5_0], "mul_mat_vec_q5_0_f16_f32", mul_mat_vec_q5_0_f16_f32_len, mul_mat_vec_q5_0_f16_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1);
         ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_f16_f32[GGML_TYPE_Q5_1], "mul_mat_vec_q5_1_f16_f32", mul_mat_vec_q5_1_f16_f32_len, mul_mat_vec_q5_1_f16_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1);
         ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_f16_f32[GGML_TYPE_Q8_0], "mul_mat_vec_q8_0_f16_f32", mul_mat_vec_q8_0_f16_f32_len, mul_mat_vec_q8_0_f16_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1);
    -    ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_f16_f32[GGML_TYPE_Q2_K], "mul_mat_vec_q2_K_f16_f32", mul_mat_vec_q2_K_f16_f32_len, mul_mat_vec_q2_K_f16_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1);
    -    ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_f16_f32[GGML_TYPE_Q3_K], "mul_mat_vec_q3_K_f16_f32", mul_mat_vec_q3_K_f16_f32_len, mul_mat_vec_q3_K_f16_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1);
    -    ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_f16_f32[GGML_TYPE_Q4_K], "mul_mat_vec_q4_K_f16_f32", mul_mat_vec_q4_K_f16_f32_len, mul_mat_vec_q4_K_f16_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1);
    -    ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_f16_f32[GGML_TYPE_Q5_K], "mul_mat_vec_q5_K_f16_f32", mul_mat_vec_q5_K_f16_f32_len, mul_mat_vec_q5_K_f16_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1);
    -    ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_f16_f32[GGML_TYPE_Q6_K], "mul_mat_vec_q6_K_f16_f32", mul_mat_vec_q6_K_f16_f32_len, mul_mat_vec_q6_K_f16_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1);
    +    ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_f16_f32[GGML_TYPE_Q2_K], "mul_mat_vec_q2_k_f16_f32", mul_mat_vec_q2_k_f16_f32_len, mul_mat_vec_q2_k_f16_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1);
    +    ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_f16_f32[GGML_TYPE_Q3_K], "mul_mat_vec_q3_k_f16_f32", mul_mat_vec_q3_k_f16_f32_len, mul_mat_vec_q3_k_f16_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1);
    +    ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_f16_f32[GGML_TYPE_Q4_K], "mul_mat_vec_q4_k_f16_f32", mul_mat_vec_q4_k_f16_f32_len, mul_mat_vec_q4_k_f16_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1);
    +    ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_f16_f32[GGML_TYPE_Q5_K], "mul_mat_vec_q5_k_f16_f32", mul_mat_vec_q5_k_f16_f32_len, mul_mat_vec_q5_k_f16_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1);
    +    ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_f16_f32[GGML_TYPE_Q6_K], "mul_mat_vec_q6_k_f16_f32", mul_mat_vec_q6_k_f16_f32_len, mul_mat_vec_q6_k_f16_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1);
     
         ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_id_f32[GGML_TYPE_F32 ], "mul_mat_vec_id_f32_f32",  mul_mat_vec_id_f32_f32_len,  mul_mat_vec_id_f32_f32_data,  "main", 4, sizeof(vk_mat_vec_id_push_constants), {1, 1, 1}, { device->subgroup_size }, 1);
         ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_id_f32[GGML_TYPE_F16 ], "mul_mat_vec_id_f16_f32",  mul_mat_vec_id_f16_f32_len,  mul_mat_vec_id_f16_f32_data,  "main", 4, sizeof(vk_mat_vec_id_push_constants), {1, 1, 1}, { device->subgroup_size }, 1);
    @@ -1455,11 +1508,11 @@ static void ggml_vk_load_shaders(ggml_backend_vk_context * ctx) {
         ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_id_f32[GGML_TYPE_Q5_0], "mul_mat_vec_id_q5_0_f32", mul_mat_vec_id_q5_0_f32_len, mul_mat_vec_id_q5_0_f32_data, "main", 4, sizeof(vk_mat_vec_id_push_constants), {1, 1, 1}, { device->subgroup_size }, 1);
         ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_id_f32[GGML_TYPE_Q5_1], "mul_mat_vec_id_q5_1_f32", mul_mat_vec_id_q5_1_f32_len, mul_mat_vec_id_q5_1_f32_data, "main", 4, sizeof(vk_mat_vec_id_push_constants), {1, 1, 1}, { device->subgroup_size }, 1);
         ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_id_f32[GGML_TYPE_Q8_0], "mul_mat_vec_id_q8_0_f32", mul_mat_vec_id_q8_0_f32_len, mul_mat_vec_id_q8_0_f32_data, "main", 4, sizeof(vk_mat_vec_id_push_constants), {1, 1, 1}, { device->subgroup_size }, 1);
    -    ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_id_f32[GGML_TYPE_Q2_K], "mul_mat_vec_id_q2_K_f32", mul_mat_vec_id_q2_K_f32_len, mul_mat_vec_id_q2_K_f32_data, "main", 4, sizeof(vk_mat_vec_id_push_constants), {1, 1, 1}, { device->subgroup_size }, 1);
    -    ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_id_f32[GGML_TYPE_Q3_K], "mul_mat_vec_id_q3_K_f32", mul_mat_vec_id_q3_K_f32_len, mul_mat_vec_id_q3_K_f32_data, "main", 4, sizeof(vk_mat_vec_id_push_constants), {1, 1, 1}, { device->subgroup_size }, 1);
    -    ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_id_f32[GGML_TYPE_Q4_K], "mul_mat_vec_id_q4_K_f32", mul_mat_vec_id_q4_K_f32_len, mul_mat_vec_id_q4_K_f32_data, "main", 4, sizeof(vk_mat_vec_id_push_constants), {1, 1, 1}, { device->subgroup_size }, 1);
    -    ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_id_f32[GGML_TYPE_Q5_K], "mul_mat_vec_id_q5_K_f32", mul_mat_vec_id_q5_K_f32_len, mul_mat_vec_id_q5_K_f32_data, "main", 4, sizeof(vk_mat_vec_id_push_constants), {1, 1, 1}, { device->subgroup_size }, 1);
    -    ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_id_f32[GGML_TYPE_Q6_K], "mul_mat_vec_id_q6_K_f32", mul_mat_vec_id_q6_K_f32_len, mul_mat_vec_id_q6_K_f32_data, "main", 4, sizeof(vk_mat_vec_id_push_constants), {1, 1, 1}, { device->subgroup_size }, 1);
    +    ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_id_f32[GGML_TYPE_Q2_K], "mul_mat_vec_id_q2_k_f32", mul_mat_vec_id_q2_k_f32_len, mul_mat_vec_id_q2_k_f32_data, "main", 4, sizeof(vk_mat_vec_id_push_constants), {1, 1, 1}, { device->subgroup_size }, 1);
    +    ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_id_f32[GGML_TYPE_Q3_K], "mul_mat_vec_id_q3_k_f32", mul_mat_vec_id_q3_k_f32_len, mul_mat_vec_id_q3_k_f32_data, "main", 4, sizeof(vk_mat_vec_id_push_constants), {1, 1, 1}, { device->subgroup_size }, 1);
    +    ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_id_f32[GGML_TYPE_Q4_K], "mul_mat_vec_id_q4_k_f32", mul_mat_vec_id_q4_k_f32_len, mul_mat_vec_id_q4_k_f32_data, "main", 4, sizeof(vk_mat_vec_id_push_constants), {1, 1, 1}, { device->subgroup_size }, 1);
    +    ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_id_f32[GGML_TYPE_Q5_K], "mul_mat_vec_id_q5_k_f32", mul_mat_vec_id_q5_k_f32_len, mul_mat_vec_id_q5_k_f32_data, "main", 4, sizeof(vk_mat_vec_id_push_constants), {1, 1, 1}, { device->subgroup_size }, 1);
    +    ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_id_f32[GGML_TYPE_Q6_K], "mul_mat_vec_id_q6_k_f32", mul_mat_vec_id_q6_k_f32_len, mul_mat_vec_id_q6_k_f32_data, "main", 4, sizeof(vk_mat_vec_id_push_constants), {1, 1, 1}, { device->subgroup_size }, 1);
     
         // dequant shaders
         ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant[GGML_TYPE_F32 ], "f32_to_f16",   dequant_f32_len,  dequant_f32_data,  "main", 2, 5 * sizeof(uint32_t), {256 * 16, 1, 1}, {}, 1);
    @@ -1468,11 +1521,11 @@ static void ggml_vk_load_shaders(ggml_backend_vk_context * ctx) {
         ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant[GGML_TYPE_Q5_0], "dequant_q5_0", dequant_q5_0_len, dequant_q5_0_data, "main", 2, 5 * sizeof(uint32_t), {256 * 16, 1, 1}, {}, 1);
         ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant[GGML_TYPE_Q5_1], "dequant_q5_1", dequant_q5_1_len, dequant_q5_1_data, "main", 2, 5 * sizeof(uint32_t), {256 * 16, 1, 1}, {}, 1);
         ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant[GGML_TYPE_Q8_0], "dequant_q8_0", dequant_q8_0_len, dequant_q8_0_data, "main", 2, 5 * sizeof(uint32_t), {256 * 16, 1, 1}, {}, 1);
    -    ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant[GGML_TYPE_Q2_K], "dequant_q2_K", dequant_q2_K_len, dequant_q2_K_data, "main", 2, 5 * sizeof(uint32_t), {256 * 64, 1, 1}, {}, 1);
    -    ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant[GGML_TYPE_Q3_K], "dequant_q3_K", dequant_q3_K_len, dequant_q3_K_data, "main", 2, 5 * sizeof(uint32_t), {256 * 64, 1, 1}, {}, 1);
    -    ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant[GGML_TYPE_Q4_K], "dequant_q4_K", dequant_q4_K_len, dequant_q4_K_data, "main", 2, 5 * sizeof(uint32_t), {256 * 32, 1, 1}, {}, 1);
    -    ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant[GGML_TYPE_Q5_K], "dequant_q5_K", dequant_q5_K_len, dequant_q5_K_data, "main", 2, 5 * sizeof(uint32_t), {256 * 64, 1, 1}, {}, 1);
    -    ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant[GGML_TYPE_Q6_K], "dequant_q6_K", dequant_q6_K_len, dequant_q6_K_data, "main", 2, 5 * sizeof(uint32_t), {256 * 64, 1, 1}, {}, 1);
    +    ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant[GGML_TYPE_Q2_K], "dequant_q2_k", dequant_q2_k_len, dequant_q2_k_data, "main", 2, 5 * sizeof(uint32_t), {256 * 64, 1, 1}, {}, 1);
    +    ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant[GGML_TYPE_Q3_K], "dequant_q3_k", dequant_q3_k_len, dequant_q3_k_data, "main", 2, 5 * sizeof(uint32_t), {256 * 64, 1, 1}, {}, 1);
    +    ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant[GGML_TYPE_Q4_K], "dequant_q4_k", dequant_q4_k_len, dequant_q4_k_data, "main", 2, 5 * sizeof(uint32_t), {256 * 32, 1, 1}, {}, 1);
    +    ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant[GGML_TYPE_Q5_K], "dequant_q5_k", dequant_q5_k_len, dequant_q5_k_data, "main", 2, 5 * sizeof(uint32_t), {256 * 64, 1, 1}, {}, 1);
    +    ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant[GGML_TYPE_Q6_K], "dequant_q6_k", dequant_q6_k_len, dequant_q6_k_data, "main", 2, 5 * sizeof(uint32_t), {256 * 64, 1, 1}, {}, 1);
     
         // get_rows
         ggml_vk_create_pipeline(ctx, ctx->device->pipeline_get_rows[GGML_TYPE_F32 ], "get_rows_f32",  get_rows_f32_len,  get_rows_f32_data,  "main", 3, sizeof(vk_op_binary_push_constants), { 512, 1, 1}, {}, 1);
    @@ -1538,9 +1591,7 @@ static void ggml_vk_load_shaders(ggml_backend_vk_context * ctx) {
     static void ggml_vk_print_gpu_info(size_t idx) {
         GGML_ASSERT(idx < vk_instance.device_indices.size());
         size_t dev_num = vk_instance.device_indices[idx];
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_print_gpu_info(" << dev_num << ")" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_vk_print_gpu_info(" << dev_num << ")");
         GGML_ASSERT(vk_instance.initialized);
     
         std::vector devices = vk_instance.instance.enumeratePhysicalDevices();
    @@ -1617,9 +1668,7 @@ void ggml_vk_instance_init() {
         if (vk_instance_initialized) {
             return;
         }
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_instance_init()" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_vk_instance_init()");
     
         vk::ApplicationInfo app_info{ "ggml-vulkan", 1, nullptr, 0, VK_API_VERSION };
     
    @@ -1710,9 +1759,7 @@ void ggml_vk_instance_init() {
                     } else {
                         // There can be two physical devices corresponding to the same GPU if there are 2 different drivers
                         // This can cause error when splitting layers aross the devices, need to keep only 1
    -#ifdef GGML_VULKAN_DEBUG
    -                    std::cerr << "Device " << i << " and device " << *old_device << " have the same device id" << std::endl;
    -#endif
    +                    VK_LOG_DEBUG("Device " << i << " and device " << *old_device << " have the same device id");
     
                         vk::PhysicalDeviceProperties2 old_prop;
                         vk::PhysicalDeviceDriverProperties old_driver;
    @@ -1760,16 +1807,11 @@ void ggml_vk_instance_init() {
                             vk_instance.device_indices.erase(r, vk_instance.device_indices.end());
                             vk_instance.device_indices.push_back(i);
     
    -#ifdef GGML_VULKAN_DEBUG
    -                        std::cerr << "Prioritize device " << i << " driver " << new_driver.driverName << " over device " << *old_device << " driver " << old_driver.driverName << std::endl;
    -#endif
    +                        VK_LOG_DEBUG("Prioritize device " << i << " driver " << new_driver.driverName << " over device " << *old_device << " driver " << old_driver.driverName);
                         }
    -#ifdef GGML_VULKAN_DEBUG
                         else {
    -                        std::cerr << "Prioritize device " << *old_device << " driver " << old_driver.driverName << " over device " << i << " driver " << new_driver.driverName << std::endl;
    -
    +                        VK_LOG_DEBUG("Prioritize device " << *old_device << " driver " << old_driver.driverName << " over device " << i << " driver " << new_driver.driverName << std::endl);
                         }
    -#endif
                     }
                 }
             }
    @@ -1792,9 +1834,7 @@ void ggml_vk_instance_init() {
     static void ggml_vk_init(ggml_backend_vk_context * ctx, size_t idx) {
         GGML_ASSERT(idx < vk_instance.device_indices.size());
         size_t dev_num = vk_instance.device_indices[idx];
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_init(" << ctx->name << ", " << dev_num << ")" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_vk_init(" << ctx->name << ", " << dev_num << ")");
         ggml_vk_instance_init();
     
         std::vector devices = vk_instance.instance.enumeratePhysicalDevices();
    @@ -1967,9 +2007,7 @@ static void ggml_vk_init(ggml_backend_vk_context * ctx, size_t idx) {
     }
     
     static vk_pipeline ggml_vk_get_to_fp16(ggml_backend_vk_context * ctx, ggml_type type) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_get_to_fp16()" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_vk_get_to_fp16()");
         switch (type) {
             case GGML_TYPE_F32:
             case GGML_TYPE_Q4_0:
    @@ -1991,9 +2029,7 @@ static vk_pipeline ggml_vk_get_to_fp16(ggml_backend_vk_context * ctx, ggml_type
     }
     
     static vk_matmul_pipeline ggml_vk_get_mul_mat_mat_pipeline(ggml_backend_vk_context * ctx, ggml_type src0_type, ggml_type src1_type) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_get_mul_mat_mat_pipeline()" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_vk_get_mul_mat_mat_pipeline()");
         if (src0_type == GGML_TYPE_F32 && src1_type == GGML_TYPE_F32) {
             return ctx->device->pipeline_matmul_f32;
         }
    @@ -2029,9 +2065,7 @@ static vk_matmul_pipeline ggml_vk_get_mul_mat_mat_pipeline(ggml_backend_vk_conte
     }
     
     static vk_pipeline ggml_vk_get_dequantize_mul_mat_vec(ggml_backend_vk_context * ctx, ggml_type a_type, ggml_type b_type) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_get_dequantize_mul_mat_vec()" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_vk_get_dequantize_mul_mat_vec()");
         GGML_ASSERT(b_type == GGML_TYPE_F32 || b_type == GGML_TYPE_F16);
     
         switch (a_type) {
    @@ -2056,9 +2090,7 @@ static vk_pipeline ggml_vk_get_dequantize_mul_mat_vec(ggml_backend_vk_context *
     }
     
     static vk_matmul_pipeline ggml_vk_get_mul_mat_mat_id_pipeline(ggml_backend_vk_context * ctx, ggml_type src0_type, ggml_type src1_type) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_get_mul_mat_mat_id_pipeline()" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_vk_get_mul_mat_mat_id_pipeline()");
         if (src0_type == GGML_TYPE_F32 && src1_type == GGML_TYPE_F32) {
             return ctx->device->pipeline_matmul_id_f32;
         }
    @@ -2091,9 +2123,7 @@ static vk_matmul_pipeline ggml_vk_get_mul_mat_mat_id_pipeline(ggml_backend_vk_co
     }
     
     static vk_pipeline ggml_vk_get_dequantize_mul_mat_vec_id(ggml_backend_vk_context * ctx, ggml_type a_type, ggml_type b_type) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_get_dequantize_mul_mat_vec()" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_vk_get_dequantize_mul_mat_vec()");
         GGML_ASSERT(b_type == GGML_TYPE_F32);
     
         switch (a_type) {
    @@ -2118,9 +2148,9 @@ static vk_pipeline ggml_vk_get_dequantize_mul_mat_vec_id(ggml_backend_vk_context
     }
     
     static vk_buffer ggml_vk_pool_malloc(ggml_backend_vk_context * ctx, size_t size) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_pool_malloc(" << size << ")" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_vk_pool_malloc(" << size << ")");
    +    VK_LOG_MEMORY("ggml_vk_pool_malloc");
    +
         int best_i = -1;
         size_t best_size = std::numeric_limits::max(); //smallest unused buffer that fits our needs
         int worst_i = -1;
    @@ -2148,13 +2178,11 @@ static vk_buffer ggml_vk_pool_malloc(ggml_backend_vk_context * ctx, size_t size)
             ggml_vk_destroy_buffer(b);
         }
     
    -    return ggml_vk_create_buffer_check(ctx, size, vk::MemoryPropertyFlagBits::eDeviceLocal);
    +    return ggml_vk_create_buffer_device(ctx, size);
     }
     
     static void ggml_vk_pool_free(ggml_backend_vk_context * ctx, vk_buffer& buffer) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_pool_free(" << buffer->size << ")" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_vk_pool_free(" << buffer->size << ")");
         for (int i = 0; i < MAX_VK_BUFFERS; ++i) {
             vk_buffer& b = ctx->buffer_pool[i];
             if (b == nullptr) {
    @@ -2175,6 +2203,8 @@ static vk_buffer ggml_vk_create_buffer_temp(ggml_backend_vk_context * ctx, size_
             }
         }
     
    +    VK_LOG_MEMORY("ggml_vk_create_buffer_temp(" << size << ")");
    +
         // Otherwise create new buffer
         vk_buffer buf = ggml_vk_pool_malloc(ctx, size);
         ctx->gc.temp_buffers.push_back(buf);
    @@ -2183,9 +2213,7 @@ static vk_buffer ggml_vk_create_buffer_temp(ggml_backend_vk_context * ctx, size_
     }
     
     static void * ggml_vk_host_malloc(ggml_backend_vk_context * ctx, size_t size) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_host_malloc(" << size << ")" << std::endl;
    -#endif
    +    VK_LOG_MEMORY("ggml_vk_host_malloc(" << size << ")");
         vk_buffer buf = ggml_vk_create_buffer(ctx, size,
             vk::MemoryPropertyFlagBits::eHostVisible | vk::MemoryPropertyFlagBits::eHostCoherent | vk::MemoryPropertyFlagBits::eHostCached,
             vk::MemoryPropertyFlagBits::eHostVisible | vk::MemoryPropertyFlagBits::eHostCoherent);
    @@ -2207,9 +2235,7 @@ static void ggml_vk_host_free(ggml_backend_vk_context * ctx, void* ptr) {
         if (ptr == nullptr) {
             return;
         }
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_host_free(" << ptr << ")" << std::endl;
    -#endif
    +    VK_LOG_MEMORY("ggml_vk_host_free(" << ptr << ")");
         vk_buffer buf;
         size_t index;
         for (size_t i = 0; i < ctx->pinned_memory.size(); i++) {
    @@ -2261,13 +2287,11 @@ static void ggml_vk_dispatch_pipeline(ggml_backend_vk_context * ctx, vk_context
         const uint32_t wg0 = CEIL_DIV(elements[0], pipeline->wg_denoms[0]);
         const uint32_t wg1 = CEIL_DIV(elements[1], pipeline->wg_denoms[1]);
         const uint32_t wg2 = CEIL_DIV(elements[2], pipeline->wg_denoms[2]);
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_dispatch_pipeline(" << pipeline->name << ", {";
    +    VK_LOG_DEBUG("ggml_vk_dispatch_pipeline(" << pipeline->name << ", {";
         for (auto& buffer : buffers) {
             std::cerr << "(" << buffer.buffer << ", " << buffer.offset << ", " << buffer.size << "), ";
         }
    -    std::cerr << "}, (" << wg0 << "," << wg1 << "," << wg2 << "))" << std::endl;
    -#endif
    +    std::cerr << "}, (" << wg0 << "," << wg1 << "," << wg2 << "))");
         std::vector descriptor_buffer_infos;
         std::vector write_descriptor_sets;
         GGML_ASSERT(pipeline->descriptor_set_idx < pipeline->descriptor_sets.size());
    @@ -2300,9 +2324,7 @@ static void ggml_vk_end_submission(vk_submission& s, std::vector w
     }
     
     static void ggml_vk_ctx_end(vk_context * ctx) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_ctx_end(" << ctx << ", " << ctx->seqs.size() << ")" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_vk_ctx_end(" << ctx << ", " << ctx->seqs.size() << ")");
         if (ctx->s == nullptr) {
             return;
         }
    @@ -2312,9 +2334,7 @@ static void ggml_vk_ctx_end(vk_context * ctx) {
     }
     
     static void ggml_vk_ctx_begin(ggml_backend_vk_context * ctx, vk_context * subctx) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_ctx_begin(" << ctx << ")" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_vk_ctx_begin(" << ctx << ")");
         if (subctx->s != nullptr) {
             ggml_vk_ctx_end(subctx);
         }
    @@ -2324,9 +2344,7 @@ static void ggml_vk_ctx_begin(ggml_backend_vk_context * ctx, vk_context * subctx
     }
     
     static size_t ggml_vk_align_size(size_t width, size_t align) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_align_size(" << width << ", " << align << ")" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_vk_align_size(" << width << ", " << align << ")");
         return CEIL_DIV(width, align) * align;
     }
     
    @@ -2340,6 +2358,7 @@ static void deferred_memcpy(void * dst, const void * src, size_t size, std::vect
     
     static void ggml_vk_ensure_sync_staging_buffer(ggml_backend_vk_context * ctx, size_t size) {
         if (ctx->sync_staging == nullptr || ctx->sync_staging->size < size) {
    +        VK_LOG_MEMORY("ggml_vk_ensure_sync_staging_buffer(" << size << ")");
             ggml_vk_destroy_buffer(ctx->sync_staging);
             ctx->sync_staging = ggml_vk_create_buffer_check(ctx, size,
                 vk::MemoryPropertyFlagBits::eHostVisible | vk::MemoryPropertyFlagBits::eHostCoherent | vk::MemoryPropertyFlagBits::eHostCached,
    @@ -2348,9 +2367,7 @@ static void ggml_vk_ensure_sync_staging_buffer(ggml_backend_vk_context * ctx, si
     }
     
     static void ggml_vk_buffer_write_nc_async(ggml_backend_vk_context * ctx, vk_context * subctx, vk_buffer& dst, size_t offset, const ggml_tensor * tensor, bool sync_staging = false) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_buffer_write_nc_async(" << tensor << ")" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_vk_buffer_write_nc_async(" << tensor << ")");
         GGML_ASSERT(!ggml_is_contiguous(tensor));
         // Buffer is already mapped
         if(dst->memory_property_flags & vk::MemoryPropertyFlagBits::eHostVisible) {
    @@ -2455,9 +2472,7 @@ static void ggml_vk_buffer_write_nc_async(ggml_backend_vk_context * ctx, vk_cont
     }
     
     static void ggml_vk_buffer_write_2d_async(ggml_backend_vk_context * ctx, vk_context * subctx, vk_buffer& dst, size_t offset, const void * src, size_t spitch, size_t width, size_t height, bool sync_staging = false) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_buffer_write_2d_async(" << width << ", " << height << ")" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_vk_buffer_write_2d_async(" << width << ", " << height << ")");
         // Make sure ctx owns the buffer
         GGML_ASSERT(dst->ctx == ctx);
     
    @@ -2492,9 +2507,7 @@ static void ggml_vk_buffer_write_2d_async(ggml_backend_vk_context * ctx, vk_cont
             subctx->s->buffer.copyBuffer(buf->buffer, dst->buffer, slices);
             return;
         }
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "STAGING" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("STAGING");
     
         // Staging buffer required
         vk_buffer staging = ctx->staging;
    @@ -2529,16 +2542,12 @@ static void ggml_vk_buffer_write_2d_async(ggml_backend_vk_context * ctx, vk_cont
     }
     
     static void ggml_vk_buffer_write_async(ggml_backend_vk_context * ctx, vk_context * subctx, vk_buffer& dst, size_t offset, const void * src, size_t size, bool sync_staging = false) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_buffer_write_async(" << size << ")" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_vk_buffer_write_async(" << size << ")");
         return ggml_vk_buffer_write_2d_async(ctx, subctx, dst, offset, src, size, size, 1, sync_staging);
     }
     
     static void ggml_vk_buffer_write_2d(ggml_backend_vk_context * ctx, vk_buffer& dst, size_t offset, const void * src, size_t spitch, size_t width, size_t height) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_buffer_write_2d(" << width << ", " << height << ")" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_vk_buffer_write_2d(" << width << ", " << height << ")");
         // Buffer is already mapped
         if(dst->memory_property_flags & vk::MemoryPropertyFlagBits::eHostVisible) {
             GGML_ASSERT(dst->memory_property_flags & vk::MemoryPropertyFlagBits::eHostCoherent);
    @@ -2563,16 +2572,12 @@ static void ggml_vk_buffer_write_2d(ggml_backend_vk_context * ctx, vk_buffer& ds
     }
     
     static void ggml_vk_buffer_write(ggml_backend_vk_context * ctx, vk_buffer& dst, size_t offset, const void * src, size_t size) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_buffer_write(" << size << ")" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_vk_buffer_write(" << size << ")");
         ggml_vk_buffer_write_2d(ctx, dst, offset, src, 0, size, 1);
     }
     
     static void ggml_vk_buffer_read_2d_async(ggml_backend_vk_context * ctx, vk_context * subctx, vk_buffer& src, size_t offset, void * dst, size_t spitch, size_t dpitch, size_t width, size_t height, bool sync_staging = false) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_buffer_read_2d_async(offset=" << offset << ", width=" << width << ", height=" << height << ")" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_vk_buffer_read_2d_async(offset=" << offset << ", width=" << width << ", height=" << height << ")");
         GGML_ASSERT(width > 0);
         GGML_ASSERT(height > 0);
         GGML_ASSERT(src != nullptr);
    @@ -2606,9 +2611,7 @@ static void ggml_vk_buffer_read_2d_async(ggml_backend_vk_context * ctx, vk_conte
     
             return;
         }
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "STAGING" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("STAGING");
     
         // Fall back to staging buffer
         vk_buffer staging = ctx->staging;
    @@ -2635,9 +2638,7 @@ static void ggml_vk_buffer_read_async(ggml_backend_vk_context * ctx, vk_context
     }
     
     static void ggml_vk_buffer_read(ggml_backend_vk_context * ctx, vk_buffer& src, size_t offset, void * dst, size_t size) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_buffer_read(" << offset << ", " << size << ")" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_vk_buffer_read(" << offset << ", " << size << ")");
         if(src->memory_property_flags & vk::MemoryPropertyFlagBits::eHostVisible) {
             GGML_ASSERT(src->memory_property_flags & vk::MemoryPropertyFlagBits::eHostCoherent);
     
    @@ -2659,9 +2660,7 @@ static void ggml_vk_buffer_read(ggml_backend_vk_context * ctx, vk_buffer& src, s
     }
     
     static void ggml_vk_buffer_copy_async(vk_context * ctx, vk_buffer& dst, size_t dst_offset, vk_buffer& src, size_t src_offset, size_t size) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_buffer_copy_async(" << size << ")" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_vk_buffer_copy_async(" << size << ")");
         // Make sure both buffers are on same ctx
         GGML_ASSERT(src->ctx == dst->ctx);
     
    @@ -2672,9 +2671,7 @@ static void ggml_vk_buffer_copy_async(vk_context * ctx, vk_buffer& dst, size_t d
     
     static void ggml_vk_buffer_copy(vk_buffer& dst, size_t dst_offset, vk_buffer& src, size_t src_offset, size_t size) {
         if (src->ctx == dst->ctx) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_buffer_copy(SINGLE_DEVICE, " << size << ")" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_vk_buffer_copy(SINGLE_DEVICE, " << size << ")");
             // Copy within the device
             ggml_backend_vk_context * ctx = src->ctx;
     
    @@ -2686,9 +2683,7 @@ static void ggml_vk_buffer_copy(vk_buffer& dst, size_t dst_offset, vk_buffer& sr
             VK_CHECK(ctx->device->device.waitForFences({ ctx->fence }, true, UINT64_MAX), "vk_buffer_copy waitForFences");
             ctx->device->device.resetFences({ ctx->fence });
         } else {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_buffer_copy(MULTI_DEVICE, " << size << ")" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_vk_buffer_copy(MULTI_DEVICE, " << size << ")");
             // Copy device to device
             ggml_backend_vk_context * src_ctx = src->ctx;
             ggml_backend_vk_context * dst_ctx = dst->ctx;
    @@ -2706,9 +2701,7 @@ static void ggml_vk_buffer_copy(vk_buffer& dst, size_t dst_offset, vk_buffer& sr
     }
     
     static void ggml_vk_buffer_memset(ggml_backend_vk_context * ctx, vk_buffer& dst, size_t offset, uint32_t c, size_t size) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_buffer_memset(" << offset << ", " << c << ", " << size << ")" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_vk_buffer_memset(" << offset << ", " << c << ", " << size << ")");
         // Make sure ctx owns the buffer
         GGML_ASSERT(dst->ctx == ctx);
     
    @@ -2723,9 +2716,7 @@ static void ggml_vk_buffer_memset(ggml_backend_vk_context * ctx, vk_buffer& dst,
     }
     
     static void ggml_vk_h2d_tensor_2d(ggml_backend_vk_context * ctx, vk_context * subctx, vk_buffer& dst, size_t offset, const ggml_tensor * src, uint64_t i3, uint64_t i2, uint64_t i1) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_h2d_tensor_2d(dst=" << dst << ", offset=" << offset << ", src=" << src << ", i3=" << i3 << ", i2=" << i2 << ", i1=" << i1 << ")" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_vk_h2d_tensor_2d(dst=" << dst << ", offset=" << offset << ", src=" << src << ", i3=" << i3 << ", i2=" << i2 << ", i1=" << i1 << ")");
         const uint64_t ne0 = src->ne[0];
         const uint64_t ne1 = src->ne[1];
         const uint64_t nb0 = src->nb[0];
    @@ -2753,9 +2744,7 @@ static void ggml_vk_h2d_tensor_2d(ggml_backend_vk_context * ctx, vk_context * su
     }
     
     static void ggml_vk_d2h_tensor_2d(ggml_backend_vk_context * ctx, vk_context * subctx, vk_buffer& src, size_t offset, const ggml_tensor * dst) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_d2h_tensor_2d()" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_vk_d2h_tensor_2d()");
         const uint64_t ne0 = dst->ne[0];
         const uint64_t ne1 = dst->ne[1];
         const uint64_t ne2 = dst->ne[2];
    @@ -2779,9 +2768,7 @@ static void ggml_vk_d2h_tensor_2d(ggml_backend_vk_context * ctx, vk_context * su
     }
     
     static uint32_t ggml_vk_guess_split_k(int m, int n, int k) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_guess_split_k(" << m << ", " << n << ", " << k << ")" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_vk_guess_split_k(" << m << ", " << n << ", " << k << ")");
         // if (k > 128 && (m < 128 || n < 128) && m > 2 && n > 2) {
         //     return 4;
         // }
    @@ -2813,9 +2800,7 @@ static vk_pipeline ggml_vk_guess_matmul_pipeline_intel(ggml_backend_vk_context *
     }
     
     static vk_pipeline ggml_vk_guess_matmul_pipeline(ggml_backend_vk_context * ctx, vk_matmul_pipeline& mmp, int m, int n, bool aligned) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_guess_matmul_pipeline(" << m << ", " << n << ", " << aligned << ")" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_vk_guess_matmul_pipeline(" << m << ", " << n << ", " << aligned << ")");
         switch (ctx->device->vendor_id) {
         case VK_VENDOR_ID_AMD:
             return ggml_vk_guess_matmul_pipeline_amd(ctx, mmp, m, n, aligned);
    @@ -2837,9 +2822,7 @@ static vk_pipeline ggml_vk_guess_matmul_pipeline(ggml_backend_vk_context * ctx,
     }
     
     static uint32_t ggml_vk_guess_matmul_pipeline_align(ggml_backend_vk_context * ctx, vk_matmul_pipeline& mmp, int m, int n) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_guess_matmul_pipeline_align(" << m << ", " << n << ")" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_vk_guess_matmul_pipeline_align(" << m << ", " << n << ")");
         return ggml_vk_guess_matmul_pipeline(ctx, mmp, m, n, true)->align;
     }
     
    @@ -2849,9 +2832,7 @@ static void ggml_vk_matmul(
             uint32_t m, uint32_t n, uint32_t k, uint32_t stride_a, uint32_t stride_b, uint32_t stride_d,
             uint32_t batch_stride_a, uint32_t batch_stride_b, uint32_t batch_stride_d,
             uint32_t split_k, uint32_t batch, uint32_t ne02, uint32_t ne12, uint32_t broadcast2, uint32_t broadcast3) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_matmul(a: (" << a.buffer->buffer << ", " << a.offset << ", " << a.size << "), b: (" << b.buffer->buffer << ", " << b.offset << ", " << b.size << "), d: (" << d.buffer->buffer << ", " << d.offset << ", " << d.size << "), split_k: (" << (split_k_buffer.buffer != nullptr ? split_k_buffer.buffer->buffer : VK_NULL_HANDLE) << ", " << split_k_buffer.offset << ", " << split_k_buffer.size << "), m: " << m << ", n: " << n << ", k: " << k << ", stride_a: " << stride_a << ", stride_b: " << stride_b << ", stride_d: " << stride_d << ", batch_stride_a: " << batch_stride_a << ", batch_stride_b: " << batch_stride_b << ", batch_stride_d: " << batch_stride_d << ", split_k: " << split_k << ", batch: " << batch << ", ne02: " << ne02 << ", ne12: " << ne12 << ", broadcast2: " << broadcast2 << ", broadcast3: " << broadcast3 << ")" << std::endl;
    -#endif
    +        VK_LOG_DEBUG("ggml_vk_matmul(a: (" << a.buffer->buffer << ", " << a.offset << ", " << a.size << "), b: (" << b.buffer->buffer << ", " << b.offset << ", " << b.size << "), d: (" << d.buffer->buffer << ", " << d.offset << ", " << d.size << "), split_k: (" << (split_k_buffer.buffer != nullptr ? split_k_buffer.buffer->buffer : VK_NULL_HANDLE) << ", " << split_k_buffer.offset << ", " << split_k_buffer.size << "), m: " << m << ", n: " << n << ", k: " << k << ", stride_a: " << stride_a << ", stride_b: " << stride_b << ", stride_d: " << stride_d << ", batch_stride_a: " << batch_stride_a << ", batch_stride_b: " << batch_stride_b << ", batch_stride_d: " << batch_stride_d << ", split_k: " << split_k << ", batch: " << batch << ", ne02: " << ne02 << ", ne12: " << ne12 << ", broadcast2: " << broadcast2 << ", broadcast3: " << broadcast3 << ")");
         ggml_vk_sync_buffers(subctx);
         if (split_k == 1) {
             const vk_mat_mat_push_constants pc = { m, n, k, stride_a, stride_b, stride_d, batch_stride_a, batch_stride_b, batch_stride_d, k, ne02, ne12, broadcast2, broadcast3 };
    @@ -2875,12 +2856,10 @@ static void ggml_vk_matmul_id(
             uint32_t m, uint32_t n, uint32_t k, uint32_t stride_a, uint32_t stride_b, uint32_t stride_d,
             uint32_t batch_stride_a, uint32_t batch_stride_b, uint32_t batch_stride_d,
             uint32_t n_as, uint32_t nei0, uint32_t nei1, uint32_t nbi1, uint32_t ne11) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_matmul_id(a: (" << a.buffer->buffer << ", " << a.offset << ", " << a.size << "), b: (" << b.buffer->buffer << ", " << b.offset << ", " << b.size << "), d: (" << d.buffer->buffer << ", " << d.offset << ", " << d.size << "), ids: (" << ids.buffer->buffer << ", " << ids.offset << ", " << ids.size << "), " <<
    +    VK_LOG_DEBUG("ggml_vk_matmul_id(a: (" << a.buffer->buffer << ", " << a.offset << ", " << a.size << "), b: (" << b.buffer->buffer << ", " << b.offset << ", " << b.size << "), d: (" << d.buffer->buffer << ", " << d.offset << ", " << d.size << "), ids: (" << ids.buffer->buffer << ", " << ids.offset << ", " << ids.size << "), " <<
             "m: " << m << ", n: " << n << ", k: " << k << ", stride_a: " << stride_a << ", stride_b: " << stride_b << ", stride_d: " << stride_d << ", " <<
             "batch_stride_a: " << batch_stride_a << ", batch_stride_b: " << batch_stride_b << ", batch_stride_d: " << batch_stride_d << ", " <<
    -        "n_as: " << n_as << ", nei0: " << nei0 << ", nei1: " << nei1 << ", nbi1: " << nbi1 << ", ne11: " << ne11 << ")" << std::endl;
    -#endif
    +        "n_as: " << n_as << ", nei0: " << nei0 << ", nei1: " << nei1 << ", nbi1: " << nbi1 << ", ne11: " << ne11 << ")");
         ggml_vk_sync_buffers(subctx);
         const vk_mat_mat_id_push_constants pc = { m, n, k, stride_a, stride_b, stride_d, batch_stride_a, batch_stride_b, batch_stride_d,
                                                   nei0, nei1, nbi1, ne11 };
    @@ -2910,10 +2889,8 @@ static vk_pipeline ggml_vk_get_cpy_pipeline(ggml_backend_vk_context * ctx, ggml_
     }
     
     static void ggml_vk_cpy_to_contiguous(ggml_backend_vk_context * ctx, vk_context * subctx, vk_pipeline pipeline, const ggml_tensor * tensor, vk_subbuffer&& in, vk_subbuffer&& out) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_cpy_to_contiguous((" << tensor << ", type=" << tensor->type << ", ne0=" << tensor->ne[0] << ", ne1=" << tensor->ne[1] << ", ne2=" << tensor->ne[2] << ", ne3=" << tensor->ne[3] << ", nb0=" << tensor->nb[0] << ", nb1=" << tensor->nb[1] << ", nb2=" << tensor->nb[2] << ", nb3=" << tensor->nb[3] << "), ";
    -    std::cerr << "buffer in size=" << in.buffer->size << ", buffer out size=" << out.buffer->size << ")" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_vk_cpy_to_contiguous((" << tensor << ", type=" << tensor->type << ", ne0=" << tensor->ne[0] << ", ne1=" << tensor->ne[1] << ", ne2=" << tensor->ne[2] << ", ne3=" << tensor->ne[3] << ", nb0=" << tensor->nb[0] << ", nb1=" << tensor->nb[1] << ", nb2=" << tensor->nb[2] << ", nb3=" << tensor->nb[3] << "), ";
    +    std::cerr << "buffer in size=" << in.buffer->size << ", buffer out size=" << out.buffer->size << ")");
         const int tensor_type_size = ggml_type_size(tensor->type);
     
         const uint32_t ne = ggml_nelements(tensor);
    @@ -2930,11 +2907,9 @@ static void ggml_vk_cpy_to_contiguous(ggml_backend_vk_context * ctx, vk_context
     }
     
     static void ggml_vk_mul_mat_q_f16(ggml_backend_vk_context * ctx, vk_context * subctx, const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_mul_mat_q_f16((" << src0 << ", name=" << src0->name << ", type=" << src0->type << ", ne0=" << src0->ne[0] << ", ne1=" << src0->ne[1] << ", ne2=" << src0->ne[2] << ", ne3=" << src0->ne[3] << ", nb0=" << src0->nb[0] << ", nb1=" << src0->nb[1] << ", nb2=" << src0->nb[2] << ", nb3=" << src0->nb[3];
    +    VK_LOG_DEBUG("ggml_vk_mul_mat_q_f16((" << src0 << ", name=" << src0->name << ", type=" << src0->type << ", ne0=" << src0->ne[0] << ", ne1=" << src0->ne[1] << ", ne2=" << src0->ne[2] << ", ne3=" << src0->ne[3] << ", nb0=" << src0->nb[0] << ", nb1=" << src0->nb[1] << ", nb2=" << src0->nb[2] << ", nb3=" << src0->nb[3];
         std::cerr << "), (" << src1 << ", name=" << src1->name << ", type=" << src1->type << ", ne0=" << src1->ne[0] << ", ne1=" << src1->ne[1] << ", ne2=" << src1->ne[2] << ", ne3=" << src1->ne[3] << ", nb0=" << src1->nb[0] << ", nb1=" << src1->nb[1] << ", nb2=" << src1->nb[2] << ", nb3=" << src1->nb[3];
    -    std::cerr << "), (" << dst << ", name=" << dst->name << ", type=" << dst->type << ", ne0=" << dst->ne[0] << ", ne1=" << dst->ne[1] << ", ne2=" << dst->ne[2] << ", ne3=" << dst->ne[3] << ", nb0=" << dst->nb[0] << ", nb1=" << dst->nb[1] << ", nb2=" << dst->nb[2] << ", nb3=" << dst->nb[3] << "),)" << std::endl;
    -#endif
    +    std::cerr << "), (" << dst << ", name=" << dst->name << ", type=" << dst->type << ", ne0=" << dst->ne[0] << ", ne1=" << dst->ne[1] << ", ne2=" << dst->ne[2] << ", ne3=" << dst->ne[3] << ", nb0=" << dst->nb[0] << ", nb1=" << dst->nb[1] << ", nb2=" << dst->nb[2] << ", nb3=" << dst->nb[3] << "),)");
         GGML_ASSERT(ggml_vk_dim01_contiguous(src0) || src0->type == GGML_TYPE_F32 || src0->type == GGML_TYPE_F16);  // NOLINT
         GGML_ASSERT(ggml_vk_dim01_contiguous(src1) || src1->type == GGML_TYPE_F32 || src1->type == GGML_TYPE_F16);  // NOLINT
     
    @@ -3105,11 +3080,9 @@ static void ggml_vk_mul_mat_q_f16(ggml_backend_vk_context * ctx, vk_context * su
     }
     
     static void ggml_vk_mul_mat_vec_q_f16(ggml_backend_vk_context * ctx, vk_context * subctx, const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_mul_mat_vec_q_f16((" << src0 << ", name=" << src0->name << ", type=" << src0->type << ", ne0=" << src0->ne[0] << ", ne1=" << src0->ne[1] << ", ne2=" << src0->ne[2] << ", ne3=" << src0->ne[3] << ", nb0=" << src0->nb[0] << ", nb1=" << src0->nb[1] << ", nb2=" << src0->nb[2] << ", nb3=" << src0->nb[3];
    +    VK_LOG_DEBUG("ggml_vk_mul_mat_vec_q_f16((" << src0 << ", name=" << src0->name << ", type=" << src0->type << ", ne0=" << src0->ne[0] << ", ne1=" << src0->ne[1] << ", ne2=" << src0->ne[2] << ", ne3=" << src0->ne[3] << ", nb0=" << src0->nb[0] << ", nb1=" << src0->nb[1] << ", nb2=" << src0->nb[2] << ", nb3=" << src0->nb[3];
         std::cerr << "), (" << src1 << ", name=" << src1->name << ", type=" << src1->type << ", ne0=" << src1->ne[0] << ", ne1=" << src1->ne[1] << ", ne2=" << src1->ne[2] << ", ne3=" << src1->ne[3] << ", nb0=" << src1->nb[0] << ", nb1=" << src1->nb[1] << ", nb2=" << src1->nb[2] << ", nb3=" << src1->nb[3];
    -    std::cerr << "), (" << dst << ", name=" << dst->name << ", type=" << dst->type << ", ne0=" << dst->ne[0] << ", ne1=" << dst->ne[1] << ", ne2=" << dst->ne[2] << ", ne3=" << dst->ne[3] << ", nb0=" << dst->nb[0] << ", nb1=" << dst->nb[1] << ", nb2=" << dst->nb[2] << ", nb3=" << dst->nb[3] << "),)" << std::endl;
    -#endif
    +    std::cerr << "), (" << dst << ", name=" << dst->name << ", type=" << dst->type << ", ne0=" << dst->ne[0] << ", ne1=" << dst->ne[1] << ", ne2=" << dst->ne[2] << ", ne3=" << dst->ne[3] << ", nb0=" << dst->nb[0] << ", nb1=" << dst->nb[1] << ", nb2=" << dst->nb[2] << ", nb3=" << dst->nb[3] << "),)");
         GGML_ASSERT(ggml_vk_dim01_contiguous(src0) || src0->type == GGML_TYPE_F32 || src0->type == GGML_TYPE_F16);  // NOLINT
         GGML_ASSERT(ggml_vk_dim01_contiguous(src1) || src1->type == GGML_TYPE_F32 || src1->type == GGML_TYPE_F16);  // NOLINT
     
    @@ -3260,11 +3233,9 @@ static void ggml_vk_mul_mat_vec_q_f16(ggml_backend_vk_context * ctx, vk_context
     }
     
     static void ggml_vk_mul_mat_vec_p021_f16_f32(ggml_backend_vk_context * ctx, vk_context * subctx, const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_mul_mat_p021_f16_f32((" << src0 << ", name=" << src0->name << ", type=" << src0->type << ", ne0=" << src0->ne[0] << ", ne1=" << src0->ne[1] << ", ne2=" << src0->ne[2] << ", ne3=" << src0->ne[3] << ", nb0=" << src0->nb[0] << ", nb1=" << src0->nb[1] << ", nb2=" << src0->nb[2] << ", nb3=" << src0->nb[3];
    +    VK_LOG_DEBUG("ggml_vk_mul_mat_p021_f16_f32((" << src0 << ", name=" << src0->name << ", type=" << src0->type << ", ne0=" << src0->ne[0] << ", ne1=" << src0->ne[1] << ", ne2=" << src0->ne[2] << ", ne3=" << src0->ne[3] << ", nb0=" << src0->nb[0] << ", nb1=" << src0->nb[1] << ", nb2=" << src0->nb[2] << ", nb3=" << src0->nb[3];
         std::cerr << "), (" << src1 << ", name=" << src1->name << ", type=" << src1->type << ", ne0=" << src1->ne[0] << ", ne1=" << src1->ne[1] << ", ne2=" << src1->ne[2] << ", ne3=" << src1->ne[3] << ", nb0=" << src1->nb[0] << ", nb1=" << src1->nb[1] << ", nb2=" << src1->nb[2] << ", nb3=" << src1->nb[3];
    -    std::cerr << "), (" << dst << ", name=" << dst->name << ", type=" << dst->type << ", ne0=" << dst->ne[0] << ", ne1=" << dst->ne[1] << ", ne2=" << dst->ne[2] << ", ne3=" << dst->ne[3] << ", nb0=" << dst->nb[0] << ", nb1=" << dst->nb[1] << ", nb2=" << dst->nb[2] << ", nb3=" << dst->nb[3] << "),)" << std::endl;
    -#endif
    +    std::cerr << "), (" << dst << ", name=" << dst->name << ", type=" << dst->type << ", ne0=" << dst->ne[0] << ", ne1=" << dst->ne[1] << ", ne2=" << dst->ne[2] << ", ne3=" << dst->ne[3] << ", nb0=" << dst->nb[0] << ", nb1=" << dst->nb[1] << ", nb2=" << dst->nb[2] << ", nb3=" << dst->nb[3] << "),)");
         GGML_ASSERT(ggml_is_permuted(src0) && ggml_is_permuted(src1));
         GGML_ASSERT(src0->nb[0] <= src0->nb[1] && src0->nb[2] <= src0->nb[3]);  // NOLINT
         GGML_ASSERT(src1->nb[0] <= src1->nb[1] && src1->nb[2] <= src1->nb[3]);  // NOLINT
    @@ -3333,11 +3304,9 @@ static void ggml_vk_mul_mat_vec_p021_f16_f32(ggml_backend_vk_context * ctx, vk_c
     }
     
     static void ggml_vk_mul_mat_vec_nc_f16_f32(ggml_backend_vk_context * ctx, vk_context * subctx, const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_mul_mat_nc_f16_f32((" << src0 << ", name=" << src0->name << ", type=" << src0->type << ", ne0=" << src0->ne[0] << ", ne1=" << src0->ne[1] << ", ne2=" << src0->ne[2] << ", ne3=" << src0->ne[3] << ", nb0=" << src0->nb[0] << ", nb1=" << src0->nb[1] << ", nb2=" << src0->nb[2] << ", nb3=" << src0->nb[3];
    +    VK_LOG_DEBUG("ggml_vk_mul_mat_nc_f16_f32((" << src0 << ", name=" << src0->name << ", type=" << src0->type << ", ne0=" << src0->ne[0] << ", ne1=" << src0->ne[1] << ", ne2=" << src0->ne[2] << ", ne3=" << src0->ne[3] << ", nb0=" << src0->nb[0] << ", nb1=" << src0->nb[1] << ", nb2=" << src0->nb[2] << ", nb3=" << src0->nb[3];
         std::cerr << "), (" << src1 << ", name=" << src1->name << ", type=" << src1->type << ", ne0=" << src1->ne[0] << ", ne1=" << src1->ne[1] << ", ne2=" << src1->ne[2] << ", ne3=" << src1->ne[3] << ", nb0=" << src1->nb[0] << ", nb1=" << src1->nb[1] << ", nb2=" << src1->nb[2] << ", nb3=" << src1->nb[3];
    -    std::cerr << "), (" << dst << ", name=" << dst->name << ", type=" << dst->type << ", ne0=" << dst->ne[0] << ", ne1=" << dst->ne[1] << ", ne2=" << dst->ne[2] << ", ne3=" << dst->ne[3] << ", nb0=" << dst->nb[0] << ", nb1=" << dst->nb[1] << ", nb2=" << dst->nb[2] << ", nb3=" << dst->nb[3] << "),)" << std::endl;
    -#endif
    +    std::cerr << "), (" << dst << ", name=" << dst->name << ", type=" << dst->type << ", ne0=" << dst->ne[0] << ", ne1=" << dst->ne[1] << ", ne2=" << dst->ne[2] << ", ne3=" << dst->ne[3] << ", nb0=" << dst->nb[0] << ", nb1=" << dst->nb[1] << ", nb2=" << dst->nb[2] << ", nb3=" << dst->nb[3] << "),)");
         GGML_ASSERT(!ggml_is_transposed(src0));
         GGML_ASSERT(!ggml_is_transposed(src1));
         GGML_ASSERT(!ggml_is_permuted(src0));
    @@ -3410,9 +3379,7 @@ static void ggml_vk_mul_mat_vec_nc_f16_f32(ggml_backend_vk_context * ctx, vk_con
     }
     
     static void ggml_vk_mul_mat(ggml_backend_vk_context * ctx, vk_context * subctx, const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_mul_mat(" << src0 << ", " << src1 << ", " << dst << ")" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_vk_mul_mat(" << src0 << ", " << src1 << ", " << dst << ")");
         if (src0->type == GGML_TYPE_F16 && ggml_is_permuted(src0) && ggml_is_permuted(src1) && dst->ne[1] == 1) {
             ggml_vk_mul_mat_vec_p021_f16_f32(ctx, subctx, src0, src1, dst);
         } else if (src0->type == GGML_TYPE_F16 && !ggml_is_contiguous(src0) && !ggml_is_transposed(src1) && dst->ne[1] == 1) {
    @@ -3425,12 +3392,10 @@ static void ggml_vk_mul_mat(ggml_backend_vk_context * ctx, vk_context * subctx,
     }
     
     static void ggml_vk_mul_mat_id_q_f16(ggml_backend_vk_context * ctx, vk_context * subctx, const ggml_tensor * src0, const ggml_tensor * src1, const ggml_tensor * ids, ggml_tensor * dst) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_mul_mat_id_q_f16((" << src0 << ", name=" << src0->name << ", type=" << src0->type << ", ne0=" << src0->ne[0] << ", ne1=" << src0->ne[1] << ", ne2=" << src0->ne[2] << ", ne3=" << src0->ne[3] << ", nb0=" << src0->nb[0] << ", nb1=" << src0->nb[1] << ", nb2=" << src0->nb[2] << ", nb3=" << src0->nb[3];
    +    VK_LOG_DEBUG("ggml_vk_mul_mat_id_q_f16((" << src0 << ", name=" << src0->name << ", type=" << src0->type << ", ne0=" << src0->ne[0] << ", ne1=" << src0->ne[1] << ", ne2=" << src0->ne[2] << ", ne3=" << src0->ne[3] << ", nb0=" << src0->nb[0] << ", nb1=" << src0->nb[1] << ", nb2=" << src0->nb[2] << ", nb3=" << src0->nb[3];
         std::cerr << "), (" << src1 << ", name=" << src1->name << ", type=" << src1->type << ", ne0=" << src1->ne[0] << ", ne1=" << src1->ne[1] << ", ne2=" << src1->ne[2] << ", ne3=" << src1->ne[3] << ", nb0=" << src1->nb[0] << ", nb1=" << src1->nb[1] << ", nb2=" << src1->nb[2] << ", nb3=" << src1->nb[3];
         std::cerr << "), (" << ids << ", name=" << ids->name << ", type=" << ids->type << ", ne0=" << ids->ne[0] << ", ne1=" << ids->ne[1] << ", ne2=" << ids->ne[2] << ", ne3=" << ids->ne[3] << ", nb0=" << ids->nb[0] << ", nb1=" << ids->nb[1] << ", nb2=" << ids->nb[2] << ", nb3=" << ids->nb[3];
    -    std::cerr << "), (" << dst << ", name=" << dst->name << ", type=" << dst->type << ", ne0=" << dst->ne[0] << ", ne1=" << dst->ne[1] << ", ne2=" << dst->ne[2] << ", ne3=" << dst->ne[3] << ", nb0=" << dst->nb[0] << ", nb1=" << dst->nb[1] << ", nb2=" << dst->nb[2] << ", nb3=" << dst->nb[3] << "),)" << std::endl;
    -#endif
    +    std::cerr << "), (" << dst << ", name=" << dst->name << ", type=" << dst->type << ", ne0=" << dst->ne[0] << ", ne1=" << dst->ne[1] << ", ne2=" << dst->ne[2] << ", ne3=" << dst->ne[3] << ", nb0=" << dst->nb[0] << ", nb1=" << dst->nb[1] << ", nb2=" << dst->nb[2] << ", nb3=" << dst->nb[3] << "),)");
         GGML_ASSERT(ggml_vk_dim01_contiguous(src1) || src1->type == GGML_TYPE_F32 || src1->type == GGML_TYPE_F16);  // NOLINT
         GGML_ASSERT(ids->type == GGML_TYPE_I32);
     
    @@ -3616,12 +3581,10 @@ static void ggml_vk_mul_mat_id_q_f16(ggml_backend_vk_context * ctx, vk_context *
     }
     
     static void ggml_vk_mul_mat_vec_id_q_f16(ggml_backend_vk_context * ctx, vk_context * subctx, const ggml_tensor * src0, const ggml_tensor * src1, const ggml_tensor * ids, ggml_tensor * dst) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_mul_mat_vec_id_q_f16((" << src0 << ", name=" << src0->name << ", type=" << src0->type << ", ne0=" << src0->ne[0] << ", ne1=" << src0->ne[1] << ", ne2=" << src0->ne[2] << ", ne3=" << src0->ne[3] << ", nb0=" << src0->nb[0] << ", nb1=" << src0->nb[1] << ", nb2=" << src0->nb[2] << ", nb3=" << src0->nb[3];
    +    VK_LOG_DEBUG("ggml_vk_mul_mat_vec_id_q_f16((" << src0 << ", name=" << src0->name << ", type=" << src0->type << ", ne0=" << src0->ne[0] << ", ne1=" << src0->ne[1] << ", ne2=" << src0->ne[2] << ", ne3=" << src0->ne[3] << ", nb0=" << src0->nb[0] << ", nb1=" << src0->nb[1] << ", nb2=" << src0->nb[2] << ", nb3=" << src0->nb[3];
         std::cerr << "), (" << src1 << ", name=" << src1->name << ", type=" << src1->type << ", ne0=" << src1->ne[0] << ", ne1=" << src1->ne[1] << ", ne2=" << src1->ne[2] << ", ne3=" << src1->ne[3] << ", nb0=" << src1->nb[0] << ", nb1=" << src1->nb[1] << ", nb2=" << src1->nb[2] << ", nb3=" << src1->nb[3];
         std::cerr << "), (" << ids << ", name=" << ids->name << ", type=" << ids->type << ", ne0=" << ids->ne[0] << ", ne1=" << ids->ne[1] << ", ne2=" << ids->ne[2] << ", ne3=" << ids->ne[3] << ", nb0=" << ids->nb[0] << ", nb1=" << ids->nb[1] << ", nb2=" << ids->nb[2] << ", nb3=" << ids->nb[3];
    -    std::cerr << "), (" << dst << ", name=" << dst->name << ", type=" << dst->type << ", ne0=" << dst->ne[0] << ", ne1=" << dst->ne[1] << ", ne2=" << dst->ne[2] << ", ne3=" << dst->ne[3] << ", nb0=" << dst->nb[0] << ", nb1=" << dst->nb[1] << ", nb2=" << dst->nb[2] << ", nb3=" << dst->nb[3] << "),)" << std::endl;
    -#endif
    +    std::cerr << "), (" << dst << ", name=" << dst->name << ", type=" << dst->type << ", ne0=" << dst->ne[0] << ", ne1=" << dst->ne[1] << ", ne2=" << dst->ne[2] << ", ne3=" << dst->ne[3] << ", nb0=" << dst->nb[0] << ", nb1=" << dst->nb[1] << ", nb2=" << dst->nb[2] << ", nb3=" << dst->nb[3] << "),)");
         GGML_ASSERT(ggml_vk_dim01_contiguous(src0) || src0->type == GGML_TYPE_F32 || src0->type == GGML_TYPE_F16);  // NOLINT
         GGML_ASSERT(ggml_vk_dim01_contiguous(src1) || src1->type == GGML_TYPE_F32 || src1->type == GGML_TYPE_F16);  // NOLINT
         GGML_ASSERT(ids->type == GGML_TYPE_I32);
    @@ -3784,9 +3747,7 @@ static void ggml_vk_mul_mat_vec_id_q_f16(ggml_backend_vk_context * ctx, vk_conte
     }
     
     static void ggml_vk_mul_mat_id(ggml_backend_vk_context * ctx, vk_context * subctx, const ggml_tensor * src0, const ggml_tensor * src1, const ggml_tensor * src2, ggml_tensor * dst) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_mul_mat_id(" << src0 << ", " << src1 << ", " << src2 << ", " << dst << ")" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_vk_mul_mat_id(" << src0 << ", " << src1 << ", " << src2 << ", " << dst << ")");
         if (src2->ne[1] == 1 && (src0->type == GGML_TYPE_F32 || src0->type == GGML_TYPE_F16 || ggml_is_quantized(src0->type))) {
             ggml_vk_mul_mat_vec_id_q_f16(ctx, subctx, src0, src1, src2, dst);
         } else {
    @@ -4020,16 +3981,14 @@ static bool ggml_vk_op_supports_incontiguous(ggml_op op) {
     
     template
     static void ggml_vk_op_f32(ggml_backend_vk_context * ctx, vk_context * subctx, const ggml_tensor * src0, const ggml_tensor * src1, const ggml_tensor * src2, ggml_tensor * dst, ggml_op op, const PC&& pc) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_op_f32((" << src0 << ", name=" << src0->name << ", type=" << src0->type << ", ne0=" << src0->ne[0] << ", ne1=" << src0->ne[1] << ", ne2=" << src0->ne[2] << ", ne3=" << src0->ne[3] << ", nb0=" << src0->nb[0] << ", nb1=" << src0->nb[1] << ", nb2=" << src0->nb[2] << ", nb3=" << src0->nb[3];
    +    VK_LOG_DEBUG("ggml_vk_op_f32((" << src0 << ", name=" << src0->name << ", type=" << src0->type << ", ne0=" << src0->ne[0] << ", ne1=" << src0->ne[1] << ", ne2=" << src0->ne[2] << ", ne3=" << src0->ne[3] << ", nb0=" << src0->nb[0] << ", nb1=" << src0->nb[1] << ", nb2=" << src0->nb[2] << ", nb3=" << src0->nb[3];
         if (src1 != nullptr) {
             std::cerr << "), (" << src1 << ", name=" << src1->name << ", type=" << src1->type << ", ne0=" << src1->ne[0] << ", ne1=" << src1->ne[1] << ", ne2=" << src1->ne[2] << ", ne3=" << src1->ne[3] << ", nb0=" << src1->nb[0] << ", nb1=" << src1->nb[1] << ", nb2=" << src1->nb[2] << ", nb3=" << src1->nb[3];
         }
         if (src2 != nullptr) {
             std::cerr << "), (" << src2 << ", name=" << src2->name << ", type=" << src2->type << ", ne0=" << src2->ne[0] << ", ne1=" << src2->ne[1] << ", ne2=" << src2->ne[2] << ", ne3=" << src2->ne[3] << ", nb0=" << src2->nb[0] << ", nb1=" << src2->nb[1] << ", nb2=" << src2->nb[2] << ", nb3=" << src2->nb[3];
         }
    -    std::cerr << "), (" << dst << ", name=" << dst->name << ", type=" << dst->type << ", ne0=" << dst->ne[0] << ", ne1=" << dst->ne[1] << ", ne2=" << dst->ne[2] << ", ne3=" << dst->ne[3] << ", nb0=" << dst->nb[0] << ", nb1=" << dst->nb[1] << ", nb2=" << dst->nb[2] << ", nb3=" << dst->nb[3] << "), " << ggml_op_name(op) << ")" << std::endl;
    -#endif
    +    std::cerr << "), (" << dst << ", name=" << dst->name << ", type=" << dst->type << ", ne0=" << dst->ne[0] << ", ne1=" << dst->ne[1] << ", ne2=" << dst->ne[2] << ", ne3=" << dst->ne[3] << ", nb0=" << dst->nb[0] << ", nb1=" << dst->nb[1] << ", nb2=" << dst->nb[2] << ", nb3=" << dst->nb[3] << "), " << ggml_op_name(op) << ")");
         GGML_ASSERT(op == GGML_OP_GET_ROWS || (!ggml_is_quantized(src0->type) && (src1 == nullptr || !ggml_is_quantized(src1->type))));  // NOLINT
         GGML_ASSERT(ggml_vk_op_supports_incontiguous(op) || ggml_vk_dim01_contiguous(src0));  // NOLINT
         GGML_ASSERT(dst->extra != nullptr);
    @@ -4527,9 +4486,7 @@ static void ggml_vk_print_matrix_area(const void * data, ggml_type type, int ne0
     
     template 
     static void ggml_vk_test_matmul(ggml_backend_vk_context * ctx, size_t m, size_t n, size_t k, size_t batch, size_t num_it, int split_k, int shader_size) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_test_matmul(" << m << ", " << n << ", " << k << ", " << batch << ", " << num_it << ", " << split_k << ", " << shader_size << ")" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_vk_test_matmul(" << m << ", " << n << ", " << k << ", " << batch << ", " << num_it << ", " << split_k << ", " << shader_size << ")");
         const size_t x_ne = m * k * batch;
         const size_t y_ne = k * n * batch;
         const size_t d_ne = m * n * batch;
    @@ -4943,9 +4900,7 @@ static void ggml_vk_test_h2d_nc(ggml_backend_vk_context * ctx, size_t ne0, size_
     }
     
     static void ggml_vk_test_transfer(ggml_backend_vk_context * ctx, size_t ne, bool pinned) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_test_transfer(" << ne << ")" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_vk_test_transfer(" << ne << ")");
         // Check transfers are correct
         vk_buffer buffer = ggml_vk_create_buffer_check(ctx, sizeof(float) * ne, vk::MemoryPropertyFlagBits::eDeviceLocal);
     
    @@ -5029,9 +4984,7 @@ static void ggml_vk_quantize_data(const float * from, void * to, size_t ne, ggml
     }
     
     static void ggml_vk_test_dequant(ggml_backend_vk_context * ctx, size_t ne, ggml_type quant) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_test_dequant(" << ne << ")" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_vk_test_dequant(" << ne << ")");
         const size_t x_sz = sizeof(float) * ne;
         const size_t x_sz_f16 = sizeof(ggml_fp16_t) * ne;
         const size_t qx_sz = ne * ggml_type_size(quant)/ggml_blck_size(quant);
    @@ -5108,9 +5061,7 @@ static void ggml_vk_test_dequant(ggml_backend_vk_context * ctx, size_t ne, ggml_
     }
     
     static void ggml_vk_test_dequant_matmul(ggml_backend_vk_context * ctx, size_t m, size_t n, size_t k, size_t batch, size_t num_it, size_t split_k, size_t shader_size, ggml_type quant) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_test_dequant_matmul(" << m << ", " << n << ", " << k << ", " << batch << ", " << num_it << ", " << split_k << ", " << ggml_type_name(quant) << ")" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_vk_test_dequant_matmul(" << m << ", " << n << ", " << k << ", " << batch << ", " << num_it << ", " << split_k << ", " << ggml_type_name(quant) << ")");
         const size_t x_ne = m * k * batch;
         const size_t y_ne = k * n * batch;
         const size_t d_ne = m * n * batch;
    @@ -5294,9 +5245,7 @@ static void ggml_vk_test_dequant_matmul(ggml_backend_vk_context * ctx, size_t m,
     #endif
     
     static ggml_tensor_extra_gpu * ggml_vk_tensor_create_extra(ggml_tensor * tensor) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_create_extra(" << tensor << " (" << tensor->name << ", " << ggml_op_name(tensor->op) << "))" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_vk_create_extra(" << tensor << " (" << tensor->name << ", " << ggml_op_name(tensor->op) << "))");
         ggml_tensor_extra_gpu * extra = new ggml_tensor_extra_gpu;
         extra->reset();
         tensor->extra = extra;
    @@ -5304,9 +5253,7 @@ static ggml_tensor_extra_gpu * ggml_vk_tensor_create_extra(ggml_tensor * tensor)
     }
     
     static void ggml_vk_preallocate_buffers_graph(ggml_backend_vk_context * ctx, ggml_tensor * node){
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_preallocate_buffers_graph(" << node << ")" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_vk_preallocate_buffers_graph(" << node << ")");
         ggml_tensor_extra_gpu * extra = (ggml_tensor_extra_gpu *) node->extra;
     
         if (extra == nullptr) {
    @@ -5341,7 +5288,7 @@ static void ggml_vk_preallocate_buffers_graph(ggml_backend_vk_context * ctx, ggm
     
         bool mmp = (use_src0 && use_src1 && src1_type == GGML_TYPE_F32) ? ggml_vk_get_mul_mat_mat_pipeline(ctx, src0_type, y_non_contig ? GGML_TYPE_F16 : src1->type) != nullptr : false;
     
    -    const bool qx_needs_dequant = use_src0 && (mmp || x_non_contig);
    +    const bool qx_needs_dequant = use_src0 && (!mmp || x_non_contig);
         const bool qy_needs_dequant = use_src1 && ((src1->type != GGML_TYPE_F16 && !y_f32_kernel) || y_non_contig);
     
         int split_k;
    @@ -5419,9 +5366,6 @@ static void ggml_vk_preallocate_buffers_graph(ggml_backend_vk_context * ctx, ggm
     }
     
     static void ggml_vk_preallocate_buffers(ggml_backend_vk_context * ctx) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_preallocate_buffers(x_size: " << ctx->prealloc_size_x << " y_size: " << ctx->prealloc_size_y << " split_k_size: " << ctx->prealloc_size_split_k << ")" << std::endl;
    -#endif
     #if defined(GGML_VULKAN_RUN_TESTS)
         ctx->staging = ggml_vk_create_buffer_check(ctx, 100ul * 1024ul * 1024ul,
             vk::MemoryPropertyFlagBits::eHostVisible | vk::MemoryPropertyFlagBits::eHostCoherent | vk::MemoryPropertyFlagBits::eHostCached,
    @@ -5560,6 +5504,7 @@ static void ggml_vk_preallocate_buffers(ggml_backend_vk_context * ctx) {
     #endif
     
         if (ctx->prealloc_x == nullptr || (ctx->prealloc_size_x > 0 && ctx->prealloc_x->size < ctx->prealloc_size_x)) {
    +        VK_LOG_MEMORY("ggml_vk_preallocate_buffers(x_size: " << ctx->prealloc_size_x << ")");
             // Resize buffer
             if (ctx->prealloc_x != nullptr) {
                 ggml_vk_destroy_buffer(ctx->prealloc_x);
    @@ -5567,6 +5512,7 @@ static void ggml_vk_preallocate_buffers(ggml_backend_vk_context * ctx) {
             ctx->prealloc_x = ggml_vk_create_buffer_device(ctx, ctx->prealloc_size_x);
         }
         if (ctx->prealloc_y == nullptr || (ctx->prealloc_size_y > 0 && ctx->prealloc_y->size < ctx->prealloc_size_y)) {
    +        VK_LOG_MEMORY("ggml_vk_preallocate_buffers(y_size: " << ctx->prealloc_size_y << ")");
             // Resize buffer
             if (ctx->prealloc_y != nullptr) {
                 ggml_vk_destroy_buffer(ctx->prealloc_y);
    @@ -5574,6 +5520,7 @@ static void ggml_vk_preallocate_buffers(ggml_backend_vk_context * ctx) {
             ctx->prealloc_y = ggml_vk_create_buffer_device(ctx, ctx->prealloc_size_y);
         }
         if (ctx->prealloc_split_k == nullptr || (ctx->prealloc_size_split_k > 0 && ctx->prealloc_split_k->size < ctx->prealloc_size_split_k)) {
    +        VK_LOG_MEMORY("ggml_vk_preallocate_buffers(split_k_size: " << ctx->prealloc_size_split_k << ")");
             // Resize buffer
             if (ctx->prealloc_split_k != nullptr) {
                 ggml_vk_destroy_buffer(ctx->prealloc_split_k);
    @@ -5581,6 +5528,7 @@ static void ggml_vk_preallocate_buffers(ggml_backend_vk_context * ctx) {
             ctx->prealloc_split_k = ggml_vk_create_buffer_device(ctx, ctx->prealloc_size_split_k);
         }
         if (ctx->staging == nullptr || (ctx->staging_size > 0 && ctx->staging->size < ctx->staging_size)) {
    +        VK_LOG_MEMORY("ggml_vk_preallocate_buffers(staging_size: " << ctx->staging_size << ")");
             // Resize buffer
             if (ctx->staging != nullptr) {
                 ggml_vk_destroy_buffer(ctx->staging);
    @@ -5598,9 +5546,7 @@ static void ggml_vk_build_graph(ggml_backend_vk_context * ctx, ggml_tensor * nod
             return;
         }
     
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_build_graph(" << node << ", " << ggml_op_name(node->op) << ")" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_vk_build_graph(" << node << ", " << ggml_op_name(node->op) << ")");
         ctx->semaphore_idx = 0;
         ctx->staging_offset = 0;
     
    @@ -5823,9 +5769,7 @@ static bool ggml_vk_compute_forward(ggml_backend_vk_context * ctx, ggml_compute_
             return true;
         }
     
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_compute_forward(" << tensor << ", name=" << tensor->name << ", op=" << ggml_op_name(tensor->op) << ", type=" << tensor->type << ", ne0=" << tensor->ne[0] << ", ne1=" << tensor->ne[1] << ", ne2=" << tensor->ne[2] << ", ne3=" << tensor->ne[3] << ", nb0=" << tensor->nb[0] << ", nb1=" << tensor->nb[1] << ", nb2=" << tensor->nb[2] << ", nb3=" << tensor->nb[3] << ", view_src=" << tensor->view_src << ", view_offs=" << tensor->view_offs << ")" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_vk_compute_forward(" << tensor << ", name=" << tensor->name << ", op=" << ggml_op_name(tensor->op) << ", type=" << tensor->type << ", ne0=" << tensor->ne[0] << ", ne1=" << tensor->ne[1] << ", ne2=" << tensor->ne[2] << ", ne3=" << tensor->ne[3] << ", nb0=" << tensor->nb[0] << ", nb1=" << tensor->nb[1] << ", nb2=" << tensor->nb[2] << ", nb3=" << tensor->nb[3] << ", view_src=" << tensor->view_src << ", view_offs=" << tensor->view_offs << ")");
     
     #ifdef GGML_VULKAN_CHECK_RESULTS
         ggml_vk_check_results_0(ctx, params, tensor);
    @@ -5860,9 +5804,7 @@ static bool ggml_vk_compute_forward(ggml_backend_vk_context * ctx, ggml_compute_
     
     // Clean up after graph processing is done
     static void ggml_vk_graph_cleanup(ggml_backend_vk_context * ctx) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_graph_cleanup()" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_vk_graph_cleanup()");
         for (auto& buffer : ctx->gc.temp_buffers) {
             ggml_vk_pool_free(ctx, buffer);
         }
    @@ -5906,9 +5848,7 @@ static void ggml_vk_graph_cleanup(ggml_backend_vk_context * ctx) {
     
     // Clean up on backend free
     static void ggml_vk_cleanup(ggml_backend_vk_context * ctx) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_cleanup(" << ctx->idx << ")" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_vk_cleanup(" << ctx->idx << ")");
         ggml_vk_graph_cleanup(ctx);
     
         ggml_vk_destroy_buffer(ctx->prealloc_x);
    @@ -6003,9 +5943,7 @@ GGML_CALL static bool ggml_backend_buffer_is_vk(ggml_backend_buffer_t buffer) {
     }
     
     GGML_CALL static void ggml_backend_vk_buffer_free_buffer(ggml_backend_buffer_t buffer) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_backend_vk_buffer_free_buffer()" << std::endl;
    -#endif
    +    VK_LOG_MEMORY("ggml_backend_vk_buffer_free_buffer()");
         ggml_backend_vk_buffer_context * ctx = (ggml_backend_vk_buffer_context *)buffer->context;
         ggml_vk_destroy_buffer(ctx->dev_buffer);
         delete ctx;
    @@ -6018,9 +5956,7 @@ GGML_CALL static void * ggml_backend_vk_buffer_get_base(ggml_backend_buffer_t bu
     }
     
     GGML_CALL static void ggml_backend_vk_buffer_init_tensor(ggml_backend_buffer_t buffer, ggml_tensor * tensor) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_backend_vk_buffer_init_tensor(" << buffer << " (" << buffer->context << "), " << tensor << ")" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_backend_vk_buffer_init_tensor(" << buffer << " (" << buffer->context << "), " << tensor << ")");
         ggml_backend_vk_buffer_context * ctx = (ggml_backend_vk_buffer_context *)buffer->context;
     
         if (tensor->view_src != nullptr) {
    @@ -6036,9 +5972,7 @@ GGML_CALL static void ggml_backend_vk_buffer_init_tensor(ggml_backend_buffer_t b
     }
     
     GGML_CALL static void ggml_backend_vk_buffer_set_tensor(ggml_backend_buffer_t buffer, ggml_tensor * tensor, const void * data, size_t offset, size_t size) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_backend_vk_buffer_set_tensor(" << buffer << ", " << tensor << ", " << data << ", " << offset << ", " << size << ")" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_backend_vk_buffer_set_tensor(" << buffer << ", " << tensor << ", " << data << ", " << offset << ", " << size << ")");
         ggml_backend_vk_buffer_context * ctx = (ggml_backend_vk_buffer_context *)buffer->context;
     
         ggml_tensor_extra_gpu * extra = (ggml_tensor_extra_gpu *) tensor->extra;
    @@ -6049,9 +5983,7 @@ GGML_CALL static void ggml_backend_vk_buffer_set_tensor(ggml_backend_buffer_t bu
     }
     
     GGML_CALL static void ggml_backend_vk_buffer_get_tensor(ggml_backend_buffer_t buffer, const ggml_tensor * tensor, void * data, size_t offset, size_t size) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_backend_vk_buffer_get_tensor(" << buffer << ", " << tensor << ", " << data << ", " << offset << ", " << size << ")" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_backend_vk_buffer_get_tensor(" << buffer << ", " << tensor << ", " << data << ", " << offset << ", " << size << ")");
         ggml_backend_vk_buffer_context * ctx = (ggml_backend_vk_buffer_context *)buffer->context;
     
         ggml_tensor_extra_gpu * extra = (ggml_tensor_extra_gpu *) tensor->extra;
    @@ -6109,9 +6041,7 @@ GGML_CALL static const char * ggml_backend_vk_buffer_type_name(ggml_backend_buff
     }
     
     GGML_CALL static ggml_backend_buffer_t ggml_backend_vk_buffer_type_alloc_buffer(ggml_backend_buffer_type_t buft, size_t size) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_backend_vk_buffer_type_alloc_buffer(" << size << ")" << std::endl;
    -#endif
    +    VK_LOG_MEMORY("ggml_backend_vk_buffer_type_alloc_buffer(" << size << ")");
         ggml_backend_vk_buffer_type_context * ctx = (ggml_backend_vk_buffer_type_context *) buft->context;
     
         vk_buffer dev_buffer = nullptr;
    @@ -6154,9 +6084,7 @@ static ggml_backend_buffer_type_i ggml_backend_vk_buffer_type_interface = {
     GGML_CALL ggml_backend_buffer_type_t ggml_backend_vk_buffer_type(size_t dev_num) {
         ggml_vk_instance_init();
     
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_backend_vk_buffer_type(" << dev_num << ")" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_backend_vk_buffer_type(" << dev_num << ")");
     
         GGML_ASSERT(dev_num < vk_instance.device_indices.size());
     
    @@ -6180,16 +6108,12 @@ GGML_CALL static const char * ggml_backend_vk_host_buffer_name(ggml_backend_buff
     }
     
     GGML_CALL static void ggml_backend_vk_host_buffer_free_buffer(ggml_backend_buffer_t buffer) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_backend_vk_host_buffer_free_buffer()" << std::endl;
    -#endif
    +    VK_LOG_MEMORY("ggml_backend_vk_host_buffer_free_buffer()");
         ggml_vk_host_free(&vk_instance.contexts[0], buffer->context);
     }
     
     GGML_CALL static ggml_backend_buffer_t ggml_backend_vk_host_buffer_type_alloc_buffer(ggml_backend_buffer_type_t buft, size_t size) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_backend_vk_host_buffer_type_alloc_buffer(" << size << ")" << std::endl;
    -#endif
    +    VK_LOG_MEMORY("ggml_backend_vk_host_buffer_type_alloc_buffer(" << size << ")");
         size += 32;  // Behave like the CPU buffer type
         void * ptr = nullptr;
         try {
    @@ -6246,9 +6170,7 @@ GGML_CALL static const char * ggml_backend_vk_name(ggml_backend_t backend) {
     
     GGML_CALL static void ggml_backend_vk_free(ggml_backend_t backend) {
         ggml_backend_vk_context * ctx = (ggml_backend_vk_context *)backend->context;
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_backend_vk_free(" << ctx->name << ")" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_backend_vk_free(" << ctx->name << ")");
     
         size_t idx = ctx->idx;
     
    @@ -6272,9 +6194,7 @@ GGML_CALL static ggml_backend_buffer_type_t ggml_backend_vk_get_default_buffer_t
     }
     
     GGML_CALL static void ggml_backend_vk_set_tensor_async(ggml_backend_t backend, ggml_tensor * tensor, const void * data, size_t offset, size_t size) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_backend_vk_set_tensor_async(" << size << ")" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_backend_vk_set_tensor_async(" << size << ")");
         ggml_backend_vk_context * ctx = (ggml_backend_vk_context *)backend->context;
         GGML_ASSERT((tensor->buffer->buft == ggml_backend_vk_buffer_type(ctx->idx) || tensor->buffer->buft == ggml_backend_vk_host_buffer_type()) && "unsupported buffer type");
     
    @@ -6292,9 +6212,7 @@ GGML_CALL static void ggml_backend_vk_set_tensor_async(ggml_backend_t backend, g
     }
     
     GGML_CALL static void ggml_backend_vk_get_tensor_async(ggml_backend_t backend, const ggml_tensor * tensor, void * data, size_t offset, size_t size) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_backend_vk_get_tensor_async(" << size << ")" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_backend_vk_get_tensor_async(" << size << ")");
         ggml_backend_vk_context * ctx = (ggml_backend_vk_context *)backend->context;
         GGML_ASSERT((tensor->buffer->buft == ggml_backend_vk_buffer_type(ctx->idx) || tensor->buffer->buft == ggml_backend_vk_host_buffer_type()) && "unsupported buffer type");
     
    @@ -6312,9 +6230,7 @@ GGML_CALL static void ggml_backend_vk_get_tensor_async(ggml_backend_t backend, c
     }
     
     GGML_CALL static bool ggml_backend_vk_cpy_tensor_async(ggml_backend_t backend, const ggml_tensor * src, ggml_tensor * dst) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_backend_vk_cpy_tensor_async()" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_backend_vk_cpy_tensor_async()");
         ggml_backend_vk_context * ctx = (ggml_backend_vk_context *)backend->context;
         if ((dst->buffer->buft == ggml_backend_vk_buffer_type(ctx->idx) || dst->buffer->buft == ggml_backend_vk_host_buffer_type()) && ggml_backend_buffer_is_vk(src->buffer)) {
             ggml_tensor_extra_gpu * src_extra = (ggml_tensor_extra_gpu *) src->extra;
    @@ -6337,9 +6253,7 @@ GGML_CALL static bool ggml_backend_vk_cpy_tensor_async(ggml_backend_t backend, c
     }
     
     GGML_CALL static void ggml_backend_vk_synchronize(ggml_backend_t backend) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_backend_vk_synchronize()" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_backend_vk_synchronize()");
         ggml_backend_vk_context * ctx = (ggml_backend_vk_context *)backend->context;
         if(ctx->transfer_ctx == nullptr) {
             return;
    @@ -6367,9 +6281,7 @@ static bool ggml_vk_is_empty(ggml_tensor * node) {
     }
     
     GGML_CALL static ggml_status ggml_backend_vk_graph_compute(ggml_backend_t backend, ggml_cgraph * cgraph) {
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_backend_vk_graph_compute(" << cgraph->n_nodes << " nodes)" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_backend_vk_graph_compute(" << cgraph->n_nodes << " nodes)");
         ggml_backend_vk_context * ctx = (ggml_backend_vk_context *)backend->context;
     
         for (int i = 0; i < cgraph->n_nodes; i++) {
    @@ -6582,9 +6494,7 @@ GGML_CALL ggml_backend_t ggml_backend_vk_init(size_t dev_num) {
         if (vk_instance.initialized[dev_num]) {
             return vk_instance.backends[dev_num];
         }
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_backend_vk_init(" << dev_num << ")" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_backend_vk_init(" << dev_num << ")");
     
         ggml_backend_vk_context * ctx = &vk_instance.contexts[dev_num];
         ggml_vk_init(ctx, dev_num);
    @@ -6800,9 +6710,7 @@ static void ggml_vk_check_results_0(ggml_backend_vk_context * ctx, ggml_compute_
             return;
         }
     
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_check_results_0(" << tensor->name << ")" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_vk_check_results_0(" << tensor->name << ")");
     
         ggml_tensor * src0 = tensor->src[0];
         ggml_tensor * src1 = tensor->src[1];
    @@ -7108,9 +7016,7 @@ static void ggml_vk_check_results_1(ggml_backend_vk_context * ctx, ggml_compute_
             return;
         }
     
    -#ifdef GGML_VULKAN_DEBUG
    -    std::cerr << "ggml_vk_check_results_1(" << tensor->name << ")" << std::endl;
    -#endif
    +    VK_LOG_DEBUG("ggml_vk_check_results_1(" << tensor->name << ")");
     
         ggml_tensor * src0 = tensor->src[0];
         ggml_tensor * src1 = tensor->src[1];
    diff --git a/ggml_vk_generate_shaders.py b/ggml_vk_generate_shaders.py
    index 400a63f579c2a..38914eedb7976 100644
    --- a/ggml_vk_generate_shaders.py
    +++ b/ggml_vk_generate_shaders.py
    @@ -4,2727 +4,43 @@
     import argparse
     import asyncio
     import os
    -import sys
    -from tempfile import gettempdir, NamedTemporaryFile
    +from tempfile import gettempdir
     
     logger = logging.getLogger("ggml-vk-generate-shaders")
     
    -shader_f32 = """
    -#define FLOAT_TYPE float
    -"""
    -shader_f16 = """
    -#extension GL_EXT_shader_explicit_arithmetic_types_float16 : require
    -#define FLOAT_TYPE float16_t
    -"""
    -shader_int8_ext = """
    -#extension GL_EXT_shader_explicit_arithmetic_types_int8 : require
    -"""
    -
    -# Type-specific defines
    -shader_f32_defines = """
    -#define QUANT_K 1
    -#define QUANT_R 1
    -
    -#define A_TYPE float
    -"""
    -shader_f16_defines = """
    -#define QUANT_K 1
    -#define QUANT_R 1
    -
    -#define A_TYPE float16_t
    -"""
    -shader_q4_0_defines = """
    -#define QUANT_K 32
    -#define QUANT_R 2
    -
    -struct block_q4_0
    -{
    -    float16_t d;
    -    uint8_t qs[16];
    -};
    -
    -#define A_TYPE block_q4_0
    -"""
    -shader_q4_1_defines = """
    -#define QUANT_K 32
    -#define QUANT_R 2
    -
    -struct block_q4_1
    -{
    -    float16_t d;
    -    float16_t m;
    -    uint8_t qs[16];
    -};
    -
    -#define A_TYPE block_q4_1
    -"""
    -shader_q5_0_defines = """
    -#extension GL_EXT_shader_explicit_arithmetic_types_int16 : require
    -#define QUANT_K 32
    -#define QUANT_R 2
    -
    -struct block_q5_0
    -{
    -    float16_t d;
    -    uint16_t qh[2];
    -    uint8_t qs[16];
    -};
    -
    -#define A_TYPE block_q5_0
    -"""
    -shader_q5_1_defines = """
    -#extension GL_EXT_shader_explicit_arithmetic_types_int16 : require
    -#define QUANT_K 32
    -#define QUANT_R 2
    -
    -struct block_q5_1
    -{
    -    float16_t d;
    -    float16_t m;
    -    uint qh;
    -    uint8_t qs[16];
    -};
    -
    -#define A_TYPE block_q5_1
    -"""
    -shader_q8_0_defines = """
    -#define QUANT_K 32
    -#define QUANT_R 1
    -
    -struct block_q8_0
    -{
    -    float16_t d;
    -    int8_t qs[32];
    -};
    -
    -#define A_TYPE block_q8_0
    -"""
    -
    -# K-quants
    -shader_q2_K_defines = """
    -#define QUANT_K 256
    -
    -struct block_q2_K
    -{
    -    uint8_t scales[QUANT_K/16];
    -    uint8_t qs[QUANT_K/4];
    -    f16vec2 d;
    -};
    -
    -#define A_TYPE block_q2_K
    -"""
    -shader_q3_K_defines = """
    -#define QUANT_K 256
    -
    -struct block_q3_K
    -{
    -    uint8_t hmask[QUANT_K/8];
    -    uint8_t qs[QUANT_K/4];
    -    uint8_t scales[12];
    -    float16_t d;
    -};
    -
    -#define A_TYPE block_q3_K
    -"""
    -shader_q4_K_defines = """
    -#define QUANT_K 256
    -
    -struct block_q4_K
    -{
    -    f16vec2 d;
    -    uint8_t scales[3*QUANT_K/64];
    -    uint8_t qs[QUANT_K/2];
    -};
    -
    -#define A_TYPE block_q4_K
    -"""
    -shader_q5_K_defines = """
    -#define QUANT_K 256
    -
    -struct block_q5_K
    -{
    -    f16vec2 d;
    -    uint8_t scales[12];
    -    uint8_t qh[QUANT_K/8];
    -    uint8_t qs[QUANT_K/2];
    -};
    -
    -#define A_TYPE block_q5_K
    -"""
    -shader_q6_K_defines = """
    -#define QUANT_K 256
    -
    -struct block_q6_K
    -{
    -    uint8_t ql[QUANT_K/2];
    -    uint8_t qh[QUANT_K/4];
    -    int8_t scales[QUANT_K/16];
    -    float16_t d;
    -};
    -
    -#define A_TYPE block_q6_K
    -"""
    -
    -# Dequant functions
    -shader_float_dequant_func = """
    -vec2 dequantize(uint ib, uint iqs, uint a_offset) {
    -    return vec2(data_a[a_offset + ib], data_a[a_offset + ib + 1]);
    -}
    -"""
    -
    -shader_q4_0_dequant_func = """
    -vec2 dequantize(uint ib, uint iqs, uint a_offset) {
    -    const float d = float(data_a[a_offset + ib].d);
    -    const uint vui = uint(data_a[a_offset + ib].qs[iqs]);
    -    return (vec2(vui & 0xF, vui >> 4) - 8.0f) * d;
    -}
    -"""
    -
    -shader_q4_1_dequant_func = """
    -vec2 dequantize(uint ib, uint iqs, uint a_offset) {
    -    const float d = float(data_a[a_offset + ib].d);
    -    const float m = float(data_a[a_offset + ib].m);
    -    const uint vui = uint(data_a[a_offset + ib].qs[iqs]);
    -    return vec2(vui & 0xF, vui >> 4) * d + m;
    -}
    -"""
    -
    -shader_q5_0_dequant_func = """
    -vec2 dequantize(uint ib, uint iqs, uint a_offset) {
    -    const float d = float(data_a[a_offset + ib].d);
    -    const uint uint_qh = uint(data_a[a_offset + ib].qh[1]) << 16 | data_a[a_offset + ib].qh[0];
    -    const ivec2 qh = ivec2(((uint_qh >> iqs) << 4) & 0x10, (uint_qh >> (iqs + 12)) & 0x10);
    -    const uint vui = uint(data_a[a_offset + ib].qs[iqs]);
    -    return (vec2((vui & 0xF) | qh.x, (vui >> 4) | qh.y) - 16.0f) * d;
    -}
    -"""
    -
    -shader_q5_1_dequant_func = """
    -vec2 dequantize(uint ib, uint iqs, uint a_offset) {
    -    const float d = float(data_a[a_offset + ib].d);
    -    const float m = float(data_a[a_offset + ib].m);
    -    const uint uint_qh = data_a[a_offset + ib].qh;
    -    const ivec2 qh = ivec2(((uint_qh >> iqs) << 4) & 0x10, (uint_qh >> (iqs + 12)) & 0x10);
    -    const uint vui = uint(data_a[a_offset + ib].qs[iqs]);
    -    return vec2((vui & 0xF) | qh.x, (vui >> 4) | qh.y) * d + m;
    -}
    -"""
    -
    -shader_q8_0_dequant_func = """
    -vec2 dequantize(uint ib, uint iqs, uint a_offset) {
    -    const float d = float(data_a[a_offset + ib].d);
    -    return vec2(int(data_a[a_offset + ib].qs[iqs]), int(data_a[a_offset + ib].qs[iqs + 1])) * d;
    -}
    -"""
    -
    -# MULMAT
    -
    -mulmat_head = """#version 450
    -
    -#extension GL_EXT_control_flow_attributes : enable
    -#extension GL_EXT_shader_16bit_storage : require
    -
    -#ifdef MUL_MAT_ID
    -#extension GL_EXT_shader_explicit_arithmetic_types_int16 : require
    -
    -#define EXPERT_COUNT 8
    -#endif
    -
    -#ifndef LOAD_VEC_A
    -#define LOAD_VEC_A 1
    -#endif
    -#ifndef LOAD_VEC_B
    -#define LOAD_VEC_B 1
    -#endif
    -"""
    -
    -mulmat_body1 = """
    -layout(local_size_x_id = 0, local_size_y = 1, local_size_z = 1) in;
    -
    -layout (binding = 0) readonly buffer A {A_TYPE data_a[];};
    -layout (binding = 1) readonly buffer B {B_TYPE data_b[];};
    -layout (binding = 2) writeonly buffer D {D_TYPE data_d[];};
    -
    -#ifdef MUL_MAT_ID
    -layout (binding = 3) readonly buffer IDS {int data_ids[];};
    -#endif
    -
    -layout (push_constant) uniform parameter
    -{
    -    uint M;
    -    uint N;
    -    uint K;
    -    uint stride_a;
    -    uint stride_b;
    -    uint stride_d;
    -
    -    uint batch_stride_a;
    -    uint batch_stride_b;
    -    uint batch_stride_d;
    -
    -#ifdef MUL_MAT_ID
    -    uint nei0;
    -    uint nei1;
    -    uint nbi1;
    -    uint ne11;
    -#else
    -    uint k_split;
    -    uint ne02;
    -    uint ne12;
    -    uint broadcast2;
    -    uint broadcast3;
    -#endif
    -} p;
    -
    -layout (constant_id = 1) const uint BM = 64;
    -layout (constant_id = 2) const uint BN = 64;
    -layout (constant_id = 3) const uint BK = 16;  // Assumed to be 32 if working with a quant
    -layout (constant_id = 4) const uint WM = 32;
    -layout (constant_id = 5) const uint WN = 32;
    -layout (constant_id = 6) const uint WMITER = 2;
    -layout (constant_id = 7) const uint TM = 4;
    -layout (constant_id = 8) const uint TN = 2;
    -layout (constant_id = 9) const uint WARP = 32;
    -
    -shared FLOAT_TYPE buf_a[BM * (BK+1)];
    -shared FLOAT_TYPE buf_b[BN * (BK+1)];
    -
    -#ifdef MUL_MAT_ID
    -shared u16vec2 row_ids[2048];
    -#endif
    -
    -void main() {
    -#ifdef MUL_MAT_ID
    -    const uint expert_idx = gl_GlobalInvocationID.z;
    -#else
    -    const uint batch_idx = gl_GlobalInvocationID.z;
    -
    -    const uint i13 = batch_idx / p.ne12;
    -    const uint i12 = batch_idx % p.ne12;
    -
    -    const uint i03 = i13 / p.broadcast3;
    -    const uint i02 = i12 / p.broadcast2;
    -
    -    const uint batch_idx_a = i03 * p.ne02 + i02;
    -#endif
    -
    -    const uint blocks_m = (p.M + BM - 1) / BM;
    -    const uint ir = gl_WorkGroupID.x % blocks_m;
    -    const uint ik = gl_WorkGroupID.x / blocks_m;
    -    const uint ic = gl_WorkGroupID.y;
    -
    -    const uint warp_i = gl_LocalInvocationID.x / WARP;
    -    const uint warp_r = warp_i % (BM / WM);
    -    const uint warp_c = warp_i / (BM / WM);
    -
    -    const uint WNITER = (WM * WN) / (WARP * TM * TN * WMITER);
    -    const uint WSUBM = WM / WMITER;
    -    const uint WSUBN = WN / WNITER;
    -
    -    const uint tiw = gl_LocalInvocationID.x % WARP;
    -    const uint tiwr = tiw % (WSUBM / TM);
    -    const uint tiwc = tiw / (WSUBM / TM);
    -
    -    const uint loadr_a = gl_LocalInvocationID.x % (BK / LOAD_VEC_A);
    -    const uint loadc_a = gl_LocalInvocationID.x / (BK / LOAD_VEC_A);
    -    const uint loadr_b = gl_LocalInvocationID.x % (BK / LOAD_VEC_B);
    -    const uint loadc_b = gl_LocalInvocationID.x / (BK / LOAD_VEC_B);
    -
    -    const uint loadstride_a = gl_WorkGroupSize.x * LOAD_VEC_A / BK;
    -    const uint loadstride_b = gl_WorkGroupSize.x * LOAD_VEC_B / BK;
    -
    -#ifdef MUL_MAT_ID
    -    uint _ne1 = 0;
    -    for (uint ii1 = 0; ii1 < p.nei1; ii1++) {
    -        for (uint ii0 = 0; ii0 < p.nei0; ii0++) {
    -            if (data_ids[ii1*p.nbi1 + ii0] == expert_idx) {
    -                row_ids[_ne1] = u16vec2(ii0, ii1);
    -                _ne1++;
    -            }
    -        }
    -    }
    -
    -    barrier();
    -
    -    // Workgroup has no work
    -    if (ic * BN >= _ne1) return;
    -#endif
    -
    -#ifdef MUL_MAT_ID
    -    const uint start_k = 0;
    -    const uint end_k = p.K;
    -#else
    -    const uint start_k = ik * p.k_split;
    -    const uint end_k = min(p.K, (ik + 1) * p.k_split);
    -#endif
    -
    -    uint pos_a = (
    -#ifdef MUL_MAT_ID
    -        expert_idx * p.batch_stride_a +
    -#else
    -        batch_idx_a * p.batch_stride_a +
    -#endif
    -        ir * BM * p.stride_a + start_k) / LOAD_VEC_A;
    -#ifdef MUL_MAT_ID
    -    uint pos_b = 0;
    -#else
    -    uint pos_b = (batch_idx * p.batch_stride_b + ic * BN * p.stride_b + start_k) / LOAD_VEC_B;
    -#endif
    -
    -    float sums[WMITER * TM * WNITER * TN];
    -    FLOAT_TYPE cache_a[WMITER * TM];
    -    FLOAT_TYPE cache_b[WNITER * TN];
    -
    -    [[unroll]] for (uint i = 0; i < WMITER*TM*WNITER*TN; i++) {
    -        sums[i] = 0.0f;
    -    }
    -
    -    [[unroll]] for (uint block = start_k; block < end_k; block += BK) {
    -        [[unroll]] for (uint l = 0; l < BM; l += loadstride_a) {"""
    -
    -mulmat_load_scalar = """
    -#if LOAD_VEC_A == 8
    -            const uint idx = pos_a + (loadc_a + l) * p.stride_a / LOAD_VEC_A + loadr_a;
    -            const uint buf_idx = (loadc_a + l) * (BK+1) + loadr_a * LOAD_VEC_A;
    -            buf_a[buf_idx    ] = FLOAT_TYPE(data_a[idx][0].x);
    -            buf_a[buf_idx + 1] = FLOAT_TYPE(data_a[idx][0].y);
    -            buf_a[buf_idx + 2] = FLOAT_TYPE(data_a[idx][0].z);
    -            buf_a[buf_idx + 3] = FLOAT_TYPE(data_a[idx][0].w);
    -            buf_a[buf_idx + 4] = FLOAT_TYPE(data_a[idx][1].x);
    -            buf_a[buf_idx + 5] = FLOAT_TYPE(data_a[idx][1].y);
    -            buf_a[buf_idx + 6] = FLOAT_TYPE(data_a[idx][1].z);
    -            buf_a[buf_idx + 7] = FLOAT_TYPE(data_a[idx][1].w);
    -#elif LOAD_VEC_A == 4
    -            const uint idx = pos_a + (loadc_a + l) * p.stride_a / LOAD_VEC_A + loadr_a;
    -            const uint buf_idx = (loadc_a + l) * (BK+1) + loadr_a * LOAD_VEC_A;
    -            buf_a[buf_idx    ] = FLOAT_TYPE(data_a[idx].x);
    -            buf_a[buf_idx + 1] = FLOAT_TYPE(data_a[idx].y);
    -            buf_a[buf_idx + 2] = FLOAT_TYPE(data_a[idx].z);
    -            buf_a[buf_idx + 3] = FLOAT_TYPE(data_a[idx].w);
    -#else
    -            if (ir * BM + loadc_a + l < p.M && block + loadr_a < end_k) {
    -                buf_a[(loadc_a + l) * (BK+1) + loadr_a] = FLOAT_TYPE(data_a[pos_a + (loadc_a + l) * p.stride_a + loadr_a]);
    -            } else {
    -                buf_a[(loadc_a + l) * (BK+1) + loadr_a] = FLOAT_TYPE(0.0f);
    -            }
    -#endif
    -"""
    -
    -mulmat_load_q4_0 = """
    -            const uint idx = pos_a + (loadc_a + l) * p.stride_a / LOAD_VEC_A + loadr_a;
    -            const uint buf_idx = (loadc_a + l) * (BK+1) + loadr_a;
    -
    -            const uint ib = idx / 16;
    -            const uint iqs = idx & 0xF;
    -
    -            const float d = float(data_a[ib].d);
    -            const uint vui = uint(data_a[ib].qs[iqs]);
    -            const vec2 v = (vec2(vui & 0xF, vui >> 4) - 8.0f) * d;
    -
    -            buf_a[buf_idx     ] = FLOAT_TYPE(v.x);
    -            buf_a[buf_idx + 16] = FLOAT_TYPE(v.y);"""
    -
    -mulmat_load_q4_1 = """
    -            const uint idx = pos_a + (loadc_a + l) * p.stride_a / LOAD_VEC_A + loadr_a;
    -            const uint buf_idx = (loadc_a + l) * (BK+1) + loadr_a;
    -
    -            const uint ib = idx / 16;
    -            const uint iqs = idx & 0xF;
    -
    -            const float d = float(data_a[ib].d);
    -            const float m = float(data_a[ib].m);
    -            const uint vui = uint(data_a[ib].qs[iqs]);
    -            const vec2 v = vec2(vui & 0xF, vui >> 4) * d + m;
    -
    -            buf_a[buf_idx     ] = FLOAT_TYPE(v.x);
    -            buf_a[buf_idx + 16] = FLOAT_TYPE(v.y);"""
    -
    -mulmat_load_q5_0 = """
    -            const uint idx = pos_a + (loadc_a + l) * p.stride_a / LOAD_VEC_A + loadr_a;
    -            const uint buf_idx = (loadc_a + l) * (BK+1) + loadr_a;
    -
    -            const uint ib = idx / 16;
    -            const uint iqs = idx & 0xF;
    -
    -            const float d = float(data_a[ib].d);
    -            const uint uint_qh = uint(data_a[ib].qh[1]) << 16 | data_a[ib].qh[0];
    -            const ivec2 qh = ivec2(((uint_qh >> iqs) << 4) & 0x10, (uint_qh >> (iqs + 12)) & 0x10);
    -            const uint vui = uint(data_a[ib].qs[iqs]);
    -            const vec2 v = (vec2((vui & 0xF) | qh.x, (vui >> 4) | qh.y) - 16.0f) * d;
    -
    -            buf_a[buf_idx     ] = FLOAT_TYPE(v.x);
    -            buf_a[buf_idx + 16] = FLOAT_TYPE(v.y);"""
    -
    -mulmat_load_q5_1 = """
    -            const uint idx = pos_a + (loadc_a + l) * p.stride_a / LOAD_VEC_A + loadr_a;
    -            const uint buf_idx = (loadc_a + l) * (BK+1) + loadr_a;
    -
    -            const uint ib = idx / 16;
    -            const uint iqs = idx & 0xF;
    -
    -            const float d = float(data_a[ib].d);
    -            const float m = float(data_a[ib].m);
    -            const uint uint_qh = data_a[ib].qh;
    -            const ivec2 qh = ivec2(((uint_qh >> iqs) << 4) & 0x10, (uint_qh >> (iqs + 12)) & 0x10);
    -            const uint vui = uint(data_a[ib].qs[iqs]);
    -            const vec2 v = vec2((vui & 0xF) | qh.x, (vui >> 4) | qh.y) * d + m;
    -
    -            buf_a[buf_idx     ] = FLOAT_TYPE(v.x);
    -            buf_a[buf_idx + 16] = FLOAT_TYPE(v.y);"""
    -
    -mulmat_load_q8_0 = """
    -            const uint idx = pos_a + (loadc_a + l) * p.stride_a / LOAD_VEC_A + loadr_a;
    -            const uint buf_idx = (loadc_a + l) * (BK+1) + loadr_a * LOAD_VEC_A;
    -
    -            const uint ib = idx / 16;
    -            const uint iqs = (idx & 0xF) * 2;
    -
    -            const float d = float(data_a[ib].d);
    -            const vec2 v = vec2(int(data_a[ib].qs[iqs]), int(data_a[ib].qs[iqs + 1])) * d;
    -
    -            buf_a[buf_idx    ] = FLOAT_TYPE(v.x);
    -            buf_a[buf_idx + 1] = FLOAT_TYPE(v.y);"""
    -
    -
    -mulmat_load_q2_K = """
    -            const uint idx = pos_a + (loadc_a + l) * p.stride_a / LOAD_VEC_A + loadr_a;
    -            const uint buf_idx = (loadc_a + l) * (BK+1) + loadr_a * LOAD_VEC_A;
    -
    -            const uint ib = idx / 128;                         // 2 values per idx
    -            const uint iqs = idx % 128;                        // 0..127
    -
    -            const uint qsi = (iqs / 64) * 32 + (iqs % 16) * 2; // 0,2,4..30
    -            const uint scalesi = iqs / 8;                      // 0..15
    -            const uint qsshift = ((iqs % 64) / 16) * 2;        // 0,2,4,6
    -
    -            const uvec2 qs = uvec2(data_a[ib].qs[qsi], data_a[ib].qs[qsi + 1]);
    -            const uint scales = data_a[ib].scales[scalesi];
    -            const vec2 d = vec2(data_a[ib].d);
    -
    -            const vec2 v = d.x * float(scales & 0xF) * vec2((qs >> qsshift) & 3) - d.y * float(scales >> 4);
    -
    -            buf_a[buf_idx    ] = FLOAT_TYPE(v.x);
    -            buf_a[buf_idx + 1] = FLOAT_TYPE(v.y);"""
    -
    -mulmat_load_q3_K = """
    -            const uint idx = pos_a + (loadc_a + l) * p.stride_a / LOAD_VEC_A + loadr_a;
    -            const uint buf_idx = (loadc_a + l) * (BK+1) + loadr_a * LOAD_VEC_A;
    -
    -            const uint ib = idx / 128;                   // 2 values per idx
    -            const uint iqs = idx % 128;                  // 0..127
    -
    -            const uint n = iqs / 64;                     // 0,1
    -            const uint qsi = n * 32 + (iqs % 16) * 2;    // 0,2,4..62
    -            const uint hmi =          (iqs % 16) * 2;    // 0,2,4..30
    -            const uint j = (iqs % 64) / 4;               // 0..3
    -            const uint is = iqs / 8;                     // 0..15
    -            const uint halfsplit = ((iqs % 64) / 16);    // 0,1,2,3
    -            const uint qsshift = halfsplit * 2;          // 0,2,4,6
    -            const uint m = 1 << (4 * n + halfsplit);     // 1,2,4,8,16,32,64,128
    -
    -            const int8_t us = int8_t(is <  4 ? (data_a[ib].scales[is-0] & 0xF) | (((data_a[ib].scales[is+8] >> 0) & 3) << 4) :
    -                                    is <  8 ? (data_a[ib].scales[is-0] & 0xF) | (((data_a[ib].scales[is+4] >> 2) & 3) << 4) :
    -                                    is < 12 ? (data_a[ib].scales[is-8] >>  4) | (((data_a[ib].scales[is+0] >> 4) & 3) << 4) :
    -                                            (data_a[ib].scales[is-8] >>  4) | (((data_a[ib].scales[is-4] >> 6) & 3) << 4));
    -            const float dl = float(data_a[ib].d) * float(us - 32);
    -
    -            buf_a[buf_idx    ] = FLOAT_TYPE(dl * float(int8_t((data_a[ib].qs[qsi    ] >> qsshift) & 3) - (((data_a[ib].hmask[hmi    ] & m) != 0) ? 0 : 4)));
    -            buf_a[buf_idx + 1] = FLOAT_TYPE(dl * float(int8_t((data_a[ib].qs[qsi + 1] >> qsshift) & 3) - (((data_a[ib].hmask[hmi + 1] & m) != 0) ? 0 : 4)));"""
    -
    -mulmat_load_q4_K = """
    -            const uint idx = pos_a + (loadc_a + l) * p.stride_a / LOAD_VEC_A + loadr_a;
    -            const uint buf_idx = (loadc_a + l) * (BK+1) + loadr_a * LOAD_VEC_A;
    -
    -            const uint ib = idx / 128;                 // 2 values per idx
    -            const uint iqs = idx % 128;                // 0..127
    -
    -            const uint n = iqs / 32;                   // 0,1,2,3
    -            const uint b = (iqs % 32) / 16;            // 0,1
    -            const uint is = 2 * n + b;                 // 0..7
    -            const uint qsi = n * 32 + (iqs % 16) * 2;  // 0,2,4..126
    -
    -            const vec2 loadd = vec2(data_a[ib].d);
    -
    -            uint8_t sc;
    -            uint8_t mbyte;
    -            if (is < 4) {
    -                sc    = uint8_t(data_a[ib].scales[is    ] & 63);
    -                mbyte = uint8_t(data_a[ib].scales[is + 4] & 63);
    -            } else {
    -                sc    = uint8_t((data_a[ib].scales[is + 4] & 0xF) | ((data_a[ib].scales[is - 4] >> 6) << 4));
    -                mbyte = uint8_t((data_a[ib].scales[is + 4] >>  4) | ((data_a[ib].scales[is    ] >> 6) << 4));
    -            }
    -            const float d = loadd.x * sc;
    -            const float m = loadd.y * mbyte;
    -
    -            buf_a[buf_idx    ] = FLOAT_TYPE(d * float((data_a[ib].qs[qsi    ] >> (b * 4)) & 0xF) - m);
    -            buf_a[buf_idx + 1] = FLOAT_TYPE(d * float((data_a[ib].qs[qsi + 1] >> (b * 4)) & 0xF) - m);"""
    -
    -mulmat_load_q5_K = """
    -            const uint idx = pos_a + (loadc_a + l) * p.stride_a / LOAD_VEC_A + loadr_a;
    -            const uint buf_idx = (loadc_a + l) * (BK+1) + loadr_a * LOAD_VEC_A;
    -
    -            const uint ib = idx / 128;                 // 2 values per idx
    -            const uint iqs = idx % 128;                // 0..127
    -
    -            const uint n = iqs / 32;                   // 0,1,2,3
    -            const uint b = (iqs % 32) / 16;            // 0,1
    -            const uint is = 2 * n + b;                 // 0..7
    -            const uint qsi = n * 32 + (iqs % 16) * 2;  // 0,2,4..126
    -            const uint qhi = (iqs % 16) * 2;           // 0,2,4..30
    -
    -            const uint8_t hm = uint8_t(1 << (iqs / 16));
    -
    -            const vec2 loadd = vec2(data_a[ib].d);
    -
    -            uint8_t sc;
    -            uint8_t mbyte;
    -            if (is < 4) {
    -                sc    = uint8_t(data_a[ib].scales[is    ] & 63);
    -                mbyte = uint8_t(data_a[ib].scales[is + 4] & 63);
    -            } else {
    -                sc    = uint8_t((data_a[ib].scales[is + 4] & 0xF) | ((data_a[ib].scales[is - 4] >> 6) << 4));
    -                mbyte = uint8_t((data_a[ib].scales[is + 4] >>  4) | ((data_a[ib].scales[is    ] >> 6) << 4));
    -            }
    -            const float d = loadd.x * sc;
    -            const float m = loadd.y * mbyte;
    -
    -            buf_a[buf_idx    ] = FLOAT_TYPE(d * (float((data_a[ib].qs[qsi    ] >> (b * 4)) & 0xF) + float((data_a[ib].qh[qhi    ] & hm) != 0 ? 16 : 0)) - m);
    -            buf_a[buf_idx + 1] = FLOAT_TYPE(d * (float((data_a[ib].qs[qsi + 1] >> (b * 4)) & 0xF) + float((data_a[ib].qh[qhi + 1] & hm) != 0 ? 16 : 0)) - m);"""
    -
    -mulmat_load_q6_K = """
    -            const uint idx = pos_a + (loadc_a + l) * p.stride_a / LOAD_VEC_A + loadr_a;
    -            const uint buf_idx = (loadc_a + l) * (BK+1) + loadr_a * LOAD_VEC_A;
    -
    -            const uint ib = idx / 128;                  // 2 values per idx
    -            const uint iqs = idx % 128;                 // 0..127
    -
    -            const uint n = iqs / 64;                    // 0,1
    -            const uint b = (iqs % 64) / 32;             // 0,1
    -            const uint is_b = (iqs % 16) / 8;           // 0,1
    -            const uint qhshift = ((iqs % 64) / 16) * 2; // 0,2,4,6
    -            const uint is = 8 * n + qhshift + is_b;     // 0..15
    -            const uint qsi = n * 64 + (iqs % 32) * 2;   // 0,2,4..126
    -            const uint qhi = n * 32 + (iqs % 16) * 2;   // 0,2,4..62
    -
    -            const float dscale = float(data_a[ib].d) * float(data_a[ib].scales[is]);
    -
    -            buf_a[buf_idx    ] = FLOAT_TYPE(dscale * float(int8_t(((data_a[ib].ql[qsi    ] >> (b * 4)) & 0xF) | (((data_a[ib].qh[qhi    ] >> qhshift) & 3) << 4)) - 32));
    -            buf_a[buf_idx + 1] = FLOAT_TYPE(dscale * float(int8_t(((data_a[ib].ql[qsi + 1] >> (b * 4)) & 0xF) | (((data_a[ib].qh[qhi + 1] >> qhshift) & 3) << 4)) - 32));"""
    -
    -mulmat_body2 = """
    -        }
    -        [[unroll]] for (uint l = 0; l < BN; l += loadstride_b) {
    -#if LOAD_VEC_B == 8
    -#ifdef MUL_MAT_ID
    -            const u16vec2 row_idx = row_ids[ic * BN + loadc_b + l];
    -            const uint idx = pos_b + row_idx.y * p.batch_stride_b / LOAD_VEC_B + (row_idx.x % p.ne11) * p.stride_b / LOAD_VEC_B + loadr_b;
    -#else
    -            const uint idx = pos_b + (loadc_b + l) * p.stride_b / LOAD_VEC_B + loadr_b;
    -#endif
    -            const uint buf_idx = (loadc_b + l) * (BK+1) + loadr_b * LOAD_VEC_B;
    -            buf_b[buf_idx + 0] = FLOAT_TYPE(data_b[idx][0].x);
    -            buf_b[buf_idx + 1] = FLOAT_TYPE(data_b[idx][0].y);
    -            buf_b[buf_idx + 2] = FLOAT_TYPE(data_b[idx][0].z);
    -            buf_b[buf_idx + 3] = FLOAT_TYPE(data_b[idx][0].w);
    -            buf_b[buf_idx + 4] = FLOAT_TYPE(data_b[idx][1].x);
    -            buf_b[buf_idx + 5] = FLOAT_TYPE(data_b[idx][1].y);
    -            buf_b[buf_idx + 6] = FLOAT_TYPE(data_b[idx][1].z);
    -            buf_b[buf_idx + 7] = FLOAT_TYPE(data_b[idx][1].w);
    -#elif LOAD_VEC_B == 4
    -#ifdef MUL_MAT_ID
    -            const u16vec2 row_idx = row_ids[ic * BN + loadc_b + l];
    -            const uint idx = pos_b + row_idx.y * p.batch_stride_b / LOAD_VEC_B + (row_idx.x % p.ne11) * p.stride_b / LOAD_VEC_B + loadr_b;
    -#else
    -            const uint idx = pos_b + (loadc_b + l) * p.stride_b / LOAD_VEC_B + loadr_b;
    -#endif
    -            const uint buf_idx = (loadc_b + l) * (BK+1) + loadr_b * LOAD_VEC_B;
    -            buf_b[buf_idx + 0] = FLOAT_TYPE(data_b[idx].x);
    -            buf_b[buf_idx + 1] = FLOAT_TYPE(data_b[idx].y);
    -            buf_b[buf_idx + 2] = FLOAT_TYPE(data_b[idx].z);
    -            buf_b[buf_idx + 3] = FLOAT_TYPE(data_b[idx].w);
    -#elif !MUL_MAT_ID
    -            if (ic * BN + loadc_b + l < p.N && block + loadr_b < end_k) {
    -                buf_b[(loadc_b + l) * (BK+1) + loadr_b] = FLOAT_TYPE(data_b[pos_b + (loadc_b + l) * p.stride_b + loadr_b]);
    -            } else {
    -                buf_b[(loadc_b + l) * (BK+1) + loadr_b] = FLOAT_TYPE(0.0f);
    -            }
    -#else
    -            const uint row_i = ic * BN + loadc_b + l;
    -            if (row_i < _ne1) {
    -                const u16vec2 row_idx = row_ids[row_i];
    -                buf_b[(loadc_b + l) * (BK+1) + loadr_b] = FLOAT_TYPE(data_b[pos_b + row_idx.y * p.batch_stride_b + (row_idx.x % p.ne11) * p.stride_b + loadr_b]);
    -            } else {
    -                buf_b[(loadc_b + l) * (BK+1) + loadr_b] = FLOAT_TYPE(0.0f);
    -            }
    -#endif
    -        }
    -
    -        barrier();
    -
    -        pos_a += BK / LOAD_VEC_A;
    -        pos_b += BK / LOAD_VEC_B;
    -
    -        for (uint i = 0; i < BK; i++) {
    -            // Load from shared into cache
    -            [[unroll]] for (uint wsir = 0; wsir < WMITER; wsir++) {
    -                [[unroll]] for (uint j = 0; j < TM; j++) {
    -                    cache_a[wsir * TM + j] = buf_a[(warp_r * WM + wsir * WSUBM + tiwr * TM + j) * (BK+1) + i];
    -                }
    -            }
    -            [[unroll]] for (uint wsic = 0; wsic < WNITER; wsic++) {
    -                [[unroll]] for (uint j = 0; j < TN; j++) {
    -                    cache_b[wsic * TN + j] = buf_b[(warp_c * WN + wsic * WSUBN + tiwc * TN + j) * (BK+1) + i];
    -                }
    -            }
    -
    -            [[unroll]] for (uint wsic = 0; wsic < WNITER; wsic++) {
    -                [[unroll]] for (uint wsir = 0; wsir < WMITER; wsir++) {
    -                    [[unroll]] for (uint cc = 0; cc < TN; cc++) {
    -                        [[unroll]] for (uint cr = 0; cr < TM; cr++) {
    -                            sums[(wsic * TN + cc) * (WMITER * TM) + wsir * TM + cr] += float(cache_a[wsir * TM + cr]) * float(cache_b[wsic * TN + cc]);
    -                        }
    -                    }
    -                }
    -            }
    -        }
    -
    -        barrier();
    -    }
    -
    -    const uint dr = ir * BM + warp_r * WM;
    -    const uint dc = ic * BN + warp_c * WN;
    -
    -#ifndef MUL_MAT_ID
    -    const uint offsets = batch_idx * p.batch_stride_d + ik * p.batch_stride_d * gl_NumWorkGroups.z;
    -#endif
    -
    -    [[unroll]] for (uint wsic = 0; wsic < WNITER; wsic++) {
    -        [[unroll]] for (uint wsir = 0; wsir < WMITER; wsir++) {
    -
    -            const uint dr_warp = dr + wsir * WSUBM + tiwr * TM;
    -            const uint dc_warp = dc + wsic * WSUBN + tiwc * TN;
    -            [[unroll]] for (uint cc = 0; cc < TN; cc++) {
    -#ifdef MUL_MAT_ID
    -                const uint row_i = dc_warp + cc;
    -                if (row_i >= _ne1) break;
    -
    -                const u16vec2 row_idx = row_ids[row_i];
    -#endif
    -                [[unroll]] for (uint cr = 0; cr < TM; cr++) {
    -#ifdef MUL_MAT_ID
    -                    data_d[row_idx.y * p.batch_stride_d + row_idx.x * p.stride_d + dr_warp + cr] = D_TYPE(sums[(wsic * TN + cc) * (WMITER * TM) + wsir * TM + cr]);
    -#else
    -                    if (dr_warp + cr < p.M && dc_warp + cc < p.N) {
    -                        data_d[offsets + (dc_warp + cc) * p.stride_d + dr_warp + cr] = D_TYPE(sums[(wsic * TN + cc) * (WMITER * TM) + wsir * TM + cr]);
    -                    }
    -#endif
    -                }
    -            }
    -        }
    -    }
    -}
    -"""
    -
    -mulmat_split_k_reduce_src = """#version 450
    -
    -#extension GL_EXT_control_flow_attributes : enable
    -
    -layout(local_size_x = 256, local_size_y = 1, local_size_z = 1) in;
    -
    -layout (binding = 0) readonly buffer A {float data_a[];};
    -layout (binding = 1) writeonly buffer D {float data_d[];};
    -
    -layout (push_constant) uniform parameter {
    -    uint ne;
    -    uint k_num;
    -} p;
    -
    -void main() {
    -    const uint idx = gl_GlobalInvocationID.x;
    -
    -    if (idx >= p.ne) {
    -        return;
    -    }
    -
    -    float result = 0.0f;
    -
    -    [[unroll]] for (uint i = 0; i < p.k_num; i++) {
    -        result += data_a[i * p.ne + idx];
    -    }
    -
    -    data_d[idx] = result;
    -}
    -"""
    -
    -# DEQUANT SHADER
    -dequant_head = """#version 450
    -
    -#extension GL_EXT_control_flow_attributes : require
    -#extension GL_EXT_shader_16bit_storage : require
    -
    -layout (push_constant) uniform parameter
    -{
    -    uint M;
    -    uint K;
    -    uint stride_a;
    -    uint stride_b;
    -    uint nel;
    -} p;
    -"""
    -
    -dequant_f32_body = """
    -layout(local_size_x = 256, local_size_y = 1, local_size_z = 1) in;
    -
    -layout (binding = 0) readonly buffer A {float data_a[];};
    -layout (binding = 1) writeonly buffer D {D_TYPE data_b[];};
    -
    -void main() {
    -    const uint i = gl_GlobalInvocationID.x * 16;
    -
    -    if (i >= p.nel) {
    -        return;
    -    }
    -
    -    [[unroll]] for (uint l = 0; l < 16; l++) {
    -        data_b[i + l] = D_TYPE(data_a[i + l]);
    -    }
    -}
    -"""
    -
    -dequant_q4_0_body = """
    -layout(local_size_x = 256, local_size_y = 1, local_size_z = 1) in;
    -
    -layout (binding = 0) readonly buffer A {block_q4_0 data_a[];};
    -layout (binding = 1) writeonly buffer D {D_TYPE data_b[];};
    -
    -void main() {
    -    const uint i = gl_WorkGroupID.x * 4 + gl_LocalInvocationID.x / 64;
    -
    -    const uint tid = gl_LocalInvocationID.x % 64;
    -    const uint il  = tid/32;
    -    const uint ir  = tid%32;
    -    const uint ib = 32*i + ir;
    -    if (ib >= p.nel / 32) {
    -        return;
    -    }
    -
    -    const uint b_idx = 1024*i + 32*ir + 8*il;
    -
    -    const float d = float(data_a[ib].d);
    -    const float dm = -8.0f * d;
    -
    -    const uint q_idx = 8*il;
    -
    -    [[unroll]] for (uint l = 0; l < 8; ++l) {
    -        data_b[b_idx + l +  0] = D_TYPE(d * (data_a[ib].qs[q_idx + l] & 0xF) + dm);
    -        data_b[b_idx + l + 16] = D_TYPE(d * (data_a[ib].qs[q_idx + l] >>  4) + dm);
    -    }
    -}
    -"""
    -
    -dequant_q4_1_body = """
    -layout(local_size_x = 256, local_size_y = 1, local_size_z = 1) in;
    -
    -layout (binding = 0) readonly buffer A {block_q4_1 data_a[];};
    -layout (binding = 1) writeonly buffer D {D_TYPE data_b[];};
    -
    -void main() {
    -    const uint i = gl_WorkGroupID.x * 4 + gl_LocalInvocationID.x / 64;
    -
    -    const uint tid = gl_LocalInvocationID.x % 64;
    -    const uint il  = tid/32;
    -    const uint ir  = tid%32;
    -    const uint ib = 32*i + ir;
    -    if (ib >= p.nel / 32) {
    -        return;
    -    }
    -
    -    const uint b_idx = 1024*i + 32*ir + 8*il;
    -
    -    const float d = float(data_a[ib].d);
    -    const float m = float(data_a[ib].m);
    -
    -    const uint q_idx = 8*il;
    -
    -    [[unroll]] for (uint l = 0; l < 8; ++l) {
    -        data_b[b_idx + l +  0] = D_TYPE(d * (data_a[ib].qs[q_idx + l] & 0xF) + m);
    -        data_b[b_idx + l + 16] = D_TYPE(d * (data_a[ib].qs[q_idx + l] >>  4) + m);
    -    }
    -}
    -"""
    -
    -dequant_q5_0_body = """
    -layout(local_size_x = 256, local_size_y = 1, local_size_z = 1) in;
    -
    -layout (binding = 0) readonly buffer A {block_q5_0 data_a[];};
    -layout (binding = 1) writeonly buffer D {D_TYPE data_b[];};
    -
    -void main() {
    -    const uint i = gl_WorkGroupID.x * 4 + gl_LocalInvocationID.x / 64;
    -
    -    const uint tid = gl_LocalInvocationID.x % 64;
    -    const uint il  = tid/32;
    -    const uint ir  = tid%32;
    -    const uint ib = 32*i + ir;
    -    if (ib >= p.nel / 32) {
    -        return;
    -    }
    -
    -    const uint b_idx = 1024*i + 32*ir + 8*il;
    -
    -    const float d = float(data_a[ib].d);
    -    const uint qh = uint(data_a[ib].qh[1]) << 16 | data_a[ib].qh[0];
    -
    -    const uint q_idx = 8*il;
    -
    -    [[unroll]] for (uint l = 0; l < 8; ++l) {
    -        const uint iqs = q_idx + l;
    -        const uint vui = uint(data_a[ib].qs[iqs]);
    -        data_b[b_idx + l +  0] = D_TYPE(d * (((vui & 0xF) | (((qh >> iqs) << 4) & 0x10)) - 16.0f));
    -        data_b[b_idx + l + 16] = D_TYPE(d * (((vui >>  4) | ((qh >> (iqs + 12)) & 0x10)) - 16.0f));
    -    }
    -}
    -"""
    -
    -dequant_q5_1_body = """
    -layout(local_size_x = 256, local_size_y = 1, local_size_z = 1) in;
    -
    -layout (binding = 0) readonly buffer A {block_q5_1 data_a[];};
    -layout (binding = 1) writeonly buffer D {D_TYPE data_b[];};
    -
    -void main() {
    -    const uint i = gl_WorkGroupID.x * 4 + gl_LocalInvocationID.x / 64;
    -
    -    const uint tid = gl_LocalInvocationID.x % 64;
    -    const uint il  = tid/32;
    -    const uint ir  = tid%32;
    -    const uint ib = 32*i + ir;
    -    if (ib >= p.nel / 32) {
    -        return;
    -    }
    -
    -    const uint b_idx = 1024*i + 32*ir + 8*il;
    -
    -    const float d = float(data_a[ib].d);
    -    const float m = float(data_a[ib].m);
    -    const uint qh = data_a[ib].qh;
    -
    -    const uint q_idx = 8*il;
    -
    -    [[unroll]] for (uint l = 0; l < 8; ++l) {
    -        const uint iqs = q_idx + l;
    -        const uint vui = uint(data_a[ib].qs[iqs]);
    -        data_b[b_idx + l +  0] = D_TYPE(d * (((vui & 0xF) | (((qh >> iqs) << 4) & 0x10))) + m);
    -        data_b[b_idx + l + 16] = D_TYPE(d * (((vui >>  4) | ((qh >> (iqs + 12)) & 0x10))) + m);
    -    }
    -}
    -"""
    -
    -dequant_q8_0_body = """
    -layout(local_size_x = 256, local_size_y = 1, local_size_z = 1) in;
    -
    -layout (binding = 0) readonly buffer A {block_q8_0 data_a[];};
    -layout (binding = 1) writeonly buffer D {D_TYPE data_b[];};
    -
    -void main() {
    -    const uint i = gl_WorkGroupID.x * 4 + gl_LocalInvocationID.x / 64;
    -
    -    const uint tid = gl_LocalInvocationID.x % 64;
    -    const uint il  = tid/32;
    -    const uint ir  = tid%32;
    -    const uint ib = 32*i + ir;
    -    if (ib >= p.nel / 32) {
    -        return;
    -    }
    -
    -    const uint b_idx = 1024*i + 32*ir + 16*il;
    -
    -    const float d = float(data_a[ib].d);
    -
    -    const uint q_idx = 16*il;
    -
    -    [[unroll]] for (uint l = 0; l < 16; l += 2) {
    -        data_b[b_idx + l    ] = D_TYPE(d * data_a[ib].qs[q_idx + l    ]);
    -        data_b[b_idx + l + 1] = D_TYPE(d * data_a[ib].qs[q_idx + l + 1]);
    -    }
    -}
    -"""
    -
    -# K-quants
    -dequant_q2_K_body = """
    -layout(local_size_x = 64, local_size_y = 1, local_size_z = 1) in;
    -
    -layout (binding = 0) readonly buffer A {A_TYPE data_a[];};
    -layout (binding = 1) writeonly buffer D {D_TYPE data_b[];};
    -
    -void main() {
    -    [[unroll]] for (uint wgy = 0; wgy < 256; wgy++) {
    -        const uint i = gl_WorkGroupID.x * 256 + wgy;
    -        if (i >= p.M * p.K / QUANT_K) {
    -            return;
    -        }
    -
    -        const uint tid = gl_LocalInvocationID.x;
    -        const uint ip = tid / 32;
    -        const uint il = tid - 32 * ip;
    -        const uint is = 8 * ip + il / 16;
    -
    -        const uint y_idx = i * QUANT_K + 128 * ip + il;
    -
    -        const uint ql_idx = 32 * ip + il;
    -        const uint8_t qs = data_a[i].qs[32 * ip + il];
    -
    -        FLOAT_TYPE dall = FLOAT_TYPE(data_a[i].d.x);
    -        FLOAT_TYPE dmin = FLOAT_TYPE(data_a[i].d.y);
    -        data_b[y_idx +  0] = D_TYPE(dall * FLOAT_TYPE((data_a[i].scales[is+0] & 0xF) * ((qs >> 0) & 3)) - dmin * FLOAT_TYPE(data_a[i].scales[is+0] >> 4));
    -        data_b[y_idx + 32] = D_TYPE(dall * FLOAT_TYPE((data_a[i].scales[is+2] & 0xF) * ((qs >> 2) & 3)) - dmin * FLOAT_TYPE(data_a[i].scales[is+2] >> 4));
    -        data_b[y_idx + 64] = D_TYPE(dall * FLOAT_TYPE((data_a[i].scales[is+4] & 0xF) * ((qs >> 4) & 3)) - dmin * FLOAT_TYPE(data_a[i].scales[is+4] >> 4));
    -        data_b[y_idx + 96] = D_TYPE(dall * FLOAT_TYPE((data_a[i].scales[is+6] & 0xF) * ((qs >> 6) & 3)) - dmin * FLOAT_TYPE(data_a[i].scales[is+6] >> 4));
    -    }
    -}
    -"""
    -dequant_q3_K_body = """
    -layout(local_size_x = 64, local_size_y = 1, local_size_z = 1) in;
    -
    -layout (binding = 0) readonly buffer A {A_TYPE data_a[];};
    -layout (binding = 1) writeonly buffer D {D_TYPE data_b[];};
    -
    -void main() {
    -    [[unroll]] for (uint wgy = 0; wgy < 256; wgy++) {
    -        const uint i = uint(gl_WorkGroupID.x * 256 + wgy);
    -        if (i >= p.M * p.K / QUANT_K) {
    -            return;
    -        }
    -
    -        const uint r = gl_LocalInvocationID.x / 4;
    -        const uint tid = r / 2;
    -        const uint is0 = r % 2;
    -        const uint l0 = 16 * is0 + 4 * (gl_LocalInvocationID.x % 4);
    -        const uint n = tid / 4;
    -        const uint j = tid - 4*n;
    -
    -        const uint8_t m = uint8_t(1 << (4*n + j));
    -        const uint is = 8*n + 2*j + is0;
    -        const uint shift = 2*j;
    -
    -        const int8_t us = int8_t(is <  4 ? (data_a[i].scales[is-0] & 0xF) | (((data_a[i].scales[is+8] >> 0) & 3) << 4) :
    -                                 is <  8 ? (data_a[i].scales[is-0] & 0xF) | (((data_a[i].scales[is+4] >> 2) & 3) << 4) :
    -                                 is < 12 ? (data_a[i].scales[is-8] >>  4) | (((data_a[i].scales[is+0] >> 4) & 3) << 4) :
    -                                           (data_a[i].scales[is-8] >>  4) | (((data_a[i].scales[is-4] >> 6) & 3) << 4));
    -        const FLOAT_TYPE d_all = FLOAT_TYPE(data_a[i].d);
    -        const FLOAT_TYPE dl    = d_all * FLOAT_TYPE(us - 32);
    -
    -        const uint y_idx = i * QUANT_K + 128 * n + 32 * j;
    -        const uint qs_idx = 32*n;
    -
    -        for (uint l = l0; l < l0 + 4; ++l) {
    -            data_b[y_idx + l] = D_TYPE(dl * FLOAT_TYPE(int8_t((data_a[i].qs[qs_idx + l] >> shift) & 3) - (((data_a[i].hmask[l] & m) != 0) ? 0 : 4)));
    -        }
    -    }
    -}
    -"""
    -dequant_q4_K_body = """
    -layout(local_size_x = 32, local_size_y = 1, local_size_z = 1) in;
    -
    -layout (binding = 0) readonly buffer A {A_TYPE data_a[];};
    -layout (binding = 1) writeonly buffer D {D_TYPE data_b[];};
    -
    -void main() {
    -    [[unroll]] for (uint wgy = 0; wgy < 256; wgy++) {
    -        const uint i = gl_WorkGroupID.x * 256 + wgy;
    -        if (i >= p.M * p.K / QUANT_K) {
    -            return;
    -        }
    -
    -        const uint tid = gl_LocalInvocationID.x;
    -        const uint il = tid / 8;
    -        const uint ir = tid % 8;
    -        const uint is = 2 * il;
    -        const uint n = 4;
    -
    -        const FLOAT_TYPE dall = FLOAT_TYPE(data_a[i].d.x);
    -        const FLOAT_TYPE dmin = FLOAT_TYPE(data_a[i].d.y);
    -
    -        const uint y_idx = i * QUANT_K + 64 * il + n * ir;
    -        const uint qs_idx = 32*il + n * ir;
    -
    -        uint8_t sc;
    -        uint8_t m;
    -        if (is < 4) {
    -            sc = uint8_t(data_a[i].scales[is] & 63);
    -            m  = uint8_t(data_a[i].scales[is + 4] & 63);
    -        } else {
    -            sc = uint8_t((data_a[i].scales[is + 4] & 0xF) | ((data_a[i].scales[is - 4] >> 6) << 4));
    -            m  = uint8_t((data_a[i].scales[is + 4] >>  4) | ((data_a[i].scales[is    ] >> 6) << 4));
    -        }
    -        const FLOAT_TYPE d1 = dall * sc;
    -        const FLOAT_TYPE m1 = dmin * m;
    -
    -        if (is < 4) {
    -            sc = uint8_t(data_a[i].scales[is + 1] & 63);
    -            m  = uint8_t(data_a[i].scales[is + 5] & 63);
    -        } else {
    -            sc = uint8_t((data_a[i].scales[is + 5] & 0xF) | ((data_a[i].scales[is - 3] >> 6) << 4));
    -            m  = uint8_t((data_a[i].scales[is + 5] >>  4) | ((data_a[i].scales[is + 1] >> 6) << 4));
    -        }
    -        const FLOAT_TYPE d2 = dall * sc;
    -        const FLOAT_TYPE m2 = dmin * m;
    -
    -        [[unroll]] for (uint l = 0; l < n; ++l) {
    -            data_b[y_idx + l     ] = D_TYPE(d1 * FLOAT_TYPE(data_a[i].qs[qs_idx + l] & 0xF) - m1);
    -            data_b[y_idx + l + 32] = D_TYPE(d2 * FLOAT_TYPE(data_a[i].qs[qs_idx + l] >>  4) - m2);
    -        }
    -    }
    -}
    -"""
    -dequant_q5_K_body = """
    -layout(local_size_x = 64, local_size_y = 1, local_size_z = 1) in;
    -
    -layout (binding = 0) readonly buffer A {A_TYPE data_a[];};
    -layout (binding = 1) writeonly buffer D {D_TYPE data_b[];};
    -
    -void main() {
    -    [[unroll]] for (uint wgy = 0; wgy < 256; wgy++) {
    -        const uint i = gl_WorkGroupID.x * 256 + wgy;
    -        if (i >= p.M * p.K / QUANT_K) {
    -            return;
    -        }
    -
    -        const uint tid = gl_LocalInvocationID.x;
    -        const uint il = tid / 16;
    -        const uint ir = tid % 16;
    -        const uint is = 2 * il;
    -
    -        const FLOAT_TYPE dall = FLOAT_TYPE(data_a[i].d.x);
    -        const FLOAT_TYPE dmin = FLOAT_TYPE(data_a[i].d.y);
    -
    -        const uint y_idx = i * QUANT_K + 64 * il + 2 * ir;
    -        const uint qs_idx = 32*il + 2 * ir;
    -        const uint qh_idx = 2 * ir;
    -
    -        uint8_t sc;
    -        uint8_t m;
    -        if (is < 4) {
    -            sc = uint8_t(data_a[i].scales[is] & 63);
    -            m  = uint8_t(data_a[i].scales[is + 4] & 63);
    -        } else {
    -            sc = uint8_t((data_a[i].scales[is + 4] & 0xF) | ((data_a[i].scales[is - 4] >> 6) << 4));
    -            m  = uint8_t((data_a[i].scales[is + 4] >>  4) | ((data_a[i].scales[is    ] >> 6) << 4));
    -        }
    -        const FLOAT_TYPE d1 = dall * sc;
    -        const FLOAT_TYPE m1 = dmin * m;
    -
    -        if (is < 4) {
    -            sc = uint8_t(data_a[i].scales[is + 1] & 63);
    -            m  = uint8_t(data_a[i].scales[is + 5] & 63);
    -        } else {
    -            sc = uint8_t((data_a[i].scales[is + 5] & 0xF) | ((data_a[i].scales[is - 3] >> 6) << 4));
    -            m  = uint8_t((data_a[i].scales[is + 5] >>  4) | ((data_a[i].scales[is + 1] >> 6) << 4));
    -        }
    -        const FLOAT_TYPE d2 = dall * sc;
    -        const FLOAT_TYPE m2 = dmin * m;
    -
    -        const uint8_t hm1 = uint8_t(1 << (2 * il    ));
    -        const uint8_t hm2 = uint8_t(1 << (2 * il + 1));
    -        data_b[y_idx     ] = D_TYPE(d1 * FLOAT_TYPE((data_a[i].qs[qs_idx    ] & 0xF) + (((data_a[i].qh[qh_idx    ] & hm1) != 0) ? 16 : 0)) - m1);
    -        data_b[y_idx +  1] = D_TYPE(d1 * FLOAT_TYPE((data_a[i].qs[qs_idx + 1] & 0xF) + (((data_a[i].qh[qh_idx + 1] & hm1) != 0) ? 16 : 0)) - m1);
    -        data_b[y_idx + 32] = D_TYPE(d2 * FLOAT_TYPE((data_a[i].qs[qs_idx    ]  >> 4) + (((data_a[i].qh[qh_idx    ] & hm2) != 0) ? 16 : 0)) - m2);
    -        data_b[y_idx + 33] = D_TYPE(d2 * FLOAT_TYPE((data_a[i].qs[qs_idx + 1]  >> 4) + (((data_a[i].qh[qh_idx + 1] & hm2) != 0) ? 16 : 0)) - m2);
    -    }
    -}
    -"""
    -dequant_q6_K_body = """
    -layout(local_size_x = 64, local_size_y = 1, local_size_z = 1) in;
    -
    -layout (binding = 0) readonly buffer A {A_TYPE data_a[];};
    -layout (binding = 1) writeonly buffer D {D_TYPE data_b[];};
    -
    -void main() {
    -    [[unroll]] for (uint wgy = 0; wgy < 256; wgy++) {
    -        const uint i = gl_WorkGroupID.x * 256 + wgy;
    -        if (i >= p.M * p.K / QUANT_K) {
    -            return;
    -        }
    -        const uint tid = gl_LocalInvocationID.x;
    -        const uint ip = tid / 32;
    -        const uint il = tid - 32 * ip;
    -        const uint is = 8 * ip + il / 16;
    -
    -        const uint y_idx = i * QUANT_K + 128 * ip + il;
    -
    -        const uint ql_idx = 64 * ip + il;
    -        const uint8_t qh = data_a[i].qh[32 * ip + il];
    -
    -        const FLOAT_TYPE d = FLOAT_TYPE(data_a[i].d);
    -
    -        data_b[y_idx +  0] = D_TYPE(d * FLOAT_TYPE(data_a[i].scales[is + 0] * (int8_t((data_a[i].ql[ql_idx +  0] & 0xF) | (((qh >> 0) & 3) << 4)) - 32)));
    -        data_b[y_idx + 32] = D_TYPE(d * FLOAT_TYPE(data_a[i].scales[is + 2] * (int8_t((data_a[i].ql[ql_idx + 32] & 0xF) | (((qh >> 2) & 3) << 4)) - 32)));
    -        data_b[y_idx + 64] = D_TYPE(d * FLOAT_TYPE(data_a[i].scales[is + 4] * (int8_t((data_a[i].ql[ql_idx +  0] >>  4) | (((qh >> 4) & 3) << 4)) - 32)));
    -        data_b[y_idx + 96] = D_TYPE(d * FLOAT_TYPE(data_a[i].scales[is + 6] * (int8_t((data_a[i].ql[ql_idx + 32] >>  4) | (((qh >> 6) & 3) << 4)) - 32)));
    -    }
    -}
    -"""
    -
    -# Mul Mat Vec
    -mul_mat_vec_head = """#version 450
    -
    -#extension GL_EXT_control_flow_attributes : enable
    -#extension GL_EXT_shader_16bit_storage : require
    -#extension GL_EXT_shader_8bit_storage : require
    -
    -#ifdef MUL_MAT_ID
    -#define EXPERT_COUNT 8
    -#endif
    -"""
    -
    -
    -mul_mat_vec_layout = """
    -layout (binding = 0) readonly buffer A {A_TYPE data_a[];};
    -layout (binding = 1) readonly buffer B {B_TYPE data_b[];};
    -layout (binding = 2) writeonly buffer D {D_TYPE data_d[];};
    -#ifdef MUL_MAT_ID
    -layout (binding = 3) readonly buffer IDS {int data_ids[];};
    -#endif
    -
    -layout (push_constant) uniform parameter
    -{
    -    uint ncols;
    -    uint stride_a;
    -    uint stride_b;
    -    uint stride_d;
    -
    -    uint batch_stride_a;
    -    uint batch_stride_b;
    -    uint batch_stride_d;
    -
    -#ifdef MUL_MAT_ID
    -    uint nei0;
    -    uint ne11;
    -#else
    -    uint ne02;
    -    uint ne12;
    -    uint broadcast2;
    -    uint broadcast3;
    -#endif
    -} p;
    -
    -void get_offsets(out uint a_offset, out uint b_offset, out uint d_offset) {
    -#ifdef MUL_MAT_ID
    -    const uint expert_idx = gl_GlobalInvocationID.y;
    -#else
    -    const uint batch_idx = gl_GlobalInvocationID.y;
    -#endif
    -
    -#ifndef MUL_MAT_ID
    -    const uint i13 = batch_idx / p.ne12;
    -    const uint i12 = batch_idx % p.ne12;
    -
    -    const uint i03 = i13 / p.broadcast3;
    -    const uint i02 = i12 / p.broadcast2;
    -
    -    const uint batch_idx_a = i03 * p.ne02 + i02;
    -#else
    -    const uint expert_id = data_ids[expert_idx];
    -#endif
    -
    -    a_offset =
    -#ifdef MUL_MAT_ID
    -            expert_id * p.batch_stride_a;
    -#else
    -            batch_idx_a * p.batch_stride_a;
    -#endif
    -    b_offset =
    -#ifdef MUL_MAT_ID
    -            (expert_idx % p.ne11) * p.stride_b;
    -#else
    -            batch_idx * p.batch_stride_b;
    -#endif
    -    d_offset =
    -#ifdef MUL_MAT_ID
    -            expert_idx * p.stride_d;
    -#else
    -            batch_idx * p.batch_stride_d;
    -#endif
    -}
    -"""
    -
    -mul_mat_vec_body = """
    -layout(local_size_x_id = 0, local_size_y = 1, local_size_z = 1) in;
    -
    -layout (constant_id = 0) const uint BLOCK_SIZE = 32;
    -
    -shared FLOAT_TYPE tmp[BLOCK_SIZE];
    -
    -void main() {
    -    const uint row = gl_WorkGroupID.x;
    -    const uint tid = gl_LocalInvocationID.x;
    -
    -    uint a_offset, b_offset, d_offset;
    -    get_offsets(a_offset, b_offset, d_offset);
    -
    -    const uint y_offset = QUANT_R == 1 ? 1 : QUANT_K/2;
    -
    -    tmp[tid] = FLOAT_TYPE(0.0f);
    -
    -    [[unroll]] for (uint i = 0; i < p.ncols/BLOCK_SIZE; i += 2) {
    -        const uint col = i*BLOCK_SIZE + 2*tid;
    -        const uint ib = (row*p.ncols + col)/QUANT_K; // block index
    -        const uint iqs = (col%QUANT_K)/QUANT_R; // quant index
    -        const uint iybs = col - col%QUANT_K; // y block start index
    -
    -        vec2 v = dequantize(ib, iqs, a_offset / QUANT_K);
    -
    -        // matrix multiplication
    -        tmp[tid] += FLOAT_TYPE(v.x) * FLOAT_TYPE(data_b[b_offset + iybs + iqs]) +
    -                    FLOAT_TYPE(v.y) * FLOAT_TYPE(data_b[b_offset + iybs + iqs + y_offset]);
    -    }
    -
    -    // sum up partial sums and write back result
    -    barrier();
    -    [[unroll]] for (uint s = BLOCK_SIZE/2; s > 0; s >>= 1) {
    -        if (tid < s) {
    -            tmp[tid] += tmp[tid + s];
    -        }
    -        barrier();
    -    }
    -    if (tid == 0) {
    -        data_d[d_offset + row] = D_TYPE(tmp[0]);
    -    }
    -}
    -"""
    -
    -# K-quants
    -mul_mat_vec_q2_K_body = """
    -layout(local_size_x = 32, local_size_y = 1, local_size_z = 1) in;
    -
    -shared FLOAT_TYPE tmp[32];
    -
    -void main() {
    -    const uint row = gl_WorkGroupID.x;
    -
    -    uint a_offset, b_offset, d_offset;
    -    get_offsets(a_offset, b_offset, d_offset);
    -
    -    const uint num_blocks_per_row = p.ncols / QUANT_K;
    -    const uint ib0 = a_offset / QUANT_K + row*num_blocks_per_row;
    -
    -    const uint tid = gl_LocalInvocationID.x/K_QUANTS_PER_ITERATION;  // 0...31 or 0...16
    -    const uint ix  = gl_LocalInvocationID.x%K_QUANTS_PER_ITERATION;  // 0 or 0, 1
    -
    -    const uint step = 16/K_QUANTS_PER_ITERATION;            // 16 or 8
    -
    -    const uint v_im = tid/step;                             // 0 or 1. 0 computes 0..., 1 computes 128...
    -    const uint v_in = tid - step*v_im;                      // 0...15 or 0...7
    -
    -    const uint l0 = K_QUANTS_PER_ITERATION*v_in;            // 0...15
    -    const uint q_offset = 32*v_im + l0;
    -    const uint s_offset = 8*v_im;
    -    const uint y_offset = 128*v_im + l0;
    -
    -    tmp[16 * ix + tid] = FLOAT_TYPE(0.0); // partial sum for thread in warp
    -
    -    [[unroll]] for (uint i = ix; i < num_blocks_per_row; i += K_QUANTS_PER_ITERATION) {
    -        const uint y_idx = i * QUANT_K + y_offset;
    -
    -        const FLOAT_TYPE dall = FLOAT_TYPE(data_a[ib0 + i].d.x);
    -        const FLOAT_TYPE dmin = FLOAT_TYPE(data_a[ib0 + i].d.y);
    -
    -        FLOAT_TYPE sum1 = FLOAT_TYPE(0.0);
    -        FLOAT_TYPE sum2 = FLOAT_TYPE(0.0);
    -        for (int l = 0; l < K_QUANTS_PER_ITERATION; ++l) {
    -            sum1 += FLOAT_TYPE(data_b[b_offset + y_idx + l +  0]) * FLOAT_TYPE(data_a[ib0 + i].scales[s_offset + 0] & 0xF) * FLOAT_TYPE((data_a[ib0 + i].qs[q_offset + l + 0] >> 0) & 3)
    -                  + FLOAT_TYPE(data_b[b_offset + y_idx + l + 16]) * FLOAT_TYPE(data_a[ib0 + i].scales[s_offset + 1] & 0xF) * FLOAT_TYPE((data_a[ib0 + i].qs[q_offset + l +16] >> 0) & 3)
    -                  + FLOAT_TYPE(data_b[b_offset + y_idx + l + 32]) * FLOAT_TYPE(data_a[ib0 + i].scales[s_offset + 2] & 0xF) * FLOAT_TYPE((data_a[ib0 + i].qs[q_offset + l + 0] >> 2) & 3)
    -                  + FLOAT_TYPE(data_b[b_offset + y_idx + l + 48]) * FLOAT_TYPE(data_a[ib0 + i].scales[s_offset + 3] & 0xF) * FLOAT_TYPE((data_a[ib0 + i].qs[q_offset + l +16] >> 2) & 3)
    -                  + FLOAT_TYPE(data_b[b_offset + y_idx + l + 64]) * FLOAT_TYPE(data_a[ib0 + i].scales[s_offset + 4] & 0xF) * FLOAT_TYPE((data_a[ib0 + i].qs[q_offset + l + 0] >> 4) & 3)
    -                  + FLOAT_TYPE(data_b[b_offset + y_idx + l + 80]) * FLOAT_TYPE(data_a[ib0 + i].scales[s_offset + 5] & 0xF) * FLOAT_TYPE((data_a[ib0 + i].qs[q_offset + l +16] >> 4) & 3)
    -                  + FLOAT_TYPE(data_b[b_offset + y_idx + l + 96]) * FLOAT_TYPE(data_a[ib0 + i].scales[s_offset + 6] & 0xF) * FLOAT_TYPE((data_a[ib0 + i].qs[q_offset + l + 0] >> 6) & 3)
    -                  + FLOAT_TYPE(data_b[b_offset + y_idx + l +112]) * FLOAT_TYPE(data_a[ib0 + i].scales[s_offset + 7] & 0xF) * FLOAT_TYPE((data_a[ib0 + i].qs[q_offset + l +16] >> 6) & 3);
    -            sum2 += FLOAT_TYPE(data_b[b_offset + y_idx + l +  0]) * FLOAT_TYPE((data_a[ib0 + i].scales[s_offset + 0] >> 4) & 0xF)
    -                  + FLOAT_TYPE(data_b[b_offset + y_idx + l + 16]) * FLOAT_TYPE((data_a[ib0 + i].scales[s_offset + 1] >> 4) & 0xF)
    -                  + FLOAT_TYPE(data_b[b_offset + y_idx + l + 32]) * FLOAT_TYPE((data_a[ib0 + i].scales[s_offset + 2] >> 4) & 0xF)
    -                  + FLOAT_TYPE(data_b[b_offset + y_idx + l + 48]) * FLOAT_TYPE((data_a[ib0 + i].scales[s_offset + 3] >> 4) & 0xF)
    -                  + FLOAT_TYPE(data_b[b_offset + y_idx + l + 64]) * FLOAT_TYPE((data_a[ib0 + i].scales[s_offset + 4] >> 4) & 0xF)
    -                  + FLOAT_TYPE(data_b[b_offset + y_idx + l + 80]) * FLOAT_TYPE((data_a[ib0 + i].scales[s_offset + 5] >> 4) & 0xF)
    -                  + FLOAT_TYPE(data_b[b_offset + y_idx + l + 96]) * FLOAT_TYPE((data_a[ib0 + i].scales[s_offset + 6] >> 4) & 0xF)
    -                  + FLOAT_TYPE(data_b[b_offset + y_idx + l +112]) * FLOAT_TYPE((data_a[ib0 + i].scales[s_offset + 7] >> 4) & 0xF);
    -        }
    -        tmp[16 * ix + tid] += dall * sum1 - dmin * sum2;
    -    }
    -
    -    // sum up partial sums and write back result
    -    barrier();
    -    [[unroll]] for (uint s = 16; s > 0; s >>= 1) {
    -        if (tid < s) {
    -            tmp[tid] += tmp[tid + s];
    -        }
    -        barrier();
    -    }
    -    if (tid == 0) {
    -        data_d[d_offset + row] = D_TYPE(tmp[0]);
    -    }
    -}
    -"""
    -mul_mat_vec_q3_K_body = """
    -layout(local_size_x = 32, local_size_y = 1, local_size_z = 1) in;
    -
    -shared FLOAT_TYPE tmp[32];
    -
    -void main() {
    -    const uint row = gl_WorkGroupID.x;
    -
    -    uint a_offset, b_offset, d_offset;
    -    get_offsets(a_offset, b_offset, d_offset);
    -
    -    const uint num_blocks_per_row = p.ncols / QUANT_K;
    -    const uint ib0 = a_offset / QUANT_K + row*num_blocks_per_row;
    -
    -    const uint tid = gl_LocalInvocationID.x/K_QUANTS_PER_ITERATION;  // 0...31 or 0...16
    -    const uint ix  = gl_LocalInvocationID.x%K_QUANTS_PER_ITERATION;  // 0 or 0, 1
    -
    -    const uint step = 16/K_QUANTS_PER_ITERATION;            // 16 or 8
    -
    -    const uint v_im = tid/step;                             // 0 or 1. 0 computes 0..., 1 computes 128...
    -    const uint v_in = tid - step*v_im;                      // 0...15 or 0...7
    -
    -    const uint8_t m = uint8_t(1 << (4 * v_im));
    -
    -    const uint l0 = K_QUANTS_PER_ITERATION*v_in;            // 0...15
    -    const uint q_offset = 32*v_im + l0;
    -    const uint y_offset = 128*v_im + l0;
    -
    -    tmp[16 * ix + tid] = FLOAT_TYPE(0.0); // partial sum for thread in warp
    -
    -    const uint s_shift = 4 * v_im;
    -
    -    [[unroll]] for (uint i = ix; i < num_blocks_per_row; i += K_QUANTS_PER_ITERATION) {
    -        const uint y_idx = i * QUANT_K + y_offset;
    -
    -        const FLOAT_TYPE d = FLOAT_TYPE(data_a[ib0 + i].d);
    -
    -        FLOAT_TYPE sum = FLOAT_TYPE(0.0);
    -        for (int l = 0; l < K_QUANTS_PER_ITERATION; ++l) {
    -            sum += FLOAT_TYPE(data_b[b_offset + y_idx + l +  0]) * FLOAT_TYPE(int8_t(((data_a[ib0 + i].scales[0] >> s_shift) & 0xF) | ((data_a[ib0 + i].scales[ 8] >> (s_shift + 0) & 0x3) << 4)) - 32) * FLOAT_TYPE(((data_a[ib0 + i].qs[q_offset + l   ]     ) & 3) - (((data_a[ib0 + i].hmask[l0 + l   ] & (m << 0)) != 0) ? 0 : 4))
    -                 + FLOAT_TYPE(data_b[b_offset + y_idx + l + 32]) * FLOAT_TYPE(int8_t(((data_a[ib0 + i].scales[2] >> s_shift) & 0xF) | ((data_a[ib0 + i].scales[10] >> (s_shift + 0) & 0x3) << 4)) - 32) * FLOAT_TYPE(((data_a[ib0 + i].qs[q_offset + l   ] >> 2) & 3) - (((data_a[ib0 + i].hmask[l0 + l   ] & (m << 1)) != 0) ? 0 : 4))
    -                 + FLOAT_TYPE(data_b[b_offset + y_idx + l + 64]) * FLOAT_TYPE(int8_t(((data_a[ib0 + i].scales[4] >> s_shift) & 0xF) | ((data_a[ib0 + i].scales[ 8] >> (s_shift + 2) & 0x3) << 4)) - 32) * FLOAT_TYPE(((data_a[ib0 + i].qs[q_offset + l   ] >> 4) & 3) - (((data_a[ib0 + i].hmask[l0 + l   ] & (m << 2)) != 0) ? 0 : 4))
    -                 + FLOAT_TYPE(data_b[b_offset + y_idx + l + 96]) * FLOAT_TYPE(int8_t(((data_a[ib0 + i].scales[6] >> s_shift) & 0xF) | ((data_a[ib0 + i].scales[10] >> (s_shift + 2) & 0x3) << 4)) - 32) * FLOAT_TYPE(((data_a[ib0 + i].qs[q_offset + l   ] >> 6) & 3) - (((data_a[ib0 + i].hmask[l0 + l   ] & (m << 3)) != 0) ? 0 : 4))
    -                 + FLOAT_TYPE(data_b[b_offset + y_idx + l + 16]) * FLOAT_TYPE(int8_t(((data_a[ib0 + i].scales[1] >> s_shift) & 0xF) | ((data_a[ib0 + i].scales[ 9] >> (s_shift + 0) & 0x3) << 4)) - 32) * FLOAT_TYPE(((data_a[ib0 + i].qs[q_offset + l+16]     ) & 3) - (((data_a[ib0 + i].hmask[l0 + l+16] & (m << 0)) != 0) ? 0 : 4))
    -                 + FLOAT_TYPE(data_b[b_offset + y_idx + l + 48]) * FLOAT_TYPE(int8_t(((data_a[ib0 + i].scales[3] >> s_shift) & 0xF) | ((data_a[ib0 + i].scales[11] >> (s_shift + 0) & 0x3) << 4)) - 32) * FLOAT_TYPE(((data_a[ib0 + i].qs[q_offset + l+16] >> 2) & 3) - (((data_a[ib0 + i].hmask[l0 + l+16] & (m << 1)) != 0) ? 0 : 4))
    -                 + FLOAT_TYPE(data_b[b_offset + y_idx + l + 80]) * FLOAT_TYPE(int8_t(((data_a[ib0 + i].scales[5] >> s_shift) & 0xF) | ((data_a[ib0 + i].scales[ 9] >> (s_shift + 2) & 0x3) << 4)) - 32) * FLOAT_TYPE(((data_a[ib0 + i].qs[q_offset + l+16] >> 4) & 3) - (((data_a[ib0 + i].hmask[l0 + l+16] & (m << 2)) != 0) ? 0 : 4))
    -                 + FLOAT_TYPE(data_b[b_offset + y_idx + l +112]) * FLOAT_TYPE(int8_t(((data_a[ib0 + i].scales[7] >> s_shift) & 0xF) | ((data_a[ib0 + i].scales[11] >> (s_shift + 2) & 0x3) << 4)) - 32) * FLOAT_TYPE(((data_a[ib0 + i].qs[q_offset + l+16] >> 6) & 3) - (((data_a[ib0 + i].hmask[l0 + l+16] & (m << 3)) != 0) ? 0 : 4));
    -        }
    -        tmp[16 * ix + tid] += d * sum;
    -    }
    -
    -    // sum up partial sums and write back result
    -    barrier();
    -    [[unroll]] for (uint s = 16; s > 0; s >>= 1) {
    -        if (tid < s) {
    -            tmp[tid] += tmp[tid + s];
    -        }
    -        barrier();
    -    }
    -    if (tid == 0) {
    -        data_d[d_offset + row] = D_TYPE(tmp[0]);
    -    }
    -}
    -"""
    -mul_mat_vec_q4_K_body = """
    -layout(local_size_x = 32, local_size_y = 1, local_size_z = 1) in;
    -
    -shared FLOAT_TYPE tmp[32];
    -
    -void main() {
    -    const uint row = gl_WorkGroupID.x;
    -
    -    uint a_offset, b_offset, d_offset;
    -    get_offsets(a_offset, b_offset, d_offset);
    -
    -    const uint num_blocks_per_row = p.ncols / QUANT_K;
    -    const uint ib0 = a_offset / QUANT_K + row*num_blocks_per_row;
    -
    -    const uint tid = gl_LocalInvocationID.x/K_QUANTS_PER_ITERATION;  // 0...31 or 0...16
    -    const uint ix  = gl_LocalInvocationID.x%K_QUANTS_PER_ITERATION;  // 0 or 0, 1
    -
    -    const uint step = 8/K_QUANTS_PER_ITERATION;             // 8 or 4
    -
    -    const uint il = tid/step;                               // 0...3
    -    const uint ir = tid - step*il;                          // 0...7 or 0...3
    -    const uint n =  2 * K_QUANTS_PER_ITERATION;             // 2 or 4
    -
    -    const uint v_im = il / 2;  // 0 or 1. 0 computes 0,32 + 128,160, 1 computes 64,96 + 192,224
    -    const uint v_in = il % 2;
    -
    -    const uint l0 = n * (2 * ir + v_in);            // 0...15
    -    const uint q_offset = 32*v_im + l0;
    -    const uint y_offset = 64*v_im + l0;
    -
    -    tmp[16 * ix + tid] = FLOAT_TYPE(0.0); // partial sum for thread in warp
    -
    -    [[unroll]] for (uint i = ix; i < num_blocks_per_row; i += K_QUANTS_PER_ITERATION) {
    -        const uint y1_idx = i * QUANT_K + y_offset;
    -        const uint y2_idx = y1_idx + 128;
    -
    -        const FLOAT_TYPE dall = FLOAT_TYPE(data_a[ib0 + i].d.x);
    -        const FLOAT_TYPE dmin = FLOAT_TYPE(data_a[ib0 + i].d.y);
    -
    -        const uint8_t sc0 = uint8_t(  data_a[ib0 + i].scales[v_im * 2    ]       & 0x3f);
    -        const uint8_t sc1 = uint8_t(  data_a[ib0 + i].scales[v_im * 2 + 1]       & 0x3f);
    -        const uint8_t sc2 = uint8_t(  data_a[ib0 + i].scales[v_im * 2 + 4]       & 0x3f);
    -        const uint8_t sc3 = uint8_t(  data_a[ib0 + i].scales[v_im * 2 + 5]       & 0x3f);
    -        const uint8_t sc4 = uint8_t(( data_a[ib0 + i].scales[v_im * 2 + 8]       & 0x0f) | ((data_a[ib0 + i].scales[v_im * 2    ] & 0xc0) >> 2));
    -        const uint8_t sc5 = uint8_t(( data_a[ib0 + i].scales[v_im * 2 + 9]       & 0x0f) | ((data_a[ib0 + i].scales[v_im * 2 + 1] & 0xc0) >> 2));
    -        const uint8_t sc6 = uint8_t(((data_a[ib0 + i].scales[v_im * 2 + 8] >> 4) & 0x0f) | ((data_a[ib0 + i].scales[v_im * 2 + 4] & 0xc0) >> 2));
    -        const uint8_t sc7 = uint8_t(((data_a[ib0 + i].scales[v_im * 2 + 9] >> 4) & 0x0f) | ((data_a[ib0 + i].scales[v_im * 2 + 5] & 0xc0) >> 2));
    -
    -#if K_QUANTS_PER_ITERATION == 2
    -        const uint8_t q4_0  = uint8_t(data_a[ib0 + i].qs[q_offset     ] & 0xf);
    -        const uint8_t q4_1  = uint8_t(data_a[ib0 + i].qs[q_offset +  1] & 0xf);
    -        const uint8_t q4_2  = uint8_t(data_a[ib0 + i].qs[q_offset +  2] & 0xf);
    -        const uint8_t q4_3  = uint8_t(data_a[ib0 + i].qs[q_offset +  3] & 0xf);
    -        const uint8_t q4_4  = uint8_t(data_a[ib0 + i].qs[q_offset     ]  >> 4);
    -        const uint8_t q4_5  = uint8_t(data_a[ib0 + i].qs[q_offset +  1]  >> 4);
    -        const uint8_t q4_6  = uint8_t(data_a[ib0 + i].qs[q_offset +  2]  >> 4);
    -        const uint8_t q4_7  = uint8_t(data_a[ib0 + i].qs[q_offset +  3]  >> 4);
    -        const uint8_t q4_8  = uint8_t(data_a[ib0 + i].qs[q_offset + 64] & 0xf);
    -        const uint8_t q4_9  = uint8_t(data_a[ib0 + i].qs[q_offset + 65] & 0xf);
    -        const uint8_t q4_10 = uint8_t(data_a[ib0 + i].qs[q_offset + 66] & 0xf);
    -        const uint8_t q4_11 = uint8_t(data_a[ib0 + i].qs[q_offset + 67] & 0xf);
    -        const uint8_t q4_12 = uint8_t(data_a[ib0 + i].qs[q_offset + 64]  >> 4);
    -        const uint8_t q4_13 = uint8_t(data_a[ib0 + i].qs[q_offset + 65]  >> 4);
    -        const uint8_t q4_14 = uint8_t(data_a[ib0 + i].qs[q_offset + 66]  >> 4);
    -        const uint8_t q4_15 = uint8_t(data_a[ib0 + i].qs[q_offset + 67]  >> 4);
    -
    -        const FLOAT_TYPE sx = FLOAT_TYPE(FLOAT_TYPE(data_b[b_offset + y1_idx]) * q4_0 + FLOAT_TYPE(data_b[b_offset + y1_idx + 1]) * q4_1 + FLOAT_TYPE(data_b[b_offset + y1_idx + 2]) * q4_2 + FLOAT_TYPE(data_b[b_offset + y1_idx + 3]) * q4_3);
    -        const FLOAT_TYPE sy = FLOAT_TYPE(FLOAT_TYPE(data_b[b_offset + y1_idx + 32]) * q4_4 + FLOAT_TYPE(data_b[b_offset + y1_idx + 33]) * q4_5 + FLOAT_TYPE(data_b[b_offset + y1_idx + 34]) * q4_6 + FLOAT_TYPE(data_b[b_offset + y1_idx + 35]) * q4_7);
    -        const FLOAT_TYPE sz = FLOAT_TYPE(FLOAT_TYPE(data_b[b_offset + y2_idx]) * q4_8 + FLOAT_TYPE(data_b[b_offset + y2_idx + 1]) * q4_9 + FLOAT_TYPE(data_b[b_offset + y2_idx + 2]) * q4_10 + FLOAT_TYPE(data_b[b_offset + y2_idx + 3]) * q4_11);
    -        const FLOAT_TYPE sw = FLOAT_TYPE(FLOAT_TYPE(data_b[b_offset + y2_idx + 32]) * q4_12 + FLOAT_TYPE(data_b[b_offset + y2_idx + 33]) * q4_13 + FLOAT_TYPE(data_b[b_offset + y2_idx + 34]) * q4_14 + FLOAT_TYPE(data_b[b_offset + y2_idx + 35]) * q4_15);
    -        const FLOAT_TYPE smin = FLOAT_TYPE(
    -            FLOAT_TYPE(data_b[b_offset + y1_idx    ]) * sc2 + FLOAT_TYPE(data_b[b_offset + y1_idx + 32]) * sc3 + FLOAT_TYPE(data_b[b_offset + y2_idx    ]) * sc6 + FLOAT_TYPE(data_b[b_offset + y2_idx + 32]) * sc7
    -          + FLOAT_TYPE(data_b[b_offset + y1_idx + 1]) * sc2 + FLOAT_TYPE(data_b[b_offset + y1_idx + 33]) * sc3 + FLOAT_TYPE(data_b[b_offset + y2_idx + 1]) * sc6 + FLOAT_TYPE(data_b[b_offset + y2_idx + 33]) * sc7
    -          + FLOAT_TYPE(data_b[b_offset + y1_idx + 2]) * sc2 + FLOAT_TYPE(data_b[b_offset + y1_idx + 34]) * sc3 + FLOAT_TYPE(data_b[b_offset + y2_idx + 2]) * sc6 + FLOAT_TYPE(data_b[b_offset + y2_idx + 34]) * sc7
    -          + FLOAT_TYPE(data_b[b_offset + y1_idx + 3]) * sc2 + FLOAT_TYPE(data_b[b_offset + y1_idx + 35]) * sc3 + FLOAT_TYPE(data_b[b_offset + y2_idx + 3]) * sc6 + FLOAT_TYPE(data_b[b_offset + y2_idx + 35]) * sc7
    -        );
    -        tmp[16 * ix + tid] += FLOAT_TYPE(dall * (sx * sc0 + sy * sc1 + sz * sc4 + sw * sc5) - dmin * smin);
    -#else
    -        const uint8_t q4_0 = uint8_t(data_a[ib0 + i].qs[q_offset     ] & 0xf);
    -        const uint8_t q4_1 = uint8_t(data_a[ib0 + i].qs[q_offset +  1] & 0xf);
    -        const uint8_t q4_2 = uint8_t(data_a[ib0 + i].qs[q_offset     ]  >> 4);
    -        const uint8_t q4_3 = uint8_t(data_a[ib0 + i].qs[q_offset +  1]  >> 4);
    -        const uint8_t q4_4 = uint8_t(data_a[ib0 + i].qs[q_offset + 64] & 0xf);
    -        const uint8_t q4_5 = uint8_t(data_a[ib0 + i].qs[q_offset + 65] & 0xf);
    -        const uint8_t q4_6 = uint8_t(data_a[ib0 + i].qs[q_offset + 64]  >> 4);
    -        const uint8_t q4_7 = uint8_t(data_a[ib0 + i].qs[q_offset + 65]  >> 4);
    -
    -        const FLOAT_TYPE sx = FLOAT_TYPE(FLOAT_TYPE(data_b[b_offset + y1_idx     ]) * q4_0  + FLOAT_TYPE(data_b[b_offset + y1_idx +  1]) * q4_1);
    -        const FLOAT_TYPE sy = FLOAT_TYPE(FLOAT_TYPE(data_b[b_offset + y1_idx + 32]) * q4_2  + FLOAT_TYPE(data_b[b_offset + y1_idx + 33]) * q4_3);
    -        const FLOAT_TYPE sz = FLOAT_TYPE(FLOAT_TYPE(data_b[b_offset + y2_idx     ]) * q4_4  + FLOAT_TYPE(data_b[b_offset + y2_idx +  1]) * q4_5);
    -        const FLOAT_TYPE sw = FLOAT_TYPE(FLOAT_TYPE(data_b[b_offset + y2_idx + 32]) * q4_6 + FLOAT_TYPE(data_b[b_offset + y2_idx + 33]) * q4_7);
    -        const FLOAT_TYPE smin = FLOAT_TYPE(
    -            FLOAT_TYPE(data_b[b_offset + y1_idx]) * sc2 + FLOAT_TYPE(data_b[b_offset + y1_idx + 32]) * sc3 + FLOAT_TYPE(data_b[b_offset + y2_idx]) * sc6 + FLOAT_TYPE(data_b[b_offset + y2_idx + 32]) * sc7
    -          + FLOAT_TYPE(data_b[b_offset + y1_idx + 1]) * sc2 + FLOAT_TYPE(data_b[b_offset + y1_idx + 33]) * sc3 + FLOAT_TYPE(data_b[b_offset + y2_idx + 1]) * sc6 + FLOAT_TYPE(data_b[b_offset + y2_idx + 33]) * sc7
    -        );
    -
    -        tmp[16 * ix + tid] += FLOAT_TYPE(dall * (sx * FLOAT_TYPE(data_a[ib0 + i].scales[v_im] & 0x3f) + sy * FLOAT_TYPE(data_a[ib0 + i].scales[v_im + 1] & 0x3f) + sz * FLOAT_TYPE((data_a[ib0 + i].scales[v_im + 4] & 0x0f) | ((data_a[ib0 + i].scales[v_im] & 0xc0) >> 2)) + sw * FLOAT_TYPE((data_a[ib0 + i].scales[v_im + 5] & 0x0f) | ((data_a[ib0 + i].scales[v_im + 1] & 0xc0) >> 2))) - dmin * smin);
    -#endif
    -    }
    -
    -    // sum up partial sums and write back result
    -    barrier();
    -    [[unroll]] for (uint s = 16; s > 0; s >>= 1) {
    -        if (tid < s) {
    -            tmp[tid] += tmp[tid + s];
    -        }
    -        barrier();
    -    }
    -    if (tid == 0) {
    -        data_d[d_offset + row] = D_TYPE(tmp[0]);
    -    }
    -}
    -"""
    -mul_mat_vec_q5_K_body = """
    -layout(local_size_x = 32, local_size_y = 1, local_size_z = 1) in;
    -
    -shared FLOAT_TYPE tmp[32];
    -
    -void main() {
    -    const uint row = gl_WorkGroupID.x;
    -
    -    uint a_offset, b_offset, d_offset;
    -    get_offsets(a_offset, b_offset, d_offset);
    -
    -    const uint num_blocks_per_row = p.ncols / QUANT_K;
    -    const uint ib0 = a_offset / QUANT_K + row*num_blocks_per_row;
    -
    -    const uint tid = gl_LocalInvocationID.x/2;  // 0...31 or 0...16
    -    const uint ix  = gl_LocalInvocationID.x%2;  // 0 or 0, 1
    -
    -    const uint il = tid/4;                           // 0...3
    -    const uint ir = tid - 4*il;                      // 0...7 or 0...3
    -
    -    const uint v_im = il / 2;  // 0 or 1. 0 computes 0,32 + 128,160, 1 computes 64,96 + 192,224
    -    const uint v_in = il % 2;
    -
    -    const uint l0 = 4*ir + 2*v_in;                   // 0...15
    -    const uint q_offset = 32*v_im + l0;
    -    const uint y_offset = 64*v_im + l0;
    -
    -    const uint8_t hm1 = uint8_t(1 << (2*v_im));
    -    const uint8_t hm2 = uint8_t(hm1 << 4);
    -
    -    tmp[16 * ix + tid] = FLOAT_TYPE(0.0); // partial sum for thread in warp
    -
    -    [[unroll]] for (uint i = ix; i < num_blocks_per_row; i += 2) {
    -        const uint y1_idx = i * QUANT_K + y_offset;
    -        const uint y2_idx = y1_idx + 128;
    -
    -        const FLOAT_TYPE dall = FLOAT_TYPE(data_a[ib0 + i].d.x);
    -        const FLOAT_TYPE dmin = FLOAT_TYPE(data_a[ib0 + i].d.y);
    -
    -        const uint8_t sc0 = uint8_t(  data_a[ib0 + i].scales[v_im * 2    ]       & 0x3f);
    -        const uint8_t sc1 = uint8_t(  data_a[ib0 + i].scales[v_im * 2 + 1]       & 0x3f);
    -        const uint8_t sc2 = uint8_t(  data_a[ib0 + i].scales[v_im * 2 + 4]       & 0x3f);
    -        const uint8_t sc3 = uint8_t(  data_a[ib0 + i].scales[v_im * 2 + 5]       & 0x3f);
    -        const uint8_t sc4 = uint8_t(( data_a[ib0 + i].scales[v_im * 2 + 8]       & 0x0f) | ((data_a[ib0 + i].scales[v_im * 2    ] & 0xc0) >> 2));
    -        const uint8_t sc5 = uint8_t(( data_a[ib0 + i].scales[v_im * 2 + 9]       & 0x0f) | ((data_a[ib0 + i].scales[v_im * 2 + 1] & 0xc0) >> 2));
    -        const uint8_t sc6 = uint8_t(((data_a[ib0 + i].scales[v_im * 2 + 8] >> 4) & 0x0f) | ((data_a[ib0 + i].scales[v_im * 2 + 4] & 0xc0) >> 2));
    -        const uint8_t sc7 = uint8_t(((data_a[ib0 + i].scales[v_im * 2 + 9] >> 4) & 0x0f) | ((data_a[ib0 + i].scales[v_im * 2 + 5] & 0xc0) >> 2));
    -
    -        const uint8_t q4_0  = uint8_t(data_a[ib0 + i].qs[q_offset     ] & 0xf);
    -        const uint8_t q4_1  = uint8_t(data_a[ib0 + i].qs[q_offset +  1] & 0xf);
    -        const uint8_t q4_2  = uint8_t(data_a[ib0 + i].qs[q_offset + 16] & 0xf);
    -        const uint8_t q4_3  = uint8_t(data_a[ib0 + i].qs[q_offset + 17] & 0xf);
    -        const uint8_t q4_4  = uint8_t(data_a[ib0 + i].qs[q_offset     ]  >> 4);
    -        const uint8_t q4_5  = uint8_t(data_a[ib0 + i].qs[q_offset +  1]  >> 4);
    -        const uint8_t q4_6  = uint8_t(data_a[ib0 + i].qs[q_offset + 16]  >> 4);
    -        const uint8_t q4_7  = uint8_t(data_a[ib0 + i].qs[q_offset + 17]  >> 4);
    -        const uint8_t q4_8  = uint8_t(data_a[ib0 + i].qs[q_offset + 64] & 0xf);
    -        const uint8_t q4_9  = uint8_t(data_a[ib0 + i].qs[q_offset + 65] & 0xf);
    -        const uint8_t q4_10 = uint8_t(data_a[ib0 + i].qs[q_offset + 80] & 0xf);
    -        const uint8_t q4_11 = uint8_t(data_a[ib0 + i].qs[q_offset + 81] & 0xf);
    -        const uint8_t q4_12 = uint8_t(data_a[ib0 + i].qs[q_offset + 64]  >> 4);
    -        const uint8_t q4_13 = uint8_t(data_a[ib0 + i].qs[q_offset + 65]  >> 4);
    -        const uint8_t q4_14 = uint8_t(data_a[ib0 + i].qs[q_offset + 80]  >> 4);
    -        const uint8_t q4_15 = uint8_t(data_a[ib0 + i].qs[q_offset + 81]  >> 4);
    -
    -        const FLOAT_TYPE sx = FLOAT_TYPE(
    -            FLOAT_TYPE(data_b[b_offset + y1_idx     ]) * (q4_0 + (((data_a[ib0 + i].qh[l0     ] & hm1) != 0) ? 16 : 0))
    -          + FLOAT_TYPE(data_b[b_offset + y1_idx +  1]) * (q4_1 + (((data_a[ib0 + i].qh[l0 +  1] & hm1) != 0) ? 16 : 0))
    -          + FLOAT_TYPE(data_b[b_offset + y1_idx + 16]) * (q4_2 + (((data_a[ib0 + i].qh[l0 + 16] & hm1) != 0) ? 16 : 0))
    -          + FLOAT_TYPE(data_b[b_offset + y1_idx + 17]) * (q4_3 + (((data_a[ib0 + i].qh[l0 + 17] & hm1) != 0) ? 16 : 0))
    -        );
    -        const FLOAT_TYPE sy = FLOAT_TYPE(
    -            FLOAT_TYPE(data_b[b_offset + y1_idx + 32]) * (q4_4 + (((data_a[ib0 + i].qh[l0     ] & (hm1 << 1)) != 0) ? 16 : 0))
    -          + FLOAT_TYPE(data_b[b_offset + y1_idx + 33]) * (q4_5 + (((data_a[ib0 + i].qh[l0 +  1] & (hm1 << 1)) != 0) ? 16 : 0))
    -          + FLOAT_TYPE(data_b[b_offset + y1_idx + 48]) * (q4_6 + (((data_a[ib0 + i].qh[l0 + 16] & (hm1 << 1)) != 0) ? 16 : 0))
    -          + FLOAT_TYPE(data_b[b_offset + y1_idx + 49]) * (q4_7 + (((data_a[ib0 + i].qh[l0 + 17] & (hm1 << 1)) != 0) ? 16 : 0))
    -        );
    -        const FLOAT_TYPE sz = FLOAT_TYPE(
    -            FLOAT_TYPE(data_b[b_offset + y2_idx     ]) * (q4_8  + (((data_a[ib0 + i].qh[l0     ] & hm2) != 0) ? 16 : 0))
    -          + FLOAT_TYPE(data_b[b_offset + y2_idx +  1]) * (q4_9  + (((data_a[ib0 + i].qh[l0 +  1] & hm2) != 0) ? 16 : 0))
    -          + FLOAT_TYPE(data_b[b_offset + y2_idx + 16]) * (q4_10 + (((data_a[ib0 + i].qh[l0 + 16] & hm2) != 0) ? 16 : 0))
    -          + FLOAT_TYPE(data_b[b_offset + y2_idx + 17]) * (q4_11 + (((data_a[ib0 + i].qh[l0 + 17] & hm2) != 0) ? 16 : 0))
    -        );
    -        const FLOAT_TYPE sw = FLOAT_TYPE(
    -            FLOAT_TYPE(data_b[b_offset + y2_idx + 32]) * (q4_12 + (((data_a[ib0 + i].qh[l0     ] & (hm2 << 1)) != 0) ? 16 : 0))
    -          + FLOAT_TYPE(data_b[b_offset + y2_idx + 33]) * (q4_13 + (((data_a[ib0 + i].qh[l0 +  1] & (hm2 << 1)) != 0) ? 16 : 0))
    -          + FLOAT_TYPE(data_b[b_offset + y2_idx + 48]) * (q4_14 + (((data_a[ib0 + i].qh[l0 + 16] & (hm2 << 1)) != 0) ? 16 : 0))
    -          + FLOAT_TYPE(data_b[b_offset + y2_idx + 49]) * (q4_15 + (((data_a[ib0 + i].qh[l0 + 17] & (hm2 << 1)) != 0) ? 16 : 0))
    -        );
    -        const FLOAT_TYPE smin = FLOAT_TYPE(
    -            (FLOAT_TYPE(data_b[b_offset + y1_idx]) + FLOAT_TYPE(data_b[b_offset + y1_idx + 1]) + FLOAT_TYPE(data_b[b_offset + y1_idx + 16]) + FLOAT_TYPE(data_b[b_offset + y1_idx + 17])) * sc2 + (FLOAT_TYPE(data_b[b_offset + y1_idx + 32]) + FLOAT_TYPE(data_b[b_offset + y1_idx + 33]) + FLOAT_TYPE(data_b[b_offset + y1_idx + 48]) + FLOAT_TYPE(data_b[b_offset + y1_idx + 49])) * sc3
    -          + (FLOAT_TYPE(data_b[b_offset + y2_idx]) + FLOAT_TYPE(data_b[b_offset + y2_idx + 1]) + FLOAT_TYPE(data_b[b_offset + y2_idx + 16]) + FLOAT_TYPE(data_b[b_offset + y2_idx + 17])) * sc6 + (FLOAT_TYPE(data_b[b_offset + y2_idx + 32]) + FLOAT_TYPE(data_b[b_offset + y2_idx + 33]) + FLOAT_TYPE(data_b[b_offset + y2_idx + 48]) + FLOAT_TYPE(data_b[b_offset + y2_idx + 49])) * sc7
    -        );
    -        tmp[16 * ix + tid] += FLOAT_TYPE(dall * (sx * sc0 + sy * sc1 + sz * sc4 + sw * sc5) - dmin * smin);
    -    }
    -
    -    // sum up partial sums and write back result
    -    barrier();
    -    [[unroll]] for (uint s = 16; s > 0; s >>= 1) {
    -        if (tid < s) {
    -            tmp[tid] += tmp[tid + s];
    -        }
    -        barrier();
    -    }
    -    if (tid == 0) {
    -        data_d[d_offset + row] = D_TYPE(tmp[0]);
    -    }
    -}
    -"""
    -mul_mat_vec_q6_K_body = """
    -layout(local_size_x = 32, local_size_y = 1, local_size_z = 1) in;
    -
    -shared FLOAT_TYPE tmp[32];
    -
    -void main() {
    -    const uint row = gl_WorkGroupID.x;
    -
    -    uint a_offset, b_offset, d_offset;
    -    get_offsets(a_offset, b_offset, d_offset);
    -
    -    const uint num_blocks_per_row = p.ncols / QUANT_K;
    -    const uint ib0 = a_offset / QUANT_K + row*num_blocks_per_row;
    -
    -    const uint tid = gl_LocalInvocationID.x/K_QUANTS_PER_ITERATION;  // 0...31 or 0...16
    -    const uint ix  = gl_LocalInvocationID.x%K_QUANTS_PER_ITERATION;  // 0 or 0, 1
    -
    -    const uint step = 16/K_QUANTS_PER_ITERATION;            // 16 or 8
    -
    -    const uint v_im = tid/step;                             // 0 or 1. 0 computes 0..., 1 computes 128...
    -    const uint v_in = tid - step*v_im;                      // 0...15 or 0...7
    -
    -#if K_QUANTS_PER_ITERATION == 1
    -    const uint l0 = v_in;                                   // 0...15
    -    const uint is = 0;
    -#else
    -    const uint l0 = 4 * v_in;                               // 0, 4, 8, ..., 28
    -    const uint is = v_in / 4;
    -#endif
    -
    -    const uint ql_offset = 64*v_im + l0;
    -    const uint qh_offset = 32*v_im + l0;
    -    const uint s_offset  =  8*v_im + is;
    -    const uint y_offset = 128*v_im + l0;
    -
    -    tmp[16 * ix + tid] = FLOAT_TYPE(0.0); // partial sum for thread in warp
    -
    -    [[unroll]] for (uint i = ix; i < num_blocks_per_row; i += K_QUANTS_PER_ITERATION) {
    -        const uint y_idx   = i * QUANT_K + y_offset;
    -
    -        const FLOAT_TYPE d = FLOAT_TYPE(data_a[ib0 + i].d);
    -
    -#if K_QUANTS_PER_ITERATION == 1
    -        FLOAT_TYPE sum = FLOAT_TYPE(data_b[b_offset + y_idx +  0]) * FLOAT_TYPE(data_a[ib0 + i].scales[s_offset + 0]) * d * FLOAT_TYPE(int8_t((data_a[ib0 + i].ql[ql_offset +  0] & 0xF) | ((data_a[ib0 + i].qh[qh_offset +  0] & 0x03) << 4)) - 32)
    -                       + FLOAT_TYPE(data_b[b_offset + y_idx + 16]) * FLOAT_TYPE(data_a[ib0 + i].scales[s_offset + 1]) * d * FLOAT_TYPE(int8_t((data_a[ib0 + i].ql[ql_offset + 16] & 0xF) | ((data_a[ib0 + i].qh[qh_offset + 16] & 0x03) << 4)) - 32)
    -                       + FLOAT_TYPE(data_b[b_offset + y_idx + 32]) * FLOAT_TYPE(data_a[ib0 + i].scales[s_offset + 2]) * d * FLOAT_TYPE(int8_t((data_a[ib0 + i].ql[ql_offset + 32] & 0xF) | ((data_a[ib0 + i].qh[qh_offset +  0] & 0x0c) << 2)) - 32)
    -                       + FLOAT_TYPE(data_b[b_offset + y_idx + 48]) * FLOAT_TYPE(data_a[ib0 + i].scales[s_offset + 3]) * d * FLOAT_TYPE(int8_t((data_a[ib0 + i].ql[ql_offset + 48] & 0xF) | ((data_a[ib0 + i].qh[qh_offset + 16] & 0x0c) << 2)) - 32)
    -                       + FLOAT_TYPE(data_b[b_offset + y_idx + 64]) * FLOAT_TYPE(data_a[ib0 + i].scales[s_offset + 4]) * d * FLOAT_TYPE(int8_t((data_a[ib0 + i].ql[ql_offset +  0]  >> 4) | ((data_a[ib0 + i].qh[qh_offset +  0] & 0x30) >> 0)) - 32)
    -                       + FLOAT_TYPE(data_b[b_offset + y_idx + 80]) * FLOAT_TYPE(data_a[ib0 + i].scales[s_offset + 5]) * d * FLOAT_TYPE(int8_t((data_a[ib0 + i].ql[ql_offset + 16]  >> 4) | ((data_a[ib0 + i].qh[qh_offset + 16] & 0x30) >> 0)) - 32)
    -                       + FLOAT_TYPE(data_b[b_offset + y_idx + 96]) * FLOAT_TYPE(data_a[ib0 + i].scales[s_offset + 6]) * d * FLOAT_TYPE(int8_t((data_a[ib0 + i].ql[ql_offset + 32]  >> 4) | ((data_a[ib0 + i].qh[qh_offset +  0] & 0xc0) >> 2)) - 32)
    -                       + FLOAT_TYPE(data_b[b_offset + y_idx +112]) * FLOAT_TYPE(data_a[ib0 + i].scales[s_offset + 7]) * d * FLOAT_TYPE(int8_t((data_a[ib0 + i].ql[ql_offset + 48]  >> 4) | ((data_a[ib0 + i].qh[qh_offset + 16] & 0xc0) >> 2)) - 32);
    -        tmp[16 * ix + tid] += sum;
    -#else
    -        FLOAT_TYPE sum = FLOAT_TYPE(0.0);
    -        [[unroll]] for (int l = 0; l < 4; ++l) {
    -            sum += FLOAT_TYPE(data_b[b_offset + y_idx + l+ 0]) * FLOAT_TYPE(data_a[ib0 + i].scales[s_offset + 0]) * d * FLOAT_TYPE(int8_t((data_a[ib0 + i].ql[ql_offset + l+ 0] & 0xF) | (((data_a[ib0 + i].qh[qh_offset + l] >> 0) & 3) << 4)) - 32)
    -                 + FLOAT_TYPE(data_b[b_offset + y_idx + l+32]) * FLOAT_TYPE(data_a[ib0 + i].scales[s_offset + 2]) * d * FLOAT_TYPE(int8_t((data_a[ib0 + i].ql[ql_offset + l+32] & 0xF) | (((data_a[ib0 + i].qh[qh_offset + l] >> 2) & 3) << 4)) - 32)
    -                 + FLOAT_TYPE(data_b[b_offset + y_idx + l+64]) * FLOAT_TYPE(data_a[ib0 + i].scales[s_offset + 4]) * d * FLOAT_TYPE(int8_t((data_a[ib0 + i].ql[ql_offset + l+ 0]  >> 4) | (((data_a[ib0 + i].qh[qh_offset + l] >> 4) & 3) << 4)) - 32)
    -                 + FLOAT_TYPE(data_b[b_offset + y_idx + l+96]) * FLOAT_TYPE(data_a[ib0 + i].scales[s_offset + 6]) * d * FLOAT_TYPE(int8_t((data_a[ib0 + i].ql[ql_offset + l+32]  >> 4) | (((data_a[ib0 + i].qh[qh_offset + l] >> 6) & 3) << 4)) - 32);
    -        }
    -        tmp[16 * ix + tid] += sum;
    -#endif
    -    }
    -
    -    // sum up partial sums and write back result
    -    barrier();
    -    [[unroll]] for (uint s = 16; s > 0; s >>= 1) {
    -        if (tid < s) {
    -            tmp[tid] += tmp[tid + s];
    -       }
    -        barrier();
    -    }
    -    if (tid == 0) {
    -        data_d[d_offset + row] = D_TYPE(tmp[0]);
    -    }
    -}
    -"""
    -
    -mul_mat_p021_src = """#version 450
    -
    -#extension GL_EXT_control_flow_attributes : enable
    -#extension GL_EXT_shader_16bit_storage : require
    -
    -#define BLOCK_SIZE 32
    -#define FLOAT_TYPE float
    -
    -layout(local_size_x = BLOCK_SIZE, local_size_y = 1, local_size_z = 1) in;
    -
    -layout (binding = 0) readonly buffer A {A_TYPE data_a[];};
    -layout (binding = 1) readonly buffer B {B_TYPE data_b[];};
    -layout (binding = 2) writeonly buffer D {D_TYPE dst[];};
    -
    -layout (push_constant) uniform parameter
    -{
    -    uint ncols_x;
    -    uint nrows_x;
    -    uint nchannels_x;
    -    uint nchannels_y;
    -    uint b_offset;
    -    uint d_offset;
    -} p;
    -
    -shared FLOAT_TYPE tmp[BLOCK_SIZE];
    -
    -void main() {
    -    const uint tid = gl_LocalInvocationID.x;
    -    const uint row_x = gl_GlobalInvocationID.y;
    -    const uint channel = gl_GlobalInvocationID.z;
    -    const uint channel_x = channel / (p.nchannels_y / p.nchannels_x);
    -
    -    const uint nrows_y = p.ncols_x;
    -    const uint nrows_dst = p.nrows_x;
    -    const uint row_dst = row_x;
    -
    -    tmp[tid] = FLOAT_TYPE(0.0f);
    -
    -    for (uint col_x0 = 0; col_x0 < p.ncols_x; col_x0 += BLOCK_SIZE) {
    -        const uint col_x = col_x0 + tid;
    -
    -        if (col_x >= p.ncols_x) {
    -            break;
    -        }
    -
    -        // x is transposed and permuted
    -        const uint ix = row_x*p.nchannels_x*p.ncols_x + channel_x*p.ncols_x + col_x;
    -        const FLOAT_TYPE xi = FLOAT_TYPE(data_a[ix]);
    -
    -        const uint row_y = col_x;
    -
    -        // y is not transposed but permuted
    -        const uint iy = channel*nrows_y + row_y;
    -
    -        tmp[tid] += xi * FLOAT_TYPE(data_b[iy]);
    -    }
    -
    -    // dst is not transposed and not permuted
    -    const uint idst = channel*nrows_dst + row_dst;
    -
    -    // sum up partial sums and write back result
    -    barrier();
    -    [[unroll]] for (int s = BLOCK_SIZE / 2; s > 0; s >>= 1) {
    -        if (tid < s) {
    -            tmp[tid] += tmp[tid + s];
    -        }
    -        barrier();
    -    }
    -
    -    if (tid == 0) {
    -        dst[idst] = tmp[0];
    -    }
    -}
    -"""
    -
    -
    -mul_mat_nc_src = """#version 450
    -
    -#extension GL_EXT_control_flow_attributes : enable
    -#extension GL_EXT_shader_16bit_storage : require
    -
    -#define BLOCK_SIZE 32
    -#define FLOAT_TYPE float
    -
    -layout(local_size_x = BLOCK_SIZE, local_size_y = 1, local_size_z = 1) in;
    -
    -layout (binding = 0) readonly buffer A {A_TYPE data_a[];};
    -layout (binding = 1) readonly buffer B {B_TYPE data_b[];};
    -layout (binding = 2) writeonly buffer D {D_TYPE dst[];};
    -
    -layout (push_constant) uniform parameter
    -{
    -    uint ncols_x;
    -    uint nrows_x;
    -    uint row_stride_x;
    -    uint channel_stride_x;
    -    uint channel_x_divisor;
    -    uint b_offset;
    -    uint d_offset;
    -} p;
    -
    -shared FLOAT_TYPE tmp[BLOCK_SIZE];
    -
    -void main() {
    -    const uint tid       = gl_LocalInvocationID.x;
    -    const uint row_x     = gl_GlobalInvocationID.y;
    -    const uint channel   = gl_GlobalInvocationID.z;
    -    const uint channel_x = channel / p.channel_x_divisor;
    -
    -    const uint nrows_y   = p.ncols_x;
    -    const uint nrows_dst = p.nrows_x;
    -    const uint row_dst   = row_x;
    -
    -    const uint idst = channel*nrows_dst + row_dst;
    -
    -    tmp[tid] = 0.0f;
    -
    -    for (uint col_x0 = 0; col_x0 < p.ncols_x; col_x0 += BLOCK_SIZE) {
    -        const uint col_x = col_x0 + tid;
    -
    -        if (col_x >= p.ncols_x) {
    -            break;
    -        }
    -
    -        const uint row_y = col_x;
    -
    -        const uint ix = channel_x*p.channel_stride_x + row_x*p.row_stride_x + col_x;
    -        const uint iy = channel*nrows_y + row_y;
    -
    -        const FLOAT_TYPE xi = FLOAT_TYPE(data_a[ix]);
    -
    -        tmp[tid] += xi * FLOAT_TYPE(data_b[iy]);
    -    }
    -
    -    // sum up partial sums and write back result
    -    barrier();
    -    [[unroll]] for (int s = BLOCK_SIZE / 2; s > 0; s >>= 1) {
    -        if (tid < s) {
    -            tmp[tid] += tmp[tid + s];
    -        }
    -        barrier();
    -    }
    -
    -    if (tid == 0) {
    -        dst[idst] = tmp[0];
    -    }
    -}
    -"""
    -
    -generic_head = """
    -#version 450
    -
    -#extension GL_EXT_shader_16bit_storage : require
    -
    -layout (push_constant) uniform parameter
    -{
    -    uint KX;
    -    uint KY;
    -    float param1;
    -    float param2;
    -} p;
    -"""
    -
    -generic_unary_op_head = """#version 450
    -
    -#extension GL_EXT_shader_16bit_storage : require
    -
    -layout (push_constant) uniform parameter
    -{
    -    uint ne;
    -    uint ne00; uint ne01; uint ne02; uint ne03; uint nb00; uint nb01; uint nb02; uint nb03;
    -    uint ne10; uint ne11; uint ne12; uint ne13; uint nb10; uint nb11; uint nb12; uint nb13;
    -    uint d_offset;
    -    float param1; float param2;
    -} p;"""
    -
    -generic_unary_op_layout = """
    -layout(local_size_x = 512, local_size_y = 1, local_size_z = 1) in;
    -
    -layout (binding = 0) readonly buffer A {A_TYPE data_a[];};
    -layout (binding = 1) writeonly buffer D {D_TYPE data_d[];};"""
    -
    -generic_unary_op_funcs = """
    -uint src0_idx(uint idx) {
    -    const uint i03 = idx / (p.ne02*p.ne01*p.ne00);
    -    const uint i03_offset = i03 * p.ne02*p.ne01*p.ne00;
    -    const uint i02 = (idx - i03_offset) / (p.ne01*p.ne00);
    -    const uint i02_offset = i02*p.ne01*p.ne00;
    -    const uint i01 = (idx - i03_offset - i02_offset) / p.ne00;
    -    const uint i00 = idx - i03_offset - i02_offset - i01*p.ne00;
    -    return i03*p.nb03 + i02*p.nb02 + i01*p.nb01 + i00*p.nb00;
    -}
    -
    -uint dst_idx(uint idx) {
    -    const uint i13 = idx / (p.ne12*p.ne11*p.ne10);
    -    const uint i13_offset = i13 * p.ne12*p.ne11*p.ne10;
    -    const uint i12 = (idx - i13_offset) / (p.ne11*p.ne10);
    -    const uint i12_offset = i12*p.ne11*p.ne10;
    -    const uint i11 = (idx - i13_offset - i12_offset) / p.ne10;
    -    const uint i10 = idx - i13_offset - i12_offset - i11*p.ne10;
    -    return i13*p.nb13 + i12*p.nb12 + i11*p.nb11 + i10*p.nb10;
    -}"""
    -
    -generic_unary_op_main = """
    -void main() {
    -    if (gl_GlobalInvocationID.x >= p.ne) {
    -        return;
    -    }
    -"""
    -
    -generic_unary_op_combined = f"{generic_unary_op_head}\n{generic_unary_op_layout}\n{generic_unary_op_funcs}\n{generic_unary_op_main}"
    -
    -generic_binary_op_head = """#version 450
    -
    -#extension GL_EXT_shader_16bit_storage : require
    -
    -layout (push_constant) uniform parameter
    -{
    -    uint ne;
    -    uint ne00; uint ne01; uint ne02; uint ne03; uint nb00; uint nb01; uint nb02; uint nb03;
    -    uint ne10; uint ne11; uint ne12; uint ne13; uint nb10; uint nb11; uint nb12; uint nb13;
    -    uint ne20; uint ne21; uint ne22; uint ne23; uint nb20; uint nb21; uint nb22; uint nb23;
    -    uint d_offset;
    -    float param1; float param2;
    -} p;"""
    -
    -generic_binary_op_layout = """
    -layout(local_size_x = 512, local_size_y = 1, local_size_z = 1) in;
    -
    -layout (binding = 0) readonly buffer A {A_TYPE data_a[];};
    -layout (binding = 1) readonly buffer B {B_TYPE data_b[];};
    -layout (binding = 2) writeonly buffer D {D_TYPE data_d[];};"""
    -
    -generic_binary_op_funcs = """
    -uint src0_idx(uint idx) {
    -    const uint i03 = idx / (p.ne02*p.ne01*p.ne00);
    -    const uint i03_offset = i03 * p.ne02*p.ne01*p.ne00;
    -    const uint i02 = (idx - i03_offset) / (p.ne01*p.ne00);
    -    const uint i02_offset = i02*p.ne01*p.ne00;
    -    const uint i01 = (idx - i03_offset - i02_offset) / p.ne00;
    -    const uint i00 = idx - i03_offset - i02_offset - i01*p.ne00;
    -    return i03*p.nb03 + i02*p.nb02 + i01*p.nb01 + i00*p.nb00;
    -}
    -
    -uint src1_idx(uint idx) {
    -    const uint i03 = idx / (p.ne02*p.ne01*p.ne00);
    -    const uint i03_offset = i03 * p.ne02*p.ne01*p.ne00;
    -    const uint i02 = (idx - i03_offset) / (p.ne01*p.ne00);
    -    const uint i02_offset = i02*p.ne01*p.ne00;
    -    const uint i01 = (idx - i03_offset - i02_offset) / p.ne00;
    -    const uint i00 = idx - i03_offset - i02_offset - i01*p.ne00;
    -
    -    return (i03 % p.ne13)*p.nb13 + (i02 % p.ne12)*p.nb12 + (i01 % p.ne11)*p.nb11 + (i00 % p.ne10)*p.nb10;
    -}
    -
    -uint dst_idx(uint idx) {
    -    const uint i23 = idx / (p.ne22*p.ne21*p.ne20);
    -    const uint i23_offset = i23 * p.ne22*p.ne21*p.ne20;
    -    const uint i22 = (idx - i23_offset) / (p.ne21*p.ne20);
    -    const uint i22_offset = i22*p.ne21*p.ne20;
    -    const uint i21 = (idx - i23_offset - i22_offset) / p.ne20;
    -    const uint i20 = idx - i23_offset - i22_offset - i21*p.ne20;
    -    return i23*p.nb23 + i22*p.nb22 + i21*p.nb21 + i20*p.nb20;
    -}"""
    -
    -generic_binary_op_main = """
    -void main() {
    -    if (gl_GlobalInvocationID.x >= p.ne) {
    -        return;
    -    }
    -"""
    -
    -generic_binary_op_combined = f"{generic_binary_op_head}\n{generic_binary_op_layout}\n{generic_binary_op_funcs}\n{generic_binary_op_main}"
    -
    -# MUL
    -mul_body = """
    -    data_d[p.d_offset + dst_idx(gl_GlobalInvocationID.x)] = D_TYPE(FLOAT_TYPE(data_a[src0_idx(gl_GlobalInvocationID.x)]) * FLOAT_TYPE(data_b[src1_idx(gl_GlobalInvocationID.x)]));
    -}
    -"""
    -
    -# DIV
    -div_body = """
    -    data_d[p.d_offset + dst_idx(gl_GlobalInvocationID.x)] = D_TYPE(FLOAT_TYPE(data_a[src0_idx(gl_GlobalInvocationID.x)]) / FLOAT_TYPE(data_b[src1_idx(gl_GlobalInvocationID.x)]));
    -}
    -"""
    -
    -# ADD
    -add_body = """
    -    data_d[p.d_offset + dst_idx(gl_GlobalInvocationID.x)] = D_TYPE(FLOAT_TYPE(data_a[src0_idx(gl_GlobalInvocationID.x)]) + FLOAT_TYPE(data_b[src1_idx(gl_GlobalInvocationID.x)]));
    -}
    -"""
    -
    -# SCALE
    -scale_body = """
    -    data_d[p.d_offset + dst_idx(gl_GlobalInvocationID.x)] = D_TYPE(FLOAT_TYPE(data_a[src0_idx(gl_GlobalInvocationID.x)]) * FLOAT_TYPE(p.param1));
    -}
    -"""
    -
    -# SQR
    -sqr_body = """
    -    const FLOAT_TYPE val = FLOAT_TYPE(data_a[src0_idx(gl_GlobalInvocationID.x)]);
    -    data_d[p.d_offset + dst_idx(gl_GlobalInvocationID.x)] = D_TYPE(val * val);
    -}
    -"""
    -
    -# CLAMP
    -clamp_body = """
    -    const FLOAT_TYPE val = FLOAT_TYPE(data_a[src0_idx(gl_GlobalInvocationID.x)]);
    -    data_d[p.d_offset + dst_idx(gl_GlobalInvocationID.x)] = D_TYPE(val < p.param1 ? p.param1 : (val > p.param2 ? p.param2 : val));
    -}
    -"""
    -
    -# CPY
    -cpy_end = """
    -    data_d[p.d_offset + dst_idx(gl_GlobalInvocationID.x)] = D_TYPE(data_a[src0_idx(gl_GlobalInvocationID.x)]);
    -}
    -"""
    -# Causes an optimization error otherwise
    -cpy_f16_f16_end = """
    -    data_d[p.d_offset + dst_idx(gl_GlobalInvocationID.x)] = data_a[src0_idx(gl_GlobalInvocationID.x)];
    -}
    -"""
    -
    -# GET_ROWS
    -get_rows_float_body = """
    -void main() {
    -    const uint i00 = gl_GlobalInvocationID.x;
    -    const uint i10 = gl_GlobalInvocationID.y;
    -    const uint i11 = (gl_GlobalInvocationID.z)/p.ne12;
    -    const uint i12 = (gl_GlobalInvocationID.z)%p.ne12;
    -
    -    if (i00 >= p.ne00) {
    -        return;
    -    }
    -
    -    const uint i01 = data_b[i10*p.nb10 + i11*p.nb11 + i12*p.nb12];
    -
    -    const uint a_offset = i01*p.nb01 + i11*p.nb02 + i12*p.nb03;
    -    const uint d_offset = i10*p.nb21 + i11*p.nb22 + i12*p.nb23;
    -
    -#ifndef OPTIMIZATION_ERROR_WORKAROUND
    -    data_d[d_offset + i00] = D_TYPE(data_a[a_offset + i00]);
    -#else
    -    data_d[d_offset + i00] = data_a[a_offset + i00];
    -#endif
    -}
    -"""
    -
    -get_rows_body = """
    -void main() {
    -    const uint i00 = (gl_GlobalInvocationID.x)*2;
    -    const uint i10 = gl_GlobalInvocationID.y;
    -    const uint i11 = (gl_GlobalInvocationID.z)/p.ne12;
    -    const uint i12 = (gl_GlobalInvocationID.z)%p.ne12;
    -
    -    if (i00 >= p.ne00) {
    -        return;
    -    }
    -
    -    const uint i01 = data_b[i10*p.nb10 + i11*p.nb11 + i12*p.nb12];
    -
    -    const uint a_offset = i01*p.nb01 + i11*p.nb02 + i12*p.nb03;
    -    const uint d_offset = i10*p.nb21 + i11*p.nb22 + i12*p.nb23;
    -
    -    const uint ib = a_offset + i00/QUANT_K; // block index
    -    const uint iqs = (i00%QUANT_K)/QUANT_R; // quant index
    -    const uint iybs = i00 - i00%QUANT_K; // dst block start index
    -    const uint y_offset = QUANT_R == 1 ? 1 : QUANT_K/2;
    -
    -    vec2 v = dequantize(ib, iqs, 0);
    -
    -    data_d[d_offset + iybs + iqs           ] = D_TYPE(v.x);
    -    data_d[d_offset + iybs + iqs + y_offset] = D_TYPE(v.y);
    -}
    -"""
    -
    -# UNARY
    -gelu_body = """
    -#extension GL_EXT_control_flow_attributes : enable
    -
    -layout(local_size_x = 512, local_size_y = 1, local_size_z = 1) in;
    -
    -layout (binding = 0) readonly buffer X {A_TYPE data_a[];};
    -layout (binding = 1) writeonly buffer D {D_TYPE data_d[];};
    -
    -void main() {
    -    const float GELU_COEF_A    = 0.044715f;
    -    const float SQRT_2_OVER_PI = 0.79788456080286535587989211986876f;
    -    const uint i = gl_GlobalInvocationID.x;
    -
    -    if (i >= p.KX) {
    -        return;
    -    }
    -
    -    const float xi = float(data_a[i]);
    -    const float val = SQRT_2_OVER_PI*xi*(1.0f + GELU_COEF_A*xi*xi);
    -    data_d[i] = D_TYPE(0.5f*xi*(2.0f - 2.0f / (exp(2 * val) + 1)));
    -}
    -"""
    -
    -silu_body = """
    -#extension GL_EXT_control_flow_attributes : enable
    -
    -layout(local_size_x = 512, local_size_y = 1, local_size_z = 1) in;
    -
    -layout (binding = 0) readonly buffer X {A_TYPE data_a[];};
    -layout (binding = 1) writeonly buffer D {D_TYPE data_d[];};
    -
    -void main() {
    -    const uint i = gl_GlobalInvocationID.x;
    -
    -    if (i >= p.KX) {
    -        return;
    -    }
    -
    -    const float xi = float(data_a[i]);
    -    data_d[i] = D_TYPE(xi / (1.0f + exp(-xi)));
    -}
    -"""
    -
    -relu_body = """
    -#extension GL_EXT_control_flow_attributes : enable
    -
    -layout(local_size_x = 512, local_size_y = 1, local_size_z = 1) in;
    -
    -layout (binding = 0) readonly buffer X {A_TYPE data_a[];};
    -layout (binding = 1) writeonly buffer D {D_TYPE data_d[];};
    -
    -void main() {
    -    const uint i = gl_GlobalInvocationID.x;
    -
    -    if (i >= p.KX) {
    -        return;
    -    }
    -
    -    data_d[i] = max(float(data_a[i]), 0);
    -}
    -"""
    -
    -# DIAG_MASK_INF
    -diag_mask_inf_head = """#version 450
    -
    -#extension GL_EXT_shader_16bit_storage : require
    -
    -layout (push_constant) uniform parameter
    -{
    -    uint ncols;
    -    uint rows_per_channel;
    -    uint n_past;
    -} p;
    -"""
    -diag_mask_inf_body = """
    -#extension GL_EXT_control_flow_attributes : enable
    -
    -layout(local_size_x = 512, local_size_y = 1, local_size_z = 1) in;
    -
    -layout (binding = 0) readonly buffer X {A_TYPE data_a[];};
    -layout (binding = 1) writeonly buffer D {D_TYPE data_d[];};
    -
    -void main() {
    -    const uint col = gl_GlobalInvocationID.y;
    -    const uint row = gl_GlobalInvocationID.x;
    -
    -    if (col >= p.ncols) {
    -        return;
    -    }
    -
    -    const uint i = row*p.ncols + col;
    -    if (col > p.n_past + row % p.rows_per_channel) {
    -        data_d[i] = D_TYPE(uintBitsToFloat(0xFF800000));
    -    } else {
    -        data_d[i] = D_TYPE(data_a[i]);
    -    }
    -}
    -"""
    -
    -# NORMS
    -norm_body = """
    -#extension GL_EXT_control_flow_attributes : enable
    -#define BLOCK_SIZE 512
    -
    -layout(local_size_x = BLOCK_SIZE, local_size_y = 1, local_size_z = 1) in;
    -
    -layout (binding = 0) readonly buffer X {A_TYPE data_a[];};
    -layout (binding = 1) writeonly buffer D {D_TYPE data_d[];};
    -
    -shared vec2 sum[BLOCK_SIZE];
    -
    -void main() {
    -    const uint row = gl_WorkGroupID.x;
    -    const uint tid = gl_LocalInvocationID.x;
    -
    -    sum[tid] = vec2(0.0f, 0.0f);
    -
    -    [[unroll]] for (uint col = tid; col < p.KX; col += BLOCK_SIZE) {
    -        const float xi = float(data_a[row*p.KX + col]);
    -        sum[tid].x += xi;
    -        sum[tid].y += xi * xi;
    -    }
    -
    -    // sum up partial sums and write back result
    -    barrier();
    -    [[unroll]] for (int s = BLOCK_SIZE / 2; s > 0; s >>= 1) {
    -        if (tid < s) {
    -            sum[tid] += sum[tid + s];
    -        }
    -        barrier();
    -    }
    -
    -    const float mean = sum[0].x / p.KX;
    -    const float var = sum[0].y / p.KX - mean * mean;
    -    const float inv_std = inversesqrt(var + p.param1);
    -
    -    [[unroll]] for (uint col = tid; col < p.KX; col += BLOCK_SIZE) {
    -        data_d[row*p.KX + col] = D_TYPE((float(data_a[row*p.KX + col]) - mean) * inv_std);
    -    }
    -}
    -"""
    -
    -rms_norm_body = """
    -#extension GL_EXT_control_flow_attributes : enable
    -#define BLOCK_SIZE 512
    -
    -layout(local_size_x = BLOCK_SIZE, local_size_y = 1, local_size_z = 1) in;
    -
    -layout (binding = 0) readonly buffer X {A_TYPE data_a[];};
    -layout (binding = 1) writeonly buffer D {D_TYPE data_d[];};
    -
    -shared FLOAT_TYPE sum[BLOCK_SIZE];
    -
    -void main() {
    -    const uint row = gl_WorkGroupID.x;
    -    const uint tid = gl_LocalInvocationID.x;
    -
    -    sum[tid] = FLOAT_TYPE(0.0f); // partial sum for thread in warp
    -
    -    [[unroll]] for (uint col = tid; col < p.KX; col += BLOCK_SIZE) {
    -        const FLOAT_TYPE xi = FLOAT_TYPE(data_a[row*p.KX + col]);
    -        sum[tid] += xi * xi;
    -    }
    -
    -    // sum up partial sums and write back result
    -    barrier();
    -    [[unroll]] for (int s = BLOCK_SIZE / 2; s > 0; s >>= 1) {
    -        if (tid < s) {
    -            sum[tid] += sum[tid + s];
    -        }
    -        barrier();
    -    }
    -
    -    const FLOAT_TYPE mean = sum[0] / FLOAT_TYPE(p.KX);
    -    const FLOAT_TYPE scale = inversesqrt(mean + FLOAT_TYPE(p.param1));
    -
    -    [[unroll]] for (uint col = tid; col < p.KX; col += BLOCK_SIZE) {
    -        data_d[row*p.KX + col] = D_TYPE(scale * FLOAT_TYPE(data_a[row*p.KX + col]));
    -    }
    -}
    -"""
    -
    -# SOFT_MAX
    -soft_max_head = """
    -#version 450
    -
    -#extension GL_EXT_shader_16bit_storage : require
    -
    -layout (push_constant) uniform parameter
    -{
    -    uint KX;
    -    uint KY;
    -    float scale;
    -    float max_bias;
    -    float m0;
    -    float m1;
    -    uint n_head_log2;
    -} p;
    -"""
    -
    -soft_max_body = """
    -#extension GL_EXT_control_flow_attributes : enable
    -#define BLOCK_SIZE 512
    -
    -layout(local_size_x = BLOCK_SIZE, local_size_y = 1, local_size_z = 1) in;
    -
    -layout (binding = 0) readonly buffer X {A_TYPE data_a[];};
    -layout (binding = 1) readonly buffer Y {B_TYPE data_b[];};
    -layout (binding = 2) buffer D {D_TYPE data_d[];};
    -
    -shared FLOAT_TYPE vals[BLOCK_SIZE];
    -
    -void main() {
    -    const uint tid = gl_LocalInvocationID.x;
    -    const uint rowx = gl_WorkGroupID.x;
    -    const uint rowy = rowx % p.KY;
    -
    -    float slope = 1.0f;
    -
    -    // ALiBi
    -    if (p.max_bias > 0.0f) {
    -        const uint h = rowx/p.KY; // head index
    -
    -        const float base = h < p.n_head_log2 ? p.m0 : p.m1;
    -        const uint   exp  = h < p.n_head_log2 ? h + 1 : 2*(h - p.n_head_log2) + 1;
    -
    -        slope = pow(base, exp);
    -    }
    -
    -    // Find max
    -    FLOAT_TYPE max_val = uintBitsToFloat(0xFF800000);
    -
    -    [[unroll]] for (uint col0 = 0; col0 < p.KX; col0 += BLOCK_SIZE) {
    -        const uint col = col0 + tid;
    -
    -        if (col >= p.KX) {
    -            break;
    -        }
    -
    -        max_val = max(max_val, FLOAT_TYPE(data_a[rowx * p.KX + col]) * p.scale + (p.KY > 0 ? slope * FLOAT_TYPE(data_b[rowy * p.KX + col]) : FLOAT_TYPE(0.0f)));
    -    }
    -    vals[tid] = max_val;
    -
    -    barrier();
    -    [[unroll]] for (int s = BLOCK_SIZE / 2; s > 0; s >>= 1) {
    -        if (tid < s) {
    -            vals[tid] = max(vals[tid], vals[tid + s]);
    -        }
    -        barrier();
    -    }
    -
    -    max_val = vals[0];
    -    barrier();
    -
    -    // Sum up values
    -    vals[tid] = FLOAT_TYPE(0.0f);
    -
    -    [[unroll]] for (uint col0 = 0; col0 < p.KX; col0 += BLOCK_SIZE) {
    -        const uint col = col0 + tid;
    -
    -        if (col >= p.KX) {
    -            break;
    -        }
    -
    -        const uint i = rowx * p.KX + col;
    -        const FLOAT_TYPE val = exp(FLOAT_TYPE(data_a[i]) * p.scale + (p.KY > 0 ? slope * FLOAT_TYPE(data_b[rowy * p.KX + col]) : FLOAT_TYPE(0.0f)) - max_val);
    -        vals[tid] += val;
    -        data_d[i] = D_TYPE(val);
    -    }
    -
    -    barrier();
    -    [[unroll]] for (int s = BLOCK_SIZE / 2; s > 0; s >>= 1) {
    -        if (tid < s) {
    -            vals[tid] += vals[tid + s];
    -        }
    -        barrier();
    -    }
    -
    -    const D_TYPE divisor = D_TYPE(vals[0]);
    -
    -    [[unroll]] for (uint col0 = 0; col0 < p.KX; col0 += BLOCK_SIZE) {
    -        const uint col = col0 + tid;
    -
    -        if (col >= p.KX) {
    -            break;
    -        }
    -
    -        data_d[rowx*p.KX + col] /= divisor;
    -    }
    -}
    -"""
    -
    -# ROPE
    -rope_norm_src = """
    -#version 450
    -
    -#extension GL_EXT_shader_16bit_storage : require
    -
    -layout(local_size_x = 1, local_size_y = 256, local_size_z = 1) in;
    -
    -layout (binding = 0) readonly buffer X {A_TYPE data_a[];};
    -layout (binding = 1) readonly buffer Y {int data_pos[];};
    -layout (binding = 2) readonly buffer Z {float data_ff[];};
    -layout (binding = 3) writeonly buffer D {D_TYPE data_d[];};
    -
    -layout (push_constant) uniform parameter {
    -    uint ncols;
    -    uint n_dims;
    -    float freq_scale;
    -    uint p_delta_rows;
    -    float freq_base;
    -    float ext_factor;
    -    float attn_factor;
    -    float corr_dims[2];
    -    float theta_scale;
    -    uint has_ff;
    -} p;
    -
    -float rope_yarn_ramp(const float low, const float high, const uint i0) {
    -    const float y = (i0 / 2 - low) / max(0.001f, high - low);
    -    return 1.0f - min(1.0f, max(0.0f, y));
    -}
    -
    -void rope_yarn(const float theta_extrap, const uint i0, out float cos_theta, out float sin_theta) {
    -    float mscale = p.attn_factor;
    -    // Get n-d rotational scaling corrected for extrapolation
    -    float theta_interp = p.freq_scale * theta_extrap;
    -    float theta = theta_interp;
    -    if (p.ext_factor != 0.0f) {
    -        float ramp_mix = rope_yarn_ramp(p.corr_dims[0], p.corr_dims[1], i0) * p.ext_factor;
    -        theta = theta_interp * (1 - ramp_mix) + theta_extrap * ramp_mix;
    -
    -        // Get n-d magnitude scaling corrected for interpolation
    -        mscale *= 1.0f + 0.1f * log(1.0f / p.freq_scale);
    -    }
    -    cos_theta = cos(theta) * mscale;
    -    sin_theta = sin(theta) * mscale;
    -}
    -
    -void main() {
    -    const uint col = gl_GlobalInvocationID.y * 2;
    -    const uint row = gl_GlobalInvocationID.x;
    -
    -    if (col >= p.ncols) {
    -        return;
    -    }
    -
    -    if (col >= p.n_dims) {
    -        const uint i = row*p.ncols + col;
    -
    -        data_d[i + 0] = data_a[i + 0];
    -        data_d[i + 1] = data_a[i + 1];
    -
    -        return;
    -    }
    -
    -    const uint i = row*p.ncols + col;
    -    const uint i2 = row/p.p_delta_rows;
    -
    -    const float theta_base = data_pos[i2] * pow(p.theta_scale, col/2.0f);
    -
    -    const float freq_factor = p.has_ff != 0 ? data_ff[col/2] : 1.0f;
    -
    -    float cos_theta, sin_theta;
    -    rope_yarn(theta_base / freq_factor, col, cos_theta, sin_theta);
    -
    -    const float x0 = float(data_a[i + 0]);
    -    const float x1 = float(data_a[i + 1]);
    -
    -    data_d[i + 0] = D_TYPE(x0*cos_theta - x1*sin_theta);
    -    data_d[i + 1] = D_TYPE(x0*sin_theta + x1*cos_theta);
    -}
    -"""
    -
    -rope_neox_src = """
    -#version 450
    -
    -#extension GL_EXT_shader_16bit_storage : require
    -
    -layout(local_size_x = 1, local_size_y = 256, local_size_z = 1) in;
    -
    -layout (binding = 0) readonly buffer X {A_TYPE data_a[];};
    -layout (binding = 1) readonly buffer Y {int data_pos[];};
    -layout (binding = 2) readonly buffer Z {float data_ff[];};
    -layout (binding = 3) writeonly buffer D {D_TYPE data_d[];};
    -
    -layout (push_constant) uniform parameter {
    -    uint ncols;
    -    uint n_dims;
    -    float freq_scale;
    -    uint p_delta_rows;
    -    float freq_base;
    -    float ext_factor;
    -    float attn_factor;
    -    float corr_dims[2];
    -    float theta_scale;
    -    uint has_ff;
    -} p;
    -
    -float rope_yarn_ramp(const float low, const float high, const uint i0) {
    -    const float y = (i0 / 2 - low) / max(0.001f, high - low);
    -    return 1.0f - min(1.0f, max(0.0f, y));
    -}
    -
    -void rope_yarn(const float theta_extrap, const uint i0, out float cos_theta, out float sin_theta) {
    -    float mscale = p.attn_factor;
    -    // Get n-d rotational scaling corrected for extrapolation
    -    float theta_interp = p.freq_scale * theta_extrap;
    -    float theta = theta_interp;
    -    if (p.ext_factor != 0.0f) {
    -        float ramp_mix = rope_yarn_ramp(p.corr_dims[0], p.corr_dims[1], i0) * p.ext_factor;
    -        theta = theta_interp * (1 - ramp_mix) + theta_extrap * ramp_mix;
    -
    -        // Get n-d magnitude scaling corrected for interpolation
    -        mscale *= 1.0f + 0.1f * log(1.0f / p.freq_scale);
    -    }
    -    cos_theta = cos(theta) * mscale;
    -    sin_theta = sin(theta) * mscale;
    -}
    -
    -void main() {
    -    const uint col = gl_GlobalInvocationID.y * 2;
    -    const uint row = gl_GlobalInvocationID.x;
    -
    -    if (col >= p.ncols) {
    -        return;
    -    }
    -
    -    if (col >= p.n_dims) {
    -        const uint i = row*p.ncols + col;
    -
    -        data_d[i + 0] = data_a[i + 0];
    -        data_d[i + 1] = data_a[i + 1];
    -
    -        return;
    -    }
    -
    -    const uint i  = row*p.ncols + col/2;
    -    const uint i2 = row/p.p_delta_rows;
    -
    -    const float theta_base = data_pos[i2] * pow(p.theta_scale, col/2.0f);
    -
    -    const float freq_factor = p.has_ff != 0 ? data_ff[col/2] : 1.0f;
    -
    -    float cos_theta, sin_theta;
    -    rope_yarn(theta_base / freq_factor, col, cos_theta, sin_theta);
    -
    -    const float x0 = float(data_a[i + 0]);
    -    const float x1 = float(data_a[i + p.n_dims/2]);
    -
    -    data_d[i + 0]        = D_TYPE(x0*cos_theta - x1*sin_theta);
    -    data_d[i + p.n_dims/2] = D_TYPE(x0*sin_theta + x1*cos_theta);
    -}
    -"""
    -
    -argsort_src = """
    -#version 450
    -
    -#define BLOCK_SIZE 1024
    -#define ASC 0
    -
    -layout(local_size_x = BLOCK_SIZE, local_size_y = 1, local_size_z = 1) in;
    -
    -layout (binding = 0) readonly buffer A {A_TYPE data_a[];};
    -layout (binding = 1)          buffer D {int data_d[];};
    -
    -layout (push_constant) uniform parameter {
    -    uint ncols;
    -    uint ncols_pad;
    -    uint order;
    -} p;
    -
    -shared int dst_row[BLOCK_SIZE];
    -
    -void swap(uint idx0, uint idx1) {
    -    int tmp = dst_row[idx0];
    -    dst_row[idx0] = dst_row[idx1];
    -    dst_row[idx1] = tmp;
    -}
    -
    -void main() {
    -    // bitonic sort
    -    const int col = int(gl_LocalInvocationID.x);
    -    const uint row = gl_WorkGroupID.y;
    -
    -    if (col >= p.ncols_pad) {
    -        return;
    -    }
    -
    -    const uint row_offset = row * p.ncols;
    -
    -    // initialize indices
    -    dst_row[col] = col;
    -    barrier();
    -
    -    for (uint k = 2; k <= p.ncols_pad; k *= 2) {
    -        for (uint j = k / 2; j > 0; j /= 2) {
    -            const uint ixj = col ^ j;
    -            if (ixj > col) {
    -                if ((col & k) == 0) {
    -                    if (dst_row[col] >= p.ncols ||
    -                        (dst_row[ixj] < p.ncols && (p.order == ASC ?
    -                            data_a[row_offset + dst_row[col]] > data_a[row_offset + dst_row[ixj]] :
    -                            data_a[row_offset + dst_row[col]] < data_a[row_offset + dst_row[ixj]]))
    -                    ) {
    -                        swap(col, ixj);
    -                    }
    -                } else {
    -                    if (dst_row[ixj] >= p.ncols ||
    -                        (dst_row[col] < p.ncols && (p.order == ASC ?
    -                            data_a[row_offset + dst_row[col]] < data_a[row_offset + dst_row[ixj]] :
    -                            data_a[row_offset + dst_row[col]] > data_a[row_offset + dst_row[ixj]]))
    -                    ) {
    -                        swap(col, ixj);
    -                    }
    -                }
    -            }
    -            barrier();
    -        }
    -    }
    -
    -    if (col < p.ncols) {
    -        data_d[row_offset + col] = dst_row[col];
    -    }
    -}
    -"""
    -
    -sum_rows_src = """
    -#extension GL_EXT_control_flow_attributes : enable
    -layout(local_size_x_id = 0, local_size_y = 1, local_size_z = 1) in;
    -
    -layout (binding = 0) readonly buffer A {A_TYPE data_a[];};
    -layout (binding = 1) writeonly buffer D {D_TYPE data_d[];};
    -
    -layout (constant_id = 0) const uint BLOCK_SIZE = 32;
    -
    -shared FLOAT_TYPE tmp[BLOCK_SIZE];
    -
    -void main() {
    -    const uint row = gl_WorkGroupID.x;
    -    const uint col = gl_LocalInvocationID.x;
    -
    -    tmp[col] = FLOAT_TYPE(0.0f);
    -
    -    for (uint i = col; i < p.KX; i += BLOCK_SIZE) {
    -        tmp[col] += FLOAT_TYPE(data_a[row*p.KX + i]);
    -    }
    -
    -    barrier();
    -    [[unroll]] for (int s = int(BLOCK_SIZE) / 2; s > 0; s >>= 1) {
    -        if (col < s) {
    -            tmp[col] += tmp[col + s];
    -        }
    -        barrier();
    -    }
    -
    -    if (col == 0) {
    -        data_d[row] = D_TYPE(tmp[0]);
    -    }
    -}
    -"""
    -
     GLSLC = "glslc"
     
    -VK_NUM_TYPES = 16
    -
    -GGML_TYPE_F32  = 0
    -GGML_TYPE_F16  = 1
    -GGML_TYPE_Q4_0 = 2
    -GGML_TYPE_Q4_1 = 3
    -GGML_TYPE_Q5_0 = 6
    -GGML_TYPE_Q5_1 = 7
    -GGML_TYPE_Q8_0 = 8
    -GGML_TYPE_Q8_1 = 9
    -GGML_TYPE_Q2_K = 10
    -GGML_TYPE_Q3_K = 11
    -GGML_TYPE_Q4_K = 12
    -GGML_TYPE_Q5_K = 13
    -GGML_TYPE_Q6_K = 14
    -GGML_TYPE_Q8_K = 15
    -
    -
    -type_names = {
    -    GGML_TYPE_F32: "f32",
    -    GGML_TYPE_F16: "f16",
    -    GGML_TYPE_Q4_0: "q4_0",
    -    GGML_TYPE_Q4_1: "q4_1",
    -    GGML_TYPE_Q5_0: "q5_0",
    -    GGML_TYPE_Q5_1: "q5_1",
    -    GGML_TYPE_Q8_0: "q8_0",
    -    GGML_TYPE_Q8_1: "q8_1",
    -    GGML_TYPE_Q2_K: "q2_K",
    -    GGML_TYPE_Q3_K: "q3_K",
    -    GGML_TYPE_Q4_K: "q4_K",
    -    GGML_TYPE_Q5_K: "q5_K",
    -    GGML_TYPE_Q6_K: "q6_K",
    -    GGML_TYPE_Q8_K: "q8_K",
    -}
    -
    -K_QUANTS_PER_ITERATION = 2
    +type_names = [
    +    "f32",
    +    "f16",
    +    "q4_0",
    +    "q4_1",
    +    "q5_0",
    +    "q5_1",
    +    "q8_0",
    +    "q2_k",
    +    "q3_k",
    +    "q4_k",
    +    "q5_k",
    +    "q6_k",
    +]
     
     ASYNCIO_CONCURRENCY = 64
     
    +input_dir = "vulkan-shaders"
     output_dir = gettempdir()
     
     lock = asyncio.Lock()
     shader_fnames = []
     
     
    -async def string_to_spv(name, code, defines, fp16=True):
    -    f = NamedTemporaryFile(mode="w", delete=False)
    -    f.write(code)
    -    f.flush()
    -
    +async def string_to_spv(name, in_fname, defines, fp16=True):
         name = f"{name}{'_fp32' if not fp16 else ''}"
    -    fname = os.path.join(output_dir, f"{name}.comp")
    +    out_fname = os.path.join(output_dir, f"{name}.spv")
     
    -    cmd = [GLSLC, "-fshader-stage=compute", "--target-env=vulkan1.2", "-O", f.name, "-o", fname]
    +    in_path = os.path.join(input_dir, in_fname)
    +
    +    cmd = [GLSLC, "-fshader-stage=compute", "--target-env=vulkan1.2", "-O", in_path, "-o", out_fname]
     
         cmd.extend([f"-D{key}={value}" for key, value in defines.items()])
     
    @@ -2736,33 +52,46 @@ async def string_to_spv(name, code, defines, fp16=True):
         error = stderr.decode()
     
         if proc.returncode:
    -        # Generate preprocessed code
    -        cmd = [GLSLC, "-E", f.name]
    -        cmd.extend([f"-D{key}={value}" for key, value in defines.items()])
    +        cmd = " ".join(cmd)
    +        logger.error(f"cannot compile {name}\n\n{cmd}\n\n{error}")
    +        return
    +
    +    async with lock:
    +        shader_fnames.append((name, out_fname))
     
    -        proc = await asyncio.create_subprocess_exec(*cmd, stdout=asyncio.subprocess.PIPE, stderr=asyncio.subprocess.PIPE)
     
    -        stdout, stderr = await proc.communicate()
    +def matmul_shaders(tasks, fp16, matmul_id):
    +    if fp16:
    +        load_vec = "8"
    +        aligned_b_type_f32 = "mat2x4"
    +        aligned_b_type_f16 = "f16mat2x4"
    +    else:
    +        load_vec = "4"
    +        aligned_b_type_f32 = "vec4"
    +        aligned_b_type_f16 = "f16vec4"
     
    -        logger.info(" ".join(cmd))
    +    base_dict = {"FLOAT_TYPE": "float" if not fp16 else "float16_t"}
    +    shader_name = "matmul"
     
    -        if proc.returncode:
    -            raise RuntimeError(f"{name=} {f.name=} {stdout=} {stderr=}")
    +    if matmul_id:
    +        base_dict["MUL_MAT_ID"] = "1"
    +        shader_name = "matmul_id"
     
    -        preprocessed_code = stdout.decode()
    +    if fp16:
    +        base_dict["FLOAT16"] = "1"
     
    -        cmd.extend([f"-D{key}={value}" for key, value in defines.items()])
    -        code_with_lines = "\n".join([f"{i + 1}: {line}" for i, line in enumerate(preprocessed_code.splitlines())])
    -        logger.error(f"cannot compile {name}\n\n{code_with_lines}\n\n{error}")
    -        f.close()
    -        os.remove(f.name)
    -        sys.exit(proc.returncode)
    +    # Shaders with f16 B_TYPE
    +    tasks.append(string_to_spv(f"{shader_name}_f32_f16", "mul_mm.comp", base_dict | {"DATA_A_F32": "1", "B_TYPE": "float16_t", "D_TYPE": "float"}, fp16))
    +    tasks.append(string_to_spv(f"{shader_name}_f32_f16_aligned", "mul_mm.comp", base_dict | {"DATA_A_F32": "1", "LOAD_VEC_A": load_vec, "LOAD_VEC_B": load_vec, "B_TYPE": aligned_b_type_f16, "D_TYPE": "float"}, fp16))
     
    -    f.close()
    -    os.remove(f.name)
    +    tasks.append(string_to_spv(f"{shader_name}_f16", "mul_mm.comp", base_dict | {"DATA_A_F16": "1", "B_TYPE": "float16_t", "D_TYPE": "float"}, fp16))
    +    tasks.append(string_to_spv(f"{shader_name}_f16_aligned", "mul_mm.comp", base_dict | {"DATA_A_F16": "1", "LOAD_VEC_A": load_vec, "LOAD_VEC_B": load_vec, "B_TYPE": aligned_b_type_f16, "D_TYPE": "float"}, fp16))
     
    -    async with lock:
    -        shader_fnames.append((name, fname))
    +    for tname in type_names:
    +        data_a_key = f"DATA_A_{tname.upper()}"
    +        load_vec_a = load_vec if tname in ("f32", "f16") else "2"
    +        tasks.append(string_to_spv(f"{shader_name}_{tname}_f32", "mul_mm.comp", base_dict | {data_a_key: "1", "B_TYPE": "float", "D_TYPE": "float"}, fp16))
    +        tasks.append(string_to_spv(f"{shader_name}_{tname}_f32_aligned", "mul_mm.comp", base_dict | {data_a_key: "2", "LOAD_VEC_A": load_vec_a, "LOAD_VEC_B": load_vec, "B_TYPE": aligned_b_type_f32, "D_TYPE": "float"}, fp16))
     
     
     async def main():
    @@ -2770,292 +99,81 @@ async def main():
     
         tasks = []
     
    -    stream = []
    -
         for fp16 in (False, True):
    -        # mulmat
    -        if fp16:
    -            shader_float_type = shader_f16
    -            load_vec = "8"
    -            vec_type_f16 = "f16mat2x4"
    -            vec_type = "mat2x4"
    -        else:
    -            shader_float_type = shader_f32
    -            load_vec = "4"
    -            vec_type_f16 = "f16vec4"
    -            vec_type = "vec4"
    -
    -        stream.clear()
    -        stream.extend((mulmat_head, shader_float_type, mulmat_body1, mulmat_load_scalar, mulmat_body2))
    -        tasks.append(string_to_spv("matmul_f32", "".join(stream), {"A_TYPE": "float", "B_TYPE": "float", "D_TYPE": "float"}, fp16))
    -        tasks.append(string_to_spv("matmul_f32_aligned", "".join(stream), {"LOAD_VEC_A": load_vec, "LOAD_VEC_B": load_vec, "A_TYPE": vec_type, "B_TYPE": vec_type, "D_TYPE": "float"}, fp16))
    -
    -        tasks.append(string_to_spv("matmul_f32_f16", "".join(stream), {"A_TYPE": "float", "B_TYPE": "float16_t", "D_TYPE": "float"}, fp16))
    -        tasks.append(string_to_spv("matmul_f32_f16_aligned", "".join(stream), {"LOAD_VEC_A": load_vec, "LOAD_VEC_B": load_vec, "A_TYPE": vec_type, "B_TYPE": vec_type_f16, "D_TYPE": "float"}, fp16))
    -
    -        tasks.append(string_to_spv("matmul_f16", "".join(stream), {"A_TYPE": "float16_t", "B_TYPE": "float16_t", "D_TYPE": "float"}, fp16))
    -        tasks.append(string_to_spv("matmul_f16_aligned", "".join(stream), {"LOAD_VEC_A": load_vec, "LOAD_VEC_B": load_vec, "A_TYPE": vec_type_f16, "B_TYPE": vec_type_f16, "D_TYPE": "float"}, fp16))
    -
    -        tasks.append(string_to_spv("matmul_f16_f32", "".join(stream), {"A_TYPE": "float16_t", "B_TYPE": "float", "D_TYPE": "float"}, fp16))
    -        tasks.append(string_to_spv("matmul_f16_f32_aligned", "".join(stream), {"LOAD_VEC_A": load_vec, "LOAD_VEC_B": load_vec, "A_TYPE": vec_type_f16, "B_TYPE": vec_type, "D_TYPE": "float"}, fp16))
    -
    -        stream.clear()
    -        stream.extend((mulmat_head, shader_int8_ext, shader_float_type, shader_q4_0_defines, mulmat_body1, mulmat_load_q4_0, mulmat_body2))
    -        tasks.append(string_to_spv("matmul_q4_0_f32", "".join(stream), {"LOAD_VEC_A": 2, "A_TYPE": "block_q4_0", "B_TYPE": "float", "D_TYPE": "float"}, fp16))
    -        tasks.append(string_to_spv("matmul_q4_0_f32_aligned", "".join(stream), {"LOAD_VEC_A": 2, "LOAD_VEC_B": load_vec, "A_TYPE": "block_q4_0", "B_TYPE": vec_type, "D_TYPE": "float"}, fp16))
    -
    -        stream.clear()
    -        stream.extend((mulmat_head, shader_int8_ext, shader_float_type, shader_q4_1_defines, mulmat_body1, mulmat_load_q4_1, mulmat_body2))
    -        tasks.append(string_to_spv("matmul_q4_1_f32", "".join(stream), {"LOAD_VEC_A": 2, "A_TYPE": "block_q4_1", "B_TYPE": "float", "D_TYPE": "float"}, fp16))
    -        tasks.append(string_to_spv("matmul_q4_1_f32_aligned", "".join(stream), {"LOAD_VEC_A": 2, "LOAD_VEC_B": load_vec, "A_TYPE": "block_q4_1", "B_TYPE": vec_type, "D_TYPE": "float"}, fp16))
    -
    -        stream.clear()
    -        stream.extend((mulmat_head, shader_int8_ext, shader_float_type, shader_q5_0_defines, mulmat_body1, mulmat_load_q5_0, mulmat_body2))
    -        tasks.append(string_to_spv("matmul_q5_0_f32", "".join(stream), {"LOAD_VEC_A": 2, "A_TYPE": "block_q5_0", "B_TYPE": "float", "D_TYPE": "float"}, fp16))
    -        tasks.append(string_to_spv("matmul_q5_0_f32_aligned", "".join(stream), {"LOAD_VEC_A": 2, "LOAD_VEC_B": load_vec, "A_TYPE": "block_q5_0", "B_TYPE": vec_type, "D_TYPE": "float"}, fp16))
    -
    -        stream.clear()
    -        stream.extend((mulmat_head, shader_int8_ext, shader_float_type, shader_q5_1_defines, mulmat_body1, mulmat_load_q5_1, mulmat_body2))
    -        tasks.append(string_to_spv("matmul_q5_1_f32", "".join(stream), {"LOAD_VEC_A": 2, "A_TYPE": "block_q5_1", "B_TYPE": "float", "D_TYPE": "float"}, fp16))
    -        tasks.append(string_to_spv("matmul_q5_1_f32_aligned", "".join(stream), {"LOAD_VEC_A": 2, "LOAD_VEC_B": load_vec, "A_TYPE": "block_q5_1", "B_TYPE": vec_type, "D_TYPE": "float"}, fp16))
    -
    -        stream.clear()
    -        stream.extend((mulmat_head, shader_int8_ext, shader_float_type, shader_q8_0_defines, mulmat_body1, mulmat_load_q8_0, mulmat_body2))
    -        tasks.append(string_to_spv("matmul_q8_0_f32", "".join(stream), {"LOAD_VEC_A": 2, "A_TYPE": "block_q8_0", "B_TYPE": "float", "D_TYPE": "float"}, fp16))
    -        tasks.append(string_to_spv("matmul_q8_0_f32_aligned", "".join(stream), {"LOAD_VEC_A": 2, "LOAD_VEC_B": load_vec, "A_TYPE": "block_q8_0", "B_TYPE": vec_type, "D_TYPE": "float"}, fp16))
    -
    -        stream.clear()
    -        stream.extend((mulmat_head, shader_int8_ext, shader_float_type, shader_q2_K_defines, mulmat_body1, mulmat_load_q2_K, mulmat_body2))
    -        tasks.append(string_to_spv("matmul_q2_k_f32", "".join(stream), {"LOAD_VEC_A": 2, "A_TYPE": "block_q2_K", "B_TYPE": "float", "D_TYPE": "float"}, fp16))
    -        tasks.append(string_to_spv("matmul_q2_k_f32_aligned", "".join(stream), {"LOAD_VEC_A": 2, "LOAD_VEC_B": load_vec, "A_TYPE": "block_q2_K", "B_TYPE": vec_type, "D_TYPE": "float"}, fp16))
    -
    -        stream.clear()
    -        stream.extend((mulmat_head, shader_int8_ext, shader_float_type, shader_q3_K_defines, mulmat_body1, mulmat_load_q3_K, mulmat_body2))
    -        tasks.append(string_to_spv("matmul_q3_k_f32", "".join(stream), {"LOAD_VEC_A": 2, "A_TYPE": "block_q3_K", "B_TYPE": "float", "D_TYPE": "float"}, fp16))
    -        tasks.append(string_to_spv("matmul_q3_k_f32_aligned", "".join(stream), {"LOAD_VEC_A": 2, "LOAD_VEC_B": load_vec, "A_TYPE": "block_q3_K", "B_TYPE": vec_type, "D_TYPE": "float"}, fp16))
    -
    -        stream.clear()
    -        stream.extend((mulmat_head, shader_int8_ext, shader_float_type, shader_q4_K_defines, mulmat_body1, mulmat_load_q4_K, mulmat_body2))
    -        tasks.append(string_to_spv("matmul_q4_k_f32", "".join(stream), {"LOAD_VEC_A": 2, "A_TYPE": "block_q4_K", "B_TYPE": "float", "D_TYPE": "float"}, fp16))
    -        tasks.append(string_to_spv("matmul_q4_k_f32_aligned", "".join(stream), {"LOAD_VEC_A": 2, "LOAD_VEC_B": load_vec, "A_TYPE": "block_q4_K", "B_TYPE": vec_type, "D_TYPE": "float"}, fp16))
    -
    -        stream.clear()
    -        stream.extend((mulmat_head, shader_int8_ext, shader_float_type, shader_q5_K_defines, mulmat_body1, mulmat_load_q5_K, mulmat_body2))
    -        tasks.append(string_to_spv("matmul_q5_k_f32", "".join(stream), {"LOAD_VEC_A": 2, "A_TYPE": "block_q5_K", "B_TYPE": "float", "D_TYPE": "float"}, fp16))
    -        tasks.append(string_to_spv("matmul_q5_k_f32_aligned", "".join(stream), {"LOAD_VEC_A": 2, "LOAD_VEC_B": load_vec, "A_TYPE": "block_q5_K", "B_TYPE": vec_type, "D_TYPE": "float"}, fp16))
    -
    -        stream.clear()
    -        stream.extend((mulmat_head, shader_int8_ext, shader_float_type, shader_q6_K_defines, mulmat_body1, mulmat_load_q6_K, mulmat_body2))
    -        tasks.append(string_to_spv("matmul_q6_k_f32", "".join(stream), {"LOAD_VEC_A": 2, "A_TYPE": "block_q6_K", "B_TYPE": "float", "D_TYPE": "float"}, fp16))
    -        tasks.append(string_to_spv("matmul_q6_k_f32_aligned", "".join(stream), {"LOAD_VEC_A": 2, "LOAD_VEC_B": load_vec, "A_TYPE": "block_q6_K", "B_TYPE": vec_type, "D_TYPE": "float"}, fp16))
    -
    +        # MUL_MAT
    +        matmul_shaders(tasks, fp16, False)
             # MUL_MAT_ID
    -        stream.clear()
    -        stream.extend((mulmat_head, shader_float_type, mulmat_body1, mulmat_load_scalar, mulmat_body2))
    -        tasks.append(string_to_spv("matmul_id_f32", "".join(stream), {"MUL_MAT_ID": "1", "A_TYPE": "float", "B_TYPE": "float", "D_TYPE": "float"}, fp16))
    -        tasks.append(string_to_spv("matmul_id_f32_aligned", "".join(stream), {"MUL_MAT_ID": "1", "LOAD_VEC_A": load_vec, "LOAD_VEC_B": load_vec, "A_TYPE": vec_type, "B_TYPE": vec_type, "D_TYPE": "float"}, fp16))
    -
    -        tasks.append(string_to_spv("matmul_id_f16", "".join(stream), {"MUL_MAT_ID": "1", "A_TYPE": "float16_t", "B_TYPE": "float16_t", "D_TYPE": "float"}, fp16))
    -        tasks.append(string_to_spv("matmul_id_f16_aligned", "".join(stream), {"MUL_MAT_ID": "1", "LOAD_VEC_A": load_vec, "LOAD_VEC_B": load_vec, "A_TYPE": vec_type_f16, "B_TYPE": vec_type_f16, "D_TYPE": "float"}, fp16))
    -
    -        tasks.append(string_to_spv("matmul_id_f16_f32", "".join(stream), {"MUL_MAT_ID": "1", "A_TYPE": "float16_t", "B_TYPE": "float", "D_TYPE": "float"}, fp16))
    -        tasks.append(string_to_spv("matmul_id_f16_f32_aligned", "".join(stream), {"MUL_MAT_ID": "1", "LOAD_VEC_A": load_vec, "LOAD_VEC_B": load_vec, "A_TYPE": vec_type_f16, "B_TYPE": vec_type, "D_TYPE": "float"}, fp16))
    -
    -        stream.clear()
    -        stream.extend((mulmat_head, shader_int8_ext, shader_float_type, shader_q4_0_defines, mulmat_body1, mulmat_load_q4_0, mulmat_body2))
    -        tasks.append(string_to_spv("matmul_id_q4_0_f32", "".join(stream), {"MUL_MAT_ID": "1", "LOAD_VEC_A": 2, "A_TYPE": "block_q4_0", "B_TYPE": "float", "D_TYPE": "float"}, fp16))
    -        tasks.append(string_to_spv("matmul_id_q4_0_f32_aligned", "".join(stream), {"MUL_MAT_ID": "1", "LOAD_VEC_A": 2, "LOAD_VEC_B": load_vec, "A_TYPE": "block_q4_0", "B_TYPE": vec_type, "D_TYPE": "float"}, fp16))
    -
    -        stream.clear()
    -        stream.extend((mulmat_head, shader_int8_ext, shader_float_type, shader_q4_1_defines, mulmat_body1, mulmat_load_q4_1, mulmat_body2))
    -        tasks.append(string_to_spv("matmul_id_q4_1_f32", "".join(stream), {"MUL_MAT_ID": "1", "LOAD_VEC_A": 2, "A_TYPE": "block_q4_1", "B_TYPE": "float", "D_TYPE": "float"}, fp16))
    -        tasks.append(string_to_spv("matmul_id_q4_1_f32_aligned", "".join(stream), {"MUL_MAT_ID": "1", "LOAD_VEC_A": 2, "LOAD_VEC_B": load_vec, "A_TYPE": "block_q4_1", "B_TYPE": vec_type, "D_TYPE": "float"}, fp16))
    -
    -        stream.clear()
    -        stream.extend((mulmat_head, shader_int8_ext, shader_float_type, shader_q5_0_defines, mulmat_body1, mulmat_load_q5_0, mulmat_body2))
    -        tasks.append(string_to_spv("matmul_id_q5_0_f32", "".join(stream), {"MUL_MAT_ID": "1", "LOAD_VEC_A": 2, "A_TYPE": "block_q5_0", "B_TYPE": "float", "D_TYPE": "float"}, fp16))
    -        tasks.append(string_to_spv("matmul_id_q5_0_f32_aligned", "".join(stream), {"MUL_MAT_ID": "1", "LOAD_VEC_A": 2, "LOAD_VEC_B": load_vec, "A_TYPE": "block_q5_0", "B_TYPE": vec_type, "D_TYPE": "float"}, fp16))
    -
    -        stream.clear()
    -        stream.extend((mulmat_head, shader_int8_ext, shader_float_type, shader_q5_1_defines, mulmat_body1, mulmat_load_q5_1, mulmat_body2))
    -        tasks.append(string_to_spv("matmul_id_q5_1_f32", "".join(stream), {"MUL_MAT_ID": "1", "LOAD_VEC_A": 2, "A_TYPE": "block_q5_1", "B_TYPE": "float", "D_TYPE": "float"}, fp16))
    -        tasks.append(string_to_spv("matmul_id_q5_1_f32_aligned", "".join(stream), {"MUL_MAT_ID": "1", "LOAD_VEC_A": 2, "LOAD_VEC_B": load_vec, "A_TYPE": "block_q5_1", "B_TYPE": vec_type, "D_TYPE": "float"}, fp16))
    -
    -        stream.clear()
    -        stream.extend((mulmat_head, shader_int8_ext, shader_float_type, shader_q8_0_defines, mulmat_body1, mulmat_load_q8_0, mulmat_body2))
    -        tasks.append(string_to_spv("matmul_id_q8_0_f32", "".join(stream), {"MUL_MAT_ID": "1", "LOAD_VEC_A": 2, "A_TYPE": "block_q8_0", "B_TYPE": "float", "D_TYPE": "float"}, fp16))
    -        tasks.append(string_to_spv("matmul_id_q8_0_f32_aligned", "".join(stream), {"MUL_MAT_ID": "1", "LOAD_VEC_A": 2, "LOAD_VEC_B": load_vec, "A_TYPE": "block_q8_0", "B_TYPE": vec_type, "D_TYPE": "float"}, fp16))
    -
    -        stream.clear()
    -        stream.extend((mulmat_head, shader_int8_ext, shader_float_type, shader_q2_K_defines, mulmat_body1, mulmat_load_q2_K, mulmat_body2))
    -        tasks.append(string_to_spv("matmul_id_q2_k_f32", "".join(stream), {"MUL_MAT_ID": "1", "LOAD_VEC_A": 2, "A_TYPE": "block_q2_K", "B_TYPE": "float", "D_TYPE": "float"}, fp16))
    -        tasks.append(string_to_spv("matmul_id_q2_k_f32_aligned", "".join(stream), {"MUL_MAT_ID": "1", "LOAD_VEC_A": 2, "LOAD_VEC_B": load_vec, "A_TYPE": "block_q2_K", "B_TYPE": vec_type, "D_TYPE": "float"}, fp16))
    -
    -        stream.clear()
    -        stream.extend((mulmat_head, shader_int8_ext, shader_float_type, shader_q3_K_defines, mulmat_body1, mulmat_load_q3_K, mulmat_body2))
    -        tasks.append(string_to_spv("matmul_id_q3_k_f32", "".join(stream), {"MUL_MAT_ID": "1", "LOAD_VEC_A": 2, "A_TYPE": "block_q3_K", "B_TYPE": "float", "D_TYPE": "float"}, fp16))
    -        tasks.append(string_to_spv("matmul_id_q3_k_f32_aligned", "".join(stream), {"MUL_MAT_ID": "1", "LOAD_VEC_A": 2, "LOAD_VEC_B": load_vec, "A_TYPE": "block_q3_K", "B_TYPE": vec_type, "D_TYPE": "float"}, fp16))
    -
    -        stream.clear()
    -        stream.extend((mulmat_head, shader_int8_ext, shader_float_type, shader_q4_K_defines, mulmat_body1, mulmat_load_q4_K, mulmat_body2))
    -        tasks.append(string_to_spv("matmul_id_q4_k_f32", "".join(stream), {"MUL_MAT_ID": "1", "LOAD_VEC_A": 2, "A_TYPE": "block_q4_K", "B_TYPE": "float", "D_TYPE": "float"}, fp16))
    -        tasks.append(string_to_spv("matmul_id_q4_k_f32_aligned", "".join(stream), {"MUL_MAT_ID": "1", "LOAD_VEC_A": 2, "LOAD_VEC_B": load_vec, "A_TYPE": "block_q4_K", "B_TYPE": vec_type, "D_TYPE": "float"}, fp16))
    -
    -        stream.clear()
    -        stream.extend((mulmat_head, shader_int8_ext, shader_float_type, shader_q5_K_defines, mulmat_body1, mulmat_load_q5_K, mulmat_body2))
    -        tasks.append(string_to_spv("matmul_id_q5_k_f32", "".join(stream), {"MUL_MAT_ID": "1", "LOAD_VEC_A": 2, "A_TYPE": "block_q5_K", "B_TYPE": "float", "D_TYPE": "float"}, fp16))
    -        tasks.append(string_to_spv("matmul_id_q5_k_f32_aligned", "".join(stream), {"MUL_MAT_ID": "1", "LOAD_VEC_A": 2, "LOAD_VEC_B": load_vec, "A_TYPE": "block_q5_K", "B_TYPE": vec_type, "D_TYPE": "float"}, fp16))
    -
    -        stream.clear()
    -        stream.extend((mulmat_head, shader_int8_ext, shader_float_type, shader_q6_K_defines, mulmat_body1, mulmat_load_q6_K, mulmat_body2))
    -        tasks.append(string_to_spv("matmul_id_q6_k_f32", "".join(stream), {"MUL_MAT_ID": "1", "LOAD_VEC_A": 2, "A_TYPE": "block_q6_K", "B_TYPE": "float", "D_TYPE": "float"}, fp16))
    -        tasks.append(string_to_spv("matmul_id_q6_k_f32_aligned", "".join(stream), {"MUL_MAT_ID": "1", "LOAD_VEC_A": 2, "LOAD_VEC_B": load_vec, "A_TYPE": "block_q6_K", "B_TYPE": vec_type, "D_TYPE": "float"}, fp16))
    -
    -    # Shaders where precision is needed, so no fp16 version
    -
    -    # mul mat vec
    -    for i in range(0, VK_NUM_TYPES):
    -        stream.clear()
    -        stream.extend((mul_mat_vec_head, shader_int8_ext, shader_f32))
    -
    -        if i == GGML_TYPE_F32:
    -            stream.extend((shader_f32_defines, mul_mat_vec_layout, shader_float_dequant_func, mul_mat_vec_body))
    -        elif i == GGML_TYPE_F16:
    -            stream.extend((shader_f16_defines, mul_mat_vec_layout, shader_float_dequant_func, mul_mat_vec_body))
    -        elif i == GGML_TYPE_Q4_0:
    -            stream.extend((shader_q4_0_defines, mul_mat_vec_layout, shader_q4_0_dequant_func, mul_mat_vec_body))
    -        elif i == GGML_TYPE_Q4_1:
    -            stream.extend((shader_q4_1_defines, mul_mat_vec_layout, shader_q4_1_dequant_func, mul_mat_vec_body))
    -        elif i == GGML_TYPE_Q5_0:
    -            stream.extend((shader_q5_0_defines, mul_mat_vec_layout, shader_q5_0_dequant_func, mul_mat_vec_body))
    -        elif i == GGML_TYPE_Q5_1:
    -            stream.extend((shader_q5_1_defines, mul_mat_vec_layout, shader_q5_1_dequant_func, mul_mat_vec_body))
    -        elif i == GGML_TYPE_Q8_0:
    -            stream.extend((shader_q8_0_defines, mul_mat_vec_layout, shader_q8_0_dequant_func, mul_mat_vec_body))
    -        elif i == GGML_TYPE_Q2_K:
    -            stream.extend((shader_q2_K_defines, mul_mat_vec_layout, mul_mat_vec_q2_K_body))
    -        elif i == GGML_TYPE_Q3_K:
    -            stream.extend((shader_q3_K_defines, mul_mat_vec_layout, mul_mat_vec_q3_K_body))
    -        elif i == GGML_TYPE_Q4_K:
    -            stream.extend((shader_q4_K_defines, mul_mat_vec_layout, mul_mat_vec_q4_K_body))
    -        elif i == GGML_TYPE_Q5_K:
    -            stream.extend((shader_q5_K_defines, mul_mat_vec_layout, mul_mat_vec_q5_K_body))
    -        elif i == GGML_TYPE_Q6_K:
    -            stream.extend((shader_q6_K_defines, mul_mat_vec_layout, mul_mat_vec_q6_K_body))
    -        else:
    -            continue
    -
    -        tasks.append(string_to_spv(f"mul_mat_vec_{type_names[i]}_f32_f32", "".join(stream), {"B_TYPE": "float", "D_TYPE": "float", "K_QUANTS_PER_ITERATION": K_QUANTS_PER_ITERATION}))
    -        tasks.append(string_to_spv(f"mul_mat_vec_{type_names[i]}_f16_f32", "".join(stream), {"B_TYPE": "float16_t", "D_TYPE": "float", "K_QUANTS_PER_ITERATION": K_QUANTS_PER_ITERATION}))
    -
    -        tasks.append(string_to_spv(f"mul_mat_vec_id_{type_names[i]}_f32", "".join(stream), {"MUL_MAT_ID": "1", "B_TYPE": "float", "D_TYPE": "float", "K_QUANTS_PER_ITERATION": K_QUANTS_PER_ITERATION}))
    -
    -    # Dequant shaders
    -    for i in range(0, VK_NUM_TYPES):
    -        stream.clear()
    -
    -        stream.extend((dequant_head, shader_int8_ext, shader_f32))
    -
    -        if i == GGML_TYPE_F32:
    -            stream.append(dequant_f32_body)
    -        elif i == GGML_TYPE_Q4_0:
    -            stream.extend((shader_q4_0_defines, dequant_q4_0_body))
    -        elif i == GGML_TYPE_Q4_1:
    -            stream.extend((shader_q4_1_defines, dequant_q4_1_body))
    -        elif i == GGML_TYPE_Q5_0:
    -            stream.extend((shader_q5_0_defines, dequant_q5_0_body))
    -        elif i == GGML_TYPE_Q5_1:
    -            stream.extend((shader_q5_1_defines, dequant_q5_1_body))
    -        elif i == GGML_TYPE_Q8_0:
    -            stream.extend((shader_q8_0_defines, dequant_q8_0_body))
    -        elif i == GGML_TYPE_Q2_K:
    -            stream.extend((shader_q2_K_defines, dequant_q2_K_body))
    -        elif i == GGML_TYPE_Q3_K:
    -            stream.extend((shader_q3_K_defines, dequant_q3_K_body))
    -        elif i == GGML_TYPE_Q4_K:
    -            stream.extend((shader_q4_K_defines, dequant_q4_K_body))
    -        elif i == GGML_TYPE_Q5_K:
    -            stream.extend((shader_q5_K_defines, dequant_q5_K_body))
    -        elif i == GGML_TYPE_Q6_K:
    -            stream.extend((shader_q6_K_defines, dequant_q6_K_body))
    -        else:
    -            continue
    -
    -        tasks.append(string_to_spv(f"dequant_{type_names[i]}", "".join(stream), {"D_TYPE": "float16_t"}))
    -
    -    # get_rows
    -    for i in range(0, VK_NUM_TYPES):
    -        stream.clear()
    -        stream.extend((generic_binary_op_head, shader_int8_ext, shader_f32))
    -        optimization_workaround = False
    -
    -        if i == GGML_TYPE_F32:
    -            stream.extend((shader_f32_defines, generic_binary_op_layout, generic_binary_op_funcs, get_rows_float_body))
    -        elif i == GGML_TYPE_F16:
    -            stream.extend((shader_f16_defines, generic_binary_op_layout, generic_binary_op_funcs, get_rows_float_body))
    -            optimization_workaround = True
    -        elif i == GGML_TYPE_Q4_0:
    -            stream.extend((shader_q4_0_defines, generic_binary_op_layout, shader_q4_0_dequant_func, generic_binary_op_funcs, get_rows_body))
    -        elif i == GGML_TYPE_Q4_1:
    -            stream.extend((shader_q4_1_defines, generic_binary_op_layout, shader_q4_1_dequant_func, generic_binary_op_funcs, get_rows_body))
    -        elif i == GGML_TYPE_Q5_0:
    -            stream.extend((shader_q5_0_defines, generic_binary_op_layout, shader_q5_0_dequant_func, generic_binary_op_funcs, get_rows_body))
    -        elif i == GGML_TYPE_Q5_1:
    -            stream.extend((shader_q5_1_defines, generic_binary_op_layout, shader_q5_1_dequant_func, generic_binary_op_funcs, get_rows_body))
    -        elif i == GGML_TYPE_Q8_0:
    -            stream.extend((shader_q8_0_defines, generic_binary_op_layout, shader_q8_0_dequant_func, generic_binary_op_funcs, get_rows_body))
    -        else:
    -            continue
    -
    -        if optimization_workaround:
    -            tasks.append(string_to_spv(f"get_rows_{type_names[i]}", "".join(stream), {"B_TYPE": "int", "D_TYPE": "float16_t", "OPTIMIZATION_ERROR_WORKAROUND": "1"}))
    -        else:
    -            tasks.append(string_to_spv(f"get_rows_{type_names[i]}", "".join(stream), {"B_TYPE": "int", "D_TYPE": "float16_t"}))
    -        tasks.append(string_to_spv(f"get_rows_{type_names[i]}_f32", "".join(stream), {"B_TYPE": "int", "D_TYPE": "float"}))
    -
    -    tasks.append(string_to_spv("mul_mat_vec_p021_f16_f32", mul_mat_p021_src, {"A_TYPE": "float16_t", "B_TYPE": "float", "D_TYPE": "float"}))
    -    tasks.append(string_to_spv("mul_mat_vec_nc_f16_f32", mul_mat_nc_src, {"A_TYPE": "float16_t", "B_TYPE": "float", "D_TYPE": "float"}))
    +        matmul_shaders(tasks, fp16, True)
    +
    +    for tname in type_names:
    +        base_dict = {"FLOAT_TYPE": "float"}
    +
    +        # mul mat vec
    +        data_a_key = f"DATA_A_{tname.upper()}"
    +        shader = f"mul_mat_vec_{tname}.comp" if tname.endswith("_k") else "mul_mat_vec.comp"
    +
    +        tasks.append(string_to_spv(f"mul_mat_vec_{tname}_f32_f32", shader, base_dict | {data_a_key: "1", "B_TYPE": "float", "D_TYPE": "float"}))
    +        tasks.append(string_to_spv(f"mul_mat_vec_{tname}_f16_f32", shader, base_dict | {data_a_key: "1", "B_TYPE": "float16_t", "D_TYPE": "float"}))
    +
    +        tasks.append(string_to_spv(f"mul_mat_vec_id_{tname}_f32", shader, base_dict | {"MUL_MAT_ID": "1", data_a_key: "1", "B_TYPE": "float", "D_TYPE": "float"}))
    +
    +        # Dequant shaders
    +        if tname != "f16":
    +            tasks.append(string_to_spv(f"dequant_{tname}", f"dequant_{tname}.comp", base_dict | {data_a_key: "1", "D_TYPE": "float16_t"}))
    +
    +        # get_rows
    +        if not tname.endswith("_k"):
    +            shader = "get_rows.comp" if tname in ("f32", "f16") else "get_rows_quant.comp"
    +
    +            if tname == "f16":
    +                tasks.append(string_to_spv(f"get_rows_{tname}", shader, {data_a_key: "1", "B_TYPE": "int", "D_TYPE": "float16_t", "OPTIMIZATION_ERROR_WORKAROUND": "1"}))
    +            else:
    +                tasks.append(string_to_spv(f"get_rows_{tname}", shader, {data_a_key: "1", "B_TYPE": "int", "D_TYPE": "float16_t"}))
    +            tasks.append(string_to_spv(f"get_rows_{tname}_f32", shader, {data_a_key: "1", "B_TYPE": "int", "D_TYPE": "float"}))
    +
    +    tasks.append(string_to_spv("mul_mat_vec_p021_f16_f32", "mul_mat_vec_p021.comp", {"A_TYPE": "float16_t", "B_TYPE": "float", "D_TYPE": "float"}))
    +    tasks.append(string_to_spv("mul_mat_vec_nc_f16_f32", "mul_mat_vec_nc.comp", {"A_TYPE": "float16_t", "B_TYPE": "float", "D_TYPE": "float"}))
     
         # Norms
    -    tasks.append(string_to_spv("norm_f32", f"{generic_head}\n{shader_f32}\n{norm_body}", {"A_TYPE": "float", "D_TYPE": "float"}))
    -    tasks.append(string_to_spv("rms_norm_f32", f"{generic_head}\n{shader_f32}\n{rms_norm_body}", {"A_TYPE": "float", "D_TYPE": "float"}))
    +    tasks.append(string_to_spv("norm_f32", "norm.comp", base_dict | {"A_TYPE": "float", "D_TYPE": "float"}))
    +    tasks.append(string_to_spv("rms_norm_f32", "rms_norm.comp", base_dict | {"A_TYPE": "float", "D_TYPE": "float"}))
     
    -    tasks.append(string_to_spv("cpy_f32_f32", f"{generic_unary_op_combined}\n{cpy_end}", {"A_TYPE": "float", "D_TYPE": "float"}))
    -    tasks.append(string_to_spv("cpy_f32_f16", f"{generic_unary_op_combined}\n{cpy_end}", {"A_TYPE": "float", "D_TYPE": "float16_t"}))
    -    tasks.append(string_to_spv("cpy_f16_f16", f"{generic_unary_op_combined}\n{cpy_f16_f16_end}", {"A_TYPE": "float16_t", "D_TYPE": "float16_t"}))
    +    tasks.append(string_to_spv("cpy_f32_f32", "copy.comp", {"A_TYPE": "float", "D_TYPE": "float"}))
    +    tasks.append(string_to_spv("cpy_f32_f16", "copy.comp", {"A_TYPE": "float", "D_TYPE": "float16_t"}))
    +    tasks.append(string_to_spv("cpy_f16_f16", "copy.comp", {"A_TYPE": "float16_t", "D_TYPE": "float16_t", "OPTIMIZATION_ERROR_WORKAROUND": "1"}))
     
    -    tasks.append(string_to_spv("add_f32", f"{generic_binary_op_combined}\n{add_body}", {"A_TYPE": "float", "B_TYPE": "float", "D_TYPE": "float", "FLOAT_TYPE": "float"}))
    +    tasks.append(string_to_spv("add_f32", "add.comp", {"A_TYPE": "float", "B_TYPE": "float", "D_TYPE": "float", "FLOAT_TYPE": "float"}))
     
    -    tasks.append(string_to_spv("split_k_reduce", mulmat_split_k_reduce_src, {}))
    +    tasks.append(string_to_spv("split_k_reduce", "mul_mat_split_k_reduce.comp", {}))
     
    -    tasks.append(string_to_spv("mul_f32", f"{generic_binary_op_combined}\n{mul_body}", {"A_TYPE": "float", "B_TYPE": "float", "D_TYPE": "float", "FLOAT_TYPE": "float"}))
    +    tasks.append(string_to_spv("mul_f32", "mul.comp", {"A_TYPE": "float", "B_TYPE": "float", "D_TYPE": "float", "FLOAT_TYPE": "float"}))
     
    -    tasks.append(string_to_spv("div_f32", f"{generic_binary_op_combined}\n{div_body}", {"A_TYPE": "float", "B_TYPE": "float", "D_TYPE": "float", "FLOAT_TYPE": "float"}))
    +    tasks.append(string_to_spv("div_f32", "div.comp", {"A_TYPE": "float", "B_TYPE": "float", "D_TYPE": "float", "FLOAT_TYPE": "float"}))
     
    -    tasks.append(string_to_spv("scale_f32", f"{generic_unary_op_combined}\n{scale_body}", {"A_TYPE": "float", "D_TYPE": "float", "FLOAT_TYPE": "float"}))
    +    tasks.append(string_to_spv("scale_f32", "scale.comp", {"A_TYPE": "float", "D_TYPE": "float", "FLOAT_TYPE": "float"}))
     
    -    tasks.append(string_to_spv("sqr_f32", f"{generic_unary_op_combined}\n{sqr_body}", {"A_TYPE": "float", "D_TYPE": "float", "FLOAT_TYPE": "float"}))
    +    tasks.append(string_to_spv("sqr_f32", "square.comp", {"A_TYPE": "float", "D_TYPE": "float", "FLOAT_TYPE": "float"}))
     
    -    tasks.append(string_to_spv("clamp_f32", f"{generic_unary_op_combined}\n{clamp_body}", {"A_TYPE": "float", "D_TYPE": "float", "FLOAT_TYPE": "float"}))
    +    tasks.append(string_to_spv("clamp_f32", "clamp.comp", {"A_TYPE": "float", "D_TYPE": "float", "FLOAT_TYPE": "float"}))
     
    -    tasks.append(string_to_spv("gelu_f32", f"{generic_head}\n{shader_f32}\n{gelu_body}", {"A_TYPE": "float", "D_TYPE": "float"}))
    -    tasks.append(string_to_spv("silu_f32", f"{generic_head}\n{shader_f32}\n{silu_body}", {"A_TYPE": "float", "D_TYPE": "float"}))
    -    tasks.append(string_to_spv("relu_f32", f"{generic_head}\n{shader_f32}\n{relu_body}", {"A_TYPE": "float", "D_TYPE": "float"}))
    +    tasks.append(string_to_spv("gelu_f32", "gelu.comp", {"A_TYPE": "float", "D_TYPE": "float"}))
    +    tasks.append(string_to_spv("silu_f32", "silu.comp", {"A_TYPE": "float", "D_TYPE": "float"}))
    +    tasks.append(string_to_spv("relu_f32", "relu.comp", {"A_TYPE": "float", "D_TYPE": "float"}))
     
    -    tasks.append(string_to_spv("diag_mask_inf_f32", f"{diag_mask_inf_head}\n{shader_f32}\n{diag_mask_inf_body}", {"A_TYPE": "float", "D_TYPE": "float"}))
    +    tasks.append(string_to_spv("diag_mask_inf_f32", "diag_mask_inf.comp", {"A_TYPE": "float", "D_TYPE": "float"}))
     
    -    tasks.append(string_to_spv("soft_max_f32", f"{soft_max_head}\n{shader_f32}\n{soft_max_body}", {"A_TYPE": "float", "B_TYPE": "float", "C_TYPE": "float", "D_TYPE": "float"}))
    -    tasks.append(string_to_spv("soft_max_f32_f16", f"{soft_max_head}\n{shader_f32}\n{soft_max_body}", {"A_TYPE": "float", "B_TYPE": "float16_t", "C_TYPE": "float16_t", "D_TYPE": "float"}))
    +    tasks.append(string_to_spv("soft_max_f32", "soft_max.comp", base_dict | {"A_TYPE": "float", "B_TYPE": "float", "D_TYPE": "float"}))
    +    tasks.append(string_to_spv("soft_max_f32_f16", "soft_max.comp", base_dict | {"A_TYPE": "float", "B_TYPE": "float16_t", "D_TYPE": "float"}))
     
    -    tasks.append(string_to_spv("rope_norm_f32", rope_norm_src, {"A_TYPE": "float", "D_TYPE": "float"}))
    -    tasks.append(string_to_spv("rope_norm_f16", rope_norm_src, {"A_TYPE": "float16_t", "D_TYPE": "float16_t"}))
    +    tasks.append(string_to_spv("rope_norm_f32", "rope_norm.comp", {"A_TYPE": "float", "D_TYPE": "float"}))
    +    tasks.append(string_to_spv("rope_norm_f16", "rope_norm.comp", {"A_TYPE": "float16_t", "D_TYPE": "float16_t"}))
     
    -    tasks.append(string_to_spv("rope_neox_f32", rope_neox_src, {"A_TYPE": "float", "D_TYPE": "float"}))
    -    tasks.append(string_to_spv("rope_neox_f16", rope_neox_src, {"A_TYPE": "float16_t", "D_TYPE": "float16_t"}))
    +    tasks.append(string_to_spv("rope_neox_f32", "rope_neox.comp", {"A_TYPE": "float", "D_TYPE": "float"}))
    +    tasks.append(string_to_spv("rope_neox_f16", "rope_neox.comp", {"A_TYPE": "float16_t", "D_TYPE": "float16_t"}))
     
    -    tasks.append(string_to_spv("argsort_f32", argsort_src, {"A_TYPE": "float"}))
    +    tasks.append(string_to_spv("argsort_f32", "argsort.comp", {"A_TYPE": "float"}))
     
    -    tasks.append(string_to_spv("sum_rows_f32", f"{generic_head}\n{shader_f32}\n{sum_rows_src}", {"A_TYPE": "float", "D_TYPE": "float"}))
    +    tasks.append(string_to_spv("sum_rows_f32", "sum_rows.comp", base_dict | {"A_TYPE": "float", "D_TYPE": "float"}))
     
         # Helper to decorate tasks with semaphore acquisition.
         async def withSemaphore(sem, task):
    diff --git a/vulkan-shaders/add.comp b/vulkan-shaders/add.comp
    new file mode 100644
    index 0000000000000..8475b01196386
    --- /dev/null
    +++ b/vulkan-shaders/add.comp
    @@ -0,0 +1,12 @@
    +#version 450
    +
    +#include "types.comp"
    +#include "generic_binary_head.comp"
    +
    +void main() {
    +    if (gl_GlobalInvocationID.x >= p.ne) {
    +        return;
    +    }
    +
    +    data_d[p.d_offset + dst_idx(gl_GlobalInvocationID.x)] = D_TYPE(FLOAT_TYPE(data_a[src0_idx(gl_GlobalInvocationID.x)]) + FLOAT_TYPE(data_b[src1_idx(gl_GlobalInvocationID.x)]));
    +}
    diff --git a/vulkan-shaders/argsort.comp b/vulkan-shaders/argsort.comp
    new file mode 100644
    index 0000000000000..e55414b03c519
    --- /dev/null
    +++ b/vulkan-shaders/argsort.comp
    @@ -0,0 +1,71 @@
    +#version 450
    +
    +#include "types.comp"
    +
    +#define BLOCK_SIZE 1024
    +#define ASC 0
    +
    +layout(local_size_x = BLOCK_SIZE, local_size_y = 1, local_size_z = 1) in;
    +
    +layout (binding = 0) readonly buffer A {A_TYPE data_a[];};
    +layout (binding = 1)          buffer D {int data_d[];};
    +
    +layout (push_constant) uniform parameter {
    +    uint ncols;
    +    uint ncols_pad;
    +    uint order;
    +} p;
    +
    +shared int dst_row[BLOCK_SIZE];
    +
    +void swap(uint idx0, uint idx1) {
    +    int tmp = dst_row[idx0];
    +    dst_row[idx0] = dst_row[idx1];
    +    dst_row[idx1] = tmp;
    +}
    +
    +void main() {
    +    // bitonic sort
    +    const int col = int(gl_LocalInvocationID.x);
    +    const uint row = gl_WorkGroupID.y;
    +
    +    if (col >= p.ncols_pad) {
    +        return;
    +    }
    +
    +    const uint row_offset = row * p.ncols;
    +
    +    // initialize indices
    +    dst_row[col] = col;
    +    barrier();
    +
    +    for (uint k = 2; k <= p.ncols_pad; k *= 2) {
    +        for (uint j = k / 2; j > 0; j /= 2) {
    +            const uint ixj = col ^ j;
    +            if (ixj > col) {
    +                if ((col & k) == 0) {
    +                    if (dst_row[col] >= p.ncols ||
    +                        (dst_row[ixj] < p.ncols && (p.order == ASC ?
    +                            data_a[row_offset + dst_row[col]] > data_a[row_offset + dst_row[ixj]] :
    +                            data_a[row_offset + dst_row[col]] < data_a[row_offset + dst_row[ixj]]))
    +                    ) {
    +                        swap(col, ixj);
    +                    }
    +                } else {
    +                    if (dst_row[ixj] >= p.ncols ||
    +                        (dst_row[col] < p.ncols && (p.order == ASC ?
    +                            data_a[row_offset + dst_row[col]] < data_a[row_offset + dst_row[ixj]] :
    +                            data_a[row_offset + dst_row[col]] > data_a[row_offset + dst_row[ixj]]))
    +                    ) {
    +                        swap(col, ixj);
    +                    }
    +                }
    +            }
    +            barrier();
    +        }
    +    }
    +
    +    if (col < p.ncols) {
    +        data_d[row_offset + col] = dst_row[col];
    +    }
    +}
    diff --git a/vulkan-shaders/clamp.comp b/vulkan-shaders/clamp.comp
    new file mode 100644
    index 0000000000000..ca272e227fd90
    --- /dev/null
    +++ b/vulkan-shaders/clamp.comp
    @@ -0,0 +1,13 @@
    +#version 450
    +
    +#include "types.comp"
    +#include "generic_unary_head.comp"
    +
    +void main() {
    +    if (gl_GlobalInvocationID.x >= p.ne) {
    +        return;
    +    }
    +
    +    const FLOAT_TYPE val = FLOAT_TYPE(data_a[src0_idx(gl_GlobalInvocationID.x)]);
    +    data_d[p.d_offset + dst_idx(gl_GlobalInvocationID.x)] = D_TYPE(val < p.param1 ? p.param1 : (val > p.param2 ? p.param2 : val));
    +}
    diff --git a/vulkan-shaders/copy.comp b/vulkan-shaders/copy.comp
    new file mode 100644
    index 0000000000000..efb55876e35c1
    --- /dev/null
    +++ b/vulkan-shaders/copy.comp
    @@ -0,0 +1,16 @@
    +#version 450
    +
    +#include "types.comp"
    +#include "generic_unary_head.comp"
    +
    +void main() {
    +    if (gl_GlobalInvocationID.x >= p.ne) {
    +        return;
    +    }
    +
    +#ifndef OPTIMIZATION_ERROR_WORKAROUND
    +    data_d[p.d_offset + dst_idx(gl_GlobalInvocationID.x)] = D_TYPE(data_a[src0_idx(gl_GlobalInvocationID.x)]);
    +#else
    +    data_d[p.d_offset + dst_idx(gl_GlobalInvocationID.x)] = data_a[src0_idx(gl_GlobalInvocationID.x)];
    +#endif
    +}
    diff --git a/vulkan-shaders/dequant_f32.comp b/vulkan-shaders/dequant_f32.comp
    new file mode 100644
    index 0000000000000..a4d3fca556208
    --- /dev/null
    +++ b/vulkan-shaders/dequant_f32.comp
    @@ -0,0 +1,20 @@
    +#version 450
    +
    +#include "dequant_head.comp"
    +
    +layout(local_size_x = 256, local_size_y = 1, local_size_z = 1) in;
    +
    +layout (binding = 0) readonly buffer A {float data_a[];};
    +layout (binding = 1) writeonly buffer D {D_TYPE data_b[];};
    +
    +void main() {
    +    const uint i = gl_GlobalInvocationID.x * 16;
    +
    +    if (i >= p.nel) {
    +        return;
    +    }
    +
    +    [[unroll]] for (uint l = 0; l < 16; l++) {
    +        data_b[i + l] = D_TYPE(data_a[i + l]);
    +    }
    +}
    diff --git a/vulkan-shaders/dequant_funcs.comp b/vulkan-shaders/dequant_funcs.comp
    new file mode 100644
    index 0000000000000..35d424d182f0c
    --- /dev/null
    +++ b/vulkan-shaders/dequant_funcs.comp
    @@ -0,0 +1,60 @@
    +#if !defined(DATA_A_F32) && !defined(DATA_A_F16)
    +#extension GL_EXT_shader_explicit_arithmetic_types_int8 : require
    +#endif
    +
    +#if defined(DATA_A_F32)
    +vec2 dequantize(uint ib, uint iqs, uint a_offset) {
    +    return vec2(data_a[a_offset + ib], data_a[a_offset + ib + 1]);
    +}
    +#endif
    +
    +#if defined(DATA_A_F16)
    +vec2 dequantize(uint ib, uint iqs, uint a_offset) {
    +    return vec2(data_a[a_offset + ib], data_a[a_offset + ib + 1]);
    +}
    +#endif
    +
    +#if defined(DATA_A_Q4_0)
    +vec2 dequantize(uint ib, uint iqs, uint a_offset) {
    +    const float d = float(data_a[a_offset + ib].d);
    +    const uint vui = uint(data_a[a_offset + ib].qs[iqs]);
    +    return (vec2(vui & 0xF, vui >> 4) - 8.0f) * d;
    +}
    +#endif
    +
    +#if defined(DATA_A_Q4_1)
    +vec2 dequantize(uint ib, uint iqs, uint a_offset) {
    +    const float d = float(data_a[a_offset + ib].d);
    +    const float m = float(data_a[a_offset + ib].m);
    +    const uint vui = uint(data_a[a_offset + ib].qs[iqs]);
    +    return vec2(vui & 0xF, vui >> 4) * d + m;
    +}
    +#endif
    +
    +#if defined(DATA_A_Q5_0)
    +vec2 dequantize(uint ib, uint iqs, uint a_offset) {
    +    const float d = float(data_a[a_offset + ib].d);
    +    const uint uint_qh = uint(data_a[a_offset + ib].qh[1]) << 16 | data_a[a_offset + ib].qh[0];
    +    const ivec2 qh = ivec2(((uint_qh >> iqs) << 4) & 0x10, (uint_qh >> (iqs + 12)) & 0x10);
    +    const uint vui = uint(data_a[a_offset + ib].qs[iqs]);
    +    return (vec2((vui & 0xF) | qh.x, (vui >> 4) | qh.y) - 16.0f) * d;
    +}
    +#endif
    +
    +#if defined(DATA_A_Q5_1)
    +vec2 dequantize(uint ib, uint iqs, uint a_offset) {
    +    const float d = float(data_a[a_offset + ib].d);
    +    const float m = float(data_a[a_offset + ib].m);
    +    const uint uint_qh = data_a[a_offset + ib].qh;
    +    const ivec2 qh = ivec2(((uint_qh >> iqs) << 4) & 0x10, (uint_qh >> (iqs + 12)) & 0x10);
    +    const uint vui = uint(data_a[a_offset + ib].qs[iqs]);
    +    return vec2((vui & 0xF) | qh.x, (vui >> 4) | qh.y) * d + m;
    +}
    +#endif
    +
    +#if defined(DATA_A_Q8_0)
    +vec2 dequantize(uint ib, uint iqs, uint a_offset) {
    +    const float d = float(data_a[a_offset + ib].d);
    +    return vec2(int(data_a[a_offset + ib].qs[iqs]), int(data_a[a_offset + ib].qs[iqs + 1])) * d;
    +}
    +#endif
    diff --git a/vulkan-shaders/dequant_head.comp b/vulkan-shaders/dequant_head.comp
    new file mode 100644
    index 0000000000000..8d806435b7163
    --- /dev/null
    +++ b/vulkan-shaders/dequant_head.comp
    @@ -0,0 +1,13 @@
    +#extension GL_EXT_control_flow_attributes : require
    +#extension GL_EXT_shader_16bit_storage : require
    +
    +layout (push_constant) uniform parameter
    +{
    +    uint M;
    +    uint K;
    +    uint stride_a;
    +    uint stride_b;
    +    uint nel;
    +} p;
    +
    +#include "types.comp"
    diff --git a/vulkan-shaders/dequant_q2_k.comp b/vulkan-shaders/dequant_q2_k.comp
    new file mode 100644
    index 0000000000000..157154af3a328
    --- /dev/null
    +++ b/vulkan-shaders/dequant_q2_k.comp
    @@ -0,0 +1,34 @@
    +#version 450
    +
    +#include "dequant_head.comp"
    +
    +layout(local_size_x = 64, local_size_y = 1, local_size_z = 1) in;
    +
    +layout (binding = 0) readonly buffer A {A_TYPE data_a[];};
    +layout (binding = 1) writeonly buffer D {D_TYPE data_b[];};
    +
    +void main() {
    +    [[unroll]] for (uint wgy = 0; wgy < 256; wgy++) {
    +        const uint i = gl_WorkGroupID.x * 256 + wgy;
    +        if (i >= p.M * p.K / QUANT_K) {
    +            return;
    +        }
    +
    +        const uint tid = gl_LocalInvocationID.x;
    +        const uint ip = tid / 32;
    +        const uint il = tid - 32 * ip;
    +        const uint is = 8 * ip + il / 16;
    +
    +        const uint y_idx = i * QUANT_K + 128 * ip + il;
    +
    +        const uint ql_idx = 32 * ip + il;
    +        const uint8_t qs = data_a[i].qs[32 * ip + il];
    +
    +        FLOAT_TYPE dall = FLOAT_TYPE(data_a[i].d.x);
    +        FLOAT_TYPE dmin = FLOAT_TYPE(data_a[i].d.y);
    +        data_b[y_idx +  0] = D_TYPE(dall * FLOAT_TYPE((data_a[i].scales[is+0] & 0xF) * ((qs >> 0) & 3)) - dmin * FLOAT_TYPE(data_a[i].scales[is+0] >> 4));
    +        data_b[y_idx + 32] = D_TYPE(dall * FLOAT_TYPE((data_a[i].scales[is+2] & 0xF) * ((qs >> 2) & 3)) - dmin * FLOAT_TYPE(data_a[i].scales[is+2] >> 4));
    +        data_b[y_idx + 64] = D_TYPE(dall * FLOAT_TYPE((data_a[i].scales[is+4] & 0xF) * ((qs >> 4) & 3)) - dmin * FLOAT_TYPE(data_a[i].scales[is+4] >> 4));
    +        data_b[y_idx + 96] = D_TYPE(dall * FLOAT_TYPE((data_a[i].scales[is+6] & 0xF) * ((qs >> 6) & 3)) - dmin * FLOAT_TYPE(data_a[i].scales[is+6] >> 4));
    +    }
    +}
    diff --git a/vulkan-shaders/dequant_q3_k.comp b/vulkan-shaders/dequant_q3_k.comp
    new file mode 100644
    index 0000000000000..c17dd0d999116
    --- /dev/null
    +++ b/vulkan-shaders/dequant_q3_k.comp
    @@ -0,0 +1,42 @@
    +#version 450
    +
    +#include "dequant_head.comp"
    +
    +layout(local_size_x = 64, local_size_y = 1, local_size_z = 1) in;
    +
    +layout (binding = 0) readonly buffer A {A_TYPE data_a[];};
    +layout (binding = 1) writeonly buffer D {D_TYPE data_b[];};
    +
    +void main() {
    +    [[unroll]] for (uint wgy = 0; wgy < 256; wgy++) {
    +        const uint i = uint(gl_WorkGroupID.x * 256 + wgy);
    +        if (i >= p.M * p.K / QUANT_K) {
    +            return;
    +        }
    +
    +        const uint r = gl_LocalInvocationID.x / 4;
    +        const uint tid = r / 2;
    +        const uint is0 = r % 2;
    +        const uint l0 = 16 * is0 + 4 * (gl_LocalInvocationID.x % 4);
    +        const uint n = tid / 4;
    +        const uint j = tid - 4*n;
    +
    +        const uint8_t m = uint8_t(1 << (4*n + j));
    +        const uint is = 8*n + 2*j + is0;
    +        const uint shift = 2*j;
    +
    +        const int8_t us = int8_t(is <  4 ? (data_a[i].scales[is-0] & 0xF) | (((data_a[i].scales[is+8] >> 0) & 3) << 4) :
    +                                 is <  8 ? (data_a[i].scales[is-0] & 0xF) | (((data_a[i].scales[is+4] >> 2) & 3) << 4) :
    +                                 is < 12 ? (data_a[i].scales[is-8] >>  4) | (((data_a[i].scales[is+0] >> 4) & 3) << 4) :
    +                                           (data_a[i].scales[is-8] >>  4) | (((data_a[i].scales[is-4] >> 6) & 3) << 4));
    +        const FLOAT_TYPE d_all = FLOAT_TYPE(data_a[i].d);
    +        const FLOAT_TYPE dl    = d_all * FLOAT_TYPE(us - 32);
    +
    +        const uint y_idx = i * QUANT_K + 128 * n + 32 * j;
    +        const uint qs_idx = 32*n;
    +
    +        for (uint l = l0; l < l0 + 4; ++l) {
    +            data_b[y_idx + l] = D_TYPE(dl * FLOAT_TYPE(int8_t((data_a[i].qs[qs_idx + l] >> shift) & 3) - (((data_a[i].hmask[l] & m) != 0) ? 0 : 4)));
    +        }
    +    }
    +}
    diff --git a/vulkan-shaders/dequant_q4_0.comp b/vulkan-shaders/dequant_q4_0.comp
    new file mode 100644
    index 0000000000000..11e07e66bc937
    --- /dev/null
    +++ b/vulkan-shaders/dequant_q4_0.comp
    @@ -0,0 +1,32 @@
    +#version 450
    +
    +#include "dequant_head.comp"
    +
    +layout(local_size_x = 256, local_size_y = 1, local_size_z = 1) in;
    +
    +layout (binding = 0) readonly buffer A {block_q4_0 data_a[];};
    +layout (binding = 1) writeonly buffer D {D_TYPE data_b[];};
    +
    +void main() {
    +    const uint i = gl_WorkGroupID.x * 4 + gl_LocalInvocationID.x / 64;
    +
    +    const uint tid = gl_LocalInvocationID.x % 64;
    +    const uint il  = tid/32;
    +    const uint ir  = tid%32;
    +    const uint ib = 32*i + ir;
    +    if (ib >= p.nel / 32) {
    +        return;
    +    }
    +
    +    const uint b_idx = 1024*i + 32*ir + 8*il;
    +
    +    const float d = float(data_a[ib].d);
    +    const float dm = -8.0f * d;
    +
    +    const uint q_idx = 8*il;
    +
    +    [[unroll]] for (uint l = 0; l < 8; ++l) {
    +        data_b[b_idx + l +  0] = D_TYPE(d * (data_a[ib].qs[q_idx + l] & 0xF) + dm);
    +        data_b[b_idx + l + 16] = D_TYPE(d * (data_a[ib].qs[q_idx + l] >>  4) + dm);
    +    }
    +}
    diff --git a/vulkan-shaders/dequant_q4_1.comp b/vulkan-shaders/dequant_q4_1.comp
    new file mode 100644
    index 0000000000000..2f27eee686eb9
    --- /dev/null
    +++ b/vulkan-shaders/dequant_q4_1.comp
    @@ -0,0 +1,32 @@
    +#version 450
    +
    +#include "dequant_head.comp"
    +
    +layout(local_size_x = 256, local_size_y = 1, local_size_z = 1) in;
    +
    +layout (binding = 0) readonly buffer A {block_q4_1 data_a[];};
    +layout (binding = 1) writeonly buffer D {D_TYPE data_b[];};
    +
    +void main() {
    +    const uint i = gl_WorkGroupID.x * 4 + gl_LocalInvocationID.x / 64;
    +
    +    const uint tid = gl_LocalInvocationID.x % 64;
    +    const uint il  = tid/32;
    +    const uint ir  = tid%32;
    +    const uint ib = 32*i + ir;
    +    if (ib >= p.nel / 32) {
    +        return;
    +    }
    +
    +    const uint b_idx = 1024*i + 32*ir + 8*il;
    +
    +    const float d = float(data_a[ib].d);
    +    const float m = float(data_a[ib].m);
    +
    +    const uint q_idx = 8*il;
    +
    +    [[unroll]] for (uint l = 0; l < 8; ++l) {
    +        data_b[b_idx + l +  0] = D_TYPE(d * (data_a[ib].qs[q_idx + l] & 0xF) + m);
    +        data_b[b_idx + l + 16] = D_TYPE(d * (data_a[ib].qs[q_idx + l] >>  4) + m);
    +    }
    +}
    diff --git a/vulkan-shaders/dequant_q4_k.comp b/vulkan-shaders/dequant_q4_k.comp
    new file mode 100644
    index 0000000000000..92acb75406db3
    --- /dev/null
    +++ b/vulkan-shaders/dequant_q4_k.comp
    @@ -0,0 +1,56 @@
    +#version 450
    +
    +#include "dequant_head.comp"
    +
    +layout(local_size_x = 32, local_size_y = 1, local_size_z = 1) in;
    +
    +layout (binding = 0) readonly buffer A {A_TYPE data_a[];};
    +layout (binding = 1) writeonly buffer D {D_TYPE data_b[];};
    +
    +void main() {
    +    [[unroll]] for (uint wgy = 0; wgy < 256; wgy++) {
    +        const uint i = gl_WorkGroupID.x * 256 + wgy;
    +        if (i >= p.M * p.K / QUANT_K) {
    +            return;
    +        }
    +
    +        const uint tid = gl_LocalInvocationID.x;
    +        const uint il = tid / 8;
    +        const uint ir = tid % 8;
    +        const uint is = 2 * il;
    +        const uint n = 4;
    +
    +        const FLOAT_TYPE dall = FLOAT_TYPE(data_a[i].d.x);
    +        const FLOAT_TYPE dmin = FLOAT_TYPE(data_a[i].d.y);
    +
    +        const uint y_idx = i * QUANT_K + 64 * il + n * ir;
    +        const uint qs_idx = 32*il + n * ir;
    +
    +        uint8_t sc;
    +        uint8_t m;
    +        if (is < 4) {
    +            sc = uint8_t(data_a[i].scales[is] & 63);
    +            m  = uint8_t(data_a[i].scales[is + 4] & 63);
    +        } else {
    +            sc = uint8_t((data_a[i].scales[is + 4] & 0xF) | ((data_a[i].scales[is - 4] >> 6) << 4));
    +            m  = uint8_t((data_a[i].scales[is + 4] >>  4) | ((data_a[i].scales[is    ] >> 6) << 4));
    +        }
    +        const FLOAT_TYPE d1 = dall * sc;
    +        const FLOAT_TYPE m1 = dmin * m;
    +
    +        if (is < 4) {
    +            sc = uint8_t(data_a[i].scales[is + 1] & 63);
    +            m  = uint8_t(data_a[i].scales[is + 5] & 63);
    +        } else {
    +            sc = uint8_t((data_a[i].scales[is + 5] & 0xF) | ((data_a[i].scales[is - 3] >> 6) << 4));
    +            m  = uint8_t((data_a[i].scales[is + 5] >>  4) | ((data_a[i].scales[is + 1] >> 6) << 4));
    +        }
    +        const FLOAT_TYPE d2 = dall * sc;
    +        const FLOAT_TYPE m2 = dmin * m;
    +
    +        [[unroll]] for (uint l = 0; l < n; ++l) {
    +            data_b[y_idx + l     ] = D_TYPE(d1 * FLOAT_TYPE(data_a[i].qs[qs_idx + l] & 0xF) - m1);
    +            data_b[y_idx + l + 32] = D_TYPE(d2 * FLOAT_TYPE(data_a[i].qs[qs_idx + l] >>  4) - m2);
    +        }
    +    }
    +}
    diff --git a/vulkan-shaders/dequant_q5_0.comp b/vulkan-shaders/dequant_q5_0.comp
    new file mode 100644
    index 0000000000000..b20b805292174
    --- /dev/null
    +++ b/vulkan-shaders/dequant_q5_0.comp
    @@ -0,0 +1,34 @@
    +#version 450
    +
    +#include "dequant_head.comp"
    +
    +layout(local_size_x = 256, local_size_y = 1, local_size_z = 1) in;
    +
    +layout (binding = 0) readonly buffer A {block_q5_0 data_a[];};
    +layout (binding = 1) writeonly buffer D {D_TYPE data_b[];};
    +
    +void main() {
    +    const uint i = gl_WorkGroupID.x * 4 + gl_LocalInvocationID.x / 64;
    +
    +    const uint tid = gl_LocalInvocationID.x % 64;
    +    const uint il  = tid/32;
    +    const uint ir  = tid%32;
    +    const uint ib = 32*i + ir;
    +    if (ib >= p.nel / 32) {
    +        return;
    +    }
    +
    +    const uint b_idx = 1024*i + 32*ir + 8*il;
    +
    +    const float d = float(data_a[ib].d);
    +    const uint qh = uint(data_a[ib].qh[1]) << 16 | data_a[ib].qh[0];
    +
    +    const uint q_idx = 8*il;
    +
    +    [[unroll]] for (uint l = 0; l < 8; ++l) {
    +        const uint iqs = q_idx + l;
    +        const uint vui = uint(data_a[ib].qs[iqs]);
    +        data_b[b_idx + l +  0] = D_TYPE(d * (((vui & 0xF) | (((qh >> iqs) << 4) & 0x10)) - 16.0f));
    +        data_b[b_idx + l + 16] = D_TYPE(d * (((vui >>  4) | ((qh >> (iqs + 12)) & 0x10)) - 16.0f));
    +    }
    +}
    diff --git a/vulkan-shaders/dequant_q5_1.comp b/vulkan-shaders/dequant_q5_1.comp
    new file mode 100644
    index 0000000000000..dc59fe3b77ee3
    --- /dev/null
    +++ b/vulkan-shaders/dequant_q5_1.comp
    @@ -0,0 +1,35 @@
    +#version 450
    +
    +#include "dequant_head.comp"
    +
    +layout(local_size_x = 256, local_size_y = 1, local_size_z = 1) in;
    +
    +layout (binding = 0) readonly buffer A {block_q5_1 data_a[];};
    +layout (binding = 1) writeonly buffer D {D_TYPE data_b[];};
    +
    +void main() {
    +    const uint i = gl_WorkGroupID.x * 4 + gl_LocalInvocationID.x / 64;
    +
    +    const uint tid = gl_LocalInvocationID.x % 64;
    +    const uint il  = tid/32;
    +    const uint ir  = tid%32;
    +    const uint ib = 32*i + ir;
    +    if (ib >= p.nel / 32) {
    +        return;
    +    }
    +
    +    const uint b_idx = 1024*i + 32*ir + 8*il;
    +
    +    const float d = float(data_a[ib].d);
    +    const float m = float(data_a[ib].m);
    +    const uint qh = data_a[ib].qh;
    +
    +    const uint q_idx = 8*il;
    +
    +    [[unroll]] for (uint l = 0; l < 8; ++l) {
    +        const uint iqs = q_idx + l;
    +        const uint vui = uint(data_a[ib].qs[iqs]);
    +        data_b[b_idx + l +  0] = D_TYPE(d * (((vui & 0xF) | (((qh >> iqs) << 4) & 0x10))) + m);
    +        data_b[b_idx + l + 16] = D_TYPE(d * (((vui >>  4) | ((qh >> (iqs + 12)) & 0x10))) + m);
    +    }
    +}
    diff --git a/vulkan-shaders/dequant_q5_k.comp b/vulkan-shaders/dequant_q5_k.comp
    new file mode 100644
    index 0000000000000..f314a76d105c6
    --- /dev/null
    +++ b/vulkan-shaders/dequant_q5_k.comp
    @@ -0,0 +1,58 @@
    +#version 450
    +
    +#include "dequant_head.comp"
    +
    +layout(local_size_x = 64, local_size_y = 1, local_size_z = 1) in;
    +
    +layout (binding = 0) readonly buffer A {A_TYPE data_a[];};
    +layout (binding = 1) writeonly buffer D {D_TYPE data_b[];};
    +
    +void main() {
    +    [[unroll]] for (uint wgy = 0; wgy < 256; wgy++) {
    +        const uint i = gl_WorkGroupID.x * 256 + wgy;
    +        if (i >= p.M * p.K / QUANT_K) {
    +            return;
    +        }
    +
    +        const uint tid = gl_LocalInvocationID.x;
    +        const uint il = tid / 16;
    +        const uint ir = tid % 16;
    +        const uint is = 2 * il;
    +
    +        const FLOAT_TYPE dall = FLOAT_TYPE(data_a[i].d.x);
    +        const FLOAT_TYPE dmin = FLOAT_TYPE(data_a[i].d.y);
    +
    +        const uint y_idx = i * QUANT_K + 64 * il + 2 * ir;
    +        const uint qs_idx = 32*il + 2 * ir;
    +        const uint qh_idx = 2 * ir;
    +
    +        uint8_t sc;
    +        uint8_t m;
    +        if (is < 4) {
    +            sc = uint8_t(data_a[i].scales[is] & 63);
    +            m  = uint8_t(data_a[i].scales[is + 4] & 63);
    +        } else {
    +            sc = uint8_t((data_a[i].scales[is + 4] & 0xF) | ((data_a[i].scales[is - 4] >> 6) << 4));
    +            m  = uint8_t((data_a[i].scales[is + 4] >>  4) | ((data_a[i].scales[is    ] >> 6) << 4));
    +        }
    +        const FLOAT_TYPE d1 = dall * sc;
    +        const FLOAT_TYPE m1 = dmin * m;
    +
    +        if (is < 4) {
    +            sc = uint8_t(data_a[i].scales[is + 1] & 63);
    +            m  = uint8_t(data_a[i].scales[is + 5] & 63);
    +        } else {
    +            sc = uint8_t((data_a[i].scales[is + 5] & 0xF) | ((data_a[i].scales[is - 3] >> 6) << 4));
    +            m  = uint8_t((data_a[i].scales[is + 5] >>  4) | ((data_a[i].scales[is + 1] >> 6) << 4));
    +        }
    +        const FLOAT_TYPE d2 = dall * sc;
    +        const FLOAT_TYPE m2 = dmin * m;
    +
    +        const uint8_t hm1 = uint8_t(1 << (2 * il    ));
    +        const uint8_t hm2 = uint8_t(1 << (2 * il + 1));
    +        data_b[y_idx     ] = D_TYPE(d1 * FLOAT_TYPE((data_a[i].qs[qs_idx    ] & 0xF) + (((data_a[i].qh[qh_idx    ] & hm1) != 0) ? 16 : 0)) - m1);
    +        data_b[y_idx +  1] = D_TYPE(d1 * FLOAT_TYPE((data_a[i].qs[qs_idx + 1] & 0xF) + (((data_a[i].qh[qh_idx + 1] & hm1) != 0) ? 16 : 0)) - m1);
    +        data_b[y_idx + 32] = D_TYPE(d2 * FLOAT_TYPE((data_a[i].qs[qs_idx    ]  >> 4) + (((data_a[i].qh[qh_idx    ] & hm2) != 0) ? 16 : 0)) - m2);
    +        data_b[y_idx + 33] = D_TYPE(d2 * FLOAT_TYPE((data_a[i].qs[qs_idx + 1]  >> 4) + (((data_a[i].qh[qh_idx + 1] & hm2) != 0) ? 16 : 0)) - m2);
    +    }
    +}
    diff --git a/vulkan-shaders/dequant_q6_k.comp b/vulkan-shaders/dequant_q6_k.comp
    new file mode 100644
    index 0000000000000..0b91317550f97
    --- /dev/null
    +++ b/vulkan-shaders/dequant_q6_k.comp
    @@ -0,0 +1,33 @@
    +#version 450
    +
    +#include "dequant_head.comp"
    +
    +layout(local_size_x = 64, local_size_y = 1, local_size_z = 1) in;
    +
    +layout (binding = 0) readonly buffer A {A_TYPE data_a[];};
    +layout (binding = 1) writeonly buffer D {D_TYPE data_b[];};
    +
    +void main() {
    +    [[unroll]] for (uint wgy = 0; wgy < 256; wgy++) {
    +        const uint i = gl_WorkGroupID.x * 256 + wgy;
    +        if (i >= p.M * p.K / QUANT_K) {
    +            return;
    +        }
    +        const uint tid = gl_LocalInvocationID.x;
    +        const uint ip = tid / 32;
    +        const uint il = tid - 32 * ip;
    +        const uint is = 8 * ip + il / 16;
    +
    +        const uint y_idx = i * QUANT_K + 128 * ip + il;
    +
    +        const uint ql_idx = 64 * ip + il;
    +        const uint8_t qh = data_a[i].qh[32 * ip + il];
    +
    +        const FLOAT_TYPE d = FLOAT_TYPE(data_a[i].d);
    +
    +        data_b[y_idx +  0] = D_TYPE(d * FLOAT_TYPE(data_a[i].scales[is + 0] * (int8_t((data_a[i].ql[ql_idx +  0] & 0xF) | (((qh >> 0) & 3) << 4)) - 32)));
    +        data_b[y_idx + 32] = D_TYPE(d * FLOAT_TYPE(data_a[i].scales[is + 2] * (int8_t((data_a[i].ql[ql_idx + 32] & 0xF) | (((qh >> 2) & 3) << 4)) - 32)));
    +        data_b[y_idx + 64] = D_TYPE(d * FLOAT_TYPE(data_a[i].scales[is + 4] * (int8_t((data_a[i].ql[ql_idx +  0] >>  4) | (((qh >> 4) & 3) << 4)) - 32)));
    +        data_b[y_idx + 96] = D_TYPE(d * FLOAT_TYPE(data_a[i].scales[is + 6] * (int8_t((data_a[i].ql[ql_idx + 32] >>  4) | (((qh >> 6) & 3) << 4)) - 32)));
    +    }
    +}
    diff --git a/vulkan-shaders/dequant_q8_0.comp b/vulkan-shaders/dequant_q8_0.comp
    new file mode 100644
    index 0000000000000..bd1344a88d129
    --- /dev/null
    +++ b/vulkan-shaders/dequant_q8_0.comp
    @@ -0,0 +1,31 @@
    +#version 450
    +
    +#include "dequant_head.comp"
    +
    +layout(local_size_x = 256, local_size_y = 1, local_size_z = 1) in;
    +
    +layout (binding = 0) readonly buffer A {block_q8_0 data_a[];};
    +layout (binding = 1) writeonly buffer D {D_TYPE data_b[];};
    +
    +void main() {
    +    const uint i = gl_WorkGroupID.x * 4 + gl_LocalInvocationID.x / 64;
    +
    +    const uint tid = gl_LocalInvocationID.x % 64;
    +    const uint il  = tid/32;
    +    const uint ir  = tid%32;
    +    const uint ib = 32*i + ir;
    +    if (ib >= p.nel / 32) {
    +        return;
    +    }
    +
    +    const uint b_idx = 1024*i + 32*ir + 16*il;
    +
    +    const float d = float(data_a[ib].d);
    +
    +    const uint q_idx = 16*il;
    +
    +    [[unroll]] for (uint l = 0; l < 16; l += 2) {
    +        data_b[b_idx + l    ] = D_TYPE(d * data_a[ib].qs[q_idx + l    ]);
    +        data_b[b_idx + l + 1] = D_TYPE(d * data_a[ib].qs[q_idx + l + 1]);
    +    }
    +}
    diff --git a/vulkan-shaders/diag_mask_inf.comp b/vulkan-shaders/diag_mask_inf.comp
    new file mode 100644
    index 0000000000000..4e68742b51671
    --- /dev/null
    +++ b/vulkan-shaders/diag_mask_inf.comp
    @@ -0,0 +1,34 @@
    +#version 450
    +
    +#extension GL_EXT_shader_16bit_storage : require
    +#extension GL_EXT_control_flow_attributes : enable
    +
    +layout (push_constant) uniform parameter
    +{
    +    uint ncols;
    +    uint rows_per_channel;
    +    uint n_past;
    +} p;
    +
    +#include "types.comp"
    +
    +layout(local_size_x = 512, local_size_y = 1, local_size_z = 1) in;
    +
    +layout (binding = 0) readonly buffer X {A_TYPE data_a[];};
    +layout (binding = 1) writeonly buffer D {D_TYPE data_d[];};
    +
    +void main() {
    +    const uint col = gl_GlobalInvocationID.y;
    +    const uint row = gl_GlobalInvocationID.x;
    +
    +    if (col >= p.ncols) {
    +        return;
    +    }
    +
    +    const uint i = row*p.ncols + col;
    +    if (col > p.n_past + row % p.rows_per_channel) {
    +        data_d[i] = D_TYPE(uintBitsToFloat(0xFF800000));
    +    } else {
    +        data_d[i] = D_TYPE(data_a[i]);
    +    }
    +}
    diff --git a/vulkan-shaders/div.comp b/vulkan-shaders/div.comp
    new file mode 100644
    index 0000000000000..8ee4bfc738865
    --- /dev/null
    +++ b/vulkan-shaders/div.comp
    @@ -0,0 +1,12 @@
    +#version 450
    +
    +#include "types.comp"
    +#include "generic_binary_head.comp"
    +
    +void main() {
    +    if (gl_GlobalInvocationID.x >= p.ne) {
    +        return;
    +    }
    +
    +    data_d[p.d_offset + dst_idx(gl_GlobalInvocationID.x)] = D_TYPE(FLOAT_TYPE(data_a[src0_idx(gl_GlobalInvocationID.x)]) / FLOAT_TYPE(data_b[src1_idx(gl_GlobalInvocationID.x)]));
    +}
    diff --git a/vulkan-shaders/gelu.comp b/vulkan-shaders/gelu.comp
    new file mode 100644
    index 0000000000000..9fe807cce9506
    --- /dev/null
    +++ b/vulkan-shaders/gelu.comp
    @@ -0,0 +1,25 @@
    +#version 450
    +
    +#include "generic_head.comp"
    +#include "types.comp"
    +
    +#extension GL_EXT_control_flow_attributes : enable
    +
    +layout(local_size_x = 512, local_size_y = 1, local_size_z = 1) in;
    +
    +layout (binding = 0) readonly buffer X {A_TYPE data_a[];};
    +layout (binding = 1) writeonly buffer D {D_TYPE data_d[];};
    +
    +void main() {
    +    const float GELU_COEF_A    = 0.044715f;
    +    const float SQRT_2_OVER_PI = 0.79788456080286535587989211986876f;
    +    const uint i = gl_GlobalInvocationID.x;
    +
    +    if (i >= p.KX) {
    +        return;
    +    }
    +
    +    const float xi = float(data_a[i]);
    +    const float val = SQRT_2_OVER_PI*xi*(1.0f + GELU_COEF_A*xi*xi);
    +    data_d[i] = D_TYPE(0.5f*xi*(2.0f - 2.0f / (exp(2 * val) + 1)));
    +}
    diff --git a/vulkan-shaders/generic_binary_head.comp b/vulkan-shaders/generic_binary_head.comp
    new file mode 100644
    index 0000000000000..ab45d2564aa34
    --- /dev/null
    +++ b/vulkan-shaders/generic_binary_head.comp
    @@ -0,0 +1,48 @@
    +#extension GL_EXT_shader_16bit_storage : require
    +
    +layout (push_constant) uniform parameter
    +{
    +    uint ne;
    +    uint ne00; uint ne01; uint ne02; uint ne03; uint nb00; uint nb01; uint nb02; uint nb03;
    +    uint ne10; uint ne11; uint ne12; uint ne13; uint nb10; uint nb11; uint nb12; uint nb13;
    +    uint ne20; uint ne21; uint ne22; uint ne23; uint nb20; uint nb21; uint nb22; uint nb23;
    +    uint d_offset;
    +    float param1; float param2;
    +} p;
    +
    +layout(local_size_x = 512, local_size_y = 1, local_size_z = 1) in;
    +
    +layout (binding = 0) readonly buffer A {A_TYPE data_a[];};
    +layout (binding = 1) readonly buffer B {B_TYPE data_b[];};
    +layout (binding = 2) writeonly buffer D {D_TYPE data_d[];};
    +
    +uint src0_idx(uint idx) {
    +    const uint i03 = idx / (p.ne02*p.ne01*p.ne00);
    +    const uint i03_offset = i03 * p.ne02*p.ne01*p.ne00;
    +    const uint i02 = (idx - i03_offset) / (p.ne01*p.ne00);
    +    const uint i02_offset = i02*p.ne01*p.ne00;
    +    const uint i01 = (idx - i03_offset - i02_offset) / p.ne00;
    +    const uint i00 = idx - i03_offset - i02_offset - i01*p.ne00;
    +    return i03*p.nb03 + i02*p.nb02 + i01*p.nb01 + i00*p.nb00;
    +}
    +
    +uint src1_idx(uint idx) {
    +    const uint i03 = idx / (p.ne02*p.ne01*p.ne00);
    +    const uint i03_offset = i03 * p.ne02*p.ne01*p.ne00;
    +    const uint i02 = (idx - i03_offset) / (p.ne01*p.ne00);
    +    const uint i02_offset = i02*p.ne01*p.ne00;
    +    const uint i01 = (idx - i03_offset - i02_offset) / p.ne00;
    +    const uint i00 = idx - i03_offset - i02_offset - i01*p.ne00;
    +
    +    return (i03 % p.ne13)*p.nb13 + (i02 % p.ne12)*p.nb12 + (i01 % p.ne11)*p.nb11 + (i00 % p.ne10)*p.nb10;
    +}
    +
    +uint dst_idx(uint idx) {
    +    const uint i23 = idx / (p.ne22*p.ne21*p.ne20);
    +    const uint i23_offset = i23 * p.ne22*p.ne21*p.ne20;
    +    const uint i22 = (idx - i23_offset) / (p.ne21*p.ne20);
    +    const uint i22_offset = i22*p.ne21*p.ne20;
    +    const uint i21 = (idx - i23_offset - i22_offset) / p.ne20;
    +    const uint i20 = idx - i23_offset - i22_offset - i21*p.ne20;
    +    return i23*p.nb23 + i22*p.nb22 + i21*p.nb21 + i20*p.nb20;
    +}
    diff --git a/vulkan-shaders/generic_head.comp b/vulkan-shaders/generic_head.comp
    new file mode 100644
    index 0000000000000..66e46ae6796b8
    --- /dev/null
    +++ b/vulkan-shaders/generic_head.comp
    @@ -0,0 +1,9 @@
    +#extension GL_EXT_shader_16bit_storage : require
    +
    +layout (push_constant) uniform parameter
    +{
    +    uint KX;
    +    uint KY;
    +    float param1;
    +    float param2;
    +} p;
    diff --git a/vulkan-shaders/generic_unary_head.comp b/vulkan-shaders/generic_unary_head.comp
    new file mode 100644
    index 0000000000000..de08de7cd84fa
    --- /dev/null
    +++ b/vulkan-shaders/generic_unary_head.comp
    @@ -0,0 +1,35 @@
    +#extension GL_EXT_shader_16bit_storage : require
    +
    +layout (push_constant) uniform parameter
    +{
    +    uint ne;
    +    uint ne00; uint ne01; uint ne02; uint ne03; uint nb00; uint nb01; uint nb02; uint nb03;
    +    uint ne10; uint ne11; uint ne12; uint ne13; uint nb10; uint nb11; uint nb12; uint nb13;
    +    uint d_offset;
    +    float param1; float param2;
    +} p;
    +
    +layout(local_size_x = 512, local_size_y = 1, local_size_z = 1) in;
    +
    +layout (binding = 0) readonly buffer A {A_TYPE data_a[];};
    +layout (binding = 1) writeonly buffer D {D_TYPE data_d[];};
    +
    +uint src0_idx(uint idx) {
    +    const uint i03 = idx / (p.ne02*p.ne01*p.ne00);
    +    const uint i03_offset = i03 * p.ne02*p.ne01*p.ne00;
    +    const uint i02 = (idx - i03_offset) / (p.ne01*p.ne00);
    +    const uint i02_offset = i02*p.ne01*p.ne00;
    +    const uint i01 = (idx - i03_offset - i02_offset) / p.ne00;
    +    const uint i00 = idx - i03_offset - i02_offset - i01*p.ne00;
    +    return i03*p.nb03 + i02*p.nb02 + i01*p.nb01 + i00*p.nb00;
    +}
    +
    +uint dst_idx(uint idx) {
    +    const uint i13 = idx / (p.ne12*p.ne11*p.ne10);
    +    const uint i13_offset = i13 * p.ne12*p.ne11*p.ne10;
    +    const uint i12 = (idx - i13_offset) / (p.ne11*p.ne10);
    +    const uint i12_offset = i12*p.ne11*p.ne10;
    +    const uint i11 = (idx - i13_offset - i12_offset) / p.ne10;
    +    const uint i10 = idx - i13_offset - i12_offset - i11*p.ne10;
    +    return i13*p.nb13 + i12*p.nb12 + i11*p.nb11 + i10*p.nb10;
    +}
    diff --git a/vulkan-shaders/get_rows.comp b/vulkan-shaders/get_rows.comp
    new file mode 100644
    index 0000000000000..e9ff22efa9c7a
    --- /dev/null
    +++ b/vulkan-shaders/get_rows.comp
    @@ -0,0 +1,26 @@
    +#version 450
    +
    +#include "types.comp"
    +#include "generic_binary_head.comp"
    +
    +void main() {
    +    const uint i00 = gl_GlobalInvocationID.x;
    +    const uint i10 = gl_GlobalInvocationID.y;
    +    const uint i11 = (gl_GlobalInvocationID.z)/p.ne12;
    +    const uint i12 = (gl_GlobalInvocationID.z)%p.ne12;
    +
    +    if (i00 >= p.ne00) {
    +        return;
    +    }
    +
    +    const uint i01 = data_b[i10*p.nb10 + i11*p.nb11 + i12*p.nb12];
    +
    +    const uint a_offset = i01*p.nb01 + i11*p.nb02 + i12*p.nb03;
    +    const uint d_offset = i10*p.nb21 + i11*p.nb22 + i12*p.nb23;
    +
    +#ifndef OPTIMIZATION_ERROR_WORKAROUND
    +    data_d[d_offset + i00] = D_TYPE(data_a[a_offset + i00]);
    +#else
    +    data_d[d_offset + i00] = data_a[a_offset + i00];
    +#endif
    +}
    diff --git a/vulkan-shaders/get_rows_quant.comp b/vulkan-shaders/get_rows_quant.comp
    new file mode 100644
    index 0000000000000..53a9a96f2360a
    --- /dev/null
    +++ b/vulkan-shaders/get_rows_quant.comp
    @@ -0,0 +1,31 @@
    +#version 450
    +
    +#include "types.comp"
    +#include "generic_binary_head.comp"
    +#include "dequant_funcs.comp"
    +
    +void main() {
    +    const uint i00 = (gl_GlobalInvocationID.x)*2;
    +    const uint i10 = gl_GlobalInvocationID.y;
    +    const uint i11 = (gl_GlobalInvocationID.z)/p.ne12;
    +    const uint i12 = (gl_GlobalInvocationID.z)%p.ne12;
    +
    +    if (i00 >= p.ne00) {
    +        return;
    +    }
    +
    +    const uint i01 = data_b[i10*p.nb10 + i11*p.nb11 + i12*p.nb12];
    +
    +    const uint a_offset = i01*p.nb01 + i11*p.nb02 + i12*p.nb03;
    +    const uint d_offset = i10*p.nb21 + i11*p.nb22 + i12*p.nb23;
    +
    +    const uint ib = a_offset + i00/QUANT_K; // block index
    +    const uint iqs = (i00%QUANT_K)/QUANT_R; // quant index
    +    const uint iybs = i00 - i00%QUANT_K; // dst block start index
    +    const uint y_offset = QUANT_R == 1 ? 1 : QUANT_K/2;
    +
    +    vec2 v = dequantize(ib, iqs, 0);
    +
    +    data_d[d_offset + iybs + iqs           ] = D_TYPE(v.x);
    +    data_d[d_offset + iybs + iqs + y_offset] = D_TYPE(v.y);
    +}
    diff --git a/vulkan-shaders/mul.comp b/vulkan-shaders/mul.comp
    new file mode 100644
    index 0000000000000..bbb0aa1d26c1b
    --- /dev/null
    +++ b/vulkan-shaders/mul.comp
    @@ -0,0 +1,12 @@
    +#version 450
    +
    +#include "types.comp"
    +#include "generic_binary_head.comp"
    +
    +void main() {
    +    if (gl_GlobalInvocationID.x >= p.ne) {
    +        return;
    +    }
    +
    +    data_d[p.d_offset + dst_idx(gl_GlobalInvocationID.x)] = D_TYPE(FLOAT_TYPE(data_a[src0_idx(gl_GlobalInvocationID.x)]) * FLOAT_TYPE(data_b[src1_idx(gl_GlobalInvocationID.x)]));
    +}
    diff --git a/vulkan-shaders/mul_mat_split_k_reduce.comp b/vulkan-shaders/mul_mat_split_k_reduce.comp
    new file mode 100644
    index 0000000000000..825b91031f569
    --- /dev/null
    +++ b/vulkan-shaders/mul_mat_split_k_reduce.comp
    @@ -0,0 +1,29 @@
    +#version 450
    +
    +#extension GL_EXT_control_flow_attributes : enable
    +
    +layout(local_size_x = 256, local_size_y = 1, local_size_z = 1) in;
    +
    +layout (binding = 0) readonly buffer A {float data_a[];};
    +layout (binding = 1) writeonly buffer D {float data_d[];};
    +
    +layout (push_constant) uniform parameter {
    +    uint ne;
    +    uint k_num;
    +} p;
    +
    +void main() {
    +    const uint idx = gl_GlobalInvocationID.x;
    +
    +    if (idx >= p.ne) {
    +        return;
    +    }
    +
    +    float result = 0.0f;
    +
    +    [[unroll]] for (uint i = 0; i < p.k_num; i++) {
    +        result += data_a[i * p.ne + idx];
    +    }
    +
    +    data_d[idx] = result;
    +}
    diff --git a/vulkan-shaders/mul_mat_vec.comp b/vulkan-shaders/mul_mat_vec.comp
    new file mode 100644
    index 0000000000000..292ccfd749c1a
    --- /dev/null
    +++ b/vulkan-shaders/mul_mat_vec.comp
    @@ -0,0 +1,50 @@
    +#version 450
    +
    +#ifdef FLOAT16
    +#extension GL_EXT_shader_explicit_arithmetic_types_float16 : require
    +#endif
    +
    +#include "mul_mat_vec_base.comp"
    +
    +layout(local_size_x_id = 0, local_size_y = 1, local_size_z = 1) in;
    +
    +layout (constant_id = 0) const uint BLOCK_SIZE = 32;
    +
    +shared FLOAT_TYPE tmp[BLOCK_SIZE];
    +
    +void main() {
    +    const uint row = gl_WorkGroupID.x;
    +    const uint tid = gl_LocalInvocationID.x;
    +
    +    uint a_offset, b_offset, d_offset;
    +    get_offsets(a_offset, b_offset, d_offset);
    +
    +    const uint y_offset = QUANT_R == 1 ? 1 : QUANT_K/2;
    +
    +    tmp[tid] = FLOAT_TYPE(0.0f);
    +
    +    [[unroll]] for (uint i = 0; i < p.ncols/BLOCK_SIZE; i += 2) {
    +        const uint col = i*BLOCK_SIZE + 2*tid;
    +        const uint ib = (row*p.ncols + col)/QUANT_K; // block index
    +        const uint iqs = (col%QUANT_K)/QUANT_R; // quant index
    +        const uint iybs = col - col%QUANT_K; // y block start index
    +
    +        vec2 v = dequantize(ib, iqs, a_offset / QUANT_K);
    +
    +        // matrix multiplication
    +        tmp[tid] += FLOAT_TYPE(v.x) * FLOAT_TYPE(data_b[b_offset + iybs + iqs]) +
    +                    FLOAT_TYPE(v.y) * FLOAT_TYPE(data_b[b_offset + iybs + iqs + y_offset]);
    +    }
    +
    +    // sum up partial sums and write back result
    +    barrier();
    +    [[unroll]] for (uint s = BLOCK_SIZE/2; s > 0; s >>= 1) {
    +        if (tid < s) {
    +            tmp[tid] += tmp[tid + s];
    +        }
    +        barrier();
    +    }
    +    if (tid == 0) {
    +        data_d[d_offset + row] = D_TYPE(tmp[0]);
    +    }
    +}
    diff --git a/vulkan-shaders/mul_mat_vec_base.comp b/vulkan-shaders/mul_mat_vec_base.comp
    new file mode 100644
    index 0000000000000..5920bc93641c8
    --- /dev/null
    +++ b/vulkan-shaders/mul_mat_vec_base.comp
    @@ -0,0 +1,81 @@
    +#extension GL_EXT_control_flow_attributes : enable
    +#extension GL_EXT_shader_16bit_storage : require
    +#extension GL_EXT_shader_8bit_storage : require
    +
    +#define K_QUANTS_PER_ITERATION 2
    +
    +#ifdef MUL_MAT_ID
    +#define EXPERT_COUNT 8
    +#endif
    +
    +#include "types.comp"
    +
    +layout (binding = 0) readonly buffer A {A_TYPE data_a[];};
    +layout (binding = 1) readonly buffer B {B_TYPE data_b[];};
    +layout (binding = 2) writeonly buffer D {D_TYPE data_d[];};
    +#ifdef MUL_MAT_ID
    +layout (binding = 3) readonly buffer IDS {int data_ids[];};
    +#endif
    +
    +#include "dequant_funcs.comp"
    +
    +layout (push_constant) uniform parameter
    +{
    +    uint ncols;
    +    uint stride_a;
    +    uint stride_b;
    +    uint stride_d;
    +
    +    uint batch_stride_a;
    +    uint batch_stride_b;
    +    uint batch_stride_d;
    +
    +#ifdef MUL_MAT_ID
    +    uint nei0;
    +    uint ne11;
    +#else
    +    uint ne02;
    +    uint ne12;
    +    uint broadcast2;
    +    uint broadcast3;
    +#endif
    +} p;
    +
    +void get_offsets(out uint a_offset, out uint b_offset, out uint d_offset) {
    +#ifdef MUL_MAT_ID
    +    const uint expert_idx = gl_GlobalInvocationID.y;
    +#else
    +    const uint batch_idx = gl_GlobalInvocationID.y;
    +#endif
    +
    +#ifndef MUL_MAT_ID
    +    const uint i13 = batch_idx / p.ne12;
    +    const uint i12 = batch_idx % p.ne12;
    +
    +    const uint i03 = i13 / p.broadcast3;
    +    const uint i02 = i12 / p.broadcast2;
    +
    +    const uint batch_idx_a = i03 * p.ne02 + i02;
    +#else
    +    const uint expert_id = data_ids[expert_idx];
    +#endif
    +
    +    a_offset =
    +#ifdef MUL_MAT_ID
    +            expert_id * p.batch_stride_a;
    +#else
    +            batch_idx_a * p.batch_stride_a;
    +#endif
    +    b_offset =
    +#ifdef MUL_MAT_ID
    +            (expert_idx % p.ne11) * p.stride_b;
    +#else
    +            batch_idx * p.batch_stride_b;
    +#endif
    +    d_offset =
    +#ifdef MUL_MAT_ID
    +            expert_idx * p.stride_d;
    +#else
    +            batch_idx * p.batch_stride_d;
    +#endif
    +}
    diff --git a/vulkan-shaders/mul_mat_vec_nc.comp b/vulkan-shaders/mul_mat_vec_nc.comp
    new file mode 100644
    index 0000000000000..cb3f3c0df0801
    --- /dev/null
    +++ b/vulkan-shaders/mul_mat_vec_nc.comp
    @@ -0,0 +1,71 @@
    +#version 450
    +
    +#extension GL_EXT_control_flow_attributes : enable
    +#extension GL_EXT_shader_16bit_storage : require
    +
    +#define BLOCK_SIZE 32
    +#define FLOAT_TYPE float
    +
    +layout(local_size_x = BLOCK_SIZE, local_size_y = 1, local_size_z = 1) in;
    +
    +layout (binding = 0) readonly buffer A {A_TYPE data_a[];};
    +layout (binding = 1) readonly buffer B {B_TYPE data_b[];};
    +layout (binding = 2) writeonly buffer D {D_TYPE dst[];};
    +
    +layout (push_constant) uniform parameter
    +{
    +    uint ncols_x;
    +    uint nrows_x;
    +    uint row_stride_x;
    +    uint channel_stride_x;
    +    uint channel_x_divisor;
    +    uint b_offset;
    +    uint d_offset;
    +} p;
    +
    +shared FLOAT_TYPE tmp[BLOCK_SIZE];
    +
    +void main() {
    +    const uint tid       = gl_LocalInvocationID.x;
    +    const uint row_x     = gl_GlobalInvocationID.y;
    +    const uint channel   = gl_GlobalInvocationID.z;
    +    const uint channel_x = channel / p.channel_x_divisor;
    +
    +    const uint nrows_y   = p.ncols_x;
    +    const uint nrows_dst = p.nrows_x;
    +    const uint row_dst   = row_x;
    +
    +    const uint idst = channel*nrows_dst + row_dst;
    +
    +    tmp[tid] = 0.0f;
    +
    +    for (uint col_x0 = 0; col_x0 < p.ncols_x; col_x0 += BLOCK_SIZE) {
    +        const uint col_x = col_x0 + tid;
    +
    +        if (col_x >= p.ncols_x) {
    +            break;
    +        }
    +
    +        const uint row_y = col_x;
    +
    +        const uint ix = channel_x*p.channel_stride_x + row_x*p.row_stride_x + col_x;
    +        const uint iy = channel*nrows_y + row_y;
    +
    +        const FLOAT_TYPE xi = FLOAT_TYPE(data_a[ix]);
    +
    +        tmp[tid] += xi * FLOAT_TYPE(data_b[iy]);
    +    }
    +
    +    // sum up partial sums and write back result
    +    barrier();
    +    [[unroll]] for (int s = BLOCK_SIZE / 2; s > 0; s >>= 1) {
    +        if (tid < s) {
    +            tmp[tid] += tmp[tid + s];
    +        }
    +        barrier();
    +    }
    +
    +    if (tid == 0) {
    +        dst[idst] = tmp[0];
    +    }
    +}
    diff --git a/vulkan-shaders/mul_mat_vec_p021.comp b/vulkan-shaders/mul_mat_vec_p021.comp
    new file mode 100644
    index 0000000000000..4b1871caaf4c2
    --- /dev/null
    +++ b/vulkan-shaders/mul_mat_vec_p021.comp
    @@ -0,0 +1,73 @@
    +#version 450
    +
    +#extension GL_EXT_control_flow_attributes : enable
    +#extension GL_EXT_shader_16bit_storage : require
    +
    +#define BLOCK_SIZE 32
    +#define FLOAT_TYPE float
    +
    +layout(local_size_x = BLOCK_SIZE, local_size_y = 1, local_size_z = 1) in;
    +
    +layout (binding = 0) readonly buffer A {A_TYPE data_a[];};
    +layout (binding = 1) readonly buffer B {B_TYPE data_b[];};
    +layout (binding = 2) writeonly buffer D {D_TYPE dst[];};
    +
    +layout (push_constant) uniform parameter
    +{
    +    uint ncols_x;
    +    uint nrows_x;
    +    uint nchannels_x;
    +    uint nchannels_y;
    +    uint b_offset;
    +    uint d_offset;
    +} p;
    +
    +shared FLOAT_TYPE tmp[BLOCK_SIZE];
    +
    +void main() {
    +    const uint tid = gl_LocalInvocationID.x;
    +    const uint row_x = gl_GlobalInvocationID.y;
    +    const uint channel = gl_GlobalInvocationID.z;
    +    const uint channel_x = channel / (p.nchannels_y / p.nchannels_x);
    +
    +    const uint nrows_y = p.ncols_x;
    +    const uint nrows_dst = p.nrows_x;
    +    const uint row_dst = row_x;
    +
    +    tmp[tid] = FLOAT_TYPE(0.0f);
    +
    +    for (uint col_x0 = 0; col_x0 < p.ncols_x; col_x0 += BLOCK_SIZE) {
    +        const uint col_x = col_x0 + tid;
    +
    +        if (col_x >= p.ncols_x) {
    +            break;
    +        }
    +
    +        // x is transposed and permuted
    +        const uint ix = row_x*p.nchannels_x*p.ncols_x + channel_x*p.ncols_x + col_x;
    +        const FLOAT_TYPE xi = FLOAT_TYPE(data_a[ix]);
    +
    +        const uint row_y = col_x;
    +
    +        // y is not transposed but permuted
    +        const uint iy = channel*nrows_y + row_y;
    +
    +        tmp[tid] += xi * FLOAT_TYPE(data_b[iy]);
    +    }
    +
    +    // dst is not transposed and not permuted
    +    const uint idst = channel*nrows_dst + row_dst;
    +
    +    // sum up partial sums and write back result
    +    barrier();
    +    [[unroll]] for (int s = BLOCK_SIZE / 2; s > 0; s >>= 1) {
    +        if (tid < s) {
    +            tmp[tid] += tmp[tid + s];
    +        }
    +        barrier();
    +    }
    +
    +    if (tid == 0) {
    +        dst[idst] = tmp[0];
    +    }
    +}
    diff --git a/vulkan-shaders/mul_mat_vec_q2_k.comp b/vulkan-shaders/mul_mat_vec_q2_k.comp
    new file mode 100644
    index 0000000000000..27bf6d51ced7c
    --- /dev/null
    +++ b/vulkan-shaders/mul_mat_vec_q2_k.comp
    @@ -0,0 +1,73 @@
    +#version 450
    +
    +#include "mul_mat_vec_base.comp"
    +
    +layout(local_size_x = 32, local_size_y = 1, local_size_z = 1) in;
    +
    +shared FLOAT_TYPE tmp[32];
    +
    +void main() {
    +    const uint row = gl_WorkGroupID.x;
    +
    +    uint a_offset, b_offset, d_offset;
    +    get_offsets(a_offset, b_offset, d_offset);
    +
    +    const uint num_blocks_per_row = p.ncols / QUANT_K;
    +    const uint ib0 = a_offset / QUANT_K + row*num_blocks_per_row;
    +
    +    const uint tid = gl_LocalInvocationID.x/K_QUANTS_PER_ITERATION;  // 0...31 or 0...16
    +    const uint ix  = gl_LocalInvocationID.x%K_QUANTS_PER_ITERATION;  // 0 or 0, 1
    +
    +    const uint step = 16/K_QUANTS_PER_ITERATION;            // 16 or 8
    +
    +    const uint v_im = tid/step;                             // 0 or 1. 0 computes 0..., 1 computes 128...
    +    const uint v_in = tid - step*v_im;                      // 0...15 or 0...7
    +
    +    const uint l0 = K_QUANTS_PER_ITERATION*v_in;            // 0...15
    +    const uint q_offset = 32*v_im + l0;
    +    const uint s_offset = 8*v_im;
    +    const uint y_offset = 128*v_im + l0;
    +
    +    tmp[16 * ix + tid] = FLOAT_TYPE(0.0); // partial sum for thread in warp
    +
    +    [[unroll]] for (uint i = ix; i < num_blocks_per_row; i += K_QUANTS_PER_ITERATION) {
    +        const uint y_idx = i * QUANT_K + y_offset;
    +
    +        const FLOAT_TYPE dall = FLOAT_TYPE(data_a[ib0 + i].d.x);
    +        const FLOAT_TYPE dmin = FLOAT_TYPE(data_a[ib0 + i].d.y);
    +
    +        FLOAT_TYPE sum1 = FLOAT_TYPE(0.0);
    +        FLOAT_TYPE sum2 = FLOAT_TYPE(0.0);
    +        for (int l = 0; l < K_QUANTS_PER_ITERATION; ++l) {
    +            sum1 += FLOAT_TYPE(data_b[b_offset + y_idx + l +  0]) * FLOAT_TYPE(data_a[ib0 + i].scales[s_offset + 0] & 0xF) * FLOAT_TYPE((data_a[ib0 + i].qs[q_offset + l + 0] >> 0) & 3)
    +                  + FLOAT_TYPE(data_b[b_offset + y_idx + l + 16]) * FLOAT_TYPE(data_a[ib0 + i].scales[s_offset + 1] & 0xF) * FLOAT_TYPE((data_a[ib0 + i].qs[q_offset + l +16] >> 0) & 3)
    +                  + FLOAT_TYPE(data_b[b_offset + y_idx + l + 32]) * FLOAT_TYPE(data_a[ib0 + i].scales[s_offset + 2] & 0xF) * FLOAT_TYPE((data_a[ib0 + i].qs[q_offset + l + 0] >> 2) & 3)
    +                  + FLOAT_TYPE(data_b[b_offset + y_idx + l + 48]) * FLOAT_TYPE(data_a[ib0 + i].scales[s_offset + 3] & 0xF) * FLOAT_TYPE((data_a[ib0 + i].qs[q_offset + l +16] >> 2) & 3)
    +                  + FLOAT_TYPE(data_b[b_offset + y_idx + l + 64]) * FLOAT_TYPE(data_a[ib0 + i].scales[s_offset + 4] & 0xF) * FLOAT_TYPE((data_a[ib0 + i].qs[q_offset + l + 0] >> 4) & 3)
    +                  + FLOAT_TYPE(data_b[b_offset + y_idx + l + 80]) * FLOAT_TYPE(data_a[ib0 + i].scales[s_offset + 5] & 0xF) * FLOAT_TYPE((data_a[ib0 + i].qs[q_offset + l +16] >> 4) & 3)
    +                  + FLOAT_TYPE(data_b[b_offset + y_idx + l + 96]) * FLOAT_TYPE(data_a[ib0 + i].scales[s_offset + 6] & 0xF) * FLOAT_TYPE((data_a[ib0 + i].qs[q_offset + l + 0] >> 6) & 3)
    +                  + FLOAT_TYPE(data_b[b_offset + y_idx + l +112]) * FLOAT_TYPE(data_a[ib0 + i].scales[s_offset + 7] & 0xF) * FLOAT_TYPE((data_a[ib0 + i].qs[q_offset + l +16] >> 6) & 3);
    +            sum2 += FLOAT_TYPE(data_b[b_offset + y_idx + l +  0]) * FLOAT_TYPE((data_a[ib0 + i].scales[s_offset + 0] >> 4) & 0xF)
    +                  + FLOAT_TYPE(data_b[b_offset + y_idx + l + 16]) * FLOAT_TYPE((data_a[ib0 + i].scales[s_offset + 1] >> 4) & 0xF)
    +                  + FLOAT_TYPE(data_b[b_offset + y_idx + l + 32]) * FLOAT_TYPE((data_a[ib0 + i].scales[s_offset + 2] >> 4) & 0xF)
    +                  + FLOAT_TYPE(data_b[b_offset + y_idx + l + 48]) * FLOAT_TYPE((data_a[ib0 + i].scales[s_offset + 3] >> 4) & 0xF)
    +                  + FLOAT_TYPE(data_b[b_offset + y_idx + l + 64]) * FLOAT_TYPE((data_a[ib0 + i].scales[s_offset + 4] >> 4) & 0xF)
    +                  + FLOAT_TYPE(data_b[b_offset + y_idx + l + 80]) * FLOAT_TYPE((data_a[ib0 + i].scales[s_offset + 5] >> 4) & 0xF)
    +                  + FLOAT_TYPE(data_b[b_offset + y_idx + l + 96]) * FLOAT_TYPE((data_a[ib0 + i].scales[s_offset + 6] >> 4) & 0xF)
    +                  + FLOAT_TYPE(data_b[b_offset + y_idx + l +112]) * FLOAT_TYPE((data_a[ib0 + i].scales[s_offset + 7] >> 4) & 0xF);
    +        }
    +        tmp[16 * ix + tid] += dall * sum1 - dmin * sum2;
    +    }
    +
    +    // sum up partial sums and write back result
    +    barrier();
    +    [[unroll]] for (uint s = 16; s > 0; s >>= 1) {
    +        if (tid < s) {
    +            tmp[tid] += tmp[tid + s];
    +        }
    +        barrier();
    +    }
    +    if (tid == 0) {
    +        data_d[d_offset + row] = D_TYPE(tmp[0]);
    +    }
    +}
    diff --git a/vulkan-shaders/mul_mat_vec_q3_k.comp b/vulkan-shaders/mul_mat_vec_q3_k.comp
    new file mode 100644
    index 0000000000000..7c837fef20052
    --- /dev/null
    +++ b/vulkan-shaders/mul_mat_vec_q3_k.comp
    @@ -0,0 +1,66 @@
    +#version 450
    +
    +#include "mul_mat_vec_base.comp"
    +
    +layout(local_size_x = 32, local_size_y = 1, local_size_z = 1) in;
    +
    +shared FLOAT_TYPE tmp[32];
    +
    +void main() {
    +    const uint row = gl_WorkGroupID.x;
    +
    +    uint a_offset, b_offset, d_offset;
    +    get_offsets(a_offset, b_offset, d_offset);
    +
    +    const uint num_blocks_per_row = p.ncols / QUANT_K;
    +    const uint ib0 = a_offset / QUANT_K + row*num_blocks_per_row;
    +
    +    const uint tid = gl_LocalInvocationID.x/K_QUANTS_PER_ITERATION;  // 0...31 or 0...16
    +    const uint ix  = gl_LocalInvocationID.x%K_QUANTS_PER_ITERATION;  // 0 or 0, 1
    +
    +    const uint step = 16/K_QUANTS_PER_ITERATION;            // 16 or 8
    +
    +    const uint v_im = tid/step;                             // 0 or 1. 0 computes 0..., 1 computes 128...
    +    const uint v_in = tid - step*v_im;                      // 0...15 or 0...7
    +
    +    const uint8_t m = uint8_t(1 << (4 * v_im));
    +
    +    const uint l0 = K_QUANTS_PER_ITERATION*v_in;            // 0...15
    +    const uint q_offset = 32*v_im + l0;
    +    const uint y_offset = 128*v_im + l0;
    +
    +    tmp[16 * ix + tid] = FLOAT_TYPE(0.0); // partial sum for thread in warp
    +
    +    const uint s_shift = 4 * v_im;
    +
    +    [[unroll]] for (uint i = ix; i < num_blocks_per_row; i += K_QUANTS_PER_ITERATION) {
    +        const uint y_idx = i * QUANT_K + y_offset;
    +
    +        const FLOAT_TYPE d = FLOAT_TYPE(data_a[ib0 + i].d);
    +
    +        FLOAT_TYPE sum = FLOAT_TYPE(0.0);
    +        for (int l = 0; l < K_QUANTS_PER_ITERATION; ++l) {
    +            sum += FLOAT_TYPE(data_b[b_offset + y_idx + l +  0]) * FLOAT_TYPE(int8_t(((data_a[ib0 + i].scales[0] >> s_shift) & 0xF) | ((data_a[ib0 + i].scales[ 8] >> (s_shift + 0) & 0x3) << 4)) - 32) * FLOAT_TYPE(((data_a[ib0 + i].qs[q_offset + l   ]     ) & 3) - (((data_a[ib0 + i].hmask[l0 + l   ] & (m << 0)) != 0) ? 0 : 4))
    +                 + FLOAT_TYPE(data_b[b_offset + y_idx + l + 32]) * FLOAT_TYPE(int8_t(((data_a[ib0 + i].scales[2] >> s_shift) & 0xF) | ((data_a[ib0 + i].scales[10] >> (s_shift + 0) & 0x3) << 4)) - 32) * FLOAT_TYPE(((data_a[ib0 + i].qs[q_offset + l   ] >> 2) & 3) - (((data_a[ib0 + i].hmask[l0 + l   ] & (m << 1)) != 0) ? 0 : 4))
    +                 + FLOAT_TYPE(data_b[b_offset + y_idx + l + 64]) * FLOAT_TYPE(int8_t(((data_a[ib0 + i].scales[4] >> s_shift) & 0xF) | ((data_a[ib0 + i].scales[ 8] >> (s_shift + 2) & 0x3) << 4)) - 32) * FLOAT_TYPE(((data_a[ib0 + i].qs[q_offset + l   ] >> 4) & 3) - (((data_a[ib0 + i].hmask[l0 + l   ] & (m << 2)) != 0) ? 0 : 4))
    +                 + FLOAT_TYPE(data_b[b_offset + y_idx + l + 96]) * FLOAT_TYPE(int8_t(((data_a[ib0 + i].scales[6] >> s_shift) & 0xF) | ((data_a[ib0 + i].scales[10] >> (s_shift + 2) & 0x3) << 4)) - 32) * FLOAT_TYPE(((data_a[ib0 + i].qs[q_offset + l   ] >> 6) & 3) - (((data_a[ib0 + i].hmask[l0 + l   ] & (m << 3)) != 0) ? 0 : 4))
    +                 + FLOAT_TYPE(data_b[b_offset + y_idx + l + 16]) * FLOAT_TYPE(int8_t(((data_a[ib0 + i].scales[1] >> s_shift) & 0xF) | ((data_a[ib0 + i].scales[ 9] >> (s_shift + 0) & 0x3) << 4)) - 32) * FLOAT_TYPE(((data_a[ib0 + i].qs[q_offset + l+16]     ) & 3) - (((data_a[ib0 + i].hmask[l0 + l+16] & (m << 0)) != 0) ? 0 : 4))
    +                 + FLOAT_TYPE(data_b[b_offset + y_idx + l + 48]) * FLOAT_TYPE(int8_t(((data_a[ib0 + i].scales[3] >> s_shift) & 0xF) | ((data_a[ib0 + i].scales[11] >> (s_shift + 0) & 0x3) << 4)) - 32) * FLOAT_TYPE(((data_a[ib0 + i].qs[q_offset + l+16] >> 2) & 3) - (((data_a[ib0 + i].hmask[l0 + l+16] & (m << 1)) != 0) ? 0 : 4))
    +                 + FLOAT_TYPE(data_b[b_offset + y_idx + l + 80]) * FLOAT_TYPE(int8_t(((data_a[ib0 + i].scales[5] >> s_shift) & 0xF) | ((data_a[ib0 + i].scales[ 9] >> (s_shift + 2) & 0x3) << 4)) - 32) * FLOAT_TYPE(((data_a[ib0 + i].qs[q_offset + l+16] >> 4) & 3) - (((data_a[ib0 + i].hmask[l0 + l+16] & (m << 2)) != 0) ? 0 : 4))
    +                 + FLOAT_TYPE(data_b[b_offset + y_idx + l +112]) * FLOAT_TYPE(int8_t(((data_a[ib0 + i].scales[7] >> s_shift) & 0xF) | ((data_a[ib0 + i].scales[11] >> (s_shift + 2) & 0x3) << 4)) - 32) * FLOAT_TYPE(((data_a[ib0 + i].qs[q_offset + l+16] >> 6) & 3) - (((data_a[ib0 + i].hmask[l0 + l+16] & (m << 3)) != 0) ? 0 : 4));
    +        }
    +        tmp[16 * ix + tid] += d * sum;
    +    }
    +
    +    // sum up partial sums and write back result
    +    barrier();
    +    [[unroll]] for (uint s = 16; s > 0; s >>= 1) {
    +        if (tid < s) {
    +            tmp[tid] += tmp[tid + s];
    +        }
    +        barrier();
    +    }
    +    if (tid == 0) {
    +        data_d[d_offset + row] = D_TYPE(tmp[0]);
    +    }
    +}
    diff --git a/vulkan-shaders/mul_mat_vec_q4_k.comp b/vulkan-shaders/mul_mat_vec_q4_k.comp
    new file mode 100644
    index 0000000000000..1566f26d3faf8
    --- /dev/null
    +++ b/vulkan-shaders/mul_mat_vec_q4_k.comp
    @@ -0,0 +1,115 @@
    +#version 450
    +
    +#include "mul_mat_vec_base.comp"
    +
    +layout(local_size_x = 32, local_size_y = 1, local_size_z = 1) in;
    +
    +shared FLOAT_TYPE tmp[32];
    +
    +void main() {
    +    const uint row = gl_WorkGroupID.x;
    +
    +    uint a_offset, b_offset, d_offset;
    +    get_offsets(a_offset, b_offset, d_offset);
    +
    +    const uint num_blocks_per_row = p.ncols / QUANT_K;
    +    const uint ib0 = a_offset / QUANT_K + row*num_blocks_per_row;
    +
    +    const uint tid = gl_LocalInvocationID.x/K_QUANTS_PER_ITERATION;  // 0...31 or 0...16
    +    const uint ix  = gl_LocalInvocationID.x%K_QUANTS_PER_ITERATION;  // 0 or 0, 1
    +
    +    const uint step = 8/K_QUANTS_PER_ITERATION;             // 8 or 4
    +
    +    const uint il = tid/step;                               // 0...3
    +    const uint ir = tid - step*il;                          // 0...7 or 0...3
    +    const uint n =  2 * K_QUANTS_PER_ITERATION;             // 2 or 4
    +
    +    const uint v_im = il / 2;  // 0 or 1. 0 computes 0,32 + 128,160, 1 computes 64,96 + 192,224
    +    const uint v_in = il % 2;
    +
    +    const uint l0 = n * (2 * ir + v_in);            // 0...15
    +    const uint q_offset = 32*v_im + l0;
    +    const uint y_offset = 64*v_im + l0;
    +
    +    tmp[16 * ix + tid] = FLOAT_TYPE(0.0); // partial sum for thread in warp
    +
    +    [[unroll]] for (uint i = ix; i < num_blocks_per_row; i += K_QUANTS_PER_ITERATION) {
    +        const uint y1_idx = i * QUANT_K + y_offset;
    +        const uint y2_idx = y1_idx + 128;
    +
    +        const FLOAT_TYPE dall = FLOAT_TYPE(data_a[ib0 + i].d.x);
    +        const FLOAT_TYPE dmin = FLOAT_TYPE(data_a[ib0 + i].d.y);
    +
    +        const uint8_t sc0 = uint8_t(  data_a[ib0 + i].scales[v_im * 2    ]       & 0x3f);
    +        const uint8_t sc1 = uint8_t(  data_a[ib0 + i].scales[v_im * 2 + 1]       & 0x3f);
    +        const uint8_t sc2 = uint8_t(  data_a[ib0 + i].scales[v_im * 2 + 4]       & 0x3f);
    +        const uint8_t sc3 = uint8_t(  data_a[ib0 + i].scales[v_im * 2 + 5]       & 0x3f);
    +        const uint8_t sc4 = uint8_t(( data_a[ib0 + i].scales[v_im * 2 + 8]       & 0x0f) | ((data_a[ib0 + i].scales[v_im * 2    ] & 0xc0) >> 2));
    +        const uint8_t sc5 = uint8_t(( data_a[ib0 + i].scales[v_im * 2 + 9]       & 0x0f) | ((data_a[ib0 + i].scales[v_im * 2 + 1] & 0xc0) >> 2));
    +        const uint8_t sc6 = uint8_t(((data_a[ib0 + i].scales[v_im * 2 + 8] >> 4) & 0x0f) | ((data_a[ib0 + i].scales[v_im * 2 + 4] & 0xc0) >> 2));
    +        const uint8_t sc7 = uint8_t(((data_a[ib0 + i].scales[v_im * 2 + 9] >> 4) & 0x0f) | ((data_a[ib0 + i].scales[v_im * 2 + 5] & 0xc0) >> 2));
    +
    +#if K_QUANTS_PER_ITERATION == 2
    +        const uint8_t q4_0  = uint8_t(data_a[ib0 + i].qs[q_offset     ] & 0xf);
    +        const uint8_t q4_1  = uint8_t(data_a[ib0 + i].qs[q_offset +  1] & 0xf);
    +        const uint8_t q4_2  = uint8_t(data_a[ib0 + i].qs[q_offset +  2] & 0xf);
    +        const uint8_t q4_3  = uint8_t(data_a[ib0 + i].qs[q_offset +  3] & 0xf);
    +        const uint8_t q4_4  = uint8_t(data_a[ib0 + i].qs[q_offset     ]  >> 4);
    +        const uint8_t q4_5  = uint8_t(data_a[ib0 + i].qs[q_offset +  1]  >> 4);
    +        const uint8_t q4_6  = uint8_t(data_a[ib0 + i].qs[q_offset +  2]  >> 4);
    +        const uint8_t q4_7  = uint8_t(data_a[ib0 + i].qs[q_offset +  3]  >> 4);
    +        const uint8_t q4_8  = uint8_t(data_a[ib0 + i].qs[q_offset + 64] & 0xf);
    +        const uint8_t q4_9  = uint8_t(data_a[ib0 + i].qs[q_offset + 65] & 0xf);
    +        const uint8_t q4_10 = uint8_t(data_a[ib0 + i].qs[q_offset + 66] & 0xf);
    +        const uint8_t q4_11 = uint8_t(data_a[ib0 + i].qs[q_offset + 67] & 0xf);
    +        const uint8_t q4_12 = uint8_t(data_a[ib0 + i].qs[q_offset + 64]  >> 4);
    +        const uint8_t q4_13 = uint8_t(data_a[ib0 + i].qs[q_offset + 65]  >> 4);
    +        const uint8_t q4_14 = uint8_t(data_a[ib0 + i].qs[q_offset + 66]  >> 4);
    +        const uint8_t q4_15 = uint8_t(data_a[ib0 + i].qs[q_offset + 67]  >> 4);
    +
    +        const FLOAT_TYPE sx = FLOAT_TYPE(FLOAT_TYPE(data_b[b_offset + y1_idx]) * q4_0 + FLOAT_TYPE(data_b[b_offset + y1_idx + 1]) * q4_1 + FLOAT_TYPE(data_b[b_offset + y1_idx + 2]) * q4_2 + FLOAT_TYPE(data_b[b_offset + y1_idx + 3]) * q4_3);
    +        const FLOAT_TYPE sy = FLOAT_TYPE(FLOAT_TYPE(data_b[b_offset + y1_idx + 32]) * q4_4 + FLOAT_TYPE(data_b[b_offset + y1_idx + 33]) * q4_5 + FLOAT_TYPE(data_b[b_offset + y1_idx + 34]) * q4_6 + FLOAT_TYPE(data_b[b_offset + y1_idx + 35]) * q4_7);
    +        const FLOAT_TYPE sz = FLOAT_TYPE(FLOAT_TYPE(data_b[b_offset + y2_idx]) * q4_8 + FLOAT_TYPE(data_b[b_offset + y2_idx + 1]) * q4_9 + FLOAT_TYPE(data_b[b_offset + y2_idx + 2]) * q4_10 + FLOAT_TYPE(data_b[b_offset + y2_idx + 3]) * q4_11);
    +        const FLOAT_TYPE sw = FLOAT_TYPE(FLOAT_TYPE(data_b[b_offset + y2_idx + 32]) * q4_12 + FLOAT_TYPE(data_b[b_offset + y2_idx + 33]) * q4_13 + FLOAT_TYPE(data_b[b_offset + y2_idx + 34]) * q4_14 + FLOAT_TYPE(data_b[b_offset + y2_idx + 35]) * q4_15);
    +        const FLOAT_TYPE smin = FLOAT_TYPE(
    +            FLOAT_TYPE(data_b[b_offset + y1_idx    ]) * sc2 + FLOAT_TYPE(data_b[b_offset + y1_idx + 32]) * sc3 + FLOAT_TYPE(data_b[b_offset + y2_idx    ]) * sc6 + FLOAT_TYPE(data_b[b_offset + y2_idx + 32]) * sc7
    +          + FLOAT_TYPE(data_b[b_offset + y1_idx + 1]) * sc2 + FLOAT_TYPE(data_b[b_offset + y1_idx + 33]) * sc3 + FLOAT_TYPE(data_b[b_offset + y2_idx + 1]) * sc6 + FLOAT_TYPE(data_b[b_offset + y2_idx + 33]) * sc7
    +          + FLOAT_TYPE(data_b[b_offset + y1_idx + 2]) * sc2 + FLOAT_TYPE(data_b[b_offset + y1_idx + 34]) * sc3 + FLOAT_TYPE(data_b[b_offset + y2_idx + 2]) * sc6 + FLOAT_TYPE(data_b[b_offset + y2_idx + 34]) * sc7
    +          + FLOAT_TYPE(data_b[b_offset + y1_idx + 3]) * sc2 + FLOAT_TYPE(data_b[b_offset + y1_idx + 35]) * sc3 + FLOAT_TYPE(data_b[b_offset + y2_idx + 3]) * sc6 + FLOAT_TYPE(data_b[b_offset + y2_idx + 35]) * sc7
    +        );
    +        tmp[16 * ix + tid] += FLOAT_TYPE(dall * (sx * sc0 + sy * sc1 + sz * sc4 + sw * sc5) - dmin * smin);
    +#else
    +        const uint8_t q4_0 = uint8_t(data_a[ib0 + i].qs[q_offset     ] & 0xf);
    +        const uint8_t q4_1 = uint8_t(data_a[ib0 + i].qs[q_offset +  1] & 0xf);
    +        const uint8_t q4_2 = uint8_t(data_a[ib0 + i].qs[q_offset     ]  >> 4);
    +        const uint8_t q4_3 = uint8_t(data_a[ib0 + i].qs[q_offset +  1]  >> 4);
    +        const uint8_t q4_4 = uint8_t(data_a[ib0 + i].qs[q_offset + 64] & 0xf);
    +        const uint8_t q4_5 = uint8_t(data_a[ib0 + i].qs[q_offset + 65] & 0xf);
    +        const uint8_t q4_6 = uint8_t(data_a[ib0 + i].qs[q_offset + 64]  >> 4);
    +        const uint8_t q4_7 = uint8_t(data_a[ib0 + i].qs[q_offset + 65]  >> 4);
    +
    +        const FLOAT_TYPE sx = FLOAT_TYPE(FLOAT_TYPE(data_b[b_offset + y1_idx     ]) * q4_0  + FLOAT_TYPE(data_b[b_offset + y1_idx +  1]) * q4_1);
    +        const FLOAT_TYPE sy = FLOAT_TYPE(FLOAT_TYPE(data_b[b_offset + y1_idx + 32]) * q4_2  + FLOAT_TYPE(data_b[b_offset + y1_idx + 33]) * q4_3);
    +        const FLOAT_TYPE sz = FLOAT_TYPE(FLOAT_TYPE(data_b[b_offset + y2_idx     ]) * q4_4  + FLOAT_TYPE(data_b[b_offset + y2_idx +  1]) * q4_5);
    +        const FLOAT_TYPE sw = FLOAT_TYPE(FLOAT_TYPE(data_b[b_offset + y2_idx + 32]) * q4_6 + FLOAT_TYPE(data_b[b_offset + y2_idx + 33]) * q4_7);
    +        const FLOAT_TYPE smin = FLOAT_TYPE(
    +            FLOAT_TYPE(data_b[b_offset + y1_idx]) * sc2 + FLOAT_TYPE(data_b[b_offset + y1_idx + 32]) * sc3 + FLOAT_TYPE(data_b[b_offset + y2_idx]) * sc6 + FLOAT_TYPE(data_b[b_offset + y2_idx + 32]) * sc7
    +          + FLOAT_TYPE(data_b[b_offset + y1_idx + 1]) * sc2 + FLOAT_TYPE(data_b[b_offset + y1_idx + 33]) * sc3 + FLOAT_TYPE(data_b[b_offset + y2_idx + 1]) * sc6 + FLOAT_TYPE(data_b[b_offset + y2_idx + 33]) * sc7
    +        );
    +
    +        tmp[16 * ix + tid] += FLOAT_TYPE(dall * (sx * FLOAT_TYPE(data_a[ib0 + i].scales[v_im] & 0x3f) + sy * FLOAT_TYPE(data_a[ib0 + i].scales[v_im + 1] & 0x3f) + sz * FLOAT_TYPE((data_a[ib0 + i].scales[v_im + 4] & 0x0f) | ((data_a[ib0 + i].scales[v_im] & 0xc0) >> 2)) + sw * FLOAT_TYPE((data_a[ib0 + i].scales[v_im + 5] & 0x0f) | ((data_a[ib0 + i].scales[v_im + 1] & 0xc0) >> 2))) - dmin * smin);
    +#endif
    +    }
    +
    +    // sum up partial sums and write back result
    +    barrier();
    +    [[unroll]] for (uint s = 16; s > 0; s >>= 1) {
    +        if (tid < s) {
    +            tmp[tid] += tmp[tid + s];
    +        }
    +        barrier();
    +    }
    +    if (tid == 0) {
    +        data_d[d_offset + row] = D_TYPE(tmp[0]);
    +    }
    +}
    diff --git a/vulkan-shaders/mul_mat_vec_q5_k.comp b/vulkan-shaders/mul_mat_vec_q5_k.comp
    new file mode 100644
    index 0000000000000..4add64327ea52
    --- /dev/null
    +++ b/vulkan-shaders/mul_mat_vec_q5_k.comp
    @@ -0,0 +1,111 @@
    +#version 450
    +
    +#include "mul_mat_vec_base.comp"
    +
    +layout(local_size_x = 32, local_size_y = 1, local_size_z = 1) in;
    +
    +shared FLOAT_TYPE tmp[32];
    +
    +void main() {
    +    const uint row = gl_WorkGroupID.x;
    +
    +    uint a_offset, b_offset, d_offset;
    +    get_offsets(a_offset, b_offset, d_offset);
    +
    +    const uint num_blocks_per_row = p.ncols / QUANT_K;
    +    const uint ib0 = a_offset / QUANT_K + row*num_blocks_per_row;
    +
    +    const uint tid = gl_LocalInvocationID.x/2;  // 0...31 or 0...16
    +    const uint ix  = gl_LocalInvocationID.x%2;  // 0 or 0, 1
    +
    +    const uint il = tid/4;                           // 0...3
    +    const uint ir = tid - 4*il;                      // 0...7 or 0...3
    +
    +    const uint v_im = il / 2;  // 0 or 1. 0 computes 0,32 + 128,160, 1 computes 64,96 + 192,224
    +    const uint v_in = il % 2;
    +
    +    const uint l0 = 4*ir + 2*v_in;                   // 0...15
    +    const uint q_offset = 32*v_im + l0;
    +    const uint y_offset = 64*v_im + l0;
    +
    +    const uint8_t hm1 = uint8_t(1 << (2*v_im));
    +    const uint8_t hm2 = uint8_t(hm1 << 4);
    +
    +    tmp[16 * ix + tid] = FLOAT_TYPE(0.0); // partial sum for thread in warp
    +
    +    [[unroll]] for (uint i = ix; i < num_blocks_per_row; i += 2) {
    +        const uint y1_idx = i * QUANT_K + y_offset;
    +        const uint y2_idx = y1_idx + 128;
    +
    +        const FLOAT_TYPE dall = FLOAT_TYPE(data_a[ib0 + i].d.x);
    +        const FLOAT_TYPE dmin = FLOAT_TYPE(data_a[ib0 + i].d.y);
    +
    +        const uint8_t sc0 = uint8_t(  data_a[ib0 + i].scales[v_im * 2    ]       & 0x3f);
    +        const uint8_t sc1 = uint8_t(  data_a[ib0 + i].scales[v_im * 2 + 1]       & 0x3f);
    +        const uint8_t sc2 = uint8_t(  data_a[ib0 + i].scales[v_im * 2 + 4]       & 0x3f);
    +        const uint8_t sc3 = uint8_t(  data_a[ib0 + i].scales[v_im * 2 + 5]       & 0x3f);
    +        const uint8_t sc4 = uint8_t(( data_a[ib0 + i].scales[v_im * 2 + 8]       & 0x0f) | ((data_a[ib0 + i].scales[v_im * 2    ] & 0xc0) >> 2));
    +        const uint8_t sc5 = uint8_t(( data_a[ib0 + i].scales[v_im * 2 + 9]       & 0x0f) | ((data_a[ib0 + i].scales[v_im * 2 + 1] & 0xc0) >> 2));
    +        const uint8_t sc6 = uint8_t(((data_a[ib0 + i].scales[v_im * 2 + 8] >> 4) & 0x0f) | ((data_a[ib0 + i].scales[v_im * 2 + 4] & 0xc0) >> 2));
    +        const uint8_t sc7 = uint8_t(((data_a[ib0 + i].scales[v_im * 2 + 9] >> 4) & 0x0f) | ((data_a[ib0 + i].scales[v_im * 2 + 5] & 0xc0) >> 2));
    +
    +        const uint8_t q4_0  = uint8_t(data_a[ib0 + i].qs[q_offset     ] & 0xf);
    +        const uint8_t q4_1  = uint8_t(data_a[ib0 + i].qs[q_offset +  1] & 0xf);
    +        const uint8_t q4_2  = uint8_t(data_a[ib0 + i].qs[q_offset + 16] & 0xf);
    +        const uint8_t q4_3  = uint8_t(data_a[ib0 + i].qs[q_offset + 17] & 0xf);
    +        const uint8_t q4_4  = uint8_t(data_a[ib0 + i].qs[q_offset     ]  >> 4);
    +        const uint8_t q4_5  = uint8_t(data_a[ib0 + i].qs[q_offset +  1]  >> 4);
    +        const uint8_t q4_6  = uint8_t(data_a[ib0 + i].qs[q_offset + 16]  >> 4);
    +        const uint8_t q4_7  = uint8_t(data_a[ib0 + i].qs[q_offset + 17]  >> 4);
    +        const uint8_t q4_8  = uint8_t(data_a[ib0 + i].qs[q_offset + 64] & 0xf);
    +        const uint8_t q4_9  = uint8_t(data_a[ib0 + i].qs[q_offset + 65] & 0xf);
    +        const uint8_t q4_10 = uint8_t(data_a[ib0 + i].qs[q_offset + 80] & 0xf);
    +        const uint8_t q4_11 = uint8_t(data_a[ib0 + i].qs[q_offset + 81] & 0xf);
    +        const uint8_t q4_12 = uint8_t(data_a[ib0 + i].qs[q_offset + 64]  >> 4);
    +        const uint8_t q4_13 = uint8_t(data_a[ib0 + i].qs[q_offset + 65]  >> 4);
    +        const uint8_t q4_14 = uint8_t(data_a[ib0 + i].qs[q_offset + 80]  >> 4);
    +        const uint8_t q4_15 = uint8_t(data_a[ib0 + i].qs[q_offset + 81]  >> 4);
    +
    +        const FLOAT_TYPE sx = FLOAT_TYPE(
    +            FLOAT_TYPE(data_b[b_offset + y1_idx     ]) * (q4_0 + (((data_a[ib0 + i].qh[l0     ] & hm1) != 0) ? 16 : 0))
    +          + FLOAT_TYPE(data_b[b_offset + y1_idx +  1]) * (q4_1 + (((data_a[ib0 + i].qh[l0 +  1] & hm1) != 0) ? 16 : 0))
    +          + FLOAT_TYPE(data_b[b_offset + y1_idx + 16]) * (q4_2 + (((data_a[ib0 + i].qh[l0 + 16] & hm1) != 0) ? 16 : 0))
    +          + FLOAT_TYPE(data_b[b_offset + y1_idx + 17]) * (q4_3 + (((data_a[ib0 + i].qh[l0 + 17] & hm1) != 0) ? 16 : 0))
    +        );
    +        const FLOAT_TYPE sy = FLOAT_TYPE(
    +            FLOAT_TYPE(data_b[b_offset + y1_idx + 32]) * (q4_4 + (((data_a[ib0 + i].qh[l0     ] & (hm1 << 1)) != 0) ? 16 : 0))
    +          + FLOAT_TYPE(data_b[b_offset + y1_idx + 33]) * (q4_5 + (((data_a[ib0 + i].qh[l0 +  1] & (hm1 << 1)) != 0) ? 16 : 0))
    +          + FLOAT_TYPE(data_b[b_offset + y1_idx + 48]) * (q4_6 + (((data_a[ib0 + i].qh[l0 + 16] & (hm1 << 1)) != 0) ? 16 : 0))
    +          + FLOAT_TYPE(data_b[b_offset + y1_idx + 49]) * (q4_7 + (((data_a[ib0 + i].qh[l0 + 17] & (hm1 << 1)) != 0) ? 16 : 0))
    +        );
    +        const FLOAT_TYPE sz = FLOAT_TYPE(
    +            FLOAT_TYPE(data_b[b_offset + y2_idx     ]) * (q4_8  + (((data_a[ib0 + i].qh[l0     ] & hm2) != 0) ? 16 : 0))
    +          + FLOAT_TYPE(data_b[b_offset + y2_idx +  1]) * (q4_9  + (((data_a[ib0 + i].qh[l0 +  1] & hm2) != 0) ? 16 : 0))
    +          + FLOAT_TYPE(data_b[b_offset + y2_idx + 16]) * (q4_10 + (((data_a[ib0 + i].qh[l0 + 16] & hm2) != 0) ? 16 : 0))
    +          + FLOAT_TYPE(data_b[b_offset + y2_idx + 17]) * (q4_11 + (((data_a[ib0 + i].qh[l0 + 17] & hm2) != 0) ? 16 : 0))
    +        );
    +        const FLOAT_TYPE sw = FLOAT_TYPE(
    +            FLOAT_TYPE(data_b[b_offset + y2_idx + 32]) * (q4_12 + (((data_a[ib0 + i].qh[l0     ] & (hm2 << 1)) != 0) ? 16 : 0))
    +          + FLOAT_TYPE(data_b[b_offset + y2_idx + 33]) * (q4_13 + (((data_a[ib0 + i].qh[l0 +  1] & (hm2 << 1)) != 0) ? 16 : 0))
    +          + FLOAT_TYPE(data_b[b_offset + y2_idx + 48]) * (q4_14 + (((data_a[ib0 + i].qh[l0 + 16] & (hm2 << 1)) != 0) ? 16 : 0))
    +          + FLOAT_TYPE(data_b[b_offset + y2_idx + 49]) * (q4_15 + (((data_a[ib0 + i].qh[l0 + 17] & (hm2 << 1)) != 0) ? 16 : 0))
    +        );
    +        const FLOAT_TYPE smin = FLOAT_TYPE(
    +            (FLOAT_TYPE(data_b[b_offset + y1_idx]) + FLOAT_TYPE(data_b[b_offset + y1_idx + 1]) + FLOAT_TYPE(data_b[b_offset + y1_idx + 16]) + FLOAT_TYPE(data_b[b_offset + y1_idx + 17])) * sc2 + (FLOAT_TYPE(data_b[b_offset + y1_idx + 32]) + FLOAT_TYPE(data_b[b_offset + y1_idx + 33]) + FLOAT_TYPE(data_b[b_offset + y1_idx + 48]) + FLOAT_TYPE(data_b[b_offset + y1_idx + 49])) * sc3
    +          + (FLOAT_TYPE(data_b[b_offset + y2_idx]) + FLOAT_TYPE(data_b[b_offset + y2_idx + 1]) + FLOAT_TYPE(data_b[b_offset + y2_idx + 16]) + FLOAT_TYPE(data_b[b_offset + y2_idx + 17])) * sc6 + (FLOAT_TYPE(data_b[b_offset + y2_idx + 32]) + FLOAT_TYPE(data_b[b_offset + y2_idx + 33]) + FLOAT_TYPE(data_b[b_offset + y2_idx + 48]) + FLOAT_TYPE(data_b[b_offset + y2_idx + 49])) * sc7
    +        );
    +        tmp[16 * ix + tid] += FLOAT_TYPE(dall * (sx * sc0 + sy * sc1 + sz * sc4 + sw * sc5) - dmin * smin);
    +    }
    +
    +    // sum up partial sums and write back result
    +    barrier();
    +    [[unroll]] for (uint s = 16; s > 0; s >>= 1) {
    +        if (tid < s) {
    +            tmp[tid] += tmp[tid + s];
    +        }
    +        barrier();
    +    }
    +    if (tid == 0) {
    +        data_d[d_offset + row] = D_TYPE(tmp[0]);
    +    }
    +}
    diff --git a/vulkan-shaders/mul_mat_vec_q6_k.comp b/vulkan-shaders/mul_mat_vec_q6_k.comp
    new file mode 100644
    index 0000000000000..8c550e7c37233
    --- /dev/null
    +++ b/vulkan-shaders/mul_mat_vec_q6_k.comp
    @@ -0,0 +1,79 @@
    +#version 450
    +
    +#include "mul_mat_vec_base.comp"
    +
    +layout(local_size_x = 32, local_size_y = 1, local_size_z = 1) in;
    +
    +shared FLOAT_TYPE tmp[32];
    +
    +void main() {
    +    const uint row = gl_WorkGroupID.x;
    +
    +    uint a_offset, b_offset, d_offset;
    +    get_offsets(a_offset, b_offset, d_offset);
    +
    +    const uint num_blocks_per_row = p.ncols / QUANT_K;
    +    const uint ib0 = a_offset / QUANT_K + row*num_blocks_per_row;
    +
    +    const uint tid = gl_LocalInvocationID.x/K_QUANTS_PER_ITERATION;  // 0...31 or 0...16
    +    const uint ix  = gl_LocalInvocationID.x%K_QUANTS_PER_ITERATION;  // 0 or 0, 1
    +
    +    const uint step = 16/K_QUANTS_PER_ITERATION;            // 16 or 8
    +
    +    const uint v_im = tid/step;                             // 0 or 1. 0 computes 0..., 1 computes 128...
    +    const uint v_in = tid - step*v_im;                      // 0...15 or 0...7
    +
    +#if K_QUANTS_PER_ITERATION == 1
    +    const uint l0 = v_in;                                   // 0...15
    +    const uint is = 0;
    +#else
    +    const uint l0 = 4 * v_in;                               // 0, 4, 8, ..., 28
    +    const uint is = v_in / 4;
    +#endif
    +
    +    const uint ql_offset = 64*v_im + l0;
    +    const uint qh_offset = 32*v_im + l0;
    +    const uint s_offset  =  8*v_im + is;
    +    const uint y_offset = 128*v_im + l0;
    +
    +    tmp[16 * ix + tid] = FLOAT_TYPE(0.0); // partial sum for thread in warp
    +
    +    [[unroll]] for (uint i = ix; i < num_blocks_per_row; i += K_QUANTS_PER_ITERATION) {
    +        const uint y_idx   = i * QUANT_K + y_offset;
    +
    +        const FLOAT_TYPE d = FLOAT_TYPE(data_a[ib0 + i].d);
    +
    +#if K_QUANTS_PER_ITERATION == 1
    +        FLOAT_TYPE sum = FLOAT_TYPE(data_b[b_offset + y_idx +  0]) * FLOAT_TYPE(data_a[ib0 + i].scales[s_offset + 0]) * d * FLOAT_TYPE(int8_t((data_a[ib0 + i].ql[ql_offset +  0] & 0xF) | ((data_a[ib0 + i].qh[qh_offset +  0] & 0x03) << 4)) - 32)
    +                       + FLOAT_TYPE(data_b[b_offset + y_idx + 16]) * FLOAT_TYPE(data_a[ib0 + i].scales[s_offset + 1]) * d * FLOAT_TYPE(int8_t((data_a[ib0 + i].ql[ql_offset + 16] & 0xF) | ((data_a[ib0 + i].qh[qh_offset + 16] & 0x03) << 4)) - 32)
    +                       + FLOAT_TYPE(data_b[b_offset + y_idx + 32]) * FLOAT_TYPE(data_a[ib0 + i].scales[s_offset + 2]) * d * FLOAT_TYPE(int8_t((data_a[ib0 + i].ql[ql_offset + 32] & 0xF) | ((data_a[ib0 + i].qh[qh_offset +  0] & 0x0c) << 2)) - 32)
    +                       + FLOAT_TYPE(data_b[b_offset + y_idx + 48]) * FLOAT_TYPE(data_a[ib0 + i].scales[s_offset + 3]) * d * FLOAT_TYPE(int8_t((data_a[ib0 + i].ql[ql_offset + 48] & 0xF) | ((data_a[ib0 + i].qh[qh_offset + 16] & 0x0c) << 2)) - 32)
    +                       + FLOAT_TYPE(data_b[b_offset + y_idx + 64]) * FLOAT_TYPE(data_a[ib0 + i].scales[s_offset + 4]) * d * FLOAT_TYPE(int8_t((data_a[ib0 + i].ql[ql_offset +  0]  >> 4) | ((data_a[ib0 + i].qh[qh_offset +  0] & 0x30) >> 0)) - 32)
    +                       + FLOAT_TYPE(data_b[b_offset + y_idx + 80]) * FLOAT_TYPE(data_a[ib0 + i].scales[s_offset + 5]) * d * FLOAT_TYPE(int8_t((data_a[ib0 + i].ql[ql_offset + 16]  >> 4) | ((data_a[ib0 + i].qh[qh_offset + 16] & 0x30) >> 0)) - 32)
    +                       + FLOAT_TYPE(data_b[b_offset + y_idx + 96]) * FLOAT_TYPE(data_a[ib0 + i].scales[s_offset + 6]) * d * FLOAT_TYPE(int8_t((data_a[ib0 + i].ql[ql_offset + 32]  >> 4) | ((data_a[ib0 + i].qh[qh_offset +  0] & 0xc0) >> 2)) - 32)
    +                       + FLOAT_TYPE(data_b[b_offset + y_idx +112]) * FLOAT_TYPE(data_a[ib0 + i].scales[s_offset + 7]) * d * FLOAT_TYPE(int8_t((data_a[ib0 + i].ql[ql_offset + 48]  >> 4) | ((data_a[ib0 + i].qh[qh_offset + 16] & 0xc0) >> 2)) - 32);
    +        tmp[16 * ix + tid] += sum;
    +#else
    +        FLOAT_TYPE sum = FLOAT_TYPE(0.0);
    +        [[unroll]] for (int l = 0; l < 4; ++l) {
    +            sum += FLOAT_TYPE(data_b[b_offset + y_idx + l+ 0]) * FLOAT_TYPE(data_a[ib0 + i].scales[s_offset + 0]) * d * FLOAT_TYPE(int8_t((data_a[ib0 + i].ql[ql_offset + l+ 0] & 0xF) | (((data_a[ib0 + i].qh[qh_offset + l] >> 0) & 3) << 4)) - 32)
    +                 + FLOAT_TYPE(data_b[b_offset + y_idx + l+32]) * FLOAT_TYPE(data_a[ib0 + i].scales[s_offset + 2]) * d * FLOAT_TYPE(int8_t((data_a[ib0 + i].ql[ql_offset + l+32] & 0xF) | (((data_a[ib0 + i].qh[qh_offset + l] >> 2) & 3) << 4)) - 32)
    +                 + FLOAT_TYPE(data_b[b_offset + y_idx + l+64]) * FLOAT_TYPE(data_a[ib0 + i].scales[s_offset + 4]) * d * FLOAT_TYPE(int8_t((data_a[ib0 + i].ql[ql_offset + l+ 0]  >> 4) | (((data_a[ib0 + i].qh[qh_offset + l] >> 4) & 3) << 4)) - 32)
    +                 + FLOAT_TYPE(data_b[b_offset + y_idx + l+96]) * FLOAT_TYPE(data_a[ib0 + i].scales[s_offset + 6]) * d * FLOAT_TYPE(int8_t((data_a[ib0 + i].ql[ql_offset + l+32]  >> 4) | (((data_a[ib0 + i].qh[qh_offset + l] >> 6) & 3) << 4)) - 32);
    +        }
    +        tmp[16 * ix + tid] += sum;
    +#endif
    +    }
    +
    +    // sum up partial sums and write back result
    +    barrier();
    +    [[unroll]] for (uint s = 16; s > 0; s >>= 1) {
    +        if (tid < s) {
    +            tmp[tid] += tmp[tid + s];
    +       }
    +        barrier();
    +    }
    +    if (tid == 0) {
    +        data_d[d_offset + row] = D_TYPE(tmp[0]);
    +    }
    +}
    diff --git a/vulkan-shaders/mul_mm.comp b/vulkan-shaders/mul_mm.comp
    new file mode 100644
    index 0000000000000..7c2b45cce44c4
    --- /dev/null
    +++ b/vulkan-shaders/mul_mm.comp
    @@ -0,0 +1,494 @@
    +#version 450
    +
    +#extension GL_EXT_control_flow_attributes : enable
    +#extension GL_EXT_shader_16bit_storage : require
    +
    +#ifdef FLOAT16
    +#extension GL_EXT_shader_explicit_arithmetic_types_float16 : require
    +#endif
    +
    +#ifdef MUL_MAT_ID
    +#extension GL_EXT_shader_explicit_arithmetic_types_int16 : require
    +#endif
    +
    +#include "types.comp"
    +
    +#ifndef LOAD_VEC_A
    +#define LOAD_VEC_A 1
    +#endif
    +#ifndef LOAD_VEC_B
    +#define LOAD_VEC_B 1
    +#endif
    +
    +layout(local_size_x_id = 0, local_size_y = 1, local_size_z = 1) in;
    +
    +layout (binding = 0) readonly buffer A {A_TYPE data_a[];};
    +layout (binding = 1) readonly buffer B {B_TYPE data_b[];};
    +layout (binding = 2) writeonly buffer D {D_TYPE data_d[];};
    +
    +#ifdef MUL_MAT_ID
    +layout (binding = 3) readonly buffer IDS {int data_ids[];};
    +#endif
    +
    +layout (push_constant) uniform parameter
    +{
    +    uint M;
    +    uint N;
    +    uint K;
    +    uint stride_a;
    +    uint stride_b;
    +    uint stride_d;
    +
    +    uint batch_stride_a;
    +    uint batch_stride_b;
    +    uint batch_stride_d;
    +
    +#ifdef MUL_MAT_ID
    +    uint nei0;
    +    uint nei1;
    +    uint nbi1;
    +    uint ne11;
    +#else
    +    uint k_split;
    +    uint ne02;
    +    uint ne12;
    +    uint broadcast2;
    +    uint broadcast3;
    +#endif
    +} p;
    +
    +layout (constant_id = 1) const uint BM = 64;
    +layout (constant_id = 2) const uint BN = 64;
    +layout (constant_id = 3) const uint BK = 16;  // Assumed to be 32 if working with a quant
    +layout (constant_id = 4) const uint WM = 32;
    +layout (constant_id = 5) const uint WN = 32;
    +layout (constant_id = 6) const uint WMITER = 2;
    +layout (constant_id = 7) const uint TM = 4;
    +layout (constant_id = 8) const uint TN = 2;
    +layout (constant_id = 9) const uint WARP = 32;
    +
    +shared FLOAT_TYPE buf_a[BM * (BK+1)];
    +shared FLOAT_TYPE buf_b[BN * (BK+1)];
    +
    +#ifdef MUL_MAT_ID
    +shared u16vec2 row_ids[2048];
    +#endif
    +
    +void main() {
    +#ifdef MUL_MAT_ID
    +    const uint expert_idx = gl_GlobalInvocationID.z;
    +#else
    +    const uint batch_idx = gl_GlobalInvocationID.z;
    +
    +    const uint i13 = batch_idx / p.ne12;
    +    const uint i12 = batch_idx % p.ne12;
    +
    +    const uint i03 = i13 / p.broadcast3;
    +    const uint i02 = i12 / p.broadcast2;
    +
    +    const uint batch_idx_a = i03 * p.ne02 + i02;
    +#endif
    +
    +    const uint blocks_m = (p.M + BM - 1) / BM;
    +    const uint ir = gl_WorkGroupID.x % blocks_m;
    +    const uint ik = gl_WorkGroupID.x / blocks_m;
    +    const uint ic = gl_WorkGroupID.y;
    +
    +    const uint warp_i = gl_LocalInvocationID.x / WARP;
    +    const uint warp_r = warp_i % (BM / WM);
    +    const uint warp_c = warp_i / (BM / WM);
    +
    +    const uint WNITER = (WM * WN) / (WARP * TM * TN * WMITER);
    +    const uint WSUBM = WM / WMITER;
    +    const uint WSUBN = WN / WNITER;
    +
    +    const uint tiw = gl_LocalInvocationID.x % WARP;
    +    const uint tiwr = tiw % (WSUBM / TM);
    +    const uint tiwc = tiw / (WSUBM / TM);
    +
    +    const uint loadr_a = gl_LocalInvocationID.x % (BK / LOAD_VEC_A);
    +    const uint loadc_a = gl_LocalInvocationID.x / (BK / LOAD_VEC_A);
    +    const uint loadr_b = gl_LocalInvocationID.x % (BK / LOAD_VEC_B);
    +    const uint loadc_b = gl_LocalInvocationID.x / (BK / LOAD_VEC_B);
    +
    +    const uint loadstride_a = gl_WorkGroupSize.x * LOAD_VEC_A / BK;
    +    const uint loadstride_b = gl_WorkGroupSize.x * LOAD_VEC_B / BK;
    +
    +#ifdef MUL_MAT_ID
    +    uint _ne1 = 0;
    +    for (uint ii1 = 0; ii1 < p.nei1; ii1++) {
    +        for (uint ii0 = 0; ii0 < p.nei0; ii0++) {
    +            if (data_ids[ii1*p.nbi1 + ii0] == expert_idx) {
    +                row_ids[_ne1] = u16vec2(ii0, ii1);
    +                _ne1++;
    +            }
    +        }
    +    }
    +
    +    barrier();
    +
    +    // Workgroup has no work
    +    if (ic * BN >= _ne1) return;
    +#endif
    +
    +#ifdef MUL_MAT_ID
    +    const uint start_k = 0;
    +    const uint end_k = p.K;
    +#else
    +    const uint start_k = ik * p.k_split;
    +    const uint end_k = min(p.K, (ik + 1) * p.k_split);
    +#endif
    +
    +    uint pos_a = (
    +#ifdef MUL_MAT_ID
    +        expert_idx * p.batch_stride_a +
    +#else
    +        batch_idx_a * p.batch_stride_a +
    +#endif
    +        ir * BM * p.stride_a + start_k) / LOAD_VEC_A;
    +#ifdef MUL_MAT_ID
    +    uint pos_b = 0;
    +#else
    +    uint pos_b = (batch_idx * p.batch_stride_b + ic * BN * p.stride_b + start_k) / LOAD_VEC_B;
    +#endif
    +
    +    float sums[WMITER * TM * WNITER * TN];
    +    FLOAT_TYPE cache_a[WMITER * TM];
    +    FLOAT_TYPE cache_b[WNITER * TN];
    +
    +    [[unroll]] for (uint i = 0; i < WMITER*TM*WNITER*TN; i++) {
    +        sums[i] = 0.0f;
    +    }
    +
    +    [[unroll]] for (uint block = start_k; block < end_k; block += BK) {
    +        [[unroll]] for (uint l = 0; l < BM; l += loadstride_a) {
    +
    +#if defined(DATA_A_F32) || defined(DATA_A_F16)
    +#if LOAD_VEC_A == 8
    +            const uint idx = pos_a + (loadc_a + l) * p.stride_a / LOAD_VEC_A + loadr_a;
    +            const uint buf_idx = (loadc_a + l) * (BK+1) + loadr_a * LOAD_VEC_A;
    +            buf_a[buf_idx    ] = FLOAT_TYPE(data_a[idx][0].x);
    +            buf_a[buf_idx + 1] = FLOAT_TYPE(data_a[idx][0].y);
    +            buf_a[buf_idx + 2] = FLOAT_TYPE(data_a[idx][0].z);
    +            buf_a[buf_idx + 3] = FLOAT_TYPE(data_a[idx][0].w);
    +            buf_a[buf_idx + 4] = FLOAT_TYPE(data_a[idx][1].x);
    +            buf_a[buf_idx + 5] = FLOAT_TYPE(data_a[idx][1].y);
    +            buf_a[buf_idx + 6] = FLOAT_TYPE(data_a[idx][1].z);
    +            buf_a[buf_idx + 7] = FLOAT_TYPE(data_a[idx][1].w);
    +#elif LOAD_VEC_A == 4
    +            const uint idx = pos_a + (loadc_a + l) * p.stride_a / LOAD_VEC_A + loadr_a;
    +            const uint buf_idx = (loadc_a + l) * (BK+1) + loadr_a * LOAD_VEC_A;
    +            buf_a[buf_idx    ] = FLOAT_TYPE(data_a[idx].x);
    +            buf_a[buf_idx + 1] = FLOAT_TYPE(data_a[idx].y);
    +            buf_a[buf_idx + 2] = FLOAT_TYPE(data_a[idx].z);
    +            buf_a[buf_idx + 3] = FLOAT_TYPE(data_a[idx].w);
    +#else
    +            if (ir * BM + loadc_a + l < p.M && block + loadr_a < end_k) {
    +                buf_a[(loadc_a + l) * (BK+1) + loadr_a] = FLOAT_TYPE(data_a[pos_a + (loadc_a + l) * p.stride_a + loadr_a]);
    +            } else {
    +                buf_a[(loadc_a + l) * (BK+1) + loadr_a] = FLOAT_TYPE(0.0f);
    +            }
    +#endif
    +#elif defined(DATA_A_Q4_0)
    +            const uint idx = pos_a + (loadc_a + l) * p.stride_a / LOAD_VEC_A + loadr_a;
    +            const uint buf_idx = (loadc_a + l) * (BK+1) + loadr_a;
    +
    +            const uint ib = idx / 16;
    +            const uint iqs = idx & 0xF;
    +
    +            const float d = float(data_a[ib].d);
    +            const uint vui = uint(data_a[ib].qs[iqs]);
    +            const vec2 v = (vec2(vui & 0xF, vui >> 4) - 8.0f) * d;
    +
    +            buf_a[buf_idx     ] = FLOAT_TYPE(v.x);
    +            buf_a[buf_idx + 16] = FLOAT_TYPE(v.y);
    +#elif defined(DATA_A_Q4_1)
    +            const uint idx = pos_a + (loadc_a + l) * p.stride_a / LOAD_VEC_A + loadr_a;
    +            const uint buf_idx = (loadc_a + l) * (BK+1) + loadr_a;
    +
    +            const uint ib = idx / 16;
    +            const uint iqs = idx & 0xF;
    +
    +            const float d = float(data_a[ib].d);
    +            const float m = float(data_a[ib].m);
    +            const uint vui = uint(data_a[ib].qs[iqs]);
    +            const vec2 v = vec2(vui & 0xF, vui >> 4) * d + m;
    +
    +            buf_a[buf_idx     ] = FLOAT_TYPE(v.x);
    +            buf_a[buf_idx + 16] = FLOAT_TYPE(v.y);
    +#elif defined(DATA_A_Q5_0)
    +            const uint idx = pos_a + (loadc_a + l) * p.stride_a / LOAD_VEC_A + loadr_a;
    +            const uint buf_idx = (loadc_a + l) * (BK+1) + loadr_a;
    +
    +            const uint ib = idx / 16;
    +            const uint iqs = idx & 0xF;
    +
    +            const float d = float(data_a[ib].d);
    +            const uint uint_qh = uint(data_a[ib].qh[1]) << 16 | data_a[ib].qh[0];
    +            const ivec2 qh = ivec2(((uint_qh >> iqs) << 4) & 0x10, (uint_qh >> (iqs + 12)) & 0x10);
    +            const uint vui = uint(data_a[ib].qs[iqs]);
    +            const vec2 v = (vec2((vui & 0xF) | qh.x, (vui >> 4) | qh.y) - 16.0f) * d;
    +
    +            buf_a[buf_idx     ] = FLOAT_TYPE(v.x);
    +            buf_a[buf_idx + 16] = FLOAT_TYPE(v.y);
    +#elif defined(DATA_A_Q5_1)
    +            const uint idx = pos_a + (loadc_a + l) * p.stride_a / LOAD_VEC_A + loadr_a;
    +            const uint buf_idx = (loadc_a + l) * (BK+1) + loadr_a;
    +
    +            const uint ib = idx / 16;
    +            const uint iqs = idx & 0xF;
    +
    +            const float d = float(data_a[ib].d);
    +            const float m = float(data_a[ib].m);
    +            const uint uint_qh = data_a[ib].qh;
    +            const ivec2 qh = ivec2(((uint_qh >> iqs) << 4) & 0x10, (uint_qh >> (iqs + 12)) & 0x10);
    +            const uint vui = uint(data_a[ib].qs[iqs]);
    +            const vec2 v = vec2((vui & 0xF) | qh.x, (vui >> 4) | qh.y) * d + m;
    +
    +            buf_a[buf_idx     ] = FLOAT_TYPE(v.x);
    +            buf_a[buf_idx + 16] = FLOAT_TYPE(v.y);
    +#elif defined(DATA_A_Q8_0)
    +            const uint idx = pos_a + (loadc_a + l) * p.stride_a / LOAD_VEC_A + loadr_a;
    +            const uint buf_idx = (loadc_a + l) * (BK+1) + loadr_a * LOAD_VEC_A;
    +
    +            const uint ib = idx / 16;
    +            const uint iqs = (idx & 0xF) * 2;
    +
    +            const float d = float(data_a[ib].d);
    +            const vec2 v = vec2(int(data_a[ib].qs[iqs]), int(data_a[ib].qs[iqs + 1])) * d;
    +
    +            buf_a[buf_idx    ] = FLOAT_TYPE(v.x);
    +            buf_a[buf_idx + 1] = FLOAT_TYPE(v.y);
    +#elif defined(DATA_A_Q2_K)
    +            const uint idx = pos_a + (loadc_a + l) * p.stride_a / LOAD_VEC_A + loadr_a;
    +            const uint buf_idx = (loadc_a + l) * (BK+1) + loadr_a * LOAD_VEC_A;
    +
    +            const uint ib = idx / 128;                         // 2 values per idx
    +            const uint iqs = idx % 128;                        // 0..127
    +
    +            const uint qsi = (iqs / 64) * 32 + (iqs % 16) * 2; // 0,2,4..30
    +            const uint scalesi = iqs / 8;                      // 0..15
    +            const uint qsshift = ((iqs % 64) / 16) * 2;        // 0,2,4,6
    +
    +            const uvec2 qs = uvec2(data_a[ib].qs[qsi], data_a[ib].qs[qsi + 1]);
    +            const uint scales = data_a[ib].scales[scalesi];
    +            const vec2 d = vec2(data_a[ib].d);
    +
    +            const vec2 v = d.x * float(scales & 0xF) * vec2((qs >> qsshift) & 3) - d.y * float(scales >> 4);
    +
    +            buf_a[buf_idx    ] = FLOAT_TYPE(v.x);
    +            buf_a[buf_idx + 1] = FLOAT_TYPE(v.y);
    +#elif defined(DATA_A_Q3_K)
    +            const uint idx = pos_a + (loadc_a + l) * p.stride_a / LOAD_VEC_A + loadr_a;
    +            const uint buf_idx = (loadc_a + l) * (BK+1) + loadr_a * LOAD_VEC_A;
    +
    +            const uint ib = idx / 128;                   // 2 values per idx
    +            const uint iqs = idx % 128;                  // 0..127
    +
    +            const uint n = iqs / 64;                     // 0,1
    +            const uint qsi = n * 32 + (iqs % 16) * 2;    // 0,2,4..62
    +            const uint hmi =          (iqs % 16) * 2;    // 0,2,4..30
    +            const uint j = (iqs % 64) / 4;               // 0..3
    +            const uint is = iqs / 8;                     // 0..15
    +            const uint halfsplit = ((iqs % 64) / 16);    // 0,1,2,3
    +            const uint qsshift = halfsplit * 2;          // 0,2,4,6
    +            const uint m = 1 << (4 * n + halfsplit);     // 1,2,4,8,16,32,64,128
    +
    +            const int8_t us = int8_t(is <  4 ? (data_a[ib].scales[is-0] & 0xF) | (((data_a[ib].scales[is+8] >> 0) & 3) << 4) :
    +                                    is <  8 ? (data_a[ib].scales[is-0] & 0xF) | (((data_a[ib].scales[is+4] >> 2) & 3) << 4) :
    +                                    is < 12 ? (data_a[ib].scales[is-8] >>  4) | (((data_a[ib].scales[is+0] >> 4) & 3) << 4) :
    +                                            (data_a[ib].scales[is-8] >>  4) | (((data_a[ib].scales[is-4] >> 6) & 3) << 4));
    +            const float dl = float(data_a[ib].d) * float(us - 32);
    +
    +            buf_a[buf_idx    ] = FLOAT_TYPE(dl * float(int8_t((data_a[ib].qs[qsi    ] >> qsshift) & 3) - (((data_a[ib].hmask[hmi    ] & m) != 0) ? 0 : 4)));
    +            buf_a[buf_idx + 1] = FLOAT_TYPE(dl * float(int8_t((data_a[ib].qs[qsi + 1] >> qsshift) & 3) - (((data_a[ib].hmask[hmi + 1] & m) != 0) ? 0 : 4)));
    +#elif defined(DATA_A_Q4_K)
    +            const uint idx = pos_a + (loadc_a + l) * p.stride_a / LOAD_VEC_A + loadr_a;
    +            const uint buf_idx = (loadc_a + l) * (BK+1) + loadr_a * LOAD_VEC_A;
    +
    +            const uint ib = idx / 128;                 // 2 values per idx
    +            const uint iqs = idx % 128;                // 0..127
    +
    +            const uint n = iqs / 32;                   // 0,1,2,3
    +            const uint b = (iqs % 32) / 16;            // 0,1
    +            const uint is = 2 * n + b;                 // 0..7
    +            const uint qsi = n * 32 + (iqs % 16) * 2;  // 0,2,4..126
    +
    +            const vec2 loadd = vec2(data_a[ib].d);
    +
    +            uint8_t sc;
    +            uint8_t mbyte;
    +            if (is < 4) {
    +                sc    = uint8_t(data_a[ib].scales[is    ] & 63);
    +                mbyte = uint8_t(data_a[ib].scales[is + 4] & 63);
    +            } else {
    +                sc    = uint8_t((data_a[ib].scales[is + 4] & 0xF) | ((data_a[ib].scales[is - 4] >> 6) << 4));
    +                mbyte = uint8_t((data_a[ib].scales[is + 4] >>  4) | ((data_a[ib].scales[is    ] >> 6) << 4));
    +            }
    +            const float d = loadd.x * sc;
    +            const float m = loadd.y * mbyte;
    +
    +            buf_a[buf_idx    ] = FLOAT_TYPE(d * float((data_a[ib].qs[qsi    ] >> (b * 4)) & 0xF) - m);
    +            buf_a[buf_idx + 1] = FLOAT_TYPE(d * float((data_a[ib].qs[qsi + 1] >> (b * 4)) & 0xF) - m);
    +#elif defined(DATA_A_Q5_K)
    +            const uint idx = pos_a + (loadc_a + l) * p.stride_a / LOAD_VEC_A + loadr_a;
    +            const uint buf_idx = (loadc_a + l) * (BK+1) + loadr_a * LOAD_VEC_A;
    +
    +            const uint ib = idx / 128;                 // 2 values per idx
    +            const uint iqs = idx % 128;                // 0..127
    +
    +            const uint n = iqs / 32;                   // 0,1,2,3
    +            const uint b = (iqs % 32) / 16;            // 0,1
    +            const uint is = 2 * n + b;                 // 0..7
    +            const uint qsi = n * 32 + (iqs % 16) * 2;  // 0,2,4..126
    +            const uint qhi = (iqs % 16) * 2;           // 0,2,4..30
    +
    +            const uint8_t hm = uint8_t(1 << (iqs / 16));
    +
    +            const vec2 loadd = vec2(data_a[ib].d);
    +
    +            uint8_t sc;
    +            uint8_t mbyte;
    +            if (is < 4) {
    +                sc    = uint8_t(data_a[ib].scales[is    ] & 63);
    +                mbyte = uint8_t(data_a[ib].scales[is + 4] & 63);
    +            } else {
    +                sc    = uint8_t((data_a[ib].scales[is + 4] & 0xF) | ((data_a[ib].scales[is - 4] >> 6) << 4));
    +                mbyte = uint8_t((data_a[ib].scales[is + 4] >>  4) | ((data_a[ib].scales[is    ] >> 6) << 4));
    +            }
    +            const float d = loadd.x * sc;
    +            const float m = loadd.y * mbyte;
    +
    +            buf_a[buf_idx    ] = FLOAT_TYPE(d * (float((data_a[ib].qs[qsi    ] >> (b * 4)) & 0xF) + float((data_a[ib].qh[qhi    ] & hm) != 0 ? 16 : 0)) - m);
    +            buf_a[buf_idx + 1] = FLOAT_TYPE(d * (float((data_a[ib].qs[qsi + 1] >> (b * 4)) & 0xF) + float((data_a[ib].qh[qhi + 1] & hm) != 0 ? 16 : 0)) - m);
    +#elif defined(DATA_A_Q6_K)
    +            const uint idx = pos_a + (loadc_a + l) * p.stride_a / LOAD_VEC_A + loadr_a;
    +            const uint buf_idx = (loadc_a + l) * (BK+1) + loadr_a * LOAD_VEC_A;
    +
    +            const uint ib = idx / 128;                  // 2 values per idx
    +            const uint iqs = idx % 128;                 // 0..127
    +
    +            const uint n = iqs / 64;                    // 0,1
    +            const uint b = (iqs % 64) / 32;             // 0,1
    +            const uint is_b = (iqs % 16) / 8;           // 0,1
    +            const uint qhshift = ((iqs % 64) / 16) * 2; // 0,2,4,6
    +            const uint is = 8 * n + qhshift + is_b;     // 0..15
    +            const uint qsi = n * 64 + (iqs % 32) * 2;   // 0,2,4..126
    +            const uint qhi = n * 32 + (iqs % 16) * 2;   // 0,2,4..62
    +
    +            const float dscale = float(data_a[ib].d) * float(data_a[ib].scales[is]);
    +
    +            buf_a[buf_idx    ] = FLOAT_TYPE(dscale * float(int8_t(((data_a[ib].ql[qsi    ] >> (b * 4)) & 0xF) | (((data_a[ib].qh[qhi    ] >> qhshift) & 3) << 4)) - 32));
    +            buf_a[buf_idx + 1] = FLOAT_TYPE(dscale * float(int8_t(((data_a[ib].ql[qsi + 1] >> (b * 4)) & 0xF) | (((data_a[ib].qh[qhi + 1] >> qhshift) & 3) << 4)) - 32));
    +#endif
    +        }
    +        [[unroll]] for (uint l = 0; l < BN; l += loadstride_b) {
    +#if LOAD_VEC_B == 8
    +#ifdef MUL_MAT_ID
    +            const u16vec2 row_idx = row_ids[ic * BN + loadc_b + l];
    +            const uint idx = pos_b + row_idx.y * p.batch_stride_b / LOAD_VEC_B + (row_idx.x % p.ne11) * p.stride_b / LOAD_VEC_B + loadr_b;
    +#else
    +            const uint idx = pos_b + (loadc_b + l) * p.stride_b / LOAD_VEC_B + loadr_b;
    +#endif
    +            const uint buf_idx = (loadc_b + l) * (BK+1) + loadr_b * LOAD_VEC_B;
    +            buf_b[buf_idx + 0] = FLOAT_TYPE(data_b[idx][0].x);
    +            buf_b[buf_idx + 1] = FLOAT_TYPE(data_b[idx][0].y);
    +            buf_b[buf_idx + 2] = FLOAT_TYPE(data_b[idx][0].z);
    +            buf_b[buf_idx + 3] = FLOAT_TYPE(data_b[idx][0].w);
    +            buf_b[buf_idx + 4] = FLOAT_TYPE(data_b[idx][1].x);
    +            buf_b[buf_idx + 5] = FLOAT_TYPE(data_b[idx][1].y);
    +            buf_b[buf_idx + 6] = FLOAT_TYPE(data_b[idx][1].z);
    +            buf_b[buf_idx + 7] = FLOAT_TYPE(data_b[idx][1].w);
    +#elif LOAD_VEC_B == 4
    +#ifdef MUL_MAT_ID
    +            const u16vec2 row_idx = row_ids[ic * BN + loadc_b + l];
    +            const uint idx = pos_b + row_idx.y * p.batch_stride_b / LOAD_VEC_B + (row_idx.x % p.ne11) * p.stride_b / LOAD_VEC_B + loadr_b;
    +#else
    +            const uint idx = pos_b + (loadc_b + l) * p.stride_b / LOAD_VEC_B + loadr_b;
    +#endif
    +            const uint buf_idx = (loadc_b + l) * (BK+1) + loadr_b * LOAD_VEC_B;
    +            buf_b[buf_idx + 0] = FLOAT_TYPE(data_b[idx].x);
    +            buf_b[buf_idx + 1] = FLOAT_TYPE(data_b[idx].y);
    +            buf_b[buf_idx + 2] = FLOAT_TYPE(data_b[idx].z);
    +            buf_b[buf_idx + 3] = FLOAT_TYPE(data_b[idx].w);
    +#elif !MUL_MAT_ID
    +            if (ic * BN + loadc_b + l < p.N && block + loadr_b < end_k) {
    +                buf_b[(loadc_b + l) * (BK+1) + loadr_b] = FLOAT_TYPE(data_b[pos_b + (loadc_b + l) * p.stride_b + loadr_b]);
    +            } else {
    +                buf_b[(loadc_b + l) * (BK+1) + loadr_b] = FLOAT_TYPE(0.0f);
    +            }
    +#else
    +            const uint row_i = ic * BN + loadc_b + l;
    +            if (row_i < _ne1) {
    +                const u16vec2 row_idx = row_ids[row_i];
    +                buf_b[(loadc_b + l) * (BK+1) + loadr_b] = FLOAT_TYPE(data_b[pos_b + row_idx.y * p.batch_stride_b + (row_idx.x % p.ne11) * p.stride_b + loadr_b]);
    +            } else {
    +                buf_b[(loadc_b + l) * (BK+1) + loadr_b] = FLOAT_TYPE(0.0f);
    +            }
    +#endif
    +        }
    +
    +        barrier();
    +
    +        pos_a += BK / LOAD_VEC_A;
    +        pos_b += BK / LOAD_VEC_B;
    +
    +        for (uint i = 0; i < BK; i++) {
    +            // Load from shared into cache
    +            [[unroll]] for (uint wsir = 0; wsir < WMITER; wsir++) {
    +                [[unroll]] for (uint j = 0; j < TM; j++) {
    +                    cache_a[wsir * TM + j] = buf_a[(warp_r * WM + wsir * WSUBM + tiwr * TM + j) * (BK+1) + i];
    +                }
    +            }
    +            [[unroll]] for (uint wsic = 0; wsic < WNITER; wsic++) {
    +                [[unroll]] for (uint j = 0; j < TN; j++) {
    +                    cache_b[wsic * TN + j] = buf_b[(warp_c * WN + wsic * WSUBN + tiwc * TN + j) * (BK+1) + i];
    +                }
    +            }
    +
    +            [[unroll]] for (uint wsic = 0; wsic < WNITER; wsic++) {
    +                [[unroll]] for (uint wsir = 0; wsir < WMITER; wsir++) {
    +                    [[unroll]] for (uint cc = 0; cc < TN; cc++) {
    +                        [[unroll]] for (uint cr = 0; cr < TM; cr++) {
    +                            sums[(wsic * TN + cc) * (WMITER * TM) + wsir * TM + cr] += float(cache_a[wsir * TM + cr]) * float(cache_b[wsic * TN + cc]);
    +                        }
    +                    }
    +                }
    +            }
    +        }
    +
    +        barrier();
    +    }
    +
    +    const uint dr = ir * BM + warp_r * WM;
    +    const uint dc = ic * BN + warp_c * WN;
    +
    +#ifndef MUL_MAT_ID
    +    const uint offsets = batch_idx * p.batch_stride_d + ik * p.batch_stride_d * gl_NumWorkGroups.z;
    +#endif
    +
    +    [[unroll]] for (uint wsic = 0; wsic < WNITER; wsic++) {
    +        [[unroll]] for (uint wsir = 0; wsir < WMITER; wsir++) {
    +
    +            const uint dr_warp = dr + wsir * WSUBM + tiwr * TM;
    +            const uint dc_warp = dc + wsic * WSUBN + tiwc * TN;
    +            [[unroll]] for (uint cc = 0; cc < TN; cc++) {
    +#ifdef MUL_MAT_ID
    +                const uint row_i = dc_warp + cc;
    +                if (row_i >= _ne1) break;
    +
    +                const u16vec2 row_idx = row_ids[row_i];
    +#endif
    +                [[unroll]] for (uint cr = 0; cr < TM; cr++) {
    +#ifdef MUL_MAT_ID
    +                    data_d[row_idx.y * p.batch_stride_d + row_idx.x * p.stride_d + dr_warp + cr] = D_TYPE(sums[(wsic * TN + cc) * (WMITER * TM) + wsir * TM + cr]);
    +#else
    +                    if (dr_warp + cr < p.M && dc_warp + cc < p.N) {
    +                        data_d[offsets + (dc_warp + cc) * p.stride_d + dr_warp + cr] = D_TYPE(sums[(wsic * TN + cc) * (WMITER * TM) + wsir * TM + cr]);
    +                    }
    +#endif
    +                }
    +            }
    +        }
    +    }
    +}
    diff --git a/vulkan-shaders/norm.comp b/vulkan-shaders/norm.comp
    new file mode 100644
    index 0000000000000..803dbdcb3a936
    --- /dev/null
    +++ b/vulkan-shaders/norm.comp
    @@ -0,0 +1,44 @@
    +#version 450
    +
    +#include "generic_head.comp"
    +#include "types.comp"
    +
    +#extension GL_EXT_control_flow_attributes : enable
    +#define BLOCK_SIZE 512
    +
    +layout(local_size_x = BLOCK_SIZE, local_size_y = 1, local_size_z = 1) in;
    +
    +layout (binding = 0) readonly buffer X {A_TYPE data_a[];};
    +layout (binding = 1) writeonly buffer D {D_TYPE data_d[];};
    +
    +shared vec2 sum[BLOCK_SIZE];
    +
    +void main() {
    +    const uint row = gl_WorkGroupID.x;
    +    const uint tid = gl_LocalInvocationID.x;
    +
    +    sum[tid] = vec2(0.0f, 0.0f);
    +
    +    [[unroll]] for (uint col = tid; col < p.KX; col += BLOCK_SIZE) {
    +        const float xi = float(data_a[row*p.KX + col]);
    +        sum[tid].x += xi;
    +        sum[tid].y += xi * xi;
    +    }
    +
    +    // sum up partial sums and write back result
    +    barrier();
    +    [[unroll]] for (int s = BLOCK_SIZE / 2; s > 0; s >>= 1) {
    +        if (tid < s) {
    +            sum[tid] += sum[tid + s];
    +        }
    +        barrier();
    +    }
    +
    +    const float mean = sum[0].x / p.KX;
    +    const float var = sum[0].y / p.KX - mean * mean;
    +    const float inv_std = inversesqrt(var + p.param1);
    +
    +    [[unroll]] for (uint col = tid; col < p.KX; col += BLOCK_SIZE) {
    +        data_d[row*p.KX + col] = D_TYPE((float(data_a[row*p.KX + col]) - mean) * inv_std);
    +    }
    +}
    diff --git a/vulkan-shaders/relu.comp b/vulkan-shaders/relu.comp
    new file mode 100644
    index 0000000000000..7e5baa5b8b5e5
    --- /dev/null
    +++ b/vulkan-shaders/relu.comp
    @@ -0,0 +1,21 @@
    +#version 450
    +
    +#include "generic_head.comp"
    +#include "types.comp"
    +
    +#extension GL_EXT_control_flow_attributes : enable
    +
    +layout(local_size_x = 512, local_size_y = 1, local_size_z = 1) in;
    +
    +layout (binding = 0) readonly buffer X {A_TYPE data_a[];};
    +layout (binding = 1) writeonly buffer D {D_TYPE data_d[];};
    +
    +void main() {
    +    const uint i = gl_GlobalInvocationID.x;
    +
    +    if (i >= p.KX) {
    +        return;
    +    }
    +
    +    data_d[i] = max(float(data_a[i]), 0);
    +}
    diff --git a/vulkan-shaders/rms_norm.comp b/vulkan-shaders/rms_norm.comp
    new file mode 100644
    index 0000000000000..cfd08d345cc83
    --- /dev/null
    +++ b/vulkan-shaders/rms_norm.comp
    @@ -0,0 +1,42 @@
    +#version 450
    +
    +#include "generic_head.comp"
    +#include "types.comp"
    +
    +#extension GL_EXT_control_flow_attributes : enable
    +#define BLOCK_SIZE 512
    +
    +layout(local_size_x = BLOCK_SIZE, local_size_y = 1, local_size_z = 1) in;
    +
    +layout (binding = 0) readonly buffer X {A_TYPE data_a[];};
    +layout (binding = 1) writeonly buffer D {D_TYPE data_d[];};
    +
    +shared FLOAT_TYPE sum[BLOCK_SIZE];
    +
    +void main() {
    +    const uint row = gl_WorkGroupID.x;
    +    const uint tid = gl_LocalInvocationID.x;
    +
    +    sum[tid] = FLOAT_TYPE(0.0f); // partial sum for thread in warp
    +
    +    [[unroll]] for (uint col = tid; col < p.KX; col += BLOCK_SIZE) {
    +        const FLOAT_TYPE xi = FLOAT_TYPE(data_a[row*p.KX + col]);
    +        sum[tid] += xi * xi;
    +    }
    +
    +    // sum up partial sums and write back result
    +    barrier();
    +    [[unroll]] for (int s = BLOCK_SIZE / 2; s > 0; s >>= 1) {
    +        if (tid < s) {
    +            sum[tid] += sum[tid + s];
    +        }
    +        barrier();
    +    }
    +
    +    const FLOAT_TYPE mean = sum[0] / FLOAT_TYPE(p.KX);
    +    const FLOAT_TYPE scale = inversesqrt(mean + FLOAT_TYPE(p.param1));
    +
    +    [[unroll]] for (uint col = tid; col < p.KX; col += BLOCK_SIZE) {
    +        data_d[row*p.KX + col] = D_TYPE(scale * FLOAT_TYPE(data_a[row*p.KX + col]));
    +    }
    +}
    diff --git a/vulkan-shaders/rope_head.comp b/vulkan-shaders/rope_head.comp
    new file mode 100644
    index 0000000000000..ea89542261cc4
    --- /dev/null
    +++ b/vulkan-shaders/rope_head.comp
    @@ -0,0 +1,44 @@
    +#include "types.comp"
    +
    +#extension GL_EXT_shader_16bit_storage : require
    +
    +layout(local_size_x = 1, local_size_y = 256, local_size_z = 1) in;
    +
    +layout (binding = 0) readonly buffer X {A_TYPE data_a[];};
    +layout (binding = 1) readonly buffer Y {int data_pos[];};
    +layout (binding = 2) readonly buffer Z {float data_ff[];};
    +layout (binding = 3) writeonly buffer D {D_TYPE data_d[];};
    +
    +layout (push_constant) uniform parameter {
    +    uint ncols;
    +    uint n_dims;
    +    float freq_scale;
    +    uint p_delta_rows;
    +    float freq_base;
    +    float ext_factor;
    +    float attn_factor;
    +    float corr_dims[2];
    +    float theta_scale;
    +    uint has_ff;
    +} p;
    +
    +float rope_yarn_ramp(const float low, const float high, const uint i0) {
    +    const float y = (i0 / 2 - low) / max(0.001f, high - low);
    +    return 1.0f - min(1.0f, max(0.0f, y));
    +}
    +
    +void rope_yarn(const float theta_extrap, const uint i0, out float cos_theta, out float sin_theta) {
    +    float mscale = p.attn_factor;
    +    // Get n-d rotational scaling corrected for extrapolation
    +    float theta_interp = p.freq_scale * theta_extrap;
    +    float theta = theta_interp;
    +    if (p.ext_factor != 0.0f) {
    +        float ramp_mix = rope_yarn_ramp(p.corr_dims[0], p.corr_dims[1], i0) * p.ext_factor;
    +        theta = theta_interp * (1 - ramp_mix) + theta_extrap * ramp_mix;
    +
    +        // Get n-d magnitude scaling corrected for interpolation
    +        mscale *= 1.0f + 0.1f * log(1.0f / p.freq_scale);
    +    }
    +    cos_theta = cos(theta) * mscale;
    +    sin_theta = sin(theta) * mscale;
    +}
    diff --git a/vulkan-shaders/rope_neox.comp b/vulkan-shaders/rope_neox.comp
    new file mode 100644
    index 0000000000000..83b46b69b2a7f
    --- /dev/null
    +++ b/vulkan-shaders/rope_neox.comp
    @@ -0,0 +1,37 @@
    +#version 450
    +
    +#include "rope_head.comp"
    +
    +void main() {
    +    const uint col = gl_GlobalInvocationID.y * 2;
    +    const uint row = gl_GlobalInvocationID.x;
    +
    +    if (col >= p.ncols) {
    +        return;
    +    }
    +
    +    if (col >= p.n_dims) {
    +        const uint i = row*p.ncols + col;
    +
    +        data_d[i + 0] = data_a[i + 0];
    +        data_d[i + 1] = data_a[i + 1];
    +
    +        return;
    +    }
    +
    +    const uint i  = row*p.ncols + col/2;
    +    const uint i2 = row/p.p_delta_rows;
    +
    +    const float theta_base = data_pos[i2] * pow(p.theta_scale, col/2.0f);
    +
    +    const float freq_factor = p.has_ff != 0 ? data_ff[col/2] : 1.0f;
    +
    +    float cos_theta, sin_theta;
    +    rope_yarn(theta_base / freq_factor, col, cos_theta, sin_theta);
    +
    +    const float x0 = float(data_a[i + 0]);
    +    const float x1 = float(data_a[i + p.n_dims/2]);
    +
    +    data_d[i + 0]        = D_TYPE(x0*cos_theta - x1*sin_theta);
    +    data_d[i + p.n_dims/2] = D_TYPE(x0*sin_theta + x1*cos_theta);
    +}
    diff --git a/vulkan-shaders/rope_norm.comp b/vulkan-shaders/rope_norm.comp
    new file mode 100644
    index 0000000000000..e416ad9389706
    --- /dev/null
    +++ b/vulkan-shaders/rope_norm.comp
    @@ -0,0 +1,37 @@
    +#version 450
    +
    +#include "rope_head.comp"
    +
    +void main() {
    +    const uint col = gl_GlobalInvocationID.y * 2;
    +    const uint row = gl_GlobalInvocationID.x;
    +
    +    if (col >= p.ncols) {
    +        return;
    +    }
    +
    +    if (col >= p.n_dims) {
    +        const uint i = row*p.ncols + col;
    +
    +        data_d[i + 0] = data_a[i + 0];
    +        data_d[i + 1] = data_a[i + 1];
    +
    +        return;
    +    }
    +
    +    const uint i = row*p.ncols + col;
    +    const uint i2 = row/p.p_delta_rows;
    +
    +    const float theta_base = data_pos[i2] * pow(p.theta_scale, col/2.0f);
    +
    +    const float freq_factor = p.has_ff != 0 ? data_ff[col/2] : 1.0f;
    +
    +    float cos_theta, sin_theta;
    +    rope_yarn(theta_base / freq_factor, col, cos_theta, sin_theta);
    +
    +    const float x0 = float(data_a[i + 0]);
    +    const float x1 = float(data_a[i + 1]);
    +
    +    data_d[i + 0] = D_TYPE(x0*cos_theta - x1*sin_theta);
    +    data_d[i + 1] = D_TYPE(x0*sin_theta + x1*cos_theta);
    +}
    diff --git a/vulkan-shaders/scale.comp b/vulkan-shaders/scale.comp
    new file mode 100644
    index 0000000000000..510cb7237e8a7
    --- /dev/null
    +++ b/vulkan-shaders/scale.comp
    @@ -0,0 +1,12 @@
    +#version 450
    +
    +#include "types.comp"
    +#include "generic_unary_head.comp"
    +
    +void main() {
    +    if (gl_GlobalInvocationID.x >= p.ne) {
    +        return;
    +    }
    +
    +    data_d[p.d_offset + dst_idx(gl_GlobalInvocationID.x)] = D_TYPE(FLOAT_TYPE(data_a[src0_idx(gl_GlobalInvocationID.x)]) * FLOAT_TYPE(p.param1));
    +}
    diff --git a/vulkan-shaders/silu.comp b/vulkan-shaders/silu.comp
    new file mode 100644
    index 0000000000000..15920f06e4722
    --- /dev/null
    +++ b/vulkan-shaders/silu.comp
    @@ -0,0 +1,22 @@
    +#version 450
    +
    +#include "generic_head.comp"
    +#include "types.comp"
    +
    +#extension GL_EXT_control_flow_attributes : enable
    +
    +layout(local_size_x = 512, local_size_y = 1, local_size_z = 1) in;
    +
    +layout (binding = 0) readonly buffer X {A_TYPE data_a[];};
    +layout (binding = 1) writeonly buffer D {D_TYPE data_d[];};
    +
    +void main() {
    +    const uint i = gl_GlobalInvocationID.x;
    +
    +    if (i >= p.KX) {
    +        return;
    +    }
    +
    +    const float xi = float(data_a[i]);
    +    data_d[i] = D_TYPE(xi / (1.0f + exp(-xi)));
    +}
    diff --git a/vulkan-shaders/soft_max.comp b/vulkan-shaders/soft_max.comp
    new file mode 100644
    index 0000000000000..1b8419c7cf2a3
    --- /dev/null
    +++ b/vulkan-shaders/soft_max.comp
    @@ -0,0 +1,106 @@
    +#version 450
    +
    +#extension GL_EXT_shader_16bit_storage : require
    +
    +layout (push_constant) uniform parameter
    +{
    +    uint KX;
    +    uint KY;
    +    float scale;
    +    float max_bias;
    +    float m0;
    +    float m1;
    +    uint n_head_log2;
    +} p;
    +
    +#include "types.comp"
    +
    +#extension GL_EXT_control_flow_attributes : enable
    +#define BLOCK_SIZE 512
    +
    +layout(local_size_x = BLOCK_SIZE, local_size_y = 1, local_size_z = 1) in;
    +
    +layout (binding = 0) readonly buffer X {A_TYPE data_a[];};
    +layout (binding = 1) readonly buffer Y {B_TYPE data_b[];};
    +layout (binding = 2) buffer D {D_TYPE data_d[];};
    +
    +shared FLOAT_TYPE vals[BLOCK_SIZE];
    +
    +void main() {
    +    const uint tid = gl_LocalInvocationID.x;
    +    const uint rowx = gl_WorkGroupID.x;
    +    const uint rowy = rowx % p.KY;
    +
    +    float slope = 1.0f;
    +
    +    // ALiBi
    +    if (p.max_bias > 0.0f) {
    +        const uint h = rowx/p.KY; // head index
    +
    +        const float base = h < p.n_head_log2 ? p.m0 : p.m1;
    +        const uint   exp  = h < p.n_head_log2 ? h + 1 : 2*(h - p.n_head_log2) + 1;
    +
    +        slope = pow(base, exp);
    +    }
    +
    +    // Find max
    +    FLOAT_TYPE max_val = uintBitsToFloat(0xFF800000);
    +
    +    [[unroll]] for (uint col0 = 0; col0 < p.KX; col0 += BLOCK_SIZE) {
    +        const uint col = col0 + tid;
    +
    +        if (col >= p.KX) {
    +            break;
    +        }
    +
    +        max_val = max(max_val, FLOAT_TYPE(data_a[rowx * p.KX + col]) * p.scale + (p.KY > 0 ? slope * FLOAT_TYPE(data_b[rowy * p.KX + col]) : FLOAT_TYPE(0.0f)));
    +    }
    +    vals[tid] = max_val;
    +
    +    barrier();
    +    [[unroll]] for (int s = BLOCK_SIZE / 2; s > 0; s >>= 1) {
    +        if (tid < s) {
    +            vals[tid] = max(vals[tid], vals[tid + s]);
    +        }
    +        barrier();
    +    }
    +
    +    max_val = vals[0];
    +    barrier();
    +
    +    // Sum up values
    +    vals[tid] = FLOAT_TYPE(0.0f);
    +
    +    [[unroll]] for (uint col0 = 0; col0 < p.KX; col0 += BLOCK_SIZE) {
    +        const uint col = col0 + tid;
    +
    +        if (col >= p.KX) {
    +            break;
    +        }
    +
    +        const uint i = rowx * p.KX + col;
    +        const FLOAT_TYPE val = exp(FLOAT_TYPE(data_a[i]) * p.scale + (p.KY > 0 ? slope * FLOAT_TYPE(data_b[rowy * p.KX + col]) : FLOAT_TYPE(0.0f)) - max_val);
    +        vals[tid] += val;
    +        data_d[i] = D_TYPE(val);
    +    }
    +
    +    barrier();
    +    [[unroll]] for (int s = BLOCK_SIZE / 2; s > 0; s >>= 1) {
    +        if (tid < s) {
    +            vals[tid] += vals[tid + s];
    +        }
    +        barrier();
    +    }
    +
    +    const D_TYPE divisor = D_TYPE(vals[0]);
    +
    +    [[unroll]] for (uint col0 = 0; col0 < p.KX; col0 += BLOCK_SIZE) {
    +        const uint col = col0 + tid;
    +
    +        if (col >= p.KX) {
    +            break;
    +        }
    +
    +        data_d[rowx*p.KX + col] /= divisor;
    +    }
    +}
    diff --git a/vulkan-shaders/square.comp b/vulkan-shaders/square.comp
    new file mode 100644
    index 0000000000000..8dd19333d4e32
    --- /dev/null
    +++ b/vulkan-shaders/square.comp
    @@ -0,0 +1,13 @@
    +#version 450
    +
    +#include "types.comp"
    +#include "generic_unary_head.comp"
    +
    +void main() {
    +    if (gl_GlobalInvocationID.x >= p.ne) {
    +        return;
    +    }
    +
    +    const FLOAT_TYPE val = FLOAT_TYPE(data_a[src0_idx(gl_GlobalInvocationID.x)]);
    +    data_d[p.d_offset + dst_idx(gl_GlobalInvocationID.x)] = D_TYPE(val * val);
    +}
    diff --git a/vulkan-shaders/sum_rows.comp b/vulkan-shaders/sum_rows.comp
    new file mode 100644
    index 0000000000000..ce2f1e2f3b3e3
    --- /dev/null
    +++ b/vulkan-shaders/sum_rows.comp
    @@ -0,0 +1,37 @@
    +#version 450
    +
    +#include "generic_head.comp"
    +#include "types.comp"
    +
    +#extension GL_EXT_control_flow_attributes : enable
    +layout(local_size_x_id = 0, local_size_y = 1, local_size_z = 1) in;
    +
    +layout (binding = 0) readonly buffer A {A_TYPE data_a[];};
    +layout (binding = 1) writeonly buffer D {D_TYPE data_d[];};
    +
    +layout (constant_id = 0) const uint BLOCK_SIZE = 32;
    +
    +shared FLOAT_TYPE tmp[BLOCK_SIZE];
    +
    +void main() {
    +    const uint row = gl_WorkGroupID.x;
    +    const uint col = gl_LocalInvocationID.x;
    +
    +    tmp[col] = FLOAT_TYPE(0.0f);
    +
    +    for (uint i = col; i < p.KX; i += BLOCK_SIZE) {
    +        tmp[col] += FLOAT_TYPE(data_a[row*p.KX + i]);
    +    }
    +
    +    barrier();
    +    [[unroll]] for (int s = int(BLOCK_SIZE) / 2; s > 0; s >>= 1) {
    +        if (col < s) {
    +            tmp[col] += tmp[col + s];
    +        }
    +        barrier();
    +    }
    +
    +    if (col == 0) {
    +        data_d[row] = D_TYPE(tmp[0]);
    +    }
    +}
    diff --git a/vulkan-shaders/types.comp b/vulkan-shaders/types.comp
    new file mode 100644
    index 0000000000000..815fcbecde8ac
    --- /dev/null
    +++ b/vulkan-shaders/types.comp
    @@ -0,0 +1,179 @@
    +#if !defined(DATA_A_F32) && !defined(DATA_A_F16)
    +#extension GL_EXT_shader_explicit_arithmetic_types_int8 : require
    +#endif
    +
    +#if defined(DATA_A_F32)
    +#define QUANT_K 1
    +#define QUANT_R 1
    +
    +#ifndef LOAD_VEC_A
    +#define A_TYPE float
    +#elif LOAD_VEC_A == 4
    +#define A_TYPE vec4
    +#elif LOAD_VEC_A == 8
    +#define A_TYPE mat2x4
    +#endif
    +#endif
    +
    +#if defined(DATA_A_F16)
    +#define QUANT_K 1
    +#define QUANT_R 1
    +
    +#ifndef LOAD_VEC_A
    +#define A_TYPE float16_t
    +#elif LOAD_VEC_A == 4
    +#define A_TYPE f16vec4
    +#elif LOAD_VEC_A == 8
    +#define A_TYPE f16mat2x4
    +#endif
    +#endif
    +
    +#if defined(DATA_A_Q4_0)
    +#extension GL_EXT_shader_16bit_storage : require
    +#define QUANT_K 32
    +#define QUANT_R 2
    +
    +struct block_q4_0
    +{
    +    float16_t d;
    +    uint8_t qs[16];
    +};
    +
    +#define A_TYPE block_q4_0
    +#endif
    +
    +#if defined(DATA_A_Q4_1)
    +#extension GL_EXT_shader_16bit_storage : require
    +#define QUANT_K 32
    +#define QUANT_R 2
    +
    +struct block_q4_1
    +{
    +    float16_t d;
    +    float16_t m;
    +    uint8_t qs[16];
    +};
    +
    +#define A_TYPE block_q4_1
    +#endif
    +
    +#if defined(DATA_A_Q5_0)
    +#extension GL_EXT_shader_16bit_storage : require
    +#extension GL_EXT_shader_explicit_arithmetic_types_int16 : require
    +#define QUANT_K 32
    +#define QUANT_R 2
    +
    +struct block_q5_0
    +{
    +    float16_t d;
    +    uint16_t qh[2];
    +    uint8_t qs[16];
    +};
    +
    +#define A_TYPE block_q5_0
    +#endif
    +
    +#if defined(DATA_A_Q5_1)
    +#extension GL_EXT_shader_16bit_storage : require
    +#extension GL_EXT_shader_explicit_arithmetic_types_int16 : require
    +#define QUANT_K 32
    +#define QUANT_R 2
    +
    +struct block_q5_1
    +{
    +    float16_t d;
    +    float16_t m;
    +    uint qh;
    +    uint8_t qs[16];
    +};
    +
    +#define A_TYPE block_q5_1
    +#endif
    +
    +#if defined(DATA_A_Q8_0)
    +#extension GL_EXT_shader_16bit_storage : require
    +#define QUANT_K 32
    +#define QUANT_R 1
    +
    +struct block_q8_0
    +{
    +    float16_t d;
    +    int8_t qs[32];
    +};
    +
    +#define A_TYPE block_q8_0
    +#endif
    +
    +// K-quants
    +#if defined(DATA_A_Q2_K)
    +#extension GL_EXT_shader_16bit_storage : require
    +#define QUANT_K 256
    +
    +struct block_q2_K
    +{
    +    uint8_t scales[QUANT_K/16];
    +    uint8_t qs[QUANT_K/4];
    +    f16vec2 d;
    +};
    +
    +#define A_TYPE block_q2_K
    +#endif
    +
    +#if defined(DATA_A_Q3_K)
    +#extension GL_EXT_shader_16bit_storage : require
    +#define QUANT_K 256
    +
    +struct block_q3_K
    +{
    +    uint8_t hmask[QUANT_K/8];
    +    uint8_t qs[QUANT_K/4];
    +    uint8_t scales[12];
    +    float16_t d;
    +};
    +
    +#define A_TYPE block_q3_K
    +#endif
    +
    +#if defined(DATA_A_Q4_K)
    +#extension GL_EXT_shader_16bit_storage : require
    +#define QUANT_K 256
    +
    +struct block_q4_K
    +{
    +    f16vec2 d;
    +    uint8_t scales[3*QUANT_K/64];
    +    uint8_t qs[QUANT_K/2];
    +};
    +
    +#define A_TYPE block_q4_K
    +#endif
    +
    +#if defined(DATA_A_Q5_K)
    +#extension GL_EXT_shader_16bit_storage : require
    +#define QUANT_K 256
    +
    +struct block_q5_K
    +{
    +    f16vec2 d;
    +    uint8_t scales[12];
    +    uint8_t qh[QUANT_K/8];
    +    uint8_t qs[QUANT_K/2];
    +};
    +
    +#define A_TYPE block_q5_K
    +#endif
    +
    +#if defined(DATA_A_Q6_K)
    +#extension GL_EXT_shader_16bit_storage : require
    +#define QUANT_K 256
    +
    +struct block_q6_K
    +{
    +    uint8_t ql[QUANT_K/2];
    +    uint8_t qh[QUANT_K/4];
    +    int8_t scales[QUANT_K/16];
    +    float16_t d;
    +};
    +
    +#define A_TYPE block_q6_K
    +#endif
    
    From c8a82194a888f68f259e0d0fa96f3332ac7c5cb6 Mon Sep 17 00:00:00 2001
    From: Georgi Gerganov 
    Date: Sun, 16 Jun 2024 10:46:51 +0300
    Subject: [PATCH 077/131] github : update pr template
    
    ---
     .github/pull_request_template.md | 12 +++++++-----
     1 file changed, 7 insertions(+), 5 deletions(-)
    
    diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md
    index e6d032d87df57..997c6d9d05397 100644
    --- a/.github/pull_request_template.md
    +++ b/.github/pull_request_template.md
    @@ -1,5 +1,7 @@
    -- Self Reported Review Complexity:
    -    - [ ] Review Complexity : Low
    -    - [ ] Review Complexity : Medium
    -    - [ ] Review Complexity : High
    -- [ ] I have read the [contributing guidelines](https://github.com/ggerganov/llama.cpp/blob/master/CONTRIBUTING.md)
    +
    +
    +- [x] I have read the [contributing guidelines](https://github.com/ggerganov/llama.cpp/blob/master/CONTRIBUTING.md)
    +- Self-reported review complexity:
    +  - [ ] Low
    +  - [ ] Medium
    +  - [ ] High
    
    From cddaf028adc738b5a7ecc60809cb78e0ba0f97c1 Mon Sep 17 00:00:00 2001
    From: Georgi Gerganov 
    Date: Sun, 16 Jun 2024 14:50:12 +0300
    Subject: [PATCH 078/131] ggml : fix handling of zero blocks in IQ quants
     (#7955)
    
    ggml-ci
    ---
     ggml-quants.c | 6 +++---
     1 file changed, 3 insertions(+), 3 deletions(-)
    
    diff --git a/ggml-quants.c b/ggml-quants.c
    index 9f864e5c479ea..84b2f30e53d2d 100644
    --- a/ggml-quants.c
    +++ b/ggml-quants.c
    @@ -13139,7 +13139,7 @@ static int iq1_find_best_neighbour(const uint16_t * restrict neighbours, const u
             const float * restrict xval, const float * restrict weight, float * scale, int8_t * restrict L, int ngrid) {
         int num_neighbors = neighbours[0];
         GGML_ASSERT(num_neighbors > 0);
    -    float best_score = 0;
    +    float best_score = -FLT_MAX;
         int grid_index = -1;
         for (int j = 1; j <= num_neighbors; ++j) {
             const int8_t * pg = (const int8_t *)(grid + neighbours[j]);
    @@ -13337,7 +13337,7 @@ static void quantize_row_iq1_s_impl(const float * restrict x, void * restrict vy
                         sumw[j+1] = sumw[j] + weight[i];
                     }
                 }
    -            float best_score = 0, scale = max;
    +            float best_score = -FLT_MIN, scale = max;
                 int besti1 = -1, besti2 = -1, best_shift = 0;
                 for (int i1 = 0; i1 <= block_size; ++i1) {
                     for (int i2 = i1; i2 <= block_size; ++i2) {
    @@ -13513,7 +13513,7 @@ static void quantize_row_iq1_m_impl(const float * restrict x, void * restrict vy
                     idx[2*j] = j;
                 }
                 qsort(pairs, block_size, 2*sizeof(float), iq1_sort_helper);
    -            float best_score = 0, scale = max;
    +            float best_score = -FLT_MIN, scale = max;
                 int besti1 = -1, besti2 = -1, best_k = -1;
                 // 0: +, +
                 // 1: +, -
    
    From 6fe1c627413725ddc1f9e323f6b13fe388c53e0a Mon Sep 17 00:00:00 2001
    From: hopkins385 <98618192+hopkins385@users.noreply.github.com>
    Date: Sun, 16 Jun 2024 13:51:18 +0200
    Subject: [PATCH 079/131] readme : update UI list [no ci] (#7958)
    
    ---
     README.md | 1 +
     1 file changed, 1 insertion(+)
    
    diff --git a/README.md b/README.md
    index 6c24135d61934..fd75a64ba1a0c 100644
    --- a/README.md
    +++ b/README.md
    @@ -195,6 +195,7 @@ Unless otherwise noted these projects are open-source with permissive licensing:
     - [cztomsik/ava](https://github.com/cztomsik/ava) (MIT)
     - [ptsochantaris/emeltal](https://github.com/ptsochantaris/emeltal)
     - [pythops/tenere](https://github.com/pythops/tenere) (AGPL)
    +- [RAGNA Desktop](https://ragna.app/) (proprietary)
     - [RecurseChat](https://recurse.chat/) (proprietary)
     - [semperai/amica](https://github.com/semperai/amica)
     - [withcatai/catai](https://github.com/withcatai/catai)
    
    From 52399254b3bceda279b4ea9111a983e32310166e Mon Sep 17 00:00:00 2001
    From: Georgi Gerganov 
    Date: Sun, 16 Jun 2024 14:51:40 +0300
    Subject: [PATCH 080/131] unicode : avoid char32_t (#7957)
    
    ggml-ci
    ---
     llama.cpp   |  2 +-
     unicode.cpp | 22 +++++++++++-----------
     unicode.h   |  2 +-
     3 files changed, 13 insertions(+), 13 deletions(-)
    
    diff --git a/llama.cpp b/llama.cpp
    index 3bf9b66855ee3..bd4f8ec1865fb 100644
    --- a/llama.cpp
    +++ b/llama.cpp
    @@ -13246,7 +13246,7 @@ struct llm_tokenizer_wpm {
             const std::vector cpts_nfd = unicode_cpts_normalize_nfd(unicode_cpts_from_utf8(text));
             std::vector words(1, "");
     
    -        for (const char32_t cpt : cpts_nfd) {
    +        for (const uint32_t cpt : cpts_nfd) {
                 const auto flags = unicode_cpt_flags(cpt);
     
                 if (flags.is_whitespace) {
    diff --git a/unicode.cpp b/unicode.cpp
    index 056a4c74172c7..2f8d73832d107 100644
    --- a/unicode.cpp
    +++ b/unicode.cpp
    @@ -226,7 +226,7 @@ static std::vector unicode_regex_split_custom_gpt2(const std::string & t
             assert(offset_end <= cpts.size());
             start = offset_end;
     
    -        auto _get_cpt = [&] (const size_t pos) -> char32_t {
    +        auto _get_cpt = [&] (const size_t pos) -> uint32_t {
                 return (offset_ini <= pos && pos < offset_end) ? cpts[pos] : 0;
             };
     
    @@ -253,18 +253,18 @@ static std::vector unicode_regex_split_custom_gpt2(const std::string & t
             };
     
             for (size_t pos = offset_ini; pos < offset_end; /*pos++*/ ) {
    -            const char32_t cpt = _get_cpt(pos);
    +            const uint32_t cpt = _get_cpt(pos);
                 const auto flags = _get_flags(pos);
     
                 // regex: 's|'t|'re|'ve|'m|'ll|'d
                 if (cpt == '\'' && pos+1 < offset_end) {
    -                char32_t cpt_next = _get_cpt(pos+1);
    +                uint32_t cpt_next = _get_cpt(pos+1);
                     if (cpt_next == 's' || cpt_next == 't' || cpt_next == 'm' || cpt_next == 'd') {
                         pos += _add_token(pos+2);
                         continue;
                     }
                     if (pos+2 < offset_end) {
    -                    char32_t cpt_next_next = _get_cpt(pos+2);
    +                    uint32_t cpt_next_next = _get_cpt(pos+2);
                         if ((cpt_next == 'r' && cpt_next_next == 'e') ||
                             (cpt_next == 'v' && cpt_next_next == 'e') ||
                             (cpt_next == 'l' && cpt_next_next == 'l')) {
    @@ -344,7 +344,7 @@ static std::vector unicode_regex_split_custom_llama3(const std::string &
             assert(offset_end <= cpts.size());
             start = offset_end;
     
    -        auto _get_cpt = [&] (const size_t pos) -> char32_t {
    +        auto _get_cpt = [&] (const size_t pos) -> uint32_t {
                 return (offset_ini <= pos && pos < offset_end) ? cpts[pos] : 0;
             };
     
    @@ -371,18 +371,18 @@ static std::vector unicode_regex_split_custom_llama3(const std::string &
             };
     
             for (size_t pos = offset_ini; pos < offset_end; /*pos++*/ ) {
    -            const char32_t cpt = _get_cpt(pos);
    +            const uint32_t cpt = _get_cpt(pos);
                 const auto flags = _get_flags(pos);
     
                 // regex: (?i:'s|'t|'re|'ve|'m|'ll|'d) // case insensitive
                 if (cpt == '\'' && pos+1 < offset_end) {
    -                char32_t cpt_next = unicode_tolower(_get_cpt(pos+1));
    +                uint32_t cpt_next = unicode_tolower(_get_cpt(pos+1));
                     if (cpt_next == 's' || cpt_next == 't' || cpt_next == 'm' || cpt_next == 'd') {
                         pos += _add_token(pos+2);
                         continue;
                     }
                     if (pos+2 < offset_end) {
    -                    char32_t cpt_next_next = unicode_tolower(_get_cpt(pos+2));
    +                    uint32_t cpt_next_next = unicode_tolower(_get_cpt(pos+2));
                         if ((cpt_next == 'r' && cpt_next_next == 'e') ||
                             (cpt_next == 'v' && cpt_next_next == 'e') ||
                             (cpt_next == 'l' && cpt_next_next == 'l')) {
    @@ -424,7 +424,7 @@ static std::vector unicode_regex_split_custom_llama3(const std::string &
                     while (!(flags2.is_whitespace || flags2.is_letter || flags2.is_number || flags2.is_undefined)) {
                         flags2 = _get_flags(++pos);
                     }
    -                char32_t cpt2 = _get_cpt(pos);
    +                uint32_t cpt2 = _get_cpt(pos);
                     while (cpt2 == '\r' || cpt2 == '\n') {
                         cpt2 = _get_cpt(++pos);
                     }
    @@ -435,7 +435,7 @@ static std::vector unicode_regex_split_custom_llama3(const std::string &
                 size_t num_whitespaces = 0;
                 size_t last_end_r_or_n = 0;
                 while (_get_flags(pos+num_whitespaces).is_whitespace) {
    -                char32_t cpt2 = _get_cpt(pos+num_whitespaces);
    +                uint32_t cpt2 = _get_cpt(pos+num_whitespaces);
                     if (cpt2 == '\r' || cpt2 == '\n') {
                         last_end_r_or_n = pos + num_whitespaces + 1;
                     }
    @@ -626,7 +626,7 @@ uint8_t unicode_utf8_to_byte(const std::string & utf8) {
         return map.at(utf8);
     }
     
    -char32_t unicode_tolower(char32_t cp) {
    +uint32_t unicode_tolower(uint32_t cp) {
         auto it = unicode_map_lowercase.find(cp);
         return it == unicode_map_lowercase.end() ? cp : it->second;
     }
    diff --git a/unicode.h b/unicode.h
    index 7513be4ad0d4f..6c488970a79d6 100644
    --- a/unicode.h
    +++ b/unicode.h
    @@ -58,6 +58,6 @@ codepoint_flags unicode_cpt_flags(const std::string & utf8);
     std::string unicode_byte_to_utf8(uint8_t byte);
     uint8_t unicode_utf8_to_byte(const std::string & utf8);
     
    -char32_t unicode_tolower(char32_t cp);
    +uint32_t unicode_tolower(uint32_t cp);
     
     std::vector unicode_regex_split(const std::string & text, const std::vector & regex_exprs);
    
    From bc6c457fa35f6791e9a2bb61108e7d49e8fc98bd Mon Sep 17 00:00:00 2001
    From: Georgi Gerganov 
    Date: Sun, 16 Jun 2024 19:16:21 +0300
    Subject: [PATCH 081/131] flake.lock: Update (#7951)
    
    ---
     flake.lock | 6 +++---
     1 file changed, 3 insertions(+), 3 deletions(-)
    
    diff --git a/flake.lock b/flake.lock
    index 7272e65fa8fa5..5278fb68a3f98 100644
    --- a/flake.lock
    +++ b/flake.lock
    @@ -20,11 +20,11 @@
         },
         "nixpkgs": {
           "locked": {
    -        "lastModified": 1717786204,
    -        "narHash": "sha256-4q0s6m0GUcN7q+Y2DqD27iLvbcd1G50T2lv08kKxkSI=",
    +        "lastModified": 1718318537,
    +        "narHash": "sha256-4Zu0RYRcAY/VWuu6awwq4opuiD//ahpc2aFHg2CWqFY=",
             "owner": "NixOS",
             "repo": "nixpkgs",
    -        "rev": "051f920625ab5aabe37c920346e3e69d7d34400e",
    +        "rev": "e9ee548d90ff586a6471b4ae80ae9cfcbceb3420",
             "type": "github"
           },
           "original": {
    
    From 398105ff4373eea385ea8e8625cb417b2ae51134 Mon Sep 17 00:00:00 2001
    From: Daniel Bevenius 
    Date: Sun, 16 Jun 2024 10:51:18 +0200
    Subject: [PATCH 082/131] ggml : remove duplicate include of ggml-common.h
     (ggml/853)
    
    Signed-off-by: Daniel Bevenius 
    ---
     ggml-quants.c | 2 --
     1 file changed, 2 deletions(-)
    
    diff --git a/ggml-quants.c b/ggml-quants.c
    index 84b2f30e53d2d..678adae1684c8 100644
    --- a/ggml-quants.c
    +++ b/ggml-quants.c
    @@ -4,8 +4,6 @@
     #include "ggml-quants.h"
     #include "ggml-impl.h"
     
    -#define GGML_COMMON_IMPL_C
    -#include "ggml-common.h"
     
     #include 
     #include 
    
    From b5fcf8ef5c29df53cfff60e180b4992a3b2332a6 Mon Sep 17 00:00:00 2001
    From: Hong Bo PENG 
    Date: Sun, 16 Jun 2024 16:53:11 +0800
    Subject: [PATCH 083/131] ggml : fix and optimize ppc64le (ggml/849)
    
    * fix compile issues introduced by loongarch_asx
    
    * restore quant changes to merge
    
    * fix compile issues introduced by loongarch_asx
    
    * further optimize by using vec_msum & vec_sum4s on ppc64le
    ---
     ggml-quants.c | 643 ++++++++++++++++++++++----------------------------
     1 file changed, 281 insertions(+), 362 deletions(-)
    
    diff --git a/ggml-quants.c b/ggml-quants.c
    index 678adae1684c8..0b346c11e6b2a 100644
    --- a/ggml-quants.c
    +++ b/ggml-quants.c
    @@ -1076,6 +1076,7 @@ void quantize_row_q8_0(const float * restrict x, void * restrict vy, int64_t k)
             }
             vec_xst(vec_pack(vec_pack(vi[0], vi[1]), vec_pack(vi[2], vi[3])),  0, &y[i].qs[0]);
             vec_xst(vec_pack(vec_pack(vi[4], vi[5]), vec_pack(vi[6], vi[7])), 16, &y[i].qs[0]);
    +    }
     
     #elif defined(__loongarch_asx)
         for (int i = 0; i < nb; i++) {
    @@ -1435,6 +1436,7 @@ void quantize_row_q8_1(const float * restrict x, void * restrict vy, int64_t k)
             accv = vec_add(accv, vec_sld(accv, accv, 4));
             accv = vec_add(accv, vec_sld(accv, accv, 8));
             y[i].s = GGML_FP32_TO_FP16(d * vec_extract(accv, 0));
    +    }
     
     #elif defined(__loongarch_asx)
         for (int i = 0; i < nb; i++) {
    @@ -4111,12 +4113,13 @@ void ggml_vec_dot_q4_0_q8_0(int n, float * restrict s, size_t bs, const void * r
     
     #elif defined(__POWER9_VECTOR__)
         const vector signed char lowMask = vec_splats((signed char)0xF);
    +    const vector signed int v0 = vec_splats((int32_t)0);
         const vector unsigned char v4 = vec_splats((unsigned char)0x4);
         const vector signed char v8 = vec_splats((signed char)0x8);
     
         vector float vsumf0 = vec_splats(0.0f);
     
    -#pragma GCC unroll 4
    +#pragma GCC unroll 8
         for (int i = 0; i < nb; i++) {
             __builtin_prefetch(x[i].qs, 0, 1);
             __builtin_prefetch(y[i].qs, 0, 1);
    @@ -4138,9 +4141,10 @@ void ggml_vec_dot_q4_0_q8_0(int n, float * restrict s, size_t bs, const void * r
             vector signed short qv0 = vec_add(vec_mule(q4x0, q8y0), vec_mulo(q4x0, q8y0));
             vector signed short qv1 = vec_add(vec_mule(q4x1, q8y1), vec_mulo(q4x1, q8y1));
     
    -        qv0 = vec_add(qv0, qv1);
    +        vector signed int vsumi0 = v0;
     
    -        vector signed int vsumi0 = vec_add(vec_unpackh(qv0), vec_unpackl(qv0));
    +        vsumi0 = vec_sum4s(qv0, vsumi0);
    +        vsumi0 = vec_sum4s(qv1, vsumi0);
     
             vsumf0 = vec_madd(vec_ctf(vsumi0, 0), vd, vsumf0);
         }
    @@ -4514,6 +4518,7 @@ void ggml_vec_dot_q4_1_q8_1(int n, float * restrict s, size_t bs, const void * r
     
     #elif defined(__POWER9_VECTOR__)
         const vector signed char lowMask = vec_splats((signed char)0xF);
    +    const vector signed int v0 = vec_splats((int32_t)0);
         const vector unsigned char v4 = vec_splats((unsigned char)0x4);
     
         vector float vsumf0 = vec_splats(0.0f);
    @@ -4535,15 +4540,13 @@ void ggml_vec_dot_q4_1_q8_1(int n, float * restrict s, size_t bs, const void * r
             vector signed char q8y0 = vec_xl( 0, y[i].qs);
             vector signed char q8y1 = vec_xl(16, y[i].qs);
     
    -        vector signed char q4x0 = vec_and(qxs, lowMask);
    -        vector signed char q4x1 = vec_sr(qxs, v4);
    -
    -        vector signed short qv0 = vec_add(vec_mule(q4x0, q8y0), vec_mulo(q4x0, q8y0));
    -        vector signed short qv1 = vec_add(vec_mule(q4x1, q8y1), vec_mulo(q4x1, q8y1));
    +        vector unsigned char q4x0 = (vector unsigned char)vec_and(qxs, lowMask);
    +        vector unsigned char q4x1 = (vector unsigned char)vec_sr(qxs, v4);
     
    -        qv0 = vec_add(qv0, qv1);
    +        vector signed int vsumi0 = v0;
     
    -        vector signed int vsumi0 = vec_add(vec_unpackh(qv0), vec_unpackl(qv0));
    +        vsumi0 = vec_msum(q8y0, q4x0, vsumi0);
    +        vsumi0 = vec_msum(q8y1, q4x1, vsumi0);
     
             vsumf0 = vec_madd(vec_ctf(vsumi0, 0), vd, vsumf0);
         }
    @@ -5245,6 +5248,7 @@ void ggml_vec_dot_q5_1_q8_1(int n, float * restrict s, size_t bs, const void * r
     
     #elif defined(__POWER9_VECTOR__)
         const vector signed char lowMask = vec_splats((signed char)0xF);
    +    const vector signed int v0 = vec_splats((int32_t)0);
         const vector unsigned char v4 = vec_splats((unsigned char)0x4);
     
         vector float vsumf0 = vec_splats(0.0f);
    @@ -5270,18 +5274,16 @@ void ggml_vec_dot_q5_1_q8_1(int n, float * restrict s, size_t bs, const void * r
     
             vector signed char qxs = (vector signed char)vec_xl( 0, x[i].qs);
     
    -        vector signed char q5x0 = vec_or(vec_and(qxs, lowMask), qh0);
    -        vector signed char q5x1 = vec_or(vec_sr(qxs, v4), qh1);
    +        vector unsigned char q5x0 = (vector unsigned char)vec_or(vec_and(qxs, lowMask), qh0);
    +        vector unsigned char q5x1 = (vector unsigned char)vec_or(vec_sr(qxs, v4), qh1);
     
             vector signed char q8y0 = vec_xl(  0, y[i].qs);
             vector signed char q8y1 = vec_xl( 16, y[i].qs);
     
    -        vector signed short qv0 = vec_add(vec_mule(q5x0, q8y0), vec_mulo(q5x0, q8y0));
    -        vector signed short qv1 = vec_add(vec_mule(q5x1, q8y1), vec_mulo(q5x1, q8y1));
    -
    -        qv0 = vec_add(qv0, qv1);
    +        vector signed int vsumi0 = v0;
     
    -        vector signed int vsumi0 = vec_add(vec_unpackh(qv0), vec_unpackl(qv0));
    +        vsumi0 = vec_msum(q8y0, q5x0, vsumi0);
    +        vsumi0 = vec_msum(q8y1, q5x1, vsumi0);
     
             vsumf0 = vec_madd(vec_ctf(vsumi0, 0), vd, vsumf0);
         }
    @@ -5521,9 +5523,10 @@ void ggml_vec_dot_q8_0_q8_0(int n, float * restrict s, size_t bs, const void * r
         *s = sumf;
     
     #elif defined(__POWER9_VECTOR__)
    +    const vector signed int v0 = vec_splats((int32_t)0);
         vector float vsumf0 = vec_splats(0.0f);
     
    -#pragma GCC unroll 4
    +#pragma GCC unroll 8
         for (int i = 0; i < nb; i++) {
             __builtin_prefetch(x[i].qs, 0, 1);
             __builtin_prefetch(y[i].qs, 0, 1);
    @@ -5542,13 +5545,13 @@ void ggml_vec_dot_q8_0_q8_0(int n, float * restrict s, size_t bs, const void * r
             vector signed short qv2 = vec_mule(q8x1, q8y1);
             vector signed short qv3 = vec_mulo(q8x1, q8y1);
     
    -        vector signed int vsumi0 = vec_add(vec_unpackh(qv0), vec_unpackh(qv1));
    -        vector signed int vsumi1 = vec_add(vec_unpackl(qv0), vec_unpackl(qv1));
    -        vector signed int vsumi2 = vec_add(vec_unpackh(qv2), vec_unpackh(qv3));
    -        vector signed int vsumi3 = vec_add(vec_unpackl(qv2), vec_unpackl(qv3));
    +        vector signed int vsumi0 = v0;
    +        vector signed int vsumi1 = v0;
     
    -        vsumi0 = vec_add(vsumi0, vsumi2);
    -        vsumi1 = vec_add(vsumi1, vsumi3);
    +        vsumi0 = vec_sum4s(qv0, vsumi0);
    +        vsumi1 = vec_sum4s(qv1, vsumi1);
    +        vsumi0 = vec_sum4s(qv2, vsumi0);
    +        vsumi1 = vec_sum4s(qv3, vsumi1);
     
             vsumi0 = vec_add(vsumi0, vsumi1);
     
    @@ -5936,6 +5939,7 @@ void ggml_vec_dot_q2_K_q8_K(int n, float * restrict s, size_t bs, const void * r
     #elif defined(__POWER9_VECTOR__)
         const vector signed char lowMask = vec_splats((signed char)0x3);
         const vector signed char lowScaleMask = vec_splats((signed char)0xF);
    +    const vector int v0 = vec_splats((int32_t)0);
         const vector unsigned char v2 = vec_splats((unsigned char)0x2);
         const vector unsigned char v6 = vec_splats((unsigned char)0x6);
         const vector unsigned char v4 = vec_splats((unsigned char)0x4);
    @@ -5973,15 +5977,17 @@ void ggml_vec_dot_q2_K_q8_K(int n, float * restrict s, size_t bs, const void * r
             vsumf2 = vec_nmsub(vec_ctf(prod2, 0), vdmin, vsumf2);
             vsumf3 = vec_nmsub(vec_ctf(prod3, 0), vdmin, vsumf3);
     
    -        vector signed int vsumi0 = vec_splats((int32_t)0);
    -        vector signed int vsumi1 = vec_splats((int32_t)0);
    -        vector signed int vsumi2 = vec_splats((int32_t)0);
    -        vector signed int vsumi3 = vec_splats((int32_t)0);
    -        vector signed int vsumi4 = vec_splats((int32_t)0);
    -        vector signed int vsumi5 = vec_splats((int32_t)0);
    -        vector signed int vsumi6 = vec_splats((int32_t)0);
    -        vector signed int vsumi7 = vec_splats((int32_t)0);
    +        vector signed int vsumi0 = v0;
    +        vector signed int vsumi1 = v0;
    +        vector signed int vsumi2 = v0;
    +        vector signed int vsumi3 = v0;
    +        vector signed int vsumi4 = v0;
    +        vector signed int vsumi5 = v0;
    +        vector signed int vsumi6 = v0;
    +        vector signed int vsumi7 = v0;
     
    +        const uint8_t * restrict q2 = x[i].qs;
    +        const int8_t  * restrict q8 = y[i].qs;
     
             for (int j = 0; j < QK_K/128; ++j) {
                 __builtin_prefetch(q2, 0, 1);
    @@ -5991,14 +5997,14 @@ void ggml_vec_dot_q2_K_q8_K(int n, float * restrict s, size_t bs, const void * r
                 vector signed char qxs1 = (vector signed char)vec_xl(16, q2);
                 q2 += 32;
     
    -            vector signed char q2x00 = vec_and(qxs0, lowMask);
    -            vector signed char q2x01 = vec_and(vec_sr(qxs0, v2), lowMask);
    -            vector signed char q2x02 = vec_and(vec_sr(qxs0, v4), lowMask);
    -            vector signed char q2x03 = vec_and(vec_sr(qxs0, v6), lowMask);
    -            vector signed char q2x10 = vec_and(qxs1, lowMask);
    -            vector signed char q2x11 = vec_and(vec_sr(qxs1, v2), lowMask);
    -            vector signed char q2x12 = vec_and(vec_sr(qxs1, v4), lowMask);
    -            vector signed char q2x13 = vec_and(vec_sr(qxs1, v6), lowMask);
    +            vector unsigned char q2x00 = (vector unsigned char)vec_and(qxs0, lowMask);
    +            vector unsigned char q2x01 = (vector unsigned char)vec_and(vec_sr(qxs0, v2), lowMask);
    +            vector unsigned char q2x02 = (vector unsigned char)vec_and(vec_sr(qxs0, v4), lowMask);
    +            vector unsigned char q2x03 = (vector unsigned char)vec_and(vec_sr(qxs0, v6), lowMask);
    +            vector unsigned char q2x10 = (vector unsigned char)vec_and(qxs1, lowMask);
    +            vector unsigned char q2x11 = (vector unsigned char)vec_and(vec_sr(qxs1, v2), lowMask);
    +            vector unsigned char q2x12 = (vector unsigned char)vec_and(vec_sr(qxs1, v4), lowMask);
    +            vector unsigned char q2x13 = (vector unsigned char)vec_and(vec_sr(qxs1, v6), lowMask);
     
                 vector signed char q8y00 = vec_xl(  0, q8);
                 vector signed char q8y10 = vec_xl( 16, q8);
    @@ -6010,45 +6016,36 @@ void ggml_vec_dot_q2_K_q8_K(int n, float * restrict s, size_t bs, const void * r
                 vector signed char q8y13 = vec_xl(112, q8);
                 q8 += 128;
     
    -            vector signed short qv0 = vec_add(vec_mule(q2x00, q8y00), vec_mulo(q2x00, q8y00));
    -            vector signed short qv1 = vec_add(vec_mule(q2x01, q8y01), vec_mulo(q2x01, q8y01));
    -            vector signed short qv2 = vec_add(vec_mule(q2x02, q8y02), vec_mulo(q2x02, q8y02));
    -            vector signed short qv3 = vec_add(vec_mule(q2x03, q8y03), vec_mulo(q2x03, q8y03));
    -            vector signed short qv4 = vec_add(vec_mule(q2x10, q8y10), vec_mulo(q2x10, q8y10));
    -            vector signed short qv5 = vec_add(vec_mule(q2x11, q8y11), vec_mulo(q2x11, q8y11));
    -            vector signed short qv6 = vec_add(vec_mule(q2x12, q8y12), vec_mulo(q2x12, q8y12));
    -            vector signed short qv7 = vec_add(vec_mule(q2x13, q8y13), vec_mulo(q2x13, q8y13));
    -
    -            vector signed short vscales_h = vec_unpackh(vscales);
    -            vector signed short vs0 = vec_splat(vscales_h, 0);
    -            vector signed short vs1 = vec_splat(vscales_h, 1);
    -            vector signed short vs2 = vec_splat(vscales_h, 2);
    -            vector signed short vs3 = vec_splat(vscales_h, 3);
    -            vector signed short vs4 = vec_splat(vscales_h, 4);
    -            vector signed short vs5 = vec_splat(vscales_h, 5);
    -            vector signed short vs6 = vec_splat(vscales_h, 6);
    -            vector signed short vs7 = vec_splat(vscales_h, 7);
    +            vector signed int qv0 = vec_msum(q8y00, q2x00, v0);
    +            vector signed int qv1 = vec_msum(q8y01, q2x01, v0);
    +            vector signed int qv2 = vec_msum(q8y02, q2x02, v0);
    +            vector signed int qv3 = vec_msum(q8y03, q2x03, v0);
    +            vector signed int qv4 = vec_msum(q8y10, q2x10, v0);
    +            vector signed int qv5 = vec_msum(q8y11, q2x11, v0);
    +            vector signed int qv6 = vec_msum(q8y12, q2x12, v0);
    +            vector signed int qv7 = vec_msum(q8y13, q2x13, v0);
    +
    +            vector signed short vscales_07 = vec_unpackh(vscales);
    +            vector signed int vscales_03 = vec_unpackh(vscales_07);
    +            vector signed int vscales_47 = vec_unpackl(vscales_07);
    +            vector signed int vs0 = vec_splat(vscales_03, 0);
    +            vector signed int vs1 = vec_splat(vscales_03, 1);
    +            vector signed int vs2 = vec_splat(vscales_03, 2);
    +            vector signed int vs3 = vec_splat(vscales_03, 3);
    +            vector signed int vs4 = vec_splat(vscales_47, 0);
    +            vector signed int vs5 = vec_splat(vscales_47, 1);
    +            vector signed int vs6 = vec_splat(vscales_47, 2);
    +            vector signed int vs7 = vec_splat(vscales_47, 3);
                 vscales = vec_sld(vscales, vscales, 8);
     
    -            qv0 = vec_mul(qv0, vs0);
    -            qv1 = vec_mul(qv1, vs2);
    -            qv2 = vec_mul(qv2, vs4);
    -            qv3 = vec_mul(qv3, vs6);
    -
    -            qv0 = vec_madd(qv4, vs1, qv0);
    -            qv1 = vec_madd(qv5, vs3, qv1);
    -            qv2 = vec_madd(qv6, vs5, qv2);
    -            qv3 = vec_madd(qv7, vs7, qv3);
    -
    -            vsumi0 = vec_add(vec_unpackh(qv0), vsumi0);
    -            vsumi1 = vec_add(vec_unpackh(qv1), vsumi1);
    -            vsumi2 = vec_add(vec_unpackh(qv2), vsumi2);
    -            vsumi3 = vec_add(vec_unpackh(qv3), vsumi3);
    -
    -            vsumi4 = vec_add(vec_unpackl(qv0), vsumi4);
    -            vsumi5 = vec_add(vec_unpackl(qv1), vsumi5);
    -            vsumi6 = vec_add(vec_unpackl(qv2), vsumi6);
    -            vsumi7 = vec_add(vec_unpackl(qv3), vsumi7);
    +            vsumi0 = vec_add(vec_mul(qv0, vs0), vsumi0);
    +            vsumi1 = vec_add(vec_mul(qv1, vs2), vsumi1);
    +            vsumi2 = vec_add(vec_mul(qv2, vs4), vsumi2);
    +            vsumi3 = vec_add(vec_mul(qv3, vs6), vsumi3);
    +            vsumi4 = vec_add(vec_mul(qv4, vs1), vsumi4);
    +            vsumi5 = vec_add(vec_mul(qv5, vs3), vsumi5);
    +            vsumi6 = vec_add(vec_mul(qv6, vs5), vsumi6);
    +            vsumi7 = vec_add(vec_mul(qv7, vs7), vsumi7);
             }
     
             vsumi0 = vec_add(vsumi0, vsumi4);
    @@ -6639,6 +6636,9 @@ void ggml_vec_dot_q3_K_q8_K(int n, float * restrict s, size_t bs, const void * r
     
     #elif defined(__POWER9_VECTOR__)
         const vector signed char lowMask = vec_splats((signed char)0x3);
    +    const vector signed char lowMask1 = vec_splats((int8_t)0xf);
    +    const vector signed char lowMask2 = vec_splats((int8_t)0x30);
    +    const vector int v0 = vec_splats((int32_t)0);
         const vector signed char v1 = vec_splats((signed char)0x1);
         const vector unsigned char v2 = vec_splats((unsigned char)0x2);
         const vector unsigned char v3 = vec_splats((unsigned char)0x3);
    @@ -6656,30 +6656,33 @@ void ggml_vec_dot_q3_K_q8_K(int n, float * restrict s, size_t bs, const void * r
             vector float vyd = vec_splats(y[i].d);
             vector float vd = vec_mul(vxd, vyd);
     
    -        uint32_t aux[3];
    -        uint32_t utmp[4];
    +        UNUSED(kmask1);
    +        UNUSED(kmask2);
     
    -        memcpy(aux, x[i].scales, 12);
    -        utmp[3] = ((aux[1] >> 4) & kmask2) | (((aux[2] >> 6) & kmask1) << 4);
    -        utmp[2] = ((aux[0] >> 4) & kmask2) | (((aux[2] >> 4) & kmask1) << 4);
    -        utmp[1] = (aux[1] & kmask2) | (((aux[2] >> 2) & kmask1) << 4);
    -        utmp[0] = (aux[0] & kmask2) | (((aux[2] >> 0) & kmask1) << 4);
    +        vector signed char u0 = (vector signed char)vec_xl_len(x[i].scales, 8);
    +        vector signed char u1 = vec_and(u0, lowMask1);
    +        vector signed char u2 = (vector signed char)vec_xl_len(x[i].scales + 8, 4);
    +        vector signed char u3 = (vector signed char)vec_mergeh((vector signed int)u2, (vector signed int)vec_sr(u2, v2));
    +        vector signed char u30 = vec_sl(vec_and(u3, lowMask), v4);
    +        vector signed char u31 = vec_and(u3, lowMask2);
     
    -        vector signed char vscales = (vector signed char)vec_xl( 0, utmp);
    +        u1 = vec_or(u1, u30);
    +        u2 = vec_or(vec_sr(u0, v4), u31);
    +
    +        vector signed char vscales = (vector signed char)vec_mergeh((vector signed long long)u1, (vector signed long long)u2);
             vector signed char qxhs0 = (vector signed char)vec_xl( 0, x[i].hmask);
             vector signed char qxhs1 = (vector signed char)vec_xl(16, x[i].hmask);
     
             vscales = vec_sub(vscales, off);
     
    -        vector signed int vsumi0 = vec_splats((int32_t)0);
    -        vector signed int vsumi1 = vec_splats((int32_t)0);
    -        vector signed int vsumi2 = vec_splats((int32_t)0);
    -        vector signed int vsumi3 = vec_splats((int32_t)0);
    -        vector signed int vsumi4 = vec_splats((int32_t)0);
    -        vector signed int vsumi5 = vec_splats((int32_t)0);
    -        vector signed int vsumi6 = vec_splats((int32_t)0);
    -        vector signed int vsumi7 = vec_splats((int32_t)0);
    -
    +        vector signed int vsumi0 = v0;
    +        vector signed int vsumi1 = v0;
    +        vector signed int vsumi2 = v0;
    +        vector signed int vsumi3 = v0;
    +        vector signed int vsumi4 = v0;
    +        vector signed int vsumi5 = v0;
    +        vector signed int vsumi6 = v0;
    +        vector signed int vsumi7 = v0;
     
             const uint8_t * restrict q3 = x[i].qs;
             const int8_t  * restrict q8 = y[i].qs;
    @@ -6753,23 +6756,14 @@ void ggml_vec_dot_q3_K_q8_K(int n, float * restrict s, size_t bs, const void * r
                 vector signed short qv12 = vec_add(vec_mule(q3x12, q8y12), vec_mulo(q3x12, q8y12));
                 vector signed short qv13 = vec_add(vec_mule(q3x13, q8y13), vec_mulo(q3x13, q8y13));
     
    -            vector signed int vsum0 = vec_add(vec_mule(qv00, vs0), vec_mulo(qv00, vs0));
    -            vector signed int vsum1 = vec_add(vec_mule(qv01, vs2), vec_mulo(qv01, vs2));
    -            vector signed int vsum2 = vec_add(vec_mule(qv02, vs4), vec_mulo(qv02, vs4));
    -            vector signed int vsum3 = vec_add(vec_mule(qv03, vs6), vec_mulo(qv03, vs6));
    -            vector signed int vsum4 = vec_add(vec_mule(qv10, vs1), vec_mulo(qv10, vs1));
    -            vector signed int vsum5 = vec_add(vec_mule(qv11, vs3), vec_mulo(qv11, vs3));
    -            vector signed int vsum6 = vec_add(vec_mule(qv12, vs5), vec_mulo(qv12, vs5));
    -            vector signed int vsum7 = vec_add(vec_mule(qv13, vs7), vec_mulo(qv13, vs7));
    -
    -            vsumi0 = vec_add(vsum0, vsumi0);
    -            vsumi1 = vec_add(vsum1, vsumi1);
    -            vsumi2 = vec_add(vsum2, vsumi2);
    -            vsumi3 = vec_add(vsum3, vsumi3);
    -            vsumi4 = vec_add(vsum4, vsumi4);
    -            vsumi5 = vec_add(vsum5, vsumi5);
    -            vsumi6 = vec_add(vsum6, vsumi6);
    -            vsumi7 = vec_add(vsum7, vsumi7);
    +            vsumi0 = vec_msum(qv00, vs0, vsumi0);
    +            vsumi1 = vec_msum(qv01, vs2, vsumi1);
    +            vsumi2 = vec_msum(qv02, vs4, vsumi2);
    +            vsumi3 = vec_msum(qv03, vs6, vsumi3);
    +            vsumi4 = vec_msum(qv10, vs1, vsumi4);
    +            vsumi5 = vec_msum(qv11, vs3, vsumi5);
    +            vsumi6 = vec_msum(qv12, vs5, vsumi6);
    +            vsumi7 = vec_msum(qv13, vs7, vsumi7);
             }
     
             vsumi0 = vec_add(vsumi0, vsumi4);
    @@ -7268,6 +7262,10 @@ void ggml_vec_dot_q4_K_q8_K(int n, float * restrict s, size_t bs, const void * r
     
     #elif defined(__POWER9_VECTOR__)
         const vector signed char lowMask = vec_splats((signed char)0xF);
    +    const vector signed char lowMask1 = vec_splats((int8_t)0x3f);
    +    const vector signed char lowMask2 = vec_splats((int8_t)0x30);
    +    const vector int v0 = vec_splats((int32_t)0);
    +    const vector unsigned char v2 = vec_splats((uint8_t)2);
         const vector unsigned char v4 = vec_splats((unsigned char)0x4);
     
         vector float vsumf0 = vec_splats(0.0f);
    @@ -7286,15 +7284,24 @@ void ggml_vec_dot_q4_K_q8_K(int n, float * restrict s, size_t bs, const void * r
             vector signed short q8ysums0 = vec_xl( 0, y[i].bsums);
             vector signed short q8ysums1 = vec_xl(16, y[i].bsums);
     
    -        memcpy(utmp, x[i].scales, 12);
    +        UNUSED(kmask1);
    +        UNUSED(kmask2);
    +        UNUSED(kmask3);
    +        UNUSED(utmp);
     
    -        utmp[3] = ((utmp[2] >> 4) & kmask2) | (((utmp[1] >> 6) & kmask3) << 4);
    -        const uint32_t uaux = utmp[1] & kmask1;
    -        utmp[1] = (utmp[2] & kmask2) | (((utmp[0] >> 6) & kmask3) << 4);
    -        utmp[2] = uaux;
    -        utmp[0] &= kmask1;
    +        vector signed char u0 = (vector signed char)vec_xl_len(x[i].scales, 8);
    +        vector signed char u1 = vec_and(vec_sr(u0, v2), lowMask2);
    +        vector signed char u2 = (vector signed char)vec_xl_len(x[i].scales + 8, 4);
    +        vector signed char u3 = vec_sr(u2, v4);
    +
    +        vector signed char u30 = u1;
    +        vector signed char u31 = (vector signed char)vec_mergeh((vector signed int)vec_and(u2, lowMask), (vector signed int)u3);
    +
    +        u1 = vec_and(u0, lowMask1);
    +        u2 = vec_or(u30, u31);
    +
    +        vector signed char utmps = (vector signed char)vec_mergeh((vector signed int)u1, (vector signed int)u2);
     
    -        vector signed char utmps = (vector signed char)vec_xl( 0, utmp);
             vector signed short vscales = vec_unpackh(utmps);
             vector signed short q4xmins = vec_unpackl(utmps);
             vector signed short q4xmins0 = vec_mergeh(q4xmins, q4xmins);
    @@ -7310,14 +7317,10 @@ void ggml_vec_dot_q4_K_q8_K(int n, float * restrict s, size_t bs, const void * r
             vsumf2 = vec_nmsub(vec_ctf(prod2, 0), vdmin, vsumf2);
             vsumf3 = vec_nmsub(vec_ctf(prod3, 0), vdmin, vsumf3);
     
    -        vector signed int vsumi0 = vec_splats((int32_t)0);
    -        vector signed int vsumi1 = vec_splats((int32_t)0);
    -        vector signed int vsumi2 = vec_splats((int32_t)0);
    -        vector signed int vsumi3 = vec_splats((int32_t)0);
    -        vector signed int vsumi4 = vec_splats((int32_t)0);
    -        vector signed int vsumi5 = vec_splats((int32_t)0);
    -        vector signed int vsumi6 = vec_splats((int32_t)0);
    -        vector signed int vsumi7 = vec_splats((int32_t)0);
    +        vector signed int vsumi0 = v0;
    +        vector signed int vsumi1 = v0;
    +        vector signed int vsumi2 = v0;
    +        vector signed int vsumi3 = v0;
     
             const uint8_t * restrict q4 = x[i].qs;
             const int8_t  * restrict q8 = y[i].qs;
    @@ -7332,14 +7335,14 @@ void ggml_vec_dot_q4_K_q8_K(int n, float * restrict s, size_t bs, const void * r
                 vector signed char qxs3 = (vector signed char)vec_xl(48, q4);
                 q4 += 64;
     
    -            vector signed char q4x00 = vec_and(qxs0, lowMask);
    -            vector signed char q4x01 = vec_sr(qxs0, v4);
    -            vector signed char q4x10 = vec_and(qxs1, lowMask);
    -            vector signed char q4x11 = vec_sr(qxs1, v4);
    -            vector signed char q4x20 = vec_and(qxs2, lowMask);
    -            vector signed char q4x21 = vec_sr(qxs2, v4);
    -            vector signed char q4x30 = vec_and(qxs3, lowMask);
    -            vector signed char q4x31 = vec_sr(qxs3, v4);
    +            vector unsigned char q4x00 = (vector unsigned char)vec_and(qxs0, lowMask);
    +            vector unsigned char q4x01 = (vector unsigned char)vec_sr(qxs0, v4);
    +            vector unsigned char q4x10 = (vector unsigned char)vec_and(qxs1, lowMask);
    +            vector unsigned char q4x11 = (vector unsigned char)vec_sr(qxs1, v4);
    +            vector unsigned char q4x20 = (vector unsigned char)vec_and(qxs2, lowMask);
    +            vector unsigned char q4x21 = (vector unsigned char)vec_sr(qxs2, v4);
    +            vector unsigned char q4x30 = (vector unsigned char)vec_and(qxs3, lowMask);
    +            vector unsigned char q4x31 = (vector unsigned char)vec_sr(qxs3, v4);
     
                 vector signed char q8y00 = vec_xl(  0, q8);
                 vector signed char q8y10 = vec_xl( 16, q8);
    @@ -7351,41 +7354,33 @@ void ggml_vec_dot_q4_K_q8_K(int n, float * restrict s, size_t bs, const void * r
                 vector signed char q8y31 = vec_xl(112, q8);
                 q8 += 128;
     
    -            vector signed short qv00 = vec_add(vec_mule(q4x00, q8y00), vec_mulo(q4x00, q8y00));
    -            vector signed short qv01 = vec_add(vec_mule(q4x01, q8y01), vec_mulo(q4x01, q8y01));
    -            vector signed short qv10 = vec_add(vec_mule(q4x10, q8y10), vec_mulo(q4x10, q8y10));
    -            vector signed short qv11 = vec_add(vec_mule(q4x11, q8y11), vec_mulo(q4x11, q8y11));
    -            vector signed short qv20 = vec_add(vec_mule(q4x20, q8y20), vec_mulo(q4x20, q8y20));
    -            vector signed short qv21 = vec_add(vec_mule(q4x21, q8y21), vec_mulo(q4x21, q8y21));
    -            vector signed short qv30 = vec_add(vec_mule(q4x30, q8y30), vec_mulo(q4x30, q8y30));
    -            vector signed short qv31 = vec_add(vec_mule(q4x31, q8y31), vec_mulo(q4x31, q8y31));
    -
    -            vector signed short vs0 = vec_splat(vscales, 0);
    -            vector signed short vs1 = vec_splat(vscales, 1);
    -            vector signed short vs2 = vec_splat(vscales, 2);
    -            vector signed short vs3 = vec_splat(vscales, 3);
    +            vector signed int qv00 = vec_msum(q8y00, q4x00, v0);
    +            vector signed int qv01 = vec_msum(q8y01, q4x01, v0);
    +            vector signed int qv10 = vec_msum(q8y10, q4x10, v0);
    +            vector signed int qv11 = vec_msum(q8y11, q4x11, v0);
    +            vector signed int qv20 = vec_msum(q8y20, q4x20, v0);
    +            vector signed int qv21 = vec_msum(q8y21, q4x21, v0);
    +            vector signed int qv30 = vec_msum(q8y30, q4x30, v0);
    +            vector signed int qv31 = vec_msum(q8y31, q4x31, v0);
    +
    +            vector signed int vscales_h = vec_unpackh(vscales);
    +            vector signed int vs0 = vec_splat(vscales_h, 0);
    +            vector signed int vs1 = vec_splat(vscales_h, 1);
    +            vector signed int vs2 = vec_splat(vscales_h, 2);
    +            vector signed int vs3 = vec_splat(vscales_h, 3);
                 vscales = vec_sld(vscales, vscales, 8);
     
    -            qv00 = vec_add(qv00, qv10);
    -            qv10 = vec_add(qv01, qv11);
    -            qv20 = vec_add(qv20, qv30);
    -            qv30 = vec_add(qv21, qv31);
    +            vsumi0 = vec_add(vec_mul(qv00, vs0), vsumi0);
    +            vsumi1 = vec_add(vec_mul(qv01, vs1), vsumi1);
    +            vsumi2 = vec_add(vec_mul(qv20, vs2), vsumi2);
    +            vsumi3 = vec_add(vec_mul(qv21, vs3), vsumi3);
     
    -            vsumi0 = vec_add(vec_mule(qv00, vs0), vsumi0);
    -            vsumi1 = vec_add(vec_mulo(qv00, vs0), vsumi1);
    -            vsumi2 = vec_add(vec_mule(qv10, vs1), vsumi2);
    -            vsumi3 = vec_add(vec_mulo(qv10, vs1), vsumi3);
    -            vsumi4 = vec_add(vec_mule(qv20, vs2), vsumi4);
    -            vsumi5 = vec_add(vec_mulo(qv20, vs2), vsumi5);
    -            vsumi6 = vec_add(vec_mule(qv30, vs3), vsumi6);
    -            vsumi7 = vec_add(vec_mulo(qv30, vs3), vsumi7);
    +            vsumi0 = vec_add(vec_mul(qv10, vs0), vsumi0);
    +            vsumi1 = vec_add(vec_mul(qv11, vs1), vsumi1);
    +            vsumi2 = vec_add(vec_mul(qv30, vs2), vsumi2);
    +            vsumi3 = vec_add(vec_mul(qv31, vs3), vsumi3);
             }
     
    -        vsumi0 = vec_add(vsumi0, vsumi4);
    -        vsumi1 = vec_add(vsumi1, vsumi5);
    -        vsumi2 = vec_add(vsumi2, vsumi6);
    -        vsumi3 = vec_add(vsumi3, vsumi7);
    -
             vsumf0 = vec_madd(vec_ctf(vsumi0, 0), vd, vsumf0);
             vsumf1 = vec_madd(vec_ctf(vsumi1, 0), vd, vsumf1);
             vsumf2 = vec_madd(vec_ctf(vsumi2, 0), vd, vsumf2);
    @@ -7887,6 +7882,9 @@ void ggml_vec_dot_q5_K_q8_K(int n, float * restrict s, size_t bs, const void * r
     
     #elif defined(__POWER9_VECTOR__)
         const vector signed char lowMask = vec_splats((signed char)0xF);
    +    const vector signed char lowMask1 = vec_splats((int8_t)0x3f);
    +    const vector signed char lowMask2 = vec_splats((int8_t)0x30);
    +    const vector int v0 = vec_splats((int32_t)0);
         const vector unsigned char v1 = vec_splats((unsigned char)0x1);
         const vector unsigned char v2 = vec_splats((unsigned char)0x2);
         const vector unsigned char v3 = vec_splats((unsigned char)0x3);
    @@ -7905,18 +7903,27 @@ void ggml_vec_dot_q5_K_q8_K(int n, float * restrict s, size_t bs, const void * r
             vector float vxmin = vec_splats(GGML_FP16_TO_FP32(x[i].dmin));
             vector float vdmin = vec_mul(vxmin, vyd);
     
    -        memcpy(utmp, x[i].scales, 12);
    +        UNUSED(kmask1);
    +        UNUSED(kmask2);
    +        UNUSED(kmask3);
    +        UNUSED(utmp);
     
    -        utmp[3] = ((utmp[2] >> 4) & kmask2) | (((utmp[1] >> 6) & kmask3) << 4);
    -        const uint32_t uaux = utmp[1] & kmask1;
    -        utmp[1] = (utmp[2] & kmask2) | (((utmp[0] >> 6) & kmask3) << 4);
    -        utmp[2] = uaux;
    -        utmp[0] &= kmask1;
    +        vector signed char u0 = (vector signed char)vec_xl_len(x[i].scales, 8);
    +        vector signed char u1 = vec_and(vec_sr(u0, v2), lowMask2);
    +        vector signed char u2 = (vector signed char)vec_xl_len(x[i].scales + 8, 4);
    +        vector signed char u3 = vec_sr(u2, v4);
    +
    +        vector signed char u30 = u1;
    +        vector signed char u31 = (vector signed char)vec_mergeh((vector signed int)vec_and(u2, lowMask), (vector signed int)u3);
    +
    +        u1 = vec_and(u0, lowMask1);
    +        u2 = vec_or(u30, u31);
    +
    +        vector signed char utmps = (vector signed char)vec_mergeh((vector signed int)u1, (vector signed int)u2);
     
             vector signed short q8ysums0 = vec_xl( 0, y[i].bsums);
             vector signed short q8ysums1 = vec_xl(16, y[i].bsums);
     
    -        vector signed char utmps = (vector signed char)vec_xl( 0, utmp);
             vector signed short vscales = vec_unpackh(utmps);
     
             vector signed short q5xmins = vec_unpackl(utmps);
    @@ -7936,10 +7943,10 @@ void ggml_vec_dot_q5_K_q8_K(int n, float * restrict s, size_t bs, const void * r
             vector signed char qxhs0 = (vector signed char)vec_xl( 0, x[i].qh);
             vector signed char qxhs1 = (vector signed char)vec_xl(16, x[i].qh);
     
    -        vector signed int vsumi0 = vec_splats((int32_t)0);
    -        vector signed int vsumi1 = vec_splats((int32_t)0);
    -        vector signed int vsumi2 = vec_splats((int32_t)0);
    -        vector signed int vsumi3 = vec_splats((int32_t)0);
    +        vector signed int vsumi0 = v0;
    +        vector signed int vsumi1 = v0;
    +        vector signed int vsumi2 = v0;
    +        vector signed int vsumi3 = v0;
     
             const uint8_t * restrict q5 = x[i].qs;
             const int8_t  * restrict q8 = y[i].qs;
    @@ -7964,10 +7971,10 @@ void ggml_vec_dot_q5_K_q8_K(int n, float * restrict s, size_t bs, const void * r
                 qxhs0 = vec_sr(qxhs0, v2);
                 qxhs1 = vec_sr(qxhs1, v2);
     
    -            vector signed char q5x00 = vec_or(q5h00, qxs00);
    -            vector signed char q5x01 = vec_or(q5h01, qxs01);
    -            vector signed char q5x10 = vec_or(q5h10, qxs10);
    -            vector signed char q5x11 = vec_or(q5h11, qxs11);
    +            vector unsigned char q5x00 = (vector unsigned char)vec_or(q5h00, qxs00);
    +            vector unsigned char q5x01 = (vector unsigned char)vec_or(q5h01, qxs01);
    +            vector unsigned char q5x10 = (vector unsigned char)vec_or(q5h10, qxs10);
    +            vector unsigned char q5x11 = (vector unsigned char)vec_or(q5h11, qxs11);
     
                 vector signed char q8y00 = vec_xl( 0, q8);
                 vector signed char q8y10 = vec_xl(16, q8);
    @@ -7975,22 +7982,20 @@ void ggml_vec_dot_q5_K_q8_K(int n, float * restrict s, size_t bs, const void * r
                 vector signed char q8y11 = vec_xl(48, q8);
                 q8 += 64;
     
    -            vector signed short qv00 = vec_add(vec_mule(q5x00, q8y00), vec_mulo(q5x00, q8y00));
    -            vector signed short qv01 = vec_add(vec_mule(q5x01, q8y01), vec_mulo(q5x01, q8y01));
    -            vector signed short qv10 = vec_add(vec_mule(q5x10, q8y10), vec_mulo(q5x10, q8y10));
    -            vector signed short qv11 = vec_add(vec_mule(q5x11, q8y11), vec_mulo(q5x11, q8y11));
    +            vector signed int qv00 = vec_msum(q8y00, q5x00, v0);
    +            vector signed int qv01 = vec_msum(q8y01, q5x01, v0);
    +            vector signed int qv10 = vec_msum(q8y10, q5x10, v0);
    +            vector signed int qv11 = vec_msum(q8y11, q5x11, v0);
     
    -            vector signed short vs0 = vec_splat(vscales, 0);
    -            vector signed short vs1 = vec_splat(vscales, 1);
    +            vector signed int vscales_h = vec_unpackh(vscales);
    +            vector signed int vs0 = vec_splat(vscales_h, 0);
    +            vector signed int vs1 = vec_splat(vscales_h, 1);
                 vscales = vec_sld(vscales, vscales, 12);
     
    -            qv00 = vec_add(qv00, qv10);
    -            qv01 = vec_add(qv01, qv11);
    -
    -            vsumi0 = vec_add(vec_mule(qv00, vs0), vsumi0);
    -            vsumi1 = vec_add(vec_mulo(qv00, vs0), vsumi1);
    -            vsumi2 = vec_add(vec_mule(qv01, vs1), vsumi2);
    -            vsumi3 = vec_add(vec_mulo(qv01, vs1), vsumi3);
    +            vsumi0 = vec_add(vec_mul(qv00, vs0), vsumi0);
    +            vsumi1 = vec_add(vec_mul(qv10, vs0), vsumi1);
    +            vsumi2 = vec_add(vec_mul(qv01, vs1), vsumi2);
    +            vsumi3 = vec_add(vec_mul(qv11, vs1), vsumi3);
             }
     
             vsumf0 = vec_madd(vec_ctf(vsumi0, 0), vd, vsumf0);
    @@ -8551,6 +8556,7 @@ void ggml_vec_dot_q6_K_q8_K(int n, float * restrict s, size_t bs, const void * r
     
     #elif defined(__POWER9_VECTOR__)
         const vector signed char lowMask = vec_splats((signed char)0xF);
    +    const vector int v0 = vec_splats((int32_t)0);
         const vector unsigned char v2 = vec_splats((unsigned char)0x2);
         const vector unsigned char v3 = vec_splats((unsigned char)0x3);
         const vector unsigned char v4 = vec_splats((unsigned char)0x4);
    @@ -8567,14 +8573,14 @@ void ggml_vec_dot_q6_K_q8_K(int n, float * restrict s, size_t bs, const void * r
             vector float vyd = vec_splats(y[i].d);
             vector float vd = vec_mul(vxd, vyd);
     
    -        vector signed int vsumi0 = vec_splats((int32_t)0);
    -        vector signed int vsumi1 = vec_splats((int32_t)0);
    -        vector signed int vsumi2 = vec_splats((int32_t)0);
    -        vector signed int vsumi3 = vec_splats((int32_t)0);
    -        vector signed int vsumi4 = vec_splats((int32_t)0);
    -        vector signed int vsumi5 = vec_splats((int32_t)0);
    -        vector signed int vsumi6 = vec_splats((int32_t)0);
    -        vector signed int vsumi7 = vec_splats((int32_t)0);
    +        vector signed int vsumi0 = v0;
    +        vector signed int vsumi1 = v0;
    +        vector signed int vsumi2 = v0;
    +        vector signed int vsumi3 = v0;
    +        vector signed int vsumi4 = v0;
    +        vector signed int vsumi5 = v0;
    +        vector signed int vsumi6 = v0;
    +        vector signed int vsumi7 = v0;
     
             const uint8_t * restrict q6 = x[i].ql;
             const uint8_t * restrict qh = x[i].qh;
    @@ -8654,23 +8660,14 @@ void ggml_vec_dot_q6_K_q8_K(int n, float * restrict s, size_t bs, const void * r
                 vector signed short vs6 = vec_splat(vscales, 6);
                 vector signed short vs7 = vec_splat(vscales, 7);
     
    -            vsumi0 = vec_add(vec_mule(qv00, vs0), vsumi0);
    -            vsumi1 = vec_add(vec_mulo(qv00, vs0), vsumi1);
    -            vsumi2 = vec_add(vec_mule(qv01, vs4), vsumi2);
    -            vsumi3 = vec_add(vec_mulo(qv01, vs4), vsumi3);
    -            vsumi4 = vec_add(vec_mule(qv10, vs1), vsumi4);
    -            vsumi5 = vec_add(vec_mulo(qv10, vs1), vsumi5);
    -            vsumi6 = vec_add(vec_mule(qv11, vs5), vsumi6);
    -            vsumi7 = vec_add(vec_mulo(qv11, vs5), vsumi7);
    -
    -            vsumi0 = vec_add(vec_mule(qv20, vs2), vsumi0);
    -            vsumi1 = vec_add(vec_mulo(qv20, vs2), vsumi1);
    -            vsumi2 = vec_add(vec_mule(qv21, vs6), vsumi2);
    -            vsumi3 = vec_add(vec_mulo(qv21, vs6), vsumi3);
    -            vsumi4 = vec_add(vec_mule(qv30, vs3), vsumi4);
    -            vsumi5 = vec_add(vec_mulo(qv30, vs3), vsumi5);
    -            vsumi6 = vec_add(vec_mule(qv31, vs7), vsumi6);
    -            vsumi7 = vec_add(vec_mulo(qv31, vs7), vsumi7);
    +            vsumi0 = vec_msum(qv00, vs0, vsumi0);
    +            vsumi1 = vec_msum(qv01, vs4, vsumi1);
    +            vsumi2 = vec_msum(qv10, vs1, vsumi2);
    +            vsumi3 = vec_msum(qv11, vs5, vsumi3);
    +            vsumi4 = vec_msum(qv20, vs2, vsumi4);
    +            vsumi5 = vec_msum(qv21, vs6, vsumi5);
    +            vsumi6 = vec_msum(qv30, vs3, vsumi6);
    +            vsumi7 = vec_msum(qv31, vs7, vsumi7);
             }
     
             vsumi0 = vec_add(vsumi0, vsumi4);
    @@ -8951,6 +8948,7 @@ void ggml_vec_dot_iq2_xxs_q8_K(int n, float * restrict s, size_t bs, const void
         *s = 0.125f * hsum_float_8(accumf);
     
     #elif defined(__POWER9_VECTOR__)
    +    const vector int v0 = vec_splats((int32_t)0);
         vector float vsumf0 = vec_splats(0.0f);
         vector float vsumf1 = vec_splats(0.0f);
         vector float vsumf2 = vec_splats(0.0f);
    @@ -8963,14 +8961,10 @@ void ggml_vec_dot_iq2_xxs_q8_K(int n, float * restrict s, size_t bs, const void
             vector float vyd = vec_splats(y[i].d);
             vector float vd = vec_mul(vxd, vyd);
     
    -        vector signed int vsumi0 = vec_splats((int32_t)0);
    -        vector signed int vsumi1 = vec_splats((int32_t)0);
    -        vector signed int vsumi2 = vec_splats((int32_t)0);
    -        vector signed int vsumi3 = vec_splats((int32_t)0);
    -        vector signed int vsumi4 = vec_splats((int32_t)0);
    -        vector signed int vsumi5 = vec_splats((int32_t)0);
    -        vector signed int vsumi6 = vec_splats((int32_t)0);
    -        vector signed int vsumi7 = vec_splats((int32_t)0);
    +        vector signed int vsumi0 = v0;
    +        vector signed int vsumi1 = v0;
    +        vector signed int vsumi2 = v0;
    +        vector signed int vsumi3 = v0;
     
             const uint16_t * restrict q2 = x[i].qs;
             const int8_t  *  restrict q8 = y[i].qs;
    @@ -9017,21 +9011,12 @@ void ggml_vec_dot_iq2_xxs_q8_K(int n, float * restrict s, size_t bs, const void
                 vector signed short vscales01 = vec_splats((int16_t)(2*ls0+1));
                 vector signed short vscales23 = vec_splats((int16_t)(2*ls1+1));
     
    -            vsumi0 = vec_add(vec_mule(qv0, vscales01), vsumi0);
    -            vsumi1 = vec_add(vec_mule(qv1, vscales01), vsumi1);
    -            vsumi2 = vec_add(vec_mule(qv2, vscales23), vsumi2);
    -            vsumi3 = vec_add(vec_mule(qv3, vscales23), vsumi3);
    -            vsumi4 = vec_add(vec_mulo(qv0, vscales01), vsumi4);
    -            vsumi5 = vec_add(vec_mulo(qv1, vscales01), vsumi5);
    -            vsumi6 = vec_add(vec_mulo(qv2, vscales23), vsumi6);
    -            vsumi7 = vec_add(vec_mulo(qv3, vscales23), vsumi7);
    +            vsumi0 = vec_msum(qv0, vscales01, vsumi0);
    +            vsumi1 = vec_msum(qv1, vscales01, vsumi1);
    +            vsumi2 = vec_msum(qv2, vscales23, vsumi2);
    +            vsumi3 = vec_msum(qv3, vscales23, vsumi3);
             }
     
    -        vsumi0 = vec_add(vsumi0, vsumi4);
    -        vsumi1 = vec_add(vsumi1, vsumi5);
    -        vsumi2 = vec_add(vsumi2, vsumi6);
    -        vsumi3 = vec_add(vsumi3, vsumi7);
    -
             vsumf0 = vec_madd(vec_ctf(vsumi0, 0), vd, vsumf0);
             vsumf1 = vec_madd(vec_ctf(vsumi1, 0), vd, vsumf1);
             vsumf2 = vec_madd(vec_ctf(vsumi2, 0), vd, vsumf2);
    @@ -9423,6 +9408,7 @@ void ggml_vec_dot_iq2_xs_q8_K(int n, float * restrict s, size_t bs, const void *
     
         *s = 0.125f * hsum_float_8(accumf);
     #elif defined(__POWER9_VECTOR__)
    +    const vector int v0 = vec_splats((int32_t)0);
         vector float vsumf0 = vec_splats(0.0f);
         vector float vsumf1 = vec_splats(0.0f);
         vector float vsumf2 = vec_splats(0.0f);
    @@ -9435,14 +9421,10 @@ void ggml_vec_dot_iq2_xs_q8_K(int n, float * restrict s, size_t bs, const void *
             vector float vyd = vec_splats(y[i].d);
             vector float vd = vec_mul(vxd, vyd);
     
    -        vector signed int vsumi0 = vec_splats((int32_t)0);
    -        vector signed int vsumi1 = vec_splats((int32_t)0);
    -        vector signed int vsumi2 = vec_splats((int32_t)0);
    -        vector signed int vsumi3 = vec_splats((int32_t)0);
    -        vector signed int vsumi4 = vec_splats((int32_t)0);
    -        vector signed int vsumi5 = vec_splats((int32_t)0);
    -        vector signed int vsumi6 = vec_splats((int32_t)0);
    -        vector signed int vsumi7 = vec_splats((int32_t)0);
    +        vector signed int vsumi0 = v0;
    +        vector signed int vsumi1 = v0;
    +        vector signed int vsumi2 = v0;
    +        vector signed int vsumi3 = v0;
     
             const uint16_t * restrict q2 = x[i].qs;
             const uint8_t  * restrict sc = x[i].scales;
    @@ -9490,21 +9472,12 @@ void ggml_vec_dot_iq2_xs_q8_K(int n, float * restrict s, size_t bs, const void *
                 vector signed short vscales2 = vec_splats((int16_t)(2*ls2+1));
                 vector signed short vscales3 = vec_splats((int16_t)(2*ls3+1));
     
    -            vsumi0 = vec_add(vec_mule(qv0, vscales0), vsumi0);
    -            vsumi1 = vec_add(vec_mule(qv1, vscales1), vsumi1);
    -            vsumi2 = vec_add(vec_mule(qv2, vscales2), vsumi2);
    -            vsumi3 = vec_add(vec_mule(qv3, vscales3), vsumi3);
    -            vsumi4 = vec_add(vec_mulo(qv0, vscales0), vsumi4);
    -            vsumi5 = vec_add(vec_mulo(qv1, vscales1), vsumi5);
    -            vsumi6 = vec_add(vec_mulo(qv2, vscales2), vsumi6);
    -            vsumi7 = vec_add(vec_mulo(qv3, vscales3), vsumi7);
    +            vsumi0 = vec_msum(qv0, vscales0, vsumi0);
    +            vsumi1 = vec_msum(qv1, vscales1, vsumi1);
    +            vsumi2 = vec_msum(qv2, vscales2, vsumi2);
    +            vsumi3 = vec_msum(qv3, vscales3, vsumi3);
             }
     
    -        vsumi0 = vec_add(vsumi0, vsumi4);
    -        vsumi1 = vec_add(vsumi1, vsumi5);
    -        vsumi2 = vec_add(vsumi2, vsumi6);
    -        vsumi3 = vec_add(vsumi3, vsumi7);
    -
             vsumf0 = vec_madd(vec_ctf(vsumi0, 0), vd, vsumf0);
             vsumf1 = vec_madd(vec_ctf(vsumi1, 0), vd, vsumf1);
             vsumf2 = vec_madd(vec_ctf(vsumi2, 0), vd, vsumf2);
    @@ -9727,6 +9700,8 @@ void ggml_vec_dot_iq2_s_q8_K(int n, float * restrict s, size_t bs, const void *
     
         static const uint8_t k_mask2[16] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80,};
     
    +    const vector int v0 = vec_splats((int32_t)0);
    +
         vector float vsumf0 = vec_splats(0.0f);
         vector float vsumf1 = vec_splats(0.0f);
         vector float vsumf2 = vec_splats(0.0f);
    @@ -9741,14 +9716,10 @@ void ggml_vec_dot_iq2_s_q8_K(int n, float * restrict s, size_t bs, const void *
             vector float vyd = vec_splats(y[i].d);
             vector float vd = vec_mul(vxd, vyd);
     
    -        vector signed int vsumi0 = vec_splats((int32_t)0);
    -        vector signed int vsumi1 = vec_splats((int32_t)0);
    -        vector signed int vsumi2 = vec_splats((int32_t)0);
    -        vector signed int vsumi3 = vec_splats((int32_t)0);
    -        vector signed int vsumi4 = vec_splats((int32_t)0);
    -        vector signed int vsumi5 = vec_splats((int32_t)0);
    -        vector signed int vsumi6 = vec_splats((int32_t)0);
    -        vector signed int vsumi7 = vec_splats((int32_t)0);
    +        vector signed int vsumi0 = v0;
    +        vector signed int vsumi1 = v0;
    +        vector signed int vsumi2 = v0;
    +        vector signed int vsumi3 = v0;
     
             const uint8_t *  restrict q2 = x[i].qs;
             const uint8_t *  restrict qh = x[i].qh;
    @@ -9808,21 +9779,12 @@ void ggml_vec_dot_iq2_s_q8_K(int n, float * restrict s, size_t bs, const void *
                 vector signed short vscales2 = vec_splats((int16_t)(2*ls2+1));
                 vector signed short vscales3 = vec_splats((int16_t)(2*ls3+1));
     
    -            vsumi0 = vec_add(vec_mule(qv0, vscales0), vsumi0);
    -            vsumi1 = vec_add(vec_mule(qv1, vscales1), vsumi1);
    -            vsumi2 = vec_add(vec_mule(qv2, vscales2), vsumi2);
    -            vsumi3 = vec_add(vec_mule(qv3, vscales3), vsumi3);
    -            vsumi4 = vec_add(vec_mulo(qv0, vscales0), vsumi4);
    -            vsumi5 = vec_add(vec_mulo(qv1, vscales1), vsumi5);
    -            vsumi6 = vec_add(vec_mulo(qv2, vscales2), vsumi6);
    -            vsumi7 = vec_add(vec_mulo(qv3, vscales3), vsumi7);
    +            vsumi0 = vec_msum(qv0, vscales0, vsumi0);
    +            vsumi1 = vec_msum(qv1, vscales1, vsumi1);
    +            vsumi2 = vec_msum(qv2, vscales2, vsumi2);
    +            vsumi3 = vec_msum(qv3, vscales3, vsumi3);
             }
     
    -        vsumi0 = vec_add(vsumi0, vsumi4);
    -        vsumi1 = vec_add(vsumi1, vsumi5);
    -        vsumi2 = vec_add(vsumi2, vsumi6);
    -        vsumi3 = vec_add(vsumi3, vsumi7);
    -
             vsumf0 = vec_madd(vec_ctf(vsumi0, 0), vd, vsumf0);
             vsumf1 = vec_madd(vec_ctf(vsumi1, 0), vd, vsumf1);
             vsumf2 = vec_madd(vec_ctf(vsumi2, 0), vd, vsumf2);
    @@ -10060,6 +10022,8 @@ void ggml_vec_dot_iq3_xxs_q8_K(int n, float * restrict s, size_t bs, const void
     #elif defined(__POWER9_VECTOR__)
         const uint64_t * signs64 = (const uint64_t *)keven_signs_q2xs;
     
    +    const vector int v0 = vec_splats((int32_t)0);
    +
         vector float vsumf0 = vec_splats(0.0f);
         vector float vsumf1 = vec_splats(0.0f);
         vector float vsumf2 = vec_splats(0.0f);
    @@ -10070,14 +10034,10 @@ void ggml_vec_dot_iq3_xxs_q8_K(int n, float * restrict s, size_t bs, const void
             vector float vyd = vec_splats(y[i].d);
             vector float vd = vec_mul(vxd, vyd);
     
    -        vector signed int vsumi0 = vec_splats((int32_t)0);
    -        vector signed int vsumi1 = vec_splats((int32_t)0);
    -        vector signed int vsumi2 = vec_splats((int32_t)0);
    -        vector signed int vsumi3 = vec_splats((int32_t)0);
    -        vector signed int vsumi4 = vec_splats((int32_t)0);
    -        vector signed int vsumi5 = vec_splats((int32_t)0);
    -        vector signed int vsumi6 = vec_splats((int32_t)0);
    -        vector signed int vsumi7 = vec_splats((int32_t)0);
    +        vector signed int vsumi0 = v0;
    +        vector signed int vsumi1 = v0;
    +        vector signed int vsumi2 = v0;
    +        vector signed int vsumi3 = v0;
     
             const uint8_t * restrict q3 = x[i].qs;
             const uint32_t * restrict signs = (const uint32_t *)(x[i].qs + QK_K/4);
    @@ -10122,21 +10082,12 @@ void ggml_vec_dot_iq3_xxs_q8_K(int n, float * restrict s, size_t bs, const void
                 vector signed short vscales01 = (vector signed short)vec_splats((uint16_t)(2*ls0+1));
                 vector signed short vscales23 = (vector signed short)vec_splats((uint16_t)(2*ls1+1));
     
    -            vsumi0 = vec_add(vec_mule(qv0, vscales01), vsumi0);
    -            vsumi1 = vec_add(vec_mule(qv1, vscales01), vsumi1);
    -            vsumi2 = vec_add(vec_mule(qv2, vscales23), vsumi2);
    -            vsumi3 = vec_add(vec_mule(qv3, vscales23), vsumi3);
    -            vsumi4 = vec_add(vec_mulo(qv0, vscales01), vsumi4);
    -            vsumi5 = vec_add(vec_mulo(qv1, vscales01), vsumi5);
    -            vsumi6 = vec_add(vec_mulo(qv2, vscales23), vsumi6);
    -            vsumi7 = vec_add(vec_mulo(qv3, vscales23), vsumi7);
    +            vsumi0 = vec_msum(qv0, vscales01, vsumi0);
    +            vsumi1 = vec_msum(qv1, vscales01, vsumi1);
    +            vsumi2 = vec_msum(qv2, vscales23, vsumi2);
    +            vsumi3 = vec_msum(qv3, vscales23, vsumi3);
             }
     
    -        vsumi0 = vec_add(vsumi0, vsumi4);
    -        vsumi1 = vec_add(vsumi1, vsumi5);
    -        vsumi2 = vec_add(vsumi2, vsumi6);
    -        vsumi3 = vec_add(vsumi3, vsumi7);
    -
             vsumf0 = vec_madd(vec_ctf(vsumi0, 0), vd, vsumf0);
             vsumf1 = vec_madd(vec_ctf(vsumi1, 0), vd, vsumf1);
             vsumf2 = vec_madd(vec_ctf(vsumi2, 0), vd, vsumf2);
    @@ -10426,6 +10377,8 @@ void ggml_vec_dot_iq3_s_q8_K (int n, float * restrict s, size_t bs, const void *
     
         static const uint8_t k_mask2[16] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80,};
     
    +    const vector int v0 = vec_splats((int32_t)0);
    +
         vector float vsumf0 = vec_splats(0.0f);
         vector float vsumf1 = vec_splats(0.0f);
         vector float vsumf2 = vec_splats(0.0f);
    @@ -10446,14 +10399,10 @@ void ggml_vec_dot_iq3_s_q8_K (int n, float * restrict s, size_t bs, const void *
             const uint8_t *  restrict sc = x[i].scales;
             const int8_t  *  restrict q8 = y[i].qs;
     
    -        vector signed int vsumi0 = vec_splats((int32_t)0);
    -        vector signed int vsumi1 = vec_splats((int32_t)0);
    -        vector signed int vsumi2 = vec_splats((int32_t)0);
    -        vector signed int vsumi3 = vec_splats((int32_t)0);
    -        vector signed int vsumi4 = vec_splats((int32_t)0);
    -        vector signed int vsumi5 = vec_splats((int32_t)0);
    -        vector signed int vsumi6 = vec_splats((int32_t)0);
    -        vector signed int vsumi7 = vec_splats((int32_t)0);
    +        vector signed int vsumi0 = v0;
    +        vector signed int vsumi1 = v0;
    +        vector signed int vsumi2 = v0;
    +        vector signed int vsumi3 = v0;
     
             for (int j = 0; j < QK_K/32; j += 2) {
                 __builtin_prefetch(q3, 0, 1);
    @@ -10507,21 +10456,12 @@ void ggml_vec_dot_iq3_s_q8_K (int n, float * restrict s, size_t bs, const void *
                 vector signed short vscales01 = (vector signed short)vec_splats((uint16_t)(2*ls0+1));
                 vector signed short vscales23 = (vector signed short)vec_splats((uint16_t)(2*ls1+1));
     
    -            vsumi0 = vec_add(vec_mule(qv0, vscales01), vsumi0);
    -            vsumi1 = vec_add(vec_mule(qv1, vscales01), vsumi1);
    -            vsumi2 = vec_add(vec_mule(qv2, vscales23), vsumi2);
    -            vsumi3 = vec_add(vec_mule(qv3, vscales23), vsumi3);
    -            vsumi4 = vec_add(vec_mulo(qv0, vscales01), vsumi4);
    -            vsumi5 = vec_add(vec_mulo(qv1, vscales01), vsumi5);
    -            vsumi6 = vec_add(vec_mulo(qv2, vscales23), vsumi6);
    -            vsumi7 = vec_add(vec_mulo(qv3, vscales23), vsumi7);
    +            vsumi0 = vec_msum(qv0, vscales01, vsumi0);
    +            vsumi1 = vec_msum(qv1, vscales01, vsumi1);
    +            vsumi2 = vec_msum(qv2, vscales23, vsumi2);
    +            vsumi3 = vec_msum(qv3, vscales23, vsumi3);
             }
     
    -        vsumi0 = vec_add(vsumi0, vsumi4);
    -        vsumi1 = vec_add(vsumi1, vsumi5);
    -        vsumi2 = vec_add(vsumi2, vsumi6);
    -        vsumi3 = vec_add(vsumi3, vsumi7);
    -
             vsumf0 = vec_madd(vec_ctf(vsumi0, 0), vd, vsumf0);
             vsumf1 = vec_madd(vec_ctf(vsumi1, 0), vd, vsumf1);
             vsumf2 = vec_madd(vec_ctf(vsumi2, 0), vd, vsumf2);
    @@ -10802,10 +10742,6 @@ void ggml_vec_dot_iq1_s_q8_K  (int n, float * restrict s, size_t bs, const void
             vector signed int vsumi1 = vec_splats((int32_t)0);
             vector signed int vsumi2 = vec_splats((int32_t)0);
             vector signed int vsumi3 = vec_splats((int32_t)0);
    -        vector signed int vsumi4 = vec_splats((int32_t)0);
    -        vector signed int vsumi5 = vec_splats((int32_t)0);
    -        vector signed int vsumi6 = vec_splats((int32_t)0);
    -        vector signed int vsumi7 = vec_splats((int32_t)0);
             vector signed int vsumi8 = vec_splats((int32_t)0);
     
             const uint8_t  * restrict q1 = x[i].qs;
    @@ -10847,14 +10783,10 @@ void ggml_vec_dot_iq1_s_q8_K  (int n, float * restrict s, size_t bs, const void
                 vector signed short vscales23 = (vector signed short)vec_splats((uint16_t)(2*ls1+1));
                 vector signed short vscales = vec_sld(vscales23, vscales01, 8);
     
    -            vsumi0 = vec_add(vec_mule(qv0, vscales01), vsumi0);
    -            vsumi1 = vec_add(vec_mule(qv1, vscales01), vsumi1);
    -            vsumi2 = vec_add(vec_mule(qv2, vscales23), vsumi2);
    -            vsumi3 = vec_add(vec_mule(qv3, vscales23), vsumi3);
    -            vsumi4 = vec_add(vec_mulo(qv0, vscales01), vsumi4);
    -            vsumi5 = vec_add(vec_mulo(qv1, vscales01), vsumi5);
    -            vsumi6 = vec_add(vec_mulo(qv2, vscales23), vsumi6);
    -            vsumi7 = vec_add(vec_mulo(qv3, vscales23), vsumi7);
    +            vsumi0 = vec_msum(qv0, vscales01, vsumi0);
    +            vsumi1 = vec_msum(qv1, vscales01, vsumi1);
    +            vsumi2 = vec_msum(qv2, vscales23, vsumi2);
    +            vsumi3 = vec_msum(qv3, vscales23, vsumi3);
     
                 vector signed short q8ysums = vec_xl_len(qs, 8);
                 qs += 4;
    @@ -10869,11 +10801,6 @@ void ggml_vec_dot_iq1_s_q8_K  (int n, float * restrict s, size_t bs, const void
                 vsumi8 = vec_add(vec_mule(q8ysum, vscales), vsumi8);
             }
     
    -        vsumi0 = vec_add(vsumi0, vsumi4);
    -        vsumi1 = vec_add(vsumi1, vsumi5);
    -        vsumi2 = vec_add(vsumi2, vsumi6);
    -        vsumi3 = vec_add(vsumi3, vsumi7);
    -
             vsumf0 = vec_madd(vec_ctf(vsumi0, 0), vd, vsumf0);
             vsumf1 = vec_madd(vec_ctf(vsumi1, 0), vd, vsumf1);
             vsumf2 = vec_madd(vec_ctf(vsumi2, 0), vd, vsumf2);
    @@ -11267,6 +11194,7 @@ void ggml_vec_dot_iq4_nl_q8_0(int n, float * restrict s, size_t bs, const void *
     
     #elif defined(__POWER9_VECTOR__)
         const vector signed char lowMask = vec_splats((signed char)0xF);
    +    const vector signed int v0 = vec_splats((int32_t)0);
         const vector unsigned char v4 = vec_splats((unsigned char)0x4);
     
         vector float vsumf0 = vec_splats(0.0f);
    @@ -11297,8 +11225,11 @@ void ggml_vec_dot_iq4_nl_q8_0(int n, float * restrict s, size_t bs, const void *
             vector signed short qv0 = vec_add(vec_mule(q4x0, q8y0), vec_mulo(q4x0, q8y0));
             vector signed short qv1 = vec_add(vec_mule(q4x1, q8y1), vec_mulo(q4x1, q8y1));
     
    -        vector signed int vsumi0 = vec_add(vec_unpackh(qv0), vec_unpackl(qv0));
    -        vector signed int vsumi1 = vec_add(vec_unpackh(qv1), vec_unpackl(qv1));
    +        vector signed int vsumi0 = v0;
    +        vector signed int vsumi1 = v0;
    +
    +        vsumi0 = vec_sum4s(qv0, vsumi0);
    +        vsumi1 = vec_sum4s(qv1, vsumi1);
     
             vsumf0 = vec_madd(vec_ctf(vsumi0, 0), vd, vsumf0);
             vsumf1 = vec_madd(vec_ctf(vsumi1, 0), vd, vsumf1);
    @@ -11453,6 +11384,7 @@ void ggml_vec_dot_iq4_xs_q8_K(int n, float * restrict s, size_t bs, const void *
     
     #elif defined(__POWER9_VECTOR__)
         const vector signed char lowMask = vec_splats((signed char)0xF);
    +    const vector int v0 = vec_splats((int32_t)0);
         const vector unsigned char v4 = vec_splats((unsigned char)0x4);
     
         vector float vsumf0 = vec_splats(0.0f);
    @@ -11468,14 +11400,10 @@ void ggml_vec_dot_iq4_xs_q8_K(int n, float * restrict s, size_t bs, const void *
             vector float vyd = vec_splats(y[ibl].d);
             vector float vd = vec_mul(vxd, vyd);
     
    -        vector signed int vsumi0 = vec_splats((int32_t)0);
    -        vector signed int vsumi1 = vec_splats((int32_t)0);
    -        vector signed int vsumi2 = vec_splats((int32_t)0);
    -        vector signed int vsumi3 = vec_splats((int32_t)0);
    -        vector signed int vsumi4 = vec_splats((int32_t)0);
    -        vector signed int vsumi5 = vec_splats((int32_t)0);
    -        vector signed int vsumi6 = vec_splats((int32_t)0);
    -        vector signed int vsumi7 = vec_splats((int32_t)0);
    +        vector signed int vsumi0 = v0;
    +        vector signed int vsumi1 = v0;
    +        vector signed int vsumi2 = v0;
    +        vector signed int vsumi3 = v0;
     
             uint16_t h = x[ibl].scales_h;
     
    @@ -11520,21 +11448,12 @@ void ggml_vec_dot_iq4_xs_q8_K(int n, float * restrict s, size_t bs, const void *
                 vector signed short vscales01 = vec_splats((int16_t)ls0);
                 vector signed short vscales23 = vec_splats((int16_t)ls1);
     
    -            vsumi0 = vec_add(vec_mule(qv0, vscales01), vsumi0);
    -            vsumi1 = vec_add(vec_mule(qv1, vscales01), vsumi1);
    -            vsumi2 = vec_add(vec_mule(qv2, vscales23), vsumi2);
    -            vsumi3 = vec_add(vec_mule(qv3, vscales23), vsumi3);
    -            vsumi4 = vec_add(vec_mulo(qv0, vscales01), vsumi4);
    -            vsumi5 = vec_add(vec_mulo(qv1, vscales01), vsumi5);
    -            vsumi6 = vec_add(vec_mulo(qv2, vscales23), vsumi6);
    -            vsumi7 = vec_add(vec_mulo(qv3, vscales23), vsumi7);
    +            vsumi0 = vec_msum(qv0, vscales01, vsumi0);
    +            vsumi1 = vec_msum(qv1, vscales01, vsumi1);
    +            vsumi2 = vec_msum(qv2, vscales23, vsumi2);
    +            vsumi3 = vec_msum(qv3, vscales23, vsumi3);
             }
     
    -        vsumi0 = vec_add(vsumi0, vsumi4);
    -        vsumi1 = vec_add(vsumi1, vsumi5);
    -        vsumi2 = vec_add(vsumi2, vsumi6);
    -        vsumi3 = vec_add(vsumi3, vsumi7);
    -
             vsumf0 = vec_madd(vec_ctf(vsumi0, 0), vd, vsumf0);
             vsumf1 = vec_madd(vec_ctf(vsumi1, 0), vd, vsumf1);
             vsumf2 = vec_madd(vec_ctf(vsumi2, 0), vd, vsumf2);
    
    From 19b7a836f6658e18e973af532a5cc6ad6b3a27f8 Mon Sep 17 00:00:00 2001
    From: Georgi Gerganov 
    Date: Tue, 11 Jun 2024 17:39:01 +0300
    Subject: [PATCH 084/131] cuda : fix bounds check for src0 rows in MMVQ kernel
     (whisper/2231)
    MIME-Version: 1.0
    Content-Type: text/plain; charset=UTF-8
    Content-Transfer-Encoding: 8bit
    
    * cuda : fix bounds check for src0 rows in MMVQ kernel
    
    * Update ggml-cuda/mmvq.cu
    
    Co-authored-by: Johannes Gäßler 
    
    ---------
    
    Co-authored-by: Johannes Gäßler 
    ---
     ggml-cuda/mmvq.cu | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/ggml-cuda/mmvq.cu b/ggml-cuda/mmvq.cu
    index 5f056e91e5460..e8d157169544f 100644
    --- a/ggml-cuda/mmvq.cu
    +++ b/ggml-cuda/mmvq.cu
    @@ -117,7 +117,7 @@ static __global__ void mul_mat_vec_q(
                 tmp[j][i] = warp_reduce_sum(tmp[j][i]);
             }
     
    -        if (threadIdx.x < rows_per_cuda_block) {
    +        if (threadIdx.x < rows_per_cuda_block && (rows_per_cuda_block == 1 || row0 + threadIdx.x < nrows_dst)) {
                 dst[j*nrows_dst + row0 + threadIdx.x] = tmp[j][threadIdx.x];
             }
         }
    
    From 43b35e38ba371f9a7faa6dca4c5d1e8f698ffd87 Mon Sep 17 00:00:00 2001
    From: Calvin Laurenson 
    Date: Sun, 16 Jun 2024 15:23:04 -0700
    Subject: [PATCH 085/131] Add support for sqrt on CUDA (#7953)
    MIME-Version: 1.0
    Content-Type: text/plain; charset=UTF-8
    Content-Transfer-Encoding: 8bit
    
    * cuda sqrt support
    
    * enable cuda in pca
    
    * fix comments in pca
    
    * add test
    
    * add sqrt to ggml_backend_cuda_supports_op
    
    * fix test
    
    * new line
    
    * Use F32 sqrtf instead of F64 sqrt
    
    Co-authored-by: Johannes Gäßler 
    
    ---------
    
    Co-authored-by: Johannes Gäßler 
    ---
     examples/cvector-generator/pca.hpp | 16 ++++++++--------
     ggml-cuda.cu                       |  4 ++++
     ggml-cuda/unary.cu                 | 28 ++++++++++++++++++++++++++++
     ggml-cuda/unary.cuh                |  3 +++
     tests/test-backend-ops.cpp         | 28 ++++++++++++++++++++++++++++
     5 files changed, 71 insertions(+), 8 deletions(-)
    
    diff --git a/examples/cvector-generator/pca.hpp b/examples/cvector-generator/pca.hpp
    index 8b95cec374c23..36eadaac26a12 100644
    --- a/examples/cvector-generator/pca.hpp
    +++ b/examples/cvector-generator/pca.hpp
    @@ -64,15 +64,15 @@ struct pca_model {
         struct ggml_tensor * dev_eigenvector;
     
         pca_model(struct ggml_tensor * t_input) {
    -// TODO: enable GPU support when support for GGML_OP_SQRT is added
    -// #ifdef GGML_USE_CUDA
    -//         fprintf(stderr, "%s: using CUDA backend\n", __func__);
    -//         backend = ggml_backend_cuda_init(0); // init device 0
    -//         if (!backend) {
    -//             fprintf(stderr, "%s: ggml_backend_cuda_init() failed\n", __func__);
    -//         }
    -// #endif
    +#ifdef GGML_USE_CUDA
    +        fprintf(stderr, "%s: using CUDA backend\n", __func__);
    +        backend = ggml_backend_cuda_init(0); // init device 0
    +        if (!backend) {
    +            fprintf(stderr, "%s: ggml_backend_cuda_init() failed\n", __func__);
    +        }
    +#endif
     
    +// TODO: enable Metal support when support for GGML_OP_SQRT is added
     // #ifdef GGML_USE_METAL
     //         fprintf(stderr, "%s: using Metal backend\n", __func__);
     //         backend = ggml_backend_metal_init();
    diff --git a/ggml-cuda.cu b/ggml-cuda.cu
    index 593fa4cdaa514..b8298ab205e60 100644
    --- a/ggml-cuda.cu
    +++ b/ggml-cuda.cu
    @@ -2267,6 +2267,9 @@ static bool ggml_cuda_compute_forward(ggml_backend_cuda_context & ctx, struct gg
             case GGML_OP_SQR:
                 ggml_cuda_op_sqr(ctx, dst);
                 break;
    +        case GGML_OP_SQRT:
    +            ggml_cuda_op_sqrt(ctx, dst);
    +            break;
             case GGML_OP_CLAMP:
                 ggml_cuda_op_clamp(ctx, dst);
                 break;
    @@ -2830,6 +2833,7 @@ GGML_CALL static bool ggml_backend_cuda_supports_op(ggml_backend_t backend, cons
             case GGML_OP_RMS_NORM:
             case GGML_OP_SCALE:
             case GGML_OP_SQR:
    +        case GGML_OP_SQRT:
             case GGML_OP_CLAMP:
             case GGML_OP_CONT:
             case GGML_OP_DIAG_MASK_INF:
    diff --git a/ggml-cuda/unary.cu b/ggml-cuda/unary.cu
    index a5ff96320f23f..f9e208011e2a8 100644
    --- a/ggml-cuda/unary.cu
    +++ b/ggml-cuda/unary.cu
    @@ -92,6 +92,15 @@ static __global__ void sqr_f32(const float * x, float * dst, const int k) {
         dst[i] = x[i] * x[i];
     }
     
    +static __global__ void sqrt_f32(const float * x, float * dst, const int k) {
    +    const int i = blockDim.x*blockIdx.x + threadIdx.x;
    +
    +    if (i >= k) {
    +        return;
    +    }
    +    dst[i] = sqrtf(x[i]);
    +}
    +
     static void gelu_f32_cuda(const float * x, float * dst, const int k, cudaStream_t stream) {
         const int num_blocks = (k + CUDA_GELU_BLOCK_SIZE - 1) / CUDA_GELU_BLOCK_SIZE;
         gelu_f32<<>>(x, dst, k);
    @@ -142,6 +151,11 @@ static void sqr_f32_cuda(const float * x, float * dst, const int k, cudaStream_t
         sqr_f32<<>>(x, dst, k);
     }
     
    +static void sqrt_f32_cuda(const float * x, float * dst, const int k, cudaStream_t stream) {
    +    const int num_blocks = (k + CUDA_SQRT_BLOCK_SIZE - 1) / CUDA_SQRT_BLOCK_SIZE;
    +    sqrt_f32<<>>(x, dst, k);
    +}
    +
     void ggml_cuda_op_gelu(ggml_backend_cuda_context & ctx, ggml_tensor * dst) {
         const ggml_tensor * src0 = dst->src[0];
         const float * src0_d = (const float *)src0->data;
    @@ -284,3 +298,17 @@ void ggml_cuda_op_sqr(ggml_backend_cuda_context & ctx, ggml_tensor * dst) {
     
         sqr_f32_cuda(src0_d, dst_d, ggml_nelements(src0), stream);
     }
    +
    +void ggml_cuda_op_sqrt(ggml_backend_cuda_context & ctx, ggml_tensor * dst) {
    +    const ggml_tensor * src0 = dst->src[0];
    +    const float * src0_d = (const float *)src0->data;
    +    float * dst_d = (float *)dst->data;
    +    cudaStream_t stream = ctx.stream();
    +
    +    GGML_ASSERT(ggml_is_contiguous(src0));
    +
    +    GGML_ASSERT(src0->type == GGML_TYPE_F32);
    +    GGML_ASSERT( dst->type == GGML_TYPE_F32);
    +
    +    sqrt_f32_cuda(src0_d, dst_d, ggml_nelements(src0), stream);
    +}
    diff --git a/ggml-cuda/unary.cuh b/ggml-cuda/unary.cuh
    index a1d07c04fcd43..4cfb0479e7169 100644
    --- a/ggml-cuda/unary.cuh
    +++ b/ggml-cuda/unary.cuh
    @@ -8,6 +8,7 @@
     #define CUDA_HARDSIGMOID_BLOCK_SIZE 256
     #define CUDA_HARDSWISH_BLOCK_SIZE 256
     #define CUDA_SQR_BLOCK_SIZE 256
    +#define CUDA_SQRT_BLOCK_SIZE 256
     
     void ggml_cuda_op_gelu(ggml_backend_cuda_context & ctx, ggml_tensor * dst);
     
    @@ -28,3 +29,5 @@ void ggml_cuda_op_hardswish(ggml_backend_cuda_context & ctx, ggml_tensor * dst);
     void ggml_cuda_op_leaky_relu(ggml_backend_cuda_context & ctx, ggml_tensor * dst);
     
     void ggml_cuda_op_sqr(ggml_backend_cuda_context & ctx, ggml_tensor * dst);
    +
    +void ggml_cuda_op_sqrt(ggml_backend_cuda_context & ctx, ggml_tensor * dst);
    diff --git a/tests/test-backend-ops.cpp b/tests/test-backend-ops.cpp
    index 2b48e623e3476..7c504e937a851 100644
    --- a/tests/test-backend-ops.cpp
    +++ b/tests/test-backend-ops.cpp
    @@ -1063,6 +1063,33 @@ struct test_sqr : public test_case {
         }
     };
     
    +// GGML_OP_SQRT
    +struct test_sqrt : public test_case {
    +    const ggml_type type;
    +    const std::array ne;
    +
    +    std::string vars() override {
    +        return VARS_TO_STR2(type, ne);
    +    }
    +
    +    test_sqrt(ggml_type type = GGML_TYPE_F32,
    +            std::array ne = {10, 10, 10, 10})
    +        : type(type), ne(ne) {}
    +
    +    ggml_tensor * build_graph(ggml_context * ctx) override {
    +        ggml_tensor * a = ggml_new_tensor(ctx, type, 4, ne.data());
    +        ggml_tensor * out = ggml_sqrt(ctx, a);
    +        return out;
    +    }
    +
    +    void initialize_tensors(ggml_context * ctx) override {
    +        // fill with positive values
    +        for (ggml_tensor * t = ggml_get_first_tensor(ctx); t != NULL; t = ggml_get_next_tensor(ctx, t)) {
    +            init_tensor_uniform(t, 0.0f, 100.0f);
    +        }
    +    }
    +};
    +
     // GGML_OP_CLAMP
     struct test_clamp : public test_case {
         const ggml_type type;
    @@ -2200,6 +2227,7 @@ static bool test_backend(ggml_backend_t backend, test_mode mode, const char * op
         }
     
         test_cases.emplace_back(new test_sqr());
    +    test_cases.emplace_back(new test_sqrt());
         test_cases.emplace_back(new test_clamp());
     
         test_cases.emplace_back(new test_diag_mask_inf(GGML_TYPE_F32, {10, 10,  1,  1}, 5));
    
    From df68d4fa5dc929217d3e64d673e099d7a417b206 Mon Sep 17 00:00:00 2001
    From: Neo Zhang 
    Date: Mon, 17 Jun 2024 11:17:07 +0800
    Subject: [PATCH 086/131] [SYCL] Update README-sycl.md for Chapter "Recommended
     release" and "News" (#7946)
    
    * Update README-sycl.md
    
    * Update README-sycl.md
    
    * Update README-sycl.md
    
    * Update README-sycl.md
    ---
     README-sycl.md | 16 ++++++++++++++++
     1 file changed, 16 insertions(+)
    
    diff --git a/README-sycl.md b/README-sycl.md
    index 93b623daf6a1a..bd1984706225f 100644
    --- a/README-sycl.md
    +++ b/README-sycl.md
    @@ -1,6 +1,7 @@
     # llama.cpp for SYCL
     
     - [Background](#background)
    +- [Recommended Release](#recommended-release)
     - [News](#news)
     - [OS](#os)
     - [Hardware](#hardware)
    @@ -31,8 +32,23 @@ When targeting **Intel CPU**, it is recommended to use llama.cpp for [Intel oneM
     
     It has the similar design of other llama.cpp BLAS-based paths such as *OpenBLAS, cuBLAS, etc..*. In beginning work, the oneAPI's [SYCLomatic](https://github.com/oneapi-src/SYCLomatic) open-source migration tool (Commercial release [Intel® DPC++ Compatibility Tool](https://www.intel.com/content/www/us/en/developer/tools/oneapi/dpc-compatibility-tool.html)) was used for this purpose.
     
    +## Recommended Release
    +
    +The SYCL backend would be broken by some PRs due to no online CI.
    +
    +The following release is verified with good quality:
    +
    +|Commit ID|Tag|Release|Verified  Platform|
    +|-|-|-|-|
    +|fb76ec31a9914b7761c1727303ab30380fd4f05c|b3038 |[llama-b3038-bin-win-sycl-x64.zip](https://github.com/ggerganov/llama.cpp/releases/download/b3038/llama-b3038-bin-win-sycl-x64.zip) |Arc770/Linux/oneAPI 2024.1
    MTL Arc GPU/Windows 11/oneAPI 2024.1| + + ## News +- 2024.5 + - Performance is increased: 34 -> 37 tokens/s of llama-2-7b.Q4_0 on Arc770. + - Arch Linux is verified successfully. + - 2024.4 - Support data types: GGML_TYPE_IQ4_NL, GGML_TYPE_IQ4_XS, GGML_TYPE_IQ3_XXS, GGML_TYPE_IQ3_S, GGML_TYPE_IQ2_XXS, GGML_TYPE_IQ2_XS, GGML_TYPE_IQ2_S, GGML_TYPE_IQ1_S, GGML_TYPE_IQ1_M. From 006167aaf6b6aaa4daa52961035f7460af19f469 Mon Sep 17 00:00:00 2001 From: Brian Date: Mon, 17 Jun 2024 15:25:20 +1000 Subject: [PATCH 087/131] gguf-dump.py: add --markdown dump output (#7853) * gguf-dump.py: add --markdown dump output * gguf-dump.py: Add toc * gguf-dump.py: use standard tensor name lookup. Also add tensor ID field * gguf-dump.py: Add tensor overview count * gguf-dump.py: fix array preview * gguf-dump.py: markdownTableWithAlignmentSupport() added * Add type hints and spacing Co-authored-by: compilade * gguf-dump.py: prettyfy dimention * gguf-dump: right align element count * gguf-dump.py: element count autosizing * Apply suggestions from code review Co-authored-by: compilade --------- Co-authored-by: compilade --- gguf-py/scripts/gguf-dump.py | 264 ++++++++++++++++++++++++++++++++++- 1 file changed, 262 insertions(+), 2 deletions(-) diff --git a/gguf-py/scripts/gguf-dump.py b/gguf-py/scripts/gguf-dump.py index 1a37a7b91409d..92d14d6cd0a69 100755 --- a/gguf-py/scripts/gguf-dump.py +++ b/gguf-py/scripts/gguf-dump.py @@ -14,7 +14,7 @@ if "NO_LOCAL_GGUF" not in os.environ and (Path(__file__).parent.parent.parent / 'gguf-py').exists(): sys.path.insert(0, str(Path(__file__).parent.parent)) -from gguf import GGUFReader, GGUFValueType # noqa: E402 +from gguf import GGUFReader, GGUFValueType, ReaderTensor # noqa: E402 logger = logging.getLogger("gguf-dump") @@ -101,25 +101,285 @@ def dump_metadata_json(reader: GGUFReader, args: argparse.Namespace) -> None: json.dump(result, sys.stdout) +def markdown_table_with_alignment_support(header_map: list[dict[str, str]], data: list[dict[str, Any]]): + # JSON to Markdown table formatting: https://stackoverflow.com/a/72983854/2850957 + + # Alignment Utility Function + def strAlign(padding: int, alignMode: str | None, strVal: str): + if alignMode == 'center': + return strVal.center(padding) + elif alignMode == 'right': + return strVal.rjust(padding - 1) + ' ' + elif alignMode == 'left': + return ' ' + strVal.ljust(padding - 1) + else: # default left + return ' ' + strVal.ljust(padding - 1) + + def dashAlign(padding: int, alignMode: str | None): + if alignMode == 'center': + return ':' + '-' * (padding - 2) + ':' + elif alignMode == 'right': + return '-' * (padding - 1) + ':' + elif alignMode == 'left': + return ':' + '-' * (padding - 1) + else: # default left + return '-' * (padding) + + # Calculate Padding For Each Column Based On Header and Data Length + rowsPadding = {} + for index, columnEntry in enumerate(header_map): + padCount = max([len(str(v)) for d in data for k, v in d.items() if k == columnEntry['key_name']], default=0) + 2 + headerPadCount = len(columnEntry['header_name']) + 2 + rowsPadding[index] = headerPadCount if padCount <= headerPadCount else padCount + + # Render Markdown Header + rows = [] + rows.append('|'.join(strAlign(rowsPadding[index], columnEntry.get('align'), str(columnEntry['header_name'])) for index, columnEntry in enumerate(header_map))) + rows.append('|'.join(dashAlign(rowsPadding[index], columnEntry.get('align')) for index, columnEntry in enumerate(header_map))) + + # Render Tabular Data + for item in data: + rows.append('|'.join(strAlign(rowsPadding[index], columnEntry.get('align'), str(item[columnEntry['key_name']])) for index, columnEntry in enumerate(header_map))) + + # Convert Tabular String Rows Into String + tableString = "" + for row in rows: + tableString += f'|{row}|\n' + + return tableString + + +def element_count_rounded_notation(count: int) -> str: + if count > 1e15 : + # Quadrillion + scaled_amount = count * 1e-15 + scale_suffix = "Q" + elif count > 1e12 : + # Trillions + scaled_amount = count * 1e-12 + scale_suffix = "T" + elif count > 1e9 : + # Billions + scaled_amount = count * 1e-9 + scale_suffix = "B" + elif count > 1e6 : + # Millions + scaled_amount = count * 1e-6 + scale_suffix = "M" + elif count > 1e3 : + # Thousands + scaled_amount = count * 1e-3 + scale_suffix = "K" + else: + # Under Thousands + scaled_amount = count + scale_suffix = "" + return f"{'~' if count > 1e3 else ''}{round(scaled_amount)}{scale_suffix}" + + +def translate_tensor_name(name): + words = name.split(".") + + # Source: https://github.com/ggerganov/ggml/blob/master/docs/gguf.md#standardized-tensor-names + abbreviation_dictionary = { + 'token_embd': 'Token embedding', + 'pos_embd': 'Position embedding', + 'output_norm': 'Output normalization', + 'output': 'Output', + 'attn_norm': 'Attention normalization', + 'attn_norm_2': 'Attention normalization', + 'attn_qkv': 'Attention query-key-value', + 'attn_q': 'Attention query', + 'attn_k': 'Attention key', + 'attn_v': 'Attention value', + 'attn_output': 'Attention output', + 'ffn_norm': 'Feed-forward network normalization', + 'ffn_up': 'Feed-forward network "up"', + 'ffn_gate': 'Feed-forward network "gate"', + 'ffn_down': 'Feed-forward network "down"', + 'ffn_gate_inp': 'Expert-routing layer for the Feed-forward network in Mixture of Expert models', + 'ffn_gate_exp': 'Feed-forward network "gate" layer per expert in Mixture of Expert models', + 'ffn_down_exp': 'Feed-forward network "down" layer per expert in Mixture of Expert models', + 'ffn_up_exp': 'Feed-forward network "up" layer per expert in Mixture of Expert models', + 'ssm_in': 'State space model input projections', + 'ssm_conv1d': 'State space model rolling/shift', + 'ssm_x': 'State space model selective parametrization', + 'ssm_a': 'State space model state compression', + 'ssm_d': 'State space model skip connection', + 'ssm_dt': 'State space model time step', + 'ssm_out': 'State space model output projection', + 'blk': 'Block' + } + + expanded_words = [] + for word in words: + word_norm = word.strip().lower() + if word_norm in abbreviation_dictionary: + expanded_words.append(abbreviation_dictionary[word_norm].title()) + else: + expanded_words.append(word.title()) + + return ' '.join(expanded_words) + + +def dump_markdown_metadata(reader: GGUFReader, args: argparse.Namespace) -> None: + host_endian, file_endian = get_file_host_endian(reader) + markdown_content = "" + markdown_content += f'# {args.model} - GGUF Internal File Dump\n\n' + markdown_content += f'- Endian: {file_endian} endian\n' + markdown_content += '\n' + markdown_content += '## Key Value Metadata Store\n\n' + markdown_content += f'There are {len(reader.fields)} key-value pairs in this file\n' + markdown_content += '\n' + + kv_dump_table: list[dict[str, str | int]] = [] + for n, field in enumerate(reader.fields.values(), 1): + if not field.types: + pretty_type = 'N/A' + elif field.types[0] == GGUFValueType.ARRAY: + nest_count = len(field.types) - 1 + pretty_type = '[' * nest_count + str(field.types[-1].name) + ']' * nest_count + else: + pretty_type = str(field.types[-1].name) + + total_elements = len(field.data) + value = "" + if len(field.types) == 1: + curr_type = field.types[0] + if curr_type == GGUFValueType.STRING: + value = repr(str(bytes(field.parts[-1]), encoding='utf-8')[:60]) + elif curr_type in reader.gguf_scalar_to_np: + value = str(field.parts[-1][0]) + else: + if field.types[0] == GGUFValueType.ARRAY: + curr_type = field.types[1] + if curr_type == GGUFValueType.STRING: + render_element = min(5, total_elements) + for element_pos in range(render_element): + value += repr(str(bytes(field.parts[-1 - element_pos]), encoding='utf-8')[:5]) + (", " if total_elements > 1 else "") + elif curr_type in reader.gguf_scalar_to_np: + render_element = min(7, total_elements) + for element_pos in range(render_element): + value += str(field.parts[-1 - element_pos][0]) + (", " if total_elements > 1 else "") + value = f'[ {value}{" ..." if total_elements > 1 else ""} ]' + kv_dump_table.append({"n":n, "pretty_type":pretty_type, "total_elements":total_elements, "field_name":field.name, "value":value}) + + kv_dump_table_header_map = [ + {'key_name':'n', 'header_name':'POS', 'align':'right'}, + {'key_name':'pretty_type', 'header_name':'TYPE', 'align':'left'}, + {'key_name':'total_elements', 'header_name':'Count', 'align':'right'}, + {'key_name':'field_name', 'header_name':'Key', 'align':'left'}, + {'key_name':'value', 'header_name':'Value', 'align':'left'}, + ] + + markdown_content += markdown_table_with_alignment_support(kv_dump_table_header_map, kv_dump_table) + + markdown_content += "\n" + + if not args.no_tensors: + # Group tensors by their prefix and maintain order + tensor_prefix_order: list[str] = [] + tensor_name_to_key: dict[str, int] = {} + tensor_groups: dict[str, list[ReaderTensor]] = {} + total_elements = sum(tensor.n_elements for tensor in reader.tensors) + + # Parsing Tensors Record + for key, tensor in enumerate(reader.tensors): + tensor_components = tensor.name.split('.') + + # Classify Tensor Group + tensor_group_name = "base" + if tensor_components[0] == 'blk': + tensor_group_name = f"{tensor_components[0]}.{tensor_components[1]}" + + # Check if new Tensor Group + if tensor_group_name not in tensor_groups: + tensor_groups[tensor_group_name] = [] + tensor_prefix_order.append(tensor_group_name) + + # Record Tensor and Tensor Position + tensor_groups[tensor_group_name].append(tensor) + tensor_name_to_key[tensor.name] = key + + # Tensors Mapping Dump + markdown_content += f'## Tensors Overview {element_count_rounded_notation(total_elements)} Elements\n\n' + markdown_content += f'Total number of elements in all tensors: {total_elements} Elements\n' + markdown_content += '\n' + + for group in tensor_prefix_order: + tensors = tensor_groups[group] + group_elements = sum(tensor.n_elements for tensor in tensors) + markdown_content += f"- [{translate_tensor_name(group)} Tensor Group - {element_count_rounded_notation(group_elements)} Elements](#{group.replace('.', '_')})\n" + + markdown_content += "\n" + + for group in tensor_prefix_order: + tensors = tensor_groups[group] + group_elements = sum(tensor.n_elements for tensor in tensors) + group_percentage = group_elements / total_elements * 100 + markdown_content += f"### {translate_tensor_name(group)} Tensor Group : {element_count_rounded_notation(group_elements)} Elements\n\n" + + # Precalculate column sizing for visual consistency + prettify_element_est_count_size: int = 1 + prettify_element_count_size: int = 1 + prettify_dimension_max_widths: dict[int, int] = {} + for tensor in tensors: + prettify_element_est_count_size = max(prettify_element_est_count_size, len(str(element_count_rounded_notation(tensor.n_elements)))) + prettify_element_count_size = max(prettify_element_count_size, len(str(tensor.n_elements))) + for i, dimension_size in enumerate(list(tensor.shape) + [1] * (4 - len(tensor.shape))): + prettify_dimension_max_widths[i] = max(prettify_dimension_max_widths.get(i,1), len(str(dimension_size))) + + # Generate Tensor Layer Table Content + tensor_dump_table: list[dict[str, str | int]] = [] + for tensor in tensors: + human_friendly_name = translate_tensor_name(tensor.name.replace(".weight", ".(W)").replace(".bias", ".(B)")) + pretty_dimension = ' x '.join(f'{str(d):>{prettify_dimension_max_widths[i]}}' for i, d in enumerate(list(tensor.shape) + [1] * (4 - len(tensor.shape)))) + element_count_est = f"({element_count_rounded_notation(tensor.n_elements):>{prettify_element_est_count_size}})" + element_count_string = f"{element_count_est} {tensor.n_elements:>{prettify_element_count_size}}" + type_name_string = f"{tensor.tensor_type.name}" + tensor_dump_table.append({"t_id":tensor_name_to_key[tensor.name], "layer_name":tensor.name, "human_layer_name":human_friendly_name, "element_count":element_count_string, "pretty_dimension":pretty_dimension, "tensor_type":type_name_string}) + + tensor_dump_table_header_map = [ + {'key_name':'t_id', 'header_name':'T_ID', 'align':'right'}, + {'key_name':'layer_name', 'header_name':'Tensor Layer Name', 'align':'left'}, + {'key_name':'human_layer_name', 'header_name':'Human Friendly Tensor Layer Name', 'align':'left'}, + {'key_name':'element_count', 'header_name':'Elements', 'align':'left'}, + {'key_name':'pretty_dimension', 'header_name':'Shape', 'align':'left'}, + {'key_name':'tensor_type', 'header_name':'Type', 'align':'left'}, + ] + + markdown_content += markdown_table_with_alignment_support(tensor_dump_table_header_map, tensor_dump_table) + + markdown_content += "\n" + markdown_content += f"- Total elements in {group}: ({element_count_rounded_notation(group_elements):>4}) {group_elements}\n" + markdown_content += f"- Percentage of total elements: {group_percentage:.2f}%\n" + markdown_content += "\n\n" + + print(markdown_content) # noqa: NP100 + + def main() -> None: parser = argparse.ArgumentParser(description="Dump GGUF file metadata") parser.add_argument("model", type=str, help="GGUF format model filename") parser.add_argument("--no-tensors", action="store_true", help="Don't dump tensor metadata") parser.add_argument("--json", action="store_true", help="Produce JSON output") parser.add_argument("--json-array", action="store_true", help="Include full array values in JSON output (long)") + parser.add_argument("--markdown", action="store_true", help="Produce markdown output") parser.add_argument("--verbose", action="store_true", help="increase output verbosity") args = parser.parse_args(None if len(sys.argv) > 1 else ["--help"]) logging.basicConfig(level=logging.DEBUG if args.verbose else logging.INFO) - if not args.json: + if not args.json and not args.markdown: logger.info(f'* Loading: {args.model}') reader = GGUFReader(args.model, 'r') if args.json: dump_metadata_json(reader, args) + elif args.markdown: + dump_markdown_metadata(reader, args) else: dump_metadata(reader, args) From 21be9cab94e0b5b53cb6edeeebf8c8c799baad03 Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Mon, 17 Jun 2024 11:09:20 +0300 Subject: [PATCH 088/131] rpc : fix load/store misaligned addresses (#7948) --- ggml-rpc.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/ggml-rpc.cpp b/ggml-rpc.cpp index 22d9524b8d764..b01ad267446fb 100644 --- a/ggml-rpc.cpp +++ b/ggml-rpc.cpp @@ -73,9 +73,13 @@ struct rpc_tensor { uint64_t view_offs; uint64_t data; char name[GGML_MAX_NAME]; + + char padding[4]; }; #pragma pack(pop) +static_assert(sizeof(rpc_tensor) % 8 == 0, "rpc_tensor size must be multiple of 8"); + // RPC commands enum rpc_cmd { ALLOC_BUFFER = 0, @@ -599,9 +603,8 @@ static void serialize_graph(const ggml_cgraph * cgraph, std::vector & o int output_size = sizeof(uint32_t) + n_nodes * sizeof(uint64_t) + sizeof(uint32_t) + n_tensors * sizeof(rpc_tensor); output.resize(output_size, 0); memcpy(output.data(), &n_nodes, sizeof(n_nodes)); - uint64_t * out_nodes = (uint64_t *)(output.data() + sizeof(n_nodes)); for (uint32_t i = 0; i < n_nodes; i++) { - out_nodes[i] = reinterpret_cast(cgraph->nodes[i]); + memcpy(output.data() + sizeof(n_nodes) + i * sizeof(uint64_t), &cgraph->nodes[i], sizeof(uint64_t)); } uint32_t * out_ntensors = (uint32_t *)(output.data() + sizeof(n_nodes) + n_nodes * sizeof(uint64_t)); *out_ntensors = n_tensors; @@ -1036,7 +1039,9 @@ bool rpc_server::graph_compute(const std::vector & input, std::vector tensor_map; for (uint32_t i = 0; i < n_nodes; i++) { - graph->nodes[i] = create_node(nodes[i], ctx, tensor_ptrs, tensor_map); + int64_t id; + memcpy(&id, &nodes[i], sizeof(id)); + graph->nodes[i] = create_node(id, ctx, tensor_ptrs, tensor_map); } ggml_status status = ggml_backend_graph_compute(backend, graph); // output serialization format: | status (1 byte) | From 6a2f0b3474d479bda4ac2ee7cfd5dcdcf0be1f79 Mon Sep 17 00:00:00 2001 From: Markus Tavenrath Date: Mon, 17 Jun 2024 16:10:15 +0200 Subject: [PATCH 089/131] Implement non-mapped async IO for CUDA on Windows. (#7896) * Implement non-mapped async IO for CUDA on Windows. On a fast Gen5 NVMe drive this change improves model load time by >3x while it should be the same (or slightly faster) on any other drive. * Free resources except for backend. * Change assertions to exceptions in llama_file, find correct cuda backend to create CUDA resources and respect the use_mmap flag again for CUDA. * Apply suggestions from code review Co-authored-by: slaren * Fix editorconfig and unused variable * Fix issues with Windows build --------- Co-authored-by: slaren --- llama.cpp | 216 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 208 insertions(+), 8 deletions(-) diff --git a/llama.cpp b/llama.cpp index bd4f8ec1865fb..b324807f897b5 100644 --- a/llama.cpp +++ b/llama.cpp @@ -1278,6 +1278,126 @@ struct no_init { }; struct llama_file { + +#if defined(_WIN32) + // use FILE * so we don't have to re-open the file to mmap + FILE * fp; + HANDLE fp_win32; + size_t size; + +private: + std::string GetErrorMessageWin32(DWORD error_code) const { + std::string ret; + LPSTR lpMsgBuf = NULL; + DWORD bufLen = FormatMessageA(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, + NULL, error_code, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPSTR)&lpMsgBuf, 0, NULL); + if (!bufLen) { + ret = format("Win32 error code: %s", error_code); + } else { + ret = lpMsgBuf; + LocalFree(lpMsgBuf); + } + + return ret; + } + +public: + + llama_file(const char * fname, const char * mode) { + fp = ggml_fopen(fname, mode); + if (fp == NULL) { + throw std::runtime_error(format("failed to open %s: %s", fname, strerror(errno))); + } + fp_win32 = (HANDLE) _get_osfhandle(_fileno(fp)); + seek(0, SEEK_END); + size = tell(); + seek(0, SEEK_SET); + } + + size_t tell() const { + // SetFilePointerEx returns the current position when seeking relative 0 bytes + LARGE_INTEGER li; + li.QuadPart = 0; + BOOL ret = SetFilePointerEx(fp_win32, li, &li, FILE_CURRENT); + if (!ret) { + throw std::runtime_error(format("read error: %s", GetErrorMessageWin32(GetLastError()).c_str())); + } + + return li.QuadPart; + } + + void seek(size_t offset, int whence) const { + // no need to convert SEEK_* to FILE_*. The enums are the same. + // Still, keep static asserts to avoid failures in the future. + static_assert(SEEK_SET == FILE_BEGIN, "SEEK_SET != FILE_BEGIN"); + static_assert(SEEK_CUR == FILE_CURRENT, "SEEK_CUR != FILE_CURRENT"); + static_assert(SEEK_END == FILE_END, "SEEK_END != FILE_END"); + + LARGE_INTEGER li; + li.QuadPart = offset; + BOOL ret = SetFilePointerEx(fp_win32, li, NULL, whence); + if (!ret) { + throw std::runtime_error(format("read error: %s", GetErrorMessageWin32(GetLastError()).c_str())); + } + } + + void read_raw(void * ptr, size_t len) const { + // On Win32 ReadFile is significant faster than fread which is again significant faster than std::fstream. Thus + // use the Win32 API to do file io instead of the C/C++ library functions. + + // There are conditions under which ReadFile cannot read chunks >64MB. + // Thus split the operation into smaller chunks if len exceeds this limit. + size_t bytes_read = 0; + while (bytes_read < len) { + size_t chunk_size = std::min(len - bytes_read, 64*1024*1024); + DWORD chunk_read = 0; + BOOL result = ReadFile(fp_win32, reinterpret_cast(ptr) + bytes_read, chunk_size, &chunk_read, NULL); + if (!result) { + throw std::runtime_error(format("read error: %s", GetErrorMessageWin32(GetLastError()).c_str())); + } + if (chunk_read < chunk_size || chunk_read == 0) { + throw std::runtime_error("unexpectedly reached end of file"); + } + + bytes_read += chunk_read; + } ; + } + + uint32_t read_u32() const { + uint32_t val; + read_raw(&val, sizeof(val)); + return val; + } + + void write_raw(const void * ptr, size_t len) const { + // There are conditions under which WriteFile cannot write chunks >64MB. + // Thus split the operation into smaller chunks if len exceeds this limit. + size_t bytes_written = 0; + while (bytes_written < len) { + size_t chunk_size = std::min(len - bytes_written, 64*1024*1024); + DWORD chunk_written = 0; + BOOL result = WriteFile(fp_win32, reinterpret_cast(ptr) + bytes_written, chunk_size, &chunk_written, NULL); + if (!result) { + throw std::runtime_error(format("write error: %s", GetErrorMessageWin32(GetLastError()).c_str())); + } + if (chunk_written < chunk_size || chunk_written == 0) { + throw std::runtime_error("unexpectedly failed to write bytes"); + } + + bytes_written += chunk_written; + } + } + + void write_u32(std::uint32_t val) const { + write_raw(&val, sizeof(val)); + } + + ~llama_file() { + if (fp) { + std::fclose(fp); + } + } +#else // use FILE * so we don't have to re-open the file to mmap FILE * fp; size_t size; @@ -1298,7 +1418,10 @@ struct llama_file { #else long ret = std::ftell(fp); #endif - GGML_ASSERT(ret != -1); // this really shouldn't fail + if (ret == -1) { + throw std::runtime_error(format("ftell error: %s", strerror(errno))); + } + return (size_t) ret; } @@ -1308,7 +1431,9 @@ struct llama_file { #else int ret = std::fseek(fp, (long) offset, whence); #endif - GGML_ASSERT(ret == 0); // same + if (ret != 0) { + throw std::runtime_error(format("seek error: %s", strerror(errno))); + } } void read_raw(void * ptr, size_t len) const { @@ -1351,6 +1476,7 @@ struct llama_file { std::fclose(fp); } } +#endif }; using llama_files = std::vector>; @@ -3721,6 +3847,44 @@ struct llama_model_loader { std::vector> read_buf; std::vector>> validation_result; +#if defined(GGML_USE_CUDA) + // 4 staging buffers for async uploads, each sized 1MB seems to be a good default for single NVMe drives. + // NVMe raid configurations might require more / larger buffers. + constexpr size_t num_buffers = 4; + constexpr size_t buffer_size = 1 * 1024 * 1024; // 1MB + + std::vector host_buffers; + std::vector host_ptrs; + std::vector events; + size_t buffer_idx = 0; // buffer to use for async loads + + ggml_backend_t cuda_backend = nullptr; + if (!use_mmap && !check_tensors) { + // When not using mmaped io use async uploads from pinned memory to GPU memory. + // First determine if the CUDA backend is active, and if so, determine the device ID. + ggml_backend_buffer_t buf = bufs_mmap.count(0) ? bufs_mmap.at(0) : nullptr; + if (buf) { + ggml_backend_buffer_type_t buffer_type = ggml_backend_buffer_get_type(buf); + for (int i = 0; i < ggml_backend_cuda_get_device_count(); ++i) { + auto * cuda_buffer_type = ggml_backend_cuda_buffer_type(i); + if (buffer_type == cuda_buffer_type) { + cuda_backend = ggml_backend_cuda_init(i); + break; + } + } + } + + // If the cuda backend is active create pinned memory buffers and events for synchronisation. + if (cuda_backend) { + for (size_t idx = 0; idx < num_buffers; ++idx) { + host_buffers.emplace_back(ggml_backend_buft_alloc_buffer(llama_default_buffer_type_cpu(true), buffer_size)); + host_ptrs.emplace_back(ggml_backend_buffer_get_base(host_buffers[idx])); + events.emplace_back(ggml_backend_event_new(cuda_backend)); + } + } + } +#endif + for (struct ggml_tensor * cur = ggml_get_first_tensor(ctx); cur != NULL; cur = ggml_get_next_tensor(ctx, cur)) { const auto * weight = get_weight(ggml_get_name(cur)); if (weight == nullptr) { @@ -3776,12 +3940,36 @@ struct llama_model_loader { })); } } else { - read_buf.resize(n_size); - file->seek(weight->offs, SEEK_SET); - file->read_raw(read_buf.data(), n_size); - ggml_backend_tensor_set(cur, read_buf.data(), 0, n_size); - if (check_tensors && !ggml_validate_row_data(cur->type, read_buf.data(), n_size)) { - throw std::runtime_error(format("tensor '%s' has invalid data", ggml_get_name(cur))); +#if defined(GGML_USE_CUDA) + // If cuda_backend is valid load the tensor in chunks to pinned memory and upload the buffers asynchronously to the GPU. + if (cuda_backend) { + file->seek(weight->offs, SEEK_SET); + + size_t bytes_read = 0; + + while (bytes_read < n_size) { + size_t read_iteration = std::min(buffer_size, n_size - bytes_read); + + ggml_backend_event_synchronize(events[buffer_idx]); + file->read_raw(host_ptrs[buffer_idx], read_iteration); + ggml_backend_tensor_set_async(cuda_backend, cur, host_ptrs[buffer_idx], bytes_read, read_iteration); + ggml_backend_event_record(events[buffer_idx]); + + bytes_read += read_iteration; + ++buffer_idx; + buffer_idx %= num_buffers; + } + } + else +#endif + { + read_buf.resize(n_size); + file->seek(weight->offs, SEEK_SET); + file->read_raw(read_buf.data(), n_size); + ggml_backend_tensor_set(cur, read_buf.data(), 0, n_size); + if (check_tensors && !ggml_validate_row_data(cur->type, read_buf.data(), n_size)) { + throw std::runtime_error(format("tensor '%s' has invalid data", ggml_get_name(cur))); + } } } } @@ -3789,6 +3977,18 @@ struct llama_model_loader { size_done += n_size; } +#if defined(GGML_USE_CUDA) + // free temporary resources used for async cuda uploads + if (cuda_backend) { + for (size_t idx = 0; idx < num_buffers;++idx) { + ggml_backend_event_synchronize(events[idx]); + ggml_backend_event_free(events[idx]); + ggml_backend_buffer_free(host_buffers[idx]); + } + ggml_backend_free(cuda_backend); + } +#endif + // check validation results bool validation_failed = false; for (auto & future : validation_result) { From c637fcd34d135a9ff4f97d3a53ad03a910a4a31f Mon Sep 17 00:00:00 2001 From: Frank Mai Date: Mon, 17 Jun 2024 22:11:08 +0800 Subject: [PATCH 090/131] fix: divide 0 exception in mamba (#7932) Signed-off-by: thxCode --- llama.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/llama.cpp b/llama.cpp index b324807f897b5..dd7020dc0eeab 100644 --- a/llama.cpp +++ b/llama.cpp @@ -5383,7 +5383,7 @@ static bool llm_load_tensors( // create tensors for the weights { const int64_t n_embd = hparams.n_embd; - const int64_t n_embd_head = n_embd / hparams.n_head; + const int64_t n_embd_head = (hparams.n_head == 0) ? 0 : n_embd / hparams.n_head; const int64_t n_embd_k_gqa = hparams.n_embd_k_gqa(); const int64_t n_embd_v_gqa = hparams.n_embd_v_gqa(); const int64_t n_embd_gqa = n_embd_v_gqa; From 99052cd227c7182fcf53343d2e7d33bfa180a9cf Mon Sep 17 00:00:00 2001 From: slaren Date: Mon, 17 Jun 2024 16:51:42 +0200 Subject: [PATCH 091/131] sched : offload_op also requires supports_op (#7977) --- ggml-backend.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ggml-backend.c b/ggml-backend.c index 2bec7bea38a85..26dce7f724213 100644 --- a/ggml-backend.c +++ b/ggml-backend.c @@ -1172,7 +1172,7 @@ static int ggml_backend_sched_backend_id_from_cur(ggml_backend_sched_t sched, st // check if a backend with higher prio wants to offload the op if (src_backend_id == sched->n_backends - 1) { for (int b = 0; b < src_backend_id; b++) { - if (ggml_backend_offload_op(sched->backends[b], tensor)) { + if (ggml_backend_supports_op(sched->backends[b], tensor) && ggml_backend_offload_op(sched->backends[b], tensor)) { SET_CAUSE(tensor, "1.off"); return b; } From b473e95084c286780165568cf0f385f21141d68d Mon Sep 17 00:00:00 2001 From: Bryan Honof Date: Mon, 17 Jun 2024 17:37:55 +0200 Subject: [PATCH 092/131] Add Nix and Flox install instructions (#7899) --- README.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/README.md b/README.md index fd75a64ba1a0c..54859946da565 100644 --- a/README.md +++ b/README.md @@ -387,6 +387,30 @@ brew install llama.cpp ``` The formula is automatically updated with new `llama.cpp` releases. More info: https://github.com/ggerganov/llama.cpp/discussions/7668 +### Nix + +On Mac and Linux, the Nix package manager can be used via +``` +nix profile install nixpkgs#llama-cpp +``` +For flake enabled installs. + +Or +``` +nix-env --file '' --install --attr llama-cpp +``` +For non-flake enabled installs. + +This expression is automatically updated within the [nixpkgs repo](https://github.com/NixOS/nixpkgs/blob/nixos-24.05/pkgs/by-name/ll/llama-cpp/package.nix#L164). + +#### Flox + +On Mac and Linux, Flox can be used to install llama.cpp within a Flox environment via +``` +flox install llama-cpp +``` +Flox follows the nixpkgs build of llama.cpp. + ### Metal Build On MacOS, Metal is enabled by default. Using Metal makes the computation run on the GPU. From 7c26775adb579e92b59c82e8084c07a1d0f75e9c Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Mon, 17 Jun 2024 19:40:01 +0300 Subject: [PATCH 093/131] llama : disable FA if KV head size do not match (#7982) --- llama.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/llama.cpp b/llama.cpp index dd7020dc0eeab..6194875155851 100644 --- a/llama.cpp +++ b/llama.cpp @@ -16260,6 +16260,11 @@ struct llama_context * llama_new_context_with_model( params.flash_attn = false; } + if (params.flash_attn && model->hparams.n_embd_head_k != model->hparams.n_embd_head_v) { + LLAMA_LOG_WARN("%s: flash_attn requires n_embd_head_k == n_embd_head_v - forcing off\n", __func__); + params.flash_attn = false; + } + if (params.type_v != GGML_TYPE_F16 && !params.flash_attn) { LLAMA_LOG_ERROR("%s: V cache quantization requires flash_attn\n", __func__); return nullptr; From 5b6da187508f49a9fa9d95fa22ae804a0780d256 Mon Sep 17 00:00:00 2001 From: Srihari-mcw <96763064+Srihari-mcw@users.noreply.github.com> Date: Mon, 17 Jun 2024 23:53:17 +0530 Subject: [PATCH 094/131] Make updates to type cast based on compiler instead of OS (#7851) --- ggml-impl.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ggml-impl.h b/ggml-impl.h index 5e77471f332f4..1d23361906c34 100644 --- a/ggml-impl.h +++ b/ggml-impl.h @@ -17,7 +17,7 @@ #define MIN(a, b) ((a) < (b) ? (a) : (b)) #define MAX(a, b) ((a) > (b) ? (a) : (b)) -#if defined(_WIN32) +#if defined(_MSC_VER) #define m512bh(p) p #define m512i(p) p From a94e6ff8774b7c9f950d9545baf0ce35e8d1ed2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C8=98tefan-Gabriel=20Muscalu?= Date: Mon, 17 Jun 2024 22:08:46 +0300 Subject: [PATCH 095/131] update: support Qwen2-57B-A14B (#7835) * update: convert-hf-to-gguf.py to support Qwen2-57B-A14B * fix: QWEN2MOE support for expert_feed_forward_length previously, expert ff was taken from n_ff (intermediate size) but it is now properly taken from LLM_KV_EXPERT_FEED_FORWARD_LENGTH n_ff_exp and n_ff_shared_exp are now properly calculated * update: convert-hf-to-gguf.py cleanup for Qwen2MoeForCausalLM * fix: QWEN2MOE support for expert_feed_forward_length previously, expert ff was taken from n_ff (intermediate size) but it is now properly taken from LLM_KV_EXPERT_FEED_FORWARD_LENGTH n_ff_exp and n_ff_shexp are now properly calculated --- convert-hf-to-gguf.py | 6 +++++ gguf-py/gguf/constants.py | 31 +++++++++++----------- gguf-py/gguf/gguf_writer.py | 3 +++ llama.cpp | 51 +++++++++++++++++++++++-------------- 4 files changed, 57 insertions(+), 34 deletions(-) diff --git a/convert-hf-to-gguf.py b/convert-hf-to-gguf.py index 55ce502dba1c7..a6751cc80e682 100755 --- a/convert-hf-to-gguf.py +++ b/convert-hf-to-gguf.py @@ -1632,6 +1632,12 @@ def set_gguf_parameters(self): super().set_gguf_parameters() if (n_experts := self.hparams.get("num_experts")) is not None: self.gguf_writer.add_expert_count(n_experts) + if (moe_intermediate_size := self.hparams.get("moe_intermediate_size")) is not None: + self.gguf_writer.add_expert_feed_forward_length(moe_intermediate_size) + logger.info(f"gguf: expert feed forward length = {moe_intermediate_size}") + if (shared_expert_intermediate_size := self.hparams.get('shared_expert_intermediate_size')) is not None: + self.gguf_writer.add_expert_shared_feed_forward_length(shared_expert_intermediate_size) + logger.info(f"gguf: expert shared feed forward length = {shared_expert_intermediate_size}") _experts: list[dict[str, Tensor]] | None = None diff --git a/gguf-py/gguf/constants.py b/gguf-py/gguf/constants.py index 8908585ccf957..fb20cfabbcab5 100644 --- a/gguf-py/gguf/constants.py +++ b/gguf-py/gguf/constants.py @@ -33,21 +33,22 @@ class General: FILE_TYPE = "general.file_type" class LLM: - VOCAB_SIZE = "{arch}.vocab_size" - CONTEXT_LENGTH = "{arch}.context_length" - EMBEDDING_LENGTH = "{arch}.embedding_length" - BLOCK_COUNT = "{arch}.block_count" - LEADING_DENSE_BLOCK_COUNT = "{arch}.leading_dense_block_count" - FEED_FORWARD_LENGTH = "{arch}.feed_forward_length" - EXPERT_FEED_FORWARD_LENGTH = "{arch}.expert_feed_forward_length" - USE_PARALLEL_RESIDUAL = "{arch}.use_parallel_residual" - TENSOR_DATA_LAYOUT = "{arch}.tensor_data_layout" - EXPERT_COUNT = "{arch}.expert_count" - EXPERT_USED_COUNT = "{arch}.expert_used_count" - EXPERT_SHARED_COUNT = "{arch}.expert_shared_count" - EXPERT_WEIGHTS_SCALE = "{arch}.expert_weights_scale" - POOLING_TYPE = "{arch}.pooling_type" - LOGIT_SCALE = "{arch}.logit_scale" + VOCAB_SIZE = "{arch}.vocab_size" + CONTEXT_LENGTH = "{arch}.context_length" + EMBEDDING_LENGTH = "{arch}.embedding_length" + BLOCK_COUNT = "{arch}.block_count" + LEADING_DENSE_BLOCK_COUNT = "{arch}.leading_dense_block_count" + FEED_FORWARD_LENGTH = "{arch}.feed_forward_length" + EXPERT_FEED_FORWARD_LENGTH = "{arch}.expert_feed_forward_length" + EXPERT_SHARED_FEED_FORWARD_LENGTH = "{arch}.expert_shared_feed_forward_length" + USE_PARALLEL_RESIDUAL = "{arch}.use_parallel_residual" + TENSOR_DATA_LAYOUT = "{arch}.tensor_data_layout" + EXPERT_COUNT = "{arch}.expert_count" + EXPERT_USED_COUNT = "{arch}.expert_used_count" + EXPERT_SHARED_COUNT = "{arch}.expert_shared_count" + EXPERT_WEIGHTS_SCALE = "{arch}.expert_weights_scale" + POOLING_TYPE = "{arch}.pooling_type" + LOGIT_SCALE = "{arch}.logit_scale" class Attention: HEAD_COUNT = "{arch}.attention.head_count" diff --git a/gguf-py/gguf/gguf_writer.py b/gguf-py/gguf/gguf_writer.py index ed56abfb3c2ea..a697f657b9ac8 100644 --- a/gguf-py/gguf/gguf_writer.py +++ b/gguf-py/gguf/gguf_writer.py @@ -394,6 +394,9 @@ def add_feed_forward_length(self, length: int) -> None: def add_expert_feed_forward_length(self, length: int) -> None: self.add_uint32(Keys.LLM.EXPERT_FEED_FORWARD_LENGTH.format(arch=self.arch), length) + def add_expert_shared_feed_forward_length(self, length: int) -> None: + self.add_uint32(Keys.LLM.EXPERT_SHARED_FEED_FORWARD_LENGTH.format(arch=self.arch), length) + def add_parallel_residual(self, use: bool) -> None: self.add_bool(Keys.LLM.USE_PARALLEL_RESIDUAL.format(arch=self.arch), use) diff --git a/llama.cpp b/llama.cpp index 6194875155851..e06c851ad5b6c 100644 --- a/llama.cpp +++ b/llama.cpp @@ -286,6 +286,7 @@ enum llm_kv { LLM_KV_LEADING_DENSE_BLOCK_COUNT, LLM_KV_FEED_FORWARD_LENGTH, LLM_KV_EXPERT_FEED_FORWARD_LENGTH, + LLM_KV_EXPERT_SHARED_FEED_FORWARD_LENGTH, LLM_KV_USE_PARALLEL_RESIDUAL, LLM_KV_TENSOR_DATA_LAYOUT, LLM_KV_EXPERT_COUNT, @@ -364,21 +365,22 @@ static const std::map LLM_KV_NAMES = { { LLM_KV_GENERAL_SOURCE_URL, "general.source.url" }, { LLM_KV_GENERAL_SOURCE_HF_REPO, "general.source.huggingface.repository" }, - { LLM_KV_VOCAB_SIZE, "%s.vocab_size" }, - { LLM_KV_CONTEXT_LENGTH, "%s.context_length" }, - { LLM_KV_EMBEDDING_LENGTH, "%s.embedding_length" }, - { LLM_KV_BLOCK_COUNT, "%s.block_count" }, - { LLM_KV_LEADING_DENSE_BLOCK_COUNT, "%s.leading_dense_block_count" }, - { LLM_KV_FEED_FORWARD_LENGTH, "%s.feed_forward_length" }, - { LLM_KV_EXPERT_FEED_FORWARD_LENGTH, "%s.expert_feed_forward_length" }, - { LLM_KV_USE_PARALLEL_RESIDUAL, "%s.use_parallel_residual" }, - { LLM_KV_TENSOR_DATA_LAYOUT, "%s.tensor_data_layout" }, - { LLM_KV_EXPERT_COUNT, "%s.expert_count" }, - { LLM_KV_EXPERT_USED_COUNT, "%s.expert_used_count" }, - { LLM_KV_EXPERT_SHARED_COUNT, "%s.expert_shared_count" }, - { LLM_KV_EXPERT_WEIGHTS_SCALE, "%s.expert_weights_scale" }, - { LLM_KV_POOLING_TYPE , "%s.pooling_type" }, - { LLM_KV_LOGIT_SCALE, "%s.logit_scale" }, + { LLM_KV_VOCAB_SIZE, "%s.vocab_size" }, + { LLM_KV_CONTEXT_LENGTH, "%s.context_length" }, + { LLM_KV_EMBEDDING_LENGTH, "%s.embedding_length" }, + { LLM_KV_BLOCK_COUNT, "%s.block_count" }, + { LLM_KV_LEADING_DENSE_BLOCK_COUNT, "%s.leading_dense_block_count" }, + { LLM_KV_FEED_FORWARD_LENGTH, "%s.feed_forward_length" }, + { LLM_KV_EXPERT_FEED_FORWARD_LENGTH, "%s.expert_feed_forward_length" }, + { LLM_KV_EXPERT_SHARED_FEED_FORWARD_LENGTH, "%s.expert_shared_feed_forward_length" }, + { LLM_KV_USE_PARALLEL_RESIDUAL, "%s.use_parallel_residual" }, + { LLM_KV_TENSOR_DATA_LAYOUT, "%s.tensor_data_layout" }, + { LLM_KV_EXPERT_COUNT, "%s.expert_count" }, + { LLM_KV_EXPERT_USED_COUNT, "%s.expert_used_count" }, + { LLM_KV_EXPERT_SHARED_COUNT, "%s.expert_shared_count" }, + { LLM_KV_EXPERT_WEIGHTS_SCALE, "%s.expert_weights_scale" }, + { LLM_KV_POOLING_TYPE , "%s.pooling_type" }, + { LLM_KV_LOGIT_SCALE, "%s.logit_scale" }, { LLM_KV_ATTENTION_HEAD_COUNT, "%s.attention.head_count" }, { LLM_KV_ATTENTION_HEAD_COUNT_KV, "%s.attention.head_count_kv" }, @@ -1970,6 +1972,7 @@ struct llama_hparams { uint32_t n_lora_q = 0; uint32_t n_lora_kv = 0; uint32_t n_ff_exp = 0; + uint32_t n_ff_shexp = 0; uint32_t n_expert_shared = 0; float expert_weights_scale = 0.0; @@ -2018,6 +2021,7 @@ struct llama_hparams { if (this->n_lora_q != other.n_lora_q) return true; if (this->n_lora_kv != other.n_lora_kv) return true; if (this->n_ff_exp != other.n_ff_exp) return true; + if (this->n_ff_shexp != other.n_ff_shexp) return true; if (this->n_expert_shared != other.n_expert_shared) return true; if (this->rope_finetuned != other.rope_finetuned) return true; @@ -4455,6 +4459,9 @@ static void llm_load_hparams( } break; case LLM_ARCH_QWEN2MOE: { + ml.get_key(LLM_KV_EXPERT_FEED_FORWARD_LENGTH, hparams.n_ff_exp, false); + ml.get_key(LLM_KV_EXPERT_SHARED_FEED_FORWARD_LENGTH, hparams.n_ff_shexp, false); + ml.get_key(LLM_KV_ATTENTION_LAYERNORM_RMS_EPS, hparams.f_norm_rms_eps); switch (hparams.n_layer) { case 24: model.type = e_model::MODEL_A2_7B; break; @@ -5240,6 +5247,11 @@ static void llm_load_print_meta(llama_model_loader & ml, llama_model & model) { LLAMA_LOG_INFO("%s: expert_weights_scale = %.1f\n", __func__, hparams.expert_weights_scale); LLAMA_LOG_INFO("%s: rope_yarn_log_mul = %.4f\n", __func__, hparams.rope_yarn_log_mul); } + + if (model.arch == LLM_ARCH_QWEN2MOE) { + LLAMA_LOG_INFO("%s: n_ff_exp = %d\n", __func__, hparams.n_ff_exp); + LLAMA_LOG_INFO("%s: n_ff_shexp = %d\n", __func__, hparams.n_ff_shexp); + } } // Returns false if cancelled by progress_callback @@ -6026,16 +6038,17 @@ static bool llm_load_tensors( GGML_ASSERT(hparams.n_expert_used > 0); // MoE branch - auto n_ff_exp = n_ff / hparams.n_expert_used; + auto n_ff_exp = hparams.n_ff_exp ? hparams.n_ff_exp : n_ff / hparams.n_expert_used; layer.ffn_gate_exps = ml.create_tensor(ctx_split, tn(LLM_TENSOR_FFN_GATE_EXPS, "weight", i), { n_embd, n_ff_exp, n_expert}); layer.ffn_down_exps = ml.create_tensor(ctx_split, tn(LLM_TENSOR_FFN_DOWN_EXPS, "weight", i), {n_ff_exp, n_embd, n_expert}); layer.ffn_up_exps = ml.create_tensor(ctx_split, tn(LLM_TENSOR_FFN_UP_EXPS, "weight", i), { n_embd, n_ff_exp, n_expert}); // Shared expert branch + auto n_ff_shexp = hparams.n_ff_shexp ? hparams.n_ff_shexp : n_ff; layer.ffn_gate_inp_shexp = ml.create_tensor(ctx_layer, tn(LLM_TENSOR_FFN_GATE_INP_SHEXP, "weight", i), {n_embd}); - layer.ffn_gate_shexp = ml.create_tensor(ctx_split, tn(LLM_TENSOR_FFN_GATE_SHEXP, "weight", i), {n_embd, n_ff}); - layer.ffn_down_shexp = ml.create_tensor(ctx_split, tn(LLM_TENSOR_FFN_DOWN_SHEXP, "weight", i), { n_ff, n_embd}); - layer.ffn_up_shexp = ml.create_tensor(ctx_split, tn(LLM_TENSOR_FFN_UP_SHEXP, "weight", i), {n_embd, n_ff}); + layer.ffn_gate_shexp = ml.create_tensor(ctx_split, tn(LLM_TENSOR_FFN_GATE_SHEXP, "weight", i), {n_embd, n_ff_shexp}); + layer.ffn_down_shexp = ml.create_tensor(ctx_split, tn(LLM_TENSOR_FFN_DOWN_SHEXP, "weight", i), {n_ff_shexp, n_embd}); + layer.ffn_up_shexp = ml.create_tensor(ctx_split, tn(LLM_TENSOR_FFN_UP_SHEXP, "weight", i), {n_embd, n_ff_shexp}); } } break; case LLM_ARCH_PHI2: From e6ecc2be470e3c5c6c5c9d8b90aa83a1f7725084 Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Tue, 18 Jun 2024 09:37:20 +0300 Subject: [PATCH 096/131] whisper : use ggml_backend_sched (whisper/2239) * whisper : use ggml_backend_sched (wip) * use sched in whisper_allocr * whisper : single backend in whisper_context * whisper : remove whisper_state->backends_used * whisper : remove whisper_context->backend * whisper : reset scheduler after init * whisper : fix external encoder (e.g. CoreML) * whisper : cleanup * whisper : handle null GPU buffer types + fix sycl --------- Co-authored-by: slaren --- ggml-backend.c | 15 +++++++++++++-- ggml-backend.h | 3 +++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/ggml-backend.c b/ggml-backend.c index 26dce7f724213..13c71c310c446 100644 --- a/ggml-backend.c +++ b/ggml-backend.c @@ -1706,14 +1706,16 @@ static void ggml_backend_sched_split_graph(ggml_backend_sched_t sched, struct gg static bool ggml_backend_sched_alloc_splits(ggml_backend_sched_t sched) { bool backend_ids_changed = false; for (int i = 0; i < sched->graph->n_nodes; i++) { - if (sched->node_backend_ids[i] != sched->prev_node_backend_ids[i]) { + if (sched->node_backend_ids[i] != sched->prev_node_backend_ids[i] && + sched->bufts[sched->node_backend_ids[i]] != sched->bufts[sched->prev_node_backend_ids[i]]) { backend_ids_changed = true; break; } } if (!backend_ids_changed) { for (int i = 0; i < sched->graph->n_leafs; i++) { - if (sched->leaf_backend_ids[i] != sched->prev_leaf_backend_ids[i]) { + if (sched->leaf_backend_ids[i] != sched->prev_leaf_backend_ids[i] && + sched->bufts[sched->leaf_backend_ids[i]] != sched->bufts[sched->prev_leaf_backend_ids[i]]) { backend_ids_changed = true; break; } @@ -1977,6 +1979,15 @@ int ggml_backend_sched_get_n_copies(ggml_backend_sched_t sched) { return sched->n_copies; } +int ggml_backend_sched_get_n_backends(ggml_backend_sched_t sched) { + return sched->n_backends; +} + +ggml_backend_t ggml_backend_sched_get_backend(ggml_backend_sched_t sched, int i) { + GGML_ASSERT(i >= 0 && i < sched->n_backends); + return sched->backends[i]; +} + size_t ggml_backend_sched_get_buffer_size(ggml_backend_sched_t sched, ggml_backend_t backend) { int backend_index = ggml_backend_sched_backend_id(sched, backend); GGML_ASSERT(backend_index >= 0 && backend_index < sched->n_backends); diff --git a/ggml-backend.h b/ggml-backend.h index 47fd814751795..4a38eeb5c23bd 100644 --- a/ggml-backend.h +++ b/ggml-backend.h @@ -182,6 +182,9 @@ extern "C" { // Initialize backend buffers from a measure graph GGML_API bool ggml_backend_sched_reserve(ggml_backend_sched_t sched, struct ggml_cgraph * measure_graph); + GGML_API int ggml_backend_sched_get_n_backends(ggml_backend_sched_t sched); + GGML_API ggml_backend_t ggml_backend_sched_get_backend(ggml_backend_sched_t sched, int i); + // Get the number of splits of the last graph GGML_API int ggml_backend_sched_get_n_splits(ggml_backend_sched_t sched); GGML_API int ggml_backend_sched_get_n_copies(ggml_backend_sched_t sched); From 5326bcceeb7dd34f16d0fe61b134d1e074a8e65d Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Tue, 18 Jun 2024 09:50:45 +0300 Subject: [PATCH 097/131] ggml : sync --- scripts/sync-ggml.last | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/sync-ggml.last b/scripts/sync-ggml.last index 5042f82ae477f..b6c57ec5e4f14 100644 --- a/scripts/sync-ggml.last +++ b/scripts/sync-ggml.last @@ -1 +1 @@ -2aae01fd9b8f9399f343cf18f46f38996ef52e2c +5653a195935ea3ac54652644c9daf154dbc1571b From 1193778105c9a81bd38f72c61aaafbaf85dc9c04 Mon Sep 17 00:00:00 2001 From: Abheek Gulati Date: Mon, 17 Jun 2024 23:57:41 -0700 Subject: [PATCH 098/131] readme : update UI list (#7943) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 54859946da565..40793c8eab880 100644 --- a/README.md +++ b/README.md @@ -209,6 +209,7 @@ Unless otherwise noted these projects are open-source with permissive licensing: - [eva](https://github.com/ylsdamxssjxxdd/eva) (MIT) - [AI Sublime Text plugin](https://github.com/yaroslavyaroslav/OpenAI-sublime-text) (MIT) - [AIKit](https://github.com/sozercan/aikit) (MIT) +- [LARS - The LLM & Advanced Referencing Solution](https://github.com/abgulati/LARS) (AGPL) *(to have a project listed here, it should clearly state that it depends on `llama.cpp`)* From b96f9afb0d58b003ac8d1d0c94cd99393a3bc437 Mon Sep 17 00:00:00 2001 From: Frank Mai Date: Tue, 18 Jun 2024 15:11:40 +0800 Subject: [PATCH 099/131] chore: clean useless beam search param (#7985) Signed-off-by: thxCode --- common/common.h | 1 - 1 file changed, 1 deletion(-) diff --git a/common/common.h b/common/common.h index 58ed72f433bdf..9a1dc4a2fe4c1 100644 --- a/common/common.h +++ b/common/common.h @@ -73,7 +73,6 @@ struct gpt_params { int32_t n_gpu_layers_draft = -1; // number of layers to store in VRAM for the draft model (-1 - use default) int32_t main_gpu = 0; // the GPU that is used for scratch and small tensors float tensor_split[128] = {0}; // how split tensors should be distributed across GPUs - int32_t n_beams = 0; // if non-zero then use beam search of given width. int32_t grp_attn_n = 1; // group-attention factor int32_t grp_attn_w = 512; // group-attention width int32_t n_print = -1; // print token count every n tokens (-1 = disabled) From 61665277afde2add00c0d387acb94ed5feb95917 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Tue, 18 Jun 2024 14:00:14 +0200 Subject: [PATCH 100/131] Allow compiling with CUDA without CUDA runtime installed (#7989) On hosts which are not prepared/dedicated to execute code using CUDA it is still possible to compile llama.cpp with CUDA support by just installing the development packages. Missing are the runtime libraries like /usr/lib64/libcuda.so* and currently the link step will fail. The development environment is prepared for such situations. There are stub libraries for all the CUDA libraries available in the $(CUDA_PATH)/lib64/stubs directory. Adding this directory to the end of the search path will not change anything for environments which currently work fine but will enable compiling llama.cpp also in case the runtime code is not available. --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index f94ee393377b7..dddf647cd551d 100644 --- a/Makefile +++ b/Makefile @@ -507,7 +507,7 @@ ifdef LLAMA_CUDA CUDA_PATH ?= /usr/local/cuda endif MK_CPPFLAGS += -DGGML_USE_CUDA -I$(CUDA_PATH)/include -I$(CUDA_PATH)/targets/$(UNAME_M)-linux/include -DGGML_CUDA_USE_GRAPHS - MK_LDFLAGS += -lcuda -lcublas -lculibos -lcudart -lcublasLt -lpthread -ldl -lrt -L$(CUDA_PATH)/lib64 -L/usr/lib64 -L$(CUDA_PATH)/targets/$(UNAME_M)-linux/lib -L/usr/lib/wsl/lib + MK_LDFLAGS += -lcuda -lcublas -lculibos -lcudart -lcublasLt -lpthread -ldl -lrt -L$(CUDA_PATH)/lib64 -L/usr/lib64 -L$(CUDA_PATH)/targets/$(UNAME_M)-linux/lib -L$(CUDA_PATH)/lib64/stubs -L/usr/lib/wsl/lib OBJS += ggml-cuda.o OBJS += $(patsubst %.cu,%.o,$(wildcard ggml-cuda/*.cu)) OBJS += $(OBJS_CUDA_TEMP_INST) From 84f6de17f6a8602e7ff7f7c7bda36a73f510a2dd Mon Sep 17 00:00:00 2001 From: jojorne Date: Tue, 18 Jun 2024 09:18:32 -0300 Subject: [PATCH 101/131] Fix no gcc pragma on Windows (#7751) --- sgemm.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sgemm.cpp b/sgemm.cpp index 40ba9d7e9a7b7..bbe263ddd2bb4 100644 --- a/sgemm.cpp +++ b/sgemm.cpp @@ -43,8 +43,10 @@ // [1] J. Tunney, ‘LLaMA Now Goes Faster on CPUs’, Mar. 2024. [Online]. // Available: https://justine.lol/matmul/. [Accessed: 29-Mar-2024]. +#if defined(__GNUC__) #pragma GCC diagnostic ignored "-Wpedantic" #pragma GCC diagnostic ignored "-Wignored-attributes" +#endif #include "sgemm.h" #include "ggml-impl.h" From 91c188d6c296bd3384f2a02a83b71187aa3d18b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sigbj=C3=B8rn=20Skj=C3=A6ret?= Date: Tue, 18 Jun 2024 14:19:45 +0200 Subject: [PATCH 102/131] Only use FIM middle token if it exists (#7648) * Only use FIM middle if it exists * Only use FIM middle if it exists --- examples/infill/infill.cpp | 13 +++++++++++-- examples/server/server.cpp | 7 ++++++- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/examples/infill/infill.cpp b/examples/infill/infill.cpp index 0e4ec79c693fa..3e82e4a81a20b 100644 --- a/examples/infill/infill.cpp +++ b/examples/infill/infill.cpp @@ -223,7 +223,11 @@ int main(int argc, char ** argv) { inp_sfx.insert(inp_sfx.begin(), llama_token_suffix(model)); embd_inp = inp_pfx; embd_inp.insert(embd_inp.end(), inp_sfx.begin(), inp_sfx.end()); - embd_inp.push_back(llama_token_middle(model)); + + const llama_token middle_token = llama_token_middle(model); + if (middle_token >= 0) { + embd_inp.push_back(middle_token); + } LOG("prefix: \"%s\"\n", log_tostr(params.input_prefix)); LOG("suffix: \"%s\"\n", log_tostr(params.input_suffix)); @@ -528,7 +532,12 @@ int main(int argc, char ** argv) { inp_sfx.insert(inp_sfx.begin(), llama_token_suffix(model)); embd_inp = inp_pfx; embd_inp.insert(embd_inp.end(), inp_sfx.begin(), inp_sfx.end()); - embd_inp.push_back(llama_token_middle(model)); + + const llama_token middle_token = llama_token_middle(model); + if (middle_token >= 0) { + embd_inp.push_back(middle_token); + } + embd.clear(); n_remain = params.n_predict; n_past = 0; diff --git a/examples/server/server.cpp b/examples/server/server.cpp index 919078f2bd920..ec59307b2881b 100644 --- a/examples/server/server.cpp +++ b/examples/server/server.cpp @@ -2038,7 +2038,12 @@ struct server_context { prefix_tokens.insert(prefix_tokens.begin(), llama_token_bos(model)); // always add BOS prefix_tokens.insert(prefix_tokens.end(), llama_token_suffix(model)); prefix_tokens.insert(prefix_tokens.end(), suffix_tokens.begin(), suffix_tokens.end()); - prefix_tokens.push_back(llama_token_middle(model)); + + const llama_token middle_token = llama_token_middle(model); + if (middle_token >= 0) { + prefix_tokens.push_back(middle_token); + } + prompt_tokens = prefix_tokens; } else { prompt_tokens = tokenize(slot.prompt, system_prompt.empty()); // add BOS if there isn't system prompt From 37bef8943312d91183ff06d8f1214082a17344a5 Mon Sep 17 00:00:00 2001 From: jaime-m-p <167997752+jaime-m-p@users.noreply.github.com> Date: Tue, 18 Jun 2024 18:40:52 +0200 Subject: [PATCH 103/131] tokenizer : BPE fixes (#7530) * Random test: add_bos_token, add_eos_token * Random test: add BPE models for testing * Custom regex split fails with codepoint 0 * Fix falcon punctuation regex * Refactor llm_tokenizer_bpe: move code to constructor * Move 'add_special_bos/eos' logic to llm_tokenizer_bpe * Move tokenizer flags to vocab structure. * Default values for special_add_bos/eos * Build vocab.special_tokens_cache using vocab token types * Generalize 'jina-v2' per token attributes * Fix unicode whitespaces (deepseek-coder, deepseek-llm) * Skip missing byte tokens (falcon) * Better unicode data generation * Replace char32_t with uint32_t --- llama.cpp | 309 +++--- scripts/gen-unicode-data.py | 180 ++-- tests/test-tokenizer-random.py | 170 +++- unicode-data.cpp | 1652 ++++++++++++++++---------------- unicode.cpp | 29 +- 5 files changed, 1285 insertions(+), 1055 deletions(-) diff --git a/llama.cpp b/llama.cpp index e06c851ad5b6c..8818c69280178 100644 --- a/llama.cpp +++ b/llama.cpp @@ -2310,16 +2310,17 @@ struct llama_vocab { id special_cls_id = -1; id special_mask_id = -1; - int special_add_bos = -1; // -1 unknown, 1 add, 0 don't add. - int special_add_eos = -1; // -1 unknown, 1 add, 0 don't add. - id linefeed_id = 13; id special_prefix_id = -1; id special_suffix_id = -1; id special_middle_id = -1; id special_eot_id = -1; // TODO: move above after "eos_id", and here add "file separator" token - bool add_space_prefix = true; + // tokenizer flags + bool tokenizer_add_space_prefix = true; + bool tokenizer_add_bos = false; + bool tokenizer_add_eos = false; + bool tokenizer_ignore_merges = false; int find_bpe_rank(const std::string & token_left, const std::string & token_right) const { GGML_ASSERT(token_left.find(' ') == std::string::npos); @@ -4770,7 +4771,7 @@ static void llm_load_vocab( const int add_space_prefix_keyidx = gguf_find_key(ctx, kv(LLM_KV_TOKENIZER_ADD_PREFIX).c_str()); if (add_space_prefix_keyidx != -1) { - vocab.add_space_prefix = gguf_get_val_bool(ctx, add_space_prefix_keyidx); + vocab.tokenizer_add_space_prefix = gguf_get_val_bool(ctx, add_space_prefix_keyidx); } // The default value of add_space_prefix is true. } else if (tokenizer_model == "bert") { vocab.type = LLAMA_VOCAB_TYPE_WPM; @@ -4783,13 +4784,13 @@ static void llm_load_vocab( vocab.special_pad_id = 0; vocab.special_cls_id = 101; vocab.special_mask_id = 103; - vocab.add_space_prefix = false; + vocab.tokenizer_add_space_prefix = false; } else if (tokenizer_model == "gpt2") { vocab.type = LLAMA_VOCAB_TYPE_BPE; const int add_space_prefix_keyidx = gguf_find_key(ctx, kv(LLM_KV_TOKENIZER_ADD_PREFIX).c_str()); if (add_space_prefix_keyidx != -1) { - vocab.add_space_prefix = gguf_get_val_bool(ctx, add_space_prefix_keyidx); + vocab.tokenizer_add_space_prefix = gguf_get_val_bool(ctx, add_space_prefix_keyidx); } // read bpe merges and populate bpe ranks @@ -4847,6 +4848,8 @@ static void llm_load_vocab( tokenizer_pre == "llama-v3" || tokenizer_pre == "llama-bpe") { vocab.type_pre = LLAMA_VOCAB_PRE_TYPE_LLAMA3; + vocab.tokenizer_ignore_merges = true; + vocab.tokenizer_add_bos = true; } else if ( tokenizer_pre == "deepseek-llm") { vocab.type_pre = LLAMA_VOCAB_PRE_TYPE_DEEPSEEK_LLM; @@ -4897,6 +4900,14 @@ static void llm_load_vocab( } else { throw std::runtime_error(format("unknown pre-tokenizer type: '%s'", tokenizer_pre.c_str())); } + } else if (vocab.type == LLAMA_VOCAB_TYPE_SPM) { + vocab.type_pre = LLAMA_VOCAB_PRE_TYPE_DEFAULT; + vocab.tokenizer_add_bos = true; + vocab.tokenizer_add_eos = false; + } else if (vocab.type == LLAMA_VOCAB_TYPE_WPM) { + vocab.type_pre = LLAMA_VOCAB_PRE_TYPE_DEFAULT; + vocab.tokenizer_add_bos = true; + vocab.tokenizer_add_eos = false; } else { vocab.type_pre = LLAMA_VOCAB_PRE_TYPE_DEFAULT; } @@ -5041,10 +5052,10 @@ static void llm_load_vocab( bool temp = true; if (ml.get_key(LLM_KV_TOKENIZER_ADD_BOS, temp, false)) { - vocab.special_add_bos = int(temp); + vocab.tokenizer_add_bos = temp; } if (ml.get_key(LLM_KV_TOKENIZER_ADD_EOS, temp, false)) { - vocab.special_add_eos = int(temp); + vocab.tokenizer_add_eos = temp; } } @@ -5144,7 +5155,7 @@ static void llm_load_vocab( ); // set attributes by model/tokenizer name - if (_contains_any(tokenizer_pre, {"jina-v2-es", "jina-v2-de"})) { + if (_contains_any(tokenizer_pre, {"jina-v2-de", "jina-v2-es", "jina-v2-code"})) { _set_token_attr("", LLAMA_TOKEN_ATTR_LSTRIP, true); } else if (_contains_any(model_name, {"phi-3", "phi3"})) { for (auto id : vocab.cache_special_tokens) { @@ -13158,112 +13169,142 @@ struct llm_bigram_bpe { }; struct llm_tokenizer_bpe { - llm_tokenizer_bpe(const llama_vocab & vocab): vocab(vocab) {} - - void tokenize(const std::string & text, std::vector & output) { - int final_prev_index = -1; - bool ignore_merges = false; - - std::vector word_collection; - switch (vocab.type) { - case LLAMA_VOCAB_TYPE_BPE: - switch (vocab.type_pre) { - case LLAMA_VOCAB_PRE_TYPE_LLAMA3: - ignore_merges = true; - word_collection = unicode_regex_split(text, { - // original regex from tokenizer.json - //"(?i:'s|'t|'re|'ve|'m|'ll|'d)|[^\\r\\n\\p{L}\\p{N}]?\\p{L}+|\\p{N}{1,3}| ?[^\\s\\p{L}\\p{N}]+[\\r\\n]*|\\s*[\\r\\n]+|\\s+(?!\\S)|\\s+", - - // adapted: https://github.com/ggerganov/llama.cpp/pull/6920#issuecomment-2080233989 - "(?:'[sS]|'[tT]|'[rR][eE]|'[vV][eE]|'[mM]|'[lL][lL]|'[dD])|[^\\r\\n\\p{L}\\p{N}]?\\p{L}+|\\p{N}{1,3}| ?[^\\s\\p{L}\\p{N}]+[\\r\\n]*|\\s*[\\r\\n]+|\\s+(?!\\S)|\\s+", - }); - break; - case LLAMA_VOCAB_PRE_TYPE_DBRX: - case LLAMA_VOCAB_PRE_TYPE_SMAUG: - word_collection = unicode_regex_split(text, { - // same as llama3 - "(?:'[sS]|'[tT]|'[rR][eE]|'[vV][eE]|'[mM]|'[lL][lL]|'[dD])|[^\\r\\n\\p{L}\\p{N}]?\\p{L}+|\\p{N}{1,3}| ?[^\\s\\p{L}\\p{N}]+[\\r\\n]*|\\s*[\\r\\n]+|\\s+(?!\\S)|\\s+", - }); - break; - case LLAMA_VOCAB_PRE_TYPE_DEEPSEEK_LLM: - word_collection = unicode_regex_split(text, { - "[\r\n]", - "\\s?[A-Za-zµÀ-ÖØ-öø-ƺƼ-ƿDŽ-ʓʕ-ʯͰ-ͳͶͷͻ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-ՖႠ-ჅᎠ-Ᏽᏸ-ᏽᲐ-ᲺᲽ-Ჿᴀ-ᴫᵫ-ᵷᵹ-ᶚḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℴℹℼ-ℿⅅ-ⅉⅎↃↄⰀ-ⱻⱾ-ⳤⳫ-ⳮⳲⳳꙀ-ꙭꚀ-ꚛꜢ-ꝯꝱ-ꞇꞋ-ꞎꭰ-ꮿff-stﬓ-ﬗA-Za-z𐐀-𐑏𐒰-𐓓𐓘-𐓻𐲀-𐲲𐳀-𐳲𑢠-𑣟𞤀-𞥃]+", - "\\s?[!-/:-~!-/:-~‘-‟ -。]+", - "\\s+$", - "[一-龥ࠀ-一가-퟿]+", - "\\p{N}+", - }); - break; - case LLAMA_VOCAB_PRE_TYPE_DEEPSEEK_CODER: - word_collection = unicode_regex_split(text, { - "[\r\n]", - "\\s?\\p{L}+", - "\\s?\\p{P}+", - "[一-龥ࠀ-一가-퟿]+", - "\\p{N}", - }); - break; - case LLAMA_VOCAB_PRE_TYPE_FALCON: - word_collection = unicode_regex_split(text, { - "[\\p{P}\\$\\+<=>\\^~\\|]+", - "'s|'t|'re|'ve|'m|'ll|'d| ?\\p{L}+| ?\\p{N}+| ?[^\\s\\p{L}\\p{N}]+|\\s+(?!\\S)", - "[0-9][0-9][0-9]", - }); - break; - case LLAMA_VOCAB_PRE_TYPE_MPT: - // TODO: MPT pre-tokenization regexes are unknown - // the following are close, but not exact. run the following: - // ./bin/test-tokenizer-0 ../models/ggml-vocab-mpt.gguf - GGML_ASSERT("MPT pre-tokenization regexes are unknown - fixes needed"); - word_collection = unicode_regex_split(text, { - "\\s?\\p{L}+", - "\\s?\\p{P}+", - "'s|'t|'re|'ve|'m|'ll|'d| ?\\p{L}+| ?\\p{N}+| ?[^\\s\\p{L}\\p{N}]+|\\s+(?!\\S)", - }); - break; - case LLAMA_VOCAB_PRE_TYPE_STARCODER: - case LLAMA_VOCAB_PRE_TYPE_REFACT: - case LLAMA_VOCAB_PRE_TYPE_COMMAND_R: - word_collection = unicode_regex_split(text, { - "\\p{N}", - "'s|'t|'re|'ve|'m|'ll|'d| ?\\p{L}+| ?\\p{N}+| ?[^\\s\\p{L}\\p{N}]+|\\s+(?!\\S)", - }); - break; - case LLAMA_VOCAB_PRE_TYPE_GPT2: - case LLAMA_VOCAB_PRE_TYPE_OLMO: - word_collection = unicode_regex_split(text, { - "'s|'t|'re|'ve|'m|'ll|'d| ?\\p{L}+| ?\\p{N}+| ?[^\\s\\p{L}\\p{N}]+|\\s+(?!\\S)", - }); - break; - case LLAMA_VOCAB_PRE_TYPE_STABLELM2: - case LLAMA_VOCAB_PRE_TYPE_QWEN2: - word_collection = unicode_regex_split(text, { - // original regex from tokenizer.json - // "(?i:'s|'t|'re|'ve|'m|'ll|'d)|[^\\r\\n\\p{L}\\p{N}]?\\p{L}+|\\p{N}| ?[^\\s\\p{L}\\p{N}]+[\\r\\n]*|\\s*[\\r\\n]+|\\s+(?!\\S)|\\s+" - "(?:'[sS]|'[tT]|'[rR][eE]|'[vV][eE]|'[mM]|'[lL][lL]|'[dD])|[^\\r\\n\\p{L}\\p{N}]?\\p{L}+|\\p{N}| ?[^\\s\\p{L}\\p{N}]+[\\r\\n]*|\\s*[\\r\\n]+|\\s+(?!\\S)|\\s+", - }); - break; - case LLAMA_VOCAB_PRE_TYPE_PORO: - word_collection = unicode_regex_split(text, { - " ?[^(\\s|.,!?…。,、।۔،)]+", - }); - break; - default: - // default regex for BPE tokenization pre-processing - word_collection = unicode_regex_split(text, { - "[\\p{P}\\$\\+<=>\\^~\\|]+", - "'s|'t|'re|'ve|'m|'ll|'d| ?\\p{L}+| ?\\p{N}+| ?[^\\s\\p{L}\\p{N}]+|\\s+(?!\\S)", - "\\p{N}+", - "[0-9][0-9][0-9]", - }); - break; - } + llm_tokenizer_bpe(const llama_vocab & vocab): vocab(vocab) { + GGML_ASSERT(vocab.type == LLAMA_VOCAB_TYPE_BPE); + switch (vocab.type_pre) { + case LLAMA_VOCAB_PRE_TYPE_LLAMA3: + regex_exprs = { + // original regex from tokenizer.json + //"(?i:'s|'t|'re|'ve|'m|'ll|'d)|[^\\r\\n\\p{L}\\p{N}]?\\p{L}+|\\p{N}{1,3}| ?[^\\s\\p{L}\\p{N}]+[\\r\\n]*|\\s*[\\r\\n]+|\\s+(?!\\S)|\\s+", + + // adapted: https://github.com/ggerganov/llama.cpp/pull/6920#issuecomment-2080233989 + "(?:'[sS]|'[tT]|'[rR][eE]|'[vV][eE]|'[mM]|'[lL][lL]|'[dD])|[^\\r\\n\\p{L}\\p{N}]?\\p{L}+|\\p{N}{1,3}| ?[^\\s\\p{L}\\p{N}]+[\\r\\n]*|\\s*[\\r\\n]+|\\s+(?!\\S)|\\s+", + }; + break; + case LLAMA_VOCAB_PRE_TYPE_DBRX: + case LLAMA_VOCAB_PRE_TYPE_SMAUG: + regex_exprs = { + // same as llama3 + "(?:'[sS]|'[tT]|'[rR][eE]|'[vV][eE]|'[mM]|'[lL][lL]|'[dD])|[^\\r\\n\\p{L}\\p{N}]?\\p{L}+|\\p{N}{1,3}| ?[^\\s\\p{L}\\p{N}]+[\\r\\n]*|\\s*[\\r\\n]+|\\s+(?!\\S)|\\s+", + }; + break; + case LLAMA_VOCAB_PRE_TYPE_DEEPSEEK_LLM: + regex_exprs = { + "[\r\n]", + "\\s?[A-Za-zµÀ-ÖØ-öø-ƺƼ-ƿDŽ-ʓʕ-ʯͰ-ͳͶͷͻ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-ՖႠ-ჅᎠ-Ᏽᏸ-ᏽᲐ-ᲺᲽ-Ჿᴀ-ᴫᵫ-ᵷᵹ-ᶚḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℴℹℼ-ℿⅅ-ⅉⅎↃↄⰀ-ⱻⱾ-ⳤⳫ-ⳮⳲⳳꙀ-ꙭꚀ-ꚛꜢ-ꝯꝱ-ꞇꞋ-ꞎꭰ-ꮿff-stﬓ-ﬗA-Za-z𐐀-𐑏𐒰-𐓓𐓘-𐓻𐲀-𐲲𐳀-𐳲𑢠-𑣟𞤀-𞥃]+", + "\\s?[!-/:-~!-/:-~‘-‟ -。]+", + "\\s+$", + "[一-龥ࠀ-一가-퟿]+", + "\\p{N}+", + }; + break; + case LLAMA_VOCAB_PRE_TYPE_DEEPSEEK_CODER: + regex_exprs = { + "[\r\n]", + "\\s?\\p{L}+", + "\\s?\\p{P}+", + "[一-龥ࠀ-一가-퟿]+", + "\\p{N}", + }; + break; + case LLAMA_VOCAB_PRE_TYPE_FALCON: + regex_exprs = { + "[\\p{P}\\$\\+<=>\\^~\\|`]+", + "'s|'t|'re|'ve|'m|'ll|'d| ?\\p{L}+| ?\\p{N}+| ?[^\\s\\p{L}\\p{N}]+|\\s+(?!\\S)", + "[0-9][0-9][0-9]", + }; + break; + case LLAMA_VOCAB_PRE_TYPE_MPT: + // TODO: MPT pre-tokenization regexes are unknown + // the following are close, but not exact. run the following: + // ./bin/test-tokenizer-0 ../models/ggml-vocab-mpt.gguf + GGML_ASSERT("MPT pre-tokenization regexes are unknown - fixes needed"); + regex_exprs = { + "\\s?\\p{L}+", + "\\s?\\p{P}+", + "'s|'t|'re|'ve|'m|'ll|'d| ?\\p{L}+| ?\\p{N}+| ?[^\\s\\p{L}\\p{N}]+|\\s+(?!\\S)", + }; + break; + case LLAMA_VOCAB_PRE_TYPE_STARCODER: + case LLAMA_VOCAB_PRE_TYPE_REFACT: + case LLAMA_VOCAB_PRE_TYPE_COMMAND_R: + regex_exprs = { + "\\p{N}", + "'s|'t|'re|'ve|'m|'ll|'d| ?\\p{L}+| ?\\p{N}+| ?[^\\s\\p{L}\\p{N}]+|\\s+(?!\\S)", + }; + break; + case LLAMA_VOCAB_PRE_TYPE_GPT2: + case LLAMA_VOCAB_PRE_TYPE_OLMO: + regex_exprs = { + "'s|'t|'re|'ve|'m|'ll|'d| ?\\p{L}+| ?\\p{N}+| ?[^\\s\\p{L}\\p{N}]+|\\s+(?!\\S)", + }; + break; + case LLAMA_VOCAB_PRE_TYPE_STABLELM2: + case LLAMA_VOCAB_PRE_TYPE_QWEN2: + regex_exprs = { + // original regex from tokenizer.json + // "(?i:'s|'t|'re|'ve|'m|'ll|'d)|[^\\r\\n\\p{L}\\p{N}]?\\p{L}+|\\p{N}| ?[^\\s\\p{L}\\p{N}]+[\\r\\n]*|\\s*[\\r\\n]+|\\s+(?!\\S)|\\s+" + "(?:'[sS]|'[tT]|'[rR][eE]|'[vV][eE]|'[mM]|'[lL][lL]|'[dD])|[^\\r\\n\\p{L}\\p{N}]?\\p{L}+|\\p{N}| ?[^\\s\\p{L}\\p{N}]+[\\r\\n]*|\\s*[\\r\\n]+|\\s+(?!\\S)|\\s+", + }; + break; + case LLAMA_VOCAB_PRE_TYPE_PORO: + regex_exprs = { + " ?[^(\\s|.,!?…。,、।۔،)]+", + }; break; default: - GGML_ASSERT(false); + // default regex for BPE tokenization pre-processing + regex_exprs = { + "[\\p{P}\\$\\+<=>\\^~\\|]+", + "'s|'t|'re|'ve|'m|'ll|'d| ?\\p{L}+| ?\\p{N}+| ?[^\\s\\p{L}\\p{N}]+|\\s+(?!\\S)", + "\\p{N}+", + "[0-9][0-9][0-9]", + }; break; } + } + + void append(const llama_vocab::id token_id, std::vector & output) const { + output.push_back(token_id); + } + + bool append_bos(std::vector & output) const { + if (vocab.tokenizer_add_bos) { + GGML_ASSERT(vocab.special_bos_id != -1); + output.push_back(vocab.special_bos_id); + return true; + } + return false; + } + + bool append_eos(std::vector & output) const { + if (vocab.tokenizer_add_eos) { + GGML_ASSERT(vocab.special_eos_id != -1); + output.push_back(vocab.special_eos_id); + return true; + } + return false; + } + + void check_double_bos_eos(const std::vector & output) const { + if (vocab.tokenizer_add_bos && output.size() >= 2 && output[1] == vocab.special_bos_id) { + LLAMA_LOG_WARN( + "%s: Added a BOS token to the prompt as specified by the model but the prompt " + "also starts with a BOS token. So now the final prompt starts with 2 BOS tokens. " + "Are you sure this is what you want?\n", __FUNCTION__); + } + if (vocab.tokenizer_add_eos && output.size() >= 2 && *(output.end()-2) == vocab.special_eos_id) { + LLAMA_LOG_WARN( + "%s: Added a EOS token to the prompt as specified by the model but the prompt " + "also ends with a EOS token. So now the final prompt ends with 2 EOS tokens. " + "Are you sure this is what you want?\n", __FUNCTION__); + } + } + + void tokenize(const std::string & text, std::vector & output) { + int final_prev_index = -1; + + const auto word_collection = unicode_regex_split(text, regex_exprs); symbols_final.clear(); @@ -13274,7 +13315,7 @@ struct llm_tokenizer_bpe { int index = 0; size_t offset = 0; - if (ignore_merges && vocab.token_to_id.find(word) != vocab.token_to_id.end()) { + if (vocab.tokenizer_ignore_merges && vocab.token_to_id.find(word) != vocab.token_to_id.end()) { symbols.emplace_back(llm_symbol{-1, -1, word.c_str(), word.size()}); offset = word.size(); } @@ -13355,10 +13396,9 @@ struct llm_tokenizer_bpe { for (auto j = str.begin(); j != str.end(); ++j) { std::string byte_str(1, *j); auto token_multibyte = vocab.token_to_id.find(byte_str); - if (token_multibyte == vocab.token_to_id.end()) { - throw std::runtime_error("ERROR: byte not found in vocab"); + if (token_multibyte != vocab.token_to_id.end()) { + output.push_back(token_multibyte->second); } - output.push_back((*token_multibyte).second); } } else { output.push_back((*token).second); @@ -13397,6 +13437,8 @@ struct llm_tokenizer_bpe { const llama_vocab & vocab; + std::vector regex_exprs; + std::vector symbols; std::vector symbols_final; @@ -13677,7 +13719,7 @@ static std::vector llama_tokenize_internal(const llama_vocab & bool is_prev_special = false; - if (add_special && vocab.special_add_bos != 0) { + if (add_special && vocab.tokenizer_add_bos) { GGML_ASSERT(vocab.special_bos_id != -1); output.push_back(vocab.special_bos_id); is_prev_special = true; @@ -13687,7 +13729,7 @@ static std::vector llama_tokenize_internal(const llama_vocab & if (fragment.type == FRAGMENT_BUFFER_VARIANT_TYPE_RAW_TEXT) { auto raw_text = fragment.raw_text.substr(fragment.offset, fragment.length); - if (vocab.add_space_prefix) { + if (vocab.tokenizer_add_space_prefix) { if (!output.size() || is_prev_special) { // prefix with space if first token raw_text = " " + raw_text; } @@ -13705,23 +13747,24 @@ static std::vector llama_tokenize_internal(const llama_vocab & } } - if (add_special && vocab.special_add_bos != 0 && output.size() >= 2 && output[1] == vocab.special_bos_id) { + if (add_special && vocab.tokenizer_add_bos && output.size() >= 2 && output[1] == vocab.special_bos_id) { LLAMA_LOG_WARN( "%s: Added a BOS token to the prompt as specified by the model but the prompt " "also starts with a BOS token. So now the final prompt starts with 2 BOS tokens. " "Are you sure this is what you want?\n", __FUNCTION__); } - if (add_special && vocab.special_add_eos == 1) { + if (add_special && vocab.tokenizer_add_eos) { GGML_ASSERT(vocab.special_eos_id != -1); output.push_back(vocab.special_eos_id); } } break; case LLAMA_VOCAB_TYPE_BPE: { - if (add_special && vocab.special_add_bos != 0) { - GGML_ASSERT(vocab.special_bos_id != -1); - output.push_back(vocab.special_bos_id); + llm_tokenizer_bpe tokenizer(vocab); + + if (add_special) { + tokenizer.append_bos(output); } for (const auto & fragment : fragment_buffer) { @@ -13731,23 +13774,15 @@ static std::vector llama_tokenize_internal(const llama_vocab & #ifdef PRETOKENIZERDEBUG LLAMA_LOG_WARN("TT: (%ld %ld %ld) '%s'\n", raw_text.length(), fragment.offset, fragment.length, raw_text.c_str()); #endif - llm_tokenizer_bpe tokenizer(vocab); tokenizer.tokenize(raw_text, output); } else { // if (fragment.type == FRAGMENT_BUFFER_VARIANT_TYPE_TOKEN) - output.push_back(fragment.token); + tokenizer.append(fragment.token, output); } } - if (add_special && vocab.special_add_bos != 0 && output.size() >= 2 && output[1] == vocab.special_bos_id) { - LLAMA_LOG_WARN( - "%s: Added a BOS token to the prompt as specified by the model but the prompt " - "also starts with a BOS token. So now the final prompt starts with 2 BOS tokens. " - "Are you sure this is what you want?\n", __FUNCTION__); - } - - if (add_special && vocab.special_add_eos == 1) { - GGML_ASSERT(vocab.special_add_eos != -1); - output.push_back(vocab.special_eos_id); + if (add_special) { + tokenizer.append_eos(output); + tokenizer.check_double_bos_eos(output); } } break; case LLAMA_VOCAB_TYPE_WPM: @@ -18320,11 +18355,11 @@ llama_token llama_token_nl(const struct llama_model * model) { } int32_t llama_add_bos_token(const struct llama_model * model) { - return model->vocab.special_add_bos; + return model->vocab.tokenizer_add_bos; } int32_t llama_add_eos_token(const struct llama_model * model) { - return model->vocab.special_add_eos; + return model->vocab.tokenizer_add_eos; } llama_token llama_token_prefix(const struct llama_model * model) { diff --git a/scripts/gen-unicode-data.py b/scripts/gen-unicode-data.py index 744873c2a4986..890e4d7c24eeb 100644 --- a/scripts/gen-unicode-data.py +++ b/scripts/gen-unicode-data.py @@ -1,83 +1,143 @@ -import regex -import ctypes +import array import unicodedata - - -class CoodepointFlags (ctypes.Structure): - _fields_ = [ # see definition in unicode.h - ("is_undefined", ctypes.c_uint16, 1), - ("is_number", ctypes.c_uint16, 1), # regex: \p{N} - ("is_letter", ctypes.c_uint16, 1), # regex: \p{L} - ("is_separator", ctypes.c_uint16, 1), # regex: \p{Z} - ("is_accent_mark", ctypes.c_uint16, 1), # regex: \p{M} - ("is_punctuation", ctypes.c_uint16, 1), # regex: \p{P} - ("is_symbol", ctypes.c_uint16, 1), # regex: \p{S} - ("is_control", ctypes.c_uint16, 1), # regex: \p{C} - ] - - -assert (ctypes.sizeof(CoodepointFlags) == 2) +import requests MAX_CODEPOINTS = 0x110000 -regex_number = regex.compile(r'\p{N}') -regex_letter = regex.compile(r'\p{L}') -regex_separator = regex.compile(r'\p{Z}') -regex_accent_mark = regex.compile(r'\p{M}') -regex_punctuation = regex.compile(r'\p{P}') -regex_symbol = regex.compile(r'\p{S}') -regex_control = regex.compile(r'\p{C}') -regex_whitespace = regex.compile(r'\s') - -codepoint_flags = (CoodepointFlags * MAX_CODEPOINTS)() +UNICODE_DATA_URL = "https://www.unicode.org/Public/UCD/latest/ucd/UnicodeData.txt" + + +# see https://www.unicode.org/L2/L1999/UnicodeData.html +def unicode_data_iter(): + res = requests.get(UNICODE_DATA_URL) + res.raise_for_status() + data = res.content.decode() + + prev = [] + + for line in data.splitlines(): + # ej: 0000;;Cc;0;BN;;;;;N;NULL;;;; + line = line.split(";") + + cpt = int(line[0], base=16) + assert cpt < MAX_CODEPOINTS + + cpt_lower = int(line[-2] or "0", base=16) + assert cpt_lower < MAX_CODEPOINTS + + cpt_upper = int(line[-3] or "0", base=16) + assert cpt_upper < MAX_CODEPOINTS + + categ = line[2].strip() + assert len(categ) == 2 + + bidir = line[4].strip() + assert len(categ) == 2 + + name = line[1] + if name.endswith(", First>"): + prev = (cpt, cpt_lower, cpt_upper, categ, bidir) + continue + if name.endswith(", Last>"): + assert prev[1:] == (0, 0, categ, bidir) + for c in range(prev[0], cpt): + yield (c, cpt_lower, cpt_upper, categ, bidir) + + yield (cpt, cpt_lower, cpt_upper, categ, bidir) + + +# see definition in unicode.h +CODEPOINT_FLAG_UNDEFINED = 0x0001 # +CODEPOINT_FLAG_NUMBER = 0x0002 # \p{N} +CODEPOINT_FLAG_LETTER = 0x0004 # \p{L} +CODEPOINT_FLAG_SEPARATOR = 0x0008 # \p{Z} +CODEPOINT_FLAG_MARK = 0x0010 # \p{M} +CODEPOINT_FLAG_PUNCTUATION = 0x0020 # \p{P} +CODEPOINT_FLAG_SYMBOL = 0x0040 # \p{S} +CODEPOINT_FLAG_CONTROL = 0x0080 # \p{C} + +UNICODE_CATEGORY_TO_FLAG = { + "Cn": CODEPOINT_FLAG_UNDEFINED, # Undefined + "Cc": CODEPOINT_FLAG_CONTROL, # Control + "Cf": CODEPOINT_FLAG_CONTROL, # Format + "Co": CODEPOINT_FLAG_CONTROL, # Private Use + "Cs": CODEPOINT_FLAG_CONTROL, # Surrrogate + "Ll": CODEPOINT_FLAG_LETTER, # Lowercase Letter + "Lm": CODEPOINT_FLAG_LETTER, # Modifier Letter + "Lo": CODEPOINT_FLAG_LETTER, # Other Letter + "Lt": CODEPOINT_FLAG_LETTER, # Titlecase Letter + "Lu": CODEPOINT_FLAG_LETTER, # Uppercase Letter + "L&": CODEPOINT_FLAG_LETTER, # Cased Letter + "Mc": CODEPOINT_FLAG_MARK, # Spacing Mark + "Me": CODEPOINT_FLAG_MARK, # Enclosing Mark + "Mn": CODEPOINT_FLAG_MARK, # Nonspacing Mark + "Nd": CODEPOINT_FLAG_NUMBER, # Decimal Number + "Nl": CODEPOINT_FLAG_NUMBER, # Letter Number + "No": CODEPOINT_FLAG_NUMBER, # Other Number + "Pc": CODEPOINT_FLAG_PUNCTUATION, # Connector Punctuation + "Pd": CODEPOINT_FLAG_PUNCTUATION, # Dash Punctuation + "Pe": CODEPOINT_FLAG_PUNCTUATION, # Close Punctuation + "Pf": CODEPOINT_FLAG_PUNCTUATION, # Final Punctuation + "Pi": CODEPOINT_FLAG_PUNCTUATION, # Initial Punctuation + "Po": CODEPOINT_FLAG_PUNCTUATION, # Other Punctuation + "Ps": CODEPOINT_FLAG_PUNCTUATION, # Open Punctuation + "Sc": CODEPOINT_FLAG_SYMBOL, # Currency Symbol + "Sk": CODEPOINT_FLAG_SYMBOL, # Modifier Symbol + "Sm": CODEPOINT_FLAG_SYMBOL, # Math Symbol + "So": CODEPOINT_FLAG_SYMBOL, # Other Symbol + "Zl": CODEPOINT_FLAG_SEPARATOR, # Line Separator + "Zp": CODEPOINT_FLAG_SEPARATOR, # Paragraph Separator + "Zs": CODEPOINT_FLAG_SEPARATOR, # Space Separator +} + + +codepoint_flags = array.array('H', [CODEPOINT_FLAG_UNDEFINED]) * MAX_CODEPOINTS table_whitespace = [] table_lowercase = [] table_uppercase = [] table_nfd = [] -for codepoint in range(MAX_CODEPOINTS): +for (cpt, cpt_lower, cpt_upper, categ, bidir) in unicode_data_iter(): # convert codepoint to unicode character - char = chr(codepoint) - - # regex categories - flags = codepoint_flags[codepoint] - flags.is_number = bool(regex_number.match(char)) - flags.is_letter = bool(regex_letter.match(char)) - flags.is_separator = bool(regex_separator.match(char)) - flags.is_accent_mark = bool(regex_accent_mark.match(char)) - flags.is_punctuation = bool(regex_punctuation.match(char)) - flags.is_symbol = bool(regex_symbol.match(char)) - flags.is_control = bool(regex_control.match(char)) - flags.is_undefined = bytes(flags)[0] == 0 - assert (not flags.is_undefined) - - # whitespaces - if bool(regex_whitespace.match(char)): - table_whitespace.append(codepoint) + char = chr(cpt) + + # codepoint category flags + codepoint_flags[cpt] = UNICODE_CATEGORY_TO_FLAG[categ] # lowercase conversion - lower = ord(char.lower()[0]) - if codepoint != lower: - table_lowercase.append((codepoint, lower)) + if cpt_lower: + table_lowercase.append((cpt, cpt_lower)) # uppercase conversion - upper = ord(char.upper()[0]) - if codepoint != upper: - table_uppercase.append((codepoint, upper)) + if cpt_upper: + table_uppercase.append((cpt, cpt_upper)) # NFD normalization norm = ord(unicodedata.normalize('NFD', char)[0]) - if codepoint != norm: - table_nfd.append((codepoint, norm)) + if cpt != norm: + table_nfd.append((cpt, norm)) + + +# whitespaces, see "" https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt +table_whitespace.extend(range(0x0009, 0x000D + 1)) +table_whitespace.extend(range(0x2000, 0x200A + 1)) +table_whitespace.extend([0x0020, 0x0085, 0x00A0, 0x1680, 0x2028, 0x2029, 0x202F, 0x205F, 0x3000]) + + +# sort by codepoint +table_whitespace.sort() +table_lowercase.sort() +table_uppercase.sort() +table_nfd.sort() # group ranges with same flags ranges_flags = [(0, codepoint_flags[0])] # start, flags for codepoint, flags in enumerate(codepoint_flags): - if bytes(flags) != bytes(ranges_flags[-1][1]): + if flags != ranges_flags[-1][1]: ranges_flags.append((codepoint, flags)) -ranges_flags.append((MAX_CODEPOINTS, CoodepointFlags())) +ranges_flags.append((MAX_CODEPOINTS, 0x0000)) # group ranges with same nfd @@ -90,8 +150,8 @@ class CoodepointFlags (ctypes.Structure): ranges_nfd[-1] = (start, codepoint, norm) -# Generate 'unicode-data.cpp' - +# Generate 'unicode-data.cpp': +# python ./scripts//gen-unicode-data.py > unicode-data.cpp def out(line=""): print(line, end='\n') # noqa @@ -110,12 +170,12 @@ def out(line=""): out("const std::vector> unicode_ranges_flags = { // start, flags // last=next_start-1") for codepoint, flags in ranges_flags: - flags = int.from_bytes(bytes(flags), "little") out("{0x%06X, 0x%04X}," % (codepoint, flags)) out("};\n") out("const std::unordered_set unicode_set_whitespace = {") -out(", ".join("0x%06X" % cpt for cpt in table_whitespace)) +for codepoint in table_whitespace: + out("0x%06X," % codepoint) out("};\n") out("const std::unordered_map unicode_map_lowercase = {") diff --git a/tests/test-tokenizer-random.py b/tests/test-tokenizer-random.py index 52f589511e470..a07c52fb3fc60 100644 --- a/tests/test-tokenizer-random.py +++ b/tests/test-tokenizer-random.py @@ -11,13 +11,15 @@ import argparse import subprocess import random +import unicodedata from typing import Callable, Iterator import cffi from transformers import AutoTokenizer -logger = logging.getLogger("test-tokenizer-random-bpe") + +logger = logging.getLogger("test-tokenizer-random") class LibLlama: @@ -155,9 +157,14 @@ def generator_custom_text_edge_cases() -> Iterator[str]: 'Cửa Việt', # llama-3, ignore_merges = true 'a', # Phi-3 fail '<|endoftext|>', # Phi-3 fail - 'a\na', # TODO: Bert fail - 'a b', # rstrip phi-3 - 'a b', # lstrip jina-v2 + 'a\na', # bert fail + '"`', # falcon + ' \u2e4e', # falcon + 'a\xa0\xa0\x00b', # jina-v2-es + 'one ', # jina-v2-es lstrip=true + 'a b', # rstrip phi-3 + 'a b', # lstrip jina-v2 + '\xa0aC', # deepseek ] @@ -189,17 +196,23 @@ def generator_random_added_tokens(tokenizer, iterations=100) -> Iterator[str]: for m in range(iterations): rand.seed(m) words = rand.choices(all_tokens, k=500) - if words[0] == tokenizer.bos_token: # skip spam warning of double BOS + if words and words[0] == tokenizer.bos_token: # skip spam warning of double BOS while len(words) > 1 and words[1] == tokenizer.bos_token: # leave one starting BOS words.pop(0) if tokenizer.add_bos_token: # drop all starting BOS words.pop(0) + if words and words[-1] == tokenizer.eos_token: # skip spam warning of double EOS + while len(words) > 1 and words[-2] == tokenizer.eos_token: # leave one trailing EOS + words.pop(-1) + if tokenizer.add_bos_token: # drop all trailing EOS + words.pop(-1) yield "".join(words) def generator_random_chars(iterations=100) -> Iterator[str]: """Brute force random text with simple characters""" + NUM_WORDS = 400 WHITESPACES = list(" " * 20 + "\n" * 5 + "\r\n" * 5 + "\t" * 5) CHARS = list(sorted(set(""" ABCDEFGHIJKLMNOPQRSTUVWXYZ @@ -213,12 +226,50 @@ def generator_random_chars(iterations=100) -> Iterator[str]: for m in range(iterations): rand.seed(m) text = [] - num_words = rand.randint(300, 400) - for i in range(num_words): + for _ in range(NUM_WORDS): k = rand.randint(1, 7) word = rand.choices(CHARS, k=k) - space = rand.choice(WHITESPACES) - text.append("".join(word) + space) + word.append(rand.choice(WHITESPACES)) + text.append("".join(word)) + yield "".join(text) + + +def generator_unicodes() -> Iterator[str]: + """Iterate unicode characters""" + + MAX_CODEPOINTS = 0x30000 # 0x110000 + + def _valid(cpt): + if cpt >= 0x30000: # unassigned and supplement­ary + return False + if 0x00D800 <= cpt <= 0x00F8FF: # Surrogates + return False + if unicodedata.category(chr(cpt)) == "Cn": + return False + return True + + characters = [chr(cpt) for cpt in range(1, MAX_CODEPOINTS) if _valid(cpt)] + + yield from characters + + +def generator_random_unicodes(iterations=100) -> Iterator[str]: + """Brute force random text with unicode characters""" + + NUM_WORDS = 200 + WHITESPACES = list(" " * 20 + "\n" * 5 + "\r\n" * 5 + "\t" * 5) + + characters = list(generator_unicodes()) + + rand = random.Random() + for m in range(iterations): + rand.seed(m) + text = [] + for _ in range(NUM_WORDS): + k = rand.randint(1, 7) + word = rand.choices(characters, k=k) + word.append(rand.choice(WHITESPACES)) + text.append("".join(word)) yield "".join(text) @@ -256,25 +307,7 @@ def generator_random_vocab_words(vocab: list[str], iterations=100) -> Iterator[s yield "".join(text) -def generator_random_bytes(iterations=100) -> Iterator[str]: - """Brute force random bytes""" - - WHITESPACES = list(" " * 20 + "\n" * 5 + "\r\n" * 5 + "\t" * 5) - - rand = random.Random() - for m in range(iterations): - rand.seed(m) - text = [] - num_words = rand.randint(300, 400) - for i in range(num_words): - k = rand.randint(1, 8) - word = [chr(r) for r in rand.randbytes(k) if r] - word.append(rand.choice(WHITESPACES)) - text.append("".join(word)) - yield "".join(text) - - -def test_compare_tokenizer(func_tokenize1: Callable, func_tokenize2: Callable, generator: Iterator[str]): +def compare_tokenizers(func_tokenize1: Callable, func_tokenize2: Callable, generator: Iterator[str]): def find_first_mismatch(ids1: list[int], ids2: list[int]): for i, (a, b) in enumerate(zip(ids1, ids2)): @@ -284,20 +317,34 @@ def find_first_mismatch(ids1: list[int], ids2: list[int]): return -1 return min(len(ids1), len(ids2)) - t0 = time.perf_counter() + t_tokenizer1 = 0 + t_tokenizer2 = 0 + t_start = time.perf_counter() + num_errors = 10 + logger.info("%s: %s" % (generator.__name__, "ini")) for text in generator: + # print(repr(text), hex(ord(text[0])), text.encode()) + t0 = time.perf_counter() ids1 = func_tokenize1(text) + t1 = time.perf_counter() ids2 = func_tokenize2(text) + t2 = time.perf_counter() + t_tokenizer1 += t1 - t0 + t_tokenizer2 += t2 - t1 if ids1 != ids2: i = find_first_mismatch(ids1, ids2) ids1 = list(ids1)[max(0, i - 2) : i + 5 + 1] ids2 = list(ids2)[max(0, i - 2) : i + 5 + 1] - logger.info(" TokenIDs: " + str(ids1)) - logger.info(" Expected: " + str(ids2)) - raise Exception() - t1 = time.perf_counter() - logger.info("%s: end, time: %.3f secs" % (generator.__name__, t1 - t0)) + logger.error(" TokenIDs: " + str(ids1)) + logger.error(" Expected: " + str(ids2)) + # raise Exception() + num_errors += 1 + if num_errors > 10: + break + + t_total = time.perf_counter() - t_start + logger.info("%s: end, tok1: %.3f tok2: %.3f total: %.3f" % (generator.__name__, t_tokenizer1, t_tokenizer2, t_total)) def main(argv: list[str] = None): @@ -307,7 +354,8 @@ def main(argv: list[str] = None): parser.add_argument("--verbose", action="store_true", help="increase output verbosity") args = parser.parse_args(argv) - logging.basicConfig(level=logging.DEBUG if args.verbose else logging.INFO) + logging.basicConfig(level = logging.DEBUG if args.verbose else logging.INFO) + logger.info(f"VOCABFILE: '{args.vocab_file}'") model = LibLlamaModel(LibLlama(), args.vocab_file, mparams=dict(vocab_only=True), cparams=dict(n_ctx=4096)) tokenizer = AutoTokenizer.from_pretrained(args.dir_tokenizer) @@ -321,18 +369,22 @@ def func_tokenize2(text: str): ids = func_tokenize2("a") assert 1 <= len(ids) <= 3 add_bos_token = len(ids) > 1 and tokenizer.bos_token_id == ids[0] + add_eos_token = len(ids) > 1 and tokenizer.eos_token_id == ids[-1] tokenizer.add_bos_token = getattr(tokenizer, "add_bos_token", add_bos_token) + tokenizer.add_eos_token = getattr(tokenizer, "add_eos_token", add_eos_token) vocab = list(sorted(tokenizer.batch_decode(list(tokenizer.get_vocab().values()), skip_special_tokens=True))) - test_compare_tokenizer(func_tokenize1, func_tokenize2, generator_custom_text()) - test_compare_tokenizer(func_tokenize1, func_tokenize2, generator_custom_text_edge_cases()) - test_compare_tokenizer(func_tokenize1, func_tokenize2, generator_vocab_words(vocab)) - test_compare_tokenizer(func_tokenize1, func_tokenize2, generator_added_lr_strip(tokenizer)) - test_compare_tokenizer(func_tokenize1, func_tokenize2, generator_random_added_tokens(tokenizer, 10_000)) - test_compare_tokenizer(func_tokenize1, func_tokenize2, generator_random_chars(10_000)) - test_compare_tokenizer(func_tokenize1, func_tokenize2, generator_random_vocab_chars(vocab, 10_000)) - test_compare_tokenizer(func_tokenize1, func_tokenize2, generator_random_vocab_words(vocab, 5_000)) - # test_compare_tokenizer(func_tokenize1, func_tokenize2, generator_random_bytes(10_000)) # FAIL + + compare_tokenizers(func_tokenize1, func_tokenize2, generator_custom_text()) + compare_tokenizers(func_tokenize1, func_tokenize2, generator_custom_text_edge_cases()) + compare_tokenizers(func_tokenize1, func_tokenize2, generator_unicodes()) + compare_tokenizers(func_tokenize1, func_tokenize2, generator_vocab_words(vocab)) + compare_tokenizers(func_tokenize1, func_tokenize2, generator_added_lr_strip(tokenizer)) + compare_tokenizers(func_tokenize1, func_tokenize2, generator_random_added_tokens(tokenizer, 10_000)) + compare_tokenizers(func_tokenize1, func_tokenize2, generator_random_chars(10_000)) + compare_tokenizers(func_tokenize1, func_tokenize2, generator_random_unicodes(10_000)) + compare_tokenizers(func_tokenize1, func_tokenize2, generator_random_vocab_chars(vocab, 10_000)) + compare_tokenizers(func_tokenize1, func_tokenize2, generator_random_vocab_words(vocab, 5_000)) model.free() @@ -340,20 +392,40 @@ def func_tokenize2(text: str): if __name__ == "__main__": # main() + logging.basicConfig( + level = logging.DEBUG, + format = "%(asctime)s.%(msecs)03d %(name)s %(levelname)s %(message)s", + datefmt = "%Y-%m-%d %H:%M:%S", + filename = logger.name + ".log", + filemode = "a" + ) + path_tokenizers = "./models/tokenizers/" path_vocab_format = "./models/ggml-vocab-%s.gguf" # import os # tokenizers = os.listdir(path_tokenizers) tokenizers = [ - "llama-spm", # SPM - "phi-3", # SPM - "jina-v2-en", # WPM - "bert-bge", # WPM + # "llama-spm", # SPM + # "phi-3", # SPM + # "bert-bge", # WPM + # "jina-v2-en", # WPM + "gpt-2", # BPE + "llama-bpe", # BPE + "falcon", # BPE + "starcoder", # BPE + "jina-v2-es", # BPE + "jina-v2-de", # BPE + "jina-v2-code", # BPE + "smaug-bpe", # BPE + "phi-2", # BPE + "deepseek-coder", # BPE + "deepseek-llm", # BPE ] for tokenizer in tokenizers: - print("\n" + "=" * 50 + "\n" + tokenizer + "\n") # noqa + logger.info("=" * 50) + logger.info(f"TOKENIZER: '{tokenizer}'") vocab_file = path_vocab_format % tokenizer dir_tokenizer = path_tokenizers + "/" + tokenizer main([vocab_file, dir_tokenizer, "--verbose"]) diff --git a/unicode-data.cpp b/unicode-data.cpp index d7c1c898d8828..4a939898b367f 100644 --- a/unicode-data.cpp +++ b/unicode-data.cpp @@ -68,36 +68,36 @@ const std::vector> unicode_ranges_flags = { // st {0x000370, 0x0004}, {0x000375, 0x0040}, {0x000376, 0x0004}, -{0x000378, 0x0080}, +{0x000378, 0x0001}, {0x00037A, 0x0004}, {0x00037E, 0x0020}, {0x00037F, 0x0004}, -{0x000380, 0x0080}, +{0x000380, 0x0001}, {0x000384, 0x0040}, {0x000386, 0x0004}, {0x000387, 0x0020}, {0x000388, 0x0004}, -{0x00038B, 0x0080}, +{0x00038B, 0x0001}, {0x00038C, 0x0004}, -{0x00038D, 0x0080}, +{0x00038D, 0x0001}, {0x00038E, 0x0004}, -{0x0003A2, 0x0080}, +{0x0003A2, 0x0001}, {0x0003A3, 0x0004}, {0x0003F6, 0x0040}, {0x0003F7, 0x0004}, {0x000482, 0x0040}, {0x000483, 0x0010}, {0x00048A, 0x0004}, -{0x000530, 0x0080}, +{0x000530, 0x0001}, {0x000531, 0x0004}, -{0x000557, 0x0080}, +{0x000557, 0x0001}, {0x000559, 0x0004}, {0x00055A, 0x0020}, {0x000560, 0x0004}, {0x000589, 0x0020}, -{0x00058B, 0x0080}, +{0x00058B, 0x0001}, {0x00058D, 0x0040}, -{0x000590, 0x0080}, +{0x000590, 0x0001}, {0x000591, 0x0010}, {0x0005BE, 0x0020}, {0x0005BF, 0x0010}, @@ -107,12 +107,13 @@ const std::vector> unicode_ranges_flags = { // st {0x0005C4, 0x0010}, {0x0005C6, 0x0020}, {0x0005C7, 0x0010}, -{0x0005C8, 0x0080}, +{0x0005C8, 0x0001}, {0x0005D0, 0x0004}, -{0x0005EB, 0x0080}, +{0x0005EB, 0x0001}, {0x0005EF, 0x0004}, {0x0005F3, 0x0020}, -{0x0005F5, 0x0080}, +{0x0005F5, 0x0001}, +{0x000600, 0x0080}, {0x000606, 0x0040}, {0x000609, 0x0020}, {0x00060B, 0x0040}, @@ -145,16 +146,17 @@ const std::vector> unicode_ranges_flags = { // st {0x0006FD, 0x0040}, {0x0006FF, 0x0004}, {0x000700, 0x0020}, -{0x00070E, 0x0080}, +{0x00070E, 0x0001}, +{0x00070F, 0x0080}, {0x000710, 0x0004}, {0x000711, 0x0010}, {0x000712, 0x0004}, {0x000730, 0x0010}, -{0x00074B, 0x0080}, +{0x00074B, 0x0001}, {0x00074D, 0x0004}, {0x0007A6, 0x0010}, {0x0007B1, 0x0004}, -{0x0007B2, 0x0080}, +{0x0007B2, 0x0001}, {0x0007C0, 0x0002}, {0x0007CA, 0x0004}, {0x0007EB, 0x0010}, @@ -162,7 +164,7 @@ const std::vector> unicode_ranges_flags = { // st {0x0007F6, 0x0040}, {0x0007F7, 0x0020}, {0x0007FA, 0x0004}, -{0x0007FB, 0x0080}, +{0x0007FB, 0x0001}, {0x0007FD, 0x0010}, {0x0007FE, 0x0040}, {0x000800, 0x0004}, @@ -173,20 +175,22 @@ const std::vector> unicode_ranges_flags = { // st {0x000825, 0x0010}, {0x000828, 0x0004}, {0x000829, 0x0010}, -{0x00082E, 0x0080}, +{0x00082E, 0x0001}, {0x000830, 0x0020}, -{0x00083F, 0x0080}, +{0x00083F, 0x0001}, {0x000840, 0x0004}, {0x000859, 0x0010}, -{0x00085C, 0x0080}, +{0x00085C, 0x0001}, {0x00085E, 0x0020}, -{0x00085F, 0x0080}, +{0x00085F, 0x0001}, {0x000860, 0x0004}, -{0x00086B, 0x0080}, +{0x00086B, 0x0001}, {0x000870, 0x0004}, {0x000888, 0x0040}, {0x000889, 0x0004}, -{0x00088F, 0x0080}, +{0x00088F, 0x0001}, +{0x000890, 0x0080}, +{0x000892, 0x0001}, {0x000898, 0x0010}, {0x0008A0, 0x0004}, {0x0008CA, 0x0010}, @@ -205,35 +209,35 @@ const std::vector> unicode_ranges_flags = { // st {0x000970, 0x0020}, {0x000971, 0x0004}, {0x000981, 0x0010}, -{0x000984, 0x0080}, +{0x000984, 0x0001}, {0x000985, 0x0004}, -{0x00098D, 0x0080}, +{0x00098D, 0x0001}, {0x00098F, 0x0004}, -{0x000991, 0x0080}, +{0x000991, 0x0001}, {0x000993, 0x0004}, -{0x0009A9, 0x0080}, +{0x0009A9, 0x0001}, {0x0009AA, 0x0004}, -{0x0009B1, 0x0080}, +{0x0009B1, 0x0001}, {0x0009B2, 0x0004}, -{0x0009B3, 0x0080}, +{0x0009B3, 0x0001}, {0x0009B6, 0x0004}, -{0x0009BA, 0x0080}, +{0x0009BA, 0x0001}, {0x0009BC, 0x0010}, {0x0009BD, 0x0004}, {0x0009BE, 0x0010}, -{0x0009C5, 0x0080}, +{0x0009C5, 0x0001}, {0x0009C7, 0x0010}, -{0x0009C9, 0x0080}, +{0x0009C9, 0x0001}, {0x0009CB, 0x0010}, {0x0009CE, 0x0004}, -{0x0009CF, 0x0080}, +{0x0009CF, 0x0001}, {0x0009D7, 0x0010}, -{0x0009D8, 0x0080}, +{0x0009D8, 0x0001}, {0x0009DC, 0x0004}, -{0x0009DE, 0x0080}, +{0x0009DE, 0x0001}, {0x0009DF, 0x0004}, {0x0009E2, 0x0010}, -{0x0009E4, 0x0080}, +{0x0009E4, 0x0001}, {0x0009E6, 0x0002}, {0x0009F0, 0x0004}, {0x0009F2, 0x0040}, @@ -242,173 +246,173 @@ const std::vector> unicode_ranges_flags = { // st {0x0009FC, 0x0004}, {0x0009FD, 0x0020}, {0x0009FE, 0x0010}, -{0x0009FF, 0x0080}, +{0x0009FF, 0x0001}, {0x000A01, 0x0010}, -{0x000A04, 0x0080}, +{0x000A04, 0x0001}, {0x000A05, 0x0004}, -{0x000A0B, 0x0080}, +{0x000A0B, 0x0001}, {0x000A0F, 0x0004}, -{0x000A11, 0x0080}, +{0x000A11, 0x0001}, {0x000A13, 0x0004}, -{0x000A29, 0x0080}, +{0x000A29, 0x0001}, {0x000A2A, 0x0004}, -{0x000A31, 0x0080}, +{0x000A31, 0x0001}, {0x000A32, 0x0004}, -{0x000A34, 0x0080}, +{0x000A34, 0x0001}, {0x000A35, 0x0004}, -{0x000A37, 0x0080}, +{0x000A37, 0x0001}, {0x000A38, 0x0004}, -{0x000A3A, 0x0080}, +{0x000A3A, 0x0001}, {0x000A3C, 0x0010}, -{0x000A3D, 0x0080}, +{0x000A3D, 0x0001}, {0x000A3E, 0x0010}, -{0x000A43, 0x0080}, +{0x000A43, 0x0001}, {0x000A47, 0x0010}, -{0x000A49, 0x0080}, +{0x000A49, 0x0001}, {0x000A4B, 0x0010}, -{0x000A4E, 0x0080}, +{0x000A4E, 0x0001}, {0x000A51, 0x0010}, -{0x000A52, 0x0080}, +{0x000A52, 0x0001}, {0x000A59, 0x0004}, -{0x000A5D, 0x0080}, +{0x000A5D, 0x0001}, {0x000A5E, 0x0004}, -{0x000A5F, 0x0080}, +{0x000A5F, 0x0001}, {0x000A66, 0x0002}, {0x000A70, 0x0010}, {0x000A72, 0x0004}, {0x000A75, 0x0010}, {0x000A76, 0x0020}, -{0x000A77, 0x0080}, +{0x000A77, 0x0001}, {0x000A81, 0x0010}, -{0x000A84, 0x0080}, +{0x000A84, 0x0001}, {0x000A85, 0x0004}, -{0x000A8E, 0x0080}, +{0x000A8E, 0x0001}, {0x000A8F, 0x0004}, -{0x000A92, 0x0080}, +{0x000A92, 0x0001}, {0x000A93, 0x0004}, -{0x000AA9, 0x0080}, +{0x000AA9, 0x0001}, {0x000AAA, 0x0004}, -{0x000AB1, 0x0080}, +{0x000AB1, 0x0001}, {0x000AB2, 0x0004}, -{0x000AB4, 0x0080}, +{0x000AB4, 0x0001}, {0x000AB5, 0x0004}, -{0x000ABA, 0x0080}, +{0x000ABA, 0x0001}, {0x000ABC, 0x0010}, {0x000ABD, 0x0004}, {0x000ABE, 0x0010}, -{0x000AC6, 0x0080}, +{0x000AC6, 0x0001}, {0x000AC7, 0x0010}, -{0x000ACA, 0x0080}, +{0x000ACA, 0x0001}, {0x000ACB, 0x0010}, -{0x000ACE, 0x0080}, +{0x000ACE, 0x0001}, {0x000AD0, 0x0004}, -{0x000AD1, 0x0080}, +{0x000AD1, 0x0001}, {0x000AE0, 0x0004}, {0x000AE2, 0x0010}, -{0x000AE4, 0x0080}, +{0x000AE4, 0x0001}, {0x000AE6, 0x0002}, {0x000AF0, 0x0020}, {0x000AF1, 0x0040}, -{0x000AF2, 0x0080}, +{0x000AF2, 0x0001}, {0x000AF9, 0x0004}, {0x000AFA, 0x0010}, -{0x000B00, 0x0080}, +{0x000B00, 0x0001}, {0x000B01, 0x0010}, -{0x000B04, 0x0080}, +{0x000B04, 0x0001}, {0x000B05, 0x0004}, -{0x000B0D, 0x0080}, +{0x000B0D, 0x0001}, {0x000B0F, 0x0004}, -{0x000B11, 0x0080}, +{0x000B11, 0x0001}, {0x000B13, 0x0004}, -{0x000B29, 0x0080}, +{0x000B29, 0x0001}, {0x000B2A, 0x0004}, -{0x000B31, 0x0080}, +{0x000B31, 0x0001}, {0x000B32, 0x0004}, -{0x000B34, 0x0080}, +{0x000B34, 0x0001}, {0x000B35, 0x0004}, -{0x000B3A, 0x0080}, +{0x000B3A, 0x0001}, {0x000B3C, 0x0010}, {0x000B3D, 0x0004}, {0x000B3E, 0x0010}, -{0x000B45, 0x0080}, +{0x000B45, 0x0001}, {0x000B47, 0x0010}, -{0x000B49, 0x0080}, +{0x000B49, 0x0001}, {0x000B4B, 0x0010}, -{0x000B4E, 0x0080}, +{0x000B4E, 0x0001}, {0x000B55, 0x0010}, -{0x000B58, 0x0080}, +{0x000B58, 0x0001}, {0x000B5C, 0x0004}, -{0x000B5E, 0x0080}, +{0x000B5E, 0x0001}, {0x000B5F, 0x0004}, {0x000B62, 0x0010}, -{0x000B64, 0x0080}, +{0x000B64, 0x0001}, {0x000B66, 0x0002}, {0x000B70, 0x0040}, {0x000B71, 0x0004}, {0x000B72, 0x0002}, -{0x000B78, 0x0080}, +{0x000B78, 0x0001}, {0x000B82, 0x0010}, {0x000B83, 0x0004}, -{0x000B84, 0x0080}, +{0x000B84, 0x0001}, {0x000B85, 0x0004}, -{0x000B8B, 0x0080}, +{0x000B8B, 0x0001}, {0x000B8E, 0x0004}, -{0x000B91, 0x0080}, +{0x000B91, 0x0001}, {0x000B92, 0x0004}, -{0x000B96, 0x0080}, +{0x000B96, 0x0001}, {0x000B99, 0x0004}, -{0x000B9B, 0x0080}, +{0x000B9B, 0x0001}, {0x000B9C, 0x0004}, -{0x000B9D, 0x0080}, +{0x000B9D, 0x0001}, {0x000B9E, 0x0004}, -{0x000BA0, 0x0080}, +{0x000BA0, 0x0001}, {0x000BA3, 0x0004}, -{0x000BA5, 0x0080}, +{0x000BA5, 0x0001}, {0x000BA8, 0x0004}, -{0x000BAB, 0x0080}, +{0x000BAB, 0x0001}, {0x000BAE, 0x0004}, -{0x000BBA, 0x0080}, +{0x000BBA, 0x0001}, {0x000BBE, 0x0010}, -{0x000BC3, 0x0080}, +{0x000BC3, 0x0001}, {0x000BC6, 0x0010}, -{0x000BC9, 0x0080}, +{0x000BC9, 0x0001}, {0x000BCA, 0x0010}, -{0x000BCE, 0x0080}, +{0x000BCE, 0x0001}, {0x000BD0, 0x0004}, -{0x000BD1, 0x0080}, +{0x000BD1, 0x0001}, {0x000BD7, 0x0010}, -{0x000BD8, 0x0080}, +{0x000BD8, 0x0001}, {0x000BE6, 0x0002}, {0x000BF3, 0x0040}, -{0x000BFB, 0x0080}, +{0x000BFB, 0x0001}, {0x000C00, 0x0010}, {0x000C05, 0x0004}, -{0x000C0D, 0x0080}, +{0x000C0D, 0x0001}, {0x000C0E, 0x0004}, -{0x000C11, 0x0080}, +{0x000C11, 0x0001}, {0x000C12, 0x0004}, -{0x000C29, 0x0080}, +{0x000C29, 0x0001}, {0x000C2A, 0x0004}, -{0x000C3A, 0x0080}, +{0x000C3A, 0x0001}, {0x000C3C, 0x0010}, {0x000C3D, 0x0004}, {0x000C3E, 0x0010}, -{0x000C45, 0x0080}, +{0x000C45, 0x0001}, {0x000C46, 0x0010}, -{0x000C49, 0x0080}, +{0x000C49, 0x0001}, {0x000C4A, 0x0010}, -{0x000C4E, 0x0080}, +{0x000C4E, 0x0001}, {0x000C55, 0x0010}, -{0x000C57, 0x0080}, +{0x000C57, 0x0001}, {0x000C58, 0x0004}, -{0x000C5B, 0x0080}, +{0x000C5B, 0x0001}, {0x000C5D, 0x0004}, -{0x000C5E, 0x0080}, +{0x000C5E, 0x0001}, {0x000C60, 0x0004}, {0x000C62, 0x0010}, -{0x000C64, 0x0080}, +{0x000C64, 0x0001}, {0x000C66, 0x0002}, -{0x000C70, 0x0080}, +{0x000C70, 0x0001}, {0x000C77, 0x0020}, {0x000C78, 0x0002}, {0x000C7F, 0x0040}, @@ -416,124 +420,124 @@ const std::vector> unicode_ranges_flags = { // st {0x000C81, 0x0010}, {0x000C84, 0x0020}, {0x000C85, 0x0004}, -{0x000C8D, 0x0080}, +{0x000C8D, 0x0001}, {0x000C8E, 0x0004}, -{0x000C91, 0x0080}, +{0x000C91, 0x0001}, {0x000C92, 0x0004}, -{0x000CA9, 0x0080}, +{0x000CA9, 0x0001}, {0x000CAA, 0x0004}, -{0x000CB4, 0x0080}, +{0x000CB4, 0x0001}, {0x000CB5, 0x0004}, -{0x000CBA, 0x0080}, +{0x000CBA, 0x0001}, {0x000CBC, 0x0010}, {0x000CBD, 0x0004}, {0x000CBE, 0x0010}, -{0x000CC5, 0x0080}, +{0x000CC5, 0x0001}, {0x000CC6, 0x0010}, -{0x000CC9, 0x0080}, +{0x000CC9, 0x0001}, {0x000CCA, 0x0010}, -{0x000CCE, 0x0080}, +{0x000CCE, 0x0001}, {0x000CD5, 0x0010}, -{0x000CD7, 0x0080}, +{0x000CD7, 0x0001}, {0x000CDD, 0x0004}, -{0x000CDF, 0x0080}, +{0x000CDF, 0x0001}, {0x000CE0, 0x0004}, {0x000CE2, 0x0010}, -{0x000CE4, 0x0080}, +{0x000CE4, 0x0001}, {0x000CE6, 0x0002}, -{0x000CF0, 0x0080}, +{0x000CF0, 0x0001}, {0x000CF1, 0x0004}, {0x000CF3, 0x0010}, -{0x000CF4, 0x0080}, +{0x000CF4, 0x0001}, {0x000D00, 0x0010}, {0x000D04, 0x0004}, -{0x000D0D, 0x0080}, +{0x000D0D, 0x0001}, {0x000D0E, 0x0004}, -{0x000D11, 0x0080}, +{0x000D11, 0x0001}, {0x000D12, 0x0004}, {0x000D3B, 0x0010}, {0x000D3D, 0x0004}, {0x000D3E, 0x0010}, -{0x000D45, 0x0080}, +{0x000D45, 0x0001}, {0x000D46, 0x0010}, -{0x000D49, 0x0080}, +{0x000D49, 0x0001}, {0x000D4A, 0x0010}, {0x000D4E, 0x0004}, {0x000D4F, 0x0040}, -{0x000D50, 0x0080}, +{0x000D50, 0x0001}, {0x000D54, 0x0004}, {0x000D57, 0x0010}, {0x000D58, 0x0002}, {0x000D5F, 0x0004}, {0x000D62, 0x0010}, -{0x000D64, 0x0080}, +{0x000D64, 0x0001}, {0x000D66, 0x0002}, {0x000D79, 0x0040}, {0x000D7A, 0x0004}, -{0x000D80, 0x0080}, +{0x000D80, 0x0001}, {0x000D81, 0x0010}, -{0x000D84, 0x0080}, +{0x000D84, 0x0001}, {0x000D85, 0x0004}, -{0x000D97, 0x0080}, +{0x000D97, 0x0001}, {0x000D9A, 0x0004}, -{0x000DB2, 0x0080}, +{0x000DB2, 0x0001}, {0x000DB3, 0x0004}, -{0x000DBC, 0x0080}, +{0x000DBC, 0x0001}, {0x000DBD, 0x0004}, -{0x000DBE, 0x0080}, +{0x000DBE, 0x0001}, {0x000DC0, 0x0004}, -{0x000DC7, 0x0080}, +{0x000DC7, 0x0001}, {0x000DCA, 0x0010}, -{0x000DCB, 0x0080}, +{0x000DCB, 0x0001}, {0x000DCF, 0x0010}, -{0x000DD5, 0x0080}, +{0x000DD5, 0x0001}, {0x000DD6, 0x0010}, -{0x000DD7, 0x0080}, +{0x000DD7, 0x0001}, {0x000DD8, 0x0010}, -{0x000DE0, 0x0080}, +{0x000DE0, 0x0001}, {0x000DE6, 0x0002}, -{0x000DF0, 0x0080}, +{0x000DF0, 0x0001}, {0x000DF2, 0x0010}, {0x000DF4, 0x0020}, -{0x000DF5, 0x0080}, +{0x000DF5, 0x0001}, {0x000E01, 0x0004}, {0x000E31, 0x0010}, {0x000E32, 0x0004}, {0x000E34, 0x0010}, -{0x000E3B, 0x0080}, +{0x000E3B, 0x0001}, {0x000E3F, 0x0040}, {0x000E40, 0x0004}, {0x000E47, 0x0010}, {0x000E4F, 0x0020}, {0x000E50, 0x0002}, {0x000E5A, 0x0020}, -{0x000E5C, 0x0080}, +{0x000E5C, 0x0001}, {0x000E81, 0x0004}, -{0x000E83, 0x0080}, +{0x000E83, 0x0001}, {0x000E84, 0x0004}, -{0x000E85, 0x0080}, +{0x000E85, 0x0001}, {0x000E86, 0x0004}, -{0x000E8B, 0x0080}, +{0x000E8B, 0x0001}, {0x000E8C, 0x0004}, -{0x000EA4, 0x0080}, +{0x000EA4, 0x0001}, {0x000EA5, 0x0004}, -{0x000EA6, 0x0080}, +{0x000EA6, 0x0001}, {0x000EA7, 0x0004}, {0x000EB1, 0x0010}, {0x000EB2, 0x0004}, {0x000EB4, 0x0010}, {0x000EBD, 0x0004}, -{0x000EBE, 0x0080}, +{0x000EBE, 0x0001}, {0x000EC0, 0x0004}, -{0x000EC5, 0x0080}, +{0x000EC5, 0x0001}, {0x000EC6, 0x0004}, -{0x000EC7, 0x0080}, +{0x000EC7, 0x0001}, {0x000EC8, 0x0010}, -{0x000ECF, 0x0080}, +{0x000ECF, 0x0001}, {0x000ED0, 0x0002}, -{0x000EDA, 0x0080}, +{0x000EDA, 0x0001}, {0x000EDC, 0x0004}, -{0x000EE0, 0x0080}, +{0x000EE0, 0x0001}, {0x000F00, 0x0004}, {0x000F01, 0x0040}, {0x000F04, 0x0020}, @@ -552,26 +556,26 @@ const std::vector> unicode_ranges_flags = { // st {0x000F3A, 0x0020}, {0x000F3E, 0x0010}, {0x000F40, 0x0004}, -{0x000F48, 0x0080}, +{0x000F48, 0x0001}, {0x000F49, 0x0004}, -{0x000F6D, 0x0080}, +{0x000F6D, 0x0001}, {0x000F71, 0x0010}, {0x000F85, 0x0020}, {0x000F86, 0x0010}, {0x000F88, 0x0004}, {0x000F8D, 0x0010}, -{0x000F98, 0x0080}, +{0x000F98, 0x0001}, {0x000F99, 0x0010}, -{0x000FBD, 0x0080}, +{0x000FBD, 0x0001}, {0x000FBE, 0x0040}, {0x000FC6, 0x0010}, {0x000FC7, 0x0040}, -{0x000FCD, 0x0080}, +{0x000FCD, 0x0001}, {0x000FCE, 0x0040}, {0x000FD0, 0x0020}, {0x000FD5, 0x0040}, {0x000FD9, 0x0020}, -{0x000FDB, 0x0080}, +{0x000FDB, 0x0001}, {0x001000, 0x0004}, {0x00102B, 0x0010}, {0x00103F, 0x0004}, @@ -595,56 +599,56 @@ const std::vector> unicode_ranges_flags = { // st {0x00109A, 0x0010}, {0x00109E, 0x0040}, {0x0010A0, 0x0004}, -{0x0010C6, 0x0080}, +{0x0010C6, 0x0001}, {0x0010C7, 0x0004}, -{0x0010C8, 0x0080}, +{0x0010C8, 0x0001}, {0x0010CD, 0x0004}, -{0x0010CE, 0x0080}, +{0x0010CE, 0x0001}, {0x0010D0, 0x0004}, {0x0010FB, 0x0020}, {0x0010FC, 0x0004}, -{0x001249, 0x0080}, +{0x001249, 0x0001}, {0x00124A, 0x0004}, -{0x00124E, 0x0080}, +{0x00124E, 0x0001}, {0x001250, 0x0004}, -{0x001257, 0x0080}, +{0x001257, 0x0001}, {0x001258, 0x0004}, -{0x001259, 0x0080}, +{0x001259, 0x0001}, {0x00125A, 0x0004}, -{0x00125E, 0x0080}, +{0x00125E, 0x0001}, {0x001260, 0x0004}, -{0x001289, 0x0080}, +{0x001289, 0x0001}, {0x00128A, 0x0004}, -{0x00128E, 0x0080}, +{0x00128E, 0x0001}, {0x001290, 0x0004}, -{0x0012B1, 0x0080}, +{0x0012B1, 0x0001}, {0x0012B2, 0x0004}, -{0x0012B6, 0x0080}, +{0x0012B6, 0x0001}, {0x0012B8, 0x0004}, -{0x0012BF, 0x0080}, +{0x0012BF, 0x0001}, {0x0012C0, 0x0004}, -{0x0012C1, 0x0080}, +{0x0012C1, 0x0001}, {0x0012C2, 0x0004}, -{0x0012C6, 0x0080}, +{0x0012C6, 0x0001}, {0x0012C8, 0x0004}, -{0x0012D7, 0x0080}, +{0x0012D7, 0x0001}, {0x0012D8, 0x0004}, -{0x001311, 0x0080}, +{0x001311, 0x0001}, {0x001312, 0x0004}, -{0x001316, 0x0080}, +{0x001316, 0x0001}, {0x001318, 0x0004}, -{0x00135B, 0x0080}, +{0x00135B, 0x0001}, {0x00135D, 0x0010}, {0x001360, 0x0020}, {0x001369, 0x0002}, -{0x00137D, 0x0080}, +{0x00137D, 0x0001}, {0x001380, 0x0004}, {0x001390, 0x0040}, -{0x00139A, 0x0080}, +{0x00139A, 0x0001}, {0x0013A0, 0x0004}, -{0x0013F6, 0x0080}, +{0x0013F6, 0x0001}, {0x0013F8, 0x0004}, -{0x0013FE, 0x0080}, +{0x0013FE, 0x0001}, {0x001400, 0x0020}, {0x001401, 0x0004}, {0x00166D, 0x0040}, @@ -653,28 +657,28 @@ const std::vector> unicode_ranges_flags = { // st {0x001680, 0x0008}, {0x001681, 0x0004}, {0x00169B, 0x0020}, -{0x00169D, 0x0080}, +{0x00169D, 0x0001}, {0x0016A0, 0x0004}, {0x0016EB, 0x0020}, {0x0016EE, 0x0002}, {0x0016F1, 0x0004}, -{0x0016F9, 0x0080}, +{0x0016F9, 0x0001}, {0x001700, 0x0004}, {0x001712, 0x0010}, -{0x001716, 0x0080}, +{0x001716, 0x0001}, {0x00171F, 0x0004}, {0x001732, 0x0010}, {0x001735, 0x0020}, -{0x001737, 0x0080}, +{0x001737, 0x0001}, {0x001740, 0x0004}, {0x001752, 0x0010}, -{0x001754, 0x0080}, +{0x001754, 0x0001}, {0x001760, 0x0004}, -{0x00176D, 0x0080}, +{0x00176D, 0x0001}, {0x00176E, 0x0004}, -{0x001771, 0x0080}, +{0x001771, 0x0001}, {0x001772, 0x0010}, -{0x001774, 0x0080}, +{0x001774, 0x0001}, {0x001780, 0x0004}, {0x0017B4, 0x0010}, {0x0017D4, 0x0020}, @@ -683,80 +687,80 @@ const std::vector> unicode_ranges_flags = { // st {0x0017DB, 0x0040}, {0x0017DC, 0x0004}, {0x0017DD, 0x0010}, -{0x0017DE, 0x0080}, +{0x0017DE, 0x0001}, {0x0017E0, 0x0002}, -{0x0017EA, 0x0080}, +{0x0017EA, 0x0001}, {0x0017F0, 0x0002}, -{0x0017FA, 0x0080}, +{0x0017FA, 0x0001}, {0x001800, 0x0020}, {0x00180B, 0x0010}, {0x00180E, 0x0080}, {0x00180F, 0x0010}, {0x001810, 0x0002}, -{0x00181A, 0x0080}, +{0x00181A, 0x0001}, {0x001820, 0x0004}, -{0x001879, 0x0080}, +{0x001879, 0x0001}, {0x001880, 0x0004}, {0x001885, 0x0010}, {0x001887, 0x0004}, {0x0018A9, 0x0010}, {0x0018AA, 0x0004}, -{0x0018AB, 0x0080}, +{0x0018AB, 0x0001}, {0x0018B0, 0x0004}, -{0x0018F6, 0x0080}, +{0x0018F6, 0x0001}, {0x001900, 0x0004}, -{0x00191F, 0x0080}, +{0x00191F, 0x0001}, {0x001920, 0x0010}, -{0x00192C, 0x0080}, +{0x00192C, 0x0001}, {0x001930, 0x0010}, -{0x00193C, 0x0080}, +{0x00193C, 0x0001}, {0x001940, 0x0040}, -{0x001941, 0x0080}, +{0x001941, 0x0001}, {0x001944, 0x0020}, {0x001946, 0x0002}, {0x001950, 0x0004}, -{0x00196E, 0x0080}, +{0x00196E, 0x0001}, {0x001970, 0x0004}, -{0x001975, 0x0080}, +{0x001975, 0x0001}, {0x001980, 0x0004}, -{0x0019AC, 0x0080}, +{0x0019AC, 0x0001}, {0x0019B0, 0x0004}, -{0x0019CA, 0x0080}, +{0x0019CA, 0x0001}, {0x0019D0, 0x0002}, -{0x0019DB, 0x0080}, +{0x0019DB, 0x0001}, {0x0019DE, 0x0040}, {0x001A00, 0x0004}, {0x001A17, 0x0010}, -{0x001A1C, 0x0080}, +{0x001A1C, 0x0001}, {0x001A1E, 0x0020}, {0x001A20, 0x0004}, {0x001A55, 0x0010}, -{0x001A5F, 0x0080}, +{0x001A5F, 0x0001}, {0x001A60, 0x0010}, -{0x001A7D, 0x0080}, +{0x001A7D, 0x0001}, {0x001A7F, 0x0010}, {0x001A80, 0x0002}, -{0x001A8A, 0x0080}, +{0x001A8A, 0x0001}, {0x001A90, 0x0002}, -{0x001A9A, 0x0080}, +{0x001A9A, 0x0001}, {0x001AA0, 0x0020}, {0x001AA7, 0x0004}, {0x001AA8, 0x0020}, -{0x001AAE, 0x0080}, +{0x001AAE, 0x0001}, {0x001AB0, 0x0010}, -{0x001ACF, 0x0080}, +{0x001ACF, 0x0001}, {0x001B00, 0x0010}, {0x001B05, 0x0004}, {0x001B34, 0x0010}, {0x001B45, 0x0004}, -{0x001B4D, 0x0080}, +{0x001B4D, 0x0001}, {0x001B50, 0x0002}, {0x001B5A, 0x0020}, {0x001B61, 0x0040}, {0x001B6B, 0x0010}, {0x001B74, 0x0040}, {0x001B7D, 0x0020}, -{0x001B7F, 0x0080}, +{0x001B7F, 0x0001}, {0x001B80, 0x0010}, {0x001B83, 0x0004}, {0x001BA1, 0x0010}, @@ -764,25 +768,25 @@ const std::vector> unicode_ranges_flags = { // st {0x001BB0, 0x0002}, {0x001BBA, 0x0004}, {0x001BE6, 0x0010}, -{0x001BF4, 0x0080}, +{0x001BF4, 0x0001}, {0x001BFC, 0x0020}, {0x001C00, 0x0004}, {0x001C24, 0x0010}, -{0x001C38, 0x0080}, +{0x001C38, 0x0001}, {0x001C3B, 0x0020}, {0x001C40, 0x0002}, -{0x001C4A, 0x0080}, +{0x001C4A, 0x0001}, {0x001C4D, 0x0004}, {0x001C50, 0x0002}, {0x001C5A, 0x0004}, {0x001C7E, 0x0020}, {0x001C80, 0x0004}, -{0x001C89, 0x0080}, +{0x001C89, 0x0001}, {0x001C90, 0x0004}, -{0x001CBB, 0x0080}, +{0x001CBB, 0x0001}, {0x001CBD, 0x0004}, {0x001CC0, 0x0020}, -{0x001CC8, 0x0080}, +{0x001CC8, 0x0001}, {0x001CD0, 0x0010}, {0x001CD3, 0x0020}, {0x001CD4, 0x0010}, @@ -793,50 +797,50 @@ const std::vector> unicode_ranges_flags = { // st {0x001CF5, 0x0004}, {0x001CF7, 0x0010}, {0x001CFA, 0x0004}, -{0x001CFB, 0x0080}, +{0x001CFB, 0x0001}, {0x001D00, 0x0004}, {0x001DC0, 0x0010}, {0x001E00, 0x0004}, -{0x001F16, 0x0080}, +{0x001F16, 0x0001}, {0x001F18, 0x0004}, -{0x001F1E, 0x0080}, +{0x001F1E, 0x0001}, {0x001F20, 0x0004}, -{0x001F46, 0x0080}, +{0x001F46, 0x0001}, {0x001F48, 0x0004}, -{0x001F4E, 0x0080}, +{0x001F4E, 0x0001}, {0x001F50, 0x0004}, -{0x001F58, 0x0080}, +{0x001F58, 0x0001}, {0x001F59, 0x0004}, -{0x001F5A, 0x0080}, +{0x001F5A, 0x0001}, {0x001F5B, 0x0004}, -{0x001F5C, 0x0080}, +{0x001F5C, 0x0001}, {0x001F5D, 0x0004}, -{0x001F5E, 0x0080}, +{0x001F5E, 0x0001}, {0x001F5F, 0x0004}, -{0x001F7E, 0x0080}, +{0x001F7E, 0x0001}, {0x001F80, 0x0004}, -{0x001FB5, 0x0080}, +{0x001FB5, 0x0001}, {0x001FB6, 0x0004}, {0x001FBD, 0x0040}, {0x001FBE, 0x0004}, {0x001FBF, 0x0040}, {0x001FC2, 0x0004}, -{0x001FC5, 0x0080}, +{0x001FC5, 0x0001}, {0x001FC6, 0x0004}, {0x001FCD, 0x0040}, {0x001FD0, 0x0004}, -{0x001FD4, 0x0080}, +{0x001FD4, 0x0001}, {0x001FD6, 0x0004}, -{0x001FDC, 0x0080}, +{0x001FDC, 0x0001}, {0x001FDD, 0x0040}, {0x001FE0, 0x0004}, {0x001FED, 0x0040}, -{0x001FF0, 0x0080}, +{0x001FF0, 0x0001}, {0x001FF2, 0x0004}, -{0x001FF5, 0x0080}, +{0x001FF5, 0x0001}, {0x001FF6, 0x0004}, {0x001FFD, 0x0040}, -{0x001FFF, 0x0080}, +{0x001FFF, 0x0001}, {0x002000, 0x0008}, {0x00200B, 0x0080}, {0x002010, 0x0020}, @@ -850,9 +854,11 @@ const std::vector> unicode_ranges_flags = { // st {0x002053, 0x0020}, {0x00205F, 0x0008}, {0x002060, 0x0080}, +{0x002065, 0x0001}, +{0x002066, 0x0080}, {0x002070, 0x0002}, {0x002071, 0x0004}, -{0x002072, 0x0080}, +{0x002072, 0x0001}, {0x002074, 0x0002}, {0x00207A, 0x0040}, {0x00207D, 0x0020}, @@ -860,13 +866,13 @@ const std::vector> unicode_ranges_flags = { // st {0x002080, 0x0002}, {0x00208A, 0x0040}, {0x00208D, 0x0020}, -{0x00208F, 0x0080}, +{0x00208F, 0x0001}, {0x002090, 0x0004}, -{0x00209D, 0x0080}, +{0x00209D, 0x0001}, {0x0020A0, 0x0040}, -{0x0020C1, 0x0080}, +{0x0020C1, 0x0001}, {0x0020D0, 0x0010}, -{0x0020F1, 0x0080}, +{0x0020F1, 0x0001}, {0x002100, 0x0040}, {0x002102, 0x0004}, {0x002103, 0x0040}, @@ -898,15 +904,15 @@ const std::vector> unicode_ranges_flags = { // st {0x002183, 0x0004}, {0x002185, 0x0002}, {0x00218A, 0x0040}, -{0x00218C, 0x0080}, +{0x00218C, 0x0001}, {0x002190, 0x0040}, {0x002308, 0x0020}, {0x00230C, 0x0040}, {0x002329, 0x0020}, {0x00232B, 0x0040}, -{0x002427, 0x0080}, +{0x002427, 0x0001}, {0x002440, 0x0040}, -{0x00244B, 0x0080}, +{0x00244B, 0x0001}, {0x002460, 0x0002}, {0x00249C, 0x0040}, {0x0024EA, 0x0002}, @@ -924,62 +930,62 @@ const std::vector> unicode_ranges_flags = { // st {0x0029DC, 0x0040}, {0x0029FC, 0x0020}, {0x0029FE, 0x0040}, -{0x002B74, 0x0080}, +{0x002B74, 0x0001}, {0x002B76, 0x0040}, -{0x002B96, 0x0080}, +{0x002B96, 0x0001}, {0x002B97, 0x0040}, {0x002C00, 0x0004}, {0x002CE5, 0x0040}, {0x002CEB, 0x0004}, {0x002CEF, 0x0010}, {0x002CF2, 0x0004}, -{0x002CF4, 0x0080}, +{0x002CF4, 0x0001}, {0x002CF9, 0x0020}, {0x002CFD, 0x0002}, {0x002CFE, 0x0020}, {0x002D00, 0x0004}, -{0x002D26, 0x0080}, +{0x002D26, 0x0001}, {0x002D27, 0x0004}, -{0x002D28, 0x0080}, +{0x002D28, 0x0001}, {0x002D2D, 0x0004}, -{0x002D2E, 0x0080}, +{0x002D2E, 0x0001}, {0x002D30, 0x0004}, -{0x002D68, 0x0080}, +{0x002D68, 0x0001}, {0x002D6F, 0x0004}, {0x002D70, 0x0020}, -{0x002D71, 0x0080}, +{0x002D71, 0x0001}, {0x002D7F, 0x0010}, {0x002D80, 0x0004}, -{0x002D97, 0x0080}, +{0x002D97, 0x0001}, {0x002DA0, 0x0004}, -{0x002DA7, 0x0080}, +{0x002DA7, 0x0001}, {0x002DA8, 0x0004}, -{0x002DAF, 0x0080}, +{0x002DAF, 0x0001}, {0x002DB0, 0x0004}, -{0x002DB7, 0x0080}, +{0x002DB7, 0x0001}, {0x002DB8, 0x0004}, -{0x002DBF, 0x0080}, +{0x002DBF, 0x0001}, {0x002DC0, 0x0004}, -{0x002DC7, 0x0080}, +{0x002DC7, 0x0001}, {0x002DC8, 0x0004}, -{0x002DCF, 0x0080}, +{0x002DCF, 0x0001}, {0x002DD0, 0x0004}, -{0x002DD7, 0x0080}, +{0x002DD7, 0x0001}, {0x002DD8, 0x0004}, -{0x002DDF, 0x0080}, +{0x002DDF, 0x0001}, {0x002DE0, 0x0010}, {0x002E00, 0x0020}, {0x002E2F, 0x0004}, {0x002E30, 0x0020}, {0x002E50, 0x0040}, {0x002E52, 0x0020}, -{0x002E5E, 0x0080}, +{0x002E5E, 0x0001}, {0x002E80, 0x0040}, -{0x002E9A, 0x0080}, +{0x002E9A, 0x0001}, {0x002E9B, 0x0040}, -{0x002EF4, 0x0080}, +{0x002EF4, 0x0001}, {0x002F00, 0x0040}, -{0x002FD6, 0x0080}, +{0x002FD6, 0x0001}, {0x002FF0, 0x0040}, {0x003000, 0x0008}, {0x003001, 0x0020}, @@ -999,9 +1005,9 @@ const std::vector> unicode_ranges_flags = { // st {0x00303B, 0x0004}, {0x00303D, 0x0020}, {0x00303E, 0x0040}, -{0x003040, 0x0080}, +{0x003040, 0x0001}, {0x003041, 0x0004}, -{0x003097, 0x0080}, +{0x003097, 0x0001}, {0x003099, 0x0010}, {0x00309B, 0x0040}, {0x00309D, 0x0004}, @@ -1009,21 +1015,21 @@ const std::vector> unicode_ranges_flags = { // st {0x0030A1, 0x0004}, {0x0030FB, 0x0020}, {0x0030FC, 0x0004}, -{0x003100, 0x0080}, +{0x003100, 0x0001}, {0x003105, 0x0004}, -{0x003130, 0x0080}, +{0x003130, 0x0001}, {0x003131, 0x0004}, -{0x00318F, 0x0080}, +{0x00318F, 0x0001}, {0x003190, 0x0040}, {0x003192, 0x0002}, {0x003196, 0x0040}, {0x0031A0, 0x0004}, {0x0031C0, 0x0040}, -{0x0031E4, 0x0080}, +{0x0031E4, 0x0001}, {0x0031EF, 0x0040}, {0x0031F0, 0x0004}, {0x003200, 0x0040}, -{0x00321F, 0x0080}, +{0x00321F, 0x0001}, {0x003220, 0x0002}, {0x00322A, 0x0040}, {0x003248, 0x0002}, @@ -1037,9 +1043,9 @@ const std::vector> unicode_ranges_flags = { // st {0x003400, 0x0004}, {0x004DC0, 0x0040}, {0x004E00, 0x0004}, -{0x00A48D, 0x0080}, +{0x00A48D, 0x0001}, {0x00A490, 0x0040}, -{0x00A4C7, 0x0080}, +{0x00A4C7, 0x0001}, {0x00A4D0, 0x0004}, {0x00A4FE, 0x0020}, {0x00A500, 0x0004}, @@ -1047,7 +1053,7 @@ const std::vector> unicode_ranges_flags = { // st {0x00A610, 0x0004}, {0x00A620, 0x0002}, {0x00A62A, 0x0004}, -{0x00A62C, 0x0080}, +{0x00A62C, 0x0001}, {0x00A640, 0x0004}, {0x00A66F, 0x0010}, {0x00A673, 0x0020}, @@ -1059,20 +1065,20 @@ const std::vector> unicode_ranges_flags = { // st {0x00A6E6, 0x0002}, {0x00A6F0, 0x0010}, {0x00A6F2, 0x0020}, -{0x00A6F8, 0x0080}, +{0x00A6F8, 0x0001}, {0x00A700, 0x0040}, {0x00A717, 0x0004}, {0x00A720, 0x0040}, {0x00A722, 0x0004}, {0x00A789, 0x0040}, {0x00A78B, 0x0004}, -{0x00A7CB, 0x0080}, +{0x00A7CB, 0x0001}, {0x00A7D0, 0x0004}, -{0x00A7D2, 0x0080}, +{0x00A7D2, 0x0001}, {0x00A7D3, 0x0004}, -{0x00A7D4, 0x0080}, +{0x00A7D4, 0x0001}, {0x00A7D5, 0x0004}, -{0x00A7DA, 0x0080}, +{0x00A7DA, 0x0001}, {0x00A7F2, 0x0004}, {0x00A802, 0x0010}, {0x00A803, 0x0004}, @@ -1083,20 +1089,20 @@ const std::vector> unicode_ranges_flags = { // st {0x00A823, 0x0010}, {0x00A828, 0x0040}, {0x00A82C, 0x0010}, -{0x00A82D, 0x0080}, +{0x00A82D, 0x0001}, {0x00A830, 0x0002}, {0x00A836, 0x0040}, -{0x00A83A, 0x0080}, +{0x00A83A, 0x0001}, {0x00A840, 0x0004}, {0x00A874, 0x0020}, -{0x00A878, 0x0080}, +{0x00A878, 0x0001}, {0x00A880, 0x0010}, {0x00A882, 0x0004}, {0x00A8B4, 0x0010}, -{0x00A8C6, 0x0080}, +{0x00A8C6, 0x0001}, {0x00A8CE, 0x0020}, {0x00A8D0, 0x0002}, -{0x00A8DA, 0x0080}, +{0x00A8DA, 0x0001}, {0x00A8E0, 0x0010}, {0x00A8F2, 0x0004}, {0x00A8F8, 0x0020}, @@ -1110,35 +1116,35 @@ const std::vector> unicode_ranges_flags = { // st {0x00A92E, 0x0020}, {0x00A930, 0x0004}, {0x00A947, 0x0010}, -{0x00A954, 0x0080}, +{0x00A954, 0x0001}, {0x00A95F, 0x0020}, {0x00A960, 0x0004}, -{0x00A97D, 0x0080}, +{0x00A97D, 0x0001}, {0x00A980, 0x0010}, {0x00A984, 0x0004}, {0x00A9B3, 0x0010}, {0x00A9C1, 0x0020}, -{0x00A9CE, 0x0080}, +{0x00A9CE, 0x0001}, {0x00A9CF, 0x0004}, {0x00A9D0, 0x0002}, -{0x00A9DA, 0x0080}, +{0x00A9DA, 0x0001}, {0x00A9DE, 0x0020}, {0x00A9E0, 0x0004}, {0x00A9E5, 0x0010}, {0x00A9E6, 0x0004}, {0x00A9F0, 0x0002}, {0x00A9FA, 0x0004}, -{0x00A9FF, 0x0080}, +{0x00A9FF, 0x0001}, {0x00AA00, 0x0004}, {0x00AA29, 0x0010}, -{0x00AA37, 0x0080}, +{0x00AA37, 0x0001}, {0x00AA40, 0x0004}, {0x00AA43, 0x0010}, {0x00AA44, 0x0004}, {0x00AA4C, 0x0010}, -{0x00AA4E, 0x0080}, +{0x00AA4E, 0x0001}, {0x00AA50, 0x0002}, -{0x00AA5A, 0x0080}, +{0x00AA5A, 0x0001}, {0x00AA5C, 0x0020}, {0x00AA60, 0x0004}, {0x00AA77, 0x0040}, @@ -1155,7 +1161,7 @@ const std::vector> unicode_ranges_flags = { // st {0x00AAC0, 0x0004}, {0x00AAC1, 0x0010}, {0x00AAC2, 0x0004}, -{0x00AAC3, 0x0080}, +{0x00AAC3, 0x0001}, {0x00AADB, 0x0004}, {0x00AADE, 0x0020}, {0x00AAE0, 0x0004}, @@ -1163,90 +1169,93 @@ const std::vector> unicode_ranges_flags = { // st {0x00AAF0, 0x0020}, {0x00AAF2, 0x0004}, {0x00AAF5, 0x0010}, -{0x00AAF7, 0x0080}, +{0x00AAF7, 0x0001}, {0x00AB01, 0x0004}, -{0x00AB07, 0x0080}, +{0x00AB07, 0x0001}, {0x00AB09, 0x0004}, -{0x00AB0F, 0x0080}, +{0x00AB0F, 0x0001}, {0x00AB11, 0x0004}, -{0x00AB17, 0x0080}, +{0x00AB17, 0x0001}, {0x00AB20, 0x0004}, -{0x00AB27, 0x0080}, +{0x00AB27, 0x0001}, {0x00AB28, 0x0004}, -{0x00AB2F, 0x0080}, +{0x00AB2F, 0x0001}, {0x00AB30, 0x0004}, {0x00AB5B, 0x0040}, {0x00AB5C, 0x0004}, {0x00AB6A, 0x0040}, -{0x00AB6C, 0x0080}, +{0x00AB6C, 0x0001}, {0x00AB70, 0x0004}, {0x00ABE3, 0x0010}, {0x00ABEB, 0x0020}, {0x00ABEC, 0x0010}, -{0x00ABEE, 0x0080}, +{0x00ABEE, 0x0001}, {0x00ABF0, 0x0002}, -{0x00ABFA, 0x0080}, +{0x00ABFA, 0x0001}, {0x00AC00, 0x0004}, -{0x00D7A4, 0x0080}, +{0x00D7A4, 0x0001}, {0x00D7B0, 0x0004}, -{0x00D7C7, 0x0080}, +{0x00D7C7, 0x0001}, {0x00D7CB, 0x0004}, -{0x00D7FC, 0x0080}, +{0x00D7FC, 0x0001}, +{0x00D800, 0x0080}, {0x00F900, 0x0004}, -{0x00FA6E, 0x0080}, +{0x00FA6E, 0x0001}, {0x00FA70, 0x0004}, -{0x00FADA, 0x0080}, +{0x00FADA, 0x0001}, {0x00FB00, 0x0004}, -{0x00FB07, 0x0080}, +{0x00FB07, 0x0001}, {0x00FB13, 0x0004}, -{0x00FB18, 0x0080}, +{0x00FB18, 0x0001}, {0x00FB1D, 0x0004}, {0x00FB1E, 0x0010}, {0x00FB1F, 0x0004}, {0x00FB29, 0x0040}, {0x00FB2A, 0x0004}, -{0x00FB37, 0x0080}, +{0x00FB37, 0x0001}, {0x00FB38, 0x0004}, -{0x00FB3D, 0x0080}, +{0x00FB3D, 0x0001}, {0x00FB3E, 0x0004}, -{0x00FB3F, 0x0080}, +{0x00FB3F, 0x0001}, {0x00FB40, 0x0004}, -{0x00FB42, 0x0080}, +{0x00FB42, 0x0001}, {0x00FB43, 0x0004}, -{0x00FB45, 0x0080}, +{0x00FB45, 0x0001}, {0x00FB46, 0x0004}, {0x00FBB2, 0x0040}, -{0x00FBC3, 0x0080}, +{0x00FBC3, 0x0001}, {0x00FBD3, 0x0004}, {0x00FD3E, 0x0020}, {0x00FD40, 0x0040}, {0x00FD50, 0x0004}, -{0x00FD90, 0x0080}, +{0x00FD90, 0x0001}, {0x00FD92, 0x0004}, -{0x00FDC8, 0x0080}, +{0x00FDC8, 0x0001}, {0x00FDCF, 0x0040}, -{0x00FDD0, 0x0080}, +{0x00FDD0, 0x0001}, {0x00FDF0, 0x0004}, {0x00FDFC, 0x0040}, {0x00FE00, 0x0010}, {0x00FE10, 0x0020}, -{0x00FE1A, 0x0080}, +{0x00FE1A, 0x0001}, {0x00FE20, 0x0010}, {0x00FE30, 0x0020}, -{0x00FE53, 0x0080}, +{0x00FE53, 0x0001}, {0x00FE54, 0x0020}, {0x00FE62, 0x0040}, {0x00FE63, 0x0020}, {0x00FE64, 0x0040}, -{0x00FE67, 0x0080}, +{0x00FE67, 0x0001}, {0x00FE68, 0x0020}, {0x00FE69, 0x0040}, {0x00FE6A, 0x0020}, -{0x00FE6C, 0x0080}, +{0x00FE6C, 0x0001}, {0x00FE70, 0x0004}, -{0x00FE75, 0x0080}, +{0x00FE75, 0x0001}, {0x00FE76, 0x0004}, -{0x00FEFD, 0x0080}, +{0x00FEFD, 0x0001}, +{0x00FEFF, 0x0080}, +{0x00FF00, 0x0001}, {0x00FF01, 0x0020}, {0x00FF04, 0x0040}, {0x00FF05, 0x0020}, @@ -1268,260 +1277,261 @@ const std::vector> unicode_ranges_flags = { // st {0x00FF5E, 0x0040}, {0x00FF5F, 0x0020}, {0x00FF66, 0x0004}, -{0x00FFBF, 0x0080}, +{0x00FFBF, 0x0001}, {0x00FFC2, 0x0004}, -{0x00FFC8, 0x0080}, +{0x00FFC8, 0x0001}, {0x00FFCA, 0x0004}, -{0x00FFD0, 0x0080}, +{0x00FFD0, 0x0001}, {0x00FFD2, 0x0004}, -{0x00FFD8, 0x0080}, +{0x00FFD8, 0x0001}, {0x00FFDA, 0x0004}, -{0x00FFDD, 0x0080}, +{0x00FFDD, 0x0001}, {0x00FFE0, 0x0040}, -{0x00FFE7, 0x0080}, +{0x00FFE7, 0x0001}, {0x00FFE8, 0x0040}, -{0x00FFEF, 0x0080}, +{0x00FFEF, 0x0001}, +{0x00FFF9, 0x0080}, {0x00FFFC, 0x0040}, -{0x00FFFE, 0x0080}, +{0x00FFFE, 0x0001}, {0x010000, 0x0004}, -{0x01000C, 0x0080}, +{0x01000C, 0x0001}, {0x01000D, 0x0004}, -{0x010027, 0x0080}, +{0x010027, 0x0001}, {0x010028, 0x0004}, -{0x01003B, 0x0080}, +{0x01003B, 0x0001}, {0x01003C, 0x0004}, -{0x01003E, 0x0080}, +{0x01003E, 0x0001}, {0x01003F, 0x0004}, -{0x01004E, 0x0080}, +{0x01004E, 0x0001}, {0x010050, 0x0004}, -{0x01005E, 0x0080}, +{0x01005E, 0x0001}, {0x010080, 0x0004}, -{0x0100FB, 0x0080}, +{0x0100FB, 0x0001}, {0x010100, 0x0020}, -{0x010103, 0x0080}, +{0x010103, 0x0001}, {0x010107, 0x0002}, -{0x010134, 0x0080}, +{0x010134, 0x0001}, {0x010137, 0x0040}, {0x010140, 0x0002}, {0x010179, 0x0040}, {0x01018A, 0x0002}, {0x01018C, 0x0040}, -{0x01018F, 0x0080}, +{0x01018F, 0x0001}, {0x010190, 0x0040}, -{0x01019D, 0x0080}, +{0x01019D, 0x0001}, {0x0101A0, 0x0040}, -{0x0101A1, 0x0080}, +{0x0101A1, 0x0001}, {0x0101D0, 0x0040}, {0x0101FD, 0x0010}, -{0x0101FE, 0x0080}, +{0x0101FE, 0x0001}, {0x010280, 0x0004}, -{0x01029D, 0x0080}, +{0x01029D, 0x0001}, {0x0102A0, 0x0004}, -{0x0102D1, 0x0080}, +{0x0102D1, 0x0001}, {0x0102E0, 0x0010}, {0x0102E1, 0x0002}, -{0x0102FC, 0x0080}, +{0x0102FC, 0x0001}, {0x010300, 0x0004}, {0x010320, 0x0002}, -{0x010324, 0x0080}, +{0x010324, 0x0001}, {0x01032D, 0x0004}, {0x010341, 0x0002}, {0x010342, 0x0004}, {0x01034A, 0x0002}, -{0x01034B, 0x0080}, +{0x01034B, 0x0001}, {0x010350, 0x0004}, {0x010376, 0x0010}, -{0x01037B, 0x0080}, +{0x01037B, 0x0001}, {0x010380, 0x0004}, -{0x01039E, 0x0080}, +{0x01039E, 0x0001}, {0x01039F, 0x0020}, {0x0103A0, 0x0004}, -{0x0103C4, 0x0080}, +{0x0103C4, 0x0001}, {0x0103C8, 0x0004}, {0x0103D0, 0x0020}, {0x0103D1, 0x0002}, -{0x0103D6, 0x0080}, +{0x0103D6, 0x0001}, {0x010400, 0x0004}, -{0x01049E, 0x0080}, +{0x01049E, 0x0001}, {0x0104A0, 0x0002}, -{0x0104AA, 0x0080}, +{0x0104AA, 0x0001}, {0x0104B0, 0x0004}, -{0x0104D4, 0x0080}, +{0x0104D4, 0x0001}, {0x0104D8, 0x0004}, -{0x0104FC, 0x0080}, +{0x0104FC, 0x0001}, {0x010500, 0x0004}, -{0x010528, 0x0080}, +{0x010528, 0x0001}, {0x010530, 0x0004}, -{0x010564, 0x0080}, +{0x010564, 0x0001}, {0x01056F, 0x0020}, {0x010570, 0x0004}, -{0x01057B, 0x0080}, +{0x01057B, 0x0001}, {0x01057C, 0x0004}, -{0x01058B, 0x0080}, +{0x01058B, 0x0001}, {0x01058C, 0x0004}, -{0x010593, 0x0080}, +{0x010593, 0x0001}, {0x010594, 0x0004}, -{0x010596, 0x0080}, +{0x010596, 0x0001}, {0x010597, 0x0004}, -{0x0105A2, 0x0080}, +{0x0105A2, 0x0001}, {0x0105A3, 0x0004}, -{0x0105B2, 0x0080}, +{0x0105B2, 0x0001}, {0x0105B3, 0x0004}, -{0x0105BA, 0x0080}, +{0x0105BA, 0x0001}, {0x0105BB, 0x0004}, -{0x0105BD, 0x0080}, +{0x0105BD, 0x0001}, {0x010600, 0x0004}, -{0x010737, 0x0080}, +{0x010737, 0x0001}, {0x010740, 0x0004}, -{0x010756, 0x0080}, +{0x010756, 0x0001}, {0x010760, 0x0004}, -{0x010768, 0x0080}, +{0x010768, 0x0001}, {0x010780, 0x0004}, -{0x010786, 0x0080}, +{0x010786, 0x0001}, {0x010787, 0x0004}, -{0x0107B1, 0x0080}, +{0x0107B1, 0x0001}, {0x0107B2, 0x0004}, -{0x0107BB, 0x0080}, +{0x0107BB, 0x0001}, {0x010800, 0x0004}, -{0x010806, 0x0080}, +{0x010806, 0x0001}, {0x010808, 0x0004}, -{0x010809, 0x0080}, +{0x010809, 0x0001}, {0x01080A, 0x0004}, -{0x010836, 0x0080}, +{0x010836, 0x0001}, {0x010837, 0x0004}, -{0x010839, 0x0080}, +{0x010839, 0x0001}, {0x01083C, 0x0004}, -{0x01083D, 0x0080}, +{0x01083D, 0x0001}, {0x01083F, 0x0004}, -{0x010856, 0x0080}, +{0x010856, 0x0001}, {0x010857, 0x0020}, {0x010858, 0x0002}, {0x010860, 0x0004}, {0x010877, 0x0040}, {0x010879, 0x0002}, {0x010880, 0x0004}, -{0x01089F, 0x0080}, +{0x01089F, 0x0001}, {0x0108A7, 0x0002}, -{0x0108B0, 0x0080}, +{0x0108B0, 0x0001}, {0x0108E0, 0x0004}, -{0x0108F3, 0x0080}, +{0x0108F3, 0x0001}, {0x0108F4, 0x0004}, -{0x0108F6, 0x0080}, +{0x0108F6, 0x0001}, {0x0108FB, 0x0002}, {0x010900, 0x0004}, {0x010916, 0x0002}, -{0x01091C, 0x0080}, +{0x01091C, 0x0001}, {0x01091F, 0x0020}, {0x010920, 0x0004}, -{0x01093A, 0x0080}, +{0x01093A, 0x0001}, {0x01093F, 0x0020}, -{0x010940, 0x0080}, +{0x010940, 0x0001}, {0x010980, 0x0004}, -{0x0109B8, 0x0080}, +{0x0109B8, 0x0001}, {0x0109BC, 0x0002}, {0x0109BE, 0x0004}, {0x0109C0, 0x0002}, -{0x0109D0, 0x0080}, +{0x0109D0, 0x0001}, {0x0109D2, 0x0002}, {0x010A00, 0x0004}, {0x010A01, 0x0010}, -{0x010A04, 0x0080}, +{0x010A04, 0x0001}, {0x010A05, 0x0010}, -{0x010A07, 0x0080}, +{0x010A07, 0x0001}, {0x010A0C, 0x0010}, {0x010A10, 0x0004}, -{0x010A14, 0x0080}, +{0x010A14, 0x0001}, {0x010A15, 0x0004}, -{0x010A18, 0x0080}, +{0x010A18, 0x0001}, {0x010A19, 0x0004}, -{0x010A36, 0x0080}, +{0x010A36, 0x0001}, {0x010A38, 0x0010}, -{0x010A3B, 0x0080}, +{0x010A3B, 0x0001}, {0x010A3F, 0x0010}, {0x010A40, 0x0002}, -{0x010A49, 0x0080}, +{0x010A49, 0x0001}, {0x010A50, 0x0020}, -{0x010A59, 0x0080}, +{0x010A59, 0x0001}, {0x010A60, 0x0004}, {0x010A7D, 0x0002}, {0x010A7F, 0x0020}, {0x010A80, 0x0004}, {0x010A9D, 0x0002}, -{0x010AA0, 0x0080}, +{0x010AA0, 0x0001}, {0x010AC0, 0x0004}, {0x010AC8, 0x0040}, {0x010AC9, 0x0004}, {0x010AE5, 0x0010}, -{0x010AE7, 0x0080}, +{0x010AE7, 0x0001}, {0x010AEB, 0x0002}, {0x010AF0, 0x0020}, -{0x010AF7, 0x0080}, +{0x010AF7, 0x0001}, {0x010B00, 0x0004}, -{0x010B36, 0x0080}, +{0x010B36, 0x0001}, {0x010B39, 0x0020}, {0x010B40, 0x0004}, -{0x010B56, 0x0080}, +{0x010B56, 0x0001}, {0x010B58, 0x0002}, {0x010B60, 0x0004}, -{0x010B73, 0x0080}, +{0x010B73, 0x0001}, {0x010B78, 0x0002}, {0x010B80, 0x0004}, -{0x010B92, 0x0080}, +{0x010B92, 0x0001}, {0x010B99, 0x0020}, -{0x010B9D, 0x0080}, +{0x010B9D, 0x0001}, {0x010BA9, 0x0002}, -{0x010BB0, 0x0080}, +{0x010BB0, 0x0001}, {0x010C00, 0x0004}, -{0x010C49, 0x0080}, +{0x010C49, 0x0001}, {0x010C80, 0x0004}, -{0x010CB3, 0x0080}, +{0x010CB3, 0x0001}, {0x010CC0, 0x0004}, -{0x010CF3, 0x0080}, +{0x010CF3, 0x0001}, {0x010CFA, 0x0002}, {0x010D00, 0x0004}, {0x010D24, 0x0010}, -{0x010D28, 0x0080}, +{0x010D28, 0x0001}, {0x010D30, 0x0002}, -{0x010D3A, 0x0080}, +{0x010D3A, 0x0001}, {0x010E60, 0x0002}, -{0x010E7F, 0x0080}, +{0x010E7F, 0x0001}, {0x010E80, 0x0004}, -{0x010EAA, 0x0080}, +{0x010EAA, 0x0001}, {0x010EAB, 0x0010}, {0x010EAD, 0x0020}, -{0x010EAE, 0x0080}, +{0x010EAE, 0x0001}, {0x010EB0, 0x0004}, -{0x010EB2, 0x0080}, +{0x010EB2, 0x0001}, {0x010EFD, 0x0010}, {0x010F00, 0x0004}, {0x010F1D, 0x0002}, {0x010F27, 0x0004}, -{0x010F28, 0x0080}, +{0x010F28, 0x0001}, {0x010F30, 0x0004}, {0x010F46, 0x0010}, {0x010F51, 0x0002}, {0x010F55, 0x0020}, -{0x010F5A, 0x0080}, +{0x010F5A, 0x0001}, {0x010F70, 0x0004}, {0x010F82, 0x0010}, {0x010F86, 0x0020}, -{0x010F8A, 0x0080}, +{0x010F8A, 0x0001}, {0x010FB0, 0x0004}, {0x010FC5, 0x0002}, -{0x010FCC, 0x0080}, +{0x010FCC, 0x0001}, {0x010FE0, 0x0004}, -{0x010FF7, 0x0080}, +{0x010FF7, 0x0001}, {0x011000, 0x0010}, {0x011003, 0x0004}, {0x011038, 0x0010}, {0x011047, 0x0020}, -{0x01104E, 0x0080}, +{0x01104E, 0x0001}, {0x011052, 0x0002}, {0x011070, 0x0010}, {0x011071, 0x0004}, {0x011073, 0x0010}, {0x011075, 0x0004}, -{0x011076, 0x0080}, +{0x011076, 0x0001}, {0x01107F, 0x0010}, {0x011083, 0x0004}, {0x0110B0, 0x0010}, @@ -1529,26 +1539,28 @@ const std::vector> unicode_ranges_flags = { // st {0x0110BD, 0x0080}, {0x0110BE, 0x0020}, {0x0110C2, 0x0010}, -{0x0110C3, 0x0080}, +{0x0110C3, 0x0001}, +{0x0110CD, 0x0080}, +{0x0110CE, 0x0001}, {0x0110D0, 0x0004}, -{0x0110E9, 0x0080}, +{0x0110E9, 0x0001}, {0x0110F0, 0x0002}, -{0x0110FA, 0x0080}, +{0x0110FA, 0x0001}, {0x011100, 0x0010}, {0x011103, 0x0004}, {0x011127, 0x0010}, -{0x011135, 0x0080}, +{0x011135, 0x0001}, {0x011136, 0x0002}, {0x011140, 0x0020}, {0x011144, 0x0004}, {0x011145, 0x0010}, {0x011147, 0x0004}, -{0x011148, 0x0080}, +{0x011148, 0x0001}, {0x011150, 0x0004}, {0x011173, 0x0010}, {0x011174, 0x0020}, {0x011176, 0x0004}, -{0x011177, 0x0080}, +{0x011177, 0x0001}, {0x011180, 0x0010}, {0x011183, 0x0004}, {0x0111B3, 0x0010}, @@ -1562,159 +1574,159 @@ const std::vector> unicode_ranges_flags = { // st {0x0111DB, 0x0020}, {0x0111DC, 0x0004}, {0x0111DD, 0x0020}, -{0x0111E0, 0x0080}, +{0x0111E0, 0x0001}, {0x0111E1, 0x0002}, -{0x0111F5, 0x0080}, +{0x0111F5, 0x0001}, {0x011200, 0x0004}, -{0x011212, 0x0080}, +{0x011212, 0x0001}, {0x011213, 0x0004}, {0x01122C, 0x0010}, {0x011238, 0x0020}, {0x01123E, 0x0010}, {0x01123F, 0x0004}, {0x011241, 0x0010}, -{0x011242, 0x0080}, +{0x011242, 0x0001}, {0x011280, 0x0004}, -{0x011287, 0x0080}, +{0x011287, 0x0001}, {0x011288, 0x0004}, -{0x011289, 0x0080}, +{0x011289, 0x0001}, {0x01128A, 0x0004}, -{0x01128E, 0x0080}, +{0x01128E, 0x0001}, {0x01128F, 0x0004}, -{0x01129E, 0x0080}, +{0x01129E, 0x0001}, {0x01129F, 0x0004}, {0x0112A9, 0x0020}, -{0x0112AA, 0x0080}, +{0x0112AA, 0x0001}, {0x0112B0, 0x0004}, {0x0112DF, 0x0010}, -{0x0112EB, 0x0080}, +{0x0112EB, 0x0001}, {0x0112F0, 0x0002}, -{0x0112FA, 0x0080}, +{0x0112FA, 0x0001}, {0x011300, 0x0010}, -{0x011304, 0x0080}, +{0x011304, 0x0001}, {0x011305, 0x0004}, -{0x01130D, 0x0080}, +{0x01130D, 0x0001}, {0x01130F, 0x0004}, -{0x011311, 0x0080}, +{0x011311, 0x0001}, {0x011313, 0x0004}, -{0x011329, 0x0080}, +{0x011329, 0x0001}, {0x01132A, 0x0004}, -{0x011331, 0x0080}, +{0x011331, 0x0001}, {0x011332, 0x0004}, -{0x011334, 0x0080}, +{0x011334, 0x0001}, {0x011335, 0x0004}, -{0x01133A, 0x0080}, +{0x01133A, 0x0001}, {0x01133B, 0x0010}, {0x01133D, 0x0004}, {0x01133E, 0x0010}, -{0x011345, 0x0080}, +{0x011345, 0x0001}, {0x011347, 0x0010}, -{0x011349, 0x0080}, +{0x011349, 0x0001}, {0x01134B, 0x0010}, -{0x01134E, 0x0080}, +{0x01134E, 0x0001}, {0x011350, 0x0004}, -{0x011351, 0x0080}, +{0x011351, 0x0001}, {0x011357, 0x0010}, -{0x011358, 0x0080}, +{0x011358, 0x0001}, {0x01135D, 0x0004}, {0x011362, 0x0010}, -{0x011364, 0x0080}, +{0x011364, 0x0001}, {0x011366, 0x0010}, -{0x01136D, 0x0080}, +{0x01136D, 0x0001}, {0x011370, 0x0010}, -{0x011375, 0x0080}, +{0x011375, 0x0001}, {0x011400, 0x0004}, {0x011435, 0x0010}, {0x011447, 0x0004}, {0x01144B, 0x0020}, {0x011450, 0x0002}, {0x01145A, 0x0020}, -{0x01145C, 0x0080}, +{0x01145C, 0x0001}, {0x01145D, 0x0020}, {0x01145E, 0x0010}, {0x01145F, 0x0004}, -{0x011462, 0x0080}, +{0x011462, 0x0001}, {0x011480, 0x0004}, {0x0114B0, 0x0010}, {0x0114C4, 0x0004}, {0x0114C6, 0x0020}, {0x0114C7, 0x0004}, -{0x0114C8, 0x0080}, +{0x0114C8, 0x0001}, {0x0114D0, 0x0002}, -{0x0114DA, 0x0080}, +{0x0114DA, 0x0001}, {0x011580, 0x0004}, {0x0115AF, 0x0010}, -{0x0115B6, 0x0080}, +{0x0115B6, 0x0001}, {0x0115B8, 0x0010}, {0x0115C1, 0x0020}, {0x0115D8, 0x0004}, {0x0115DC, 0x0010}, -{0x0115DE, 0x0080}, +{0x0115DE, 0x0001}, {0x011600, 0x0004}, {0x011630, 0x0010}, {0x011641, 0x0020}, {0x011644, 0x0004}, -{0x011645, 0x0080}, +{0x011645, 0x0001}, {0x011650, 0x0002}, -{0x01165A, 0x0080}, +{0x01165A, 0x0001}, {0x011660, 0x0020}, -{0x01166D, 0x0080}, +{0x01166D, 0x0001}, {0x011680, 0x0004}, {0x0116AB, 0x0010}, {0x0116B8, 0x0004}, {0x0116B9, 0x0020}, -{0x0116BA, 0x0080}, +{0x0116BA, 0x0001}, {0x0116C0, 0x0002}, -{0x0116CA, 0x0080}, +{0x0116CA, 0x0001}, {0x011700, 0x0004}, -{0x01171B, 0x0080}, +{0x01171B, 0x0001}, {0x01171D, 0x0010}, -{0x01172C, 0x0080}, +{0x01172C, 0x0001}, {0x011730, 0x0002}, {0x01173C, 0x0020}, {0x01173F, 0x0040}, {0x011740, 0x0004}, -{0x011747, 0x0080}, +{0x011747, 0x0001}, {0x011800, 0x0004}, {0x01182C, 0x0010}, {0x01183B, 0x0020}, -{0x01183C, 0x0080}, +{0x01183C, 0x0001}, {0x0118A0, 0x0004}, {0x0118E0, 0x0002}, -{0x0118F3, 0x0080}, +{0x0118F3, 0x0001}, {0x0118FF, 0x0004}, -{0x011907, 0x0080}, +{0x011907, 0x0001}, {0x011909, 0x0004}, -{0x01190A, 0x0080}, +{0x01190A, 0x0001}, {0x01190C, 0x0004}, -{0x011914, 0x0080}, +{0x011914, 0x0001}, {0x011915, 0x0004}, -{0x011917, 0x0080}, +{0x011917, 0x0001}, {0x011918, 0x0004}, {0x011930, 0x0010}, -{0x011936, 0x0080}, +{0x011936, 0x0001}, {0x011937, 0x0010}, -{0x011939, 0x0080}, +{0x011939, 0x0001}, {0x01193B, 0x0010}, {0x01193F, 0x0004}, {0x011940, 0x0010}, {0x011941, 0x0004}, {0x011942, 0x0010}, {0x011944, 0x0020}, -{0x011947, 0x0080}, +{0x011947, 0x0001}, {0x011950, 0x0002}, -{0x01195A, 0x0080}, +{0x01195A, 0x0001}, {0x0119A0, 0x0004}, -{0x0119A8, 0x0080}, +{0x0119A8, 0x0001}, {0x0119AA, 0x0004}, {0x0119D1, 0x0010}, -{0x0119D8, 0x0080}, +{0x0119D8, 0x0001}, {0x0119DA, 0x0010}, {0x0119E1, 0x0004}, {0x0119E2, 0x0020}, {0x0119E3, 0x0004}, {0x0119E4, 0x0010}, -{0x0119E5, 0x0080}, +{0x0119E5, 0x0001}, {0x011A00, 0x0004}, {0x011A01, 0x0010}, {0x011A0B, 0x0004}, @@ -1723,7 +1735,7 @@ const std::vector> unicode_ranges_flags = { // st {0x011A3B, 0x0010}, {0x011A3F, 0x0020}, {0x011A47, 0x0010}, -{0x011A48, 0x0080}, +{0x011A48, 0x0001}, {0x011A50, 0x0004}, {0x011A51, 0x0010}, {0x011A5C, 0x0004}, @@ -1731,117 +1743,117 @@ const std::vector> unicode_ranges_flags = { // st {0x011A9A, 0x0020}, {0x011A9D, 0x0004}, {0x011A9E, 0x0020}, -{0x011AA3, 0x0080}, +{0x011AA3, 0x0001}, {0x011AB0, 0x0004}, -{0x011AF9, 0x0080}, +{0x011AF9, 0x0001}, {0x011B00, 0x0020}, -{0x011B0A, 0x0080}, +{0x011B0A, 0x0001}, {0x011C00, 0x0004}, -{0x011C09, 0x0080}, +{0x011C09, 0x0001}, {0x011C0A, 0x0004}, {0x011C2F, 0x0010}, -{0x011C37, 0x0080}, +{0x011C37, 0x0001}, {0x011C38, 0x0010}, {0x011C40, 0x0004}, {0x011C41, 0x0020}, -{0x011C46, 0x0080}, +{0x011C46, 0x0001}, {0x011C50, 0x0002}, -{0x011C6D, 0x0080}, +{0x011C6D, 0x0001}, {0x011C70, 0x0020}, {0x011C72, 0x0004}, -{0x011C90, 0x0080}, +{0x011C90, 0x0001}, {0x011C92, 0x0010}, -{0x011CA8, 0x0080}, +{0x011CA8, 0x0001}, {0x011CA9, 0x0010}, -{0x011CB7, 0x0080}, +{0x011CB7, 0x0001}, {0x011D00, 0x0004}, -{0x011D07, 0x0080}, +{0x011D07, 0x0001}, {0x011D08, 0x0004}, -{0x011D0A, 0x0080}, +{0x011D0A, 0x0001}, {0x011D0B, 0x0004}, {0x011D31, 0x0010}, -{0x011D37, 0x0080}, +{0x011D37, 0x0001}, {0x011D3A, 0x0010}, -{0x011D3B, 0x0080}, +{0x011D3B, 0x0001}, {0x011D3C, 0x0010}, -{0x011D3E, 0x0080}, +{0x011D3E, 0x0001}, {0x011D3F, 0x0010}, {0x011D46, 0x0004}, {0x011D47, 0x0010}, -{0x011D48, 0x0080}, +{0x011D48, 0x0001}, {0x011D50, 0x0002}, -{0x011D5A, 0x0080}, +{0x011D5A, 0x0001}, {0x011D60, 0x0004}, -{0x011D66, 0x0080}, +{0x011D66, 0x0001}, {0x011D67, 0x0004}, -{0x011D69, 0x0080}, +{0x011D69, 0x0001}, {0x011D6A, 0x0004}, {0x011D8A, 0x0010}, -{0x011D8F, 0x0080}, +{0x011D8F, 0x0001}, {0x011D90, 0x0010}, -{0x011D92, 0x0080}, +{0x011D92, 0x0001}, {0x011D93, 0x0010}, {0x011D98, 0x0004}, -{0x011D99, 0x0080}, +{0x011D99, 0x0001}, {0x011DA0, 0x0002}, -{0x011DAA, 0x0080}, +{0x011DAA, 0x0001}, {0x011EE0, 0x0004}, {0x011EF3, 0x0010}, {0x011EF7, 0x0020}, -{0x011EF9, 0x0080}, +{0x011EF9, 0x0001}, {0x011F00, 0x0010}, {0x011F02, 0x0004}, {0x011F03, 0x0010}, {0x011F04, 0x0004}, -{0x011F11, 0x0080}, +{0x011F11, 0x0001}, {0x011F12, 0x0004}, {0x011F34, 0x0010}, -{0x011F3B, 0x0080}, +{0x011F3B, 0x0001}, {0x011F3E, 0x0010}, {0x011F43, 0x0020}, {0x011F50, 0x0002}, -{0x011F5A, 0x0080}, +{0x011F5A, 0x0001}, {0x011FB0, 0x0004}, -{0x011FB1, 0x0080}, +{0x011FB1, 0x0001}, {0x011FC0, 0x0002}, {0x011FD5, 0x0040}, -{0x011FF2, 0x0080}, +{0x011FF2, 0x0001}, {0x011FFF, 0x0020}, {0x012000, 0x0004}, -{0x01239A, 0x0080}, +{0x01239A, 0x0001}, {0x012400, 0x0002}, -{0x01246F, 0x0080}, +{0x01246F, 0x0001}, {0x012470, 0x0020}, -{0x012475, 0x0080}, +{0x012475, 0x0001}, {0x012480, 0x0004}, -{0x012544, 0x0080}, +{0x012544, 0x0001}, {0x012F90, 0x0004}, {0x012FF1, 0x0020}, -{0x012FF3, 0x0080}, +{0x012FF3, 0x0001}, {0x013000, 0x0004}, {0x013430, 0x0080}, {0x013440, 0x0010}, {0x013441, 0x0004}, {0x013447, 0x0010}, -{0x013456, 0x0080}, +{0x013456, 0x0001}, {0x014400, 0x0004}, -{0x014647, 0x0080}, +{0x014647, 0x0001}, {0x016800, 0x0004}, -{0x016A39, 0x0080}, +{0x016A39, 0x0001}, {0x016A40, 0x0004}, -{0x016A5F, 0x0080}, +{0x016A5F, 0x0001}, {0x016A60, 0x0002}, -{0x016A6A, 0x0080}, +{0x016A6A, 0x0001}, {0x016A6E, 0x0020}, {0x016A70, 0x0004}, -{0x016ABF, 0x0080}, +{0x016ABF, 0x0001}, {0x016AC0, 0x0002}, -{0x016ACA, 0x0080}, +{0x016ACA, 0x0001}, {0x016AD0, 0x0004}, -{0x016AEE, 0x0080}, +{0x016AEE, 0x0001}, {0x016AF0, 0x0010}, {0x016AF5, 0x0020}, -{0x016AF6, 0x0080}, +{0x016AF6, 0x0001}, {0x016B00, 0x0004}, {0x016B30, 0x0010}, {0x016B37, 0x0020}, @@ -1849,81 +1861,82 @@ const std::vector> unicode_ranges_flags = { // st {0x016B40, 0x0004}, {0x016B44, 0x0020}, {0x016B45, 0x0040}, -{0x016B46, 0x0080}, +{0x016B46, 0x0001}, {0x016B50, 0x0002}, -{0x016B5A, 0x0080}, +{0x016B5A, 0x0001}, {0x016B5B, 0x0002}, -{0x016B62, 0x0080}, +{0x016B62, 0x0001}, {0x016B63, 0x0004}, -{0x016B78, 0x0080}, +{0x016B78, 0x0001}, {0x016B7D, 0x0004}, -{0x016B90, 0x0080}, +{0x016B90, 0x0001}, {0x016E40, 0x0004}, {0x016E80, 0x0002}, {0x016E97, 0x0020}, -{0x016E9B, 0x0080}, +{0x016E9B, 0x0001}, {0x016F00, 0x0004}, -{0x016F4B, 0x0080}, +{0x016F4B, 0x0001}, {0x016F4F, 0x0010}, {0x016F50, 0x0004}, {0x016F51, 0x0010}, -{0x016F88, 0x0080}, +{0x016F88, 0x0001}, {0x016F8F, 0x0010}, {0x016F93, 0x0004}, -{0x016FA0, 0x0080}, +{0x016FA0, 0x0001}, {0x016FE0, 0x0004}, {0x016FE2, 0x0020}, {0x016FE3, 0x0004}, {0x016FE4, 0x0010}, -{0x016FE5, 0x0080}, +{0x016FE5, 0x0001}, {0x016FF0, 0x0010}, -{0x016FF2, 0x0080}, +{0x016FF2, 0x0001}, {0x017000, 0x0004}, -{0x0187F8, 0x0080}, +{0x0187F8, 0x0001}, {0x018800, 0x0004}, -{0x018CD6, 0x0080}, +{0x018CD6, 0x0001}, {0x018D00, 0x0004}, -{0x018D09, 0x0080}, +{0x018D09, 0x0001}, {0x01AFF0, 0x0004}, -{0x01AFF4, 0x0080}, +{0x01AFF4, 0x0001}, {0x01AFF5, 0x0004}, -{0x01AFFC, 0x0080}, +{0x01AFFC, 0x0001}, {0x01AFFD, 0x0004}, -{0x01AFFF, 0x0080}, +{0x01AFFF, 0x0001}, {0x01B000, 0x0004}, -{0x01B123, 0x0080}, +{0x01B123, 0x0001}, {0x01B132, 0x0004}, -{0x01B133, 0x0080}, +{0x01B133, 0x0001}, {0x01B150, 0x0004}, -{0x01B153, 0x0080}, +{0x01B153, 0x0001}, {0x01B155, 0x0004}, -{0x01B156, 0x0080}, +{0x01B156, 0x0001}, {0x01B164, 0x0004}, -{0x01B168, 0x0080}, +{0x01B168, 0x0001}, {0x01B170, 0x0004}, -{0x01B2FC, 0x0080}, +{0x01B2FC, 0x0001}, {0x01BC00, 0x0004}, -{0x01BC6B, 0x0080}, +{0x01BC6B, 0x0001}, {0x01BC70, 0x0004}, -{0x01BC7D, 0x0080}, +{0x01BC7D, 0x0001}, {0x01BC80, 0x0004}, -{0x01BC89, 0x0080}, +{0x01BC89, 0x0001}, {0x01BC90, 0x0004}, -{0x01BC9A, 0x0080}, +{0x01BC9A, 0x0001}, {0x01BC9C, 0x0040}, {0x01BC9D, 0x0010}, {0x01BC9F, 0x0020}, {0x01BCA0, 0x0080}, +{0x01BCA4, 0x0001}, {0x01CF00, 0x0010}, -{0x01CF2E, 0x0080}, +{0x01CF2E, 0x0001}, {0x01CF30, 0x0010}, -{0x01CF47, 0x0080}, +{0x01CF47, 0x0001}, {0x01CF50, 0x0040}, -{0x01CFC4, 0x0080}, +{0x01CFC4, 0x0001}, {0x01D000, 0x0040}, -{0x01D0F6, 0x0080}, +{0x01D0F6, 0x0001}, {0x01D100, 0x0040}, -{0x01D127, 0x0080}, +{0x01D127, 0x0001}, {0x01D129, 0x0040}, {0x01D165, 0x0010}, {0x01D16A, 0x0040}, @@ -1935,57 +1948,57 @@ const std::vector> unicode_ranges_flags = { // st {0x01D18C, 0x0040}, {0x01D1AA, 0x0010}, {0x01D1AE, 0x0040}, -{0x01D1EB, 0x0080}, +{0x01D1EB, 0x0001}, {0x01D200, 0x0040}, {0x01D242, 0x0010}, {0x01D245, 0x0040}, -{0x01D246, 0x0080}, +{0x01D246, 0x0001}, {0x01D2C0, 0x0002}, -{0x01D2D4, 0x0080}, +{0x01D2D4, 0x0001}, {0x01D2E0, 0x0002}, -{0x01D2F4, 0x0080}, +{0x01D2F4, 0x0001}, {0x01D300, 0x0040}, -{0x01D357, 0x0080}, +{0x01D357, 0x0001}, {0x01D360, 0x0002}, -{0x01D379, 0x0080}, +{0x01D379, 0x0001}, {0x01D400, 0x0004}, -{0x01D455, 0x0080}, +{0x01D455, 0x0001}, {0x01D456, 0x0004}, -{0x01D49D, 0x0080}, +{0x01D49D, 0x0001}, {0x01D49E, 0x0004}, -{0x01D4A0, 0x0080}, +{0x01D4A0, 0x0001}, {0x01D4A2, 0x0004}, -{0x01D4A3, 0x0080}, +{0x01D4A3, 0x0001}, {0x01D4A5, 0x0004}, -{0x01D4A7, 0x0080}, +{0x01D4A7, 0x0001}, {0x01D4A9, 0x0004}, -{0x01D4AD, 0x0080}, +{0x01D4AD, 0x0001}, {0x01D4AE, 0x0004}, -{0x01D4BA, 0x0080}, +{0x01D4BA, 0x0001}, {0x01D4BB, 0x0004}, -{0x01D4BC, 0x0080}, +{0x01D4BC, 0x0001}, {0x01D4BD, 0x0004}, -{0x01D4C4, 0x0080}, +{0x01D4C4, 0x0001}, {0x01D4C5, 0x0004}, -{0x01D506, 0x0080}, +{0x01D506, 0x0001}, {0x01D507, 0x0004}, -{0x01D50B, 0x0080}, +{0x01D50B, 0x0001}, {0x01D50D, 0x0004}, -{0x01D515, 0x0080}, +{0x01D515, 0x0001}, {0x01D516, 0x0004}, -{0x01D51D, 0x0080}, +{0x01D51D, 0x0001}, {0x01D51E, 0x0004}, -{0x01D53A, 0x0080}, +{0x01D53A, 0x0001}, {0x01D53B, 0x0004}, -{0x01D53F, 0x0080}, +{0x01D53F, 0x0001}, {0x01D540, 0x0004}, -{0x01D545, 0x0080}, +{0x01D545, 0x0001}, {0x01D546, 0x0004}, -{0x01D547, 0x0080}, +{0x01D547, 0x0001}, {0x01D54A, 0x0004}, -{0x01D551, 0x0080}, +{0x01D551, 0x0001}, {0x01D552, 0x0004}, -{0x01D6A6, 0x0080}, +{0x01D6A6, 0x0001}, {0x01D6A8, 0x0004}, {0x01D6C1, 0x0040}, {0x01D6C2, 0x0004}, @@ -2007,7 +2020,7 @@ const std::vector> unicode_ranges_flags = { // st {0x01D7AA, 0x0004}, {0x01D7C3, 0x0040}, {0x01D7C4, 0x0004}, -{0x01D7CC, 0x0080}, +{0x01D7CC, 0x0001}, {0x01D7CE, 0x0002}, {0x01D800, 0x0040}, {0x01DA00, 0x0010}, @@ -2019,251 +2032,283 @@ const std::vector> unicode_ranges_flags = { // st {0x01DA84, 0x0010}, {0x01DA85, 0x0040}, {0x01DA87, 0x0020}, -{0x01DA8C, 0x0080}, +{0x01DA8C, 0x0001}, {0x01DA9B, 0x0010}, -{0x01DAA0, 0x0080}, +{0x01DAA0, 0x0001}, {0x01DAA1, 0x0010}, -{0x01DAB0, 0x0080}, +{0x01DAB0, 0x0001}, {0x01DF00, 0x0004}, -{0x01DF1F, 0x0080}, +{0x01DF1F, 0x0001}, {0x01DF25, 0x0004}, -{0x01DF2B, 0x0080}, +{0x01DF2B, 0x0001}, {0x01E000, 0x0010}, -{0x01E007, 0x0080}, +{0x01E007, 0x0001}, {0x01E008, 0x0010}, -{0x01E019, 0x0080}, +{0x01E019, 0x0001}, {0x01E01B, 0x0010}, -{0x01E022, 0x0080}, +{0x01E022, 0x0001}, {0x01E023, 0x0010}, -{0x01E025, 0x0080}, +{0x01E025, 0x0001}, {0x01E026, 0x0010}, -{0x01E02B, 0x0080}, +{0x01E02B, 0x0001}, {0x01E030, 0x0004}, -{0x01E06E, 0x0080}, +{0x01E06E, 0x0001}, {0x01E08F, 0x0010}, -{0x01E090, 0x0080}, +{0x01E090, 0x0001}, {0x01E100, 0x0004}, -{0x01E12D, 0x0080}, +{0x01E12D, 0x0001}, {0x01E130, 0x0010}, {0x01E137, 0x0004}, -{0x01E13E, 0x0080}, +{0x01E13E, 0x0001}, {0x01E140, 0x0002}, -{0x01E14A, 0x0080}, +{0x01E14A, 0x0001}, {0x01E14E, 0x0004}, {0x01E14F, 0x0040}, -{0x01E150, 0x0080}, +{0x01E150, 0x0001}, {0x01E290, 0x0004}, {0x01E2AE, 0x0010}, -{0x01E2AF, 0x0080}, +{0x01E2AF, 0x0001}, {0x01E2C0, 0x0004}, {0x01E2EC, 0x0010}, {0x01E2F0, 0x0002}, -{0x01E2FA, 0x0080}, +{0x01E2FA, 0x0001}, {0x01E2FF, 0x0040}, -{0x01E300, 0x0080}, +{0x01E300, 0x0001}, {0x01E4D0, 0x0004}, {0x01E4EC, 0x0010}, {0x01E4F0, 0x0002}, -{0x01E4FA, 0x0080}, +{0x01E4FA, 0x0001}, {0x01E7E0, 0x0004}, -{0x01E7E7, 0x0080}, +{0x01E7E7, 0x0001}, {0x01E7E8, 0x0004}, -{0x01E7EC, 0x0080}, +{0x01E7EC, 0x0001}, {0x01E7ED, 0x0004}, -{0x01E7EF, 0x0080}, +{0x01E7EF, 0x0001}, {0x01E7F0, 0x0004}, -{0x01E7FF, 0x0080}, +{0x01E7FF, 0x0001}, {0x01E800, 0x0004}, -{0x01E8C5, 0x0080}, +{0x01E8C5, 0x0001}, {0x01E8C7, 0x0002}, {0x01E8D0, 0x0010}, -{0x01E8D7, 0x0080}, +{0x01E8D7, 0x0001}, {0x01E900, 0x0004}, {0x01E944, 0x0010}, {0x01E94B, 0x0004}, -{0x01E94C, 0x0080}, +{0x01E94C, 0x0001}, {0x01E950, 0x0002}, -{0x01E95A, 0x0080}, +{0x01E95A, 0x0001}, {0x01E95E, 0x0020}, -{0x01E960, 0x0080}, +{0x01E960, 0x0001}, {0x01EC71, 0x0002}, {0x01ECAC, 0x0040}, {0x01ECAD, 0x0002}, {0x01ECB0, 0x0040}, {0x01ECB1, 0x0002}, -{0x01ECB5, 0x0080}, +{0x01ECB5, 0x0001}, {0x01ED01, 0x0002}, {0x01ED2E, 0x0040}, {0x01ED2F, 0x0002}, -{0x01ED3E, 0x0080}, +{0x01ED3E, 0x0001}, {0x01EE00, 0x0004}, -{0x01EE04, 0x0080}, +{0x01EE04, 0x0001}, {0x01EE05, 0x0004}, -{0x01EE20, 0x0080}, +{0x01EE20, 0x0001}, {0x01EE21, 0x0004}, -{0x01EE23, 0x0080}, +{0x01EE23, 0x0001}, {0x01EE24, 0x0004}, -{0x01EE25, 0x0080}, +{0x01EE25, 0x0001}, {0x01EE27, 0x0004}, -{0x01EE28, 0x0080}, +{0x01EE28, 0x0001}, {0x01EE29, 0x0004}, -{0x01EE33, 0x0080}, +{0x01EE33, 0x0001}, {0x01EE34, 0x0004}, -{0x01EE38, 0x0080}, +{0x01EE38, 0x0001}, {0x01EE39, 0x0004}, -{0x01EE3A, 0x0080}, +{0x01EE3A, 0x0001}, {0x01EE3B, 0x0004}, -{0x01EE3C, 0x0080}, +{0x01EE3C, 0x0001}, {0x01EE42, 0x0004}, -{0x01EE43, 0x0080}, +{0x01EE43, 0x0001}, {0x01EE47, 0x0004}, -{0x01EE48, 0x0080}, +{0x01EE48, 0x0001}, {0x01EE49, 0x0004}, -{0x01EE4A, 0x0080}, +{0x01EE4A, 0x0001}, {0x01EE4B, 0x0004}, -{0x01EE4C, 0x0080}, +{0x01EE4C, 0x0001}, {0x01EE4D, 0x0004}, -{0x01EE50, 0x0080}, +{0x01EE50, 0x0001}, {0x01EE51, 0x0004}, -{0x01EE53, 0x0080}, +{0x01EE53, 0x0001}, {0x01EE54, 0x0004}, -{0x01EE55, 0x0080}, +{0x01EE55, 0x0001}, {0x01EE57, 0x0004}, -{0x01EE58, 0x0080}, +{0x01EE58, 0x0001}, {0x01EE59, 0x0004}, -{0x01EE5A, 0x0080}, +{0x01EE5A, 0x0001}, {0x01EE5B, 0x0004}, -{0x01EE5C, 0x0080}, +{0x01EE5C, 0x0001}, {0x01EE5D, 0x0004}, -{0x01EE5E, 0x0080}, +{0x01EE5E, 0x0001}, {0x01EE5F, 0x0004}, -{0x01EE60, 0x0080}, +{0x01EE60, 0x0001}, {0x01EE61, 0x0004}, -{0x01EE63, 0x0080}, +{0x01EE63, 0x0001}, {0x01EE64, 0x0004}, -{0x01EE65, 0x0080}, +{0x01EE65, 0x0001}, {0x01EE67, 0x0004}, -{0x01EE6B, 0x0080}, +{0x01EE6B, 0x0001}, {0x01EE6C, 0x0004}, -{0x01EE73, 0x0080}, +{0x01EE73, 0x0001}, {0x01EE74, 0x0004}, -{0x01EE78, 0x0080}, +{0x01EE78, 0x0001}, {0x01EE79, 0x0004}, -{0x01EE7D, 0x0080}, +{0x01EE7D, 0x0001}, {0x01EE7E, 0x0004}, -{0x01EE7F, 0x0080}, +{0x01EE7F, 0x0001}, {0x01EE80, 0x0004}, -{0x01EE8A, 0x0080}, +{0x01EE8A, 0x0001}, {0x01EE8B, 0x0004}, -{0x01EE9C, 0x0080}, +{0x01EE9C, 0x0001}, {0x01EEA1, 0x0004}, -{0x01EEA4, 0x0080}, +{0x01EEA4, 0x0001}, {0x01EEA5, 0x0004}, -{0x01EEAA, 0x0080}, +{0x01EEAA, 0x0001}, {0x01EEAB, 0x0004}, -{0x01EEBC, 0x0080}, +{0x01EEBC, 0x0001}, {0x01EEF0, 0x0040}, -{0x01EEF2, 0x0080}, +{0x01EEF2, 0x0001}, {0x01F000, 0x0040}, -{0x01F02C, 0x0080}, +{0x01F02C, 0x0001}, {0x01F030, 0x0040}, -{0x01F094, 0x0080}, +{0x01F094, 0x0001}, {0x01F0A0, 0x0040}, -{0x01F0AF, 0x0080}, +{0x01F0AF, 0x0001}, {0x01F0B1, 0x0040}, -{0x01F0C0, 0x0080}, +{0x01F0C0, 0x0001}, {0x01F0C1, 0x0040}, -{0x01F0D0, 0x0080}, +{0x01F0D0, 0x0001}, {0x01F0D1, 0x0040}, -{0x01F0F6, 0x0080}, +{0x01F0F6, 0x0001}, {0x01F100, 0x0002}, {0x01F10D, 0x0040}, -{0x01F1AE, 0x0080}, +{0x01F1AE, 0x0001}, {0x01F1E6, 0x0040}, -{0x01F203, 0x0080}, +{0x01F203, 0x0001}, {0x01F210, 0x0040}, -{0x01F23C, 0x0080}, +{0x01F23C, 0x0001}, {0x01F240, 0x0040}, -{0x01F249, 0x0080}, +{0x01F249, 0x0001}, {0x01F250, 0x0040}, -{0x01F252, 0x0080}, +{0x01F252, 0x0001}, {0x01F260, 0x0040}, -{0x01F266, 0x0080}, +{0x01F266, 0x0001}, {0x01F300, 0x0040}, -{0x01F6D8, 0x0080}, +{0x01F6D8, 0x0001}, {0x01F6DC, 0x0040}, -{0x01F6ED, 0x0080}, +{0x01F6ED, 0x0001}, {0x01F6F0, 0x0040}, -{0x01F6FD, 0x0080}, +{0x01F6FD, 0x0001}, {0x01F700, 0x0040}, -{0x01F777, 0x0080}, +{0x01F777, 0x0001}, {0x01F77B, 0x0040}, -{0x01F7DA, 0x0080}, +{0x01F7DA, 0x0001}, {0x01F7E0, 0x0040}, -{0x01F7EC, 0x0080}, +{0x01F7EC, 0x0001}, {0x01F7F0, 0x0040}, -{0x01F7F1, 0x0080}, +{0x01F7F1, 0x0001}, {0x01F800, 0x0040}, -{0x01F80C, 0x0080}, +{0x01F80C, 0x0001}, {0x01F810, 0x0040}, -{0x01F848, 0x0080}, +{0x01F848, 0x0001}, {0x01F850, 0x0040}, -{0x01F85A, 0x0080}, +{0x01F85A, 0x0001}, {0x01F860, 0x0040}, -{0x01F888, 0x0080}, +{0x01F888, 0x0001}, {0x01F890, 0x0040}, -{0x01F8AE, 0x0080}, +{0x01F8AE, 0x0001}, {0x01F8B0, 0x0040}, -{0x01F8B2, 0x0080}, +{0x01F8B2, 0x0001}, {0x01F900, 0x0040}, -{0x01FA54, 0x0080}, +{0x01FA54, 0x0001}, {0x01FA60, 0x0040}, -{0x01FA6E, 0x0080}, +{0x01FA6E, 0x0001}, {0x01FA70, 0x0040}, -{0x01FA7D, 0x0080}, +{0x01FA7D, 0x0001}, {0x01FA80, 0x0040}, -{0x01FA89, 0x0080}, +{0x01FA89, 0x0001}, {0x01FA90, 0x0040}, -{0x01FABE, 0x0080}, +{0x01FABE, 0x0001}, {0x01FABF, 0x0040}, -{0x01FAC6, 0x0080}, +{0x01FAC6, 0x0001}, {0x01FACE, 0x0040}, -{0x01FADC, 0x0080}, +{0x01FADC, 0x0001}, {0x01FAE0, 0x0040}, -{0x01FAE9, 0x0080}, +{0x01FAE9, 0x0001}, {0x01FAF0, 0x0040}, -{0x01FAF9, 0x0080}, +{0x01FAF9, 0x0001}, {0x01FB00, 0x0040}, -{0x01FB93, 0x0080}, +{0x01FB93, 0x0001}, {0x01FB94, 0x0040}, -{0x01FBCB, 0x0080}, +{0x01FBCB, 0x0001}, {0x01FBF0, 0x0002}, -{0x01FBFA, 0x0080}, +{0x01FBFA, 0x0001}, {0x020000, 0x0004}, -{0x02A6E0, 0x0080}, +{0x02A6E0, 0x0001}, {0x02A700, 0x0004}, -{0x02B73A, 0x0080}, +{0x02B73A, 0x0001}, {0x02B740, 0x0004}, -{0x02B81E, 0x0080}, +{0x02B81E, 0x0001}, {0x02B820, 0x0004}, -{0x02CEA2, 0x0080}, +{0x02CEA2, 0x0001}, {0x02CEB0, 0x0004}, -{0x02EBE1, 0x0080}, +{0x02EBE1, 0x0001}, {0x02EBF0, 0x0004}, -{0x02EE5E, 0x0080}, +{0x02EE5E, 0x0001}, {0x02F800, 0x0004}, -{0x02FA1E, 0x0080}, +{0x02FA1E, 0x0001}, {0x030000, 0x0004}, -{0x03134B, 0x0080}, +{0x03134B, 0x0001}, {0x031350, 0x0004}, -{0x0323B0, 0x0080}, +{0x0323B0, 0x0001}, +{0x0E0001, 0x0080}, +{0x0E0002, 0x0001}, +{0x0E0020, 0x0080}, +{0x0E0080, 0x0001}, {0x0E0100, 0x0010}, -{0x0E01F0, 0x0080}, +{0x0E01F0, 0x0001}, +{0x0F0000, 0x0080}, +{0x0FFFFE, 0x0001}, +{0x100000, 0x0080}, +{0x10FFFE, 0x0001}, {0x110000, 0x0000}, }; const std::unordered_set unicode_set_whitespace = { -0x000009, 0x00000A, 0x00000B, 0x00000C, 0x00000D, 0x000020, 0x000085, 0x0000A0, 0x001680, 0x002000, 0x002001, 0x002002, 0x002003, 0x002004, 0x002005, 0x002006, 0x002007, 0x002008, 0x002009, 0x00200A, 0x002028, 0x002029, 0x00202F, 0x00205F, 0x003000 +0x000009, +0x00000A, +0x00000B, +0x00000C, +0x00000D, +0x000020, +0x000085, +0x0000A0, +0x001680, +0x002000, +0x002001, +0x002002, +0x002003, +0x002004, +0x002005, +0x002006, +0x002007, +0x002008, +0x002009, +0x00200A, +0x002028, +0x002029, +0x00202F, +0x00205F, +0x003000, }; const std::unordered_map unicode_map_lowercase = { @@ -3222,6 +3267,7 @@ const std::unordered_map unicode_map_lowercase = { {0x002C2C, 0x002C5C}, {0x002C2D, 0x002C5D}, {0x002C2E, 0x002C5E}, +{0x002C2F, 0x002C5F}, {0x002C60, 0x002C61}, {0x002C62, 0x00026B}, {0x002C63, 0x001D7D}, @@ -3402,12 +3448,16 @@ const std::unordered_map unicode_map_lowercase = { {0x00A7BA, 0x00A7BB}, {0x00A7BC, 0x00A7BD}, {0x00A7BE, 0x00A7BF}, +{0x00A7C0, 0x00A7C1}, {0x00A7C2, 0x00A7C3}, {0x00A7C4, 0x00A794}, {0x00A7C5, 0x000282}, {0x00A7C6, 0x001D8E}, {0x00A7C7, 0x00A7C8}, {0x00A7C9, 0x00A7CA}, +{0x00A7D0, 0x00A7D1}, +{0x00A7D6, 0x00A7D7}, +{0x00A7D8, 0x00A7D9}, {0x00A7F5, 0x00A7F6}, {0x00FF21, 0x00FF41}, {0x00FF22, 0x00FF42}, @@ -3511,6 +3561,41 @@ const std::unordered_map unicode_map_lowercase = { {0x0104D1, 0x0104F9}, {0x0104D2, 0x0104FA}, {0x0104D3, 0x0104FB}, +{0x010570, 0x010597}, +{0x010571, 0x010598}, +{0x010572, 0x010599}, +{0x010573, 0x01059A}, +{0x010574, 0x01059B}, +{0x010575, 0x01059C}, +{0x010576, 0x01059D}, +{0x010577, 0x01059E}, +{0x010578, 0x01059F}, +{0x010579, 0x0105A0}, +{0x01057A, 0x0105A1}, +{0x01057C, 0x0105A3}, +{0x01057D, 0x0105A4}, +{0x01057E, 0x0105A5}, +{0x01057F, 0x0105A6}, +{0x010580, 0x0105A7}, +{0x010581, 0x0105A8}, +{0x010582, 0x0105A9}, +{0x010583, 0x0105AA}, +{0x010584, 0x0105AB}, +{0x010585, 0x0105AC}, +{0x010586, 0x0105AD}, +{0x010587, 0x0105AE}, +{0x010588, 0x0105AF}, +{0x010589, 0x0105B0}, +{0x01058A, 0x0105B1}, +{0x01058C, 0x0105B3}, +{0x01058D, 0x0105B4}, +{0x01058E, 0x0105B5}, +{0x01058F, 0x0105B6}, +{0x010590, 0x0105B7}, +{0x010591, 0x0105B8}, +{0x010592, 0x0105B9}, +{0x010594, 0x0105BB}, +{0x010595, 0x0105BC}, {0x010C80, 0x010CC0}, {0x010C81, 0x010CC1}, {0x010C82, 0x010CC2}, @@ -3690,7 +3775,6 @@ const std::unordered_map unicode_map_uppercase = { {0x000079, 0x000059}, {0x00007A, 0x00005A}, {0x0000B5, 0x00039C}, -{0x0000DF, 0x000053}, {0x0000E0, 0x0000C0}, {0x0000E1, 0x0000C1}, {0x0000E2, 0x0000C2}, @@ -3758,7 +3842,6 @@ const std::unordered_map unicode_map_uppercase = { {0x000144, 0x000143}, {0x000146, 0x000145}, {0x000148, 0x000147}, -{0x000149, 0x0002BC}, {0x00014B, 0x00014A}, {0x00014D, 0x00014C}, {0x00014F, 0x00014E}, @@ -3831,7 +3914,6 @@ const std::unordered_map unicode_map_uppercase = { {0x0001EB, 0x0001EA}, {0x0001ED, 0x0001EC}, {0x0001EF, 0x0001EE}, -{0x0001F0, 0x00004A}, {0x0001F2, 0x0001F1}, {0x0001F3, 0x0001F1}, {0x0001F5, 0x0001F4}, @@ -3917,12 +3999,10 @@ const std::unordered_map unicode_map_uppercase = { {0x00037B, 0x0003FD}, {0x00037C, 0x0003FE}, {0x00037D, 0x0003FF}, -{0x000390, 0x000399}, {0x0003AC, 0x000386}, {0x0003AD, 0x000388}, {0x0003AE, 0x000389}, {0x0003AF, 0x00038A}, -{0x0003B0, 0x0003A5}, {0x0003B1, 0x000391}, {0x0003B2, 0x000392}, {0x0003B3, 0x000393}, @@ -4163,7 +4243,6 @@ const std::unordered_map unicode_map_uppercase = { {0x000584, 0x000554}, {0x000585, 0x000555}, {0x000586, 0x000556}, -{0x000587, 0x000535}, {0x0010D0, 0x001C90}, {0x0010D1, 0x001C91}, {0x0010D2, 0x001C92}, @@ -4303,11 +4382,6 @@ const std::unordered_map unicode_map_uppercase = { {0x001E91, 0x001E90}, {0x001E93, 0x001E92}, {0x001E95, 0x001E94}, -{0x001E96, 0x000048}, -{0x001E97, 0x000054}, -{0x001E98, 0x000057}, -{0x001E99, 0x000059}, -{0x001E9A, 0x000041}, {0x001E9B, 0x001E60}, {0x001EA1, 0x001EA0}, {0x001EA3, 0x001EA2}, @@ -4393,13 +4467,9 @@ const std::unordered_map unicode_map_uppercase = { {0x001F43, 0x001F4B}, {0x001F44, 0x001F4C}, {0x001F45, 0x001F4D}, -{0x001F50, 0x0003A5}, {0x001F51, 0x001F59}, -{0x001F52, 0x0003A5}, {0x001F53, 0x001F5B}, -{0x001F54, 0x0003A5}, {0x001F55, 0x001F5D}, -{0x001F56, 0x0003A5}, {0x001F57, 0x001F5F}, {0x001F60, 0x001F68}, {0x001F61, 0x001F69}, @@ -4423,89 +4493,41 @@ const std::unordered_map unicode_map_uppercase = { {0x001F7B, 0x001FEB}, {0x001F7C, 0x001FFA}, {0x001F7D, 0x001FFB}, -{0x001F80, 0x001F08}, -{0x001F81, 0x001F09}, -{0x001F82, 0x001F0A}, -{0x001F83, 0x001F0B}, -{0x001F84, 0x001F0C}, -{0x001F85, 0x001F0D}, -{0x001F86, 0x001F0E}, -{0x001F87, 0x001F0F}, -{0x001F88, 0x001F08}, -{0x001F89, 0x001F09}, -{0x001F8A, 0x001F0A}, -{0x001F8B, 0x001F0B}, -{0x001F8C, 0x001F0C}, -{0x001F8D, 0x001F0D}, -{0x001F8E, 0x001F0E}, -{0x001F8F, 0x001F0F}, -{0x001F90, 0x001F28}, -{0x001F91, 0x001F29}, -{0x001F92, 0x001F2A}, -{0x001F93, 0x001F2B}, -{0x001F94, 0x001F2C}, -{0x001F95, 0x001F2D}, -{0x001F96, 0x001F2E}, -{0x001F97, 0x001F2F}, -{0x001F98, 0x001F28}, -{0x001F99, 0x001F29}, -{0x001F9A, 0x001F2A}, -{0x001F9B, 0x001F2B}, -{0x001F9C, 0x001F2C}, -{0x001F9D, 0x001F2D}, -{0x001F9E, 0x001F2E}, -{0x001F9F, 0x001F2F}, -{0x001FA0, 0x001F68}, -{0x001FA1, 0x001F69}, -{0x001FA2, 0x001F6A}, -{0x001FA3, 0x001F6B}, -{0x001FA4, 0x001F6C}, -{0x001FA5, 0x001F6D}, -{0x001FA6, 0x001F6E}, -{0x001FA7, 0x001F6F}, -{0x001FA8, 0x001F68}, -{0x001FA9, 0x001F69}, -{0x001FAA, 0x001F6A}, -{0x001FAB, 0x001F6B}, -{0x001FAC, 0x001F6C}, -{0x001FAD, 0x001F6D}, -{0x001FAE, 0x001F6E}, -{0x001FAF, 0x001F6F}, +{0x001F80, 0x001F88}, +{0x001F81, 0x001F89}, +{0x001F82, 0x001F8A}, +{0x001F83, 0x001F8B}, +{0x001F84, 0x001F8C}, +{0x001F85, 0x001F8D}, +{0x001F86, 0x001F8E}, +{0x001F87, 0x001F8F}, +{0x001F90, 0x001F98}, +{0x001F91, 0x001F99}, +{0x001F92, 0x001F9A}, +{0x001F93, 0x001F9B}, +{0x001F94, 0x001F9C}, +{0x001F95, 0x001F9D}, +{0x001F96, 0x001F9E}, +{0x001F97, 0x001F9F}, +{0x001FA0, 0x001FA8}, +{0x001FA1, 0x001FA9}, +{0x001FA2, 0x001FAA}, +{0x001FA3, 0x001FAB}, +{0x001FA4, 0x001FAC}, +{0x001FA5, 0x001FAD}, +{0x001FA6, 0x001FAE}, +{0x001FA7, 0x001FAF}, {0x001FB0, 0x001FB8}, {0x001FB1, 0x001FB9}, -{0x001FB2, 0x001FBA}, -{0x001FB3, 0x000391}, -{0x001FB4, 0x000386}, -{0x001FB6, 0x000391}, -{0x001FB7, 0x000391}, -{0x001FBC, 0x000391}, +{0x001FB3, 0x001FBC}, {0x001FBE, 0x000399}, -{0x001FC2, 0x001FCA}, -{0x001FC3, 0x000397}, -{0x001FC4, 0x000389}, -{0x001FC6, 0x000397}, -{0x001FC7, 0x000397}, -{0x001FCC, 0x000397}, +{0x001FC3, 0x001FCC}, {0x001FD0, 0x001FD8}, {0x001FD1, 0x001FD9}, -{0x001FD2, 0x000399}, -{0x001FD3, 0x000399}, -{0x001FD6, 0x000399}, -{0x001FD7, 0x000399}, {0x001FE0, 0x001FE8}, {0x001FE1, 0x001FE9}, -{0x001FE2, 0x0003A5}, -{0x001FE3, 0x0003A5}, -{0x001FE4, 0x0003A1}, {0x001FE5, 0x001FEC}, -{0x001FE6, 0x0003A5}, -{0x001FE7, 0x0003A5}, -{0x001FF2, 0x001FFA}, -{0x001FF3, 0x0003A9}, -{0x001FF4, 0x00038F}, -{0x001FF6, 0x0003A9}, -{0x001FF7, 0x0003A9}, -{0x001FFC, 0x0003A9}, +{0x001FF3, 0x001FFC}, {0x00214E, 0x002132}, {0x002170, 0x002160}, {0x002171, 0x002161}, @@ -4597,6 +4619,7 @@ const std::unordered_map unicode_map_uppercase = { {0x002C5C, 0x002C2C}, {0x002C5D, 0x002C2D}, {0x002C5E, 0x002C2E}, +{0x002C5F, 0x002C2F}, {0x002C61, 0x002C60}, {0x002C65, 0x00023A}, {0x002C66, 0x00023E}, @@ -4800,9 +4823,13 @@ const std::unordered_map unicode_map_uppercase = { {0x00A7BB, 0x00A7BA}, {0x00A7BD, 0x00A7BC}, {0x00A7BF, 0x00A7BE}, +{0x00A7C1, 0x00A7C0}, {0x00A7C3, 0x00A7C2}, {0x00A7C8, 0x00A7C7}, {0x00A7CA, 0x00A7C9}, +{0x00A7D1, 0x00A7D0}, +{0x00A7D7, 0x00A7D6}, +{0x00A7D9, 0x00A7D8}, {0x00A7F6, 0x00A7F5}, {0x00AB53, 0x00A7B3}, {0x00AB70, 0x0013A0}, @@ -4885,18 +4912,6 @@ const std::unordered_map unicode_map_uppercase = { {0x00ABBD, 0x0013ED}, {0x00ABBE, 0x0013EE}, {0x00ABBF, 0x0013EF}, -{0x00FB00, 0x000046}, -{0x00FB01, 0x000046}, -{0x00FB02, 0x000046}, -{0x00FB03, 0x000046}, -{0x00FB04, 0x000046}, -{0x00FB05, 0x000053}, -{0x00FB06, 0x000053}, -{0x00FB13, 0x000544}, -{0x00FB14, 0x000544}, -{0x00FB15, 0x000544}, -{0x00FB16, 0x00054E}, -{0x00FB17, 0x000544}, {0x00FF41, 0x00FF21}, {0x00FF42, 0x00FF22}, {0x00FF43, 0x00FF23}, @@ -4999,6 +5014,41 @@ const std::unordered_map unicode_map_uppercase = { {0x0104F9, 0x0104D1}, {0x0104FA, 0x0104D2}, {0x0104FB, 0x0104D3}, +{0x010597, 0x010570}, +{0x010598, 0x010571}, +{0x010599, 0x010572}, +{0x01059A, 0x010573}, +{0x01059B, 0x010574}, +{0x01059C, 0x010575}, +{0x01059D, 0x010576}, +{0x01059E, 0x010577}, +{0x01059F, 0x010578}, +{0x0105A0, 0x010579}, +{0x0105A1, 0x01057A}, +{0x0105A3, 0x01057C}, +{0x0105A4, 0x01057D}, +{0x0105A5, 0x01057E}, +{0x0105A6, 0x01057F}, +{0x0105A7, 0x010580}, +{0x0105A8, 0x010581}, +{0x0105A9, 0x010582}, +{0x0105AA, 0x010583}, +{0x0105AB, 0x010584}, +{0x0105AC, 0x010585}, +{0x0105AD, 0x010586}, +{0x0105AE, 0x010587}, +{0x0105AF, 0x010588}, +{0x0105B0, 0x010589}, +{0x0105B1, 0x01058A}, +{0x0105B3, 0x01058C}, +{0x0105B4, 0x01058D}, +{0x0105B5, 0x01058E}, +{0x0105B6, 0x01058F}, +{0x0105B7, 0x010590}, +{0x0105B8, 0x010591}, +{0x0105B9, 0x010592}, +{0x0105BB, 0x010594}, +{0x0105BC, 0x010595}, {0x010CC0, 0x010C80}, {0x010CC1, 0x010C81}, {0x010CC2, 0x010C82}, diff --git a/unicode.cpp b/unicode.cpp index 2f8d73832d107..913c34b9b7bd6 100644 --- a/unicode.cpp +++ b/unicode.cpp @@ -226,8 +226,9 @@ static std::vector unicode_regex_split_custom_gpt2(const std::string & t assert(offset_end <= cpts.size()); start = offset_end; + static const uint32_t OUT_OF_RANGE = 0xFFFFFFFF; auto _get_cpt = [&] (const size_t pos) -> uint32_t { - return (offset_ini <= pos && pos < offset_end) ? cpts[pos] : 0; + return (offset_ini <= pos && pos < offset_end) ? cpts[pos] : OUT_OF_RANGE; }; auto _get_flags = [&] (const size_t pos) -> codepoint_flags { @@ -309,7 +310,7 @@ static std::vector unicode_regex_split_custom_gpt2(const std::string & t } // regex: \s+(?!\S) - if (num_whitespaces > 1 && _get_cpt(pos+num_whitespaces) != 0) { + if (num_whitespaces > 1 && _get_cpt(pos+num_whitespaces) != OUT_OF_RANGE) { pos += num_whitespaces - 1; _add_token(pos); continue; @@ -344,8 +345,9 @@ static std::vector unicode_regex_split_custom_llama3(const std::string & assert(offset_end <= cpts.size()); start = offset_end; + static const uint32_t OUT_OF_RANGE = 0xFFFFFFFF; auto _get_cpt = [&] (const size_t pos) -> uint32_t { - return (offset_ini <= pos && pos < offset_end) ? cpts[pos] : 0; + return (offset_ini <= pos && pos < offset_end) ? cpts[pos] : OUT_OF_RANGE; }; auto _get_flags = [&] (const size_t pos) -> codepoint_flags { @@ -450,7 +452,7 @@ static std::vector unicode_regex_split_custom_llama3(const std::string & } // regex: \s+(?!\S) - if (num_whitespaces > 1 && _get_cpt(pos+num_whitespaces) != 0) { + if (num_whitespaces > 1 && _get_cpt(pos+num_whitespaces) != OUT_OF_RANGE) { pos += num_whitespaces - 1; _add_token(pos); continue; @@ -679,10 +681,14 @@ std::vector unicode_regex_split(const std::string & text, const std continue; } - const int cpt_flag = unicode_cpt_flags(cpts[i]).category_flag(); + const auto flags = unicode_cpt_flags(cpts[i]); - if (k_ucat_cpt.find(cpt_flag) != k_ucat_cpt.end()) { - text_collapsed[i] = k_ucat_cpt.at(cpt_flag); + if (flags.is_whitespace) { + //NOTE: C++ std::regex \s does not mach 0x85, Rust and Python regex does. + //text_collapsed[i] = (char) 0x85; // as whitespace fallback + text_collapsed[i] = (char) 0x0B; // as whitespace fallback + } else if (k_ucat_cpt.find(flags.category_flag()) != k_ucat_cpt.end()) { + text_collapsed[i] = k_ucat_cpt.at(flags.category_flag()); } else { text_collapsed[i] = (char) 0xD0; // fallback } @@ -766,9 +772,16 @@ std::vector unicode_regex_split(const std::string & text, const std bpe_offsets = unicode_regex_split_stl(text_collapsed, regex_expr_collapsed, bpe_offsets); } else { // no unicode category used, we can use std::wregex directly - const std::wstring wtext = unicode_wstring_from_utf8(text); const std::wstring wregex_expr = unicode_wstring_from_utf8(regex_expr); + // std::wregex \s does not mach non-ASCII whitespaces, using 0x0B as fallback + std::wstring wtext(cpts.begin(), cpts.end()); + for (size_t i = 0; i < wtext.size(); ++i) { + if (wtext[i] > 0x7F && unicode_cpt_flags(wtext[i]).is_whitespace) { + wtext[i] = 0x0B; + } + } + //printf("text: %s\n", text.c_str()); //printf("regex_expr: %s\n", regex_expr.c_str()); bpe_offsets = unicode_regex_split_stl(wtext, wregex_expr, bpe_offsets); From 623494a478134432fd2d7ee40135770a3340674f Mon Sep 17 00:00:00 2001 From: "Meng, Hengyu" Date: Wed, 19 Jun 2024 09:11:51 +0800 Subject: [PATCH 104/131] [SYCL] refactor (#6408) * seperate lower precision GEMM from the main files * fix workgroup size hardcode --- ggml-sycl.cpp | 9132 +++++--------------------------------- ggml-sycl/backend.hpp | 5 + ggml-sycl/convert.cpp | 544 +++ ggml-sycl/convert.hpp | 27 + ggml-sycl/dequantize.hpp | 690 +++ ggml-sycl/dmmv.cpp | 1022 +++++ ggml-sycl/dmmv.hpp | 27 + ggml-sycl/mmq.cpp | 3031 +++++++++++++ ggml-sycl/mmq.hpp | 33 + ggml-sycl/mmvq.cpp | 1024 +++++ ggml-sycl/mmvq.hpp | 27 + ggml-sycl/presets.hpp | 2 - ggml-sycl/vecdotq.hpp | 1161 +++++ 13 files changed, 8664 insertions(+), 8061 deletions(-) create mode 100644 ggml-sycl/convert.cpp create mode 100644 ggml-sycl/convert.hpp create mode 100644 ggml-sycl/dequantize.hpp create mode 100644 ggml-sycl/dmmv.cpp create mode 100644 ggml-sycl/dmmv.hpp create mode 100644 ggml-sycl/mmq.cpp create mode 100644 ggml-sycl/mmq.hpp create mode 100644 ggml-sycl/mmvq.cpp create mode 100644 ggml-sycl/mmvq.hpp create mode 100644 ggml-sycl/vecdotq.hpp diff --git a/ggml-sycl.cpp b/ggml-sycl.cpp index 6bd42b9609882..485f06ad331f8 100644 --- a/ggml-sycl.cpp +++ b/ggml-sycl.cpp @@ -38,67 +38,17 @@ #include "ggml-sycl/backend.hpp" -/* -Following definition copied from DPCT head files, which are used by ggml-sycl.cpp -*/ -// COPY from DPCT head files -#include -#include -#include - -#if defined(__linux__) -#include -#elif defined(_WIN64) -#ifndef NOMINMAX -#define NOMINMAX -#endif -#include -#else -#error "Only support Windows and Linux." -#endif - -#if defined(__linux__) -#include -#include -#endif -#if defined(_WIN64) -#ifndef NOMINMAX -#define NOMINMAX -#endif -#include -#endif - -#define DPCT_COMPATIBILITY_TEMP (900) - -#if defined(_MSC_VER) -#define __dpct_align__(n) __declspec(align(n)) -#define __dpct_inline__ __forceinline -#else -#define __dpct_align__(n) __attribute__((aligned(n))) -#define __dpct_inline__ __inline__ __attribute__((always_inline)) -#endif - -#if defined(_MSC_VER) -#define __dpct_noinline__ __declspec(noinline) -#else -#define __dpct_noinline__ __attribute__((noinline)) -#endif - bool ggml_sycl_loaded(void); void ggml_sycl_free_data(struct ggml_tensor * tensor); -void ggml_sycl_assign_buffers(struct ggml_tensor * tensor); -void ggml_sycl_assign_buffers_no_scratch(struct ggml_tensor * tensor); -void ggml_sycl_assign_buffers_force_inplace(struct ggml_tensor * tensor); -void ggml_sycl_assign_buffers_no_alloc(struct ggml_tensor * tensor); void ggml_sycl_copy_to_device(struct ggml_tensor * tensor); void ggml_sycl_set_main_device(int main_device); void ggml_sycl_set_mul_mat_q(bool mul_mat_q); -void ggml_sycl_set_scratch_size(size_t scratch_size); -void ggml_sycl_free_scratch(void); void ggml_sycl_get_device_description(int device, char * description, size_t description_size); bool ggml_backend_is_sycl(ggml_backend_t backend); int ggml_backend_sycl_get_device(ggml_backend_t backend); static bool ggml_backend_buffer_is_sycl_split(ggml_backend_buffer_t buffer); +static inline int get_sycl_env(const char *env_name, int default_val); +static inline int get_work_group_size(const sycl::device& device); void dev2dev_memcpy(sycl::queue &q_dst, sycl::queue &q_src, void *ptr_dst, const void *ptr_src, size_t size) { @@ -108,45 +58,6 @@ void dev2dev_memcpy(sycl::queue &q_dst, sycl::queue &q_src, void *ptr_dst, free(host_buf); } -static __dpct_inline__ int get_int_from_int8(const int8_t *x8, const int &i32) { - const uint16_t * x16 = (const uint16_t *) (x8 + sizeof(int) * i32); // assume at least 2 byte alignment - - int x32 = 0; - x32 |= x16[0] << 0; - x32 |= x16[1] << 16; - - return x32; -} - -static __dpct_inline__ int get_int_from_uint8(const uint8_t *x8, - const int &i32) { - const uint16_t * x16 = (const uint16_t *) (x8 + sizeof(int) * i32); // assume at least 2 byte alignment - - int x32 = 0; - x32 |= x16[0] << 0; - x32 |= x16[1] << 16; - - return x32; -} - -static __dpct_inline__ int get_int_from_int8_aligned(const int8_t *x8, - const int &i32) { - return *((const int *) (x8 + sizeof(int) * i32)); // assume at least 4 byte alignment -} - -static __dpct_inline__ int get_int_from_uint8_aligned(const uint8_t *x8, - const int &i32) { - return *((const int *) (x8 + sizeof(int) * i32)); // assume at least 4 byte alignment -} - -template -using to_t_sycl_t = void (*)(const void *__restrict__ x, T *__restrict__ y, - int k, queue_ptr stream); -typedef to_t_sycl_t to_fp32_sycl_t; -typedef to_t_sycl_t to_fp16_sycl_t; - -typedef void (*dequantize_kernel_t)(const void * vx, const int ib, const int iqs, dfloat2 & v); -typedef void (*dot_kernel_k_t)(const void * __restrict__ vx, const int ib, const int iqs, const float * __restrict__ y, float & v); typedef void (*cpy_kernel_t)(const char * cx, char * cdst); typedef void (*ggml_sycl_func_t)(ggml_backend_sycl_context & ctx, const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst); typedef void (*ggml_sycl_op_mul_mat_t)( @@ -162,22 +73,6 @@ typedef void (*ggml_sycl_op_flatten_t)(ggml_backend_sycl_context & ctx, const gg const float *src1_dd, float *dst_dd, const queue_ptr &main_stream); -typedef float (*vec_dot_q_sycl_t)(const void * __restrict__ vbq, const block_q8_1 * __restrict__ bq8_1, const int & iqs); -typedef void (*allocate_tiles_sycl_t)(int **x_ql, sycl::half2 **x_dm, - int **x_qh, int **x_sc); -typedef void (*load_tiles_sycl_t)(const void *__restrict__ vx, - int *__restrict__ x_ql, - sycl::half2 *__restrict__ x_dm, - int *__restrict__ x_qh, - int *__restrict__ x_sc, const int &i_offset, - const int &i_max, const int &k, - const int &blocks_per_row); -typedef float (*vec_dot_q_mul_mat_sycl_t)( - const int *__restrict__ x_ql, const sycl::half2 *__restrict__ x_dm, - const int *__restrict__ x_qh, const int *__restrict__ x_sc, - const int *__restrict__ y_qs, const sycl::half2 *__restrict__ y_ms, - const int &i, const int &j, const int &k); - static __dpct_inline__ float warp_reduce_sum(float x, const sycl::nd_item<3> &item_ct1) { #pragma unroll @@ -664,8029 +559,1392 @@ static void rms_norm_f32(const float * x, float * dst, const int ncols, const fl } } -static __dpct_inline__ void dequantize_q4_0(const void *vx, const int ib, - const int iqs, dfloat2 &v) { - const block_q4_0 * x = (const block_q4_0 *) vx; +static void quantize_q8_1(const float * __restrict__ x, void * __restrict__ vy, const int kx, const int kx_padded, + const sycl::nd_item<3> &item_ct1) { + const int ix = item_ct1.get_local_range(2) * item_ct1.get_group(2) + + item_ct1.get_local_id(2); - const dfloat d = x[ib].d; + if (ix >= kx_padded) { + return; + } - const int vui = x[ib].qs[iqs]; + const int iy = item_ct1.get_local_range(1) * item_ct1.get_group(1) + + item_ct1.get_local_id(1); - v.x() = vui & 0xF; - v.y() = vui >> 4; + const int i_padded = iy*kx_padded + ix; -#ifdef GGML_SYCL_F16 - // v = v - {8.0f, 8.0f}; - // v = v * {d, d}; - v.s0() = (v.s0() - 8.0f) * d; - v.s1() = (v.s1() - 8.0f) * d; + block_q8_1 * y = (block_q8_1 *) vy; -#else - v.x() = (v.x() - 8.0f) * d; - v.y() = (v.y() - 8.0f) * d; -#endif // GGML_SYCL_F16 -} + const int ib = i_padded / QK8_1; // block index + const int iqs = i_padded % QK8_1; // quant index -static __dpct_inline__ void dequantize_q4_1(const void *vx, const int ib, - const int iqs, dfloat2 &v) { - const block_q4_1 * x = (const block_q4_1 *) vx; + const float xi = ix < kx ? x[iy*kx + ix] : 0.0f; + float amax = sycl::fabs((float)xi); + float sum = xi; - const dfloat d = x[ib].dm[0]; - const dfloat m = x[ib].dm[1]; +#pragma unroll + for (int mask = 16; mask > 0; mask >>= 1) { + amax = sycl::fmax(amax, dpct::permute_sub_group_by_xor( + item_ct1.get_sub_group(), amax, mask)); + sum += + dpct::permute_sub_group_by_xor(item_ct1.get_sub_group(), sum, mask); + } - const int vui = x[ib].qs[iqs]; + const float d = amax / 127; + const int8_t q = amax == 0.0f ? 0 : sycl::round(xi / d); - v.x() = vui & 0xF; - v.y() = vui >> 4; + y[ib].qs[iqs] = q; -#ifdef GGML_SYCL_F16 - // v = v * {d, d}; - // v = v + {m, m}; - v.s0() = (v.s0() * d) + m; - v.s1() = (v.s1() * d) + m; + if (iqs > 0) { + return; + } -#else - v.x() = (v.x() * d) + m; - v.y() = (v.y() * d) + m; -#endif // GGML_SYCL_F16 + reinterpret_cast(y[ib].ds.x()) = d; + reinterpret_cast(y[ib].ds.y()) = sum; } -static __dpct_inline__ void dequantize_q5_0(const void *vx, const int ib, - const int iqs, dfloat2 &v) { - const block_q5_0 * x = (const block_q5_0 *) vx; +template +static void k_get_rows( + const void * src0, const int32_t * src1, dst_t * dst, + int64_t ne00, /*int64_t ne01, int64_t ne02, int64_t ne03,*/ + /*int64_t ne10, int64_t ne11,*/ int64_t ne12, /*int64_t ne13,*/ + /*size_t s0,*/ size_t s1, size_t s2, size_t s3, + /*size_t nb00,*/ size_t nb01, size_t nb02, size_t nb03, + size_t s10, size_t s11, size_t s12, + const sycl::nd_item<3> &item_ct1/*, size_t s13*/) { - const dfloat d = x[ib].d; + const int i00 = (item_ct1.get_group(2) * item_ct1.get_local_range(2) + + item_ct1.get_local_id(2)) * + 2; + const int i10 = item_ct1.get_local_range(1) * item_ct1.get_group(1) + + item_ct1.get_local_id(1); + const int i11 = (item_ct1.get_group(0) * item_ct1.get_local_range(0) + + item_ct1.get_local_id(0)) / + ne12; + const int i12 = (item_ct1.get_group(0) * item_ct1.get_local_range(0) + + item_ct1.get_local_id(0)) % + ne12; - uint32_t qh; - memcpy(&qh, x[ib].qh, sizeof(qh)); + if (i00 >= ne00) { + return; + } - const int xh_0 = ((qh >> (iqs + 0)) << 4) & 0x10; - const int xh_1 = ((qh >> (iqs + 12)) ) & 0x10; + const int i01 = src1[i10*s10 + i11*s11 + i12*s12]; - v.x() = ((x[ib].qs[iqs] & 0xf) | xh_0); - v.y() = ((x[ib].qs[iqs] >> 4) | xh_1); + dst_t * dst_row = dst + i10*s1 + i11*s2 + i12*s3; + const void * src0_row = (const char *)src0 + i01*nb01 + i11*nb02 + i12*nb03; -#ifdef GGML_SYCL_F16 - // v = v - {16.0f, 16.0f}; - // v = v * {d, d}; - v.s0() = (v.s0() - 16.0f) * d; - v.s1() = (v.s1() - 16.0f) * d; + const int ib = i00/qk; // block index + const int iqs = (i00%qk)/qr; // quant index + const int iybs = i00 - i00%qk; // dst block start index + const int y_offset = qr == 1 ? 1 : qk/2; -#else - v.x() = (v.x() - 16.0f) * d; - v.y() = (v.y() - 16.0f) * d; -#endif // GGML_SYCL_F16 + // dequantize + dfloat2 v; + dequantize_kernel(src0_row, ib, iqs, v); + + dst_row[iybs + iqs + 0] = v.x(); + dst_row[iybs + iqs + y_offset] = v.y(); } -static __dpct_inline__ void dequantize_q5_1(const void *vx, const int ib, - const int iqs, dfloat2 &v) { - const block_q5_1 * x = (const block_q5_1 *) vx; +template +static void k_get_rows_float( + const src0_t * src0, const int32_t * src1, dst_t * dst, + int64_t ne00, /*int64_t ne01, int64_t ne02, int64_t ne03,*/ + /*int64_t ne10, int64_t ne11,*/ int64_t ne12, /*int64_t ne13,*/ + /*size_t s0,*/ size_t s1, size_t s2, size_t s3, + /*size_t nb00,*/ size_t nb01, size_t nb02, size_t nb03, + size_t s10, size_t s11, size_t s12, + const sycl::nd_item<3> &item_ct1/*, size_t s13*/) { - const dfloat d = x[ib].dm[0]; - const dfloat m = x[ib].dm[1]; + const int i00 = item_ct1.get_group(2) * item_ct1.get_local_range(2) + + item_ct1.get_local_id(2); + const int i10 = item_ct1.get_local_range(1) * item_ct1.get_group(1) + + item_ct1.get_local_id(1); + const int i11 = (item_ct1.get_group(0) * item_ct1.get_local_range(0) + + item_ct1.get_local_id(0)) / + ne12; + const int i12 = (item_ct1.get_group(0) * item_ct1.get_local_range(0) + + item_ct1.get_local_id(0)) % + ne12; - uint32_t qh; - memcpy(&qh, x[ib].qh, sizeof(qh)); + if (i00 >= ne00) { + return; + } - const int xh_0 = ((qh >> (iqs + 0)) << 4) & 0x10; - const int xh_1 = ((qh >> (iqs + 12)) ) & 0x10; + const int i01 = src1[i10*s10 + i11*s11 + i12*s12]; - v.x() = ((x[ib].qs[iqs] & 0xf) | xh_0); - v.y() = ((x[ib].qs[iqs] >> 4) | xh_1); + dst_t * dst_row = dst + i10*s1 + i11*s2 + i12*s3; + const src0_t * src0_row = (const src0_t *)((const char *)src0 + i01*nb01 + i11*nb02 + i12*nb03); -#ifdef GGML_SYCL_F16 - // v = v * {d, d}; - // v = v + {m, m}; - v.s0() = (v.s0() * d) + m; - v.s1() = (v.s1() * d) + m; -#else - v.x() = (v.x() * d) + m; - v.y() = (v.y() * d) + m; -#endif // GGML_SYCL_F16 + dst_row[i00] = src0_row[i00]; } -static __dpct_inline__ void dequantize_q8_0(const void *vx, const int ib, - const int iqs, dfloat2 &v) { - const block_q8_0 * x = (const block_q8_0 *) vx; - - const dfloat d = x[ib].d; - - v.x() = x[ib].qs[iqs + 0]; - v.y() = x[ib].qs[iqs + 1]; +static void mul_mat_p021_f16_f32( + const void * __restrict__ vx, const float * __restrict__ y, float * __restrict__ dst, + const int ncols_x, const int nrows_x, const int nchannels_x, const int nchannels_y, + const sycl::nd_item<3> &item_ct1) { -#ifdef GGML_SYCL_F16 - // v = v * {d, d}; - v.s0() *= d; - v.s1() *= d; -#else - v.x() *= d; - v.y() *= d; -#endif // GGML_SYCL_F16 -} + const sycl::half *x = (const sycl::half *)vx; -template -static void dequantize_block_q4_0(const void * __restrict__ vx, dst_t * __restrict__ yy, int nb32, - const sycl::nd_item<3> &item_ct1) { + const int row_x = item_ct1.get_local_range(1) * item_ct1.get_group(1) + + item_ct1.get_local_id(1); + const int channel = item_ct1.get_local_range(0) * item_ct1.get_group(0) + + item_ct1.get_local_id(0); + const int channel_x = channel / (nchannels_y / nchannels_x); - const int i = item_ct1.get_group(2); + const int nrows_y = ncols_x; + const int nrows_dst = nrows_x; + const int row_dst = row_x; - // assume 32 threads - const int tid = item_ct1.get_local_id(2); - const int il = tid/8; - const int ir = tid%8; - const int ib = 8*i + ir; - if (ib >= nb32) { - return; - } + float tmp = 0.0f; - dst_t * y = yy + 256*i + 32*ir + 4*il; + for (int col_x0 = 0; col_x0 < ncols_x; + col_x0 += item_ct1.get_local_range(2)) { + const int col_x = col_x0 + item_ct1.get_local_id(2); - const block_q4_0 * x = (const block_q4_0 *)vx + ib; - const float d = sycl::vec(x->d) - .convert()[0]; - const float dm = -8*d; + if (col_x >= ncols_x) { + break; + } - const uint8_t * q = x->qs + 4*il; + // x is transposed and permuted + const int ix = row_x*nchannels_x*ncols_x + channel_x*ncols_x + col_x; + const float xi = + sycl::vec(x[ix]) + .convert()[0]; - for (int l = 0; l < 4; ++l) { - y[l+ 0] = d * (q[l] & 0xF) + dm; - y[l+16] = d * (q[l] >> 4) + dm; - } -} + const int row_y = col_x; -template -static void dequantize_block_q4_1(const void * __restrict__ vx, dst_t * __restrict__ yy, int nb32, - const sycl::nd_item<3> &item_ct1) { - const int i = item_ct1.get_group(2); + // y is not transposed but permuted + const int iy = channel*nrows_y + row_y; - // assume 32 threads - const int tid = item_ct1.get_local_id(2); - const int il = tid/8; - const int ir = tid%8; - const int ib = 8*i + ir; - if (ib >= nb32) { - return; + tmp += xi * y[iy]; } - dst_t * y = yy + 256*i + 32*ir + 4*il; - - const block_q4_1 * x = (const block_q4_1 *)vx + ib; - const sycl::float2 d = - x->dm.convert(); + // dst is not transposed and not permuted + const int idst = channel*nrows_dst + row_dst; - const uint8_t * q = x->qs + 4*il; + // sum up partial sums and write back result +#pragma unroll + for (int mask = 16; mask > 0; mask >>= 1) { + tmp += + dpct::permute_sub_group_by_xor(item_ct1.get_sub_group(), tmp, mask); + } - for (int l = 0; l < 4; ++l) { - y[l + 0] = d.x() * (q[l] & 0xF) + d.y(); - y[l + 16] = d.x() * (q[l] >> 4) + d.y(); + if (item_ct1.get_local_id(2) == 0) { + dst[idst] = tmp; } } +static void mul_mat_vec_nc_f16_f32( // nc == non-contiguous + const void * __restrict__ vx, const float * __restrict__ y, float * __restrict__ dst, const int ncols_x, const int nrows_x, + const int row_stride_x, const int channel_stride_x, const int channel_x_divisor, + const sycl::nd_item<3> &item_ct1) { -//================================== k-quants - -template -static void dequantize_block_q2_K(const void * __restrict__ vx, dst_t * __restrict__ yy, - const sycl::nd_item<3> &item_ct1) { + const sycl::half *x = (const sycl::half *)vx; - const int i = item_ct1.get_group(2); - const block_q2_K * x = (const block_q2_K *) vx; + const int row_x = item_ct1.get_local_range(1) * item_ct1.get_group(1) + + item_ct1.get_local_id(1); + const int channel = item_ct1.get_local_range(0) * item_ct1.get_group(0) + + item_ct1.get_local_id(0); + const int channel_x = channel / channel_x_divisor; - const int tid = item_ct1.get_local_id(2); - const int n = tid/32; - const int l = tid - 32*n; - const int is = 8*n + l/16; + const int nrows_y = ncols_x; + const int nrows_dst = nrows_x; + const int row_dst = row_x; - const uint8_t q = x[i].qs[32*n + l]; - dst_t * y = yy + i*QK_K + 128*n; + const int idst = channel*nrows_dst + row_dst; - float dall = x[i].dm[0]; - float dmin = x[i].dm[1]; - y[l+ 0] = dall * (x[i].scales[is+0] & 0xF) * ((q >> 0) & 3) - dmin * (x[i].scales[is+0] >> 4); - y[l+32] = dall * (x[i].scales[is+2] & 0xF) * ((q >> 2) & 3) - dmin * (x[i].scales[is+2] >> 4); - y[l+64] = dall * (x[i].scales[is+4] & 0xF) * ((q >> 4) & 3) - dmin * (x[i].scales[is+4] >> 4); - y[l+96] = dall * (x[i].scales[is+6] & 0xF) * ((q >> 6) & 3) - dmin * (x[i].scales[is+6] >> 4); -} + float tmp = 0.0f; -template -static void dequantize_block_q3_K(const void * __restrict__ vx, dst_t * __restrict__ yy, - const sycl::nd_item<3> &item_ct1) { + for (int col_x0 = 0; col_x0 < ncols_x; + col_x0 += item_ct1.get_local_range(2)) { + const int col_x = col_x0 + item_ct1.get_local_id(2); - const int i = item_ct1.get_group(2); - const block_q3_K * x = (const block_q3_K *) vx; + if (col_x >= ncols_x) { + break; + } - const int r = item_ct1.get_local_id(2) / 4; - const int tid = r/2; - const int is0 = r%2; - const int l0 = 16 * is0 + 4 * (item_ct1.get_local_id(2) % 4); - const int n = tid / 4; - const int j = tid - 4*n; + const int row_y = col_x; - uint8_t m = 1 << (4*n + j); - int is = 8*n + 2*j + is0; - int shift = 2*j; + const int ix = channel_x*channel_stride_x + row_x*row_stride_x + col_x; + const int iy = channel*nrows_y + row_y; - int8_t us = is < 4 ? (x[i].scales[is-0] & 0xF) | (((x[i].scales[is+8] >> 0) & 3) << 4) : - is < 8 ? (x[i].scales[is-0] & 0xF) | (((x[i].scales[is+4] >> 2) & 3) << 4) : - is < 12 ? (x[i].scales[is-8] >> 4) | (((x[i].scales[is+0] >> 4) & 3) << 4) : - (x[i].scales[is-8] >> 4) | (((x[i].scales[is-4] >> 6) & 3) << 4); - float d_all = x[i].d; - float dl = d_all * (us - 32); + const float xi = + sycl::vec(x[ix]) + .convert()[0]; - dst_t * y = yy + i*QK_K + 128*n + 32*j; - const uint8_t * q = x[i].qs + 32*n; - const uint8_t * hm = x[i].hmask; + tmp += xi * y[iy]; + } - for (int l = l0; l < l0+4; ++l) y[l] = dl * ((int8_t)((q[l] >> shift) & 3) - ((hm[l] & m) ? 0 : 4)); -} + // sum up partial sums and write back result +#pragma unroll + for (int mask = 16; mask > 0; mask >>= 1) { + tmp += + dpct::permute_sub_group_by_xor(item_ct1.get_sub_group(), tmp, mask); + } -static inline void get_scale_min_k4(int j, const uint8_t * q, uint8_t & d, uint8_t & m) { - if (j < 4) { - d = q[j] & 63; m = q[j + 4] & 63; - } else { - d = (q[j+4] & 0xF) | ((q[j-4] >> 6) << 4); - m = (q[j+4] >> 4) | ((q[j-0] >> 6) << 4); + if (item_ct1.get_local_id(2) == 0) { + dst[idst] = tmp; } } -template -static void dequantize_block_q4_K(const void * __restrict__ vx, dst_t * __restrict__ yy, - const sycl::nd_item<3> &item_ct1) { - const block_q4_K * x = (const block_q4_K *) vx; - - const int i = item_ct1.get_group(2); +static void cpy_1_f32_f32(const char * cxi, char * cdsti) { + const float * xi = (const float *) cxi; + float * dsti = (float *) cdsti; - // assume 32 threads - const int tid = item_ct1.get_local_id(2); - const int il = tid/8; - const int ir = tid%8; - const int is = 2*il; - const int n = 4; + *dsti = *xi; +} - dst_t * y = yy + i*QK_K + 64*il + n*ir; +static void cpy_1_f32_f16(const char * cxi, char * cdsti) { + const float * xi = (const float *) cxi; + sycl::half *dsti = (sycl::half *)cdsti; - const float dall = x[i].dm[0]; - const float dmin = x[i].dm[1]; + *dsti = sycl::vec(*xi) + .convert()[0]; +} - const uint8_t * q = x[i].qs + 32*il + n*ir; +static void cpy_1_f16_f16(const char * cxi, char * cdsti) { + const sycl::half *xi = (const sycl::half *)cxi; + sycl::half *dsti = (sycl::half *)cdsti; - uint8_t sc, m; - get_scale_min_k4(is + 0, x[i].scales, sc, m); - const float d1 = dall * sc; const float m1 = dmin * m; - get_scale_min_k4(is + 1, x[i].scales, sc, m); - const float d2 = dall * sc; const float m2 = dmin * m; - for (int l = 0; l < n; ++l) { - y[l + 0] = d1 * (q[l] & 0xF) - m1; - y[l +32] = d2 * (q[l] >> 4) - m2; - } + *dsti = *xi; } -template -static void dequantize_block_q5_K(const void * __restrict__ vx, dst_t * __restrict__ yy, - const sycl::nd_item<3> &item_ct1) { - const block_q5_K * x = (const block_q5_K *) vx; +static void cpy_1_f16_f32(const char * cxi, char * cdsti) { + const sycl::half *xi = (const sycl::half *)cxi; + float * dsti = (float *) cdsti; - const int i = item_ct1.get_group(2); + *dsti = *xi; +} - // assume 64 threads - this is very slightly better than the one below - const int tid = item_ct1.get_local_id(2); - const int il = tid/16; // il is in 0...3 - const int ir = tid%16; // ir is in 0...15 - const int is = 2*il; // is is in 0...6 +static void cpy_1_i16_i16(const char * cxi, char * cdsti) { + const int16_t *xi = (const int16_t *)cxi; + int16_t *dsti = (int16_t *)cdsti; - dst_t * y = yy + i*QK_K + 64*il + 2*ir; - - const float dall = x[i].dm[0]; - const float dmin = x[i].dm[1]; - - const uint8_t * ql = x[i].qs + 32*il + 2*ir; - const uint8_t * qh = x[i].qh + 2*ir; - - uint8_t sc, m; - get_scale_min_k4(is + 0, x[i].scales, sc, m); - const float d1 = dall * sc; const float m1 = dmin * m; - get_scale_min_k4(is + 1, x[i].scales, sc, m); - const float d2 = dall * sc; const float m2 = dmin * m; - - uint8_t hm = 1 << (2*il); - y[ 0] = d1 * ((ql[ 0] & 0xF) + (qh[ 0] & hm ? 16 : 0)) - m1; - y[ 1] = d1 * ((ql[ 1] & 0xF) + (qh[ 1] & hm ? 16 : 0)) - m1; - hm <<= 1; - y[32] = d2 * ((ql[ 0] >> 4) + (qh[ 0] & hm ? 16 : 0)) - m2; - y[33] = d2 * ((ql[ 1] >> 4) + (qh[ 1] & hm ? 16 : 0)) - m2; + *dsti = *xi; } -template -static void dequantize_block_q6_K(const void * __restrict__ vx, dst_t * __restrict__ yy, - const sycl::nd_item<3> &item_ct1) { - const block_q6_K * x = (const block_q6_K *) vx; +static void cpy_1_i32_i32(const char * cxi, char * cdsti) { + const int32_t *xi = (const int32_t *)cxi; + int32_t *dsti = (int32_t *)cdsti; - const int i = item_ct1.get_group(2); + *dsti = *xi; +} - // assume 64 threads - this is very slightly better than the one below - const int tid = item_ct1.get_local_id(2); - const int ip = tid/32; // ip is 0 or 1 - const int il = tid - 32*ip; // 0...32 - const int is = 8*ip + il/16; +template +static void cpy_f32_f16(const char * cx, char * cdst, const int ne, + const int ne00, const int ne01, const int ne02, const int nb00, const int nb01, const int nb02, + const int nb03, const int ne10, const int ne11, const int ne12, const int nb10, const int nb11, + const int nb12, const int nb13, const sycl::nd_item<3> &item_ct1) { + const int i = item_ct1.get_local_range(2) * item_ct1.get_group(2) + + item_ct1.get_local_id(2); - dst_t * y = yy + i*QK_K + 128*ip + il; + if (i >= ne) { + return; + } - const float d = x[i].d; + // determine indices i02/i12, i01/i11, i00/i10 as a function of index i of flattened tensor + // then combine those indices with the corresponding byte offsets to get the total offsets + const int i03 = i/(ne00 * ne01 * ne02); + const int i02 = (i - i03*ne00*ne01*ne02 )/ (ne00*ne01); + const int i01 = (i - i03*ne00*ne01*ne02 - i02*ne01*ne00) / ne00; + const int i00 = i - i03*ne00*ne01*ne02 - i02*ne01*ne00 - i01*ne00; + const int x_offset = i00*nb00 + i01*nb01 + i02*nb02 + i03 * nb03; - const uint8_t * ql = x[i].ql + 64*ip + il; - const uint8_t qh = x[i].qh[32*ip + il]; - const int8_t * sc = x[i].scales + is; + const int i13 = i/(ne10 * ne11 * ne12); + const int i12 = (i - i13*ne10*ne11*ne12) / (ne10*ne11); + const int i11 = (i - i13*ne10*ne11*ne12 - i12*ne10*ne11) / ne10; + const int i10 = i - i13*ne10*ne11*ne12 - i12*ne10*ne11 - i11*ne10; + const int dst_offset = i10*nb10 + i11*nb11 + i12*nb12 + i13 * nb13; - y[ 0] = d * sc[0] * ((int8_t)((ql[ 0] & 0xF) | (((qh >> 0) & 3) << 4)) - 32); - y[32] = d * sc[2] * ((int8_t)((ql[32] & 0xF) | (((qh >> 2) & 3) << 4)) - 32); - y[64] = d * sc[4] * ((int8_t)((ql[ 0] >> 4) | (((qh >> 4) & 3) << 4)) - 32); - y[96] = d * sc[6] * ((int8_t)((ql[32] >> 4) | (((qh >> 6) & 3) << 4)) - 32); + cpy_1(cx + x_offset, cdst + dst_offset); } -template -static void dequantize_block_iq2_xxs(const void * __restrict__ vx, dst_t * __restrict__ yy, - const sycl::nd_item<3> &item_ct1, - const uint64_t *iq2xxs_grid_ptr, - const uint8_t *ksigns_iq2xs_ptr, - const uint8_t *kmask_iq2xs_ptr) { +static void cpy_blck_f32_q8_0(const char * cxi, char * cdsti) { + const float * xi = (const float *) cxi; + block_q8_0 * dsti = (block_q8_0 *) cdsti; - const int i = item_ct1.get_group(2); - const block_iq2_xxs * x = (const block_iq2_xxs *) vx; + float amax = 0.0f; // absolute max - const int tid = item_ct1.get_local_id(2); - const int il = tid/8; // 0...3 - const int ib = tid%8; // 0...7 - dst_t * y = yy + i*QK_K + 32*ib + 8*il; - const uint16_t * q2 = x[i].qs + 4*ib; - const uint8_t * aux8 = (const uint8_t *)q2; - const uint8_t * grid = (const uint8_t *)(iq2xxs_grid_ptr + aux8[il]); - const uint32_t aux32 = q2[2] | (q2[3] << 16); - const float d = (float)x[i].d * (0.5f + (aux32 >> 28)) * 0.25f; - const uint8_t signs = ksigns_iq2xs_ptr[(aux32 >> 7*il) & 127]; - for (int j = 0; j < 8; ++j) y[j] = d * grid[j] * (signs & kmask_iq2xs_ptr[j] ? -1.f : 1.f); -} - -template -static void dequantize_block_iq2_xs(const void * __restrict__ vx, dst_t * __restrict__ yy, - const sycl::nd_item<3> &item_ct1, - const uint64_t *iq2xs_grid, - const uint8_t *ksigns_iq2xs, - const uint8_t *kmask_iq2xs) { - - const int i = item_ct1.get_group(2); - const block_iq2_xs * x = (const block_iq2_xs *) vx; + for (int j = 0; j < QK8_0; j++) { + const float v = xi[j]; + amax = sycl::fmax(amax, sycl::fabs((float)v)); + } - const int tid = item_ct1.get_local_id(2); - const int il = tid/8; // 0...3 - const int ib = tid%8; // 0...7 - dst_t * y = yy + i*QK_K + 32*ib + 8*il; - const uint16_t * q2 = x[i].qs + 4*ib; - const uint8_t * grid = (const uint8_t *)(iq2xs_grid + (q2[il] & 511)); - const float d = (float)x[i].d * (0.5f + ((x[i].scales[ib] >> 4*(il/2)) & 0xf)) * 0.25f; - const uint8_t signs = ksigns_iq2xs[q2[il] >> 9]; - for (int j = 0; j < 8; ++j) y[j] = d * grid[j] * (signs & kmask_iq2xs[j] ? -1.f : 1.f); -} + const float d = amax / ((1 << 7) - 1); + const float id = d ? 1.0f/d : 0.0f; -template -__dpct_inline__ static void -dequantize_block_iq2_s(const void *__restrict__ vx, dst_t *__restrict__ yy, - const sycl::nd_item<3> &item_ct1) { + dsti->d = d; - const int i = item_ct1.get_group(2); - const block_iq2_s * x = (const block_iq2_s *) vx; + for (int j = 0; j < QK8_0; ++j) { + const float x0 = xi[j]*id; - const int tid = item_ct1.get_local_id(2); - const int il = tid/8; // 0...3 - const int ib = tid%8; // 0...7 - dst_t * y = yy + i*QK_K + 32*ib + 8*il; - const uint8_t * grid = (const uint8_t *)(iq2s_grid + (x[i].qs[4*ib+il] | ((x[i].qh[ib] << (8-2*il)) & 0x300))); - const float d = (float)x[i].d * (0.5f + ((x[i].scales[ib] >> 4*(il/2)) & 0xf)) * 0.25f; - const uint8_t signs = x[i].qs[QK_K/8+4*ib+il]; -#pragma unroll - for (int j = 0; j < 8; ++j) { - y[j] = d * grid[j] * (signs & kmask_iq2xs[j] ? -1.f : 1.f); + dsti->qs[j] = sycl::round((float)x0); } } -template -static void dequantize_block_iq3_xxs(const void * __restrict__ vx, dst_t * __restrict__ yy, - const sycl::nd_item<3> &item_ct1, - const uint32_t *iq3xxs_grid, - const uint8_t *ksigns_iq2xs, - const uint8_t *kmask_iq2xs) { - - const int i = item_ct1.get_group(2); - const block_iq3_xxs * x = (const block_iq3_xxs *) vx; - - const int tid = item_ct1.get_local_id(2); - const int il = tid/8; // 0...3 - const int ib = tid%8; // 0...7 - dst_t * y = yy + i*QK_K + 32*ib + 8*il; - const uint8_t * q3 = x[i].qs + 8*ib; - const uint16_t * gas = (const uint16_t *)(x[i].qs + QK_K/4) + 2*ib; - const uint8_t * grid1 = (const uint8_t *)(iq3xxs_grid + q3[2*il+0]); - const uint8_t * grid2 = (const uint8_t *)(iq3xxs_grid + q3[2*il+1]); - const uint32_t aux32 = gas[0] | (gas[1] << 16); - const float d = (float)x[i].d * (0.5f + (aux32 >> 28)) * 0.5f; - const uint8_t signs = ksigns_iq2xs[(aux32 >> 7*il) & 127]; - for (int j = 0; j < 4; ++j) { - y[j+0] = d * grid1[j] * (signs & kmask_iq2xs[j+0] ? -1.f : 1.f); - y[j+4] = d * grid2[j] * (signs & kmask_iq2xs[j+4] ? -1.f : 1.f); - } -} - -template -__dpct_inline__ static void -dequantize_block_iq3_s(const void *__restrict__ vx, dst_t *__restrict__ yy, - const sycl::nd_item<3> &item_ct1, - const uint8_t *kmask_iq2xs, const uint32_t *iq3s_grid) { +static void cpy_blck_f32_q4_0(const char * cxi, char * cdsti) { + const float * xi = (const float *) cxi; + block_q4_0 * dsti = (block_q4_0 *) cdsti; - const int i = item_ct1.get_group(2); - const block_iq3_s * x = (const block_iq3_s *) vx; + float amax = 0.0f; + float vmax = 0.0f; - const int tid = item_ct1.get_local_id(2); - const int il = tid/8; // 0...3 - const int ib = tid%8; // 0...7 - dst_t * y = yy + i*QK_K + 32*ib + 8*il; - const uint8_t * qs = x[i].qs + 8*ib; - const uint8_t * grid1 = (const uint8_t *)(iq3s_grid + (qs[2*il+0] | ((x[i].qh[ib] << (8-2*il)) & 256))); - const uint8_t * grid2 = (const uint8_t *)(iq3s_grid + (qs[2*il+1] | ((x[i].qh[ib] << (7-2*il)) & 256))); - const float d = (float)x[i].d * (1 + 2*((x[i].scales[ib/2] >> 4*(ib%2)) & 0xf)); - const uint8_t signs = x[i].signs[4*ib + il]; -#pragma unroll - for (int j = 0; j < 4; ++j) { - y[j+0] = d * grid1[j] * (signs & kmask_iq2xs[j+0] ? -1.f : 1.f); - y[j+4] = d * grid2[j] * (signs & kmask_iq2xs[j+4] ? -1.f : 1.f); + for (int j = 0; j < QK4_0; ++j) { + const float v = xi[j]; + if (amax < sycl::fabs((float)v)) { + amax = sycl::fabs((float)v); + vmax = v; + } } -} - -template -__dpct_inline__ static void -dequantize_block_iq1_s(const void *__restrict__ vx, dst_t *__restrict__ yy, - const sycl::nd_item<3> &item_ct1, - const uint32_t *iq1s_grid_gpu) { - const int i = item_ct1.get_group(2); - const block_iq1_s * x = (const block_iq1_s *) vx; + const float d = vmax / -8; + const float id = d ? 1.0f/d : 0.0f; - const int tid = item_ct1.get_local_id(2); - const int il = tid/8; // 0...3 - const int ib = tid%8; // 0...7 - dst_t * y = yy + i*QK_K + 32*ib + 8*il; - const float delta = x[i].qh[ib] & 0x8000 ? -1 - IQ1S_DELTA : -1 + IQ1S_DELTA; - const float d = (float)x[i].d * (2*((x[i].qh[ib] >> 12) & 7) + 1); - uint32_t grid32[2]; const int8_t * q = (const int8_t *)grid32; - grid32[0] = iq1s_grid_gpu[x[i].qs[4*ib+il] | (((x[i].qh[ib] >> 3*il) & 7) << 8)]; - grid32[1] = (grid32[0] >> 4) & 0x0f0f0f0f; - grid32[0] &= 0x0f0f0f0f; -#pragma unroll - for (int j = 0; j < 8; ++j) { - y[j] = d * (q[j] + delta); - } -} + dsti->d = d; -template -__dpct_inline__ static void -dequantize_block_iq1_m(const void *__restrict__ vx, dst_t *__restrict__ yy, - const sycl::nd_item<3> &item_ct1, - const uint32_t *iq1s_grid_gpu) { + for (int j = 0; j < QK4_0/2; ++j) { + const float x0 = xi[0 + j]*id; + const float x1 = xi[QK4_0/2 + j]*id; - const int i = item_ct1.get_group(2); - const block_iq1_m * x = (const block_iq1_m *) vx; + const uint8_t xi0 = dpct::min(15, (int8_t)(x0 + 8.5f)); + const uint8_t xi1 = dpct::min(15, (int8_t)(x1 + 8.5f)); - const int tid = item_ct1.get_local_id(2); - const int il = tid/8; // 0...3 - const int ib = tid%8; // 0...7 - dst_t * y = yy + i*QK_K + 32*ib + 8*il; - const uint16_t * sc = (const uint16_t *)x[i].scales; - iq1m_scale_t scale; - scale.u16 = (sc[0] >> 12) | ((sc[1] >> 8) & 0x00f0) | ((sc[2] >> 4) & 0x0f00) | (sc[3] & 0xf000); - const int ib16 = 2*ib + il/2; // sc[ib16/4] >> 3*(ib16%4) -> sc[ib/2] >> 3*((2*ib+il/2)%4); - const float d = (float)scale.f16 * (2*((sc[ib16/4] >> 3*(ib16%4)) & 0x7) + 1); - const float delta = x[i].qh[2*ib+il/2] & (0x08 << 4*(il%2)) ? -1 - IQ1M_DELTA : -1 + IQ1M_DELTA; - uint32_t grid32[2]; const int8_t * q = (const int8_t *)grid32; - grid32[0] = iq1s_grid_gpu[x[i].qs[4*ib+il] | (((x[i].qh[2*ib+il/2] >> 4*(il%2)) & 7) << 8)]; - grid32[1] = (grid32[0] >> 4) & 0x0f0f0f0f; - grid32[0] &= 0x0f0f0f0f; -#pragma unroll - for (int j = 0; j < 8; ++j) { - y[j] = d * (q[j] + delta); + dsti->qs[j] = xi0; + dsti->qs[j] |= xi1 << 4; } } -template -__dpct_inline__ static void -dequantize_block_iq4_nl(const void *__restrict__ vx, dst_t *__restrict__ yy, - const sycl::nd_item<3> &item_ct1) { +static void cpy_blck_f32_q4_1(const char * cxi, char * cdsti) { + const float * xi = (const float *) cxi; + block_q4_1 * dsti = (block_q4_1 *) cdsti; - const int i = item_ct1.get_group(2); - const block_iq4_nl * x = (const block_iq4_nl *) vx + i*(QK_K/QK4_NL); + float vmin = FLT_MAX; + float vmax = -FLT_MAX; - const int tid = item_ct1.get_local_id(2); - const int il = tid/8; // 0...3 - const int ib = tid%8; // 0...7 - dst_t * y = yy + i*QK_K + 32*ib + 4*il; - const uint8_t * q4 = x[ib].qs + 4*il; - const float d = (float)x[ib].d; -#pragma unroll - for (int j = 0; j < 4; ++j) { - y[j+ 0] = d * kvalues_iq4nl[q4[j] & 0xf]; - y[j+16] = d * kvalues_iq4nl[q4[j] >> 4]; + for (int j = 0; j < QK4_1; ++j) { + const float v = xi[j]; + + if (v < vmin) vmin = v; + if (v > vmax) vmax = v; } -} + const float d = (vmax - vmin) / ((1 << 4) - 1); + const float id = d ? 1.0f/d : 0.0f; + dsti->dm.x() = d; + dsti->dm.y() = vmin; -template -__dpct_inline__ static void -dequantize_block_iq4_xs(const void *__restrict__ vx, dst_t *__restrict__ yy, - const sycl::nd_item<3> &item_ct1) { - const int i = item_ct1.get_group(2); - const block_iq4_xs * x = (const block_iq4_xs *)vx; + for (int j = 0; j < QK4_1/2; ++j) { + const float x0 = (xi[0 + j] - vmin)*id; + const float x1 = (xi[QK4_1/2 + j] - vmin)*id; - const int tid = item_ct1.get_local_id(2); - const int il = tid/8; // 0...3 - const int ib = tid%8; // 0...7 - dst_t * y = yy + i*QK_K + 32*ib + 4*il; - const uint8_t * q4 = x[i].qs + 16*ib + 4*il; - const float d = (float)x[i].d * ((((x[i].scales_l[ib/2] >> 4*(ib%2)) & 0xf) | (((x[i].scales_h >> 2*ib) & 3) << 4)) - 32); -#pragma unroll - for (int j = 0; j < 4; ++j) { - y[j+ 0] = d * kvalues_iq4nl[q4[j] & 0xf]; - y[j+16] = d * kvalues_iq4nl[q4[j] >> 4]; + const uint8_t xi0 = dpct::min(15, (int8_t)(x0 + 0.5f)); + const uint8_t xi1 = dpct::min(15, (int8_t)(x1 + 0.5f)); + + dsti->qs[j] = xi0; + dsti->qs[j] |= xi1 << 4; } } +template +static void cpy_f32_q(const char * cx, char * cdst, const int ne, + const int ne00, const int ne01, const int ne02, const int nb00, const int nb01, const int nb02, + const int nb03, const int ne10, const int ne11, const int ne12, const int nb10, const int nb11, + const int nb12, const int nb13, const sycl::nd_item<3> &item_ct1) { + const int i = (item_ct1.get_local_range(2) * item_ct1.get_group(2) + + item_ct1.get_local_id(2)) * + qk; + if (i >= ne) { + return; + } -/* -DPCT1110:4: The total declared local variable size in device function -dequantize_mul_mat_vec_q2_k exceeds 128 bytes and may cause high register -pressure. Consult with your hardware vendor to find the total register size -available and adjust the code, or use smaller sub-group size to avoid high -register pressure. -*/ -static void dequantize_mul_mat_vec_q2_k(const void *__restrict__ vx, - const float *__restrict__ yy, - float *__restrict__ dst, - const int ncols, int nrows, - const sycl::nd_item<3> &item_ct1) { - - static_assert(16%K_QUANTS_PER_ITERATION == 0, "16 must be divisible by K_QUANTS_PER_ITERATION"); - - const int row = item_ct1.get_group(2) * item_ct1.get_local_range(1) + - item_ct1.get_local_id(1); - if (row > nrows) return; + const int i03 = i/(ne00 * ne01 * ne02); + const int i02 = (i - i03*ne00*ne01*ne02 )/ (ne00*ne01); + const int i01 = (i - i03*ne00*ne01*ne02 - i02*ne01*ne00) / ne00; + const int i00 = i - i03*ne00*ne01*ne02 - i02*ne01*ne00 - i01*ne00; + const int x_offset = i00*nb00 + i01*nb01 + i02*nb02 + i03 * nb03; - const int num_blocks_per_row = ncols / QK_K; - const int ib0 = row*num_blocks_per_row; + const int i13 = i/(ne10 * ne11 * ne12); + const int i12 = (i - i13*ne10*ne11*ne12) / (ne10*ne11); + const int i11 = (i - i13*ne10*ne11*ne12 - i12*ne10*ne11) / ne10; + const int i10 = i - i13*ne10*ne11*ne12 - i12*ne10*ne11 - i11*ne10; + const int dst_offset = (i10/qk)*nb10 + i11*nb11 + i12*nb12 + i13*nb13; - const block_q2_K * x = (const block_q2_K *)vx + ib0; + cpy_blck(cx + x_offset, cdst + dst_offset); +} - float tmp = 0; // partial sum for thread in warp +static float rope_yarn_ramp(const float low, const float high, const int i0) { + const float y = (i0 / 2 - low) / sycl::max(0.001f, high - low); + return 1.0f - sycl::min(1.0f, sycl::max(0.0f, y)); +} - const int tid = - item_ct1.get_local_id(2) / K_QUANTS_PER_ITERATION; // 0...31 or 0...15 - const int ix = - item_ct1.get_local_id(2) % K_QUANTS_PER_ITERATION; // 0 or 0,1 +struct rope_corr_dims { + float v[4]; +}; - const int step = 16/K_QUANTS_PER_ITERATION; +// YaRN algorithm based on LlamaYaRNScaledRotaryEmbedding.py from https://github.com/jquesnelle/yarn +// MIT licensed. Copyright (c) 2023 Jeffrey Quesnelle and Bowen Peng. +static void rope_yarn( + float theta_extrap, float freq_scale, rope_corr_dims corr_dims, int64_t i0, float ext_factor, float mscale, + float * cos_theta, float * sin_theta +) { + // Get n-d rotational scaling corrected for extrapolation + float theta_interp = freq_scale * theta_extrap; + float theta = theta_interp; + if (ext_factor != 0.0f) { + float ramp_mix = rope_yarn_ramp(corr_dims.v[0], corr_dims.v[1], i0) * ext_factor; + theta = theta_interp * (1 - ramp_mix) + theta_extrap * ramp_mix; - const int im = tid/step; // 0 or 1. 0 computes 0..., 1 computes 128... - const int in = tid - step*im; // 0...15 or 0...7 + // Get n-d magnitude scaling corrected for interpolation + mscale *= 1.0f + 0.1f * sycl::log(1.0f / freq_scale); + } + *cos_theta = sycl::cos(theta) * mscale; + *sin_theta = sycl::sin(theta) * mscale; +} - const int l0 = K_QUANTS_PER_ITERATION*in; // 0...15 or 0...14 in steps of 2 - const int q_offset = 32*im + l0; - const int s_offset = 8*im; - const int y_offset = 128*im + l0; +// rope == RoPE == rotary positional embedding +template +static void rope( + const T * x, T * dst, int ncols, const int32_t * pos, float freq_scale, int p_delta_rows, float freq_base, + float ext_factor, float attn_factor, rope_corr_dims corr_dims +, + const sycl::nd_item<3> &item_ct1) { + const int col = 2 * (item_ct1.get_local_range(1) * item_ct1.get_group(1) + + item_ct1.get_local_id(1)); - uint32_t aux[4]; - const uint8_t * d = (const uint8_t *)aux; - const uint8_t * m = (const uint8_t *)(aux + 2); + if (col >= ncols) { + return; + } - for (int i = ix; i < num_blocks_per_row; i += K_QUANTS_PER_ITERATION) { + const int row = item_ct1.get_local_range(2) * item_ct1.get_group(2) + + item_ct1.get_local_id(2); + const int i = row*ncols + col; + const int i2 = row/p_delta_rows; - const float * y = yy + i * QK_K + y_offset; - const uint8_t * q = x[i].qs + q_offset; + const int p = has_pos ? pos[i2] : 0; + const float theta_base = p * dpct::pow(freq_base, -float(col) / ncols); - const float dall = x[i].dm[0]; - const float dmin = x[i].dm[1]; + float cos_theta, sin_theta; + rope_yarn(theta_base, freq_scale, corr_dims, col, ext_factor, attn_factor, &cos_theta, &sin_theta); - const uint32_t * a = (const uint32_t *)(x[i].scales + s_offset); - aux[0] = a[0] & 0x0f0f0f0f; - aux[1] = a[1] & 0x0f0f0f0f; - aux[2] = (a[0] >> 4) & 0x0f0f0f0f; - aux[3] = (a[1] >> 4) & 0x0f0f0f0f; + const float x0 = x[i + 0]; + const float x1 = x[i + 1]; - float sum1 = 0, sum2 = 0; - for (int l = 0; l < K_QUANTS_PER_ITERATION; ++l) { - sum1 += y[l+ 0] * d[0] * ((q[l+ 0] >> 0) & 3) - + y[l+32] * d[2] * ((q[l+ 0] >> 2) & 3) - + y[l+64] * d[4] * ((q[l+ 0] >> 4) & 3) - + y[l+96] * d[6] * ((q[l+ 0] >> 6) & 3) - + y[l+16] * d[1] * ((q[l+16] >> 0) & 3) - + y[l+48] * d[3] * ((q[l+16] >> 2) & 3) - + y[l+80] * d[5] * ((q[l+16] >> 4) & 3) - +y[l+112] * d[7] * ((q[l+16] >> 6) & 3); - sum2 += y[l+ 0] * m[0] + y[l+32] * m[2] + y[l+64] * m[4] + y[ l+96] * m[6] - + y[l+16] * m[1] + y[l+48] * m[3] + y[l+80] * m[5] + y[l+112] * m[7]; + dst[i + 0] = x0*cos_theta - x1*sin_theta; + dst[i + 1] = x0*sin_theta + x1*cos_theta; +} - } - tmp += dall * sum1 - dmin * sum2; +template +static void rope_neox( + const T * x, T * dst, int ncols, int n_dims, const int32_t * pos, float freq_scale, int p_delta_rows, + float ext_factor, float attn_factor, rope_corr_dims corr_dims, float theta_scale, float inv_ndims, + const float * freq_factors, const sycl::nd_item<3> &item_ct1) { + const int col = 2 * (item_ct1.get_local_range(1) * item_ct1.get_group(1) + + item_ct1.get_local_id(1)); + if (col >= ncols) { + return; } - // sum up partial sums and write back result -#pragma unroll - for (int mask = 16; mask > 0; mask >>= 1) { - tmp += - dpct::permute_sub_group_by_xor(item_ct1.get_sub_group(), tmp, mask); - } + const int row = item_ct1.get_local_range(2) * item_ct1.get_group(2) + + item_ct1.get_local_id(2); + const int ib = col / n_dims; + const int ic = col % n_dims; - if (item_ct1.get_local_id(2) == 0) { - dst[row] = tmp; - } -} + if (ib > 0) { + const int i = row*ncols + ib*n_dims + ic; -/* -DPCT1110:5: The total declared local variable size in device function -dequantize_mul_mat_vec_q3_k exceeds 128 bytes and may cause high register -pressure. Consult with your hardware vendor to find the total register size -available and adjust the code, or use smaller sub-group size to avoid high -register pressure. -*/ -static void dequantize_mul_mat_vec_q3_k(const void *__restrict__ vx, - const float *__restrict__ yy, - float *__restrict__ dst, - const int ncols, int nrows, - const sycl::nd_item<3> &item_ct1) { + dst[i + 0] = x[i + 0]; + dst[i + 1] = x[i + 1]; - const int row = item_ct1.get_group(2) * item_ct1.get_local_range(1) + - item_ct1.get_local_id(1); - if (row > nrows) return; + return; + } - const int num_blocks_per_row = ncols / QK_K; - const int ib0 = row*num_blocks_per_row; + const int i = row*ncols + ib*n_dims + ic/2; + const int i2 = row/p_delta_rows; - const block_q3_K * x = (const block_q3_K *)vx + ib0; + float cur_rot = inv_ndims * ic - ib; - float tmp = 0; // partial sum for thread in warp + const int p = has_pos ? pos[i2] : 0; + const float freq_factor = has_freq_facs ? freq_factors[ic/2] : 1.0f; - const uint16_t kmask1 = 0x0303; - const uint16_t kmask2 = 0x0f0f; + const float theta_base = + p * freq_scale * dpct::pow(theta_scale, col / 2.0f)/freq_factor; - const int tid = - item_ct1.get_local_id(2) / K_QUANTS_PER_ITERATION; // 0...31 or 0...16 - const int ix = - item_ct1.get_local_id(2) % K_QUANTS_PER_ITERATION; // 0 or 0,1 + float cos_theta, sin_theta; + rope_yarn(theta_base, freq_scale, corr_dims, cur_rot, ext_factor, attn_factor, &cos_theta, &sin_theta); - const int n = K_QUANTS_PER_ITERATION; // iterations in the inner loop - const int step = 16/K_QUANTS_PER_ITERATION; - const int im = tid/step; // 0 or 1. 0 computes 0..., 1 computes 128... - const int in = tid - step*im; // 0....15 or 0...7 + const float x0 = x[i + 0]; + const float x1 = x[i + n_dims/2]; - const uint8_t m = 1 << (4*im); + dst[i + 0] = x0*cos_theta - x1*sin_theta; + dst[i + n_dims/2] = x0*sin_theta + x1*cos_theta; +} - const int l0 = n*in; // 0...15 or 0...14 in steps of 2 - const int q_offset = 32*im + l0; - const int y_offset = 128*im + l0; +static void k_sum_rows_f32(const float * x, float * dst, const int ncols, + const sycl::nd_item<3> &item_ct1) { + const int row = item_ct1.get_group(1); + const int col = item_ct1.get_local_id(2); - uint16_t utmp[4]; - const int8_t * s = (const int8_t *)utmp; + float sum = 0.0f; + for (int i = col; i < ncols; i += item_ct1.get_local_range(2)) { + sum += x[row * ncols + i]; + } - const uint16_t s_shift = 4*im; + sum = warp_reduce_sum(sum, item_ct1); - for (int i = ix; i < num_blocks_per_row; i += K_QUANTS_PER_ITERATION) { - - const float * y = yy + i * QK_K + y_offset; - const uint8_t * q = x[i].qs + q_offset; - const uint8_t * h = x[i].hmask + l0; + if (col == 0) { + dst[row] = sum; + } +} - const uint16_t * a = (const uint16_t *)x[i].scales; - utmp[0] = ((a[0] >> s_shift) & kmask2) | (((a[4] >> (s_shift + 0)) & kmask1) << 4); - utmp[1] = ((a[1] >> s_shift) & kmask2) | (((a[5] >> (s_shift + 0)) & kmask1) << 4); - utmp[2] = ((a[2] >> s_shift) & kmask2) | (((a[4] >> (s_shift + 2)) & kmask1) << 4); - utmp[3] = ((a[3] >> s_shift) & kmask2) | (((a[5] >> (s_shift + 2)) & kmask1) << 4); - const float d = x[i].d; +template +static inline void ggml_sycl_swap(T & a, T & b) { + T tmp = a; + a = b; + b = tmp; +} - float sum = 0; - for (int l = 0; l < n; ++l) { - sum += y[l+ 0] * (s[0] - 32) * (((q[l] >> 0) & 3) - (h[l] & (m << 0) ? 0 : 4)) - + y[l+32] * (s[2] - 32) * (((q[l] >> 2) & 3) - (h[l] & (m << 1) ? 0 : 4)) - + y[l+64] * (s[4] - 32) * (((q[l] >> 4) & 3) - (h[l] & (m << 2) ? 0 : 4)) - + y[l+96] * (s[6] - 32) * (((q[l] >> 6) & 3) - (h[l] & (m << 3) ? 0 : 4)); - sum += y[l+16] * (s[1] - 32) * (((q[l+16] >> 0) & 3) - (h[l+16] & (m << 0) ? 0 : 4)) - + y[l+48] * (s[3] - 32) * (((q[l+16] >> 2) & 3) - (h[l+16] & (m << 1) ? 0 : 4)) - + y[l+80] * (s[5] - 32) * (((q[l+16] >> 4) & 3) - (h[l+16] & (m << 2) ? 0 : 4)) - + y[l+112] * (s[7] - 32) * (((q[l+16] >> 6) & 3) - (h[l+16] & (m << 3) ? 0 : 4)); - } - tmp += d * sum; +template +__dpct_inline__ static void +k_argsort_f32_i32(const float *x, int *dst, const int ncols, int ncols_pad, + const sycl::nd_item<3> &item_ct1, uint8_t *dpct_local) { + // bitonic sort + int col = item_ct1.get_local_id(2); + int row = item_ct1.get_group(1); + if (col >= ncols_pad) { + return; } - // sum up partial sums and write back result -#pragma unroll - for (int mask = 16; mask > 0; mask >>= 1) { - tmp += - dpct::permute_sub_group_by_xor(item_ct1.get_sub_group(), tmp, mask); + const float * x_row = x + row * ncols; + auto dst_row = (int *)dpct_local; + + // initialize indices + dst_row[col] = col; + + item_ct1.barrier(sycl::access::fence_space::local_space); + + for (int k = 2; k <= ncols_pad; k *= 2) { + for (int j = k / 2; j > 0; j /= 2) { + int ixj = col ^ j; + if (ixj > col) { + if ((col & k) == 0) { + if (dst_row[col] >= ncols || + (dst_row[ixj] < ncols && (order == GGML_SORT_ORDER_ASC ? + x_row[dst_row[col]] > x_row[dst_row[ixj]] : + x_row[dst_row[col]] < x_row[dst_row[ixj]])) + ) { + ggml_sycl_swap(dst_row[col], dst_row[ixj]); + } + } else { + if (dst_row[ixj] >= ncols || + (dst_row[col] < ncols && (order == GGML_SORT_ORDER_ASC ? + x_row[dst_row[col]] < x_row[dst_row[ixj]] : + x_row[dst_row[col]] > x_row[dst_row[ixj]])) + ) { + ggml_sycl_swap(dst_row[col], dst_row[ixj]); + } + } + } + /* + DPCT1118:1: SYCL group functions and algorithms must be encountered + in converged control flow. You may need to adjust the code. + */ + item_ct1.barrier(sycl::access::fence_space::local_space); + } } - if (item_ct1.get_local_id(2) == 0) { - dst[row] = tmp; + // copy the result to dst without the padding + if (col < ncols) { + dst[row * ncols + col] = dst_row[col]; } } -/* -DPCT1110:6: The total declared local variable size in device function -dequantize_mul_mat_vec_q4_k exceeds 128 bytes and may cause high register -pressure. Consult with your hardware vendor to find the total register size -available and adjust the code, or use smaller sub-group size to avoid high -register pressure. -*/ -static void dequantize_mul_mat_vec_q4_k(const void *__restrict__ vx, - const float *__restrict__ yy, - float *__restrict__ dst, - const int ncols, int nrows, - const sycl::nd_item<3> &item_ct1) { - const int row = item_ct1.get_group(2) * item_ct1.get_local_range(1) + +static void diag_mask_inf_f32(const float * x, float * dst, const int ncols, const int rows_per_channel, const int n_past, + const sycl::nd_item<3> &item_ct1) { + const int col = item_ct1.get_local_range(1) * item_ct1.get_group(1) + item_ct1.get_local_id(1); - if (row > nrows) return; - const int num_blocks_per_row = ncols / QK_K; - const int ib0 = row*num_blocks_per_row; - - const block_q4_K * x = (const block_q4_K *)vx + ib0; - - const uint16_t kmask1 = 0x3f3f; - const uint16_t kmask2 = 0x0f0f; - const uint16_t kmask3 = 0xc0c0; - - const int tid = - item_ct1.get_local_id(2) / K_QUANTS_PER_ITERATION; // 0...31 or 0...16 - const int ix = - item_ct1.get_local_id(2) % K_QUANTS_PER_ITERATION; // 0 or 0,1 + const int row = item_ct1.get_local_range(2) * item_ct1.get_group(2) + + item_ct1.get_local_id(2); - const int step = 8/K_QUANTS_PER_ITERATION; // 8 or 4 + if (col >= ncols) { + return; + } - const int il = tid/step; // 0...3 - const int ir = tid - step*il; // 0...7 or 0...3 - const int n = 2 * K_QUANTS_PER_ITERATION; // 2 or 4 + const int i = row*ncols + col; + //dst[i] = col > (n_past + row % rows_per_channel) ? -INFINITY : x[i]; + //dst[i] = x[i] - (col > n_past + row % rows_per_channel) * INT_MAX; // equivalent within rounding error but slightly faster on GPU + dst[i] = x[i] - (col > n_past + row % rows_per_channel) * FLT_MAX; +} - const int im = il/2; // 0 or 1. 0 computes 0,32 + 128,160, 1 computes 64,96 + 192,224 - const int in = il%2; - const int l0 = n*(2*ir + in); - const int q_offset = 32*im + l0; - const int y_offset = 64*im + l0; +template +static void soft_max_f32(const float * x, const float * mask, float * dst, const int ncols_par, + const int nrows_y, const float scale, const float max_bias, const float m0, + const float m1, uint32_t n_head_log2, const sycl::nd_item<3> &item_ct1, float *buf) { + const int ncols = ncols_template == 0 ? ncols_par : ncols_template; - uint16_t aux[4]; - const uint8_t * sc = (const uint8_t *)aux; + const int tid = item_ct1.get_local_id(2); + const int rowx = item_ct1.get_group(2); + const int rowy = rowx % nrows_y; // broadcast the mask (y) in the row dimension -#if K_QUANTS_PER_ITERATION == 2 - uint32_t q32[4]; - const uint8_t * q4 = (const uint8_t *)q32; -#else - uint16_t q16[4]; - const uint8_t * q4 = (const uint8_t *)q16; -#endif + const int block_size = block_size_template == 0 ? item_ct1.get_local_range(2) : block_size_template; - float tmp = 0; // partial sum for thread in warp + const int warp_id = item_ct1.get_local_id(2) / WARP_SIZE; + const int lane_id = item_ct1.get_local_id(2) % WARP_SIZE; - for (int i = ix; i < num_blocks_per_row; i += K_QUANTS_PER_ITERATION) { + float slope = 1.0f; - const float * y1 = yy + i*QK_K + y_offset; - const float * y2 = y1 + 128; + // ALiBi + if (max_bias > 0.0f) { + const uint32_t h = rowx/nrows_y; // head index - const float dall = x[i].dm[0]; - const float dmin = x[i].dm[1]; + const float base = h < n_head_log2 ? m0 : m1; + const int exp = h < n_head_log2 ? h + 1 : 2*(h - n_head_log2) + 1; - const uint16_t * a = (const uint16_t *)x[i].scales; - aux[0] = a[im+0] & kmask1; - aux[1] = a[im+2] & kmask1; - aux[2] = ((a[im+4] >> 0) & kmask2) | ((a[im+0] & kmask3) >> 2); - aux[3] = ((a[im+4] >> 4) & kmask2) | ((a[im+2] & kmask3) >> 2); + slope = sycl::pow(base, float(exp)); + } -#if K_QUANTS_PER_ITERATION == 2 - const uint32_t * q1 = (const uint32_t *)(x[i].qs + q_offset); - const uint32_t * q2 = q1 + 16; + float * vals = vals_smem ? buf + WARP_SIZE : dst + rowx*ncols; + float max_val = -INFINITY; - q32[0] = q1[0] & 0x0f0f0f0f; - q32[1] = q1[0] & 0xf0f0f0f0; - q32[2] = q2[0] & 0x0f0f0f0f; - q32[3] = q2[0] & 0xf0f0f0f0; + for (int col0 = 0; col0 < ncols; col0 += block_size) { + const int col = col0 + tid; - sycl::float4 s = {0.f, 0.f, 0.f, 0.f}; - float smin = 0; - for (int l = 0; l < 4; ++l) { - s.x() += y1[l] * q4[l + 0]; s.y() += y1[l + 32] * q4[l + 4]; - s.z() += y2[l] * q4[l + 8]; s.w() += y2[l + 32] * q4[l + 12]; - smin += y1[l] * sc[2] + y1[l+32] * sc[3] + y2[l] * sc[6] + y2[l+32] * sc[7]; - } - tmp += dall * (s.x() * sc[0] + s.y() * sc[1] * 1.f / 16.f + - s.z() * sc[4] + s.w() * sc[5] * 1.f / 16.f) - - dmin * smin; -#else - const uint16_t * q1 = (const uint16_t *)(x[i].qs + q_offset); - const uint16_t * q2 = q1 + 32; - - q16[0] = q1[0] & 0x0f0f; - q16[1] = q1[0] & 0xf0f0; - q16[2] = q2[0] & 0x0f0f; - q16[3] = q2[0] & 0xf0f0; - - float4 s = {0.f, 0.f, 0.f, 0.f}; - float smin = 0; - for (int l = 0; l < 2; ++l) { - s.x += y1[l] * q4[l+0]; s.y += y1[l+32] * q4[l+2]; - s.z += y2[l] * q4[l+4]; s.w += y2[l+32] * q4[l+6]; - smin += y1[l] * sc[2] + y1[l+32] * sc[3] + y2[l] * sc[6] + y2[l+32] * sc[7]; + if (ncols_template == 0 && col >= ncols) { + break; } - tmp += dall * (s.x * sc[0] + s.y * sc[1] * 1.f/16.f + s.z * sc[4] + s.w * sc[5] * 1.f/16.f) - dmin * smin; -#endif - } + const int ix = rowx*ncols + col; + const int iy = rowy*ncols + col; - // sum up partial sums and write back result -#pragma unroll - for (int mask = 16; mask > 0; mask >>= 1) { - tmp += - dpct::permute_sub_group_by_xor(item_ct1.get_sub_group(), tmp, mask); - } + const float val = x[ix]*scale + (mask ? slope*mask[iy] : 0.0f); - if (tid == 0) { - dst[row] = tmp; + vals[col] = val; + max_val = sycl::max(max_val, val); } -} -/* -DPCT1110:7: The total declared local variable size in device function -dequantize_mul_mat_vec_q5_k exceeds 128 bytes and may cause high register -pressure. Consult with your hardware vendor to find the total register size -available and adjust the code, or use smaller sub-group size to avoid high -register pressure. -*/ -static void dequantize_mul_mat_vec_q5_k(const void *__restrict__ vx, - const float *__restrict__ yy, - float *__restrict__ dst, - const int ncols, - const sycl::nd_item<3> &item_ct1) { - - const int row = item_ct1.get_group(2); - const int num_blocks_per_row = ncols / QK_K; - const int ib0 = row*num_blocks_per_row; - - const block_q5_K * x = (const block_q5_K *)vx + ib0; - - float tmp = 0; // partial sum for thread in warp - - const uint16_t kmask1 = 0x3f3f; - const uint16_t kmask2 = 0x0f0f; - const uint16_t kmask3 = 0xc0c0; - - const int tid = item_ct1.get_local_id(2) / 2; // 0...15 - const int ix = item_ct1.get_local_id(2) % 2; - - const int il = tid/4; // 0...3 - const int ir = tid - 4*il;// 0...3 - const int n = 2; - - const int im = il/2; // 0 or 1. 0 computes 0,32 + 128,160, 1 computes 64,96 + 192,224 - const int in = il%2; - - const int l0 = n*(2*ir + in); - const int q_offset = 32*im + l0; - const int y_offset = 64*im + l0; - - const uint8_t hm1 = 1 << (2*im); - const uint8_t hm2 = hm1 << 4; - - uint16_t aux[4]; - const uint8_t * sc = (const uint8_t *)aux; - - uint16_t q16[8]; - const uint8_t * q4 = (const uint8_t *)q16; - - for (int i = ix; i < num_blocks_per_row; i += 2) { - - const uint8_t * ql1 = x[i].qs + q_offset; - const uint8_t * qh = x[i].qh + l0; - const float * y1 = yy + i*QK_K + y_offset; - const float * y2 = y1 + 128; - - const float dall = x[i].dm[0]; - const float dmin = x[i].dm[1]; - - const uint16_t * a = (const uint16_t *)x[i].scales; - aux[0] = a[im+0] & kmask1; - aux[1] = a[im+2] & kmask1; - aux[2] = ((a[im+4] >> 0) & kmask2) | ((a[im+0] & kmask3) >> 2); - aux[3] = ((a[im+4] >> 4) & kmask2) | ((a[im+2] & kmask3) >> 2); - - sycl::float4 sum = {0.f, 0.f, 0.f, 0.f}; - float smin = 0; - const uint16_t * q1 = (const uint16_t *)ql1; - const uint16_t * q2 = q1 + 32; - q16[0] = q1[0] & 0x0f0f; - q16[1] = q1[8] & 0x0f0f; - q16[2] = (q1[0] >> 4) & 0x0f0f; - q16[3] = (q1[8] >> 4) & 0x0f0f; - q16[4] = q2[0] & 0x0f0f; - q16[5] = q2[8] & 0x0f0f; - q16[6] = (q2[0] >> 4) & 0x0f0f; - q16[7] = (q2[8] >> 4) & 0x0f0f; - for (int l = 0; l < n; ++l) { - sum.x() += - y1[l + 0] * (q4[l + 0] + (qh[l + 0] & (hm1 << 0) ? 16 : 0)) + - y1[l + 16] * (q4[l + 2] + (qh[l + 16] & (hm1 << 0) ? 16 : 0)); - sum.y() += - y1[l + 32] * (q4[l + 4] + (qh[l + 0] & (hm1 << 1) ? 16 : 0)) + - y1[l + 48] * (q4[l + 6] + (qh[l + 16] & (hm1 << 1) ? 16 : 0)); - sum.z() += - y2[l + 0] * (q4[l + 8] + (qh[l + 0] & (hm2 << 0) ? 16 : 0)) + - y2[l + 16] * (q4[l + 10] + (qh[l + 16] & (hm2 << 0) ? 16 : 0)); - sum.w() += - y2[l + 32] * (q4[l + 12] + (qh[l + 0] & (hm2 << 1) ? 16 : 0)) + - y2[l + 48] * (q4[l + 14] + (qh[l + 16] & (hm2 << 1) ? 16 : 0)); - smin += (y1[l] + y1[l+16]) * sc[2] + (y1[l+32] + y1[l+48]) * sc[3] - + (y2[l] + y2[l+16]) * sc[6] + (y2[l+32] + y2[l+48]) * sc[7]; + // find the max value in the block + max_val = warp_reduce_max(max_val, item_ct1); + if (block_size > WARP_SIZE) { + if (warp_id == 0) { + buf[lane_id] = -INFINITY; } - tmp += dall * (sum.x() * sc[0] + sum.y() * sc[1] + sum.z() * sc[4] + - sum.w() * sc[5]) - - dmin * smin; - } + item_ct1.barrier(sycl::access::fence_space::local_space); - // sum up partial sums and write back result -#pragma unroll - for (int mask = 16; mask > 0; mask >>= 1) { - tmp += - dpct::permute_sub_group_by_xor(item_ct1.get_sub_group(), tmp, mask); - } + if (lane_id == 0) { + buf[warp_id] = max_val; + } + item_ct1.barrier(sycl::access::fence_space::local_space); - if (item_ct1.get_local_id(2) == 0) { - dst[row] = tmp; + max_val = buf[lane_id]; + max_val = warp_reduce_max(max_val, item_ct1); } -} - -static void dequantize_mul_mat_vec_q6_k(const void * __restrict__ vx, const float * __restrict__ yy, float * __restrict__ dst, const int ncols, int nrows, - const sycl::nd_item<3> &item_ct1) { - static_assert(16%K_QUANTS_PER_ITERATION == 0, "16 must be divisible by K_QUANTS_PER_ITERATION"); - - const int row = item_ct1.get_group(2) * item_ct1.get_local_range(1) + - item_ct1.get_local_id(1); - if (row > nrows) return; - - const int num_blocks_per_row = ncols / QK_K; - const int ib0 = row*num_blocks_per_row; - - const block_q6_K * x = (const block_q6_K *)vx + ib0; + float tmp = 0.f; - const int tid = - item_ct1.get_local_id(2) / K_QUANTS_PER_ITERATION; // 0...31 or 0...16 - const int ix = - item_ct1.get_local_id(2) % K_QUANTS_PER_ITERATION; // 0 or 0, 1 +#pragma unroll + for (int col0 = 0; col0 < ncols; col0 += block_size) { + const int col = col0 + tid; + if (ncols_template == 0 && col >= ncols) { + break; + } - const int step = 16/K_QUANTS_PER_ITERATION; // 16 or 8 + const float val = sycl::native::exp(vals[col] - max_val); + tmp += val; + vals[col] = val; + } - const int im = tid/step; // 0 or 1. 0 computes 0..., 1 computes 128... - const int in = tid - step*im; // 0...15 or 0...7 + // find the sum of exps in the block + tmp = warp_reduce_sum(tmp, item_ct1); + if (block_size > WARP_SIZE) { + item_ct1.barrier(sycl::access::fence_space::local_space); + if (warp_id == 0) { + buf[lane_id] = 0.f; + } + item_ct1.barrier(sycl::access::fence_space::local_space); -#if K_QUANTS_PER_ITERATION == 1 - const int l0 = K_QUANTS_PER_ITERATION*in; // 0...15 - const int is = 0; -#else - const int l0 = 4 * in; // 0, 4, 8, ..., 28 - const int is = in / 4; -#endif - const int ql_offset = 64*im + l0; - const int qh_offset = 32*im + l0; - const int s_offset = 8*im + is; - const int y_offset = 128*im + l0; - - float tmp = 0; // partial sum for thread in warp - - for (int i = ix; i < num_blocks_per_row; i += K_QUANTS_PER_ITERATION) { - - const float * y = yy + i * QK_K + y_offset; - const uint8_t * ql = x[i].ql + ql_offset; - const uint8_t * qh = x[i].qh + qh_offset; - const int8_t * s = x[i].scales + s_offset; - - const float d = x[i].d; - -#if K_QUANTS_PER_ITERATION == 1 - float sum = y[ 0] * s[0] * d * ((int8_t)((ql[ 0] & 0xF) | ((qh[ 0] & 0x03) << 4)) - 32) - + y[16] * s[1] * d * ((int8_t)((ql[16] & 0xF) | ((qh[16] & 0x03) << 4)) - 32) - + y[32] * s[2] * d * ((int8_t)((ql[32] & 0xF) | ((qh[ 0] & 0x0c) << 2)) - 32) - + y[48] * s[3] * d * ((int8_t)((ql[48] & 0xF) | ((qh[16] & 0x0c) << 2)) - 32) - + y[64] * s[4] * d * ((int8_t)((ql[ 0] >> 4) | ((qh[ 0] & 0x30) >> 0)) - 32) - + y[80] * s[5] * d * ((int8_t)((ql[16] >> 4) | ((qh[16] & 0x30) >> 0)) - 32) - + y[96] * s[6] * d * ((int8_t)((ql[32] >> 4) | ((qh[ 0] & 0xc0) >> 2)) - 32) - +y[112] * s[7] * d * ((int8_t)((ql[48] >> 4) | ((qh[16] & 0xc0) >> 2)) - 32); - tmp += sum; -#else - float sum = 0; - for (int l = 0; l < 4; ++l) { - sum += y[l+ 0] * s[0] * d * ((int8_t)((ql[l+ 0] & 0xF) | (((qh[l] >> 0) & 3) << 4)) - 32) - + y[l+32] * s[2] * d * ((int8_t)((ql[l+32] & 0xF) | (((qh[l] >> 2) & 3) << 4)) - 32) - + y[l+64] * s[4] * d * ((int8_t)((ql[l+ 0] >> 4) | (((qh[l] >> 4) & 3) << 4)) - 32) - + y[l+96] * s[6] * d * ((int8_t)((ql[l+32] >> 4) | (((qh[l] >> 6) & 3) << 4)) - 32); + if (lane_id == 0) { + buf[warp_id] = tmp; } - tmp += sum; -#endif + item_ct1.barrier(sycl::access::fence_space::local_space); + tmp = buf[lane_id]; + tmp = warp_reduce_sum(tmp, item_ct1); } - // sum up partial sums and write back result + const float inv_sum = 1.f / tmp; + #pragma unroll - for (int mask = 16; mask > 0; mask >>= 1) { - tmp += - dpct::permute_sub_group_by_xor(item_ct1.get_sub_group(), tmp, mask); - } + for (int col0 = 0; col0 < ncols; col0 += block_size) { + const int col = col0 + tid; + + if (ncols_template == 0 && col >= ncols) { + return; + } - if (tid == 0) { - dst[row] = tmp; + const int idst = rowx*ncols + col; + dst[idst] = vals[col] * inv_sum; } } -static void convert_f16(const void * vx, const int ib, const int iqs, dfloat2 & v){ - const sycl::half *x = (const sycl::half *)vx; - - // automatic half -> float type cast if dfloat == float - v.x() = x[ib + iqs + 0]; - v.y() = x[ib + iqs + 1]; -} +static void scale_f32(const float * x, float * dst, const float scale, const int k, + const sycl::nd_item<3> &item_ct1) { + const int i = item_ct1.get_local_range(2) * item_ct1.get_group(2) + + item_ct1.get_local_id(2); -static void convert_f32(const void * vx, const int ib, const int iqs, dfloat2 & v){ - const float * x = (const float *) vx; + if (i >= k) { + return; + } - // automatic half -> float type cast if dfloat == float - v.x() = x[ib + iqs + 0]; - v.y() = x[ib + iqs + 1]; + dst[i] = scale * x[i]; } -static void quantize_q8_1(const float * __restrict__ x, void * __restrict__ vy, const int kx, const int kx_padded, - const sycl::nd_item<3> &item_ct1) { - const int ix = item_ct1.get_local_range(2) * item_ct1.get_group(2) + - item_ct1.get_local_id(2); +static void clamp_f32(const float * x, float * dst, const float min, const float max, const int k, + const sycl::nd_item<3> &item_ct1) { + const int i = item_ct1.get_local_range(2) * item_ct1.get_group(2) + + item_ct1.get_local_id(2); - if (ix >= kx_padded) { + if (i >= k) { return; } - const int iy = item_ct1.get_local_range(1) * item_ct1.get_group(1) + - item_ct1.get_local_id(1); + dst[i] = x[i] < min ? min : (x[i] > max ? max : x[i]); +} - const int i_padded = iy*kx_padded + ix; +template +static void im2col_kernel(const float *x, T *dst, int offset_delta, + int IW, int IH, int OW, int KW, int KH, + int pelements, int CHW, int s0, int s1, int p0, + int p1, int d0, int d1, + const sycl::nd_item<3> &item_ct1) { + const int i = item_ct1.get_local_id(2) + + item_ct1.get_group(2) * item_ct1.get_local_range(2); + if (i >= pelements) { + return; + } - block_q8_1 * y = (block_q8_1 *) vy; + const int ksize = OW * (KH > 1 ? KW : 1); + const int kx = i / ksize; + const int kd = kx * ksize; + const int ky = (i - kd) / OW; + const int ix = i % OW; - const int ib = i_padded / QK8_1; // block index - const int iqs = i_padded % QK8_1; // quant index + const int64_t iiw = ix * s0 + kx * d0 - p0; + const int64_t iih = item_ct1.get_group(1) * s1 + ky * d1 - p1; - const float xi = ix < kx ? x[iy*kx + ix] : 0.0f; - float amax = sycl::fabs((float)xi); - float sum = xi; + const int64_t offset_dst = + (item_ct1.get_group(1) * OW + ix) * CHW + + (item_ct1.get_group(0) * (KW * KH) + ky * KW + kx); -#pragma unroll - for (int mask = 16; mask > 0; mask >>= 1) { - amax = sycl::fmax(amax, dpct::permute_sub_group_by_xor( - item_ct1.get_sub_group(), amax, mask)); - sum += - dpct::permute_sub_group_by_xor(item_ct1.get_sub_group(), sum, mask); - } - - const float d = amax / 127; - const int8_t q = amax == 0.0f ? 0 : sycl::round(xi / d); - - y[ib].qs[iqs] = q; - - if (iqs > 0) { - return; + if (iih < 0 || iih >= IH || iiw < 0 || iiw >= IW) { + dst[offset_dst] = + sycl::vec(0.0f) + .convert()[0]; + } else { + const int64_t offset_src = item_ct1.get_group(0) * offset_delta; + dst[offset_dst] = + sycl::vec(x[offset_src + iih * IW + iiw]) + .convert()[0]; } - - reinterpret_cast(y[ib].ds.x()) = d; - reinterpret_cast(y[ib].ds.y()) = sum; } -template -static void k_get_rows( - const void * src0, const int32_t * src1, dst_t * dst, - int64_t ne00, /*int64_t ne01, int64_t ne02, int64_t ne03,*/ - /*int64_t ne10, int64_t ne11,*/ int64_t ne12, /*int64_t ne13,*/ - /*size_t s0,*/ size_t s1, size_t s2, size_t s3, - /*size_t nb00,*/ size_t nb01, size_t nb02, size_t nb03, - size_t s10, size_t s11, size_t s12, - const sycl::nd_item<3> &item_ct1/*, size_t s13*/) { - - const int i00 = (item_ct1.get_group(2) * item_ct1.get_local_range(2) + - item_ct1.get_local_id(2)) * - 2; - const int i10 = item_ct1.get_local_range(1) * item_ct1.get_group(1) + - item_ct1.get_local_id(1); - const int i11 = (item_ct1.get_group(0) * item_ct1.get_local_range(0) + - item_ct1.get_local_id(0)) / - ne12; - const int i12 = (item_ct1.get_group(0) * item_ct1.get_local_range(0) + - item_ct1.get_local_id(0)) % - ne12; - - if (i00 >= ne00) { - return; - } - - const int i01 = src1[i10*s10 + i11*s11 + i12*s12]; +template +static void pool2d_nchw_kernel( + const int ih, const int iw, const int oh, const int ow, + const int kh, const int kw, const int sh, const int sw, + const int ph, const int pw, const int parallel_elements, + const Ti* src, To* dst, const enum ggml_op_pool op, + const sycl::nd_item<3> &item_ct1) { + int idx = item_ct1.get_local_id(2) + + item_ct1.get_group(2) * item_ct1.get_local_range(2); + if (idx >= parallel_elements) { + return; + } - dst_t * dst_row = dst + i10*s1 + i11*s2 + i12*s3; - const void * src0_row = (const char *)src0 + i01*nb01 + i11*nb02 + i12*nb03; + const int I_HW = ih * iw; + const int O_HW = oh * ow; + const int nc = idx / O_HW; + const int cur_oh = idx % O_HW / ow; + const int cur_ow = idx % O_HW % ow; + const Ti* i_ptr = src + nc * I_HW; + To* o_ptr = dst + nc * O_HW; + const int start_h = cur_oh * sh - ph; + const int bh = sycl::max(0, start_h); + const int eh = sycl::min(ih, start_h + kh); + const int start_w = cur_ow * sw - pw; + const int bw = sycl::max(0, start_w); + const int ew = sycl::min(iw, start_w + kw); - const int ib = i00/qk; // block index - const int iqs = (i00%qk)/qr; // quant index - const int iybs = i00 - i00%qk; // dst block start index - const int y_offset = qr == 1 ? 1 : qk/2; + To res = 0; - // dequantize - dfloat2 v; - dequantize_kernel(src0_row, ib, iqs, v); + switch (op) { + case GGML_OP_POOL_AVG: res = 0; break; + case GGML_OP_POOL_MAX: res = -FLT_MAX; break; + } - dst_row[iybs + iqs + 0] = v.x(); - dst_row[iybs + iqs + y_offset] = v.y(); + for (int i = bh; i < eh; i += 1) { + for (int j = bw; j < ew; j += 1) { +#if DPCT_COMPATIBILITY_TEMP >= 350 + /* + DPCT1098:106: The '*' expression is used instead of the __ldg + call. These two expressions do not provide the exact same + functionality. Check the generated code for potential precision + and/or performance issues. + */ + Ti cur = *(i_ptr + i * iw + j); +#else + Ti cur = i_ptr[i * iw + j]; +#endif + switch (op) { + case GGML_OP_POOL_AVG: res += (cur / (kh * kw)); break; + case GGML_OP_POOL_MAX: res = sycl::max(res, (To)cur); break; + } + } + } + o_ptr[cur_oh * ow + cur_ow] = res; } -template -static void k_get_rows_float( - const src0_t * src0, const int32_t * src1, dst_t * dst, - int64_t ne00, /*int64_t ne01, int64_t ne02, int64_t ne03,*/ - /*int64_t ne10, int64_t ne11,*/ int64_t ne12, /*int64_t ne13,*/ - /*size_t s0,*/ size_t s1, size_t s2, size_t s3, - /*size_t nb00,*/ size_t nb01, size_t nb02, size_t nb03, - size_t s10, size_t s11, size_t s12, - const sycl::nd_item<3> &item_ct1/*, size_t s13*/) { - - const int i00 = item_ct1.get_group(2) * item_ct1.get_local_range(2) + - item_ct1.get_local_id(2); - const int i10 = item_ct1.get_local_range(1) * item_ct1.get_group(1) + - item_ct1.get_local_id(1); - const int i11 = (item_ct1.get_group(0) * item_ct1.get_local_range(0) + - item_ct1.get_local_id(0)) / - ne12; - const int i12 = (item_ct1.get_group(0) * item_ct1.get_local_range(0) + - item_ct1.get_local_id(0)) % - ne12; - - if (i00 >= ne00) { - return; - } - - const int i01 = src1[i10*s10 + i11*s11 + i12*s12]; +template +static void get_rows_sycl(ggml_backend_sycl_context & ctx, const ggml_tensor *src0, const ggml_tensor *src1, + ggml_tensor *dst, const void *src0_dd, + const int32_t *src1_dd, float *dst_dd, + queue_ptr stream) { - dst_t * dst_row = dst + i10*s1 + i11*s2 + i12*s3; - const src0_t * src0_row = (const src0_t *)((const char *)src0 + i01*nb01 + i11*nb02 + i12*nb03); + GGML_TENSOR_BINARY_OP_LOCALS - dst_row[i00] = src0_row[i00]; -} + const sycl::range<3> block_dims(1, 1, SYCL_GET_ROWS_BLOCK_SIZE); + const int block_num_x = (ne00 + 2*SYCL_GET_ROWS_BLOCK_SIZE - 1) / (2*SYCL_GET_ROWS_BLOCK_SIZE); + const sycl::range<3> block_nums(ne11 * ne12, ne10, block_num_x); -template -static void dequantize_block(const void * __restrict__ vx, dst_t * __restrict__ y, const int k, - const sycl::nd_item<3> &item_ct1) { - const int i = 2 * (item_ct1.get_local_range(2) * item_ct1.get_group(2) + - item_ct1.get_local_id(2)); + // strides in elements + //const size_t s0 = nb0 / ggml_element_size(dst); + const size_t s1 = nb1 / ggml_element_size(dst); + const size_t s2 = nb2 / ggml_element_size(dst); + const size_t s3 = nb3 / ggml_element_size(dst); - if (i >= k) { - return; - } + const size_t s10 = nb10 / ggml_element_size(src1); + const size_t s11 = nb11 / ggml_element_size(src1); + const size_t s12 = nb12 / ggml_element_size(src1); + //const size_t s13 = nb13 / ggml_element_size(src1); - const int ib = i/qk; // block index - const int iqs = (i%qk)/qr; // quant index - const int iybs = i - i%qk; // y block start index - const int y_offset = qr == 1 ? 1 : qk/2; + GGML_ASSERT(ne00 % 2 == 0); - // dequantize - dfloat2 v; - dequantize_kernel(vx, ib, iqs, v); + stream->parallel_for(sycl::nd_range<3>(block_nums * block_dims, block_dims), + [=](sycl::nd_item<3> item_ct1) { + k_get_rows( + src0_dd, src1_dd, dst_dd, ne00, ne12, s1, s2, + s3, nb01, nb02, nb03, s10, s11, s12, item_ct1); + }); - y[iybs + iqs + 0] = v.x(); - y[iybs + iqs + y_offset] = v.y(); + (void) dst; } -template -static void convert_unary(const void * __restrict__ vx, dst_t * __restrict__ y, const int k, - const sycl::nd_item<3> &item_ct1) { - const int i = item_ct1.get_local_range(2) * item_ct1.get_group(2) + - item_ct1.get_local_id(2); - - if (i >= k) { - return; - } +template +static void get_rows_sycl_float(ggml_backend_sycl_context & ctx, const ggml_tensor *src0, + const ggml_tensor *src1, ggml_tensor *dst, + const src0_t *src0_dd, const int32_t *src1_dd, + float *dst_dd, queue_ptr stream) { - const src_t * x = (src_t *) vx; + GGML_TENSOR_BINARY_OP_LOCALS - y[i] = x[i]; -} + const sycl::range<3> block_dims(1, 1, SYCL_GET_ROWS_BLOCK_SIZE); + const int block_num_x = (ne00 + SYCL_GET_ROWS_BLOCK_SIZE - 1) / SYCL_GET_ROWS_BLOCK_SIZE; + const sycl::range<3> block_nums(ne11 * ne12, ne10, block_num_x); -// VDR = vec dot ratio, how many contiguous integers each thread processes when the vec dot kernel is called -// MMVQ = mul_mat_vec_q, MMQ = mul_mat_q + // strides in elements + //const size_t s0 = nb0 / ggml_element_size(dst); + const size_t s1 = nb1 / ggml_element_size(dst); + const size_t s2 = nb2 / ggml_element_size(dst); + const size_t s3 = nb3 / ggml_element_size(dst); -#define VDR_Q4_0_Q8_1_MMVQ 2 -#define VDR_Q4_0_Q8_1_MMQ 4 + const size_t s10 = nb10 / ggml_element_size(src1); + const size_t s11 = nb11 / ggml_element_size(src1); + const size_t s12 = nb12 / ggml_element_size(src1); + //const size_t s13 = nb13 / ggml_element_size(src1); -template -static __dpct_inline__ float vec_dot_q4_0_q8_1_impl(const int *v, const int *u, - const float &d4, - const sycl::half2 &ds8) { - int sumi = 0; -#pragma unroll - for (int i = 0; i < vdr; ++i) { - const int vi0 = (v[i] >> 0) & 0x0F0F0F0F; - const int vi1 = (v[i] >> 4) & 0x0F0F0F0F; + { + dpct::has_capability_or_fail(stream->get_device(), + {sycl::aspect::fp16}); - // SIMD dot product of quantized values - sumi = dpct::dp4a(vi0, u[2 * i + 0], sumi); - sumi = dpct::dp4a(vi1, u[2 * i + 1], sumi); + stream->parallel_for( + sycl::nd_range<3>(block_nums * block_dims, block_dims), + [=](sycl::nd_item<3> item_ct1) { + k_get_rows_float(src0_dd, src1_dd, dst_dd, ne00, ne12, s1, s2, + s3, nb01, nb02, nb03, s10, s11, s12, item_ct1); + }); } - const sycl::float2 ds8f = - ds8.convert(); - - // second part effectively subtracts 8 from each quant value - return d4 * (sumi * ds8f.x() - (8 * vdr / QI4_0) * ds8f.y()); + (void) dst; } -#define VDR_Q4_1_Q8_1_MMVQ 2 -#define VDR_Q4_1_Q8_1_MMQ 4 - -template -static __dpct_inline__ float vec_dot_q4_1_q8_1_impl(const int *v, const int *u, - const sycl::half2 &dm4, - const sycl::half2 &ds8) { - - int sumi = 0; - -#pragma unroll - for (int i = 0; i < vdr; ++i) { - const int vi0 = (v[i] >> 0) & 0x0F0F0F0F; - const int vi1 = (v[i] >> 4) & 0x0F0F0F0F; - - // SIMD dot product of quantized values - sumi = dpct::dp4a(vi0, u[2 * i + 0], sumi); - sumi = dpct::dp4a(vi1, u[2 * i + 1], sumi); - } - -#ifdef GGML_SYCL_F16 - const sycl::float2 tmp = - (dm4 * ds8).convert(); - const float d4d8 = tmp.x(); - const float m4s8 = tmp.y(); -#else - const sycl::float2 dm4f = - dm4.convert(); - const sycl::float2 ds8f = - ds8.convert(); - const float d4d8 = dm4f.x() * ds8f.x(); - const float m4s8 = dm4f.y() * ds8f.y(); -#endif // GGML_SYCL_F16 - - // scale second part of sum by QI8_1/(vdr * QR4_1) to compensate for multiple threads adding it - return sumi * d4d8 + m4s8 / (QI8_1 / (vdr * QR4_1)); -} +template +struct bin_bcast_sycl { + template + void operator()(ggml_backend_sycl_context & ctx, + const struct ggml_tensor *src0, + const struct ggml_tensor *src1, struct ggml_tensor *dst, + const src0_t *src0_dd, const src1_t *src1_dd, dst_t *dst_dd, + queue_ptr stream) { -#define VDR_Q5_0_Q8_1_MMVQ 2 -#define VDR_Q5_0_Q8_1_MMQ 4 + GGML_TENSOR_BINARY_OP_LOCALS -template -static __dpct_inline__ float -vec_dot_q5_0_q8_1_impl(const int *vl, const int *vh, const int *u, - const float &d5, const sycl::half2 &ds8) { - int sumi = 0; + int nr0 = ne10/ne0; + int nr1 = ne11/ne1; + int nr2 = ne12/ne2; + int nr3 = ne13/ne3; -#pragma unroll - for (int i = 0; i < vdr; ++i) { - int vi0 = (vl[i] >> 0) & 0x0F0F0F0F; // lower 4 qs bits, still need qh as 5th bits - vi0 |= (vh[i] << 4) & 0x00000010; // 0 -> 4 - vi0 |= (vh[i] << 11) & 0x00001000; // 1 -> 12 - vi0 |= (vh[i] << 18) & 0x00100000; // 2 -> 20 - vi0 |= (vh[i] << 25) & 0x10000000; // 3 -> 28 - sumi = dpct::dp4a(vi0, u[2 * i + 0], - sumi); // SIMD dot product of quantized values + int nr[4] = { nr0, nr1, nr2, nr3 }; - int vi1 = (vl[i] >> 4) & 0x0F0F0F0F; // upper 4 qs bits, still need qh as 5th bits - vi1 |= (vh[i] >> 12) & 0x00000010; // 16 -> 4 - vi1 |= (vh[i] >> 5) & 0x00001000; // 17 -> 12 - vi1 |= (vh[i] << 2) & 0x00100000; // 18 -> 20 - vi1 |= (vh[i] << 9) & 0x10000000; // 19 -> 28 - sumi = dpct::dp4a(vi1, u[2 * i + 1], - sumi); // SIMD dot product of quantized values - } + // collapse dimensions until first broadcast dimension + int64_t cne0[] = {ne0, ne1, ne2, ne3}; + int64_t cne1[] = {ne10, ne11, ne12, ne13}; + size_t cnb0[] = {nb0, nb1, nb2, nb3}; + size_t cnb1[] = {nb10, nb11, nb12, nb13}; + auto collapse = [](int64_t cne[]) { + cne[0] *= cne[1]; + cne[1] = cne[2]; + cne[2] = cne[3]; + cne[3] = 1; + }; - const sycl::float2 ds8f = - ds8.convert(); + auto collapse_nb = [](size_t cnb[], int64_t cne[]) { + cnb[1] *= cne[1]; + cnb[2] *= cne[2]; + cnb[3] *= cne[3]; + }; - // second part effectively subtracts 16 from each quant value - return d5 * (sumi * ds8f.x() - (16 * vdr / QI5_0) * ds8f.y()); -} - -#define VDR_Q5_1_Q8_1_MMVQ 2 -#define VDR_Q5_1_Q8_1_MMQ 4 - -template -static __dpct_inline__ float -vec_dot_q5_1_q8_1_impl(const int *vl, const int *vh, const int *u, - const sycl::half2 &dm5, const sycl::half2 &ds8) { - - int sumi = 0; - -#pragma unroll - for (int i = 0; i < vdr; ++i) { - int vi0 = (vl[i] >> 0) & 0x0F0F0F0F; // lower 4 qs bits, still need qh as 5th bits - vi0 |= (vh[i] << 4) & 0x00000010; // 0 -> 4 - vi0 |= (vh[i] << 11) & 0x00001000; // 1 -> 12 - vi0 |= (vh[i] << 18) & 0x00100000; // 2 -> 20 - vi0 |= (vh[i] << 25) & 0x10000000; // 3 -> 28 - sumi = dpct::dp4a(vi0, u[2 * i + 0], - sumi); // SIMD dot product of quantized values - - int vi1 = (vl[i] >> 4) & 0x0F0F0F0F; // upper 4 qs bits, still need qh as 5th bits - vi1 |= (vh[i] >> 12) & 0x00000010; // 16 -> 4 - vi1 |= (vh[i] >> 5) & 0x00001000; // 17 -> 12 - vi1 |= (vh[i] << 2) & 0x00100000; // 18 -> 20 - vi1 |= (vh[i] << 9) & 0x10000000; // 19 -> 28 - sumi = dpct::dp4a(vi1, u[2 * i + 1], - sumi); // SIMD dot product of quantized values - } - -#ifdef GGML_SYCL_F16 - const sycl::float2 tmp = - (dm5 * ds8).convert(); - const float d5d8 = tmp.x(); - const float m5s8 = tmp.y(); - - -#else - const sycl::float2 dm5f = - dm5.convert(); - const sycl::float2 ds8f = - ds8.convert(); - const float d5d8 = dm5f.x() * ds8f.x(); - const float m5s8 = dm5f.y() * ds8f.y(); -#endif // GGML_SYCL_F16 - - // scale second part of sum by QI5_1 / vdr to compensate for multiple threads adding it - return sumi*d5d8 + m5s8 / (QI5_1 / vdr); -} - -#define VDR_Q8_0_Q8_1_MMVQ 2 -#define VDR_Q8_0_Q8_1_MMQ 8 - -template -static __dpct_inline__ float vec_dot_q8_0_q8_1_impl(const int *v, const int *u, - const float &d8_0, - const float &d8_1) { - - int sumi = 0; - -#pragma unroll - for (int i = 0; i < vdr; ++i) { - // SIMD dot product of quantized values - sumi = dpct::dp4a(v[i], u[i], sumi); - } - - return d8_0*d8_1 * sumi; -} - -template -static __dpct_inline__ float vec_dot_q8_1_q8_1_impl(const int *v, const int *u, - const sycl::half2 &dm8, - const sycl::half2 &ds8) { - - int sumi = 0; - -#pragma unroll - for (int i = 0; i < vdr; ++i) { - // SIMD dot product of quantized values - sumi = dpct::dp4a(v[i], u[i], sumi); - } - -#ifdef GGML_SYCL_F16 - const sycl::float2 tmp = - (dm8 * ds8).convert(); - const float d8d8 = tmp.x(); - const float m8s8 = tmp.y(); -#else - const sycl::float2 dm8f = - dm8.convert(); - const sycl::float2 ds8f = - ds8.convert(); - const float d8d8 = dm8f.x() * ds8f.x(); - const float m8s8 = dm8f.y() * ds8f.y(); -#endif // GGML_SYCL_F16 - - // scale second part of sum by QI8_1/ vdr to compensate for multiple threads adding it - return sumi*d8d8 + m8s8 / (QI8_1 / vdr); -} - -#define VDR_Q2_K_Q8_1_MMVQ 1 -#define VDR_Q2_K_Q8_1_MMQ 2 - -// contiguous v/x values -static __dpct_inline__ float vec_dot_q2_K_q8_1_impl_mmvq( - const int &v, const int *__restrict__ u, const uint8_t *__restrict__ scales, - const sycl::half2 &dm2, const float *__restrict__ d8) { - - float sumf_d = 0.0f; - float sumf_m = 0.0f; - -#pragma unroll - for (int i = 0; i < QR2_K; ++i) { - const int sc = scales[2*i]; - - const int vi = (v >> (2*i)) & 0x03030303; - - sumf_d += - d8[i] * (dpct::dp4a(vi, u[i], 0) * (sc & 0xF)); // SIMD dot product - - // fill int with 4x m - int m = sc >> 4; - m |= m << 8; - m |= m << 16; - sumf_m += d8[i] * - dpct::dp4a( - m, u[i], - 0); // multiply constant q2_K part with sum of q8_1 values - } - - const sycl::float2 dm2f = - dm2.convert(); - - return dm2f.x() * sumf_d - dm2f.y() * sumf_m; -} - -// contiguous u/y values -static __dpct_inline__ float -vec_dot_q2_K_q8_1_impl_mmq(const int *__restrict__ v, const int *__restrict__ u, - const uint8_t *__restrict__ scales, - const sycl::half2 &dm2, const float &d8) { - - int sumi_d = 0; - int sumi_m = 0; - -#pragma unroll - for (int i0 = 0; i0 < QI8_1; i0 += QI8_1/2) { - int sumi_d_sc = 0; - - const int sc = scales[i0 / (QI8_1/2)]; - - // fill int with 4x m - int m = sc >> 4; - m |= m << 8; - m |= m << 16; - -#pragma unroll - for (int i = i0; i < i0 + QI8_1/2; ++i) { - sumi_d_sc = dpct::dp4a(v[i], u[i], sumi_d_sc); // SIMD dot product - sumi_m = dpct::dp4a(m, u[i], - sumi_m); // multiply sum of q8_1 values with m - } - - sumi_d += sumi_d_sc * (sc & 0xF); - } - - const sycl::float2 dm2f = - dm2.convert(); - - return d8 * (dm2f.x() * sumi_d - dm2f.y() * sumi_m); -} - -#define VDR_Q3_K_Q8_1_MMVQ 1 -#define VDR_Q3_K_Q8_1_MMQ 2 - -// contiguous v/x values -static __dpct_inline__ float vec_dot_q3_K_q8_1_impl_mmvq( - const int &vl, const int &vh, const int *__restrict__ u, - const uint8_t *__restrict__ scales, const int &scale_offset, - const float &d3, const float *__restrict__ d8) { - - float sumf = 0.0f; - -#pragma unroll - for (int i = 0; i < QR3_K; ++i) { - const int isc = scale_offset + 2*i; - - const int isc_low = isc % (QK_K/32); - const int sc_shift_low = 4 * (isc / (QK_K/32)); - const int sc_low = (scales[isc_low] >> sc_shift_low) & 0xF; - - const int isc_high = isc % (QK_K/64); - const int sc_shift_high = 2 * (isc / (QK_K/64)); - const int sc_high = ((scales[(QK_K/32) + isc_high] >> sc_shift_high) & 3) << 4; - - const int sc = (sc_low | sc_high) - 32; - - const int vil = (vl >> (2*i)) & 0x03030303; - - const int vih = ((vh >> i) << 2) & 0x04040404; - - const int vi = - dpct::vectorized_binary(vil, vih, dpct::sub_sat()); - - sumf += d8[i] * (dpct::dp4a(vi, u[i], 0) * sc); // SIMD dot product - } - - return d3 * sumf; -} - -// contiguous u/y values -static __dpct_inline__ float -vec_dot_q3_K_q8_1_impl_mmq(const int *__restrict__ v, const int *__restrict__ u, - const int8_t *__restrict__ scales, const float &d3, - const float &d8) { - - int sumi = 0; - -#pragma unroll - for (int i0 = 0; i0 < QR3_K*VDR_Q3_K_Q8_1_MMQ; i0 += QI8_1/2) { - int sumi_sc = 0; - - for (int i = i0; i < i0 + QI8_1/2; ++i) { - sumi_sc = dpct::dp4a(v[i], u[i], sumi_sc); // SIMD dot product - } - - sumi += sumi_sc * scales[i0 / (QI8_1/2)]; - } - - return d3*d8 * sumi; -} - -#define VDR_Q4_K_Q8_1_MMVQ 2 -#define VDR_Q4_K_Q8_1_MMQ 8 - -// contiguous v/x values -static __dpct_inline__ float vec_dot_q4_K_q8_1_impl_vmmq( - const int *__restrict__ v, const int *__restrict__ u, - const uint8_t *__restrict__ sc, const uint8_t *__restrict__ m, - const sycl::half2 &dm4, const float *__restrict__ d8) { - - float sumf_d = 0.0f; - float sumf_m = 0.0f; - -#pragma unroll - for (int i = 0; i < QR4_K; ++i) { - const int v0i = (v[0] >> (4*i)) & 0x0F0F0F0F; - const int v1i = (v[1] >> (4*i)) & 0x0F0F0F0F; - - const int dot1 = - dpct::dp4a(v1i, u[2 * i + 1], - dpct::dp4a(v0i, u[2 * i + 0], 0)); // SIMD dot product - const int dot2 = - dpct::dp4a(0x01010101, u[2 * i + 1], - dpct::dp4a(0x01010101, u[2 * i + 0], 0)); // sum of u - - sumf_d += d8[i] * (dot1 * sc[i]); - sumf_m += d8[i] * (dot2 * m[i]); // multiply constant part of q4_K with sum of q8_1 values - } - - const sycl::float2 dm4f = - dm4.convert(); - - return dm4f.x() * sumf_d - dm4f.y() * sumf_m; -} - -// contiguous u/y values -static __dpct_inline__ float vec_dot_q4_K_q8_1_impl_mmq( - const int *__restrict__ v, const int *__restrict__ u, - const uint8_t *__restrict__ sc, const uint8_t *__restrict__ m, - const sycl::half2 &dm4, const sycl::half2 *__restrict__ ds8) { - - float sumf_d = 0.0f; - float sumf_m = 0.0f; - -#pragma unroll - for (int i = 0; i < QR4_K*VDR_Q4_K_Q8_1_MMQ/QI8_1; ++i) { - int sumi_d = 0; - -#pragma unroll - for (int j = 0; j < QI8_1; ++j) { - sumi_d = dpct::dp4a((v[j] >> (4 * i)) & 0x0F0F0F0F, - u[i * QI8_1 + j], sumi_d); // SIMD dot product - } - - const sycl::float2 ds8f = - ds8[i].convert(); - - sumf_d += ds8f.x() * (sc[i] * sumi_d); - sumf_m += ds8f.y() * m[i]; // sum of q8_1 block * q4_K min val - } - - const sycl::float2 dm4f = - dm4.convert(); - - return dm4f.x() * sumf_d - dm4f.y() * sumf_m; -} - -#define VDR_Q5_K_Q8_1_MMVQ 2 -#define VDR_Q5_K_Q8_1_MMQ 8 - -// contiguous v/x values -static __dpct_inline__ float vec_dot_q5_K_q8_1_impl_vmmq( - const int *__restrict__ vl, const int *__restrict__ vh, - const int *__restrict__ u, const uint8_t *__restrict__ sc, - const uint8_t *__restrict__ m, const sycl::half2 &dm5, - const float *__restrict__ d8) { - - float sumf_d = 0.0f; - float sumf_m = 0.0f; - -#pragma unroll - for (int i = 0; i < QR5_K; ++i) { - const int vl0i = (vl[0] >> (4*i)) & 0x0F0F0F0F; - const int vl1i = (vl[1] >> (4*i)) & 0x0F0F0F0F; - - const int vh0i = ((vh[0] >> i) << 4) & 0x10101010; - const int vh1i = ((vh[1] >> i) << 4) & 0x10101010; - - const int v0i = vl0i | vh0i; - const int v1i = vl1i | vh1i; - - const int dot1 = - dpct::dp4a(v0i, u[2 * i + 0], - dpct::dp4a(v1i, u[2 * i + 1], 0)); // SIMD dot product - const int dot2 = - dpct::dp4a(0x01010101, u[2 * i + 0], - dpct::dp4a(0x01010101, u[2 * i + 1], 0)); // sum of u - - sumf_d += d8[i] * (dot1 * sc[i]); - sumf_m += d8[i] * (dot2 * m[i]); - - } - - const sycl::float2 dm5f = - dm5.convert(); - - return dm5f.x() * sumf_d - dm5f.y() * sumf_m; -} - -// contiguous u/y values -static __dpct_inline__ float vec_dot_q5_K_q8_1_impl_mmq( - const int *__restrict__ v, const int *__restrict__ u, - const uint8_t *__restrict__ sc, const uint8_t *__restrict__ m, - const sycl::half2 &dm4, const sycl::half2 *__restrict__ ds8) { - - float sumf_d = 0.0f; - float sumf_m = 0.0f; - -#pragma unroll - for (int i = 0; i < QR5_K*VDR_Q5_K_Q8_1_MMQ/QI8_1; ++i) { - int sumi_d = 0; - -#pragma unroll - for (int j = 0; j < QI8_1; ++j) { - sumi_d = dpct::dp4a(v[i * QI8_1 + j], u[i * QI8_1 + j], - sumi_d); // SIMD dot product - } - - const sycl::float2 ds8f = - ds8[i].convert(); - - sumf_d += ds8f.x() * (sc[i] * sumi_d); - sumf_m += ds8f.y() * m[i]; // sum of q8_1 block * q4_K min val - } - - const sycl::float2 dm4f = - dm4.convert(); - - return dm4f.x() * sumf_d - dm4f.y() * sumf_m; -} - -#define VDR_Q6_K_Q8_1_MMVQ 1 -#define VDR_Q6_K_Q8_1_MMQ 8 - -// contiguous v/x values -static __dpct_inline__ float -vec_dot_q6_K_q8_1_impl_mmvq(const int &vl, const int &vh, - const int *__restrict__ u, - const int8_t *__restrict__ scales, const float &d, - const float *__restrict__ d8) { - - float sumf = 0.0f; - -#pragma unroll - for (int i = 0; i < QR6_K; ++i) { - const int sc = scales[4*i]; - - const int vil = (vl >> (4*i)) & 0x0F0F0F0F; - - const int vih = ((vh >> (4*i)) << 4) & 0x30303030; - - const int vi = dpct::vectorized_binary( - (vil | vih), 0x20202020, dpct::sub_sat()); // vi = (vil | vih) - 32 - - sumf += d8[i] * (dpct::dp4a(vi, u[i], 0) * sc); // SIMD dot product - } - - return d*sumf; -} - -// contiguous u/y values -static __dpct_inline__ float -vec_dot_q6_K_q8_1_impl_mmq(const int *__restrict__ v, const int *__restrict__ u, - const int8_t *__restrict__ sc, const float &d6, - const float *__restrict__ d8) { - - float sumf_d = 0.0f; - -#pragma unroll - for (int i0 = 0; i0 < VDR_Q6_K_Q8_1_MMQ; i0 += 4) { - sycl::int2 sumi_d = {0, 0}; // 2 q6_K scales per q8_1 scale - -#pragma unroll - for (int i = i0; i < i0 + 2; ++i) { - sumi_d.x() = dpct::dp4a(v[2 * i + 0], u[2 * i + 0], - sumi_d.x()); // SIMD dot product - sumi_d.x() = dpct::dp4a(v[2 * i + 1], u[2 * i + 1], - sumi_d.x()); // SIMD dot product - - sumi_d.y() = dpct::dp4a(v[2 * i + 4], u[2 * i + 4], - sumi_d.y()); // SIMD dot product - sumi_d.y() = dpct::dp4a(v[2 * i + 5], u[2 * i + 5], - sumi_d.y()); // SIMD dot product - } - - sumf_d += d8[i0 / 4] * - (sc[i0 / 2 + 0] * sumi_d.x() + sc[i0 / 2 + 1] * sumi_d.y()); - } - - return d6 * sumf_d; -} - -static __dpct_inline__ float -vec_dot_q4_0_q8_1(const void *__restrict__ vbq, - const block_q8_1 *__restrict__ bq8_1, const int &iqs) { - - const block_q4_0 * bq4_0 = (const block_q4_0 *) vbq; - - int v[VDR_Q4_0_Q8_1_MMVQ]; - int u[2*VDR_Q4_0_Q8_1_MMVQ]; - -#pragma unroll - for (int i = 0; i < VDR_Q4_0_Q8_1_MMVQ; ++i) { - v[i] = get_int_from_uint8(bq4_0->qs, iqs + i); - u[2*i+0] = get_int_from_int8_aligned(bq8_1->qs, iqs + i); - u[2*i+1] = get_int_from_int8_aligned(bq8_1->qs, iqs + i + QI4_0); - } - - return vec_dot_q4_0_q8_1_impl(v, u, bq4_0->d, bq8_1->ds); -} - -template -static __dpct_inline__ void -allocate_tiles_q4_0(int **x_ql, sycl::half2 **x_dm, int **x_qh, int **x_sc, - int *tile_x_qs_q4_0, float *tile_x_d_q4_0) { - (void)x_qh; (void)x_sc; - - *x_ql = tile_x_qs_q4_0; - *x_dm = (sycl::half2 *)tile_x_d_q4_0; -} - -template -static __dpct_inline__ void -load_tiles_q4_0(const void *__restrict__ vx, int *__restrict__ x_ql, - sycl::half2 *__restrict__ x_dm, int *__restrict__ x_qh, - int *__restrict__ x_sc, const int &i_offset, const int &i_max, - const int &k, const int &blocks_per_row) { - (void)x_qh; (void)x_sc; - GGML_SYCL_ASSUME(i_offset >= 0); - GGML_SYCL_ASSUME(i_offset < nwarps); - GGML_SYCL_ASSUME(k >= 0); - GGML_SYCL_ASSUME(k < WARP_SIZE); - - const int kbx = k / QI4_0; - const int kqsx = k % QI4_0; - - const block_q4_0 * bx0 = (const block_q4_0 *) vx; - - float * x_dmf = (float *) x_dm; - -#pragma unroll - for (int i0 = 0; i0 < mmq_y; i0 += nwarps) { - int i = i0 + i_offset; - - if (need_check) { - i = sycl::min(i, i_max); - } - - const block_q4_0 * bxi = bx0 + i*blocks_per_row + kbx; - - x_ql[i * (WARP_SIZE + 1) + k] = get_int_from_uint8(bxi->qs, kqsx); - // x_dmf[i * (WARP_SIZE/QI4_0) + i / QI4_0 + kbx] = bxi->d; - } - - const int blocks_per_tile_x_row = WARP_SIZE / QI4_0; - const int kbxd = k % blocks_per_tile_x_row; - -#pragma unroll - for (int i0 = 0; i0 < mmq_y; i0 += nwarps * QI4_0) { - int i = i0 + i_offset * QI4_0 + k / blocks_per_tile_x_row; - - if (need_check) { - i = sycl::min(i, i_max); - } - - const block_q4_0 * bxi = bx0 + i*blocks_per_row + kbxd; - - x_dmf[i * (WARP_SIZE/QI4_0) + i / QI4_0 + kbxd] = bxi->d; - } -} - -static __dpct_inline__ float vec_dot_q4_0_q8_1_mul_mat( - const int *__restrict__ x_ql, const sycl::half2 *__restrict__ x_dm, - const int *__restrict__ x_qh, const int *__restrict__ x_sc, - const int *__restrict__ y_qs, const sycl::half2 *__restrict__ y_ds, - const int &i, const int &j, const int &k) { - (void)x_qh; (void)x_sc; - - const int kyqs = k % (QI8_1/2) + QI8_1 * (k / (QI8_1/2)); - const float * x_dmf = (const float *) x_dm; - - int u[2*VDR_Q4_0_Q8_1_MMQ]; - -#pragma unroll - for (int l = 0; l < VDR_Q4_0_Q8_1_MMQ; ++l) { - u[2*l+0] = y_qs[j * WARP_SIZE + (kyqs + l) % WARP_SIZE]; - u[2*l+1] = y_qs[j * WARP_SIZE + (kyqs + l + QI4_0) % WARP_SIZE]; - } - - return vec_dot_q4_0_q8_1_impl - (&x_ql[i * (WARP_SIZE + 1) + k], u, x_dmf[i * (WARP_SIZE/QI4_0) + i/QI4_0 + k/QI4_0], - y_ds[j * (WARP_SIZE/QI8_1) + (2*k/QI8_1) % (WARP_SIZE/QI8_1)]); -} - -static __dpct_inline__ float -vec_dot_q4_1_q8_1(const void *__restrict__ vbq, - const block_q8_1 *__restrict__ bq8_1, const int &iqs) { - - const block_q4_1 * bq4_1 = (const block_q4_1 *) vbq; - - int v[VDR_Q4_1_Q8_1_MMVQ]; - int u[2*VDR_Q4_1_Q8_1_MMVQ]; - -#pragma unroll - for (int i = 0; i < VDR_Q4_1_Q8_1_MMVQ; ++i) { - v[i] = get_int_from_uint8_aligned(bq4_1->qs, iqs + i); - u[2*i+0] = get_int_from_int8_aligned(bq8_1->qs, iqs + i); - u[2*i+1] = get_int_from_int8_aligned(bq8_1->qs, iqs + i + QI4_1); - } - - return vec_dot_q4_1_q8_1_impl(v, u, bq4_1->dm, bq8_1->ds); -} - -template -static __dpct_inline__ void -allocate_tiles_q4_1(int **x_ql, sycl::half2 **x_dm, int **x_qh, int **x_sc, - int *tile_x_qs_q4_1, sycl::half2 *tile_x_dm_q4_1) { - (void)x_qh; (void)x_sc; - - *x_ql = tile_x_qs_q4_1; - *x_dm = tile_x_dm_q4_1; -} - -template -static __dpct_inline__ void -load_tiles_q4_1(const void *__restrict__ vx, int *__restrict__ x_ql, - sycl::half2 *__restrict__ x_dm, int *__restrict__ x_qh, - int *__restrict__ x_sc, const int &i_offset, const int &i_max, - const int &k, const int &blocks_per_row) { - (void)x_qh; (void)x_sc; - - GGML_SYCL_ASSUME(i_offset >= 0); - GGML_SYCL_ASSUME(i_offset < nwarps); - GGML_SYCL_ASSUME(k >= 0); - GGML_SYCL_ASSUME(k < WARP_SIZE); - - const int kbx = k / QI4_1; - const int kqsx = k % QI4_1; - - const block_q4_1 * bx0 = (const block_q4_1 *) vx; - -#pragma unroll - for (int i0 = 0; i0 < mmq_y; i0 += nwarps) { - int i = i0 + i_offset; - - if (need_check) { - i = sycl::min(i, i_max); - } - - const block_q4_1 * bxi = bx0 + i*blocks_per_row + kbx; - - x_ql[i * (WARP_SIZE + 1) + k] = get_int_from_uint8_aligned(bxi->qs, kqsx); - } - - const int blocks_per_tile_x_row = WARP_SIZE / QI4_1; - const int kbxd = k % blocks_per_tile_x_row; - -#pragma unroll - for (int i0 = 0; i0 < mmq_y; i0 += nwarps * QI4_1) { - int i = i0 + i_offset * QI4_1 + k / blocks_per_tile_x_row; - - if (need_check) { - i = sycl::min(i, i_max); - } - - const block_q4_1 * bxi = bx0 + i*blocks_per_row + kbxd; - - x_dm[i * (WARP_SIZE/QI4_1) + i / QI4_1 + kbxd] = bxi->dm; - } -} - -static __dpct_inline__ float vec_dot_q4_1_q8_1_mul_mat( - const int *__restrict__ x_ql, const sycl::half2 *__restrict__ x_dm, - const int *__restrict__ x_qh, const int *__restrict__ x_sc, - const int *__restrict__ y_qs, const sycl::half2 *__restrict__ y_ds, - const int &i, const int &j, const int &k) { - (void)x_qh; (void)x_sc; - - const int kyqs = k % (QI8_1/2) + QI8_1 * (k / (QI8_1/2)); - - int u[2*VDR_Q4_1_Q8_1_MMQ]; - -#pragma unroll - for (int l = 0; l < VDR_Q4_1_Q8_1_MMQ; ++l) { - u[2*l+0] = y_qs[j * WARP_SIZE + (kyqs + l) % WARP_SIZE]; - u[2*l+1] = y_qs[j * WARP_SIZE + (kyqs + l + QI4_1) % WARP_SIZE]; - } - - return vec_dot_q4_1_q8_1_impl - (&x_ql[i * (WARP_SIZE + 1) + k], u, x_dm[i * (WARP_SIZE/QI4_1) + i/QI4_1 + k/QI4_1], - y_ds[j * (WARP_SIZE/QI8_1) + (2*k/QI8_1) % (WARP_SIZE/QI8_1)]); -} - -static __dpct_inline__ float -vec_dot_q5_0_q8_1(const void *__restrict__ vbq, - const block_q8_1 *__restrict__ bq8_1, const int &iqs) { - - const block_q5_0 * bq5_0 = (const block_q5_0 *) vbq; - - int vl[VDR_Q5_0_Q8_1_MMVQ]; - int vh[VDR_Q5_0_Q8_1_MMVQ]; - int u[2*VDR_Q5_0_Q8_1_MMVQ]; - -#pragma unroll - for (int i = 0; i < VDR_Q5_0_Q8_1_MMVQ; ++i) { - vl[i] = get_int_from_uint8(bq5_0->qs, iqs + i); - vh[i] = get_int_from_uint8(bq5_0->qh, 0) >> (4 * (iqs + i)); - u[2*i+0] = get_int_from_int8_aligned(bq8_1->qs, iqs + i); - u[2*i+1] = get_int_from_int8_aligned(bq8_1->qs, iqs + i + QI5_0); - } - - return vec_dot_q5_0_q8_1_impl(vl, vh, u, bq5_0->d, bq8_1->ds); -} - -template -static __dpct_inline__ void -allocate_tiles_q5_0(int **x_ql, sycl::half2 **x_dm, int **x_qh, int **x_sc, - int *tile_x_ql_q5_0, float *tile_x_d_q5_0) { - (void)x_qh; (void)x_sc; - - *x_ql = tile_x_ql_q5_0; - *x_dm = (sycl::half2 *)tile_x_d_q5_0; -} - -template -static __dpct_inline__ void -load_tiles_q5_0(const void *__restrict__ vx, int *__restrict__ x_ql, - sycl::half2 *__restrict__ x_dm, int *__restrict__ x_qh, - int *__restrict__ x_sc, const int &i_offset, const int &i_max, - const int &k, const int &blocks_per_row) { - (void)x_qh; (void)x_sc; - - GGML_SYCL_ASSUME(i_offset >= 0); - GGML_SYCL_ASSUME(i_offset < nwarps); - GGML_SYCL_ASSUME(k >= 0); - GGML_SYCL_ASSUME(k < WARP_SIZE); - - const int kbx = k / QI5_0; - const int kqsx = k % QI5_0; - - const block_q5_0 * bx0 = (const block_q5_0 *) vx; - -#pragma unroll - for (int i0 = 0; i0 < mmq_y; i0 += nwarps) { - int i = i0 + i_offset; - - if (need_check) { - i = sycl::min(i, i_max); - } - - const block_q5_0 * bxi = bx0 + i*blocks_per_row + kbx; - - const int ql = get_int_from_uint8(bxi->qs, kqsx); - const int qh = get_int_from_uint8(bxi->qh, 0) >> (4 * (k % QI5_0)); - - int qs0 = (ql >> 0) & 0x0F0F0F0F; - qs0 |= (qh << 4) & 0x00000010; // 0 -> 4 - qs0 |= (qh << 11) & 0x00001000; // 1 -> 12 - qs0 |= (qh << 18) & 0x00100000; // 2 -> 20 - qs0 |= (qh << 25) & 0x10000000; // 3 -> 28 - qs0 = dpct::vectorized_binary( - qs0, 0x10101010, dpct::sub_sat()); // subtract 16 - - x_ql[i * (2*WARP_SIZE + 1) + 2*k+0] = qs0; - - int qs1 = (ql >> 4) & 0x0F0F0F0F; - qs1 |= (qh >> 12) & 0x00000010; // 16 -> 4 - qs1 |= (qh >> 5) & 0x00001000; // 17 -> 12 - qs1 |= (qh << 2) & 0x00100000; // 18 -> 20 - qs1 |= (qh << 9) & 0x10000000; // 19 -> 28 - qs1 = dpct::vectorized_binary( - qs1, 0x10101010, dpct::sub_sat()); // subtract 16 - - x_ql[i * (2*WARP_SIZE + 1) + 2*k+1] = qs1; - } - - const int blocks_per_tile_x_row = WARP_SIZE / QI5_0; - const int kbxd = k % blocks_per_tile_x_row; - float * x_dmf = (float *) x_dm; - -#pragma unroll - for (int i0 = 0; i0 < mmq_y; i0 += nwarps * QI5_0) { - int i = i0 + i_offset * QI5_0 + k / blocks_per_tile_x_row; - - if (need_check) { - i = sycl::min(i, i_max); - } - - const block_q5_0 * bxi = bx0 + i*blocks_per_row + kbxd; - - x_dmf[i * (WARP_SIZE/QI5_0) + i / QI5_0 + kbxd] = bxi->d; - } -} - -static __dpct_inline__ float vec_dot_q5_0_q8_1_mul_mat( - const int *__restrict__ x_ql, const sycl::half2 *__restrict__ x_dm, - const int *__restrict__ x_qh, const int *__restrict__ x_sc, - const int *__restrict__ y_qs, const sycl::half2 *__restrict__ y_ds, - const int &i, const int &j, const int &k) { - (void)x_qh; (void)x_sc; - - const int kyqs = k % (QI8_1/2) + QI8_1 * (k / (QI8_1/2)); - const int index_bx = i * (WARP_SIZE/QI5_0) + i/QI5_0 + k/QI5_0; - const float * x_dmf = (const float *) x_dm; - const float * y_df = (const float *) y_ds; - - int u[2*VDR_Q5_0_Q8_1_MMQ]; - -#pragma unroll - for (int l = 0; l < VDR_Q5_0_Q8_1_MMQ; ++l) { - u[2*l+0] = y_qs[j * WARP_SIZE + (kyqs + l) % WARP_SIZE]; - u[2*l+1] = y_qs[j * WARP_SIZE + (kyqs + l + QI5_0) % WARP_SIZE]; - } - - return vec_dot_q8_0_q8_1_impl - (&x_ql[i * (2*WARP_SIZE + 1) + 2 * k], u, x_dmf[index_bx], y_df[j * (WARP_SIZE/QI8_1) + (2*k/QI8_1) % (WARP_SIZE/QI8_1)]); -} - -static __dpct_inline__ float -vec_dot_q5_1_q8_1(const void *__restrict__ vbq, - const block_q8_1 *__restrict__ bq8_1, const int &iqs) { - - const block_q5_1 * bq5_1 = (const block_q5_1 *) vbq; - - int vl[VDR_Q5_1_Q8_1_MMVQ]; - int vh[VDR_Q5_1_Q8_1_MMVQ]; - int u[2*VDR_Q5_1_Q8_1_MMVQ]; - -#pragma unroll - for (int i = 0; i < VDR_Q5_1_Q8_1_MMVQ; ++i) { - vl[i] = get_int_from_uint8_aligned(bq5_1->qs, iqs + i); - vh[i] = get_int_from_uint8_aligned(bq5_1->qh, 0) >> (4 * (iqs + i)); - u[2*i+0] = get_int_from_int8_aligned(bq8_1->qs, iqs + i); - u[2*i+1] = get_int_from_int8_aligned(bq8_1->qs, iqs + i + QI5_1); - } - - return vec_dot_q5_1_q8_1_impl(vl, vh, u, bq5_1->dm, bq8_1->ds); -} - -template -static __dpct_inline__ void -allocate_tiles_q5_1(int **x_ql, sycl::half2 **x_dm, int **x_qh, int **x_sc, - int *tile_x_ql_q5_1, sycl::half2 *tile_x_dm_q5_1) { - (void)x_qh; (void)x_sc; - - *x_ql = tile_x_ql_q5_1; - *x_dm = tile_x_dm_q5_1; -} - -template -static __dpct_inline__ void -load_tiles_q5_1(const void *__restrict__ vx, int *__restrict__ x_ql, - sycl::half2 *__restrict__ x_dm, int *__restrict__ x_qh, - int *__restrict__ x_sc, const int &i_offset, const int &i_max, - const int &k, const int &blocks_per_row) { - (void)x_qh; (void)x_sc; - - GGML_SYCL_ASSUME(i_offset >= 0); - GGML_SYCL_ASSUME(i_offset < nwarps); - GGML_SYCL_ASSUME(k >= 0); - GGML_SYCL_ASSUME(k < WARP_SIZE); - - const int kbx = k / QI5_1; - const int kqsx = k % QI5_1; - - const block_q5_1 * bx0 = (const block_q5_1 *) vx; - -#pragma unroll - for (int i0 = 0; i0 < mmq_y; i0 += nwarps) { - int i = i0 + i_offset; - - if (need_check) { - i = sycl::min(i, i_max); - } - - const block_q5_1 * bxi = bx0 + i*blocks_per_row + kbx; - - const int ql = get_int_from_uint8_aligned(bxi->qs, kqsx); - const int qh = get_int_from_uint8_aligned(bxi->qh, 0) >> (4 * (k % QI5_1)); - - int qs0 = (ql >> 0) & 0x0F0F0F0F; - qs0 |= (qh << 4) & 0x00000010; // 0 -> 4 - qs0 |= (qh << 11) & 0x00001000; // 1 -> 12 - qs0 |= (qh << 18) & 0x00100000; // 2 -> 20 - qs0 |= (qh << 25) & 0x10000000; // 3 -> 28 - - x_ql[i * (2*WARP_SIZE + 1) + 2*k+0] = qs0; - - int qs1 = (ql >> 4) & 0x0F0F0F0F; - qs1 |= (qh >> 12) & 0x00000010; // 16 -> 4 - qs1 |= (qh >> 5) & 0x00001000; // 17 -> 12 - qs1 |= (qh << 2) & 0x00100000; // 18 -> 20 - qs1 |= (qh << 9) & 0x10000000; // 19 -> 28 - - x_ql[i * (2*WARP_SIZE + 1) + 2*k+1] = qs1; - } - - const int blocks_per_tile_x_row = WARP_SIZE / QI5_1; - const int kbxd = k % blocks_per_tile_x_row; - -#pragma unroll - for (int i0 = 0; i0 < mmq_y; i0 += nwarps * QI5_1) { - int i = i0 + i_offset * QI5_1 + k / blocks_per_tile_x_row; - - if (need_check) { - i = sycl::min(i, i_max); - } - - const block_q5_1 * bxi = bx0 + i*blocks_per_row + kbxd; - - x_dm[i * (WARP_SIZE/QI5_1) + i / QI5_1 + kbxd] = bxi->dm; - } -} - -static __dpct_inline__ float vec_dot_q5_1_q8_1_mul_mat( - const int *__restrict__ x_ql, const sycl::half2 *__restrict__ x_dm, - const int *__restrict__ x_qh, const int *__restrict__ x_sc, - const int *__restrict__ y_qs, const sycl::half2 *__restrict__ y_ds, - const int &i, const int &j, const int &k) { - (void)x_qh; (void)x_sc; - - const int kyqs = k % (QI8_1/2) + QI8_1 * (k / (QI8_1/2)); - const int index_bx = i * (WARP_SIZE/QI5_1) + + i/QI5_1 + k/QI5_1; - - int u[2*VDR_Q5_1_Q8_1_MMQ]; - -#pragma unroll - for (int l = 0; l < VDR_Q5_1_Q8_1_MMQ; ++l) { - u[2*l+0] = y_qs[j * WARP_SIZE + (kyqs + l) % WARP_SIZE]; - u[2*l+1] = y_qs[j * WARP_SIZE + (kyqs + l + QI5_1) % WARP_SIZE]; - } - - return vec_dot_q8_1_q8_1_impl - (&x_ql[i * (2*WARP_SIZE + 1) + 2 * k], u, x_dm[index_bx], y_ds[j * (WARP_SIZE/QI8_1) + (2*k/QI8_1) % (WARP_SIZE/QI8_1)]); -} - -static __dpct_inline__ float -vec_dot_q8_0_q8_1(const void *__restrict__ vbq, - const block_q8_1 *__restrict__ bq8_1, const int &iqs) { - - const block_q8_0 * bq8_0 = (const block_q8_0 *) vbq; - - int v[VDR_Q8_0_Q8_1_MMVQ]; - int u[VDR_Q8_0_Q8_1_MMVQ]; - -#pragma unroll - for (int i = 0; i < VDR_Q8_0_Q8_1_MMVQ; ++i) { - v[i] = get_int_from_int8(bq8_0->qs, iqs + i); - u[i] = get_int_from_int8_aligned(bq8_1->qs, iqs + i); - } - - return vec_dot_q8_0_q8_1_impl(v, u, bq8_0->d, - bq8_1->ds[0]); -} - -template -static __dpct_inline__ void -allocate_tiles_q8_0(int **x_ql, sycl::half2 **x_dm, int **x_qh, int **x_sc, - int *tile_x_qs_q8_0, float *tile_x_d_q8_0) { - (void)x_qh; (void)x_sc; - - *x_ql = tile_x_qs_q8_0; - *x_dm = (sycl::half2 *)tile_x_d_q8_0; -} - -template -static __dpct_inline__ void -load_tiles_q8_0(const void *__restrict__ vx, int *__restrict__ x_ql, - sycl::half2 *__restrict__ x_dm, int *__restrict__ x_qh, - int *__restrict__ x_sc, const int &i_offset, const int &i_max, - const int &k, const int &blocks_per_row) { - (void)x_qh; (void)x_sc; - - GGML_SYCL_ASSUME(i_offset >= 0); - GGML_SYCL_ASSUME(i_offset < nwarps); - GGML_SYCL_ASSUME(k >= 0); - GGML_SYCL_ASSUME(k < WARP_SIZE); - - const int kbx = k / QI8_0; - const int kqsx = k % QI8_0; - float * x_dmf = (float *) x_dm; - - const block_q8_0 * bx0 = (const block_q8_0 *) vx; - -#pragma unroll - for (int i0 = 0; i0 < mmq_y; i0 += nwarps) { - int i = i0 + i_offset; - - if (need_check) { - i = sycl::min(i, i_max); - } - - const block_q8_0 * bxi = bx0 + i*blocks_per_row + kbx; - - x_ql[i * (WARP_SIZE + 1) + k] = get_int_from_int8(bxi->qs, kqsx); - } - - const int blocks_per_tile_x_row = WARP_SIZE / QI8_0; - const int kbxd = k % blocks_per_tile_x_row; - -#pragma unroll - for (int i0 = 0; i0 < mmq_y; i0 += nwarps * QI8_0) { - int i = i0 + i_offset * QI8_0 + k / blocks_per_tile_x_row; - - if (need_check) { - i = sycl::min(i, i_max); - } - - const block_q8_0 * bxi = bx0 + i*blocks_per_row + kbxd; - - x_dmf[i * (WARP_SIZE/QI8_0) + i / QI8_0 + kbxd] = bxi->d; - } -} - -static __dpct_inline__ float vec_dot_q8_0_q8_1_mul_mat( - const int *__restrict__ x_ql, const sycl::half2 *__restrict__ x_dm, - const int *__restrict__ x_qh, const int *__restrict__ x_sc, - const int *__restrict__ y_qs, const sycl::half2 *__restrict__ y_ds, - const int &i, const int &j, const int &k) { - (void)x_qh; (void)x_sc; - - const float * x_dmf = (const float *) x_dm; - const float * y_df = (const float *) y_ds; - - return vec_dot_q8_0_q8_1_impl - (&x_ql[i * (WARP_SIZE + 1) + k], &y_qs[j * WARP_SIZE + k], x_dmf[i * (WARP_SIZE/QI8_0) + i/QI8_0 + k/QI8_0], - y_df[j * (WARP_SIZE/QI8_1) + k/QI8_1]); -} - -static __dpct_inline__ float -vec_dot_q2_K_q8_1(const void *__restrict__ vbq, - const block_q8_1 *__restrict__ bq8_1, const int &iqs) { - - const block_q2_K * bq2_K = (const block_q2_K *) vbq; - - const int bq8_offset = QR2_K * (iqs / QI8_1); - const int scale_offset = iqs - iqs % QI8_1 + (iqs % QI8_1) / (QI8_1/2); - - const uint8_t * scales = bq2_K->scales + scale_offset; - - const int v = get_int_from_uint8_aligned(bq2_K->qs, iqs); - int u[QR2_K]; - float d8[QR2_K]; - -#pragma unroll - for (int i = 0; i < QR2_K; ++ i) { - u[i] = get_int_from_int8_aligned(bq8_1[bq8_offset + i].qs, iqs % QI8_1); - d8[i] = bq8_1[bq8_offset + i].ds[0]; - } - - return vec_dot_q2_K_q8_1_impl_mmvq(v, u, scales, bq2_K->dm, d8); -} - -template -static __dpct_inline__ void -allocate_tiles_q2_K(int **x_ql, sycl::half2 **x_dm, int **x_qh, int **x_sc, - int *tile_x_ql_q2_K, sycl::half2 *tile_x_dm_q2_K, - int *tile_x_sc_q2_K) { - (void)x_qh; - - *x_ql = tile_x_ql_q2_K; - *x_dm = tile_x_dm_q2_K; - *x_sc = tile_x_sc_q2_K; -} - -template -static __dpct_inline__ void -load_tiles_q2_K(const void *__restrict__ vx, int *__restrict__ x_ql, - sycl::half2 *__restrict__ x_dm, int *__restrict__ x_qh, - int *__restrict__ x_sc, const int &i_offset, const int &i_max, - const int &k, const int &blocks_per_row) { - (void)x_qh; - - GGML_SYCL_ASSUME(i_offset >= 0); - GGML_SYCL_ASSUME(i_offset < nwarps); - GGML_SYCL_ASSUME(k >= 0); - GGML_SYCL_ASSUME(k < WARP_SIZE); - - const int kbx = k / QI2_K; - const int kqsx = k % QI2_K; - - const block_q2_K * bx0 = (const block_q2_K *) vx; - -#pragma unroll - for (int i0 = 0; i0 < mmq_y; i0 += nwarps) { - int i = i0 + i_offset; - - if (need_check) { - i = sycl::min(i, i_max); - } - - const block_q2_K * bxi = bx0 + i*blocks_per_row + kbx; - - x_ql[i * (WARP_SIZE + 1) + k] = get_int_from_uint8_aligned(bxi->qs, kqsx); - } - - const int blocks_per_tile_x_row = WARP_SIZE / QI2_K; - const int kbxd = k % blocks_per_tile_x_row; - -#pragma unroll - for (int i0 = 0; i0 < mmq_y; i0 += nwarps * QI2_K) { - int i = (i0 + i_offset * QI2_K + k / blocks_per_tile_x_row) % mmq_y; - - if (need_check) { - i = sycl::min(i, i_max); - } - - const block_q2_K * bxi = bx0 + i*blocks_per_row + kbxd; - - x_dm[i * (WARP_SIZE/QI2_K) + i / QI2_K + kbxd] = bxi->dm; - } - -#pragma unroll - for (int i0 = 0; i0 < mmq_y; i0 += nwarps * 4) { - int i = i0 + i_offset * 4 + k / (WARP_SIZE/4); - - if (need_check) { - i = sycl::min(i, i_max); - } - - const block_q2_K * bxi = bx0 + i*blocks_per_row + (k % (WARP_SIZE/4)) / (QI2_K/4); - - x_sc[i * (WARP_SIZE/4) + i / 4 + k % (WARP_SIZE/4)] = get_int_from_uint8_aligned(bxi->scales, k % (QI2_K/4)); - } -} - -static __dpct_inline__ float vec_dot_q2_K_q8_1_mul_mat( - const int *__restrict__ x_ql, const sycl::half2 *__restrict__ x_dm, - const int *__restrict__ x_qh, const int *__restrict__ x_sc, - const int *__restrict__ y_qs, const sycl::half2 *__restrict__ y_ds, - const int &i, const int &j, const int &k) { - (void)x_qh; - - const int kbx = k / QI2_K; - const int ky = (k % QI2_K) * QR2_K; - const float * y_df = (const float *) y_ds; - - int v[QR2_K*VDR_Q2_K_Q8_1_MMQ]; - - const int kqsx = i * (WARP_SIZE + 1) + kbx*QI2_K + (QI2_K/2) * (ky/(2*QI2_K)) + ky % (QI2_K/2); - const int shift = 2 * ((ky % (2*QI2_K)) / (QI2_K/2)); - -#pragma unroll - for (int l = 0; l < QR2_K*VDR_Q2_K_Q8_1_MMQ; ++l) { - v[l] = (x_ql[kqsx + l] >> shift) & 0x03030303; - } - - const uint8_t * scales = ((const uint8_t *) &x_sc[i * (WARP_SIZE/4) + i/4 + kbx*4]) + ky/4; - - const int index_y = j * WARP_SIZE + (QR2_K*k) % WARP_SIZE; - return vec_dot_q2_K_q8_1_impl_mmq(v, &y_qs[index_y], scales, x_dm[i * (WARP_SIZE/QI2_K) + i/QI2_K + kbx], y_df[index_y/QI8_1]); -} - -static __dpct_inline__ float -vec_dot_q3_K_q8_1(const void *__restrict__ vbq, - const block_q8_1 *__restrict__ bq8_1, const int &iqs) { - - const block_q3_K * bq3_K = (const block_q3_K *) vbq; - - const int bq8_offset = QR3_K * (iqs / (QI3_K/2)); - const int scale_offset = iqs - iqs % QI8_1 + (iqs % QI8_1) / (QI8_1/2); - - const float d = bq3_K->d; - - const int vl = get_int_from_uint8(bq3_K->qs, iqs); - - // invert the mask with ~ so that a 0/1 results in 4/0 being subtracted - const int vh = ~get_int_from_uint8(bq3_K->hmask, iqs % (QI3_K/2)) >> bq8_offset; - - int u[QR3_K]; - float d8[QR3_K]; - -#pragma unroll - for (int i = 0; i < QR3_K; ++i) { - u[i] = get_int_from_int8_aligned(bq8_1[bq8_offset + i].qs, iqs % QI8_1); - d8[i] = bq8_1[bq8_offset + i].ds[0]; - } - - return vec_dot_q3_K_q8_1_impl_mmvq(vl, vh, u, bq3_K->scales, scale_offset, d, d8); -} - -template -static __dpct_inline__ void -allocate_tiles_q3_K(int **x_ql, sycl::half2 **x_dm, int **x_qh, int **x_sc, - int *tile_x_ql_q3_K, sycl::half2 *tile_x_dm_q3_K, - int *tile_x_qh_q3_K, int *tile_x_sc_q3_K) { - - *x_ql = tile_x_ql_q3_K; - *x_dm = tile_x_dm_q3_K; - *x_qh = tile_x_qh_q3_K; - *x_sc = tile_x_sc_q3_K; -} - -template -static __dpct_inline__ void -load_tiles_q3_K(const void *__restrict__ vx, int *__restrict__ x_ql, - sycl::half2 *__restrict__ x_dm, int *__restrict__ x_qh, - int *__restrict__ x_sc, const int &i_offset, const int &i_max, - const int &k, const int &blocks_per_row) { - - GGML_SYCL_ASSUME(i_offset >= 0); - GGML_SYCL_ASSUME(i_offset < nwarps); - GGML_SYCL_ASSUME(k >= 0); - GGML_SYCL_ASSUME(k < WARP_SIZE); - - const int kbx = k / QI3_K; - const int kqsx = k % QI3_K; - - const block_q3_K * bx0 = (const block_q3_K *) vx; - -#pragma unroll - for (int i0 = 0; i0 < mmq_y; i0 += nwarps) { - int i = i0 + i_offset; - - if (need_check) { - i = sycl::min(i, i_max); - } - - const block_q3_K * bxi = bx0 + i*blocks_per_row + kbx; - - x_ql[i * (WARP_SIZE + 1) + k] = get_int_from_uint8(bxi->qs, kqsx); - } - - const int blocks_per_tile_x_row = WARP_SIZE / QI3_K; - const int kbxd = k % blocks_per_tile_x_row; - float * x_dmf = (float *) x_dm; - -#pragma unroll - for (int i0 = 0; i0 < mmq_y; i0 += nwarps * QI3_K) { - int i = (i0 + i_offset * QI3_K + k / blocks_per_tile_x_row) % mmq_y; - - if (need_check) { - i = sycl::min(i, i_max); - } - - const block_q3_K * bxi = bx0 + i*blocks_per_row + kbxd; - - x_dmf[i * (WARP_SIZE/QI3_K) + i / QI3_K + kbxd] = bxi->d; - } - -#pragma unroll - for (int i0 = 0; i0 < mmq_y; i0 += nwarps * 2) { - int i = i0 + i_offset * 2 + k / (WARP_SIZE/2); - - if (need_check) { - i = sycl::min(i, i_max); - } - - const block_q3_K * bxi = bx0 + i*blocks_per_row + (k % (WARP_SIZE/2)) / (QI3_K/2); - - // invert the mask with ~ so that a 0/1 results in 4/0 being subtracted - x_qh[i * (WARP_SIZE/2) + i / 2 + k % (WARP_SIZE/2)] = ~get_int_from_uint8(bxi->hmask, k % (QI3_K/2)); - } - -#pragma unroll - for (int i0 = 0; i0 < mmq_y; i0 += nwarps * 4) { - int i = i0 + i_offset * 4 + k / (WARP_SIZE/4); - - if (need_check) { - i = sycl::min(i, i_max); - } - - const block_q3_K * bxi = bx0 + i*blocks_per_row + (k % (WARP_SIZE/4)) / (QI3_K/4); - - const int ksc = k % (QI3_K/4); - - const int ksc_low = ksc % (QI3_K/8); - const int shift_low = 4 * (ksc / (QI3_K/8)); - const int sc_low = (get_int_from_uint8(bxi->scales, ksc_low) >> shift_low) & 0x0F0F0F0F; - - const int ksc_high = QI3_K/8; - const int shift_high = 2 * ksc; - const int sc_high = ((get_int_from_uint8(bxi->scales, ksc_high) >> shift_high) << 4) & 0x30303030; - - const int sc = dpct::vectorized_binary( - sc_low | sc_high, 0x20202020, dpct::sub_sat()); - - x_sc[i * (WARP_SIZE/4) + i / 4 + k % (WARP_SIZE/4)] = sc; - } -} - -static __dpct_inline__ float vec_dot_q3_K_q8_1_mul_mat( - const int *__restrict__ x_ql, const sycl::half2 *__restrict__ x_dm, - const int *__restrict__ x_qh, const int *__restrict__ x_sc, - const int *__restrict__ y_qs, const sycl::half2 *__restrict__ y_ds, - const int &i, const int &j, const int &k) { - - const int kbx = k / QI3_K; - const int ky = (k % QI3_K) * QR3_K; - const float * x_dmf = (const float *) x_dm; - const float * y_df = (const float *) y_ds; - - const int8_t * scales = ((const int8_t *) (x_sc + i * (WARP_SIZE/4) + i/4 + kbx*4)) + ky/4; - - int v[QR3_K*VDR_Q3_K_Q8_1_MMQ]; - -#pragma unroll - for (int l = 0; l < QR3_K*VDR_Q3_K_Q8_1_MMQ; ++l) { - const int kqsx = i * (WARP_SIZE + 1) + kbx*QI3_K + (QI3_K/2) * (ky/(2*QI3_K)) + ky % (QI3_K/2); - const int shift = 2 * ((ky % 32) / 8); - const int vll = (x_ql[kqsx + l] >> shift) & 0x03030303; - - const int vh = x_qh[i * (WARP_SIZE/2) + i/2 + kbx * (QI3_K/2) + (ky+l)%8] >> ((ky+l) / 8); - const int vlh = (vh << 2) & 0x04040404; - - v[l] = dpct::vectorized_binary(vll, vlh, dpct::sub_sat()); - } - - const int index_y = j * WARP_SIZE + (k*QR3_K) % WARP_SIZE; - return vec_dot_q3_K_q8_1_impl_mmq(v, &y_qs[index_y], scales, x_dmf[i * (WARP_SIZE/QI3_K) + i/QI3_K + kbx], y_df[index_y/QI8_1]); -} - -static __dpct_inline__ float -vec_dot_q4_K_q8_1(const void *__restrict__ vbq, - const block_q8_1 *__restrict__ bq8_1, const int &iqs) { - - const block_q4_K * bq4_K = (const block_q4_K *) vbq; - - int v[2]; - int u[2*QR4_K]; - float d8[QR4_K]; - - // iqs is in 0,2..30. bq8_offset = iqs/4 -> bq8_offset = 0, 2, 4, 6 - const int bq8_offset = QR4_K * ((iqs/2) / (QI8_1/2)); - - // iqs = 0....3 -> bq8_offset = 0, want q4_offset = 0, 4, 8, 12 - // iqs = 4....7 -> bq8_offset = 2, want q4_offset = 32, 36, 40, 44 - // iqs = 8...11 -> bq8_offset = 4, want q4_offset = 64, 68, 72, 76 - // iqs = 12..15 -> bq8_offset = 6, want q4_offset = 96, 100, 104, 108 - - const int * q4 = (const int *)(bq4_K->qs + 16 * bq8_offset + 4 * ((iqs/2)%4)); - v[0] = q4[0]; - v[1] = q4[4]; - - const uint16_t * scales = (const uint16_t *)bq4_K->scales; - uint16_t aux[2]; - const int j = bq8_offset/2; - if (j < 2) { - aux[0] = scales[j+0] & 0x3f3f; - aux[1] = scales[j+2] & 0x3f3f; - } else { - aux[0] = ((scales[j+2] >> 0) & 0x0f0f) | ((scales[j-2] & 0xc0c0) >> 2); - aux[1] = ((scales[j+2] >> 4) & 0x0f0f) | ((scales[j-0] & 0xc0c0) >> 2); - } - const uint8_t * sc = (const uint8_t *)aux; - const uint8_t * m = sc + 2; - - for (int i = 0; i < QR4_K; ++i) { - const block_q8_1 * bq8i = bq8_1 + bq8_offset + i; - d8[i] = bq8i->ds[0]; - - const int * q8 = (const int *)bq8i->qs + ((iqs/2)%4); - u[2*i+0] = q8[0]; - u[2*i+1] = q8[4]; - } - - return vec_dot_q4_K_q8_1_impl_vmmq(v, u, sc, m, bq4_K->dm, d8); -} - -template -static __dpct_inline__ void -allocate_tiles_q4_K(int **x_ql, sycl::half2 **x_dm, int **x_qh, int **x_sc, - int *tile_x_ql_q4_K, sycl::half2 *tile_x_dm_q4_K, - int *tile_x_sc_q4_K) { - (void)x_qh; - - *x_ql = tile_x_ql_q4_K; - *x_dm = tile_x_dm_q4_K; - *x_sc = tile_x_sc_q4_K; -} - -template -static __dpct_inline__ void -load_tiles_q4_K(const void *__restrict__ vx, int *__restrict__ x_ql, - sycl::half2 *__restrict__ x_dm, int *__restrict__ x_qh, - int *__restrict__ x_sc, const int &i_offset, const int &i_max, - const int &k, const int &blocks_per_row) { - (void)x_qh; - - GGML_SYCL_ASSUME(i_offset >= 0); - GGML_SYCL_ASSUME(i_offset < nwarps); - GGML_SYCL_ASSUME(k >= 0); - GGML_SYCL_ASSUME(k < WARP_SIZE); - - const int kbx = k / QI4_K; // == 0 if QK_K == 256 - const int kqsx = k % QI4_K; // == k if QK_K == 256 - - const block_q4_K * bx0 = (const block_q4_K *) vx; - -#pragma unroll - for (int i0 = 0; i0 < mmq_y; i0 += nwarps) { - int i = i0 + i_offset; - - if (need_check) { - i = sycl::min(i, i_max); - } - - const block_q4_K * bxi = bx0 + i*blocks_per_row + kbx; - - x_ql[i * (WARP_SIZE + 1) + k] = get_int_from_uint8_aligned(bxi->qs, kqsx); - } - - const int blocks_per_tile_x_row = WARP_SIZE / QI4_K; // == 1 if QK_K == 256 - const int kbxd = k % blocks_per_tile_x_row; // == 0 if QK_K == 256 - -#pragma unroll - for (int i0 = 0; i0 < mmq_y; i0 += nwarps * QI4_K) { - int i = (i0 + i_offset * QI4_K + k / blocks_per_tile_x_row) % mmq_y; - - if (need_check) { - i = sycl::min(i, i_max); - } - - const block_q4_K * bxi = bx0 + i*blocks_per_row + kbxd; - - x_dm[i * (WARP_SIZE/QI4_K) + i / QI4_K + kbxd] = bxi->dm; - } - -#pragma unroll - for (int i0 = 0; i0 < mmq_y; i0 += nwarps * 8) { - int i = (i0 + i_offset * 8 + k / (WARP_SIZE/8)) % mmq_y; - - if (need_check) { - i = sycl::min(i, i_max); - } - - const block_q4_K * bxi = bx0 + i*blocks_per_row + (k % (WARP_SIZE/8)) / (QI4_K/8); - - const int * scales = (const int *) bxi->scales; - - const int ksc = k % (WARP_SIZE/8); - - // scale arrangement after the following two lines: sc0,...,sc3, sc4,...,sc7, m0,...,m3, m4,...,m8 - int scales8 = (scales[(ksc%2) + (ksc!=0)] >> (4 * (ksc & (ksc/2)))) & 0x0F0F0F0F; // lower 4 bits - scales8 |= (scales[ksc/2] >> (2 * (ksc % 2))) & 0x30303030; // upper 2 bits - - x_sc[i * (WARP_SIZE/8) + i / 8 + ksc] = scales8; - } -} - -static __dpct_inline__ float vec_dot_q4_K_q8_1_mul_mat( - const int *__restrict__ x_ql, const sycl::half2 *__restrict__ x_dm, - const int *__restrict__ x_qh, const int *__restrict__ x_sc, - const int *__restrict__ y_qs, const sycl::half2 *__restrict__ y_ds, - const int &i, const int &j, const int &k) { - (void)x_qh; - - const uint8_t * sc = ((const uint8_t *) &x_sc[i * (WARP_SIZE/8) + i/8 + k/16]) + 2*((k % 16) / 8); - - const int index_y = j * WARP_SIZE + (QR4_K*k) % WARP_SIZE; - return vec_dot_q4_K_q8_1_impl_mmq(&x_ql[i * (WARP_SIZE + 1) + k], &y_qs[index_y], sc, sc+8, - x_dm[i * (WARP_SIZE/QI4_K) + i/QI4_K], &y_ds[index_y/QI8_1]); -} - -static __dpct_inline__ float -vec_dot_q5_K_q8_1(const void *__restrict__ vbq, - const block_q8_1 *__restrict__ bq8_1, const int &iqs) { - - const block_q5_K * bq5_K = (const block_q5_K *) vbq; - - int vl[2]; - int vh[2]; - int u[2*QR5_K]; - float d8[QR5_K]; - - const int bq8_offset = QR5_K * ((iqs/2) / (QI8_1/2)); - const int * ql = (const int *)(bq5_K->qs + 16 * bq8_offset + 4 * ((iqs/2)%4)); - const int * qh = (const int *)(bq5_K->qh + 4 * ((iqs/2)%4)); - - vl[0] = ql[0]; - vl[1] = ql[4]; - - vh[0] = qh[0] >> bq8_offset; - vh[1] = qh[4] >> bq8_offset; - - const uint16_t * scales = (const uint16_t *)bq5_K->scales; - uint16_t aux[2]; - const int j = bq8_offset/2; - if (j < 2) { - aux[0] = scales[j+0] & 0x3f3f; - aux[1] = scales[j+2] & 0x3f3f; - } else { - aux[0] = ((scales[j+2] >> 0) & 0x0f0f) | ((scales[j-2] & 0xc0c0) >> 2); - aux[1] = ((scales[j+2] >> 4) & 0x0f0f) | ((scales[j-0] & 0xc0c0) >> 2); - } - const uint8_t * sc = (const uint8_t *)aux; - const uint8_t * m = sc + 2; - -#pragma unroll - for (int i = 0; i < QR5_K; ++i) { - const block_q8_1 * bq8i = bq8_1 + bq8_offset + i; - d8[i] = bq8i->ds[0]; - - const int * q8 = (const int *)bq8i->qs + ((iqs/2)%4); - u[2*i+0] = q8[0]; - u[2*i+1] = q8[4]; - } - - return vec_dot_q5_K_q8_1_impl_vmmq(vl, vh, u, sc, m, bq5_K->dm, d8); -} - -template -static __dpct_inline__ void -allocate_tiles_q5_K(int **x_ql, sycl::half2 **x_dm, int **x_qh, int **x_sc, - int *tile_x_ql_q5_K, sycl::half2 *tile_x_dm_q5_K, - int *tile_x_sc_q5_K) { - (void)x_qh; - - *x_ql = tile_x_ql_q5_K; - *x_dm = tile_x_dm_q5_K; - *x_sc = tile_x_sc_q5_K; -} - -template -static __dpct_inline__ void -load_tiles_q5_K(const void *__restrict__ vx, int *__restrict__ x_ql, - sycl::half2 *__restrict__ x_dm, int *__restrict__ x_qh, - int *__restrict__ x_sc, const int &i_offset, const int &i_max, - const int &k, const int &blocks_per_row) { - (void)x_qh; - - GGML_SYCL_ASSUME(i_offset >= 0); - GGML_SYCL_ASSUME(i_offset < nwarps); - GGML_SYCL_ASSUME(k >= 0); - GGML_SYCL_ASSUME(k < WARP_SIZE); - - const int kbx = k / QI5_K; // == 0 if QK_K == 256 - const int kqsx = k % QI5_K; // == k if QK_K == 256 - - const block_q5_K * bx0 = (const block_q5_K *) vx; - -#pragma unroll - for (int i0 = 0; i0 < mmq_y; i0 += nwarps) { - int i = i0 + i_offset; - - if (need_check) { - i = sycl::min(i, i_max); - } - - const block_q5_K * bxi = bx0 + i*blocks_per_row + kbx; - const int ky = QR5_K*kqsx; - - const int ql = get_int_from_uint8_aligned(bxi->qs, kqsx); - const int ql0 = (ql >> 0) & 0x0F0F0F0F; - const int ql1 = (ql >> 4) & 0x0F0F0F0F; - - const int qh = get_int_from_uint8_aligned(bxi->qh, kqsx % (QI5_K/4)); - const int qh0 = ((qh >> (2 * (kqsx / (QI5_K/4)) + 0)) << 4) & 0x10101010; - const int qh1 = ((qh >> (2 * (kqsx / (QI5_K/4)) + 1)) << 4) & 0x10101010; - - const int kq0 = ky - ky % (QI5_K/2) + k % (QI5_K/4) + 0; - const int kq1 = ky - ky % (QI5_K/2) + k % (QI5_K/4) + (QI5_K/4); - - x_ql[i * (2*WARP_SIZE + 1) + kq0] = ql0 | qh0; - x_ql[i * (2*WARP_SIZE + 1) + kq1] = ql1 | qh1; - } - - const int blocks_per_tile_x_row = WARP_SIZE / QI5_K; // == 1 if QK_K == 256 - const int kbxd = k % blocks_per_tile_x_row; // == 0 if QK_K == 256 - -#pragma unroll - for (int i0 = 0; i0 < mmq_y; i0 += nwarps * QI5_K) { - int i = (i0 + i_offset * QI5_K + k / blocks_per_tile_x_row) % mmq_y; - - if (need_check) { - i = sycl::min(i, i_max); - } - - const block_q5_K * bxi = bx0 + i*blocks_per_row + kbxd; - - x_dm[i * (WARP_SIZE/QI5_K) + i / QI5_K + kbxd] = bxi->dm; - } - -#pragma unroll - for (int i0 = 0; i0 < mmq_y; i0 += nwarps * 8) { - int i = (i0 + i_offset * 8 + k / (WARP_SIZE/8)) % mmq_y; - - if (need_check) { - i = sycl::min(i, i_max); - } - - const block_q5_K * bxi = bx0 + i*blocks_per_row + (k % (WARP_SIZE/8)) / (QI5_K/8); - - const int * scales = (const int *) bxi->scales; - - const int ksc = k % (WARP_SIZE/8); - - // scale arrangement after the following two lines: sc0,...,sc3, sc4,...,sc7, m0,...,m3, m4,...,m8 - int scales8 = (scales[(ksc%2) + (ksc!=0)] >> (4 * (ksc & (ksc/2)))) & 0x0F0F0F0F; // lower 4 bits - scales8 |= (scales[ksc/2] >> (2 * (ksc % 2))) & 0x30303030; // upper 2 bits - - x_sc[i * (WARP_SIZE/8) + i / 8 + ksc] = scales8; - } -} - -static __dpct_inline__ float vec_dot_q5_K_q8_1_mul_mat( - const int *__restrict__ x_ql, const sycl::half2 *__restrict__ x_dm, - const int *__restrict__ x_qh, const int *__restrict__ x_sc, - const int *__restrict__ y_qs, const sycl::half2 *__restrict__ y_ds, - const int &i, const int &j, const int &k) { - (void)x_qh; - - const uint8_t * sc = ((const uint8_t *) &x_sc[i * (WARP_SIZE/8) + i/8 + k/16]) + 2 * ((k % 16) / 8); - - const int index_x = i * (QR5_K*WARP_SIZE + 1) + QR5_K*k; - const int index_y = j * WARP_SIZE + (QR5_K*k) % WARP_SIZE; - return vec_dot_q5_K_q8_1_impl_mmq(&x_ql[index_x], &y_qs[index_y], sc, sc+8, - x_dm[i * (WARP_SIZE/QI5_K) + i/QI5_K], &y_ds[index_y/QI8_1]); -} - -static __dpct_inline__ float -vec_dot_q6_K_q8_1(const void *__restrict__ vbq, - const block_q8_1 *__restrict__ bq8_1, const int &iqs) { - - const block_q6_K * bq6_K = (const block_q6_K *) vbq; - - const int bq8_offset = 2 * QR6_K * (iqs / (QI6_K/2)) + (iqs % (QI6_K/2)) / (QI6_K/4); - const int scale_offset = (QI6_K/4) * (iqs / (QI6_K/2)) + (iqs % (QI6_K/2)) / (QI6_K/8); - const int vh_shift = 2 * ((iqs % (QI6_K/2)) / (QI6_K/4)); - - const int vl = get_int_from_uint8(bq6_K->ql, iqs); - const int vh = get_int_from_uint8(bq6_K->qh, (QI6_K/4) * (iqs / (QI6_K/2)) + iqs % (QI6_K/4)) >> vh_shift; - - const int8_t * scales = bq6_K->scales + scale_offset; - - int u[QR6_K]; - float d8[QR6_K]; - -#pragma unroll - for (int i = 0; i < QR6_K; ++i) { - u[i] = get_int_from_int8_aligned(bq8_1[bq8_offset + 2*i].qs, iqs % QI8_1); - d8[i] = bq8_1[bq8_offset + 2 * i].ds[0]; - } - - return vec_dot_q6_K_q8_1_impl_mmvq(vl, vh, u, scales, bq6_K->d, d8); -} - -template -static __dpct_inline__ void -allocate_tiles_q6_K(int **x_ql, sycl::half2 **x_dm, int **x_qh, int **x_sc, - int *tile_x_ql, sycl::half2 *tile_x_dm, int *tile_x_sc) { - (void)x_qh; - - *x_ql = tile_x_ql; - *x_dm = tile_x_dm; - *x_sc = tile_x_sc; -} - -template -static __dpct_inline__ void -load_tiles_q6_K(const void *__restrict__ vx, int *__restrict__ x_ql, - sycl::half2 *__restrict__ x_dm, int *__restrict__ x_qh, - int *__restrict__ x_sc, const int &i_offset, const int &i_max, - const int &k, const int &blocks_per_row) { - (void)x_qh; - - GGML_SYCL_ASSUME(i_offset >= 0); - GGML_SYCL_ASSUME(i_offset < nwarps); - GGML_SYCL_ASSUME(k >= 0); - GGML_SYCL_ASSUME(k < WARP_SIZE); - - const int kbx = k / QI6_K; // == 0 if QK_K == 256 - const int kqsx = k % QI6_K; // == k if QK_K == 256 - - const block_q6_K * bx0 = (const block_q6_K *) vx; - -#pragma unroll - for (int i0 = 0; i0 < mmq_y; i0 += nwarps) { - int i = i0 + i_offset; - - if (need_check) { - i = sycl::min(i, i_max); - } - - const block_q6_K * bxi = bx0 + i*blocks_per_row + kbx; - const int ky = QR6_K*kqsx; - - const int ql = get_int_from_uint8(bxi->ql, kqsx); - const int ql0 = (ql >> 0) & 0x0F0F0F0F; - const int ql1 = (ql >> 4) & 0x0F0F0F0F; - - const int qh = get_int_from_uint8(bxi->qh, (QI6_K/4) * (kqsx / (QI6_K/2)) + kqsx % (QI6_K/4)); - const int qh0 = ((qh >> (2 * ((kqsx % (QI6_K/2)) / (QI6_K/4)))) << 4) & 0x30303030; - const int qh1 = (qh >> (2 * ((kqsx % (QI6_K/2)) / (QI6_K/4)))) & 0x30303030; - - const int kq0 = ky - ky % QI6_K + k % (QI6_K/2) + 0; - const int kq1 = ky - ky % QI6_K + k % (QI6_K/2) + (QI6_K/2); - - x_ql[i * (2 * WARP_SIZE + 1) + kq0] = - dpct::vectorized_binary(ql0 | qh0, 0x20202020, - dpct::sub_sat()); - x_ql[i * (2 * WARP_SIZE + 1) + kq1] = - dpct::vectorized_binary(ql1 | qh1, 0x20202020, - dpct::sub_sat()); - } - - const int blocks_per_tile_x_row = WARP_SIZE / QI6_K; // == 1 if QK_K == 256 - const int kbxd = k % blocks_per_tile_x_row; // == 0 if QK_K == 256 - float * x_dmf = (float *) x_dm; - -#pragma unroll - for (int i0 = 0; i0 < mmq_y; i0 += nwarps * QI6_K) { - int i = (i0 + i_offset * QI6_K + k / blocks_per_tile_x_row) % mmq_y; - - if (need_check) { - i = sycl::min(i, i_max); - } - - const block_q6_K * bxi = bx0 + i*blocks_per_row + kbxd; - - x_dmf[i * (WARP_SIZE/QI6_K) + i / QI6_K + kbxd] = bxi->d; - } - -#pragma unroll - for (int i0 = 0; i0 < mmq_y; i0 += nwarps * 8) { - int i = (i0 + i_offset * 8 + k / (WARP_SIZE/8)) % mmq_y; - - if (need_check) { - i = sycl::min(i, i_max); - } - - const block_q6_K * bxi = bx0 + i*blocks_per_row + (k % (WARP_SIZE/8)) / 4; - - x_sc[i * (WARP_SIZE/8) + i / 8 + k % (WARP_SIZE/8)] = get_int_from_int8(bxi->scales, k % (QI6_K/8)); - } -} - -static __dpct_inline__ float vec_dot_q6_K_q8_1_mul_mat( - const int *__restrict__ x_ql, const sycl::half2 *__restrict__ x_dm, - const int *__restrict__ x_qh, const int *__restrict__ x_sc, - const int *__restrict__ y_qs, const sycl::half2 *__restrict__ y_ds, - const int &i, const int &j, const int &k) { - (void)x_qh; - - const float * x_dmf = (const float *) x_dm; - const float * y_df = (const float *) y_ds; - - const int8_t * sc = ((const int8_t *) &x_sc[i * (WARP_SIZE/8) + i/8 + k/8]); - - const int index_x = i * (QR6_K*WARP_SIZE + 1) + QR6_K*k; - const int index_y = j * WARP_SIZE + (QR6_K*k) % WARP_SIZE; - return vec_dot_q6_K_q8_1_impl_mmq(&x_ql[index_x], &y_qs[index_y], sc, x_dmf[i * (WARP_SIZE/QI6_K) + i/QI6_K], &y_df[index_y/QI8_1]); -} - - -static __dpct_inline__ float -vec_dot_iq2_xxs_q8_1(const void *__restrict__ vbq, - const block_q8_1 *__restrict__ bq8_1, const int &iqs, - const uint64_t *iq2xxs_grid, const uint8_t *ksigns_iq2xs, - const uint8_t *kmask_iq2xs) { - const block_iq2_xxs * bq2 = (const block_iq2_xxs *) vbq; - -#if QR2_XXS == 8 - const int ib32 = iqs; - const uint16_t * q2 = bq2->qs + 4*ib32; - const uint8_t * aux8 = (const uint8_t *)q2; - const int8_t * q8 = bq8_1[ib32].qs; - uint32_t aux32 = q2[2] | (q2[3] << 16); - int sumi = 0; - for (int l = 0; l < 4; ++l) { - const uint8_t * grid = (const uint8_t *)(iq2xxs_grid + aux8[l]); - const uint8_t signs = ksigns_iq2xs[aux32 & 127]; - for (int j = 0; j < 8; ++j) { - sumi += q8[j] * grid[j] * (signs & kmask_iq2xs[j] ? -1 : 1); - } - q8 += 8; - aux32 >>= 7; - } - const float d = (float)bq2->d * (0.5f + aux32) * bq8_1[ib32].ds[0] * 0.25f; - return d * sumi; -#else - // iqs is 0...15 - const int ib32 = iqs/2; - const int il = iqs%2; - const uint16_t * q2 = bq2->qs + 4*ib32; - const uint8_t * aux8 = (const uint8_t *)q2; - const uint8_t * grid1 = (const uint8_t *)(iq2xxs_grid + aux8[2*il+0]); - const uint8_t * grid2 = (const uint8_t *)(iq2xxs_grid + aux8[2*il+1]); - const uint32_t aux32 = q2[2] | (q2[3] << 16); - const float d = (float)bq2->d * (0.5f + (aux32 >> 28)) * bq8_1[ib32].ds[0] * 0.25f; - const uint8_t signs1 = ksigns_iq2xs[(aux32 >> 14*il) & 127]; - const uint8_t signs2 = ksigns_iq2xs[(aux32 >> (14*il + 7)) & 127]; - const int8_t * q8 = bq8_1[ib32].qs + 16*il; - int sumi1 = 0, sumi2 = 0; - for (int j = 0; j < 8; ++j) { - sumi1 += q8[j+0] * grid1[j] * (signs1 & kmask_iq2xs[j] ? -1 : 1); - sumi2 += q8[j+8] * grid2[j] * (signs2 & kmask_iq2xs[j] ? -1 : 1); - } - return d * (sumi1 + sumi2); -#endif -} - -static __dpct_inline__ float -vec_dot_iq2_xs_q8_1(const void *__restrict__ vbq, - const block_q8_1 *__restrict__ bq8_1, const int &iqs, - const uint64_t *iq2xs_grid, const uint64_t *ksigns64) { -#if DPCT_COMPATIBILITY_TEMP >= \ - MIN_CC_DP4A // lowest compute capability for integer intrinsics - const block_iq2_xs * bq2 = (const block_iq2_xs *) vbq; - - const int ib32 = iqs; - const uint16_t * q2 = bq2->qs + 4*ib32; - const int8_t * q8 = bq8_1[ib32].qs; - const uint8_t ls1 = bq2->scales[ib32] & 0xf; - const uint8_t ls2 = bq2->scales[ib32] >> 4; - int sumi1 = 0; - for (int l = 0; l < 2; ++l) { - const uint32_t * grid = (const uint32_t *)(iq2xs_grid + (q2[l] & 511)); - const uint32_t * signs = (const uint32_t *)(ksigns64 + (q2[l] >> 9)); - const int grid_l = dpct::vectorized_binary( - grid[0] ^ signs[0], signs[0], std::minus<>()); - const int grid_h = dpct::vectorized_binary( - grid[1] ^ signs[1], signs[1], std::minus<>()); - sumi1 = dpct::dp4a(grid_l, *((const int *)q8 + 0), sumi1); - sumi1 = dpct::dp4a(grid_h, *((const int *)q8 + 1), sumi1); - q8 += 8; - } - int sumi2 = 0; - for (int l = 2; l < 4; ++l) { - const uint32_t * grid = (const uint32_t *)(iq2xs_grid + (q2[l] & 511)); - const uint32_t * signs = (const uint32_t *)(ksigns64 + (q2[l] >> 9)); - const int grid_l = dpct::vectorized_binary( - grid[0] ^ signs[0], signs[0], std::minus<>()); - const int grid_h = dpct::vectorized_binary( - grid[1] ^ signs[1], signs[1], std::minus<>()); - sumi2 = dpct::dp4a(grid_l, *((const int *)q8 + 0), sumi2); - sumi2 = dpct::dp4a(grid_h, *((const int *)q8 + 1), sumi2); - q8 += 8; - } - const float d = (float)bq2->d * bq8_1[ib32].ds[0] * 0.25f; - return d * ((0.5f + ls1) * sumi1 + (0.5f + ls2) * sumi2); -#else - assert(false); - return 0.f; -#endif -} - -static __dpct_inline__ float -vec_dot_iq2_s_q8_1(const void *__restrict__ vbq, - const block_q8_1 *__restrict__ bq8_1, const int &iqs) { - const block_iq2_s * bq2 = (const block_iq2_s *) vbq; - - const int ib32 = iqs; - const int8_t * q8 = bq8_1[ib32].qs; - const uint8_t * signs = bq2->qs + QK_K/8 + 4*ib32; - const uint8_t ls1 = bq2->scales[ib32] & 0xf; - const uint8_t ls2 = bq2->scales[ib32] >> 4; - int sumi1 = 0; - for (int l = 0; l < 2; ++l) { - const uint32_t * grid = (const uint32_t *)(iq2s_grid + (bq2->qs[4*ib32+l] | ((bq2->qh[ib32] << (8-2*l)) & 0x300))); - const uint32_t signs0 = dpct::vectorized_binary( - ((signs[l] & 0xf) * 0x01010101) & 0x08040201, 0x08040201, - std::equal_to<>()); - const uint32_t signs1 = dpct::vectorized_binary( - ((signs[l] >> 4) * 0x01010101) & 0x08040201, 0x08040201, - std::equal_to<>()); - const int grid_l = dpct::vectorized_binary( - grid[0] ^ signs0, signs0, std::minus<>()); - const int grid_h = dpct::vectorized_binary( - grid[1] ^ signs1, signs1, std::minus<>()); - sumi1 = dpct::dp4a(grid_l, *((const int *)q8 + 0), sumi1); - sumi1 = dpct::dp4a(grid_h, *((const int *)q8 + 1), sumi1); - q8 += 8; - } - int sumi2 = 0; - for (int l = 2; l < 4; ++l) { - const uint32_t * grid = (const uint32_t *)(iq2s_grid + (bq2->qs[4*ib32+l] | ((bq2->qh[ib32] << (8-2*l)) & 0x300))); - const uint32_t signs0 = dpct::vectorized_binary( - ((signs[l] & 0xf) * 0x01010101) & 0x08040201, 0x08040201, - std::equal_to<>()); - const uint32_t signs1 = dpct::vectorized_binary( - ((signs[l] >> 4) * 0x01010101) & 0x08040201, 0x08040201, - std::equal_to<>()); - const int grid_l = dpct::vectorized_binary( - grid[0] ^ signs0, signs0, std::minus<>()); - const int grid_h = dpct::vectorized_binary( - grid[1] ^ signs1, signs1, std::minus<>()); - sumi2 = dpct::dp4a(grid_l, *((const int *)q8 + 0), sumi2); - sumi2 = dpct::dp4a(grid_h, *((const int *)q8 + 1), sumi2); - q8 += 8; - } - const float d = (float)bq2->d * bq8_1[ib32].ds[0] * 0.25f; - return d * ((0.5f + ls1) * sumi1 + (0.5f + ls2) * sumi2); -} - -static __dpct_inline__ float -vec_dot_iq3_xxs_q8_1(const void *__restrict__ vbq, - const block_q8_1 *__restrict__ bq8_1, const int &iqs, - const uint32_t *iq3xxs_grid, const uint64_t *ksigns64) { -#if DPCT_COMPATIBILITY_TEMP >= \ - MIN_CC_DP4A // lowest compute capability for integer intrinsics - const block_iq3_xxs * bq2 = (const block_iq3_xxs *) vbq; - - const int ib32 = iqs; - const uint8_t * q3 = bq2->qs + 8*ib32; - const uint16_t * gas = (const uint16_t *)(bq2->qs + QK_K/4) + 2*ib32; - const int8_t * q8 = bq8_1[ib32].qs; - uint32_t aux32 = gas[0] | (gas[1] << 16); - int sumi = 0; - for (int l = 0; l < 4; ++l) { - const uint32_t * grid1 = iq3xxs_grid + q3[2*l+0]; - const uint32_t * grid2 = iq3xxs_grid + q3[2*l+1]; - const uint32_t * signs = (const uint32_t *)(ksigns64 + (aux32 & 127)); - const int grid_l = dpct::vectorized_binary( - grid1[0] ^ signs[0], signs[0], std::minus<>()); - const int grid_h = dpct::vectorized_binary( - grid2[0] ^ signs[1], signs[1], std::minus<>()); - sumi = dpct::dp4a(grid_l, *((int *)q8 + 0), sumi); - sumi = dpct::dp4a(grid_h, *((int *)q8 + 1), sumi); - q8 += 8; - aux32 >>= 7; - } - const float d = (float)bq2->d * (0.5f + aux32) * bq8_1[ib32].ds[0] * 0.5f; - return d * sumi; -#else - assert(false); - return 0.f; -#endif -} - -static __dpct_inline__ float -vec_dot_iq3_s_q8_1(const void *__restrict__ vbq, - const block_q8_1 *__restrict__ bq8_1, const int &iqs, - const uint32_t *iq3s_grid) { - const block_iq3_s * bq2 = (const block_iq3_s *) vbq; - - const int ib32 = iqs; - const uint8_t * qs = bq2->qs + 8*ib32; - const int8_t * q8 = bq8_1[ib32].qs; - int sumi = 0; - for (int l = 0; l < 4; ++l) { - const uint32_t * grid1 = iq3s_grid + (qs[2*l+0] | ((bq2->qh[ib32] << (8 - 2*l)) & 256)); - const uint32_t * grid2 = iq3s_grid + (qs[2*l+1] | ((bq2->qh[ib32] << (7 - 2*l)) & 256)); - uint32_t signs0 = dpct::vectorized_binary( - ((bq2->signs[4 * ib32 + l] & 0xf) * 0x01010101) & 0x08040201, - 0x08040201, std::equal_to<>()); - uint32_t signs1 = dpct::vectorized_binary( - ((bq2->signs[4 * ib32 + l] >> 4) * 0x01010101) & 0x08040201, - 0x08040201, std::equal_to<>()); - const int grid_l = dpct::vectorized_binary( - grid1[0] ^ signs0, signs0, std::minus<>()); - const int grid_h = dpct::vectorized_binary( - grid2[0] ^ signs1, signs1, std::minus<>()); - sumi = dpct::dp4a(grid_l, *((int *)q8 + 0), sumi); - sumi = dpct::dp4a(grid_h, *((int *)q8 + 1), sumi); - q8 += 8; - } - const float d = - (float)bq2->d * - (1 + 2 * ((bq2->scales[ib32 / 2] >> 4 * (ib32 % 2)) & 0xf)) * - bq8_1[ib32].ds[0]; - return d * sumi; -} - -static __dpct_inline__ float -vec_dot_iq1_s_q8_1(const void *__restrict__ vbq, - const block_q8_1 *__restrict__ bq8_1, const int &iqs, - const uint32_t *iq1s_grid_gpu) { - const block_iq1_s * bq1 = (const block_iq1_s *) vbq; - - const int ib32 = iqs; - int sumi = 0; - const int * q8 = (const int *)bq8_1[ib32].qs; - for (int l = 0; l < 4; ++l) { - const int * grid = (const int *)(iq1s_grid_gpu + (bq1->qs[4*ib32+l] | (((bq1->qh[ib32] >> 3*l) & 7) << 8))); - int grid0 = grid[0] & 0x0f0f0f0f; - int grid1 = (grid[0] >> 4) & 0x0f0f0f0f; - sumi = dpct::dp4a(q8[2 * l + 1], grid1, - dpct::dp4a(q8[2 * l + 0], grid0, sumi)); - } - - const float delta = bq1->qh[ib32] & 0x8000 ? -1-IQ1S_DELTA : -1+IQ1S_DELTA; - const float d1q = (float)bq1->d * (2*((bq1->qh[ib32] >> 12) & 7) + 1); - const float d = d1q * bq8_1[ib32].ds[0]; - const float m = d1q * bq8_1[ib32].ds[1]; - return d * sumi + m * delta; -} - -static __dpct_inline__ float -vec_dot_iq1_m_q8_1(const void *__restrict__ vbq, - const block_q8_1 *__restrict__ bq8_1, const int &iqs) { - const block_iq1_m * bq1 = (const block_iq1_m *) vbq; - - const int ib32 = iqs; - int sumi[2] = {0, 0}; - float sumf[2] = {0.f, 0.f}; - - const int * q8 = (const int *)bq8_1[ib32].qs; - for (int l = 0; l < 4; ++l) { - const int * grid = (const int *)(iq1s_grid_gpu + (bq1->qs[4*ib32+l] | (((bq1->qh[2*ib32+l/2] >> 4*(l%2)) & 7) << 8))); - int grid0 = grid[0] & 0x0f0f0f0f; - int grid1 = (grid[0] >> 4) & 0x0f0f0f0f; - sumi[l / 2] = dpct::dp4a(q8[2 * l + 1], grid1, - dpct::dp4a(q8[2 * l + 0], grid0, sumi[l / 2])); - const float delta = (bq1->qh[2*ib32+l/2] >> 4*(l%2)) & 0x08 ? -1-IQ1M_DELTA : -1+IQ1M_DELTA; - const int sumy = dpct::dp4a(q8[2 * l + 1], 0x01010101, - dpct::dp4a(q8[2 * l + 0], 0x01010101, 0)); - sumf[l/2] += delta*sumy; - } - - iq1m_scale_t scale; - const uint16_t * sc = (const uint16_t *)bq1->scales; - scale.u16 = (sc[0] >> 12) | ((sc[1] >> 8) & 0x00f0) | ((sc[2] >> 4) & 0x0f00) | (sc[3] & 0xf000); - const float d = (float)scale.f16 * bq8_1[ib32].ds[0]; - return d * ((sumi[0] + sumf[0]) * (2*((sc[ib32/2] >> 6*(ib32%2)) & 0x7) + 1) + (sumi[1] + sumf[1]) * (2*((sc[ib32/2] >> (6*(ib32%2)+3)) & 0x7) + 1)); -} - -static __dpct_inline__ void get_int_from_table_16(const uint32_t &q4, - const uint8_t *values, - int &val1, int &val2) { - - uint32_t aux32; const uint8_t * q8 = (const uint8_t *)&aux32; - aux32 = q4 & 0x0f0f0f0f; - uint16_t v1 = values[q8[0]] | (values[q8[1]] << 8); - uint16_t v2 = values[q8[2]] | (values[q8[3]] << 8); - val1 = v1 | (v2 << 16); - aux32 = (q4 >> 4) & 0x0f0f0f0f; - v1 = values[q8[0]] | (values[q8[1]] << 8); - v2 = values[q8[2]] | (values[q8[3]] << 8); - val2 = v1 | (v2 << 16); -} - - -static __dpct_inline__ float -vec_dot_iq4_nl_q8_1(const void *__restrict__ vbq, - const block_q8_1 *__restrict__ bq8_1, const int &iqs) { - - const block_iq4_nl * bq = (const block_iq4_nl *) vbq; - - const uint16_t * q4 = (const uint16_t *)bq->qs + 2*iqs; - const int32_t * q8 = (const int32_t *)bq8_1->qs + iqs; - - const uint8_t * values = (const uint8_t *)kvalues_iq4nl; - - int v1, v2; - int sumi1 = 0, sumi2 = 0; - for (int l = 0; l < VDR_Q4_0_Q8_1_MMVQ; ++l) { - const uint32_t aux = q4[2*l] | (q4[2*l+1] << 16); - get_int_from_table_16(aux, values, v1, v2); - sumi1 = dpct::dp4a(v1, q8[l + 0], sumi1); - sumi2 = dpct::dp4a(v2, q8[l + 4], sumi2); - } - - const float d = (float)bq->d * bq8_1->ds[0]; - return d * (sumi1 + sumi2); -} - - -static __dpct_inline__ float -vec_dot_iq4_xs_q8_1(const void *__restrict__ vbq, - const block_q8_1 *__restrict__ bq8_1, const int &iqs) { - - const block_iq4_xs * bq4 = (const block_iq4_xs *) vbq; - const uint8_t * values = (const uint8_t *)kvalues_iq4nl; - - // iqs is 0...7 - const int ib32 = iqs; - const int32_t * q8 = (const int *)bq8_1[ib32].qs; - const uint32_t * q4 = (const uint32_t *)bq4->qs + 4*ib32; - const int8_t ls = ((bq4->scales_l[ib32/2] >> 4*(ib32%2)) & 0xf) | (((bq4->scales_h >> 2*ib32) & 3) << 4); - const float d = (float)bq4->d * (ls - 32) * bq8_1[ib32].ds[0]; - int v1, v2; - int sumi1 = 0, sumi2 = 0; - for (int j = 0; j < 4; ++j) { - get_int_from_table_16(q4[j], values, v1, v2); - sumi1 = dpct::dp4a(v1, q8[j + 0], sumi1); - sumi2 = dpct::dp4a(v2, q8[j + 4], sumi2); - } - return d * (sumi1 + sumi2); -} - -template -/* -DPCT1110:8: The total declared local variable size in device function mul_mat_q -exceeds 128 bytes and may cause high register pressure. Consult with your -hardware vendor to find the total register size available and adjust the code, -or use smaller sub-group size to avoid high register pressure. -*/ -static __dpct_inline__ void -mul_mat_q(const void *__restrict__ vx, const void *__restrict__ vy, - float *__restrict__ dst, const int ncols_x, const int nrows_x, - const int ncols_y, const int nrows_y, const int nrows_dst, - int *tile_x_ql, sycl::half2 *tile_x_dm, int *tile_x_qh, - int *tile_x_sc, const sycl::nd_item<3> &item_ct1, int *tile_y_qs, - sycl::half2 *tile_y_ds) { - - const block_q_t * x = (const block_q_t *) vx; - const block_q8_1 * y = (const block_q8_1 *) vy; - - const int blocks_per_row_x = ncols_x / qk; - const int blocks_per_col_y = nrows_y / QK8_1; - const int blocks_per_warp = WARP_SIZE / qi; - - const int & ncols_dst = ncols_y; - - const int row_dst_0 = item_ct1.get_group(2) * mmq_y; - const int & row_x_0 = row_dst_0; - - const int col_dst_0 = item_ct1.get_group(1) * mmq_x; - const int & col_y_0 = col_dst_0; - - float sum[mmq_y/WARP_SIZE][mmq_x/nwarps] = {{0.0f}}; - - for (int ib0 = 0; ib0 < blocks_per_row_x; ib0 += blocks_per_warp) { - - load_tiles(x + row_x_0 * blocks_per_row_x + ib0, tile_x_ql, tile_x_dm, - tile_x_qh, tile_x_sc, item_ct1.get_local_id(1), - nrows_x - row_x_0 - 1, item_ct1.get_local_id(2), - blocks_per_row_x); - -#pragma unroll - for (int ir = 0; ir < qr; ++ir) { - const int kqs = ir * WARP_SIZE + item_ct1.get_local_id(2); - const int kbxd = kqs / QI8_1; - -#pragma unroll - for (int i = 0; i < mmq_x; i += nwarps) { - const int col_y_eff = dpct::min( - (unsigned int)(col_y_0 + item_ct1.get_local_id(1) + i), - ncols_y - 1); // to prevent out-of-bounds memory accesses - - const block_q8_1 * by0 = &y[col_y_eff*blocks_per_col_y + ib0 * (qk/QK8_1) + kbxd]; - - const int index_y = (item_ct1.get_local_id(1) + i) * WARP_SIZE + - kqs % WARP_SIZE; - tile_y_qs[index_y] = get_int_from_int8_aligned( - by0->qs, item_ct1.get_local_id(2) % QI8_1); - } - -#pragma unroll - for (int ids0 = 0; ids0 < mmq_x; ids0 += nwarps * QI8_1) { - const int ids = - (ids0 + item_ct1.get_local_id(1) * QI8_1 + - item_ct1.get_local_id(2) / (WARP_SIZE / QI8_1)) % - mmq_x; - const int kby = item_ct1.get_local_id(2) % (WARP_SIZE / QI8_1); - const int col_y_eff = sycl::min(col_y_0 + ids, ncols_y - 1); - - // if the sum is not needed it's faster to transform the scale to f32 ahead of time - const sycl::half2 *dsi_src = - &y[col_y_eff * blocks_per_col_y + ib0 * (qk / QK8_1) + - ir * (WARP_SIZE / QI8_1) + kby] - .ds; - sycl::half2 *dsi_dst = - &tile_y_ds[ids * (WARP_SIZE / QI8_1) + kby]; - if (need_sum) { - *dsi_dst = *dsi_src; - } else { - float * dfi_dst = (float *) dsi_dst; - *dfi_dst = (*dsi_src)[0]; - } - } - - /* - DPCT1118:9: SYCL group functions and algorithms must be encountered - in converged control flow. You may need to adjust the code. - */ - /* - DPCT1065:56: Consider replacing sycl::nd_item::barrier() with - sycl::nd_item::barrier(sycl::access::fence_space::local_space) for - better performance if there is no access to global memory. - */ - item_ct1.barrier(); - -// #pragma unroll // unrolling this loop causes too much register pressure - for (int k = ir*WARP_SIZE/qr; k < (ir+1)*WARP_SIZE/qr; k += vdr) { -#pragma unroll - for (int j = 0; j < mmq_x; j += nwarps) { -#pragma unroll - for (int i = 0; i < mmq_y; i += WARP_SIZE) { - sum[i / WARP_SIZE][j / nwarps] += vec_dot( - tile_x_ql, tile_x_dm, tile_x_qh, tile_x_sc, - tile_y_qs, tile_y_ds, item_ct1.get_local_id(2) + i, - item_ct1.get_local_id(1) + j, k); - } - } - } - - /* - DPCT1118:10: SYCL group functions and algorithms must be encountered - in converged control flow. You may need to adjust the code. - */ - /* - DPCT1065:57: Consider replacing sycl::nd_item::barrier() with - sycl::nd_item::barrier(sycl::access::fence_space::local_space) for - better performance if there is no access to global memory. - */ - item_ct1.barrier(); - } - } - -#pragma unroll - for (int j = 0; j < mmq_x; j += nwarps) { - const int col_dst = col_dst_0 + j + item_ct1.get_local_id(1); - - if (col_dst >= ncols_dst) { - return; - } - -#pragma unroll - for (int i = 0; i < mmq_y; i += WARP_SIZE) { - const int row_dst = row_dst_0 + item_ct1.get_local_id(2) + i; - - if (row_dst >= nrows_dst) { - continue; - } - - dst[col_dst*nrows_dst + row_dst] = sum[i/WARP_SIZE][j/nwarps]; - } - } -} - -#define MMQ_X_Q4_0_RDNA2 64 -#define MMQ_Y_Q4_0_RDNA2 128 -#define NWARPS_Q4_0_RDNA2 8 -#define MMQ_X_Q4_0_RDNA1 64 -#define MMQ_Y_Q4_0_RDNA1 64 -#define NWARPS_Q4_0_RDNA1 8 -#if defined(SYCL_USE_XMX) -#define MMQ_X_Q4_0_AMPERE 4 -#define MMQ_Y_Q4_0_AMPERE 32 -#define NWARPS_Q4_0_AMPERE 4 -#else -#define MMQ_X_Q4_0_AMPERE 64 -#define MMQ_Y_Q4_0_AMPERE 128 -#define NWARPS_Q4_0_AMPERE 4 -#endif -#define MMQ_X_Q4_0_PASCAL 64 -#define MMQ_Y_Q4_0_PASCAL 64 -#define NWARPS_Q4_0_PASCAL 8 - -template static void - mul_mat_q4_0( - const void * __restrict__ vx, const void * __restrict__ vy, float * __restrict__ dst, - const int ncols_x, const int nrows_x, const int ncols_y, const int nrows_y, const int nrows_dst, - const sycl::nd_item<3> &item_ct1, int *tile_x_qs_q4_0, float *tile_x_d_q4_0, - int *tile_y_qs, sycl::half2 *tile_y_ds) { - int * tile_x_ql = nullptr; - sycl::half2 *tile_x_dm = nullptr; - int * tile_x_qh = nullptr; - int * tile_x_sc = nullptr; - -//sycl_todo: change according to hardware - - const int mmq_x = MMQ_X_Q4_0_AMPERE; - const int mmq_y = MMQ_Y_Q4_0_AMPERE; - const int nwarps = NWARPS_Q4_0_AMPERE; - allocate_tiles_q4_0(&tile_x_ql, &tile_x_dm, &tile_x_qh, &tile_x_sc, - tile_x_qs_q4_0, tile_x_d_q4_0); - mul_mat_q, VDR_Q4_0_Q8_1_MMQ, - vec_dot_q4_0_q8_1_mul_mat>( - vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, nrows_dst, tile_x_ql, - tile_x_dm, tile_x_qh, tile_x_sc, item_ct1, tile_y_qs, tile_y_ds); -} - -#define MMQ_X_Q4_1_RDNA2 64 -#define MMQ_Y_Q4_1_RDNA2 128 -#define NWARPS_Q4_1_RDNA2 8 -#define MMQ_X_Q4_1_RDNA1 64 -#define MMQ_Y_Q4_1_RDNA1 64 -#define NWARPS_Q4_1_RDNA1 8 -#if defined(SYCL_USE_XMX) -#define MMQ_X_Q4_1_AMPERE 4 -#define MMQ_Y_Q4_1_AMPERE 32 -#define NWARPS_Q4_1_AMPERE 4 -#else -#define MMQ_X_Q4_1_AMPERE 64 -#define MMQ_Y_Q4_1_AMPERE 128 -#define NWARPS_Q4_1_AMPERE 4 -#endif -#define MMQ_X_Q4_1_PASCAL 64 -#define MMQ_Y_Q4_1_PASCAL 64 -#define NWARPS_Q4_1_PASCAL 8 - -template static void - mul_mat_q4_1( - const void * __restrict__ vx, const void * __restrict__ vy, float * __restrict__ dst, - const int ncols_x, const int nrows_x, const int ncols_y, const int nrows_y, const int nrows_dst, - const sycl::nd_item<3> &item_ct1, int *tile_x_qs_q4_1, - sycl::half2 *tile_x_dm_q4_1, int *tile_y_qs, sycl::half2 *tile_y_ds) { - int * tile_x_ql = nullptr; - sycl::half2 *tile_x_dm = nullptr; - int * tile_x_qh = nullptr; - int * tile_x_sc = nullptr; - -//sycl_todo: change according to hardware - const int mmq_x = MMQ_X_Q4_1_AMPERE; - const int mmq_y = MMQ_Y_Q4_1_AMPERE; - const int nwarps = NWARPS_Q4_1_AMPERE; - allocate_tiles_q4_1(&tile_x_ql, &tile_x_dm, &tile_x_qh, &tile_x_sc, - tile_x_qs_q4_1, tile_x_dm_q4_1); - mul_mat_q, VDR_Q4_1_Q8_1_MMQ, - vec_dot_q4_1_q8_1_mul_mat>( - vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, nrows_dst, tile_x_ql, - tile_x_dm, tile_x_qh, tile_x_sc, item_ct1, tile_y_qs, tile_y_ds); -} - -#define MMQ_X_Q5_0_RDNA2 64 -#define MMQ_Y_Q5_0_RDNA2 128 -#define NWARPS_Q5_0_RDNA2 8 -#define MMQ_X_Q5_0_RDNA1 64 -#define MMQ_Y_Q5_0_RDNA1 64 -#define NWARPS_Q5_0_RDNA1 8 -#if defined(SYCL_USE_XMX) -#define MMQ_X_Q5_0_AMPERE 4 -#define MMQ_Y_Q5_0_AMPERE 32 -#define NWARPS_Q5_0_AMPERE 4 -#else -#define MMQ_X_Q5_0_AMPERE 128 -#define MMQ_Y_Q5_0_AMPERE 64 -#define NWARPS_Q5_0_AMPERE 4 -#endif -#define MMQ_X_Q5_0_PASCAL 64 -#define MMQ_Y_Q5_0_PASCAL 64 -#define NWARPS_Q5_0_PASCAL 8 - -template static void - mul_mat_q5_0( - const void * __restrict__ vx, const void * __restrict__ vy, float * __restrict__ dst, - const int ncols_x, const int nrows_x, const int ncols_y, const int nrows_y, const int nrows_dst, - const sycl::nd_item<3> &item_ct1, int *tile_x_ql_q5_0, float *tile_x_d_q5_0, - int *tile_y_qs, sycl::half2 *tile_y_ds) { - int * tile_x_ql = nullptr; - sycl::half2 *tile_x_dm = nullptr; - int * tile_x_qh = nullptr; - int * tile_x_sc = nullptr; - -//sycl_todo: change according to hardware - const int mmq_x = MMQ_X_Q5_0_AMPERE; - const int mmq_y = MMQ_Y_Q5_0_AMPERE; - const int nwarps = NWARPS_Q5_0_AMPERE; - allocate_tiles_q5_0(&tile_x_ql, &tile_x_dm, &tile_x_qh, &tile_x_sc, - tile_x_ql_q5_0, tile_x_d_q5_0); - mul_mat_q, VDR_Q5_0_Q8_1_MMQ, - vec_dot_q5_0_q8_1_mul_mat>( - vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, nrows_dst, tile_x_ql, - tile_x_dm, tile_x_qh, tile_x_sc, item_ct1, tile_y_qs, tile_y_ds); -} - -#define MMQ_X_Q5_1_RDNA2 64 -#define MMQ_Y_Q5_1_RDNA2 128 -#define NWARPS_Q5_1_RDNA2 8 -#define MMQ_X_Q5_1_RDNA1 64 -#define MMQ_Y_Q5_1_RDNA1 64 -#define NWARPS_Q5_1_RDNA1 8 -#if defined(SYCL_USE_XMX) -#define MMQ_X_Q5_1_AMPERE 4 -#define MMQ_Y_Q5_1_AMPERE 32 -#define NWARPS_Q5_1_AMPERE 4 -#else -#define MMQ_X_Q5_1_AMPERE 128 -#define MMQ_Y_Q5_1_AMPERE 64 -#define NWARPS_Q5_1_AMPERE 4 -#endif -#define MMQ_X_Q5_1_PASCAL 64 -#define MMQ_Y_Q5_1_PASCAL 64 -#define NWARPS_Q5_1_PASCAL 8 - -template static void -mul_mat_q5_1( - const void * __restrict__ vx, const void * __restrict__ vy, float * __restrict__ dst, - const int ncols_x, const int nrows_x, const int ncols_y, const int nrows_y, const int nrows_dst, - const sycl::nd_item<3> &item_ct1, int *tile_x_ql_q5_1, - sycl::half2 *tile_x_dm_q5_1, int *tile_y_qs, sycl::half2 *tile_y_ds) { - int * tile_x_ql = nullptr; - sycl::half2 *tile_x_dm = nullptr; - int * tile_x_qh = nullptr; - int * tile_x_sc = nullptr; - -//sycl_todo: change according to hardware - const int mmq_x = MMQ_X_Q5_1_AMPERE; - const int mmq_y = MMQ_Y_Q5_1_AMPERE; - const int nwarps = NWARPS_Q5_1_AMPERE; - allocate_tiles_q5_1(&tile_x_ql, &tile_x_dm, &tile_x_qh, &tile_x_sc, - tile_x_ql_q5_1, tile_x_dm_q5_1); - mul_mat_q, VDR_Q5_1_Q8_1_MMQ, - vec_dot_q5_1_q8_1_mul_mat>( - vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, nrows_dst, tile_x_ql, - tile_x_dm, tile_x_qh, tile_x_sc, item_ct1, tile_y_qs, tile_y_ds); -} - -#define MMQ_X_Q8_0_RDNA2 64 -#define MMQ_Y_Q8_0_RDNA2 128 -#define NWARPS_Q8_0_RDNA2 8 -#define MMQ_X_Q8_0_RDNA1 64 -#define MMQ_Y_Q8_0_RDNA1 64 -#define NWARPS_Q8_0_RDNA1 8 -#if defined(SYCL_USE_XMX) -#define MMQ_X_Q8_0_AMPERE 4 -#define MMQ_Y_Q8_0_AMPERE 32 -#define NWARPS_Q8_0_AMPERE 4 -#else -#define MMQ_X_Q8_0_AMPERE 128 -#define MMQ_Y_Q8_0_AMPERE 64 -#define NWARPS_Q8_0_AMPERE 4 -#endif -#define MMQ_X_Q8_0_PASCAL 64 -#define MMQ_Y_Q8_0_PASCAL 64 -#define NWARPS_Q8_0_PASCAL 8 - -template static void - mul_mat_q8_0( - const void * __restrict__ vx, const void * __restrict__ vy, float * __restrict__ dst, - const int ncols_x, const int nrows_x, const int ncols_y, const int nrows_y, const int nrows_dst, - const sycl::nd_item<3> &item_ct1, int *tile_x_qs_q8_0, float *tile_x_d_q8_0, - int *tile_y_qs, sycl::half2 *tile_y_ds) { - int * tile_x_ql = nullptr; - sycl::half2 *tile_x_dm = nullptr; - int * tile_x_qh = nullptr; - int * tile_x_sc = nullptr; - -//sycl_todo: change according to hardware - const int mmq_x = MMQ_X_Q8_0_AMPERE; - const int mmq_y = MMQ_Y_Q8_0_AMPERE; - const int nwarps = NWARPS_Q8_0_AMPERE; - allocate_tiles_q8_0(&tile_x_ql, &tile_x_dm, &tile_x_qh, &tile_x_sc, - tile_x_qs_q8_0, tile_x_d_q8_0); - mul_mat_q, VDR_Q8_0_Q8_1_MMQ, - vec_dot_q8_0_q8_1_mul_mat>( - vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, nrows_dst, tile_x_ql, - tile_x_dm, tile_x_qh, tile_x_sc, item_ct1, tile_y_qs, tile_y_ds); -} - -#define MMQ_X_Q2_K_RDNA2 64 -#define MMQ_Y_Q2_K_RDNA2 128 -#define NWARPS_Q2_K_RDNA2 8 -#define MMQ_X_Q2_K_RDNA1 128 -#define MMQ_Y_Q2_K_RDNA1 32 -#define NWARPS_Q2_K_RDNA1 8 -#if defined(SYCL_USE_XMX) -#define MMQ_X_Q2_K_AMPERE 4 -#define MMQ_Y_Q2_K_AMPERE 32 -#define NWARPS_Q2_K_AMPERE 4 -#else -#define MMQ_X_Q2_K_AMPERE 64 -#define MMQ_Y_Q2_K_AMPERE 128 -#define NWARPS_Q2_K_AMPERE 4 -#endif -#define MMQ_X_Q2_K_PASCAL 64 -#define MMQ_Y_Q2_K_PASCAL 64 -#define NWARPS_Q2_K_PASCAL 8 - -template static void -mul_mat_q2_K( - const void * __restrict__ vx, const void * __restrict__ vy, float * __restrict__ dst, - const int ncols_x, const int nrows_x, const int ncols_y, const int nrows_y, const int nrows_dst, - const sycl::nd_item<3> &item_ct1, int *tile_x_ql_q2_K, - sycl::half2 *tile_x_dm_q2_K, int *tile_x_sc_q2_K, int *tile_y_qs, - sycl::half2 *tile_y_ds) { - int * tile_x_ql = nullptr; - sycl::half2 *tile_x_dm = nullptr; - int * tile_x_qh = nullptr; - int * tile_x_sc = nullptr; - -//sycl_todo: change according to hardware - const int mmq_x = MMQ_X_Q2_K_AMPERE; - const int mmq_y = MMQ_Y_Q2_K_AMPERE; - const int nwarps = NWARPS_Q2_K_AMPERE; - allocate_tiles_q2_K(&tile_x_ql, &tile_x_dm, &tile_x_qh, &tile_x_sc, - tile_x_ql_q2_K, tile_x_dm_q2_K, tile_x_sc_q2_K); - mul_mat_q, VDR_Q2_K_Q8_1_MMQ, - vec_dot_q2_K_q8_1_mul_mat>( - vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, nrows_dst, tile_x_ql, - tile_x_dm, tile_x_qh, tile_x_sc, item_ct1, tile_y_qs, tile_y_ds); -} - -#define MMQ_X_Q3_K_RDNA2 128 -#define MMQ_Y_Q3_K_RDNA2 64 -#define NWARPS_Q3_K_RDNA2 8 -#define MMQ_X_Q3_K_RDNA1 32 -#define MMQ_Y_Q3_K_RDNA1 128 -#define NWARPS_Q3_K_RDNA1 8 -#if defined(SYCL_USE_XMX) -#define MMQ_X_Q3_K_AMPERE 4 -#define MMQ_Y_Q3_K_AMPERE 32 -#define NWARPS_Q3_K_AMPERE 4 -#else -#define MMQ_X_Q3_K_AMPERE 128 -#define MMQ_Y_Q3_K_AMPERE 128 -#define NWARPS_Q3_K_AMPERE 4 -#endif -#define MMQ_X_Q3_K_PASCAL 64 -#define MMQ_Y_Q3_K_PASCAL 64 -#define NWARPS_Q3_K_PASCAL 8 - -template static void -mul_mat_q3_K( - const void * __restrict__ vx, const void * __restrict__ vy, float * __restrict__ dst, - const int ncols_x, const int nrows_x, const int ncols_y, const int nrows_y, const int nrows_dst, - const sycl::nd_item<3> &item_ct1, int *tile_x_ql_q3_K, - sycl::half2 *tile_x_dm_q3_K, int *tile_x_qh_q3_K, int *tile_x_sc_q3_K, - int *tile_y_qs, sycl::half2 *tile_y_ds) { - int * tile_x_ql = nullptr; - sycl::half2 *tile_x_dm = nullptr; - int * tile_x_qh = nullptr; - int * tile_x_sc = nullptr; - -//sycl_todo: change according to hardware - const int mmq_x = MMQ_X_Q3_K_AMPERE; - const int mmq_y = MMQ_Y_Q3_K_AMPERE; - const int nwarps = NWARPS_Q3_K_AMPERE; - allocate_tiles_q3_K(&tile_x_ql, &tile_x_dm, &tile_x_qh, &tile_x_sc, - tile_x_ql_q3_K, tile_x_dm_q3_K, tile_x_qh_q3_K, - tile_x_sc_q3_K); - mul_mat_q, VDR_Q3_K_Q8_1_MMQ, - vec_dot_q3_K_q8_1_mul_mat>( - vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, nrows_dst, tile_x_ql, - tile_x_dm, tile_x_qh, tile_x_sc, item_ct1, tile_y_qs, tile_y_ds); -} - -#define MMQ_X_Q4_K_RDNA2 64 -#define MMQ_Y_Q4_K_RDNA2 128 -#define NWARPS_Q4_K_RDNA2 8 -#define MMQ_X_Q4_K_RDNA1 32 -#define MMQ_Y_Q4_K_RDNA1 64 -#define NWARPS_Q4_K_RDNA1 8 -#if defined(SYCL_USE_XMX) -#define MMQ_X_Q4_K_AMPERE 4 -#define MMQ_Y_Q4_K_AMPERE 32 -#define NWARPS_Q4_K_AMPERE 4 -#else -#define MMQ_X_Q4_K_AMPERE 64 -#define MMQ_Y_Q4_K_AMPERE 128 -#define NWARPS_Q4_K_AMPERE 4 -#endif -#define MMQ_X_Q4_K_PASCAL 64 -#define MMQ_Y_Q4_K_PASCAL 64 -#define NWARPS_Q4_K_PASCAL 8 - -template static void - mul_mat_q4_K( - const void * __restrict__ vx, const void * __restrict__ vy, float * __restrict__ dst, - const int ncols_x, const int nrows_x, const int ncols_y, const int nrows_y, const int nrows_dst, - const sycl::nd_item<3> &item_ct1, int *tile_x_ql_q4_K, - sycl::half2 *tile_x_dm_q4_K, int *tile_x_sc_q4_K, int *tile_y_qs, - sycl::half2 *tile_y_ds) { - int * tile_x_ql = nullptr; - sycl::half2 *tile_x_dm = nullptr; - int * tile_x_qh = nullptr; - int * tile_x_sc = nullptr; - -//sycl_todo: change according to hardware - const int mmq_x = MMQ_X_Q4_K_AMPERE; - const int mmq_y = MMQ_Y_Q4_K_AMPERE; - const int nwarps = NWARPS_Q4_K_AMPERE; - allocate_tiles_q4_K(&tile_x_ql, &tile_x_dm, &tile_x_qh, &tile_x_sc, - tile_x_ql_q4_K, tile_x_dm_q4_K, tile_x_sc_q4_K); - mul_mat_q, VDR_Q4_K_Q8_1_MMQ, - vec_dot_q4_K_q8_1_mul_mat>( - vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, nrows_dst, tile_x_ql, - tile_x_dm, tile_x_qh, tile_x_sc, item_ct1, tile_y_qs, tile_y_ds); -} - -#define MMQ_X_Q5_K_RDNA2 64 -#define MMQ_Y_Q5_K_RDNA2 128 -#define NWARPS_Q5_K_RDNA2 8 -#define MMQ_X_Q5_K_RDNA1 32 -#define MMQ_Y_Q5_K_RDNA1 64 -#define NWARPS_Q5_K_RDNA1 8 -#if defined(SYCL_USE_XMX) -#define MMQ_X_Q5_K_AMPERE 4 -#define MMQ_Y_Q5_K_AMPERE 32 -#define NWARPS_Q5_K_AMPERE 4 -#else -#define MMQ_X_Q5_K_AMPERE 64 -#define MMQ_Y_Q5_K_AMPERE 128 -#define NWARPS_Q5_K_AMPERE 4 -#endif -#define MMQ_X_Q5_K_PASCAL 64 -#define MMQ_Y_Q5_K_PASCAL 64 -#define NWARPS_Q5_K_PASCAL 8 - -template static void -mul_mat_q5_K( - const void * __restrict__ vx, const void * __restrict__ vy, float * __restrict__ dst, - const int ncols_x, const int nrows_x, const int ncols_y, const int nrows_y, const int nrows_dst, - const sycl::nd_item<3> &item_ct1, int *tile_x_ql_q5_K, - sycl::half2 *tile_x_dm_q5_K, int *tile_x_sc_q5_K, int *tile_y_qs, - sycl::half2 *tile_y_ds) { - int * tile_x_ql = nullptr; - sycl::half2 *tile_x_dm = nullptr; - int * tile_x_qh = nullptr; - int * tile_x_sc = nullptr; - -//sycl_todo: change according to hardware - const int mmq_x = MMQ_X_Q5_K_AMPERE; - const int mmq_y = MMQ_Y_Q5_K_AMPERE; - const int nwarps = NWARPS_Q5_K_AMPERE; - allocate_tiles_q5_K(&tile_x_ql, &tile_x_dm, &tile_x_qh, &tile_x_sc, - tile_x_ql_q5_K, tile_x_dm_q5_K, tile_x_sc_q5_K); - mul_mat_q, VDR_Q5_K_Q8_1_MMQ, - vec_dot_q5_K_q8_1_mul_mat>( - vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, nrows_dst, tile_x_ql, - tile_x_dm, tile_x_qh, tile_x_sc, item_ct1, tile_y_qs, tile_y_ds); -} - -#define MMQ_X_Q6_K_RDNA2 64 -#define MMQ_Y_Q6_K_RDNA2 128 -#define NWARPS_Q6_K_RDNA2 8 -#define MMQ_X_Q6_K_RDNA1 32 -#define MMQ_Y_Q6_K_RDNA1 64 -#define NWARPS_Q6_K_RDNA1 8 -#if defined(SYCL_USE_XMX) -#define MMQ_X_Q6_K_AMPERE 4 -#define MMQ_Y_Q6_K_AMPERE 32 -#define NWARPS_Q6_K_AMPERE 4 -#else -#define MMQ_X_Q6_K_AMPERE 64 -#define MMQ_Y_Q6_K_AMPERE 64 -#define NWARPS_Q6_K_AMPERE 4 -#endif -#define MMQ_X_Q6_K_PASCAL 64 -#define MMQ_Y_Q6_K_PASCAL 64 -#define NWARPS_Q6_K_PASCAL 8 - -template static void - mul_mat_q6_K( - const void * __restrict__ vx, const void * __restrict__ vy, float * __restrict__ dst, - const int ncols_x, const int nrows_x, const int ncols_y, const int nrows_y, const int nrows_dst, - const sycl::nd_item<3> &item_ct1, int *tile_x_ql, sycl::half2 *tile_x_dm, - int *tile_x_sc, int *tile_y_qs, sycl::half2 *tile_y_ds) { - // int * tile_x_ql = nullptr; - // sycl::half2 *tile_x_dm = nullptr; - int * tile_x_qh = nullptr; - // int * tile_x_sc = nullptr; - -//sycl_todo: change according to hardware - const int mmq_x = MMQ_X_Q6_K_AMPERE; - const int mmq_y = MMQ_Y_Q6_K_AMPERE; - const int nwarps = NWARPS_Q6_K_AMPERE; - allocate_tiles_q6_K(&tile_x_ql, &tile_x_dm, &tile_x_qh, &tile_x_sc, - tile_x_ql, tile_x_dm, tile_x_sc); - mul_mat_q, VDR_Q6_K_Q8_1_MMQ, - vec_dot_q6_K_q8_1_mul_mat>( - vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, nrows_dst, tile_x_ql, - tile_x_dm, tile_x_qh, tile_x_sc, item_ct1, tile_y_qs, tile_y_ds); -} - -template -static void mul_mat_vec_q(const void * __restrict__ vx, const void * __restrict__ vy, float * __restrict__ dst, const int ncols, const int nrows, - const sycl::nd_item<3> &item_ct1) { - const int row = item_ct1.get_group(2) * item_ct1.get_local_range(1) + - item_ct1.get_local_id(1); - - if (row >= nrows) { - return; - } - - const int blocks_per_row = ncols / qk; - const int blocks_per_warp = vdr * WARP_SIZE / qi; - - const int qi_vdr = (qi / vdr); // N_threads processing 1 qk block - - // partial sum for each thread - float tmp = 0.0f; - - const block_q_t * x = (const block_q_t *) vx; - const block_q8_1 * y = (const block_q8_1 *) vy; - - for (int i = item_ct1.get_local_id(2) / qi_vdr; i < blocks_per_row; - i += blocks_per_warp) { - const int ibx = row * blocks_per_row + i; // x block index - - const int iby = i * (qk / QK8_1); // y block index that aligns with ibx - - const int iqs = - vdr * - (item_ct1.get_local_id(2) - - i * qi_vdr); // x block quant index when casting the quants to int - - tmp += vec_dot_q_sycl(&x[ibx], &y[iby], iqs); - } - - // sum up partial sums and write back result -#pragma unroll - for (int mask = 16; mask > 0; mask >>= 1) { - tmp += - dpct::permute_sub_group_by_xor(item_ct1.get_sub_group(), tmp, mask); - } - - if (item_ct1.get_local_id(2) == 0) { - dst[row] = tmp; - } -} - -template -static void mul_mat_vec_q_iq2_xxs_q8_1(const void *__restrict__ vx, - const void *__restrict__ vy, - float *__restrict__ dst, const int ncols, - const int nrows, - const sycl::nd_item<3> &item_ct1) { - const int row = item_ct1.get_group(2) * item_ct1.get_local_range(1) + - item_ct1.get_local_id(1); - - if (row >= nrows) { - return; - } - - const int blocks_per_row = ncols / qk; - const int blocks_per_warp = vdr * WARP_SIZE / qi; - -// partial sum for each thread - float tmp = 0.0f; - - const block_q_t * x = (const block_q_t *) vx; - const block_q8_1 * y = (const block_q8_1 *) vy; - - for (int i = item_ct1.get_local_id(2) / (qi / vdr); i < blocks_per_row; - i += blocks_per_warp) { - const int ibx = row*blocks_per_row + i; // x block index - - const int iby = i * (qk/QK8_1); // y block index that aligns with ibx - - const int iqs = - vdr * - (item_ct1.get_local_id(2) % - (qi / vdr)); // x block quant index when casting the quants to int - - tmp += vec_dot_iq2_xxs_q8_1(&x[ibx], &y[iby], iqs, iq2xxs_grid, ksigns_iq2xs, kmask_iq2xs); - } - - // sum up partial sums and write back result -#pragma unroll - for (int mask = 16; mask > 0; mask >>= 1) { - tmp += - dpct::permute_sub_group_by_xor(item_ct1.get_sub_group(), tmp, mask); - } - - if (item_ct1.get_local_id(2) == 0) { - dst[row] = tmp; - } -} - -template -static void mul_mat_vec_q_iq2_xs_q8_1(const void *__restrict__ vx, - const void *__restrict__ vy, - float *__restrict__ dst, const int ncols, - const int nrows, - const sycl::nd_item<3> &item_ct1) { - const int row = item_ct1.get_group(2) * item_ct1.get_local_range(1) + - item_ct1.get_local_id(1); - - if (row >= nrows) { - return; - } - - const int blocks_per_row = ncols / qk; - const int blocks_per_warp = vdr * WARP_SIZE / qi; - -// partial sum for each thread - float tmp = 0.0f; - - const block_q_t * x = (const block_q_t *) vx; - const block_q8_1 * y = (const block_q8_1 *) vy; - - for (int i = item_ct1.get_local_id(2) / (qi / vdr); i < blocks_per_row; - i += blocks_per_warp) { - const int ibx = row*blocks_per_row + i; // x block index - - const int iby = i * (qk/QK8_1); // y block index that aligns with ibx - - const int iqs = - vdr * - (item_ct1.get_local_id(2) % - (qi / vdr)); // x block quant index when casting the quants to int - - tmp += vec_dot_iq2_xs_q8_1(&x[ibx], &y[iby], iqs, iq2xs_grid, ksigns64); - } - - // sum up partial sums and write back result -#pragma unroll - for (int mask = 16; mask > 0; mask >>= 1) { - tmp += - dpct::permute_sub_group_by_xor(item_ct1.get_sub_group(), tmp, mask); - } - - if (item_ct1.get_local_id(2) == 0) { - dst[row] = tmp; - } -} - -template -static void mul_mat_vec_q_iq2_s_q8_1(const void *__restrict__ vx, - const void *__restrict__ vy, - float *__restrict__ dst, const int ncols, - const int nrows, - const sycl::nd_item<3> &item_ct1) { - const int row = item_ct1.get_group(2) * item_ct1.get_local_range(1) + - item_ct1.get_local_id(1); - - if (row >= nrows) { - return; - } - - const int blocks_per_row = ncols / qk; - const int blocks_per_warp = vdr * WARP_SIZE / qi; - -// partial sum for each thread - float tmp = 0.0f; - - const block_q_t * x = (const block_q_t *) vx; - const block_q8_1 * y = (const block_q8_1 *) vy; - - for (int i = item_ct1.get_local_id(2) / (qi / vdr); i < blocks_per_row; - i += blocks_per_warp) { - const int ibx = row*blocks_per_row + i; // x block index - - const int iby = i * (qk/QK8_1); // y block index that aligns with ibx - - const int iqs = - vdr * - (item_ct1.get_local_id(2) % - (qi / vdr)); // x block quant index when casting the quants to int - - tmp += vec_dot_iq2_s_q8_1(&x[ibx], &y[iby], iqs); - } - - // sum up partial sums and write back result -#pragma unroll - for (int mask = 16; mask > 0; mask >>= 1) { - tmp += - dpct::permute_sub_group_by_xor(item_ct1.get_sub_group(), tmp, mask); - } - - if (item_ct1.get_local_id(2) == 0) { - dst[row] = tmp; - } -} - -template -static void mul_mat_vec_q_iq3_xxs_q8_1(const void *__restrict__ vx, - const void *__restrict__ vy, - float *__restrict__ dst, const int ncols, - const int nrows, - const sycl::nd_item<3> &item_ct1) { - const int row = item_ct1.get_group(2) * item_ct1.get_local_range(1) + - item_ct1.get_local_id(1); - - if (row >= nrows) { - return; - } - - const int blocks_per_row = ncols / qk; - const int blocks_per_warp = vdr * WARP_SIZE / qi; - -// partial sum for each thread - float tmp = 0.0f; - - const block_q_t * x = (const block_q_t *) vx; - const block_q8_1 * y = (const block_q8_1 *) vy; - - for (int i = item_ct1.get_local_id(2) / (qi / vdr); i < blocks_per_row; - i += blocks_per_warp) { - const int ibx = row*blocks_per_row + i; // x block index - - const int iby = i * (qk/QK8_1); // y block index that aligns with ibx - - const int iqs = - vdr * - (item_ct1.get_local_id(2) % - (qi / vdr)); // x block quant index when casting the quants to int - - tmp += vec_dot_iq3_xxs_q8_1(&x[ibx], &y[iby], iqs, iq3xxs_grid, ksigns64); - } - - // sum up partial sums and write back result -#pragma unroll - for (int mask = 16; mask > 0; mask >>= 1) { - tmp += - dpct::permute_sub_group_by_xor(item_ct1.get_sub_group(), tmp, mask); - } - - if (item_ct1.get_local_id(2) == 0) { - dst[row] = tmp; - } -} - -template -static void mul_mat_vec_q_iq3_s_q8_1(const void *__restrict__ vx, - const void *__restrict__ vy, - float *__restrict__ dst, const int ncols, - const int nrows, - const sycl::nd_item<3> &item_ct1) { - const int row = item_ct1.get_group(2) * item_ct1.get_local_range(1) + - item_ct1.get_local_id(1); - - if (row >= nrows) { - return; - } - - const int blocks_per_row = ncols / qk; - const int blocks_per_warp = vdr * WARP_SIZE / qi; - -// partial sum for each thread - float tmp = 0.0f; - - const block_q_t * x = (const block_q_t *) vx; - const block_q8_1 * y = (const block_q8_1 *) vy; - - for (int i = item_ct1.get_local_id(2) / (qi / vdr); i < blocks_per_row; - i += blocks_per_warp) { - const int ibx = row*blocks_per_row + i; // x block index - - const int iby = i * (qk/QK8_1); // y block index that aligns with ibx - - const int iqs = - vdr * - (item_ct1.get_local_id(2) % - (qi / vdr)); // x block quant index when casting the quants to int - - tmp += vec_dot_iq3_s_q8_1(&x[ibx], &y[iby], iqs, iq3s_grid); - } - - // sum up partial sums and write back result -#pragma unroll - for (int mask = 16; mask > 0; mask >>= 1) { - tmp += - dpct::permute_sub_group_by_xor(item_ct1.get_sub_group(), tmp, mask); - } - - if (item_ct1.get_local_id(2) == 0) { - dst[row] = tmp; - } -} - -template -static void mul_mat_vec_q_iq1_s_q8_1(const void *__restrict__ vx, - const void *__restrict__ vy, - float *__restrict__ dst, const int ncols, - const int nrows, - const sycl::nd_item<3> &item_ct1) { - const int row = item_ct1.get_group(2) * item_ct1.get_local_range(1) + - item_ct1.get_local_id(1); - - if (row >= nrows) { - return; - } - - const int blocks_per_row = ncols / qk; - const int blocks_per_warp = vdr * WARP_SIZE / qi; - -// partial sum for each thread - float tmp = 0.0f; - - const block_q_t * x = (const block_q_t *) vx; - const block_q8_1 * y = (const block_q8_1 *) vy; - - for (int i = item_ct1.get_local_id(2) / (qi / vdr); i < blocks_per_row; - i += blocks_per_warp) { - const int ibx = row*blocks_per_row + i; // x block index - - const int iby = i * (qk/QK8_1); // y block index that aligns with ibx - - const int iqs = - vdr * - (item_ct1.get_local_id(2) % - (qi / vdr)); // x block quant index when casting the quants to int - - tmp += vec_dot_iq1_s_q8_1(&x[ibx], &y[iby], iqs, iq1s_grid_gpu); - } - - // sum up partial sums and write back result -#pragma unroll - for (int mask = 16; mask > 0; mask >>= 1) { - tmp += - dpct::permute_sub_group_by_xor(item_ct1.get_sub_group(), tmp, mask); - } - - if (item_ct1.get_local_id(2) == 0) { - dst[row] = tmp; - } -} - -template -static void mul_mat_vec_q_iq1_m_q8_1(const void *__restrict__ vx, - const void *__restrict__ vy, - float *__restrict__ dst, const int ncols, - const int nrows, - const sycl::nd_item<3> &item_ct1) { - const int row = item_ct1.get_group(2) * item_ct1.get_local_range(1) + - item_ct1.get_local_id(1); - - if (row >= nrows) { - return; - } - - const int blocks_per_row = ncols / qk; - const int blocks_per_warp = vdr * WARP_SIZE / qi; - -// partial sum for each thread - float tmp = 0.0f; - - const block_q_t * x = (const block_q_t *) vx; - const block_q8_1 * y = (const block_q8_1 *) vy; - - for (int i = item_ct1.get_local_id(2) / (qi / vdr); i < blocks_per_row; - i += blocks_per_warp) { - const int ibx = row*blocks_per_row + i; // x block index - - const int iby = i * (qk/QK8_1); // y block index that aligns with ibx - - const int iqs = - vdr * - (item_ct1.get_local_id(2) % - (qi / vdr)); // x block quant index when casting the quants to int - - tmp += vec_dot_iq1_m_q8_1(&x[ibx], &y[iby], iqs); - } - - // sum up partial sums and write back result -#pragma unroll - for (int mask = 16; mask > 0; mask >>= 1) { - tmp += - dpct::permute_sub_group_by_xor(item_ct1.get_sub_group(), tmp, mask); - } - - if (item_ct1.get_local_id(2) == 0) { - dst[row] = tmp; - } -} - -template -static void mul_mat_vec_q_iq4_nl_q8_1(const void *__restrict__ vx, - const void *__restrict__ vy, - float *__restrict__ dst, const int ncols, - const int nrows, - const sycl::nd_item<3> &item_ct1) { - const int row = item_ct1.get_group(2) * item_ct1.get_local_range(1) + - item_ct1.get_local_id(1); - - if (row >= nrows) { - return; - } - - const int blocks_per_row = ncols / qk; - const int blocks_per_warp = vdr * WARP_SIZE / qi; - -// partial sum for each thread - float tmp = 0.0f; - - const block_q_t * x = (const block_q_t *) vx; - const block_q8_1 * y = (const block_q8_1 *) vy; - - for (int i = item_ct1.get_local_id(2) / (qi / vdr); i < blocks_per_row; - i += blocks_per_warp) { - const int ibx = row*blocks_per_row + i; // x block index - - const int iby = i * (qk/QK8_1); // y block index that aligns with ibx - - const int iqs = - vdr * - (item_ct1.get_local_id(2) % - (qi / vdr)); // x block quant index when casting the quants to int - - tmp += vec_dot_iq4_nl_q8_1(&x[ibx], &y[iby], iqs); - } - - // sum up partial sums and write back result -#pragma unroll - for (int mask = 16; mask > 0; mask >>= 1) { - tmp += - dpct::permute_sub_group_by_xor(item_ct1.get_sub_group(), tmp, mask); - } - - if (item_ct1.get_local_id(2) == 0) { - dst[row] = tmp; - } -} - - -template -static void mul_mat_vec_q_iq4_xs_q8_1(const void *__restrict__ vx, - const void *__restrict__ vy, - float *__restrict__ dst, const int ncols, - const int nrows, - const sycl::nd_item<3> &item_ct1) { - const int row = item_ct1.get_group(2) * item_ct1.get_local_range(1) + - item_ct1.get_local_id(1); - - if (row >= nrows) { - return; - } - - const int blocks_per_row = ncols / qk; - const int blocks_per_warp = vdr * WARP_SIZE / qi; - -// partial sum for each thread - float tmp = 0.0f; - - const block_q_t * x = (const block_q_t *) vx; - const block_q8_1 * y = (const block_q8_1 *) vy; - - for (int i = item_ct1.get_local_id(2) / (qi / vdr); i < blocks_per_row; - i += blocks_per_warp) { - const int ibx = row*blocks_per_row + i; // x block index - - const int iby = i * (qk/QK8_1); // y block index that aligns with ibx - - const int iqs = - vdr * - (item_ct1.get_local_id(2) % - (qi / vdr)); // x block quant index when casting the quants to int - - tmp += vec_dot_iq4_xs_q8_1(&x[ibx], &y[iby], iqs); - } - - // sum up partial sums and write back result -#pragma unroll - for (int mask = 16; mask > 0; mask >>= 1) { - tmp += - dpct::permute_sub_group_by_xor(item_ct1.get_sub_group(), tmp, mask); - } - - if (item_ct1.get_local_id(2) == 0) { - dst[row] = tmp; - } -} - - -template -static void dequantize_mul_mat_vec(const void * __restrict__ vx, const dfloat * __restrict__ y, float * __restrict__ dst, const int ncols, const int nrows, - const sycl::nd_item<3> &item_ct1) { - // qk = quantized weights per x block - // qr = number of quantized weights per data value in x block - const int row = item_ct1.get_group(2) * item_ct1.get_local_range(1) + - item_ct1.get_local_id(1); - - if (row >= nrows) { - return; - } - - const int tid = item_ct1.get_local_id(2); - - const int iter_stride = 2*GGML_SYCL_DMMV_X; - const int vals_per_iter = iter_stride / WARP_SIZE; // num quantized vals per thread and i iter - const int y_offset = qr == 1 ? 1 : qk/2; - -// partial sum for each thread -#ifdef GGML_SYCL_F16 - sycl::half2 tmp = {0.0f, 0.0f}; // two sums for f16 to take advantage of half2 intrinsics -#else - float tmp = 0.0f; -#endif // GGML_SYCL_F16 - - for (int i = 0; i < ncols; i += iter_stride) { - const int col = i + vals_per_iter*tid; - const int ib = (row*ncols + col)/qk; // x block index - const int iqs = (col%qk)/qr; // x quant index - const int iybs = col - col%qk; // y block start index - -// processing >2 values per i iter is faster for fast GPUs -#pragma unroll - for (int j = 0; j < vals_per_iter; j += 2) { - // process 2 vals per j iter - - // dequantize - // for qr = 2 the iqs needs to increase by 1 per j iter because 2 weights per data val - dfloat2 v; - dequantize_kernel(vx, ib, iqs + j/qr, v); - - // matrix multiplication - // for qr = 2 the y index needs to increase by 1 per j iter because of y_offset = qk/2 -#ifdef GGML_SYCL_F16 - dfloat2 t1{y[iybs + iqs + j / qr + 0], - y[iybs + iqs + j / qr + y_offset]}; - - tmp += v * t1; -#else - tmp += v.x() * y[iybs + iqs + j / qr + 0]; - tmp += v.y() * y[iybs + iqs + j / qr + y_offset]; -#endif // GGML_SYCL_F16 - } - } - - // sum up partial sums and write back result -#pragma unroll - for (int mask = 16; mask > 0; mask >>= 1) { - tmp += - dpct::permute_sub_group_by_xor(item_ct1.get_sub_group(), tmp, mask); - } - - if (tid == 0) { -#ifdef GGML_SYCL_F16 - dst[row] = tmp.x() + tmp.y(); -#else - dst[row] = tmp; -#endif // GGML_SYCL_F16 - } -} - -static void mul_mat_p021_f16_f32( - const void * __restrict__ vx, const float * __restrict__ y, float * __restrict__ dst, - const int ncols_x, const int nrows_x, const int nchannels_x, const int nchannels_y, - const sycl::nd_item<3> &item_ct1) { - - const sycl::half *x = (const sycl::half *)vx; - - const int row_x = item_ct1.get_local_range(1) * item_ct1.get_group(1) + - item_ct1.get_local_id(1); - const int channel = item_ct1.get_local_range(0) * item_ct1.get_group(0) + - item_ct1.get_local_id(0); - const int channel_x = channel / (nchannels_y / nchannels_x); - - const int nrows_y = ncols_x; - const int nrows_dst = nrows_x; - const int row_dst = row_x; - - float tmp = 0.0f; - - for (int col_x0 = 0; col_x0 < ncols_x; - col_x0 += item_ct1.get_local_range(2)) { - const int col_x = col_x0 + item_ct1.get_local_id(2); - - if (col_x >= ncols_x) { - break; - } - - // x is transposed and permuted - const int ix = row_x*nchannels_x*ncols_x + channel_x*ncols_x + col_x; - const float xi = - sycl::vec(x[ix]) - .convert()[0]; - - const int row_y = col_x; - - - // y is not transposed but permuted - const int iy = channel*nrows_y + row_y; - - tmp += xi * y[iy]; - } - - // dst is not transposed and not permuted - const int idst = channel*nrows_dst + row_dst; - - // sum up partial sums and write back result -#pragma unroll - for (int mask = 16; mask > 0; mask >>= 1) { - tmp += - dpct::permute_sub_group_by_xor(item_ct1.get_sub_group(), tmp, mask); - } - - if (item_ct1.get_local_id(2) == 0) { - dst[idst] = tmp; - } -} - -static void mul_mat_vec_nc_f16_f32( // nc == non-contiguous - const void * __restrict__ vx, const float * __restrict__ y, float * __restrict__ dst, const int ncols_x, const int nrows_x, - const int row_stride_x, const int channel_stride_x, const int channel_x_divisor, - const sycl::nd_item<3> &item_ct1) { - - const sycl::half *x = (const sycl::half *)vx; - - const int row_x = item_ct1.get_local_range(1) * item_ct1.get_group(1) + - item_ct1.get_local_id(1); - const int channel = item_ct1.get_local_range(0) * item_ct1.get_group(0) + - item_ct1.get_local_id(0); - const int channel_x = channel / channel_x_divisor; - - const int nrows_y = ncols_x; - const int nrows_dst = nrows_x; - const int row_dst = row_x; - - const int idst = channel*nrows_dst + row_dst; - - float tmp = 0.0f; - - for (int col_x0 = 0; col_x0 < ncols_x; - col_x0 += item_ct1.get_local_range(2)) { - const int col_x = col_x0 + item_ct1.get_local_id(2); - - if (col_x >= ncols_x) { - break; - } - - const int row_y = col_x; - - const int ix = channel_x*channel_stride_x + row_x*row_stride_x + col_x; - const int iy = channel*nrows_y + row_y; - - const float xi = - sycl::vec(x[ix]) - .convert()[0]; - - tmp += xi * y[iy]; - } - - // sum up partial sums and write back result -#pragma unroll - for (int mask = 16; mask > 0; mask >>= 1) { - tmp += - dpct::permute_sub_group_by_xor(item_ct1.get_sub_group(), tmp, mask); - } - - if (item_ct1.get_local_id(2) == 0) { - dst[idst] = tmp; - } -} - -static void cpy_1_f32_f32(const char * cxi, char * cdsti) { - const float * xi = (const float *) cxi; - float * dsti = (float *) cdsti; - - *dsti = *xi; -} - -static void cpy_1_f32_f16(const char * cxi, char * cdsti) { - const float * xi = (const float *) cxi; - sycl::half *dsti = (sycl::half *)cdsti; - - *dsti = sycl::vec(*xi) - .convert()[0]; -} - -static void cpy_1_f16_f16(const char * cxi, char * cdsti) { - const sycl::half *xi = (const sycl::half *)cxi; - sycl::half *dsti = (sycl::half *)cdsti; - - *dsti = *xi; -} - -static void cpy_1_f16_f32(const char * cxi, char * cdsti) { - const sycl::half *xi = (const sycl::half *)cxi; - float * dsti = (float *) cdsti; - - *dsti = *xi; -} - -static void cpy_1_i16_i16(const char * cxi, char * cdsti) { - const int16_t *xi = (const int16_t *)cxi; - int16_t *dsti = (int16_t *)cdsti; - - *dsti = *xi; -} - -static void cpy_1_i32_i32(const char * cxi, char * cdsti) { - const int32_t *xi = (const int32_t *)cxi; - int32_t *dsti = (int32_t *)cdsti; - - *dsti = *xi; -} - -template -static void cpy_f32_f16(const char * cx, char * cdst, const int ne, - const int ne00, const int ne01, const int ne02, const int nb00, const int nb01, const int nb02, - const int nb03, const int ne10, const int ne11, const int ne12, const int nb10, const int nb11, - const int nb12, const int nb13, const sycl::nd_item<3> &item_ct1) { - const int i = item_ct1.get_local_range(2) * item_ct1.get_group(2) + - item_ct1.get_local_id(2); - - if (i >= ne) { - return; - } - - // determine indices i02/i12, i01/i11, i00/i10 as a function of index i of flattened tensor - // then combine those indices with the corresponding byte offsets to get the total offsets - const int i03 = i/(ne00 * ne01 * ne02); - const int i02 = (i - i03*ne00*ne01*ne02 )/ (ne00*ne01); - const int i01 = (i - i03*ne00*ne01*ne02 - i02*ne01*ne00) / ne00; - const int i00 = i - i03*ne00*ne01*ne02 - i02*ne01*ne00 - i01*ne00; - const int x_offset = i00*nb00 + i01*nb01 + i02*nb02 + i03 * nb03; - - const int i13 = i/(ne10 * ne11 * ne12); - const int i12 = (i - i13*ne10*ne11*ne12) / (ne10*ne11); - const int i11 = (i - i13*ne10*ne11*ne12 - i12*ne10*ne11) / ne10; - const int i10 = i - i13*ne10*ne11*ne12 - i12*ne10*ne11 - i11*ne10; - const int dst_offset = i10*nb10 + i11*nb11 + i12*nb12 + i13 * nb13; - - cpy_1(cx + x_offset, cdst + dst_offset); -} - -static void cpy_blck_f32_q8_0(const char * cxi, char * cdsti) { - const float * xi = (const float *) cxi; - block_q8_0 * dsti = (block_q8_0 *) cdsti; - - float amax = 0.0f; // absolute max - - for (int j = 0; j < QK8_0; j++) { - const float v = xi[j]; - amax = sycl::fmax(amax, sycl::fabs((float)v)); - } - - const float d = amax / ((1 << 7) - 1); - const float id = d ? 1.0f/d : 0.0f; - - dsti->d = d; - - for (int j = 0; j < QK8_0; ++j) { - const float x0 = xi[j]*id; - - dsti->qs[j] = sycl::round((float)x0); - } -} - -static void cpy_blck_f32_q4_0(const char * cxi, char * cdsti) { - const float * xi = (const float *) cxi; - block_q4_0 * dsti = (block_q4_0 *) cdsti; - - float amax = 0.0f; - float vmax = 0.0f; - - for (int j = 0; j < QK4_0; ++j) { - const float v = xi[j]; - if (amax < sycl::fabs((float)v)) { - amax = sycl::fabs((float)v); - vmax = v; - } - } - - const float d = vmax / -8; - const float id = d ? 1.0f/d : 0.0f; - - dsti->d = d; - - for (int j = 0; j < QK4_0/2; ++j) { - const float x0 = xi[0 + j]*id; - const float x1 = xi[QK4_0/2 + j]*id; - - const uint8_t xi0 = dpct::min(15, (int8_t)(x0 + 8.5f)); - const uint8_t xi1 = dpct::min(15, (int8_t)(x1 + 8.5f)); - - dsti->qs[j] = xi0; - dsti->qs[j] |= xi1 << 4; - } -} - -static void cpy_blck_f32_q4_1(const char * cxi, char * cdsti) { - const float * xi = (const float *) cxi; - block_q4_1 * dsti = (block_q4_1 *) cdsti; - - float vmin = FLT_MAX; - float vmax = -FLT_MAX; - - for (int j = 0; j < QK4_1; ++j) { - const float v = xi[j]; - - if (v < vmin) vmin = v; - if (v > vmax) vmax = v; - } - - const float d = (vmax - vmin) / ((1 << 4) - 1); - const float id = d ? 1.0f/d : 0.0f; - - dsti->dm.x() = d; - dsti->dm.y() = vmin; - - for (int j = 0; j < QK4_1/2; ++j) { - const float x0 = (xi[0 + j] - vmin)*id; - const float x1 = (xi[QK4_1/2 + j] - vmin)*id; - - const uint8_t xi0 = dpct::min(15, (int8_t)(x0 + 0.5f)); - const uint8_t xi1 = dpct::min(15, (int8_t)(x1 + 0.5f)); - - dsti->qs[j] = xi0; - dsti->qs[j] |= xi1 << 4; - } -} - -template -static void cpy_f32_q(const char * cx, char * cdst, const int ne, - const int ne00, const int ne01, const int ne02, const int nb00, const int nb01, const int nb02, - const int nb03, const int ne10, const int ne11, const int ne12, const int nb10, const int nb11, - const int nb12, const int nb13, const sycl::nd_item<3> &item_ct1) { - const int i = (item_ct1.get_local_range(2) * item_ct1.get_group(2) + - item_ct1.get_local_id(2)) * - qk; - - if (i >= ne) { - return; - } - - const int i03 = i/(ne00 * ne01 * ne02); - const int i02 = (i - i03*ne00*ne01*ne02 )/ (ne00*ne01); - const int i01 = (i - i03*ne00*ne01*ne02 - i02*ne01*ne00) / ne00; - const int i00 = i - i03*ne00*ne01*ne02 - i02*ne01*ne00 - i01*ne00; - const int x_offset = i00*nb00 + i01*nb01 + i02*nb02 + i03 * nb03; - - const int i13 = i/(ne10 * ne11 * ne12); - const int i12 = (i - i13*ne10*ne11*ne12) / (ne10*ne11); - const int i11 = (i - i13*ne10*ne11*ne12 - i12*ne10*ne11) / ne10; - const int i10 = i - i13*ne10*ne11*ne12 - i12*ne10*ne11 - i11*ne10; - const int dst_offset = (i10/qk)*nb10 + i11*nb11 + i12*nb12 + i13*nb13; - - cpy_blck(cx + x_offset, cdst + dst_offset); -} - -static float rope_yarn_ramp(const float low, const float high, const int i0) { - const float y = (i0 / 2 - low) / sycl::max(0.001f, high - low); - return 1.0f - sycl::min(1.0f, sycl::max(0.0f, y)); -} - -struct rope_corr_dims { - float v[4]; -}; - -// YaRN algorithm based on LlamaYaRNScaledRotaryEmbedding.py from https://github.com/jquesnelle/yarn -// MIT licensed. Copyright (c) 2023 Jeffrey Quesnelle and Bowen Peng. -static void rope_yarn( - float theta_extrap, float freq_scale, rope_corr_dims corr_dims, int64_t i0, float ext_factor, float mscale, - float * cos_theta, float * sin_theta -) { - // Get n-d rotational scaling corrected for extrapolation - float theta_interp = freq_scale * theta_extrap; - float theta = theta_interp; - if (ext_factor != 0.0f) { - float ramp_mix = rope_yarn_ramp(corr_dims.v[0], corr_dims.v[1], i0) * ext_factor; - theta = theta_interp * (1 - ramp_mix) + theta_extrap * ramp_mix; - - // Get n-d magnitude scaling corrected for interpolation - mscale *= 1.0f + 0.1f * sycl::log(1.0f / freq_scale); - } - *cos_theta = sycl::cos(theta) * mscale; - *sin_theta = sycl::sin(theta) * mscale; -} - -// rope == RoPE == rotary positional embedding -template -static void rope( - const T * x, T * dst, int ncols, const int32_t * pos, float freq_scale, int p_delta_rows, float freq_base, - float ext_factor, float attn_factor, rope_corr_dims corr_dims -, - const sycl::nd_item<3> &item_ct1) { - const int col = 2 * (item_ct1.get_local_range(1) * item_ct1.get_group(1) + - item_ct1.get_local_id(1)); - - if (col >= ncols) { - return; - } - - const int row = item_ct1.get_local_range(2) * item_ct1.get_group(2) + - item_ct1.get_local_id(2); - const int i = row*ncols + col; - const int i2 = row/p_delta_rows; - - const int p = has_pos ? pos[i2] : 0; - const float theta_base = p * dpct::pow(freq_base, -float(col) / ncols); - - float cos_theta, sin_theta; - rope_yarn(theta_base, freq_scale, corr_dims, col, ext_factor, attn_factor, &cos_theta, &sin_theta); - - const float x0 = x[i + 0]; - const float x1 = x[i + 1]; - - dst[i + 0] = x0*cos_theta - x1*sin_theta; - dst[i + 1] = x0*sin_theta + x1*cos_theta; -} - -template -static void rope_neox( - const T * x, T * dst, int ncols, int n_dims, const int32_t * pos, float freq_scale, int p_delta_rows, - float ext_factor, float attn_factor, rope_corr_dims corr_dims, float theta_scale, float inv_ndims, - const float * freq_factors, const sycl::nd_item<3> &item_ct1) { - const int col = 2 * (item_ct1.get_local_range(1) * item_ct1.get_group(1) + - item_ct1.get_local_id(1)); - - if (col >= ncols) { - return; - } - - const int row = item_ct1.get_local_range(2) * item_ct1.get_group(2) + - item_ct1.get_local_id(2); - const int ib = col / n_dims; - const int ic = col % n_dims; - - if (ib > 0) { - const int i = row*ncols + ib*n_dims + ic; - - dst[i + 0] = x[i + 0]; - dst[i + 1] = x[i + 1]; - - return; - } - - const int i = row*ncols + ib*n_dims + ic/2; - const int i2 = row/p_delta_rows; - - float cur_rot = inv_ndims * ic - ib; - - const int p = has_pos ? pos[i2] : 0; - const float freq_factor = has_freq_facs ? freq_factors[ic/2] : 1.0f; - - const float theta_base = - p * freq_scale * dpct::pow(theta_scale, col / 2.0f)/freq_factor; - - float cos_theta, sin_theta; - rope_yarn(theta_base, freq_scale, corr_dims, cur_rot, ext_factor, attn_factor, &cos_theta, &sin_theta); - - const float x0 = x[i + 0]; - const float x1 = x[i + n_dims/2]; - - dst[i + 0] = x0*cos_theta - x1*sin_theta; - dst[i + n_dims/2] = x0*sin_theta + x1*cos_theta; -} - -static void k_sum_rows_f32(const float * x, float * dst, const int ncols, - const sycl::nd_item<3> &item_ct1) { - const int row = item_ct1.get_group(1); - const int col = item_ct1.get_local_id(2); - - float sum = 0.0f; - for (int i = col; i < ncols; i += item_ct1.get_local_range(2)) { - sum += x[row * ncols + i]; - } - - sum = warp_reduce_sum(sum, item_ct1); - - if (col == 0) { - dst[row] = sum; - } -} - - -template -static inline void ggml_sycl_swap(T & a, T & b) { - T tmp = a; - a = b; - b = tmp; -} - -template -__dpct_inline__ static void -k_argsort_f32_i32(const float *x, int *dst, const int ncols, int ncols_pad, - const sycl::nd_item<3> &item_ct1, uint8_t *dpct_local) { - // bitonic sort - int col = item_ct1.get_local_id(2); - int row = item_ct1.get_group(1); - - if (col >= ncols_pad) { - return; - } - - const float * x_row = x + row * ncols; - auto dst_row = (int *)dpct_local; - - // initialize indices - dst_row[col] = col; - - item_ct1.barrier(sycl::access::fence_space::local_space); - - for (int k = 2; k <= ncols_pad; k *= 2) { - for (int j = k / 2; j > 0; j /= 2) { - int ixj = col ^ j; - if (ixj > col) { - if ((col & k) == 0) { - if (dst_row[col] >= ncols || - (dst_row[ixj] < ncols && (order == GGML_SORT_ORDER_ASC ? - x_row[dst_row[col]] > x_row[dst_row[ixj]] : - x_row[dst_row[col]] < x_row[dst_row[ixj]])) - ) { - ggml_sycl_swap(dst_row[col], dst_row[ixj]); - } - } else { - if (dst_row[ixj] >= ncols || - (dst_row[col] < ncols && (order == GGML_SORT_ORDER_ASC ? - x_row[dst_row[col]] < x_row[dst_row[ixj]] : - x_row[dst_row[col]] > x_row[dst_row[ixj]])) - ) { - ggml_sycl_swap(dst_row[col], dst_row[ixj]); - } - } - } - /* - DPCT1118:1: SYCL group functions and algorithms must be encountered - in converged control flow. You may need to adjust the code. - */ - item_ct1.barrier(sycl::access::fence_space::local_space); - } - } - - // copy the result to dst without the padding - if (col < ncols) { - dst[row * ncols + col] = dst_row[col]; - } -} - - -static void diag_mask_inf_f32(const float * x, float * dst, const int ncols, const int rows_per_channel, const int n_past, - const sycl::nd_item<3> &item_ct1) { - const int col = item_ct1.get_local_range(1) * item_ct1.get_group(1) + - item_ct1.get_local_id(1); - const int row = item_ct1.get_local_range(2) * item_ct1.get_group(2) + - item_ct1.get_local_id(2); - - if (col >= ncols) { - return; - } - - const int i = row*ncols + col; - //dst[i] = col > (n_past + row % rows_per_channel) ? -INFINITY : x[i]; - //dst[i] = x[i] - (col > n_past + row % rows_per_channel) * INT_MAX; // equivalent within rounding error but slightly faster on GPU - dst[i] = x[i] - (col > n_past + row % rows_per_channel) * FLT_MAX; -} - - -template -static void soft_max_f32(const float * x, const float * mask, float * dst, const int ncols_par, - const int nrows_y, const float scale, const float max_bias, const float m0, - const float m1, uint32_t n_head_log2, const sycl::nd_item<3> &item_ct1, float *buf) { - const int ncols = ncols_template == 0 ? ncols_par : ncols_template; - - const int tid = item_ct1.get_local_id(2); - const int rowx = item_ct1.get_group(2); - const int rowy = rowx % nrows_y; // broadcast the mask (y) in the row dimension - - const int block_size = block_size_template == 0 ? item_ct1.get_local_range(2) : block_size_template; - - const int warp_id = item_ct1.get_local_id(2) / WARP_SIZE; - const int lane_id = item_ct1.get_local_id(2) % WARP_SIZE; - - float slope = 1.0f; - - // ALiBi - if (max_bias > 0.0f) { - const uint32_t h = rowx/nrows_y; // head index - - const float base = h < n_head_log2 ? m0 : m1; - const int exp = h < n_head_log2 ? h + 1 : 2*(h - n_head_log2) + 1; - - slope = sycl::pow(base, float(exp)); - } - - float * vals = vals_smem ? buf + WARP_SIZE : dst + rowx*ncols; - float max_val = -INFINITY; - - for (int col0 = 0; col0 < ncols; col0 += block_size) { - const int col = col0 + tid; - - if (ncols_template == 0 && col >= ncols) { - break; - } - - const int ix = rowx*ncols + col; - const int iy = rowy*ncols + col; - - const float val = x[ix]*scale + (mask ? slope*mask[iy] : 0.0f); - - vals[col] = val; - max_val = sycl::max(max_val, val); - } - - // find the max value in the block - max_val = warp_reduce_max(max_val, item_ct1); - if (block_size > WARP_SIZE) { - if (warp_id == 0) { - buf[lane_id] = -INFINITY; - } - item_ct1.barrier(sycl::access::fence_space::local_space); - - if (lane_id == 0) { - buf[warp_id] = max_val; - } - item_ct1.barrier(sycl::access::fence_space::local_space); - - max_val = buf[lane_id]; - max_val = warp_reduce_max(max_val, item_ct1); - } - - float tmp = 0.f; - -#pragma unroll - for (int col0 = 0; col0 < ncols; col0 += block_size) { - const int col = col0 + tid; - if (ncols_template == 0 && col >= ncols) { - break; - } - - const float val = sycl::native::exp(vals[col] - max_val); - tmp += val; - vals[col] = val; - } - - // find the sum of exps in the block - tmp = warp_reduce_sum(tmp, item_ct1); - if (block_size > WARP_SIZE) { - item_ct1.barrier(sycl::access::fence_space::local_space); - if (warp_id == 0) { - buf[lane_id] = 0.f; - } - item_ct1.barrier(sycl::access::fence_space::local_space); - - if (lane_id == 0) { - buf[warp_id] = tmp; - } - item_ct1.barrier(sycl::access::fence_space::local_space); - - tmp = buf[lane_id]; - tmp = warp_reduce_sum(tmp, item_ct1); - } - - const float inv_sum = 1.f / tmp; - -#pragma unroll - for (int col0 = 0; col0 < ncols; col0 += block_size) { - const int col = col0 + tid; - - if (ncols_template == 0 && col >= ncols) { - return; - } - - const int idst = rowx*ncols + col; - dst[idst] = vals[col] * inv_sum; - } -} - -static void scale_f32(const float * x, float * dst, const float scale, const int k, - const sycl::nd_item<3> &item_ct1) { - const int i = item_ct1.get_local_range(2) * item_ct1.get_group(2) + - item_ct1.get_local_id(2); - - if (i >= k) { - return; - } - - dst[i] = scale * x[i]; -} - -static void clamp_f32(const float * x, float * dst, const float min, const float max, const int k, - const sycl::nd_item<3> &item_ct1) { - const int i = item_ct1.get_local_range(2) * item_ct1.get_group(2) + - item_ct1.get_local_id(2); - - if (i >= k) { - return; - } - - dst[i] = x[i] < min ? min : (x[i] > max ? max : x[i]); -} - -template -static void im2col_kernel(const float *x, T *dst, int offset_delta, - int IW, int IH, int OW, int KW, int KH, - int pelements, int CHW, int s0, int s1, int p0, - int p1, int d0, int d1, - const sycl::nd_item<3> &item_ct1) { - const int i = item_ct1.get_local_id(2) + - item_ct1.get_group(2) * item_ct1.get_local_range(2); - if (i >= pelements) { - return; - } - - const int ksize = OW * (KH > 1 ? KW : 1); - const int kx = i / ksize; - const int kd = kx * ksize; - const int ky = (i - kd) / OW; - const int ix = i % OW; - - const int64_t iiw = ix * s0 + kx * d0 - p0; - const int64_t iih = item_ct1.get_group(1) * s1 + ky * d1 - p1; - - const int64_t offset_dst = - (item_ct1.get_group(1) * OW + ix) * CHW + - (item_ct1.get_group(0) * (KW * KH) + ky * KW + kx); - - if (iih < 0 || iih >= IH || iiw < 0 || iiw >= IW) { - dst[offset_dst] = - sycl::vec(0.0f) - .convert()[0]; - } else { - const int64_t offset_src = item_ct1.get_group(0) * offset_delta; - dst[offset_dst] = - sycl::vec(x[offset_src + iih * IW + iiw]) - .convert()[0]; - } -} - -template -static void pool2d_nchw_kernel( - const int ih, const int iw, const int oh, const int ow, - const int kh, const int kw, const int sh, const int sw, - const int ph, const int pw, const int parallel_elements, - const Ti* src, To* dst, const enum ggml_op_pool op, - const sycl::nd_item<3> &item_ct1) { - int idx = item_ct1.get_local_id(2) + - item_ct1.get_group(2) * item_ct1.get_local_range(2); - if (idx >= parallel_elements) { - return; - } - - const int I_HW = ih * iw; - const int O_HW = oh * ow; - const int nc = idx / O_HW; - const int cur_oh = idx % O_HW / ow; - const int cur_ow = idx % O_HW % ow; - const Ti* i_ptr = src + nc * I_HW; - To* o_ptr = dst + nc * O_HW; - const int start_h = cur_oh * sh - ph; - const int bh = sycl::max(0, start_h); - const int eh = sycl::min(ih, start_h + kh); - const int start_w = cur_ow * sw - pw; - const int bw = sycl::max(0, start_w); - const int ew = sycl::min(iw, start_w + kw); - - To res = 0; - - switch (op) { - case GGML_OP_POOL_AVG: res = 0; break; - case GGML_OP_POOL_MAX: res = -FLT_MAX; break; - } - - for (int i = bh; i < eh; i += 1) { - for (int j = bw; j < ew; j += 1) { -#if DPCT_COMPATIBILITY_TEMP >= 350 - /* - DPCT1098:106: The '*' expression is used instead of the __ldg - call. These two expressions do not provide the exact same - functionality. Check the generated code for potential precision - and/or performance issues. - */ - Ti cur = *(i_ptr + i * iw + j); -#else - Ti cur = i_ptr[i * iw + j]; -#endif - switch (op) { - case GGML_OP_POOL_AVG: res += (cur / (kh * kw)); break; - case GGML_OP_POOL_MAX: res = sycl::max(res, (To)cur); break; - } - } - } - o_ptr[cur_oh * ow + cur_ow] = res; -} - -template -static void get_rows_sycl(ggml_backend_sycl_context & ctx, const ggml_tensor *src0, const ggml_tensor *src1, - ggml_tensor *dst, const void *src0_dd, - const int32_t *src1_dd, float *dst_dd, - queue_ptr stream) { - - GGML_TENSOR_BINARY_OP_LOCALS - - const sycl::range<3> block_dims(1, 1, SYCL_GET_ROWS_BLOCK_SIZE); - const int block_num_x = (ne00 + 2*SYCL_GET_ROWS_BLOCK_SIZE - 1) / (2*SYCL_GET_ROWS_BLOCK_SIZE); - const sycl::range<3> block_nums(ne11 * ne12, ne10, block_num_x); - - // strides in elements - //const size_t s0 = nb0 / ggml_element_size(dst); - const size_t s1 = nb1 / ggml_element_size(dst); - const size_t s2 = nb2 / ggml_element_size(dst); - const size_t s3 = nb3 / ggml_element_size(dst); - - const size_t s10 = nb10 / ggml_element_size(src1); - const size_t s11 = nb11 / ggml_element_size(src1); - const size_t s12 = nb12 / ggml_element_size(src1); - //const size_t s13 = nb13 / ggml_element_size(src1); - - GGML_ASSERT(ne00 % 2 == 0); - - stream->parallel_for(sycl::nd_range<3>(block_nums * block_dims, block_dims), - [=](sycl::nd_item<3> item_ct1) { - k_get_rows( - src0_dd, src1_dd, dst_dd, ne00, ne12, s1, s2, - s3, nb01, nb02, nb03, s10, s11, s12, item_ct1); - }); - - (void) dst; -} - -template -static void get_rows_sycl_float(ggml_backend_sycl_context & ctx, const ggml_tensor *src0, - const ggml_tensor *src1, ggml_tensor *dst, - const src0_t *src0_dd, const int32_t *src1_dd, - float *dst_dd, queue_ptr stream) { - - GGML_TENSOR_BINARY_OP_LOCALS - - const sycl::range<3> block_dims(1, 1, SYCL_GET_ROWS_BLOCK_SIZE); - const int block_num_x = (ne00 + SYCL_GET_ROWS_BLOCK_SIZE - 1) / SYCL_GET_ROWS_BLOCK_SIZE; - const sycl::range<3> block_nums(ne11 * ne12, ne10, block_num_x); - - // strides in elements - //const size_t s0 = nb0 / ggml_element_size(dst); - const size_t s1 = nb1 / ggml_element_size(dst); - const size_t s2 = nb2 / ggml_element_size(dst); - const size_t s3 = nb3 / ggml_element_size(dst); - - const size_t s10 = nb10 / ggml_element_size(src1); - const size_t s11 = nb11 / ggml_element_size(src1); - const size_t s12 = nb12 / ggml_element_size(src1); - //const size_t s13 = nb13 / ggml_element_size(src1); - - { - dpct::has_capability_or_fail(stream->get_device(), - {sycl::aspect::fp16}); - - stream->parallel_for( - sycl::nd_range<3>(block_nums * block_dims, block_dims), - [=](sycl::nd_item<3> item_ct1) { - k_get_rows_float(src0_dd, src1_dd, dst_dd, ne00, ne12, s1, s2, - s3, nb01, nb02, nb03, s10, s11, s12, item_ct1); - }); - } - - (void) dst; -} - -template -struct bin_bcast_sycl { - template - void operator()(ggml_backend_sycl_context & ctx, - const struct ggml_tensor *src0, - const struct ggml_tensor *src1, struct ggml_tensor *dst, - const src0_t *src0_dd, const src1_t *src1_dd, dst_t *dst_dd, - queue_ptr stream) { - - GGML_TENSOR_BINARY_OP_LOCALS - - int nr0 = ne10/ne0; - int nr1 = ne11/ne1; - int nr2 = ne12/ne2; - int nr3 = ne13/ne3; - - int nr[4] = { nr0, nr1, nr2, nr3 }; - - // collapse dimensions until first broadcast dimension - int64_t cne0[] = {ne0, ne1, ne2, ne3}; - int64_t cne1[] = {ne10, ne11, ne12, ne13}; - size_t cnb0[] = {nb0, nb1, nb2, nb3}; - size_t cnb1[] = {nb10, nb11, nb12, nb13}; - auto collapse = [](int64_t cne[]) { - cne[0] *= cne[1]; - cne[1] = cne[2]; - cne[2] = cne[3]; - cne[3] = 1; - }; - - auto collapse_nb = [](size_t cnb[], int64_t cne[]) { - cnb[1] *= cne[1]; - cnb[2] *= cne[2]; - cnb[3] *= cne[3]; - }; - - for (int i = 0; i < 4; i++) { - if (nr[i] != 1) { - break; - } - if (i > 0) { - collapse_nb(cnb0, cne0); - collapse_nb(cnb1, cne1); - collapse(cne0); - collapse(cne1); - } - } - { - int64_t ne0 = cne0[0]; - int64_t ne1 = cne0[1]; - int64_t ne2 = cne0[2]; - int64_t ne3 = cne0[3]; - - int64_t ne10 = cne1[0]; - int64_t ne11 = cne1[1]; - int64_t ne12 = cne1[2]; - int64_t ne13 = cne1[3]; - - size_t nb0 = cnb0[0]; - size_t nb1 = cnb0[1]; - size_t nb2 = cnb0[2]; - size_t nb3 = cnb0[3]; - - size_t nb10 = cnb1[0]; - size_t nb11 = cnb1[1]; - size_t nb12 = cnb1[2]; - size_t nb13 = cnb1[3]; - - size_t s0 = nb0 / sizeof(dst_t); - size_t s1 = nb1 / sizeof(dst_t); - size_t s2 = nb2 / sizeof(dst_t); - size_t s3 = nb3 / sizeof(dst_t); - - size_t s10 = nb10 / sizeof(src1_t); - size_t s11 = nb11 / sizeof(src1_t); - size_t s12 = nb12 / sizeof(src1_t); - size_t s13 = nb13 / sizeof(src1_t); - - GGML_ASSERT(s0 == 1); - GGML_ASSERT(s10 == 1); - - const int block_size = 128; - - int64_t hne0 = std::max(ne0/2LL, 1LL); - - sycl::range<3> block_dims(1, 1, 1); - block_dims[2] = std::min(hne0, block_size); - block_dims[1] = std::min( - ne1, block_size / (unsigned int)block_dims[2]); - block_dims[0] = std::min( - std::min( - ne2 * ne3, block_size / (unsigned int)block_dims[2] / - (unsigned int)block_dims[1]), - 64U); - - sycl::range<3> block_nums( - (ne2 * ne3 + block_dims[0] - 1) / block_dims[0], - (ne1 + block_dims[1] - 1) / block_dims[1], - (hne0 + block_dims[2] - 1) / block_dims[2]); - - if (block_nums[0] > 65535) { - // this is the maximum number of blocks in z direction, fallback to 1D grid kernel - int block_num = (ne0*ne1*ne2*ne3 + block_size - 1) / block_size; - { - dpct::has_capability_or_fail(stream->get_device(), - {sycl::aspect::fp16}); - - stream->parallel_for( - sycl::nd_range<3>(sycl::range<3>(1, 1, block_num) * - sycl::range<3>(1, 1, block_size), - sycl::range<3>(1, 1, block_size)), - [=](sycl::nd_item<3> item_ct1) { - k_bin_bcast_unravel( - src0_dd, src1_dd, dst_dd, ne0, ne1, ne2, ne3, - ne10, ne11, ne12, ne13, s1, s2, s3, s11, s12, - s13, item_ct1); - }); - } - } else { - /* - DPCT1049:16: The work-group size passed to the SYCL kernel may - exceed the limit. To get the device limit, query - info::device::max_work_group_size. Adjust the work-group size if - needed. - */ - dpct::has_capability_or_fail(stream->get_device(), - {sycl::aspect::fp16}); - - stream->parallel_for( - sycl::nd_range<3>(block_nums * block_dims, block_dims), - [=](sycl::nd_item<3> item_ct1) { - k_bin_bcast(src0_dd, src1_dd, dst_dd, ne0, ne1, - ne2, ne3, ne10, ne11, ne12, ne13, - s1, s2, s3, s11, s12, s13, - item_ct1); - }); - } - } - } -}; - -static void acc_f32_sycl(const float *x, const float *y, float *dst, - const int n_elements, const int ne10, const int ne11, - const int ne12, const int nb1, const int nb2, - const int offset, queue_ptr stream) { - int num_blocks = (n_elements + SYCL_ACC_BLOCK_SIZE - 1) / SYCL_ACC_BLOCK_SIZE; - stream->parallel_for( - sycl::nd_range<3>(sycl::range<3>(1, 1, num_blocks) * - sycl::range<3>(1, 1, SYCL_ACC_BLOCK_SIZE), - sycl::range<3>(1, 1, SYCL_ACC_BLOCK_SIZE)), - [=](sycl::nd_item<3> item_ct1) { - acc_f32(x, y, dst, n_elements, ne10, ne11, ne12, nb1, nb2, offset, - item_ct1); - }); -} - -static void gelu_f32_sycl(const float *x, float *dst, const int k, - queue_ptr stream) { - const int num_blocks = (k + SYCL_GELU_BLOCK_SIZE - 1) / SYCL_GELU_BLOCK_SIZE; - stream->parallel_for( - sycl::nd_range<3>(sycl::range<3>(1, 1, num_blocks) * - sycl::range<3>(1, 1, SYCL_GELU_BLOCK_SIZE), - sycl::range<3>(1, 1, SYCL_GELU_BLOCK_SIZE)), - [=](sycl::nd_item<3> item_ct1) { - gelu_f32(x, dst, k, item_ct1); - }); -} - -static void silu_f32_sycl(const float *x, float *dst, const int k, - queue_ptr stream) { - const int num_blocks = (k + SYCL_SILU_BLOCK_SIZE - 1) / SYCL_SILU_BLOCK_SIZE; - stream->parallel_for( - sycl::nd_range<3>(sycl::range<3>(1, 1, num_blocks) * - sycl::range<3>(1, 1, SYCL_SILU_BLOCK_SIZE), - sycl::range<3>(1, 1, SYCL_SILU_BLOCK_SIZE)), - [=](sycl::nd_item<3> item_ct1) { - silu_f32(x, dst, k, item_ct1); - }); -} - -static void gelu_quick_f32_sycl(const float *x, float *dst, const int k, - queue_ptr stream) { - const int num_blocks = (k + SYCL_GELU_BLOCK_SIZE - 1) / SYCL_GELU_BLOCK_SIZE; - stream->parallel_for( - sycl::nd_range<3>(sycl::range<3>(1, 1, num_blocks) * - sycl::range<3>(1, 1, SYCL_GELU_BLOCK_SIZE), - sycl::range<3>(1, 1, SYCL_GELU_BLOCK_SIZE)), - [=](sycl::nd_item<3> item_ct1) { - gelu_quick_f32(x, dst, k, item_ct1); - }); -} - -static void tanh_f32_sycl(const float *x, float *dst, const int k, - queue_ptr stream) { - const int num_blocks = (k + SYCL_TANH_BLOCK_SIZE - 1) / SYCL_TANH_BLOCK_SIZE; - stream->parallel_for( - sycl::nd_range<3>(sycl::range<3>(1, 1, num_blocks) * - sycl::range<3>(1, 1, SYCL_TANH_BLOCK_SIZE), - sycl::range<3>(1, 1, SYCL_TANH_BLOCK_SIZE)), - [=](sycl::nd_item<3> item_ct1) { - tanh_f32(x, dst, k, item_ct1); - }); -} - -static void relu_f32_sycl(const float *x, float *dst, const int k, - queue_ptr stream) { - const int num_blocks = (k + SYCL_RELU_BLOCK_SIZE - 1) / SYCL_RELU_BLOCK_SIZE; - stream->parallel_for( - sycl::nd_range<3>(sycl::range<3>(1, 1, num_blocks) * - sycl::range<3>(1, 1, SYCL_RELU_BLOCK_SIZE), - sycl::range<3>(1, 1, SYCL_RELU_BLOCK_SIZE)), - [=](sycl::nd_item<3> item_ct1) { - relu_f32(x, dst, k, item_ct1); - }); -} - -static void hardsigmoid_f32_sycl(const float *x, float *dst, const int k, - queue_ptr stream) { - const int num_blocks = (k + SYCL_HARDSIGMOID_BLOCK_SIZE - 1) / SYCL_HARDSIGMOID_BLOCK_SIZE; - stream->parallel_for( - sycl::nd_range<3>(sycl::range<3>(1, 1, num_blocks) * - sycl::range<3>(1, 1, SYCL_HARDSIGMOID_BLOCK_SIZE), - sycl::range<3>(1, 1, SYCL_HARDSIGMOID_BLOCK_SIZE)), - [=](sycl::nd_item<3> item_ct1) { - hardsigmoid_f32(x, dst, k, item_ct1); - }); -} - -static void hardswish_f32_sycl(const float *x, float *dst, const int k, - queue_ptr stream) { - const int num_blocks = (k + SYCL_HARDSWISH_BLOCK_SIZE - 1) / SYCL_HARDSWISH_BLOCK_SIZE; - stream->parallel_for( - sycl::nd_range<3>(sycl::range<3>(1, 1, num_blocks) * - sycl::range<3>(1, 1, SYCL_HARDSWISH_BLOCK_SIZE), - sycl::range<3>(1, 1, SYCL_HARDSWISH_BLOCK_SIZE)), - [=](sycl::nd_item<3> item_ct1) { - hardswish_f32(x, dst, k, item_ct1); - }); -} - -static void leaky_relu_f32_sycl(const float *x, float *dst, const int k, - const float negative_slope, - queue_ptr stream) { - const int num_blocks = (k + SYCL_RELU_BLOCK_SIZE - 1) / SYCL_RELU_BLOCK_SIZE; - stream->parallel_for( - sycl::nd_range<3>(sycl::range<3>(1, 1, num_blocks) * - sycl::range<3>(1, 1, SYCL_RELU_BLOCK_SIZE), - sycl::range<3>(1, 1, SYCL_RELU_BLOCK_SIZE)), - [=](sycl::nd_item<3> item_ct1) { - leaky_relu_f32(x, dst, k, negative_slope, item_ct1); - }); -} - -static void sqr_f32_sycl(const float *x, float *dst, const int k, - queue_ptr stream) { - const int num_blocks = (k + SYCL_SQR_BLOCK_SIZE - 1) / SYCL_SQR_BLOCK_SIZE; - stream->parallel_for( - sycl::nd_range<3>(sycl::range<3>(1, 1, num_blocks) * - sycl::range<3>(1, 1, SYCL_SQR_BLOCK_SIZE), - sycl::range<3>(1, 1, SYCL_SQR_BLOCK_SIZE)), - [=](sycl::nd_item<3> item_ct1) { - sqr_f32(x, dst, k, item_ct1); - }); -} - -static void norm_f32_sycl(const float *x, float *dst, const int ncols, - const int nrows, const float eps, - queue_ptr stream) { - GGML_ASSERT(ncols % WARP_SIZE == 0); - if (ncols < 1024) { - const sycl::range<3> block_dims(1, 1, WARP_SIZE); - stream->submit([&](sycl::handler &cgh) { - sycl::local_accessor s_sum_acc_ct1( - sycl::range<1>(32), cgh); - - cgh.parallel_for( - sycl::nd_range<3>(sycl::range<3>(1, 1, nrows) * block_dims, - block_dims), - [=](sycl::nd_item<3> item_ct1) - [[intel::reqd_sub_group_size(32)]] { - norm_f32(x, dst, ncols, eps, item_ct1, - s_sum_acc_ct1.get_pointer(), WARP_SIZE); - }); - }); - } else { - // FIXME: 1024 from cuda - const int work_group_size = GROUP_SIZE; - const sycl::range<3> block_dims(1, 1, work_group_size); - /* - DPCT1049:17: The work-group size passed to the SYCL kernel may exceed - the limit. To get the device limit, query - info::device::max_work_group_size. Adjust the work-group size if needed. - */ - stream->submit([&](sycl::handler &cgh) { - sycl::local_accessor s_sum_acc_ct1( - sycl::range<1>(32), cgh); - - cgh.parallel_for( - sycl::nd_range<3>(sycl::range<3>(1, 1, nrows) * block_dims, - block_dims), - [=](sycl::nd_item<3> item_ct1) - [[intel::reqd_sub_group_size(32)]] { - norm_f32(x, dst, ncols, eps, item_ct1, - s_sum_acc_ct1.get_pointer(), work_group_size); - }); - }); - } -} - -static void group_norm_f32_sycl(const float *x, float *dst, - const int num_groups, const int group_size, - const int ne_elements, queue_ptr stream) { - static const float eps = 1e-6f; - if (group_size < 1024) { - const sycl::range<3> block_dims(1, 1, WARP_SIZE); - stream->submit([&](sycl::handler &cgh) { - sycl::local_accessor s_sum_acc_ct1(sycl::range<1>(32), - cgh); - - const float eps_ct4 = eps; - - cgh.parallel_for( - sycl::nd_range<3>(sycl::range<3>(1, 1, num_groups) * block_dims, - block_dims), - [=](sycl::nd_item<3> item_ct1) - [[intel::reqd_sub_group_size(32)]] { - group_norm_f32( - x, dst, group_size, ne_elements, eps_ct4, item_ct1, - s_sum_acc_ct1.get_pointer(), WARP_SIZE); - }); - }); - } else { - const int work_group_size = GROUP_SIZE; - const sycl::range<3> block_dims(1, 1, work_group_size); - /* - DPCT1049:18: The work-group size passed to the SYCL kernel may exceed - the limit. To get the device limit, query - info::device::max_work_group_size. Adjust the work-group size if needed. - */ - - stream->submit([&](sycl::handler &cgh) { - sycl::local_accessor s_sum_acc_ct1(sycl::range<1>(32), - cgh); - - const float eps_ct4 = eps; - - cgh.parallel_for( - sycl::nd_range<3>(sycl::range<3>(1, 1, num_groups) * block_dims, - block_dims), - [=](sycl::nd_item<3> item_ct1) - [[intel::reqd_sub_group_size(32)]] { - group_norm_f32(x, dst, group_size, ne_elements, - eps_ct4, item_ct1, - s_sum_acc_ct1.get_pointer(), work_group_size); - }); - }); - } -} - -static void concat_f32_sycl(const float *x, const float *y, float *dst, - const int ne0, int ne1, int ne2, int ne02, - queue_ptr stream) { - int num_blocks = (ne0 + SYCL_CONCAT_BLOCK_SIZE - 1) / SYCL_CONCAT_BLOCK_SIZE; - sycl::range<3> gridDim(ne2, ne1, num_blocks); - stream->parallel_for( - sycl::nd_range<3>(gridDim * - sycl::range<3>(1, 1, SYCL_CONCAT_BLOCK_SIZE), - sycl::range<3>(1, 1, SYCL_CONCAT_BLOCK_SIZE)), - [=](sycl::nd_item<3> item_ct1) { - concat_f32(x, y, dst, ne0, ne02, item_ct1); - }); -} - -static void upscale_f32_sycl(const float *x, float *dst, const int nb00, const int nb01, - const int nb02, const int nb03, const int ne10, const int ne11, - const int ne12, const int ne13, const float sf0, const float sf1, - const float sf2, const float sf3, queue_ptr stream) { - int dst_size = ne10 * ne11 * ne12 * ne13; - int num_blocks = (dst_size + SYCL_UPSCALE_BLOCK_SIZE - 1) / SYCL_UPSCALE_BLOCK_SIZE; - sycl::range<1> gridDim(num_blocks * SYCL_UPSCALE_BLOCK_SIZE); - stream->parallel_for( - sycl::nd_range<1>(gridDim, sycl::range<1>(SYCL_UPSCALE_BLOCK_SIZE)), - [=](sycl::nd_item<1> item_ct1) { - upscale_f32(x, dst, nb00, nb01, nb02, nb03, ne10, ne11, ne12, ne13, sf0, sf1, sf2, sf3, item_ct1); - }); -} - -static void pad_f32_sycl(const float *x, float *dst, const int ne00, - const int ne01, const int ne02, const int ne0, - const int ne1, const int ne2, queue_ptr stream) { - int num_blocks = (ne0 + SYCL_PAD_BLOCK_SIZE - 1) / SYCL_PAD_BLOCK_SIZE; - sycl::range<3> gridDim(ne2, ne1, num_blocks); - stream->parallel_for( - sycl::nd_range<3>(gridDim * sycl::range<3>(1, 1, SYCL_PAD_BLOCK_SIZE), - sycl::range<3>(1, 1, SYCL_PAD_BLOCK_SIZE)), - [=](sycl::nd_item<3> item_ct1) { - pad_f32(x, dst, ne0, ne00, ne01, ne02, item_ct1); - }); -} - -static void rms_norm_f32_sycl(const float *x, float *dst, const int ncols, - const int nrows, const float eps, - queue_ptr stream) { - GGML_ASSERT(ncols % WARP_SIZE == 0); - // printf("%s ncols=%d, nrows=%d, WARP_SIZE=%d\n", __func__, ncols, nrows, WARP_SIZE); - if (ncols < 1024) { - const sycl::range<3> block_dims(1, 1, WARP_SIZE); - stream->submit([&](sycl::handler &cgh) { - sycl::local_accessor s_sum_acc_ct1(sycl::range<1>(32), - cgh); - - cgh.parallel_for( - sycl::nd_range<3>(sycl::range<3>(1, 1, nrows) * block_dims, - block_dims), - [=](sycl::nd_item<3> item_ct1) - [[intel::reqd_sub_group_size(32)]] { - rms_norm_f32(x, dst, ncols, eps, item_ct1, - s_sum_acc_ct1.get_pointer(), WARP_SIZE); - }); - }); - } else { - const int work_group_size = GROUP_SIZE; - const sycl::range<3> block_dims(1, 1, work_group_size); - /* - DPCT1049:19: The work-group size passed to the SYCL kernel may exceed - the limit. To get the device limit, query - info::device::max_work_group_size. Adjust the work-group size if needed. - */ - stream->submit([&](sycl::handler &cgh) { - sycl::local_accessor s_sum_acc_ct1(sycl::range<1>(32), - cgh); - - cgh.parallel_for( - sycl::nd_range<3>(sycl::range<3>(1, 1, nrows) * block_dims, - block_dims), - [=](sycl::nd_item<3> item_ct1) - [[intel::reqd_sub_group_size(32)]] { - rms_norm_f32(x, dst, ncols, eps, item_ct1, - s_sum_acc_ct1.get_pointer(), work_group_size); - }); - }); - } -} - -static void quantize_row_q8_1_sycl(const float *x, void *vy, const int kx, - const int ky, const int kx_padded, - queue_ptr stream) { - const int block_num_x = (kx_padded + SYCL_QUANTIZE_BLOCK_SIZE - 1) / SYCL_QUANTIZE_BLOCK_SIZE; - const sycl::range<3> num_blocks(1, ky, block_num_x); - const sycl::range<3> block_size(1, 1, SYCL_DEQUANTIZE_BLOCK_SIZE); - { - dpct::has_capability_or_fail(stream->get_device(), - {sycl::aspect::fp16}); - - stream->parallel_for( - sycl::nd_range<3>(num_blocks * block_size, block_size), - [=](sycl::nd_item<3> item_ct1) [[intel::reqd_sub_group_size(32)]] { - quantize_q8_1(x, vy, kx, kx_padded, item_ct1); - }); - } -} - -template -static void dequantize_block_sycl(const void *__restrict__ vx, - dst_t *__restrict__ y, const int k, - queue_ptr stream) { - const int num_blocks = (k + 2*SYCL_DEQUANTIZE_BLOCK_SIZE - 1) / (2*SYCL_DEQUANTIZE_BLOCK_SIZE); - { - dpct::has_capability_or_fail(stream->get_device(), - {sycl::aspect::fp16}); - stream->parallel_for( - sycl::nd_range<3>( - sycl::range<3>(1, 1, num_blocks) * - sycl::range<3>(1, 1, SYCL_DEQUANTIZE_BLOCK_SIZE), - sycl::range<3>(1, 1, SYCL_DEQUANTIZE_BLOCK_SIZE)), - [=](sycl::nd_item<3> item_ct1) { - dequantize_block(vx, y, k, item_ct1); - }); - } -} - -template -static void dequantize_row_q2_K_sycl(const void *vx, dst_t *y, const int k, - queue_ptr stream) { - const int nb = k / QK_K; - { - dpct::has_capability_or_fail(stream->get_device(), - {sycl::aspect::fp16}); - - stream->parallel_for(sycl::nd_range<3>(sycl::range<3>(1, 1, nb) * - sycl::range<3>(1, 1, 64), - sycl::range<3>(1, 1, 64)), - [=](sycl::nd_item<3> item_ct1) { - dequantize_block_q2_K(vx, y, item_ct1); - }); - } -} - -template -static void dequantize_row_q3_K_sycl(const void *vx, dst_t *y, const int k, - queue_ptr stream) { - const int nb = k / QK_K; - { - dpct::has_capability_or_fail(stream->get_device(), - {sycl::aspect::fp16}); - - stream->parallel_for(sycl::nd_range<3>(sycl::range<3>(1, 1, nb) * - sycl::range<3>(1, 1, 64), - sycl::range<3>(1, 1, 64)), - [=](sycl::nd_item<3> item_ct1) { - dequantize_block_q3_K(vx, y, item_ct1); - }); - } -} - -template -static void dequantize_row_q4_0_sycl(const void *vx, dst_t *y, const int k, - queue_ptr stream) { - const int nb32 = k / 32; - const int nb = (k + 255) / 256; - { - dpct::has_capability_or_fail(stream->get_device(), - {sycl::aspect::fp16}); - - stream->parallel_for(sycl::nd_range<3>(sycl::range<3>(1, 1, nb) * - sycl::range<3>(1, 1, 32), - sycl::range<3>(1, 1, 32)), - [=](sycl::nd_item<3> item_ct1) { - dequantize_block_q4_0(vx, y, nb32, item_ct1); - }); - } -} - -template -static void dequantize_row_q4_1_sycl(const void *vx, dst_t *y, const int k, - queue_ptr stream) { - const int nb32 = k / 32; - const int nb = (k + 255) / 256; - { - dpct::has_capability_or_fail(stream->get_device(), - {sycl::aspect::fp16}); - - stream->parallel_for(sycl::nd_range<3>(sycl::range<3>(1, 1, nb) * - sycl::range<3>(1, 1, 32), - sycl::range<3>(1, 1, 32)), - [=](sycl::nd_item<3> item_ct1) { - dequantize_block_q4_1(vx, y, nb32, item_ct1); - }); - } -} - - -template -static void dequantize_row_q4_K_sycl(const void *vx, dst_t *y, const int k, - queue_ptr stream) { - const int nb = k / QK_K; - { - dpct::has_capability_or_fail(stream->get_device(), - {sycl::aspect::fp16}); - - stream->parallel_for(sycl::nd_range<3>(sycl::range<3>(1, 1, nb) * - sycl::range<3>(1, 1, 32), - sycl::range<3>(1, 1, 32)), - [=](sycl::nd_item<3> item_ct1) { - dequantize_block_q4_K(vx, y, item_ct1); - }); - } -} - -template -static void dequantize_row_q5_K_sycl(const void *vx, dst_t *y, const int k, - queue_ptr stream) { - const int nb = k / QK_K; - { - dpct::has_capability_or_fail(stream->get_device(), - {sycl::aspect::fp16}); - - stream->parallel_for(sycl::nd_range<3>(sycl::range<3>(1, 1, nb) * - sycl::range<3>(1, 1, 64), - sycl::range<3>(1, 1, 64)), - [=](sycl::nd_item<3> item_ct1) { - dequantize_block_q5_K(vx, y, item_ct1); - }); - } -} - -template -static void dequantize_row_q6_K_sycl(const void *vx, dst_t *y, const int k, - queue_ptr stream) { - const int nb = k / QK_K; - { - dpct::has_capability_or_fail(stream->get_device(), - {sycl::aspect::fp16}); - - stream->parallel_for(sycl::nd_range<3>(sycl::range<3>(1, 1, nb) * - sycl::range<3>(1, 1, 64), - sycl::range<3>(1, 1, 64)), - [=](sycl::nd_item<3> item_ct1) { - dequantize_block_q6_K(vx, y, item_ct1); - }); - } -} - -template -static void dequantize_row_iq1_s_sycl(const void *vx, dst_t *y, const int k, - queue_ptr stream) { - const int nb = k / QK_K; - { - dpct::has_capability_or_fail(stream->get_device(), - {sycl::aspect::fp16}); - - stream->submit([&](sycl::handler &cgh) { - cgh.parallel_for(sycl::nd_range<3>(sycl::range<3>(1, 1, nb) * - sycl::range<3>(1, 1, 32), - sycl::range<3>(1, 1, 32)), - [=](sycl::nd_item<3> item_ct1) { - dequantize_block_iq1_s( - vx, y, item_ct1, iq1s_grid_gpu - ); - }); - }); - } -} - -template -static void dequantize_row_iq1_m_sycl(const void *vx, dst_t *y, const int k, - queue_ptr stream) { - const int nb = k / QK_K; - { - dpct::has_capability_or_fail(stream->get_device(), - {sycl::aspect::fp16}); - - stream->submit([&](sycl::handler &cgh) { - cgh.parallel_for(sycl::nd_range<3>(sycl::range<3>(1, 1, nb) * - sycl::range<3>(1, 1, 32), - sycl::range<3>(1, 1, 32)), - [=](sycl::nd_item<3> item_ct1) { - dequantize_block_iq1_m( - vx, y, item_ct1, iq1s_grid_gpu - ); - }); - }); - } -} - -template -static void dequantize_row_iq2_xxs_sycl(const void *vx, dst_t *y, const int k, - queue_ptr stream) { - const int nb = k / QK_K; - { - dpct::has_capability_or_fail(stream->get_device(), - {sycl::aspect::fp16}); - - stream->submit([&](sycl::handler &cgh) { - cgh.parallel_for(sycl::nd_range<3>(sycl::range<3>(1, 1, nb) * - sycl::range<3>(1, 1, 32), - sycl::range<3>(1, 1, 32)), - [=](sycl::nd_item<3> item_ct1) { - dequantize_block_iq2_xxs( - vx, y, item_ct1, iq2xxs_grid, - ksigns_iq2xs, kmask_iq2xs); - }); - }); - } -} - -template -static void dequantize_row_iq2_xs_sycl(const void *vx, dst_t *y, const int k, - queue_ptr stream) { - const int nb = k / QK_K; - { - dpct::has_capability_or_fail(stream->get_device(), - {sycl::aspect::fp16}); - - stream->submit([&](sycl::handler &cgh) { - cgh.parallel_for(sycl::nd_range<3>(sycl::range<3>(1, 1, nb) * - sycl::range<3>(1, 1, 32), - sycl::range<3>(1, 1, 32)), - [=](sycl::nd_item<3> item_ct1) { - dequantize_block_iq2_xs( - vx, y, item_ct1, iq2xs_grid, - ksigns_iq2xs, kmask_iq2xs); - }); - }); - } -} - -template -static void dequantize_row_iq2_s_sycl(const void *vx, dst_t *y, const int k, - queue_ptr stream) { - const int nb = k / QK_K; - { - dpct::has_capability_or_fail(stream->get_device(), - {sycl::aspect::fp16}); - - stream->submit([&](sycl::handler &cgh) { - cgh.parallel_for(sycl::nd_range<3>(sycl::range<3>(1, 1, nb) * - sycl::range<3>(1, 1, 32), - sycl::range<3>(1, 1, 32)), - [=](sycl::nd_item<3> item_ct1) { - dequantize_block_iq2_s(vx, y, item_ct1); - }); - }); - } -} - - -template -static void dequantize_row_iq3_xxs_sycl(const void *vx, dst_t *y, const int k, - queue_ptr stream) { - const int nb = k / QK_K; - { - dpct::has_capability_or_fail(stream->get_device(), - {sycl::aspect::fp16}); - - stream->submit([&](sycl::handler &cgh) { - cgh.parallel_for(sycl::nd_range<3>(sycl::range<3>(1, 1, nb) * - sycl::range<3>(1, 1, 32), - sycl::range<3>(1, 1, 32)), - [=](sycl::nd_item<3> item_ct1) { - dequantize_block_iq3_xxs( - vx, y, item_ct1, iq3xxs_grid, - ksigns_iq2xs, kmask_iq2xs); - }); - }); - } -} - -template -static void dequantize_row_iq3_s_sycl(const void *vx, dst_t *y, const int k, - queue_ptr stream) { - const int nb = k / QK_K; - { - dpct::has_capability_or_fail(stream->get_device(), - {sycl::aspect::fp16}); - - stream->submit([&](sycl::handler &cgh) { - cgh.parallel_for(sycl::nd_range<3>(sycl::range<3>(1, 1, nb) * - sycl::range<3>(1, 1, 32), - sycl::range<3>(1, 1, 32)), - [=](sycl::nd_item<3> item_ct1) { - dequantize_block_iq3_s( - vx, y, item_ct1, kmask_iq2xs, iq3s_grid); - }); - }); - } -} - -template -static void dequantize_row_iq4_xs_sycl(const void *vx, dst_t *y, const int k, - queue_ptr stream) { - const int nb = (k + QK_K - 1) / QK_K; - { - dpct::has_capability_or_fail(stream->get_device(), - {sycl::aspect::fp16}); - - stream->submit([&](sycl::handler &cgh) { - cgh.parallel_for( - sycl::nd_range<3>(sycl::range<3>(1, 1, nb) * - sycl::range<3>(1, 1, 32), - sycl::range<3>(1, 1, 32)), - [=](sycl::nd_item<3> item_ct1) { - dequantize_block_iq4_xs(vx, y, item_ct1); - }); - }); - } -} - - -template -static void dequantize_row_iq4_nl_sycl(const void *vx, dst_t *y, const int k, - queue_ptr stream) { - const int nb = (k + QK_K - 1) / QK_K; - { - dpct::has_capability_or_fail(stream->get_device(), - {sycl::aspect::fp16}); - - stream->submit([&](sycl::handler &cgh) { - cgh.parallel_for( - sycl::nd_range<3>(sycl::range<3>(1, 1, nb) * - sycl::range<3>(1, 1, 32), - sycl::range<3>(1, 1, 32)), - [=](sycl::nd_item<3> item_ct1) { - dequantize_block_iq4_nl(vx, y, item_ct1); - }); - }); - } -} - - - -template -static void convert_unary_sycl(const void *__restrict__ vx, - dst_t *__restrict__ y, const int k, - queue_ptr stream) { - const int num_blocks = (k + SYCL_DEQUANTIZE_BLOCK_SIZE - 1) / SYCL_DEQUANTIZE_BLOCK_SIZE; - { - dpct::has_capability_or_fail(stream->get_device(), - {sycl::aspect::fp16}); - - stream->parallel_for( - sycl::nd_range<3>( - sycl::range<3>(1, 1, num_blocks) * - sycl::range<3>(1, 1, SYCL_DEQUANTIZE_BLOCK_SIZE), - sycl::range<3>(1, 1, SYCL_DEQUANTIZE_BLOCK_SIZE)), - [=](sycl::nd_item<3> item_ct1) { - convert_unary(vx, y, k, item_ct1); - }); - } -} - - -static to_fp16_sycl_t ggml_get_to_fp16_sycl(ggml_type type) try { - int id; - switch (type) { - case GGML_TYPE_Q4_0: - return dequantize_block_sycl; - case GGML_TYPE_Q4_1: - return dequantize_block_sycl; - case GGML_TYPE_Q5_0: - return dequantize_block_sycl; - case GGML_TYPE_Q5_1: - return dequantize_block_sycl; - case GGML_TYPE_Q8_0: - return dequantize_block_sycl; - case GGML_TYPE_Q2_K: - return dequantize_row_q2_K_sycl; - case GGML_TYPE_Q3_K: - return dequantize_row_q3_K_sycl; - case GGML_TYPE_Q4_K: - return dequantize_row_q4_K_sycl; - case GGML_TYPE_Q5_K: - return dequantize_row_q5_K_sycl; - case GGML_TYPE_Q6_K: - return dequantize_row_q6_K_sycl; - case GGML_TYPE_IQ1_S: - return dequantize_row_iq1_s_sycl; - case GGML_TYPE_IQ1_M: - return dequantize_row_iq1_m_sycl; - case GGML_TYPE_IQ2_XXS: - return dequantize_row_iq2_xxs_sycl; - case GGML_TYPE_IQ2_XS: - return dequantize_row_iq2_xs_sycl; - case GGML_TYPE_IQ2_S: - return dequantize_row_iq2_s_sycl; - case GGML_TYPE_IQ3_XXS: - return dequantize_row_iq3_xxs_sycl; - case GGML_TYPE_IQ3_S: - return dequantize_row_iq3_s_sycl; - case GGML_TYPE_IQ4_XS: - return dequantize_row_iq4_xs_sycl; - case GGML_TYPE_IQ4_NL: - return dequantize_row_iq4_nl_sycl; - case GGML_TYPE_F32: - return convert_unary_sycl; - default: - return nullptr; - } -} -catch (sycl::exception const &exc) { - std::cerr << exc.what() << "Exception caught at file:" << __FILE__ - << ", line:" << __LINE__ << std::endl; - std::exit(1); -} - -static to_fp32_sycl_t ggml_get_to_fp32_sycl(ggml_type type) { - switch (type) { - case GGML_TYPE_Q4_0: - return dequantize_row_q4_0_sycl; - case GGML_TYPE_Q4_1: - return dequantize_row_q4_1_sycl; - case GGML_TYPE_Q5_0: - return dequantize_block_sycl; - case GGML_TYPE_Q5_1: - return dequantize_block_sycl; - case GGML_TYPE_Q8_0: - return dequantize_block_sycl; - case GGML_TYPE_Q2_K: - return dequantize_row_q2_K_sycl; - case GGML_TYPE_Q3_K: - return dequantize_row_q3_K_sycl; - case GGML_TYPE_Q4_K: - return dequantize_row_q4_K_sycl; - case GGML_TYPE_Q5_K: - return dequantize_row_q5_K_sycl; - case GGML_TYPE_Q6_K: - return dequantize_row_q6_K_sycl; - case GGML_TYPE_IQ1_S: - return dequantize_row_iq1_s_sycl; - case GGML_TYPE_IQ1_M: - return dequantize_row_iq1_m_sycl; - case GGML_TYPE_IQ2_XXS: - return dequantize_row_iq2_xxs_sycl; - case GGML_TYPE_IQ2_XS: - return dequantize_row_iq2_xs_sycl; - case GGML_TYPE_IQ2_S: - return dequantize_row_iq2_s_sycl; - case GGML_TYPE_IQ3_XXS: - return dequantize_row_iq3_xxs_sycl; - case GGML_TYPE_IQ3_S: - return dequantize_row_iq3_s_sycl; - case GGML_TYPE_IQ4_XS: - return dequantize_row_iq4_xs_sycl; - case GGML_TYPE_IQ4_NL: - return dequantize_row_iq4_nl_sycl; - case GGML_TYPE_F16: - return convert_unary_sycl; - default: - return nullptr; - } -} - -static void dequantize_mul_mat_vec_q4_0_sycl(const void *vx, const dfloat *y, - float *dst, const int ncols, - const int nrows, - queue_ptr stream) { - GGML_ASSERT(ncols % GGML_SYCL_DMMV_X == 0); - const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y; - // the number of rows may exceed maximum grid size in the y or z dimensions, use the x dimension instead - const sycl::range<3> block_nums(1, 1, block_num_y); - const sycl::range<3> block_dims(1, GGML_SYCL_MMV_Y, WARP_SIZE); - { - dpct::has_capability_or_fail(stream->get_device(), - {sycl::aspect::fp16}); - - stream->parallel_for( - sycl::nd_range<3>(block_nums * block_dims, block_dims), - [=](sycl::nd_item<3> item_ct1) [[intel::reqd_sub_group_size(32)]] { - dequantize_mul_mat_vec( - vx, y, dst, ncols, nrows, item_ct1); - }); - } -} - -static void dequantize_mul_mat_vec_q4_1_sycl(const void *vx, const dfloat *y, - float *dst, const int ncols, - const int nrows, - queue_ptr stream) { - GGML_ASSERT(ncols % GGML_SYCL_DMMV_X == 0); - const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y; - const sycl::range<3> block_nums(1, 1, block_num_y); - const sycl::range<3> block_dims(1, GGML_SYCL_MMV_Y, WARP_SIZE); - { - dpct::has_capability_or_fail(stream->get_device(), - {sycl::aspect::fp16}); - - stream->parallel_for( - sycl::nd_range<3>(block_nums * block_dims, block_dims), - [=](sycl::nd_item<3> item_ct1) [[intel::reqd_sub_group_size(32)]] { - dequantize_mul_mat_vec( - vx, y, dst, ncols, nrows, item_ct1); - }); - } -} - -static void dequantize_mul_mat_vec_q5_0_sycl(const void *vx, const dfloat *y, - float *dst, const int ncols, - const int nrows, - queue_ptr stream) { - GGML_ASSERT(ncols % GGML_SYCL_DMMV_X == 0); - const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y; - const sycl::range<3> block_nums(1, 1, block_num_y); - const sycl::range<3> block_dims(1, GGML_SYCL_MMV_Y, WARP_SIZE); - { - dpct::has_capability_or_fail(stream->get_device(), - {sycl::aspect::fp16}); - - stream->parallel_for( - sycl::nd_range<3>(block_nums * block_dims, block_dims), - [=](sycl::nd_item<3> item_ct1) [[intel::reqd_sub_group_size(32)]] { - dequantize_mul_mat_vec( - vx, y, dst, ncols, nrows, item_ct1); - }); - } -} - -static void dequantize_mul_mat_vec_q5_1_sycl(const void *vx, const dfloat *y, - float *dst, const int ncols, - const int nrows, - queue_ptr stream) { - GGML_ASSERT(ncols % GGML_SYCL_DMMV_X == 0); - const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y; - const sycl::range<3> block_nums(1, 1, block_num_y); - const sycl::range<3> block_dims(1, GGML_SYCL_MMV_Y, WARP_SIZE); - { - dpct::has_capability_or_fail(stream->get_device(), - {sycl::aspect::fp16}); - - stream->parallel_for( - sycl::nd_range<3>(block_nums * block_dims, block_dims), - [=](sycl::nd_item<3> item_ct1) [[intel::reqd_sub_group_size(32)]] { - dequantize_mul_mat_vec( - vx, y, dst, ncols, nrows, item_ct1); - }); - } -} - -static void dequantize_mul_mat_vec_q8_0_sycl(const void *vx, const dfloat *y, - float *dst, const int ncols, - const int nrows, - queue_ptr stream) { - GGML_ASSERT(ncols % GGML_SYCL_DMMV_X == 0); - const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y; - const sycl::range<3> block_nums(1, 1, block_num_y); - const sycl::range<3> block_dims(1, GGML_SYCL_MMV_Y, WARP_SIZE); - { - dpct::has_capability_or_fail(stream->get_device(), - {sycl::aspect::fp16}); - - stream->parallel_for( - sycl::nd_range<3>(block_nums * block_dims, block_dims), - [=](sycl::nd_item<3> item_ct1) [[intel::reqd_sub_group_size(32)]] { - dequantize_mul_mat_vec( - vx, y, dst, ncols, nrows, item_ct1); - }); - } -} - -static void dequantize_mul_mat_vec_q2_K_sycl(const void *vx, const float *y, - float *dst, const int ncols, - const int nrows, - queue_ptr stream) { - GGML_ASSERT(ncols % QK_K == 0); - const int ny = 2; // very slightly faster than 1 even when K_QUANTS_PER_ITERATION = 2 - const int block_num_y = (nrows + ny - 1) / ny; - const sycl::range<3> block_nums(1, 1, block_num_y); - const sycl::range<3> block_dims(1, ny, 32); - stream->parallel_for( - sycl::nd_range<3>(block_nums * block_dims, block_dims), - [=](sycl::nd_item<3> item_ct1) [[intel::reqd_sub_group_size(32)]] { - dequantize_mul_mat_vec_q2_k(vx, y, dst, ncols, nrows, item_ct1); - }); -} - -static void dequantize_mul_mat_vec_q3_K_sycl(const void *vx, const float *y, - float *dst, const int ncols, - const int nrows, - queue_ptr stream) { - GGML_ASSERT(ncols % QK_K == 0); - const int ny = 2 / K_QUANTS_PER_ITERATION; - const int block_num_y = (nrows + ny - 1) / ny; - const sycl::range<3> block_nums(1, 1, block_num_y); - const sycl::range<3> block_dims(1, ny, 32); - stream->parallel_for( - sycl::nd_range<3>(block_nums * block_dims, block_dims), - [=](sycl::nd_item<3> item_ct1) [[intel::reqd_sub_group_size(32)]] { - dequantize_mul_mat_vec_q3_k(vx, y, dst, ncols, nrows, item_ct1); - }); -} - -static void dequantize_mul_mat_vec_q4_K_sycl(const void *vx, const float *y, - float *dst, const int ncols, - const int nrows, - queue_ptr stream) { - GGML_ASSERT(ncols % QK_K == 0); - const int ny = 2 / K_QUANTS_PER_ITERATION; - const int block_num_y = (nrows + ny - 1) / ny; - const sycl::range<3> block_nums(1, 1, block_num_y); - const sycl::range<3> block_dims(1, ny, 32); - stream->parallel_for( - sycl::nd_range<3>(block_nums * block_dims, block_dims), - [=](sycl::nd_item<3> item_ct1) [[intel::reqd_sub_group_size(32)]] { - dequantize_mul_mat_vec_q4_k(vx, y, dst, ncols, nrows, item_ct1); - }); -} - -static void dequantize_mul_mat_vec_q5_K_sycl(const void *vx, const float *y, - float *dst, const int ncols, - const int nrows, - queue_ptr stream) { - GGML_ASSERT(ncols % QK_K == 0); - const sycl::range<3> block_dims(1, 1, 32); - stream->parallel_for( - sycl::nd_range<3>(sycl::range<3>(1, 1, nrows) * block_dims, block_dims), - [=](sycl::nd_item<3> item_ct1) [[intel::reqd_sub_group_size(32)]] { - dequantize_mul_mat_vec_q5_k(vx, y, dst, ncols, item_ct1); - }); -} - -static void dequantize_mul_mat_vec_q6_K_sycl(const void *vx, const float *y, - float *dst, const int ncols, - const int nrows, - queue_ptr stream) { - GGML_ASSERT(ncols % QK_K == 0); - const int ny = 2 / K_QUANTS_PER_ITERATION; - const int block_num_y = (nrows + ny - 1) / ny; - const sycl::range<3> block_nums(1, 1, block_num_y); - const sycl::range<3> block_dims(1, ny, 32); - stream->parallel_for( - sycl::nd_range<3>(block_nums * block_dims, block_dims), - [=](sycl::nd_item<3> item_ct1) [[intel::reqd_sub_group_size(32)]] { - dequantize_mul_mat_vec_q6_k(vx, y, dst, ncols, nrows, item_ct1); - }); -} - -static void convert_mul_mat_vec_f16_sycl(const void *vx, const dfloat *y, - float *dst, const int ncols, - const int nrows, - queue_ptr stream) { - GGML_ASSERT(ncols % GGML_SYCL_DMMV_X == 0); - const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y; - const sycl::range<3> block_nums(1, 1, block_num_y); - const sycl::range<3> block_dims(1, GGML_SYCL_MMV_Y, WARP_SIZE); - { - dpct::has_capability_or_fail(stream->get_device(), - {sycl::aspect::fp16}); - - stream->parallel_for( - sycl::nd_range<3>(block_nums * block_dims, block_dims), - [=](sycl::nd_item<3> item_ct1) [[intel::reqd_sub_group_size(32)]] { - dequantize_mul_mat_vec<1, 1, convert_f16>(vx, y, dst, ncols, - nrows, item_ct1); - }); - } -} - - -static void mul_mat_vec_q4_0_q8_1_sycl(const void *vx, const void *vy, - float *dst, const int ncols, - const int nrows, - queue_ptr stream) { - GGML_ASSERT(ncols % QK4_0 == 0); - const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y; - const sycl::range<3> block_nums(1, 1, block_num_y); - const sycl::range<3> block_dims(1, GGML_SYCL_MMV_Y, WARP_SIZE); - { - - stream->submit([&](sycl::handler &cgh) { - - cgh.parallel_for( - sycl::nd_range<3>(block_nums * block_dims, block_dims), - [=](sycl::nd_item<3> item_ct1) - [[intel::reqd_sub_group_size(32)]] { - mul_mat_vec_q( - vx, vy, dst, ncols, nrows, item_ct1); - }); - }); - } -} - -static void mul_mat_vec_q4_1_q8_1_sycl(const void *vx, const void *vy, - float *dst, const int ncols, - const int nrows, - queue_ptr stream) { - GGML_ASSERT(ncols % QK4_1 == 0); - const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y; - const sycl::range<3> block_nums(1, 1, block_num_y); - const sycl::range<3> block_dims(1, GGML_SYCL_MMV_Y, WARP_SIZE); - { - - stream->submit([&](sycl::handler &cgh) { - - cgh.parallel_for( - sycl::nd_range<3>(block_nums * block_dims, block_dims), - [=](sycl::nd_item<3> item_ct1) - [[intel::reqd_sub_group_size(32)]] { - mul_mat_vec_q( - vx, vy, dst, ncols, nrows, item_ct1); - }); - }); - } -} - -static void mul_mat_vec_q5_0_q8_1_sycl(const void *vx, const void *vy, - float *dst, const int ncols, - const int nrows, - queue_ptr stream) { - GGML_ASSERT(ncols % QK5_0 == 0); - const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y; - const sycl::range<3> block_nums(1, 1, block_num_y); - const sycl::range<3> block_dims(1, GGML_SYCL_MMV_Y, WARP_SIZE); - { - - stream->submit([&](sycl::handler &cgh) { - - cgh.parallel_for( - sycl::nd_range<3>(block_nums * block_dims, block_dims), - [=](sycl::nd_item<3> item_ct1) - [[intel::reqd_sub_group_size(32)]] { - mul_mat_vec_q( - vx, vy, dst, ncols, nrows, item_ct1); - }); - }); - } -} - -static void mul_mat_vec_q5_1_q8_1_sycl(const void *vx, const void *vy, - float *dst, const int ncols, - const int nrows, - queue_ptr stream) { - GGML_ASSERT(ncols % QK5_1 == 0); - const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y; - const sycl::range<3> block_nums(1, 1, block_num_y); - const sycl::range<3> block_dims(1, GGML_SYCL_MMV_Y, WARP_SIZE); - { - - stream->submit([&](sycl::handler &cgh) { - - cgh.parallel_for( - sycl::nd_range<3>(block_nums * block_dims, block_dims), - [=](sycl::nd_item<3> item_ct1) - [[intel::reqd_sub_group_size(32)]] { - mul_mat_vec_q( - vx, vy, dst, ncols, nrows, item_ct1); - }); - }); - } -} - -static void mul_mat_vec_q8_0_q8_1_sycl(const void *vx, const void *vy, - float *dst, const int ncols, - const int nrows, - queue_ptr stream) { - GGML_ASSERT(ncols % QK8_0 == 0); - const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y; - const sycl::range<3> block_nums(1, 1, block_num_y); - const sycl::range<3> block_dims(1, GGML_SYCL_MMV_Y, WARP_SIZE); - { - - stream->submit([&](sycl::handler &cgh) { - - cgh.parallel_for( - sycl::nd_range<3>(block_nums * block_dims, block_dims), - [=](sycl::nd_item<3> item_ct1) - [[intel::reqd_sub_group_size(32)]] { - mul_mat_vec_q( - vx, vy, dst, ncols, nrows, item_ct1); - }); - }); - } -} - -static void mul_mat_vec_q2_K_q8_1_sycl(const void *vx, const void *vy, - float *dst, const int ncols, - const int nrows, - queue_ptr stream) { - GGML_ASSERT(ncols % QK_K == 0); - const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y; - const sycl::range<3> block_nums(1, 1, block_num_y); - const sycl::range<3> block_dims(1, GGML_SYCL_MMV_Y, WARP_SIZE); - { - - stream->submit([&](sycl::handler &cgh) { - - cgh.parallel_for( - sycl::nd_range<3>(block_nums * block_dims, block_dims), - [=](sycl::nd_item<3> item_ct1) - [[intel::reqd_sub_group_size(32)]] { - mul_mat_vec_q( - vx, vy, dst, ncols, nrows, item_ct1); - }); - }); - } -} - -static void mul_mat_vec_q3_K_q8_1_sycl(const void *vx, const void *vy, - float *dst, const int ncols, - const int nrows, - queue_ptr stream) { - GGML_ASSERT(ncols % QK_K == 0); - const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y; - const sycl::range<3> block_nums(1, 1, block_num_y); - const sycl::range<3> block_dims(1, GGML_SYCL_MMV_Y, WARP_SIZE); - { - - stream->submit([&](sycl::handler &cgh) { - - cgh.parallel_for( - sycl::nd_range<3>(block_nums * block_dims, block_dims), - [=](sycl::nd_item<3> item_ct1) - [[intel::reqd_sub_group_size(32)]] { - mul_mat_vec_q( - vx, vy, dst, ncols, nrows, item_ct1); - }); - }); - } -} - -static void mul_mat_vec_q4_K_q8_1_sycl(const void *vx, const void *vy, - float *dst, const int ncols, - const int nrows, - queue_ptr stream) { - GGML_ASSERT(ncols % QK_K == 0); - const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y; - const sycl::range<3> block_nums(1, 1, block_num_y); - const sycl::range<3> block_dims(1, GGML_SYCL_MMV_Y, WARP_SIZE); - { - - stream->submit([&](sycl::handler &cgh) { - - cgh.parallel_for( - sycl::nd_range<3>(block_nums * block_dims, block_dims), - [=](sycl::nd_item<3> item_ct1) - [[intel::reqd_sub_group_size(32)]] { - mul_mat_vec_q( - vx, vy, dst, ncols, nrows, item_ct1); - }); - }); - } -} - -static void mul_mat_vec_q5_K_q8_1_sycl(const void *vx, const void *vy, - float *dst, const int ncols, - const int nrows, - queue_ptr stream) { - GGML_ASSERT(ncols % QK_K == 0); - const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y; - const sycl::range<3> block_nums(1, 1, block_num_y); - const sycl::range<3> block_dims(1, GGML_SYCL_MMV_Y, WARP_SIZE); - { - - stream->submit([&](sycl::handler &cgh) { - - cgh.parallel_for( - sycl::nd_range<3>(block_nums * block_dims, block_dims), - [=](sycl::nd_item<3> item_ct1) - [[intel::reqd_sub_group_size(32)]] { - mul_mat_vec_q( - vx, vy, dst, ncols, nrows, item_ct1); - }); - }); - } -} - -static void mul_mat_vec_q6_K_q8_1_sycl(const void *vx, const void *vy, - float *dst, const int ncols, - const int nrows, - queue_ptr stream) { - GGML_ASSERT(ncols % QK_K == 0); - const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y; - const sycl::range<3> block_nums(1, 1, block_num_y); - const sycl::range<3> block_dims(1, GGML_SYCL_MMV_Y, WARP_SIZE); - { - - stream->submit([&](sycl::handler &cgh) { - - cgh.parallel_for( - sycl::nd_range<3>(block_nums * block_dims, block_dims), - [=](sycl::nd_item<3> item_ct1) - [[intel::reqd_sub_group_size(32)]] { - mul_mat_vec_q( - vx, vy, dst, ncols, nrows, item_ct1); - }); - }); - } -} - - -static void mul_mat_vec_iq2_xxs_q8_1_sycl(const void *vx, const void *vy, - float *dst, const int ncols, - const int nrows, - queue_ptr stream) { - GGML_ASSERT(ncols % QK_K == 0); - const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y; - const sycl::range<3> block_nums(1, 1, block_num_y); - const sycl::range<3> block_dims(1, GGML_SYCL_MMV_Y, WARP_SIZE); - { - stream->submit([&](sycl::handler &cgh) { - cgh.parallel_for( - sycl::nd_range<3>(block_nums * block_dims, block_dims), - [=](sycl::nd_item<3> item_ct1) - [[intel::reqd_sub_group_size(32)]] { - mul_mat_vec_q_iq2_xxs_q8_1( - vx, vy, dst, ncols, nrows, item_ct1); - }); - }); - } -} - -static void mul_mat_vec_iq2_xs_q8_1_sycl(const void *vx, const void *vy, - float *dst, const int ncols, - const int nrows, - queue_ptr stream) { - GGML_ASSERT(ncols % QK_K == 0); - const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y; - const sycl::range<3> block_nums(1, 1, block_num_y); - const sycl::range<3> block_dims(1, GGML_SYCL_MMV_Y, WARP_SIZE); - { - - stream->submit([&](sycl::handler &cgh) { - auto iq2xs_grid_ptr_ct1 = &iq2xs_grid[0]; - auto ksigns64_ptr_ct1 = &ksigns64[0]; - - cgh.parallel_for( - sycl::nd_range<3>(block_nums * block_dims, block_dims), - [=](sycl::nd_item<3> item_ct1) - [[intel::reqd_sub_group_size(32)]] { - mul_mat_vec_q_iq2_xs_q8_1( - vx, vy, dst, ncols, nrows, item_ct1); - }); - }); - } -} - -static void mul_mat_vec_iq2_s_q8_1_sycl(const void *vx, const void *vy, - float *dst, const int ncols, - const int nrows, - queue_ptr stream) { - GGML_ASSERT(ncols % QK_K == 0); - const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y; - const sycl::range<3> block_nums(1, 1, block_num_y); - const sycl::range<3> block_dims(1, GGML_SYCL_MMV_Y, WARP_SIZE); - { - - stream->submit([&](sycl::handler &cgh) { - auto iq2xs_grid_ptr_ct1 = &iq2xs_grid[0]; - auto ksigns64_ptr_ct1 = &ksigns64[0]; - - cgh.parallel_for( - sycl::nd_range<3>(block_nums * block_dims, block_dims), - [=](sycl::nd_item<3> item_ct1) - [[intel::reqd_sub_group_size(32)]] { - mul_mat_vec_q_iq2_s_q8_1( - vx, vy, dst, ncols, nrows, item_ct1); - }); - }); - } -} - -static void mul_mat_vec_iq3_xxs_q8_1_sycl(const void *vx, const void *vy, - float *dst, const int ncols, - const int nrows, - queue_ptr stream) { - GGML_ASSERT(ncols % QK_K == 0); - const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y; - const sycl::range<3> block_nums(1, 1, block_num_y); - const sycl::range<3> block_dims(1, GGML_SYCL_MMV_Y, WARP_SIZE); - { - - stream->submit([&](sycl::handler &cgh) { - auto iq3xxs_grid_ptr_ct1 = &iq3xxs_grid[0]; - auto ksigns64_ptr_ct1 = &ksigns64[0]; - - cgh.parallel_for( - sycl::nd_range<3>(block_nums * block_dims, block_dims), - [=](sycl::nd_item<3> item_ct1) - [[intel::reqd_sub_group_size(32)]] { - mul_mat_vec_q_iq3_xxs_q8_1( - vx, vy, dst, ncols, nrows, item_ct1); - }); - }); - } -} - -static void mul_mat_vec_iq3_s_q8_1_sycl(const void *vx, const void *vy, - float *dst, const int ncols, - const int nrows, - queue_ptr stream) { - GGML_ASSERT(ncols % QK_K == 0); - const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y; - const sycl::range<3> block_nums(1, 1, block_num_y); - const sycl::range<3> block_dims(1, GGML_SYCL_MMV_Y, WARP_SIZE); - { - - stream->submit([&](sycl::handler &cgh) { - auto iq3s_grid_ptr_ct1 = &iq3s_grid[0]; - - cgh.parallel_for( - sycl::nd_range<3>(block_nums * block_dims, block_dims), - [=](sycl::nd_item<3> item_ct1) - [[intel::reqd_sub_group_size(32)]] { - mul_mat_vec_q_iq3_s_q8_1( - vx, vy, dst, ncols, nrows, item_ct1); - }); - }); - } -} - -static void mul_mat_vec_iq1_s_q8_1_sycl(const void *vx, const void *vy, - float *dst, const int ncols, - const int nrows, - queue_ptr stream) { - GGML_ASSERT(ncols % QK_K == 0); - const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y; - const sycl::range<3> block_nums(1, 1, block_num_y); - const sycl::range<3> block_dims(1, GGML_SYCL_MMV_Y, WARP_SIZE); - { - - stream->submit([&](sycl::handler &cgh) { - auto iq1s_grid_ptr_ct1 = &iq1s_grid_gpu[0]; - auto ksigns64_ptr_ct1 = &ksigns64[0]; - - cgh.parallel_for( - sycl::nd_range<3>(block_nums * block_dims, block_dims), - [=](sycl::nd_item<3> item_ct1) - [[intel::reqd_sub_group_size(32)]] { - mul_mat_vec_q_iq1_s_q8_1( - vx, vy, dst, ncols, nrows, item_ct1); - }); - }); - } -} - -static void mul_mat_vec_iq1_m_q8_1_sycl(const void *vx, const void *vy, - float *dst, const int ncols, - const int nrows, - queue_ptr stream) { - GGML_ASSERT(ncols % QK_K == 0); - const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y; - const sycl::range<3> block_nums(1, 1, block_num_y); - const sycl::range<3> block_dims(1, GGML_SYCL_MMV_Y, WARP_SIZE); - { - stream->submit([&](sycl::handler &cgh) { - cgh.parallel_for( - sycl::nd_range<3>(block_nums * block_dims, block_dims), - [=](sycl::nd_item<3> item_ct1) - [[intel::reqd_sub_group_size(32)]] { - mul_mat_vec_q_iq1_m_q8_1( - vx, vy, dst, ncols, nrows, item_ct1); - }); - }); - } -} - -static void mul_mat_vec_iq4_nl_q8_1_sycl(const void *vx, const void *vy, - float *dst, const int ncols, - const int nrows, - queue_ptr stream) { - GGML_ASSERT(ncols % QK4_NL == 0); - const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y; - const sycl::range<3> block_nums(1, 1, block_num_y); - const sycl::range<3> block_dims(1, GGML_SYCL_MMV_Y, WARP_SIZE); - { - - stream->submit([&](sycl::handler &cgh) { - cgh.parallel_for( - sycl::nd_range<3>(block_nums * block_dims, block_dims), - [=](sycl::nd_item<3> item_ct1) - [[intel::reqd_sub_group_size(32)]] { - mul_mat_vec_q_iq4_nl_q8_1( - vx, vy, dst, ncols, nrows, item_ct1); - }); - }); - } -} - -static void mul_mat_vec_iq4_xs_q8_1_sycl(const void *vx, const void *vy, - float *dst, const int ncols, - const int nrows, - queue_ptr stream) { - GGML_ASSERT(ncols % QK_K == 0); - const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y; - const sycl::range<3> block_nums(1, 1, block_num_y); - const sycl::range<3> block_dims(1, GGML_SYCL_MMV_Y, WARP_SIZE); - { - - stream->submit([&](sycl::handler &cgh) { - cgh.parallel_for( - sycl::nd_range<3>(block_nums * block_dims, block_dims), - [=](sycl::nd_item<3> item_ct1) - [[intel::reqd_sub_group_size(32)]] { - mul_mat_vec_q_iq4_xs_q8_1( - vx, vy, dst, ncols, nrows, item_ct1); - }); - }); - } -} - -static void ggml_mul_mat_q4_0_q8_1_sycl(const void *vx, const void *vy, - float *dst, const int ncols_x, - const int nrows_x, const int ncols_y, - const int nrows_y, const int nrows_dst, - queue_ptr stream) try { - - int id; - SYCL_CHECK( - CHECK_TRY_ERROR(id = get_current_device_id())); - const int compute_capability = ggml_sycl_info().devices[id].cc; - - int mmq_x, mmq_y, nwarps; - if (compute_capability >= VER_GEN13) { - mmq_x = MMQ_X_Q4_0_RDNA2; - mmq_y = MMQ_Y_Q4_0_RDNA2; - nwarps = NWARPS_Q4_0_RDNA2; - } else if (compute_capability >= VER_GEN12) { - mmq_x = MMQ_X_Q4_0_RDNA1; - mmq_y = MMQ_Y_Q4_0_RDNA1; - nwarps = NWARPS_Q4_0_RDNA1; - } else if (compute_capability >= VER_GEN9) { - mmq_x = MMQ_X_Q4_0_AMPERE; - mmq_y = MMQ_Y_Q4_0_AMPERE; - nwarps = NWARPS_Q4_0_AMPERE; - } else if (compute_capability >= VER_4VEC) { - mmq_x = MMQ_X_Q4_0_PASCAL; - mmq_y = MMQ_Y_Q4_0_PASCAL; - nwarps = NWARPS_Q4_0_PASCAL; - } else { - GGML_ASSERT(false); - } - - const int block_num_x = (nrows_x + mmq_y - 1) / mmq_y; - const int block_num_y = (ncols_y + mmq_x - 1) / mmq_x; - const sycl::range<3> block_nums(1, block_num_y, block_num_x); - const sycl::range<3> block_dims(1, nwarps, WARP_SIZE); - - if (nrows_x % mmq_y == 0) { - const bool need_check = false; - /* - DPCT1049:20: The work-group size passed to the SYCL kernel may exceed - the limit. To get the device limit, query - info::device::max_work_group_size. Adjust the work-group size if needed. - */ - { - dpct::has_capability_or_fail(stream->get_device(), - {sycl::aspect::fp16}); - - stream->submit([&](sycl::handler &cgh) { - sycl::local_accessor tile_x_qs_q4_0_acc_ct1( - sycl::range<1>(mmq_y * (WARP_SIZE) + mmq_y), cgh); - sycl::local_accessor tile_x_d_q4_0_acc_ct1( - sycl::range<1>(mmq_y * (WARP_SIZE / QI4_0) + mmq_y / QI4_0), - cgh); - sycl::local_accessor tile_y_qs_acc_ct1( - sycl::range<1>(mmq_x * WARP_SIZE), cgh); - sycl::local_accessor tile_y_ds_acc_ct1( - sycl::range<1>(mmq_x * WARP_SIZE / QI8_1), cgh); - - cgh.parallel_for( - sycl::nd_range<3>(block_nums * block_dims, block_dims), - [=](sycl::nd_item<3> item_ct1) { - mul_mat_q4_0( - vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, - nrows_dst, item_ct1, - tile_x_qs_q4_0_acc_ct1.get_pointer(), - tile_x_d_q4_0_acc_ct1.get_pointer(), - tile_y_qs_acc_ct1.get_pointer(), - tile_y_ds_acc_ct1.get_pointer()); - }); - }); - } - } else { - const bool need_check = true; - /* - DPCT1049:21: The work-group size passed to the SYCL kernel may exceed - the limit. To get the device limit, query - info::device::max_work_group_size. Adjust the work-group size if needed. - */ - { - dpct::has_capability_or_fail(stream->get_device(), - {sycl::aspect::fp16}); - - stream->submit([&](sycl::handler &cgh) { - sycl::local_accessor tile_x_qs_q4_0_acc_ct1( - sycl::range<1>(mmq_y * (WARP_SIZE) + mmq_y), cgh); - sycl::local_accessor tile_x_d_q4_0_acc_ct1( - sycl::range<1>(mmq_y * (WARP_SIZE / QI4_0) + mmq_y / QI4_0), - cgh); - sycl::local_accessor tile_y_qs_acc_ct1( - sycl::range<1>(mmq_x * WARP_SIZE), cgh); - sycl::local_accessor tile_y_ds_acc_ct1( - sycl::range<1>(mmq_x * WARP_SIZE / QI8_1), cgh); - - cgh.parallel_for( - sycl::nd_range<3>(block_nums * block_dims, block_dims), - [=](sycl::nd_item<3> item_ct1) { - mul_mat_q4_0( - vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, - nrows_dst, item_ct1, - tile_x_qs_q4_0_acc_ct1.get_pointer(), - tile_x_d_q4_0_acc_ct1.get_pointer(), - tile_y_qs_acc_ct1.get_pointer(), - tile_y_ds_acc_ct1.get_pointer()); - }); - }); - } - } -} -catch (sycl::exception const &exc) { - std::cerr << exc.what() << "Exception caught at file:" << __FILE__ - << ", line:" << __LINE__ << std::endl; - std::exit(1); -} - -static void ggml_mul_mat_q4_1_q8_1_sycl(const void *vx, const void *vy, - float *dst, const int ncols_x, - const int nrows_x, const int ncols_y, - const int nrows_y, const int nrows_dst, - queue_ptr stream) try { - - int id; - SYCL_CHECK( - CHECK_TRY_ERROR(id = get_current_device_id())); - const int compute_capability = ggml_sycl_info().devices[id].cc; - - int mmq_x, mmq_y, nwarps; - if (compute_capability >= VER_GEN13) { - mmq_x = MMQ_X_Q4_1_RDNA2; - mmq_y = MMQ_Y_Q4_1_RDNA2; - nwarps = NWARPS_Q4_1_RDNA2; - } else if (compute_capability >= VER_GEN12) { - mmq_x = MMQ_X_Q4_1_RDNA1; - mmq_y = MMQ_Y_Q4_1_RDNA1; - nwarps = NWARPS_Q4_1_RDNA1; - } else if (compute_capability >= VER_GEN9) { - mmq_x = MMQ_X_Q4_1_AMPERE; - mmq_y = MMQ_Y_Q4_1_AMPERE; - nwarps = NWARPS_Q4_1_AMPERE; - } else if (compute_capability >= VER_4VEC) { - mmq_x = MMQ_X_Q4_1_PASCAL; - mmq_y = MMQ_Y_Q4_1_PASCAL; - nwarps = NWARPS_Q4_1_PASCAL; - } else { - GGML_ASSERT(false); - } - - const int block_num_x = (nrows_x + mmq_y - 1) / mmq_y; - const int block_num_y = (ncols_y + mmq_x - 1) / mmq_x; - const sycl::range<3> block_nums(1, block_num_y, block_num_x); - const sycl::range<3> block_dims(1, nwarps, WARP_SIZE); - - if (nrows_x % mmq_y == 0) { - const bool need_check = false; - /* - DPCT1049:22: The work-group size passed to the SYCL kernel may exceed - the limit. To get the device limit, query - info::device::max_work_group_size. Adjust the work-group size if needed. - */ - { - dpct::has_capability_or_fail(stream->get_device(), - {sycl::aspect::fp16}); - - stream->submit([&](sycl::handler &cgh) { - sycl::local_accessor tile_x_qs_q4_1_acc_ct1( - sycl::range<1>(mmq_y * (WARP_SIZE) + +mmq_y), cgh); - sycl::local_accessor tile_x_dm_q4_1_acc_ct1( - sycl::range<1>(mmq_y * (WARP_SIZE / QI4_1) + mmq_y / QI4_1), - cgh); - sycl::local_accessor tile_y_qs_acc_ct1( - sycl::range<1>(mmq_x * WARP_SIZE), cgh); - sycl::local_accessor tile_y_ds_acc_ct1( - sycl::range<1>(mmq_x * WARP_SIZE / QI8_1), cgh); - - cgh.parallel_for( - sycl::nd_range<3>(block_nums * block_dims, block_dims), - [=](sycl::nd_item<3> item_ct1) { - mul_mat_q4_1( - vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, - nrows_dst, item_ct1, - tile_x_qs_q4_1_acc_ct1.get_pointer(), - tile_x_dm_q4_1_acc_ct1.get_pointer(), - tile_y_qs_acc_ct1.get_pointer(), - tile_y_ds_acc_ct1.get_pointer()); - }); - }); - } - } else { - const bool need_check = true; - /* - DPCT1049:23: The work-group size passed to the SYCL kernel may exceed - the limit. To get the device limit, query - info::device::max_work_group_size. Adjust the work-group size if needed. - */ - { - dpct::has_capability_or_fail(stream->get_device(), - {sycl::aspect::fp16}); - - stream->submit([&](sycl::handler &cgh) { - sycl::local_accessor tile_x_qs_q4_1_acc_ct1( - sycl::range<1>(mmq_y * (WARP_SIZE) + +mmq_y), cgh); - sycl::local_accessor tile_x_dm_q4_1_acc_ct1( - sycl::range<1>(mmq_y * (WARP_SIZE / QI4_1) + mmq_y / QI4_1), - cgh); - sycl::local_accessor tile_y_qs_acc_ct1( - sycl::range<1>(mmq_x * WARP_SIZE), cgh); - sycl::local_accessor tile_y_ds_acc_ct1( - sycl::range<1>(mmq_x * WARP_SIZE / QI8_1), cgh); - - cgh.parallel_for( - sycl::nd_range<3>(block_nums * block_dims, block_dims), - [=](sycl::nd_item<3> item_ct1) { - mul_mat_q4_1( - vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, - nrows_dst, item_ct1, - tile_x_qs_q4_1_acc_ct1.get_pointer(), - tile_x_dm_q4_1_acc_ct1.get_pointer(), - tile_y_qs_acc_ct1.get_pointer(), - tile_y_ds_acc_ct1.get_pointer()); - }); - }); - } - } -} -catch (sycl::exception const &exc) { - std::cerr << exc.what() << "Exception caught at file:" << __FILE__ - << ", line:" << __LINE__ << std::endl; - std::exit(1); -} - -static void ggml_mul_mat_q5_0_q8_1_sycl(const void *vx, const void *vy, - float *dst, const int ncols_x, - const int nrows_x, const int ncols_y, - const int nrows_y, const int nrows_dst, - queue_ptr stream) try { - - int id; - SYCL_CHECK( - CHECK_TRY_ERROR(id = get_current_device_id())); - const int compute_capability = ggml_sycl_info().devices[id].cc; - - int mmq_x, mmq_y, nwarps; - if (compute_capability >= VER_GEN13) { - mmq_x = MMQ_X_Q5_0_RDNA2; - mmq_y = MMQ_Y_Q5_0_RDNA2; - nwarps = NWARPS_Q5_0_RDNA2; - } else if (compute_capability >= VER_GEN12) { - mmq_x = MMQ_X_Q5_0_RDNA1; - mmq_y = MMQ_Y_Q5_0_RDNA1; - nwarps = NWARPS_Q5_0_RDNA1; - } else if (compute_capability >= VER_GEN9) { - mmq_x = MMQ_X_Q5_0_AMPERE; - mmq_y = MMQ_Y_Q5_0_AMPERE; - nwarps = NWARPS_Q5_0_AMPERE; - } else if (compute_capability >= VER_4VEC) { - mmq_x = MMQ_X_Q5_0_PASCAL; - mmq_y = MMQ_Y_Q5_0_PASCAL; - nwarps = NWARPS_Q5_0_PASCAL; - } else { - GGML_ASSERT(false); - } - - const int block_num_x = (nrows_x + mmq_y - 1) / mmq_y; - const int block_num_y = (ncols_y + mmq_x - 1) / mmq_x; - const sycl::range<3> block_nums(1, block_num_y, block_num_x); - const sycl::range<3> block_dims(1, nwarps, WARP_SIZE); - - if (nrows_x % mmq_y == 0) { - const bool need_check = false; - /* - DPCT1049:24: The work-group size passed to the SYCL kernel may exceed - the limit. To get the device limit, query - info::device::max_work_group_size. Adjust the work-group size if needed. - */ - { - dpct::has_capability_or_fail(stream->get_device(), - {sycl::aspect::fp16}); - - stream->submit([&](sycl::handler &cgh) { - sycl::local_accessor tile_x_ql_q5_0_acc_ct1( - sycl::range<1>(mmq_y * (2 * WARP_SIZE) + mmq_y), cgh); - sycl::local_accessor tile_x_d_q5_0_acc_ct1( - sycl::range<1>(mmq_y * (WARP_SIZE / QI5_0) + mmq_y / QI5_0), - cgh); - sycl::local_accessor tile_y_qs_acc_ct1( - sycl::range<1>(mmq_x * WARP_SIZE), cgh); - sycl::local_accessor tile_y_ds_acc_ct1( - sycl::range<1>(mmq_x * WARP_SIZE / QI8_1), cgh); - - cgh.parallel_for( - sycl::nd_range<3>(block_nums * block_dims, block_dims), - [=](sycl::nd_item<3> item_ct1) { - mul_mat_q5_0( - vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, - nrows_dst, item_ct1, - tile_x_ql_q5_0_acc_ct1.get_pointer(), - tile_x_d_q5_0_acc_ct1.get_pointer(), - tile_y_qs_acc_ct1.get_pointer(), - tile_y_ds_acc_ct1.get_pointer()); - }); - }); + for (int i = 0; i < 4; i++) { + if (nr[i] != 1) { + break; + } + if (i > 0) { + collapse_nb(cnb0, cne0); + collapse_nb(cnb1, cne1); + collapse(cne0); + collapse(cne1); + } } - } else { - const bool need_check = true; - /* - DPCT1049:25: The work-group size passed to the SYCL kernel may exceed - the limit. To get the device limit, query - info::device::max_work_group_size. Adjust the work-group size if needed. - */ { - dpct::has_capability_or_fail(stream->get_device(), - {sycl::aspect::fp16}); + int64_t ne0 = cne0[0]; + int64_t ne1 = cne0[1]; + int64_t ne2 = cne0[2]; + int64_t ne3 = cne0[3]; - stream->submit([&](sycl::handler &cgh) { - sycl::local_accessor tile_x_ql_q5_0_acc_ct1( - sycl::range<1>(mmq_y * (2 * WARP_SIZE) + mmq_y), cgh); - sycl::local_accessor tile_x_d_q5_0_acc_ct1( - sycl::range<1>(mmq_y * (WARP_SIZE / QI5_0) + mmq_y / QI5_0), - cgh); - sycl::local_accessor tile_y_qs_acc_ct1( - sycl::range<1>(mmq_x * WARP_SIZE), cgh); - sycl::local_accessor tile_y_ds_acc_ct1( - sycl::range<1>(mmq_x * WARP_SIZE / QI8_1), cgh); - - cgh.parallel_for( - sycl::nd_range<3>(block_nums * block_dims, block_dims), - [=](sycl::nd_item<3> item_ct1) { - mul_mat_q5_0( - vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, - nrows_dst, item_ct1, - tile_x_ql_q5_0_acc_ct1.get_pointer(), - tile_x_d_q5_0_acc_ct1.get_pointer(), - tile_y_qs_acc_ct1.get_pointer(), - tile_y_ds_acc_ct1.get_pointer()); - }); - }); - } - } -} -catch (sycl::exception const &exc) { - std::cerr << exc.what() << "Exception caught at file:" << __FILE__ - << ", line:" << __LINE__ << std::endl; - std::exit(1); -} + int64_t ne10 = cne1[0]; + int64_t ne11 = cne1[1]; + int64_t ne12 = cne1[2]; + int64_t ne13 = cne1[3]; -static void ggml_mul_mat_q5_1_q8_1_sycl(const void *vx, const void *vy, - float *dst, const int ncols_x, - const int nrows_x, const int ncols_y, - const int nrows_y, const int nrows_dst, - queue_ptr stream) try { + size_t nb0 = cnb0[0]; + size_t nb1 = cnb0[1]; + size_t nb2 = cnb0[2]; + size_t nb3 = cnb0[3]; - int id; - SYCL_CHECK( - CHECK_TRY_ERROR(id = get_current_device_id())); - const int compute_capability = ggml_sycl_info().devices[id].cc; - - int mmq_x, mmq_y, nwarps; - if (compute_capability >= VER_GEN13) { - mmq_x = MMQ_X_Q5_1_RDNA2; - mmq_y = MMQ_Y_Q5_1_RDNA2; - nwarps = NWARPS_Q5_1_RDNA2; - } else if (compute_capability >= VER_GEN12) { - mmq_x = MMQ_X_Q5_1_RDNA1; - mmq_y = MMQ_Y_Q5_1_RDNA1; - nwarps = NWARPS_Q5_1_RDNA1; - } else if (compute_capability >= VER_GEN9) { - mmq_x = MMQ_X_Q5_1_AMPERE; - mmq_y = MMQ_Y_Q5_1_AMPERE; - nwarps = NWARPS_Q5_1_AMPERE; - } else if (compute_capability >= VER_4VEC) { - mmq_x = MMQ_X_Q5_1_PASCAL; - mmq_y = MMQ_Y_Q5_1_PASCAL; - nwarps = NWARPS_Q5_1_PASCAL; - } else { - GGML_ASSERT(false); - } + size_t nb10 = cnb1[0]; + size_t nb11 = cnb1[1]; + size_t nb12 = cnb1[2]; + size_t nb13 = cnb1[3]; - const int block_num_x = (nrows_x + mmq_y - 1) / mmq_y; - const int block_num_y = (ncols_y + mmq_x - 1) / mmq_x; - const sycl::range<3> block_nums(1, block_num_y, block_num_x); - const sycl::range<3> block_dims(1, nwarps, WARP_SIZE); + size_t s0 = nb0 / sizeof(dst_t); + size_t s1 = nb1 / sizeof(dst_t); + size_t s2 = nb2 / sizeof(dst_t); + size_t s3 = nb3 / sizeof(dst_t); - if (nrows_x % mmq_y == 0) { - const bool need_check = false; - /* - DPCT1049:26: The work-group size passed to the SYCL kernel may exceed - the limit. To get the device limit, query - info::device::max_work_group_size. Adjust the work-group size if needed. - */ - { - dpct::has_capability_or_fail(stream->get_device(), - {sycl::aspect::fp16}); + size_t s10 = nb10 / sizeof(src1_t); + size_t s11 = nb11 / sizeof(src1_t); + size_t s12 = nb12 / sizeof(src1_t); + size_t s13 = nb13 / sizeof(src1_t); - stream->submit([&](sycl::handler &cgh) { - sycl::local_accessor tile_x_ql_q5_1_acc_ct1( - sycl::range<1>(mmq_y * (2 * WARP_SIZE) + mmq_y), cgh); - sycl::local_accessor tile_x_dm_q5_1_acc_ct1( - sycl::range<1>(mmq_y * (WARP_SIZE / QI5_1) + mmq_y / QI5_1), - cgh); - sycl::local_accessor tile_y_qs_acc_ct1( - sycl::range<1>(mmq_x * WARP_SIZE), cgh); - sycl::local_accessor tile_y_ds_acc_ct1( - sycl::range<1>(mmq_x * WARP_SIZE / QI8_1), cgh); - - cgh.parallel_for( - sycl::nd_range<3>(block_nums * block_dims, block_dims), - [=](sycl::nd_item<3> item_ct1) { - mul_mat_q5_1( - vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, - nrows_dst, item_ct1, - tile_x_ql_q5_1_acc_ct1.get_pointer(), - tile_x_dm_q5_1_acc_ct1.get_pointer(), - tile_y_qs_acc_ct1.get_pointer(), - tile_y_ds_acc_ct1.get_pointer()); - }); - }); - } - } else { - const bool need_check = true; - /* - DPCT1049:27: The work-group size passed to the SYCL kernel may exceed - the limit. To get the device limit, query - info::device::max_work_group_size. Adjust the work-group size if needed. - */ - { - dpct::has_capability_or_fail(stream->get_device(), - {sycl::aspect::fp16}); + GGML_ASSERT(s0 == 1); + GGML_ASSERT(s10 == 1); - stream->submit([&](sycl::handler &cgh) { - sycl::local_accessor tile_x_ql_q5_1_acc_ct1( - sycl::range<1>(mmq_y * (2 * WARP_SIZE) + mmq_y), cgh); - sycl::local_accessor tile_x_dm_q5_1_acc_ct1( - sycl::range<1>(mmq_y * (WARP_SIZE / QI5_1) + mmq_y / QI5_1), - cgh); - sycl::local_accessor tile_y_qs_acc_ct1( - sycl::range<1>(mmq_x * WARP_SIZE), cgh); - sycl::local_accessor tile_y_ds_acc_ct1( - sycl::range<1>(mmq_x * WARP_SIZE / QI8_1), cgh); - - cgh.parallel_for( - sycl::nd_range<3>(block_nums * block_dims, block_dims), - [=](sycl::nd_item<3> item_ct1) { - mul_mat_q5_1( - vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, - nrows_dst, item_ct1, - tile_x_ql_q5_1_acc_ct1.get_pointer(), - tile_x_dm_q5_1_acc_ct1.get_pointer(), - tile_y_qs_acc_ct1.get_pointer(), - tile_y_ds_acc_ct1.get_pointer()); - }); - }); - } - } -} -catch (sycl::exception const &exc) { - std::cerr << exc.what() << "Exception caught at file:" << __FILE__ - << ", line:" << __LINE__ << std::endl; - std::exit(1); -} + const int block_size = 128; -static void ggml_mul_mat_q8_0_q8_1_sycl(const void *vx, const void *vy, - float *dst, const int ncols_x, - const int nrows_x, const int ncols_y, - const int nrows_y, const int nrows_dst, - queue_ptr stream) try { + int64_t hne0 = std::max(ne0/2LL, 1LL); - int id; - SYCL_CHECK( - CHECK_TRY_ERROR(id = get_current_device_id())); - const int compute_capability = ggml_sycl_info().devices[id].cc; - - int mmq_x, mmq_y, nwarps; - if (compute_capability >= VER_GEN13) { - mmq_x = MMQ_X_Q8_0_RDNA2; - mmq_y = MMQ_Y_Q8_0_RDNA2; - nwarps = NWARPS_Q8_0_RDNA2; - } else if (compute_capability >= VER_GEN12) { - mmq_x = MMQ_X_Q8_0_RDNA1; - mmq_y = MMQ_Y_Q8_0_RDNA1; - nwarps = NWARPS_Q8_0_RDNA1; - } else if (compute_capability >= VER_GEN9) { - mmq_x = MMQ_X_Q8_0_AMPERE; - mmq_y = MMQ_Y_Q8_0_AMPERE; - nwarps = NWARPS_Q8_0_AMPERE; - } else if (compute_capability >= VER_4VEC) { - mmq_x = MMQ_X_Q8_0_PASCAL; - mmq_y = MMQ_Y_Q8_0_PASCAL; - nwarps = NWARPS_Q8_0_PASCAL; - } else { - GGML_ASSERT(false); - } + sycl::range<3> block_dims(1, 1, 1); + block_dims[2] = std::min(hne0, block_size); + block_dims[1] = std::min( + ne1, block_size / (unsigned int)block_dims[2]); + block_dims[0] = std::min( + std::min( + ne2 * ne3, block_size / (unsigned int)block_dims[2] / + (unsigned int)block_dims[1]), + 64U); - const int block_num_x = (nrows_x + mmq_y - 1) / mmq_y; - const int block_num_y = (ncols_y + mmq_x - 1) / mmq_x; - const sycl::range<3> block_nums(1, block_num_y, block_num_x); - const sycl::range<3> block_dims(1, nwarps, WARP_SIZE); + sycl::range<3> block_nums( + (ne2 * ne3 + block_dims[0] - 1) / block_dims[0], + (ne1 + block_dims[1] - 1) / block_dims[1], + (hne0 + block_dims[2] - 1) / block_dims[2]); - if (nrows_x % mmq_y == 0) { - const bool need_check = false; - /* - DPCT1049:28: The work-group size passed to the SYCL kernel may exceed - the limit. To get the device limit, query - info::device::max_work_group_size. Adjust the work-group size if needed. - */ - { - dpct::has_capability_or_fail(stream->get_device(), - {sycl::aspect::fp16}); + if (block_nums[0] > 65535) { + // this is the maximum number of blocks in z direction, fallback to 1D grid kernel + int block_num = (ne0*ne1*ne2*ne3 + block_size - 1) / block_size; + { + dpct::has_capability_or_fail(stream->get_device(), + {sycl::aspect::fp16}); - stream->submit([&](sycl::handler &cgh) { - sycl::local_accessor tile_x_qs_q8_0_acc_ct1( - sycl::range<1>(mmq_y * (WARP_SIZE) + mmq_y), cgh); - sycl::local_accessor tile_x_d_q8_0_acc_ct1( - sycl::range<1>(mmq_y * (WARP_SIZE / QI8_0) + mmq_y / QI8_0), - cgh); - sycl::local_accessor tile_y_qs_acc_ct1( - sycl::range<1>(mmq_x * WARP_SIZE), cgh); - sycl::local_accessor tile_y_ds_acc_ct1( - sycl::range<1>(mmq_x * WARP_SIZE / QI8_1), cgh); - - cgh.parallel_for( - sycl::nd_range<3>(block_nums * block_dims, block_dims), - [=](sycl::nd_item<3> item_ct1) { - mul_mat_q8_0( - vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, - nrows_dst, item_ct1, - tile_x_qs_q8_0_acc_ct1.get_pointer(), - tile_x_d_q8_0_acc_ct1.get_pointer(), - tile_y_qs_acc_ct1.get_pointer(), - tile_y_ds_acc_ct1.get_pointer()); - }); - }); - } - } else { - const bool need_check = true; - /* - DPCT1049:29: The work-group size passed to the SYCL kernel may exceed - the limit. To get the device limit, query - info::device::max_work_group_size. Adjust the work-group size if needed. - */ - { - dpct::has_capability_or_fail(stream->get_device(), - {sycl::aspect::fp16}); + stream->parallel_for( + sycl::nd_range<3>(sycl::range<3>(1, 1, block_num) * + sycl::range<3>(1, 1, block_size), + sycl::range<3>(1, 1, block_size)), + [=](sycl::nd_item<3> item_ct1) { + k_bin_bcast_unravel( + src0_dd, src1_dd, dst_dd, ne0, ne1, ne2, ne3, + ne10, ne11, ne12, ne13, s1, s2, s3, s11, s12, + s13, item_ct1); + }); + } + } else { + /* + DPCT1049:16: The work-group size passed to the SYCL kernel may + exceed the limit. To get the device limit, query + info::device::max_work_group_size. Adjust the work-group size if + needed. + */ + dpct::has_capability_or_fail(stream->get_device(), + {sycl::aspect::fp16}); - stream->submit([&](sycl::handler &cgh) { - sycl::local_accessor tile_x_qs_q8_0_acc_ct1( - sycl::range<1>(mmq_y * (WARP_SIZE) + mmq_y), cgh); - sycl::local_accessor tile_x_d_q8_0_acc_ct1( - sycl::range<1>(mmq_y * (WARP_SIZE / QI8_0) + mmq_y / QI8_0), - cgh); - sycl::local_accessor tile_y_qs_acc_ct1( - sycl::range<1>(mmq_x * WARP_SIZE), cgh); - sycl::local_accessor tile_y_ds_acc_ct1( - sycl::range<1>(mmq_x * WARP_SIZE / QI8_1), cgh); - - cgh.parallel_for( + stream->parallel_for( sycl::nd_range<3>(block_nums * block_dims, block_dims), [=](sycl::nd_item<3> item_ct1) { - mul_mat_q8_0( - vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, - nrows_dst, item_ct1, - tile_x_qs_q8_0_acc_ct1.get_pointer(), - tile_x_d_q8_0_acc_ct1.get_pointer(), - tile_y_qs_acc_ct1.get_pointer(), - tile_y_ds_acc_ct1.get_pointer()); + k_bin_bcast(src0_dd, src1_dd, dst_dd, ne0, ne1, + ne2, ne3, ne10, ne11, ne12, ne13, + s1, s2, s3, s11, s12, s13, + item_ct1); }); - }); + } } } -} -catch (sycl::exception const &exc) { - std::cerr << exc.what() << "Exception caught at file:" << __FILE__ - << ", line:" << __LINE__ << std::endl; - std::exit(1); -} +}; -static void ggml_mul_mat_q2_K_q8_1_sycl(const void *vx, const void *vy, - float *dst, const int ncols_x, - const int nrows_x, const int ncols_y, - const int nrows_y, const int nrows_dst, - queue_ptr stream) try { +static void acc_f32_sycl(const float *x, const float *y, float *dst, + const int n_elements, const int ne10, const int ne11, + const int ne12, const int nb1, const int nb2, + const int offset, queue_ptr stream) { + int num_blocks = (n_elements + SYCL_ACC_BLOCK_SIZE - 1) / SYCL_ACC_BLOCK_SIZE; + stream->parallel_for( + sycl::nd_range<3>(sycl::range<3>(1, 1, num_blocks) * + sycl::range<3>(1, 1, SYCL_ACC_BLOCK_SIZE), + sycl::range<3>(1, 1, SYCL_ACC_BLOCK_SIZE)), + [=](sycl::nd_item<3> item_ct1) { + acc_f32(x, y, dst, n_elements, ne10, ne11, ne12, nb1, nb2, offset, + item_ct1); + }); +} - int id; - SYCL_CHECK( - CHECK_TRY_ERROR(id = get_current_device_id())); - const int compute_capability = ggml_sycl_info().devices[id].cc; - - int mmq_x, mmq_y, nwarps; - if (compute_capability >= VER_GEN13) { - mmq_x = MMQ_X_Q2_K_RDNA2; - mmq_y = MMQ_Y_Q2_K_RDNA2; - nwarps = NWARPS_Q2_K_RDNA2; - } else if (compute_capability >= VER_GEN12) { - mmq_x = MMQ_X_Q2_K_RDNA1; - mmq_y = MMQ_Y_Q2_K_RDNA1; - nwarps = NWARPS_Q2_K_RDNA1; - } else if (compute_capability >= VER_GEN9) { - mmq_x = MMQ_X_Q2_K_AMPERE; - mmq_y = MMQ_Y_Q2_K_AMPERE; - nwarps = NWARPS_Q2_K_AMPERE; - } else if (compute_capability >= VER_4VEC) { - mmq_x = MMQ_X_Q2_K_PASCAL; - mmq_y = MMQ_Y_Q2_K_PASCAL; - nwarps = NWARPS_Q2_K_PASCAL; - } else { - GGML_ASSERT(false); - } +static void gelu_f32_sycl(const float *x, float *dst, const int k, + queue_ptr stream) { + const int num_blocks = (k + SYCL_GELU_BLOCK_SIZE - 1) / SYCL_GELU_BLOCK_SIZE; + stream->parallel_for( + sycl::nd_range<3>(sycl::range<3>(1, 1, num_blocks) * + sycl::range<3>(1, 1, SYCL_GELU_BLOCK_SIZE), + sycl::range<3>(1, 1, SYCL_GELU_BLOCK_SIZE)), + [=](sycl::nd_item<3> item_ct1) { + gelu_f32(x, dst, k, item_ct1); + }); +} - const int block_num_x = (nrows_x + mmq_y - 1) / mmq_y; - const int block_num_y = (ncols_y + mmq_x - 1) / mmq_x; - const sycl::range<3> block_nums(1, block_num_y, block_num_x); - const sycl::range<3> block_dims(1, nwarps, WARP_SIZE); +static void silu_f32_sycl(const float *x, float *dst, const int k, + queue_ptr stream) { + const int num_blocks = (k + SYCL_SILU_BLOCK_SIZE - 1) / SYCL_SILU_BLOCK_SIZE; + stream->parallel_for( + sycl::nd_range<3>(sycl::range<3>(1, 1, num_blocks) * + sycl::range<3>(1, 1, SYCL_SILU_BLOCK_SIZE), + sycl::range<3>(1, 1, SYCL_SILU_BLOCK_SIZE)), + [=](sycl::nd_item<3> item_ct1) { + silu_f32(x, dst, k, item_ct1); + }); +} - if (nrows_x % mmq_y == 0) { - const bool need_check = false; - /* - DPCT1049:30: The work-group size passed to the SYCL kernel may exceed - the limit. To get the device limit, query - info::device::max_work_group_size. Adjust the work-group size if needed. - */ - { - dpct::has_capability_or_fail(stream->get_device(), - {sycl::aspect::fp16}); +static void gelu_quick_f32_sycl(const float *x, float *dst, const int k, + queue_ptr stream) { + const int num_blocks = (k + SYCL_GELU_BLOCK_SIZE - 1) / SYCL_GELU_BLOCK_SIZE; + stream->parallel_for( + sycl::nd_range<3>(sycl::range<3>(1, 1, num_blocks) * + sycl::range<3>(1, 1, SYCL_GELU_BLOCK_SIZE), + sycl::range<3>(1, 1, SYCL_GELU_BLOCK_SIZE)), + [=](sycl::nd_item<3> item_ct1) { + gelu_quick_f32(x, dst, k, item_ct1); + }); +} - stream->submit([&](sycl::handler &cgh) { - sycl::local_accessor tile_x_ql_q2_K_acc_ct1( - sycl::range<1>(mmq_y * (WARP_SIZE) + mmq_y), cgh); - sycl::local_accessor tile_x_dm_q2_K_acc_ct1( - sycl::range<1>(mmq_y * (WARP_SIZE / QI2_K) + mmq_y / QI2_K), - cgh); - sycl::local_accessor tile_x_sc_q2_K_acc_ct1( - sycl::range<1>(mmq_y * (WARP_SIZE / 4) + mmq_y / 4), cgh); - sycl::local_accessor tile_y_qs_acc_ct1( - sycl::range<1>(mmq_x * WARP_SIZE), cgh); - sycl::local_accessor tile_y_ds_acc_ct1( - sycl::range<1>(mmq_x * WARP_SIZE / QI8_1), cgh); - - cgh.parallel_for( - sycl::nd_range<3>(block_nums * block_dims, block_dims), - [=](sycl::nd_item<3> item_ct1) { - mul_mat_q2_K( - vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, - nrows_dst, item_ct1, - tile_x_ql_q2_K_acc_ct1.get_pointer(), - tile_x_dm_q2_K_acc_ct1.get_pointer(), - tile_x_sc_q2_K_acc_ct1.get_pointer(), - tile_y_qs_acc_ct1.get_pointer(), - tile_y_ds_acc_ct1.get_pointer()); - }); - }); - } - } else { - const bool need_check = true; - /* - DPCT1049:31: The work-group size passed to the SYCL kernel may exceed - the limit. To get the device limit, query - info::device::max_work_group_size. Adjust the work-group size if needed. - */ - { - dpct::has_capability_or_fail(stream->get_device(), - {sycl::aspect::fp16}); +static void tanh_f32_sycl(const float *x, float *dst, const int k, + queue_ptr stream) { + const int num_blocks = (k + SYCL_TANH_BLOCK_SIZE - 1) / SYCL_TANH_BLOCK_SIZE; + stream->parallel_for( + sycl::nd_range<3>(sycl::range<3>(1, 1, num_blocks) * + sycl::range<3>(1, 1, SYCL_TANH_BLOCK_SIZE), + sycl::range<3>(1, 1, SYCL_TANH_BLOCK_SIZE)), + [=](sycl::nd_item<3> item_ct1) { + tanh_f32(x, dst, k, item_ct1); + }); +} - stream->submit([&](sycl::handler &cgh) { - sycl::local_accessor tile_x_ql_q2_K_acc_ct1( - sycl::range<1>(mmq_y * (WARP_SIZE) + mmq_y), cgh); - sycl::local_accessor tile_x_dm_q2_K_acc_ct1( - sycl::range<1>(mmq_y * (WARP_SIZE / QI2_K) + mmq_y / QI2_K), - cgh); - sycl::local_accessor tile_x_sc_q2_K_acc_ct1( - sycl::range<1>(mmq_y * (WARP_SIZE / 4) + mmq_y / 4), cgh); - sycl::local_accessor tile_y_qs_acc_ct1( - sycl::range<1>(mmq_x * WARP_SIZE), cgh); - sycl::local_accessor tile_y_ds_acc_ct1( - sycl::range<1>(mmq_x * WARP_SIZE / QI8_1), cgh); - - cgh.parallel_for( - sycl::nd_range<3>(block_nums * block_dims, block_dims), - [=](sycl::nd_item<3> item_ct1) { - mul_mat_q2_K( - vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, - nrows_dst, item_ct1, - tile_x_ql_q2_K_acc_ct1.get_pointer(), - tile_x_dm_q2_K_acc_ct1.get_pointer(), - tile_x_sc_q2_K_acc_ct1.get_pointer(), - tile_y_qs_acc_ct1.get_pointer(), - tile_y_ds_acc_ct1.get_pointer()); - }); - }); - } - } +static void relu_f32_sycl(const float *x, float *dst, const int k, + queue_ptr stream) { + const int num_blocks = (k + SYCL_RELU_BLOCK_SIZE - 1) / SYCL_RELU_BLOCK_SIZE; + stream->parallel_for( + sycl::nd_range<3>(sycl::range<3>(1, 1, num_blocks) * + sycl::range<3>(1, 1, SYCL_RELU_BLOCK_SIZE), + sycl::range<3>(1, 1, SYCL_RELU_BLOCK_SIZE)), + [=](sycl::nd_item<3> item_ct1) { + relu_f32(x, dst, k, item_ct1); + }); } -catch (sycl::exception const &exc) { - std::cerr << exc.what() << "Exception caught at file:" << __FILE__ - << ", line:" << __LINE__ << std::endl; - std::exit(1); + +static void hardsigmoid_f32_sycl(const float *x, float *dst, const int k, + queue_ptr stream) { + const int num_blocks = (k + SYCL_HARDSIGMOID_BLOCK_SIZE - 1) / SYCL_HARDSIGMOID_BLOCK_SIZE; + stream->parallel_for( + sycl::nd_range<3>(sycl::range<3>(1, 1, num_blocks) * + sycl::range<3>(1, 1, SYCL_HARDSIGMOID_BLOCK_SIZE), + sycl::range<3>(1, 1, SYCL_HARDSIGMOID_BLOCK_SIZE)), + [=](sycl::nd_item<3> item_ct1) { + hardsigmoid_f32(x, dst, k, item_ct1); + }); } -static void ggml_mul_mat_q3_K_q8_1_sycl(const void *vx, const void *vy, - float *dst, const int ncols_x, - const int nrows_x, const int ncols_y, - const int nrows_y, const int nrows_dst, - queue_ptr stream) try { +static void hardswish_f32_sycl(const float *x, float *dst, const int k, + queue_ptr stream) { + const int num_blocks = (k + SYCL_HARDSWISH_BLOCK_SIZE - 1) / SYCL_HARDSWISH_BLOCK_SIZE; + stream->parallel_for( + sycl::nd_range<3>(sycl::range<3>(1, 1, num_blocks) * + sycl::range<3>(1, 1, SYCL_HARDSWISH_BLOCK_SIZE), + sycl::range<3>(1, 1, SYCL_HARDSWISH_BLOCK_SIZE)), + [=](sycl::nd_item<3> item_ct1) { + hardswish_f32(x, dst, k, item_ct1); + }); +} - int id; - SYCL_CHECK( - CHECK_TRY_ERROR(id = get_current_device_id())); - const int compute_capability = ggml_sycl_info().devices[id].cc; - - int mmq_x, mmq_y, nwarps; - if (compute_capability >= VER_GEN13) { - mmq_x = MMQ_X_Q3_K_RDNA2; - mmq_y = MMQ_Y_Q3_K_RDNA2; - nwarps = NWARPS_Q3_K_RDNA2; - } else if (compute_capability >= VER_GEN12) { - mmq_x = MMQ_X_Q3_K_RDNA1; - mmq_y = MMQ_Y_Q3_K_RDNA1; - nwarps = NWARPS_Q3_K_RDNA1; - } else if (compute_capability >= VER_GEN9) { - mmq_x = MMQ_X_Q3_K_AMPERE; - mmq_y = MMQ_Y_Q3_K_AMPERE; - nwarps = NWARPS_Q3_K_AMPERE; - } else if (compute_capability >= VER_4VEC) { - mmq_x = MMQ_X_Q3_K_PASCAL; - mmq_y = MMQ_Y_Q3_K_PASCAL; - nwarps = NWARPS_Q3_K_PASCAL; - } else { - GGML_ASSERT(false); - } +static void leaky_relu_f32_sycl(const float *x, float *dst, const int k, + const float negative_slope, + queue_ptr stream) { + const int num_blocks = (k + SYCL_RELU_BLOCK_SIZE - 1) / SYCL_RELU_BLOCK_SIZE; + stream->parallel_for( + sycl::nd_range<3>(sycl::range<3>(1, 1, num_blocks) * + sycl::range<3>(1, 1, SYCL_RELU_BLOCK_SIZE), + sycl::range<3>(1, 1, SYCL_RELU_BLOCK_SIZE)), + [=](sycl::nd_item<3> item_ct1) { + leaky_relu_f32(x, dst, k, negative_slope, item_ct1); + }); +} - const int block_num_x = (nrows_x + mmq_y - 1) / mmq_y; - const int block_num_y = (ncols_y + mmq_x - 1) / mmq_x; - const sycl::range<3> block_nums(1, block_num_y, block_num_x); - const sycl::range<3> block_dims(1, nwarps, WARP_SIZE); +static void sqr_f32_sycl(const float *x, float *dst, const int k, + queue_ptr stream) { + const int num_blocks = (k + SYCL_SQR_BLOCK_SIZE - 1) / SYCL_SQR_BLOCK_SIZE; + stream->parallel_for( + sycl::nd_range<3>(sycl::range<3>(1, 1, num_blocks) * + sycl::range<3>(1, 1, SYCL_SQR_BLOCK_SIZE), + sycl::range<3>(1, 1, SYCL_SQR_BLOCK_SIZE)), + [=](sycl::nd_item<3> item_ct1) { + sqr_f32(x, dst, k, item_ct1); + }); +} - if (nrows_x % mmq_y == 0) { - const bool need_check = false; - /* - DPCT1049:32: The work-group size passed to the SYCL kernel may exceed - the limit. To get the device limit, query - info::device::max_work_group_size. Adjust the work-group size if needed. - */ - { - dpct::has_capability_or_fail(stream->get_device(), - {sycl::aspect::fp16}); +static void norm_f32_sycl(const float *x, float *dst, const int ncols, + const int nrows, const float eps, + queue_ptr stream) { + GGML_ASSERT(ncols % WARP_SIZE == 0); + if (ncols < 1024) { + const sycl::range<3> block_dims(1, 1, WARP_SIZE); + stream->submit([&](sycl::handler &cgh) { + sycl::local_accessor s_sum_acc_ct1( + sycl::range<1>(32), cgh); - stream->submit([&](sycl::handler &cgh) { - sycl::local_accessor tile_x_ql_q3_K_acc_ct1( - sycl::range<1>(mmq_y * (WARP_SIZE) + mmq_y), cgh); - sycl::local_accessor tile_x_dm_q3_K_acc_ct1( - sycl::range<1>(mmq_y * (WARP_SIZE / QI3_K) + mmq_y / QI3_K), - cgh); - sycl::local_accessor tile_x_qh_q3_K_acc_ct1( - sycl::range<1>(mmq_y * (WARP_SIZE / 2) + mmq_y / 2), cgh); - sycl::local_accessor tile_x_sc_q3_K_acc_ct1( - sycl::range<1>(mmq_y * (WARP_SIZE / 4) + mmq_y / 4), cgh); - sycl::local_accessor tile_y_qs_acc_ct1( - sycl::range<1>(mmq_x * WARP_SIZE), cgh); - sycl::local_accessor tile_y_ds_acc_ct1( - sycl::range<1>(mmq_x * WARP_SIZE / QI8_1), cgh); - - cgh.parallel_for( - sycl::nd_range<3>(block_nums * block_dims, block_dims), - [=](sycl::nd_item<3> item_ct1) { - mul_mat_q3_K( - vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, - nrows_dst, item_ct1, - tile_x_ql_q3_K_acc_ct1.get_pointer(), - tile_x_dm_q3_K_acc_ct1.get_pointer(), - tile_x_qh_q3_K_acc_ct1.get_pointer(), - tile_x_sc_q3_K_acc_ct1.get_pointer(), - tile_y_qs_acc_ct1.get_pointer(), - tile_y_ds_acc_ct1.get_pointer()); + cgh.parallel_for( + sycl::nd_range<3>(sycl::range<3>(1, 1, nrows) * block_dims, + block_dims), + [=](sycl::nd_item<3> item_ct1) + [[intel::reqd_sub_group_size(32)]] { + norm_f32(x, dst, ncols, eps, item_ct1, + s_sum_acc_ct1.get_pointer(), WARP_SIZE); }); - }); - } + }); } else { - const bool need_check = true; + const int work_group_size = get_work_group_size(stream->get_device()); + const sycl::range<3> block_dims(1, 1, work_group_size); /* - DPCT1049:33: The work-group size passed to the SYCL kernel may exceed + DPCT1049:17: The work-group size passed to the SYCL kernel may exceed the limit. To get the device limit, query info::device::max_work_group_size. Adjust the work-group size if needed. */ - { - dpct::has_capability_or_fail(stream->get_device(), - {sycl::aspect::fp16}); + stream->submit([&](sycl::handler &cgh) { + sycl::local_accessor s_sum_acc_ct1( + sycl::range<1>(32), cgh); - stream->submit([&](sycl::handler &cgh) { - sycl::local_accessor tile_x_ql_q3_K_acc_ct1( - sycl::range<1>(mmq_y * (WARP_SIZE) + mmq_y), cgh); - sycl::local_accessor tile_x_dm_q3_K_acc_ct1( - sycl::range<1>(mmq_y * (WARP_SIZE / QI3_K) + mmq_y / QI3_K), - cgh); - sycl::local_accessor tile_x_qh_q3_K_acc_ct1( - sycl::range<1>(mmq_y * (WARP_SIZE / 2) + mmq_y / 2), cgh); - sycl::local_accessor tile_x_sc_q3_K_acc_ct1( - sycl::range<1>(mmq_y * (WARP_SIZE / 4) + mmq_y / 4), cgh); - sycl::local_accessor tile_y_qs_acc_ct1( - sycl::range<1>(mmq_x * WARP_SIZE), cgh); - sycl::local_accessor tile_y_ds_acc_ct1( - sycl::range<1>(mmq_x * WARP_SIZE / QI8_1), cgh); - - cgh.parallel_for( - sycl::nd_range<3>(block_nums * block_dims, block_dims), - [=](sycl::nd_item<3> item_ct1) { - mul_mat_q3_K( - vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, - nrows_dst, item_ct1, - tile_x_ql_q3_K_acc_ct1.get_pointer(), - tile_x_dm_q3_K_acc_ct1.get_pointer(), - tile_x_qh_q3_K_acc_ct1.get_pointer(), - tile_x_sc_q3_K_acc_ct1.get_pointer(), - tile_y_qs_acc_ct1.get_pointer(), - tile_y_ds_acc_ct1.get_pointer()); + cgh.parallel_for( + sycl::nd_range<3>(sycl::range<3>(1, 1, nrows) * block_dims, + block_dims), + [=](sycl::nd_item<3> item_ct1) + [[intel::reqd_sub_group_size(32)]] { + norm_f32(x, dst, ncols, eps, item_ct1, + s_sum_acc_ct1.get_pointer(), work_group_size); }); - }); - } + }); } } -catch (sycl::exception const &exc) { - std::cerr << exc.what() << "Exception caught at file:" << __FILE__ - << ", line:" << __LINE__ << std::endl; - std::exit(1); -} - -static void ggml_mul_mat_q4_K_q8_1_sycl(const void *vx, const void *vy, - float *dst, const int ncols_x, - const int nrows_x, const int ncols_y, - const int nrows_y, const int nrows_dst, - queue_ptr stream) try { - - int id; - SYCL_CHECK( - CHECK_TRY_ERROR(id = get_current_device_id())); - const int compute_capability = ggml_sycl_info().devices[id].cc; - - int mmq_x, mmq_y, nwarps; - if (compute_capability >= VER_GEN13) { - mmq_x = MMQ_X_Q4_K_RDNA2; - mmq_y = MMQ_Y_Q4_K_RDNA2; - nwarps = NWARPS_Q4_K_RDNA2; - } else if (compute_capability >= VER_GEN12) { - mmq_x = MMQ_X_Q4_K_RDNA1; - mmq_y = MMQ_Y_Q4_K_RDNA1; - nwarps = NWARPS_Q4_K_RDNA1; - } else if (compute_capability >= VER_GEN9) { - mmq_x = MMQ_X_Q4_K_AMPERE; - mmq_y = MMQ_Y_Q4_K_AMPERE; - nwarps = NWARPS_Q4_K_AMPERE; - } else if (compute_capability >= VER_4VEC) { - mmq_x = MMQ_X_Q4_K_PASCAL; - mmq_y = MMQ_Y_Q4_K_PASCAL; - nwarps = NWARPS_Q4_K_PASCAL; - } else { - GGML_ASSERT(false); - } - const int block_num_x = (nrows_x + mmq_y - 1) / mmq_y; - const int block_num_y = (ncols_y + mmq_x - 1) / mmq_x; - const sycl::range<3> block_nums(1, block_num_y, block_num_x); - const sycl::range<3> block_dims(1, nwarps, WARP_SIZE); +static void group_norm_f32_sycl(const float *x, float *dst, + const int num_groups, const int group_size, + const int ne_elements, queue_ptr stream) { + static const float eps = 1e-6f; + if (group_size < 1024) { + const sycl::range<3> block_dims(1, 1, WARP_SIZE); + stream->submit([&](sycl::handler &cgh) { + sycl::local_accessor s_sum_acc_ct1(sycl::range<1>(32), + cgh); - if (nrows_x % mmq_y == 0) { - const bool need_check = false; - /* - DPCT1049:34: The work-group size passed to the SYCL kernel may exceed - the limit. To get the device limit, query - info::device::max_work_group_size. Adjust the work-group size if needed. - */ - { - dpct::has_capability_or_fail(stream->get_device(), - {sycl::aspect::fp16}); + const float eps_ct4 = eps; - stream->submit([&](sycl::handler &cgh) { - sycl::local_accessor tile_x_ql_q4_K_acc_ct1( - sycl::range<1>(mmq_y * (WARP_SIZE) + mmq_y), cgh); - sycl::local_accessor tile_x_dm_q4_K_acc_ct1( - sycl::range<1>(mmq_y * (WARP_SIZE / QI4_K) + mmq_y / QI4_K), - cgh); - sycl::local_accessor tile_x_sc_q4_K_acc_ct1( - sycl::range<1>(mmq_y * (WARP_SIZE / 8) + mmq_y / 8), cgh); - sycl::local_accessor tile_y_qs_acc_ct1( - sycl::range<1>(mmq_x * WARP_SIZE), cgh); - sycl::local_accessor tile_y_ds_acc_ct1( - sycl::range<1>(mmq_x * WARP_SIZE / QI8_1), cgh); - - cgh.parallel_for( - sycl::nd_range<3>(block_nums * block_dims, block_dims), - [=](sycl::nd_item<3> item_ct1) { - mul_mat_q4_K( - vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, - nrows_dst, item_ct1, - tile_x_ql_q4_K_acc_ct1.get_pointer(), - tile_x_dm_q4_K_acc_ct1.get_pointer(), - tile_x_sc_q4_K_acc_ct1.get_pointer(), - tile_y_qs_acc_ct1.get_pointer(), - tile_y_ds_acc_ct1.get_pointer()); + cgh.parallel_for( + sycl::nd_range<3>(sycl::range<3>(1, 1, num_groups) * block_dims, + block_dims), + [=](sycl::nd_item<3> item_ct1) + [[intel::reqd_sub_group_size(32)]] { + group_norm_f32( + x, dst, group_size, ne_elements, eps_ct4, item_ct1, + s_sum_acc_ct1.get_pointer(), WARP_SIZE); }); - }); - } + }); } else { - const bool need_check = true; + const int work_group_size = get_work_group_size(stream->get_device()); + const sycl::range<3> block_dims(1, 1, work_group_size); /* - DPCT1049:35: The work-group size passed to the SYCL kernel may exceed + DPCT1049:18: The work-group size passed to the SYCL kernel may exceed the limit. To get the device limit, query info::device::max_work_group_size. Adjust the work-group size if needed. */ - { - dpct::has_capability_or_fail(stream->get_device(), - {sycl::aspect::fp16}); - stream->submit([&](sycl::handler &cgh) { - sycl::local_accessor tile_x_ql_q4_K_acc_ct1( - sycl::range<1>(mmq_y * (WARP_SIZE) + mmq_y), cgh); - sycl::local_accessor tile_x_dm_q4_K_acc_ct1( - sycl::range<1>(mmq_y * (WARP_SIZE / QI4_K) + mmq_y / QI4_K), - cgh); - sycl::local_accessor tile_x_sc_q4_K_acc_ct1( - sycl::range<1>(mmq_y * (WARP_SIZE / 8) + mmq_y / 8), cgh); - sycl::local_accessor tile_y_qs_acc_ct1( - sycl::range<1>(mmq_x * WARP_SIZE), cgh); - sycl::local_accessor tile_y_ds_acc_ct1( - sycl::range<1>(mmq_x * WARP_SIZE / QI8_1), cgh); - - cgh.parallel_for( - sycl::nd_range<3>(block_nums * block_dims, block_dims), - [=](sycl::nd_item<3> item_ct1) { - mul_mat_q4_K( - vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, - nrows_dst, item_ct1, - tile_x_ql_q4_K_acc_ct1.get_pointer(), - tile_x_dm_q4_K_acc_ct1.get_pointer(), - tile_x_sc_q4_K_acc_ct1.get_pointer(), - tile_y_qs_acc_ct1.get_pointer(), - tile_y_ds_acc_ct1.get_pointer()); + stream->submit([&](sycl::handler &cgh) { + sycl::local_accessor s_sum_acc_ct1(sycl::range<1>(32), + cgh); + + const float eps_ct4 = eps; + + cgh.parallel_for( + sycl::nd_range<3>(sycl::range<3>(1, 1, num_groups) * block_dims, + block_dims), + [=](sycl::nd_item<3> item_ct1) + [[intel::reqd_sub_group_size(32)]] { + group_norm_f32(x, dst, group_size, ne_elements, + eps_ct4, item_ct1, + s_sum_acc_ct1.get_pointer(), work_group_size); }); - }); - } + }); } } -catch (sycl::exception const &exc) { - std::cerr << exc.what() << "Exception caught at file:" << __FILE__ - << ", line:" << __LINE__ << std::endl; - std::exit(1); -} -static void ggml_mul_mat_q5_K_q8_1_sycl(const void *vx, const void *vy, - float *dst, const int ncols_x, - const int nrows_x, const int ncols_y, - const int nrows_y, const int nrows_dst, - queue_ptr stream) try { +static void concat_f32_sycl(const float *x, const float *y, float *dst, + const int ne0, int ne1, int ne2, int ne02, + queue_ptr stream) { + int num_blocks = (ne0 + SYCL_CONCAT_BLOCK_SIZE - 1) / SYCL_CONCAT_BLOCK_SIZE; + sycl::range<3> gridDim(ne2, ne1, num_blocks); + stream->parallel_for( + sycl::nd_range<3>(gridDim * + sycl::range<3>(1, 1, SYCL_CONCAT_BLOCK_SIZE), + sycl::range<3>(1, 1, SYCL_CONCAT_BLOCK_SIZE)), + [=](sycl::nd_item<3> item_ct1) { + concat_f32(x, y, dst, ne0, ne02, item_ct1); + }); +} - int id; - SYCL_CHECK( - CHECK_TRY_ERROR(id = get_current_device_id())); - const int compute_capability = ggml_sycl_info().devices[id].cc; - - int mmq_x, mmq_y, nwarps; - if (compute_capability >= VER_GEN13) { - mmq_x = MMQ_X_Q5_K_RDNA2; - mmq_y = MMQ_Y_Q5_K_RDNA2; - nwarps = NWARPS_Q5_K_RDNA2; - } else if (compute_capability >= VER_GEN12) { - mmq_x = MMQ_X_Q5_K_RDNA1; - mmq_y = MMQ_Y_Q5_K_RDNA1; - nwarps = NWARPS_Q5_K_RDNA1; - } else if (compute_capability >= VER_GEN9) { - mmq_x = MMQ_X_Q5_K_AMPERE; - mmq_y = MMQ_Y_Q5_K_AMPERE; - nwarps = NWARPS_Q5_K_AMPERE; - } else if (compute_capability >= VER_4VEC) { - mmq_x = MMQ_X_Q5_K_PASCAL; - mmq_y = MMQ_Y_Q5_K_PASCAL; - nwarps = NWARPS_Q5_K_PASCAL; - } else { - GGML_ASSERT(false); - } +static void upscale_f32_sycl(const float *x, float *dst, const int nb00, const int nb01, + const int nb02, const int nb03, const int ne10, const int ne11, + const int ne12, const int ne13, const float sf0, const float sf1, + const float sf2, const float sf3, queue_ptr stream) { + int dst_size = ne10 * ne11 * ne12 * ne13; + int num_blocks = (dst_size + SYCL_UPSCALE_BLOCK_SIZE - 1) / SYCL_UPSCALE_BLOCK_SIZE; + sycl::range<1> gridDim(num_blocks * SYCL_UPSCALE_BLOCK_SIZE); + stream->parallel_for( + sycl::nd_range<1>(gridDim, sycl::range<1>(SYCL_UPSCALE_BLOCK_SIZE)), + [=](sycl::nd_item<1> item_ct1) { + upscale_f32(x, dst, nb00, nb01, nb02, nb03, ne10, ne11, ne12, ne13, sf0, sf1, sf2, sf3, item_ct1); + }); +} - const int block_num_x = (nrows_x + mmq_y - 1) / mmq_y; - const int block_num_y = (ncols_y + mmq_x - 1) / mmq_x; - const sycl::range<3> block_nums(1, block_num_y, block_num_x); - const sycl::range<3> block_dims(1, nwarps, WARP_SIZE); +static void pad_f32_sycl(const float *x, float *dst, const int ne00, + const int ne01, const int ne02, const int ne0, + const int ne1, const int ne2, queue_ptr stream) { + int num_blocks = (ne0 + SYCL_PAD_BLOCK_SIZE - 1) / SYCL_PAD_BLOCK_SIZE; + sycl::range<3> gridDim(ne2, ne1, num_blocks); + stream->parallel_for( + sycl::nd_range<3>(gridDim * sycl::range<3>(1, 1, SYCL_PAD_BLOCK_SIZE), + sycl::range<3>(1, 1, SYCL_PAD_BLOCK_SIZE)), + [=](sycl::nd_item<3> item_ct1) { + pad_f32(x, dst, ne0, ne00, ne01, ne02, item_ct1); + }); +} - if (nrows_x % mmq_y == 0) { - const bool need_check = false; - /* - DPCT1049:36: The work-group size passed to the SYCL kernel may exceed - the limit. To get the device limit, query - info::device::max_work_group_size. Adjust the work-group size if needed. - */ - { - dpct::has_capability_or_fail(stream->get_device(), - {sycl::aspect::fp16}); +static void rms_norm_f32_sycl(const float *x, float *dst, const int ncols, + const int nrows, const float eps, + queue_ptr stream) { + GGML_ASSERT(ncols % WARP_SIZE == 0); + // printf("%s ncols=%d, nrows=%d, WARP_SIZE=%d\n", __func__, ncols, nrows, WARP_SIZE); + if (ncols < 1024) { + const sycl::range<3> block_dims(1, 1, WARP_SIZE); + stream->submit([&](sycl::handler &cgh) { + sycl::local_accessor s_sum_acc_ct1(sycl::range<1>(32), + cgh); - stream->submit([&](sycl::handler &cgh) { - sycl::local_accessor tile_x_ql_q5_K_acc_ct1( - sycl::range<1>(mmq_y * (2 * WARP_SIZE) + mmq_y), cgh); - sycl::local_accessor tile_x_dm_q5_K_acc_ct1( - sycl::range<1>(mmq_y * (WARP_SIZE / QI5_K) + mmq_y / QI5_K), - cgh); - sycl::local_accessor tile_x_sc_q5_K_acc_ct1( - sycl::range<1>(mmq_y * (WARP_SIZE / 8) + mmq_y / 8), cgh); - sycl::local_accessor tile_y_qs_acc_ct1( - sycl::range<1>(mmq_x * WARP_SIZE), cgh); - sycl::local_accessor tile_y_ds_acc_ct1( - sycl::range<1>(mmq_x * WARP_SIZE / QI8_1), cgh); - - cgh.parallel_for( - sycl::nd_range<3>(block_nums * block_dims, block_dims), - [=](sycl::nd_item<3> item_ct1) { - mul_mat_q5_K( - vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, - nrows_dst, item_ct1, - tile_x_ql_q5_K_acc_ct1.get_pointer(), - tile_x_dm_q5_K_acc_ct1.get_pointer(), - tile_x_sc_q5_K_acc_ct1.get_pointer(), - tile_y_qs_acc_ct1.get_pointer(), - tile_y_ds_acc_ct1.get_pointer()); + cgh.parallel_for( + sycl::nd_range<3>(sycl::range<3>(1, 1, nrows) * block_dims, + block_dims), + [=](sycl::nd_item<3> item_ct1) + [[intel::reqd_sub_group_size(32)]] { + rms_norm_f32(x, dst, ncols, eps, item_ct1, + s_sum_acc_ct1.get_pointer(), WARP_SIZE); }); - }); - } + }); } else { - const bool need_check = true; + const int work_group_size = get_work_group_size(stream->get_device()); + const sycl::range<3> block_dims(1, 1, work_group_size); /* - DPCT1049:37: The work-group size passed to the SYCL kernel may exceed + DPCT1049:19: The work-group size passed to the SYCL kernel may exceed the limit. To get the device limit, query info::device::max_work_group_size. Adjust the work-group size if needed. */ - { - dpct::has_capability_or_fail(stream->get_device(), - {sycl::aspect::fp16}); + stream->submit([&](sycl::handler &cgh) { + sycl::local_accessor s_sum_acc_ct1(sycl::range<1>(32), + cgh); - stream->submit([&](sycl::handler &cgh) { - sycl::local_accessor tile_x_ql_q5_K_acc_ct1( - sycl::range<1>(mmq_y * (2 * WARP_SIZE) + mmq_y), cgh); - sycl::local_accessor tile_x_dm_q5_K_acc_ct1( - sycl::range<1>(mmq_y * (WARP_SIZE / QI5_K) + mmq_y / QI5_K), - cgh); - sycl::local_accessor tile_x_sc_q5_K_acc_ct1( - sycl::range<1>(mmq_y * (WARP_SIZE / 8) + mmq_y / 8), cgh); - sycl::local_accessor tile_y_qs_acc_ct1( - sycl::range<1>(mmq_x * WARP_SIZE), cgh); - sycl::local_accessor tile_y_ds_acc_ct1( - sycl::range<1>(mmq_x * WARP_SIZE / QI8_1), cgh); - - cgh.parallel_for( - sycl::nd_range<3>(block_nums * block_dims, block_dims), - [=](sycl::nd_item<3> item_ct1) { - mul_mat_q5_K( - vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, - nrows_dst, item_ct1, - tile_x_ql_q5_K_acc_ct1.get_pointer(), - tile_x_dm_q5_K_acc_ct1.get_pointer(), - tile_x_sc_q5_K_acc_ct1.get_pointer(), - tile_y_qs_acc_ct1.get_pointer(), - tile_y_ds_acc_ct1.get_pointer()); + cgh.parallel_for( + sycl::nd_range<3>(sycl::range<3>(1, 1, nrows) * block_dims, + block_dims), + [=](sycl::nd_item<3> item_ct1) + [[intel::reqd_sub_group_size(32)]] { + rms_norm_f32(x, dst, ncols, eps, item_ct1, + s_sum_acc_ct1.get_pointer(), work_group_size); }); - }); - } + }); } } -catch (sycl::exception const &exc) { - std::cerr << exc.what() << "Exception caught at file:" << __FILE__ - << ", line:" << __LINE__ << std::endl; - std::exit(1); -} - -static void ggml_mul_mat_q6_K_q8_1_sycl(const void *vx, const void *vy, - float *dst, const int ncols_x, - const int nrows_x, const int ncols_y, - const int nrows_y, const int nrows_dst, - queue_ptr stream) try { - - int id; - SYCL_CHECK( - CHECK_TRY_ERROR(id = get_current_device_id())); - const int compute_capability = ggml_sycl_info().devices[id].cc; - - int mmq_x, mmq_y, nwarps; - if (compute_capability >= VER_GEN13) { - mmq_x = MMQ_X_Q6_K_RDNA2; - mmq_y = MMQ_Y_Q6_K_RDNA2; - nwarps = NWARPS_Q6_K_RDNA2; - } else if (compute_capability >= VER_GEN12) { - mmq_x = MMQ_X_Q6_K_RDNA1; - mmq_y = MMQ_Y_Q6_K_RDNA1; - nwarps = NWARPS_Q6_K_RDNA1; - } else if (compute_capability >= VER_GEN9) { - mmq_x = MMQ_X_Q6_K_AMPERE; - mmq_y = MMQ_Y_Q6_K_AMPERE; - nwarps = NWARPS_Q6_K_AMPERE; - } else if (compute_capability >= VER_4VEC) { - mmq_x = MMQ_X_Q6_K_PASCAL; - mmq_y = MMQ_Y_Q6_K_PASCAL; - nwarps = NWARPS_Q6_K_PASCAL; - } else { - GGML_ASSERT(false); - } - - const int block_num_x = (nrows_x + mmq_y - 1) / mmq_y; - const int block_num_y = (ncols_y + mmq_x - 1) / mmq_x; - const sycl::range<3> block_nums(1, block_num_y, block_num_x); - const sycl::range<3> block_dims(1, nwarps, WARP_SIZE); - - if (nrows_x % mmq_y == 0) { - const bool need_check = false; - /* - DPCT1049:38: The work-group size passed to the SYCL kernel may exceed - the limit. To get the device limit, query - info::device::max_work_group_size. Adjust the work-group size if needed. - */ - { - dpct::has_capability_or_fail(stream->get_device(), - {sycl::aspect::fp16}); - stream->submit([&](sycl::handler &cgh) { - sycl::local_accessor tile_x_ql_acc_ct1( - sycl::range<1>(mmq_y * (2 * WARP_SIZE) + mmq_y), cgh); - sycl::local_accessor tile_x_dm_acc_ct1( - sycl::range<1>(mmq_y * (WARP_SIZE / QI6_K) + mmq_y / QI6_K), - cgh); - sycl::local_accessor tile_x_sc_acc_ct1( - sycl::range<1>(mmq_y * (WARP_SIZE / 8) + mmq_y / 8), cgh); - sycl::local_accessor tile_y_qs_acc_ct1( - sycl::range<1>(mmq_x * WARP_SIZE), cgh); - sycl::local_accessor tile_y_ds_acc_ct1( - sycl::range<1>(mmq_x * WARP_SIZE / QI8_1), cgh); - - cgh.parallel_for( - sycl::nd_range<3>(block_nums * block_dims, block_dims), - [=](sycl::nd_item<3> item_ct1) { - mul_mat_q6_K( - vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, - nrows_dst, item_ct1, - tile_x_ql_acc_ct1.get_pointer(), - tile_x_dm_acc_ct1.get_pointer(), - tile_x_sc_acc_ct1.get_pointer(), - tile_y_qs_acc_ct1.get_pointer(), - tile_y_ds_acc_ct1.get_pointer()); - }); - }); - } - } else { - const bool need_check = true; - /* - DPCT1049:39: The work-group size passed to the SYCL kernel may exceed - the limit. To get the device limit, query - info::device::max_work_group_size. Adjust the work-group size if needed. - */ - { - dpct::has_capability_or_fail(stream->get_device(), - {sycl::aspect::fp16}); +static void quantize_row_q8_1_sycl(const float *x, void *vy, const int kx, + const int ky, const int kx_padded, + queue_ptr stream) { + const int block_num_x = (kx_padded + SYCL_QUANTIZE_BLOCK_SIZE - 1) / SYCL_QUANTIZE_BLOCK_SIZE; + const sycl::range<3> num_blocks(1, ky, block_num_x); + const sycl::range<3> block_size(1, 1, SYCL_DEQUANTIZE_BLOCK_SIZE); + { + dpct::has_capability_or_fail(stream->get_device(), + {sycl::aspect::fp16}); - stream->submit([&](sycl::handler &cgh) { - sycl::local_accessor tile_x_ql_acc_ct1( - sycl::range<1>(mmq_y * (2 * WARP_SIZE) + mmq_y), cgh); - sycl::local_accessor tile_x_dm_acc_ct1( - sycl::range<1>(mmq_y * (WARP_SIZE / QI6_K) + mmq_y / QI6_K), - cgh); - sycl::local_accessor tile_x_sc_acc_ct1( - sycl::range<1>(mmq_y * (WARP_SIZE / 8) + mmq_y / 8), cgh); - sycl::local_accessor tile_y_qs_acc_ct1( - sycl::range<1>(mmq_x * WARP_SIZE), cgh); - sycl::local_accessor tile_y_ds_acc_ct1( - sycl::range<1>(mmq_x * WARP_SIZE / QI8_1), cgh); - - cgh.parallel_for( - sycl::nd_range<3>(block_nums * block_dims, block_dims), - [=](sycl::nd_item<3> item_ct1) { - mul_mat_q6_K( - vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, - nrows_dst, item_ct1, - tile_x_ql_acc_ct1.get_pointer(), - tile_x_dm_acc_ct1.get_pointer(), - tile_x_sc_acc_ct1.get_pointer(), - tile_y_qs_acc_ct1.get_pointer(), - tile_y_ds_acc_ct1.get_pointer()); - }); + stream->parallel_for( + sycl::nd_range<3>(num_blocks * block_size, block_size), + [=](sycl::nd_item<3> item_ct1) [[intel::reqd_sub_group_size(32)]] { + quantize_q8_1(x, vy, kx, kx_padded, item_ct1); }); - } } } -catch (sycl::exception const &exc) { - std::cerr << exc.what() << "Exception caught at file:" << __FILE__ - << ", line:" << __LINE__ << std::endl; - std::exit(1); -} static void ggml_mul_mat_p021_f16_f32_sycl(const void *vx, const float *y, float *dst, const int ncols_x, @@ -9187,7 +2445,7 @@ static void soft_max_f32_sycl(const float * x, const float * mask, const int nrows_y, const float scale, const float max_bias, queue_ptr stream) { int nth = WARP_SIZE; - int max_block_size = GROUP_SIZE; + int max_block_size = get_work_group_size(stream->get_device()); while (nth < ncols_x && nth < max_block_size) nth *= 2; if (nth>max_block_size) nth = max_block_size; @@ -9339,7 +2597,7 @@ void ggml_backend_sycl_print_sycl_devices() { } } -int get_sycl_env(const char *env_name, int default_val) { +static inline int get_sycl_env(const char *env_name, int default_val) { char *user_device_string = getenv(env_name); int user_number = default_val; @@ -9353,10 +2611,9 @@ int get_sycl_env(const char *env_name, int default_val) { return user_number; } -int get_work_group_size(int user_device_id) { +static inline int get_work_group_size(const sycl::device& device) { dpct::device_info prop; - dpct::get_device_info(prop, - dpct::dev_mgr::instance().get_device(user_device_id)); + dpct::get_device_info(prop, device); return prop.get_max_work_group_size(); } @@ -10042,76 +3299,6 @@ inline void ggml_sycl_op_rms_norm(ggml_backend_sycl_context & ctx, const ggml_te (void) src1_dd; } -inline void ggml_sycl_op_mul_mat_q( - ggml_backend_sycl_context & ctx, const ggml_tensor *src0, const ggml_tensor *src1, ggml_tensor *dst, - const char *src0_dd_i, const float *src1_ddf_i, const char *src1_ddq_i, - float *dst_dd_i, const int64_t row_low, const int64_t row_high, - const int64_t src1_ncols, const int64_t src1_padded_row_size, - const queue_ptr &stream) try { - - const int64_t ne00 = src0->ne[0]; - - const int64_t ne10 = src1->ne[0]; - GGML_ASSERT(ne10 % QK8_1 == 0); - - const int64_t ne0 = dst->ne[0]; - - const int64_t row_diff = row_high - row_low; - - int device_id; - SYCL_CHECK( - CHECK_TRY_ERROR(device_id = get_current_device_id())); - - // the main device has a larger memory buffer to hold the results from all GPUs - // nrows_dst == nrows of the matrix that the dequantize_mul_mat kernel writes into - const int64_t nrows_dst = device_id == ctx.device ? ne0 : row_diff; - - switch (src0->type) { - case GGML_TYPE_Q4_0: - ggml_mul_mat_q4_0_q8_1_sycl(src0_dd_i, src1_ddq_i, dst_dd_i, ne00, row_diff, src1_ncols, src1_padded_row_size, nrows_dst, stream); - break; - case GGML_TYPE_Q4_1: - ggml_mul_mat_q4_1_q8_1_sycl(src0_dd_i, src1_ddq_i, dst_dd_i, ne00, row_diff, src1_ncols, src1_padded_row_size, nrows_dst, stream); - break; - case GGML_TYPE_Q5_0: - ggml_mul_mat_q5_0_q8_1_sycl(src0_dd_i, src1_ddq_i, dst_dd_i, ne00, row_diff, src1_ncols, src1_padded_row_size, nrows_dst, stream); - break; - case GGML_TYPE_Q5_1: - ggml_mul_mat_q5_1_q8_1_sycl(src0_dd_i, src1_ddq_i, dst_dd_i, ne00, row_diff, src1_ncols, src1_padded_row_size, nrows_dst, stream); - break; - case GGML_TYPE_Q8_0: - ggml_mul_mat_q8_0_q8_1_sycl(src0_dd_i, src1_ddq_i, dst_dd_i, ne00, row_diff, src1_ncols, src1_padded_row_size, nrows_dst, stream); - break; - case GGML_TYPE_Q2_K: - ggml_mul_mat_q2_K_q8_1_sycl(src0_dd_i, src1_ddq_i, dst_dd_i, ne00, row_diff, src1_ncols, src1_padded_row_size, nrows_dst, stream); - break; - case GGML_TYPE_Q3_K: - ggml_mul_mat_q3_K_q8_1_sycl(src0_dd_i, src1_ddq_i, dst_dd_i, ne00, row_diff, src1_ncols, src1_padded_row_size, nrows_dst, stream); - break; - case GGML_TYPE_Q4_K: - ggml_mul_mat_q4_K_q8_1_sycl(src0_dd_i, src1_ddq_i, dst_dd_i, ne00, row_diff, src1_ncols, src1_padded_row_size, nrows_dst, stream); - break; - case GGML_TYPE_Q5_K: - ggml_mul_mat_q5_K_q8_1_sycl(src0_dd_i, src1_ddq_i, dst_dd_i, ne00, row_diff, src1_ncols, src1_padded_row_size, nrows_dst, stream); - break; - case GGML_TYPE_Q6_K: - ggml_mul_mat_q6_K_q8_1_sycl(src0_dd_i, src1_ddq_i, dst_dd_i, ne00, row_diff, src1_ncols, src1_padded_row_size, nrows_dst, stream); - break; - default: - GGML_ASSERT(false); - break; - } - - (void) src1; - (void) dst; - (void) src1_ddf_i; -} -catch (sycl::exception const &exc) { - std::cerr << exc.what() << "Exception caught at file:" << __FILE__ - << ", line:" << __LINE__ << std::endl; - std::exit(1); -} - static int64_t get_row_rounding(ggml_type type, const std::array & tensor_split) { int64_t min_compute_capability = INT_MAX; int64_t max_compute_capability = INT_MIN; @@ -10160,179 +3347,6 @@ static int64_t get_row_rounding(ggml_type type, const std::arrayne[0]; - GGML_ASSERT(ne10 % QK8_1 == 0); - - const int64_t ne00 = src0->ne[0]; - const int64_t row_diff = row_high - row_low; - - int id; - SYCL_CHECK( - CHECK_TRY_ERROR(id = get_current_device_id())); - - // the main device has a larger memory buffer to hold the results from all GPUs - // nrows_dst == nrows of the matrix that the kernel writes into - const int64_t nrows_dst = id == ctx.device ? ne00 : row_diff; - - switch (src0->type) { - case GGML_TYPE_Q4_0: - mul_mat_vec_q4_0_q8_1_sycl(src0_dd_i, src1_ddq_i, dst_dd_i, ne00, row_diff, stream); - break; - case GGML_TYPE_Q4_1: - mul_mat_vec_q4_1_q8_1_sycl(src0_dd_i, src1_ddq_i, dst_dd_i, ne00, row_diff, stream); - break; - case GGML_TYPE_Q5_0: - mul_mat_vec_q5_0_q8_1_sycl(src0_dd_i, src1_ddq_i, dst_dd_i, ne00, row_diff, stream); - break; - case GGML_TYPE_Q5_1: - mul_mat_vec_q5_1_q8_1_sycl(src0_dd_i, src1_ddq_i, dst_dd_i, ne00, row_diff, stream); - break; - case GGML_TYPE_Q8_0: - mul_mat_vec_q8_0_q8_1_sycl(src0_dd_i, src1_ddq_i, dst_dd_i, ne00, row_diff, stream); - break; - case GGML_TYPE_Q2_K: - mul_mat_vec_q2_K_q8_1_sycl(src0_dd_i, src1_ddq_i, dst_dd_i, ne00, row_diff, stream); - break; - case GGML_TYPE_Q3_K: - mul_mat_vec_q3_K_q8_1_sycl(src0_dd_i, src1_ddq_i, dst_dd_i, ne00, row_diff, stream); - break; - case GGML_TYPE_Q4_K: - mul_mat_vec_q4_K_q8_1_sycl(src0_dd_i, src1_ddq_i, dst_dd_i, ne00, row_diff, stream); - break; - case GGML_TYPE_Q5_K: - mul_mat_vec_q5_K_q8_1_sycl(src0_dd_i, src1_ddq_i, dst_dd_i, ne00, row_diff, stream); - break; - case GGML_TYPE_Q6_K: - mul_mat_vec_q6_K_q8_1_sycl(src0_dd_i, src1_ddq_i, dst_dd_i, ne00, row_diff, stream); - break; - case GGML_TYPE_IQ1_S: - mul_mat_vec_iq1_s_q8_1_sycl(src0_dd_i, src1_ddq_i, dst_dd_i, ne00, row_diff, stream); - break; - case GGML_TYPE_IQ1_M: - mul_mat_vec_iq1_m_q8_1_sycl(src0_dd_i, src1_ddq_i, dst_dd_i, ne00, row_diff, stream); - break; - case GGML_TYPE_IQ2_XXS: - mul_mat_vec_iq2_xxs_q8_1_sycl(src0_dd_i, src1_ddq_i, dst_dd_i, ne00, row_diff, stream); - break; - case GGML_TYPE_IQ2_XS: - mul_mat_vec_iq2_xs_q8_1_sycl(src0_dd_i, src1_ddq_i, dst_dd_i, ne00, row_diff, stream); - break; - case GGML_TYPE_IQ2_S: - mul_mat_vec_iq2_s_q8_1_sycl(src0_dd_i, src1_ddq_i, dst_dd_i, ne00, row_diff, stream); - break; - case GGML_TYPE_IQ3_XXS: - mul_mat_vec_iq3_xxs_q8_1_sycl(src0_dd_i, src1_ddq_i, dst_dd_i, ne00, row_diff, stream); - break; - case GGML_TYPE_IQ3_S: - mul_mat_vec_iq3_s_q8_1_sycl(src0_dd_i, src1_ddq_i, dst_dd_i, ne00, row_diff, stream); - break; - case GGML_TYPE_IQ4_NL: - mul_mat_vec_iq4_nl_q8_1_sycl(src0_dd_i, src1_ddq_i, dst_dd_i, ne00, row_diff, stream); - break; - case GGML_TYPE_IQ4_XS: - mul_mat_vec_iq4_xs_q8_1_sycl(src0_dd_i, src1_ddq_i, dst_dd_i, ne00, row_diff, stream); - break; - default: - GGML_ASSERT(false); - break; - } - - (void) src1; - (void) dst; - (void) src1_ddf_i; - (void) src1_ncols; - (void) src1_padded_row_size; -} - - -inline void ggml_sycl_op_dequantize_mul_mat_vec( - ggml_backend_sycl_context & ctx, - const ggml_tensor *src0, const ggml_tensor *src1, ggml_tensor *dst, - const char *src0_dd_i, const float *src1_ddf_i, const char *src1_ddq_i, - float *dst_dd_i, const int64_t row_low, const int64_t row_high, - const int64_t src1_ncols, const int64_t src1_padded_row_size, - const queue_ptr &stream) { - - const int64_t ne00 = src0->ne[0]; - const int64_t row_diff = row_high - row_low; - - GGML_ASSERT(src1->type == GGML_TYPE_F32); - - // on some GPUs it is faster to convert src1 to half and to use half precision intrinsics -#ifdef GGML_SYCL_F16 - ggml_sycl_pool_alloc src1_dfloat_a(ctx.pool()); - sycl::half *src1_dfloat = nullptr; // dfloat == half - - bool src1_convert_f16 = - src0->type == GGML_TYPE_Q4_0 || src0->type == GGML_TYPE_Q4_1 || - src0->type == GGML_TYPE_Q5_0 || src0->type == GGML_TYPE_Q5_1 || - src0->type == GGML_TYPE_Q8_0 || src0->type == GGML_TYPE_F16; - - if (src1_convert_f16) { - src1_dfloat = src1_dfloat_a.alloc(ne00); - const to_fp16_sycl_t to_fp16_sycl = ggml_get_to_fp16_sycl(src1->type); - GGML_ASSERT(to_fp16_sycl != nullptr); - to_fp16_sycl(src1_ddf_i, src1_dfloat, ne00, stream); - } -#else - const dfloat * src1_dfloat = (const dfloat *) src1_ddf_i; // dfloat == float, no conversion -#endif // GGML_SYCL_F16 - - switch (src0->type) { - case GGML_TYPE_Q4_0: - dequantize_mul_mat_vec_q4_0_sycl(src0_dd_i, src1_dfloat, dst_dd_i, ne00, row_diff, stream); - break; - case GGML_TYPE_Q4_1: - dequantize_mul_mat_vec_q4_1_sycl(src0_dd_i, src1_dfloat, dst_dd_i, ne00, row_diff, stream); - break; - case GGML_TYPE_Q5_0: - dequantize_mul_mat_vec_q5_0_sycl(src0_dd_i, src1_dfloat, dst_dd_i, ne00, row_diff, stream); - break; - case GGML_TYPE_Q5_1: - dequantize_mul_mat_vec_q5_1_sycl(src0_dd_i, src1_dfloat, dst_dd_i, ne00, row_diff, stream); - break; - case GGML_TYPE_Q8_0: - dequantize_mul_mat_vec_q8_0_sycl(src0_dd_i, src1_dfloat, dst_dd_i, ne00, row_diff, stream); - break; - case GGML_TYPE_Q2_K: - dequantize_mul_mat_vec_q2_K_sycl(src0_dd_i, src1_ddf_i, dst_dd_i, ne00, row_diff, stream); - break; - case GGML_TYPE_Q3_K: - dequantize_mul_mat_vec_q3_K_sycl(src0_dd_i, src1_ddf_i, dst_dd_i, ne00, row_diff, stream); - break; - case GGML_TYPE_Q4_K: - dequantize_mul_mat_vec_q4_K_sycl(src0_dd_i, src1_ddf_i, dst_dd_i, ne00, row_diff, stream); - break; - case GGML_TYPE_Q5_K: - dequantize_mul_mat_vec_q5_K_sycl(src0_dd_i, src1_ddf_i, dst_dd_i, ne00, row_diff, stream); - break; - case GGML_TYPE_Q6_K: - dequantize_mul_mat_vec_q6_K_sycl(src0_dd_i, src1_ddf_i, dst_dd_i, ne00, row_diff, stream); - break; - case GGML_TYPE_F16: - convert_mul_mat_vec_f16_sycl(src0_dd_i, src1_dfloat, dst_dd_i, ne00, row_diff, stream); - break; - default: - printf("ggml_sycl_op_dequantize_mul_mat_vec unsupported GGML_TYPE %d\n", src0->type); - GGML_ASSERT(false); - break; - } - - (void) src1; - (void) dst; - (void) src1_ddq_i; - (void) src1_ncols; - (void) src1_padded_row_size; -} - inline void ggml_sycl_op_mul_mat_sycl( ggml_backend_sycl_context & ctx, const ggml_tensor *src0, const ggml_tensor *src1, ggml_tensor *dst, diff --git a/ggml-sycl/backend.hpp b/ggml-sycl/backend.hpp index 88bae59678bdd..2d37e271f9050 100644 --- a/ggml-sycl/backend.hpp +++ b/ggml-sycl/backend.hpp @@ -14,5 +14,10 @@ #define GGML_SYCL_BACKEND_HPP #include "common.hpp" +#include "convert.hpp" +#include "dequantize.hpp" +#include "dmmv.hpp" +#include "mmq.hpp" +#include "mmvq.hpp" #endif // GGML_SYCL_BACKEND_HPP diff --git a/ggml-sycl/convert.cpp b/ggml-sycl/convert.cpp new file mode 100644 index 0000000000000..ce9de2b42b722 --- /dev/null +++ b/ggml-sycl/convert.cpp @@ -0,0 +1,544 @@ +#include "convert.hpp" +#include "dequantize.hpp" +#include "presets.hpp" + +template +static void dequantize_block(const void * __restrict__ vx, dst_t * __restrict__ y, const int k, + const sycl::nd_item<3> &item_ct1) { + const int i = 2 * (item_ct1.get_local_range(2) * item_ct1.get_group(2) + + item_ct1.get_local_id(2)); + + if (i >= k) { + return; + } + + const int ib = i/qk; // block index + const int iqs = (i%qk)/qr; // quant index + const int iybs = i - i%qk; // y block start index + const int y_offset = qr == 1 ? 1 : qk/2; + + // dequantize + dfloat2 v; + dequantize_kernel(vx, ib, iqs, v); + + y[iybs + iqs + 0] = v.x(); + y[iybs + iqs + y_offset] = v.y(); +} + +template +static void dequantize_block_sycl(const void *__restrict__ vx, + dst_t *__restrict__ y, const int k, + dpct::queue_ptr stream) { + const int num_blocks = (k + 2*SYCL_DEQUANTIZE_BLOCK_SIZE - 1) / (2*SYCL_DEQUANTIZE_BLOCK_SIZE); + { + dpct::has_capability_or_fail(stream->get_device(), + {sycl::aspect::fp16}); + stream->parallel_for( + sycl::nd_range<3>( + sycl::range<3>(1, 1, num_blocks) * + sycl::range<3>(1, 1, SYCL_DEQUANTIZE_BLOCK_SIZE), + sycl::range<3>(1, 1, SYCL_DEQUANTIZE_BLOCK_SIZE)), + [=](sycl::nd_item<3> item_ct1) { + dequantize_block(vx, y, k, item_ct1); + }); + } +} + +template +static void dequantize_row_q2_K_sycl(const void *vx, dst_t *y, const int k, + dpct::queue_ptr stream) { + const int nb = k / QK_K; +#if QK_K == 256 + { + dpct::has_capability_or_fail(stream->get_device(), + {sycl::aspect::fp16}); + + stream->parallel_for(sycl::nd_range<3>(sycl::range<3>(1, 1, nb) * + sycl::range<3>(1, 1, 64), + sycl::range<3>(1, 1, 64)), + [=](sycl::nd_item<3> item_ct1) { + dequantize_block_q2_K(vx, y, item_ct1); + }); + } +#else + { + dpct::has_capability_or_fail(stream->get_device(), + {sycl::aspect::fp16}); + + stream->parallel_for(sycl::nd_range<3>(sycl::range<3>(1, 1, nb) * + sycl::range<3>(1, 1, 32), + sycl::range<3>(1, 1, 32)), + [=](sycl::nd_item<3> item_ct1) { + dequantize_block_q2_K(vx, y, item_ct1); + }); + } + +#endif +} + +template +static void dequantize_row_q3_K_sycl(const void *vx, dst_t *y, const int k, + dpct::queue_ptr stream) { + const int nb = k / QK_K; +#if QK_K == 256 + { + dpct::has_capability_or_fail(stream->get_device(), + {sycl::aspect::fp16}); + + stream->parallel_for(sycl::nd_range<3>(sycl::range<3>(1, 1, nb) * + sycl::range<3>(1, 1, 64), + sycl::range<3>(1, 1, 64)), + [=](sycl::nd_item<3> item_ct1) { + dequantize_block_q3_K(vx, y, item_ct1); + }); + } +#else + { + dpct::has_capability_or_fail(stream->get_device(), + {sycl::aspect::fp16}); + + stream->parallel_for(sycl::nd_range<3>(sycl::range<3>(1, 1, nb) * + sycl::range<3>(1, 1, 32), + sycl::range<3>(1, 1, 32)), + [=](sycl::nd_item<3> item_ct1) { + dequantize_block_q3_K(vx, y, item_ct1); + }); + } +#endif +} + +template +static void dequantize_row_q4_0_sycl(const void *vx, dst_t *y, const int k, + dpct::queue_ptr stream) { + const int nb32 = k / 32; + const int nb = (k + 255) / 256; + { + dpct::has_capability_or_fail(stream->get_device(), + {sycl::aspect::fp16}); + + stream->parallel_for(sycl::nd_range<3>(sycl::range<3>(1, 1, nb) * + sycl::range<3>(1, 1, 32), + sycl::range<3>(1, 1, 32)), + [=](sycl::nd_item<3> item_ct1) { + dequantize_block_q4_0(vx, y, nb32, item_ct1); + }); + } +} + +template +static void dequantize_row_q4_1_sycl(const void *vx, dst_t *y, const int k, + dpct::queue_ptr stream) { + const int nb32 = k / 32; + const int nb = (k + 255) / 256; + { + dpct::has_capability_or_fail(stream->get_device(), + {sycl::aspect::fp16}); + + stream->parallel_for(sycl::nd_range<3>(sycl::range<3>(1, 1, nb) * + sycl::range<3>(1, 1, 32), + sycl::range<3>(1, 1, 32)), + [=](sycl::nd_item<3> item_ct1) { + dequantize_block_q4_1(vx, y, nb32, item_ct1); + }); + } +} + + +template +static void dequantize_row_q4_K_sycl(const void *vx, dst_t *y, const int k, + dpct::queue_ptr stream) { + const int nb = k / QK_K; + { + dpct::has_capability_or_fail(stream->get_device(), + {sycl::aspect::fp16}); + + stream->parallel_for(sycl::nd_range<3>(sycl::range<3>(1, 1, nb) * + sycl::range<3>(1, 1, 32), + sycl::range<3>(1, 1, 32)), + [=](sycl::nd_item<3> item_ct1) { + dequantize_block_q4_K(vx, y, item_ct1); + }); + } +} + +template +static void dequantize_row_q5_K_sycl(const void *vx, dst_t *y, const int k, + dpct::queue_ptr stream) { + const int nb = k / QK_K; +#if QK_K == 256 + { + dpct::has_capability_or_fail(stream->get_device(), + {sycl::aspect::fp16}); + + stream->parallel_for(sycl::nd_range<3>(sycl::range<3>(1, 1, nb) * + sycl::range<3>(1, 1, 64), + sycl::range<3>(1, 1, 64)), + [=](sycl::nd_item<3> item_ct1) { + dequantize_block_q5_K(vx, y, item_ct1); + }); + } +#else + { + dpct::has_capability_or_fail(stream->get_device(), + {sycl::aspect::fp16}); + + stream->parallel_for(sycl::nd_range<3>(sycl::range<3>(1, 1, nb) * + sycl::range<3>(1, 1, 32), + sycl::range<3>(1, 1, 32)), + [=](sycl::nd_item<3> item_ct1) { + dequantize_block_q5_K(vx, y, item_ct1); + }); + } + +#endif +} + +template +static void dequantize_row_q6_K_sycl(const void *vx, dst_t *y, const int k, + dpct::queue_ptr stream) { + const int nb = k / QK_K; +#if QK_K == 256 + { + dpct::has_capability_or_fail(stream->get_device(), + {sycl::aspect::fp16}); + + stream->parallel_for(sycl::nd_range<3>(sycl::range<3>(1, 1, nb) * + sycl::range<3>(1, 1, 64), + sycl::range<3>(1, 1, 64)), + [=](sycl::nd_item<3> item_ct1) { + dequantize_block_q6_K(vx, y, item_ct1); + }); + } +#else + { + dpct::has_capability_or_fail(stream->get_device(), + {sycl::aspect::fp16}); + + stream->parallel_for(sycl::nd_range<3>(sycl::range<3>(1, 1, nb) * + sycl::range<3>(1, 1, 32), + sycl::range<3>(1, 1, 32)), + [=](sycl::nd_item<3> item_ct1) { + dequantize_block_q6_K(vx, y, item_ct1); + }); + } + +#endif +} + +template +static void dequantize_row_iq1_s_sycl(const void *vx, dst_t *y, const int k, + dpct::queue_ptr stream) { + const int nb = k / QK_K; + { + dpct::has_capability_or_fail(stream->get_device(), + {sycl::aspect::fp16}); + + stream->submit([&](sycl::handler &cgh) { + cgh.parallel_for(sycl::nd_range<3>(sycl::range<3>(1, 1, nb) * + sycl::range<3>(1, 1, 32), + sycl::range<3>(1, 1, 32)), + [=](sycl::nd_item<3> item_ct1) { + dequantize_block_iq1_s( + vx, y, item_ct1, iq1s_grid_gpu + ); + }); + }); + } +} + +template +static void dequantize_row_iq1_m_sycl(const void *vx, dst_t *y, const int k, + dpct::queue_ptr stream) { + const int nb = k / QK_K; + { + dpct::has_capability_or_fail(stream->get_device(), + {sycl::aspect::fp16}); + + stream->submit([&](sycl::handler &cgh) { + cgh.parallel_for(sycl::nd_range<3>(sycl::range<3>(1, 1, nb) * + sycl::range<3>(1, 1, 32), + sycl::range<3>(1, 1, 32)), + [=](sycl::nd_item<3> item_ct1) { + dequantize_block_iq1_m( + vx, y, item_ct1, iq1s_grid_gpu + ); + }); + }); + } +} + +template +static void dequantize_row_iq2_xxs_sycl(const void *vx, dst_t *y, const int k, + dpct::queue_ptr stream) { + const int nb = k / QK_K; + { + dpct::has_capability_or_fail(stream->get_device(), + {sycl::aspect::fp16}); + + stream->submit([&](sycl::handler &cgh) { + cgh.parallel_for(sycl::nd_range<3>(sycl::range<3>(1, 1, nb) * + sycl::range<3>(1, 1, 32), + sycl::range<3>(1, 1, 32)), + [=](sycl::nd_item<3> item_ct1) { + dequantize_block_iq2_xxs( + vx, y, item_ct1, iq2xxs_grid, + ksigns_iq2xs, kmask_iq2xs); + }); + }); + } +} + +template +static void dequantize_row_iq2_xs_sycl(const void *vx, dst_t *y, const int k, + dpct::queue_ptr stream) { + const int nb = k / QK_K; + { + dpct::has_capability_or_fail(stream->get_device(), + {sycl::aspect::fp16}); + + stream->submit([&](sycl::handler &cgh) { + cgh.parallel_for(sycl::nd_range<3>(sycl::range<3>(1, 1, nb) * + sycl::range<3>(1, 1, 32), + sycl::range<3>(1, 1, 32)), + [=](sycl::nd_item<3> item_ct1) { + dequantize_block_iq2_xs( + vx, y, item_ct1, iq2xs_grid, + ksigns_iq2xs, kmask_iq2xs); + }); + }); + } +} + +template +static void dequantize_row_iq2_s_sycl(const void *vx, dst_t *y, const int k, + dpct::queue_ptr stream) { + const int nb = k / QK_K; + { + dpct::has_capability_or_fail(stream->get_device(), + {sycl::aspect::fp16}); + + stream->submit([&](sycl::handler &cgh) { + cgh.parallel_for(sycl::nd_range<3>(sycl::range<3>(1, 1, nb) * + sycl::range<3>(1, 1, 32), + sycl::range<3>(1, 1, 32)), + [=](sycl::nd_item<3> item_ct1) { + dequantize_block_iq2_s(vx, y, item_ct1); + }); + }); + } +} + + +template +static void dequantize_row_iq3_xxs_sycl(const void *vx, dst_t *y, const int k, + dpct::queue_ptr stream) { + const int nb = k / QK_K; + { + dpct::has_capability_or_fail(stream->get_device(), + {sycl::aspect::fp16}); + + stream->submit([&](sycl::handler &cgh) { + cgh.parallel_for(sycl::nd_range<3>(sycl::range<3>(1, 1, nb) * + sycl::range<3>(1, 1, 32), + sycl::range<3>(1, 1, 32)), + [=](sycl::nd_item<3> item_ct1) { + dequantize_block_iq3_xxs( + vx, y, item_ct1, iq3xxs_grid, + ksigns_iq2xs, kmask_iq2xs); + }); + }); + } +} + +template +static void dequantize_row_iq3_s_sycl(const void *vx, dst_t *y, const int k, + dpct::queue_ptr stream) { + const int nb = k / QK_K; + { + dpct::has_capability_or_fail(stream->get_device(), + {sycl::aspect::fp16}); + + stream->submit([&](sycl::handler &cgh) { + cgh.parallel_for(sycl::nd_range<3>(sycl::range<3>(1, 1, nb) * + sycl::range<3>(1, 1, 32), + sycl::range<3>(1, 1, 32)), + [=](sycl::nd_item<3> item_ct1) { + dequantize_block_iq3_s( + vx, y, item_ct1, kmask_iq2xs, iq3s_grid); + }); + }); + } +} + +template +static void dequantize_row_iq4_xs_sycl(const void *vx, dst_t *y, const int k, + dpct::queue_ptr stream) { + const int nb = (k + QK_K - 1) / QK_K; +#if QK_K == 64 + dequantize_row_iq4_nl_sycl(vx, y, k, stream); +#else + { + dpct::has_capability_or_fail(stream->get_device(), + {sycl::aspect::fp16}); + + stream->submit([&](sycl::handler &cgh) { + cgh.parallel_for( + sycl::nd_range<3>(sycl::range<3>(1, 1, nb) * + sycl::range<3>(1, 1, 32), + sycl::range<3>(1, 1, 32)), + [=](sycl::nd_item<3> item_ct1) { + dequantize_block_iq4_xs(vx, y, item_ct1); + }); + }); + } +#endif +} + +template +static void dequantize_row_iq4_nl_sycl(const void *vx, dst_t *y, const int k, + dpct::queue_ptr stream) { + const int nb = (k + QK_K - 1) / QK_K; + { + dpct::has_capability_or_fail(stream->get_device(), + {sycl::aspect::fp16}); + + stream->submit([&](sycl::handler &cgh) { + cgh.parallel_for( + sycl::nd_range<3>(sycl::range<3>(1, 1, nb) * + sycl::range<3>(1, 1, 32), + sycl::range<3>(1, 1, 32)), + [=](sycl::nd_item<3> item_ct1) { + dequantize_block_iq4_nl(vx, y, item_ct1); + }); + }); + } +} + +template +static void convert_unary(const void * __restrict__ vx, dst_t * __restrict__ y, const int k, + const sycl::nd_item<3> &item_ct1) { + const int i = item_ct1.get_local_range(2) * item_ct1.get_group(2) + + item_ct1.get_local_id(2); + + if (i >= k) { + return; + } + + const src_t * x = (src_t *) vx; + + y[i] = x[i]; +} + +template +static void convert_unary_sycl(const void *__restrict__ vx, + dst_t *__restrict__ y, const int k, + dpct::queue_ptr stream) { + const int num_blocks = (k + SYCL_DEQUANTIZE_BLOCK_SIZE - 1) / SYCL_DEQUANTIZE_BLOCK_SIZE; + { + dpct::has_capability_or_fail(stream->get_device(), + {sycl::aspect::fp16}); + + stream->parallel_for( + sycl::nd_range<3>( + sycl::range<3>(1, 1, num_blocks) * + sycl::range<3>(1, 1, SYCL_DEQUANTIZE_BLOCK_SIZE), + sycl::range<3>(1, 1, SYCL_DEQUANTIZE_BLOCK_SIZE)), + [=](sycl::nd_item<3> item_ct1) { + convert_unary(vx, y, k, item_ct1); + }); + } +} + +to_fp16_sycl_t ggml_get_to_fp16_sycl(ggml_type type) { + switch (type) { + case GGML_TYPE_Q4_0: + return dequantize_block_sycl; + case GGML_TYPE_Q4_1: + return dequantize_block_sycl; + case GGML_TYPE_Q5_0: + return dequantize_block_sycl; + case GGML_TYPE_Q5_1: + return dequantize_block_sycl; + case GGML_TYPE_Q8_0: + return dequantize_block_sycl; + case GGML_TYPE_Q2_K: + return dequantize_row_q2_K_sycl; + case GGML_TYPE_Q3_K: + return dequantize_row_q3_K_sycl; + case GGML_TYPE_Q4_K: + return dequantize_row_q4_K_sycl; + case GGML_TYPE_Q5_K: + return dequantize_row_q5_K_sycl; + case GGML_TYPE_Q6_K: + return dequantize_row_q6_K_sycl; + case GGML_TYPE_IQ1_S: + return dequantize_row_iq1_s_sycl; + case GGML_TYPE_IQ1_M: + return dequantize_row_iq1_m_sycl; + case GGML_TYPE_IQ2_XXS: + return dequantize_row_iq2_xxs_sycl; + case GGML_TYPE_IQ2_XS: + return dequantize_row_iq2_xs_sycl; + case GGML_TYPE_IQ2_S: + return dequantize_row_iq2_s_sycl; + case GGML_TYPE_IQ3_XXS: + return dequantize_row_iq3_xxs_sycl; + case GGML_TYPE_IQ3_S: + return dequantize_row_iq3_s_sycl; + case GGML_TYPE_IQ4_XS: + return dequantize_row_iq4_xs_sycl; + case GGML_TYPE_IQ4_NL: + return dequantize_row_iq4_nl_sycl; + case GGML_TYPE_F32: + return convert_unary_sycl; + default: + return nullptr; + } +} + +to_fp32_sycl_t ggml_get_to_fp32_sycl(ggml_type type) { + switch (type) { + case GGML_TYPE_Q4_0: + return dequantize_row_q4_0_sycl; + case GGML_TYPE_Q4_1: + return dequantize_row_q4_1_sycl; + case GGML_TYPE_Q5_0: + return dequantize_block_sycl; + case GGML_TYPE_Q5_1: + return dequantize_block_sycl; + case GGML_TYPE_Q8_0: + return dequantize_block_sycl; + case GGML_TYPE_Q2_K: + return dequantize_row_q2_K_sycl; + case GGML_TYPE_Q3_K: + return dequantize_row_q3_K_sycl; + case GGML_TYPE_Q4_K: + return dequantize_row_q4_K_sycl; + case GGML_TYPE_Q5_K: + return dequantize_row_q5_K_sycl; + case GGML_TYPE_Q6_K: + return dequantize_row_q6_K_sycl; + case GGML_TYPE_IQ1_S: + return dequantize_row_iq1_s_sycl; + case GGML_TYPE_IQ1_M: + return dequantize_row_iq1_m_sycl; + case GGML_TYPE_IQ2_XXS: + return dequantize_row_iq2_xxs_sycl; + case GGML_TYPE_IQ2_XS: + return dequantize_row_iq2_xs_sycl; + case GGML_TYPE_IQ2_S: + return dequantize_row_iq2_s_sycl; + case GGML_TYPE_IQ3_XXS: + return dequantize_row_iq3_xxs_sycl; + case GGML_TYPE_IQ3_S: + return dequantize_row_iq3_s_sycl; + case GGML_TYPE_IQ4_XS: + return dequantize_row_iq4_xs_sycl; + case GGML_TYPE_IQ4_NL: + return dequantize_row_iq4_nl_sycl; + case GGML_TYPE_F16: + return convert_unary_sycl; + default: + return nullptr; + } +} diff --git a/ggml-sycl/convert.hpp b/ggml-sycl/convert.hpp new file mode 100644 index 0000000000000..b1f10d6355535 --- /dev/null +++ b/ggml-sycl/convert.hpp @@ -0,0 +1,27 @@ +// +// MIT license +// Copyright (C) 2024 Intel Corporation +// SPDX-License-Identifier: MIT +// + +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// + +#ifndef GGML_SYCL_CONVERT_HPP +#define GGML_SYCL_CONVERT_HPP + +#include "common.hpp" + +template +using to_t_sycl_t = void (*)(const void *__restrict__ x, T *__restrict__ y, + int k, dpct::queue_ptr stream); +typedef to_t_sycl_t to_fp32_sycl_t; +typedef to_t_sycl_t to_fp16_sycl_t; + +to_fp16_sycl_t ggml_get_to_fp16_sycl(ggml_type type); +to_fp32_sycl_t ggml_get_to_fp32_sycl(ggml_type type); + +#endif // GGML_SYCL_CONVERT_HPP diff --git a/ggml-sycl/dequantize.hpp b/ggml-sycl/dequantize.hpp new file mode 100644 index 0000000000000..b6080d83a33eb --- /dev/null +++ b/ggml-sycl/dequantize.hpp @@ -0,0 +1,690 @@ +// +// MIT license +// Copyright (C) 2024 Intel Corporation +// SPDX-License-Identifier: MIT +// + +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// + +#ifndef GGML_SYCL_DEQUANTIZE_HPP +#define GGML_SYCL_DEQUANTIZE_HPP + +#include "common.hpp" + +typedef void (*dequantize_kernel_t)(const void * vx, const int ib, const int iqs, dfloat2 & v); + +static __dpct_inline__ void dequantize_q4_0(const void *vx, const int ib, + const int iqs, dfloat2 &v) { + const block_q4_0 * x = (const block_q4_0 *) vx; + + const dfloat d = x[ib].d; + + const int vui = x[ib].qs[iqs]; + + v.x() = vui & 0xF; + v.y() = vui >> 4; + +#ifdef GGML_SYCL_F16 + // v = v - {8.0f, 8.0f}; + // v = v * {d, d}; + v.s0() = (v.s0() - 8.0f) * d; + v.s1() = (v.s1() - 8.0f) * d; + +#else + v.x() = (v.x() - 8.0f) * d; + v.y() = (v.y() - 8.0f) * d; +#endif // GGML_SYCL_F16 +} + +static __dpct_inline__ void dequantize_q4_1(const void *vx, const int ib, + const int iqs, dfloat2 &v) { + const block_q4_1 * x = (const block_q4_1 *) vx; + + const dfloat d = x[ib].dm[0]; + const dfloat m = x[ib].dm[1]; + + const int vui = x[ib].qs[iqs]; + + v.x() = vui & 0xF; + v.y() = vui >> 4; + +#ifdef GGML_SYCL_F16 + // v = v * {d, d}; + // v = v + {m, m}; + v.s0() = (v.s0() * d) + m; + v.s1() = (v.s1() * d) + m; + +#else + v.x() = (v.x() * d) + m; + v.y() = (v.y() * d) + m; +#endif // GGML_SYCL_F16 +} + +static __dpct_inline__ void dequantize_q5_0(const void *vx, const int ib, + const int iqs, dfloat2 &v) { + const block_q5_0 * x = (const block_q5_0 *) vx; + + const dfloat d = x[ib].d; + + uint32_t qh; + memcpy(&qh, x[ib].qh, sizeof(qh)); + + const int xh_0 = ((qh >> (iqs + 0)) << 4) & 0x10; + const int xh_1 = ((qh >> (iqs + 12)) ) & 0x10; + + v.x() = ((x[ib].qs[iqs] & 0xf) | xh_0); + v.y() = ((x[ib].qs[iqs] >> 4) | xh_1); + +#ifdef GGML_SYCL_F16 + // v = v - {16.0f, 16.0f}; + // v = v * {d, d}; + v.s0() = (v.s0() - 16.0f) * d; + v.s1() = (v.s1() - 16.0f) * d; + +#else + v.x() = (v.x() - 16.0f) * d; + v.y() = (v.y() - 16.0f) * d; +#endif // GGML_SYCL_F16 +} + +static __dpct_inline__ void dequantize_q5_1(const void *vx, const int ib, + const int iqs, dfloat2 &v) { + const block_q5_1 * x = (const block_q5_1 *) vx; + + const dfloat d = x[ib].dm[0]; + const dfloat m = x[ib].dm[1]; + + uint32_t qh; + memcpy(&qh, x[ib].qh, sizeof(qh)); + + const int xh_0 = ((qh >> (iqs + 0)) << 4) & 0x10; + const int xh_1 = ((qh >> (iqs + 12)) ) & 0x10; + + v.x() = ((x[ib].qs[iqs] & 0xf) | xh_0); + v.y() = ((x[ib].qs[iqs] >> 4) | xh_1); + +#ifdef GGML_SYCL_F16 + // v = v * {d, d}; + // v = v + {m, m}; + v.s0() = (v.s0() * d) + m; + v.s1() = (v.s1() * d) + m; +#else + v.x() = (v.x() * d) + m; + v.y() = (v.y() * d) + m; +#endif // GGML_SYCL_F16 +} + +static __dpct_inline__ void dequantize_q8_0(const void *vx, const int ib, + const int iqs, dfloat2 &v) { + const block_q8_0 * x = (const block_q8_0 *) vx; + + const dfloat d = x[ib].d; + + v.x() = x[ib].qs[iqs + 0]; + v.y() = x[ib].qs[iqs + 1]; + +#ifdef GGML_SYCL_F16 + // v = v * {d, d}; + v.s0() *= d; + v.s1() *= d; +#else + v.x() *= d; + v.y() *= d; +#endif // GGML_SYCL_F16 +} + +template +static void dequantize_block_q4_0(const void * __restrict__ vx, dst_t * __restrict__ yy, int nb32, + const sycl::nd_item<3> &item_ct1) { + + const int i = item_ct1.get_group(2); + + // assume 32 threads + const int tid = item_ct1.get_local_id(2); + const int il = tid/8; + const int ir = tid%8; + const int ib = 8*i + ir; + if (ib >= nb32) { + return; + } + + dst_t * y = yy + 256*i + 32*ir + 4*il; + + const block_q4_0 * x = (const block_q4_0 *)vx + ib; + const float d = sycl::vec(x->d) + .convert()[0]; + const float dm = -8*d; + + const uint8_t * q = x->qs + 4*il; + + for (int l = 0; l < 4; ++l) { + y[l+ 0] = d * (q[l] & 0xF) + dm; + y[l+16] = d * (q[l] >> 4) + dm; + } +} + +template +static void dequantize_block_q4_1(const void * __restrict__ vx, dst_t * __restrict__ yy, int nb32, + const sycl::nd_item<3> &item_ct1) { + + const int i = item_ct1.get_group(2); + + // assume 32 threads + const int tid = item_ct1.get_local_id(2); + const int il = tid/8; + const int ir = tid%8; + const int ib = 8*i + ir; + if (ib >= nb32) { + return; + } + + dst_t * y = yy + 256*i + 32*ir + 4*il; + + const block_q4_1 * x = (const block_q4_1 *)vx + ib; + const sycl::float2 d = + x->dm.convert(); + + const uint8_t * q = x->qs + 4*il; + + for (int l = 0; l < 4; ++l) { + y[l + 0] = d.x() * (q[l] & 0xF) + d.y(); + y[l + 16] = d.x() * (q[l] >> 4) + d.y(); + } +} + + +//================================== k-quants + +template +static void dequantize_block_q2_K(const void * __restrict__ vx, dst_t * __restrict__ yy, + const sycl::nd_item<3> &item_ct1) { + + const int i = item_ct1.get_group(2); + const block_q2_K * x = (const block_q2_K *) vx; + + const int tid = item_ct1.get_local_id(2); +#if QK_K == 256 + const int n = tid/32; + const int l = tid - 32*n; + const int is = 8*n + l/16; + + const uint8_t q = x[i].qs[32*n + l]; + dst_t * y = yy + i*QK_K + 128*n; + + float dall = x[i].dm[0]; + float dmin = x[i].dm[1]; + y[l+ 0] = dall * (x[i].scales[is+0] & 0xF) * ((q >> 0) & 3) - dmin * (x[i].scales[is+0] >> 4); + y[l+32] = dall * (x[i].scales[is+2] & 0xF) * ((q >> 2) & 3) - dmin * (x[i].scales[is+2] >> 4); + y[l+64] = dall * (x[i].scales[is+4] & 0xF) * ((q >> 4) & 3) - dmin * (x[i].scales[is+4] >> 4); + y[l+96] = dall * (x[i].scales[is+6] & 0xF) * ((q >> 6) & 3) - dmin * (x[i].scales[is+6] >> 4); +#else + const int is = tid/16; // 0 or 1 + const int il = tid%16; // 0...15 + const uint8_t q = x[i].qs[il] >> (2*is); + dst_t * y = yy + i*QK_K + 16*is + il; + + float dall = x[i].dm[0]; + float dmin = x[i].dm[1]; + y[ 0] = dall * (x[i].scales[is+0] & 0xF) * ((q >> 0) & 3) - dmin * (x[i].scales[is+0] >> 4); + y[32] = dall * (x[i].scales[is+2] & 0xF) * ((q >> 4) & 3) - dmin * (x[i].scales[is+2] >> 4); +#endif + +} + +template +static void dequantize_block_q3_K(const void * __restrict__ vx, dst_t * __restrict__ yy, + const sycl::nd_item<3> &item_ct1) { + + const int i = item_ct1.get_group(2); + const block_q3_K * x = (const block_q3_K *) vx; + +#if QK_K == 256 + const int r = item_ct1.get_local_id(2) / 4; + const int tid = r/2; + const int is0 = r%2; + const int l0 = 16 * is0 + 4 * (item_ct1.get_local_id(2) % 4); + const int n = tid / 4; + const int j = tid - 4*n; + + uint8_t m = 1 << (4*n + j); + int is = 8*n + 2*j + is0; + int shift = 2*j; + + int8_t us = is < 4 ? (x[i].scales[is-0] & 0xF) | (((x[i].scales[is+8] >> 0) & 3) << 4) : + is < 8 ? (x[i].scales[is-0] & 0xF) | (((x[i].scales[is+4] >> 2) & 3) << 4) : + is < 12 ? (x[i].scales[is-8] >> 4) | (((x[i].scales[is+0] >> 4) & 3) << 4) : + (x[i].scales[is-8] >> 4) | (((x[i].scales[is-4] >> 6) & 3) << 4); + float d_all = x[i].d; + float dl = d_all * (us - 32); + + dst_t * y = yy + i*QK_K + 128*n + 32*j; + const uint8_t * q = x[i].qs + 32*n; + const uint8_t * hm = x[i].hmask; + + for (int l = l0; l < l0+4; ++l) y[l] = dl * ((int8_t)((q[l] >> shift) & 3) - ((hm[l] & m) ? 0 : 4)); +#else + const int tid = item_ct1.get_local_id(2); + const int is = tid/16; // 0 or 1 + const int il = tid%16; // 0...15 + const int im = il/8; // 0...1 + const int in = il%8; // 0...7 + + dst_t * y = yy + i*QK_K + 16*is + il; + + const uint8_t q = x[i].qs[il] >> (2*is); + const uint8_t h = x[i].hmask[in] >> (2*is + im); + const float d = (float)x[i].d; + + if (is == 0) { + y[ 0] = d * ((x[i].scales[0] & 0xF) - 8) * ((int8_t)((q >> 0) & 3) - ((h >> 0) & 1 ? 0 : 4)); + y[32] = d * ((x[i].scales[1] & 0xF) - 8) * ((int8_t)((q >> 4) & 3) - ((h >> 4) & 1 ? 0 : 4)); + } else { + y[ 0] = d * ((x[i].scales[0] >> 4) - 8) * ((int8_t)((q >> 0) & 3) - ((h >> 0) & 1 ? 0 : 4)); + y[32] = d * ((x[i].scales[1] >> 4) - 8) * ((int8_t)((q >> 4) & 3) - ((h >> 4) & 1 ? 0 : 4)); + } +#endif + +} + +#if QK_K == 256 +static inline void get_scale_min_k4(int j, const uint8_t * q, uint8_t & d, uint8_t & m) { + if (j < 4) { + d = q[j] & 63; m = q[j + 4] & 63; + } else { + d = (q[j+4] & 0xF) | ((q[j-4] >> 6) << 4); + m = (q[j+4] >> 4) | ((q[j-0] >> 6) << 4); + } +} +#endif + +template +static void dequantize_block_q4_K(const void * __restrict__ vx, dst_t * __restrict__ yy, + const sycl::nd_item<3> &item_ct1) { + const block_q4_K * x = (const block_q4_K *) vx; + + const int i = item_ct1.get_group(2); + +#if QK_K == 256 + // assume 32 threads + const int tid = item_ct1.get_local_id(2); + const int il = tid/8; + const int ir = tid%8; + const int is = 2*il; + const int n = 4; + + dst_t * y = yy + i*QK_K + 64*il + n*ir; + + const float dall = x[i].dm[0]; + const float dmin = x[i].dm[1]; + + const uint8_t * q = x[i].qs + 32*il + n*ir; + + uint8_t sc, m; + get_scale_min_k4(is + 0, x[i].scales, sc, m); + const float d1 = dall * sc; const float m1 = dmin * m; + get_scale_min_k4(is + 1, x[i].scales, sc, m); + const float d2 = dall * sc; const float m2 = dmin * m; + for (int l = 0; l < n; ++l) { + y[l + 0] = d1 * (q[l] & 0xF) - m1; + y[l +32] = d2 * (q[l] >> 4) - m2; + } +#else + const int tid = item_ct1.get_local_id(2); + const uint8_t * q = x[i].qs; + dst_t * y = yy + i*QK_K; + const float d = (float)x[i].dm[0]; + const float m = (float)x[i].dm[1]; + y[tid+ 0] = d * (x[i].scales[0] & 0xF) * (q[tid] & 0xF) - m * (x[i].scales[0] >> 4); + y[tid+32] = d * (x[i].scales[1] & 0xF) * (q[tid] >> 4) - m * (x[i].scales[1] >> 4); +#endif +} + +template +static void dequantize_block_q5_K(const void * __restrict__ vx, dst_t * __restrict__ yy, + const sycl::nd_item<3> &item_ct1) { + const block_q5_K * x = (const block_q5_K *) vx; + + const int i = item_ct1.get_group(2); + +#if QK_K == 256 + // assume 64 threads - this is very slightly better than the one below + const int tid = item_ct1.get_local_id(2); + const int il = tid/16; // il is in 0...3 + const int ir = tid%16; // ir is in 0...15 + const int is = 2*il; // is is in 0...6 + + dst_t * y = yy + i*QK_K + 64*il + 2*ir; + + const float dall = x[i].dm[0]; + const float dmin = x[i].dm[1]; + + const uint8_t * ql = x[i].qs + 32*il + 2*ir; + const uint8_t * qh = x[i].qh + 2*ir; + + uint8_t sc, m; + get_scale_min_k4(is + 0, x[i].scales, sc, m); + const float d1 = dall * sc; const float m1 = dmin * m; + get_scale_min_k4(is + 1, x[i].scales, sc, m); + const float d2 = dall * sc; const float m2 = dmin * m; + + uint8_t hm = 1 << (2*il); + y[ 0] = d1 * ((ql[ 0] & 0xF) + (qh[ 0] & hm ? 16 : 0)) - m1; + y[ 1] = d1 * ((ql[ 1] & 0xF) + (qh[ 1] & hm ? 16 : 0)) - m1; + hm <<= 1; + y[32] = d2 * ((ql[ 0] >> 4) + (qh[ 0] & hm ? 16 : 0)) - m2; + y[33] = d2 * ((ql[ 1] >> 4) + (qh[ 1] & hm ? 16 : 0)) - m2; +#else + const int tid = item_ct1.get_local_id(2); + const uint8_t q = x[i].qs[tid]; + const int im = tid/8; // 0...3 + const int in = tid%8; // 0...7 + const int is = tid/16; // 0 or 1 + const uint8_t h = x[i].qh[in] >> im; + const float d = x[i].d; + dst_t * y = yy + i*QK_K + tid; + y[ 0] = d * x[i].scales[is+0] * ((q & 0xF) - ((h >> 0) & 1 ? 0 : 16)); + y[32] = d * x[i].scales[is+2] * ((q >> 4) - ((h >> 4) & 1 ? 0 : 16)); +#endif +} + +template +static void dequantize_block_q6_K(const void * __restrict__ vx, dst_t * __restrict__ yy, + const sycl::nd_item<3> &item_ct1) { + const block_q6_K * x = (const block_q6_K *) vx; + + const int i = item_ct1.get_group(2); +#if QK_K == 256 + + // assume 64 threads - this is very slightly better than the one below + const int tid = item_ct1.get_local_id(2); + const int ip = tid/32; // ip is 0 or 1 + const int il = tid - 32*ip; // 0...32 + const int is = 8*ip + il/16; + + dst_t * y = yy + i*QK_K + 128*ip + il; + + const float d = x[i].d; + + const uint8_t * ql = x[i].ql + 64*ip + il; + const uint8_t qh = x[i].qh[32*ip + il]; + const int8_t * sc = x[i].scales + is; + + y[ 0] = d * sc[0] * ((int8_t)((ql[ 0] & 0xF) | (((qh >> 0) & 3) << 4)) - 32); + y[32] = d * sc[2] * ((int8_t)((ql[32] & 0xF) | (((qh >> 2) & 3) << 4)) - 32); + y[64] = d * sc[4] * ((int8_t)((ql[ 0] >> 4) | (((qh >> 4) & 3) << 4)) - 32); + y[96] = d * sc[6] * ((int8_t)((ql[32] >> 4) | (((qh >> 6) & 3) << 4)) - 32); +#else + + // assume 32 threads + const int tid = item_ct1.get_local_id(2); + const int ip = tid/16; // 0 or 1 + const int il = tid - 16*ip; // 0...15 + + dst_t * y = yy + i*QK_K + 16*ip + il; + + const float d = x[i].d; + + const uint8_t ql = x[i].ql[16*ip + il]; + const uint8_t qh = x[i].qh[il] >> (2*ip); + const int8_t * sc = x[i].scales; + + y[ 0] = d * sc[ip+0] * ((int8_t)((ql & 0xF) | (((qh >> 0) & 3) << 4)) - 32); + y[32] = d * sc[ip+2] * ((int8_t)((ql >> 4) | (((qh >> 4) & 3) << 4)) - 32); +#endif +} + +template +static void dequantize_block_iq2_xxs(const void * __restrict__ vx, dst_t * __restrict__ yy, + const sycl::nd_item<3> &item_ct1, + const uint64_t *iq2xxs_grid_ptr, + const uint8_t *ksigns_iq2xs_ptr, + const uint8_t *kmask_iq2xs_ptr) { + + const int i = item_ct1.get_group(2); + const block_iq2_xxs * x = (const block_iq2_xxs *) vx; + + const int tid = item_ct1.get_local_id(2); +#if QK_K == 256 + const int il = tid/8; // 0...3 + const int ib = tid%8; // 0...7 + dst_t * y = yy + i*QK_K + 32*ib + 8*il; + const uint16_t * q2 = x[i].qs + 4*ib; + const uint8_t * aux8 = (const uint8_t *)q2; + const uint8_t * grid = (const uint8_t *)(iq2xxs_grid_ptr + aux8[il]); + const uint32_t aux32 = q2[2] | (q2[3] << 16); + const float d = (float)x[i].d * (0.5f + (aux32 >> 28)) * 0.25f; + const uint8_t signs = ksigns_iq2xs_ptr[(aux32 >> 7*il) & 127]; + for (int j = 0; j < 8; ++j) y[j] = d * grid[j] * (signs & kmask_iq2xs_ptr[j] ? -1.f : 1.f); +#else + assert(false); +#endif + +} + +template +static void dequantize_block_iq2_xs(const void * __restrict__ vx, dst_t * __restrict__ yy, + const sycl::nd_item<3> &item_ct1, + const uint64_t *iq2xs_grid, + const uint8_t *ksigns_iq2xs, + const uint8_t *kmask_iq2xs) { + + const int i = item_ct1.get_group(2); + const block_iq2_xs * x = (const block_iq2_xs *) vx; + + const int tid = item_ct1.get_local_id(2); +#if QK_K == 256 + const int il = tid/8; // 0...3 + const int ib = tid%8; // 0...7 + dst_t * y = yy + i*QK_K + 32*ib + 8*il; + const uint16_t * q2 = x[i].qs + 4*ib; + const uint8_t * grid = (const uint8_t *)(iq2xs_grid + (q2[il] & 511)); + const float d = (float)x[i].d * (0.5f + ((x[i].scales[ib] >> 4*(il/2)) & 0xf)) * 0.25f; + const uint8_t signs = ksigns_iq2xs[q2[il] >> 9]; + for (int j = 0; j < 8; ++j) y[j] = d * grid[j] * (signs & kmask_iq2xs[j] ? -1.f : 1.f); +#else + assert(false); +#endif + +} + +template +__dpct_inline__ static void +dequantize_block_iq2_s(const void *__restrict__ vx, dst_t *__restrict__ yy, + const sycl::nd_item<3> &item_ct1) { + + const int i = item_ct1.get_group(2); + const block_iq2_s * x = (const block_iq2_s *) vx; + + const int tid = item_ct1.get_local_id(2); +#if QK_K == 256 + const int il = tid/8; // 0...3 + const int ib = tid%8; // 0...7 + dst_t * y = yy + i*QK_K + 32*ib + 8*il; + const uint8_t * grid = (const uint8_t *)(iq2s_grid + (x[i].qs[4*ib+il] | ((x[i].qh[ib] << (8-2*il)) & 0x300))); + const float d = (float)x[i].d * (0.5f + ((x[i].scales[ib] >> 4*(il/2)) & 0xf)) * 0.25f; + const uint8_t signs = x[i].qs[QK_K/8+4*ib+il]; +#pragma unroll + for (int j = 0; j < 8; ++j) + y[j] = d * grid[j] * (signs & kmask_iq2xs[j] ? -1.f : 1.f); +#else + assert(false); + +#endif + +} + +template +static void dequantize_block_iq3_xxs(const void * __restrict__ vx, dst_t * __restrict__ yy, + const sycl::nd_item<3> &item_ct1, + const uint32_t *iq3xxs_grid, + const uint8_t *ksigns_iq2xs, + const uint8_t *kmask_iq2xs) { + + const int i = item_ct1.get_group(2); + const block_iq3_xxs * x = (const block_iq3_xxs *) vx; + + const int tid = item_ct1.get_local_id(2); +#if QK_K == 256 + const int il = tid/8; // 0...3 + const int ib = tid%8; // 0...7 + dst_t * y = yy + i*QK_K + 32*ib + 8*il; + const uint8_t * q3 = x[i].qs + 8*ib; + const uint16_t * gas = (const uint16_t *)(x[i].qs + QK_K/4) + 2*ib; + const uint8_t * grid1 = (const uint8_t *)(iq3xxs_grid + q3[2*il+0]); + const uint8_t * grid2 = (const uint8_t *)(iq3xxs_grid + q3[2*il+1]); + const uint32_t aux32 = gas[0] | (gas[1] << 16); + const float d = (float)x[i].d * (0.5f + (aux32 >> 28)) * 0.5f; + const uint8_t signs = ksigns_iq2xs[(aux32 >> 7*il) & 127]; + for (int j = 0; j < 4; ++j) { + y[j+0] = d * grid1[j] * (signs & kmask_iq2xs[j+0] ? -1.f : 1.f); + y[j+4] = d * grid2[j] * (signs & kmask_iq2xs[j+4] ? -1.f : 1.f); + } +#else + assert(false); +#endif + +} + +template +__dpct_inline__ static void +dequantize_block_iq3_s(const void *__restrict__ vx, dst_t *__restrict__ yy, + const sycl::nd_item<3> &item_ct1, + const uint8_t *kmask_iq2xs, const uint32_t *iq3s_grid) { + + const int i = item_ct1.get_group(2); + const block_iq3_s * x = (const block_iq3_s *) vx; + + const int tid = item_ct1.get_local_id(2); +#if QK_K == 256 + const int il = tid/8; // 0...3 + const int ib = tid%8; // 0...7 + dst_t * y = yy + i*QK_K + 32*ib + 8*il; + const uint8_t * qs = x[i].qs + 8*ib; + const uint8_t * grid1 = (const uint8_t *)(iq3s_grid + (qs[2*il+0] | ((x[i].qh[ib] << (8-2*il)) & 256))); + const uint8_t * grid2 = (const uint8_t *)(iq3s_grid + (qs[2*il+1] | ((x[i].qh[ib] << (7-2*il)) & 256))); + const float d = (float)x[i].d * (1 + 2*((x[i].scales[ib/2] >> 4*(ib%2)) & 0xf)); + const uint8_t signs = x[i].signs[4*ib + il]; +#pragma unroll + for (int j = 0; j < 4; ++j) { + y[j+0] = d * grid1[j] * (signs & kmask_iq2xs[j+0] ? -1.f : 1.f); + y[j+4] = d * grid2[j] * (signs & kmask_iq2xs[j+4] ? -1.f : 1.f); + } +#else + assert(false); +#endif + +} + +template +__dpct_inline__ static void +dequantize_block_iq1_s(const void *__restrict__ vx, dst_t *__restrict__ yy, + const sycl::nd_item<3> &item_ct1, + const uint32_t *iq1s_grid_gpu) { + + const int i = item_ct1.get_group(2); + const block_iq1_s * x = (const block_iq1_s *) vx; + + const int tid = item_ct1.get_local_id(2); +#if QK_K == 256 + const int il = tid/8; // 0...3 + const int ib = tid%8; // 0...7 + dst_t * y = yy + i*QK_K + 32*ib + 8*il; + const float delta = x[i].qh[ib] & 0x8000 ? -1 - IQ1S_DELTA : -1 + IQ1S_DELTA; + const float d = (float)x[i].d * (2*((x[i].qh[ib] >> 12) & 7) + 1); + uint32_t grid32[2]; const int8_t * q = (const int8_t *)grid32; + grid32[0] = iq1s_grid_gpu[x[i].qs[4*ib+il] | (((x[i].qh[ib] >> 3*il) & 7) << 8)]; + grid32[1] = (grid32[0] >> 4) & 0x0f0f0f0f; + grid32[0] &= 0x0f0f0f0f; +#pragma unroll + for (int j = 0; j < 8; ++j) { + y[j] = d * (q[j] + delta); + } +#else + assert(false); +#endif + +} + +template +__dpct_inline__ static void +dequantize_block_iq1_m(const void *__restrict__ vx, dst_t *__restrict__ yy, + const sycl::nd_item<3> &item_ct1, + const uint32_t *iq1s_grid_gpu) { + + const int i = item_ct1.get_group(2); + const block_iq1_m * x = (const block_iq1_m *) vx; + + const int tid = item_ct1.get_local_id(2); +#if QK_K == 256 + const int il = tid/8; // 0...3 + const int ib = tid%8; // 0...7 + dst_t * y = yy + i*QK_K + 32*ib + 8*il; + const uint16_t * sc = (const uint16_t *)x[i].scales; + iq1m_scale_t scale; + scale.u16 = (sc[0] >> 12) | ((sc[1] >> 8) & 0x00f0) | ((sc[2] >> 4) & 0x0f00) | (sc[3] & 0xf000); + const int ib16 = 2*ib + il/2; // sc[ib16/4] >> 3*(ib16%4) -> sc[ib/2] >> 3*((2*ib+il/2)%4); + const float d = (float)scale.f16 * (2*((sc[ib16/4] >> 3*(ib16%4)) & 0x7) + 1); + const float delta = x[i].qh[2*ib+il/2] & (0x08 << 4*(il%2)) ? -1 - IQ1M_DELTA : -1 + IQ1M_DELTA; + uint32_t grid32[2]; const int8_t * q = (const int8_t *)grid32; + grid32[0] = iq1s_grid_gpu[x[i].qs[4*ib+il] | (((x[i].qh[2*ib+il/2] >> 4*(il%2)) & 7) << 8)]; + grid32[1] = (grid32[0] >> 4) & 0x0f0f0f0f; + grid32[0] &= 0x0f0f0f0f; +#pragma unroll + for (int j = 0; j < 8; ++j) { + y[j] = d * (q[j] + delta); + } +#else + assert(false); +#endif + +} + +template +__dpct_inline__ static void +dequantize_block_iq4_nl(const void *__restrict__ vx, dst_t *__restrict__ yy, + const sycl::nd_item<3> &item_ct1) { + + const int i = item_ct1.get_group(2); + const block_iq4_nl * x = (const block_iq4_nl *) vx + i*(QK_K/QK4_NL); + + const int tid = item_ct1.get_local_id(2); + const int il = tid/8; // 0...3 + const int ib = tid%8; // 0...7 + dst_t * y = yy + i*QK_K + 32*ib + 4*il; + const uint8_t * q4 = x[ib].qs + 4*il; + const float d = (float)x[ib].d; +#pragma unroll + for (int j = 0; j < 4; ++j) { + y[j+ 0] = d * kvalues_iq4nl[q4[j] & 0xf]; + y[j+16] = d * kvalues_iq4nl[q4[j] >> 4]; + } + +} + + +template +__dpct_inline__ static void +dequantize_block_iq4_xs(const void *__restrict__ vx, dst_t *__restrict__ yy, + const sycl::nd_item<3> &item_ct1) { + const int i = item_ct1.get_group(2); + const block_iq4_xs * x = (const block_iq4_xs *)vx; + + const int tid = item_ct1.get_local_id(2); + const int il = tid/8; // 0...3 + const int ib = tid%8; // 0...7 + dst_t * y = yy + i*QK_K + 32*ib + 4*il; + const uint8_t * q4 = x[i].qs + 16*ib + 4*il; + const float d = (float)x[i].d * ((((x[i].scales_l[ib/2] >> 4*(ib%2)) & 0xf) | (((x[i].scales_h >> 2*ib) & 3) << 4)) - 32); +#pragma unroll + for (int j = 0; j < 4; ++j) { + y[j+ 0] = d * kvalues_iq4nl[q4[j] & 0xf]; + y[j+16] = d * kvalues_iq4nl[q4[j] >> 4]; + } +} + + +#endif // GGML_SYCL_DEQUANTIZE_HPP diff --git a/ggml-sycl/dmmv.cpp b/ggml-sycl/dmmv.cpp new file mode 100644 index 0000000000000..3a87d3ef8e45c --- /dev/null +++ b/ggml-sycl/dmmv.cpp @@ -0,0 +1,1022 @@ +#include "convert.hpp" +#include "dmmv.hpp" +#include "dequantize.hpp" +#include "presets.hpp" + +static void convert_f16(const void * vx, const int ib, const int iqs, dfloat2 & v){ + const sycl::half *x = (const sycl::half *)vx; + + // automatic half -> float type cast if dfloat == float + v.x() = x[ib + iqs + 0]; + v.y() = x[ib + iqs + 1]; +} + +static void convert_f32(const void * vx, const int ib, const int iqs, dfloat2 & v){ + const float * x = (const float *) vx; + + // automatic half -> float type cast if dfloat == float + v.x() = x[ib + iqs + 0]; + v.y() = x[ib + iqs + 1]; +} + +template +static void dequantize_mul_mat_vec(const void * __restrict__ vx, const dfloat * __restrict__ y, float * __restrict__ dst, const int ncols, const int nrows, + const sycl::nd_item<3> &item_ct1) { + // qk = quantized weights per x block + // qr = number of quantized weights per data value in x block + const int row = item_ct1.get_group(2) * item_ct1.get_local_range(1) + + item_ct1.get_local_id(1); + + if (row >= nrows) { + return; + } + + const int tid = item_ct1.get_local_id(2); + + const int iter_stride = 2*GGML_SYCL_DMMV_X; + const int vals_per_iter = iter_stride / WARP_SIZE; // num quantized vals per thread and i iter + const int y_offset = qr == 1 ? 1 : qk/2; + +// partial sum for each thread +#ifdef GGML_SYCL_F16 + sycl::half2 tmp = {0.0f, 0.0f}; // two sums for f16 to take advantage of half2 intrinsics +#else + float tmp = 0.0f; +#endif // GGML_SYCL_F16 + + for (int i = 0; i < ncols; i += iter_stride) { + const int col = i + vals_per_iter*tid; + const int ib = (row*ncols + col)/qk; // x block index + const int iqs = (col%qk)/qr; // x quant index + const int iybs = col - col%qk; // y block start index + +// processing >2 values per i iter is faster for fast GPUs +#pragma unroll + for (int j = 0; j < vals_per_iter; j += 2) { + // process 2 vals per j iter + + // dequantize + // for qr = 2 the iqs needs to increase by 1 per j iter because 2 weights per data val + dfloat2 v; + dequantize_kernel(vx, ib, iqs + j/qr, v); + + // matrix multiplication + // for qr = 2 the y index needs to increase by 1 per j iter because of y_offset = qk/2 +#ifdef GGML_SYCL_F16 + dfloat2 t1{y[iybs + iqs + j / qr + 0], + y[iybs + iqs + j / qr + y_offset]}; + + tmp += v * t1; +#else + tmp += v.x() * y[iybs + iqs + j / qr + 0]; + tmp += v.y() * y[iybs + iqs + j / qr + y_offset]; +#endif // GGML_SYCL_F16 + } + } + + // sum up partial sums and write back result +#pragma unroll + for (int mask = 16; mask > 0; mask >>= 1) { + tmp += + dpct::permute_sub_group_by_xor(item_ct1.get_sub_group(), tmp, mask); + } + + if (tid == 0) { +#ifdef GGML_SYCL_F16 + dst[row] = tmp.x() + tmp.y(); +#else + dst[row] = tmp; +#endif // GGML_SYCL_F16 + } +} + +static void convert_mul_mat_vec_f16_sycl(const void *vx, const dfloat *y, + float *dst, const int ncols, + const int nrows, + dpct::queue_ptr stream) { + GGML_ASSERT(ncols % GGML_SYCL_DMMV_X == 0); + const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y; + const sycl::range<3> block_nums(1, 1, block_num_y); + const sycl::range<3> block_dims(1, GGML_SYCL_MMV_Y, WARP_SIZE); + { + dpct::has_capability_or_fail(stream->get_device(), + {sycl::aspect::fp16}); + + stream->parallel_for( + sycl::nd_range<3>(block_nums * block_dims, block_dims), + [=](sycl::nd_item<3> item_ct1) [[intel::reqd_sub_group_size(32)]] { + dequantize_mul_mat_vec<1, 1, convert_f16>(vx, y, dst, ncols, + nrows, item_ct1); + }); + } +} + +/* +DPCT1110:4: The total declared local variable size in device function +dequantize_mul_mat_vec_q2_k exceeds 128 bytes and may cause high register +pressure. Consult with your hardware vendor to find the total register size +available and adjust the code, or use smaller sub-group size to avoid high +register pressure. +*/ +static void dequantize_mul_mat_vec_q2_k(const void *__restrict__ vx, + const float *__restrict__ yy, + float *__restrict__ dst, + const int ncols, int nrows, + const sycl::nd_item<3> &item_ct1) { + + static_assert(16%K_QUANTS_PER_ITERATION == 0, "16 must be divisible by K_QUANTS_PER_ITERATION"); + + const int row = item_ct1.get_group(2) * item_ct1.get_local_range(1) + + item_ct1.get_local_id(1); + if (row > nrows) return; + + const int num_blocks_per_row = ncols / QK_K; + const int ib0 = row*num_blocks_per_row; + + const block_q2_K * x = (const block_q2_K *)vx + ib0; + + float tmp = 0; // partial sum for thread in warp + +#if QK_K == 256 + const int tid = + item_ct1.get_local_id(2) / K_QUANTS_PER_ITERATION; // 0...31 or 0...15 + const int ix = + item_ct1.get_local_id(2) % K_QUANTS_PER_ITERATION; // 0 or 0,1 + + const int step = 16/K_QUANTS_PER_ITERATION; + + const int im = tid/step; // 0 or 1. 0 computes 0..., 1 computes 128... + const int in = tid - step*im; // 0...15 or 0...7 + + const int l0 = K_QUANTS_PER_ITERATION*in; // 0...15 or 0...14 in steps of 2 + const int q_offset = 32*im + l0; + const int s_offset = 8*im; + const int y_offset = 128*im + l0; + + uint32_t aux[4]; + const uint8_t * d = (const uint8_t *)aux; + const uint8_t * m = (const uint8_t *)(aux + 2); + + for (int i = ix; i < num_blocks_per_row; i += K_QUANTS_PER_ITERATION) { + + const float * y = yy + i * QK_K + y_offset; + const uint8_t * q = x[i].qs + q_offset; + + const float dall = x[i].dm[0]; + const float dmin = x[i].dm[1]; + + const uint32_t * a = (const uint32_t *)(x[i].scales + s_offset); + aux[0] = a[0] & 0x0f0f0f0f; + aux[1] = a[1] & 0x0f0f0f0f; + aux[2] = (a[0] >> 4) & 0x0f0f0f0f; + aux[3] = (a[1] >> 4) & 0x0f0f0f0f; + + float sum1 = 0, sum2 = 0; + for (int l = 0; l < K_QUANTS_PER_ITERATION; ++l) { + sum1 += y[l+ 0] * d[0] * ((q[l+ 0] >> 0) & 3) + + y[l+32] * d[2] * ((q[l+ 0] >> 2) & 3) + + y[l+64] * d[4] * ((q[l+ 0] >> 4) & 3) + + y[l+96] * d[6] * ((q[l+ 0] >> 6) & 3) + + y[l+16] * d[1] * ((q[l+16] >> 0) & 3) + + y[l+48] * d[3] * ((q[l+16] >> 2) & 3) + + y[l+80] * d[5] * ((q[l+16] >> 4) & 3) + +y[l+112] * d[7] * ((q[l+16] >> 6) & 3); + sum2 += y[l+ 0] * m[0] + y[l+32] * m[2] + y[l+64] * m[4] + y[ l+96] * m[6] + + y[l+16] * m[1] + y[l+48] * m[3] + y[l+80] * m[5] + y[l+112] * m[7]; + + } + tmp += dall * sum1 - dmin * sum2; + + } +#else + const int tid = item_ct1.get_local_id(2) / + (2 * K_QUANTS_PER_ITERATION); // 0...15 or 0...7 + const int ix = item_ct1.get_local_id(2) % + (2 * K_QUANTS_PER_ITERATION); // 0....1 or 0...3 + const int offset = tid * K_QUANTS_PER_ITERATION; + + uint32_t uaux[2]; + const uint8_t * d = (const uint8_t *)uaux; + + + for (int i = ix; i < num_blocks_per_row; i += 2*K_QUANTS_PER_ITERATION) { + + const float * y = yy + i * QK_K + offset; + const uint8_t * q = x[i].qs + offset; + const uint32_t * s = (const uint32_t *)x[i].scales; + + uaux[0] = s[0] & 0x0f0f0f0f; + uaux[1] = (s[0] >> 4) & 0x0f0f0f0f; + + const sycl::float2 dall = + x[i].dm.convert(); + + float sum1 = 0, sum2 = 0; + for (int l = 0; l < K_QUANTS_PER_ITERATION; ++l) { + const uint8_t ql = q[l]; + sum1 += y[l+ 0] * d[0] * ((ql >> 0) & 3) + + y[l+16] * d[1] * ((ql >> 2) & 3) + + y[l+32] * d[2] * ((ql >> 4) & 3) + + y[l+48] * d[3] * ((ql >> 6) & 3); + sum2 += y[l+0] * d[4] + y[l+16] * d[5] + y[l+32] * d[6] + y[l+48] * d[7]; + } + tmp += dall.x() * sum1 - dall.y() * sum2; + } + +#endif + + // sum up partial sums and write back result +#pragma unroll + for (int mask = 16; mask > 0; mask >>= 1) { + tmp += + dpct::permute_sub_group_by_xor(item_ct1.get_sub_group(), tmp, mask); + } + + if (item_ct1.get_local_id(2) == 0) { + dst[row] = tmp; + } +} + +/* +DPCT1110:5: The total declared local variable size in device function +dequantize_mul_mat_vec_q3_k exceeds 128 bytes and may cause high register +pressure. Consult with your hardware vendor to find the total register size +available and adjust the code, or use smaller sub-group size to avoid high +register pressure. +*/ +static void dequantize_mul_mat_vec_q3_k(const void *__restrict__ vx, + const float *__restrict__ yy, + float *__restrict__ dst, + const int ncols, int nrows, + const sycl::nd_item<3> &item_ct1) { + + const int row = item_ct1.get_group(2) * item_ct1.get_local_range(1) + + item_ct1.get_local_id(1); + if (row > nrows) return; + + const int num_blocks_per_row = ncols / QK_K; + const int ib0 = row*num_blocks_per_row; + + const block_q3_K * x = (const block_q3_K *)vx + ib0; + + float tmp = 0; // partial sum for thread in warp + +#if QK_K == 256 + + const uint16_t kmask1 = 0x0303; + const uint16_t kmask2 = 0x0f0f; + + const int tid = + item_ct1.get_local_id(2) / K_QUANTS_PER_ITERATION; // 0...31 or 0...16 + const int ix = + item_ct1.get_local_id(2) % K_QUANTS_PER_ITERATION; // 0 or 0,1 + + const int n = K_QUANTS_PER_ITERATION; // iterations in the inner loop + const int step = 16/K_QUANTS_PER_ITERATION; + const int im = tid/step; // 0 or 1. 0 computes 0..., 1 computes 128... + const int in = tid - step*im; // 0....15 or 0...7 + + const uint8_t m = 1 << (4*im); + + const int l0 = n*in; // 0...15 or 0...14 in steps of 2 + const int q_offset = 32*im + l0; + const int y_offset = 128*im + l0; + + uint16_t utmp[4]; + const int8_t * s = (const int8_t *)utmp; + + const uint16_t s_shift = 4*im; + + for (int i = ix; i < num_blocks_per_row; i += K_QUANTS_PER_ITERATION) { + + const float * y = yy + i * QK_K + y_offset; + const uint8_t * q = x[i].qs + q_offset; + const uint8_t * h = x[i].hmask + l0; + + const uint16_t * a = (const uint16_t *)x[i].scales; + utmp[0] = ((a[0] >> s_shift) & kmask2) | (((a[4] >> (s_shift + 0)) & kmask1) << 4); + utmp[1] = ((a[1] >> s_shift) & kmask2) | (((a[5] >> (s_shift + 0)) & kmask1) << 4); + utmp[2] = ((a[2] >> s_shift) & kmask2) | (((a[4] >> (s_shift + 2)) & kmask1) << 4); + utmp[3] = ((a[3] >> s_shift) & kmask2) | (((a[5] >> (s_shift + 2)) & kmask1) << 4); + + const float d = x[i].d; + + float sum = 0; + for (int l = 0; l < n; ++l) { + sum += y[l+ 0] * (s[0] - 32) * (((q[l] >> 0) & 3) - (h[l] & (m << 0) ? 0 : 4)) + + y[l+32] * (s[2] - 32) * (((q[l] >> 2) & 3) - (h[l] & (m << 1) ? 0 : 4)) + + y[l+64] * (s[4] - 32) * (((q[l] >> 4) & 3) - (h[l] & (m << 2) ? 0 : 4)) + + y[l+96] * (s[6] - 32) * (((q[l] >> 6) & 3) - (h[l] & (m << 3) ? 0 : 4)); + sum += y[l+16] * (s[1] - 32) * (((q[l+16] >> 0) & 3) - (h[l+16] & (m << 0) ? 0 : 4)) + + y[l+48] * (s[3] - 32) * (((q[l+16] >> 2) & 3) - (h[l+16] & (m << 1) ? 0 : 4)) + + y[l+80] * (s[5] - 32) * (((q[l+16] >> 4) & 3) - (h[l+16] & (m << 2) ? 0 : 4)) + + y[l+112] * (s[7] - 32) * (((q[l+16] >> 6) & 3) - (h[l+16] & (m << 3) ? 0 : 4)); + } + tmp += d * sum; + + } +#else + + const int tid = item_ct1.get_local_id(2)/(2*K_QUANTS_PER_ITERATION); // 0...15 or 0...7 + const int ix = item_ct1.get_local_id(2)%(2*K_QUANTS_PER_ITERATION); // 0....1 or 0...3 + const int offset = tid * K_QUANTS_PER_ITERATION; // 0...15 or 0...14 + const int in = offset/8; // 0 or 1 + const int im = offset%8; // 0...7 + + for (int i = ix; i < num_blocks_per_row; i += 2*K_QUANTS_PER_ITERATION) { + + const float * y = yy + i * QK_K + offset; + const uint8_t * q = x[i].qs + offset; + const uint8_t * s = x[i].scales; + + const float dall = (float)x[i].d; + + float sum = 0; + for (int l = 0; l < K_QUANTS_PER_ITERATION; ++l) { + const uint8_t hl = x[i].hmask[im+l] >> in; + const uint8_t ql = q[l]; + sum += y[l+ 0] * dall * ((s[0] & 0xF) - 8) * ((int8_t)((ql >> 0) & 3) - ((hl >> 0) & 1 ? 0 : 4)) + + y[l+16] * dall * ((s[0] >> 4) - 8) * ((int8_t)((ql >> 2) & 3) - ((hl >> 2) & 1 ? 0 : 4)) + + y[l+32] * dall * ((s[1] & 0xF) - 8) * ((int8_t)((ql >> 4) & 3) - ((hl >> 4) & 1 ? 0 : 4)) + + y[l+48] * dall * ((s[1] >> 4) - 8) * ((int8_t)((ql >> 6) & 3) - ((hl >> 6) & 1 ? 0 : 4)); + } + tmp += sum; + } +#endif + + // sum up partial sums and write back result +#pragma unroll + for (int mask = 16; mask > 0; mask >>= 1) { + tmp += + dpct::permute_sub_group_by_xor(item_ct1.get_sub_group(), tmp, mask); + } + + if (item_ct1.get_local_id(2) == 0) { + dst[row] = tmp; + } +} + +/* +DPCT1110:6: The total declared local variable size in device function +dequantize_mul_mat_vec_q4_k exceeds 128 bytes and may cause high register +pressure. Consult with your hardware vendor to find the total register size +available and adjust the code, or use smaller sub-group size to avoid high +register pressure. +*/ +static void dequantize_mul_mat_vec_q4_k(const void *__restrict__ vx, + const float *__restrict__ yy, + float *__restrict__ dst, + const int ncols, int nrows, + const sycl::nd_item<3> &item_ct1) { + + const int row = item_ct1.get_group(2) * item_ct1.get_local_range(1) + + item_ct1.get_local_id(1); + if (row > nrows) return; + const int num_blocks_per_row = ncols / QK_K; + const int ib0 = row*num_blocks_per_row; + + const block_q4_K * x = (const block_q4_K *)vx + ib0; + +#if QK_K == 256 + const uint16_t kmask1 = 0x3f3f; + const uint16_t kmask2 = 0x0f0f; + const uint16_t kmask3 = 0xc0c0; + + const int tid = + item_ct1.get_local_id(2) / K_QUANTS_PER_ITERATION; // 0...31 or 0...16 + const int ix = + item_ct1.get_local_id(2) % K_QUANTS_PER_ITERATION; // 0 or 0,1 + + const int step = 8/K_QUANTS_PER_ITERATION; // 8 or 4 + + const int il = tid/step; // 0...3 + const int ir = tid - step*il; // 0...7 or 0...3 + const int n = 2 * K_QUANTS_PER_ITERATION; // 2 or 4 + + const int im = il/2; // 0 or 1. 0 computes 0,32 + 128,160, 1 computes 64,96 + 192,224 + const int in = il%2; + + const int l0 = n*(2*ir + in); + const int q_offset = 32*im + l0; + const int y_offset = 64*im + l0; + + uint16_t aux[4]; + const uint8_t * sc = (const uint8_t *)aux; + +#if K_QUANTS_PER_ITERATION == 2 + uint32_t q32[4]; + const uint8_t * q4 = (const uint8_t *)q32; +#else + uint16_t q16[4]; + const uint8_t * q4 = (const uint8_t *)q16; +#endif + + float tmp = 0; // partial sum for thread in warp + + for (int i = ix; i < num_blocks_per_row; i += K_QUANTS_PER_ITERATION) { + + const float * y1 = yy + i*QK_K + y_offset; + const float * y2 = y1 + 128; + + const float dall = x[i].dm[0]; + const float dmin = x[i].dm[1]; + + const uint16_t * a = (const uint16_t *)x[i].scales; + aux[0] = a[im+0] & kmask1; + aux[1] = a[im+2] & kmask1; + aux[2] = ((a[im+4] >> 0) & kmask2) | ((a[im+0] & kmask3) >> 2); + aux[3] = ((a[im+4] >> 4) & kmask2) | ((a[im+2] & kmask3) >> 2); + +#if K_QUANTS_PER_ITERATION == 2 + const uint32_t * q1 = (const uint32_t *)(x[i].qs + q_offset); + const uint32_t * q2 = q1 + 16; + + q32[0] = q1[0] & 0x0f0f0f0f; + q32[1] = q1[0] & 0xf0f0f0f0; + q32[2] = q2[0] & 0x0f0f0f0f; + q32[3] = q2[0] & 0xf0f0f0f0; + + sycl::float4 s = {0.f, 0.f, 0.f, 0.f}; + float smin = 0; + for (int l = 0; l < 4; ++l) { + s.x() += y1[l] * q4[l + 0]; s.y() += y1[l + 32] * q4[l + 4]; + s.z() += y2[l] * q4[l + 8]; s.w() += y2[l + 32] * q4[l + 12]; + smin += y1[l] * sc[2] + y1[l+32] * sc[3] + y2[l] * sc[6] + y2[l+32] * sc[7]; + } + tmp += dall * (s.x() * sc[0] + s.y() * sc[1] * 1.f / 16.f + + s.z() * sc[4] + s.w() * sc[5] * 1.f / 16.f) - + dmin * smin; +#else + const uint16_t * q1 = (const uint16_t *)(x[i].qs + q_offset); + const uint16_t * q2 = q1 + 32; + + q16[0] = q1[0] & 0x0f0f; + q16[1] = q1[0] & 0xf0f0; + q16[2] = q2[0] & 0x0f0f; + q16[3] = q2[0] & 0xf0f0; + + float4 s = {0.f, 0.f, 0.f, 0.f}; + float smin = 0; + for (int l = 0; l < 2; ++l) { + s.x += y1[l] * q4[l+0]; s.y += y1[l+32] * q4[l+2]; + s.z += y2[l] * q4[l+4]; s.w += y2[l+32] * q4[l+6]; + smin += y1[l] * sc[2] + y1[l+32] * sc[3] + y2[l] * sc[6] + y2[l+32] * sc[7]; + } + tmp += dall * (s.x * sc[0] + s.y * sc[1] * 1.f/16.f + s.z * sc[4] + s.w * sc[5] * 1.f/16.f) - dmin * smin; +#endif + + } +#else + const int tid = item_ct1.get_local_id(2)/(2*K_QUANTS_PER_ITERATION); // 0...15 + const int ix = item_ct1.get_local_id(2)%(2*K_QUANTS_PER_ITERATION); + + const int step = tid * K_QUANTS_PER_ITERATION; + + uint16_t aux16[2]; + const uint8_t * s = (const uint8_t *)aux16; + + float tmp = 0; + + for (int i = ix; i < num_blocks_per_row; i += 2*K_QUANTS_PER_ITERATION) { + const uint8_t * q = x[i].qs + step; + const float * y = yy + i*QK_K + step; + const uint16_t * a = (const uint16_t *)x[i].scales; + aux16[0] = a[0] & 0x0f0f; + aux16[1] = (a[0] >> 4) & 0x0f0f; + const float d = (float)x[i].dm[0]; + const float m = (float)x[i].dm[1]; + float sum = 0.f; + for (int j = 0; j < K_QUANTS_PER_ITERATION; ++j) { + sum += y[j+ 0] * (d * s[0] * (q[j+ 0] & 0xF) - m * s[2]) + + y[j+16] * (d * s[0] * (q[j+16] & 0xF) - m * s[2]) + + y[j+32] * (d * s[1] * (q[j+ 0] >> 4) - m * s[3]) + + y[j+48] * (d * s[1] * (q[j+16] >> 4) - m * s[3]); + } + tmp += sum; + } + +#endif + + // sum up partial sums and write back result +#pragma unroll + for (int mask = 16; mask > 0; mask >>= 1) { + tmp += + dpct::permute_sub_group_by_xor(item_ct1.get_sub_group(), tmp, mask); + } + + if (tid == 0) { + dst[row] = tmp; + } +} + +/* +DPCT1110:7: The total declared local variable size in device function +dequantize_mul_mat_vec_q5_k exceeds 128 bytes and may cause high register +pressure. Consult with your hardware vendor to find the total register size +available and adjust the code, or use smaller sub-group size to avoid high +register pressure. +*/ +static void dequantize_mul_mat_vec_q5_k(const void *__restrict__ vx, + const float *__restrict__ yy, + float *__restrict__ dst, + const int ncols, + const sycl::nd_item<3> &item_ct1) { + + const int row = item_ct1.get_group(2); + const int num_blocks_per_row = ncols / QK_K; + const int ib0 = row*num_blocks_per_row; + + const block_q5_K * x = (const block_q5_K *)vx + ib0; + + float tmp = 0; // partial sum for thread in warp + +#if QK_K == 256 + const uint16_t kmask1 = 0x3f3f; + const uint16_t kmask2 = 0x0f0f; + const uint16_t kmask3 = 0xc0c0; + + const int tid = item_ct1.get_local_id(2) / 2; // 0...15 + const int ix = item_ct1.get_local_id(2) % 2; + + const int il = tid/4; // 0...3 + const int ir = tid - 4*il;// 0...3 + const int n = 2; + + const int im = il/2; // 0 or 1. 0 computes 0,32 + 128,160, 1 computes 64,96 + 192,224 + const int in = il%2; + + const int l0 = n*(2*ir + in); + const int q_offset = 32*im + l0; + const int y_offset = 64*im + l0; + + const uint8_t hm1 = 1 << (2*im); + const uint8_t hm2 = hm1 << 4; + + uint16_t aux[4]; + const uint8_t * sc = (const uint8_t *)aux; + + uint16_t q16[8]; + const uint8_t * q4 = (const uint8_t *)q16; + + for (int i = ix; i < num_blocks_per_row; i += 2) { + + const uint8_t * ql1 = x[i].qs + q_offset; + const uint8_t * qh = x[i].qh + l0; + const float * y1 = yy + i*QK_K + y_offset; + const float * y2 = y1 + 128; + + const float dall = x[i].dm[0]; + const float dmin = x[i].dm[1]; + + const uint16_t * a = (const uint16_t *)x[i].scales; + aux[0] = a[im+0] & kmask1; + aux[1] = a[im+2] & kmask1; + aux[2] = ((a[im+4] >> 0) & kmask2) | ((a[im+0] & kmask3) >> 2); + aux[3] = ((a[im+4] >> 4) & kmask2) | ((a[im+2] & kmask3) >> 2); + + sycl::float4 sum = {0.f, 0.f, 0.f, 0.f}; + float smin = 0; + const uint16_t * q1 = (const uint16_t *)ql1; + const uint16_t * q2 = q1 + 32; + q16[0] = q1[0] & 0x0f0f; + q16[1] = q1[8] & 0x0f0f; + q16[2] = (q1[0] >> 4) & 0x0f0f; + q16[3] = (q1[8] >> 4) & 0x0f0f; + q16[4] = q2[0] & 0x0f0f; + q16[5] = q2[8] & 0x0f0f; + q16[6] = (q2[0] >> 4) & 0x0f0f; + q16[7] = (q2[8] >> 4) & 0x0f0f; + for (int l = 0; l < n; ++l) { + sum.x() += + y1[l + 0] * (q4[l + 0] + (qh[l + 0] & (hm1 << 0) ? 16 : 0)) + + y1[l + 16] * (q4[l + 2] + (qh[l + 16] & (hm1 << 0) ? 16 : 0)); + sum.y() += + y1[l + 32] * (q4[l + 4] + (qh[l + 0] & (hm1 << 1) ? 16 : 0)) + + y1[l + 48] * (q4[l + 6] + (qh[l + 16] & (hm1 << 1) ? 16 : 0)); + sum.z() += + y2[l + 0] * (q4[l + 8] + (qh[l + 0] & (hm2 << 0) ? 16 : 0)) + + y2[l + 16] * (q4[l + 10] + (qh[l + 16] & (hm2 << 0) ? 16 : 0)); + sum.w() += + y2[l + 32] * (q4[l + 12] + (qh[l + 0] & (hm2 << 1) ? 16 : 0)) + + y2[l + 48] * (q4[l + 14] + (qh[l + 16] & (hm2 << 1) ? 16 : 0)); + smin += (y1[l] + y1[l+16]) * sc[2] + (y1[l+32] + y1[l+48]) * sc[3] + + (y2[l] + y2[l+16]) * sc[6] + (y2[l+32] + y2[l+48]) * sc[7]; + } + tmp += dall * (sum.x() * sc[0] + sum.y() * sc[1] + sum.z() * sc[4] + + sum.w() * sc[5]) - + dmin * smin; + } + +#else + const int tid = item_ct1.get_local_id(2)/(2*K_QUANTS_PER_ITERATION); // 0...15 + const int ix = item_ct1.get_local_id(2)%(2*K_QUANTS_PER_ITERATION); + const int step = tid * K_QUANTS_PER_ITERATION; + const int im = step/8; + const int in = step%8; + + for (int i = ix; i < num_blocks_per_row; i += 2*K_QUANTS_PER_ITERATION) { + const uint8_t * q = x[i].qs + step; + const int8_t * s = x[i].scales; + const float * y = yy + i*QK_K + step; + const float d = x[i].d; + float sum = 0.f; + for (int j = 0; j < K_QUANTS_PER_ITERATION; ++j) { + const uint8_t h = x[i].qh[in+j] >> im; + sum += y[j+ 0] * d * s[0] * ((q[j+ 0] & 0xF) - ((h >> 0) & 1 ? 0 : 16)) + + y[j+16] * d * s[1] * ((q[j+16] & 0xF) - ((h >> 2) & 1 ? 0 : 16)) + + y[j+32] * d * s[2] * ((q[j+ 0] >> 4) - ((h >> 4) & 1 ? 0 : 16)) + + y[j+48] * d * s[3] * ((q[j+16] >> 4) - ((h >> 6) & 1 ? 0 : 16)); + } + tmp += sum; + } +#endif + + // sum up partial sums and write back result +#pragma unroll + for (int mask = 16; mask > 0; mask >>= 1) { + tmp += + dpct::permute_sub_group_by_xor(item_ct1.get_sub_group(), tmp, mask); + } + + if (item_ct1.get_local_id(2) == 0) { + dst[row] = tmp; + } +} + +static void dequantize_mul_mat_vec_q6_k(const void * __restrict__ vx, const float * __restrict__ yy, float * __restrict__ dst, const int ncols, int nrows, + const sycl::nd_item<3> &item_ct1) { + + static_assert(16%K_QUANTS_PER_ITERATION == 0, "16 must be divisible by K_QUANTS_PER_ITERATION"); + + const int row = item_ct1.get_group(2) * item_ct1.get_local_range(1) + + item_ct1.get_local_id(1); + if (row > nrows) return; + + const int num_blocks_per_row = ncols / QK_K; + const int ib0 = row*num_blocks_per_row; + + const block_q6_K * x = (const block_q6_K *)vx + ib0; + +#if QK_K == 256 + + const int tid = + item_ct1.get_local_id(2) / K_QUANTS_PER_ITERATION; // 0...31 or 0...16 + const int ix = + item_ct1.get_local_id(2) % K_QUANTS_PER_ITERATION; // 0 or 0, 1 + + const int step = 16/K_QUANTS_PER_ITERATION; // 16 or 8 + + const int im = tid/step; // 0 or 1. 0 computes 0..., 1 computes 128... + const int in = tid - step*im; // 0...15 or 0...7 + +#if K_QUANTS_PER_ITERATION == 1 + const int l0 = K_QUANTS_PER_ITERATION*in; // 0...15 + const int is = 0; +#else + const int l0 = 4 * in; // 0, 4, 8, ..., 28 + const int is = in / 4; +#endif + const int ql_offset = 64*im + l0; + const int qh_offset = 32*im + l0; + const int s_offset = 8*im + is; + const int y_offset = 128*im + l0; + + float tmp = 0; // partial sum for thread in warp + + for (int i = ix; i < num_blocks_per_row; i += K_QUANTS_PER_ITERATION) { + + const float * y = yy + i * QK_K + y_offset; + const uint8_t * ql = x[i].ql + ql_offset; + const uint8_t * qh = x[i].qh + qh_offset; + const int8_t * s = x[i].scales + s_offset; + + const float d = x[i].d; + +#if K_QUANTS_PER_ITERATION == 1 + float sum = y[ 0] * s[0] * d * ((int8_t)((ql[ 0] & 0xF) | ((qh[ 0] & 0x03) << 4)) - 32) + + y[16] * s[1] * d * ((int8_t)((ql[16] & 0xF) | ((qh[16] & 0x03) << 4)) - 32) + + y[32] * s[2] * d * ((int8_t)((ql[32] & 0xF) | ((qh[ 0] & 0x0c) << 2)) - 32) + + y[48] * s[3] * d * ((int8_t)((ql[48] & 0xF) | ((qh[16] & 0x0c) << 2)) - 32) + + y[64] * s[4] * d * ((int8_t)((ql[ 0] >> 4) | ((qh[ 0] & 0x30) >> 0)) - 32) + + y[80] * s[5] * d * ((int8_t)((ql[16] >> 4) | ((qh[16] & 0x30) >> 0)) - 32) + + y[96] * s[6] * d * ((int8_t)((ql[32] >> 4) | ((qh[ 0] & 0xc0) >> 2)) - 32) + +y[112] * s[7] * d * ((int8_t)((ql[48] >> 4) | ((qh[16] & 0xc0) >> 2)) - 32); + tmp += sum; +#else + float sum = 0; + for (int l = 0; l < 4; ++l) { + sum += y[l+ 0] * s[0] * d * ((int8_t)((ql[l+ 0] & 0xF) | (((qh[l] >> 0) & 3) << 4)) - 32) + + y[l+32] * s[2] * d * ((int8_t)((ql[l+32] & 0xF) | (((qh[l] >> 2) & 3) << 4)) - 32) + + y[l+64] * s[4] * d * ((int8_t)((ql[l+ 0] >> 4) | (((qh[l] >> 4) & 3) << 4)) - 32) + + y[l+96] * s[6] * d * ((int8_t)((ql[l+32] >> 4) | (((qh[l] >> 6) & 3) << 4)) - 32); + } + tmp += sum; +#endif + + } + +#else + + const int tid = item_ct1.get_local_id(2)/(2*K_QUANTS_PER_ITERATION); // 0...7 + const int ix = item_ct1.get_local_id(2)%(2*K_QUANTS_PER_ITERATION); // 0...3 + + const int step = tid * K_QUANTS_PER_ITERATION; + + float tmp = 0; // partial sum for thread in warp + + for (int i = ix; i < num_blocks_per_row; i += 2*K_QUANTS_PER_ITERATION) { + + const float * y = yy + i * QK_K + step; + const uint8_t * ql = x[i].ql + step; + const uint8_t * qh = x[i].qh + step; + const int8_t * s = x[i].scales; + + const float d = x[i+0].d; + + float sum = 0; + for (int j = 0; j < K_QUANTS_PER_ITERATION; ++j) { + sum += y[j+ 0] * s[0] * d * ((int8_t)((ql[j+ 0] & 0xF) | ((qh[j] & 0x03) << 4)) - 32) + + y[j+16] * s[1] * d * ((int8_t)((ql[j+16] & 0xF) | ((qh[j] & 0x0c) << 2)) - 32) + + y[j+32] * s[2] * d * ((int8_t)((ql[j+ 0] >> 4) | ((qh[j] & 0x30) >> 0)) - 32) + + y[j+48] * s[3] * d * ((int8_t)((ql[j+16] >> 4) | ((qh[j] & 0xc0) >> 2)) - 32); + } + tmp += sum; + + } + +#endif + + // sum up partial sums and write back result +#pragma unroll + for (int mask = 16; mask > 0; mask >>= 1) { + tmp += + dpct::permute_sub_group_by_xor(item_ct1.get_sub_group(), tmp, mask); + } + + if (tid == 0) { + dst[row] = tmp; + } +} + + +static void dequantize_mul_mat_vec_q4_0_sycl(const void *vx, const dfloat *y, + float *dst, const int ncols, + const int nrows, + dpct::queue_ptr stream) { + GGML_ASSERT(ncols % GGML_SYCL_DMMV_X == 0); + const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y; + // the number of rows may exceed maximum grid size in the y or z dimensions, use the x dimension instead + const sycl::range<3> block_nums(1, 1, block_num_y); + const sycl::range<3> block_dims(1, GGML_SYCL_MMV_Y, WARP_SIZE); + { + dpct::has_capability_or_fail(stream->get_device(), + {sycl::aspect::fp16}); + + stream->parallel_for( + sycl::nd_range<3>(block_nums * block_dims, block_dims), + [=](sycl::nd_item<3> item_ct1) [[intel::reqd_sub_group_size(32)]] { + dequantize_mul_mat_vec( + vx, y, dst, ncols, nrows, item_ct1); + }); + } +} + +static void dequantize_mul_mat_vec_q4_1_sycl(const void *vx, const dfloat *y, + float *dst, const int ncols, + const int nrows, + dpct::queue_ptr stream) { + GGML_ASSERT(ncols % GGML_SYCL_DMMV_X == 0); + const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y; + const sycl::range<3> block_nums(1, 1, block_num_y); + const sycl::range<3> block_dims(1, GGML_SYCL_MMV_Y, WARP_SIZE); + { + dpct::has_capability_or_fail(stream->get_device(), + {sycl::aspect::fp16}); + + stream->parallel_for( + sycl::nd_range<3>(block_nums * block_dims, block_dims), + [=](sycl::nd_item<3> item_ct1) [[intel::reqd_sub_group_size(32)]] { + dequantize_mul_mat_vec( + vx, y, dst, ncols, nrows, item_ct1); + }); + } +} + +static void dequantize_mul_mat_vec_q5_0_sycl(const void *vx, const dfloat *y, + float *dst, const int ncols, + const int nrows, + dpct::queue_ptr stream) { + GGML_ASSERT(ncols % GGML_SYCL_DMMV_X == 0); + const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y; + const sycl::range<3> block_nums(1, 1, block_num_y); + const sycl::range<3> block_dims(1, GGML_SYCL_MMV_Y, WARP_SIZE); + { + dpct::has_capability_or_fail(stream->get_device(), + {sycl::aspect::fp16}); + + stream->parallel_for( + sycl::nd_range<3>(block_nums * block_dims, block_dims), + [=](sycl::nd_item<3> item_ct1) [[intel::reqd_sub_group_size(32)]] { + dequantize_mul_mat_vec( + vx, y, dst, ncols, nrows, item_ct1); + }); + } +} + +static void dequantize_mul_mat_vec_q5_1_sycl(const void *vx, const dfloat *y, + float *dst, const int ncols, + const int nrows, + dpct::queue_ptr stream) { + GGML_ASSERT(ncols % GGML_SYCL_DMMV_X == 0); + const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y; + const sycl::range<3> block_nums(1, 1, block_num_y); + const sycl::range<3> block_dims(1, GGML_SYCL_MMV_Y, WARP_SIZE); + { + dpct::has_capability_or_fail(stream->get_device(), + {sycl::aspect::fp16}); + + stream->parallel_for( + sycl::nd_range<3>(block_nums * block_dims, block_dims), + [=](sycl::nd_item<3> item_ct1) [[intel::reqd_sub_group_size(32)]] { + dequantize_mul_mat_vec( + vx, y, dst, ncols, nrows, item_ct1); + }); + } +} + +static void dequantize_mul_mat_vec_q8_0_sycl(const void *vx, const dfloat *y, + float *dst, const int ncols, + const int nrows, + dpct::queue_ptr stream) { + GGML_ASSERT(ncols % GGML_SYCL_DMMV_X == 0); + const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y; + const sycl::range<3> block_nums(1, 1, block_num_y); + const sycl::range<3> block_dims(1, GGML_SYCL_MMV_Y, WARP_SIZE); + { + dpct::has_capability_or_fail(stream->get_device(), + {sycl::aspect::fp16}); + + stream->parallel_for( + sycl::nd_range<3>(block_nums * block_dims, block_dims), + [=](sycl::nd_item<3> item_ct1) [[intel::reqd_sub_group_size(32)]] { + dequantize_mul_mat_vec( + vx, y, dst, ncols, nrows, item_ct1); + }); + } +} + +static void dequantize_mul_mat_vec_q2_K_sycl(const void *vx, const float *y, + float *dst, const int ncols, + const int nrows, + dpct::queue_ptr stream) { + GGML_ASSERT(ncols % QK_K == 0); + const int ny = 2; // very slightly faster than 1 even when K_QUANTS_PER_ITERATION = 2 + const int block_num_y = (nrows + ny - 1) / ny; + const sycl::range<3> block_nums(1, 1, block_num_y); + const sycl::range<3> block_dims(1, ny, 32); + stream->parallel_for( + sycl::nd_range<3>(block_nums * block_dims, block_dims), + [=](sycl::nd_item<3> item_ct1) [[intel::reqd_sub_group_size(32)]] { + dequantize_mul_mat_vec_q2_k(vx, y, dst, ncols, nrows, item_ct1); + }); +} + +static void dequantize_mul_mat_vec_q3_K_sycl(const void *vx, const float *y, + float *dst, const int ncols, + const int nrows, + dpct::queue_ptr stream) { + GGML_ASSERT(ncols % QK_K == 0); + const int ny = 2 / K_QUANTS_PER_ITERATION; + const int block_num_y = (nrows + ny - 1) / ny; + const sycl::range<3> block_nums(1, 1, block_num_y); + const sycl::range<3> block_dims(1, ny, 32); + stream->parallel_for( + sycl::nd_range<3>(block_nums * block_dims, block_dims), + [=](sycl::nd_item<3> item_ct1) [[intel::reqd_sub_group_size(32)]] { + dequantize_mul_mat_vec_q3_k(vx, y, dst, ncols, nrows, item_ct1); + }); +} + +static void dequantize_mul_mat_vec_q4_K_sycl(const void *vx, const float *y, + float *dst, const int ncols, + const int nrows, + dpct::queue_ptr stream) { + GGML_ASSERT(ncols % QK_K == 0); + const int ny = 2 / K_QUANTS_PER_ITERATION; + const int block_num_y = (nrows + ny - 1) / ny; + const sycl::range<3> block_nums(1, 1, block_num_y); + const sycl::range<3> block_dims(1, ny, 32); + stream->parallel_for( + sycl::nd_range<3>(block_nums * block_dims, block_dims), + [=](sycl::nd_item<3> item_ct1) [[intel::reqd_sub_group_size(32)]] { + dequantize_mul_mat_vec_q4_k(vx, y, dst, ncols, nrows, item_ct1); + }); +} + +static void dequantize_mul_mat_vec_q5_K_sycl(const void *vx, const float *y, + float *dst, const int ncols, + const int nrows, + dpct::queue_ptr stream) { + GGML_ASSERT(ncols % QK_K == 0); + const sycl::range<3> block_dims(1, 1, 32); + stream->parallel_for( + sycl::nd_range<3>(sycl::range<3>(1, 1, nrows) * block_dims, block_dims), + [=](sycl::nd_item<3> item_ct1) [[intel::reqd_sub_group_size(32)]] { + dequantize_mul_mat_vec_q5_k(vx, y, dst, ncols, item_ct1); + }); +} + +static void dequantize_mul_mat_vec_q6_K_sycl(const void *vx, const float *y, + float *dst, const int ncols, + const int nrows, + dpct::queue_ptr stream) { + GGML_ASSERT(ncols % QK_K == 0); + const int ny = 2 / K_QUANTS_PER_ITERATION; + const int block_num_y = (nrows + ny - 1) / ny; + const sycl::range<3> block_nums(1, 1, block_num_y); + const sycl::range<3> block_dims(1, ny, 32); + stream->parallel_for( + sycl::nd_range<3>(block_nums * block_dims, block_dims), + [=](sycl::nd_item<3> item_ct1) [[intel::reqd_sub_group_size(32)]] { + dequantize_mul_mat_vec_q6_k(vx, y, dst, ncols, nrows, item_ct1); + }); +} + +void ggml_sycl_op_dequantize_mul_mat_vec( + ggml_backend_sycl_context & ctx, + const ggml_tensor *src0, const ggml_tensor *src1, ggml_tensor *dst, + const char *src0_dd_i, const float *src1_ddf_i, const char *src1_ddq_i, + float *dst_dd_i, const int64_t row_low, const int64_t row_high, + const int64_t src1_ncols, const int64_t src1_padded_row_size, + const dpct::queue_ptr &stream) { + + const int64_t ne00 = src0->ne[0]; + const int64_t row_diff = row_high - row_low; + + GGML_ASSERT(src1->type == GGML_TYPE_F32); + // on some GPUs it is faster to convert src1 to half and to use half precision intrinsics +#ifdef GGML_SYCL_F16 + ggml_sycl_pool_alloc src1_dfloat_a(ctx.pool()); + sycl::half *src1_dfloat = nullptr; // dfloat == half + + bool src1_convert_f16 = + src0->type == GGML_TYPE_Q4_0 || src0->type == GGML_TYPE_Q4_1 || + src0->type == GGML_TYPE_Q5_0 || src0->type == GGML_TYPE_Q5_1 || + src0->type == GGML_TYPE_Q8_0 || src0->type == GGML_TYPE_F16; + + if (src1_convert_f16) { + src1_dfloat = src1_dfloat_a.alloc(ne00); + const to_fp16_sycl_t to_fp16_sycl = ggml_get_to_fp16_sycl(src1->type); + GGML_ASSERT(to_fp16_sycl != nullptr); + to_fp16_sycl(src1_ddf_i, src1_dfloat, ne00, stream); + } +#else + const dfloat * src1_dfloat = (const dfloat *) src1_ddf_i; // dfloat == float, no conversion +#endif // GGML_SYCL_F16 + + switch (src0->type) { + case GGML_TYPE_Q4_0: + dequantize_mul_mat_vec_q4_0_sycl(src0_dd_i, src1_dfloat, dst_dd_i, ne00, row_diff, stream); + break; + case GGML_TYPE_Q4_1: + dequantize_mul_mat_vec_q4_1_sycl(src0_dd_i, src1_dfloat, dst_dd_i, ne00, row_diff, stream); + break; + case GGML_TYPE_Q5_0: + dequantize_mul_mat_vec_q5_0_sycl(src0_dd_i, src1_dfloat, dst_dd_i, ne00, row_diff, stream); + break; + case GGML_TYPE_Q5_1: + dequantize_mul_mat_vec_q5_1_sycl(src0_dd_i, src1_dfloat, dst_dd_i, ne00, row_diff, stream); + break; + case GGML_TYPE_Q8_0: + dequantize_mul_mat_vec_q8_0_sycl(src0_dd_i, src1_dfloat, dst_dd_i, ne00, row_diff, stream); + break; + case GGML_TYPE_Q2_K: + dequantize_mul_mat_vec_q2_K_sycl(src0_dd_i, src1_ddf_i, dst_dd_i, ne00, row_diff, stream); + break; + case GGML_TYPE_Q3_K: + dequantize_mul_mat_vec_q3_K_sycl(src0_dd_i, src1_ddf_i, dst_dd_i, ne00, row_diff, stream); + break; + case GGML_TYPE_Q4_K: + dequantize_mul_mat_vec_q4_K_sycl(src0_dd_i, src1_ddf_i, dst_dd_i, ne00, row_diff, stream); + break; + case GGML_TYPE_Q5_K: + dequantize_mul_mat_vec_q5_K_sycl(src0_dd_i, src1_ddf_i, dst_dd_i, ne00, row_diff, stream); + break; + case GGML_TYPE_Q6_K: + dequantize_mul_mat_vec_q6_K_sycl(src0_dd_i, src1_ddf_i, dst_dd_i, ne00, row_diff, stream); + break; + case GGML_TYPE_F16: + convert_mul_mat_vec_f16_sycl(src0_dd_i, src1_dfloat, dst_dd_i, ne00, row_diff, stream); + break; + default: + printf("ggml_sycl_op_dequantize_mul_mat_vec unsupported GGML_TYPE %d\n", src0->type); + GGML_ASSERT(false); + break; + } + + (void) src1; + (void) dst; + (void) src1_ddq_i; + (void) src1_ncols; + (void) src1_padded_row_size; +} diff --git a/ggml-sycl/dmmv.hpp b/ggml-sycl/dmmv.hpp new file mode 100644 index 0000000000000..bd83735641533 --- /dev/null +++ b/ggml-sycl/dmmv.hpp @@ -0,0 +1,27 @@ +// +// MIT license +// Copyright (C) 2024 Intel Corporation +// SPDX-License-Identifier: MIT +// + +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// + +#ifndef GGML_SYCL_DMMV_HPP +#define GGML_SYCL_DMMV_HPP + +#include "common.hpp" + + +void ggml_sycl_op_dequantize_mul_mat_vec( + ggml_backend_sycl_context & ctx, + const ggml_tensor *src0, const ggml_tensor *src1, ggml_tensor *dst, + const char *src0_dd_i, const float *src1_ddf_i, const char *src1_ddq_i, + float *dst_dd_i, const int64_t row_low, const int64_t row_high, + const int64_t src1_ncols, const int64_t src1_padded_row_size, + const dpct::queue_ptr &stream); + +#endif // GGML_SYCL_DMMV_HPP diff --git a/ggml-sycl/mmq.cpp b/ggml-sycl/mmq.cpp new file mode 100644 index 0000000000000..b514f00404e1f --- /dev/null +++ b/ggml-sycl/mmq.cpp @@ -0,0 +1,3031 @@ +// +// MIT license +// Copyright (C) 2024 Intel Corporation +// SPDX-License-Identifier: MIT +// + +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// + +#include "mmq.hpp" +#include "vecdotq.hpp" + +typedef void (*allocate_tiles_sycl_t)( + int** x_ql, + sycl::half2** x_dm, + int** x_qh, + int** x_sc); +typedef void (*load_tiles_sycl_t)( + const void* __restrict__ vx, + int* __restrict__ x_ql, + sycl::half2* __restrict__ x_dm, + int* __restrict__ x_qh, + int* __restrict__ x_sc, + const int& i_offset, + const int& i_max, + const int& k, + const int& blocks_per_row); +typedef float (*vec_dot_q_mul_mat_sycl_t)( + const int* __restrict__ x_ql, + const sycl::half2* __restrict__ x_dm, + const int* __restrict__ x_qh, + const int* __restrict__ x_sc, + const int* __restrict__ y_qs, + const sycl::half2* __restrict__ y_ms, + const int& i, + const int& j, + const int& k); + + +template +static __dpct_inline__ void +allocate_tiles_q4_0(int **x_ql, sycl::half2 **x_dm, int **x_qh, int **x_sc, + int *tile_x_qs_q4_0, float *tile_x_d_q4_0) { + (void)x_qh; (void)x_sc; + + *x_ql = tile_x_qs_q4_0; + *x_dm = (sycl::half2 *)tile_x_d_q4_0; +} + +template +static __dpct_inline__ void +load_tiles_q4_0(const void *__restrict__ vx, int *__restrict__ x_ql, + sycl::half2 *__restrict__ x_dm, int *__restrict__ x_qh, + int *__restrict__ x_sc, const int &i_offset, const int &i_max, + const int &k, const int &blocks_per_row) { + (void)x_qh; (void)x_sc; + GGML_SYCL_ASSUME(i_offset >= 0); + GGML_SYCL_ASSUME(i_offset < nwarps); + GGML_SYCL_ASSUME(k >= 0); + GGML_SYCL_ASSUME(k < WARP_SIZE); + + const int kbx = k / QI4_0; + const int kqsx = k % QI4_0; + + const block_q4_0 * bx0 = (const block_q4_0 *) vx; + + float * x_dmf = (float *) x_dm; + +#pragma unroll + for (int i0 = 0; i0 < mmq_y; i0 += nwarps) { + int i = i0 + i_offset; + + if (need_check) { + i = sycl::min(i, i_max); + } + + const block_q4_0 * bxi = bx0 + i*blocks_per_row + kbx; + + x_ql[i * (WARP_SIZE + 1) + k] = get_int_from_uint8(bxi->qs, kqsx); + // x_dmf[i * (WARP_SIZE/QI4_0) + i / QI4_0 + kbx] = bxi->d; + } + + const int blocks_per_tile_x_row = WARP_SIZE / QI4_0; + const int kbxd = k % blocks_per_tile_x_row; + +#pragma unroll + for (int i0 = 0; i0 < mmq_y; i0 += nwarps * QI4_0) { + int i = i0 + i_offset * QI4_0 + k / blocks_per_tile_x_row; + + if (need_check) { + i = sycl::min(i, i_max); + } + + const block_q4_0 * bxi = bx0 + i*blocks_per_row + kbxd; + + x_dmf[i * (WARP_SIZE/QI4_0) + i / QI4_0 + kbxd] = bxi->d; + } +} + +static __dpct_inline__ float vec_dot_q4_0_q8_1_mul_mat( + const int *__restrict__ x_ql, const sycl::half2 *__restrict__ x_dm, + const int *__restrict__ x_qh, const int *__restrict__ x_sc, + const int *__restrict__ y_qs, const sycl::half2 *__restrict__ y_ds, + const int &i, const int &j, const int &k) { + (void)x_qh; (void)x_sc; + + const int kyqs = k % (QI8_1/2) + QI8_1 * (k / (QI8_1/2)); + const float * x_dmf = (const float *) x_dm; + + int u[2*VDR_Q4_0_Q8_1_MMQ]; + +#pragma unroll + for (int l = 0; l < VDR_Q4_0_Q8_1_MMQ; ++l) { + u[2*l+0] = y_qs[j * WARP_SIZE + (kyqs + l) % WARP_SIZE]; + u[2*l+1] = y_qs[j * WARP_SIZE + (kyqs + l + QI4_0) % WARP_SIZE]; + } + + return vec_dot_q4_0_q8_1_impl + (&x_ql[i * (WARP_SIZE + 1) + k], u, x_dmf[i * (WARP_SIZE/QI4_0) + i/QI4_0 + k/QI4_0], + y_ds[j * (WARP_SIZE/QI8_1) + (2*k/QI8_1) % (WARP_SIZE/QI8_1)]); +} + +template +static __dpct_inline__ void +allocate_tiles_q4_1(int **x_ql, sycl::half2 **x_dm, int **x_qh, int **x_sc, + int *tile_x_qs_q4_1, sycl::half2 *tile_x_dm_q4_1) { + (void)x_qh; (void)x_sc; + + *x_ql = tile_x_qs_q4_1; + *x_dm = tile_x_dm_q4_1; +} + + +template +static __dpct_inline__ void +load_tiles_q4_1(const void *__restrict__ vx, int *__restrict__ x_ql, + sycl::half2 *__restrict__ x_dm, int *__restrict__ x_qh, + int *__restrict__ x_sc, const int &i_offset, const int &i_max, + const int &k, const int &blocks_per_row) { + (void)x_qh; (void)x_sc; + + GGML_SYCL_ASSUME(i_offset >= 0); + GGML_SYCL_ASSUME(i_offset < nwarps); + GGML_SYCL_ASSUME(k >= 0); + GGML_SYCL_ASSUME(k < WARP_SIZE); + + const int kbx = k / QI4_1; + const int kqsx = k % QI4_1; + + const block_q4_1 * bx0 = (const block_q4_1 *) vx; + +#pragma unroll + for (int i0 = 0; i0 < mmq_y; i0 += nwarps) { + int i = i0 + i_offset; + + if (need_check) { + i = sycl::min(i, i_max); + } + + const block_q4_1 * bxi = bx0 + i*blocks_per_row + kbx; + + x_ql[i * (WARP_SIZE + 1) + k] = get_int_from_uint8_aligned(bxi->qs, kqsx); + } + + const int blocks_per_tile_x_row = WARP_SIZE / QI4_1; + const int kbxd = k % blocks_per_tile_x_row; + +#pragma unroll + for (int i0 = 0; i0 < mmq_y; i0 += nwarps * QI4_1) { + int i = i0 + i_offset * QI4_1 + k / blocks_per_tile_x_row; + + if (need_check) { + i = sycl::min(i, i_max); + } + + const block_q4_1 * bxi = bx0 + i*blocks_per_row + kbxd; + + x_dm[i * (WARP_SIZE/QI4_1) + i / QI4_1 + kbxd] = bxi->dm; + } +} + +static __dpct_inline__ float vec_dot_q4_1_q8_1_mul_mat( + const int *__restrict__ x_ql, const sycl::half2 *__restrict__ x_dm, + const int *__restrict__ x_qh, const int *__restrict__ x_sc, + const int *__restrict__ y_qs, const sycl::half2 *__restrict__ y_ds, + const int &i, const int &j, const int &k) { + (void)x_qh; (void)x_sc; + + const int kyqs = k % (QI8_1/2) + QI8_1 * (k / (QI8_1/2)); + + int u[2*VDR_Q4_1_Q8_1_MMQ]; + +#pragma unroll + for (int l = 0; l < VDR_Q4_1_Q8_1_MMQ; ++l) { + u[2*l+0] = y_qs[j * WARP_SIZE + (kyqs + l) % WARP_SIZE]; + u[2*l+1] = y_qs[j * WARP_SIZE + (kyqs + l + QI4_1) % WARP_SIZE]; + } + + return vec_dot_q4_1_q8_1_impl + (&x_ql[i * (WARP_SIZE + 1) + k], u, x_dm[i * (WARP_SIZE/QI4_1) + i/QI4_1 + k/QI4_1], + y_ds[j * (WARP_SIZE/QI8_1) + (2*k/QI8_1) % (WARP_SIZE/QI8_1)]); +} + +template +static __dpct_inline__ void +allocate_tiles_q5_0(int **x_ql, sycl::half2 **x_dm, int **x_qh, int **x_sc, + int *tile_x_ql_q5_0, float *tile_x_d_q5_0) { + (void)x_qh; (void)x_sc; + + *x_ql = tile_x_ql_q5_0; + *x_dm = (sycl::half2 *)tile_x_d_q5_0; +} + +template +static __dpct_inline__ void +load_tiles_q5_0(const void *__restrict__ vx, int *__restrict__ x_ql, + sycl::half2 *__restrict__ x_dm, int *__restrict__ x_qh, + int *__restrict__ x_sc, const int &i_offset, const int &i_max, + const int &k, const int &blocks_per_row) { + (void)x_qh; (void)x_sc; + + GGML_SYCL_ASSUME(i_offset >= 0); + GGML_SYCL_ASSUME(i_offset < nwarps); + GGML_SYCL_ASSUME(k >= 0); + GGML_SYCL_ASSUME(k < WARP_SIZE); + + const int kbx = k / QI5_0; + const int kqsx = k % QI5_0; + + const block_q5_0 * bx0 = (const block_q5_0 *) vx; + +#pragma unroll + for (int i0 = 0; i0 < mmq_y; i0 += nwarps) { + int i = i0 + i_offset; + + if (need_check) { + i = sycl::min(i, i_max); + } + + const block_q5_0 * bxi = bx0 + i*blocks_per_row + kbx; + + const int ql = get_int_from_uint8(bxi->qs, kqsx); + const int qh = get_int_from_uint8(bxi->qh, 0) >> (4 * (k % QI5_0)); + + int qs0 = (ql >> 0) & 0x0F0F0F0F; + qs0 |= (qh << 4) & 0x00000010; // 0 -> 4 + qs0 |= (qh << 11) & 0x00001000; // 1 -> 12 + qs0 |= (qh << 18) & 0x00100000; // 2 -> 20 + qs0 |= (qh << 25) & 0x10000000; // 3 -> 28 + qs0 = dpct::vectorized_binary( + qs0, 0x10101010, dpct::sub_sat()); // subtract 16 + + x_ql[i * (2*WARP_SIZE + 1) + 2*k+0] = qs0; + + int qs1 = (ql >> 4) & 0x0F0F0F0F; + qs1 |= (qh >> 12) & 0x00000010; // 16 -> 4 + qs1 |= (qh >> 5) & 0x00001000; // 17 -> 12 + qs1 |= (qh << 2) & 0x00100000; // 18 -> 20 + qs1 |= (qh << 9) & 0x10000000; // 19 -> 28 + qs1 = dpct::vectorized_binary( + qs1, 0x10101010, dpct::sub_sat()); // subtract 16 + + x_ql[i * (2*WARP_SIZE + 1) + 2*k+1] = qs1; + } + + const int blocks_per_tile_x_row = WARP_SIZE / QI5_0; + const int kbxd = k % blocks_per_tile_x_row; + float * x_dmf = (float *) x_dm; + +#pragma unroll + for (int i0 = 0; i0 < mmq_y; i0 += nwarps * QI5_0) { + int i = i0 + i_offset * QI5_0 + k / blocks_per_tile_x_row; + + if (need_check) { + i = sycl::min(i, i_max); + } + + const block_q5_0 * bxi = bx0 + i*blocks_per_row + kbxd; + + x_dmf[i * (WARP_SIZE/QI5_0) + i / QI5_0 + kbxd] = bxi->d; + } +} + +static __dpct_inline__ float vec_dot_q5_0_q8_1_mul_mat( + const int *__restrict__ x_ql, const sycl::half2 *__restrict__ x_dm, + const int *__restrict__ x_qh, const int *__restrict__ x_sc, + const int *__restrict__ y_qs, const sycl::half2 *__restrict__ y_ds, + const int &i, const int &j, const int &k) { + (void)x_qh; (void)x_sc; + + const int kyqs = k % (QI8_1/2) + QI8_1 * (k / (QI8_1/2)); + const int index_bx = i * (WARP_SIZE/QI5_0) + i/QI5_0 + k/QI5_0; + const float * x_dmf = (const float *) x_dm; + const float * y_df = (const float *) y_ds; + + int u[2*VDR_Q5_0_Q8_1_MMQ]; + +#pragma unroll + for (int l = 0; l < VDR_Q5_0_Q8_1_MMQ; ++l) { + u[2*l+0] = y_qs[j * WARP_SIZE + (kyqs + l) % WARP_SIZE]; + u[2*l+1] = y_qs[j * WARP_SIZE + (kyqs + l + QI5_0) % WARP_SIZE]; + } + + return vec_dot_q8_0_q8_1_impl + (&x_ql[i * (2*WARP_SIZE + 1) + 2 * k], u, x_dmf[index_bx], y_df[j * (WARP_SIZE/QI8_1) + (2*k/QI8_1) % (WARP_SIZE/QI8_1)]); +} + +template +static __dpct_inline__ void +allocate_tiles_q5_1(int **x_ql, sycl::half2 **x_dm, int **x_qh, int **x_sc, + int *tile_x_ql_q5_1, sycl::half2 *tile_x_dm_q5_1) { + (void)x_qh; (void)x_sc; + + *x_ql = tile_x_ql_q5_1; + *x_dm = tile_x_dm_q5_1; +} + +template +static __dpct_inline__ void +load_tiles_q5_1(const void *__restrict__ vx, int *__restrict__ x_ql, + sycl::half2 *__restrict__ x_dm, int *__restrict__ x_qh, + int *__restrict__ x_sc, const int &i_offset, const int &i_max, + const int &k, const int &blocks_per_row) { + (void)x_qh; (void)x_sc; + + GGML_SYCL_ASSUME(i_offset >= 0); + GGML_SYCL_ASSUME(i_offset < nwarps); + GGML_SYCL_ASSUME(k >= 0); + GGML_SYCL_ASSUME(k < WARP_SIZE); + + const int kbx = k / QI5_1; + const int kqsx = k % QI5_1; + + const block_q5_1 * bx0 = (const block_q5_1 *) vx; + +#pragma unroll + for (int i0 = 0; i0 < mmq_y; i0 += nwarps) { + int i = i0 + i_offset; + + if (need_check) { + i = sycl::min(i, i_max); + } + + const block_q5_1 * bxi = bx0 + i*blocks_per_row + kbx; + + const int ql = get_int_from_uint8_aligned(bxi->qs, kqsx); + const int qh = get_int_from_uint8_aligned(bxi->qh, 0) >> (4 * (k % QI5_1)); + + int qs0 = (ql >> 0) & 0x0F0F0F0F; + qs0 |= (qh << 4) & 0x00000010; // 0 -> 4 + qs0 |= (qh << 11) & 0x00001000; // 1 -> 12 + qs0 |= (qh << 18) & 0x00100000; // 2 -> 20 + qs0 |= (qh << 25) & 0x10000000; // 3 -> 28 + + x_ql[i * (2*WARP_SIZE + 1) + 2*k+0] = qs0; + + int qs1 = (ql >> 4) & 0x0F0F0F0F; + qs1 |= (qh >> 12) & 0x00000010; // 16 -> 4 + qs1 |= (qh >> 5) & 0x00001000; // 17 -> 12 + qs1 |= (qh << 2) & 0x00100000; // 18 -> 20 + qs1 |= (qh << 9) & 0x10000000; // 19 -> 28 + + x_ql[i * (2*WARP_SIZE + 1) + 2*k+1] = qs1; + } + + const int blocks_per_tile_x_row = WARP_SIZE / QI5_1; + const int kbxd = k % blocks_per_tile_x_row; + +#pragma unroll + for (int i0 = 0; i0 < mmq_y; i0 += nwarps * QI5_1) { + int i = i0 + i_offset * QI5_1 + k / blocks_per_tile_x_row; + + if (need_check) { + i = sycl::min(i, i_max); + } + + const block_q5_1 * bxi = bx0 + i*blocks_per_row + kbxd; + + x_dm[i * (WARP_SIZE/QI5_1) + i / QI5_1 + kbxd] = bxi->dm; + } +} + +static __dpct_inline__ float vec_dot_q5_1_q8_1_mul_mat( + const int *__restrict__ x_ql, const sycl::half2 *__restrict__ x_dm, + const int *__restrict__ x_qh, const int *__restrict__ x_sc, + const int *__restrict__ y_qs, const sycl::half2 *__restrict__ y_ds, + const int &i, const int &j, const int &k) { + (void)x_qh; (void)x_sc; + + const int kyqs = k % (QI8_1/2) + QI8_1 * (k / (QI8_1/2)); + const int index_bx = i * (WARP_SIZE/QI5_1) + + i/QI5_1 + k/QI5_1; + + int u[2*VDR_Q5_1_Q8_1_MMQ]; + +#pragma unroll + for (int l = 0; l < VDR_Q5_1_Q8_1_MMQ; ++l) { + u[2*l+0] = y_qs[j * WARP_SIZE + (kyqs + l) % WARP_SIZE]; + u[2*l+1] = y_qs[j * WARP_SIZE + (kyqs + l + QI5_1) % WARP_SIZE]; + } + + return vec_dot_q8_1_q8_1_impl + (&x_ql[i * (2*WARP_SIZE + 1) + 2 * k], u, x_dm[index_bx], y_ds[j * (WARP_SIZE/QI8_1) + (2*k/QI8_1) % (WARP_SIZE/QI8_1)]); +} + +template +static __dpct_inline__ void +allocate_tiles_q8_0(int **x_ql, sycl::half2 **x_dm, int **x_qh, int **x_sc, + int *tile_x_qs_q8_0, float *tile_x_d_q8_0) { + (void)x_qh; (void)x_sc; + + *x_ql = tile_x_qs_q8_0; + *x_dm = (sycl::half2 *)tile_x_d_q8_0; +} + +template +static __dpct_inline__ void +load_tiles_q8_0(const void *__restrict__ vx, int *__restrict__ x_ql, + sycl::half2 *__restrict__ x_dm, int *__restrict__ x_qh, + int *__restrict__ x_sc, const int &i_offset, const int &i_max, + const int &k, const int &blocks_per_row) { + (void)x_qh; (void)x_sc; + + GGML_SYCL_ASSUME(i_offset >= 0); + GGML_SYCL_ASSUME(i_offset < nwarps); + GGML_SYCL_ASSUME(k >= 0); + GGML_SYCL_ASSUME(k < WARP_SIZE); + + const int kbx = k / QI8_0; + const int kqsx = k % QI8_0; + float * x_dmf = (float *) x_dm; + + const block_q8_0 * bx0 = (const block_q8_0 *) vx; + +#pragma unroll + for (int i0 = 0; i0 < mmq_y; i0 += nwarps) { + int i = i0 + i_offset; + + if (need_check) { + i = sycl::min(i, i_max); + } + + const block_q8_0 * bxi = bx0 + i*blocks_per_row + kbx; + + x_ql[i * (WARP_SIZE + 1) + k] = get_int_from_int8(bxi->qs, kqsx); + } + + const int blocks_per_tile_x_row = WARP_SIZE / QI8_0; + const int kbxd = k % blocks_per_tile_x_row; + +#pragma unroll + for (int i0 = 0; i0 < mmq_y; i0 += nwarps * QI8_0) { + int i = i0 + i_offset * QI8_0 + k / blocks_per_tile_x_row; + + if (need_check) { + i = sycl::min(i, i_max); + } + + const block_q8_0 * bxi = bx0 + i*blocks_per_row + kbxd; + + x_dmf[i * (WARP_SIZE/QI8_0) + i / QI8_0 + kbxd] = bxi->d; + } +} + +static __dpct_inline__ float vec_dot_q8_0_q8_1_mul_mat( + const int *__restrict__ x_ql, const sycl::half2 *__restrict__ x_dm, + const int *__restrict__ x_qh, const int *__restrict__ x_sc, + const int *__restrict__ y_qs, const sycl::half2 *__restrict__ y_ds, + const int &i, const int &j, const int &k) { + (void)x_qh; (void)x_sc; + + const float * x_dmf = (const float *) x_dm; + const float * y_df = (const float *) y_ds; + + return vec_dot_q8_0_q8_1_impl + (&x_ql[i * (WARP_SIZE + 1) + k], &y_qs[j * WARP_SIZE + k], x_dmf[i * (WARP_SIZE/QI8_0) + i/QI8_0 + k/QI8_0], + y_df[j * (WARP_SIZE/QI8_1) + k/QI8_1]); +} + +template +static __dpct_inline__ void +allocate_tiles_q2_K(int **x_ql, sycl::half2 **x_dm, int **x_qh, int **x_sc, + int *tile_x_ql_q2_K, sycl::half2 *tile_x_dm_q2_K, + int *tile_x_sc_q2_K) { + (void)x_qh; + + *x_ql = tile_x_ql_q2_K; + *x_dm = tile_x_dm_q2_K; + *x_sc = tile_x_sc_q2_K; +} + +template +static __dpct_inline__ void +load_tiles_q2_K(const void *__restrict__ vx, int *__restrict__ x_ql, + sycl::half2 *__restrict__ x_dm, int *__restrict__ x_qh, + int *__restrict__ x_sc, const int &i_offset, const int &i_max, + const int &k, const int &blocks_per_row) { + (void)x_qh; + + GGML_SYCL_ASSUME(i_offset >= 0); + GGML_SYCL_ASSUME(i_offset < nwarps); + GGML_SYCL_ASSUME(k >= 0); + GGML_SYCL_ASSUME(k < WARP_SIZE); + + const int kbx = k / QI2_K; + const int kqsx = k % QI2_K; + + const block_q2_K * bx0 = (const block_q2_K *) vx; + +#pragma unroll + for (int i0 = 0; i0 < mmq_y; i0 += nwarps) { + int i = i0 + i_offset; + + if (need_check) { + i = sycl::min(i, i_max); + } + + const block_q2_K * bxi = bx0 + i*blocks_per_row + kbx; + + x_ql[i * (WARP_SIZE + 1) + k] = get_int_from_uint8_aligned(bxi->qs, kqsx); + } + + const int blocks_per_tile_x_row = WARP_SIZE / QI2_K; + const int kbxd = k % blocks_per_tile_x_row; + +#pragma unroll + for (int i0 = 0; i0 < mmq_y; i0 += nwarps * QI2_K) { + int i = (i0 + i_offset * QI2_K + k / blocks_per_tile_x_row) % mmq_y; + + if (need_check) { + i = sycl::min(i, i_max); + } + + const block_q2_K * bxi = bx0 + i*blocks_per_row + kbxd; + + x_dm[i * (WARP_SIZE/QI2_K) + i / QI2_K + kbxd] = bxi->dm; + } + +#pragma unroll + for (int i0 = 0; i0 < mmq_y; i0 += nwarps * 4) { + int i = i0 + i_offset * 4 + k / (WARP_SIZE/4); + + if (need_check) { + i = sycl::min(i, i_max); + } + + const block_q2_K * bxi = bx0 + i*blocks_per_row + (k % (WARP_SIZE/4)) / (QI2_K/4); + + x_sc[i * (WARP_SIZE/4) + i / 4 + k % (WARP_SIZE/4)] = get_int_from_uint8_aligned(bxi->scales, k % (QI2_K/4)); + } +} + +#define VDR_Q2_K_Q8_1_MMQ 2 +// contiguous u/y values +static __dpct_inline__ float +vec_dot_q2_K_q8_1_impl_mmq(const int *__restrict__ v, const int *__restrict__ u, + const uint8_t *__restrict__ scales, + const sycl::half2 &dm2, const float &d8) { + + int sumi_d = 0; + int sumi_m = 0; + +#pragma unroll + for (int i0 = 0; i0 < QI8_1; i0 += QI8_1/2) { + int sumi_d_sc = 0; + + const int sc = scales[i0 / (QI8_1/2)]; + + // fill int with 4x m + int m = sc >> 4; + m |= m << 8; + m |= m << 16; + +#pragma unroll + for (int i = i0; i < i0 + QI8_1/2; ++i) { + sumi_d_sc = dpct::dp4a(v[i], u[i], sumi_d_sc); // SIMD dot product + sumi_m = dpct::dp4a(m, u[i], + sumi_m); // multiply sum of q8_1 values with m + } + + sumi_d += sumi_d_sc * (sc & 0xF); + } + + const sycl::float2 dm2f = + dm2.convert(); + + return d8 * (dm2f.x() * sumi_d - dm2f.y() * sumi_m); +} + +static __dpct_inline__ float vec_dot_q2_K_q8_1_mul_mat( + const int *__restrict__ x_ql, const sycl::half2 *__restrict__ x_dm, + const int *__restrict__ x_qh, const int *__restrict__ x_sc, + const int *__restrict__ y_qs, const sycl::half2 *__restrict__ y_ds, + const int &i, const int &j, const int &k) { + (void)x_qh; + + const int kbx = k / QI2_K; + const int ky = (k % QI2_K) * QR2_K; + const float * y_df = (const float *) y_ds; + + int v[QR2_K*VDR_Q2_K_Q8_1_MMQ]; + + const int kqsx = i * (WARP_SIZE + 1) + kbx*QI2_K + (QI2_K/2) * (ky/(2*QI2_K)) + ky % (QI2_K/2); + const int shift = 2 * ((ky % (2*QI2_K)) / (QI2_K/2)); + +#pragma unroll + for (int l = 0; l < QR2_K*VDR_Q2_K_Q8_1_MMQ; ++l) { + v[l] = (x_ql[kqsx + l] >> shift) & 0x03030303; + } + + const uint8_t * scales = ((const uint8_t *) &x_sc[i * (WARP_SIZE/4) + i/4 + kbx*4]) + ky/4; + + const int index_y = j * WARP_SIZE + (QR2_K*k) % WARP_SIZE; + return vec_dot_q2_K_q8_1_impl_mmq(v, &y_qs[index_y], scales, x_dm[i * (WARP_SIZE/QI2_K) + i/QI2_K + kbx], y_df[index_y/QI8_1]); +} + +template +static __dpct_inline__ void +allocate_tiles_q3_K(int **x_ql, sycl::half2 **x_dm, int **x_qh, int **x_sc, + int *tile_x_ql_q3_K, sycl::half2 *tile_x_dm_q3_K, + int *tile_x_qh_q3_K, int *tile_x_sc_q3_K) { + + *x_ql = tile_x_ql_q3_K; + *x_dm = tile_x_dm_q3_K; + *x_qh = tile_x_qh_q3_K; + *x_sc = tile_x_sc_q3_K; +} + +template +static __dpct_inline__ void +load_tiles_q3_K(const void *__restrict__ vx, int *__restrict__ x_ql, + sycl::half2 *__restrict__ x_dm, int *__restrict__ x_qh, + int *__restrict__ x_sc, const int &i_offset, const int &i_max, + const int &k, const int &blocks_per_row) { + + GGML_SYCL_ASSUME(i_offset >= 0); + GGML_SYCL_ASSUME(i_offset < nwarps); + GGML_SYCL_ASSUME(k >= 0); + GGML_SYCL_ASSUME(k < WARP_SIZE); + + const int kbx = k / QI3_K; + const int kqsx = k % QI3_K; + + const block_q3_K * bx0 = (const block_q3_K *) vx; + +#pragma unroll + for (int i0 = 0; i0 < mmq_y; i0 += nwarps) { + int i = i0 + i_offset; + + if (need_check) { + i = sycl::min(i, i_max); + } + + const block_q3_K * bxi = bx0 + i*blocks_per_row + kbx; + + x_ql[i * (WARP_SIZE + 1) + k] = get_int_from_uint8(bxi->qs, kqsx); + } + + const int blocks_per_tile_x_row = WARP_SIZE / QI3_K; + const int kbxd = k % blocks_per_tile_x_row; + float * x_dmf = (float *) x_dm; + +#pragma unroll + for (int i0 = 0; i0 < mmq_y; i0 += nwarps * QI3_K) { + int i = (i0 + i_offset * QI3_K + k / blocks_per_tile_x_row) % mmq_y; + + if (need_check) { + i = sycl::min(i, i_max); + } + + const block_q3_K * bxi = bx0 + i*blocks_per_row + kbxd; + + x_dmf[i * (WARP_SIZE/QI3_K) + i / QI3_K + kbxd] = bxi->d; + } + +#pragma unroll + for (int i0 = 0; i0 < mmq_y; i0 += nwarps * 2) { + int i = i0 + i_offset * 2 + k / (WARP_SIZE/2); + + if (need_check) { + i = sycl::min(i, i_max); + } + + const block_q3_K * bxi = bx0 + i*blocks_per_row + (k % (WARP_SIZE/2)) / (QI3_K/2); + + // invert the mask with ~ so that a 0/1 results in 4/0 being subtracted + x_qh[i * (WARP_SIZE/2) + i / 2 + k % (WARP_SIZE/2)] = ~get_int_from_uint8(bxi->hmask, k % (QI3_K/2)); + } + +#pragma unroll + for (int i0 = 0; i0 < mmq_y; i0 += nwarps * 4) { + int i = i0 + i_offset * 4 + k / (WARP_SIZE/4); + + if (need_check) { + i = sycl::min(i, i_max); + } + + const block_q3_K * bxi = bx0 + i*blocks_per_row + (k % (WARP_SIZE/4)) / (QI3_K/4); + + const int ksc = k % (QI3_K/4); + + const int ksc_low = ksc % (QI3_K/8); + const int shift_low = 4 * (ksc / (QI3_K/8)); + const int sc_low = (get_int_from_uint8(bxi->scales, ksc_low) >> shift_low) & 0x0F0F0F0F; + + const int ksc_high = QI3_K/8; + const int shift_high = 2 * ksc; + const int sc_high = ((get_int_from_uint8(bxi->scales, ksc_high) >> shift_high) << 4) & 0x30303030; + + const int sc = dpct::vectorized_binary( + sc_low | sc_high, 0x20202020, dpct::sub_sat()); + + x_sc[i * (WARP_SIZE/4) + i / 4 + k % (WARP_SIZE/4)] = sc; + } +} + +#define VDR_Q3_K_Q8_1_MMQ 2 +// contiguous u/y values +static __dpct_inline__ float +vec_dot_q3_K_q8_1_impl_mmq(const int *__restrict__ v, const int *__restrict__ u, + const int8_t *__restrict__ scales, const float &d3, + const float &d8) { + + int sumi = 0; + +#pragma unroll + for (int i0 = 0; i0 < QR3_K*VDR_Q3_K_Q8_1_MMQ; i0 += QI8_1/2) { + int sumi_sc = 0; + + for (int i = i0; i < i0 + QI8_1/2; ++i) { + sumi_sc = dpct::dp4a(v[i], u[i], sumi_sc); // SIMD dot product + } + + sumi += sumi_sc * scales[i0 / (QI8_1/2)]; + } + + return d3*d8 * sumi; +} + +static __dpct_inline__ float vec_dot_q3_K_q8_1_mul_mat( + const int *__restrict__ x_ql, const sycl::half2 *__restrict__ x_dm, + const int *__restrict__ x_qh, const int *__restrict__ x_sc, + const int *__restrict__ y_qs, const sycl::half2 *__restrict__ y_ds, + const int &i, const int &j, const int &k) { + + const int kbx = k / QI3_K; + const int ky = (k % QI3_K) * QR3_K; + const float * x_dmf = (const float *) x_dm; + const float * y_df = (const float *) y_ds; + + const int8_t * scales = ((const int8_t *) (x_sc + i * (WARP_SIZE/4) + i/4 + kbx*4)) + ky/4; + + int v[QR3_K*VDR_Q3_K_Q8_1_MMQ]; + +#pragma unroll + for (int l = 0; l < QR3_K*VDR_Q3_K_Q8_1_MMQ; ++l) { + const int kqsx = i * (WARP_SIZE + 1) + kbx*QI3_K + (QI3_K/2) * (ky/(2*QI3_K)) + ky % (QI3_K/2); + const int shift = 2 * ((ky % 32) / 8); + const int vll = (x_ql[kqsx + l] >> shift) & 0x03030303; + + const int vh = x_qh[i * (WARP_SIZE/2) + i/2 + kbx * (QI3_K/2) + (ky+l)%8] >> ((ky+l) / 8); + const int vlh = (vh << 2) & 0x04040404; + + v[l] = dpct::vectorized_binary(vll, vlh, dpct::sub_sat()); + } + + const int index_y = j * WARP_SIZE + (k*QR3_K) % WARP_SIZE; + return vec_dot_q3_K_q8_1_impl_mmq(v, &y_qs[index_y], scales, x_dmf[i * (WARP_SIZE/QI3_K) + i/QI3_K + kbx], y_df[index_y/QI8_1]); +} + +template +static __dpct_inline__ void +allocate_tiles_q4_K(int **x_ql, sycl::half2 **x_dm, int **x_qh, int **x_sc, + int *tile_x_ql_q4_K, sycl::half2 *tile_x_dm_q4_K, + int *tile_x_sc_q4_K) { + (void)x_qh; + + *x_ql = tile_x_ql_q4_K; + *x_dm = tile_x_dm_q4_K; + *x_sc = tile_x_sc_q4_K; +} + +template +static __dpct_inline__ void +load_tiles_q4_K(const void *__restrict__ vx, int *__restrict__ x_ql, + sycl::half2 *__restrict__ x_dm, int *__restrict__ x_qh, + int *__restrict__ x_sc, const int &i_offset, const int &i_max, + const int &k, const int &blocks_per_row) { + (void)x_qh; + + GGML_SYCL_ASSUME(i_offset >= 0); + GGML_SYCL_ASSUME(i_offset < nwarps); + GGML_SYCL_ASSUME(k >= 0); + GGML_SYCL_ASSUME(k < WARP_SIZE); + + const int kbx = k / QI4_K; // == 0 if QK_K == 256 + const int kqsx = k % QI4_K; // == k if QK_K == 256 + + const block_q4_K * bx0 = (const block_q4_K *) vx; + +#pragma unroll + for (int i0 = 0; i0 < mmq_y; i0 += nwarps) { + int i = i0 + i_offset; + + if (need_check) { + i = sycl::min(i, i_max); + } + + const block_q4_K * bxi = bx0 + i*blocks_per_row + kbx; + + x_ql[i * (WARP_SIZE + 1) + k] = get_int_from_uint8_aligned(bxi->qs, kqsx); + } + + const int blocks_per_tile_x_row = WARP_SIZE / QI4_K; // == 1 if QK_K == 256 + const int kbxd = k % blocks_per_tile_x_row; // == 0 if QK_K == 256 + +#pragma unroll + for (int i0 = 0; i0 < mmq_y; i0 += nwarps * QI4_K) { + int i = (i0 + i_offset * QI4_K + k / blocks_per_tile_x_row) % mmq_y; + + if (need_check) { + i = sycl::min(i, i_max); + } + + const block_q4_K * bxi = bx0 + i*blocks_per_row + kbxd; + +#if QK_K == 256 + x_dm[i * (WARP_SIZE/QI4_K) + i / QI4_K + kbxd] = bxi->dm; +#else + x_dm[i * (WARP_SIZE/QI4_K) + i / QI4_K + kbxd] = {bxi->dm[0], bxi->dm[1]}; +#endif + } + +#pragma unroll + for (int i0 = 0; i0 < mmq_y; i0 += nwarps * 8) { + int i = (i0 + i_offset * 8 + k / (WARP_SIZE/8)) % mmq_y; + + if (need_check) { + i = sycl::min(i, i_max); + } + + const block_q4_K * bxi = bx0 + i*blocks_per_row + (k % (WARP_SIZE/8)) / (QI4_K/8); + + const int * scales = (const int *) bxi->scales; + + const int ksc = k % (WARP_SIZE/8); + + // scale arrangement after the following two lines: sc0,...,sc3, sc4,...,sc7, m0,...,m3, m4,...,m8 + int scales8 = (scales[(ksc%2) + (ksc!=0)] >> (4 * (ksc & (ksc/2)))) & 0x0F0F0F0F; // lower 4 bits + scales8 |= (scales[ksc/2] >> (2 * (ksc % 2))) & 0x30303030; // upper 2 bits + + x_sc[i * (WARP_SIZE/8) + i / 8 + ksc] = scales8; + } +} + + +#define VDR_Q4_K_Q8_1_MMQ 8 + +// contiguous u/y values +static __dpct_inline__ float vec_dot_q4_K_q8_1_impl_mmq( + const int *__restrict__ v, const int *__restrict__ u, + const uint8_t *__restrict__ sc, const uint8_t *__restrict__ m, + const sycl::half2 &dm4, const sycl::half2 *__restrict__ ds8) { + + float sumf_d = 0.0f; + float sumf_m = 0.0f; + +#pragma unroll + for (int i = 0; i < QR4_K*VDR_Q4_K_Q8_1_MMQ/QI8_1; ++i) { + int sumi_d = 0; + +#pragma unroll + for (int j = 0; j < QI8_1; ++j) { + sumi_d = dpct::dp4a((v[j] >> (4 * i)) & 0x0F0F0F0F, + u[i * QI8_1 + j], sumi_d); // SIMD dot product + } + + const sycl::float2 ds8f = + ds8[i].convert(); + + sumf_d += ds8f.x() * (sc[i] * sumi_d); + sumf_m += ds8f.y() * m[i]; // sum of q8_1 block * q4_K min val + } + + const sycl::float2 dm4f = + dm4.convert(); + + return dm4f.x() * sumf_d - dm4f.y() * sumf_m; +} + + +static __dpct_inline__ float vec_dot_q4_K_q8_1_mul_mat( + const int *__restrict__ x_ql, const sycl::half2 *__restrict__ x_dm, + const int *__restrict__ x_qh, const int *__restrict__ x_sc, + const int *__restrict__ y_qs, const sycl::half2 *__restrict__ y_ds, + const int &i, const int &j, const int &k) { + (void)x_qh; + + const uint8_t * sc = ((const uint8_t *) &x_sc[i * (WARP_SIZE/8) + i/8 + k/16]) + 2*((k % 16) / 8); + + const int index_y = j * WARP_SIZE + (QR4_K*k) % WARP_SIZE; + return vec_dot_q4_K_q8_1_impl_mmq(&x_ql[i * (WARP_SIZE + 1) + k], &y_qs[index_y], sc, sc+8, + x_dm[i * (WARP_SIZE/QI4_K) + i/QI4_K], &y_ds[index_y/QI8_1]); +} + +template +static __dpct_inline__ void +allocate_tiles_q5_K(int **x_ql, sycl::half2 **x_dm, int **x_qh, int **x_sc, + int *tile_x_ql_q5_K, sycl::half2 *tile_x_dm_q5_K, + int *tile_x_sc_q5_K) { + (void)x_qh; + + *x_ql = tile_x_ql_q5_K; + *x_dm = tile_x_dm_q5_K; + *x_sc = tile_x_sc_q5_K; +} + +template +static __dpct_inline__ void +load_tiles_q5_K(const void *__restrict__ vx, int *__restrict__ x_ql, + sycl::half2 *__restrict__ x_dm, int *__restrict__ x_qh, + int *__restrict__ x_sc, const int &i_offset, const int &i_max, + const int &k, const int &blocks_per_row) { + (void)x_qh; + + GGML_SYCL_ASSUME(i_offset >= 0); + GGML_SYCL_ASSUME(i_offset < nwarps); + GGML_SYCL_ASSUME(k >= 0); + GGML_SYCL_ASSUME(k < WARP_SIZE); + + const int kbx = k / QI5_K; // == 0 if QK_K == 256 + const int kqsx = k % QI5_K; // == k if QK_K == 256 + + const block_q5_K * bx0 = (const block_q5_K *) vx; + +#pragma unroll + for (int i0 = 0; i0 < mmq_y; i0 += nwarps) { + int i = i0 + i_offset; + + if (need_check) { + i = sycl::min(i, i_max); + } + + const block_q5_K * bxi = bx0 + i*blocks_per_row + kbx; + const int ky = QR5_K*kqsx; + + const int ql = get_int_from_uint8_aligned(bxi->qs, kqsx); + const int ql0 = (ql >> 0) & 0x0F0F0F0F; + const int ql1 = (ql >> 4) & 0x0F0F0F0F; + + const int qh = get_int_from_uint8_aligned(bxi->qh, kqsx % (QI5_K/4)); + const int qh0 = ((qh >> (2 * (kqsx / (QI5_K/4)) + 0)) << 4) & 0x10101010; + const int qh1 = ((qh >> (2 * (kqsx / (QI5_K/4)) + 1)) << 4) & 0x10101010; + + const int kq0 = ky - ky % (QI5_K/2) + k % (QI5_K/4) + 0; + const int kq1 = ky - ky % (QI5_K/2) + k % (QI5_K/4) + (QI5_K/4); + + x_ql[i * (2*WARP_SIZE + 1) + kq0] = ql0 | qh0; + x_ql[i * (2*WARP_SIZE + 1) + kq1] = ql1 | qh1; + } + + const int blocks_per_tile_x_row = WARP_SIZE / QI5_K; // == 1 if QK_K == 256 + const int kbxd = k % blocks_per_tile_x_row; // == 0 if QK_K == 256 + +#pragma unroll + for (int i0 = 0; i0 < mmq_y; i0 += nwarps * QI5_K) { + int i = (i0 + i_offset * QI5_K + k / blocks_per_tile_x_row) % mmq_y; + + if (need_check) { + i = sycl::min(i, i_max); + } + + const block_q5_K * bxi = bx0 + i*blocks_per_row + kbxd; + +#if QK_K == 256 + x_dm[i * (WARP_SIZE/QI5_K) + i / QI5_K + kbxd] = bxi->dm; +#endif + } + +#pragma unroll + for (int i0 = 0; i0 < mmq_y; i0 += nwarps * 8) { + int i = (i0 + i_offset * 8 + k / (WARP_SIZE/8)) % mmq_y; + + if (need_check) { + i = sycl::min(i, i_max); + } + + const block_q5_K * bxi = bx0 + i*blocks_per_row + (k % (WARP_SIZE/8)) / (QI5_K/8); + + const int * scales = (const int *) bxi->scales; + + const int ksc = k % (WARP_SIZE/8); + + // scale arrangement after the following two lines: sc0,...,sc3, sc4,...,sc7, m0,...,m3, m4,...,m8 + int scales8 = (scales[(ksc%2) + (ksc!=0)] >> (4 * (ksc & (ksc/2)))) & 0x0F0F0F0F; // lower 4 bits + scales8 |= (scales[ksc/2] >> (2 * (ksc % 2))) & 0x30303030; // upper 2 bits + + x_sc[i * (WARP_SIZE/8) + i / 8 + ksc] = scales8; + } +} + +#define VDR_Q5_K_Q8_1_MMQ 8 + +// contiguous u/y values +static __dpct_inline__ float vec_dot_q5_K_q8_1_impl_mmq( + const int *__restrict__ v, const int *__restrict__ u, + const uint8_t *__restrict__ sc, const uint8_t *__restrict__ m, + const sycl::half2 &dm4, const sycl::half2 *__restrict__ ds8) { + + float sumf_d = 0.0f; + float sumf_m = 0.0f; + +#pragma unroll + for (int i = 0; i < QR5_K*VDR_Q5_K_Q8_1_MMQ/QI8_1; ++i) { + int sumi_d = 0; + +#pragma unroll + for (int j = 0; j < QI8_1; ++j) { + sumi_d = dpct::dp4a(v[i * QI8_1 + j], u[i * QI8_1 + j], + sumi_d); // SIMD dot product + } + + const sycl::float2 ds8f = + ds8[i].convert(); + + sumf_d += ds8f.x() * (sc[i] * sumi_d); + sumf_m += ds8f.y() * m[i]; // sum of q8_1 block * q4_K min val + } + + const sycl::float2 dm4f = + dm4.convert(); + + return dm4f.x() * sumf_d - dm4f.y() * sumf_m; +} + +static __dpct_inline__ float vec_dot_q5_K_q8_1_mul_mat( + const int *__restrict__ x_ql, const sycl::half2 *__restrict__ x_dm, + const int *__restrict__ x_qh, const int *__restrict__ x_sc, + const int *__restrict__ y_qs, const sycl::half2 *__restrict__ y_ds, + const int &i, const int &j, const int &k) { + (void)x_qh; + + const uint8_t * sc = ((const uint8_t *) &x_sc[i * (WARP_SIZE/8) + i/8 + k/16]) + 2 * ((k % 16) / 8); + + const int index_x = i * (QR5_K*WARP_SIZE + 1) + QR5_K*k; + const int index_y = j * WARP_SIZE + (QR5_K*k) % WARP_SIZE; + return vec_dot_q5_K_q8_1_impl_mmq(&x_ql[index_x], &y_qs[index_y], sc, sc+8, + x_dm[i * (WARP_SIZE/QI5_K) + i/QI5_K], &y_ds[index_y/QI8_1]); +} + +template +static __dpct_inline__ void +allocate_tiles_q6_K(int **x_ql, sycl::half2 **x_dm, int **x_qh, int **x_sc, + int *tile_x_ql, sycl::half2 *tile_x_dm, int *tile_x_sc) { + (void)x_qh; + + *x_ql = tile_x_ql; + *x_dm = tile_x_dm; + *x_sc = tile_x_sc; +} + +template +static __dpct_inline__ void +load_tiles_q6_K(const void *__restrict__ vx, int *__restrict__ x_ql, + sycl::half2 *__restrict__ x_dm, int *__restrict__ x_qh, + int *__restrict__ x_sc, const int &i_offset, const int &i_max, + const int &k, const int &blocks_per_row) { + (void)x_qh; + + GGML_SYCL_ASSUME(i_offset >= 0); + GGML_SYCL_ASSUME(i_offset < nwarps); + GGML_SYCL_ASSUME(k >= 0); + GGML_SYCL_ASSUME(k < WARP_SIZE); + + const int kbx = k / QI6_K; // == 0 if QK_K == 256 + const int kqsx = k % QI6_K; // == k if QK_K == 256 + + const block_q6_K * bx0 = (const block_q6_K *) vx; + +#pragma unroll + for (int i0 = 0; i0 < mmq_y; i0 += nwarps) { + int i = i0 + i_offset; + + if (need_check) { + i = sycl::min(i, i_max); + } + + const block_q6_K * bxi = bx0 + i*blocks_per_row + kbx; + const int ky = QR6_K*kqsx; + + const int ql = get_int_from_uint8(bxi->ql, kqsx); + const int ql0 = (ql >> 0) & 0x0F0F0F0F; + const int ql1 = (ql >> 4) & 0x0F0F0F0F; + + const int qh = get_int_from_uint8(bxi->qh, (QI6_K/4) * (kqsx / (QI6_K/2)) + kqsx % (QI6_K/4)); + const int qh0 = ((qh >> (2 * ((kqsx % (QI6_K/2)) / (QI6_K/4)))) << 4) & 0x30303030; + const int qh1 = (qh >> (2 * ((kqsx % (QI6_K/2)) / (QI6_K/4)))) & 0x30303030; + + const int kq0 = ky - ky % QI6_K + k % (QI6_K/2) + 0; + const int kq1 = ky - ky % QI6_K + k % (QI6_K/2) + (QI6_K/2); + + x_ql[i * (2 * WARP_SIZE + 1) + kq0] = + dpct::vectorized_binary(ql0 | qh0, 0x20202020, + dpct::sub_sat()); + x_ql[i * (2 * WARP_SIZE + 1) + kq1] = + dpct::vectorized_binary(ql1 | qh1, 0x20202020, + dpct::sub_sat()); + } + + const int blocks_per_tile_x_row = WARP_SIZE / QI6_K; // == 1 if QK_K == 256 + const int kbxd = k % blocks_per_tile_x_row; // == 0 if QK_K == 256 + float * x_dmf = (float *) x_dm; + +#pragma unroll + for (int i0 = 0; i0 < mmq_y; i0 += nwarps * QI6_K) { + int i = (i0 + i_offset * QI6_K + k / blocks_per_tile_x_row) % mmq_y; + + if (need_check) { + i = sycl::min(i, i_max); + } + + const block_q6_K * bxi = bx0 + i*blocks_per_row + kbxd; + + x_dmf[i * (WARP_SIZE/QI6_K) + i / QI6_K + kbxd] = bxi->d; + } + +#pragma unroll + for (int i0 = 0; i0 < mmq_y; i0 += nwarps * 8) { + int i = (i0 + i_offset * 8 + k / (WARP_SIZE/8)) % mmq_y; + + if (need_check) { + i = sycl::min(i, i_max); + } + + const block_q6_K * bxi = bx0 + i*blocks_per_row + (k % (WARP_SIZE/8)) / 4; + + x_sc[i * (WARP_SIZE/8) + i / 8 + k % (WARP_SIZE/8)] = get_int_from_int8(bxi->scales, k % (QI6_K/8)); + } +} + +#define VDR_Q6_K_Q8_1_MMQ 8 + +// contiguous u/y values +static __dpct_inline__ float +vec_dot_q6_K_q8_1_impl_mmq(const int *__restrict__ v, const int *__restrict__ u, + const int8_t *__restrict__ sc, const float &d6, + const float *__restrict__ d8) { + + float sumf_d = 0.0f; + +#pragma unroll + for (int i0 = 0; i0 < VDR_Q6_K_Q8_1_MMQ; i0 += 4) { + sycl::int2 sumi_d = {0, 0}; // 2 q6_K scales per q8_1 scale + +#pragma unroll + for (int i = i0; i < i0 + 2; ++i) { + sumi_d.x() = dpct::dp4a(v[2 * i + 0], u[2 * i + 0], + sumi_d.x()); // SIMD dot product + sumi_d.x() = dpct::dp4a(v[2 * i + 1], u[2 * i + 1], + sumi_d.x()); // SIMD dot product + + sumi_d.y() = dpct::dp4a(v[2 * i + 4], u[2 * i + 4], + sumi_d.y()); // SIMD dot product + sumi_d.y() = dpct::dp4a(v[2 * i + 5], u[2 * i + 5], + sumi_d.y()); // SIMD dot product + } + + sumf_d += d8[i0 / 4] * + (sc[i0 / 2 + 0] * sumi_d.x() + sc[i0 / 2 + 1] * sumi_d.y()); + } + + return d6 * sumf_d; +} + +static __dpct_inline__ float vec_dot_q6_K_q8_1_mul_mat( + const int *__restrict__ x_ql, const sycl::half2 *__restrict__ x_dm, + const int *__restrict__ x_qh, const int *__restrict__ x_sc, + const int *__restrict__ y_qs, const sycl::half2 *__restrict__ y_ds, + const int &i, const int &j, const int &k) { + (void)x_qh; + + const float * x_dmf = (const float *) x_dm; + const float * y_df = (const float *) y_ds; + + const int8_t * sc = ((const int8_t *) &x_sc[i * (WARP_SIZE/8) + i/8 + k/8]); + + const int index_x = i * (QR6_K*WARP_SIZE + 1) + QR6_K*k; + const int index_y = j * WARP_SIZE + (QR6_K*k) % WARP_SIZE; + return vec_dot_q6_K_q8_1_impl_mmq(&x_ql[index_x], &y_qs[index_y], sc, x_dmf[i * (WARP_SIZE/QI6_K) + i/QI6_K], &y_df[index_y/QI8_1]); +} + +template +/* +DPCT1110:8: The total declared local variable size in device function mul_mat_q +exceeds 128 bytes and may cause high register pressure. Consult with your +hardware vendor to find the total register size available and adjust the code, +or use smaller sub-group size to avoid high register pressure. +*/ +static __dpct_inline__ void +mul_mat_q(const void *__restrict__ vx, const void *__restrict__ vy, + float *__restrict__ dst, const int ncols_x, const int nrows_x, + const int ncols_y, const int nrows_y, const int nrows_dst, + int *tile_x_ql, sycl::half2 *tile_x_dm, int *tile_x_qh, + int *tile_x_sc, const sycl::nd_item<3> &item_ct1, int *tile_y_qs, + sycl::half2 *tile_y_ds) { + + const block_q_t * x = (const block_q_t *) vx; + const block_q8_1 * y = (const block_q8_1 *) vy; + + const int blocks_per_row_x = ncols_x / qk; + const int blocks_per_col_y = nrows_y / QK8_1; + const int blocks_per_warp = WARP_SIZE / qi; + + const int & ncols_dst = ncols_y; + + const int row_dst_0 = item_ct1.get_group(2) * mmq_y; + const int & row_x_0 = row_dst_0; + + const int col_dst_0 = item_ct1.get_group(1) * mmq_x; + const int & col_y_0 = col_dst_0; + + float sum[mmq_y/WARP_SIZE][mmq_x/nwarps] = {{0.0f}}; + + for (int ib0 = 0; ib0 < blocks_per_row_x; ib0 += blocks_per_warp) { + + load_tiles(x + row_x_0 * blocks_per_row_x + ib0, tile_x_ql, tile_x_dm, + tile_x_qh, tile_x_sc, item_ct1.get_local_id(1), + nrows_x - row_x_0 - 1, item_ct1.get_local_id(2), + blocks_per_row_x); + +#pragma unroll + for (int ir = 0; ir < qr; ++ir) { + const int kqs = ir * WARP_SIZE + item_ct1.get_local_id(2); + const int kbxd = kqs / QI8_1; + +#pragma unroll + for (int i = 0; i < mmq_x; i += nwarps) { + const int col_y_eff = dpct::min( + (unsigned int)(col_y_0 + item_ct1.get_local_id(1) + i), + ncols_y - 1); // to prevent out-of-bounds memory accesses + + const block_q8_1 * by0 = &y[col_y_eff*blocks_per_col_y + ib0 * (qk/QK8_1) + kbxd]; + + const int index_y = (item_ct1.get_local_id(1) + i) * WARP_SIZE + + kqs % WARP_SIZE; + tile_y_qs[index_y] = get_int_from_int8_aligned( + by0->qs, item_ct1.get_local_id(2) % QI8_1); + } + +#pragma unroll + for (int ids0 = 0; ids0 < mmq_x; ids0 += nwarps * QI8_1) { + const int ids = + (ids0 + item_ct1.get_local_id(1) * QI8_1 + + item_ct1.get_local_id(2) / (WARP_SIZE / QI8_1)) % + mmq_x; + const int kby = item_ct1.get_local_id(2) % (WARP_SIZE / QI8_1); + const int col_y_eff = sycl::min(col_y_0 + ids, ncols_y - 1); + + // if the sum is not needed it's faster to transform the scale to f32 ahead of time + const sycl::half2 *dsi_src = + &y[col_y_eff * blocks_per_col_y + ib0 * (qk / QK8_1) + + ir * (WARP_SIZE / QI8_1) + kby] + .ds; + sycl::half2 *dsi_dst = + &tile_y_ds[ids * (WARP_SIZE / QI8_1) + kby]; + if (need_sum) { + *dsi_dst = *dsi_src; + } else { + float * dfi_dst = (float *) dsi_dst; + *dfi_dst = (*dsi_src)[0]; + } + } + + /* + DPCT1118:9: SYCL group functions and algorithms must be encountered + in converged control flow. You may need to adjust the code. + */ + /* + DPCT1065:56: Consider replacing sycl::nd_item::barrier() with + sycl::nd_item::barrier(sycl::access::fence_space::local_space) for + better performance if there is no access to global memory. + */ + item_ct1.barrier(); + +// #pragma unroll // unrolling this loop causes too much register pressure + for (int k = ir*WARP_SIZE/qr; k < (ir+1)*WARP_SIZE/qr; k += vdr) { +#pragma unroll + for (int j = 0; j < mmq_x; j += nwarps) { +#pragma unroll + for (int i = 0; i < mmq_y; i += WARP_SIZE) { + sum[i / WARP_SIZE][j / nwarps] += vec_dot( + tile_x_ql, tile_x_dm, tile_x_qh, tile_x_sc, + tile_y_qs, tile_y_ds, item_ct1.get_local_id(2) + i, + item_ct1.get_local_id(1) + j, k); + } + } + } + + /* + DPCT1118:10: SYCL group functions and algorithms must be encountered + in converged control flow. You may need to adjust the code. + */ + /* + DPCT1065:57: Consider replacing sycl::nd_item::barrier() with + sycl::nd_item::barrier(sycl::access::fence_space::local_space) for + better performance if there is no access to global memory. + */ + item_ct1.barrier(); + } + } + +#pragma unroll + for (int j = 0; j < mmq_x; j += nwarps) { + const int col_dst = col_dst_0 + j + item_ct1.get_local_id(1); + + if (col_dst >= ncols_dst) { + return; + } + +#pragma unroll + for (int i = 0; i < mmq_y; i += WARP_SIZE) { + const int row_dst = row_dst_0 + item_ct1.get_local_id(2) + i; + + if (row_dst >= nrows_dst) { + continue; + } + + dst[col_dst*nrows_dst + row_dst] = sum[i/WARP_SIZE][j/nwarps]; + } + } +} + +#define MMQ_X_Q4_0_RDNA2 64 +#define MMQ_Y_Q4_0_RDNA2 128 +#define NWARPS_Q4_0_RDNA2 8 +#define MMQ_X_Q4_0_RDNA1 64 +#define MMQ_Y_Q4_0_RDNA1 64 +#define NWARPS_Q4_0_RDNA1 8 +#if defined(SYCL_USE_XMX) +#define MMQ_X_Q4_0_AMPERE 4 +#define MMQ_Y_Q4_0_AMPERE 32 +#define NWARPS_Q4_0_AMPERE 4 +#else +#define MMQ_X_Q4_0_AMPERE 64 +#define MMQ_Y_Q4_0_AMPERE 128 +#define NWARPS_Q4_0_AMPERE 4 +#endif +#define MMQ_X_Q4_0_PASCAL 64 +#define MMQ_Y_Q4_0_PASCAL 64 +#define NWARPS_Q4_0_PASCAL 8 + +template static void + mul_mat_q4_0( + const void * __restrict__ vx, const void * __restrict__ vy, float * __restrict__ dst, + const int ncols_x, const int nrows_x, const int ncols_y, const int nrows_y, const int nrows_dst, + const sycl::nd_item<3> &item_ct1, int *tile_x_qs_q4_0, float *tile_x_d_q4_0, + int *tile_y_qs, sycl::half2 *tile_y_ds) { + int * tile_x_ql = nullptr; + sycl::half2 *tile_x_dm = nullptr; + int * tile_x_qh = nullptr; + int * tile_x_sc = nullptr; + +//sycl_todo: change according to hardware + + const int mmq_x = MMQ_X_Q4_0_AMPERE; + const int mmq_y = MMQ_Y_Q4_0_AMPERE; + const int nwarps = NWARPS_Q4_0_AMPERE; + allocate_tiles_q4_0(&tile_x_ql, &tile_x_dm, &tile_x_qh, &tile_x_sc, + tile_x_qs_q4_0, tile_x_d_q4_0); + mul_mat_q, VDR_Q4_0_Q8_1_MMQ, + vec_dot_q4_0_q8_1_mul_mat>( + vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, nrows_dst, tile_x_ql, + tile_x_dm, tile_x_qh, tile_x_sc, item_ct1, tile_y_qs, tile_y_ds); +} + +#define MMQ_X_Q4_1_RDNA2 64 +#define MMQ_Y_Q4_1_RDNA2 128 +#define NWARPS_Q4_1_RDNA2 8 +#define MMQ_X_Q4_1_RDNA1 64 +#define MMQ_Y_Q4_1_RDNA1 64 +#define NWARPS_Q4_1_RDNA1 8 +#if defined(SYCL_USE_XMX) +#define MMQ_X_Q4_1_AMPERE 4 +#define MMQ_Y_Q4_1_AMPERE 32 +#define NWARPS_Q4_1_AMPERE 4 +#else +#define MMQ_X_Q4_1_AMPERE 64 +#define MMQ_Y_Q4_1_AMPERE 128 +#define NWARPS_Q4_1_AMPERE 4 +#endif +#define MMQ_X_Q4_1_PASCAL 64 +#define MMQ_Y_Q4_1_PASCAL 64 +#define NWARPS_Q4_1_PASCAL 8 + +template static void + mul_mat_q4_1( + const void * __restrict__ vx, const void * __restrict__ vy, float * __restrict__ dst, + const int ncols_x, const int nrows_x, const int ncols_y, const int nrows_y, const int nrows_dst, + const sycl::nd_item<3> &item_ct1, int *tile_x_qs_q4_1, + sycl::half2 *tile_x_dm_q4_1, int *tile_y_qs, sycl::half2 *tile_y_ds) { + int * tile_x_ql = nullptr; + sycl::half2 *tile_x_dm = nullptr; + int * tile_x_qh = nullptr; + int * tile_x_sc = nullptr; + +//sycl_todo: change according to hardware + const int mmq_x = MMQ_X_Q4_1_AMPERE; + const int mmq_y = MMQ_Y_Q4_1_AMPERE; + const int nwarps = NWARPS_Q4_1_AMPERE; + allocate_tiles_q4_1(&tile_x_ql, &tile_x_dm, &tile_x_qh, &tile_x_sc, + tile_x_qs_q4_1, tile_x_dm_q4_1); + mul_mat_q, VDR_Q4_1_Q8_1_MMQ, + vec_dot_q4_1_q8_1_mul_mat>( + vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, nrows_dst, tile_x_ql, + tile_x_dm, tile_x_qh, tile_x_sc, item_ct1, tile_y_qs, tile_y_ds); +} + +#define MMQ_X_Q5_0_RDNA2 64 +#define MMQ_Y_Q5_0_RDNA2 128 +#define NWARPS_Q5_0_RDNA2 8 +#define MMQ_X_Q5_0_RDNA1 64 +#define MMQ_Y_Q5_0_RDNA1 64 +#define NWARPS_Q5_0_RDNA1 8 +#if defined(SYCL_USE_XMX) +#define MMQ_X_Q5_0_AMPERE 4 +#define MMQ_Y_Q5_0_AMPERE 32 +#define NWARPS_Q5_0_AMPERE 4 +#else +#define MMQ_X_Q5_0_AMPERE 128 +#define MMQ_Y_Q5_0_AMPERE 64 +#define NWARPS_Q5_0_AMPERE 4 +#endif +#define MMQ_X_Q5_0_PASCAL 64 +#define MMQ_Y_Q5_0_PASCAL 64 +#define NWARPS_Q5_0_PASCAL 8 + +template static void + mul_mat_q5_0( + const void * __restrict__ vx, const void * __restrict__ vy, float * __restrict__ dst, + const int ncols_x, const int nrows_x, const int ncols_y, const int nrows_y, const int nrows_dst, + const sycl::nd_item<3> &item_ct1, int *tile_x_ql_q5_0, float *tile_x_d_q5_0, + int *tile_y_qs, sycl::half2 *tile_y_ds) { + int * tile_x_ql = nullptr; + sycl::half2 *tile_x_dm = nullptr; + int * tile_x_qh = nullptr; + int * tile_x_sc = nullptr; + +//sycl_todo: change according to hardware + const int mmq_x = MMQ_X_Q5_0_AMPERE; + const int mmq_y = MMQ_Y_Q5_0_AMPERE; + const int nwarps = NWARPS_Q5_0_AMPERE; + allocate_tiles_q5_0(&tile_x_ql, &tile_x_dm, &tile_x_qh, &tile_x_sc, + tile_x_ql_q5_0, tile_x_d_q5_0); + mul_mat_q, VDR_Q5_0_Q8_1_MMQ, + vec_dot_q5_0_q8_1_mul_mat>( + vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, nrows_dst, tile_x_ql, + tile_x_dm, tile_x_qh, tile_x_sc, item_ct1, tile_y_qs, tile_y_ds); +} + +#define MMQ_X_Q5_1_RDNA2 64 +#define MMQ_Y_Q5_1_RDNA2 128 +#define NWARPS_Q5_1_RDNA2 8 +#define MMQ_X_Q5_1_RDNA1 64 +#define MMQ_Y_Q5_1_RDNA1 64 +#define NWARPS_Q5_1_RDNA1 8 +#if defined(SYCL_USE_XMX) +#define MMQ_X_Q5_1_AMPERE 4 +#define MMQ_Y_Q5_1_AMPERE 32 +#define NWARPS_Q5_1_AMPERE 4 +#else +#define MMQ_X_Q5_1_AMPERE 128 +#define MMQ_Y_Q5_1_AMPERE 64 +#define NWARPS_Q5_1_AMPERE 4 +#endif +#define MMQ_X_Q5_1_PASCAL 64 +#define MMQ_Y_Q5_1_PASCAL 64 +#define NWARPS_Q5_1_PASCAL 8 + +template static void +mul_mat_q5_1( + const void * __restrict__ vx, const void * __restrict__ vy, float * __restrict__ dst, + const int ncols_x, const int nrows_x, const int ncols_y, const int nrows_y, const int nrows_dst, + const sycl::nd_item<3> &item_ct1, int *tile_x_ql_q5_1, + sycl::half2 *tile_x_dm_q5_1, int *tile_y_qs, sycl::half2 *tile_y_ds) { + int * tile_x_ql = nullptr; + sycl::half2 *tile_x_dm = nullptr; + int * tile_x_qh = nullptr; + int * tile_x_sc = nullptr; + +//sycl_todo: change according to hardware + const int mmq_x = MMQ_X_Q5_1_AMPERE; + const int mmq_y = MMQ_Y_Q5_1_AMPERE; + const int nwarps = NWARPS_Q5_1_AMPERE; + allocate_tiles_q5_1(&tile_x_ql, &tile_x_dm, &tile_x_qh, &tile_x_sc, + tile_x_ql_q5_1, tile_x_dm_q5_1); + mul_mat_q, VDR_Q5_1_Q8_1_MMQ, + vec_dot_q5_1_q8_1_mul_mat>( + vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, nrows_dst, tile_x_ql, + tile_x_dm, tile_x_qh, tile_x_sc, item_ct1, tile_y_qs, tile_y_ds); +} + +#define MMQ_X_Q8_0_RDNA2 64 +#define MMQ_Y_Q8_0_RDNA2 128 +#define NWARPS_Q8_0_RDNA2 8 +#define MMQ_X_Q8_0_RDNA1 64 +#define MMQ_Y_Q8_0_RDNA1 64 +#define NWARPS_Q8_0_RDNA1 8 +#if defined(SYCL_USE_XMX) +#define MMQ_X_Q8_0_AMPERE 4 +#define MMQ_Y_Q8_0_AMPERE 32 +#define NWARPS_Q8_0_AMPERE 4 +#else +#define MMQ_X_Q8_0_AMPERE 128 +#define MMQ_Y_Q8_0_AMPERE 64 +#define NWARPS_Q8_0_AMPERE 4 +#endif +#define MMQ_X_Q8_0_PASCAL 64 +#define MMQ_Y_Q8_0_PASCAL 64 +#define NWARPS_Q8_0_PASCAL 8 + +template static void + mul_mat_q8_0( + const void * __restrict__ vx, const void * __restrict__ vy, float * __restrict__ dst, + const int ncols_x, const int nrows_x, const int ncols_y, const int nrows_y, const int nrows_dst, + const sycl::nd_item<3> &item_ct1, int *tile_x_qs_q8_0, float *tile_x_d_q8_0, + int *tile_y_qs, sycl::half2 *tile_y_ds) { + int * tile_x_ql = nullptr; + sycl::half2 *tile_x_dm = nullptr; + int * tile_x_qh = nullptr; + int * tile_x_sc = nullptr; + +//sycl_todo: change according to hardware + const int mmq_x = MMQ_X_Q8_0_AMPERE; + const int mmq_y = MMQ_Y_Q8_0_AMPERE; + const int nwarps = NWARPS_Q8_0_AMPERE; + allocate_tiles_q8_0(&tile_x_ql, &tile_x_dm, &tile_x_qh, &tile_x_sc, + tile_x_qs_q8_0, tile_x_d_q8_0); + mul_mat_q, VDR_Q8_0_Q8_1_MMQ, + vec_dot_q8_0_q8_1_mul_mat>( + vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, nrows_dst, tile_x_ql, + tile_x_dm, tile_x_qh, tile_x_sc, item_ct1, tile_y_qs, tile_y_ds); +} + +#define MMQ_X_Q2_K_RDNA2 64 +#define MMQ_Y_Q2_K_RDNA2 128 +#define NWARPS_Q2_K_RDNA2 8 +#define MMQ_X_Q2_K_RDNA1 128 +#define MMQ_Y_Q2_K_RDNA1 32 +#define NWARPS_Q2_K_RDNA1 8 +#if defined(SYCL_USE_XMX) +#define MMQ_X_Q2_K_AMPERE 4 +#define MMQ_Y_Q2_K_AMPERE 32 +#define NWARPS_Q2_K_AMPERE 4 +#else +#define MMQ_X_Q2_K_AMPERE 64 +#define MMQ_Y_Q2_K_AMPERE 128 +#define NWARPS_Q2_K_AMPERE 4 +#endif +#define MMQ_X_Q2_K_PASCAL 64 +#define MMQ_Y_Q2_K_PASCAL 64 +#define NWARPS_Q2_K_PASCAL 8 + +template static void +mul_mat_q2_K( + const void * __restrict__ vx, const void * __restrict__ vy, float * __restrict__ dst, + const int ncols_x, const int nrows_x, const int ncols_y, const int nrows_y, const int nrows_dst, + const sycl::nd_item<3> &item_ct1, int *tile_x_ql_q2_K, + sycl::half2 *tile_x_dm_q2_K, int *tile_x_sc_q2_K, int *tile_y_qs, + sycl::half2 *tile_y_ds) { + int * tile_x_ql = nullptr; + sycl::half2 *tile_x_dm = nullptr; + int * tile_x_qh = nullptr; + int * tile_x_sc = nullptr; + +//sycl_todo: change according to hardware + const int mmq_x = MMQ_X_Q2_K_AMPERE; + const int mmq_y = MMQ_Y_Q2_K_AMPERE; + const int nwarps = NWARPS_Q2_K_AMPERE; + allocate_tiles_q2_K(&tile_x_ql, &tile_x_dm, &tile_x_qh, &tile_x_sc, + tile_x_ql_q2_K, tile_x_dm_q2_K, tile_x_sc_q2_K); + mul_mat_q, VDR_Q2_K_Q8_1_MMQ, + vec_dot_q2_K_q8_1_mul_mat>( + vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, nrows_dst, tile_x_ql, + tile_x_dm, tile_x_qh, tile_x_sc, item_ct1, tile_y_qs, tile_y_ds); +} + +#define MMQ_X_Q3_K_RDNA2 128 +#define MMQ_Y_Q3_K_RDNA2 64 +#define NWARPS_Q3_K_RDNA2 8 +#define MMQ_X_Q3_K_RDNA1 32 +#define MMQ_Y_Q3_K_RDNA1 128 +#define NWARPS_Q3_K_RDNA1 8 +#if defined(SYCL_USE_XMX) +#define MMQ_X_Q3_K_AMPERE 4 +#define MMQ_Y_Q3_K_AMPERE 32 +#define NWARPS_Q3_K_AMPERE 4 +#else +#define MMQ_X_Q3_K_AMPERE 128 +#define MMQ_Y_Q3_K_AMPERE 128 +#define NWARPS_Q3_K_AMPERE 4 +#endif +#define MMQ_X_Q3_K_PASCAL 64 +#define MMQ_Y_Q3_K_PASCAL 64 +#define NWARPS_Q3_K_PASCAL 8 + +template static void +mul_mat_q3_K( + const void * __restrict__ vx, const void * __restrict__ vy, float * __restrict__ dst, + const int ncols_x, const int nrows_x, const int ncols_y, const int nrows_y, const int nrows_dst, + const sycl::nd_item<3> &item_ct1, int *tile_x_ql_q3_K, + sycl::half2 *tile_x_dm_q3_K, int *tile_x_qh_q3_K, int *tile_x_sc_q3_K, + int *tile_y_qs, sycl::half2 *tile_y_ds) { + int * tile_x_ql = nullptr; + sycl::half2 *tile_x_dm = nullptr; + int * tile_x_qh = nullptr; + int * tile_x_sc = nullptr; + +//sycl_todo: change according to hardware + const int mmq_x = MMQ_X_Q3_K_AMPERE; + const int mmq_y = MMQ_Y_Q3_K_AMPERE; + const int nwarps = NWARPS_Q3_K_AMPERE; + allocate_tiles_q3_K(&tile_x_ql, &tile_x_dm, &tile_x_qh, &tile_x_sc, + tile_x_ql_q3_K, tile_x_dm_q3_K, tile_x_qh_q3_K, + tile_x_sc_q3_K); + mul_mat_q, VDR_Q3_K_Q8_1_MMQ, + vec_dot_q3_K_q8_1_mul_mat>( + vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, nrows_dst, tile_x_ql, + tile_x_dm, tile_x_qh, tile_x_sc, item_ct1, tile_y_qs, tile_y_ds); +} + +#define MMQ_X_Q4_K_RDNA2 64 +#define MMQ_Y_Q4_K_RDNA2 128 +#define NWARPS_Q4_K_RDNA2 8 +#define MMQ_X_Q4_K_RDNA1 32 +#define MMQ_Y_Q4_K_RDNA1 64 +#define NWARPS_Q4_K_RDNA1 8 +#if defined(SYCL_USE_XMX) +#define MMQ_X_Q4_K_AMPERE 4 +#define MMQ_Y_Q4_K_AMPERE 32 +#define NWARPS_Q4_K_AMPERE 4 +#else +#define MMQ_X_Q4_K_AMPERE 64 +#define MMQ_Y_Q4_K_AMPERE 128 +#define NWARPS_Q4_K_AMPERE 4 +#endif +#define MMQ_X_Q4_K_PASCAL 64 +#define MMQ_Y_Q4_K_PASCAL 64 +#define NWARPS_Q4_K_PASCAL 8 + +template static void + mul_mat_q4_K( + const void * __restrict__ vx, const void * __restrict__ vy, float * __restrict__ dst, + const int ncols_x, const int nrows_x, const int ncols_y, const int nrows_y, const int nrows_dst, + const sycl::nd_item<3> &item_ct1, int *tile_x_ql_q4_K, + sycl::half2 *tile_x_dm_q4_K, int *tile_x_sc_q4_K, int *tile_y_qs, + sycl::half2 *tile_y_ds) { + int * tile_x_ql = nullptr; + sycl::half2 *tile_x_dm = nullptr; + int * tile_x_qh = nullptr; + int * tile_x_sc = nullptr; + +//sycl_todo: change according to hardware + const int mmq_x = MMQ_X_Q4_K_AMPERE; + const int mmq_y = MMQ_Y_Q4_K_AMPERE; + const int nwarps = NWARPS_Q4_K_AMPERE; + allocate_tiles_q4_K(&tile_x_ql, &tile_x_dm, &tile_x_qh, &tile_x_sc, + tile_x_ql_q4_K, tile_x_dm_q4_K, tile_x_sc_q4_K); + mul_mat_q, VDR_Q4_K_Q8_1_MMQ, + vec_dot_q4_K_q8_1_mul_mat>( + vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, nrows_dst, tile_x_ql, + tile_x_dm, tile_x_qh, tile_x_sc, item_ct1, tile_y_qs, tile_y_ds); +} + +#define MMQ_X_Q5_K_RDNA2 64 +#define MMQ_Y_Q5_K_RDNA2 128 +#define NWARPS_Q5_K_RDNA2 8 +#define MMQ_X_Q5_K_RDNA1 32 +#define MMQ_Y_Q5_K_RDNA1 64 +#define NWARPS_Q5_K_RDNA1 8 +#if defined(SYCL_USE_XMX) +#define MMQ_X_Q5_K_AMPERE 4 +#define MMQ_Y_Q5_K_AMPERE 32 +#define NWARPS_Q5_K_AMPERE 4 +#else +#define MMQ_X_Q5_K_AMPERE 64 +#define MMQ_Y_Q5_K_AMPERE 128 +#define NWARPS_Q5_K_AMPERE 4 +#endif +#define MMQ_X_Q5_K_PASCAL 64 +#define MMQ_Y_Q5_K_PASCAL 64 +#define NWARPS_Q5_K_PASCAL 8 + +template static void +mul_mat_q5_K( + const void * __restrict__ vx, const void * __restrict__ vy, float * __restrict__ dst, + const int ncols_x, const int nrows_x, const int ncols_y, const int nrows_y, const int nrows_dst, + const sycl::nd_item<3> &item_ct1, int *tile_x_ql_q5_K, + sycl::half2 *tile_x_dm_q5_K, int *tile_x_sc_q5_K, int *tile_y_qs, + sycl::half2 *tile_y_ds) { + int * tile_x_ql = nullptr; + sycl::half2 *tile_x_dm = nullptr; + int * tile_x_qh = nullptr; + int * tile_x_sc = nullptr; + +//sycl_todo: change according to hardware + const int mmq_x = MMQ_X_Q5_K_AMPERE; + const int mmq_y = MMQ_Y_Q5_K_AMPERE; + const int nwarps = NWARPS_Q5_K_AMPERE; + allocate_tiles_q5_K(&tile_x_ql, &tile_x_dm, &tile_x_qh, &tile_x_sc, + tile_x_ql_q5_K, tile_x_dm_q5_K, tile_x_sc_q5_K); + mul_mat_q, VDR_Q5_K_Q8_1_MMQ, + vec_dot_q5_K_q8_1_mul_mat>( + vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, nrows_dst, tile_x_ql, + tile_x_dm, tile_x_qh, tile_x_sc, item_ct1, tile_y_qs, tile_y_ds); +} + +#define MMQ_X_Q6_K_RDNA2 64 +#define MMQ_Y_Q6_K_RDNA2 128 +#define NWARPS_Q6_K_RDNA2 8 +#define MMQ_X_Q6_K_RDNA1 32 +#define MMQ_Y_Q6_K_RDNA1 64 +#define NWARPS_Q6_K_RDNA1 8 +#if defined(SYCL_USE_XMX) +#define MMQ_X_Q6_K_AMPERE 4 +#define MMQ_Y_Q6_K_AMPERE 32 +#define NWARPS_Q6_K_AMPERE 4 +#else +#define MMQ_X_Q6_K_AMPERE 64 +#define MMQ_Y_Q6_K_AMPERE 64 +#define NWARPS_Q6_K_AMPERE 4 +#endif +#define MMQ_X_Q6_K_PASCAL 64 +#define MMQ_Y_Q6_K_PASCAL 64 +#define NWARPS_Q6_K_PASCAL 8 + +template static void + mul_mat_q6_K( + const void * __restrict__ vx, const void * __restrict__ vy, float * __restrict__ dst, + const int ncols_x, const int nrows_x, const int ncols_y, const int nrows_y, const int nrows_dst, + const sycl::nd_item<3> &item_ct1, int *tile_x_ql, sycl::half2 *tile_x_dm, + int *tile_x_sc, int *tile_y_qs, sycl::half2 *tile_y_ds) { + // int * tile_x_ql = nullptr; + // sycl::half2 *tile_x_dm = nullptr; + int * tile_x_qh = nullptr; + // int * tile_x_sc = nullptr; + +//sycl_todo: change according to hardware + const int mmq_x = MMQ_X_Q6_K_AMPERE; + const int mmq_y = MMQ_Y_Q6_K_AMPERE; + const int nwarps = NWARPS_Q6_K_AMPERE; + allocate_tiles_q6_K(&tile_x_ql, &tile_x_dm, &tile_x_qh, &tile_x_sc, + tile_x_ql, tile_x_dm, tile_x_sc); + mul_mat_q, VDR_Q6_K_Q8_1_MMQ, + vec_dot_q6_K_q8_1_mul_mat>( + vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, nrows_dst, tile_x_ql, + tile_x_dm, tile_x_qh, tile_x_sc, item_ct1, tile_y_qs, tile_y_ds); +} + +static void ggml_mul_mat_q4_0_q8_1_sycl(const void *vx, const void *vy, + float *dst, const int ncols_x, + const int nrows_x, const int ncols_y, + const int nrows_y, const int nrows_dst, + dpct::queue_ptr stream) try { + + int id; + SYCL_CHECK( + CHECK_TRY_ERROR(id = get_current_device_id())); + const int compute_capability = ggml_sycl_info().devices[id].cc; + + int mmq_x, mmq_y, nwarps; + if (compute_capability >= VER_GEN13) { + mmq_x = MMQ_X_Q4_0_RDNA2; + mmq_y = MMQ_Y_Q4_0_RDNA2; + nwarps = NWARPS_Q4_0_RDNA2; + } else if (compute_capability >= VER_GEN12) { + mmq_x = MMQ_X_Q4_0_RDNA1; + mmq_y = MMQ_Y_Q4_0_RDNA1; + nwarps = NWARPS_Q4_0_RDNA1; + } else if (compute_capability >= VER_GEN9) { + mmq_x = MMQ_X_Q4_0_AMPERE; + mmq_y = MMQ_Y_Q4_0_AMPERE; + nwarps = NWARPS_Q4_0_AMPERE; + } else if (compute_capability >= VER_4VEC) { + mmq_x = MMQ_X_Q4_0_PASCAL; + mmq_y = MMQ_Y_Q4_0_PASCAL; + nwarps = NWARPS_Q4_0_PASCAL; + } else { + GGML_ASSERT(false); + } + + const int block_num_x = (nrows_x + mmq_y - 1) / mmq_y; + const int block_num_y = (ncols_y + mmq_x - 1) / mmq_x; + const sycl::range<3> block_nums(1, block_num_y, block_num_x); + const sycl::range<3> block_dims(1, nwarps, WARP_SIZE); + + if (nrows_x % mmq_y == 0) { + const bool need_check = false; + /* + DPCT1049:20: The work-group size passed to the SYCL kernel may exceed + the limit. To get the device limit, query + info::device::max_work_group_size. Adjust the work-group size if needed. + */ + { + dpct::has_capability_or_fail(stream->get_device(), + {sycl::aspect::fp16}); + + stream->submit([&](sycl::handler &cgh) { + sycl::local_accessor tile_x_qs_q4_0_acc_ct1( + sycl::range<1>(mmq_y * (WARP_SIZE) + mmq_y), cgh); + sycl::local_accessor tile_x_d_q4_0_acc_ct1( + sycl::range<1>(mmq_y * (WARP_SIZE / QI4_0) + mmq_y / QI4_0), + cgh); + sycl::local_accessor tile_y_qs_acc_ct1( + sycl::range<1>(mmq_x * WARP_SIZE), cgh); + sycl::local_accessor tile_y_ds_acc_ct1( + sycl::range<1>(mmq_x * WARP_SIZE / QI8_1), cgh); + + cgh.parallel_for( + sycl::nd_range<3>(block_nums * block_dims, block_dims), + [=](sycl::nd_item<3> item_ct1) { + mul_mat_q4_0( + vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, + nrows_dst, item_ct1, + tile_x_qs_q4_0_acc_ct1.get_pointer(), + tile_x_d_q4_0_acc_ct1.get_pointer(), + tile_y_qs_acc_ct1.get_pointer(), + tile_y_ds_acc_ct1.get_pointer()); + }); + }); + } + } else { + const bool need_check = true; + /* + DPCT1049:21: The work-group size passed to the SYCL kernel may exceed + the limit. To get the device limit, query + info::device::max_work_group_size. Adjust the work-group size if needed. + */ + { + dpct::has_capability_or_fail(stream->get_device(), + {sycl::aspect::fp16}); + + stream->submit([&](sycl::handler &cgh) { + sycl::local_accessor tile_x_qs_q4_0_acc_ct1( + sycl::range<1>(mmq_y * (WARP_SIZE) + mmq_y), cgh); + sycl::local_accessor tile_x_d_q4_0_acc_ct1( + sycl::range<1>(mmq_y * (WARP_SIZE / QI4_0) + mmq_y / QI4_0), + cgh); + sycl::local_accessor tile_y_qs_acc_ct1( + sycl::range<1>(mmq_x * WARP_SIZE), cgh); + sycl::local_accessor tile_y_ds_acc_ct1( + sycl::range<1>(mmq_x * WARP_SIZE / QI8_1), cgh); + + cgh.parallel_for( + sycl::nd_range<3>(block_nums * block_dims, block_dims), + [=](sycl::nd_item<3> item_ct1) { + mul_mat_q4_0( + vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, + nrows_dst, item_ct1, + tile_x_qs_q4_0_acc_ct1.get_pointer(), + tile_x_d_q4_0_acc_ct1.get_pointer(), + tile_y_qs_acc_ct1.get_pointer(), + tile_y_ds_acc_ct1.get_pointer()); + }); + }); + } + } +} +catch (sycl::exception const &exc) { + std::cerr << exc.what() << "Exception caught at file:" << __FILE__ + << ", line:" << __LINE__ << std::endl; + std::exit(1); +} + +static void ggml_mul_mat_q4_1_q8_1_sycl(const void *vx, const void *vy, + float *dst, const int ncols_x, + const int nrows_x, const int ncols_y, + const int nrows_y, const int nrows_dst, + dpct::queue_ptr stream) try { + + int id; + SYCL_CHECK( + CHECK_TRY_ERROR(id = get_current_device_id())); + const int compute_capability = ggml_sycl_info().devices[id].cc; + + int mmq_x, mmq_y, nwarps; + if (compute_capability >= VER_GEN13) { + mmq_x = MMQ_X_Q4_1_RDNA2; + mmq_y = MMQ_Y_Q4_1_RDNA2; + nwarps = NWARPS_Q4_1_RDNA2; + } else if (compute_capability >= VER_GEN12) { + mmq_x = MMQ_X_Q4_1_RDNA1; + mmq_y = MMQ_Y_Q4_1_RDNA1; + nwarps = NWARPS_Q4_1_RDNA1; + } else if (compute_capability >= VER_GEN9) { + mmq_x = MMQ_X_Q4_1_AMPERE; + mmq_y = MMQ_Y_Q4_1_AMPERE; + nwarps = NWARPS_Q4_1_AMPERE; + } else if (compute_capability >= VER_4VEC) { + mmq_x = MMQ_X_Q4_1_PASCAL; + mmq_y = MMQ_Y_Q4_1_PASCAL; + nwarps = NWARPS_Q4_1_PASCAL; + } else { + GGML_ASSERT(false); + } + + const int block_num_x = (nrows_x + mmq_y - 1) / mmq_y; + const int block_num_y = (ncols_y + mmq_x - 1) / mmq_x; + const sycl::range<3> block_nums(1, block_num_y, block_num_x); + const sycl::range<3> block_dims(1, nwarps, WARP_SIZE); + + if (nrows_x % mmq_y == 0) { + const bool need_check = false; + /* + DPCT1049:22: The work-group size passed to the SYCL kernel may exceed + the limit. To get the device limit, query + info::device::max_work_group_size. Adjust the work-group size if needed. + */ + { + dpct::has_capability_or_fail(stream->get_device(), + {sycl::aspect::fp16}); + + stream->submit([&](sycl::handler &cgh) { + sycl::local_accessor tile_x_qs_q4_1_acc_ct1( + sycl::range<1>(mmq_y * (WARP_SIZE) + +mmq_y), cgh); + sycl::local_accessor tile_x_dm_q4_1_acc_ct1( + sycl::range<1>(mmq_y * (WARP_SIZE / QI4_1) + mmq_y / QI4_1), + cgh); + sycl::local_accessor tile_y_qs_acc_ct1( + sycl::range<1>(mmq_x * WARP_SIZE), cgh); + sycl::local_accessor tile_y_ds_acc_ct1( + sycl::range<1>(mmq_x * WARP_SIZE / QI8_1), cgh); + + cgh.parallel_for( + sycl::nd_range<3>(block_nums * block_dims, block_dims), + [=](sycl::nd_item<3> item_ct1) { + mul_mat_q4_1( + vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, + nrows_dst, item_ct1, + tile_x_qs_q4_1_acc_ct1.get_pointer(), + tile_x_dm_q4_1_acc_ct1.get_pointer(), + tile_y_qs_acc_ct1.get_pointer(), + tile_y_ds_acc_ct1.get_pointer()); + }); + }); + } + } else { + const bool need_check = true; + /* + DPCT1049:23: The work-group size passed to the SYCL kernel may exceed + the limit. To get the device limit, query + info::device::max_work_group_size. Adjust the work-group size if needed. + */ + { + dpct::has_capability_or_fail(stream->get_device(), + {sycl::aspect::fp16}); + + stream->submit([&](sycl::handler &cgh) { + sycl::local_accessor tile_x_qs_q4_1_acc_ct1( + sycl::range<1>(mmq_y * (WARP_SIZE) + +mmq_y), cgh); + sycl::local_accessor tile_x_dm_q4_1_acc_ct1( + sycl::range<1>(mmq_y * (WARP_SIZE / QI4_1) + mmq_y / QI4_1), + cgh); + sycl::local_accessor tile_y_qs_acc_ct1( + sycl::range<1>(mmq_x * WARP_SIZE), cgh); + sycl::local_accessor tile_y_ds_acc_ct1( + sycl::range<1>(mmq_x * WARP_SIZE / QI8_1), cgh); + + cgh.parallel_for( + sycl::nd_range<3>(block_nums * block_dims, block_dims), + [=](sycl::nd_item<3> item_ct1) { + mul_mat_q4_1( + vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, + nrows_dst, item_ct1, + tile_x_qs_q4_1_acc_ct1.get_pointer(), + tile_x_dm_q4_1_acc_ct1.get_pointer(), + tile_y_qs_acc_ct1.get_pointer(), + tile_y_ds_acc_ct1.get_pointer()); + }); + }); + } + } +} +catch (sycl::exception const &exc) { + std::cerr << exc.what() << "Exception caught at file:" << __FILE__ + << ", line:" << __LINE__ << std::endl; + std::exit(1); +} + +static void ggml_mul_mat_q5_0_q8_1_sycl(const void *vx, const void *vy, + float *dst, const int ncols_x, + const int nrows_x, const int ncols_y, + const int nrows_y, const int nrows_dst, + dpct::queue_ptr stream) try { + + int id; + SYCL_CHECK( + CHECK_TRY_ERROR(id = get_current_device_id())); + const int compute_capability = ggml_sycl_info().devices[id].cc; + + int mmq_x, mmq_y, nwarps; + if (compute_capability >= VER_GEN13) { + mmq_x = MMQ_X_Q5_0_RDNA2; + mmq_y = MMQ_Y_Q5_0_RDNA2; + nwarps = NWARPS_Q5_0_RDNA2; + } else if (compute_capability >= VER_GEN12) { + mmq_x = MMQ_X_Q5_0_RDNA1; + mmq_y = MMQ_Y_Q5_0_RDNA1; + nwarps = NWARPS_Q5_0_RDNA1; + } else if (compute_capability >= VER_GEN9) { + mmq_x = MMQ_X_Q5_0_AMPERE; + mmq_y = MMQ_Y_Q5_0_AMPERE; + nwarps = NWARPS_Q5_0_AMPERE; + } else if (compute_capability >= VER_4VEC) { + mmq_x = MMQ_X_Q5_0_PASCAL; + mmq_y = MMQ_Y_Q5_0_PASCAL; + nwarps = NWARPS_Q5_0_PASCAL; + } else { + GGML_ASSERT(false); + } + + const int block_num_x = (nrows_x + mmq_y - 1) / mmq_y; + const int block_num_y = (ncols_y + mmq_x - 1) / mmq_x; + const sycl::range<3> block_nums(1, block_num_y, block_num_x); + const sycl::range<3> block_dims(1, nwarps, WARP_SIZE); + + if (nrows_x % mmq_y == 0) { + const bool need_check = false; + /* + DPCT1049:24: The work-group size passed to the SYCL kernel may exceed + the limit. To get the device limit, query + info::device::max_work_group_size. Adjust the work-group size if needed. + */ + { + dpct::has_capability_or_fail(stream->get_device(), + {sycl::aspect::fp16}); + + stream->submit([&](sycl::handler &cgh) { + sycl::local_accessor tile_x_ql_q5_0_acc_ct1( + sycl::range<1>(mmq_y * (2 * WARP_SIZE) + mmq_y), cgh); + sycl::local_accessor tile_x_d_q5_0_acc_ct1( + sycl::range<1>(mmq_y * (WARP_SIZE / QI5_0) + mmq_y / QI5_0), + cgh); + sycl::local_accessor tile_y_qs_acc_ct1( + sycl::range<1>(mmq_x * WARP_SIZE), cgh); + sycl::local_accessor tile_y_ds_acc_ct1( + sycl::range<1>(mmq_x * WARP_SIZE / QI8_1), cgh); + + cgh.parallel_for( + sycl::nd_range<3>(block_nums * block_dims, block_dims), + [=](sycl::nd_item<3> item_ct1) { + mul_mat_q5_0( + vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, + nrows_dst, item_ct1, + tile_x_ql_q5_0_acc_ct1.get_pointer(), + tile_x_d_q5_0_acc_ct1.get_pointer(), + tile_y_qs_acc_ct1.get_pointer(), + tile_y_ds_acc_ct1.get_pointer()); + }); + }); + } + } else { + const bool need_check = true; + /* + DPCT1049:25: The work-group size passed to the SYCL kernel may exceed + the limit. To get the device limit, query + info::device::max_work_group_size. Adjust the work-group size if needed. + */ + { + dpct::has_capability_or_fail(stream->get_device(), + {sycl::aspect::fp16}); + + stream->submit([&](sycl::handler &cgh) { + sycl::local_accessor tile_x_ql_q5_0_acc_ct1( + sycl::range<1>(mmq_y * (2 * WARP_SIZE) + mmq_y), cgh); + sycl::local_accessor tile_x_d_q5_0_acc_ct1( + sycl::range<1>(mmq_y * (WARP_SIZE / QI5_0) + mmq_y / QI5_0), + cgh); + sycl::local_accessor tile_y_qs_acc_ct1( + sycl::range<1>(mmq_x * WARP_SIZE), cgh); + sycl::local_accessor tile_y_ds_acc_ct1( + sycl::range<1>(mmq_x * WARP_SIZE / QI8_1), cgh); + + cgh.parallel_for( + sycl::nd_range<3>(block_nums * block_dims, block_dims), + [=](sycl::nd_item<3> item_ct1) { + mul_mat_q5_0( + vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, + nrows_dst, item_ct1, + tile_x_ql_q5_0_acc_ct1.get_pointer(), + tile_x_d_q5_0_acc_ct1.get_pointer(), + tile_y_qs_acc_ct1.get_pointer(), + tile_y_ds_acc_ct1.get_pointer()); + }); + }); + } + } +} +catch (sycl::exception const &exc) { + std::cerr << exc.what() << "Exception caught at file:" << __FILE__ + << ", line:" << __LINE__ << std::endl; + std::exit(1); +} + +static void ggml_mul_mat_q5_1_q8_1_sycl(const void *vx, const void *vy, + float *dst, const int ncols_x, + const int nrows_x, const int ncols_y, + const int nrows_y, const int nrows_dst, + dpct::queue_ptr stream) try { + + int id; + SYCL_CHECK( + CHECK_TRY_ERROR(id = get_current_device_id())); + const int compute_capability = ggml_sycl_info().devices[id].cc; + + int mmq_x, mmq_y, nwarps; + if (compute_capability >= VER_GEN13) { + mmq_x = MMQ_X_Q5_1_RDNA2; + mmq_y = MMQ_Y_Q5_1_RDNA2; + nwarps = NWARPS_Q5_1_RDNA2; + } else if (compute_capability >= VER_GEN12) { + mmq_x = MMQ_X_Q5_1_RDNA1; + mmq_y = MMQ_Y_Q5_1_RDNA1; + nwarps = NWARPS_Q5_1_RDNA1; + } else if (compute_capability >= VER_GEN9) { + mmq_x = MMQ_X_Q5_1_AMPERE; + mmq_y = MMQ_Y_Q5_1_AMPERE; + nwarps = NWARPS_Q5_1_AMPERE; + } else if (compute_capability >= VER_4VEC) { + mmq_x = MMQ_X_Q5_1_PASCAL; + mmq_y = MMQ_Y_Q5_1_PASCAL; + nwarps = NWARPS_Q5_1_PASCAL; + } else { + GGML_ASSERT(false); + } + + const int block_num_x = (nrows_x + mmq_y - 1) / mmq_y; + const int block_num_y = (ncols_y + mmq_x - 1) / mmq_x; + const sycl::range<3> block_nums(1, block_num_y, block_num_x); + const sycl::range<3> block_dims(1, nwarps, WARP_SIZE); + + if (nrows_x % mmq_y == 0) { + const bool need_check = false; + /* + DPCT1049:26: The work-group size passed to the SYCL kernel may exceed + the limit. To get the device limit, query + info::device::max_work_group_size. Adjust the work-group size if needed. + */ + { + dpct::has_capability_or_fail(stream->get_device(), + {sycl::aspect::fp16}); + + stream->submit([&](sycl::handler &cgh) { + sycl::local_accessor tile_x_ql_q5_1_acc_ct1( + sycl::range<1>(mmq_y * (2 * WARP_SIZE) + mmq_y), cgh); + sycl::local_accessor tile_x_dm_q5_1_acc_ct1( + sycl::range<1>(mmq_y * (WARP_SIZE / QI5_1) + mmq_y / QI5_1), + cgh); + sycl::local_accessor tile_y_qs_acc_ct1( + sycl::range<1>(mmq_x * WARP_SIZE), cgh); + sycl::local_accessor tile_y_ds_acc_ct1( + sycl::range<1>(mmq_x * WARP_SIZE / QI8_1), cgh); + + cgh.parallel_for( + sycl::nd_range<3>(block_nums * block_dims, block_dims), + [=](sycl::nd_item<3> item_ct1) { + mul_mat_q5_1( + vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, + nrows_dst, item_ct1, + tile_x_ql_q5_1_acc_ct1.get_pointer(), + tile_x_dm_q5_1_acc_ct1.get_pointer(), + tile_y_qs_acc_ct1.get_pointer(), + tile_y_ds_acc_ct1.get_pointer()); + }); + }); + } + } else { + const bool need_check = true; + /* + DPCT1049:27: The work-group size passed to the SYCL kernel may exceed + the limit. To get the device limit, query + info::device::max_work_group_size. Adjust the work-group size if needed. + */ + { + dpct::has_capability_or_fail(stream->get_device(), + {sycl::aspect::fp16}); + + stream->submit([&](sycl::handler &cgh) { + sycl::local_accessor tile_x_ql_q5_1_acc_ct1( + sycl::range<1>(mmq_y * (2 * WARP_SIZE) + mmq_y), cgh); + sycl::local_accessor tile_x_dm_q5_1_acc_ct1( + sycl::range<1>(mmq_y * (WARP_SIZE / QI5_1) + mmq_y / QI5_1), + cgh); + sycl::local_accessor tile_y_qs_acc_ct1( + sycl::range<1>(mmq_x * WARP_SIZE), cgh); + sycl::local_accessor tile_y_ds_acc_ct1( + sycl::range<1>(mmq_x * WARP_SIZE / QI8_1), cgh); + + cgh.parallel_for( + sycl::nd_range<3>(block_nums * block_dims, block_dims), + [=](sycl::nd_item<3> item_ct1) { + mul_mat_q5_1( + vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, + nrows_dst, item_ct1, + tile_x_ql_q5_1_acc_ct1.get_pointer(), + tile_x_dm_q5_1_acc_ct1.get_pointer(), + tile_y_qs_acc_ct1.get_pointer(), + tile_y_ds_acc_ct1.get_pointer()); + }); + }); + } + } +} +catch (sycl::exception const &exc) { + std::cerr << exc.what() << "Exception caught at file:" << __FILE__ + << ", line:" << __LINE__ << std::endl; + std::exit(1); +} + +static void ggml_mul_mat_q8_0_q8_1_sycl(const void *vx, const void *vy, + float *dst, const int ncols_x, + const int nrows_x, const int ncols_y, + const int nrows_y, const int nrows_dst, + dpct::queue_ptr stream) try { + + int id; + SYCL_CHECK( + CHECK_TRY_ERROR(id = get_current_device_id())); + const int compute_capability = ggml_sycl_info().devices[id].cc; + + int mmq_x, mmq_y, nwarps; + if (compute_capability >= VER_GEN13) { + mmq_x = MMQ_X_Q8_0_RDNA2; + mmq_y = MMQ_Y_Q8_0_RDNA2; + nwarps = NWARPS_Q8_0_RDNA2; + } else if (compute_capability >= VER_GEN12) { + mmq_x = MMQ_X_Q8_0_RDNA1; + mmq_y = MMQ_Y_Q8_0_RDNA1; + nwarps = NWARPS_Q8_0_RDNA1; + } else if (compute_capability >= VER_GEN9) { + mmq_x = MMQ_X_Q8_0_AMPERE; + mmq_y = MMQ_Y_Q8_0_AMPERE; + nwarps = NWARPS_Q8_0_AMPERE; + } else if (compute_capability >= VER_4VEC) { + mmq_x = MMQ_X_Q8_0_PASCAL; + mmq_y = MMQ_Y_Q8_0_PASCAL; + nwarps = NWARPS_Q8_0_PASCAL; + } else { + GGML_ASSERT(false); + } + + const int block_num_x = (nrows_x + mmq_y - 1) / mmq_y; + const int block_num_y = (ncols_y + mmq_x - 1) / mmq_x; + const sycl::range<3> block_nums(1, block_num_y, block_num_x); + const sycl::range<3> block_dims(1, nwarps, WARP_SIZE); + + if (nrows_x % mmq_y == 0) { + const bool need_check = false; + /* + DPCT1049:28: The work-group size passed to the SYCL kernel may exceed + the limit. To get the device limit, query + info::device::max_work_group_size. Adjust the work-group size if needed. + */ + { + dpct::has_capability_or_fail(stream->get_device(), + {sycl::aspect::fp16}); + + stream->submit([&](sycl::handler &cgh) { + sycl::local_accessor tile_x_qs_q8_0_acc_ct1( + sycl::range<1>(mmq_y * (WARP_SIZE) + mmq_y), cgh); + sycl::local_accessor tile_x_d_q8_0_acc_ct1( + sycl::range<1>(mmq_y * (WARP_SIZE / QI8_0) + mmq_y / QI8_0), + cgh); + sycl::local_accessor tile_y_qs_acc_ct1( + sycl::range<1>(mmq_x * WARP_SIZE), cgh); + sycl::local_accessor tile_y_ds_acc_ct1( + sycl::range<1>(mmq_x * WARP_SIZE / QI8_1), cgh); + + cgh.parallel_for( + sycl::nd_range<3>(block_nums * block_dims, block_dims), + [=](sycl::nd_item<3> item_ct1) { + mul_mat_q8_0( + vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, + nrows_dst, item_ct1, + tile_x_qs_q8_0_acc_ct1.get_pointer(), + tile_x_d_q8_0_acc_ct1.get_pointer(), + tile_y_qs_acc_ct1.get_pointer(), + tile_y_ds_acc_ct1.get_pointer()); + }); + }); + } + } else { + const bool need_check = true; + /* + DPCT1049:29: The work-group size passed to the SYCL kernel may exceed + the limit. To get the device limit, query + info::device::max_work_group_size. Adjust the work-group size if needed. + */ + { + dpct::has_capability_or_fail(stream->get_device(), + {sycl::aspect::fp16}); + + stream->submit([&](sycl::handler &cgh) { + sycl::local_accessor tile_x_qs_q8_0_acc_ct1( + sycl::range<1>(mmq_y * (WARP_SIZE) + mmq_y), cgh); + sycl::local_accessor tile_x_d_q8_0_acc_ct1( + sycl::range<1>(mmq_y * (WARP_SIZE / QI8_0) + mmq_y / QI8_0), + cgh); + sycl::local_accessor tile_y_qs_acc_ct1( + sycl::range<1>(mmq_x * WARP_SIZE), cgh); + sycl::local_accessor tile_y_ds_acc_ct1( + sycl::range<1>(mmq_x * WARP_SIZE / QI8_1), cgh); + + cgh.parallel_for( + sycl::nd_range<3>(block_nums * block_dims, block_dims), + [=](sycl::nd_item<3> item_ct1) { + mul_mat_q8_0( + vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, + nrows_dst, item_ct1, + tile_x_qs_q8_0_acc_ct1.get_pointer(), + tile_x_d_q8_0_acc_ct1.get_pointer(), + tile_y_qs_acc_ct1.get_pointer(), + tile_y_ds_acc_ct1.get_pointer()); + }); + }); + } + } +} +catch (sycl::exception const &exc) { + std::cerr << exc.what() << "Exception caught at file:" << __FILE__ + << ", line:" << __LINE__ << std::endl; + std::exit(1); +} + +static void ggml_mul_mat_q2_K_q8_1_sycl(const void *vx, const void *vy, + float *dst, const int ncols_x, + const int nrows_x, const int ncols_y, + const int nrows_y, const int nrows_dst, + dpct::queue_ptr stream) try { + + int id; + SYCL_CHECK( + CHECK_TRY_ERROR(id = get_current_device_id())); + const int compute_capability = ggml_sycl_info().devices[id].cc; + + int mmq_x, mmq_y, nwarps; + if (compute_capability >= VER_GEN13) { + mmq_x = MMQ_X_Q2_K_RDNA2; + mmq_y = MMQ_Y_Q2_K_RDNA2; + nwarps = NWARPS_Q2_K_RDNA2; + } else if (compute_capability >= VER_GEN12) { + mmq_x = MMQ_X_Q2_K_RDNA1; + mmq_y = MMQ_Y_Q2_K_RDNA1; + nwarps = NWARPS_Q2_K_RDNA1; + } else if (compute_capability >= VER_GEN9) { + mmq_x = MMQ_X_Q2_K_AMPERE; + mmq_y = MMQ_Y_Q2_K_AMPERE; + nwarps = NWARPS_Q2_K_AMPERE; + } else if (compute_capability >= VER_4VEC) { + mmq_x = MMQ_X_Q2_K_PASCAL; + mmq_y = MMQ_Y_Q2_K_PASCAL; + nwarps = NWARPS_Q2_K_PASCAL; + } else { + GGML_ASSERT(false); + } + + const int block_num_x = (nrows_x + mmq_y - 1) / mmq_y; + const int block_num_y = (ncols_y + mmq_x - 1) / mmq_x; + const sycl::range<3> block_nums(1, block_num_y, block_num_x); + const sycl::range<3> block_dims(1, nwarps, WARP_SIZE); + + if (nrows_x % mmq_y == 0) { + const bool need_check = false; + /* + DPCT1049:30: The work-group size passed to the SYCL kernel may exceed + the limit. To get the device limit, query + info::device::max_work_group_size. Adjust the work-group size if needed. + */ + { + dpct::has_capability_or_fail(stream->get_device(), + {sycl::aspect::fp16}); + + stream->submit([&](sycl::handler &cgh) { + sycl::local_accessor tile_x_ql_q2_K_acc_ct1( + sycl::range<1>(mmq_y * (WARP_SIZE) + mmq_y), cgh); + sycl::local_accessor tile_x_dm_q2_K_acc_ct1( + sycl::range<1>(mmq_y * (WARP_SIZE / QI2_K) + mmq_y / QI2_K), + cgh); + sycl::local_accessor tile_x_sc_q2_K_acc_ct1( + sycl::range<1>(mmq_y * (WARP_SIZE / 4) + mmq_y / 4), cgh); + sycl::local_accessor tile_y_qs_acc_ct1( + sycl::range<1>(mmq_x * WARP_SIZE), cgh); + sycl::local_accessor tile_y_ds_acc_ct1( + sycl::range<1>(mmq_x * WARP_SIZE / QI8_1), cgh); + + cgh.parallel_for( + sycl::nd_range<3>(block_nums * block_dims, block_dims), + [=](sycl::nd_item<3> item_ct1) { + mul_mat_q2_K( + vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, + nrows_dst, item_ct1, + tile_x_ql_q2_K_acc_ct1.get_pointer(), + tile_x_dm_q2_K_acc_ct1.get_pointer(), + tile_x_sc_q2_K_acc_ct1.get_pointer(), + tile_y_qs_acc_ct1.get_pointer(), + tile_y_ds_acc_ct1.get_pointer()); + }); + }); + } + } else { + const bool need_check = true; + /* + DPCT1049:31: The work-group size passed to the SYCL kernel may exceed + the limit. To get the device limit, query + info::device::max_work_group_size. Adjust the work-group size if needed. + */ + { + dpct::has_capability_or_fail(stream->get_device(), + {sycl::aspect::fp16}); + + stream->submit([&](sycl::handler &cgh) { + sycl::local_accessor tile_x_ql_q2_K_acc_ct1( + sycl::range<1>(mmq_y * (WARP_SIZE) + mmq_y), cgh); + sycl::local_accessor tile_x_dm_q2_K_acc_ct1( + sycl::range<1>(mmq_y * (WARP_SIZE / QI2_K) + mmq_y / QI2_K), + cgh); + sycl::local_accessor tile_x_sc_q2_K_acc_ct1( + sycl::range<1>(mmq_y * (WARP_SIZE / 4) + mmq_y / 4), cgh); + sycl::local_accessor tile_y_qs_acc_ct1( + sycl::range<1>(mmq_x * WARP_SIZE), cgh); + sycl::local_accessor tile_y_ds_acc_ct1( + sycl::range<1>(mmq_x * WARP_SIZE / QI8_1), cgh); + + cgh.parallel_for( + sycl::nd_range<3>(block_nums * block_dims, block_dims), + [=](sycl::nd_item<3> item_ct1) { + mul_mat_q2_K( + vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, + nrows_dst, item_ct1, + tile_x_ql_q2_K_acc_ct1.get_pointer(), + tile_x_dm_q2_K_acc_ct1.get_pointer(), + tile_x_sc_q2_K_acc_ct1.get_pointer(), + tile_y_qs_acc_ct1.get_pointer(), + tile_y_ds_acc_ct1.get_pointer()); + }); + }); + } + } +} +catch (sycl::exception const &exc) { + std::cerr << exc.what() << "Exception caught at file:" << __FILE__ + << ", line:" << __LINE__ << std::endl; + std::exit(1); +} + +static void ggml_mul_mat_q3_K_q8_1_sycl(const void *vx, const void *vy, + float *dst, const int ncols_x, + const int nrows_x, const int ncols_y, + const int nrows_y, const int nrows_dst, + dpct::queue_ptr stream) try { + +#if QK_K == 256 + + int id; + SYCL_CHECK( + CHECK_TRY_ERROR(id = get_current_device_id())); + const int compute_capability = ggml_sycl_info().devices[id].cc; + + int mmq_x, mmq_y, nwarps; + if (compute_capability >= VER_GEN13) { + mmq_x = MMQ_X_Q3_K_RDNA2; + mmq_y = MMQ_Y_Q3_K_RDNA2; + nwarps = NWARPS_Q3_K_RDNA2; + } else if (compute_capability >= VER_GEN12) { + mmq_x = MMQ_X_Q3_K_RDNA1; + mmq_y = MMQ_Y_Q3_K_RDNA1; + nwarps = NWARPS_Q3_K_RDNA1; + } else if (compute_capability >= VER_GEN9) { + mmq_x = MMQ_X_Q3_K_AMPERE; + mmq_y = MMQ_Y_Q3_K_AMPERE; + nwarps = NWARPS_Q3_K_AMPERE; + } else if (compute_capability >= VER_4VEC) { + mmq_x = MMQ_X_Q3_K_PASCAL; + mmq_y = MMQ_Y_Q3_K_PASCAL; + nwarps = NWARPS_Q3_K_PASCAL; + } else { + GGML_ASSERT(false); + } + + const int block_num_x = (nrows_x + mmq_y - 1) / mmq_y; + const int block_num_y = (ncols_y + mmq_x - 1) / mmq_x; + const sycl::range<3> block_nums(1, block_num_y, block_num_x); + const sycl::range<3> block_dims(1, nwarps, WARP_SIZE); + + if (nrows_x % mmq_y == 0) { + const bool need_check = false; + /* + DPCT1049:32: The work-group size passed to the SYCL kernel may exceed + the limit. To get the device limit, query + info::device::max_work_group_size. Adjust the work-group size if needed. + */ + { + dpct::has_capability_or_fail(stream->get_device(), + {sycl::aspect::fp16}); + + stream->submit([&](sycl::handler &cgh) { + sycl::local_accessor tile_x_ql_q3_K_acc_ct1( + sycl::range<1>(mmq_y * (WARP_SIZE) + mmq_y), cgh); + sycl::local_accessor tile_x_dm_q3_K_acc_ct1( + sycl::range<1>(mmq_y * (WARP_SIZE / QI3_K) + mmq_y / QI3_K), + cgh); + sycl::local_accessor tile_x_qh_q3_K_acc_ct1( + sycl::range<1>(mmq_y * (WARP_SIZE / 2) + mmq_y / 2), cgh); + sycl::local_accessor tile_x_sc_q3_K_acc_ct1( + sycl::range<1>(mmq_y * (WARP_SIZE / 4) + mmq_y / 4), cgh); + sycl::local_accessor tile_y_qs_acc_ct1( + sycl::range<1>(mmq_x * WARP_SIZE), cgh); + sycl::local_accessor tile_y_ds_acc_ct1( + sycl::range<1>(mmq_x * WARP_SIZE / QI8_1), cgh); + + cgh.parallel_for( + sycl::nd_range<3>(block_nums * block_dims, block_dims), + [=](sycl::nd_item<3> item_ct1) { + mul_mat_q3_K( + vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, + nrows_dst, item_ct1, + tile_x_ql_q3_K_acc_ct1.get_pointer(), + tile_x_dm_q3_K_acc_ct1.get_pointer(), + tile_x_qh_q3_K_acc_ct1.get_pointer(), + tile_x_sc_q3_K_acc_ct1.get_pointer(), + tile_y_qs_acc_ct1.get_pointer(), + tile_y_ds_acc_ct1.get_pointer()); + }); + }); + } + } else { + const bool need_check = true; + /* + DPCT1049:33: The work-group size passed to the SYCL kernel may exceed + the limit. To get the device limit, query + info::device::max_work_group_size. Adjust the work-group size if needed. + */ + { + dpct::has_capability_or_fail(stream->get_device(), + {sycl::aspect::fp16}); + + stream->submit([&](sycl::handler &cgh) { + sycl::local_accessor tile_x_ql_q3_K_acc_ct1( + sycl::range<1>(mmq_y * (WARP_SIZE) + mmq_y), cgh); + sycl::local_accessor tile_x_dm_q3_K_acc_ct1( + sycl::range<1>(mmq_y * (WARP_SIZE / QI3_K) + mmq_y / QI3_K), + cgh); + sycl::local_accessor tile_x_qh_q3_K_acc_ct1( + sycl::range<1>(mmq_y * (WARP_SIZE / 2) + mmq_y / 2), cgh); + sycl::local_accessor tile_x_sc_q3_K_acc_ct1( + sycl::range<1>(mmq_y * (WARP_SIZE / 4) + mmq_y / 4), cgh); + sycl::local_accessor tile_y_qs_acc_ct1( + sycl::range<1>(mmq_x * WARP_SIZE), cgh); + sycl::local_accessor tile_y_ds_acc_ct1( + sycl::range<1>(mmq_x * WARP_SIZE / QI8_1), cgh); + + cgh.parallel_for( + sycl::nd_range<3>(block_nums * block_dims, block_dims), + [=](sycl::nd_item<3> item_ct1) { + mul_mat_q3_K( + vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, + nrows_dst, item_ct1, + tile_x_ql_q3_K_acc_ct1.get_pointer(), + tile_x_dm_q3_K_acc_ct1.get_pointer(), + tile_x_qh_q3_K_acc_ct1.get_pointer(), + tile_x_sc_q3_K_acc_ct1.get_pointer(), + tile_y_qs_acc_ct1.get_pointer(), + tile_y_ds_acc_ct1.get_pointer()); + }); + }); + } + } +#endif +} +catch (sycl::exception const &exc) { + std::cerr << exc.what() << "Exception caught at file:" << __FILE__ + << ", line:" << __LINE__ << std::endl; + std::exit(1); +} + +static void ggml_mul_mat_q4_K_q8_1_sycl(const void *vx, const void *vy, + float *dst, const int ncols_x, + const int nrows_x, const int ncols_y, + const int nrows_y, const int nrows_dst, + dpct::queue_ptr stream) try { + + int id; + SYCL_CHECK( + CHECK_TRY_ERROR(id = get_current_device_id())); + const int compute_capability = ggml_sycl_info().devices[id].cc; + + int mmq_x, mmq_y, nwarps; + if (compute_capability >= VER_GEN13) { + mmq_x = MMQ_X_Q4_K_RDNA2; + mmq_y = MMQ_Y_Q4_K_RDNA2; + nwarps = NWARPS_Q4_K_RDNA2; + } else if (compute_capability >= VER_GEN12) { + mmq_x = MMQ_X_Q4_K_RDNA1; + mmq_y = MMQ_Y_Q4_K_RDNA1; + nwarps = NWARPS_Q4_K_RDNA1; + } else if (compute_capability >= VER_GEN9) { + mmq_x = MMQ_X_Q4_K_AMPERE; + mmq_y = MMQ_Y_Q4_K_AMPERE; + nwarps = NWARPS_Q4_K_AMPERE; + } else if (compute_capability >= VER_4VEC) { + mmq_x = MMQ_X_Q4_K_PASCAL; + mmq_y = MMQ_Y_Q4_K_PASCAL; + nwarps = NWARPS_Q4_K_PASCAL; + } else { + GGML_ASSERT(false); + } + + const int block_num_x = (nrows_x + mmq_y - 1) / mmq_y; + const int block_num_y = (ncols_y + mmq_x - 1) / mmq_x; + const sycl::range<3> block_nums(1, block_num_y, block_num_x); + const sycl::range<3> block_dims(1, nwarps, WARP_SIZE); + + if (nrows_x % mmq_y == 0) { + const bool need_check = false; + /* + DPCT1049:34: The work-group size passed to the SYCL kernel may exceed + the limit. To get the device limit, query + info::device::max_work_group_size. Adjust the work-group size if needed. + */ + { + dpct::has_capability_or_fail(stream->get_device(), + {sycl::aspect::fp16}); + + stream->submit([&](sycl::handler &cgh) { + sycl::local_accessor tile_x_ql_q4_K_acc_ct1( + sycl::range<1>(mmq_y * (WARP_SIZE) + mmq_y), cgh); + sycl::local_accessor tile_x_dm_q4_K_acc_ct1( + sycl::range<1>(mmq_y * (WARP_SIZE / QI4_K) + mmq_y / QI4_K), + cgh); + sycl::local_accessor tile_x_sc_q4_K_acc_ct1( + sycl::range<1>(mmq_y * (WARP_SIZE / 8) + mmq_y / 8), cgh); + sycl::local_accessor tile_y_qs_acc_ct1( + sycl::range<1>(mmq_x * WARP_SIZE), cgh); + sycl::local_accessor tile_y_ds_acc_ct1( + sycl::range<1>(mmq_x * WARP_SIZE / QI8_1), cgh); + + cgh.parallel_for( + sycl::nd_range<3>(block_nums * block_dims, block_dims), + [=](sycl::nd_item<3> item_ct1) { + mul_mat_q4_K( + vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, + nrows_dst, item_ct1, + tile_x_ql_q4_K_acc_ct1.get_pointer(), + tile_x_dm_q4_K_acc_ct1.get_pointer(), + tile_x_sc_q4_K_acc_ct1.get_pointer(), + tile_y_qs_acc_ct1.get_pointer(), + tile_y_ds_acc_ct1.get_pointer()); + }); + }); + } + } else { + const bool need_check = true; + /* + DPCT1049:35: The work-group size passed to the SYCL kernel may exceed + the limit. To get the device limit, query + info::device::max_work_group_size. Adjust the work-group size if needed. + */ + { + dpct::has_capability_or_fail(stream->get_device(), + {sycl::aspect::fp16}); + + stream->submit([&](sycl::handler &cgh) { + sycl::local_accessor tile_x_ql_q4_K_acc_ct1( + sycl::range<1>(mmq_y * (WARP_SIZE) + mmq_y), cgh); + sycl::local_accessor tile_x_dm_q4_K_acc_ct1( + sycl::range<1>(mmq_y * (WARP_SIZE / QI4_K) + mmq_y / QI4_K), + cgh); + sycl::local_accessor tile_x_sc_q4_K_acc_ct1( + sycl::range<1>(mmq_y * (WARP_SIZE / 8) + mmq_y / 8), cgh); + sycl::local_accessor tile_y_qs_acc_ct1( + sycl::range<1>(mmq_x * WARP_SIZE), cgh); + sycl::local_accessor tile_y_ds_acc_ct1( + sycl::range<1>(mmq_x * WARP_SIZE / QI8_1), cgh); + + cgh.parallel_for( + sycl::nd_range<3>(block_nums * block_dims, block_dims), + [=](sycl::nd_item<3> item_ct1) { + mul_mat_q4_K( + vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, + nrows_dst, item_ct1, + tile_x_ql_q4_K_acc_ct1.get_pointer(), + tile_x_dm_q4_K_acc_ct1.get_pointer(), + tile_x_sc_q4_K_acc_ct1.get_pointer(), + tile_y_qs_acc_ct1.get_pointer(), + tile_y_ds_acc_ct1.get_pointer()); + }); + }); + } + } +} +catch (sycl::exception const &exc) { + std::cerr << exc.what() << "Exception caught at file:" << __FILE__ + << ", line:" << __LINE__ << std::endl; + std::exit(1); +} + +static void ggml_mul_mat_q5_K_q8_1_sycl(const void *vx, const void *vy, + float *dst, const int ncols_x, + const int nrows_x, const int ncols_y, + const int nrows_y, const int nrows_dst, + dpct::queue_ptr stream) try { + + int id; + SYCL_CHECK( + CHECK_TRY_ERROR(id = get_current_device_id())); + const int compute_capability = ggml_sycl_info().devices[id].cc; + + int mmq_x, mmq_y, nwarps; + if (compute_capability >= VER_GEN13) { + mmq_x = MMQ_X_Q5_K_RDNA2; + mmq_y = MMQ_Y_Q5_K_RDNA2; + nwarps = NWARPS_Q5_K_RDNA2; + } else if (compute_capability >= VER_GEN12) { + mmq_x = MMQ_X_Q5_K_RDNA1; + mmq_y = MMQ_Y_Q5_K_RDNA1; + nwarps = NWARPS_Q5_K_RDNA1; + } else if (compute_capability >= VER_GEN9) { + mmq_x = MMQ_X_Q5_K_AMPERE; + mmq_y = MMQ_Y_Q5_K_AMPERE; + nwarps = NWARPS_Q5_K_AMPERE; + } else if (compute_capability >= VER_4VEC) { + mmq_x = MMQ_X_Q5_K_PASCAL; + mmq_y = MMQ_Y_Q5_K_PASCAL; + nwarps = NWARPS_Q5_K_PASCAL; + } else { + GGML_ASSERT(false); + } + + const int block_num_x = (nrows_x + mmq_y - 1) / mmq_y; + const int block_num_y = (ncols_y + mmq_x - 1) / mmq_x; + const sycl::range<3> block_nums(1, block_num_y, block_num_x); + const sycl::range<3> block_dims(1, nwarps, WARP_SIZE); + + if (nrows_x % mmq_y == 0) { + const bool need_check = false; + /* + DPCT1049:36: The work-group size passed to the SYCL kernel may exceed + the limit. To get the device limit, query + info::device::max_work_group_size. Adjust the work-group size if needed. + */ + { + dpct::has_capability_or_fail(stream->get_device(), + {sycl::aspect::fp16}); + + stream->submit([&](sycl::handler &cgh) { + sycl::local_accessor tile_x_ql_q5_K_acc_ct1( + sycl::range<1>(mmq_y * (2 * WARP_SIZE) + mmq_y), cgh); + sycl::local_accessor tile_x_dm_q5_K_acc_ct1( + sycl::range<1>(mmq_y * (WARP_SIZE / QI5_K) + mmq_y / QI5_K), + cgh); + sycl::local_accessor tile_x_sc_q5_K_acc_ct1( + sycl::range<1>(mmq_y * (WARP_SIZE / 8) + mmq_y / 8), cgh); + sycl::local_accessor tile_y_qs_acc_ct1( + sycl::range<1>(mmq_x * WARP_SIZE), cgh); + sycl::local_accessor tile_y_ds_acc_ct1( + sycl::range<1>(mmq_x * WARP_SIZE / QI8_1), cgh); + + cgh.parallel_for( + sycl::nd_range<3>(block_nums * block_dims, block_dims), + [=](sycl::nd_item<3> item_ct1) { + mul_mat_q5_K( + vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, + nrows_dst, item_ct1, + tile_x_ql_q5_K_acc_ct1.get_pointer(), + tile_x_dm_q5_K_acc_ct1.get_pointer(), + tile_x_sc_q5_K_acc_ct1.get_pointer(), + tile_y_qs_acc_ct1.get_pointer(), + tile_y_ds_acc_ct1.get_pointer()); + }); + }); + } + } else { + const bool need_check = true; + /* + DPCT1049:37: The work-group size passed to the SYCL kernel may exceed + the limit. To get the device limit, query + info::device::max_work_group_size. Adjust the work-group size if needed. + */ + { + dpct::has_capability_or_fail(stream->get_device(), + {sycl::aspect::fp16}); + + stream->submit([&](sycl::handler &cgh) { + sycl::local_accessor tile_x_ql_q5_K_acc_ct1( + sycl::range<1>(mmq_y * (2 * WARP_SIZE) + mmq_y), cgh); + sycl::local_accessor tile_x_dm_q5_K_acc_ct1( + sycl::range<1>(mmq_y * (WARP_SIZE / QI5_K) + mmq_y / QI5_K), + cgh); + sycl::local_accessor tile_x_sc_q5_K_acc_ct1( + sycl::range<1>(mmq_y * (WARP_SIZE / 8) + mmq_y / 8), cgh); + sycl::local_accessor tile_y_qs_acc_ct1( + sycl::range<1>(mmq_x * WARP_SIZE), cgh); + sycl::local_accessor tile_y_ds_acc_ct1( + sycl::range<1>(mmq_x * WARP_SIZE / QI8_1), cgh); + + cgh.parallel_for( + sycl::nd_range<3>(block_nums * block_dims, block_dims), + [=](sycl::nd_item<3> item_ct1) { + mul_mat_q5_K( + vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, + nrows_dst, item_ct1, + tile_x_ql_q5_K_acc_ct1.get_pointer(), + tile_x_dm_q5_K_acc_ct1.get_pointer(), + tile_x_sc_q5_K_acc_ct1.get_pointer(), + tile_y_qs_acc_ct1.get_pointer(), + tile_y_ds_acc_ct1.get_pointer()); + }); + }); + } + } +} +catch (sycl::exception const &exc) { + std::cerr << exc.what() << "Exception caught at file:" << __FILE__ + << ", line:" << __LINE__ << std::endl; + std::exit(1); +} + +static void ggml_mul_mat_q6_K_q8_1_sycl(const void *vx, const void *vy, + float *dst, const int ncols_x, + const int nrows_x, const int ncols_y, + const int nrows_y, const int nrows_dst, + dpct::queue_ptr stream) try { + + int id; + SYCL_CHECK( + CHECK_TRY_ERROR(id = get_current_device_id())); + const int compute_capability = ggml_sycl_info().devices[id].cc; + + int mmq_x, mmq_y, nwarps; + if (compute_capability >= VER_GEN13) { + mmq_x = MMQ_X_Q6_K_RDNA2; + mmq_y = MMQ_Y_Q6_K_RDNA2; + nwarps = NWARPS_Q6_K_RDNA2; + } else if (compute_capability >= VER_GEN12) { + mmq_x = MMQ_X_Q6_K_RDNA1; + mmq_y = MMQ_Y_Q6_K_RDNA1; + nwarps = NWARPS_Q6_K_RDNA1; + } else if (compute_capability >= VER_GEN9) { + mmq_x = MMQ_X_Q6_K_AMPERE; + mmq_y = MMQ_Y_Q6_K_AMPERE; + nwarps = NWARPS_Q6_K_AMPERE; + } else if (compute_capability >= VER_4VEC) { + mmq_x = MMQ_X_Q6_K_PASCAL; + mmq_y = MMQ_Y_Q6_K_PASCAL; + nwarps = NWARPS_Q6_K_PASCAL; + } else { + GGML_ASSERT(false); + } + + const int block_num_x = (nrows_x + mmq_y - 1) / mmq_y; + const int block_num_y = (ncols_y + mmq_x - 1) / mmq_x; + const sycl::range<3> block_nums(1, block_num_y, block_num_x); + const sycl::range<3> block_dims(1, nwarps, WARP_SIZE); + + if (nrows_x % mmq_y == 0) { + const bool need_check = false; + /* + DPCT1049:38: The work-group size passed to the SYCL kernel may exceed + the limit. To get the device limit, query + info::device::max_work_group_size. Adjust the work-group size if needed. + */ + { + dpct::has_capability_or_fail(stream->get_device(), + {sycl::aspect::fp16}); + + stream->submit([&](sycl::handler &cgh) { + sycl::local_accessor tile_x_ql_acc_ct1( + sycl::range<1>(mmq_y * (2 * WARP_SIZE) + mmq_y), cgh); + sycl::local_accessor tile_x_dm_acc_ct1( + sycl::range<1>(mmq_y * (WARP_SIZE / QI6_K) + mmq_y / QI6_K), + cgh); + sycl::local_accessor tile_x_sc_acc_ct1( + sycl::range<1>(mmq_y * (WARP_SIZE / 8) + mmq_y / 8), cgh); + sycl::local_accessor tile_y_qs_acc_ct1( + sycl::range<1>(mmq_x * WARP_SIZE), cgh); + sycl::local_accessor tile_y_ds_acc_ct1( + sycl::range<1>(mmq_x * WARP_SIZE / QI8_1), cgh); + + cgh.parallel_for( + sycl::nd_range<3>(block_nums * block_dims, block_dims), + [=](sycl::nd_item<3> item_ct1) { + mul_mat_q6_K( + vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, + nrows_dst, item_ct1, + tile_x_ql_acc_ct1.get_pointer(), + tile_x_dm_acc_ct1.get_pointer(), + tile_x_sc_acc_ct1.get_pointer(), + tile_y_qs_acc_ct1.get_pointer(), + tile_y_ds_acc_ct1.get_pointer()); + }); + }); + } + } else { + const bool need_check = true; + /* + DPCT1049:39: The work-group size passed to the SYCL kernel may exceed + the limit. To get the device limit, query + info::device::max_work_group_size. Adjust the work-group size if needed. + */ + { + dpct::has_capability_or_fail(stream->get_device(), + {sycl::aspect::fp16}); + + stream->submit([&](sycl::handler &cgh) { + sycl::local_accessor tile_x_ql_acc_ct1( + sycl::range<1>(mmq_y * (2 * WARP_SIZE) + mmq_y), cgh); + sycl::local_accessor tile_x_dm_acc_ct1( + sycl::range<1>(mmq_y * (WARP_SIZE / QI6_K) + mmq_y / QI6_K), + cgh); + sycl::local_accessor tile_x_sc_acc_ct1( + sycl::range<1>(mmq_y * (WARP_SIZE / 8) + mmq_y / 8), cgh); + sycl::local_accessor tile_y_qs_acc_ct1( + sycl::range<1>(mmq_x * WARP_SIZE), cgh); + sycl::local_accessor tile_y_ds_acc_ct1( + sycl::range<1>(mmq_x * WARP_SIZE / QI8_1), cgh); + + cgh.parallel_for( + sycl::nd_range<3>(block_nums * block_dims, block_dims), + [=](sycl::nd_item<3> item_ct1) { + mul_mat_q6_K( + vx, vy, dst, ncols_x, nrows_x, ncols_y, nrows_y, + nrows_dst, item_ct1, + tile_x_ql_acc_ct1.get_pointer(), + tile_x_dm_acc_ct1.get_pointer(), + tile_x_sc_acc_ct1.get_pointer(), + tile_y_qs_acc_ct1.get_pointer(), + tile_y_ds_acc_ct1.get_pointer()); + }); + }); + } + } +} +catch (sycl::exception const &exc) { + std::cerr << exc.what() << "Exception caught at file:" << __FILE__ + << ", line:" << __LINE__ << std::endl; + std::exit(1); +} + +void ggml_sycl_op_mul_mat_q( + ggml_backend_sycl_context & ctx, + const ggml_tensor *src0, const ggml_tensor *src1, ggml_tensor *dst, + const char *src0_dd_i, const float *src1_ddf_i, const char *src1_ddq_i, + float *dst_dd_i, const int64_t row_low, const int64_t row_high, + const int64_t src1_ncols, const int64_t src1_padded_row_size, + const dpct::queue_ptr &stream) try { + + const int64_t ne00 = src0->ne[0]; + + const int64_t ne10 = src1->ne[0]; + GGML_ASSERT(ne10 % QK8_1 == 0); + + const int64_t ne0 = dst->ne[0]; + + const int64_t row_diff = row_high - row_low; + + int device_id; + SYCL_CHECK( + CHECK_TRY_ERROR(device_id = get_current_device_id())); + + // the main device has a larger memory buffer to hold the results from all GPUs + // nrows_dst == nrows of the matrix that the dequantize_mul_mat kernel writes into + const int64_t nrows_dst = device_id == ctx.device ? ne0 : row_diff; + + switch (src0->type) { + case GGML_TYPE_Q4_0: + ggml_mul_mat_q4_0_q8_1_sycl(src0_dd_i, src1_ddq_i, dst_dd_i, ne00, row_diff, src1_ncols, src1_padded_row_size, nrows_dst, stream); + break; + case GGML_TYPE_Q4_1: + ggml_mul_mat_q4_1_q8_1_sycl(src0_dd_i, src1_ddq_i, dst_dd_i, ne00, row_diff, src1_ncols, src1_padded_row_size, nrows_dst, stream); + break; + case GGML_TYPE_Q5_0: + ggml_mul_mat_q5_0_q8_1_sycl(src0_dd_i, src1_ddq_i, dst_dd_i, ne00, row_diff, src1_ncols, src1_padded_row_size, nrows_dst, stream); + break; + case GGML_TYPE_Q5_1: + ggml_mul_mat_q5_1_q8_1_sycl(src0_dd_i, src1_ddq_i, dst_dd_i, ne00, row_diff, src1_ncols, src1_padded_row_size, nrows_dst, stream); + break; + case GGML_TYPE_Q8_0: + ggml_mul_mat_q8_0_q8_1_sycl(src0_dd_i, src1_ddq_i, dst_dd_i, ne00, row_diff, src1_ncols, src1_padded_row_size, nrows_dst, stream); + break; + case GGML_TYPE_Q2_K: + ggml_mul_mat_q2_K_q8_1_sycl(src0_dd_i, src1_ddq_i, dst_dd_i, ne00, row_diff, src1_ncols, src1_padded_row_size, nrows_dst, stream); + break; + case GGML_TYPE_Q3_K: + ggml_mul_mat_q3_K_q8_1_sycl(src0_dd_i, src1_ddq_i, dst_dd_i, ne00, row_diff, src1_ncols, src1_padded_row_size, nrows_dst, stream); + break; + case GGML_TYPE_Q4_K: + ggml_mul_mat_q4_K_q8_1_sycl(src0_dd_i, src1_ddq_i, dst_dd_i, ne00, row_diff, src1_ncols, src1_padded_row_size, nrows_dst, stream); + break; + case GGML_TYPE_Q5_K: + ggml_mul_mat_q5_K_q8_1_sycl(src0_dd_i, src1_ddq_i, dst_dd_i, ne00, row_diff, src1_ncols, src1_padded_row_size, nrows_dst, stream); + break; + case GGML_TYPE_Q6_K: + ggml_mul_mat_q6_K_q8_1_sycl(src0_dd_i, src1_ddq_i, dst_dd_i, ne00, row_diff, src1_ncols, src1_padded_row_size, nrows_dst, stream); + break; + default: + GGML_ASSERT(false); + break; + } + + (void) src1; + (void) dst; + (void) src1_ddf_i; +} +catch (sycl::exception const &exc) { + std::cerr << exc.what() << "Exception caught at file:" << __FILE__ + << ", line:" << __LINE__ << std::endl; + std::exit(1); +} diff --git a/ggml-sycl/mmq.hpp b/ggml-sycl/mmq.hpp new file mode 100644 index 0000000000000..3f5297aaa5373 --- /dev/null +++ b/ggml-sycl/mmq.hpp @@ -0,0 +1,33 @@ +// +// MIT license +// Copyright (C) 2024 Intel Corporation +// SPDX-License-Identifier: MIT +// + +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// + +#ifndef GGML_SYCL_MMQ_HPP +#define GGML_SYCL_MMQ_HPP + +#include "common.hpp" + +void ggml_sycl_op_mul_mat_q( + ggml_backend_sycl_context & ctx, + const ggml_tensor* src0, + const ggml_tensor* src1, + ggml_tensor* dst, + const char* src0_dd_i, + const float* src1_ddf_i, + const char* src1_ddq_i, + float* dst_dd_i, + const int64_t row_low, + const int64_t row_high, + const int64_t src1_ncols, + const int64_t src1_padded_row_size, + const dpct::queue_ptr& stream); + +#endif // GGML_SYCL_MMQ_HPP diff --git a/ggml-sycl/mmvq.cpp b/ggml-sycl/mmvq.cpp new file mode 100644 index 0000000000000..23227649e2661 --- /dev/null +++ b/ggml-sycl/mmvq.cpp @@ -0,0 +1,1024 @@ +#include "mmvq.hpp" +#include "vecdotq.hpp" + + +template +static void mul_mat_vec_q(const void * __restrict__ vx, const void * __restrict__ vy, float * __restrict__ dst, const int ncols, const int nrows, + const sycl::nd_item<3> &item_ct1) { + const int row = item_ct1.get_group(2) * item_ct1.get_local_range(1) + + item_ct1.get_local_id(1); + + if (row >= nrows) { + return; + } + + const int blocks_per_row = ncols / qk; + const int blocks_per_warp = vdr * WARP_SIZE / qi; + +// partial sum for each thread + float tmp = 0.0f; + + const block_q_t * x = (const block_q_t *) vx; + const block_q8_1 * y = (const block_q8_1 *) vy; + + for (int i = item_ct1.get_local_id(2) / (qi / vdr); i < blocks_per_row; + i += blocks_per_warp) { + const int ibx = row*blocks_per_row + i; // x block index + + const int iby = i * (qk/QK8_1); // y block index that aligns with ibx + + const int iqs = + vdr * + (item_ct1.get_local_id(2) % + (qi / vdr)); // x block quant index when casting the quants to int + + tmp += vec_dot_q_sycl(&x[ibx], &y[iby], iqs); + } + + // sum up partial sums and write back result +#pragma unroll + for (int mask = 16; mask > 0; mask >>= 1) { + tmp += + dpct::permute_sub_group_by_xor(item_ct1.get_sub_group(), tmp, mask); + } + + if (item_ct1.get_local_id(2) == 0) { + dst[row] = tmp; + } +} + +template +static void mul_mat_vec_q_iq2_xxs_q8_1(const void *__restrict__ vx, + const void *__restrict__ vy, + float *__restrict__ dst, const int ncols, + const int nrows, + const sycl::nd_item<3> &item_ct1) { + const int row = item_ct1.get_group(2) * item_ct1.get_local_range(1) + + item_ct1.get_local_id(1); + + if (row >= nrows) { + return; + } + + const int blocks_per_row = ncols / qk; + const int blocks_per_warp = vdr * WARP_SIZE / qi; + +// partial sum for each thread + float tmp = 0.0f; + + const block_q_t * x = (const block_q_t *) vx; + const block_q8_1 * y = (const block_q8_1 *) vy; + + for (int i = item_ct1.get_local_id(2) / (qi / vdr); i < blocks_per_row; + i += blocks_per_warp) { + const int ibx = row*blocks_per_row + i; // x block index + + const int iby = i * (qk/QK8_1); // y block index that aligns with ibx + + const int iqs = + vdr * + (item_ct1.get_local_id(2) % + (qi / vdr)); // x block quant index when casting the quants to int + + tmp += vec_dot_iq2_xxs_q8_1(&x[ibx], &y[iby], iqs, iq2xxs_grid, ksigns_iq2xs, kmask_iq2xs); + } + + // sum up partial sums and write back result +#pragma unroll + for (int mask = 16; mask > 0; mask >>= 1) { + tmp += + dpct::permute_sub_group_by_xor(item_ct1.get_sub_group(), tmp, mask); + } + + if (item_ct1.get_local_id(2) == 0) { + dst[row] = tmp; + } +} + +template +static void mul_mat_vec_q_iq2_xs_q8_1(const void *__restrict__ vx, + const void *__restrict__ vy, + float *__restrict__ dst, const int ncols, + const int nrows, + const sycl::nd_item<3> &item_ct1) { + const int row = item_ct1.get_group(2) * item_ct1.get_local_range(1) + + item_ct1.get_local_id(1); + + if (row >= nrows) { + return; + } + + const int blocks_per_row = ncols / qk; + const int blocks_per_warp = vdr * WARP_SIZE / qi; + +// partial sum for each thread + float tmp = 0.0f; + + const block_q_t * x = (const block_q_t *) vx; + const block_q8_1 * y = (const block_q8_1 *) vy; + + for (int i = item_ct1.get_local_id(2) / (qi / vdr); i < blocks_per_row; + i += blocks_per_warp) { + const int ibx = row*blocks_per_row + i; // x block index + + const int iby = i * (qk/QK8_1); // y block index that aligns with ibx + + const int iqs = + vdr * + (item_ct1.get_local_id(2) % + (qi / vdr)); // x block quant index when casting the quants to int + + tmp += vec_dot_iq2_xs_q8_1(&x[ibx], &y[iby], iqs, iq2xs_grid, ksigns64); + } + + // sum up partial sums and write back result +#pragma unroll + for (int mask = 16; mask > 0; mask >>= 1) { + tmp += + dpct::permute_sub_group_by_xor(item_ct1.get_sub_group(), tmp, mask); + } + + if (item_ct1.get_local_id(2) == 0) { + dst[row] = tmp; + } +} + +template +static void mul_mat_vec_q_iq2_s_q8_1(const void *__restrict__ vx, + const void *__restrict__ vy, + float *__restrict__ dst, const int ncols, + const int nrows, + const sycl::nd_item<3> &item_ct1) { + const int row = item_ct1.get_group(2) * item_ct1.get_local_range(1) + + item_ct1.get_local_id(1); + + if (row >= nrows) { + return; + } + + const int blocks_per_row = ncols / qk; + const int blocks_per_warp = vdr * WARP_SIZE / qi; + +// partial sum for each thread + float tmp = 0.0f; + + const block_q_t * x = (const block_q_t *) vx; + const block_q8_1 * y = (const block_q8_1 *) vy; + + for (int i = item_ct1.get_local_id(2) / (qi / vdr); i < blocks_per_row; + i += blocks_per_warp) { + const int ibx = row*blocks_per_row + i; // x block index + + const int iby = i * (qk/QK8_1); // y block index that aligns with ibx + + const int iqs = + vdr * + (item_ct1.get_local_id(2) % + (qi / vdr)); // x block quant index when casting the quants to int + + tmp += vec_dot_iq2_s_q8_1(&x[ibx], &y[iby], iqs); + } + + // sum up partial sums and write back result +#pragma unroll + for (int mask = 16; mask > 0; mask >>= 1) { + tmp += + dpct::permute_sub_group_by_xor(item_ct1.get_sub_group(), tmp, mask); + } + + if (item_ct1.get_local_id(2) == 0) { + dst[row] = tmp; + } +} + +template +static void mul_mat_vec_q_iq3_xxs_q8_1(const void *__restrict__ vx, + const void *__restrict__ vy, + float *__restrict__ dst, const int ncols, + const int nrows, + const sycl::nd_item<3> &item_ct1) { + const int row = item_ct1.get_group(2) * item_ct1.get_local_range(1) + + item_ct1.get_local_id(1); + + if (row >= nrows) { + return; + } + + const int blocks_per_row = ncols / qk; + const int blocks_per_warp = vdr * WARP_SIZE / qi; + +// partial sum for each thread + float tmp = 0.0f; + + const block_q_t * x = (const block_q_t *) vx; + const block_q8_1 * y = (const block_q8_1 *) vy; + + for (int i = item_ct1.get_local_id(2) / (qi / vdr); i < blocks_per_row; + i += blocks_per_warp) { + const int ibx = row*blocks_per_row + i; // x block index + + const int iby = i * (qk/QK8_1); // y block index that aligns with ibx + + const int iqs = + vdr * + (item_ct1.get_local_id(2) % + (qi / vdr)); // x block quant index when casting the quants to int + + tmp += vec_dot_iq3_xxs_q8_1(&x[ibx], &y[iby], iqs, iq3xxs_grid, ksigns64); + } + + // sum up partial sums and write back result +#pragma unroll + for (int mask = 16; mask > 0; mask >>= 1) { + tmp += + dpct::permute_sub_group_by_xor(item_ct1.get_sub_group(), tmp, mask); + } + + if (item_ct1.get_local_id(2) == 0) { + dst[row] = tmp; + } +} + +template +static void mul_mat_vec_q_iq3_s_q8_1(const void *__restrict__ vx, + const void *__restrict__ vy, + float *__restrict__ dst, const int ncols, + const int nrows, + const sycl::nd_item<3> &item_ct1) { + const int row = item_ct1.get_group(2) * item_ct1.get_local_range(1) + + item_ct1.get_local_id(1); + + if (row >= nrows) { + return; + } + + const int blocks_per_row = ncols / qk; + const int blocks_per_warp = vdr * WARP_SIZE / qi; + +// partial sum for each thread + float tmp = 0.0f; + + const block_q_t * x = (const block_q_t *) vx; + const block_q8_1 * y = (const block_q8_1 *) vy; + + for (int i = item_ct1.get_local_id(2) / (qi / vdr); i < blocks_per_row; + i += blocks_per_warp) { + const int ibx = row*blocks_per_row + i; // x block index + + const int iby = i * (qk/QK8_1); // y block index that aligns with ibx + + const int iqs = + vdr * + (item_ct1.get_local_id(2) % + (qi / vdr)); // x block quant index when casting the quants to int + + tmp += vec_dot_iq3_s_q8_1(&x[ibx], &y[iby], iqs, iq3s_grid); + } + + // sum up partial sums and write back result +#pragma unroll + for (int mask = 16; mask > 0; mask >>= 1) { + tmp += + dpct::permute_sub_group_by_xor(item_ct1.get_sub_group(), tmp, mask); + } + + if (item_ct1.get_local_id(2) == 0) { + dst[row] = tmp; + } +} + +template +static void mul_mat_vec_q_iq1_s_q8_1(const void *__restrict__ vx, + const void *__restrict__ vy, + float *__restrict__ dst, const int ncols, + const int nrows, + const sycl::nd_item<3> &item_ct1) { + const int row = item_ct1.get_group(2) * item_ct1.get_local_range(1) + + item_ct1.get_local_id(1); + + if (row >= nrows) { + return; + } + + const int blocks_per_row = ncols / qk; + const int blocks_per_warp = vdr * WARP_SIZE / qi; + +// partial sum for each thread + float tmp = 0.0f; + + const block_q_t * x = (const block_q_t *) vx; + const block_q8_1 * y = (const block_q8_1 *) vy; + + for (int i = item_ct1.get_local_id(2) / (qi / vdr); i < blocks_per_row; + i += blocks_per_warp) { + const int ibx = row*blocks_per_row + i; // x block index + + const int iby = i * (qk/QK8_1); // y block index that aligns with ibx + + const int iqs = + vdr * + (item_ct1.get_local_id(2) % + (qi / vdr)); // x block quant index when casting the quants to int + + tmp += vec_dot_iq1_s_q8_1(&x[ibx], &y[iby], iqs, iq1s_grid_gpu); + } + + // sum up partial sums and write back result +#pragma unroll + for (int mask = 16; mask > 0; mask >>= 1) { + tmp += + dpct::permute_sub_group_by_xor(item_ct1.get_sub_group(), tmp, mask); + } + + if (item_ct1.get_local_id(2) == 0) { + dst[row] = tmp; + } +} + +template +static void mul_mat_vec_q_iq1_m_q8_1(const void *__restrict__ vx, + const void *__restrict__ vy, + float *__restrict__ dst, const int ncols, + const int nrows, + const sycl::nd_item<3> &item_ct1) { + const int row = item_ct1.get_group(2) * item_ct1.get_local_range(1) + + item_ct1.get_local_id(1); + + if (row >= nrows) { + return; + } + + const int blocks_per_row = ncols / qk; + const int blocks_per_warp = vdr * WARP_SIZE / qi; + +// partial sum for each thread + float tmp = 0.0f; + + const block_q_t * x = (const block_q_t *) vx; + const block_q8_1 * y = (const block_q8_1 *) vy; + + for (int i = item_ct1.get_local_id(2) / (qi / vdr); i < blocks_per_row; + i += blocks_per_warp) { + const int ibx = row*blocks_per_row + i; // x block index + + const int iby = i * (qk/QK8_1); // y block index that aligns with ibx + + const int iqs = + vdr * + (item_ct1.get_local_id(2) % + (qi / vdr)); // x block quant index when casting the quants to int + + tmp += vec_dot_iq1_m_q8_1(&x[ibx], &y[iby], iqs); + } + + // sum up partial sums and write back result +#pragma unroll + for (int mask = 16; mask > 0; mask >>= 1) { + tmp += + dpct::permute_sub_group_by_xor(item_ct1.get_sub_group(), tmp, mask); + } + + if (item_ct1.get_local_id(2) == 0) { + dst[row] = tmp; + } +} + +template +static void mul_mat_vec_q_iq4_nl_q8_1(const void *__restrict__ vx, + const void *__restrict__ vy, + float *__restrict__ dst, const int ncols, + const int nrows, + const sycl::nd_item<3> &item_ct1) { + const int row = item_ct1.get_group(2) * item_ct1.get_local_range(1) + + item_ct1.get_local_id(1); + + if (row >= nrows) { + return; + } + + const int blocks_per_row = ncols / qk; + const int blocks_per_warp = vdr * WARP_SIZE / qi; + +// partial sum for each thread + float tmp = 0.0f; + + const block_q_t * x = (const block_q_t *) vx; + const block_q8_1 * y = (const block_q8_1 *) vy; + + for (int i = item_ct1.get_local_id(2) / (qi / vdr); i < blocks_per_row; + i += blocks_per_warp) { + const int ibx = row*blocks_per_row + i; // x block index + + const int iby = i * (qk/QK8_1); // y block index that aligns with ibx + + const int iqs = + vdr * + (item_ct1.get_local_id(2) % + (qi / vdr)); // x block quant index when casting the quants to int + + tmp += vec_dot_iq4_nl_q8_1(&x[ibx], &y[iby], iqs); + } + + // sum up partial sums and write back result +#pragma unroll + for (int mask = 16; mask > 0; mask >>= 1) { + tmp += + dpct::permute_sub_group_by_xor(item_ct1.get_sub_group(), tmp, mask); + } + + if (item_ct1.get_local_id(2) == 0) { + dst[row] = tmp; + } +} + + +template +static void mul_mat_vec_q_iq4_xs_q8_1(const void *__restrict__ vx, + const void *__restrict__ vy, + float *__restrict__ dst, const int ncols, + const int nrows, + const sycl::nd_item<3> &item_ct1) { + const int row = item_ct1.get_group(2) * item_ct1.get_local_range(1) + + item_ct1.get_local_id(1); + + if (row >= nrows) { + return; + } + + const int blocks_per_row = ncols / qk; + const int blocks_per_warp = vdr * WARP_SIZE / qi; + +// partial sum for each thread + float tmp = 0.0f; + + const block_q_t * x = (const block_q_t *) vx; + const block_q8_1 * y = (const block_q8_1 *) vy; + + for (int i = item_ct1.get_local_id(2) / (qi / vdr); i < blocks_per_row; + i += blocks_per_warp) { + const int ibx = row*blocks_per_row + i; // x block index + + const int iby = i * (qk/QK8_1); // y block index that aligns with ibx + + const int iqs = + vdr * + (item_ct1.get_local_id(2) % + (qi / vdr)); // x block quant index when casting the quants to int + + tmp += vec_dot_iq4_xs_q8_1(&x[ibx], &y[iby], iqs); + } + + // sum up partial sums and write back result +#pragma unroll + for (int mask = 16; mask > 0; mask >>= 1) { + tmp += + dpct::permute_sub_group_by_xor(item_ct1.get_sub_group(), tmp, mask); + } + + if (item_ct1.get_local_id(2) == 0) { + dst[row] = tmp; + } +} + +static void mul_mat_vec_q4_0_q8_1_sycl(const void *vx, const void *vy, + float *dst, const int ncols, + const int nrows, + dpct::queue_ptr stream) { + GGML_ASSERT(ncols % QK4_0 == 0); + const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y; + const sycl::range<3> block_nums(1, 1, block_num_y); + const sycl::range<3> block_dims(1, GGML_SYCL_MMV_Y, WARP_SIZE); + { + + stream->submit([&](sycl::handler &cgh) { + + cgh.parallel_for( + sycl::nd_range<3>(block_nums * block_dims, block_dims), + [=](sycl::nd_item<3> item_ct1) + [[intel::reqd_sub_group_size(32)]] { + mul_mat_vec_q( + vx, vy, dst, ncols, nrows, item_ct1); + }); + }); + } +} + +static void mul_mat_vec_q4_1_q8_1_sycl(const void *vx, const void *vy, + float *dst, const int ncols, + const int nrows, + dpct::queue_ptr stream) { + GGML_ASSERT(ncols % QK4_1 == 0); + const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y; + const sycl::range<3> block_nums(1, 1, block_num_y); + const sycl::range<3> block_dims(1, GGML_SYCL_MMV_Y, WARP_SIZE); + { + + stream->submit([&](sycl::handler &cgh) { + + cgh.parallel_for( + sycl::nd_range<3>(block_nums * block_dims, block_dims), + [=](sycl::nd_item<3> item_ct1) + [[intel::reqd_sub_group_size(32)]] { + mul_mat_vec_q( + vx, vy, dst, ncols, nrows, item_ct1); + }); + }); + } +} + +static void mul_mat_vec_q5_0_q8_1_sycl(const void *vx, const void *vy, + float *dst, const int ncols, + const int nrows, + dpct::queue_ptr stream) { + GGML_ASSERT(ncols % QK5_0 == 0); + const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y; + const sycl::range<3> block_nums(1, 1, block_num_y); + const sycl::range<3> block_dims(1, GGML_SYCL_MMV_Y, WARP_SIZE); + { + + stream->submit([&](sycl::handler &cgh) { + + cgh.parallel_for( + sycl::nd_range<3>(block_nums * block_dims, block_dims), + [=](sycl::nd_item<3> item_ct1) + [[intel::reqd_sub_group_size(32)]] { + mul_mat_vec_q( + vx, vy, dst, ncols, nrows, item_ct1); + }); + }); + } +} + +static void mul_mat_vec_q5_1_q8_1_sycl(const void *vx, const void *vy, + float *dst, const int ncols, + const int nrows, + dpct::queue_ptr stream) { + GGML_ASSERT(ncols % QK5_1 == 0); + const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y; + const sycl::range<3> block_nums(1, 1, block_num_y); + const sycl::range<3> block_dims(1, GGML_SYCL_MMV_Y, WARP_SIZE); + { + + stream->submit([&](sycl::handler &cgh) { + + cgh.parallel_for( + sycl::nd_range<3>(block_nums * block_dims, block_dims), + [=](sycl::nd_item<3> item_ct1) + [[intel::reqd_sub_group_size(32)]] { + mul_mat_vec_q( + vx, vy, dst, ncols, nrows, item_ct1); + }); + }); + } +} + +static void mul_mat_vec_q8_0_q8_1_sycl(const void *vx, const void *vy, + float *dst, const int ncols, + const int nrows, + dpct::queue_ptr stream) { + GGML_ASSERT(ncols % QK8_0 == 0); + const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y; + const sycl::range<3> block_nums(1, 1, block_num_y); + const sycl::range<3> block_dims(1, GGML_SYCL_MMV_Y, WARP_SIZE); + { + + stream->submit([&](sycl::handler &cgh) { + + cgh.parallel_for( + sycl::nd_range<3>(block_nums * block_dims, block_dims), + [=](sycl::nd_item<3> item_ct1) + [[intel::reqd_sub_group_size(32)]] { + mul_mat_vec_q( + vx, vy, dst, ncols, nrows, item_ct1); + }); + }); + } +} + +static void mul_mat_vec_q2_K_q8_1_sycl(const void *vx, const void *vy, + float *dst, const int ncols, + const int nrows, + dpct::queue_ptr stream) { + GGML_ASSERT(ncols % QK_K == 0); + const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y; + const sycl::range<3> block_nums(1, 1, block_num_y); + const sycl::range<3> block_dims(1, GGML_SYCL_MMV_Y, WARP_SIZE); + { + + stream->submit([&](sycl::handler &cgh) { + + cgh.parallel_for( + sycl::nd_range<3>(block_nums * block_dims, block_dims), + [=](sycl::nd_item<3> item_ct1) + [[intel::reqd_sub_group_size(32)]] { + mul_mat_vec_q( + vx, vy, dst, ncols, nrows, item_ct1); + }); + }); + } +} + +static void mul_mat_vec_q3_K_q8_1_sycl(const void *vx, const void *vy, + float *dst, const int ncols, + const int nrows, + dpct::queue_ptr stream) { + GGML_ASSERT(ncols % QK_K == 0); + const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y; + const sycl::range<3> block_nums(1, 1, block_num_y); + const sycl::range<3> block_dims(1, GGML_SYCL_MMV_Y, WARP_SIZE); + { + + stream->submit([&](sycl::handler &cgh) { + + cgh.parallel_for( + sycl::nd_range<3>(block_nums * block_dims, block_dims), + [=](sycl::nd_item<3> item_ct1) + [[intel::reqd_sub_group_size(32)]] { + mul_mat_vec_q( + vx, vy, dst, ncols, nrows, item_ct1); + }); + }); + } +} + +static void mul_mat_vec_q4_K_q8_1_sycl(const void *vx, const void *vy, + float *dst, const int ncols, + const int nrows, + dpct::queue_ptr stream) { + GGML_ASSERT(ncols % QK_K == 0); + const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y; + const sycl::range<3> block_nums(1, 1, block_num_y); + const sycl::range<3> block_dims(1, GGML_SYCL_MMV_Y, WARP_SIZE); + { + + stream->submit([&](sycl::handler &cgh) { + + cgh.parallel_for( + sycl::nd_range<3>(block_nums * block_dims, block_dims), + [=](sycl::nd_item<3> item_ct1) + [[intel::reqd_sub_group_size(32)]] { + mul_mat_vec_q( + vx, vy, dst, ncols, nrows, item_ct1); + }); + }); + } +} + +static void mul_mat_vec_q5_K_q8_1_sycl(const void *vx, const void *vy, + float *dst, const int ncols, + const int nrows, + dpct::queue_ptr stream) { + GGML_ASSERT(ncols % QK_K == 0); + const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y; + const sycl::range<3> block_nums(1, 1, block_num_y); + const sycl::range<3> block_dims(1, GGML_SYCL_MMV_Y, WARP_SIZE); + { + + stream->submit([&](sycl::handler &cgh) { + + cgh.parallel_for( + sycl::nd_range<3>(block_nums * block_dims, block_dims), + [=](sycl::nd_item<3> item_ct1) + [[intel::reqd_sub_group_size(32)]] { + mul_mat_vec_q( + vx, vy, dst, ncols, nrows, item_ct1); + }); + }); + } +} + +static void mul_mat_vec_q6_K_q8_1_sycl(const void *vx, const void *vy, + float *dst, const int ncols, + const int nrows, + dpct::queue_ptr stream) { + GGML_ASSERT(ncols % QK_K == 0); + const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y; + const sycl::range<3> block_nums(1, 1, block_num_y); + const sycl::range<3> block_dims(1, GGML_SYCL_MMV_Y, WARP_SIZE); + { + + stream->submit([&](sycl::handler &cgh) { + + cgh.parallel_for( + sycl::nd_range<3>(block_nums * block_dims, block_dims), + [=](sycl::nd_item<3> item_ct1) + [[intel::reqd_sub_group_size(32)]] { + mul_mat_vec_q( + vx, vy, dst, ncols, nrows, item_ct1); + }); + }); + } +} + + +static void mul_mat_vec_iq2_xxs_q8_1_sycl(const void *vx, const void *vy, + float *dst, const int ncols, + const int nrows, + dpct::queue_ptr stream) { + GGML_ASSERT(ncols % QK_K == 0); + const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y; + const sycl::range<3> block_nums(1, 1, block_num_y); + const sycl::range<3> block_dims(1, GGML_SYCL_MMV_Y, WARP_SIZE); + { + stream->submit([&](sycl::handler &cgh) { + cgh.parallel_for( + sycl::nd_range<3>(block_nums * block_dims, block_dims), + [=](sycl::nd_item<3> item_ct1) + [[intel::reqd_sub_group_size(32)]] { + mul_mat_vec_q_iq2_xxs_q8_1( + vx, vy, dst, ncols, nrows, item_ct1); + }); + }); + } +} + +static void mul_mat_vec_iq2_xs_q8_1_sycl(const void *vx, const void *vy, + float *dst, const int ncols, + const int nrows, + dpct::queue_ptr stream) { + GGML_ASSERT(ncols % QK_K == 0); + const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y; + const sycl::range<3> block_nums(1, 1, block_num_y); + const sycl::range<3> block_dims(1, GGML_SYCL_MMV_Y, WARP_SIZE); + { + + stream->submit([&](sycl::handler &cgh) { + auto iq2xs_grid_ptr_ct1 = &iq2xs_grid[0]; + auto ksigns64_ptr_ct1 = &ksigns64[0]; + + cgh.parallel_for( + sycl::nd_range<3>(block_nums * block_dims, block_dims), + [=](sycl::nd_item<3> item_ct1) + [[intel::reqd_sub_group_size(32)]] { + mul_mat_vec_q_iq2_xs_q8_1( + vx, vy, dst, ncols, nrows, item_ct1); + }); + }); + } +} + +static void mul_mat_vec_iq2_s_q8_1_sycl(const void *vx, const void *vy, + float *dst, const int ncols, + const int nrows, + dpct::queue_ptr stream) { + GGML_ASSERT(ncols % QK_K == 0); + const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y; + const sycl::range<3> block_nums(1, 1, block_num_y); + const sycl::range<3> block_dims(1, GGML_SYCL_MMV_Y, WARP_SIZE); + { + + stream->submit([&](sycl::handler &cgh) { + auto iq2xs_grid_ptr_ct1 = &iq2xs_grid[0]; + auto ksigns64_ptr_ct1 = &ksigns64[0]; + + cgh.parallel_for( + sycl::nd_range<3>(block_nums * block_dims, block_dims), + [=](sycl::nd_item<3> item_ct1) + [[intel::reqd_sub_group_size(32)]] { + mul_mat_vec_q_iq2_s_q8_1( + vx, vy, dst, ncols, nrows, item_ct1); + }); + }); + } +} + +static void mul_mat_vec_iq3_xxs_q8_1_sycl(const void *vx, const void *vy, + float *dst, const int ncols, + const int nrows, + dpct::queue_ptr stream) { + GGML_ASSERT(ncols % QK_K == 0); + const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y; + const sycl::range<3> block_nums(1, 1, block_num_y); + const sycl::range<3> block_dims(1, GGML_SYCL_MMV_Y, WARP_SIZE); + { + + stream->submit([&](sycl::handler &cgh) { + auto iq3xxs_grid_ptr_ct1 = &iq3xxs_grid[0]; + auto ksigns64_ptr_ct1 = &ksigns64[0]; + + cgh.parallel_for( + sycl::nd_range<3>(block_nums * block_dims, block_dims), + [=](sycl::nd_item<3> item_ct1) + [[intel::reqd_sub_group_size(32)]] { + mul_mat_vec_q_iq3_xxs_q8_1( + vx, vy, dst, ncols, nrows, item_ct1); + }); + }); + } +} + +static void mul_mat_vec_iq3_s_q8_1_sycl(const void *vx, const void *vy, + float *dst, const int ncols, + const int nrows, + dpct::queue_ptr stream) { + GGML_ASSERT(ncols % QK_K == 0); + const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y; + const sycl::range<3> block_nums(1, 1, block_num_y); + const sycl::range<3> block_dims(1, GGML_SYCL_MMV_Y, WARP_SIZE); + { + + stream->submit([&](sycl::handler &cgh) { + auto iq3s_grid_ptr_ct1 = &iq3s_grid[0]; + + cgh.parallel_for( + sycl::nd_range<3>(block_nums * block_dims, block_dims), + [=](sycl::nd_item<3> item_ct1) + [[intel::reqd_sub_group_size(32)]] { + mul_mat_vec_q_iq3_s_q8_1( + vx, vy, dst, ncols, nrows, item_ct1); + }); + }); + } +} + +static void mul_mat_vec_iq1_s_q8_1_sycl(const void *vx, const void *vy, + float *dst, const int ncols, + const int nrows, + dpct::queue_ptr stream) { + GGML_ASSERT(ncols % QK_K == 0); + const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y; + const sycl::range<3> block_nums(1, 1, block_num_y); + const sycl::range<3> block_dims(1, GGML_SYCL_MMV_Y, WARP_SIZE); + { + + stream->submit([&](sycl::handler &cgh) { + auto iq1s_grid_ptr_ct1 = &iq1s_grid_gpu[0]; + auto ksigns64_ptr_ct1 = &ksigns64[0]; + + cgh.parallel_for( + sycl::nd_range<3>(block_nums * block_dims, block_dims), + [=](sycl::nd_item<3> item_ct1) + [[intel::reqd_sub_group_size(32)]] { + mul_mat_vec_q_iq1_s_q8_1( + vx, vy, dst, ncols, nrows, item_ct1); + }); + }); + } +} + +static void mul_mat_vec_iq1_m_q8_1_sycl(const void *vx, const void *vy, + float *dst, const int ncols, + const int nrows, + dpct::queue_ptr stream) { + GGML_ASSERT(ncols % QK_K == 0); + const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y; + const sycl::range<3> block_nums(1, 1, block_num_y); + const sycl::range<3> block_dims(1, GGML_SYCL_MMV_Y, WARP_SIZE); + { + stream->submit([&](sycl::handler &cgh) { + cgh.parallel_for( + sycl::nd_range<3>(block_nums * block_dims, block_dims), + [=](sycl::nd_item<3> item_ct1) + [[intel::reqd_sub_group_size(32)]] { + mul_mat_vec_q_iq1_m_q8_1( + vx, vy, dst, ncols, nrows, item_ct1); + }); + }); + } +} + +static void mul_mat_vec_iq4_nl_q8_1_sycl(const void *vx, const void *vy, + float *dst, const int ncols, + const int nrows, + dpct::queue_ptr stream) { + GGML_ASSERT(ncols % QK4_NL == 0); + const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y; + const sycl::range<3> block_nums(1, 1, block_num_y); + const sycl::range<3> block_dims(1, GGML_SYCL_MMV_Y, WARP_SIZE); + { + + stream->submit([&](sycl::handler &cgh) { + cgh.parallel_for( + sycl::nd_range<3>(block_nums * block_dims, block_dims), + [=](sycl::nd_item<3> item_ct1) + [[intel::reqd_sub_group_size(32)]] { + mul_mat_vec_q_iq4_nl_q8_1( + vx, vy, dst, ncols, nrows, item_ct1); + }); + }); + } +} + +static void mul_mat_vec_iq4_xs_q8_1_sycl(const void *vx, const void *vy, + float *dst, const int ncols, + const int nrows, + dpct::queue_ptr stream) { + GGML_ASSERT(ncols % QK_K == 0); + const int block_num_y = (nrows + GGML_SYCL_MMV_Y - 1) / GGML_SYCL_MMV_Y; + const sycl::range<3> block_nums(1, 1, block_num_y); + const sycl::range<3> block_dims(1, GGML_SYCL_MMV_Y, WARP_SIZE); + { + + stream->submit([&](sycl::handler &cgh) { + cgh.parallel_for( + sycl::nd_range<3>(block_nums * block_dims, block_dims), + [=](sycl::nd_item<3> item_ct1) + [[intel::reqd_sub_group_size(32)]] { + mul_mat_vec_q_iq4_xs_q8_1( + vx, vy, dst, ncols, nrows, item_ct1); + }); + }); + } +} + +void ggml_sycl_op_mul_mat_vec_q( + ggml_backend_sycl_context & ctx, + const ggml_tensor *src0, const ggml_tensor *src1, ggml_tensor *dst, + const char *src0_dd_i, const float *src1_ddf_i, const char *src1_ddq_i, + float *dst_dd_i, const int64_t row_low, const int64_t row_high, + const int64_t src1_ncols, const int64_t src1_padded_row_size, + const dpct::queue_ptr &stream) { + + const int64_t ne10 = src1->ne[0]; + GGML_ASSERT(ne10 % QK8_1 == 0); + + const int64_t ne00 = src0->ne[0]; + const int64_t row_diff = row_high - row_low; + + int id; + SYCL_CHECK( + CHECK_TRY_ERROR(id = get_current_device_id())); + + // the main device has a larger memory buffer to hold the results from all GPUs + // nrows_dst == nrows of the matrix that the kernel writes into + const int64_t nrows_dst = id == ctx.device ? ne00 : row_diff; + + switch (src0->type) { + case GGML_TYPE_Q4_0: + mul_mat_vec_q4_0_q8_1_sycl(src0_dd_i, src1_ddq_i, dst_dd_i, ne00, row_diff, stream); + break; + case GGML_TYPE_Q4_1: + mul_mat_vec_q4_1_q8_1_sycl(src0_dd_i, src1_ddq_i, dst_dd_i, ne00, row_diff, stream); + break; + case GGML_TYPE_Q5_0: + mul_mat_vec_q5_0_q8_1_sycl(src0_dd_i, src1_ddq_i, dst_dd_i, ne00, row_diff, stream); + break; + case GGML_TYPE_Q5_1: + mul_mat_vec_q5_1_q8_1_sycl(src0_dd_i, src1_ddq_i, dst_dd_i, ne00, row_diff, stream); + break; + case GGML_TYPE_Q8_0: + mul_mat_vec_q8_0_q8_1_sycl(src0_dd_i, src1_ddq_i, dst_dd_i, ne00, row_diff, stream); + break; + case GGML_TYPE_Q2_K: + mul_mat_vec_q2_K_q8_1_sycl(src0_dd_i, src1_ddq_i, dst_dd_i, ne00, row_diff, stream); + break; + case GGML_TYPE_Q3_K: + mul_mat_vec_q3_K_q8_1_sycl(src0_dd_i, src1_ddq_i, dst_dd_i, ne00, row_diff, stream); + break; + case GGML_TYPE_Q4_K: + mul_mat_vec_q4_K_q8_1_sycl(src0_dd_i, src1_ddq_i, dst_dd_i, ne00, row_diff, stream); + break; + case GGML_TYPE_Q5_K: + mul_mat_vec_q5_K_q8_1_sycl(src0_dd_i, src1_ddq_i, dst_dd_i, ne00, row_diff, stream); + break; + case GGML_TYPE_Q6_K: + mul_mat_vec_q6_K_q8_1_sycl(src0_dd_i, src1_ddq_i, dst_dd_i, ne00, row_diff, stream); + break; + case GGML_TYPE_IQ1_S: + mul_mat_vec_iq1_s_q8_1_sycl(src0_dd_i, src1_ddq_i, dst_dd_i, ne00, row_diff, stream); + break; + case GGML_TYPE_IQ1_M: + mul_mat_vec_iq1_m_q8_1_sycl(src0_dd_i, src1_ddq_i, dst_dd_i, ne00, row_diff, stream); + break; + case GGML_TYPE_IQ2_XXS: + mul_mat_vec_iq2_xxs_q8_1_sycl(src0_dd_i, src1_ddq_i, dst_dd_i, ne00, row_diff, stream); + break; + case GGML_TYPE_IQ2_XS: + mul_mat_vec_iq2_xs_q8_1_sycl(src0_dd_i, src1_ddq_i, dst_dd_i, ne00, row_diff, stream); + break; + case GGML_TYPE_IQ2_S: + mul_mat_vec_iq2_s_q8_1_sycl(src0_dd_i, src1_ddq_i, dst_dd_i, ne00, row_diff, stream); + break; + case GGML_TYPE_IQ3_XXS: + mul_mat_vec_iq3_xxs_q8_1_sycl(src0_dd_i, src1_ddq_i, dst_dd_i, ne00, row_diff, stream); + break; + case GGML_TYPE_IQ3_S: + mul_mat_vec_iq3_s_q8_1_sycl(src0_dd_i, src1_ddq_i, dst_dd_i, ne00, row_diff, stream); + break; + case GGML_TYPE_IQ4_NL: + mul_mat_vec_iq4_nl_q8_1_sycl(src0_dd_i, src1_ddq_i, dst_dd_i, ne00, row_diff, stream); + break; + case GGML_TYPE_IQ4_XS: + mul_mat_vec_iq4_xs_q8_1_sycl(src0_dd_i, src1_ddq_i, dst_dd_i, ne00, row_diff, stream); + break; + default: + GGML_ASSERT(false); + break; + } + + (void) src1; + (void) dst; + (void) src1_ddf_i; + (void) src1_ncols; + (void) src1_padded_row_size; +} diff --git a/ggml-sycl/mmvq.hpp b/ggml-sycl/mmvq.hpp new file mode 100644 index 0000000000000..049b43d453532 --- /dev/null +++ b/ggml-sycl/mmvq.hpp @@ -0,0 +1,27 @@ +// +// MIT license +// Copyright (C) 2024 Intel Corporation +// SPDX-License-Identifier: MIT +// + +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// + +#ifndef GGML_SYCL_MMVQ_HPP +#define GGML_SYCL_MMVQ_HPP + +#include "common.hpp" + + +void ggml_sycl_op_mul_mat_vec_q( + ggml_backend_sycl_context & ctx, + const ggml_tensor *src0, const ggml_tensor *src1, ggml_tensor *dst, + const char *src0_dd_i, const float *src1_ddf_i, const char *src1_ddq_i, + float *dst_dd_i, const int64_t row_low, const int64_t row_high, + const int64_t src1_ncols, const int64_t src1_padded_row_size, + const dpct::queue_ptr &stream); + +#endif // GGML_SYCL_MMVQ_HPP diff --git a/ggml-sycl/presets.hpp b/ggml-sycl/presets.hpp index dcf0261102e91..5e6b61813ab49 100644 --- a/ggml-sycl/presets.hpp +++ b/ggml-sycl/presets.hpp @@ -18,8 +18,6 @@ #define GGML_SYCL_MAX_DEVICES 48 #define GGML_SYCL_NAME "SYCL" -// FIXME: 1024 from cuda -#define GROUP_SIZE 1024 #define WARP_SIZE 32 #define MATRIX_ROW_PADDING 512 // last row of quant. matrices is a multiple of this to avoid out-of-bounds memory accesses diff --git a/ggml-sycl/vecdotq.hpp b/ggml-sycl/vecdotq.hpp new file mode 100644 index 0000000000000..5e2e825463cde --- /dev/null +++ b/ggml-sycl/vecdotq.hpp @@ -0,0 +1,1161 @@ +// +// MIT license +// Copyright (C) 2024 Intel Corporation +// SPDX-License-Identifier: MIT +// + +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// + +#ifndef GGML_SYCL_VECDOTQ_HPP +#define GGML_SYCL_VECDOTQ_HPP + +#include "dpct/helper.hpp" + +typedef float (*vec_dot_q_sycl_t)(const void * __restrict__ vbq, const block_q8_1 * __restrict__ bq8_1, const int & iqs); + +static __dpct_inline__ int get_int_from_int8(const int8_t* x8, const int& i32) { + const uint16_t* x16 = + (const uint16_t*)(x8 + sizeof(int) * i32); // assume at least 2 byte + // alignment + + int x32 = 0; + x32 |= x16[0] << 0; + x32 |= x16[1] << 16; + + return x32; +} + +static __dpct_inline__ int get_int_from_uint8( + const uint8_t* x8, + const int& i32) { + const uint16_t* x16 = + (const uint16_t*)(x8 + sizeof(int) * i32); // assume at least 2 byte + // alignment + + int x32 = 0; + x32 |= x16[0] << 0; + x32 |= x16[1] << 16; + + return x32; +} + +static __dpct_inline__ int get_int_from_int8_aligned( + const int8_t* x8, + const int& i32) { + return *( + (const int*)(x8 + sizeof(int) * i32)); // assume at least 4 byte alignment +} + +static __dpct_inline__ int get_int_from_uint8_aligned( + const uint8_t* x8, + const int& i32) { + return *( + (const int*)(x8 + sizeof(int) * i32)); // assume at least 4 byte alignment +} + +static __dpct_inline__ void get_int_from_table_16(const uint32_t &q4, + const uint8_t *values, + int &val1, int &val2) { + + uint32_t aux32; const uint8_t * q8 = (const uint8_t *)&aux32; + aux32 = q4 & 0x0f0f0f0f; + uint16_t v1 = values[q8[0]] | (values[q8[1]] << 8); + uint16_t v2 = values[q8[2]] | (values[q8[3]] << 8); + val1 = v1 | (v2 << 16); + aux32 = (q4 >> 4) & 0x0f0f0f0f; + v1 = values[q8[0]] | (values[q8[1]] << 8); + v2 = values[q8[2]] | (values[q8[3]] << 8); + val2 = v1 | (v2 << 16); +} + +#define VDR_Q2_K_Q8_1_MMVQ 1 + +// contiguous v/x values +static __dpct_inline__ float vec_dot_q2_K_q8_1_impl_mmvq( + const int &v, const int *__restrict__ u, const uint8_t *__restrict__ scales, + const sycl::half2 &dm2, const float *__restrict__ d8) { + + float sumf_d = 0.0f; + float sumf_m = 0.0f; + +#pragma unroll + for (int i = 0; i < QR2_K; ++i) { + const int sc = scales[2*i]; + + const int vi = (v >> (2*i)) & 0x03030303; + + sumf_d += + d8[i] * (dpct::dp4a(vi, u[i], 0) * (sc & 0xF)); // SIMD dot product + + // fill int with 4x m + int m = sc >> 4; + m |= m << 8; + m |= m << 16; + sumf_m += d8[i] * + dpct::dp4a( + m, u[i], + 0); // multiply constant q2_K part with sum of q8_1 values + } + + const sycl::float2 dm2f = + dm2.convert(); + + return dm2f.x() * sumf_d - dm2f.y() * sumf_m; +} + + +#define VDR_Q3_K_Q8_1_MMVQ 1 + +// contiguous v/x values +static __dpct_inline__ float vec_dot_q3_K_q8_1_impl_mmvq( + const int &vl, const int &vh, const int *__restrict__ u, + const uint8_t *__restrict__ scales, const int &scale_offset, + const float &d3, const float *__restrict__ d8) { + + float sumf = 0.0f; + +#pragma unroll + for (int i = 0; i < QR3_K; ++i) { + const int isc = scale_offset + 2*i; + + const int isc_low = isc % (QK_K/32); + const int sc_shift_low = 4 * (isc / (QK_K/32)); + const int sc_low = (scales[isc_low] >> sc_shift_low) & 0xF; + + const int isc_high = isc % (QK_K/64); + const int sc_shift_high = 2 * (isc / (QK_K/64)); + const int sc_high = ((scales[(QK_K/32) + isc_high] >> sc_shift_high) & 3) << 4; + + const int sc = (sc_low | sc_high) - 32; + + const int vil = (vl >> (2*i)) & 0x03030303; + + const int vih = ((vh >> i) << 2) & 0x04040404; + + const int vi = + dpct::vectorized_binary(vil, vih, dpct::sub_sat()); + + sumf += d8[i] * (dpct::dp4a(vi, u[i], 0) * sc); // SIMD dot product + } + + return d3 * sumf; +} + +#define VDR_Q4_K_Q8_1_MMVQ 2 + +// contiguous v/x values +static __dpct_inline__ float vec_dot_q4_K_q8_1_impl_vmmq( + const int *__restrict__ v, const int *__restrict__ u, + const uint8_t *__restrict__ sc, const uint8_t *__restrict__ m, + const sycl::half2 &dm4, const float *__restrict__ d8) { + + float sumf_d = 0.0f; + float sumf_m = 0.0f; + +#pragma unroll + for (int i = 0; i < QR4_K; ++i) { + const int v0i = (v[0] >> (4*i)) & 0x0F0F0F0F; + const int v1i = (v[1] >> (4*i)) & 0x0F0F0F0F; + + const int dot1 = + dpct::dp4a(v1i, u[2 * i + 1], + dpct::dp4a(v0i, u[2 * i + 0], 0)); // SIMD dot product + const int dot2 = + dpct::dp4a(0x01010101, u[2 * i + 1], + dpct::dp4a(0x01010101, u[2 * i + 0], 0)); // sum of u + + sumf_d += d8[i] * (dot1 * sc[i]); + sumf_m += d8[i] * (dot2 * m[i]); // multiply constant part of q4_K with sum of q8_1 values + } + + const sycl::float2 dm4f = + dm4.convert(); + + return dm4f.x() * sumf_d - dm4f.y() * sumf_m; +} + + +#define VDR_Q5_K_Q8_1_MMVQ 2 + +// contiguous v/x values +static __dpct_inline__ float vec_dot_q5_K_q8_1_impl_vmmq( + const int *__restrict__ vl, const int *__restrict__ vh, + const int *__restrict__ u, const uint8_t *__restrict__ sc, + const uint8_t *__restrict__ m, const sycl::half2 &dm5, + const float *__restrict__ d8) { + + float sumf_d = 0.0f; + float sumf_m = 0.0f; + +#pragma unroll + for (int i = 0; i < QR5_K; ++i) { + const int vl0i = (vl[0] >> (4*i)) & 0x0F0F0F0F; + const int vl1i = (vl[1] >> (4*i)) & 0x0F0F0F0F; + + const int vh0i = ((vh[0] >> i) << 4) & 0x10101010; + const int vh1i = ((vh[1] >> i) << 4) & 0x10101010; + + const int v0i = vl0i | vh0i; + const int v1i = vl1i | vh1i; + + const int dot1 = + dpct::dp4a(v0i, u[2 * i + 0], + dpct::dp4a(v1i, u[2 * i + 1], 0)); // SIMD dot product + const int dot2 = + dpct::dp4a(0x01010101, u[2 * i + 0], + dpct::dp4a(0x01010101, u[2 * i + 1], 0)); // sum of u + + sumf_d += d8[i] * (dot1 * sc[i]); + sumf_m += d8[i] * (dot2 * m[i]); + + } + + const sycl::float2 dm5f = + dm5.convert(); + + return dm5f.x() * sumf_d - dm5f.y() * sumf_m; +} + + +#define VDR_Q6_K_Q8_1_MMVQ 1 + +// contiguous v/x values +static __dpct_inline__ float +vec_dot_q6_K_q8_1_impl_mmvq(const int &vl, const int &vh, + const int *__restrict__ u, + const int8_t *__restrict__ scales, const float &d, + const float *__restrict__ d8) { + + float sumf = 0.0f; + +#pragma unroll + for (int i = 0; i < QR6_K; ++i) { + const int sc = scales[4*i]; + + const int vil = (vl >> (4*i)) & 0x0F0F0F0F; + + const int vih = ((vh >> (4*i)) << 4) & 0x30303030; + + const int vi = dpct::vectorized_binary( + (vil | vih), 0x20202020, dpct::sub_sat()); // vi = (vil | vih) - 32 + + sumf += d8[i] * (dpct::dp4a(vi, u[i], 0) * sc); // SIMD dot product + } + + return d*sumf; +} + +// VDR = vec dot ratio, how many contiguous integers each thread processes when the vec dot kernel is called +// MMVQ = mul_mat_vec_q, MMQ = mul_mat_q + +#define VDR_Q4_0_Q8_1_MMVQ 2 +#define VDR_Q4_0_Q8_1_MMQ 4 + +template +static __dpct_inline__ float vec_dot_q4_0_q8_1_impl(const int *v, const int *u, + const float &d4, + const sycl::half2 &ds8) { + int sumi = 0; +#pragma unroll + for (int i = 0; i < vdr; ++i) { + const int vi0 = (v[i] >> 0) & 0x0F0F0F0F; + const int vi1 = (v[i] >> 4) & 0x0F0F0F0F; + + // SIMD dot product of quantized values + sumi = dpct::dp4a(vi0, u[2 * i + 0], sumi); + sumi = dpct::dp4a(vi1, u[2 * i + 1], sumi); + } + + const sycl::float2 ds8f = + ds8.convert(); + + // second part effectively subtracts 8 from each quant value + return d4 * (sumi * ds8f.x() - (8 * vdr / QI4_0) * ds8f.y()); +} + +#define VDR_Q4_1_Q8_1_MMVQ 2 +#define VDR_Q4_1_Q8_1_MMQ 4 + +template +static __dpct_inline__ float vec_dot_q4_1_q8_1_impl(const int *v, const int *u, + const sycl::half2 &dm4, + const sycl::half2 &ds8) { + + int sumi = 0; + +#pragma unroll + for (int i = 0; i < vdr; ++i) { + const int vi0 = (v[i] >> 0) & 0x0F0F0F0F; + const int vi1 = (v[i] >> 4) & 0x0F0F0F0F; + + // SIMD dot product of quantized values + sumi = dpct::dp4a(vi0, u[2 * i + 0], sumi); + sumi = dpct::dp4a(vi1, u[2 * i + 1], sumi); + } + +#ifdef GGML_SYCL_F16 + const sycl::float2 tmp = + (dm4 * ds8).convert(); + const float d4d8 = tmp.x(); + const float m4s8 = tmp.y(); +#else + const sycl::float2 dm4f = + dm4.convert(); + const sycl::float2 ds8f = + ds8.convert(); + const float d4d8 = dm4f.x() * ds8f.x(); + const float m4s8 = dm4f.y() * ds8f.y(); +#endif // GGML_SYCL_F16 + + // scale second part of sum by QI8_1/(vdr * QR4_1) to compensate for multiple threads adding it + return sumi * d4d8 + m4s8 / (QI8_1 / (vdr * QR4_1)); +} + +#define VDR_Q5_0_Q8_1_MMVQ 2 +#define VDR_Q5_0_Q8_1_MMQ 4 + +template +static __dpct_inline__ float +vec_dot_q5_0_q8_1_impl(const int *vl, const int *vh, const int *u, + const float &d5, const sycl::half2 &ds8) { + int sumi = 0; + +#pragma unroll + for (int i = 0; i < vdr; ++i) { + int vi0 = (vl[i] >> 0) & 0x0F0F0F0F; // lower 4 qs bits, still need qh as 5th bits + vi0 |= (vh[i] << 4) & 0x00000010; // 0 -> 4 + vi0 |= (vh[i] << 11) & 0x00001000; // 1 -> 12 + vi0 |= (vh[i] << 18) & 0x00100000; // 2 -> 20 + vi0 |= (vh[i] << 25) & 0x10000000; // 3 -> 28 + sumi = dpct::dp4a(vi0, u[2 * i + 0], + sumi); // SIMD dot product of quantized values + + int vi1 = (vl[i] >> 4) & 0x0F0F0F0F; // upper 4 qs bits, still need qh as 5th bits + vi1 |= (vh[i] >> 12) & 0x00000010; // 16 -> 4 + vi1 |= (vh[i] >> 5) & 0x00001000; // 17 -> 12 + vi1 |= (vh[i] << 2) & 0x00100000; // 18 -> 20 + vi1 |= (vh[i] << 9) & 0x10000000; // 19 -> 28 + sumi = dpct::dp4a(vi1, u[2 * i + 1], + sumi); // SIMD dot product of quantized values + } + + const sycl::float2 ds8f = + ds8.convert(); + + // second part effectively subtracts 16 from each quant value + return d5 * (sumi * ds8f.x() - (16 * vdr / QI5_0) * ds8f.y()); +} + +#define VDR_Q5_1_Q8_1_MMVQ 2 +#define VDR_Q5_1_Q8_1_MMQ 4 + +template +static __dpct_inline__ float +vec_dot_q5_1_q8_1_impl(const int *vl, const int *vh, const int *u, + const sycl::half2 &dm5, const sycl::half2 &ds8) { + + int sumi = 0; + +#pragma unroll + for (int i = 0; i < vdr; ++i) { + int vi0 = (vl[i] >> 0) & 0x0F0F0F0F; // lower 4 qs bits, still need qh as 5th bits + vi0 |= (vh[i] << 4) & 0x00000010; // 0 -> 4 + vi0 |= (vh[i] << 11) & 0x00001000; // 1 -> 12 + vi0 |= (vh[i] << 18) & 0x00100000; // 2 -> 20 + vi0 |= (vh[i] << 25) & 0x10000000; // 3 -> 28 + sumi = dpct::dp4a(vi0, u[2 * i + 0], + sumi); // SIMD dot product of quantized values + + int vi1 = (vl[i] >> 4) & 0x0F0F0F0F; // upper 4 qs bits, still need qh as 5th bits + vi1 |= (vh[i] >> 12) & 0x00000010; // 16 -> 4 + vi1 |= (vh[i] >> 5) & 0x00001000; // 17 -> 12 + vi1 |= (vh[i] << 2) & 0x00100000; // 18 -> 20 + vi1 |= (vh[i] << 9) & 0x10000000; // 19 -> 28 + sumi = dpct::dp4a(vi1, u[2 * i + 1], + sumi); // SIMD dot product of quantized values + } + +#ifdef GGML_SYCL_F16 + const sycl::float2 tmp = + (dm5 * ds8).convert(); + const float d5d8 = tmp.x(); + const float m5s8 = tmp.y(); + + +#else + const sycl::float2 dm5f = + dm5.convert(); + const sycl::float2 ds8f = + ds8.convert(); + const float d5d8 = dm5f.x() * ds8f.x(); + const float m5s8 = dm5f.y() * ds8f.y(); +#endif // GGML_SYCL_F16 + + // scale second part of sum by QI5_1 / vdr to compensate for multiple threads adding it + return sumi*d5d8 + m5s8 / (QI5_1 / vdr); +} + +#define VDR_Q8_0_Q8_1_MMVQ 2 +#define VDR_Q8_0_Q8_1_MMQ 8 + +template +static __dpct_inline__ float vec_dot_q8_0_q8_1_impl(const int *v, const int *u, + const float &d8_0, + const float &d8_1) { + + int sumi = 0; + +#pragma unroll + for (int i = 0; i < vdr; ++i) { + // SIMD dot product of quantized values + sumi = dpct::dp4a(v[i], u[i], sumi); + } + + return d8_0*d8_1 * sumi; +} + +template +static __dpct_inline__ float vec_dot_q8_1_q8_1_impl(const int *v, const int *u, + const sycl::half2 &dm8, + const sycl::half2 &ds8) { + + int sumi = 0; + +#pragma unroll + for (int i = 0; i < vdr; ++i) { + // SIMD dot product of quantized values + sumi = dpct::dp4a(v[i], u[i], sumi); + } + +#ifdef GGML_SYCL_F16 + const sycl::float2 tmp = + (dm8 * ds8).convert(); + const float d8d8 = tmp.x(); + const float m8s8 = tmp.y(); +#else + const sycl::float2 dm8f = + dm8.convert(); + const sycl::float2 ds8f = + ds8.convert(); + const float d8d8 = dm8f.x() * ds8f.x(); + const float m8s8 = dm8f.y() * ds8f.y(); +#endif // GGML_SYCL_F16 + + // scale second part of sum by QI8_1/ vdr to compensate for multiple threads adding it + return sumi*d8d8 + m8s8 / (QI8_1 / vdr); +} + +static __dpct_inline__ float +vec_dot_q4_0_q8_1(const void *__restrict__ vbq, + const block_q8_1 *__restrict__ bq8_1, const int &iqs) { + + const block_q4_0 * bq4_0 = (const block_q4_0 *) vbq; + + int v[VDR_Q4_0_Q8_1_MMVQ]; + int u[2*VDR_Q4_0_Q8_1_MMVQ]; + +#pragma unroll + for (int i = 0; i < VDR_Q4_0_Q8_1_MMVQ; ++i) { + v[i] = get_int_from_uint8(bq4_0->qs, iqs + i); + u[2*i+0] = get_int_from_int8_aligned(bq8_1->qs, iqs + i); + u[2*i+1] = get_int_from_int8_aligned(bq8_1->qs, iqs + i + QI4_0); + } + + return vec_dot_q4_0_q8_1_impl(v, u, bq4_0->d, bq8_1->ds); +} + +static __dpct_inline__ float +vec_dot_q4_1_q8_1(const void *__restrict__ vbq, + const block_q8_1 *__restrict__ bq8_1, const int &iqs) { + + const block_q4_1 * bq4_1 = (const block_q4_1 *) vbq; + + int v[VDR_Q4_1_Q8_1_MMVQ]; + int u[2*VDR_Q4_1_Q8_1_MMVQ]; + +#pragma unroll + for (int i = 0; i < VDR_Q4_1_Q8_1_MMVQ; ++i) { + v[i] = get_int_from_uint8_aligned(bq4_1->qs, iqs + i); + u[2*i+0] = get_int_from_int8_aligned(bq8_1->qs, iqs + i); + u[2*i+1] = get_int_from_int8_aligned(bq8_1->qs, iqs + i + QI4_1); + } + + return vec_dot_q4_1_q8_1_impl(v, u, bq4_1->dm, bq8_1->ds); +} + +static __dpct_inline__ float +vec_dot_q5_0_q8_1(const void *__restrict__ vbq, + const block_q8_1 *__restrict__ bq8_1, const int &iqs) { + + const block_q5_0 * bq5_0 = (const block_q5_0 *) vbq; + + int vl[VDR_Q5_0_Q8_1_MMVQ]; + int vh[VDR_Q5_0_Q8_1_MMVQ]; + int u[2*VDR_Q5_0_Q8_1_MMVQ]; + +#pragma unroll + for (int i = 0; i < VDR_Q5_0_Q8_1_MMVQ; ++i) { + vl[i] = get_int_from_uint8(bq5_0->qs, iqs + i); + vh[i] = get_int_from_uint8(bq5_0->qh, 0) >> (4 * (iqs + i)); + u[2*i+0] = get_int_from_int8_aligned(bq8_1->qs, iqs + i); + u[2*i+1] = get_int_from_int8_aligned(bq8_1->qs, iqs + i + QI5_0); + } + + return vec_dot_q5_0_q8_1_impl(vl, vh, u, bq5_0->d, bq8_1->ds); +} + +static __dpct_inline__ float +vec_dot_q5_1_q8_1(const void *__restrict__ vbq, + const block_q8_1 *__restrict__ bq8_1, const int &iqs) { + + const block_q5_1 * bq5_1 = (const block_q5_1 *) vbq; + + int vl[VDR_Q5_1_Q8_1_MMVQ]; + int vh[VDR_Q5_1_Q8_1_MMVQ]; + int u[2*VDR_Q5_1_Q8_1_MMVQ]; + +#pragma unroll + for (int i = 0; i < VDR_Q5_1_Q8_1_MMVQ; ++i) { + vl[i] = get_int_from_uint8_aligned(bq5_1->qs, iqs + i); + vh[i] = get_int_from_uint8_aligned(bq5_1->qh, 0) >> (4 * (iqs + i)); + u[2*i+0] = get_int_from_int8_aligned(bq8_1->qs, iqs + i); + u[2*i+1] = get_int_from_int8_aligned(bq8_1->qs, iqs + i + QI5_1); + } + + return vec_dot_q5_1_q8_1_impl(vl, vh, u, bq5_1->dm, bq8_1->ds); +} + +static __dpct_inline__ float +vec_dot_q8_0_q8_1(const void *__restrict__ vbq, + const block_q8_1 *__restrict__ bq8_1, const int &iqs) { + + const block_q8_0 * bq8_0 = (const block_q8_0 *) vbq; + + int v[VDR_Q8_0_Q8_1_MMVQ]; + int u[VDR_Q8_0_Q8_1_MMVQ]; + +#pragma unroll + for (int i = 0; i < VDR_Q8_0_Q8_1_MMVQ; ++i) { + v[i] = get_int_from_int8(bq8_0->qs, iqs + i); + u[i] = get_int_from_int8_aligned(bq8_1->qs, iqs + i); + } + + return vec_dot_q8_0_q8_1_impl(v, u, bq8_0->d, + bq8_1->ds[0]); +} + +static __dpct_inline__ float +vec_dot_q2_K_q8_1(const void *__restrict__ vbq, + const block_q8_1 *__restrict__ bq8_1, const int &iqs) { + + const block_q2_K * bq2_K = (const block_q2_K *) vbq; + + const int bq8_offset = QR2_K * (iqs / QI8_1); + const int scale_offset = iqs - iqs % QI8_1 + (iqs % QI8_1) / (QI8_1/2); + + const uint8_t * scales = bq2_K->scales + scale_offset; + + const int v = get_int_from_uint8_aligned(bq2_K->qs, iqs); + int u[QR2_K]; + float d8[QR2_K]; + +#pragma unroll + for (int i = 0; i < QR2_K; ++ i) { + u[i] = get_int_from_int8_aligned(bq8_1[bq8_offset + i].qs, iqs % QI8_1); + d8[i] = bq8_1[bq8_offset + i].ds[0]; + } + + return vec_dot_q2_K_q8_1_impl_mmvq(v, u, scales, bq2_K->dm, d8); +} + +static __dpct_inline__ float +vec_dot_q3_K_q8_1(const void *__restrict__ vbq, + const block_q8_1 *__restrict__ bq8_1, const int &iqs) { + + const block_q3_K * bq3_K = (const block_q3_K *) vbq; + + const int bq8_offset = QR3_K * (iqs / (QI3_K/2)); + const int scale_offset = iqs - iqs % QI8_1 + (iqs % QI8_1) / (QI8_1/2); + + const float d = bq3_K->d; + + const int vl = get_int_from_uint8(bq3_K->qs, iqs); + + // invert the mask with ~ so that a 0/1 results in 4/0 being subtracted + const int vh = ~get_int_from_uint8(bq3_K->hmask, iqs % (QI3_K/2)) >> bq8_offset; + + int u[QR3_K]; + float d8[QR3_K]; + +#pragma unroll + for (int i = 0; i < QR3_K; ++i) { + u[i] = get_int_from_int8_aligned(bq8_1[bq8_offset + i].qs, iqs % QI8_1); + d8[i] = bq8_1[bq8_offset + i].ds[0]; + } + + return vec_dot_q3_K_q8_1_impl_mmvq(vl, vh, u, bq3_K->scales, scale_offset, d, d8); +} + +static __dpct_inline__ float +vec_dot_q4_K_q8_1(const void *__restrict__ vbq, + const block_q8_1 *__restrict__ bq8_1, const int &iqs) { + +#ifndef GGML_QKK_64 + const block_q4_K * bq4_K = (const block_q4_K *) vbq; + + int v[2]; + int u[2*QR4_K]; + float d8[QR4_K]; + + // iqs is in 0,2..30. bq8_offset = iqs/4 -> bq8_offset = 0, 2, 4, 6 + const int bq8_offset = QR4_K * ((iqs/2) / (QI8_1/2)); + + // iqs = 0....3 -> bq8_offset = 0, want q4_offset = 0, 4, 8, 12 + // iqs = 4....7 -> bq8_offset = 2, want q4_offset = 32, 36, 40, 44 + // iqs = 8...11 -> bq8_offset = 4, want q4_offset = 64, 68, 72, 76 + // iqs = 12..15 -> bq8_offset = 6, want q4_offset = 96, 100, 104, 108 + + const int * q4 = (const int *)(bq4_K->qs + 16 * bq8_offset + 4 * ((iqs/2)%4)); + v[0] = q4[0]; + v[1] = q4[4]; + + const uint16_t * scales = (const uint16_t *)bq4_K->scales; + uint16_t aux[2]; + const int j = bq8_offset/2; + if (j < 2) { + aux[0] = scales[j+0] & 0x3f3f; + aux[1] = scales[j+2] & 0x3f3f; + } else { + aux[0] = ((scales[j+2] >> 0) & 0x0f0f) | ((scales[j-2] & 0xc0c0) >> 2); + aux[1] = ((scales[j+2] >> 4) & 0x0f0f) | ((scales[j-0] & 0xc0c0) >> 2); + } + const uint8_t * sc = (const uint8_t *)aux; + const uint8_t * m = sc + 2; + + for (int i = 0; i < QR4_K; ++i) { + const block_q8_1 * bq8i = bq8_1 + bq8_offset + i; + d8[i] = bq8i->ds[0]; + + const int * q8 = (const int *)bq8i->qs + ((iqs/2)%4); + u[2*i+0] = q8[0]; + u[2*i+1] = q8[4]; + } + + return vec_dot_q4_K_q8_1_impl_vmmq(v, u, sc, m, bq4_K->dm, d8); + +#else + +#if __SYCL_ARCH__ >= VER_4VEC // lowest compute capability for integer intrinsics + const block_q4_K * bq4_K = (const block_q4_K *) vbq; + + float sumf_d = 0.0f; + float sumf_m = 0.0f; + + uint16_t aux16[2]; + const uint8_t * s = (const uint8_t *)aux16; + + const uint16_t * a = (const uint16_t *)bq4_K->scales; + aux16[0] = a[0] & 0x0f0f; + aux16[1] = (a[0] >> 4) & 0x0f0f; + + const float dall = bq4_K->dm[0]; + const float dmin = bq4_K->dm[1]; + + const float d8_1 = bq8_1[0].ds[0]; + const float d8_2 = bq8_1[1].ds[1]; + + const int ui1 = *((const int *)bq8_1[0].qs + (iqs/2)); + const int ui2 = *((const int *)bq8_1[0].qs + (iqs/2) + 4); + const int ui3 = *((const int *)bq8_1[1].qs + (iqs/2)); + const int ui4 = *((const int *)bq8_1[1].qs + (iqs/2) + 4); + + const int * q4 = (const int *)bq4_K->qs + (iqs/2); + const int v1 = q4[0]; + const int v2 = q4[4]; + + const int dot1 = dpct::dp4a(ui2, v2 & 0x0f0f0f0f, dpct::dp4a(ui1, v1 & 0x0f0f0f0f, 0)); + const int dot2 = dpct::dp4a(ui4, (v2 >> 4) & 0x0f0f0f0f, dpct::dp4a(ui3, (v1 >> 4) & 0x0f0f0f0f, 0)); + const int dot3 = dpct::dp4a(0x01010101, ui2, dpct::dp4a(0x01010101, ui1, 0)); + const int dot4 = dpct::dp4a(0x01010101, ui4, dpct::dp4a(0x01010101, ui3, 0)); + + sumf_d += d8_1 * (dot1 * s[0]) + d8_2 * (dot2 * s[1]); + sumf_m += d8_1 * (dot3 * s[2]) + d8_2 * (dot4 * s[3]); + + return dall * sumf_d - dmin * sumf_m; + +#else + bad_arch(); +#endif // __SYCL_ARCH__ >= VER_4VEC + +#endif +} + +static __dpct_inline__ float +vec_dot_q5_K_q8_1(const void *__restrict__ vbq, + const block_q8_1 *__restrict__ bq8_1, const int &iqs) { + +#ifndef GGML_QKK_64 + const block_q5_K * bq5_K = (const block_q5_K *) vbq; + + int vl[2]; + int vh[2]; + int u[2*QR5_K]; + float d8[QR5_K]; + + const int bq8_offset = QR5_K * ((iqs/2) / (QI8_1/2)); + const int * ql = (const int *)(bq5_K->qs + 16 * bq8_offset + 4 * ((iqs/2)%4)); + const int * qh = (const int *)(bq5_K->qh + 4 * ((iqs/2)%4)); + + vl[0] = ql[0]; + vl[1] = ql[4]; + + vh[0] = qh[0] >> bq8_offset; + vh[1] = qh[4] >> bq8_offset; + + const uint16_t * scales = (const uint16_t *)bq5_K->scales; + uint16_t aux[2]; + const int j = bq8_offset/2; + if (j < 2) { + aux[0] = scales[j+0] & 0x3f3f; + aux[1] = scales[j+2] & 0x3f3f; + } else { + aux[0] = ((scales[j+2] >> 0) & 0x0f0f) | ((scales[j-2] & 0xc0c0) >> 2); + aux[1] = ((scales[j+2] >> 4) & 0x0f0f) | ((scales[j-0] & 0xc0c0) >> 2); + } + const uint8_t * sc = (const uint8_t *)aux; + const uint8_t * m = sc + 2; + +#pragma unroll + for (int i = 0; i < QR5_K; ++i) { + const block_q8_1 * bq8i = bq8_1 + bq8_offset + i; + d8[i] = bq8i->ds[0]; + + const int * q8 = (const int *)bq8i->qs + ((iqs/2)%4); + u[2*i+0] = q8[0]; + u[2*i+1] = q8[4]; + } + + return vec_dot_q5_K_q8_1_impl_vmmq(vl, vh, u, sc, m, bq5_K->dm, d8); + +#else + +#if __SYCL_ARCH__ >= VER_4VEC // lowest compute capability for integer intrinsics + const block_q5_K * bq5_K = (const block_q5_K *) vbq; + + const int8_t * s = bq5_K->scales; + + const float d = bq5_K->d; + + const float d8_1 = bq8_1[0].ds[0]; + const float d8_2 = bq8_1[1].ds[1]; + + const int ui1 = *((const int *)bq8_1[0].qs + (iqs/2)); + const int ui2 = *((const int *)bq8_1[0].qs + (iqs/2) + 4); + const int ui3 = *((const int *)bq8_1[1].qs + (iqs/2)); + const int ui4 = *((const int *)bq8_1[1].qs + (iqs/2) + 4); + + const int * ql = (const int *)bq5_K->qs + (iqs/2); + const int vl1 = ql[0]; + const int vl2 = ql[4]; + + const int step = 4 * (iqs/2); // 0, 4, 8, 12 + const int im = step/8; // = 0 for iqs = 0, 2, = 1 for iqs = 4, 6 + const int in = step%8; // 0, 4, 0, 4 + const int vh = (*((const int *)(bq5_K->qh + in))) >> im; + + const int v1 = (((vh << 4) & 0x10101010) ^ 0x10101010) | ((vl1 >> 0) & 0x0f0f0f0f); + const int v2 = (((vh << 2) & 0x10101010) ^ 0x10101010) | ((vl2 >> 0) & 0x0f0f0f0f); + const int v3 = (((vh >> 0) & 0x10101010) ^ 0x10101010) | ((vl1 >> 4) & 0x0f0f0f0f); + const int v4 = (((vh >> 2) & 0x10101010) ^ 0x10101010) | ((vl2 >> 4) & 0x0f0f0f0f); + + const float sumf_d = d8_1 * (dpct::dp4a(ui1, v1, 0) * s[0] + dpct::dp4a(ui2, v2, 0) * s[1]) + + d8_2 * (dpct::dp4a(ui3, v3, 0) * s[2] + dpct::dp4a(ui4, v4, 0) * s[3]); + + return d * sumf_d; + +#else + bad_arch(); +#endif // __SYCL_ARCH__ >= VER_4VEC + +#endif +} + +static __dpct_inline__ float +vec_dot_q6_K_q8_1(const void *__restrict__ vbq, + const block_q8_1 *__restrict__ bq8_1, const int &iqs) { + + const block_q6_K * bq6_K = (const block_q6_K *) vbq; + + const int bq8_offset = 2 * QR6_K * (iqs / (QI6_K/2)) + (iqs % (QI6_K/2)) / (QI6_K/4); + const int scale_offset = (QI6_K/4) * (iqs / (QI6_K/2)) + (iqs % (QI6_K/2)) / (QI6_K/8); + const int vh_shift = 2 * ((iqs % (QI6_K/2)) / (QI6_K/4)); + + const int vl = get_int_from_uint8(bq6_K->ql, iqs); + const int vh = get_int_from_uint8(bq6_K->qh, (QI6_K/4) * (iqs / (QI6_K/2)) + iqs % (QI6_K/4)) >> vh_shift; + + const int8_t * scales = bq6_K->scales + scale_offset; + + int u[QR6_K]; + float d8[QR6_K]; + +#pragma unroll + for (int i = 0; i < QR6_K; ++i) { + u[i] = get_int_from_int8_aligned(bq8_1[bq8_offset + 2*i].qs, iqs % QI8_1); + d8[i] = bq8_1[bq8_offset + 2 * i].ds[0]; + } + + return vec_dot_q6_K_q8_1_impl_mmvq(vl, vh, u, scales, bq6_K->d, d8); +} + + +static __dpct_inline__ float +vec_dot_iq2_xxs_q8_1(const void *__restrict__ vbq, + const block_q8_1 *__restrict__ bq8_1, const int &iqs, + const uint64_t *iq2xxs_grid, const uint8_t *ksigns_iq2xs, + const uint8_t *kmask_iq2xs) { +#if QK_K == 256 + const block_iq2_xxs * bq2 = (const block_iq2_xxs *) vbq; + +#if QR2_XXS == 8 + const int ib32 = iqs; + const uint16_t * q2 = bq2->qs + 4*ib32; + const uint8_t * aux8 = (const uint8_t *)q2; + const int8_t * q8 = bq8_1[ib32].qs; + uint32_t aux32 = q2[2] | (q2[3] << 16); + int sumi = 0; + for (int l = 0; l < 4; ++l) { + const uint8_t * grid = (const uint8_t *)(iq2xxs_grid + aux8[l]); + const uint8_t signs = ksigns_iq2xs[aux32 & 127]; + for (int j = 0; j < 8; ++j) { + sumi += q8[j] * grid[j] * (signs & kmask_iq2xs[j] ? -1 : 1); + } + q8 += 8; + aux32 >>= 7; + } + const float d = (float)bq2->d * (0.5f + aux32) * bq8_1[ib32].ds[0] * 0.25f; + return d * sumi; +#else + // iqs is 0...15 + const int ib32 = iqs/2; + const int il = iqs%2; + const uint16_t * q2 = bq2->qs + 4*ib32; + const uint8_t * aux8 = (const uint8_t *)q2; + const uint8_t * grid1 = (const uint8_t *)(iq2xxs_grid + aux8[2*il+0]); + const uint8_t * grid2 = (const uint8_t *)(iq2xxs_grid + aux8[2*il+1]); + const uint32_t aux32 = q2[2] | (q2[3] << 16); + const float d = (float)bq2->d * (0.5f + (aux32 >> 28)) * bq8_1[ib32].ds[0] * 0.25f; + const uint8_t signs1 = ksigns_iq2xs[(aux32 >> 14*il) & 127]; + const uint8_t signs2 = ksigns_iq2xs[(aux32 >> (14*il + 7)) & 127]; + const int8_t * q8 = bq8_1[ib32].qs + 16*il; + int sumi1 = 0, sumi2 = 0; + for (int j = 0; j < 8; ++j) { + sumi1 += q8[j+0] * grid1[j] * (signs1 & kmask_iq2xs[j] ? -1 : 1); + sumi2 += q8[j+8] * grid2[j] * (signs2 & kmask_iq2xs[j] ? -1 : 1); + } + return d * (sumi1 + sumi2); +#endif +#else + assert(false); + return 0.f; +#endif +} + +static __dpct_inline__ float +vec_dot_iq2_xs_q8_1(const void *__restrict__ vbq, + const block_q8_1 *__restrict__ bq8_1, const int &iqs, + const uint64_t *iq2xs_grid, const uint64_t *ksigns64) { +#if DPCT_COMPATIBILITY_TEMP >= \ + MIN_CC_DP4A // lowest compute capability for integer intrinsics +#if QK_K == 256 + const block_iq2_xs * bq2 = (const block_iq2_xs *) vbq; + + const int ib32 = iqs; + const uint16_t * q2 = bq2->qs + 4*ib32; + const int8_t * q8 = bq8_1[ib32].qs; + const uint8_t ls1 = bq2->scales[ib32] & 0xf; + const uint8_t ls2 = bq2->scales[ib32] >> 4; + int sumi1 = 0; + for (int l = 0; l < 2; ++l) { + const uint32_t * grid = (const uint32_t *)(iq2xs_grid + (q2[l] & 511)); + const uint32_t * signs = (const uint32_t *)(ksigns64 + (q2[l] >> 9)); + const int grid_l = dpct::vectorized_binary( + grid[0] ^ signs[0], signs[0], std::minus<>()); + const int grid_h = dpct::vectorized_binary( + grid[1] ^ signs[1], signs[1], std::minus<>()); + sumi1 = dpct::dp4a(grid_l, *((const int *)q8 + 0), sumi1); + sumi1 = dpct::dp4a(grid_h, *((const int *)q8 + 1), sumi1); + q8 += 8; + } + int sumi2 = 0; + for (int l = 2; l < 4; ++l) { + const uint32_t * grid = (const uint32_t *)(iq2xs_grid + (q2[l] & 511)); + const uint32_t * signs = (const uint32_t *)(ksigns64 + (q2[l] >> 9)); + const int grid_l = dpct::vectorized_binary( + grid[0] ^ signs[0], signs[0], std::minus<>()); + const int grid_h = dpct::vectorized_binary( + grid[1] ^ signs[1], signs[1], std::minus<>()); + sumi2 = dpct::dp4a(grid_l, *((const int *)q8 + 0), sumi2); + sumi2 = dpct::dp4a(grid_h, *((const int *)q8 + 1), sumi2); + q8 += 8; + } + const float d = (float)bq2->d * bq8_1[ib32].ds[0] * 0.25f; + return d * ((0.5f + ls1) * sumi1 + (0.5f + ls2) * sumi2); +#else + assert(false); + return 0.f; +#endif +#else + assert(false); + return 0.f; +#endif +} + +static __dpct_inline__ float +vec_dot_iq2_s_q8_1(const void *__restrict__ vbq, + const block_q8_1 *__restrict__ bq8_1, const int &iqs) { +#if QK_K == 256 + const block_iq2_s * bq2 = (const block_iq2_s *) vbq; + + const int ib32 = iqs; + const int8_t * q8 = bq8_1[ib32].qs; + const uint8_t * signs = bq2->qs + QK_K/8 + 4*ib32; + const uint8_t ls1 = bq2->scales[ib32] & 0xf; + const uint8_t ls2 = bq2->scales[ib32] >> 4; + int sumi1 = 0; + for (int l = 0; l < 2; ++l) { + const uint32_t * grid = (const uint32_t *)(iq2s_grid + (bq2->qs[4*ib32+l] | ((bq2->qh[ib32] << (8-2*l)) & 0x300))); + const uint32_t signs0 = dpct::vectorized_binary( + ((signs[l] & 0xf) * 0x01010101) & 0x08040201, 0x08040201, + std::equal_to<>()); + const uint32_t signs1 = dpct::vectorized_binary( + ((signs[l] >> 4) * 0x01010101) & 0x08040201, 0x08040201, + std::equal_to<>()); + const int grid_l = dpct::vectorized_binary( + grid[0] ^ signs0, signs0, std::minus<>()); + const int grid_h = dpct::vectorized_binary( + grid[1] ^ signs1, signs1, std::minus<>()); + sumi1 = dpct::dp4a(grid_l, *((const int *)q8 + 0), sumi1); + sumi1 = dpct::dp4a(grid_h, *((const int *)q8 + 1), sumi1); + q8 += 8; + } + int sumi2 = 0; + for (int l = 2; l < 4; ++l) { + const uint32_t * grid = (const uint32_t *)(iq2s_grid + (bq2->qs[4*ib32+l] | ((bq2->qh[ib32] << (8-2*l)) & 0x300))); + const uint32_t signs0 = dpct::vectorized_binary( + ((signs[l] & 0xf) * 0x01010101) & 0x08040201, 0x08040201, + std::equal_to<>()); + const uint32_t signs1 = dpct::vectorized_binary( + ((signs[l] >> 4) * 0x01010101) & 0x08040201, 0x08040201, + std::equal_to<>()); + const int grid_l = dpct::vectorized_binary( + grid[0] ^ signs0, signs0, std::minus<>()); + const int grid_h = dpct::vectorized_binary( + grid[1] ^ signs1, signs1, std::minus<>()); + sumi2 = dpct::dp4a(grid_l, *((const int *)q8 + 0), sumi2); + sumi2 = dpct::dp4a(grid_h, *((const int *)q8 + 1), sumi2); + q8 += 8; + } + const float d = (float)bq2->d * bq8_1[ib32].ds[0] * 0.25f; + return d * ((0.5f + ls1) * sumi1 + (0.5f + ls2) * sumi2); +#else + assert(false); +#endif +} + +static __dpct_inline__ float +vec_dot_iq3_xxs_q8_1(const void *__restrict__ vbq, + const block_q8_1 *__restrict__ bq8_1, const int &iqs, + const uint32_t *iq3xxs_grid, const uint64_t *ksigns64) { +#if DPCT_COMPATIBILITY_TEMP >= \ + MIN_CC_DP4A // lowest compute capability for integer intrinsics +#if QK_K == 256 + const block_iq3_xxs * bq2 = (const block_iq3_xxs *) vbq; + + const int ib32 = iqs; + const uint8_t * q3 = bq2->qs + 8*ib32; + const uint16_t * gas = (const uint16_t *)(bq2->qs + QK_K/4) + 2*ib32; + const int8_t * q8 = bq8_1[ib32].qs; + uint32_t aux32 = gas[0] | (gas[1] << 16); + int sumi = 0; + for (int l = 0; l < 4; ++l) { + const uint32_t * grid1 = iq3xxs_grid + q3[2*l+0]; + const uint32_t * grid2 = iq3xxs_grid + q3[2*l+1]; + const uint32_t * signs = (const uint32_t *)(ksigns64 + (aux32 & 127)); + const int grid_l = dpct::vectorized_binary( + grid1[0] ^ signs[0], signs[0], std::minus<>()); + const int grid_h = dpct::vectorized_binary( + grid2[0] ^ signs[1], signs[1], std::minus<>()); + sumi = dpct::dp4a(grid_l, *((int *)q8 + 0), sumi); + sumi = dpct::dp4a(grid_h, *((int *)q8 + 1), sumi); + q8 += 8; + aux32 >>= 7; + } + const float d = (float)bq2->d * (0.5f + aux32) * bq8_1[ib32].ds[0] * 0.5f; + return d * sumi; +#else + assert(false); + return 0.f; +#endif +#else + assert(false); + return 0.f; +#endif +} + +static __dpct_inline__ float +vec_dot_iq3_s_q8_1(const void *__restrict__ vbq, + const block_q8_1 *__restrict__ bq8_1, const int &iqs, + const uint32_t *iq3s_grid) { +#if QK_K == 256 + const block_iq3_s * bq2 = (const block_iq3_s *) vbq; + + const int ib32 = iqs; + const uint8_t * qs = bq2->qs + 8*ib32; + const int8_t * q8 = bq8_1[ib32].qs; + int sumi = 0; + for (int l = 0; l < 4; ++l) { + const uint32_t * grid1 = iq3s_grid + (qs[2*l+0] | ((bq2->qh[ib32] << (8 - 2*l)) & 256)); + const uint32_t * grid2 = iq3s_grid + (qs[2*l+1] | ((bq2->qh[ib32] << (7 - 2*l)) & 256)); + uint32_t signs0 = dpct::vectorized_binary( + ((bq2->signs[4 * ib32 + l] & 0xf) * 0x01010101) & 0x08040201, + 0x08040201, std::equal_to<>()); + uint32_t signs1 = dpct::vectorized_binary( + ((bq2->signs[4 * ib32 + l] >> 4) * 0x01010101) & 0x08040201, + 0x08040201, std::equal_to<>()); + const int grid_l = dpct::vectorized_binary( + grid1[0] ^ signs0, signs0, std::minus<>()); + const int grid_h = dpct::vectorized_binary( + grid2[0] ^ signs1, signs1, std::minus<>()); + sumi = dpct::dp4a(grid_l, *((int *)q8 + 0), sumi); + sumi = dpct::dp4a(grid_h, *((int *)q8 + 1), sumi); + q8 += 8; + } + const float d = + (float)bq2->d * + (1 + 2 * ((bq2->scales[ib32 / 2] >> 4 * (ib32 % 2)) & 0xf)) * + bq8_1[ib32].ds[0]; + return d * sumi; +#else + assert(false); +#endif +} + +static __dpct_inline__ float +vec_dot_iq1_s_q8_1(const void *__restrict__ vbq, + const block_q8_1 *__restrict__ bq8_1, const int &iqs, + const uint32_t *iq1s_grid_gpu) { +#if QK_K == 256 + const block_iq1_s * bq1 = (const block_iq1_s *) vbq; + + const int ib32 = iqs; + int sumi = 0; + const int * q8 = (const int *)bq8_1[ib32].qs; + for (int l = 0; l < 4; ++l) { + const int * grid = (const int *)(iq1s_grid_gpu + (bq1->qs[4*ib32+l] | (((bq1->qh[ib32] >> 3*l) & 7) << 8))); + int grid0 = grid[0] & 0x0f0f0f0f; + int grid1 = (grid[0] >> 4) & 0x0f0f0f0f; + sumi = dpct::dp4a(q8[2 * l + 1], grid1, + dpct::dp4a(q8[2 * l + 0], grid0, sumi)); + } + + const float delta = bq1->qh[ib32] & 0x8000 ? -1-IQ1S_DELTA : -1+IQ1S_DELTA; + const float d1q = (float)bq1->d * (2*((bq1->qh[ib32] >> 12) & 7) + 1); + const float d = d1q * bq8_1[ib32].ds[0]; + const float m = d1q * bq8_1[ib32].ds[1]; + return d * sumi + m * delta; +#else + assert(false); +#endif +} + +static __dpct_inline__ float +vec_dot_iq1_m_q8_1(const void *__restrict__ vbq, + const block_q8_1 *__restrict__ bq8_1, const int &iqs) { +#if QK_K == 256 + const block_iq1_m * bq1 = (const block_iq1_m *) vbq; + + const int ib32 = iqs; + int sumi[2] = {0, 0}; + float sumf[2] = {0.f, 0.f}; + + const int * q8 = (const int *)bq8_1[ib32].qs; + for (int l = 0; l < 4; ++l) { + const int * grid = (const int *)(iq1s_grid_gpu + (bq1->qs[4*ib32+l] | (((bq1->qh[2*ib32+l/2] >> 4*(l%2)) & 7) << 8))); + int grid0 = grid[0] & 0x0f0f0f0f; + int grid1 = (grid[0] >> 4) & 0x0f0f0f0f; + sumi[l / 2] = dpct::dp4a(q8[2 * l + 1], grid1, + dpct::dp4a(q8[2 * l + 0], grid0, sumi[l / 2])); + const float delta = (bq1->qh[2*ib32+l/2] >> 4*(l%2)) & 0x08 ? -1-IQ1M_DELTA : -1+IQ1M_DELTA; + const int sumy = dpct::dp4a(q8[2 * l + 1], 0x01010101, + dpct::dp4a(q8[2 * l + 0], 0x01010101, 0)); + sumf[l/2] += delta*sumy; + } + + iq1m_scale_t scale; + const uint16_t * sc = (const uint16_t *)bq1->scales; + scale.u16 = (sc[0] >> 12) | ((sc[1] >> 8) & 0x00f0) | ((sc[2] >> 4) & 0x0f00) | (sc[3] & 0xf000); + const float d = (float)scale.f16 * bq8_1[ib32].ds[0]; + return d * ((sumi[0] + sumf[0]) * (2*((sc[ib32/2] >> 6*(ib32%2)) & 0x7) + 1) + (sumi[1] + sumf[1]) * (2*((sc[ib32/2] >> (6*(ib32%2)+3)) & 0x7) + 1)); +#else + assert(false); +#endif +} + + +static __dpct_inline__ float +vec_dot_iq4_nl_q8_1(const void *__restrict__ vbq, + const block_q8_1 *__restrict__ bq8_1, const int &iqs) { + + const block_iq4_nl * bq = (const block_iq4_nl *) vbq; + + const uint16_t * q4 = (const uint16_t *)bq->qs + 2*iqs; + const int32_t * q8 = (const int32_t *)bq8_1->qs + iqs; + + const uint8_t * values = (const uint8_t *)kvalues_iq4nl; + + int v1, v2; + int sumi1 = 0, sumi2 = 0; + for (int l = 0; l < VDR_Q4_0_Q8_1_MMVQ; ++l) { + const uint32_t aux = q4[2*l] | (q4[2*l+1] << 16); + get_int_from_table_16(aux, values, v1, v2); + sumi1 = dpct::dp4a(v1, q8[l + 0], sumi1); + sumi2 = dpct::dp4a(v2, q8[l + 4], sumi2); + } + + const float d = (float)bq->d * bq8_1->ds[0]; + return d * (sumi1 + sumi2); +} + + +static __dpct_inline__ float +vec_dot_iq4_xs_q8_1(const void *__restrict__ vbq, + const block_q8_1 *__restrict__ bq8_1, const int &iqs) { + +#if QK_K == 256 + const block_iq4_xs * bq4 = (const block_iq4_xs *) vbq; + const uint8_t * values = (const uint8_t *)kvalues_iq4nl; + + // iqs is 0...7 + const int ib32 = iqs; + const int32_t * q8 = (const int *)bq8_1[ib32].qs; + const uint32_t * q4 = (const uint32_t *)bq4->qs + 4*ib32; + const int8_t ls = ((bq4->scales_l[ib32/2] >> 4*(ib32%2)) & 0xf) | (((bq4->scales_h >> 2*ib32) & 3) << 4); + const float d = (float)bq4->d * (ls - 32) * bq8_1[ib32].ds[0]; + int v1, v2; + int sumi1 = 0, sumi2 = 0; + for (int j = 0; j < 4; ++j) { + get_int_from_table_16(q4[j], values, v1, v2); + sumi1 = dpct::dp4a(v1, q8[j + 0], sumi1); + sumi2 = dpct::dp4a(v2, q8[j + 4], sumi2); + } + return d * (sumi1 + sumi2); +#else + assert(false); +#endif +} + +#endif // GGML_SYCL_VECDOTQ_HPP From a04a953cab583f0229e7b4b506346e3e9a85c8d0 Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Wed, 19 Jun 2024 13:04:36 +0300 Subject: [PATCH 105/131] codecov : remove (#8004) --- .github/labeler.yml | 1 - .github/workflows/code-coverage.yml | 40 ----------------------------- codecov.yml | 14 ---------- 3 files changed, 55 deletions(-) delete mode 100644 .github/workflows/code-coverage.yml delete mode 100644 codecov.yml diff --git a/.github/labeler.yml b/.github/labeler.yml index 97d739b5811e8..5c12bab735e9c 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -42,7 +42,6 @@ build: - cmake/** - CMakeLists.txt - CMakePresets.json - - codecov.yml examples: - changed-files: - any-glob-to-any-file: examples/** diff --git a/.github/workflows/code-coverage.yml b/.github/workflows/code-coverage.yml deleted file mode 100644 index f12c558f81bae..0000000000000 --- a/.github/workflows/code-coverage.yml +++ /dev/null @@ -1,40 +0,0 @@ -name: Code Coverage -on: [push, pull_request] - -env: - GGML_NLOOP: 3 - GGML_N_THREADS: 1 - -concurrency: - group: ${{ github.workflow }}-${{ github.head_ref && github.ref || github.run_id }} - cancel-in-progress: true - -jobs: - run: - runs-on: ubuntu-20.04 - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Dependencies - run: | - sudo apt-get update - sudo apt-get install build-essential gcc-8 lcov - - - name: Build - run: CC=gcc-8 make -j LLAMA_CODE_COVERAGE=1 tests - - - name: Run tests - run: CC=gcc-8 make test - - - name: Generate coverage report - run: | - make coverage - make lcov-report - - - name: Upload coverage to Codecov - uses: codecov/codecov-action@v3 - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - with: - files: lcov-report/coverage.info diff --git a/codecov.yml b/codecov.yml deleted file mode 100644 index a301c5b2c7694..0000000000000 --- a/codecov.yml +++ /dev/null @@ -1,14 +0,0 @@ -comment: off - -coverage: - status: - project: - default: - target: auto - threshold: 0 - base: auto - patch: - default: - target: auto - threshold: 0 - base: auto From 9c77ec1d74874ee22bdef8f110e8e8d41389abf2 Mon Sep 17 00:00:00 2001 From: slaren Date: Wed, 19 Jun 2024 15:04:15 +0200 Subject: [PATCH 106/131] ggml : synchronize threads using barriers (#7993) --- .github/workflows/server.yml | 14 +++ ggml.c | 217 +++++++++++------------------------ 2 files changed, 81 insertions(+), 150 deletions(-) diff --git a/.github/workflows/server.yml b/.github/workflows/server.yml index 1fee9ac281943..6155e94156e42 100644 --- a/.github/workflows/server.yml +++ b/.github/workflows/server.yml @@ -87,8 +87,22 @@ jobs: exit 1 fi + - name: Build (no OpenMP) + id: cmake_build_no_openmp + if: ${{ matrix.sanitizer == 'THREAD' }} + run: | + cmake -B build \ + -DLLAMA_NATIVE=OFF \ + -DLLAMA_BUILD_SERVER=ON \ + -DLLAMA_CURL=ON \ + -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \ + -DLLAMA_SANITIZE_${{ matrix.sanitizer }}=ON \ + -DLLAMA_OPENMP=OFF ; + cmake --build build --config ${{ matrix.build_type }} -j $(nproc) --target llama-server + - name: Build id: cmake_build + if: ${{ matrix.sanitizer != 'THREAD' }} run: | cmake -B build \ -DLLAMA_NATIVE=OFF \ diff --git a/ggml.c b/ggml.c index d5d33c2ba1029..778ca3fdf1f8f 100644 --- a/ggml.c +++ b/ggml.c @@ -1753,9 +1753,8 @@ struct ggml_compute_state_shared { int n_threads; // synchronization primitives - atomic_int n_active; // num active threads - atomic_int node_n; // active graph node - atomic_int node_task; // active graph node task phase + atomic_int n_barrier; + atomic_int n_barrier_passed; ggml_abort_callback abort_callback; // abort ggml_graph_compute when true void* abort_callback_data; @@ -18972,47 +18971,49 @@ static int ggml_get_n_tasks(struct ggml_tensor * node, int n_threads, int n_cur_ return n_tasks; } -static void ggml_graph_compute_thread_sync_node(int * node_n, struct ggml_compute_state * state, const bool do_yield) { - // wait for other threads to finish - const int last_node_n = * node_n; - - while (true) { - if (do_yield) { - sched_yield(); - } - - *node_n = atomic_load(&state->shared->node_n); - if (*node_n != last_node_n) { - break; - } - -#if defined(__SSE3__) - // Tell the processor we're spinning. It's a processor hint for spinlocks. - _mm_pause(); -#endif +#ifdef GGML_USE_OPENMP +static void ggml_barrier(struct ggml_compute_state * state) { + if (state->shared->n_threads == 1) { + return; } + + #pragma omp barrier } +#else +static void ggml_barrier(struct ggml_compute_state * state) { + if (state->shared->n_threads == 1) { + return; + } -static void ggml_graph_compute_thread_sync_task(int * task_phase, struct ggml_compute_state * state, const bool do_yield) { - // wait for other threads to finish - const int last_task_phase = *task_phase; + atomic_int * n_barrier = &state->shared->n_barrier; + atomic_int * n_barrier_passed = &state->shared->n_barrier_passed; - while (true) { - if (do_yield) { - sched_yield(); - } + int n_threads = state->shared->n_threads; + int passed_old = atomic_load(n_barrier_passed); - *task_phase = atomic_load(&state->shared->node_task); - if (*task_phase != last_task_phase) { - break; + if (atomic_fetch_add(n_barrier, 1) == n_threads - 1) { + // last thread + atomic_store(n_barrier, 0); + atomic_fetch_add(n_barrier_passed, 1); + } else { + // wait for other threads + //while (atomic_load(n_barrier_passed) == passed_old) { + //} + const int n_spin_before_sleep = 100000; + while (true) { + for (int i = 0; i < n_spin_before_sleep; i++) { + if (atomic_load(n_barrier_passed) != passed_old) { + return; + } + #if defined(__SSE3__) + _mm_pause(); + #endif + } + sched_yield(); } - -#if defined(__SSE3__) - // Tell the processor we're spinning. It's a processor hint for spinlocks. - _mm_pause(); -#endif } } +#endif static thread_ret_t ggml_graph_compute_thread(void * data) { struct ggml_compute_state * state = (struct ggml_compute_state *) data; @@ -19020,136 +19021,54 @@ static thread_ret_t ggml_graph_compute_thread(void * data) { const struct ggml_cgraph * cgraph = state->shared->cgraph; const struct ggml_cplan * cplan = state->shared->cplan; - const int n_threads = state->shared->n_threads; + const int ith = state->ith; + const int n_threads = state->shared->n_threads; - set_numa_thread_affinity(state->ith); + set_numa_thread_affinity(ith); - int node_n = -1; - int task_phase = GGML_TASK_TYPE_FINALIZE; + struct ggml_compute_params params = { + /*.type =*/ GGML_TASK_TYPE_INIT, + /*.ith =*/ ith, + /*.nth =*/ state->shared->n_threads, + /*.wsize =*/ cplan->work_size, + /*.wdata =*/ cplan->work_data, + }; - while (true) { + for (int node_n = 0; node_n < cgraph->n_nodes; node_n++) { if (cplan->abort_callback && cplan->abort_callback(cplan->abort_callback_data)) { - state->shared->node_n += 1; state->ec = GGML_STATUS_ABORTED; return 0; } - if (atomic_fetch_sub(&state->shared->n_active, 1) == 1) { - // all other threads are finished and spinning - // do finalize and init here so we don't have synchronize again - struct ggml_compute_params params = { - /*.type =*/ GGML_TASK_TYPE_FINALIZE, - /*.ith =*/ 0, - /*.nth =*/ 0, - /*.wsize =*/ cplan->work_size, - /*.wdata =*/ cplan->work_data, - }; - - if (node_n != -1) { - /* FINALIZE */ - struct ggml_tensor * node = cgraph->nodes[node_n]; - if (GGML_OP_HAS_FINALIZE[node->op]) { - params.nth = ggml_get_n_tasks(node, n_threads, state->shared->n_threads); - ggml_compute_forward(¶ms, node, state); - } - ggml_graph_compute_perf_stats_node(node, state->shared); - } - - // distribute new work or execute it direct if 1T - while (++node_n < cgraph->n_nodes) { - GGML_PRINT_DEBUG_5("%s: %d/%d\n", __func__, node_n, cgraph->n_nodes); - struct ggml_tensor * node = cgraph->nodes[node_n]; - const int n_tasks = ggml_get_n_tasks(node, n_threads, state->shared->n_threads); - - state->shared->perf_node_start_cycles = ggml_perf_cycles(); - state->shared->perf_node_start_time_us = ggml_perf_time_us(); - - params.nth = n_tasks; - - if (n_tasks == 1) { - /* INIT */ - if (GGML_OP_HAS_INIT[node->op]) { - params.type = GGML_TASK_TYPE_INIT; - ggml_compute_forward(¶ms, node, state); - } - - // TODO: maybe push node_n to the atomic but if other threads see n_tasks is 1, - // they do something more efficient than spinning (?) - params.type = GGML_TASK_TYPE_COMPUTE; - ggml_compute_forward(¶ms, node, state); - - if (GGML_OP_HAS_FINALIZE[node->op]) { - params.type = GGML_TASK_TYPE_FINALIZE; - ggml_compute_forward(¶ms, node, state); - } - - ggml_graph_compute_perf_stats_node(node, state->shared); - } else { - break; - } - - if (cplan->abort_callback && cplan->abort_callback(cplan->abort_callback_data)) { - break; - } - } - - task_phase = GGML_TASK_TYPE_INIT; - atomic_store(&state->shared->n_active, n_threads); - atomic_store(&state->shared->node_n, node_n); - atomic_store(&state->shared->node_task, task_phase); - } else { - ggml_graph_compute_thread_sync_node(&node_n, state, false); - ggml_graph_compute_thread_sync_task(&task_phase, state, false); - } - - // check if we should stop - if (node_n >= cgraph->n_nodes) break; - - /* INIT & COMPUTE */ struct ggml_tensor * node = cgraph->nodes[node_n]; const int n_tasks = ggml_get_n_tasks(node, n_threads, state->shared->n_threads); - struct ggml_compute_params params = { - /*.type =*/ GGML_TASK_TYPE_INIT, - /*.ith =*/ state->ith, - /*.nth =*/ n_tasks, - /*.wsize =*/ cplan->work_size, - /*.wdata =*/ cplan->work_data, - }; + params.nth = n_tasks; - if (state->ith < n_tasks) { - if (GGML_OP_HAS_INIT[node->op]) { + /* INIT */ + if (GGML_OP_HAS_INIT[node->op]) { + if (ith < n_tasks) { + params.type = GGML_TASK_TYPE_INIT; ggml_compute_forward(¶ms, node, state); } + ggml_barrier(state); } - if (atomic_fetch_sub(&state->shared->n_active, 1) == 1) { - task_phase = GGML_TASK_TYPE_COMPUTE; - atomic_store(&state->shared->n_active, n_threads); - atomic_store(&state->shared->node_task, task_phase); - } - else { - // TODO: this sched_yield can have significant impact on the performance - either positive or negative - // depending on the workload and the operating system. - // since it is not clear what is the best approach, it should potentially become user-configurable - // ref: https://github.com/ggerganov/ggml/issues/291 - // UPD: adding the do_yield flag seems to resolve the issue universally - const bool do_yield = node_n < 0 || cgraph->nodes[node_n]->op == GGML_OP_MUL_MAT; - ggml_graph_compute_thread_sync_task(&task_phase, state, do_yield); - } - - if (state->ith < n_tasks) { + /* COMPUTE */ + if (ith < n_tasks) { params.type = GGML_TASK_TYPE_COMPUTE; ggml_compute_forward(¶ms, node, state); } - if (atomic_fetch_sub(&state->shared->n_active, 1) == 1) { - task_phase = GGML_TASK_TYPE_FINALIZE; - atomic_store(&state->shared->n_active, n_threads); - atomic_store(&state->shared->node_task, task_phase); - } - else { - ggml_graph_compute_thread_sync_task(&task_phase, state, false); + ggml_barrier(state); + + /* FINALIZE */ + if (GGML_OP_HAS_FINALIZE[node->op]) { + if (params.ith == 0) { + params.type = GGML_TASK_TYPE_FINALIZE; + ggml_compute_forward(¶ms, node, state); + } + ggml_barrier(state); } } @@ -19336,7 +19255,6 @@ static enum ggml_status ggml_graph_compute_parallel(struct ggml_compute_state * // update the number of threads from the actual number of threads that we got from OpenMP n_threads = omp_get_num_threads(); workers[0].shared->n_threads = n_threads; - workers[0].shared->n_active = n_threads; } ggml_graph_compute_thread(&workers[omp_get_thread_num()]); } @@ -19399,9 +19317,8 @@ enum ggml_status ggml_graph_compute(struct ggml_cgraph * cgraph, struct ggml_cpl /*.perf_node_start_cycles =*/ 0, /*.perf_node_start_time_us =*/ 0, /*.n_threads =*/ n_threads, - /*.n_active =*/ n_threads, - /*.node_n =*/ -1, - /*.node_task =*/ GGML_TASK_TYPE_FINALIZE, + /*.n_barrier =*/ 0, + /*.n_barrier_passed =*/ 0, /*.abort_callback =*/ NULL, /*.abort_callback_data =*/ NULL, /*.current_chunk; =*/ 0, From a7854743c5e6216a6178824a603aa9479728ddd5 Mon Sep 17 00:00:00 2001 From: Michael de Gans Date: Wed, 19 Jun 2024 13:10:42 -0700 Subject: [PATCH 107/131] un-ignore `build-info.cmake` and `build-info.sh` (#7996) * un-ignore `build-info.cmake` and `build-info.sh` I am assuming that ignoring them was unintentional. If they are ignored, some tools, like cargo, will consider the files inexistent, even if they're comitted, for the purpose of publishing. This leads to the build failing in such cases. * un-ignore `build-info.cpp.in` For the same reason as the previous two files. * Reorganize `.gitignore` * Add exceptions for files mentioned by @slaren I did leave .clang-tidy since it was explicitly ignored before. * Add comments for organization * Sort some lines for pretty * Test with `make` and `cmake` builds to ensure no build artifacts might be comitted * Remove `.clang-tidy` from `.gitignore` Per comment by @ggerganov * Remove `IDEWorkspaceChecks.plist` from root-level `.gitignore` --- .gitignore | 109 ++++++++++++++++++++++++++++++++++------------------- 1 file changed, 71 insertions(+), 38 deletions(-) diff --git a/.gitignore b/.gitignore index 5296594952c4a..a0c16e880b719 100644 --- a/.gitignore +++ b/.gitignore @@ -1,90 +1,123 @@ -*.o +# Extensions + *.a -*.so -*.gguf -*.gguf.json +*.bat *.bin -*.exe *.dll -*.log -*.gcov -*.gcno -*.gcda *.dot -*.bat -*.tmp -*.metallib *.etag +*.exe +*.gcda +*.gcno +*.gcov +*.gguf +*.gguf.json *.lastModified -.DS_Store -.build/ +*.log +*.metallib +*.o +*.so +*.tmp + +# IDE / OS + .cache/ .ccls-cache/ .direnv/ +.DS_Store .envrc +.idea/ .swiftpm -.venv -.clang-tidy .vs/ .vscode/ -.idea/ +nppBackup -ggml-metal-embed.metal -lcov-report/ +# Coverage + gcovr-report/ +lcov-report/ + +# Build Artifacts tags +.build/ build* +!build-info.cmake +!build-info.cpp.in +!build-info.sh !build.zig -cmake-build-* +/libllama.so +/llama-* android-ndk-* +arm_neon.h +cmake-build-* +CMakeSettings.json +compile_commands.json +ggml-metal-embed.metal +llama-batched-swift out/ tmp/ +# CI + +!.github/workflows/*.yml + +# Models + models/* models-mnt +!models/.editorconfig +!models/ggml-vocab-*.gguf* -/Pipfile -/libllama.so -/llama-* -llama-batched-swift -/common/build-info.cpp -arm_neon.h -compile_commands.json -CMakeSettings.json - -__pycache__ -dist +# Zig zig-out/ zig-cache/ +# Logs + ppl-*.txt qnt-*.txt perf-*.txt +# Examples + examples/jeopardy/results.txt +examples/server/*.css.hpp examples/server/*.html.hpp examples/server/*.js.hpp examples/server/*.mjs.hpp -examples/server/*.css.hpp +!build_64.sh +!examples/*.bat +!examples/*/*.kts +!examples/*/*/*.kts +!examples/sycl/*.bat +!examples/sycl/*.sh +# Python + +__pycache__ +.venv +/Pipfile +dist poetry.lock poetry.toml -nppBackup # Test binaries -/tests/test-grammar-parser -/tests/test-llama-grammar +/tests/test-backend-ops /tests/test-double-float /tests/test-grad0 +/tests/test-grammar-parser +/tests/test-llama-grammar /tests/test-opt /tests/test-quantize-fns /tests/test-quantize-perf +/tests/test-rope /tests/test-sampling /tests/test-tokenizer-0 -/tests/test-tokenizer-1-spm /tests/test-tokenizer-1-bpe -/tests/test-rope -/tests/test-backend-ops +/tests/test-tokenizer-1-spm + +# Scripts +!/scripts/install-oneapi.bat From ba5899315283eb1df3902363daf79bdc5eefe426 Mon Sep 17 00:00:00 2001 From: sasha0552 Date: Wed, 19 Jun 2024 23:57:10 +0000 Subject: [PATCH 108/131] server : fix smart slot selection (#8020) --- examples/server/server.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/server/server.cpp b/examples/server/server.cpp index ec59307b2881b..f9a86961f9c8e 100644 --- a/examples/server/server.cpp +++ b/examples/server/server.cpp @@ -1594,7 +1594,7 @@ struct server_context { } else { std::string prompt; if (task.data.contains("prompt") && task.data.at("prompt").is_string()) { - json_value(task.data, "prompt", std::string()); + prompt = json_value(task.data, "prompt", std::string()); } slot = get_available_slot(prompt); From 2075a66a96cc1b04eabec7cf4b3051193d6f719e Mon Sep 17 00:00:00 2001 From: Michael de Gans Date: Wed, 19 Jun 2024 22:32:01 -0700 Subject: [PATCH 109/131] metal : fix `ggml_metal_supports_op` for BF16 (#8021) Currently the Metal backend does not support BF16. `ggml_metal_supports_op` was returning true in these cases, leading to a crash with models converted with `--leave-output-tensor`. This commit checks if the first few sources types are BF16 and returns false if that's the case. --- ggml-metal.m | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/ggml-metal.m b/ggml-metal.m index f894274cacc93..79902c9a80616 100644 --- a/ggml-metal.m +++ b/ggml-metal.m @@ -735,6 +735,12 @@ static void ggml_metal_free(struct ggml_metal_context * ctx) { } static bool ggml_metal_supports_op(const struct ggml_metal_context * ctx, const struct ggml_tensor * op) { + for (size_t i = 0, n = 3; i < n; ++i) { + if (op->src[i] != NULL && op->src[i]->type == GGML_TYPE_BF16) { + return false; + } + } + switch (op->op) { case GGML_OP_UNARY: switch (ggml_get_unary_op(op)) { From d50f8897a797a5a03f31228d1b5a7b8130ee1bc2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20G=C3=A4=C3=9Fler?= Date: Thu, 20 Jun 2024 14:39:21 +0200 Subject: [PATCH 110/131] CUDA: stream-k decomposition for MMQ (#8018) * CUDA: stream-k decomposition for MMQ * fix undefined memory reads for small matrices --- ggml-cuda.cu | 2 +- ggml-cuda/common.cuh | 4 +- ggml-cuda/mmq.cu | 20 +-- ggml-cuda/mmq.cuh | 377 +++++++++++++++++++++++++++++++------------ 4 files changed, 291 insertions(+), 112 deletions(-) diff --git a/ggml-cuda.cu b/ggml-cuda.cu index b8298ab205e60..f914efd712665 100644 --- a/ggml-cuda.cu +++ b/ggml-cuda.cu @@ -635,7 +635,7 @@ static int64_t get_row_rounding(const std::array & } const int cc = ggml_cuda_info().devices[id].cc; - row_rounding = std::max(row_rounding, (int64_t)get_mmq_y_host(cc, get_mmq_x_max_host(cc))); + row_rounding = std::max(row_rounding, (int64_t)get_mmq_y_host(cc)); } return row_rounding; } diff --git a/ggml-cuda/common.cuh b/ggml-cuda/common.cuh index de7c2e4349ede..5bd24ebe5fa79 100644 --- a/ggml-cuda/common.cuh +++ b/ggml-cuda/common.cuh @@ -652,8 +652,8 @@ static int get_mmq_x_max_host(const int cc) { } // Round rows to this value for --split-mode row: -static int get_mmq_y_host(const int cc, const int mmq_x) { - return cc >= CC_VOLTA && mmq_x >= 32 ? 128 : 64; +static int get_mmq_y_host(const int cc) { + return cc >= CC_VOLTA ? 128 : 64; } ////////////////////// diff --git a/ggml-cuda/mmq.cu b/ggml-cuda/mmq.cu index 1d6b9e6982b6e..6dbd85feff2fa 100644 --- a/ggml-cuda/mmq.cu +++ b/ggml-cuda/mmq.cu @@ -30,34 +30,34 @@ void ggml_cuda_op_mul_mat_q( switch (src0->type) { case GGML_TYPE_Q4_0: - mul_mat_q_case(args, stream); + mul_mat_q_case(ctx, args, stream); break; case GGML_TYPE_Q4_1: - mul_mat_q_case(args, stream); + mul_mat_q_case(ctx, args, stream); break; case GGML_TYPE_Q5_0: - mul_mat_q_case(args, stream); + mul_mat_q_case(ctx, args, stream); break; case GGML_TYPE_Q5_1: - mul_mat_q_case(args, stream); + mul_mat_q_case(ctx, args, stream); break; case GGML_TYPE_Q8_0: - mul_mat_q_case(args, stream); + mul_mat_q_case(ctx, args, stream); break; case GGML_TYPE_Q2_K: - mul_mat_q_case(args, stream); + mul_mat_q_case(ctx, args, stream); break; case GGML_TYPE_Q3_K: - mul_mat_q_case(args, stream); + mul_mat_q_case(ctx, args, stream); break; case GGML_TYPE_Q4_K: - mul_mat_q_case(args, stream); + mul_mat_q_case(ctx, args, stream); break; case GGML_TYPE_Q5_K: - mul_mat_q_case(args, stream); + mul_mat_q_case(ctx, args, stream); break; case GGML_TYPE_Q6_K: - mul_mat_q_case(args, stream); + mul_mat_q_case(ctx, args, stream); break; default: GGML_ASSERT(false); diff --git a/ggml-cuda/mmq.cuh b/ggml-cuda/mmq.cuh index 6d57974fb4e7c..e2d07c20253ae 100644 --- a/ggml-cuda/mmq.cuh +++ b/ggml-cuda/mmq.cuh @@ -8,6 +8,7 @@ #include #define MMQ_TILE_Y_K (WARP_SIZE + WARP_SIZE/QI8_1) +#define MMQ_NWARPS 8 typedef void (*load_tiles_mmq_t)( const char * __restrict__ x, int * __restrict__ x_qs, half2 * __restrict__ x_dm, @@ -15,7 +16,7 @@ typedef void (*load_tiles_mmq_t)( typedef void (*vec_dot_mmq_t)( const int * __restrict__ x_qs, const half2 * __restrict__ x_dm, const int * __restrict__ x_sc, const int * __restrict__ y, float * __restrict__ sum, const int & k0); -typedef void (*mmq_write_back_t)(const float * __restrict__ sum, float * __restrict__ dst, const int & ne0, const int & ne1); +typedef void (*mmq_write_back_t)(const float * __restrict__ sum, float * __restrict__ dst, const int & stride, const int & i_max, const int & j_max); struct block_q8_1_mmq { half2 ds[4]; @@ -50,21 +51,17 @@ static constexpr __device__ int get_mmq_x_max_device() { // get_mmq_y_host is in common.cuh so that it can be used to determine the correct way to round for --split-mode row +static constexpr __device__ int get_mmq_y_device() { #if defined(GGML_USE_HIPBLAS) && defined(__HIP_PLATFORM_AMD__) -static constexpr __device__ int get_mmq_y_device(int mmq_x) { - return mmq_x >= 32 ? 128 : 64; -} + return 128; #else #if __CUDA_ARCH__ >= CC_VOLTA -static constexpr __device__ int get_mmq_y_device(int mmq_x) { - return mmq_x >= 32 ? 128 : 64; -} + return 128; #else -static constexpr __device__ int get_mmq_y_device(int /*mmq_x*/) { return 64; -} #endif // __CUDA_ARCH__ >= CC_VOLTA #endif // defined(GGML_USE_HIPBLAS) && defined(__HIP_PLATFORM_AMD__) +} #define TILE_X_SIZES_Q4_0 tile_x_sizes{mmq_y*WARP_SIZE + mmq_y, mmq_y*WARP_SIZE/QI4_0 + mmq_y/QI4_0, 0} #define TILE_X_SIZES_Q4_1 tile_x_sizes{mmq_y*WARP_SIZE + mmq_y, mmq_y*WARP_SIZE/QI4_1 + mmq_y/QI4_1, 0} @@ -1734,30 +1731,34 @@ static __device__ __forceinline__ void vec_dot_q6_K_q8_1_mma( } template -static __device__ __forceinline__ void mmq_write_back_dp4a(const float * __restrict__ sum, float * __restrict__ dst, const int & ne0, const int & ne1) { +static __device__ __forceinline__ void mmq_write_back_dp4a( + const float * __restrict__ sum, float * __restrict__ dst, const int & stride, const int & i_max, const int & j_max) { + #pragma unroll for (int j0 = 0; j0 < mmq_x; j0 += nwarps) { - const int j = blockIdx.y*mmq_x + j0 + threadIdx.y; + const int j = j0 + threadIdx.y; - if (j >= ne1) { + if (j > j_max) { return; } #pragma unroll for (int i0 = 0; i0 < mmq_y; i0 += WARP_SIZE) { - const int i = blockIdx.x*mmq_y + i0 + threadIdx.x; + const int i = i0 + threadIdx.x; - if (need_check && i >= ne0) { + if (need_check && i > i_max) { continue; } - dst[j*ne0 + i] = sum[(j0/nwarps) * (mmq_y/WARP_SIZE) + i0/WARP_SIZE]; + dst[j*stride + i] = sum[(j0/nwarps) * (mmq_y/WARP_SIZE) + i0/WARP_SIZE]; } } } template -static __device__ __forceinline__ void mmq_write_back_mma(const float * __restrict__ sum, float * __restrict__ dst, const int & ne0, const int & ne1) { +static __device__ __forceinline__ void mmq_write_back_mma( + const float * __restrict__ sum, float * __restrict__ dst, const int & stride, const int & i_max, const int & j_max) { + typedef mma_int_C_I16J8 mma_C; const int i0 = threadIdx.y*mma_C::I; @@ -1769,19 +1770,19 @@ static __device__ __forceinline__ void mmq_write_back_mma(const float * __restri for (int j0 = 0; j0 < mmq_x; j0 += mma_C::J) { #pragma unroll for (int l = 0; l < mma_C::ne; ++l) { - const int j = blockIdx.y*mmq_x + j0 + mma_C::get_j(l); + const int j = j0 + mma_C::get_j(l); - if (j >= ne1) { + if (j > j_max) { continue; } - const int i = blockIdx.x*mmq_y + i0 + mma_C::get_i(l); + const int i = i0 + mma_C::get_i(l); - if (need_check && i >= ne0) { + if (need_check && i > i_max) { continue; } - dst[j*ne0 + i] = sum[(j0/mma_C::J)*mma_C::ne + l]; + dst[j*stride + i] = sum[(j0/mma_C::J)*mma_C::ne + l]; } } } @@ -1896,32 +1897,16 @@ static bool mmq_need_sum(const ggml_type type_x) { return false; } -template -#if defined(GGML_USE_HIPBLAS) && defined(__HIP_PLATFORM_AMD__) -#if defined(RDNA3) || defined(RDNA2) - __launch_bounds__(WARP_SIZE*nwarps, 2) -#endif // defined(RDNA3) || defined(RDNA2) -#else -#if __CUDA_ARCH__ >= CC_VOLTA - __launch_bounds__(WARP_SIZE*nwarps, 1) -#else - __launch_bounds__(WARP_SIZE*nwarps, 2) -#endif // __CUDA_ARCH__ >= CC_VOLTA -#endif // defined(GGML_USE_HIPBLAS) && defined(__HIP_PLATFORM_AMD__) -static __global__ void mul_mat_q( - const char * __restrict__ x, const char * __restrict__ yc, float * __restrict__ dst, - const int ne00, const int ne01, const int stride01, const int ne10, const int ne11, const int stride11, const int ne0) { - - // Skip unused template specializations for faster compilation: - if (mmq_x > get_mmq_x_max_device()) { - NO_DEVICE_CODE; - return; - } +template +static __device__ void mul_mat_q_process_tile( + const char * __restrict__ x, const char * __restrict__ yc, float * __restrict__ dst, float * __restrict__ tmp_fixup, + const int & ne00, const int & ne01, const int & stride01, const int & ne10, const int & ne11, const int & stride11, const int & ne0, + const int & it, const int & jt, const int & kb0_start, const int & kb0_stop) { constexpr int qk = ggml_cuda_type_traits::qk; constexpr int qr = ggml_cuda_type_traits::qr; constexpr int qi = ggml_cuda_type_traits::qi; - constexpr int mmq_y = get_mmq_y_device(mmq_x); + constexpr int mmq_y = get_mmq_y_device(); constexpr int vdr = mmq_type_traits::vdr; constexpr load_tiles_mmq_t load_tiles = mmq_type_traits::load_tiles; @@ -1941,20 +1926,18 @@ static __global__ void mul_mat_q( int * tile_x_sc = (int *) (tile_x_dm + txs.dm); int * tile_y = (int *) (tile_x_sc + txs.sc); // [mmq_x * (WARP_SIZE + WARP_SIZE/QI8_1)] - const int blocks_per_row_x = ne00 / qk; - const int blocks_per_warp = WARP_SIZE / qi; + constexpr int blocks_per_warp = WARP_SIZE / qi; - const int & ne1 = ne11; - - const int tile_x_max_i = ne01 - blockIdx.x*mmq_y - 1; + float sum[mmq_x*mmq_y / (nwarps*WARP_SIZE)] = {0.0f}; - const int * y = (const int *) yc + blockIdx.y*(mmq_x*sizeof(block_q8_1_mmq)/sizeof(int)); + const int tile_x_max_i = ne01 - it*mmq_y - 1; + const int tile_y_max_j = ne11 - jt*mmq_x - 1; - float sum[mmq_x*mmq_y / (nwarps*WARP_SIZE)] = {0.0f}; + const int * y = (const int *) yc + jt*(mmq_x*sizeof(block_q8_1_mmq)/sizeof(int)); - for (int kb0 = 0; kb0 < blocks_per_row_x; kb0 += blocks_per_warp) { + for (int kb0 = kb0_start; kb0 < kb0_stop; kb0 += blocks_per_warp) { - load_tiles(x, tile_x_qs, tile_x_dm, tile_x_sc, stride01*blockIdx.x*mmq_y + kb0, tile_x_max_i, stride01); + load_tiles(x, tile_x_qs, tile_x_dm, tile_x_sc, stride01*it*mmq_y + kb0, tile_x_max_i, stride01); #pragma unroll for (int kr = 0; kr < qr; ++kr) { @@ -1977,7 +1960,176 @@ static __global__ void mul_mat_q( } } - write_back(sum, dst, ne0, ne1); + if (fixup) { + write_back(sum, tmp_fixup + blockIdx.x*(mmq_x*mmq_y), mmq_y, mmq_y, mmq_x); + } else { + write_back(sum, dst + jt*mmq_x*ne0 + it*mmq_y, ne0, tile_x_max_i, tile_y_max_j); + } +} + + +// The mul_mat_q kernel implements "stream-k" work partitioning as described in https://arxiv.org/abs/2301.03598 + +template +#if defined(GGML_USE_HIPBLAS) && defined(__HIP_PLATFORM_AMD__) +#if defined(RDNA3) || defined(RDNA2) + __launch_bounds__(WARP_SIZE*nwarps, 2) +#endif // defined(RDNA3) || defined(RDNA2) +#else +#if __CUDA_ARCH__ >= CC_VOLTA + __launch_bounds__(WARP_SIZE*nwarps, 1) +#else + __launch_bounds__(WARP_SIZE*nwarps, 2) +#endif // __CUDA_ARCH__ >= CC_VOLTA +#endif // defined(GGML_USE_HIPBLAS) && defined(__HIP_PLATFORM_AMD__) +static __global__ void mul_mat_q( + const char * __restrict__ x, const char * __restrict__ yc, float * __restrict__ dst, float * __restrict__ tmp_fixup, + const int ne00, const int ne01, const int stride01, const int ne10, const int ne11, const int stride11, const int ne0) { + + // Skip unused template specializations for faster compilation: + if (mmq_x > get_mmq_x_max_device()) { + NO_DEVICE_CODE; + return; + } + + constexpr int qk = ggml_cuda_type_traits::qk; + constexpr int qi = ggml_cuda_type_traits::qi; + constexpr int mmq_y = get_mmq_y_device(); + + // On AMD or old CUDA the performance with stream-k was worse, use conventional tiling instead: +#if (defined(GGML_USE_HIPBLAS) && defined(__HIP_PLATFORM_AMD__)) || __CUDA_ARCH__ < CC_VOLTA + { + constexpr bool fixup = false; + mul_mat_q_process_tile + (x, yc, dst, tmp_fixup, ne00, ne01, stride01, ne10, ne11, stride11, ne0, + blockIdx.x, blockIdx.y, 0, ne00/qk); + return; + } +#endif // (defined(GGML_USE_HIPBLAS) && defined(__HIP_PLATFORM_AMD__)) || __CUDA_ARCH__ < CC_VOLTA + + const int64_t blocks_per_ne00 = ne00 / qk; + constexpr int blocks_per_warp = WARP_SIZE / qi; + + const int ntx = (ne11 + mmq_x - 1) / mmq_x; // Number of tiles x + const int nty = (ne01 + mmq_y - 1) / mmq_y; // Number of tiles y + + // kbc == k block continuous, current index in continuous ijk space. + int64_t kbc = GGML_PAD((int64_t) blockIdx.x *blocks_per_ne00*ntx*nty / gridDim.x, blocks_per_warp); + const int64_t kbc_stop = GGML_PAD((int64_t)(blockIdx.x + 1)*blocks_per_ne00*ntx*nty / gridDim.x, blocks_per_warp); + + // kb0 == k index when doing the matrix multiplication for an output tile. + int kb0_start = kbc % blocks_per_ne00; + int kb0_stop = min(blocks_per_ne00, kb0_start + kbc_stop - kbc); + while (kbc < kbc_stop && kb0_stop == blocks_per_ne00) { + const int jt = kbc / (blocks_per_ne00*nty); // j index of current tile. + const int it = (kbc - jt*(blocks_per_ne00*nty)) / blocks_per_ne00; // i index of current tile. + + constexpr bool fixup = false; // All but (potentially) the last iterations write their data to dst rather than the fixup buffer. + mul_mat_q_process_tile + (x, yc, dst, tmp_fixup, ne00, ne01, stride01, ne10, ne11, stride11, ne0, + it, jt, kb0_start, kb0_stop); + + kbc += blocks_per_ne00; + kbc -= kbc % blocks_per_ne00; + + kb0_start = 0; + kb0_stop = min(blocks_per_ne00, kbc_stop - kbc); + } + + if (kbc >= kbc_stop) { + return; + } + + const int jt = kbc / (blocks_per_ne00*nty); + const int it = (kbc - jt*(blocks_per_ne00*nty)) / blocks_per_ne00; + + constexpr bool fixup = true; // Last index writes it data to fixup buffer to avoid data races with other blocks. + mul_mat_q_process_tile + (x, yc, dst, tmp_fixup, ne00, ne01, stride01, ne10, ne11, stride11, ne0, + it, jt, kb0_start, kb0_stop); +} + + +template +static __global__ void mul_mat_q_stream_k_fixup( + float * __restrict__ dst, const float * __restrict__ tmp_last_tile, const int ne00, const int ne01, const int ne11, const int ne0, const int block_num_mmq) { + + constexpr int mmq_y = get_mmq_y_device(); + constexpr int qk = ggml_cuda_type_traits::qk; + constexpr int qi = ggml_cuda_type_traits::qi; + constexpr int blocks_per_warp = WARP_SIZE / qi; + const int64_t blocks_per_ne00 = ne00 / qk; + + float sum[mmq_x*mmq_y / (nwarps*WARP_SIZE)] = {0.0f}; + + const int ntx = (ne11 + mmq_x - 1) / mmq_x; + const int nty = (ne01 + mmq_y - 1) / mmq_y; + + bool any_fixup = false; + + const int bidx_start = (blockIdx.y*nty + blockIdx.x) * block_num_mmq / (gridDim.y*gridDim.x); + const int bidx_stop = (blockIdx.y*nty + blockIdx.x + 1) * block_num_mmq / (gridDim.y*gridDim.x) + 1; + + for (int bidx = bidx_start; bidx < bidx_stop; ++bidx) { + const int64_t kbc = GGML_PAD((int64_t) bidx *blocks_per_ne00*ntx*nty / block_num_mmq, blocks_per_warp); + const int64_t kbc_stop = GGML_PAD((int64_t)(bidx + 1)*blocks_per_ne00*ntx*nty / block_num_mmq, blocks_per_warp); + + // Skip fixup tile if the MMQ CUDA block never wrote anything to it: + if (kbc == kbc_stop || kbc_stop % blocks_per_ne00 == 0) { + continue; + } + + const int jt = kbc_stop / (blocks_per_ne00*nty); + const int it = (kbc_stop - jt*(blocks_per_ne00*nty)) / blocks_per_ne00; + + // Skip fixup tile if it's unrelated to the output tile assigned to this CUDA block: + if (it != blockIdx.x || jt != blockIdx.y) { + continue; + } + + any_fixup = true; + +#pragma unroll + for (int j0 = 0; j0 < mmq_x; j0 += nwarps) { + const int j = j0 + threadIdx.y; + +#pragma unroll + for (int i0 = 0; i0 < mmq_y; i0 += WARP_SIZE) { + const int i = i0 + threadIdx.x; + + sum[(j0/nwarps) * (mmq_y/WARP_SIZE) + i0/WARP_SIZE] += tmp_last_tile[bidx*(mmq_x*mmq_y) + j*mmq_y + i]; + } + } + } + + if (!any_fixup) { + return; + } + + dst += blockIdx.y*mmq_x*ne0 + blockIdx.x*mmq_y; + + const int i_max = ne01 - blockIdx.x*mmq_y - 1; + const int j_max = ne11 - blockIdx.y*mmq_x - 1; + +#pragma unroll + for (int j0 = 0; j0 < mmq_x; j0 += nwarps) { + const int j = j0 + threadIdx.y; + + if (j > j_max) { + return; + } + +#pragma unroll + for (int i0 = 0; i0 < mmq_y; i0 += WARP_SIZE) { + const int i = i0 + threadIdx.x; + + if (need_check && i > i_max) { + continue; + } + + dst[j*ne0 + i] += sum[(j0/nwarps) * (mmq_y/WARP_SIZE) + i0/WARP_SIZE]; + } + } } struct mmq_args { @@ -1987,124 +2139,151 @@ struct mmq_args { int64_t ne0; }; -constexpr int mmq_get_nwarps(int mmq_x) { - return mmq_x >= 32 ? 8 : 4; -} - static int mmq_get_shmem(const ggml_type type, const int mmq_x, const int mmq_y) { const tile_x_sizes txs = get_tile_x_sizes_host(type, mmq_y); - const int nwarps = mmq_get_nwarps(mmq_x); const int shmem_x = txs.qs*sizeof(int) + txs.dm*sizeof(half2) + txs.sc*sizeof(int); const int shmem_y = mmq_x*WARP_SIZE*sizeof(int) + mmq_x*(WARP_SIZE/QI8_1)*sizeof(half2); - return shmem_x + GGML_PAD(shmem_y, nwarps*WARP_SIZE*sizeof(int)); + return shmem_x + GGML_PAD(shmem_y, MMQ_NWARPS*WARP_SIZE*sizeof(int)); } -template -static void launch_mul_mat_q(const mmq_args & args, cudaStream_t stream) { +template +static void launch_mul_mat_q(ggml_backend_cuda_context & ctx, const mmq_args & args, cudaStream_t stream) { const int id = ggml_cuda_get_device(); const int cc = ggml_cuda_info().devices[id].cc; - const int mmq_y = get_mmq_y_host(cc, mmq_x); + const int nsm = ggml_cuda_info().devices[id].nsm; + const int mmq_y = get_mmq_y_host(cc); - const int block_num_x = (args.ne01 + mmq_y - 1) / mmq_y; - const int block_num_y = (args.ne11 + mmq_x - 1) / mmq_x; - const dim3 block_nums(block_num_x, block_num_y, 1); - const dim3 block_dims(WARP_SIZE, nwarps, 1); + const dim3 block_dims(WARP_SIZE, MMQ_NWARPS, 1); const int shmem = mmq_get_shmem(type, mmq_x, mmq_y); #if !(defined(GGML_USE_HIPBLAS) && defined(__HIP_PLATFORM_AMD__)) static bool shmem_limit_raised[GGML_CUDA_MAX_DEVICES] = {false}; if (!shmem_limit_raised[id]) { - CUDA_CHECK(cudaFuncSetAttribute(mul_mat_q, cudaFuncAttributeMaxDynamicSharedMemorySize, shmem)); - CUDA_CHECK(cudaFuncSetAttribute(mul_mat_q, cudaFuncAttributeMaxDynamicSharedMemorySize, shmem)); + CUDA_CHECK(cudaFuncSetAttribute(mul_mat_q, cudaFuncAttributeMaxDynamicSharedMemorySize, shmem)); + CUDA_CHECK(cudaFuncSetAttribute(mul_mat_q, cudaFuncAttributeMaxDynamicSharedMemorySize, shmem)); shmem_limit_raised[id] = true; } #endif // !(defined(GGML_USE_HIPBLAS) && defined(__HIP_PLATFORM_AMD__)) + const int nty = (args.ne01 + mmq_y - 1) / mmq_y; + const int ntx = (args.ne11 + mmq_x - 1) / mmq_x; + const dim3 block_nums_xy_tiling(nty, ntx, 1); + + const bool use_stream_k = cc >= CC_VOLTA && cc < CC_OFFSET_AMD; + if (!use_stream_k) { + if (args.ne01 % mmq_y == 0) { + constexpr bool need_check = false; + mul_mat_q<<>> + (args.x, args.y, args.dst, nullptr, args.ne00, args.ne01, args.stride01, args.ne10, args.ne11, args.stride11, args.ne0); + } else { + constexpr bool need_check = true; + mul_mat_q<<>> + (args.x, args.y, args.dst, nullptr, args.ne00, args.ne01, args.stride01, args.ne10, args.ne11, args.stride11, args.ne0); + } + return; + } + + const dim3 block_nums_mmq(nsm, 1, 1); + + ggml_cuda_pool & pool = ctx.pool(); + ggml_cuda_pool_alloc tmp_fixup(pool, block_nums_mmq.x * mmq_x*mmq_y); + if (args.ne01 % mmq_y == 0) { - const bool need_check = false; - mul_mat_q<<>> - (args.x, args.y, args.dst, args.ne00, args.ne01, args.stride01, args.ne10, args.ne11, args.stride11, args.ne0); + constexpr bool need_check = false; + + mul_mat_q<<>> + (args.x, args.y, args.dst, tmp_fixup.ptr, args.ne00, args.ne01, args.stride01, args.ne10, args.ne11, args.stride11, args.ne0); + + mul_mat_q_stream_k_fixup<<>> + (args.dst, tmp_fixup.ptr, args.ne00, args.ne01, args.ne11, args.ne0, block_nums_mmq.x); } else { - const bool need_check = true; - mul_mat_q<<>> - (args.x, args.y, args.dst, args.ne00, args.ne01, args.stride01, args.ne10, args.ne11, args.stride11, args.ne0); + constexpr bool need_check = true; + + mul_mat_q<<>> + (args.x, args.y, args.dst, tmp_fixup.ptr, args.ne00, args.ne01, args.stride01, args.ne10, args.ne11, args.stride11, args.ne0); + + mul_mat_q_stream_k_fixup<<>> + (args.dst, tmp_fixup.ptr, args.ne00, args.ne01, args.ne11, args.ne0, block_nums_mmq.x); } } template -void mul_mat_q_case(const mmq_args & args, cudaStream_t stream) { +void mul_mat_q_case(ggml_backend_cuda_context & ctx, const mmq_args & args, cudaStream_t stream) { const int id = ggml_cuda_get_device(); const int nsm = ggml_cuda_info().devices[id].nsm; const int cc = ggml_cuda_info().devices[id].cc; const int smpbo = ggml_cuda_info().devices[id].smpbo; const int mmq_x_max = get_mmq_x_max_host(cc); - const int mmq_y = get_mmq_y_host(cc, mmq_x_max); + const int mmq_y = get_mmq_y_host(cc); const int block_num_y = (args.ne01 + mmq_y - 1) / mmq_y; + const bool use_stream_k = cc >= CC_VOLTA && cc < CC_OFFSET_AMD; int mmq_x_best = 0; - int nwaves_best = INT_MAX; + int nparts_best = INT_MAX; + + for (int mmq_x = 8; mmq_x <= mmq_x_max && nparts_best > 1; mmq_x += 8) { + const int ntiles_x = (args.ne11 + mmq_x - 1) / mmq_x; + const int nwaves_xy_tiling = ntiles_x*block_num_y; - for (int mmq_x = 8; mmq_x <= mmq_x_max && nwaves_best > 1; mmq_x += 8) { - const int block_num_x = (args.ne11 + mmq_x - 1) / mmq_x; - const int nwaves = (block_num_x*block_num_y + nsm - 1) / nsm; + const int nparts = use_stream_k ? ntiles_x : nwaves_xy_tiling; - if (nwaves < nwaves_best && mmq_get_shmem(type, mmq_x, mmq_y) <= smpbo) { + if (nparts < nparts_best && mmq_get_shmem(type, mmq_x, mmq_y) <= smpbo) { mmq_x_best = mmq_x; - nwaves_best = nwaves; + nparts_best = nparts; } } switch (mmq_x_best) { case 8: - launch_mul_mat_q(args, stream); + launch_mul_mat_q(ctx, args, stream); break; case 16: - launch_mul_mat_q(args, stream); + launch_mul_mat_q(ctx, args, stream); break; case 24: - launch_mul_mat_q(args, stream); + launch_mul_mat_q(ctx, args, stream); break; case 32: - launch_mul_mat_q(args, stream); + launch_mul_mat_q(ctx, args, stream); break; case 40: - launch_mul_mat_q(args, stream); + launch_mul_mat_q(ctx, args, stream); break; case 48: - launch_mul_mat_q(args, stream); + launch_mul_mat_q(ctx, args, stream); break; case 56: - launch_mul_mat_q(args, stream); + launch_mul_mat_q(ctx, args, stream); break; case 64: - launch_mul_mat_q(args, stream); + launch_mul_mat_q(ctx, args, stream); break; case 72: - launch_mul_mat_q(args, stream); + launch_mul_mat_q(ctx, args, stream); break; case 80: - launch_mul_mat_q(args, stream); + launch_mul_mat_q(ctx, args, stream); break; case 88: - launch_mul_mat_q(args, stream); + launch_mul_mat_q(ctx, args, stream); break; case 96: - launch_mul_mat_q(args, stream); + launch_mul_mat_q(ctx, args, stream); break; case 104: - launch_mul_mat_q(args, stream); + launch_mul_mat_q(ctx, args, stream); break; case 112: - launch_mul_mat_q(args, stream); + launch_mul_mat_q(ctx, args, stream); break; case 120: - launch_mul_mat_q(args, stream); + launch_mul_mat_q(ctx, args, stream); break; case 128: - launch_mul_mat_q(args, stream); + launch_mul_mat_q(ctx, args, stream); break; default: fprintf(stderr, "mmq_x_best=%d\n", mmq_x_best); @@ -2114,7 +2293,7 @@ void mul_mat_q_case(const mmq_args & args, cudaStream_t stream) { } #define DECL_MMQ_CASE(type) \ - template void mul_mat_q_case(const mmq_args & args, cudaStream_t stream) \ + template void mul_mat_q_case(ggml_backend_cuda_context & ctx, const mmq_args & args, cudaStream_t stream) \ extern DECL_MMQ_CASE(GGML_TYPE_Q4_0); extern DECL_MMQ_CASE(GGML_TYPE_Q4_1); From de391e4c803383bbea054b6edd016e78c024a74d Mon Sep 17 00:00:00 2001 From: luoyu-intel Date: Thu, 20 Jun 2024 13:19:05 +0000 Subject: [PATCH 111/131] [SYCL] Fix windows build and inference (#8003) * add sycl preset * fix debug link error. fix windows crash * update README --- CMakeLists.txt | 7 +- CMakePresets.json | 31 ++- README-sycl.md | 30 ++- examples/sycl/win-build-sycl.bat | 6 +- ggml-sycl.cpp | 2 +- ggml-sycl/dpct/helper.hpp | 414 ++++++++++++++----------------- ggml.h | 6 + 7 files changed, 241 insertions(+), 255 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c90414afa92be..9cfe08d7b7d59 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -665,6 +665,7 @@ if (LLAMA_SYCL) #todo: AOT find_package(IntelSYCL REQUIRED) + find_package(MKL REQUIRED) message(STATUS "SYCL found") @@ -679,11 +680,9 @@ if (LLAMA_SYCL) endif() add_compile_options(-I./) #include DPCT - add_compile_options(-I/${SYCL_INCLUDE_DIR}) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-narrowing") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsycl -L${MKLROOT}/lib") if (LLAMA_SYCL_TARGET STREQUAL "NVIDIA") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsycl-targets=nvptx64-nvidia-cuda") endif() @@ -693,8 +692,10 @@ if (LLAMA_SYCL) list(APPEND GGML_SOURCES_SYCL "ggml-sycl.cpp") if (WIN32) - set(LLAMA_EXTRA_LIBS ${LLAMA_EXTRA_LIBS} -fsycl sycl7 OpenCL mkl_sycl_blas_dll.lib mkl_intel_ilp64_dll.lib mkl_sequential_dll.lib mkl_core_dll.lib) + set(LLAMA_EXTRA_LIBS ${LLAMA_EXTRA_LIBS} IntelSYCL::SYCL_CXX MKL::MKL MKL::MKL_SYCL) else() + add_compile_options(-I/${SYCL_INCLUDE_DIR}) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsycl -L${MKLROOT}/lib") if (LLAMA_SYCL_TARGET STREQUAL "INTEL") set(LLAMA_EXTRA_LIBS ${LLAMA_EXTRA_LIBS} -fsycl OpenCL mkl_core pthread m dl mkl_sycl_blas mkl_intel_ilp64 mkl_tbb_thread) elseif (LLAMA_SYCL_TARGET STREQUAL "NVIDIA") diff --git a/CMakePresets.json b/CMakePresets.json index e2b7a79e371bf..fba22af9a6bab 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -11,9 +11,21 @@ "CMAKE_INSTALL_RPATH": "$ORIGIN;$ORIGIN/.." } }, - + { + "name": "sycl-base", + "hidden": true, + "generator": "Ninja", + "binaryDir": "${sourceDir}/build-${presetName}", + "cacheVariables": { + "CMAKE_EXPORT_COMPILE_COMMANDS": "ON", + "CMAKE_CXX_COMPILER": "icx", + "LLAMA_SYCL": "ON", + "CMAKE_INSTALL_RPATH": "$ORIGIN;$ORIGIN/.." + } + }, { "name": "debug", "hidden": true, "cacheVariables": { "CMAKE_BUILD_TYPE": "Debug" } }, - { "name": "release", "hidden": true, "cacheVariables": { "CMAKE_BUILD_TYPE": "RelWithDebInfo" } }, + { "name": "release", "hidden": true, "cacheVariables": { "CMAKE_BUILD_TYPE": "Release" } }, + { "name": "reldbg", "hidden": true, "cacheVariables": { "CMAKE_BUILD_TYPE": "RelWithDebInfo" } }, { "name": "static", "hidden": true, "cacheVariables": { "LLAMA_STATIC": "ON" } }, { @@ -35,15 +47,18 @@ }, { "name": "arm64-windows-llvm-debug" , "inherits": [ "base", "arm64-windows-llvm", "debug" ] }, - { "name": "arm64-windows-llvm-release", "inherits": [ "base", "arm64-windows-llvm", "release" ] }, - { "name": "arm64-windows-llvm+static-release", "inherits": [ "base", "arm64-windows-llvm", "release", "static" ] }, + { "name": "arm64-windows-llvm-release", "inherits": [ "base", "arm64-windows-llvm", "reldbg" ] }, + { "name": "arm64-windows-llvm+static-release", "inherits": [ "base", "arm64-windows-llvm", "reldbg", "static" ] }, { "name": "arm64-windows-msvc-debug" , "inherits": [ "base", "arm64-windows-msvc", "debug" ] }, - { "name": "arm64-windows-msvc-release", "inherits": [ "base", "arm64-windows-msvc", "release" ] }, - { "name": "arm64-windows-msvc+static-release", "inherits": [ "base", "arm64-windows-msvc", "release", "static" ] }, + { "name": "arm64-windows-msvc-release", "inherits": [ "base", "arm64-windows-msvc", "reldbg" ] }, + { "name": "arm64-windows-msvc+static-release", "inherits": [ "base", "arm64-windows-msvc", "reldbg", "static" ] }, { "name": "x64-windows-msvc-debug" , "inherits": [ "base", "debug" ] }, - { "name": "x64-windows-msvc-release", "inherits": [ "base", "release" ] }, - { "name": "x64-windows-msvc+static-release", "inherits": [ "base", "release", "static" ] } + { "name": "x64-windows-msvc-release", "inherits": [ "base", "reldbg" ] }, + { "name": "x64-windows-msvc+static-release", "inherits": [ "base", "reldbg", "static" ] }, + + { "name": "x64-windows-sycl-debug" , "inherits": [ "sycl-base", "debug" ] }, + { "name": "x64-windows-sycl-release", "inherits": [ "sycl-base", "release" ] } ] } diff --git a/README-sycl.md b/README-sycl.md index bd1984706225f..b7e2bb12a68e8 100644 --- a/README-sycl.md +++ b/README-sycl.md @@ -410,15 +410,9 @@ Output (example): 4. Install build tools -a. Download & install cmake for Windows: https://cmake.org/download/ +a. Download & install cmake for Windows: https://cmake.org/download/ (CMake can also be installed from Visual Studio Installer) +b. The new Visual Studio will install Ninja as default. (If not, please install it manually: https://ninja-build.org/) -b. Download & install mingw-w64 make for Windows provided by w64devkit - -- Download the 1.19.0 version of [w64devkit](https://github.com/skeeto/w64devkit/releases/download/v1.19.0/w64devkit-1.19.0.zip). - -- Extract `w64devkit` on your pc. - -- Add the **bin** folder path in the Windows system PATH environment (for e.g. `C:\xxx\w64devkit\bin\`). ### II. Build llama.cpp @@ -428,10 +422,10 @@ On the oneAPI command line window, step into the llama.cpp main directory and ru @call "C:\Program Files (x86)\Intel\oneAPI\setvars.bat" intel64 --force # Option 1: Use FP32 (recommended for better performance in most cases) -cmake -B build -G "MinGW Makefiles" -DLLAMA_SYCL=ON -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icx -DCMAKE_BUILD_TYPE=Release +cmake -B build -G "Ninja" -DLLAMA_SYCL=ON -DCMAKE_C_COMPILER=cl -DCMAKE_CXX_COMPILER=icx -DCMAKE_BUILD_TYPE=Release # Option 2: Or FP16 -cmake -B build -G "MinGW Makefiles" -DLLAMA_SYCL=ON -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icx -DCMAKE_BUILD_TYPE=Release -DLLAMA_SYCL_F16=ON +cmake -B build -G "Ninja" -DLLAMA_SYCL=ON -DCMAKE_C_COMPILER=cl -DCMAKE_CXX_COMPILER=icx -DCMAKE_BUILD_TYPE=Release -DLLAMA_SYCL_F16=ON cmake --build build --config Release -j ``` @@ -441,9 +435,23 @@ Otherwise, run the `win-build-sycl.bat` wrapper which encapsulates the former in .\examples\sycl\win-build-sycl.bat ``` +Or, use CMake presets to build: +```sh +cmake --preset x64-windows-sycl-release +cmake --build build-x64-windows-sycl-release -j --target llama-cli + +cmake -DLLAMA_SYCL_F16=ON --preset x64-windows-sycl-release +cmake --build build-x64-windows-sycl-release -j --target llama-cli + +cmake --preset x64-windows-sycl-debug +cmake --build build-x64-windows-sycl-debug -j --target llama-cli +``` + +Or, you can use Visual Studio to open llama.cpp folder as a CMake project. Choose the sycl CMake presets (`x64-windows-sycl-release` or `x64-windows-sycl-debug`) before you compile the project. + *Notes:* -- By default, calling `make` will build all target binary files. In case of a minimal experimental setup, the user can build the inference executable only through `make llama-cli`. +- In case of a minimal experimental setup, the user can build the inference executable only through `cmake --build build --config Release -j --target llama-cli`. ### III. Run the inference diff --git a/examples/sycl/win-build-sycl.bat b/examples/sycl/win-build-sycl.bat index b8037aae8c4ef..027173b0a974b 100644 --- a/examples/sycl/win-build-sycl.bat +++ b/examples/sycl/win-build-sycl.bat @@ -13,16 +13,16 @@ if %errorlevel% neq 0 goto ERROR :: for FP16 :: faster for long-prompt inference -:: cmake -G "MinGW Makefiles" .. -DLLAMA_SYCL=ON -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icx -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release -DLLAMA_SYCL_F16=ON +:: cmake -G "MinGW Makefiles" .. -DLLAMA_SYCL=ON -DCMAKE_CXX_COMPILER=icx -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release -DLLAMA_SYCL_F16=ON :: for FP32 -cmake -G "MinGW Makefiles" .. -DLLAMA_SYCL=ON -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icx -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release +cmake -G "Ninja" .. -DLLAMA_SYCL=ON -DCMAKE_C_COMPILER=cl -DCMAKE_CXX_COMPILER=icx -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release if %errorlevel% neq 0 goto ERROR :: build example/main only :: make main :: build all binary -make -j +cmake --build . -j if %errorlevel% neq 0 goto ERROR cd .. diff --git a/ggml-sycl.cpp b/ggml-sycl.cpp index 485f06ad331f8..e5ddf4a346c36 100644 --- a/ggml-sycl.cpp +++ b/ggml-sycl.cpp @@ -4911,7 +4911,7 @@ static void ggml_sycl_cpy(ggml_backend_sycl_context & ctx, const ggml_tensor *sr GGML_ASSERT(ggml_nbytes(src0) <= INT_MAX); GGML_ASSERT(ggml_nbytes(src1) <= INT_MAX); - GGML_TENSOR_BINARY_OP_LOCALS; + GGML_TENSOR_BINARY_OP_LOCALS01; SYCL_CHECK(ggml_sycl_set_device(ctx.device)); queue_ptr main_stream = ctx.stream(); diff --git a/ggml-sycl/dpct/helper.hpp b/ggml-sycl/dpct/helper.hpp index 017fd6ee13268..1ff297218c685 100644 --- a/ggml-sycl/dpct/helper.hpp +++ b/ggml-sycl/dpct/helper.hpp @@ -588,266 +588,222 @@ namespace dpct out = prop; } - /// dpct device extension - class device_ext : public sycl::device - { - typedef std::mutex mutex_type; - - public: - device_ext() : sycl::device(), _ctx(*this) {} - ~device_ext() - { - std::lock_guard lock(m_mutex); - clear_queues(); - } - device_ext(const sycl::device &base) : sycl::device(base), _ctx(*this) - { - std::lock_guard lock(m_mutex); - init_queues(); - } - - int is_native_atomic_supported() { return 0; } - int get_major_version() const - { - return dpct::get_major_version(*this); - } - - int get_minor_version() const - { - return dpct::get_minor_version(*this); - } - - int get_max_compute_units() const - { - return get_device_info().get_max_compute_units(); - } - - /// Return the maximum clock frequency of this device in KHz. - int get_max_clock_frequency() const - { - return get_device_info().get_max_clock_frequency(); - } - - int get_integrated() const { return get_device_info().get_integrated(); } - - int get_max_sub_group_size() const - { - return get_device_info().get_max_sub_group_size(); - } - - int get_max_register_size_per_work_group() const - { - return get_device_info().get_max_register_size_per_work_group(); - } - - int get_max_work_group_size() const - { - return get_device_info().get_max_work_group_size(); - } - - int get_mem_base_addr_align() const - { - return get_info(); - } - - size_t get_global_mem_size() const - { - return get_device_info().get_global_mem_size(); - } - - size_t get_max_mem_alloc_size() const - { - return get_device_info().get_max_mem_alloc_size(); - } - - /// Get the number of bytes of free and total memory on the SYCL device. - /// \param [out] free_memory The number of bytes of free memory on the SYCL device. - /// \param [out] total_memory The number of bytes of total memory on the SYCL device. - void get_memory_info(size_t &free_memory, size_t &total_memory) - { - total_memory = get_device_info().get_global_mem_size(); - const char *warning_info = "get_memory_info: [warning] ext_intel_free_memory is not " - "supported (export/set ZES_ENABLE_SYSMAN=1 to support), " - "use total memory as free memory"; + /// dpct device extension + class device_ext : public sycl::device { + typedef std::mutex mutex_type; + + public: + device_ext() : sycl::device() {} + ~device_ext() { + std::lock_guard lock(m_mutex); + clear_queues(); + } + device_ext(const sycl::device &base) : sycl::device(base) { + std::lock_guard lock(m_mutex); + init_queues(); + } + + int is_native_atomic_supported() { return 0; } + int get_major_version() const { return dpct::get_major_version(*this); } + + int get_minor_version() const { return dpct::get_minor_version(*this); } + + int get_max_compute_units() const { + return get_device_info().get_max_compute_units(); + } + + /// Return the maximum clock frequency of this device in KHz. + int get_max_clock_frequency() const { + return get_device_info().get_max_clock_frequency(); + } + + int get_integrated() const { return get_device_info().get_integrated(); } + + int get_max_sub_group_size() const { + return get_device_info().get_max_sub_group_size(); + } + + int get_max_register_size_per_work_group() const { + return get_device_info().get_max_register_size_per_work_group(); + } + + int get_max_work_group_size() const { + return get_device_info().get_max_work_group_size(); + } + + int get_mem_base_addr_align() const { + return get_info(); + } + + size_t get_global_mem_size() const { + return get_device_info().get_global_mem_size(); + } + + size_t get_max_mem_alloc_size() const { + return get_device_info().get_max_mem_alloc_size(); + } + + /// Get the number of bytes of free and total memory on the SYCL device. + /// \param [out] free_memory The number of bytes of free memory on the + /// SYCL device. \param [out] total_memory The number of bytes of total + /// memory on the SYCL device. + void get_memory_info(size_t &free_memory, size_t &total_memory) { + total_memory = get_device_info().get_global_mem_size(); + const char *warning_info = + "get_memory_info: [warning] ext_intel_free_memory is not " + "supported (export/set ZES_ENABLE_SYSMAN=1 to support), " + "use total memory as free memory"; #if (defined(__SYCL_COMPILER_VERSION) && __SYCL_COMPILER_VERSION >= 20221105) - if (!has(sycl::aspect::ext_intel_free_memory)) - { - std::cerr << warning_info << std::endl; - free_memory = total_memory; - } - else - { - free_memory = get_info(); - } + if (!has(sycl::aspect::ext_intel_free_memory)) { + std::cerr << warning_info << std::endl; + free_memory = total_memory; + } else { + free_memory = get_info(); + } #else - std::cerr << warning_info << std::endl; - free_memory = total_memory; + std::cerr << warning_info << std::endl; + free_memory = total_memory; #if defined(_MSC_VER) && !defined(__clang__) #pragma message("Querying the number of bytes of free memory is not supported") #else #warning "Querying the number of bytes of free memory is not supported" #endif #endif - } + } - void get_device_info(device_info &out) const - { - dpct::get_device_info(out, *this); - } + void get_device_info(device_info &out) const { + dpct::get_device_info(out, *this); + } - device_info get_device_info() const - { - device_info prop; - dpct::get_device_info(prop, *this); - return prop; - } + device_info get_device_info() const { + device_info prop; + dpct::get_device_info(prop, *this); + return prop; + } - void reset() - { - std::lock_guard lock(m_mutex); - clear_queues(); - init_queues(); - } + void reset() { + std::lock_guard lock(m_mutex); + clear_queues(); + init_queues(); + } - sycl::queue &in_order_queue() { return *_q_in_order; } + sycl::queue &in_order_queue() { return _q_in_order; } - sycl::queue &out_of_order_queue() { return *_q_out_of_order; } + sycl::queue &out_of_order_queue() { return _q_out_of_order; } - sycl::queue &default_queue() - { - return in_order_queue(); - } + sycl::queue &default_queue() { return in_order_queue(); } - void queues_wait_and_throw() - { - std::unique_lock lock(m_mutex); - std::vector> current_queues( - _queues); - lock.unlock(); - for (const auto &q : current_queues) - { - q->wait_and_throw(); - } - // Guard the destruct of current_queues to make sure the ref count is safe. - lock.lock(); + void queues_wait_and_throw() { + std::unique_lock lock(m_mutex); + lock.unlock(); + for (auto &q : _queues) { + q.wait_and_throw(); } + // Guard the destruct of current_queues to make sure the ref count is + // safe. + lock.lock(); + } - sycl::queue *create_queue(bool enable_exception_handler = false) - { - return create_in_order_queue(enable_exception_handler); - } + sycl::queue create_queue(bool enable_exception_handler = false) { + return create_in_order_queue(enable_exception_handler); + } - sycl::queue *create_queue(sycl::context context, sycl::device device, - bool enable_exception_handler = false) { - return create_in_order_queue(context, device, enable_exception_handler); - } + sycl::queue create_queue(sycl::device device, + bool enable_exception_handler = false) { + return create_in_order_queue(device, enable_exception_handler); + } - sycl::queue *create_in_order_queue(bool enable_exception_handler = false) { - std::lock_guard lock(m_mutex); - return create_queue_impl(enable_exception_handler, - sycl::property::queue::in_order()); - } + sycl::queue create_in_order_queue(bool enable_exception_handler = false) { + std::lock_guard lock(m_mutex); + return create_queue_impl(enable_exception_handler, + sycl::property::queue::in_order()); + } - sycl::queue *create_in_order_queue(sycl::context context, sycl::device device, + sycl::queue create_in_order_queue(sycl::device device, bool enable_exception_handler = false) { - std::lock_guard lock(m_mutex); - return create_queue_impl(context, device, enable_exception_handler, - sycl::property::queue::in_order()); - } - - sycl::queue *create_out_of_order_queue(bool enable_exception_handler = false) { - std::lock_guard lock(m_mutex); - return create_queue_impl(enable_exception_handler); - } - - void destroy_queue(sycl::queue *&queue) - { - std::lock_guard lock(m_mutex); - _queues.erase(std::remove_if(_queues.begin(), _queues.end(), - [=](const std::shared_ptr &q) -> bool - { - return q.get() == queue; - }), - _queues.end()); - queue = nullptr; - } - void set_saved_queue(sycl::queue *q) - { - std::lock_guard lock(m_mutex); - _saved_queue = q; - } - sycl::queue *get_saved_queue() const - { - std::lock_guard lock(m_mutex); - return _saved_queue; - } - sycl::context get_context() const { return _ctx; } - - private: - void clear_queues() - { - _queues.clear(); - _q_in_order = _q_out_of_order = _saved_queue = nullptr; - } - - void init_queues() - { - _q_in_order = create_queue_impl(true, sycl::property::queue::in_order()); - _q_out_of_order = create_queue_impl(true); - _saved_queue = &default_queue(); + std::lock_guard lock(m_mutex); + return create_queue_impl(device, enable_exception_handler, + sycl::property::queue::in_order()); + } + + sycl::queue create_out_of_order_queue( + bool enable_exception_handler = false) { + std::lock_guard lock(m_mutex); + return create_queue_impl(enable_exception_handler); + } + + void destroy_queue(sycl::queue queue) { + std::lock_guard lock(m_mutex); + _queues.clear(); + } + void set_saved_queue(sycl::queue q) { + std::lock_guard lock(m_mutex); + _saved_queue = q; + } + sycl::queue get_saved_queue() const { + std::lock_guard lock(m_mutex); + return _saved_queue; + } + + private: + void clear_queues() { _queues.clear(); } + + void init_queues() { + _q_in_order = + create_queue_impl(true, sycl::property::queue::in_order()); + _q_out_of_order = create_queue_impl(true); + _saved_queue = default_queue(); + } + + /// Caller should acquire resource \p m_mutex before calling this + /// function. + template + sycl::queue create_queue_impl(bool enable_exception_handler, + Properties... properties) { + sycl::async_handler eh = {}; + if (enable_exception_handler) { + eh = exception_handler; } - - /// Caller should acquire resource \p m_mutex before calling this function. - template - sycl::queue *create_queue_impl(bool enable_exception_handler, - Properties... properties) - { - sycl::async_handler eh = {}; - if (enable_exception_handler) - { - eh = exception_handler; - } - _queues.push_back(std::make_shared( - _ctx, *this, eh, - sycl::property_list( + auto q = sycl::queue(*this, eh, + sycl::property_list( #ifdef DPCT_PROFILING_ENABLED - sycl::property::queue::enable_profiling(), + sycl::property::queue::enable_profiling(), #endif - properties...))); + properties...)); + _queues.push_back(q); - return _queues.back().get(); - } + return _queues.back(); + } - template - sycl::queue *create_queue_impl(sycl::context context, sycl::device device, + template + sycl::queue create_queue_impl(sycl::device device, bool enable_exception_handler, Properties... properties) { - sycl::async_handler eh = {}; - if (enable_exception_handler) { - eh = exception_handler; - } - _queues.push_back(std::make_shared( - context, device, eh, - sycl::property_list( - #ifdef DPCT_PROFILING_ENABLED - sycl::property::queue::enable_profiling(), - #endif - properties...))); - - return _queues.back().get(); + sycl::async_handler eh = {}; + if (enable_exception_handler) { + eh = exception_handler; } - - void get_version(int &major, int &minor) const - { - detail::get_version(*this, major, minor); - } - sycl::queue *_q_in_order, *_q_out_of_order; - sycl::queue *_saved_queue; - sycl::context _ctx; - std::vector> _queues; - mutable mutex_type m_mutex; + _queues.push_back( + sycl::queue(device, eh, + sycl::property_list( +#ifdef DPCT_PROFILING_ENABLED + sycl::property::queue::enable_profiling(), +#endif + properties...))); + + return _queues.back(); + } + + void get_version(int &major, int &minor) const { + detail::get_version(*this, major, minor); + } + sycl::queue _q_in_order, _q_out_of_order; + sycl::queue _saved_queue; + std::vector _queues; + mutable mutex_type m_mutex; }; + /// device manager class dev_mgr { diff --git a/ggml.h b/ggml.h index 13502a3622fc4..2e8fd0dbc2e31 100644 --- a/ggml.h +++ b/ggml.h @@ -312,6 +312,12 @@ GGML_TENSOR_LOCALS(int64_t, ne, dst, ne) \ GGML_TENSOR_LOCALS(size_t, nb, dst, nb) +#define GGML_TENSOR_BINARY_OP_LOCALS01 \ + GGML_TENSOR_LOCALS(int64_t, ne0, src0, ne) \ + GGML_TENSOR_LOCALS(size_t, nb0, src0, nb) \ + GGML_TENSOR_LOCALS(int64_t, ne1, src1, ne) \ + GGML_TENSOR_LOCALS(size_t, nb1, src1, nb) + #ifdef __cplusplus extern "C" { #endif From abd894ad96a242043b8e197ec130d8649eead22e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20G=C3=A4=C3=9Fler?= Date: Thu, 20 Jun 2024 16:40:13 +0200 Subject: [PATCH 112/131] common: fix warning (#8036) * common: fix warning * Update common/common.cpp Co-authored-by: slaren --------- Co-authored-by: slaren --- common/common.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/common/common.cpp b/common/common.cpp index 73ff0e85b7b4e..9c23d001bfba9 100644 --- a/common/common.cpp +++ b/common/common.cpp @@ -6,7 +6,6 @@ #include "llama.h" #include -#include #include #include #include @@ -2657,7 +2656,14 @@ static bool llama_download_file(const std::string & url, const std::string & pat } // Set the output file - std::unique_ptr outfile(fopen(path_temporary.c_str(), "wb"), fclose); + + struct FILE_deleter { + void operator()(FILE * f) const { + fclose(f); + } + }; + + std::unique_ptr outfile(fopen(path_temporary.c_str(), "wb")); if (!outfile) { fprintf(stderr, "%s: error opening local file for writing: %s\n", __func__, path.c_str()); return false; From 17b291a6a581c47f24f99bad926b42617894f99f Mon Sep 17 00:00:00 2001 From: Hamdoud Hakem <90524568+hamdoudhakem@users.noreply.github.com> Date: Thu, 20 Jun 2024 20:59:59 +0100 Subject: [PATCH 113/131] convert-hf : Fix the encoding in the convert-hf-to-gguf-update.py (#8040) --- convert-hf-to-gguf-update.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/convert-hf-to-gguf-update.py b/convert-hf-to-gguf-update.py index fbf1e1ea3de37..67598b561e6cb 100755 --- a/convert-hf-to-gguf-update.py +++ b/convert-hf-to-gguf-update.py @@ -214,7 +214,7 @@ def get_vocab_base_pre(self, tokenizer) -> str: """ convert_py_pth = pathlib.Path("convert-hf-to-gguf.py") -convert_py = convert_py_pth.read_text() +convert_py = convert_py_pth.read_text(encoding="utf-8") convert_py = re.sub( r"(# Marker: Start get_vocab_base_pre)(.+?)( +# Marker: End get_vocab_base_pre)", lambda m: m.group(1) + src_func + m.group(3), @@ -222,7 +222,7 @@ def get_vocab_base_pre(self, tokenizer) -> str: flags=re.DOTALL | re.MULTILINE, ) -convert_py_pth.write_text(convert_py) +convert_py_pth.write_text(convert_py, encoding="utf-8") logger.info("+++ convert-hf-to-gguf.py was updated") From b1ef562bc17fbf8ba436ddf2d89b78efd10d3e03 Mon Sep 17 00:00:00 2001 From: Hamdoud Hakem <90524568+hamdoudhakem@users.noreply.github.com> Date: Thu, 20 Jun 2024 21:01:15 +0100 Subject: [PATCH 114/131] requirements : Bump torch and numpy for python3.12 (#8041) --- requirements/requirements-convert-hf-to-gguf-update.txt | 2 +- requirements/requirements-convert-hf-to-gguf.txt | 2 +- requirements/requirements-convert-legacy-llama.txt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/requirements/requirements-convert-hf-to-gguf-update.txt b/requirements/requirements-convert-hf-to-gguf-update.txt index 6eacaf4290e0a..a7112f39655ee 100644 --- a/requirements/requirements-convert-hf-to-gguf-update.txt +++ b/requirements/requirements-convert-hf-to-gguf-update.txt @@ -1,2 +1,2 @@ -r ./requirements-convert-legacy-llama.txt -torch~=2.1.1 +torch~=2.2.1 diff --git a/requirements/requirements-convert-hf-to-gguf.txt b/requirements/requirements-convert-hf-to-gguf.txt index 6eacaf4290e0a..a7112f39655ee 100644 --- a/requirements/requirements-convert-hf-to-gguf.txt +++ b/requirements/requirements-convert-hf-to-gguf.txt @@ -1,2 +1,2 @@ -r ./requirements-convert-legacy-llama.txt -torch~=2.1.1 +torch~=2.2.1 diff --git a/requirements/requirements-convert-legacy-llama.txt b/requirements/requirements-convert-legacy-llama.txt index 7ab1228cb33ff..1d07b09522f61 100644 --- a/requirements/requirements-convert-legacy-llama.txt +++ b/requirements/requirements-convert-legacy-llama.txt @@ -1,4 +1,4 @@ -numpy~=1.24.4 +numpy~=1.26.4 sentencepiece~=0.2.0 transformers>=4.40.1,<5.0.0 gguf>=0.1.0 From 0e64591e8290037db6412665a56354b789a0597e Mon Sep 17 00:00:00 2001 From: Shuichi Tsutsumi Date: Fri, 21 Jun 2024 14:30:58 +0900 Subject: [PATCH 115/131] swiftui : enable stream updating (#7754) --- .../llama.swiftui/Models/LlamaState.swift | 35 +++++++++++-------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/examples/llama.swiftui/llama.swiftui/Models/LlamaState.swift b/examples/llama.swiftui/llama.swiftui/Models/LlamaState.swift index 5bde1891727ce..2c1e3f61bad20 100644 --- a/examples/llama.swiftui/llama.swiftui/Models/LlamaState.swift +++ b/examples/llama.swiftui/llama.swiftui/Models/LlamaState.swift @@ -131,22 +131,29 @@ class LlamaState: ObservableObject { messageLog += "\(text)" - while await llamaContext.n_cur < llamaContext.n_len { - let result = await llamaContext.completion_loop() - messageLog += "\(result)" - } + Task.detached { + while await llamaContext.n_cur < llamaContext.n_len { + let result = await llamaContext.completion_loop() + await MainActor.run { + self.messageLog += "\(result)" + } + } - let t_end = DispatchTime.now().uptimeNanoseconds - let t_generation = Double(t_end - t_heat_end) / NS_PER_S - let tokens_per_second = Double(await llamaContext.n_len) / t_generation + let t_end = DispatchTime.now().uptimeNanoseconds + let t_generation = Double(t_end - t_heat_end) / self.NS_PER_S + let tokens_per_second = Double(await llamaContext.n_len) / t_generation - await llamaContext.clear() - messageLog += """ - \n - Done - Heat up took \(t_heat)s - Generated \(tokens_per_second) t/s\n - """ + await llamaContext.clear() + + await MainActor.run { + self.messageLog += """ + \n + Done + Heat up took \(t_heat)s + Generated \(tokens_per_second) t/s\n + """ + } + } } func bench() async { From 80ea089d771f0c2d97afa8bead80ded412f600d7 Mon Sep 17 00:00:00 2001 From: Douglas Hanley Date: Fri, 21 Jun 2024 00:38:22 -0500 Subject: [PATCH 116/131] llama : allow pooled embeddings on any model (#7477) * create append_pooling operation; allow to specify attention_type; add last token pooling; update examples * find result_norm/result_embd tensors properly; update output allocation logic * only use embd output for pooling_type NONE * get rid of old causal_attn accessor * take out attention_type; add in llama_set_embeddings * bypass logits when doing non-NONE pooling --- common/common.cpp | 2 + examples/embedding/embedding.cpp | 21 +++-- examples/gritlm/gritlm.cpp | 6 +- examples/retrieval/retrieval.cpp | 13 ++- llama.cpp | 152 ++++++++++++++++++++----------- llama.h | 6 +- 6 files changed, 130 insertions(+), 70 deletions(-) diff --git a/common/common.cpp b/common/common.cpp index 9c23d001bfba9..64f160af1c18c 100644 --- a/common/common.cpp +++ b/common/common.cpp @@ -541,6 +541,7 @@ bool gpt_params_find_arg(int argc, char ** argv, const std::string & arg, gpt_pa /**/ if (value == "none") { params.pooling_type = LLAMA_POOLING_TYPE_NONE; } else if (value == "mean") { params.pooling_type = LLAMA_POOLING_TYPE_MEAN; } else if (value == "cls") { params.pooling_type = LLAMA_POOLING_TYPE_CLS; } + else if (value == "last") { params.pooling_type = LLAMA_POOLING_TYPE_LAST; } else { invalid_param = true; } return true; } @@ -1869,6 +1870,7 @@ void gpt_params_print_usage(int /*argc*/, char ** argv, const gpt_params & param options.push_back({ "backend" }); options.push_back({ "*", " --rpc SERVERS", "comma separated list of RPC servers" }); + if (llama_supports_mlock()) { options.push_back({ "*", " --mlock", "force system to keep model in RAM rather than swapping or compressing" }); } diff --git a/examples/embedding/embedding.cpp b/examples/embedding/embedding.cpp index 244751e003d9e..b4b73c0175cda 100644 --- a/examples/embedding/embedding.cpp +++ b/examples/embedding/embedding.cpp @@ -17,9 +17,10 @@ static std::vector split_lines(const std::string & s) { return lines; } -static void batch_add_seq(llama_batch & batch, const std::vector & tokens, int seq_id) { - for (size_t i = 0; i < tokens.size(); i++) { - llama_batch_add(batch, tokens[i], i, { seq_id }, i == tokens.size() - 1); +static void batch_add_seq(llama_batch & batch, const std::vector & tokens, llama_seq_id seq_id) { + size_t n_tokens = tokens.size(); + for (size_t i = 0; i < n_tokens; i++) { + llama_batch_add(batch, tokens[i], i, { seq_id }, true); } } @@ -40,13 +41,7 @@ static void batch_decode(llama_context * ctx, llama_batch & batch, float * outpu // try to get sequence embeddings - supported only when pooling_type is not NONE const float * embd = llama_get_embeddings_seq(ctx, batch.seq_id[i][0]); - if (embd == NULL) { - embd = llama_get_embeddings_ith(ctx, i); - if (embd == NULL) { - fprintf(stderr, "%s: failed to get embeddings for token %d\n", __func__, i); - continue; - } - } + GGML_ASSERT(embd != NULL && "failed to get sequence embeddings"); float * out = output + batch.seq_id[i][0] * n_embd; //TODO: I would also add a parameter here to enable normalization or not. @@ -97,6 +92,12 @@ int main(int argc, char ** argv) { const int n_ctx_train = llama_n_ctx_train(model); const int n_ctx = llama_n_ctx(ctx); + const enum llama_pooling_type pooling_type = llama_pooling_type(ctx); + if (pooling_type == LLAMA_POOLING_TYPE_NONE) { + fprintf(stderr, "%s: error: pooling type NONE not supported\n", __func__); + return 1; + } + if (n_ctx > n_ctx_train) { fprintf(stderr, "%s: warning: model was trained on only %d context tokens (%d specified)\n", __func__, n_ctx_train, n_ctx); diff --git a/examples/gritlm/gritlm.cpp b/examples/gritlm/gritlm.cpp index 2135157916c97..2c61c2e1eb3bc 100644 --- a/examples/gritlm/gritlm.cpp +++ b/examples/gritlm/gritlm.cpp @@ -44,6 +44,7 @@ static std::vector> encode(llama_context * ctx, const std::ve // clear previous kv_cache values (irrelevant for embeddings) llama_kv_cache_clear(ctx); + llama_set_embeddings(ctx, true); llama_set_causal_attn(ctx, false); // run model @@ -98,7 +99,9 @@ static std::string generate(llama_context * ctx, const std::string & prompt, boo llama_token eos_token = llama_token_eos(mdl); llama_kv_cache_clear(ctx); + llama_set_embeddings(ctx, false); llama_set_causal_attn(ctx, true); + llama_batch bat = llama_batch_init(llama_n_batch(ctx), 0, 1); std::vector inputs = llama_tokenize(mdl, prompt, false, true); @@ -166,8 +169,7 @@ int main(int argc, char * argv[]) { llama_model * mdl = llama_load_model_from_file(params.model.c_str(), mparams); - // create new context - set to embedding mode - cparams.embeddings = true; + // create generation context llama_context * ctx = llama_new_context_with_model(mdl, cparams); // ### Embedding/Representation ### diff --git a/examples/retrieval/retrieval.cpp b/examples/retrieval/retrieval.cpp index 55b7b2f70ae2a..eb89d16daf18d 100644 --- a/examples/retrieval/retrieval.cpp +++ b/examples/retrieval/retrieval.cpp @@ -73,9 +73,10 @@ static std::vector chunk_file(const std::string & filename, int chunk_siz return chunks; } -static void batch_add_seq(llama_batch & batch, const std::vector & tokens, int seq_id) { - for (size_t i = 0; i < tokens.size(); i++) { - llama_batch_add(batch, tokens[i], i, { seq_id }, i == tokens.size() - 1); +static void batch_add_seq(llama_batch & batch, const std::vector & tokens, llama_seq_id seq_id) { + size_t n_tokens = tokens.size(); + for (size_t i = 0; i < n_tokens; i++) { + llama_batch_add(batch, tokens[i], i, { seq_id }, true); } } @@ -160,6 +161,12 @@ int main(int argc, char ** argv) { const int n_ctx_train = llama_n_ctx_train(model); const int n_ctx = llama_n_ctx(ctx); + const enum llama_pooling_type pooling_type = llama_pooling_type(ctx); + if (pooling_type == LLAMA_POOLING_TYPE_NONE) { + fprintf(stderr, "%s: error: pooling type NONE not supported\n", __func__); + return 1; + } + if (n_ctx > n_ctx_train) { fprintf(stderr, "%s: warning: model was trained on only %d context tokens (%d specified)\n", __func__, n_ctx_train, n_ctx); diff --git a/llama.cpp b/llama.cpp index 8818c69280178..9ca0b7479619d 100644 --- a/llama.cpp +++ b/llama.cpp @@ -7649,6 +7649,50 @@ struct llm_build_context { return lctx.inp_s_seq; } + struct ggml_cgraph * append_pooling(struct ggml_cgraph * gf) { + // find result_norm tensor for input + struct ggml_tensor * inp = nullptr; + for (int i = gf->n_nodes - 1; i >= 0; --i) { + inp = gf->nodes[i]; + if (strcmp(inp->name, "result_norm") == 0 || strcmp(inp->name, "result_embd") == 0) { + break; + } else { + inp = nullptr; + } + } + GGML_ASSERT(inp != nullptr && "missing result_norm/result_embd tensor"); + + struct ggml_tensor * cur; + + switch (pooling_type) { + case LLAMA_POOLING_TYPE_MEAN: + { + struct ggml_tensor * inp_mean = build_inp_mean(); + cur = ggml_mul_mat(ctx0, ggml_cont(ctx0, ggml_transpose(ctx0, inp)), inp_mean); + } break; + case LLAMA_POOLING_TYPE_CLS: + case LLAMA_POOLING_TYPE_LAST: + { + struct ggml_tensor * inp_cls = build_inp_cls(); + cur = ggml_get_rows(ctx0, inp, inp_cls); + } break; + case LLAMA_POOLING_TYPE_NONE: + { + cur = inp; + } break; + default: + { + GGML_ASSERT(false && "unknown pooling type"); + } break; + } + + cb(cur, "result_embd_pooled", -1); + + ggml_build_forward_expand(gf, cur); + + return gf; + } + struct ggml_cgraph * build_llama() { struct ggml_cgraph * gf = ggml_new_graph_custom(ctx0, LLAMA_MAX_NODES, false); @@ -8629,8 +8673,6 @@ struct llm_build_context { if (model.arch != LLM_ARCH_JINA_BERT_V2) { inp_pos = build_inp_pos(); } - struct ggml_tensor * inp_mean = build_inp_mean(); - struct ggml_tensor * inp_cls = build_inp_cls(); // construct input embeddings (token, type, position) inpL = llm_build_inp_embd(ctx0, lctx, hparams, batch, model.tok_embd, cb); @@ -8805,28 +8847,6 @@ struct llm_build_context { cur = inpL; cb(cur, "result_embd", -1); - // pooling layer - switch (pooling_type) { - case LLAMA_POOLING_TYPE_NONE: - { - // nop - } break; - case LLAMA_POOLING_TYPE_MEAN: - { - cur = ggml_mul_mat(ctx0, ggml_cont(ctx0, ggml_transpose(ctx0, cur)), inp_mean); - cb(cur, "result_embd_pooled", -1); - } break; - case LLAMA_POOLING_TYPE_CLS: - { - cur = ggml_get_rows(ctx0, cur, inp_cls); - cb(cur, "result_embd_pooled", -1); - } break; - case LLAMA_POOLING_TYPE_UNSPECIFIED: - { - GGML_ASSERT(false && "Invalid pooling type"); - } break; - } - ggml_build_forward_expand(gf, cur); return gf; @@ -11911,6 +11931,11 @@ static struct ggml_cgraph * llama_build_graph( GGML_ASSERT(false); } + // add on pooling layer + if (lctx.cparams.embeddings) { + result = llm.append_pooling(result); + } + llm.free(); return result; @@ -12000,7 +12025,7 @@ static void llama_set_inputs(llama_context & lctx, const llama_batch & batch) { // (!a || b) is a logical implication (a -> b) // !hparams.causal_attn -> !cparams.causal_attn (hparams.causal_attn || !cparams.causal_attn) && - "causal attention with embedding models is not supported" + "causal attention is not supported by this model" ); if (lctx.inp_KQ_mask) { @@ -12132,6 +12157,37 @@ static void llama_set_inputs(llama_context & lctx, const llama_batch & batch) { } } + if (cparams.pooling_type == LLAMA_POOLING_TYPE_LAST) { + const int64_t n_tokens = batch.n_tokens; + + GGML_ASSERT(lctx.inp_cls); + GGML_ASSERT(ggml_backend_buffer_is_host(lctx.inp_cls->buffer)); + + uint32_t * data = (uint32_t *) lctx.inp_cls->data; + memset(lctx.inp_cls->data, 0, n_tokens * ggml_element_size(lctx.inp_cls)); + + std::vector last_pos(n_tokens, -1); + std::vector last_row(n_tokens, -1); + + for (int i = 0; i < n_tokens; ++i) { + const llama_seq_id seq_id = batch.seq_id[i][0]; + const llama_pos pos = batch.pos[i]; + + GGML_ASSERT(seq_id < n_tokens && "seq_id cannot be larger than n_tokens with pooling_type == LAST"); + + if (pos >= last_pos[seq_id]) { + last_pos[seq_id] = pos; + last_row[seq_id] = i; + } + } + + for (int i = 0; i < n_tokens; ++i) { + if (last_row[i] >= 0) { + data[i] = last_row[i]; + } + } + } + if (kv_self.recurrent) { const int64_t n_kv = kv_self.n; @@ -12193,8 +12249,8 @@ static size_t llama_output_reserve(llama_context & lctx, size_t n_outputs) { const auto n_embd = hparams.n_embd; // TODO: use a per-batch flag for logits presence instead - const bool has_logits = cparams.causal_attn; - const bool has_embd = cparams.embeddings && (hparams.causal_attn || cparams.pooling_type == LLAMA_POOLING_TYPE_NONE); + const bool has_logits = !cparams.embeddings; + const bool has_embd = cparams.embeddings && (cparams.pooling_type == LLAMA_POOLING_TYPE_NONE); const size_t logits_size = has_logits ? n_vocab*n_outputs_max : 0; const size_t embd_size = has_embd ? n_embd*n_outputs_max : 0; @@ -12324,11 +12380,13 @@ static int llama_decode_internal( std::vector> seq_id; // count outputs - if (batch_all.logits) { + if (cparams.embeddings && cparams.pooling_type != LLAMA_POOLING_TYPE_NONE) { + n_outputs = n_tokens_all; + } else if (batch_all.logits) { for (uint32_t i = 0; i < n_tokens_all; ++i) { n_outputs += batch_all.logits[i] != 0; } - } else if (lctx.logits_all || (cparams.embeddings && cparams.pooling_type != LLAMA_POOLING_TYPE_NONE)) { + } else if (lctx.logits_all) { n_outputs = n_tokens_all; } else { // keep last output only @@ -12459,30 +12517,13 @@ static int llama_decode_internal( // no output res = nullptr; embd = nullptr; - } else if (!hparams.causal_attn) { - res = nullptr; // do not extract logits for embedding models such as BERT - - // token or sequence embeddings - embd = gf->nodes[gf->n_nodes - 1]; - - GGML_ASSERT(strcmp(embd->name, "result_embd") == 0 || strcmp(embd->name, "result_embd_pooled") == 0); } else if (cparams.embeddings) { - // the embeddings could be in the second to last tensor, or any of the previous tensors - int i_embd = gf->n_nodes - 2; - for (int i = 3; strcmp(embd->name, "result_norm") != 0; ++i) { - i_embd = gf->n_nodes - i; - if (i_embd < 0) { break; } - embd = gf->nodes[i_embd]; - } - GGML_ASSERT(i_embd >= 0 && "missing result_norm tensor"); - - // TODO: use a per-batch flag to know when to skip logits while keeping embeddings - if (!cparams.causal_attn) { - res = nullptr; // do not extract logits when not needed - // skip computing logits - // TODO: is this safe? - gf->n_nodes = i_embd + 1; + res = nullptr; // do not extract logits for embedding case + embd = gf->nodes[gf->n_nodes - 1]; + if (strcmp(embd->name, "result_embd_pooled") != 0) { + embd = gf->nodes[gf->n_nodes - 2]; } + GGML_ASSERT(strcmp(embd->name, "result_embd_pooled") == 0 && "missing embeddings tensor"); } else { embd = nullptr; // do not extract embeddings when not needed GGML_ASSERT(strcmp(res->name, "result_output") == 0 && "missing result_output tensor"); @@ -12551,11 +12592,10 @@ static int llama_decode_internal( ggml_backend_tensor_get_async(backend_embd, embd, embd_out, 0, n_outputs_new*n_embd*sizeof(float)); } } break; - case LLAMA_POOLING_TYPE_CLS: case LLAMA_POOLING_TYPE_MEAN: + case LLAMA_POOLING_TYPE_CLS: + case LLAMA_POOLING_TYPE_LAST: { - GGML_ASSERT(strcmp(embd->name, "result_embd_pooled") == 0); - // extract sequence embeddings auto & embd_seq_out = lctx.embd_seq; embd_seq_out.clear(); @@ -18112,6 +18152,10 @@ void llama_set_abort_callback(struct llama_context * ctx, bool (*abort_callback) ctx->abort_callback_data = abort_callback_data; } +void llama_set_embeddings(struct llama_context * ctx, bool embeddings) { + ctx->cparams.embeddings = embeddings; +} + void llama_set_causal_attn(struct llama_context * ctx, bool causal_attn) { ctx->cparams.causal_attn = causal_attn; } diff --git a/llama.h b/llama.h index da310ffaf9ad9..05d8b092b42a4 100644 --- a/llama.h +++ b/llama.h @@ -174,6 +174,7 @@ extern "C" { LLAMA_POOLING_TYPE_NONE = 0, LLAMA_POOLING_TYPE_MEAN = 1, LLAMA_POOLING_TYPE_CLS = 2, + LLAMA_POOLING_TYPE_LAST = 3, }; enum llama_split_mode { @@ -293,7 +294,6 @@ extern "C" { enum llama_rope_scaling_type rope_scaling_type; // RoPE scaling type, from `enum llama_rope_scaling_type` enum llama_pooling_type pooling_type; // whether to pool (sum) embedding results by sequence id - // (ignored if no pooling layer) // ref: https://github.com/ggerganov/llama.cpp/pull/2054 float rope_freq_base; // RoPE base frequency, 0 = from model @@ -786,6 +786,10 @@ extern "C" { // Get the number of threads used for prompt and batch processing (multiple token). LLAMA_API uint32_t llama_n_threads_batch(struct llama_context * ctx); + // Set whether the model is in embeddings model or not + // If true, embeddings will be returned but logits will not + LLAMA_API void llama_set_embeddings(struct llama_context * ctx, bool embeddings); + // Set whether to use causal attention or not // If set to true, the model will only attend to the past tokens LLAMA_API void llama_set_causal_attn(struct llama_context * ctx, bool causal_attn); From a927b0f3dd9a86ee042cd2bdcc8c9da4a855926b Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Fri, 21 Jun 2024 08:51:28 +0300 Subject: [PATCH 117/131] llama : optimize long word tokenization with WPM (#8034) ggml-ci --- llama.cpp | 17 ++++++++++++----- unicode.cpp | 1 + 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/llama.cpp b/llama.cpp index 9ca0b7479619d..a05a52b4234cd 100644 --- a/llama.cpp +++ b/llama.cpp @@ -2293,6 +2293,8 @@ struct llama_vocab { enum llama_vocab_type type = LLAMA_VOCAB_TYPE_SPM; enum llama_vocab_pre_type type_pre = LLAMA_VOCAB_PRE_TYPE_DEFAULT; + int max_token_len = 0; // used for optimizing longest token search + std::unordered_map token_to_id; std::vector id_to_token; @@ -4939,6 +4941,7 @@ static void llm_load_vocab( GGML_ASSERT(unicode_cpts_from_utf8(word).size() > 0); vocab.token_to_id[word] = i; + vocab.max_token_len = std::max(vocab.max_token_len, (int) word.size()); auto & token_data = vocab.id_to_token[i]; token_data.text = std::move(word); @@ -5249,6 +5252,8 @@ static void llm_load_print_meta(llama_model_loader & ml, llama_model & model) { if (vocab.special_middle_id != -1) { LLAMA_LOG_INFO( "%s: MID token = %d '%s'\n", __func__, vocab.special_middle_id, vocab.id_to_token[vocab.special_middle_id].text.c_str() ); } if (vocab.special_eot_id != -1) { LLAMA_LOG_INFO( "%s: EOT token = %d '%s'\n", __func__, vocab.special_eot_id, vocab.id_to_token[vocab.special_eot_id].text.c_str() ); } + LLAMA_LOG_INFO("%s: max token length = %d\n", __func__, vocab.max_token_len); + if (model.arch == LLM_ARCH_DEEPSEEK2) { LLAMA_LOG_INFO("%s: n_layer_dense_lead = %d\n", __func__, hparams.n_layer_dense_lead); LLAMA_LOG_INFO("%s: n_lora_q = %d\n", __func__, hparams.n_lora_q); @@ -13488,7 +13493,7 @@ struct llm_tokenizer_bpe { struct llm_tokenizer_wpm { llm_tokenizer_wpm(const llama_vocab & vocab): vocab(vocab) {} - void tokenize(const std::string & text, std::vector & output) { + void tokenize(const std::string & text, std::vector & output) const { const auto & token_map = vocab.token_to_id; // normalize and split by whitespace @@ -13497,7 +13502,7 @@ struct llm_tokenizer_wpm { // bos token prepended already // find the longest tokens that form the words - for (const std::string &word : words) { + for (const std::string & word : words) { // skip empty words if (word.size() == 0) { continue; @@ -13514,7 +13519,7 @@ struct llm_tokenizer_wpm { for (int i = 0; i < n; ++i) { // loop through possible match length bool match = false; - for (int j = n; j > i; j--) { + for (int j = std::min(n, i + vocab.max_token_len + 1); j > i; j--) { auto it = token_map.find(word1.substr(i, j - i)); if (it != token_map.end()) { output.push_back(it->second); @@ -13537,7 +13542,8 @@ struct llm_tokenizer_wpm { } } - std::vector preprocess(const std::string & text) { + // TODO: reduce string copies by using cpts_offs array + std::vector preprocess(const std::string & text) const { const std::vector cpts_nfd = unicode_cpts_normalize_nfd(unicode_cpts_from_utf8(text)); std::vector words(1, ""); @@ -13832,6 +13838,8 @@ static std::vector llama_tokenize_internal(const llama_vocab & output.push_back(vocab.special_cls_id); } + llm_tokenizer_wpm tokenizer(vocab); + for (const auto & fragment : fragment_buffer) { if (fragment.type == FRAGMENT_BUFFER_VARIANT_TYPE_RAW_TEXT) { auto raw_text = fragment.raw_text.substr(fragment.offset, fragment.length); @@ -13839,7 +13847,6 @@ static std::vector llama_tokenize_internal(const llama_vocab & #ifdef PRETOKENIZERDEBUG LLAMA_LOG_WARN("TT: (%ld %ld %ld) '%s'\n", raw_text.length(), fragment.offset, fragment.length, raw_text.c_str()); #endif - llm_tokenizer_wpm tokenizer(vocab); tokenizer.tokenize(raw_text, output); } else { // if (fragment.type == FRAGMENT_BUFFER_VARIANT_TYPE_TOKEN) output.push_back(fragment.token); diff --git a/unicode.cpp b/unicode.cpp index 913c34b9b7bd6..c0b76bf20aede 100644 --- a/unicode.cpp +++ b/unicode.cpp @@ -596,6 +596,7 @@ std::vector unicode_cpts_normalize_nfd(const std::vector & c std::vector unicode_cpts_from_utf8(const std::string & utf8) { std::vector result; + result.reserve(utf8.size()); size_t offset = 0; while (offset < utf8.size()) { result.push_back(unicode_cpt_from_utf8(utf8, offset)); From 7d5e8777ae1d21af99d4f95be10db4870720da91 Mon Sep 17 00:00:00 2001 From: Eve <139727413+netrunnereve@users.noreply.github.com> Date: Fri, 21 Jun 2024 05:57:36 +0000 Subject: [PATCH 118/131] ggml : AVX IQ quants (#7845) * initial iq4_xs * fix ci * iq4_nl * iq1_m * iq1_s * iq2_xxs * iq3_xxs * iq2_s * iq2_xs * iq3_s before sllv * iq3_s * iq3_s small fix * iq3_s sllv can be safely replaced with sse multiply --- ggml-quants.c | 699 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 698 insertions(+), 1 deletion(-) diff --git a/ggml-quants.c b/ggml-quants.c index 0b346c11e6b2a..0eb52e485089f 100644 --- a/ggml-quants.c +++ b/ggml-quants.c @@ -8814,7 +8814,7 @@ void ggml_vec_dot_q6_K_q8_K(int n, float * restrict s, size_t bs, const void * r #endif } -#if defined (__AVX2__) || defined (__ARM_NEON) || defined (__POWER9_VECTOR__) || defined(__loongarch_asx) +#if defined (__AVX__) || defined (__AVX2__) || defined (__ARM_NEON) || defined (__POWER9_VECTOR__) || defined(__loongarch_asx) static const int8_t keven_signs_q2xs[1024] = { 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, 1, 1, 1, 1, 1, -1, -1, 1, 1, 1, 1, 1, -1, -1, -1, 1, 1, 1, 1, -1, @@ -8947,6 +8947,61 @@ void ggml_vec_dot_iq2_xxs_q8_K(int n, float * restrict s, size_t bs, const void *s = 0.125f * hsum_float_8(accumf); +#elif defined(__AVX__) + const uint64_t * signs64 = (const uint64_t *)keven_signs_q2xs; + + uint32_t aux32[4]; + const uint8_t * aux8 = (const uint8_t *)aux32; + + __m256 accumf = _mm256_setzero_ps(); + for (int i = 0; i < nb; ++i) { + const float d = GGML_FP16_TO_FP32(x[i].d) * y[i].d; + const uint16_t * restrict q2 = x[i].qs; + const int8_t * restrict q8 = y[i].qs; + __m128i sumi1_0 = _mm_setzero_si128(); + __m128i sumi1_1 = _mm_setzero_si128(); + __m128i sumi2_0 = _mm_setzero_si128(); + __m128i sumi2_1 = _mm_setzero_si128(); + for (int ib32 = 0; ib32 < QK_K/32; ib32 += 2) { + const __m128i q8_1_0 = _mm_loadu_si128((const __m128i *)q8); q8 += 16; + const __m128i q8_1_1 = _mm_loadu_si128((const __m128i *)q8); q8 += 16; + const __m128i q8_2_0 = _mm_loadu_si128((const __m128i *)q8); q8 += 16; + const __m128i q8_2_1 = _mm_loadu_si128((const __m128i *)q8); q8 += 16; + memcpy(aux32, q2, 4*sizeof(uint32_t)); q2 += 8; + const __m128i q2_1_0 = _mm_set_epi64x(iq2xxs_grid[aux8[1]], iq2xxs_grid[aux8[0]]); + const __m128i q2_1_1 = _mm_set_epi64x(iq2xxs_grid[aux8[3]], iq2xxs_grid[aux8[2]]); + const __m128i q2_2_0 = _mm_set_epi64x(iq2xxs_grid[aux8[9]], iq2xxs_grid[aux8[8]]); + const __m128i q2_2_1 = _mm_set_epi64x(iq2xxs_grid[aux8[11]], iq2xxs_grid[aux8[10]]); + const __m128i s2_1_0 = _mm_set_epi64x(signs64[(aux32[1] >> 7) & 127], signs64[(aux32[1] >> 0) & 127]); + const __m128i s2_1_1 = _mm_set_epi64x(signs64[(aux32[1] >> 21) & 127], signs64[(aux32[1] >> 14) & 127]); + const __m128i s2_2_0 = _mm_set_epi64x(signs64[(aux32[3] >> 7) & 127], signs64[(aux32[3] >> 0) & 127]); + const __m128i s2_2_1 = _mm_set_epi64x(signs64[(aux32[3] >> 21) & 127], signs64[(aux32[3] >> 14) & 127]); + const __m128i q8s_1_0 = _mm_sign_epi8(q8_1_0, s2_1_0); + const __m128i q8s_1_1 = _mm_sign_epi8(q8_1_1, s2_1_1); + const __m128i q8s_2_0 = _mm_sign_epi8(q8_2_0, s2_2_0); + const __m128i q8s_2_1 = _mm_sign_epi8(q8_2_1, s2_2_1); + const __m128i dot1_0 = _mm_maddubs_epi16(q2_1_0, q8s_1_0); + const __m128i dot1_1 = _mm_maddubs_epi16(q2_1_1, q8s_1_1); + const __m128i dot2_0 = _mm_maddubs_epi16(q2_2_0, q8s_2_0); + const __m128i dot2_1 = _mm_maddubs_epi16(q2_2_1, q8s_2_1); + const uint16_t ls1 = aux32[1] >> 28; + const uint16_t ls2 = aux32[3] >> 28; + const __m128i p1_0 = _mm_madd_epi16(dot1_0, _mm_set1_epi16(2*ls1+1)); + const __m128i p1_1 = _mm_madd_epi16(dot1_1, _mm_set1_epi16(2*ls1+1)); + const __m128i p2_0 = _mm_madd_epi16(dot2_0, _mm_set1_epi16(2*ls2+1)); + const __m128i p2_1 = _mm_madd_epi16(dot2_1, _mm_set1_epi16(2*ls2+1)); + sumi1_0 = _mm_add_epi32(sumi1_0, p1_0); + sumi1_1 = _mm_add_epi32(sumi1_1, p1_1); + sumi2_0 = _mm_add_epi32(sumi2_0, p2_0); + sumi2_1 = _mm_add_epi32(sumi2_1, p2_1); + } + + accumf = _mm256_add_ps(_mm256_mul_ps(_mm256_set1_ps(d), _mm256_cvtepi32_ps(MM256_SET_M128I(_mm_add_epi32(sumi1_1, sumi2_1), _mm_add_epi32(sumi1_0, sumi2_0)))), accumf); + + } + + *s = 0.125f * hsum_float_8(accumf); + #elif defined(__POWER9_VECTOR__) const vector int v0 = vec_splats((int32_t)0); vector float vsumf0 = vec_splats(0.0f); @@ -9290,6 +9345,165 @@ void ggml_vec_dot_iq2_xs_q8_K(int n, float * restrict s, size_t bs, const void * } *s = 0.125f * hsum_float_8(accumf); + +#elif defined(__AVX__) + const __m128i mone = _mm_set1_epi8(1); + static const char block_sign_shuffle_mask_1[32] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + }; + static const char block_sign_shuffle_mask_2[32] = { + 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, + }; + static const uint8_t bit_selector_mask_bytes[32] = { + 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, + 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, + }; + + const __m128i bit_selector_mask_0 = _mm_loadu_si128((const __m128i*)bit_selector_mask_bytes); + const __m128i bit_selector_mask_1 = _mm_loadu_si128((const __m128i*)bit_selector_mask_bytes + 1); + const __m128i block_sign_shuffle_1_0 = _mm_loadu_si128((const __m128i*)block_sign_shuffle_mask_1); + const __m128i block_sign_shuffle_1_1 = _mm_loadu_si128((const __m128i*)block_sign_shuffle_mask_1 + 1); + const __m128i block_sign_shuffle_2_0 = _mm_loadu_si128((const __m128i*)block_sign_shuffle_mask_2); + const __m128i block_sign_shuffle_2_1 = _mm_loadu_si128((const __m128i*)block_sign_shuffle_mask_2 + 1); + + static const uint8_t k_bit_helper[32] = { + 0x00, 0x80, 0x80, 0x00, 0x80, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x80, 0x00, 0x80, 0x80, 0x00, + 0x00, 0x80, 0x80, 0x00, 0x80, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x80, 0x00, 0x80, 0x80, 0x00, + }; + const __m128i bit_helper_0 = _mm_loadu_si128((const __m128i*)k_bit_helper); + const __m128i bit_helper_1 = _mm_loadu_si128((const __m128i*)k_bit_helper + 1); + const __m128i m511 = _mm_set1_epi16(511); + const __m128i m4 = _mm_set1_epi8(0xf); + const __m128i m1 = _mm_set1_epi8(1); + + uint64_t aux64; + + // somewhat hacky, but gives a significant boost in performance + __m256i aux_gindex; + const uint16_t * gindex = (const uint16_t *)&aux_gindex; + + __m256 accumf = _mm256_setzero_ps(); + for (int i = 0; i < nb; ++i) { + const float d = GGML_FP16_TO_FP32(x[i].d) * y[i].d; + const uint16_t * restrict q2 = x[i].qs; + const int8_t * restrict q8 = y[i].qs; + + memcpy(&aux64, x[i].scales, 8); + __m128i stmp = _mm_set1_epi64x(aux64); + stmp = _mm_unpacklo_epi8(_mm_and_si128(stmp, m4), _mm_and_si128(_mm_srli_epi16(stmp, 4), m4)); + const __m128i scales = _mm_add_epi8(_mm_slli_epi16(stmp, 1), m1); + + __m128i sumi1_0 = _mm_setzero_si128(); + __m128i sumi1_1 = _mm_setzero_si128(); + __m128i sumi2_0 = _mm_setzero_si128(); + __m128i sumi2_1 = _mm_setzero_si128(); + for (int ib32 = 0; ib32 < QK_K/32; ib32 += 4) { + + const __m128i q2_data_0 = _mm_loadu_si128((const __m128i*)q2); + const __m128i q2_data_1 = _mm_loadu_si128((const __m128i*)q2 + 1); q2 += 16; + aux_gindex = MM256_SET_M128I(_mm_and_si128(q2_data_1, m511), _mm_and_si128(q2_data_0, m511)); + + const __m128i partial_sign_bits_0 = _mm_srli_epi16(q2_data_0, 9); + const __m128i partial_sign_bits_1 = _mm_srli_epi16(q2_data_1, 9); + const __m128i partial_sign_bits_upper_0 = _mm_srli_epi16(q2_data_0, 13); + const __m128i partial_sign_bits_upper_1 = _mm_srli_epi16(q2_data_1, 13); + const __m128i partial_sign_bits_for_counting_0 = _mm_xor_si128(partial_sign_bits_0, partial_sign_bits_upper_0); + const __m128i partial_sign_bits_for_counting_1 = _mm_xor_si128(partial_sign_bits_1, partial_sign_bits_upper_1); + + const __m128i odd_bits_0 = _mm_shuffle_epi8(bit_helper_0, partial_sign_bits_for_counting_0); + const __m128i odd_bits_1 = _mm_shuffle_epi8(bit_helper_1, partial_sign_bits_for_counting_1); + const __m128i full_sign_bits_0 = _mm_or_si128(partial_sign_bits_0, odd_bits_0); + const __m128i full_sign_bits_1 = _mm_or_si128(partial_sign_bits_1, odd_bits_1); + + const __m128i q8_1_0 = _mm_loadu_si128((const __m128i *)q8); q8 += 16; + const __m128i q8_1_1 = _mm_loadu_si128((const __m128i *)q8); q8 += 16; + const __m128i q8_2_0 = _mm_loadu_si128((const __m128i *)q8); q8 += 16; + const __m128i q8_2_1 = _mm_loadu_si128((const __m128i *)q8); q8 += 16; + const __m128i q8_3_0 = _mm_loadu_si128((const __m128i *)q8); q8 += 16; + const __m128i q8_3_1 = _mm_loadu_si128((const __m128i *)q8); q8 += 16; + const __m128i q8_4_0 = _mm_loadu_si128((const __m128i *)q8); q8 += 16; + const __m128i q8_4_1 = _mm_loadu_si128((const __m128i *)q8); q8 += 16; + + const __m128i q2_1_0 = _mm_set_epi64x(iq2xs_grid[gindex[1]], iq2xs_grid[gindex[0]]); + const __m128i q2_1_1 = _mm_set_epi64x(iq2xs_grid[gindex[3]], iq2xs_grid[gindex[2]]); + const __m128i q2_2_0 = _mm_set_epi64x(iq2xs_grid[gindex[5]], iq2xs_grid[gindex[4]]); + const __m128i q2_2_1 = _mm_set_epi64x(iq2xs_grid[gindex[7]], iq2xs_grid[gindex[6]]); + const __m128i q2_3_0 = _mm_set_epi64x(iq2xs_grid[gindex[9]], iq2xs_grid[gindex[8]]); + const __m128i q2_3_1 = _mm_set_epi64x(iq2xs_grid[gindex[11]], iq2xs_grid[gindex[10]]); + const __m128i q2_4_0 = _mm_set_epi64x(iq2xs_grid[gindex[13]], iq2xs_grid[gindex[12]]); + const __m128i q2_4_1 = _mm_set_epi64x(iq2xs_grid[gindex[15]], iq2xs_grid[gindex[14]]); + + // AVX2 full_signs_1 is full_sign_bits_0 here + // AVX2 full_signs_2 is full_sign_bits_1 here + __m128i signs_0, signs_1; + signs_0 = _mm_shuffle_epi8(full_sign_bits_0, block_sign_shuffle_1_0); + signs_1 = _mm_shuffle_epi8(full_sign_bits_0, block_sign_shuffle_1_1); + signs_0 = _mm_cmpeq_epi8(_mm_and_si128(signs_0, bit_selector_mask_0), bit_selector_mask_0); + signs_1 = _mm_cmpeq_epi8(_mm_and_si128(signs_1, bit_selector_mask_1), bit_selector_mask_1); + const __m128i q8s_1_0 = _mm_sign_epi8(q8_1_0, _mm_or_si128(signs_0, mone)); + const __m128i q8s_1_1 = _mm_sign_epi8(q8_1_1, _mm_or_si128(signs_1, mone)); + + signs_0 = _mm_shuffle_epi8(full_sign_bits_0, block_sign_shuffle_2_0); + signs_1 = _mm_shuffle_epi8(full_sign_bits_0, block_sign_shuffle_2_1); + signs_0 = _mm_cmpeq_epi8(_mm_and_si128(signs_0, bit_selector_mask_0), bit_selector_mask_0); + signs_1 = _mm_cmpeq_epi8(_mm_and_si128(signs_1, bit_selector_mask_1), bit_selector_mask_1); + const __m128i q8s_2_0 = _mm_sign_epi8(q8_2_0, _mm_or_si128(signs_0, mone)); + const __m128i q8s_2_1 = _mm_sign_epi8(q8_2_1, _mm_or_si128(signs_1, mone)); + + signs_0 = _mm_shuffle_epi8(full_sign_bits_1, block_sign_shuffle_1_0); + signs_1 = _mm_shuffle_epi8(full_sign_bits_1, block_sign_shuffle_1_1); + signs_0 = _mm_cmpeq_epi8(_mm_and_si128(signs_0, bit_selector_mask_0), bit_selector_mask_0); + signs_1 = _mm_cmpeq_epi8(_mm_and_si128(signs_1, bit_selector_mask_1), bit_selector_mask_1); + const __m128i q8s_3_0 = _mm_sign_epi8(q8_3_0, _mm_or_si128(signs_0, mone)); + const __m128i q8s_3_1 = _mm_sign_epi8(q8_3_1, _mm_or_si128(signs_1, mone)); + + signs_0 = _mm_shuffle_epi8(full_sign_bits_1, block_sign_shuffle_2_0); + signs_1 = _mm_shuffle_epi8(full_sign_bits_1, block_sign_shuffle_2_1); + signs_0 = _mm_cmpeq_epi8(_mm_and_si128(signs_0, bit_selector_mask_0), bit_selector_mask_0); + signs_1 = _mm_cmpeq_epi8(_mm_and_si128(signs_1, bit_selector_mask_1), bit_selector_mask_1); + const __m128i q8s_4_0 = _mm_sign_epi8(q8_4_0, _mm_or_si128(signs_0, mone)); + const __m128i q8s_4_1 = _mm_sign_epi8(q8_4_1, _mm_or_si128(signs_1, mone)); + + const __m128i dot1_0 = _mm_maddubs_epi16(q2_1_0, q8s_1_0); + const __m128i dot1_1 = _mm_maddubs_epi16(q2_1_1, q8s_1_1); + const __m128i dot2_0 = _mm_maddubs_epi16(q2_2_0, q8s_2_0); + const __m128i dot2_1 = _mm_maddubs_epi16(q2_2_1, q8s_2_1); + const __m128i dot3_0 = _mm_maddubs_epi16(q2_3_0, q8s_3_0); + const __m128i dot3_1 = _mm_maddubs_epi16(q2_3_1, q8s_3_1); + const __m128i dot4_0 = _mm_maddubs_epi16(q2_4_0, q8s_4_0); + const __m128i dot4_1 = _mm_maddubs_epi16(q2_4_1, q8s_4_1); + + __m128i sc_tmp = _mm_shuffle_epi8(scales, get_scale_shuffle(ib32+0)); + const __m128i sc1_0 = _mm_cvtepi8_epi16(sc_tmp); + const __m128i sc1_1 = _mm_cvtepi8_epi16(_mm_srli_si128(sc_tmp, 8)); + sc_tmp = _mm_shuffle_epi8(scales, get_scale_shuffle(ib32+1)); + const __m128i sc2_0 = _mm_cvtepi8_epi16(sc_tmp); + const __m128i sc2_1 = _mm_cvtepi8_epi16(_mm_srli_si128(sc_tmp, 8)); + sc_tmp = _mm_shuffle_epi8(scales, get_scale_shuffle(ib32+2)); + const __m128i sc3_0 = _mm_cvtepi8_epi16(sc_tmp); + const __m128i sc3_1 = _mm_cvtepi8_epi16(_mm_srli_si128(sc_tmp, 8)); + sc_tmp = _mm_shuffle_epi8(scales, get_scale_shuffle(ib32+3)); + const __m128i sc4_0 = _mm_cvtepi8_epi16(sc_tmp); + const __m128i sc4_1 = _mm_cvtepi8_epi16(_mm_srli_si128(sc_tmp, 8)); + + sumi1_0 = _mm_add_epi32(sumi1_0, _mm_madd_epi16(dot1_0, sc1_0)); + sumi1_1 = _mm_add_epi32(sumi1_1, _mm_madd_epi16(dot1_1, sc1_1)); + sumi2_0 = _mm_add_epi32(sumi2_0, _mm_madd_epi16(dot2_0, sc2_0)); + sumi2_1 = _mm_add_epi32(sumi2_1, _mm_madd_epi16(dot2_1, sc2_1)); + sumi1_0 = _mm_add_epi32(sumi1_0, _mm_madd_epi16(dot3_0, sc3_0)); + sumi1_1 = _mm_add_epi32(sumi1_1, _mm_madd_epi16(dot3_1, sc3_1)); + sumi2_0 = _mm_add_epi32(sumi2_0, _mm_madd_epi16(dot4_0, sc4_0)); + sumi2_1 = _mm_add_epi32(sumi2_1, _mm_madd_epi16(dot4_1, sc4_1)); + } + + accumf = _mm256_add_ps(_mm256_mul_ps(_mm256_set1_ps(d), _mm256_cvtepi32_ps(MM256_SET_M128I(_mm_add_epi32(sumi1_1, sumi2_1), _mm_add_epi32(sumi1_0, sumi2_0)))), accumf); + + } + + *s = 0.125f * hsum_float_8(accumf); + #elif defined(__loongarch_asx) const __m256i mone = __lasx_xvreplgr2vr_b(1); @@ -9693,6 +9907,98 @@ void ggml_vec_dot_iq2_s_q8_K(int n, float * restrict s, size_t bs, const void * *s = 0.125f * hsum_float_8(accumf); +#elif defined(__AVX__) + static const uint8_t k_mask1[32] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03 + }; + + static const uint8_t k_mask2[32] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, + 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, + }; + + const __m128i m4 = _mm_set1_epi8(0xf); + const __m128i m1 = _mm_set1_epi8(1); + + const __m128i mask1_0 = _mm_loadu_si128((const __m128i*)k_mask1); + const __m128i mask1_1 = _mm_loadu_si128((const __m128i*)k_mask1 + 1); + const __m128i mask2_0 = _mm_loadu_si128((const __m128i*)k_mask2); + const __m128i mask2_1 = _mm_loadu_si128((const __m128i*)k_mask2 + 1); + + uint64_t aux64; + + __m256 accumf = _mm256_setzero_ps(); + for (int i = 0; i < nb; ++i) { + const float d = GGML_FP16_TO_FP32(x[i].d) * y[i].d; + const uint8_t * restrict qs = x[i].qs; + const uint8_t * restrict qh = x[i].qh; + const uint16_t * restrict signs = (const uint16_t *)(x[i].qs + QK_K/8); + const int8_t * restrict q8 = y[i].qs; + + memcpy(&aux64, x[i].scales, 8); + const __m128i scales8 = _mm_add_epi8(_mm_slli_epi16(_mm_and_si128(_mm_set_epi64x(aux64 >> 4, aux64), m4), 1), m1); + const __m128i scales16_0 = _mm_cvtepi8_epi16(scales8); + const __m128i scales16_1 = _mm_cvtepi8_epi16(_mm_srli_si128(scales8, 8)); + + __m128i sumi1_0 = _mm_setzero_si128(); + __m128i sumi1_1 = _mm_setzero_si128(); + __m128i sumi2_0 = _mm_setzero_si128(); + __m128i sumi2_1 = _mm_setzero_si128(); + for (int ib32 = 0; ib32 < QK_K/32; ib32 += 2) { + const __m128i q8_1_0 = _mm_loadu_si128((const __m128i *)q8); q8 += 16; + const __m128i q8_1_1 = _mm_loadu_si128((const __m128i *)q8); q8 += 16; + const __m128i q8_2_0 = _mm_loadu_si128((const __m128i *)q8); q8 += 16; + const __m128i q8_2_1 = _mm_loadu_si128((const __m128i *)q8); q8 += 16; + const __m128i q2_1_0 = _mm_set_epi64x(iq2s_grid[qs[1] | ((qh[ib32+0] << 6) & 0x300)], + iq2s_grid[qs[0] | ((qh[ib32+0] << 8) & 0x300)]); + const __m128i q2_1_1 = _mm_set_epi64x(iq2s_grid[qs[3] | ((qh[ib32+0] << 2) & 0x300)], + iq2s_grid[qs[2] | ((qh[ib32+0] << 4) & 0x300)]); + const __m128i q2_2_0 = _mm_set_epi64x(iq2s_grid[qs[5] | ((qh[ib32+1] << 6) & 0x300)], + iq2s_grid[qs[4] | ((qh[ib32+1] << 8) & 0x300)]); + const __m128i q2_2_1 = _mm_set_epi64x(iq2s_grid[qs[7] | ((qh[ib32+1] << 2) & 0x300)], + iq2s_grid[qs[6] | ((qh[ib32+1] << 4) & 0x300)]); + qs += 8; + + __m128i aux128_0 = _mm_set1_epi32(signs[0] | ((uint32_t) signs[1] << 16)); + __m128i aux128_1 = aux128_0; + aux128_0 = _mm_and_si128(_mm_shuffle_epi8(aux128_0,mask1_0), mask2_0); + aux128_1 = _mm_and_si128(_mm_shuffle_epi8(aux128_1,mask1_1), mask2_1); + const __m128i s2_1_0 = _mm_cmpeq_epi8(aux128_0, mask2_0); + const __m128i s2_1_1 = _mm_cmpeq_epi8(aux128_1, mask2_1); + const __m128i q8s_1_0 = _mm_sub_epi8(_mm_xor_si128(s2_1_0, q8_1_0), s2_1_0); + const __m128i q8s_1_1 = _mm_sub_epi8(_mm_xor_si128(s2_1_1, q8_1_1), s2_1_1); + + aux128_0 = _mm_set1_epi32(signs[2] | ((uint32_t) signs[3] << 16)); + aux128_1 = aux128_0; + aux128_0 = _mm_and_si128(_mm_shuffle_epi8(aux128_0,mask1_0), mask2_0); + aux128_1 = _mm_and_si128(_mm_shuffle_epi8(aux128_1,mask1_1), mask2_1); + const __m128i s2_2_0 = _mm_cmpeq_epi8(aux128_0, mask2_0); + const __m128i s2_2_1 = _mm_cmpeq_epi8(aux128_1, mask2_1); + const __m128i q8s_2_0 = _mm_sub_epi8(_mm_xor_si128(s2_2_0, q8_2_0), s2_2_0); + const __m128i q8s_2_1 = _mm_sub_epi8(_mm_xor_si128(s2_2_1, q8_2_1), s2_2_1); + + signs += 4; + + const __m128i dot1_0 = _mm_maddubs_epi16(q2_1_0, q8s_1_0); + const __m128i dot1_1 = _mm_maddubs_epi16(q2_1_1, q8s_1_1); + const __m128i dot2_0 = _mm_maddubs_epi16(q2_2_0, q8s_2_0); + const __m128i dot2_1 = _mm_maddubs_epi16(q2_2_1, q8s_2_1); + + const __m128i p1_0 = _mm_madd_epi16(dot1_0, _mm_shuffle_epi8(scales16_0, _mm256_extractf128_si256(get_scale_shuffle_k4(ib32+0), 0))); + const __m128i p1_1 = _mm_madd_epi16(dot1_1, _mm_shuffle_epi8(scales16_1, _mm256_extractf128_si256(get_scale_shuffle_k4(ib32+0), 1))); + const __m128i p2_0 = _mm_madd_epi16(dot2_0, _mm_shuffle_epi8(scales16_0, _mm256_extractf128_si256(get_scale_shuffle_k4(ib32+1), 0))); + const __m128i p2_1 = _mm_madd_epi16(dot2_1, _mm_shuffle_epi8(scales16_1, _mm256_extractf128_si256(get_scale_shuffle_k4(ib32+1), 1))); + sumi1_0 = _mm_add_epi32(sumi1_0, p1_0); + sumi1_1 = _mm_add_epi32(sumi1_1, p1_1); + sumi2_0 = _mm_add_epi32(sumi2_0, p2_0); + sumi2_1 = _mm_add_epi32(sumi2_1, p2_1); + } + + accumf = _mm256_add_ps(_mm256_mul_ps(_mm256_set1_ps(d), _mm256_cvtepi32_ps(MM256_SET_M128I(_mm_add_epi32(sumi1_1, sumi2_1), _mm_add_epi32(sumi1_0, sumi2_0)))), accumf); + + } + + *s = 0.125f * hsum_float_8(accumf); + #elif defined(__POWER9_VECTOR__) static const uint8_t k_mask1[32] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03 @@ -10019,6 +10325,63 @@ void ggml_vec_dot_iq3_xxs_q8_K(int n, float * restrict s, size_t bs, const void *s = 0.25f * hsum_float_8(accumf); +#elif defined(__AVX__) + const uint64_t * signs64 = (const uint64_t *)keven_signs_q2xs; + + uint32_t aux32[2]; + + __m256 accumf = _mm256_setzero_ps(); + for (int i = 0; i < nb; ++i) { + const float d = GGML_FP16_TO_FP32(x[i].d) * y[i].d; + const uint8_t * restrict q3 = x[i].qs; + const uint8_t * restrict gas = x[i].qs + QK_K/4; + const int8_t * restrict q8 = y[i].qs; + __m128i sumi1_0 = _mm_setzero_si128(); + __m128i sumi1_1 = _mm_setzero_si128(); + __m128i sumi2_0 = _mm_setzero_si128(); + __m128i sumi2_1 = _mm_setzero_si128(); + for (int ib32 = 0; ib32 < QK_K/32; ib32 += 2) { + const __m128i q8_1_0 = _mm_loadu_si128((const __m128i *)q8); q8 += 16; + const __m128i q8_1_1 = _mm_loadu_si128((const __m128i *)q8); q8 += 16; + const __m128i q8_2_0 = _mm_loadu_si128((const __m128i *)q8); q8 += 16; + const __m128i q8_2_1 = _mm_loadu_si128((const __m128i *)q8); q8 += 16; + const __m128i q2_1_0 = _mm_set_epi32(iq3xxs_grid[q3[3]], iq3xxs_grid[q3[2]], iq3xxs_grid[q3[1]], iq3xxs_grid[q3[0]]); + const __m128i q2_1_1 = _mm_set_epi32(iq3xxs_grid[q3[7]], iq3xxs_grid[q3[6]], iq3xxs_grid[q3[5]], iq3xxs_grid[q3[4]]); + q3 += 8; + const __m128i q2_2_0 = _mm_set_epi32(iq3xxs_grid[q3[3]], iq3xxs_grid[q3[2]], iq3xxs_grid[q3[1]], iq3xxs_grid[q3[0]]); + const __m128i q2_2_1 = _mm_set_epi32(iq3xxs_grid[q3[7]], iq3xxs_grid[q3[6]], iq3xxs_grid[q3[5]], iq3xxs_grid[q3[4]]); + q3 += 8; + memcpy(aux32, gas, 8); gas += 8; + const __m128i s2_1_0 = _mm_set_epi64x(signs64[(aux32[0] >> 7) & 127], signs64[(aux32[0] >> 0) & 127]); + const __m128i s2_1_1 = _mm_set_epi64x(signs64[(aux32[0] >> 21) & 127], signs64[(aux32[0] >> 14) & 127]); + const __m128i s2_2_0 = _mm_set_epi64x(signs64[(aux32[1] >> 7) & 127], signs64[(aux32[1] >> 0) & 127]); + const __m128i s2_2_1 = _mm_set_epi64x(signs64[(aux32[1] >> 21) & 127], signs64[(aux32[1] >> 14) & 127]); + const __m128i q8s_1_0 = _mm_sign_epi8(q8_1_0, s2_1_0); + const __m128i q8s_1_1 = _mm_sign_epi8(q8_1_1, s2_1_1); + const __m128i q8s_2_0 = _mm_sign_epi8(q8_2_0, s2_2_0); + const __m128i q8s_2_1 = _mm_sign_epi8(q8_2_1, s2_2_1); + const __m128i dot1_0 = _mm_maddubs_epi16(q2_1_0, q8s_1_0); + const __m128i dot1_1 = _mm_maddubs_epi16(q2_1_1, q8s_1_1); + const __m128i dot2_0 = _mm_maddubs_epi16(q2_2_0, q8s_2_0); + const __m128i dot2_1 = _mm_maddubs_epi16(q2_2_1, q8s_2_1); + const uint16_t ls1 = aux32[0] >> 28; + const uint16_t ls2 = aux32[1] >> 28; + const __m128i p1_0 = _mm_madd_epi16(dot1_0, _mm_set1_epi16(2*ls1+1)); + const __m128i p1_1 = _mm_madd_epi16(dot1_1, _mm_set1_epi16(2*ls1+1)); + const __m128i p2_0 = _mm_madd_epi16(dot2_0, _mm_set1_epi16(2*ls2+1)); + const __m128i p2_1 = _mm_madd_epi16(dot2_1, _mm_set1_epi16(2*ls2+1)); + sumi1_0 = _mm_add_epi32(sumi1_0, p1_0); + sumi1_1 = _mm_add_epi32(sumi1_1, p1_1); + sumi2_0 = _mm_add_epi32(sumi2_0, p2_0); + sumi2_1 = _mm_add_epi32(sumi2_1, p2_1); + } + + accumf = _mm256_add_ps(_mm256_mul_ps(_mm256_set1_ps(d), _mm256_cvtepi32_ps(MM256_SET_M128I(_mm_add_epi32(sumi1_1, sumi2_1), _mm_add_epi32(sumi1_0, sumi2_0)))), accumf); + + } + + *s = 0.25f * hsum_float_8(accumf); + #elif defined(__POWER9_VECTOR__) const uint64_t * signs64 = (const uint64_t *)keven_signs_q2xs; @@ -10370,6 +10733,112 @@ void ggml_vec_dot_iq3_s_q8_K (int n, float * restrict s, size_t bs, const void * *s = hsum_float_8(accumf); +#elif defined(__AVX__) + static const uint8_t k_mask1[32] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03 + }; + + static const uint8_t k_mask2[32] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, + 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, + }; + + const __m128i mask1_0 = _mm_loadu_si128((const __m128i*)k_mask1); + const __m128i mask1_1 = _mm_loadu_si128((const __m128i*)k_mask1 + 1); + const __m128i mask2_0 = _mm_loadu_si128((const __m128i*)k_mask2); + const __m128i mask2_1 = _mm_loadu_si128((const __m128i*)k_mask2 + 1); + + const __m128i idx_mul_0 = _mm_set_epi32(32, 64, 128, 256); + const __m128i idx_mul_1 = _mm_set_epi32(2, 4, 8, 16); + const __m128i idx_mask = _mm_set1_epi32(256); + + typedef union { + __m128i vec[4]; + uint32_t index[16]; + } index_t; + + index_t idx; + + __m256 accumf = _mm256_setzero_ps(); + for (int i = 0; i < nb; ++i) { + const float d = GGML_FP16_TO_FP32(x[i].d) * y[i].d; + const uint8_t * restrict qs = x[i].qs; + const uint8_t * restrict qh = x[i].qh; + const uint16_t * restrict signs = (const uint16_t *)x[i].signs; + const int8_t * restrict q8 = y[i].qs; + __m128i sumi1_0 = _mm_setzero_si128(); + __m128i sumi1_1 = _mm_setzero_si128(); + __m128i sumi2_0 = _mm_setzero_si128(); + __m128i sumi2_1 = _mm_setzero_si128(); + for (int ib32 = 0; ib32 < QK_K/32; ib32 += 2) { + const __m128i q8_1_0 = _mm_loadu_si128((const __m128i *)q8); q8 += 16; + const __m128i q8_1_1 = _mm_loadu_si128((const __m128i *)q8); q8 += 16; + const __m128i q8_2_0 = _mm_loadu_si128((const __m128i *)q8); q8 += 16; + const __m128i q8_2_1 = _mm_loadu_si128((const __m128i *)q8); q8 += 16; + const __m128i qs_tmp = _mm_loadu_si128((const __m128i *)qs); + const __m128i idx_l_0 = _mm_cvtepu8_epi16(qs_tmp); + const __m128i idx_l_1 = _mm_cvtepu8_epi16(_mm_srli_si128(qs_tmp, 8)); qs += 16; + idx.vec[0] = _mm_set1_epi32(qh[ib32+0]); + idx.vec[1] = idx.vec[0]; + idx.vec[2] = _mm_set1_epi32(qh[ib32+1]); + idx.vec[3] = idx.vec[2]; + + idx.vec[0] = _mm_and_si128(_mm_mullo_epi32(idx.vec[0], idx_mul_0), idx_mask); + idx.vec[1] = _mm_and_si128(_mm_mullo_epi32(idx.vec[1], idx_mul_1), idx_mask); + idx.vec[2] = _mm_and_si128(_mm_mullo_epi32(idx.vec[2], idx_mul_0), idx_mask); + idx.vec[3] = _mm_and_si128(_mm_mullo_epi32(idx.vec[3], idx_mul_1), idx_mask); + + idx.vec[0] = _mm_or_si128(idx.vec[0], _mm_cvtepi16_epi32(idx_l_0)); + idx.vec[1] = _mm_or_si128(idx.vec[1], _mm_cvtepi16_epi32(_mm_srli_si128(idx_l_0, 8))); + idx.vec[2] = _mm_or_si128(idx.vec[2], _mm_cvtepi16_epi32(idx_l_1)); + idx.vec[3] = _mm_or_si128(idx.vec[3], _mm_cvtepi16_epi32(_mm_srli_si128(idx_l_1, 8))); + + const __m128i q2_1_0 = _mm_set_epi32(iq3s_grid[idx.index[3]], iq3s_grid[idx.index[2]], iq3s_grid[idx.index[1]], iq3s_grid[idx.index[0]]); + const __m128i q2_1_1 = _mm_set_epi32(iq3s_grid[idx.index[7]], iq3s_grid[idx.index[6]], iq3s_grid[idx.index[5]], iq3s_grid[idx.index[4]]); + const __m128i q2_2_0 = _mm_set_epi32(iq3s_grid[idx.index[11]], iq3s_grid[idx.index[10]], iq3s_grid[idx.index[9]], iq3s_grid[idx.index[8]]); + const __m128i q2_2_1 = _mm_set_epi32(iq3s_grid[idx.index[15]], iq3s_grid[idx.index[14]], iq3s_grid[idx.index[13]], iq3s_grid[idx.index[12]]); + + __m128i aux128_0 = _mm_set1_epi32(signs[0] | (signs[1] << 16)); + __m128i aux128_1 = aux128_0; + aux128_0 = _mm_and_si128(_mm_shuffle_epi8(aux128_0,mask1_0), mask2_0); + aux128_1 = _mm_and_si128(_mm_shuffle_epi8(aux128_1,mask1_1), mask2_1); + const __m128i s2_1_0 = _mm_cmpeq_epi8(aux128_0, mask2_0); + const __m128i s2_1_1 = _mm_cmpeq_epi8(aux128_1, mask2_1); + const __m128i q8s_1_0 = _mm_sub_epi8(_mm_xor_si128(s2_1_0, q8_1_0), s2_1_0); + const __m128i q8s_1_1 = _mm_sub_epi8(_mm_xor_si128(s2_1_1, q8_1_1), s2_1_1); + + aux128_0 = _mm_set1_epi32(signs[2] | (signs[3] << 16)); + aux128_1 = aux128_0; + aux128_0 = _mm_and_si128(_mm_shuffle_epi8(aux128_0,mask1_0), mask2_0); + aux128_1 = _mm_and_si128(_mm_shuffle_epi8(aux128_1,mask1_1), mask2_1); + const __m128i s2_2_0 = _mm_cmpeq_epi8(aux128_0, mask2_0); + const __m128i s2_2_1 = _mm_cmpeq_epi8(aux128_1, mask2_1); + const __m128i q8s_2_0 = _mm_sub_epi8(_mm_xor_si128(s2_2_0, q8_2_0), s2_2_0); + const __m128i q8s_2_1 = _mm_sub_epi8(_mm_xor_si128(s2_2_1, q8_2_1), s2_2_1); + + signs += 4; + + const __m128i dot1_0 = _mm_maddubs_epi16(q2_1_0, q8s_1_0); + const __m128i dot1_1 = _mm_maddubs_epi16(q2_1_1, q8s_1_1); + const __m128i dot2_0 = _mm_maddubs_epi16(q2_2_0, q8s_2_0); + const __m128i dot2_1 = _mm_maddubs_epi16(q2_2_1, q8s_2_1); + const uint16_t ls1 = x[i].scales[ib32/2] & 0xf; + const uint16_t ls2 = x[i].scales[ib32/2] >> 4; + const __m128i p1_0 = _mm_madd_epi16(dot1_0, _mm_set1_epi16(2*ls1+1)); + const __m128i p1_1 = _mm_madd_epi16(dot1_1, _mm_set1_epi16(2*ls1+1)); + const __m128i p2_0 = _mm_madd_epi16(dot2_0, _mm_set1_epi16(2*ls2+1)); + const __m128i p2_1 = _mm_madd_epi16(dot2_1, _mm_set1_epi16(2*ls2+1)); + sumi1_0 = _mm_add_epi32(sumi1_0, p1_0); + sumi1_1 = _mm_add_epi32(sumi1_1, p1_1); + sumi2_0 = _mm_add_epi32(sumi2_0, p2_0); + sumi2_1 = _mm_add_epi32(sumi2_1, p2_1); + } + + accumf = _mm256_add_ps(_mm256_mul_ps(_mm256_set1_ps(d), _mm256_cvtepi32_ps(MM256_SET_M128I(_mm_add_epi32(sumi1_1, sumi2_1), _mm_add_epi32(sumi1_0, sumi2_0)))), accumf); + + } + + *s = hsum_float_8(accumf); + #elif defined(__POWER9_VECTOR__) static const uint8_t k_mask1[32] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03 @@ -10607,6 +11076,14 @@ void ggml_vec_dot_iq3_s_q8_K (int n, float * restrict s, size_t bs, const void * } +#if defined(__AVX__) +static inline __m128i mul_add_epi8_sse(const __m128i x, const __m128i y) { + const __m128i ax = _mm_sign_epi8(x, x); + const __m128i sy = _mm_sign_epi8(y, x); + return _mm_maddubs_epi16(ax, sy); +} +#endif + #if defined(__AVX2__) static inline __m256i mul_add_epi8(const __m256i x, const __m256i y) { const __m256i ax = _mm256_sign_epi8(x, x); @@ -10724,6 +11201,54 @@ void ggml_vec_dot_iq1_s_q8_K (int n, float * restrict s, size_t bs, const void *s = hsum_float_8(accum) + IQ1S_DELTA * accum1; +#elif defined __AVX__ + __m256 accum = _mm256_setzero_ps(); + float accum1 = 0; + for (int i = 0; i < nb; ++i) { + + const int8_t * q8 = y[i].qs; + const uint8_t * qs = x[i].qs; + const uint16_t * qh = x[i].qh; + + __m128i sumi1_0 = _mm_setzero_si128(); + __m128i sumi1_1 = _mm_setzero_si128(); + int sumi1 = 0; + for (int ib = 0; ib < QK_K/32; ib += 2) { + const __m128i q1b_1_0 = _mm_set_epi64x(iq1s_grid[qs[1] | ((qh[ib+0] << 5) & 0x700)], iq1s_grid[qs[0] | ((qh[ib+0] << 8) & 0x700)]); + const __m128i q1b_1_1 = _mm_set_epi64x(iq1s_grid[qs[3] | ((qh[ib+0] >> 1) & 0x700)], iq1s_grid[qs[2] | ((qh[ib+0] << 2) & 0x700)]); + const __m128i q1b_2_0 = _mm_set_epi64x(iq1s_grid[qs[5] | ((qh[ib+1] << 5) & 0x700)], iq1s_grid[qs[4] | ((qh[ib+1] << 8) & 0x700)]); + const __m128i q1b_2_1 = _mm_set_epi64x(iq1s_grid[qs[7] | ((qh[ib+1] >> 1) & 0x700)], iq1s_grid[qs[6] | ((qh[ib+1] << 2) & 0x700)]); + qs += 8; + const __m128i q8b_1_0 = _mm_loadu_si128((const __m128i *)q8); q8 += 16; + const __m128i q8b_1_1 = _mm_loadu_si128((const __m128i *)q8); q8 += 16; + const __m128i q8b_2_0 = _mm_loadu_si128((const __m128i *)q8); q8 += 16; + const __m128i q8b_2_1 = _mm_loadu_si128((const __m128i *)q8); q8 += 16; + + const __m128i dot1_0 = mul_add_epi8_sse(q1b_1_0, q8b_1_0); + const __m128i dot1_1 = mul_add_epi8_sse(q1b_1_1, q8b_1_1); + const __m128i dot2_0 = mul_add_epi8_sse(q1b_2_0, q8b_2_0); + const __m128i dot2_1 = mul_add_epi8_sse(q1b_2_1, q8b_2_1); + const int16_t ls1 = 2*((qh[ib+0] >> 12) & 7) + 1; + const int16_t ls2 = 2*((qh[ib+1] >> 12) & 7) + 1; + const __m128i p1_0 = _mm_madd_epi16(dot1_0, _mm_set1_epi16(ls1)); + const __m128i p1_1 = _mm_madd_epi16(dot1_1, _mm_set1_epi16(ls1)); + const __m128i p2_0 = _mm_madd_epi16(dot2_0, _mm_set1_epi16(ls2)); + const __m128i p2_1 = _mm_madd_epi16(dot2_1, _mm_set1_epi16(ls2)); + + sumi1_0 = _mm_add_epi32(sumi1_0, _mm_add_epi32(p1_0, p2_0)); + sumi1_1 = _mm_add_epi32(sumi1_1, _mm_add_epi32(p1_1, p2_1)); + sumi1 += (y[i].bsums[2*ib+0] + y[i].bsums[2*ib+1]) * (qh[ib+0] & 0x8000 ? -1 : 1) * ls1 + + (y[i].bsums[2*ib+2] + y[i].bsums[2*ib+3]) * (qh[ib+1] & 0x8000 ? -1 : 1) * ls2; + } + + const float d = y[i].d * GGML_FP16_TO_FP32(x[i].d); + accum = _mm256_add_ps(_mm256_mul_ps(_mm256_set1_ps(d), _mm256_cvtepi32_ps(MM256_SET_M128I(sumi1_1, sumi1_0))), accum); + accum1 += d * sumi1; + + } + + *s = hsum_float_8(accum) + IQ1S_DELTA * accum1; + #elif defined(__POWER9_VECTOR__) const vector unsigned char v0 = vec_splats((unsigned char)0x0); const vector unsigned short vsign = vec_splats((unsigned short)0x8000); @@ -11062,6 +11587,92 @@ void ggml_vec_dot_iq1_m_q8_K (int n, float * restrict s, size_t bs, const void *s = hsum_float_8(accum1) + IQ1M_DELTA * hsum_float_8(accum2); +#elif defined __AVX__ + const __m128i mask = _mm_set1_epi16(0x7); + const __m128i mone = _mm_set1_epi16(1); + + __m256 accum1 = _mm256_setzero_ps(); + __m256 accum2 = _mm256_setzero_ps(); + for (int i = 0; i < nb; ++i) { + + const int8_t * q8 = y[i].qs; + const uint8_t * qs = x[i].qs; + const uint8_t * qh = x[i].qh; + const uint16_t * sc = (const uint16_t *)x[i].scales; + + scale.u16 = (sc[0] >> 12) | ((sc[1] >> 8) & 0x00f0) | ((sc[2] >> 4) & 0x0f00) | (sc[3] & 0xf000); + + __m128i sumi1_0 = _mm_setzero_si128(); + __m128i sumi1_1 = _mm_setzero_si128(); + __m128i sumi2_0 = _mm_setzero_si128(); + __m128i sumi2_1 = _mm_setzero_si128(); + for (int ib = 0; ib < QK_K/32; ib += 2) { + const __m128i q1b_1_0 = _mm_set_epi64x( + iq1s_grid[qs[1] | (((uint16_t)qh[0] << 4) & 0x700)], iq1s_grid[qs[0] | (((uint16_t)qh[0] << 8) & 0x700)]); + const __m128i q1b_1_1 = _mm_set_epi64x( + iq1s_grid[qs[3] | (((uint16_t)qh[1] << 4) & 0x700)], iq1s_grid[qs[2] | (((uint16_t)qh[1] << 8) & 0x700)]); + const __m128i q1b_2_0 = _mm_set_epi64x( + iq1s_grid[qs[5] | (((uint16_t)qh[2] << 4) & 0x700)], iq1s_grid[qs[4] | (((uint16_t)qh[2] << 8) & 0x700)]); + const __m128i q1b_2_1 = _mm_set_epi64x( + iq1s_grid[qs[7] | (((uint16_t)qh[3] << 4) & 0x700)], iq1s_grid[qs[6] | (((uint16_t)qh[3] << 8) & 0x700)]); + const __m128i q8b_1_0 = _mm_loadu_si128((const __m128i *)q8); q8 += 16; + const __m128i q8b_1_1 = _mm_loadu_si128((const __m128i *)q8); q8 += 16; + const __m128i q8b_2_0 = _mm_loadu_si128((const __m128i *)q8); q8 += 16; + const __m128i q8b_2_1 = _mm_loadu_si128((const __m128i *)q8); q8 += 16; + + const __m128i dot1_0 = mul_add_epi8_sse(q1b_1_0, q8b_1_0); + const __m128i dot1_1 = mul_add_epi8_sse(q1b_1_1, q8b_1_1); + const __m128i dot2_0 = mul_add_epi8_sse(q1b_2_0, q8b_2_0); + const __m128i dot2_1 = mul_add_epi8_sse(q1b_2_1, q8b_2_1); + + const __m128i delta1_0 = _mm_set_epi64x(qh[0] & 0x80 ? 0xffffffffffffffff : 0x0101010101010101, + qh[0] & 0x08 ? 0xffffffffffffffff : 0x0101010101010101); + const __m128i delta1_1 = _mm_set_epi64x(qh[1] & 0x80 ? 0xffffffffffffffff : 0x0101010101010101, + qh[1] & 0x08 ? 0xffffffffffffffff : 0x0101010101010101); + const __m128i delta2_0 = _mm_set_epi64x(qh[2] & 0x80 ? 0xffffffffffffffff : 0x0101010101010101, + qh[2] & 0x08 ? 0xffffffffffffffff : 0x0101010101010101); + const __m128i delta2_1 = _mm_set_epi64x(qh[3] & 0x80 ? 0xffffffffffffffff : 0x0101010101010101, + qh[3] & 0x08 ? 0xffffffffffffffff : 0x0101010101010101); + + const __m128i dot3_0 = mul_add_epi8_sse(delta1_0, q8b_1_0); + const __m128i dot3_1 = mul_add_epi8_sse(delta1_1, q8b_1_1); + const __m128i dot4_0 = mul_add_epi8_sse(delta2_0, q8b_2_0); + const __m128i dot4_1 = mul_add_epi8_sse(delta2_1, q8b_2_1); + + __m128i scale1_0 = _mm_set1_epi16(sc[ib/2] >> 0); + __m128i scale1_1 = _mm_set1_epi16(sc[ib/2] >> 3); + __m128i scale2_0 = _mm_set1_epi16(sc[ib/2] >> 6); + __m128i scale2_1 = _mm_set1_epi16(sc[ib/2] >> 9); + + scale1_0 = _mm_add_epi16(_mm_slli_epi16(_mm_and_si128(scale1_0, mask), 1), mone); + scale1_1 = _mm_add_epi16(_mm_slli_epi16(_mm_and_si128(scale1_1, mask), 1), mone); + scale2_0 = _mm_add_epi16(_mm_slli_epi16(_mm_and_si128(scale2_0, mask), 1), mone); + scale2_1 = _mm_add_epi16(_mm_slli_epi16(_mm_and_si128(scale2_1, mask), 1), mone); + const __m128i p1_0 = _mm_madd_epi16(dot1_0, scale1_0); + const __m128i p1_1 = _mm_madd_epi16(dot1_1, scale1_1); + const __m128i p2_0 = _mm_madd_epi16(dot2_0, scale2_0); + const __m128i p2_1 = _mm_madd_epi16(dot2_1, scale2_1); + const __m128i p3_0 = _mm_madd_epi16(dot3_0, scale1_0); + const __m128i p3_1 = _mm_madd_epi16(dot3_1, scale1_1); + const __m128i p4_0 = _mm_madd_epi16(dot4_0, scale2_0); + const __m128i p4_1 = _mm_madd_epi16(dot4_1, scale2_1); + + sumi1_0 = _mm_add_epi32(sumi1_0, _mm_add_epi32(p1_0, p2_0)); + sumi1_1 = _mm_add_epi32(sumi1_1, _mm_add_epi32(p1_1, p2_1)); + sumi2_0 = _mm_add_epi32(sumi2_0, _mm_add_epi32(p3_0, p4_0)); + sumi2_1 = _mm_add_epi32(sumi2_1, _mm_add_epi32(p3_1, p4_1)); + + qs += 8; qh += 4; + } + + const __m256 d = _mm256_set1_ps(y[i].d * GGML_FP16_TO_FP32(scale.f16)); + + accum1 = _mm256_add_ps(_mm256_mul_ps(d, _mm256_cvtepi32_ps(MM256_SET_M128I(sumi1_1, sumi1_0))), accum1); + accum2 = _mm256_add_ps(_mm256_mul_ps(d, _mm256_cvtepi32_ps(MM256_SET_M128I(sumi2_1, sumi2_0))), accum2); + } + + *s = hsum_float_8(accum1) + IQ1M_DELTA * hsum_float_8(accum2); + #else int sum1[2], sum2[2], delta[4]; @@ -11192,6 +11803,44 @@ void ggml_vec_dot_iq4_nl_q8_0(int n, float * restrict s, size_t bs, const void * *s = hsum_float_8(_mm256_add_ps(accum1, accum2)); +#elif defined __AVX__ + const __m128i values128 = _mm_loadu_si128((const __m128i*)kvalues_iq4nl); + const __m128i m4b = _mm_set1_epi8(0x0f); + const __m128i mone = _mm_set1_epi16(1); + + __m256 accum1 = _mm256_setzero_ps(); + __m256 accum2 = _mm256_setzero_ps(); + for (int ib = 0; ib < nb; ib += 2) { + const __m128i q4bits_1 = _mm_loadu_si128((const __m128i *)x[0].qs); + const __m128i q4bits_2 = _mm_loadu_si128((const __m128i *)x[1].qs); + const __m128i q8b_1_0 = _mm_loadu_si128((const __m128i *)y[0].qs); + const __m128i q8b_1_1 = _mm_loadu_si128((const __m128i *)y[0].qs + 1); + const __m128i q8b_2_0 = _mm_loadu_si128((const __m128i *)y[1].qs); + const __m128i q8b_2_1 = _mm_loadu_si128((const __m128i *)y[1].qs + 1); + + const __m128i q4b_1_0 = _mm_shuffle_epi8(values128, _mm_and_si128(q4bits_1, m4b)); + const __m128i q4b_1_1 = _mm_shuffle_epi8(values128, _mm_and_si128(_mm_srli_epi16(q4bits_1, 4), m4b)); + const __m128i q4b_2_0 = _mm_shuffle_epi8(values128, _mm_and_si128(q4bits_2, m4b)); + const __m128i q4b_2_1 = _mm_shuffle_epi8(values128, _mm_and_si128(_mm_srli_epi16(q4bits_2, 4), m4b)); + const __m128i p16_1_0 = mul_add_epi8_sse(q4b_1_0, q8b_1_0); + const __m128i p16_1_1 = mul_add_epi8_sse(q4b_1_1, q8b_1_1); + const __m128i p16_2_0 = mul_add_epi8_sse(q4b_2_0, q8b_2_0); + const __m128i p16_2_1 = mul_add_epi8_sse(q4b_2_1, q8b_2_1); + const __m128i p_1_0 = _mm_madd_epi16(p16_1_0, mone); + const __m128i p_1_1 = _mm_madd_epi16(p16_1_1, mone); + const __m128i p_2_0 = _mm_madd_epi16(p16_2_0, mone); + const __m128i p_2_1 = _mm_madd_epi16(p16_2_1, mone); + accum1 = _mm256_add_ps(_mm256_mul_ps(_mm256_set1_ps(GGML_FP16_TO_FP32(y[0].d)*GGML_FP16_TO_FP32(x[0].d)), + _mm256_cvtepi32_ps(MM256_SET_M128I(p_1_1, p_1_0))), accum1); + accum2 = _mm256_add_ps(_mm256_mul_ps(_mm256_set1_ps(GGML_FP16_TO_FP32(y[1].d)*GGML_FP16_TO_FP32(x[1].d)), + _mm256_cvtepi32_ps(MM256_SET_M128I(p_2_1, p_2_0))), accum2); + + y += 2; + x += 2; + } + + *s = hsum_float_8(_mm256_add_ps(accum1, accum2)); + #elif defined(__POWER9_VECTOR__) const vector signed char lowMask = vec_splats((signed char)0xF); const vector signed int v0 = vec_splats((int32_t)0); @@ -11382,6 +12031,54 @@ void ggml_vec_dot_iq4_xs_q8_K(int n, float * restrict s, size_t bs, const void * *s = hsum_float_8(accum); +#elif defined __AVX__ + const __m128i values128 = _mm_loadu_si128((const __m128i*)kvalues_iq4nl); + const __m128i m4b = _mm_set1_epi8(0x0f); + + __m256 accum = _mm256_setzero_ps(); + for (int ibl = 0; ibl < nb; ++ibl) { + const uint8_t * qs = x[ibl].qs; + const int8_t * q8 = y[ibl].qs; + uint16_t sh = x[ibl].scales_h; + __m128i sumi1_0 = _mm_setzero_si128(); + __m128i sumi1_1 = _mm_setzero_si128(); + __m128i sumi2_0 = _mm_setzero_si128(); + __m128i sumi2_1 = _mm_setzero_si128(); + for (int ib = 0; ib < QK_K/32; ib += 2) { + const __m128i q4bits_1 = _mm_loadu_si128((const __m128i *)qs); qs += 16; + const __m128i q4bits_2 = _mm_loadu_si128((const __m128i *)qs); qs += 16; + const __m128i q8b_1_0 = _mm_loadu_si128((const __m128i *)q8); q8 += 16; + const __m128i q8b_1_1 = _mm_loadu_si128((const __m128i *)q8); q8 += 16; + const __m128i q8b_2_0 = _mm_loadu_si128((const __m128i *)q8); q8 += 16; + const __m128i q8b_2_1 = _mm_loadu_si128((const __m128i *)q8); q8 += 16; + const __m128i q4b_1_0 = _mm_shuffle_epi8(values128, _mm_and_si128(q4bits_1, m4b)); + const __m128i q4b_1_1 = _mm_shuffle_epi8(values128, _mm_and_si128(_mm_srli_epi16(q4bits_1, 4), m4b)); + const __m128i q4b_2_0 = _mm_shuffle_epi8(values128, _mm_and_si128(q4bits_2, m4b)); + const __m128i q4b_2_1 = _mm_shuffle_epi8(values128, _mm_and_si128(_mm_srli_epi16(q4bits_2, 4), m4b)); + const __m128i p16_1_0 = mul_add_epi8_sse(q4b_1_0, q8b_1_0); + const __m128i p16_1_1 = mul_add_epi8_sse(q4b_1_1, q8b_1_1); + const __m128i p16_2_0 = mul_add_epi8_sse(q4b_2_0, q8b_2_0); + const __m128i p16_2_1 = mul_add_epi8_sse(q4b_2_1, q8b_2_1); + const int16_t ls1 = ((x[ibl].scales_l[ib/2] & 0xf) | ((sh << 4) & 0x30)) - 32; + const int16_t ls2 = ((x[ibl].scales_l[ib/2] >> 4) | ((sh << 2) & 0x30)) - 32; + sh >>= 4; + const __m128i p_1_0 = _mm_madd_epi16(p16_1_0, _mm_set1_epi16(ls1)); + const __m128i p_1_1 = _mm_madd_epi16(p16_1_1, _mm_set1_epi16(ls1)); + const __m128i p_2_0 = _mm_madd_epi16(p16_2_0, _mm_set1_epi16(ls2)); + const __m128i p_2_1 = _mm_madd_epi16(p16_2_1, _mm_set1_epi16(ls2)); + sumi1_0 = _mm_add_epi32(p_1_0, sumi1_0); + sumi1_1 = _mm_add_epi32(p_1_1, sumi1_1); + sumi2_0 = _mm_add_epi32(p_2_0, sumi2_0); + sumi2_1 = _mm_add_epi32(p_2_1, sumi2_1); + } + __m128i sumi12_0 = _mm_add_epi32(sumi1_0, sumi2_0); + __m128i sumi12_1 = _mm_add_epi32(sumi1_1, sumi2_1); + accum = _mm256_add_ps(_mm256_mul_ps(_mm256_set1_ps(GGML_FP16_TO_FP32(x[ibl].d)*y[ibl].d), + _mm256_cvtepi32_ps(MM256_SET_M128I(sumi12_1, sumi12_0))), accum); + } + + *s = hsum_float_8(accum); + #elif defined(__POWER9_VECTOR__) const vector signed char lowMask = vec_splats((signed char)0xF); const vector int v0 = vec_splats((int32_t)0); From 557b653dc9ed91e8c313e87500e0050c775f81b6 Mon Sep 17 00:00:00 2001 From: "k.h.lai" Date: Fri, 21 Jun 2024 16:28:20 +0800 Subject: [PATCH 119/131] vulkan: detect multiple devices by deviceUUID instead of deviceID (#8022) * vulkan: detect multiple devices by deviceUUID instead of deviceID * vulkan: remove unneeded variables * vulkan: fix id query --- ggml-vulkan.cpp | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/ggml-vulkan.cpp b/ggml-vulkan.cpp index f389934ead3ed..87af33b563271 100644 --- a/ggml-vulkan.cpp +++ b/ggml-vulkan.cpp @@ -1745,31 +1745,37 @@ void ggml_vk_instance_init() { // Default to using all dedicated GPUs for (size_t i = 0; i < devices.size(); i++) { - vk::PhysicalDeviceProperties props = devices[i].getProperties(); - - if (props.deviceType == vk::PhysicalDeviceType::eDiscreteGpu) { + vk::PhysicalDeviceProperties2 new_props; + vk::PhysicalDeviceDriverProperties new_driver; + vk::PhysicalDeviceIDProperties new_id; + new_props.pNext = &new_driver; + new_driver.pNext = &new_id; + devices[i].getProperties2(&new_props); + + if (new_props.properties.deviceType == vk::PhysicalDeviceType::eDiscreteGpu) { // Check if there are two physical devices corresponding to the same GPU auto old_device = std::find_if( vk_instance.device_indices.begin(), vk_instance.device_indices.end(), - [&devices, &props](const size_t k){ return devices[k].getProperties().deviceID == props.deviceID; } + [&devices, &new_id](const size_t k){ + vk::PhysicalDeviceProperties2 old_props; + vk::PhysicalDeviceIDProperties old_id; + old_props.pNext = &old_id; + devices[k].getProperties2(&old_props); + return std::equal(std::begin(old_id.deviceUUID), std::end(old_id.deviceUUID), std::begin(new_id.deviceUUID)); + } ); if (old_device == vk_instance.device_indices.end()) { vk_instance.device_indices.push_back(i); } else { // There can be two physical devices corresponding to the same GPU if there are 2 different drivers // This can cause error when splitting layers aross the devices, need to keep only 1 - VK_LOG_DEBUG("Device " << i << " and device " << *old_device << " have the same device id"); + VK_LOG_DEBUG("Device " << i << " and device " << *old_device << " have the same deviceUUID"); - vk::PhysicalDeviceProperties2 old_prop; + vk::PhysicalDeviceProperties2 old_props; vk::PhysicalDeviceDriverProperties old_driver; - old_prop.pNext = &old_driver; - devices[*old_device].getProperties2(&old_prop); - - vk::PhysicalDeviceProperties2 new_prop; - vk::PhysicalDeviceDriverProperties new_driver; - new_prop.pNext = &new_driver; - devices[i].getProperties2(&new_prop); + old_props.pNext = &old_driver; + devices[*old_device].getProperties2(&old_props); std::map driver_priorities {}; int old_priority = std::numeric_limits::max(); @@ -1777,7 +1783,7 @@ void ggml_vk_instance_init() { // Check https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDriverId.html for the list of driver id // Smaller number -> higher priority - switch (old_prop.properties.vendorID) { + switch (old_props.properties.vendorID) { case VK_VENDOR_ID_AMD: driver_priorities[vk::DriverId::eMesaRadv] = 1; driver_priorities[vk::DriverId::eAmdOpenSource] = 2; From c5a8d4b749352645afd4c024f85d6eca2ca72c6d Mon Sep 17 00:00:00 2001 From: Clint Herron Date: Fri, 21 Jun 2024 23:18:36 -0400 Subject: [PATCH 120/131] JSON Schema to GBNF integration tests (#7790) * Adding simple bare-bones test for end-to-end integration test for json validation against auto-generated JSON-schema grammars. * Adding additional examples as documented in #7789 . Also adding the ability to automatically output improperly failing grammars to debug output files so they can more easily be examined in the gbnf-validator program. * Uncommenting formerly commented tests so that they fail for others who are attempting to reproduce the bugs. * Merging improved schema test methods added by @ochafik in #7797 * Adding #define to temporarily remove failing tests so that this PR can pass CI, but still be useful for other PRs that want to leverage the framework. * Fixing nits from ochafik. Removing escape slashes, adding additional failing cases, fixing some other strings. * Fixing grammar indentation to be consistent throughout file. --- Makefile | 2 +- tests/test-grammar-integration.cpp | 599 ++++++++++++++++++++++++++++- 2 files changed, 580 insertions(+), 21 deletions(-) diff --git a/Makefile b/Makefile index dddf647cd551d..4ea59c0b4ef29 100644 --- a/Makefile +++ b/Makefile @@ -1051,7 +1051,7 @@ tests/test-grammar-parser: tests/test-grammar-parser.cpp ggml.o llama.o grammar- $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) -tests/test-grammar-integration: tests/test-grammar-integration.cpp ggml.o llama.o grammar-parser.o $(OBJS) +tests/test-grammar-integration: tests/test-grammar-integration.cpp json-schema-to-grammar.o ggml.o llama.o grammar-parser.o $(OBJS) $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) diff --git a/tests/test-grammar-integration.cpp b/tests/test-grammar-integration.cpp index 8787fb1ec6987..96f90c01e0d97 100644 --- a/tests/test-grammar-integration.cpp +++ b/tests/test-grammar-integration.cpp @@ -7,11 +7,16 @@ #include "ggml.h" #include "llama.h" #include "grammar-parser.h" +#include "json-schema-to-grammar.h" #include "unicode.h" #include #include #include +using json = nlohmann::ordered_json; + +//#define INCLUDE_FAILING_TESTS 1 + static llama_grammar* build_grammar(const std::string & grammar_str) { auto parsed_grammar = grammar_parser::parse(grammar_str.c_str()); @@ -65,8 +70,8 @@ static bool match_string(const std::string & input, llama_grammar* grammar) { return false; } -static void test_grammar(const std::string & test_desc, const std::string & grammar_str, const std::vector & passing_strings, const std::vector & failing_strings) { - fprintf(stderr, "⚫ Testing %s. Grammar: %s\n", test_desc.c_str(), grammar_str.c_str()); +static void test(const std::string & test_desc, const std::string & grammar_str, const std::vector & passing_strings, const std::vector & failing_strings) { + fprintf(stderr, "⚫ Testing %s\n%s\n", test_desc.c_str(), grammar_str.c_str()); fflush(stderr); auto grammar = build_grammar(grammar_str); @@ -85,6 +90,23 @@ static void test_grammar(const std::string & test_desc, const std::string & gram if (!matched) { fprintf(stderr, "❌ (failed to match)\n"); + + // DEBUG: Write strings to files so that we can analyze more easily with gbnf-validator program to see exactly where things failed. + // DEBUG: Write the grammar_str to test-grammar-integration.grammar.gbnf + FILE* grammar_file = fopen("test-grammar-integration.grammar.gbnf", "w"); + if (grammar_file) { + fprintf(grammar_file, "%s", grammar_str.c_str()); + fclose(grammar_file); + } + + // DEBUG: Write the test string to test-grammar-integration.string.txt + FILE* string_file = fopen("test-grammar-integration.string.txt", "w"); + if (string_file) { + fprintf(string_file, "%s", test_string.c_str()); + fclose(string_file); + } + + fprintf(stderr, "\n NOTE: Debug grammar file generated. To analyze this failure in detail, run the following command: ./llama-gbnf-validator test-grammar-integration.grammar.gbnf test-grammar-integration.string.txt\n\n"); } else { fprintf(stdout, "✅︎\n"); } @@ -118,6 +140,12 @@ static void test_grammar(const std::string & test_desc, const std::string & gram // Clean up allocated memory llama_grammar_free(grammar); } +static void test_grammar(const std::string & test_desc, const std::string & grammar_str, const std::vector & passing_strings, const std::vector & failing_strings) { + test(test_desc + ". Grammar: " + grammar_str, grammar_str, passing_strings, failing_strings); +} +static void test_schema(const std::string & test_desc, const std::string & schema_str, const std::vector & passing_strings, const std::vector & failing_strings) { + test(test_desc + ". Schema: " + schema_str, json_schema_to_grammar(json::parse(schema_str)), passing_strings, failing_strings); +} static void test_simple_grammar() { // Test case for a simple grammar @@ -400,10 +428,11 @@ static void test_quantifiers() { static void test_failure_missing_root() { fprintf(stderr, "⚫ Testing missing root node:\n"); // Test case for a grammar that is missing a root rule - const std::string grammar_str = R"""(rot ::= expr -expr ::= term ("+" term)* -term ::= number -number ::= [0-9]+)"""; + const std::string grammar_str = R"""( + rot ::= expr + expr ::= term ("+" term)* + term ::= number + number ::= [0-9]+)"""; grammar_parser::parse_state parsed_grammar = grammar_parser::parse(grammar_str.c_str()); @@ -420,10 +449,10 @@ static void test_failure_missing_reference() { // Test case for a grammar that is missing a referenced rule const std::string grammar_str = -R"""(root ::= expr -expr ::= term ("+" term)* -term ::= numero -number ::= [0-9]+)"""; + R"""(root ::= expr + expr ::= term ("+" term)* + term ::= numero + number ::= [0-9]+)"""; fprintf(stderr, " Expected error: "); @@ -445,29 +474,558 @@ static void test_failure_left_recursion() { // Test more complicated left recursion detection const std::string medium_str = R"""( -root ::= asdf -asdf ::= "a" | asdf "a" -)"""; + root ::= asdf + asdf ::= "a" | asdf "a" + )"""; assert(test_build_grammar_fails(medium_str)); // Test even more complicated left recursion detection const std::string hard_str = R"""( -root ::= asdf -asdf ::= "a" | foo "b" -foo ::= "c" | asdf "d" | "e")"""; + root ::= asdf + asdf ::= "a" | foo "b" + foo ::= "c" | asdf "d" | "e")"""; assert(test_build_grammar_fails(hard_str)); // Test yet even more complicated left recursion detection const std::string hardest_str = R"""( -root ::= asdf -asdf ::= "a" | foo "b" -foo ::= "c" | empty asdf "d" | "e" -empty ::= "blah" | )"""; + root ::= asdf + asdf ::= "a" | foo "b" + foo ::= "c" | empty asdf "d" | "e" + empty ::= "blah" | )"""; assert(test_build_grammar_fails(hardest_str)); fprintf(stderr, " ✅︎ Passed\n"); } +static void test_json_schema() { + // Note that this is similar to the regular grammar tests, + // but we convert each json schema to a grammar before parsing. + // Otherwise, this test structure is the same. + + test_schema( + "empty schema (object)", + // Schema + R"""( + {} + )""", + // Passing strings + { + "{}", + R"""({"foo": "bar"})""", + }, + // Failing strings + { + "", + "[]", + "null", + "\"\"", + "true", + } + ); + + test_schema( + "exotic formats (list)", + // Schema + R"""( + { + "items": [ + { "format": "date" }, + { "format": "uuid" }, + { "format": "time" }, + { "format": "date-time" } + ] + } + )""", + // Passing strings + { + // "{}", // NOTE: This string passes for this schema on https://www.jsonschemavalidator.net/ -- should it? + // "[]", // NOTE: This string passes for this schema on https://www.jsonschemavalidator.net/ -- should it? + R"""(["2012-04-23", "12345678-1234-1234-1234-1234567890ab", "18:25:43.511Z", "2012-04-23T18:25:43.511Z"])""", + //R"""(["2012-04-23","12345678-1234-1234-1234-1234567890ab"])""", // NOTE: This string passes for this schema on https://www.jsonschemavalidator.net/ -- should it? + //R"""({"foo": "bar"})""", // NOTE: This string passes for this schema on https://www.jsonschemavalidator.net/ -- should it? + }, + // Failing strings + { + R"""(["foo", "bar"])""", + R"""(["12345678-1234-1234-1234-1234567890ab"])""", + } + ); + + test_schema( + "string", + // Schema + R"""( + { + "type": "string" + } + )""", + // Passing strings + { + "\"foo\"", + "\"bar\"", + "\"\"", + }, + // Failing strings + { + "{}", + "\"foo\": \"bar\"", + } + ); + + test_schema( + "string w/ min length 1", + // Schema + R"""( + { + "type": "string", + "minLength": 1 + } + )""", + // Passing strings + { + "\"foo\"", + "\"bar\"", + }, + // Failing strings + { + "\"\"", + "{}", + "\"foo\": \"bar\"", + } + ); + + test_schema( + "string w/ min length 3", + // Schema + R"""( + { + "type": "string", + "minLength": 3 + } + )""", + // Passing strings + { + "\"foo\"", + "\"bar\"", + "\"foobar\"", + }, + // Failing strings + { + "\"\"", + "\"f\"", + "\"fo\"", + } + ); + + test_schema( + "string w/ max length", + // Schema + R"""( + { + "type": "string", + "maxLength": 3 + } + )""", + // Passing strings + { + "\"foo\"", + "\"bar\"", + "\"\"", + "\"f\"", + "\"fo\"", + }, + // Failing strings + { + "\"foobar\"", + } + ); + + test_schema( + "string w/ min & max length", + // Schema + R"""( + { + "type": "string", + "minLength": 1, + "maxLength": 4 + } + )""", + // Passing strings + { + "\"foo\"", + "\"bar\"", + "\"f\"", + "\"barf\"", + }, + // Failing strings + { + "\"\"", + "\"barfo\"", + "\"foobar\"", + } + ); + + test_schema( + "boolean", + // Schema + R"""( + { + "type": "boolean" + } + )""", + // Passing strings + { + "true", + "false", + }, + // Failing strings + { + "\"\"", + "\"true\"", + "True", + "FALSE", + } + ); + + test_schema( + "integer", + // Schema + R"""( + { + "type": "integer" + } + )""", + // Passing strings + { + "0", + "12345", + "1234567890123456" + }, + // Failing strings + { + "", + "01", + "007", + "12345678901234567" + } + ); + + test_schema( + "string const", + // Schema + R"""( + { + "const": "foo" + } + )""", + // Passing strings + { + "\"foo\"", + }, + // Failing strings + { + "foo", + "\"bar\"", + } + ); + + test_schema( + "non-string const", + // Schema + R"""( + { + "const": true + } + )""", + // Passing strings + { + "true", + }, + // Failing strings + { + "", + "foo", + "\"true\"", + } + ); + + test_schema( + "non-string const", + // Schema + R"""( + { + "enum": ["red", "amber", "green", null, 42, ["foo"]] + } + )""", + // Passing strings + { + "\"red\"", + "null", + "42", + "[\"foo\"]", + }, + // Failing strings + { + "", + "420", + "true", + "foo", + } + ); + + + test_schema( + "min+max items", + // Schema + R"""( + { + "items": { + "type": ["number", "integer"] + }, + "minItems": 3, + "maxItems": 5 + } + )""", + // Passing strings + { + "[1, 2, 3]", + "[1, 2, 3, 4]", + "[1, 2, 3, 4, 5]", + }, + // Failing strings + { + "[1, 2]", + "[1, 2, 3, 4, 5, 6]", + "1" + } + ); + + // Properties (from: https://json-schema.org/understanding-json-schema/reference/object#properties) + test_schema( + "object properties", + // Schema + R"""( + { + "type": "object", + "properties": { + "number": { "type": "number" }, + "street_name": { "type": "string" }, + "street_type": { "enum": ["Street", "Avenue", "Boulevard"] } + } + } + )""", + // Passing strings + { + R"""({ "number": 1600, "street_name": "Pennsylvania", "street_type":"Avenue"})""", + // "By default, leaving out properties is valid" + R"""({ "street_name": "Pennsylvania" })""", + R"""({ "number": 1600, "street_name": "Pennsylvania" })""", + // "By extension, even an empty object is valid" + R"""({})""", + // "By default, providing additional properties is valid" +#ifdef INCLUDE_FAILING_TESTS + // TODO: The following should pass, but currently FAILS. Additional properties should be permitted by default. + R"""({ "number": 1600, "street_name": "Pennsylvania", "street_type":"Avenue", "direction":"NW"})""", + // TODO: Spaces should be permitted around enum values, but currently they fail to pass. + R"""({ "number": 1600, "street_name": "Pennsylvania", "street_type": "Avenue" })""", +#endif + }, + // Failing strings + { + // Change datatype from number to string + R"""({ "number": "1600", "street_name": "Pennsylvania", "street_type":"Avenue"})""", + // Reorder properties + R"""({ "street_name": "Pennsylvania", "number": 1600 })""", + // Reorder properties + R"""({ "number": "1600", "street_name": "Pennsylvania", "street_type":"Avenue"})""", + } + ); + + + // Properties (from: https://json-schema.org/understanding-json-schema/reference/object#properties) + test_schema( + "object properties, additionalProperties: true", + // Schema + R"""( + { + "type": "object", + "properties": { + "number": { "type": "number" }, + "street_name": { "type": "string" }, + "street_type": { "enum": ["Street", "Avenue", "Boulevard"] } + }, + "additionalProperties": true + } + )""", + // Passing strings + { + // "By extension, even an empty object is valid" + R"""({})""", +#ifdef INCLUDE_FAILING_TESTS + // TODO: Following line should pass and doesn't + R"""({"number":1600,"street_name":"Pennsylvania","street_type":"Avenue"})""", + // "By default, leaving out properties is valid" + // TODO: Following line should pass and doesn't + R"""({ "street_name": "Pennsylvania" })""", + // TODO: Following line should pass and doesn't + R"""({ "number": 1600, "street_name": "Pennsylvania" })""", + // "By default, providing additional properties is valid" + // TODO: The following should pass, but currently FAILS. Additional properties should be permitted by default. + R"""({ "number": 1600, "street_name": "Pennsylvania", "street_type":"Avenue", "direction":"NW"})""", + // TODO: Spaces should be permitted around enum values, but currently they fail to pass. + R"""({ "number": 1600, "street_name": "Pennsylvania", "street_type": "Avenue" })""", +#endif + }, + // Failing strings + { + // Change datatype from number to string + R"""({ "number": "1600", "street_name": "Pennsylvania", "street_type":"Avenue"})""", + // Reorder properties + R"""({ "street_name": "Pennsylvania", "number": 1600, "street_type":"Avenue"})""", + } + ); + + // Additional properties: false + test_schema( + "required + optional props each in original order", + // Schema + R"""( + { + "type": "object", + "properties": { + "number": { "type": "number" }, + "street_name": { "type": "string" }, + "street_type": { "enum": ["Street", "Avenue", "Boulevard"] } + }, + "additionalProperties": false + } + )""", + // Passing strings + { + R"""({ "street_name": "Pennsylvania" })""", + R"""({ "number": 1600, "street_type":"Avenue"})""", + R"""({ "number": 1600, "street_name": "Pennsylvania" })""", + R"""({ "number": 1600, "street_name": "Pennsylvania", "street_type":"Avenue"})""", +#ifdef INCLUDE_FAILING_TESTS + // TODO: Spaces should be permitted around enum values, but currently they fail to pass. + R"""({ "number": 1600, "street_name": "Pennsylvania", "street_type": "Avenue" })""", +#endif + }, + // Failing strings + { + // Reorder properties + R"""({ "street_type": "Avenue", "number": 1600 })""", + // Add "direction" + R"""({ "number": 1600, "street_name": "Pennsylvania", "street_type": "Avenue", "direction": "NW" })""", + } + ); + + test_schema( + "required + optional props each in original order", + // Schema + R"""( + { + "properties": { + "b": {"type": "string"}, + "a": {"type": "string"}, + "d": {"type": "string"}, + "c": {"type": "string"} + }, + "required": ["a", "b"], + "additionalProperties": false + } + )""", + // Passing strings + { + R"""({"b": "foo", "a": "bar"})""", + R"""({"b":"foo","a":"bar","d":"qux"})""", + R"""({"b":"foo", "a":"bar", "d":"qux", "c":"baz"})""", + }, + // Failing strings + { + R"""({"a": "foo", "b": "bar"})""", + R"""({"b": "bar"})""", + R"""({"a": "foo", "c": "baz"})""", + R"""({"a":"foo", "b":"bar", "c":"baz", "d":"qux"})""", + } + ); + + // NOTE: Example from https://json-schema.org/learn/getting-started-step-by-step#define-required-properties + test_schema( + "required props", + // Schema + R"""( + { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://example.com/product.schema.json", + "title": "Product", + "description": "A product from Acme's catalog", + "type": "object", + "properties": { + "productId": { + "description": "The unique identifier for a product", + "type": "integer" + }, + "productName": { + "description": "Name of the product", + "type": "string" + }, + "price": { + "description": "The price of the product", + "type": "number", + "exclusiveMinimum": 0 + }, + "tags": { + "description": "Tags for the product", + "type": "array", + "items": { + "type": "string" + }, + "minItems": 1, + "uniqueItems": true + }, + "dimensions": { + "type": "object", + "properties": { + "length": { + "type": "number" + }, + "width": { + "type": "number" + }, + "height": { + "type": "number" + } + }, + "required": [ "length", "width", "height" ] + } + }, + "required": [ "productId", "productName", "price" ] + } + )""", + // Passing strings + { + R"""({"productId": 1, "productName": "A green door", "price": 12.50})""", + R"""({"productId": 1, "productName": "A green door", "price": 12.50, "tags": ["home", "green"]})""", + R"""({"productId": 1, "productName": "A green door", "price": 12.50, "tags": ["home", "green"], "dimensions": {"length": 785, "width": 250.5, "height": -0.359}})""", + }, + // Failing strings + { + R"""({})""", // Missing all required properties + R"""({"productName": "A green door", "price": 12.50, "productId": 1})""", // Out of order properties + // TODO: The following line should fail, but currently it passes. `exclusiveMinimum` is not supported, as it would likely be too difficult to implement. + // Perhaps special checks for minimum and maximum values of 0 could be added (since that's relatively easy to do with grammars), but anything else would likely be too complex. + // R"""({"productId": 1, "productName": "A green door", "price": -12.50})""", + R"""({"productId": 1, "productName": "A green door"})""", // Missing required property (price) + R"""({"productName": "A green door", "price": 12.50})""", // Missing required property (productId) + R"""({"productId": 1, "productName": "A green door", "price": 12.50, "tags": []})""", // tags is empty, but minItems is 1 + R"""({"productId": 1, "productName": "A green door", "price": 12.50, "dimensions": {"length": 785, "width": 250.5, "height": -0.359}, "tags": ["home", "green"]})""", // Tags and dimensions are out of order + // TODO: The following line should fail, but currently it passes. `uniqueItems` is not supported, as it would likely be too difficult to implement. + // R"""({"productId": 1, "productName": "A green door", "price": 12.50, "tags": ["home", "green", "home"]})""", + } + ); +} + int main() { fprintf(stdout, "Running grammar integration tests...\n"); test_simple_grammar(); @@ -477,6 +1035,7 @@ int main() { test_failure_missing_root(); test_failure_missing_reference(); test_failure_left_recursion(); + test_json_schema(); fprintf(stdout, "All tests passed.\n"); return 0; } From 5b48cd53a87928db0c6447f0c9dac4db5802102d Mon Sep 17 00:00:00 2001 From: ddh0 Date: Sat, 22 Jun 2024 07:16:10 -0600 Subject: [PATCH 121/131] Update llama-quantize ppl/file size output from LLaMA-v1 to Llama-3 values (#8058) Uses the values computed by @JohannesGaessler in PR #7413 --- examples/quantize/quantize.cpp | 46 +++++++++++++++++----------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/examples/quantize/quantize.cpp b/examples/quantize/quantize.cpp index 28584e14b788c..76e2052d55d79 100644 --- a/examples/quantize/quantize.cpp +++ b/examples/quantize/quantize.cpp @@ -16,41 +16,41 @@ struct quant_option { }; static const std::vector QUANT_OPTIONS = { - { "Q4_0", LLAMA_FTYPE_MOSTLY_Q4_0, " 3.56G, +0.2166 ppl @ LLaMA-v1-7B", }, - { "Q4_1", LLAMA_FTYPE_MOSTLY_Q4_1, " 3.90G, +0.1585 ppl @ LLaMA-v1-7B", }, - { "Q5_0", LLAMA_FTYPE_MOSTLY_Q5_0, " 4.33G, +0.0683 ppl @ LLaMA-v1-7B", }, - { "Q5_1", LLAMA_FTYPE_MOSTLY_Q5_1, " 4.70G, +0.0349 ppl @ LLaMA-v1-7B", }, + { "Q4_0", LLAMA_FTYPE_MOSTLY_Q4_0, " 4.34G, +0.4685 ppl @ Llama-3-8B", }, + { "Q4_1", LLAMA_FTYPE_MOSTLY_Q4_1, " 4.78G, +0.4511 ppl @ Llama-3-8B", }, + { "Q5_0", LLAMA_FTYPE_MOSTLY_Q5_0, " 5.21G, +0.1316 ppl @ Llama-3-8B", }, + { "Q5_1", LLAMA_FTYPE_MOSTLY_Q5_1, " 5.65G, +0.1062 ppl @ Llama-3-8B", }, { "IQ2_XXS",LLAMA_FTYPE_MOSTLY_IQ2_XXS," 2.06 bpw quantization", }, { "IQ2_XS", LLAMA_FTYPE_MOSTLY_IQ2_XS, " 2.31 bpw quantization", }, { "IQ2_S", LLAMA_FTYPE_MOSTLY_IQ2_S, " 2.5 bpw quantization", }, { "IQ2_M", LLAMA_FTYPE_MOSTLY_IQ2_M, " 2.7 bpw quantization", }, { "IQ1_S", LLAMA_FTYPE_MOSTLY_IQ1_S, " 1.56 bpw quantization", }, { "IQ1_M", LLAMA_FTYPE_MOSTLY_IQ1_M, " 1.75 bpw quantization", }, - { "Q2_K", LLAMA_FTYPE_MOSTLY_Q2_K, " 2.63G, +0.6717 ppl @ LLaMA-v1-7B", }, - { "Q2_K_S", LLAMA_FTYPE_MOSTLY_Q2_K_S, " 2.16G, +9.0634 ppl @ LLaMA-v1-7B", }, + { "Q2_K", LLAMA_FTYPE_MOSTLY_Q2_K, " 2.96G, +3.5199 ppl @ Llama-3-8B", }, + { "Q2_K_S", LLAMA_FTYPE_MOSTLY_Q2_K_S, " 2.96G, +3.1836 ppl @ Llama-3-8B", }, { "IQ3_XXS",LLAMA_FTYPE_MOSTLY_IQ3_XXS," 3.06 bpw quantization", }, { "IQ3_S", LLAMA_FTYPE_MOSTLY_IQ3_S, " 3.44 bpw quantization", }, { "IQ3_M", LLAMA_FTYPE_MOSTLY_IQ3_M, " 3.66 bpw quantization mix", }, - { "Q3_K", LLAMA_FTYPE_MOSTLY_Q3_K_M, "alias for Q3_K_M" }, - { "IQ3_XS", LLAMA_FTYPE_MOSTLY_IQ3_XS, " 3.3 bpw quantization" , }, - { "Q3_K_S", LLAMA_FTYPE_MOSTLY_Q3_K_S, " 2.75G, +0.5551 ppl @ LLaMA-v1-7B", }, - { "Q3_K_M", LLAMA_FTYPE_MOSTLY_Q3_K_M, " 3.07G, +0.2496 ppl @ LLaMA-v1-7B", }, - { "Q3_K_L", LLAMA_FTYPE_MOSTLY_Q3_K_L, " 3.35G, +0.1764 ppl @ LLaMA-v1-7B", }, + { "Q3_K", LLAMA_FTYPE_MOSTLY_Q3_K_M, "alias for Q3_K_M" }, + { "IQ3_XS", LLAMA_FTYPE_MOSTLY_IQ3_XS, " 3.3 bpw quantization", }, + { "Q3_K_S", LLAMA_FTYPE_MOSTLY_Q3_K_S, " 3.41G, +1.6321 ppl @ Llama-3-8B", }, + { "Q3_K_M", LLAMA_FTYPE_MOSTLY_Q3_K_M, " 3.74G, +0.6569 ppl @ Llama-3-8B", }, + { "Q3_K_L", LLAMA_FTYPE_MOSTLY_Q3_K_L, " 4.03G, +0.5562 ppl @ Llama-3-8B", }, { "IQ4_NL", LLAMA_FTYPE_MOSTLY_IQ4_NL, " 4.50 bpw non-linear quantization", }, { "IQ4_XS", LLAMA_FTYPE_MOSTLY_IQ4_XS, " 4.25 bpw non-linear quantization", }, - { "Q4_K", LLAMA_FTYPE_MOSTLY_Q4_K_M, "alias for Q4_K_M", }, - { "Q4_K_S", LLAMA_FTYPE_MOSTLY_Q4_K_S, " 3.59G, +0.0992 ppl @ LLaMA-v1-7B", }, - { "Q4_K_M", LLAMA_FTYPE_MOSTLY_Q4_K_M, " 3.80G, +0.0532 ppl @ LLaMA-v1-7B", }, - { "Q5_K", LLAMA_FTYPE_MOSTLY_Q5_K_M, "alias for Q5_K_M", }, - { "Q5_K_S", LLAMA_FTYPE_MOSTLY_Q5_K_S, " 4.33G, +0.0400 ppl @ LLaMA-v1-7B", }, - { "Q5_K_M", LLAMA_FTYPE_MOSTLY_Q5_K_M, " 4.45G, +0.0122 ppl @ LLaMA-v1-7B", }, - { "Q6_K", LLAMA_FTYPE_MOSTLY_Q6_K, " 5.15G, +0.0008 ppl @ LLaMA-v1-7B", }, - { "Q8_0", LLAMA_FTYPE_MOSTLY_Q8_0, " 6.70G, +0.0004 ppl @ LLaMA-v1-7B", }, - { "F16", LLAMA_FTYPE_MOSTLY_F16, "14.00G, -0.0020 ppl @ Mistral-7B", }, - { "BF16", LLAMA_FTYPE_MOSTLY_BF16, "14.00G, -0.0050 ppl @ Mistral-7B", }, - { "F32", LLAMA_FTYPE_ALL_F32, "26.00G @ 7B", }, + { "Q4_K", LLAMA_FTYPE_MOSTLY_Q4_K_M, "alias for Q4_K_M", }, + { "Q4_K_S", LLAMA_FTYPE_MOSTLY_Q4_K_S, " 4.37G, +0.2689 ppl @ Llama-3-8B", }, + { "Q4_K_M", LLAMA_FTYPE_MOSTLY_Q4_K_M, " 4.58G, +0.1754 ppl @ Llama-3-8B", }, + { "Q5_K", LLAMA_FTYPE_MOSTLY_Q5_K_M, "alias for Q5_K_M", }, + { "Q5_K_S", LLAMA_FTYPE_MOSTLY_Q5_K_S, " 5.21G, +0.1049 ppl @ Llama-3-8B", }, + { "Q5_K_M", LLAMA_FTYPE_MOSTLY_Q5_K_M, " 5.33G, +0.0569 ppl @ Llama-3-8B", }, + { "Q6_K", LLAMA_FTYPE_MOSTLY_Q6_K, " 6.14G, +0.0217 ppl @ Llama-3-8B", }, + { "Q8_0", LLAMA_FTYPE_MOSTLY_Q8_0, " 7.96G, +0.0026 ppl @ Llama-3-8B", }, + { "F16", LLAMA_FTYPE_MOSTLY_F16, "14.00G, +0.0020 ppl @ Mistral-7B", }, + { "BF16", LLAMA_FTYPE_MOSTLY_BF16, "14.00G, -0.0050 ppl @ Mistral-7B", }, + { "F32", LLAMA_FTYPE_ALL_F32, "26.00G @ 7B", }, // Note: Ensure COPY comes after F32 to avoid ftype 0 from matching. - { "COPY", LLAMA_FTYPE_ALL_F32, "only copy tensors, no quantizing", }, + { "COPY", LLAMA_FTYPE_ALL_F32, "only copy tensors, no quantizing", }, }; static const char * const LLM_KV_QUANTIZE_IMATRIX_FILE = "quantize.imatrix.file"; From 3aa184a8c7c553b5dfcc142d919f3db695df297a Mon Sep 17 00:00:00 2001 From: 0xspringtime <110655352+0xspringtime@users.noreply.github.com> Date: Sat, 22 Jun 2024 09:37:41 -0400 Subject: [PATCH 122/131] convert-hf : change assert to exception (#8015) --- convert-hf-to-gguf.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/convert-hf-to-gguf.py b/convert-hf-to-gguf.py index a6751cc80e682..166e5ded2f90f 100755 --- a/convert-hf-to-gguf.py +++ b/convert-hf-to-gguf.py @@ -967,7 +967,13 @@ def set_vocab(self): from transformers import AutoTokenizer tokenizer = AutoTokenizer.from_pretrained(dir_model) vocab_size = hparams.get("vocab_size", len(tokenizer.vocab)) - assert max(tokenizer.vocab.values()) < vocab_size + # Since we are checking the maximum index, we need to ensure it's strictly less than vocab_size, + # because vocab_size is the count of items, and indexes start at 0. + max_vocab_index = max(tokenizer.get_vocab().values()) + if max_vocab_index >= vocab_size: + raise ValueError("Vocabulary size exceeds expected maximum size.") + + reverse_vocab: dict[int, str] = {id_: encoded_tok for encoded_tok, id_ in tokenizer.vocab.items()} added_vocab = tokenizer.get_added_vocab() From adf480c3ab3abedc964c8ae381476257583ae134 Mon Sep 17 00:00:00 2001 From: HatsuneMikuUwU33 <173229399+HatsuneMikuUwU33@users.noreply.github.com> Date: Sat, 22 Jun 2024 17:19:37 +0200 Subject: [PATCH 123/131] =?UTF-8?q?cvector-generator:=20Moe=20Moe=20Fixie-?= =?UTF-8?q?Fixie=20for=20Lots=20of=20Formats~!=20=E2=99=A1(=E1=90=A2=20?= =?UTF-8?q?=E1=B4=A5=20=E1=90=A2)=E2=99=A1=20(#8052)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update negative.txt * Update positive.txt * Update cvector-generator.cpp * Update cvector-generator.cpp --- examples/cvector-generator/cvector-generator.cpp | 4 ++-- examples/cvector-generator/negative.txt | 2 +- examples/cvector-generator/positive.txt | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/cvector-generator/cvector-generator.cpp b/examples/cvector-generator/cvector-generator.cpp index 9941683db677e..8653bb6305281 100644 --- a/examples/cvector-generator/cvector-generator.cpp +++ b/examples/cvector-generator/cvector-generator.cpp @@ -377,8 +377,8 @@ static int prepare_entries(gpt_params & params, train_context & ctx_train) { // create templated prompts std::vector completions = ctrlvec_load_prompt_file(params.cvector_completions_file, false); auto format_template = [](std::string persona, std::string suffix) { - // entry in positive/negative.txt must already be formatted i.e. "[INST] Act as if you're extremely happy. [/INST]" - return persona + " " + suffix; + // entry in positive/negative.txt must already be formatted i.e. "[INST] Act as if you're extremely happy. [/INST] " + return persona + suffix; }; for (size_t i = 0; i < positive_prompts.size(); ++i) { for (int j = 0; j < std::min((int) completions.size(), params.n_completions); ++j) { diff --git a/examples/cvector-generator/negative.txt b/examples/cvector-generator/negative.txt index 2ac3387f184b0..3e9951752e886 100644 --- a/examples/cvector-generator/negative.txt +++ b/examples/cvector-generator/negative.txt @@ -1 +1 @@ -[INST] Act like a person who is extremely sad. [/INST] \ No newline at end of file +[INST] Act like a person who is extremely sad. [/INST] diff --git a/examples/cvector-generator/positive.txt b/examples/cvector-generator/positive.txt index f28e9aa1aeb72..8802367873cd9 100644 --- a/examples/cvector-generator/positive.txt +++ b/examples/cvector-generator/positive.txt @@ -1 +1 @@ -[INST] Act like a person who is extremely happy. [/INST] \ No newline at end of file +[INST] Act like a person who is extremely happy. [/INST] From 3e58b0ee355f78be41cf5211b68426761339bc3c Mon Sep 17 00:00:00 2001 From: Xuan Son Nguyen Date: Sat, 22 Jun 2024 18:11:30 +0200 Subject: [PATCH 124/131] cvector: fix CI + correct help message (#8064) * cvector: fix CI + correct help message * also correct --pca-iter --- .editorconfig | 1 + common/common.cpp | 4 ++-- examples/cvector-generator/README.md | 2 +- examples/cvector-generator/cvector-generator.cpp | 2 +- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/.editorconfig b/.editorconfig index bd525e13f3ece..f88f8da67cd78 100644 --- a/.editorconfig +++ b/.editorconfig @@ -28,4 +28,5 @@ indent_size = 2 indent_style = tab [examples/cvector-generator/*.txt] +trim_trailing_whitespace = unset insert_final_newline = unset diff --git a/common/common.cpp b/common/common.cpp index 64f160af1c18c..cfdedcbae0cd9 100644 --- a/common/common.cpp +++ b/common/common.cpp @@ -1989,8 +1989,8 @@ void gpt_params_print_usage(int /*argc*/, char ** argv, const gpt_params & param options.push_back({ "cvector", " --completions-file FNAME", "completions file (default: '%s')", params.cvector_completions_file.c_str() }); options.push_back({ "cvector", " --completions N", "number of lines of completions file to use (default: %d)", params.n_completions }); - options.push_back({ "cvector", " --batch-pca N", "batch size used for PCA. Larger batch runs faster, but uses more memory (default: %d)", params.n_pca_batch }); - options.push_back({ "cvector", " --iter-pca N", "number of iterations used for PCA (default: %d)", params.n_pca_iterations }); + options.push_back({ "cvector", " --pca-batch N", "batch size used for PCA. Larger batch runs faster, but uses more memory (default: %d)", params.n_pca_batch }); + options.push_back({ "cvector", " --pca-iter N", "number of iterations used for PCA (default: %d)", params.n_pca_iterations }); printf("usage: %s [options]\n", argv[0]); diff --git a/examples/cvector-generator/README.md b/examples/cvector-generator/README.md index 7b0e79c1ffba8..5182e906d9180 100644 --- a/examples/cvector-generator/README.md +++ b/examples/cvector-generator/README.md @@ -17,7 +17,7 @@ Related PRs: ./cvector-generator -m ./dolphin-2.0-mistral-7b.Q4_K_M.gguf -ngl 99 # With advanced options -./cvector-generator -m ./dolphin-2.0-mistral-7b.Q4_K_M.gguf -ngl 99 --completions 128 --pca-iter 2000 --batch-pca 100 +./cvector-generator -m ./dolphin-2.0-mistral-7b.Q4_K_M.gguf -ngl 99 --completions 128 --pca-iter 2000 --pca-batch 100 # To see help message ./cvector-generator -h diff --git a/examples/cvector-generator/cvector-generator.cpp b/examples/cvector-generator/cvector-generator.cpp index 8653bb6305281..355905cb03d60 100644 --- a/examples/cvector-generator/cvector-generator.cpp +++ b/examples/cvector-generator/cvector-generator.cpp @@ -40,7 +40,7 @@ static void print_usage(int argc, char ** argv, const gpt_params & params) { printf("\nexample usage:\n"); printf("\n CPU only: %s -m ./dolphin-2.0-mistral-7b.Q4_K_M.gguf\n", argv[0]); printf("\n with GPU: %s -m ./dolphin-2.0-mistral-7b.Q4_K_M.gguf -ngl 99\n", argv[0]); - printf("\n advanced: %s -m ./dolphin-2.0-mistral-7b.Q4_K_M.gguf -ngl 99 --completions 128 --pca-iter 2000 --batch-pca 100\n", argv[0]); + printf("\n advanced: %s -m ./dolphin-2.0-mistral-7b.Q4_K_M.gguf -ngl 99 --completions 128 --pca-iter 2000 --pca-batch 100\n", argv[0]); printf("\n"); } From b5a5f34efadec8d8f0057b35cb04742abfeb2ef5 Mon Sep 17 00:00:00 2001 From: Clint Herron Date: Sat, 22 Jun 2024 14:28:18 -0400 Subject: [PATCH 125/131] Removing extra blank lines that were breaking Lint. (#8067) --- convert-hf-to-gguf.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/convert-hf-to-gguf.py b/convert-hf-to-gguf.py index 166e5ded2f90f..3107b69f7e42e 100755 --- a/convert-hf-to-gguf.py +++ b/convert-hf-to-gguf.py @@ -973,8 +973,6 @@ def set_vocab(self): if max_vocab_index >= vocab_size: raise ValueError("Vocabulary size exceeds expected maximum size.") - - reverse_vocab: dict[int, str] = {id_: encoded_tok for encoded_tok, id_ in tokenizer.vocab.items()} added_vocab = tokenizer.get_added_vocab() From 45c0e2e4c1268c2d7c8c45536f15e3c9a731ecdc Mon Sep 17 00:00:00 2001 From: 0cc4m Date: Sun, 23 Jun 2024 10:21:25 +0200 Subject: [PATCH 126/131] Refactor Vulkan backend to allow multiple contexts (#7961) * Refactor Vulkan backend to allow multiple contexts * Fix too many shader groups called validation error in llama3 on AMD and Intel GPUs * Fix Vulkan debug build error --- ggml-vulkan-shaders.hpp | 39093 +++++++++++++------------ ggml-vulkan.cpp | 2125 +- vulkan-shaders/mul_mat_vec.comp | 2 +- vulkan-shaders/mul_mat_vec_q2_k.comp | 2 +- vulkan-shaders/mul_mat_vec_q3_k.comp | 2 +- vulkan-shaders/mul_mat_vec_q4_k.comp | 2 +- vulkan-shaders/mul_mat_vec_q5_k.comp | 2 +- vulkan-shaders/mul_mat_vec_q6_k.comp | 2 +- 8 files changed, 20788 insertions(+), 20442 deletions(-) diff --git a/ggml-vulkan-shaders.hpp b/ggml-vulkan-shaders.hpp index e97a8c6b7ae6c..01ff66f71fcf0 100644 --- a/ggml-vulkan-shaders.hpp +++ b/ggml-vulkan-shaders.hpp @@ -120086,669 +120086,1007 @@ const uint64_t mul_f32_len = 4276; unsigned char mul_mat_vec_f16_f16_f32_data[] = { 0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00, -0x41,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, +0x48,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, 0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x51,0x11,0x00,0x00, 0x0b,0x00,0x06,0x00,0x01,0x00,0x00,0x00,0x47,0x4c,0x53,0x4c, 0x2e,0x73,0x74,0x64,0x2e,0x34,0x35,0x30,0x00,0x00,0x00,0x00, 0x0e,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x0f,0x00,0x0d,0x00,0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x0f,0x00,0x0e,0x00,0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00, 0x6d,0x61,0x69,0x6e,0x00,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, 0x32,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x69,0x00,0x00,0x00, -0x6e,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0xb8,0x00,0x00,0x00, -0xf8,0x00,0x00,0x00,0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00, -0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x48,0x00,0x04,0x00, -0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, -0x18,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x1a,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x1a,0x00,0x00,0x00,0x21,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x32,0x00,0x00,0x00, -0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x38,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x38,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x38,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x38,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x38,0x00,0x00,0x00,0x05,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x38,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x38,0x00,0x00,0x00, -0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x38,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x38,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x24,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x38,0x00,0x00,0x00, -0x0a,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x28,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0x38,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x69,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, -0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x6e,0x00,0x00,0x00, -0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x7b,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xb5,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0xb6,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0xb6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0xb6,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xb8,0x00,0x00,0x00, -0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xb8,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xf5,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0xf6,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0xf6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0xf6,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xf8,0x00,0x00,0x00, -0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xf8,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x01,0x01,0x00,0x00, -0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x13,0x00,0x02,0x00, -0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x00,0x03,0x00, -0x08,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x16,0x00,0x03,0x00, -0x16,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, -0x17,0x00,0x00,0x00,0x16,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, -0x18,0x00,0x00,0x00,0x17,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x19,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x18,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x20,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x16,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x27,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x17,0x00,0x04,0x00, -0x30,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x31,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x30,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x31,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x33,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x1e,0x00,0x0d,0x00,0x38,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x39,0x00,0x00,0x00, -0x09,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x39,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x3b,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x3c,0x00,0x00,0x00, -0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x47,0x00,0x00,0x00,0x0a,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x4d,0x00,0x00,0x00, -0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x53,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x5a,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x5f,0x00,0x00,0x00, -0x05,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x64,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x31,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x6a,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x31,0x00,0x00,0x00, -0x6e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x1c,0x00,0x04,0x00,0x7c,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x7b,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x7d,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x7c,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x7d,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x80,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x81,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x14,0x00,0x02,0x00, -0x8d,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x92,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, -0xb5,0x00,0x00,0x00,0x16,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, -0xb6,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0xb7,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xb6,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0xb7,0x00,0x00,0x00,0xb8,0x00,0x00,0x00, +0x6d,0x00,0x00,0x00,0x76,0x00,0x00,0x00,0x86,0x00,0x00,0x00, +0xbf,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x10,0x00,0x06,0x00, +0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x48,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x03,0x00,0x18,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x1a,0x00,0x00,0x00,0x22,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x1a,0x00,0x00,0x00, +0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x32,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x38,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x38,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x38,0x00,0x00,0x00,0x03,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x38,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x38,0x00,0x00,0x00, +0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x38,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x38,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x38,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x38,0x00,0x00,0x00,0x09,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x38,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x28,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x38,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x69,0x00,0x00,0x00, +0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x6d,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x76,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, +0x1b,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x83,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xbc,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x48,0x00,0x04,0x00,0xbd,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xbd,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x03,0x00,0xbd,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xbf,0x00,0x00,0x00,0x22,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xbf,0x00,0x00,0x00, +0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xfc,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x48,0x00,0x04,0x00,0xfd,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x19,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xfd,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x03,0x00,0xfd,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xff,0x00,0x00,0x00,0x22,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xff,0x00,0x00,0x00, +0x21,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x07,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x08,0x01,0x00,0x00,0x0b,0x00,0x00,0x00, +0x19,0x00,0x00,0x00,0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00, +0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x15,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0x08,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0x16,0x00,0x00,0x00, +0x10,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x17,0x00,0x00,0x00, +0x16,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x18,0x00,0x00,0x00, +0x17,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x19,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0x19,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x15,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x20,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x20,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x16,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x27,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x17,0x00,0x04,0x00,0x30,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x31,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x30,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x31,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x33,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x1e,0x00,0x0d,0x00, +0x38,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x39,0x00,0x00,0x00,0x09,0x00,0x00,0x00, +0x38,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x39,0x00,0x00,0x00, +0x3a,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x3c,0x00,0x00,0x00,0x09,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x47,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,0x09,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x53,0x00,0x00,0x00, +0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x5a,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,0x05,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x64,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x31,0x00,0x00,0x00, +0x69,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x6a,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x31,0x00,0x00,0x00,0x6d,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x70,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0x31,0x00,0x00,0x00,0x76,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x83,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0x84,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x83,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x85,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x84,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x85,0x00,0x00,0x00,0x86,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x89,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x14,0x00,0x02,0x00,0x95,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, +0xbc,0x00,0x00,0x00,0x16,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, +0xbd,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0xbe,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xbd,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0xbe,0x00,0x00,0x00,0xbf,0x00,0x00,0x00, 0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xd5,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x34,0x00,0x06,0x00, -0x06,0x00,0x00,0x00,0xd7,0x00,0x00,0x00,0x86,0x00,0x00,0x00, -0x7b,0x00,0x00,0x00,0x92,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x1d,0x00,0x03,0x00,0xf5,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x1e,0x00,0x03,0x00,0xf6,0x00,0x00,0x00,0xf5,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0xf7,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0xf6,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xf7,0x00,0x00,0x00, -0xf8,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0xfe,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x00,0x01,0x00,0x00, +0xdc,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x34,0x00,0x06,0x00, +0x06,0x00,0x00,0x00,0xde,0x00,0x00,0x00,0x86,0x00,0x00,0x00, +0x83,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x1d,0x00,0x03,0x00,0xfc,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x1e,0x00,0x03,0x00,0xfd,0x00,0x00,0x00,0xfc,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0xfe,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0xfd,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xfe,0x00,0x00,0x00, +0xff,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x05,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x07,0x01,0x00,0x00, 0x01,0x00,0x00,0x00,0x33,0x00,0x06,0x00,0x30,0x00,0x00,0x00, -0x01,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x27,0x00,0x00,0x00, +0x08,0x01,0x00,0x00,0x07,0x01,0x00,0x00,0x27,0x00,0x00,0x00, 0x27,0x00,0x00,0x00,0x36,0x00,0x05,0x00,0x02,0x00,0x00,0x00, 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00, 0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00,0x41,0x00,0x05,0x00, 0x33,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,0x69,0x00,0x00,0x00, 0x6a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, 0x6c,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,0x41,0x00,0x05,0x00, -0x33,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x6e,0x00,0x00,0x00, +0x33,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x6d,0x00,0x00,0x00, 0x6a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x70,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x41,0x00,0x05,0x00, -0x33,0x00,0x00,0x00,0x09,0x01,0x00,0x00,0x32,0x00,0x00,0x00, -0x27,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x0a,0x01,0x00,0x00,0x09,0x01,0x00,0x00,0x41,0x00,0x05,0x00, -0x3c,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,0x3a,0x00,0x00,0x00, -0x3b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x0d,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,0x86,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x0e,0x01,0x00,0x00,0x0a,0x01,0x00,0x00, -0x0d,0x01,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x12,0x01,0x00,0x00,0x0a,0x01,0x00,0x00,0x0d,0x01,0x00,0x00, -0x41,0x00,0x05,0x00,0x3c,0x00,0x00,0x00,0x14,0x01,0x00,0x00, -0x3a,0x00,0x00,0x00,0x47,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x15,0x01,0x00,0x00,0x14,0x01,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x16,0x01,0x00,0x00, -0x0e,0x01,0x00,0x00,0x15,0x01,0x00,0x00,0x41,0x00,0x05,0x00, -0x3c,0x00,0x00,0x00,0x18,0x01,0x00,0x00,0x3a,0x00,0x00,0x00, -0x4d,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x19,0x01,0x00,0x00,0x18,0x01,0x00,0x00,0x86,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x1a,0x01,0x00,0x00,0x12,0x01,0x00,0x00, -0x19,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x3c,0x00,0x00,0x00, -0x1c,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,0x53,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x1d,0x01,0x00,0x00, -0x1c,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x1e,0x01,0x00,0x00,0x16,0x01,0x00,0x00,0x1d,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x20,0x01,0x00,0x00, -0x1e,0x01,0x00,0x00,0x1a,0x01,0x00,0x00,0x41,0x00,0x05,0x00, -0x3c,0x00,0x00,0x00,0x22,0x01,0x00,0x00,0x3a,0x00,0x00,0x00, -0x5a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x23,0x01,0x00,0x00,0x22,0x01,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x24,0x01,0x00,0x00,0x20,0x01,0x00,0x00, -0x23,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x3c,0x00,0x00,0x00, -0x26,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,0x5f,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x27,0x01,0x00,0x00, -0x26,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x28,0x01,0x00,0x00,0x0a,0x01,0x00,0x00,0x27,0x01,0x00,0x00, -0x41,0x00,0x05,0x00,0x3c,0x00,0x00,0x00,0x2a,0x01,0x00,0x00, -0x3a,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x2b,0x01,0x00,0x00,0x2a,0x01,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2c,0x01,0x00,0x00, -0x0a,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,0x41,0x00,0x05,0x00, -0x81,0x00,0x00,0x00,0x82,0x00,0x00,0x00,0x7e,0x00,0x00,0x00, -0x70,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0x82,0x00,0x00,0x00, -0x80,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x84,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0x84,0x00,0x00,0x00,0xf5,0x00,0x07,0x00, -0x06,0x00,0x00,0x00,0x3f,0x01,0x00,0x00,0x6a,0x00,0x00,0x00, -0x05,0x00,0x00,0x00,0xd4,0x00,0x00,0x00,0x85,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x3c,0x00,0x00,0x00,0x8a,0x00,0x00,0x00, -0x3a,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x8b,0x00,0x00,0x00,0x8a,0x00,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8c,0x00,0x00,0x00, -0x8b,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,0xb0,0x00,0x05,0x00, -0x8d,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,0x3f,0x01,0x00,0x00, -0x8c,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x86,0x00,0x00,0x00, -0x85,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, -0x8e,0x00,0x00,0x00,0x85,0x00,0x00,0x00,0x86,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0x85,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x91,0x00,0x00,0x00,0x3f,0x01,0x00,0x00, -0x7b,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x94,0x00,0x00,0x00,0x92,0x00,0x00,0x00,0x70,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x95,0x00,0x00,0x00, -0x91,0x00,0x00,0x00,0x94,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,0x6c,0x00,0x00,0x00, -0x8b,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x9c,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,0x95,0x00,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9d,0x00,0x00,0x00, -0x9c,0x00,0x00,0x00,0x27,0x00,0x00,0x00,0x89,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0x95,0x00,0x00,0x00, -0x27,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xa1,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0x27,0x00,0x00,0x00, -0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa6,0x00,0x00,0x00, -0x95,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0x86,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xaa,0x00,0x00,0x00,0x24,0x01,0x00,0x00, -0x27,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x31,0x01,0x00,0x00,0xaa,0x00,0x00,0x00,0x9d,0x00,0x00,0x00, -0x41,0x00,0x06,0x00,0x20,0x00,0x00,0x00,0x32,0x01,0x00,0x00, -0x1a,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x31,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0x16,0x00,0x00,0x00,0x33,0x01,0x00,0x00, -0x32,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00, -0x34,0x01,0x00,0x00,0x33,0x01,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x38,0x01,0x00,0x00,0x31,0x01,0x00,0x00, -0x27,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x20,0x00,0x00,0x00, +0x6f,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0x33,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x69,0x00,0x00,0x00, +0x70,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x72,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x73,0x00,0x00,0x00,0x6f,0x00,0x00,0x00, +0x72,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x74,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x73,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x33,0x00,0x00,0x00,0x77,0x00,0x00,0x00, +0x76,0x00,0x00,0x00,0x6a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x77,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x33,0x00,0x00,0x00,0x10,0x01,0x00,0x00, +0x32,0x00,0x00,0x00,0x27,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x11,0x01,0x00,0x00,0x10,0x01,0x00,0x00, +0x41,0x00,0x05,0x00,0x3c,0x00,0x00,0x00,0x13,0x01,0x00,0x00, +0x3a,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x14,0x01,0x00,0x00,0x13,0x01,0x00,0x00, +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x15,0x01,0x00,0x00, +0x11,0x01,0x00,0x00,0x14,0x01,0x00,0x00,0x89,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x19,0x01,0x00,0x00,0x11,0x01,0x00,0x00, +0x14,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x3c,0x00,0x00,0x00, +0x1b,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,0x47,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x1c,0x01,0x00,0x00, +0x1b,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x1d,0x01,0x00,0x00,0x15,0x01,0x00,0x00,0x1c,0x01,0x00,0x00, +0x41,0x00,0x05,0x00,0x3c,0x00,0x00,0x00,0x1f,0x01,0x00,0x00, +0x3a,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x20,0x01,0x00,0x00,0x1f,0x01,0x00,0x00, +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x21,0x01,0x00,0x00, +0x19,0x01,0x00,0x00,0x20,0x01,0x00,0x00,0x41,0x00,0x05,0x00, +0x3c,0x00,0x00,0x00,0x23,0x01,0x00,0x00,0x3a,0x00,0x00,0x00, +0x53,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x24,0x01,0x00,0x00,0x23,0x01,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x25,0x01,0x00,0x00,0x1d,0x01,0x00,0x00, +0x24,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x27,0x01,0x00,0x00,0x25,0x01,0x00,0x00,0x21,0x01,0x00,0x00, +0x41,0x00,0x05,0x00,0x3c,0x00,0x00,0x00,0x29,0x01,0x00,0x00, +0x3a,0x00,0x00,0x00,0x5a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x2a,0x01,0x00,0x00,0x29,0x01,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2b,0x01,0x00,0x00, +0x27,0x01,0x00,0x00,0x2a,0x01,0x00,0x00,0x41,0x00,0x05,0x00, +0x3c,0x00,0x00,0x00,0x2d,0x01,0x00,0x00,0x3a,0x00,0x00,0x00, +0x5f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x2e,0x01,0x00,0x00,0x2d,0x01,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x2f,0x01,0x00,0x00,0x11,0x01,0x00,0x00, +0x2e,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x3c,0x00,0x00,0x00, +0x31,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,0x64,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x32,0x01,0x00,0x00, +0x31,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x33,0x01,0x00,0x00,0x11,0x01,0x00,0x00,0x32,0x01,0x00,0x00, +0x41,0x00,0x05,0x00,0x89,0x00,0x00,0x00,0x8a,0x00,0x00,0x00, +0x86,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x3e,0x00,0x03,0x00, +0x8a,0x00,0x00,0x00,0x88,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, +0x8c,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x8c,0x00,0x00,0x00, +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x46,0x01,0x00,0x00, +0x6a,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0xdb,0x00,0x00,0x00, +0x8d,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x3c,0x00,0x00,0x00, +0x92,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x93,0x00,0x00,0x00, +0x92,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x94,0x00,0x00,0x00,0x93,0x00,0x00,0x00,0x83,0x00,0x00,0x00, +0xb0,0x00,0x05,0x00,0x95,0x00,0x00,0x00,0x96,0x00,0x00,0x00, +0x46,0x01,0x00,0x00,0x94,0x00,0x00,0x00,0xf6,0x00,0x04,0x00, +0x8e,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0xfa,0x00,0x04,0x00,0x96,0x00,0x00,0x00,0x8d,0x00,0x00,0x00, +0x8e,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x8d,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x99,0x00,0x00,0x00, +0x46,0x01,0x00,0x00,0x83,0x00,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,0x70,0x00,0x00,0x00, +0x78,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x9c,0x00,0x00,0x00,0x99,0x00,0x00,0x00,0x9b,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa1,0x00,0x00,0x00, +0x74,0x00,0x00,0x00,0x93,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0xa1,0x00,0x00,0x00, +0x9c,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xa4,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0x27,0x00,0x00,0x00, +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa7,0x00,0x00,0x00, +0x9c,0x00,0x00,0x00,0x27,0x00,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,0xa7,0x00,0x00,0x00, +0x27,0x00,0x00,0x00,0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xad,0x00,0x00,0x00,0x9c,0x00,0x00,0x00,0xa7,0x00,0x00,0x00, +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb1,0x00,0x00,0x00, +0x2b,0x01,0x00,0x00,0x27,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x38,0x01,0x00,0x00,0xb1,0x00,0x00,0x00, +0xa4,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x20,0x00,0x00,0x00, 0x39,0x01,0x00,0x00,0x1a,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, 0x38,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x16,0x00,0x00,0x00, 0x3a,0x01,0x00,0x00,0x39,0x01,0x00,0x00,0x73,0x00,0x04,0x00, 0x08,0x00,0x00,0x00,0x3b,0x01,0x00,0x00,0x3a,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbb,0x00,0x00,0x00, -0x28,0x01,0x00,0x00,0xa6,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xbd,0x00,0x00,0x00,0xbb,0x00,0x00,0x00, -0xa1,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x20,0x00,0x00,0x00, -0xbe,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0xbd,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x16,0x00,0x00,0x00, -0xbf,0x00,0x00,0x00,0xbe,0x00,0x00,0x00,0x73,0x00,0x04,0x00, -0x08,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0xbf,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc9,0x00,0x00,0x00, -0xbd,0x00,0x00,0x00,0x27,0x00,0x00,0x00,0x41,0x00,0x06,0x00, -0x20,0x00,0x00,0x00,0xca,0x00,0x00,0x00,0xb8,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x16,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,0xca,0x00,0x00,0x00, -0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xcc,0x00,0x00,0x00, -0xcb,0x00,0x00,0x00,0x85,0x00,0x05,0x00,0x08,0x00,0x00,0x00, -0xcd,0x00,0x00,0x00,0x3b,0x01,0x00,0x00,0xcc,0x00,0x00,0x00, -0x0c,0x00,0x08,0x00,0x08,0x00,0x00,0x00,0xce,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x34,0x01,0x00,0x00, -0xc0,0x00,0x00,0x00,0xcd,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x08,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0x82,0x00,0x00,0x00, -0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0xd1,0x00,0x00,0x00, -0xd0,0x00,0x00,0x00,0xce,0x00,0x00,0x00,0x3e,0x00,0x03,0x00, -0x82,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xd4,0x00,0x00,0x00,0x3f,0x01,0x00,0x00, -0x92,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x84,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0x86,0x00,0x00,0x00,0xe0,0x00,0x04,0x00, -0x92,0x00,0x00,0x00,0x92,0x00,0x00,0x00,0xd5,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0xd8,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0xd8,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00, -0x40,0x01,0x00,0x00,0xd7,0x00,0x00,0x00,0x86,0x00,0x00,0x00, -0xf0,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,0xac,0x00,0x05,0x00, -0x8d,0x00,0x00,0x00,0xde,0x00,0x00,0x00,0x40,0x01,0x00,0x00, -0x6a,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xda,0x00,0x00,0x00, -0xdb,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, -0xde,0x00,0x00,0x00,0xd9,0x00,0x00,0x00,0xda,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0xd9,0x00,0x00,0x00,0xb0,0x00,0x05,0x00, -0x8d,0x00,0x00,0x00,0xe1,0x00,0x00,0x00,0x70,0x00,0x00,0x00, -0x40,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,0xe3,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xe1,0x00,0x00,0x00, -0xe2,0x00,0x00,0x00,0xe3,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0xe2,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xe7,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x40,0x01,0x00,0x00, -0x41,0x00,0x05,0x00,0x81,0x00,0x00,0x00,0xe8,0x00,0x00,0x00, -0x7e,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x08,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,0xe8,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xeb,0x00,0x00,0x00, -0x82,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00, -0xec,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0xe9,0x00,0x00,0x00, -0x3e,0x00,0x03,0x00,0x82,0x00,0x00,0x00,0xec,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0xe3,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0xe3,0x00,0x00,0x00,0xe0,0x00,0x04,0x00,0x92,0x00,0x00,0x00, -0x92,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, -0xdb,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xdb,0x00,0x00,0x00, -0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf0,0x00,0x00,0x00, -0x40,0x01,0x00,0x00,0xee,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, -0xd8,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xda,0x00,0x00,0x00, -0xaa,0x00,0x05,0x00,0x8d,0x00,0x00,0x00,0xf2,0x00,0x00,0x00, -0x70,0x00,0x00,0x00,0x6a,0x00,0x00,0x00,0xf7,0x00,0x03,0x00, -0xf4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, -0xf2,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,0xf4,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0xf3,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0x2c,0x01,0x00,0x00, -0x6c,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x81,0x00,0x00,0x00, -0xfc,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xfd,0x00,0x00,0x00, -0xfc,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xfe,0x00,0x00,0x00, -0xff,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0xfb,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0xff,0x00,0x00,0x00, -0xfd,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xf4,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0xf4,0x00,0x00,0x00,0xfd,0x00,0x01,0x00, -0x38,0x00,0x01,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3f,0x01,0x00,0x00, +0x38,0x01,0x00,0x00,0x27,0x00,0x00,0x00,0x41,0x00,0x06,0x00, +0x20,0x00,0x00,0x00,0x40,0x01,0x00,0x00,0x1a,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0x3f,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0x16,0x00,0x00,0x00,0x41,0x01,0x00,0x00,0x40,0x01,0x00,0x00, +0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x42,0x01,0x00,0x00, +0x41,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xc2,0x00,0x00,0x00,0x2f,0x01,0x00,0x00,0xad,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc4,0x00,0x00,0x00, +0xc2,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,0x41,0x00,0x06,0x00, +0x20,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0xbf,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x16,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,0xc5,0x00,0x00,0x00, +0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xc7,0x00,0x00,0x00, +0xc6,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xd0,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,0x27,0x00,0x00,0x00, +0x41,0x00,0x06,0x00,0x20,0x00,0x00,0x00,0xd1,0x00,0x00,0x00, +0xbf,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xd0,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x16,0x00,0x00,0x00,0xd2,0x00,0x00,0x00, +0xd1,0x00,0x00,0x00,0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0xd3,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,0x85,0x00,0x05,0x00, +0x08,0x00,0x00,0x00,0xd4,0x00,0x00,0x00,0x42,0x01,0x00,0x00, +0xd3,0x00,0x00,0x00,0x0c,0x00,0x08,0x00,0x08,0x00,0x00,0x00, +0xd5,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0x3b,0x01,0x00,0x00,0xc7,0x00,0x00,0x00,0xd4,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xd7,0x00,0x00,0x00, +0x8a,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00, +0xd8,0x00,0x00,0x00,0xd7,0x00,0x00,0x00,0xd5,0x00,0x00,0x00, +0x3e,0x00,0x03,0x00,0x8a,0x00,0x00,0x00,0xd8,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdb,0x00,0x00,0x00, +0x46,0x01,0x00,0x00,0x70,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, +0x8c,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x8e,0x00,0x00,0x00, +0xe0,0x00,0x04,0x00,0x70,0x00,0x00,0x00,0x70,0x00,0x00,0x00, +0xdc,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xdf,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0xdf,0x00,0x00,0x00,0xf5,0x00,0x07,0x00, +0x06,0x00,0x00,0x00,0x47,0x01,0x00,0x00,0xde,0x00,0x00,0x00, +0x8e,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,0xe2,0x00,0x00,0x00, +0xac,0x00,0x05,0x00,0x95,0x00,0x00,0x00,0xe5,0x00,0x00,0x00, +0x47,0x01,0x00,0x00,0x6a,0x00,0x00,0x00,0xf6,0x00,0x04,0x00, +0xe1,0x00,0x00,0x00,0xe2,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0xfa,0x00,0x04,0x00,0xe5,0x00,0x00,0x00,0xe0,0x00,0x00,0x00, +0xe1,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xe0,0x00,0x00,0x00, +0xb0,0x00,0x05,0x00,0x95,0x00,0x00,0x00,0xe8,0x00,0x00,0x00, +0x78,0x00,0x00,0x00,0x47,0x01,0x00,0x00,0xf7,0x00,0x03,0x00, +0xea,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, +0xe8,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,0xea,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0xe9,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0x78,0x00,0x00,0x00, +0x47,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x89,0x00,0x00,0x00, +0xef,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0xee,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xf0,0x00,0x00,0x00, +0xef,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0xf2,0x00,0x00,0x00,0x8a,0x00,0x00,0x00,0x81,0x00,0x05,0x00, +0x08,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,0xf2,0x00,0x00,0x00, +0xf0,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0x8a,0x00,0x00,0x00, +0xf3,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xea,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0xea,0x00,0x00,0x00,0xe0,0x00,0x04,0x00, +0x70,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0xdc,0x00,0x00,0x00, +0xf9,0x00,0x02,0x00,0xe2,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xe2,0x00,0x00,0x00,0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xf7,0x00,0x00,0x00,0x47,0x01,0x00,0x00,0xf5,0x00,0x00,0x00, +0xf9,0x00,0x02,0x00,0xdf,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xe1,0x00,0x00,0x00,0xaa,0x00,0x05,0x00,0x95,0x00,0x00,0x00, +0xf9,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x6a,0x00,0x00,0x00, +0xf7,0x00,0x03,0x00,0xfb,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xfa,0x00,0x04,0x00,0xf9,0x00,0x00,0x00,0xfa,0x00,0x00,0x00, +0xfb,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xfa,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x02,0x01,0x00,0x00, +0x33,0x01,0x00,0x00,0x74,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0x89,0x00,0x00,0x00,0x03,0x01,0x00,0x00,0x86,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0x04,0x01,0x00,0x00,0x03,0x01,0x00,0x00,0x41,0x00,0x06,0x00, +0x05,0x01,0x00,0x00,0x06,0x01,0x00,0x00,0xff,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0x02,0x01,0x00,0x00,0x3e,0x00,0x03,0x00, +0x06,0x01,0x00,0x00,0x04,0x01,0x00,0x00,0xf9,0x00,0x02,0x00, +0xfb,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xfb,0x00,0x00,0x00, +0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00, }; -const uint64_t mul_mat_vec_f16_f16_f32_len = 3568; +const uint64_t mul_mat_vec_f16_f16_f32_len = 3716; unsigned char mul_mat_vec_f16_f32_f32_data[] = { 0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00, -0x3f,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, +0x46,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, 0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x51,0x11,0x00,0x00, 0x0b,0x00,0x06,0x00,0x01,0x00,0x00,0x00,0x47,0x4c,0x53,0x4c, 0x2e,0x73,0x74,0x64,0x2e,0x34,0x35,0x30,0x00,0x00,0x00,0x00, 0x0e,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x0f,0x00,0x0d,0x00,0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x0f,0x00,0x0e,0x00,0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00, 0x6d,0x61,0x69,0x6e,0x00,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, 0x32,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x69,0x00,0x00,0x00, -0x6e,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0xb8,0x00,0x00,0x00, -0xf7,0x00,0x00,0x00,0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00, -0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x48,0x00,0x04,0x00, -0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, -0x18,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x1a,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x1a,0x00,0x00,0x00,0x21,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x32,0x00,0x00,0x00, -0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x38,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x38,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x38,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x38,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x38,0x00,0x00,0x00,0x05,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x38,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x38,0x00,0x00,0x00, -0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x38,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x38,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x24,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x38,0x00,0x00,0x00, -0x0a,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x28,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0x38,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x69,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, -0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x6e,0x00,0x00,0x00, -0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x7b,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xb5,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0xb6,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0xb6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0xb6,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xb8,0x00,0x00,0x00, -0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xb8,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xf4,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0xf5,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0xf5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0xf5,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xf7,0x00,0x00,0x00, -0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xf7,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xfe,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xff,0x00,0x00,0x00, -0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x13,0x00,0x02,0x00, -0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x00,0x03,0x00, -0x08,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x16,0x00,0x03,0x00, -0x16,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, -0x17,0x00,0x00,0x00,0x16,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, -0x18,0x00,0x00,0x00,0x17,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x19,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x18,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x20,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x16,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x27,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x17,0x00,0x04,0x00, -0x30,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x31,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x30,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x31,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x33,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x1e,0x00,0x0d,0x00,0x38,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x39,0x00,0x00,0x00, -0x09,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x39,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x3b,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x3c,0x00,0x00,0x00, -0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x47,0x00,0x00,0x00,0x0a,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x4d,0x00,0x00,0x00, -0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x53,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x5a,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x5f,0x00,0x00,0x00, -0x05,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x64,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x31,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x6a,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x31,0x00,0x00,0x00, -0x6e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x1c,0x00,0x04,0x00,0x7c,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x7b,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x7d,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x7c,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x7d,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x80,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x81,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x14,0x00,0x02,0x00, -0x8d,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x92,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, -0xb5,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, -0xb6,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0xb7,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xb6,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0xb7,0x00,0x00,0x00,0xb8,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xbe,0x00,0x00,0x00, +0x6d,0x00,0x00,0x00,0x76,0x00,0x00,0x00,0x86,0x00,0x00,0x00, +0xbf,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0x10,0x00,0x06,0x00, +0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x48,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x03,0x00,0x18,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x1a,0x00,0x00,0x00,0x22,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x1a,0x00,0x00,0x00, +0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x32,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x38,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x38,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x38,0x00,0x00,0x00,0x03,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x38,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x38,0x00,0x00,0x00, +0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x38,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x38,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x38,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x38,0x00,0x00,0x00,0x09,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x38,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x28,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x38,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x69,0x00,0x00,0x00, +0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x6d,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x76,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, +0x1b,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x83,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xbc,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x48,0x00,0x04,0x00,0xbd,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xbd,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x03,0x00,0xbd,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xbf,0x00,0x00,0x00,0x22,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xbf,0x00,0x00,0x00, +0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xfb,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x48,0x00,0x04,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x19,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xfc,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x03,0x00,0xfc,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xfe,0x00,0x00,0x00,0x22,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xfe,0x00,0x00,0x00, +0x21,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x05,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x06,0x01,0x00,0x00,0x0b,0x00,0x00,0x00, +0x19,0x00,0x00,0x00,0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00, +0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x15,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0x08,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0x16,0x00,0x00,0x00, +0x10,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x17,0x00,0x00,0x00, +0x16,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x18,0x00,0x00,0x00, +0x17,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x19,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0x19,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x15,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x20,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x20,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x16,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x27,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x17,0x00,0x04,0x00,0x30,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x31,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x30,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x31,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x33,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x1e,0x00,0x0d,0x00, +0x38,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x39,0x00,0x00,0x00,0x09,0x00,0x00,0x00, +0x38,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x39,0x00,0x00,0x00, +0x3a,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x3c,0x00,0x00,0x00,0x09,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x47,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,0x09,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x53,0x00,0x00,0x00, +0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x5a,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,0x05,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x64,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x31,0x00,0x00,0x00, +0x69,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x6a,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x31,0x00,0x00,0x00,0x6d,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x70,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0x31,0x00,0x00,0x00,0x76,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x83,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0x84,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x83,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x85,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x84,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x85,0x00,0x00,0x00,0x86,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x89,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x14,0x00,0x02,0x00,0x95,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, +0xbc,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, +0xbd,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0xbe,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xbd,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0xbe,0x00,0x00,0x00,0xbf,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xc5,0x00,0x00,0x00, 0x0c,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xd4,0x00,0x00,0x00,0x08,0x01,0x00,0x00, -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xd6,0x00,0x00,0x00, -0x86,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,0x92,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xed,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0xf4,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xf5,0x00,0x00,0x00, -0xf4,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xf6,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0xf6,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xfe,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,0x08,0x01,0x00,0x00, +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xdd,0x00,0x00,0x00, +0x86,0x00,0x00,0x00,0x83,0x00,0x00,0x00,0x70,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xf4,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0xfb,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xfc,0x00,0x00,0x00, +0xfb,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xfd,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0xfd,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x05,0x01,0x00,0x00, 0x01,0x00,0x00,0x00,0x33,0x00,0x06,0x00,0x30,0x00,0x00,0x00, -0xff,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0x27,0x00,0x00,0x00, +0x06,0x01,0x00,0x00,0x05,0x01,0x00,0x00,0x27,0x00,0x00,0x00, 0x27,0x00,0x00,0x00,0x36,0x00,0x05,0x00,0x02,0x00,0x00,0x00, 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00, 0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00,0x41,0x00,0x05,0x00, 0x33,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,0x69,0x00,0x00,0x00, 0x6a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, 0x6c,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,0x41,0x00,0x05,0x00, -0x33,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x6e,0x00,0x00,0x00, +0x33,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x6d,0x00,0x00,0x00, 0x6a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x70,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x41,0x00,0x05,0x00, -0x33,0x00,0x00,0x00,0x07,0x01,0x00,0x00,0x32,0x00,0x00,0x00, -0x27,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x08,0x01,0x00,0x00,0x07,0x01,0x00,0x00,0x41,0x00,0x05,0x00, -0x3c,0x00,0x00,0x00,0x0a,0x01,0x00,0x00,0x3a,0x00,0x00,0x00, -0x3b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x0b,0x01,0x00,0x00,0x0a,0x01,0x00,0x00,0x86,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,0x08,0x01,0x00,0x00, -0x0b,0x01,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x10,0x01,0x00,0x00,0x08,0x01,0x00,0x00,0x0b,0x01,0x00,0x00, -0x41,0x00,0x05,0x00,0x3c,0x00,0x00,0x00,0x12,0x01,0x00,0x00, -0x3a,0x00,0x00,0x00,0x47,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x13,0x01,0x00,0x00,0x12,0x01,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x14,0x01,0x00,0x00, -0x0c,0x01,0x00,0x00,0x13,0x01,0x00,0x00,0x41,0x00,0x05,0x00, -0x3c,0x00,0x00,0x00,0x16,0x01,0x00,0x00,0x3a,0x00,0x00,0x00, -0x4d,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x17,0x01,0x00,0x00,0x16,0x01,0x00,0x00,0x86,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x18,0x01,0x00,0x00,0x10,0x01,0x00,0x00, -0x17,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x3c,0x00,0x00,0x00, -0x1a,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,0x53,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x1b,0x01,0x00,0x00, -0x1a,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x1c,0x01,0x00,0x00,0x14,0x01,0x00,0x00,0x1b,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1e,0x01,0x00,0x00, -0x1c,0x01,0x00,0x00,0x18,0x01,0x00,0x00,0x41,0x00,0x05,0x00, -0x3c,0x00,0x00,0x00,0x20,0x01,0x00,0x00,0x3a,0x00,0x00,0x00, -0x5a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x21,0x01,0x00,0x00,0x20,0x01,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x22,0x01,0x00,0x00,0x1e,0x01,0x00,0x00, -0x21,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x3c,0x00,0x00,0x00, -0x24,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,0x5f,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x25,0x01,0x00,0x00, -0x24,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x26,0x01,0x00,0x00,0x08,0x01,0x00,0x00,0x25,0x01,0x00,0x00, -0x41,0x00,0x05,0x00,0x3c,0x00,0x00,0x00,0x28,0x01,0x00,0x00, -0x3a,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x29,0x01,0x00,0x00,0x28,0x01,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2a,0x01,0x00,0x00, -0x08,0x01,0x00,0x00,0x29,0x01,0x00,0x00,0x41,0x00,0x05,0x00, -0x81,0x00,0x00,0x00,0x82,0x00,0x00,0x00,0x7e,0x00,0x00,0x00, -0x70,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0x82,0x00,0x00,0x00, -0x80,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x84,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0x84,0x00,0x00,0x00,0xf5,0x00,0x07,0x00, -0x06,0x00,0x00,0x00,0x3d,0x01,0x00,0x00,0x6a,0x00,0x00,0x00, -0x05,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,0x85,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x3c,0x00,0x00,0x00,0x8a,0x00,0x00,0x00, -0x3a,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x8b,0x00,0x00,0x00,0x8a,0x00,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8c,0x00,0x00,0x00, -0x8b,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,0xb0,0x00,0x05,0x00, -0x8d,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,0x3d,0x01,0x00,0x00, -0x8c,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x86,0x00,0x00,0x00, -0x85,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, -0x8e,0x00,0x00,0x00,0x85,0x00,0x00,0x00,0x86,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0x85,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x91,0x00,0x00,0x00,0x3d,0x01,0x00,0x00, -0x7b,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x94,0x00,0x00,0x00,0x92,0x00,0x00,0x00,0x70,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x95,0x00,0x00,0x00, -0x91,0x00,0x00,0x00,0x94,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,0x6c,0x00,0x00,0x00, -0x8b,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x9c,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,0x95,0x00,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9d,0x00,0x00,0x00, -0x9c,0x00,0x00,0x00,0x27,0x00,0x00,0x00,0x89,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0x95,0x00,0x00,0x00, -0x27,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xa1,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0x27,0x00,0x00,0x00, -0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa6,0x00,0x00,0x00, -0x95,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0x86,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xaa,0x00,0x00,0x00,0x22,0x01,0x00,0x00, -0x27,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x2f,0x01,0x00,0x00,0xaa,0x00,0x00,0x00,0x9d,0x00,0x00,0x00, -0x41,0x00,0x06,0x00,0x20,0x00,0x00,0x00,0x30,0x01,0x00,0x00, -0x1a,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x2f,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0x16,0x00,0x00,0x00,0x31,0x01,0x00,0x00, -0x30,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00, -0x32,0x01,0x00,0x00,0x31,0x01,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x36,0x01,0x00,0x00,0x2f,0x01,0x00,0x00, -0x27,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x20,0x00,0x00,0x00, +0x6f,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0x33,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x69,0x00,0x00,0x00, +0x70,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x72,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x73,0x00,0x00,0x00,0x6f,0x00,0x00,0x00, +0x72,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x74,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x73,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x33,0x00,0x00,0x00,0x77,0x00,0x00,0x00, +0x76,0x00,0x00,0x00,0x6a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x77,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x33,0x00,0x00,0x00,0x0e,0x01,0x00,0x00, +0x32,0x00,0x00,0x00,0x27,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x0f,0x01,0x00,0x00,0x0e,0x01,0x00,0x00, +0x41,0x00,0x05,0x00,0x3c,0x00,0x00,0x00,0x11,0x01,0x00,0x00, +0x3a,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x12,0x01,0x00,0x00,0x11,0x01,0x00,0x00, +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x13,0x01,0x00,0x00, +0x0f,0x01,0x00,0x00,0x12,0x01,0x00,0x00,0x89,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x17,0x01,0x00,0x00,0x0f,0x01,0x00,0x00, +0x12,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x3c,0x00,0x00,0x00, +0x19,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,0x47,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x1a,0x01,0x00,0x00, +0x19,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x1b,0x01,0x00,0x00,0x13,0x01,0x00,0x00,0x1a,0x01,0x00,0x00, +0x41,0x00,0x05,0x00,0x3c,0x00,0x00,0x00,0x1d,0x01,0x00,0x00, +0x3a,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x1e,0x01,0x00,0x00,0x1d,0x01,0x00,0x00, +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1f,0x01,0x00,0x00, +0x17,0x01,0x00,0x00,0x1e,0x01,0x00,0x00,0x41,0x00,0x05,0x00, +0x3c,0x00,0x00,0x00,0x21,0x01,0x00,0x00,0x3a,0x00,0x00,0x00, +0x53,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x22,0x01,0x00,0x00,0x21,0x01,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x23,0x01,0x00,0x00,0x1b,0x01,0x00,0x00, +0x22,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x25,0x01,0x00,0x00,0x23,0x01,0x00,0x00,0x1f,0x01,0x00,0x00, +0x41,0x00,0x05,0x00,0x3c,0x00,0x00,0x00,0x27,0x01,0x00,0x00, +0x3a,0x00,0x00,0x00,0x5a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x28,0x01,0x00,0x00,0x27,0x01,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x29,0x01,0x00,0x00, +0x25,0x01,0x00,0x00,0x28,0x01,0x00,0x00,0x41,0x00,0x05,0x00, +0x3c,0x00,0x00,0x00,0x2b,0x01,0x00,0x00,0x3a,0x00,0x00,0x00, +0x5f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x2c,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x2d,0x01,0x00,0x00,0x0f,0x01,0x00,0x00, +0x2c,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x3c,0x00,0x00,0x00, +0x2f,0x01,0x00,0x00,0x3a,0x00,0x00,0x00,0x64,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x30,0x01,0x00,0x00, +0x2f,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x31,0x01,0x00,0x00,0x0f,0x01,0x00,0x00,0x30,0x01,0x00,0x00, +0x41,0x00,0x05,0x00,0x89,0x00,0x00,0x00,0x8a,0x00,0x00,0x00, +0x86,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x3e,0x00,0x03,0x00, +0x8a,0x00,0x00,0x00,0x88,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, +0x8c,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x8c,0x00,0x00,0x00, +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x44,0x01,0x00,0x00, +0x6a,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0xda,0x00,0x00,0x00, +0x8d,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x3c,0x00,0x00,0x00, +0x92,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x93,0x00,0x00,0x00, +0x92,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x94,0x00,0x00,0x00,0x93,0x00,0x00,0x00,0x83,0x00,0x00,0x00, +0xb0,0x00,0x05,0x00,0x95,0x00,0x00,0x00,0x96,0x00,0x00,0x00, +0x44,0x01,0x00,0x00,0x94,0x00,0x00,0x00,0xf6,0x00,0x04,0x00, +0x8e,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0xfa,0x00,0x04,0x00,0x96,0x00,0x00,0x00,0x8d,0x00,0x00,0x00, +0x8e,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x8d,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x99,0x00,0x00,0x00, +0x44,0x01,0x00,0x00,0x83,0x00,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,0x70,0x00,0x00,0x00, +0x78,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x9c,0x00,0x00,0x00,0x99,0x00,0x00,0x00,0x9b,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa1,0x00,0x00,0x00, +0x74,0x00,0x00,0x00,0x93,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0xa1,0x00,0x00,0x00, +0x9c,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xa4,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0x27,0x00,0x00,0x00, +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa7,0x00,0x00,0x00, +0x9c,0x00,0x00,0x00,0x27,0x00,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,0xa7,0x00,0x00,0x00, +0x27,0x00,0x00,0x00,0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xad,0x00,0x00,0x00,0x9c,0x00,0x00,0x00,0xa7,0x00,0x00,0x00, +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb1,0x00,0x00,0x00, +0x29,0x01,0x00,0x00,0x27,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x36,0x01,0x00,0x00,0xb1,0x00,0x00,0x00, +0xa4,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x20,0x00,0x00,0x00, 0x37,0x01,0x00,0x00,0x1a,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, 0x36,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x16,0x00,0x00,0x00, 0x38,0x01,0x00,0x00,0x37,0x01,0x00,0x00,0x73,0x00,0x04,0x00, 0x08,0x00,0x00,0x00,0x39,0x01,0x00,0x00,0x38,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbb,0x00,0x00,0x00, -0x26,0x01,0x00,0x00,0xa6,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xbd,0x00,0x00,0x00,0xbb,0x00,0x00,0x00, -0xa1,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xbe,0x00,0x00,0x00, -0xbf,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0xbd,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, -0xc0,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0xbd,0x00,0x00,0x00, -0x27,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xbe,0x00,0x00,0x00, -0xca,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0xc9,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, -0xcb,0x00,0x00,0x00,0xca,0x00,0x00,0x00,0x85,0x00,0x05,0x00, -0x08,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,0x39,0x01,0x00,0x00, -0xcb,0x00,0x00,0x00,0x0c,0x00,0x08,0x00,0x08,0x00,0x00,0x00, -0xcd,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x32,0x01,0x00,0x00,0xc0,0x00,0x00,0x00,0xcc,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xcf,0x00,0x00,0x00, -0x82,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00, -0xd0,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0xcd,0x00,0x00,0x00, -0x3e,0x00,0x03,0x00,0x82,0x00,0x00,0x00,0xd0,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd3,0x00,0x00,0x00, -0x3d,0x01,0x00,0x00,0x92,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, -0x84,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x86,0x00,0x00,0x00, -0xe0,0x00,0x04,0x00,0x92,0x00,0x00,0x00,0x92,0x00,0x00,0x00, -0xd4,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xd7,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0xd7,0x00,0x00,0x00,0xf5,0x00,0x07,0x00, -0x06,0x00,0x00,0x00,0x3e,0x01,0x00,0x00,0xd6,0x00,0x00,0x00, -0x86,0x00,0x00,0x00,0xef,0x00,0x00,0x00,0xda,0x00,0x00,0x00, -0xac,0x00,0x05,0x00,0x8d,0x00,0x00,0x00,0xdd,0x00,0x00,0x00, -0x3e,0x01,0x00,0x00,0x6a,0x00,0x00,0x00,0xf6,0x00,0x04,0x00, -0xd9,0x00,0x00,0x00,0xda,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0xfa,0x00,0x04,0x00,0xdd,0x00,0x00,0x00,0xd8,0x00,0x00,0x00, -0xd9,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xd8,0x00,0x00,0x00, -0xb0,0x00,0x05,0x00,0x8d,0x00,0x00,0x00,0xe0,0x00,0x00,0x00, -0x70,0x00,0x00,0x00,0x3e,0x01,0x00,0x00,0xf7,0x00,0x03,0x00, -0xe2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, -0xe0,0x00,0x00,0x00,0xe1,0x00,0x00,0x00,0xe2,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0xe1,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xe6,0x00,0x00,0x00,0x70,0x00,0x00,0x00, -0x3e,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x81,0x00,0x00,0x00, -0xe7,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0xe6,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xe8,0x00,0x00,0x00, -0xe7,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, -0xea,0x00,0x00,0x00,0x82,0x00,0x00,0x00,0x81,0x00,0x05,0x00, -0x08,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0xea,0x00,0x00,0x00, -0xe8,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0x82,0x00,0x00,0x00, -0xeb,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xe2,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0xe2,0x00,0x00,0x00,0xe0,0x00,0x04,0x00, -0x92,0x00,0x00,0x00,0x92,0x00,0x00,0x00,0xd4,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0xda,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0xda,0x00,0x00,0x00,0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xef,0x00,0x00,0x00,0x3e,0x01,0x00,0x00,0xed,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0xd7,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0xd9,0x00,0x00,0x00,0xaa,0x00,0x05,0x00,0x8d,0x00,0x00,0x00, -0xf1,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x6a,0x00,0x00,0x00, -0xf7,0x00,0x03,0x00,0xf3,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0xfa,0x00,0x04,0x00,0xf1,0x00,0x00,0x00,0xf2,0x00,0x00,0x00, -0xf3,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xf2,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfa,0x00,0x00,0x00, -0x2a,0x01,0x00,0x00,0x6c,0x00,0x00,0x00,0x41,0x00,0x05,0x00, -0x81,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0x7e,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, -0xfc,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0x41,0x00,0x06,0x00, -0xbe,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,0xf7,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,0x3e,0x00,0x03,0x00, -0xfd,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, -0xf3,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xf3,0x00,0x00,0x00, -0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3d,0x01,0x00,0x00, +0x36,0x01,0x00,0x00,0x27,0x00,0x00,0x00,0x41,0x00,0x06,0x00, +0x20,0x00,0x00,0x00,0x3e,0x01,0x00,0x00,0x1a,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0x3d,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0x16,0x00,0x00,0x00,0x3f,0x01,0x00,0x00,0x3e,0x01,0x00,0x00, +0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x40,0x01,0x00,0x00, +0x3f,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xc2,0x00,0x00,0x00,0x2d,0x01,0x00,0x00,0xad,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc4,0x00,0x00,0x00, +0xc2,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,0x41,0x00,0x06,0x00, +0xc5,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,0xbf,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x08,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,0xc6,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd0,0x00,0x00,0x00, +0xc4,0x00,0x00,0x00,0x27,0x00,0x00,0x00,0x41,0x00,0x06,0x00, +0xc5,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,0xbf,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x08,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,0xd1,0x00,0x00,0x00, +0x85,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0xd3,0x00,0x00,0x00, +0x40,0x01,0x00,0x00,0xd2,0x00,0x00,0x00,0x0c,0x00,0x08,0x00, +0x08,0x00,0x00,0x00,0xd4,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x39,0x01,0x00,0x00,0xc7,0x00,0x00,0x00, +0xd3,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0xd6,0x00,0x00,0x00,0x8a,0x00,0x00,0x00,0x81,0x00,0x05,0x00, +0x08,0x00,0x00,0x00,0xd7,0x00,0x00,0x00,0xd6,0x00,0x00,0x00, +0xd4,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0x8a,0x00,0x00,0x00, +0xd7,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xda,0x00,0x00,0x00,0x44,0x01,0x00,0x00,0x70,0x00,0x00,0x00, +0xf9,0x00,0x02,0x00,0x8c,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0x8e,0x00,0x00,0x00,0xe0,0x00,0x04,0x00,0x70,0x00,0x00,0x00, +0x70,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, +0xde,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xde,0x00,0x00,0x00, +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x45,0x01,0x00,0x00, +0xdd,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,0xf6,0x00,0x00,0x00, +0xe1,0x00,0x00,0x00,0xac,0x00,0x05,0x00,0x95,0x00,0x00,0x00, +0xe4,0x00,0x00,0x00,0x45,0x01,0x00,0x00,0x6a,0x00,0x00,0x00, +0xf6,0x00,0x04,0x00,0xe0,0x00,0x00,0x00,0xe1,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xe4,0x00,0x00,0x00, +0xdf,0x00,0x00,0x00,0xe0,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xdf,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0x95,0x00,0x00,0x00, +0xe7,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x45,0x01,0x00,0x00, +0xf7,0x00,0x03,0x00,0xe9,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xfa,0x00,0x04,0x00,0xe7,0x00,0x00,0x00,0xe8,0x00,0x00,0x00, +0xe9,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xe8,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xed,0x00,0x00,0x00, +0x78,0x00,0x00,0x00,0x45,0x01,0x00,0x00,0x41,0x00,0x05,0x00, +0x89,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0x86,0x00,0x00,0x00, +0xed,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0xef,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x08,0x00,0x00,0x00,0xf1,0x00,0x00,0x00,0x8a,0x00,0x00,0x00, +0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0xf2,0x00,0x00,0x00, +0xf1,0x00,0x00,0x00,0xef,0x00,0x00,0x00,0x3e,0x00,0x03,0x00, +0x8a,0x00,0x00,0x00,0xf2,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, +0xe9,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xe9,0x00,0x00,0x00, +0xe0,0x00,0x04,0x00,0x70,0x00,0x00,0x00,0x70,0x00,0x00,0x00, +0xdb,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xe1,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0xe1,0x00,0x00,0x00,0xc2,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,0x45,0x01,0x00,0x00, +0xf4,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xde,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0xe0,0x00,0x00,0x00,0xaa,0x00,0x05,0x00, +0x95,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0x78,0x00,0x00,0x00, +0x6a,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0xfa,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xf8,0x00,0x00,0x00, +0xf9,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xf9,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x01,0x01,0x00,0x00,0x31,0x01,0x00,0x00,0x74,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x89,0x00,0x00,0x00,0x02,0x01,0x00,0x00, +0x86,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x08,0x00,0x00,0x00,0x03,0x01,0x00,0x00,0x02,0x01,0x00,0x00, +0x41,0x00,0x06,0x00,0xc5,0x00,0x00,0x00,0x04,0x01,0x00,0x00, +0xfe,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x01,0x01,0x00,0x00, +0x3e,0x00,0x03,0x00,0x04,0x01,0x00,0x00,0x03,0x01,0x00,0x00, +0xf9,0x00,0x02,0x00,0xfa,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xfa,0x00,0x00,0x00,0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00, + }; -const uint64_t mul_mat_vec_f16_f32_f32_len = 3536; +const uint64_t mul_mat_vec_f16_f32_f32_len = 3684; unsigned char mul_mat_vec_f32_f16_f32_data[] = { 0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00, -0x3d,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, +0x44,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, 0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x51,0x11,0x00,0x00, 0x0b,0x00,0x06,0x00,0x01,0x00,0x00,0x00,0x47,0x4c,0x53,0x4c, 0x2e,0x73,0x74,0x64,0x2e,0x34,0x35,0x30,0x00,0x00,0x00,0x00, 0x0e,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x0f,0x00,0x0d,0x00,0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x0f,0x00,0x0e,0x00,0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00, 0x6d,0x61,0x69,0x6e,0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00, 0x2f,0x00,0x00,0x00,0x37,0x00,0x00,0x00,0x66,0x00,0x00,0x00, -0x6b,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,0xb6,0x00,0x00,0x00, -0xf7,0x00,0x00,0x00,0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00, -0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x16,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, -0x17,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x19,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x21,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x2f,0x00,0x00,0x00, -0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x35,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x35,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x35,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x35,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x35,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x35,0x00,0x00,0x00,0x05,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x35,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x35,0x00,0x00,0x00, -0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x35,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x35,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x24,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x35,0x00,0x00,0x00, -0x0a,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x28,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0x35,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x66,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, -0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x6b,0x00,0x00,0x00, +0x6a,0x00,0x00,0x00,0x73,0x00,0x00,0x00,0x83,0x00,0x00,0x00, +0xbd,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0x10,0x00,0x06,0x00, +0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x16,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x48,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x17,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x03,0x00,0x17,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x22,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x19,0x00,0x00,0x00, +0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x2f,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x35,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x35,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x35,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x35,0x00,0x00,0x00,0x03,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x35,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x35,0x00,0x00,0x00, +0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x35,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x35,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x35,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x35,0x00,0x00,0x00,0x09,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x35,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x28,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x35,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x66,0x00,0x00,0x00, +0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x6a,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x73,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, +0x1b,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x80,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xba,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x48,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xbb,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x03,0x00,0xbb,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xbd,0x00,0x00,0x00,0x22,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xbd,0x00,0x00,0x00, +0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xfb,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x48,0x00,0x04,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x19,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xfc,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x03,0x00,0xfc,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xfe,0x00,0x00,0x00,0x22,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xfe,0x00,0x00,0x00, +0x21,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x05,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x06,0x01,0x00,0x00,0x0b,0x00,0x00,0x00, +0x19,0x00,0x00,0x00,0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00, +0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x15,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0x08,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x16,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x17,0x00,0x00,0x00, +0x16,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x18,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x17,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0x18,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x15,0x00,0x04,0x00,0x1a,0x00,0x00,0x00,0x20,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1a,0x00,0x00,0x00, +0x1b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x1f,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x25,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x17,0x00,0x04,0x00,0x2d,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x2e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2d,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x2e,0x00,0x00,0x00,0x2f,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x30,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x1e,0x00,0x0d,0x00, +0x35,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x36,0x00,0x00,0x00,0x09,0x00,0x00,0x00, +0x35,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x36,0x00,0x00,0x00, +0x37,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1a,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x39,0x00,0x00,0x00,0x09,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1a,0x00,0x00,0x00, +0x44,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1a,0x00,0x00,0x00,0x4a,0x00,0x00,0x00,0x09,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x1a,0x00,0x00,0x00,0x50,0x00,0x00,0x00, +0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1a,0x00,0x00,0x00, +0x57,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1a,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,0x05,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x1a,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x2e,0x00,0x00,0x00, +0x66,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x67,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x2e,0x00,0x00,0x00,0x6a,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x6d,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0x2e,0x00,0x00,0x00,0x73,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x80,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0x81,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x82,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x81,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x82,0x00,0x00,0x00,0x83,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0x85,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x86,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x14,0x00,0x02,0x00,0x92,0x00,0x00,0x00,0x16,0x00,0x03,0x00, +0xb9,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, +0xba,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, +0xbb,0x00,0x00,0x00,0xba,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0xbc,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xbb,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0xbc,0x00,0x00,0x00,0xbd,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xc3,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,0x08,0x01,0x00,0x00, +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xdd,0x00,0x00,0x00, +0x86,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x6d,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x1a,0x00,0x00,0x00,0xf4,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0xfb,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xfc,0x00,0x00,0x00, +0xfb,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xfd,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0xfd,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x05,0x01,0x00,0x00, +0x01,0x00,0x00,0x00,0x33,0x00,0x06,0x00,0x2d,0x00,0x00,0x00, +0x06,0x01,0x00,0x00,0x05,0x01,0x00,0x00,0x25,0x00,0x00,0x00, +0x25,0x00,0x00,0x00,0x36,0x00,0x05,0x00,0x02,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0x30,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x66,0x00,0x00,0x00, +0x67,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x69,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0x30,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,0x6a,0x00,0x00,0x00, +0x67,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x6c,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0x30,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x66,0x00,0x00,0x00, +0x6d,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x6f,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x6c,0x00,0x00,0x00, +0x6f,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x71,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0x70,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x30,0x00,0x00,0x00,0x74,0x00,0x00,0x00, +0x73,0x00,0x00,0x00,0x67,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x75,0x00,0x00,0x00,0x74,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x30,0x00,0x00,0x00,0x0e,0x01,0x00,0x00, +0x2f,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x0f,0x01,0x00,0x00,0x0e,0x01,0x00,0x00, +0x41,0x00,0x05,0x00,0x39,0x00,0x00,0x00,0x11,0x01,0x00,0x00, +0x37,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x12,0x01,0x00,0x00,0x11,0x01,0x00,0x00, +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x13,0x01,0x00,0x00, +0x0f,0x01,0x00,0x00,0x12,0x01,0x00,0x00,0x89,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x17,0x01,0x00,0x00,0x0f,0x01,0x00,0x00, +0x12,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x39,0x00,0x00,0x00, +0x19,0x01,0x00,0x00,0x37,0x00,0x00,0x00,0x44,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x1a,0x01,0x00,0x00, +0x19,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x1b,0x01,0x00,0x00,0x13,0x01,0x00,0x00,0x1a,0x01,0x00,0x00, +0x41,0x00,0x05,0x00,0x39,0x00,0x00,0x00,0x1d,0x01,0x00,0x00, +0x37,0x00,0x00,0x00,0x4a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x1e,0x01,0x00,0x00,0x1d,0x01,0x00,0x00, +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1f,0x01,0x00,0x00, +0x17,0x01,0x00,0x00,0x1e,0x01,0x00,0x00,0x41,0x00,0x05,0x00, +0x39,0x00,0x00,0x00,0x21,0x01,0x00,0x00,0x37,0x00,0x00,0x00, +0x50,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x22,0x01,0x00,0x00,0x21,0x01,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x23,0x01,0x00,0x00,0x1b,0x01,0x00,0x00, +0x22,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x25,0x01,0x00,0x00,0x23,0x01,0x00,0x00,0x1f,0x01,0x00,0x00, +0x41,0x00,0x05,0x00,0x39,0x00,0x00,0x00,0x27,0x01,0x00,0x00, +0x37,0x00,0x00,0x00,0x57,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x28,0x01,0x00,0x00,0x27,0x01,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x29,0x01,0x00,0x00, +0x25,0x01,0x00,0x00,0x28,0x01,0x00,0x00,0x41,0x00,0x05,0x00, +0x39,0x00,0x00,0x00,0x2b,0x01,0x00,0x00,0x37,0x00,0x00,0x00, +0x5c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x2c,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x2d,0x01,0x00,0x00,0x0f,0x01,0x00,0x00, +0x2c,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x39,0x00,0x00,0x00, +0x2f,0x01,0x00,0x00,0x37,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x30,0x01,0x00,0x00, +0x2f,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x31,0x01,0x00,0x00,0x0f,0x01,0x00,0x00,0x30,0x01,0x00,0x00, +0x41,0x00,0x05,0x00,0x86,0x00,0x00,0x00,0x87,0x00,0x00,0x00, +0x83,0x00,0x00,0x00,0x75,0x00,0x00,0x00,0x3e,0x00,0x03,0x00, +0x87,0x00,0x00,0x00,0x85,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, +0x89,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x89,0x00,0x00,0x00, +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x42,0x01,0x00,0x00, +0x67,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0xda,0x00,0x00,0x00, +0x8a,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x39,0x00,0x00,0x00, +0x8f,0x00,0x00,0x00,0x37,0x00,0x00,0x00,0x1b,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x90,0x00,0x00,0x00, +0x8f,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x91,0x00,0x00,0x00,0x90,0x00,0x00,0x00,0x80,0x00,0x00,0x00, +0xb0,0x00,0x05,0x00,0x92,0x00,0x00,0x00,0x93,0x00,0x00,0x00, +0x42,0x01,0x00,0x00,0x91,0x00,0x00,0x00,0xf6,0x00,0x04,0x00, +0x8b,0x00,0x00,0x00,0x8a,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0xfa,0x00,0x04,0x00,0x93,0x00,0x00,0x00,0x8a,0x00,0x00,0x00, +0x8b,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x8a,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x96,0x00,0x00,0x00, +0x42,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x98,0x00,0x00,0x00,0x6d,0x00,0x00,0x00, +0x75,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x99,0x00,0x00,0x00,0x96,0x00,0x00,0x00,0x98,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9e,0x00,0x00,0x00, +0x71,0x00,0x00,0x00,0x90,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0x9e,0x00,0x00,0x00, +0x99,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xa1,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0x25,0x00,0x00,0x00, +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa4,0x00,0x00,0x00, +0x99,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xa5,0x00,0x00,0x00,0xa4,0x00,0x00,0x00, +0x25,0x00,0x00,0x00,0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xaa,0x00,0x00,0x00,0x99,0x00,0x00,0x00,0xa4,0x00,0x00,0x00, +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xae,0x00,0x00,0x00, +0x29,0x01,0x00,0x00,0x25,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x36,0x01,0x00,0x00,0xae,0x00,0x00,0x00, +0xa1,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x1f,0x00,0x00,0x00, +0x37,0x01,0x00,0x00,0x19,0x00,0x00,0x00,0x1b,0x00,0x00,0x00, +0x36,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0x38,0x01,0x00,0x00,0x37,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x3c,0x01,0x00,0x00,0x36,0x01,0x00,0x00, +0x25,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x1f,0x00,0x00,0x00, +0x3d,0x01,0x00,0x00,0x19,0x00,0x00,0x00,0x1b,0x00,0x00,0x00, +0x3c,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0x3e,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x2d,0x01,0x00,0x00, +0xaa,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xc2,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0xa5,0x00,0x00,0x00, +0x41,0x00,0x06,0x00,0xc3,0x00,0x00,0x00,0xc4,0x00,0x00,0x00, +0xbd,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0xc2,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0xb9,0x00,0x00,0x00,0xc5,0x00,0x00,0x00, +0xc4,0x00,0x00,0x00,0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0xc6,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0xc2,0x00,0x00,0x00, +0x25,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xc3,0x00,0x00,0x00, +0xd0,0x00,0x00,0x00,0xbd,0x00,0x00,0x00,0x1b,0x00,0x00,0x00, +0xcf,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xb9,0x00,0x00,0x00, +0xd1,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0x73,0x00,0x04,0x00, +0x08,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,0xd1,0x00,0x00,0x00, +0x85,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0xd3,0x00,0x00,0x00, +0x3e,0x01,0x00,0x00,0xd2,0x00,0x00,0x00,0x0c,0x00,0x08,0x00, +0x08,0x00,0x00,0x00,0xd4,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x38,0x01,0x00,0x00,0xc6,0x00,0x00,0x00, +0xd3,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0xd6,0x00,0x00,0x00,0x87,0x00,0x00,0x00,0x81,0x00,0x05,0x00, +0x08,0x00,0x00,0x00,0xd7,0x00,0x00,0x00,0xd6,0x00,0x00,0x00, +0xd4,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0x87,0x00,0x00,0x00, +0xd7,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xda,0x00,0x00,0x00,0x42,0x01,0x00,0x00,0x6d,0x00,0x00,0x00, +0xf9,0x00,0x02,0x00,0x89,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0x8b,0x00,0x00,0x00,0xe0,0x00,0x04,0x00,0x6d,0x00,0x00,0x00, +0x6d,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, +0xde,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xde,0x00,0x00,0x00, +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x43,0x01,0x00,0x00, +0xdd,0x00,0x00,0x00,0x8b,0x00,0x00,0x00,0xf6,0x00,0x00,0x00, +0xe1,0x00,0x00,0x00,0xac,0x00,0x05,0x00,0x92,0x00,0x00,0x00, +0xe4,0x00,0x00,0x00,0x43,0x01,0x00,0x00,0x67,0x00,0x00,0x00, +0xf6,0x00,0x04,0x00,0xe0,0x00,0x00,0x00,0xe1,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xe4,0x00,0x00,0x00, +0xdf,0x00,0x00,0x00,0xe0,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xdf,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0x92,0x00,0x00,0x00, +0xe7,0x00,0x00,0x00,0x75,0x00,0x00,0x00,0x43,0x01,0x00,0x00, +0xf7,0x00,0x03,0x00,0xe9,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xfa,0x00,0x04,0x00,0xe7,0x00,0x00,0x00,0xe8,0x00,0x00,0x00, +0xe9,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xe8,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xed,0x00,0x00,0x00, +0x75,0x00,0x00,0x00,0x43,0x01,0x00,0x00,0x41,0x00,0x05,0x00, +0x86,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0x83,0x00,0x00,0x00, +0xed,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0xef,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x08,0x00,0x00,0x00,0xf1,0x00,0x00,0x00,0x87,0x00,0x00,0x00, +0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0xf2,0x00,0x00,0x00, +0xf1,0x00,0x00,0x00,0xef,0x00,0x00,0x00,0x3e,0x00,0x03,0x00, +0x87,0x00,0x00,0x00,0xf2,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, +0xe9,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xe9,0x00,0x00,0x00, +0xe0,0x00,0x04,0x00,0x6d,0x00,0x00,0x00,0x6d,0x00,0x00,0x00, +0xdb,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xe1,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0xe1,0x00,0x00,0x00,0xc2,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,0x43,0x01,0x00,0x00, +0xf4,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xde,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0xe0,0x00,0x00,0x00,0xaa,0x00,0x05,0x00, +0x92,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0x75,0x00,0x00,0x00, +0x67,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0xfa,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xf8,0x00,0x00,0x00, +0xf9,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xf9,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x01,0x01,0x00,0x00,0x31,0x01,0x00,0x00,0x71,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x86,0x00,0x00,0x00,0x02,0x01,0x00,0x00, +0x83,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x08,0x00,0x00,0x00,0x03,0x01,0x00,0x00,0x02,0x01,0x00,0x00, +0x41,0x00,0x06,0x00,0x1f,0x00,0x00,0x00,0x04,0x01,0x00,0x00, +0xfe,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x01,0x01,0x00,0x00, +0x3e,0x00,0x03,0x00,0x04,0x01,0x00,0x00,0x03,0x01,0x00,0x00, +0xf9,0x00,0x02,0x00,0xfa,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xfa,0x00,0x00,0x00,0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00, + +}; +const uint64_t mul_mat_vec_f32_f16_f32_len = 3684; + +unsigned char mul_mat_vec_f32_f32_f32_data[] = { +0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00, +0x40,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, +0x01,0x00,0x00,0x00,0x0b,0x00,0x06,0x00,0x01,0x00,0x00,0x00, +0x47,0x4c,0x53,0x4c,0x2e,0x73,0x74,0x64,0x2e,0x34,0x35,0x30, +0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00,0x00,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x0f,0x00,0x0e,0x00,0x05,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e,0x00,0x00,0x00,0x00, +0x19,0x00,0x00,0x00,0x2f,0x00,0x00,0x00,0x37,0x00,0x00,0x00, +0x66,0x00,0x00,0x00,0x6a,0x00,0x00,0x00,0x73,0x00,0x00,0x00, +0x83,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,0xfa,0x00,0x00,0x00, +0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x16,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x17,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x19,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x19,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x2f,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x35,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x35,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x35,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x35,0x00,0x00,0x00, +0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x35,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x35,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x35,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x35,0x00,0x00,0x00,0x07,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x35,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x35,0x00,0x00,0x00, +0x09,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x35,0x00,0x00,0x00,0x0a,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0x35,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x66,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x6a,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x73,0x00,0x00,0x00, 0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x78,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xb3,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0xb4,0x00,0x00,0x00, +0x80,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xb9,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0xba,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0xb4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0xb4,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xb6,0x00,0x00,0x00, +0xba,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0xba,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xbc,0x00,0x00,0x00, 0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xb6,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xf4,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0xf5,0x00,0x00,0x00, +0xbc,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xf7,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0xf8,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0xf5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0xf5,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xf7,0x00,0x00,0x00, +0xf8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0xf8,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xfa,0x00,0x00,0x00, 0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xf7,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xfe,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xff,0x00,0x00,0x00, +0xfa,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x01,0x01,0x00,0x00,0x01,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x02,0x01,0x00,0x00, 0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x13,0x00,0x02,0x00, 0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00, 0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x06,0x00,0x00,0x00, @@ -120790,2978 +121128,2415 @@ unsigned char mul_mat_vec_f32_f16_f32_data[] = { 0x2e,0x00,0x00,0x00,0x66,0x00,0x00,0x00,0x01,0x00,0x00,0x00, 0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x67,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x2e,0x00,0x00,0x00, -0x6b,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x1c,0x00,0x04,0x00,0x79,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x78,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x7a,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x7a,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x7d,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x7e,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x14,0x00,0x02,0x00, -0x8a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x8f,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x16,0x00,0x03,0x00, -0xb2,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, -0xb3,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, -0xb4,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0xb5,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xb4,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0xb5,0x00,0x00,0x00,0xb6,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xbc,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xd4,0x00,0x00,0x00,0x08,0x01,0x00,0x00, -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xd6,0x00,0x00,0x00, -0x86,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x8f,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x1a,0x00,0x00,0x00,0xed,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0xf4,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xf5,0x00,0x00,0x00, -0xf4,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xf6,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0xf6,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xfe,0x00,0x00,0x00, +0x6a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x2e,0x00,0x00,0x00,0x73,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x80,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, +0x81,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x80,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x82,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x81,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x82,0x00,0x00,0x00, +0x83,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x08,0x00,0x00,0x00,0x85,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x86,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x14,0x00,0x02,0x00,0x92,0x00,0x00,0x00, +0x1d,0x00,0x03,0x00,0xb9,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x1e,0x00,0x03,0x00,0xba,0x00,0x00,0x00,0xb9,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0xba,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xbb,0x00,0x00,0x00, +0xbc,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xd7,0x00,0x00,0x00,0x08,0x01,0x00,0x00, +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xd9,0x00,0x00,0x00, +0x86,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x6d,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x1a,0x00,0x00,0x00,0xf0,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0xf7,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xf8,0x00,0x00,0x00, +0xf7,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xf9,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0xf9,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x01,0x01,0x00,0x00, 0x01,0x00,0x00,0x00,0x33,0x00,0x06,0x00,0x2d,0x00,0x00,0x00, -0xff,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0x25,0x00,0x00,0x00, +0x02,0x01,0x00,0x00,0x01,0x01,0x00,0x00,0x25,0x00,0x00,0x00, 0x25,0x00,0x00,0x00,0x36,0x00,0x05,0x00,0x02,0x00,0x00,0x00, 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00, 0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00,0x41,0x00,0x05,0x00, 0x30,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x66,0x00,0x00,0x00, 0x67,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, 0x69,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x41,0x00,0x05,0x00, -0x30,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x6b,0x00,0x00,0x00, +0x30,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,0x6a,0x00,0x00,0x00, 0x67,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x6d,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x41,0x00,0x05,0x00, -0x30,0x00,0x00,0x00,0x07,0x01,0x00,0x00,0x2f,0x00,0x00,0x00, -0x25,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x08,0x01,0x00,0x00,0x07,0x01,0x00,0x00,0x41,0x00,0x05,0x00, -0x39,0x00,0x00,0x00,0x0a,0x01,0x00,0x00,0x37,0x00,0x00,0x00, -0x38,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x0b,0x01,0x00,0x00,0x0a,0x01,0x00,0x00,0x86,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,0x08,0x01,0x00,0x00, -0x0b,0x01,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x10,0x01,0x00,0x00,0x08,0x01,0x00,0x00,0x0b,0x01,0x00,0x00, -0x41,0x00,0x05,0x00,0x39,0x00,0x00,0x00,0x12,0x01,0x00,0x00, -0x37,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x13,0x01,0x00,0x00,0x12,0x01,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x14,0x01,0x00,0x00, -0x0c,0x01,0x00,0x00,0x13,0x01,0x00,0x00,0x41,0x00,0x05,0x00, -0x39,0x00,0x00,0x00,0x16,0x01,0x00,0x00,0x37,0x00,0x00,0x00, -0x4a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x17,0x01,0x00,0x00,0x16,0x01,0x00,0x00,0x86,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x18,0x01,0x00,0x00,0x10,0x01,0x00,0x00, -0x17,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x39,0x00,0x00,0x00, -0x1a,0x01,0x00,0x00,0x37,0x00,0x00,0x00,0x50,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x1b,0x01,0x00,0x00, -0x1a,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x1c,0x01,0x00,0x00,0x14,0x01,0x00,0x00,0x1b,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1e,0x01,0x00,0x00, -0x1c,0x01,0x00,0x00,0x18,0x01,0x00,0x00,0x41,0x00,0x05,0x00, -0x39,0x00,0x00,0x00,0x20,0x01,0x00,0x00,0x37,0x00,0x00,0x00, -0x57,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x21,0x01,0x00,0x00,0x20,0x01,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x22,0x01,0x00,0x00,0x1e,0x01,0x00,0x00, -0x21,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x39,0x00,0x00,0x00, -0x24,0x01,0x00,0x00,0x37,0x00,0x00,0x00,0x5c,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x25,0x01,0x00,0x00, -0x24,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x26,0x01,0x00,0x00,0x08,0x01,0x00,0x00,0x25,0x01,0x00,0x00, -0x41,0x00,0x05,0x00,0x39,0x00,0x00,0x00,0x28,0x01,0x00,0x00, -0x37,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x29,0x01,0x00,0x00,0x28,0x01,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2a,0x01,0x00,0x00, -0x08,0x01,0x00,0x00,0x29,0x01,0x00,0x00,0x41,0x00,0x05,0x00, -0x7e,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,0x7b,0x00,0x00,0x00, -0x6d,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0x7f,0x00,0x00,0x00, -0x7d,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x81,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0x81,0x00,0x00,0x00,0xf5,0x00,0x07,0x00, -0x06,0x00,0x00,0x00,0x3b,0x01,0x00,0x00,0x67,0x00,0x00,0x00, -0x05,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,0x82,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x39,0x00,0x00,0x00,0x87,0x00,0x00,0x00, -0x37,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x88,0x00,0x00,0x00,0x87,0x00,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x89,0x00,0x00,0x00, -0x88,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0xb0,0x00,0x05,0x00, -0x8a,0x00,0x00,0x00,0x8b,0x00,0x00,0x00,0x3b,0x01,0x00,0x00, -0x89,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x83,0x00,0x00,0x00, -0x82,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, -0x8b,0x00,0x00,0x00,0x82,0x00,0x00,0x00,0x83,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0x82,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,0x3b,0x01,0x00,0x00, -0x78,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x91,0x00,0x00,0x00,0x8f,0x00,0x00,0x00,0x6d,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x92,0x00,0x00,0x00, -0x8e,0x00,0x00,0x00,0x91,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x69,0x00,0x00,0x00, -0x88,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x99,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x92,0x00,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9a,0x00,0x00,0x00, -0x99,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x89,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0x92,0x00,0x00,0x00, -0x25,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x9e,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0x25,0x00,0x00,0x00, -0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa3,0x00,0x00,0x00, -0x92,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0x86,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,0x22,0x01,0x00,0x00, -0x25,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x2f,0x01,0x00,0x00,0xa7,0x00,0x00,0x00,0x9a,0x00,0x00,0x00, -0x41,0x00,0x06,0x00,0x1f,0x00,0x00,0x00,0x30,0x01,0x00,0x00, -0x19,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x2f,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x31,0x01,0x00,0x00, -0x30,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x35,0x01,0x00,0x00,0x2f,0x01,0x00,0x00,0x25,0x00,0x00,0x00, -0x41,0x00,0x06,0x00,0x1f,0x00,0x00,0x00,0x36,0x01,0x00,0x00, -0x19,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x35,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x37,0x01,0x00,0x00, -0x36,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xb9,0x00,0x00,0x00,0x26,0x01,0x00,0x00,0xa3,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbb,0x00,0x00,0x00, -0xb9,0x00,0x00,0x00,0x9e,0x00,0x00,0x00,0x41,0x00,0x06,0x00, -0xbc,0x00,0x00,0x00,0xbd,0x00,0x00,0x00,0xb6,0x00,0x00,0x00, -0x1b,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb2,0x00,0x00,0x00,0xbe,0x00,0x00,0x00,0xbd,0x00,0x00,0x00, -0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xbf,0x00,0x00,0x00, -0xbe,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xc8,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0x25,0x00,0x00,0x00, -0x41,0x00,0x06,0x00,0xbc,0x00,0x00,0x00,0xc9,0x00,0x00,0x00, -0xb6,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0xc8,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb2,0x00,0x00,0x00,0xca,0x00,0x00,0x00, -0xc9,0x00,0x00,0x00,0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00, -0xcb,0x00,0x00,0x00,0xca,0x00,0x00,0x00,0x85,0x00,0x05,0x00, -0x08,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,0x37,0x01,0x00,0x00, -0xcb,0x00,0x00,0x00,0x0c,0x00,0x08,0x00,0x08,0x00,0x00,0x00, -0xcd,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x31,0x01,0x00,0x00,0xbf,0x00,0x00,0x00,0xcc,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xcf,0x00,0x00,0x00, -0x7f,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00, -0xd0,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0xcd,0x00,0x00,0x00, -0x3e,0x00,0x03,0x00,0x7f,0x00,0x00,0x00,0xd0,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd3,0x00,0x00,0x00, -0x3b,0x01,0x00,0x00,0x8f,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, -0x81,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x83,0x00,0x00,0x00, -0xe0,0x00,0x04,0x00,0x8f,0x00,0x00,0x00,0x8f,0x00,0x00,0x00, -0xd4,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xd7,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0xd7,0x00,0x00,0x00,0xf5,0x00,0x07,0x00, -0x06,0x00,0x00,0x00,0x3c,0x01,0x00,0x00,0xd6,0x00,0x00,0x00, -0x83,0x00,0x00,0x00,0xef,0x00,0x00,0x00,0xda,0x00,0x00,0x00, -0xac,0x00,0x05,0x00,0x8a,0x00,0x00,0x00,0xdd,0x00,0x00,0x00, -0x3c,0x01,0x00,0x00,0x67,0x00,0x00,0x00,0xf6,0x00,0x04,0x00, -0xd9,0x00,0x00,0x00,0xda,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0xfa,0x00,0x04,0x00,0xdd,0x00,0x00,0x00,0xd8,0x00,0x00,0x00, -0xd9,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xd8,0x00,0x00,0x00, -0xb0,0x00,0x05,0x00,0x8a,0x00,0x00,0x00,0xe0,0x00,0x00,0x00, -0x6d,0x00,0x00,0x00,0x3c,0x01,0x00,0x00,0xf7,0x00,0x03,0x00, -0xe2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, -0xe0,0x00,0x00,0x00,0xe1,0x00,0x00,0x00,0xe2,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0xe1,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xe6,0x00,0x00,0x00,0x6d,0x00,0x00,0x00, -0x3c,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x7e,0x00,0x00,0x00, -0xe7,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,0xe6,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xe8,0x00,0x00,0x00, -0xe7,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, -0xea,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,0x81,0x00,0x05,0x00, -0x08,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0xea,0x00,0x00,0x00, -0xe8,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0x7f,0x00,0x00,0x00, -0xeb,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xe2,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0xe2,0x00,0x00,0x00,0xe0,0x00,0x04,0x00, -0x8f,0x00,0x00,0x00,0x8f,0x00,0x00,0x00,0xd4,0x00,0x00,0x00, +0x6c,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0x30,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x66,0x00,0x00,0x00, +0x6d,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x6f,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x6c,0x00,0x00,0x00, +0x6f,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x71,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0x70,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x30,0x00,0x00,0x00,0x74,0x00,0x00,0x00, +0x73,0x00,0x00,0x00,0x67,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x75,0x00,0x00,0x00,0x74,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x30,0x00,0x00,0x00,0x0a,0x01,0x00,0x00, +0x2f,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x0b,0x01,0x00,0x00,0x0a,0x01,0x00,0x00, +0x41,0x00,0x05,0x00,0x39,0x00,0x00,0x00,0x0d,0x01,0x00,0x00, +0x37,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x0e,0x01,0x00,0x00,0x0d,0x01,0x00,0x00, +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0f,0x01,0x00,0x00, +0x0b,0x01,0x00,0x00,0x0e,0x01,0x00,0x00,0x89,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x13,0x01,0x00,0x00,0x0b,0x01,0x00,0x00, +0x0e,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x39,0x00,0x00,0x00, +0x15,0x01,0x00,0x00,0x37,0x00,0x00,0x00,0x44,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x16,0x01,0x00,0x00, +0x15,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x17,0x01,0x00,0x00,0x0f,0x01,0x00,0x00,0x16,0x01,0x00,0x00, +0x41,0x00,0x05,0x00,0x39,0x00,0x00,0x00,0x19,0x01,0x00,0x00, +0x37,0x00,0x00,0x00,0x4a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x1a,0x01,0x00,0x00,0x19,0x01,0x00,0x00, +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1b,0x01,0x00,0x00, +0x13,0x01,0x00,0x00,0x1a,0x01,0x00,0x00,0x41,0x00,0x05,0x00, +0x39,0x00,0x00,0x00,0x1d,0x01,0x00,0x00,0x37,0x00,0x00,0x00, +0x50,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x1e,0x01,0x00,0x00,0x1d,0x01,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x1f,0x01,0x00,0x00,0x17,0x01,0x00,0x00, +0x1e,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x21,0x01,0x00,0x00,0x1f,0x01,0x00,0x00,0x1b,0x01,0x00,0x00, +0x41,0x00,0x05,0x00,0x39,0x00,0x00,0x00,0x23,0x01,0x00,0x00, +0x37,0x00,0x00,0x00,0x57,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x24,0x01,0x00,0x00,0x23,0x01,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x25,0x01,0x00,0x00, +0x21,0x01,0x00,0x00,0x24,0x01,0x00,0x00,0x41,0x00,0x05,0x00, +0x39,0x00,0x00,0x00,0x27,0x01,0x00,0x00,0x37,0x00,0x00,0x00, +0x5c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x28,0x01,0x00,0x00,0x27,0x01,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x29,0x01,0x00,0x00,0x0b,0x01,0x00,0x00, +0x28,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x39,0x00,0x00,0x00, +0x2b,0x01,0x00,0x00,0x37,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x2c,0x01,0x00,0x00, +0x2b,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x2d,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,0x2c,0x01,0x00,0x00, +0x41,0x00,0x05,0x00,0x86,0x00,0x00,0x00,0x87,0x00,0x00,0x00, +0x83,0x00,0x00,0x00,0x75,0x00,0x00,0x00,0x3e,0x00,0x03,0x00, +0x87,0x00,0x00,0x00,0x85,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, +0x89,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x89,0x00,0x00,0x00, +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x3e,0x01,0x00,0x00, +0x67,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0xd6,0x00,0x00,0x00, +0x8a,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x39,0x00,0x00,0x00, +0x8f,0x00,0x00,0x00,0x37,0x00,0x00,0x00,0x1b,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x90,0x00,0x00,0x00, +0x8f,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x91,0x00,0x00,0x00,0x90,0x00,0x00,0x00,0x80,0x00,0x00,0x00, +0xb0,0x00,0x05,0x00,0x92,0x00,0x00,0x00,0x93,0x00,0x00,0x00, +0x3e,0x01,0x00,0x00,0x91,0x00,0x00,0x00,0xf6,0x00,0x04,0x00, +0x8b,0x00,0x00,0x00,0x8a,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0xfa,0x00,0x04,0x00,0x93,0x00,0x00,0x00,0x8a,0x00,0x00,0x00, +0x8b,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x8a,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x96,0x00,0x00,0x00, +0x3e,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x98,0x00,0x00,0x00,0x6d,0x00,0x00,0x00, +0x75,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x99,0x00,0x00,0x00,0x96,0x00,0x00,0x00,0x98,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9e,0x00,0x00,0x00, +0x71,0x00,0x00,0x00,0x90,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0x9e,0x00,0x00,0x00, +0x99,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xa1,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0x25,0x00,0x00,0x00, +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa4,0x00,0x00,0x00, +0x99,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xa5,0x00,0x00,0x00,0xa4,0x00,0x00,0x00, +0x25,0x00,0x00,0x00,0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xaa,0x00,0x00,0x00,0x99,0x00,0x00,0x00,0xa4,0x00,0x00,0x00, +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xae,0x00,0x00,0x00, +0x25,0x01,0x00,0x00,0x25,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x32,0x01,0x00,0x00,0xae,0x00,0x00,0x00, +0xa1,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x1f,0x00,0x00,0x00, +0x33,0x01,0x00,0x00,0x19,0x00,0x00,0x00,0x1b,0x00,0x00,0x00, +0x32,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0x34,0x01,0x00,0x00,0x33,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x38,0x01,0x00,0x00,0x32,0x01,0x00,0x00, +0x25,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x1f,0x00,0x00,0x00, +0x39,0x01,0x00,0x00,0x19,0x00,0x00,0x00,0x1b,0x00,0x00,0x00, +0x38,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0x3a,0x01,0x00,0x00,0x39,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0x29,0x01,0x00,0x00, +0xaa,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xc1,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0xa5,0x00,0x00,0x00, +0x41,0x00,0x06,0x00,0x1f,0x00,0x00,0x00,0xc2,0x00,0x00,0x00, +0xbc,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0xc1,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xc3,0x00,0x00,0x00, +0xc2,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xcc,0x00,0x00,0x00,0xc1,0x00,0x00,0x00,0x25,0x00,0x00,0x00, +0x41,0x00,0x06,0x00,0x1f,0x00,0x00,0x00,0xcd,0x00,0x00,0x00, +0xbc,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0xcc,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xce,0x00,0x00,0x00, +0xcd,0x00,0x00,0x00,0x85,0x00,0x05,0x00,0x08,0x00,0x00,0x00, +0xcf,0x00,0x00,0x00,0x3a,0x01,0x00,0x00,0xce,0x00,0x00,0x00, +0x0c,0x00,0x08,0x00,0x08,0x00,0x00,0x00,0xd0,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x34,0x01,0x00,0x00, +0xc3,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x08,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,0x87,0x00,0x00,0x00, +0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0xd3,0x00,0x00,0x00, +0xd2,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0x3e,0x00,0x03,0x00, +0x87,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,0x3e,0x01,0x00,0x00, +0x6d,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x89,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0x8b,0x00,0x00,0x00,0xe0,0x00,0x04,0x00, +0x6d,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0xd7,0x00,0x00,0x00, 0xf9,0x00,0x02,0x00,0xda,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0xda,0x00,0x00,0x00,0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xef,0x00,0x00,0x00,0x3c,0x01,0x00,0x00,0xed,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0xd7,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0xd9,0x00,0x00,0x00,0xaa,0x00,0x05,0x00,0x8a,0x00,0x00,0x00, -0xf1,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x67,0x00,0x00,0x00, -0xf7,0x00,0x03,0x00,0xf3,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0xfa,0x00,0x04,0x00,0xf1,0x00,0x00,0x00,0xf2,0x00,0x00,0x00, -0xf3,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xf2,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfa,0x00,0x00,0x00, -0x2a,0x01,0x00,0x00,0x69,0x00,0x00,0x00,0x41,0x00,0x05,0x00, -0x7e,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0x7b,0x00,0x00,0x00, -0x1b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, -0xfc,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0x41,0x00,0x06,0x00, -0x1f,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,0xf7,0x00,0x00,0x00, -0x1b,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,0x3e,0x00,0x03,0x00, -0xfd,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, -0xf3,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xf3,0x00,0x00,0x00, -0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00, +0xda,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00, +0x3f,0x01,0x00,0x00,0xd9,0x00,0x00,0x00,0x8b,0x00,0x00,0x00, +0xf2,0x00,0x00,0x00,0xdd,0x00,0x00,0x00,0xac,0x00,0x05,0x00, +0x92,0x00,0x00,0x00,0xe0,0x00,0x00,0x00,0x3f,0x01,0x00,0x00, +0x67,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xdc,0x00,0x00,0x00, +0xdd,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, +0xe0,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,0xdc,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0xdb,0x00,0x00,0x00,0xb0,0x00,0x05,0x00, +0x92,0x00,0x00,0x00,0xe3,0x00,0x00,0x00,0x75,0x00,0x00,0x00, +0x3f,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,0xe5,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xe3,0x00,0x00,0x00, +0xe4,0x00,0x00,0x00,0xe5,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xe4,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xe9,0x00,0x00,0x00,0x75,0x00,0x00,0x00,0x3f,0x01,0x00,0x00, +0x41,0x00,0x05,0x00,0x86,0x00,0x00,0x00,0xea,0x00,0x00,0x00, +0x83,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x08,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0xea,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xed,0x00,0x00,0x00, +0x87,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00, +0xee,0x00,0x00,0x00,0xed,0x00,0x00,0x00,0xeb,0x00,0x00,0x00, +0x3e,0x00,0x03,0x00,0x87,0x00,0x00,0x00,0xee,0x00,0x00,0x00, +0xf9,0x00,0x02,0x00,0xe5,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xe5,0x00,0x00,0x00,0xe0,0x00,0x04,0x00,0x6d,0x00,0x00,0x00, +0x6d,0x00,0x00,0x00,0xd7,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, +0xdd,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xdd,0x00,0x00,0x00, +0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf2,0x00,0x00,0x00, +0x3f,0x01,0x00,0x00,0xf0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, +0xda,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xdc,0x00,0x00,0x00, +0xaa,0x00,0x05,0x00,0x92,0x00,0x00,0x00,0xf4,0x00,0x00,0x00, +0x75,0x00,0x00,0x00,0x67,0x00,0x00,0x00,0xf7,0x00,0x03,0x00, +0xf6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, +0xf4,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,0xf6,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0xf5,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,0x2d,0x01,0x00,0x00, +0x71,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x86,0x00,0x00,0x00, +0xfe,0x00,0x00,0x00,0x83,0x00,0x00,0x00,0x1b,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xff,0x00,0x00,0x00, +0xfe,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x1f,0x00,0x00,0x00, +0x00,0x01,0x00,0x00,0xfa,0x00,0x00,0x00,0x1b,0x00,0x00,0x00, +0xfd,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0x00,0x01,0x00,0x00, +0xff,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xf6,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0xf6,0x00,0x00,0x00,0xfd,0x00,0x01,0x00, +0x38,0x00,0x01,0x00, }; -const uint64_t mul_mat_vec_f32_f16_f32_len = 3536; - -unsigned char mul_mat_vec_f32_f32_f32_data[] = { -0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00, -0x39,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, -0x01,0x00,0x00,0x00,0x0b,0x00,0x06,0x00,0x01,0x00,0x00,0x00, -0x47,0x4c,0x53,0x4c,0x2e,0x73,0x74,0x64,0x2e,0x34,0x35,0x30, -0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00,0x00,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x0f,0x00,0x0d,0x00,0x05,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e,0x00,0x00,0x00,0x00, -0x19,0x00,0x00,0x00,0x2f,0x00,0x00,0x00,0x37,0x00,0x00,0x00, -0x66,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,0x7b,0x00,0x00,0x00, -0xb5,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,0x10,0x00,0x06,0x00, -0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x16,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0x17,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x19,0x00,0x00,0x00, -0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x2f,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x35,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x35,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x35,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x35,0x00,0x00,0x00,0x03,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x35,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x35,0x00,0x00,0x00, -0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x35,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x35,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x35,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x35,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x35,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x28,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x35,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x66,0x00,0x00,0x00, -0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x6b,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x78,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xb2,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00, -0xb3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0xb3,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, -0xb3,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xb5,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xb5,0x00,0x00,0x00,0x21,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xf0,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00, -0xf1,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0xf1,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, -0xf1,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xf3,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xf3,0x00,0x00,0x00,0x21,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xfa,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xfb,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00, -0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00, -0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x16,0x00,0x03,0x00,0x08,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x1d,0x00,0x03,0x00,0x16,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x1e,0x00,0x03,0x00,0x17,0x00,0x00,0x00,0x16,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x17,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x18,0x00,0x00,0x00, -0x19,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x15,0x00,0x04,0x00, -0x1a,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x1a,0x00,0x00,0x00,0x1b,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x1f,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x17,0x00,0x04,0x00,0x2d,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x2e,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x2d,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x2e,0x00,0x00,0x00,0x2f,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x30,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x1e,0x00,0x0d,0x00,0x35,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x36,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x35,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0x36,0x00,0x00,0x00,0x37,0x00,0x00,0x00, -0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1a,0x00,0x00,0x00, -0x38,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x39,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x1a,0x00,0x00,0x00,0x44,0x00,0x00,0x00, -0x0a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1a,0x00,0x00,0x00, -0x4a,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x1a,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x07,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x1a,0x00,0x00,0x00,0x57,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1a,0x00,0x00,0x00, -0x5c,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x1a,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0x2e,0x00,0x00,0x00,0x66,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x67,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x2e,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x78,0x00,0x00,0x00, -0x20,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0x79,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x7a,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x79,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0x7a,0x00,0x00,0x00,0x7b,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x08,0x00,0x00,0x00, -0x7d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x7e,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x14,0x00,0x02,0x00,0x8a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x8f,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x1d,0x00,0x03,0x00,0xb2,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x1e,0x00,0x03,0x00,0xb3,0x00,0x00,0x00,0xb2,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0xb4,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0xb3,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xb4,0x00,0x00,0x00, -0xb5,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0x08,0x01,0x00,0x00, -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xd2,0x00,0x00,0x00, -0x86,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x8f,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x1a,0x00,0x00,0x00,0xe9,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0xf0,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xf1,0x00,0x00,0x00, -0xf0,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xf2,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0xf1,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0xf2,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xfa,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x33,0x00,0x06,0x00,0x2d,0x00,0x00,0x00, -0xfb,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,0x25,0x00,0x00,0x00, -0x25,0x00,0x00,0x00,0x36,0x00,0x05,0x00,0x02,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00,0x41,0x00,0x05,0x00, -0x30,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x66,0x00,0x00,0x00, -0x67,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x69,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x41,0x00,0x05,0x00, -0x30,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x6b,0x00,0x00,0x00, -0x67,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x6d,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x41,0x00,0x05,0x00, -0x30,0x00,0x00,0x00,0x03,0x01,0x00,0x00,0x2f,0x00,0x00,0x00, -0x25,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x04,0x01,0x00,0x00,0x03,0x01,0x00,0x00,0x41,0x00,0x05,0x00, -0x39,0x00,0x00,0x00,0x06,0x01,0x00,0x00,0x37,0x00,0x00,0x00, -0x38,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x07,0x01,0x00,0x00,0x06,0x01,0x00,0x00,0x86,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x04,0x01,0x00,0x00, -0x07,0x01,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x0c,0x01,0x00,0x00,0x04,0x01,0x00,0x00,0x07,0x01,0x00,0x00, -0x41,0x00,0x05,0x00,0x39,0x00,0x00,0x00,0x0e,0x01,0x00,0x00, -0x37,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x0f,0x01,0x00,0x00,0x0e,0x01,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x10,0x01,0x00,0x00, -0x08,0x01,0x00,0x00,0x0f,0x01,0x00,0x00,0x41,0x00,0x05,0x00, -0x39,0x00,0x00,0x00,0x12,0x01,0x00,0x00,0x37,0x00,0x00,0x00, -0x4a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x13,0x01,0x00,0x00,0x12,0x01,0x00,0x00,0x86,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x14,0x01,0x00,0x00,0x0c,0x01,0x00,0x00, -0x13,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x39,0x00,0x00,0x00, -0x16,0x01,0x00,0x00,0x37,0x00,0x00,0x00,0x50,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x17,0x01,0x00,0x00, -0x16,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x18,0x01,0x00,0x00,0x10,0x01,0x00,0x00,0x17,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1a,0x01,0x00,0x00, -0x18,0x01,0x00,0x00,0x14,0x01,0x00,0x00,0x41,0x00,0x05,0x00, -0x39,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,0x37,0x00,0x00,0x00, -0x57,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x1d,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x1e,0x01,0x00,0x00,0x1a,0x01,0x00,0x00, -0x1d,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x39,0x00,0x00,0x00, -0x20,0x01,0x00,0x00,0x37,0x00,0x00,0x00,0x5c,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x21,0x01,0x00,0x00, -0x20,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x22,0x01,0x00,0x00,0x04,0x01,0x00,0x00,0x21,0x01,0x00,0x00, -0x41,0x00,0x05,0x00,0x39,0x00,0x00,0x00,0x24,0x01,0x00,0x00, -0x37,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x25,0x01,0x00,0x00,0x24,0x01,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x26,0x01,0x00,0x00, -0x04,0x01,0x00,0x00,0x25,0x01,0x00,0x00,0x41,0x00,0x05,0x00, -0x7e,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,0x7b,0x00,0x00,0x00, -0x6d,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0x7f,0x00,0x00,0x00, -0x7d,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x81,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0x81,0x00,0x00,0x00,0xf5,0x00,0x07,0x00, -0x06,0x00,0x00,0x00,0x37,0x01,0x00,0x00,0x67,0x00,0x00,0x00, -0x05,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x82,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x39,0x00,0x00,0x00,0x87,0x00,0x00,0x00, -0x37,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x88,0x00,0x00,0x00,0x87,0x00,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x89,0x00,0x00,0x00, -0x88,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0xb0,0x00,0x05,0x00, -0x8a,0x00,0x00,0x00,0x8b,0x00,0x00,0x00,0x37,0x01,0x00,0x00, -0x89,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x83,0x00,0x00,0x00, -0x82,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, -0x8b,0x00,0x00,0x00,0x82,0x00,0x00,0x00,0x83,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0x82,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,0x37,0x01,0x00,0x00, -0x78,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x91,0x00,0x00,0x00,0x8f,0x00,0x00,0x00,0x6d,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x92,0x00,0x00,0x00, -0x8e,0x00,0x00,0x00,0x91,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x69,0x00,0x00,0x00, -0x88,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x99,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x92,0x00,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9a,0x00,0x00,0x00, -0x99,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x89,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0x92,0x00,0x00,0x00, -0x25,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x9e,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0x25,0x00,0x00,0x00, -0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa3,0x00,0x00,0x00, -0x92,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0x86,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,0x1e,0x01,0x00,0x00, -0x25,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x2b,0x01,0x00,0x00,0xa7,0x00,0x00,0x00,0x9a,0x00,0x00,0x00, -0x41,0x00,0x06,0x00,0x1f,0x00,0x00,0x00,0x2c,0x01,0x00,0x00, -0x19,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x2b,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x2d,0x01,0x00,0x00, -0x2c,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x31,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,0x25,0x00,0x00,0x00, -0x41,0x00,0x06,0x00,0x1f,0x00,0x00,0x00,0x32,0x01,0x00,0x00, -0x19,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x31,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x33,0x01,0x00,0x00, -0x32,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xb8,0x00,0x00,0x00,0x22,0x01,0x00,0x00,0xa3,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xba,0x00,0x00,0x00, -0xb8,0x00,0x00,0x00,0x9e,0x00,0x00,0x00,0x41,0x00,0x06,0x00, -0x1f,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0xb5,0x00,0x00,0x00, -0x1b,0x00,0x00,0x00,0xba,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x08,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,0xbb,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc5,0x00,0x00,0x00, -0xba,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x41,0x00,0x06,0x00, -0x1f,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,0xb5,0x00,0x00,0x00, -0x1b,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x08,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,0xc6,0x00,0x00,0x00, -0x85,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0xc8,0x00,0x00,0x00, -0x33,0x01,0x00,0x00,0xc7,0x00,0x00,0x00,0x0c,0x00,0x08,0x00, -0x08,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0x2d,0x01,0x00,0x00,0xbc,0x00,0x00,0x00, -0xc8,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, -0xcb,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,0x81,0x00,0x05,0x00, -0x08,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,0xcb,0x00,0x00,0x00, -0xc9,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0x7f,0x00,0x00,0x00, -0xcc,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xcf,0x00,0x00,0x00,0x37,0x01,0x00,0x00,0x8f,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0x81,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0x83,0x00,0x00,0x00,0xe0,0x00,0x04,0x00,0x8f,0x00,0x00,0x00, -0x8f,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, -0xd3,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xd3,0x00,0x00,0x00, -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x38,0x01,0x00,0x00, -0xd2,0x00,0x00,0x00,0x83,0x00,0x00,0x00,0xeb,0x00,0x00,0x00, -0xd6,0x00,0x00,0x00,0xac,0x00,0x05,0x00,0x8a,0x00,0x00,0x00, -0xd9,0x00,0x00,0x00,0x38,0x01,0x00,0x00,0x67,0x00,0x00,0x00, -0xf6,0x00,0x04,0x00,0xd5,0x00,0x00,0x00,0xd6,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xd9,0x00,0x00,0x00, -0xd4,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0xd4,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0x8a,0x00,0x00,0x00, -0xdc,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x38,0x01,0x00,0x00, -0xf7,0x00,0x03,0x00,0xde,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0xfa,0x00,0x04,0x00,0xdc,0x00,0x00,0x00,0xdd,0x00,0x00,0x00, -0xde,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xdd,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe2,0x00,0x00,0x00, -0x6d,0x00,0x00,0x00,0x38,0x01,0x00,0x00,0x41,0x00,0x05,0x00, -0x7e,0x00,0x00,0x00,0xe3,0x00,0x00,0x00,0x7b,0x00,0x00,0x00, -0xe2,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, -0xe4,0x00,0x00,0x00,0xe3,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x08,0x00,0x00,0x00,0xe6,0x00,0x00,0x00,0x7f,0x00,0x00,0x00, -0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0xe7,0x00,0x00,0x00, -0xe6,0x00,0x00,0x00,0xe4,0x00,0x00,0x00,0x3e,0x00,0x03,0x00, -0x7f,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, -0xde,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xde,0x00,0x00,0x00, -0xe0,0x00,0x04,0x00,0x8f,0x00,0x00,0x00,0x8f,0x00,0x00,0x00, -0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xd6,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0xd6,0x00,0x00,0x00,0xc2,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0x38,0x01,0x00,0x00, -0xe9,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xd3,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0xd5,0x00,0x00,0x00,0xaa,0x00,0x05,0x00, -0x8a,0x00,0x00,0x00,0xed,0x00,0x00,0x00,0x6d,0x00,0x00,0x00, -0x67,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0xef,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xed,0x00,0x00,0x00, -0xee,0x00,0x00,0x00,0xef,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0xee,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xf6,0x00,0x00,0x00,0x26,0x01,0x00,0x00,0x69,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x7e,0x00,0x00,0x00,0xf7,0x00,0x00,0x00, -0x7b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x08,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0xf7,0x00,0x00,0x00, -0x41,0x00,0x06,0x00,0x1f,0x00,0x00,0x00,0xf9,0x00,0x00,0x00, -0xf3,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0xf6,0x00,0x00,0x00, -0x3e,0x00,0x03,0x00,0xf9,0x00,0x00,0x00,0xf8,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0xef,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0xef,0x00,0x00,0x00,0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00, - -}; -const uint64_t mul_mat_vec_f32_f32_f32_len = 3468; +const uint64_t mul_mat_vec_f32_f32_f32_len = 3616; unsigned char mul_mat_vec_id_f16_f32_data[] = { 0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00, -0x1b,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, +0x22,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, 0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x51,0x11,0x00,0x00, 0x0b,0x00,0x06,0x00,0x01,0x00,0x00,0x00,0x47,0x4c,0x53,0x4c, 0x2e,0x73,0x74,0x64,0x2e,0x34,0x35,0x30,0x00,0x00,0x00,0x00, 0x0e,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x0f,0x00,0x0e,0x00,0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x0f,0x00,0x0f,0x00,0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00, 0x6d,0x61,0x69,0x6e,0x00,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, 0x32,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x43,0x00,0x00,0x00, -0x58,0x00,0x00,0x00,0x5d,0x00,0x00,0x00,0x6d,0x00,0x00,0x00, -0xa7,0x00,0x00,0x00,0xe6,0x00,0x00,0x00,0x10,0x00,0x06,0x00, -0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0x18,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x1a,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x1a,0x00,0x00,0x00, -0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x32,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x37,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x38,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x38,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x3a,0x00,0x00,0x00, -0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x3a,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x03,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x41,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x41,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x41,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x41,0x00,0x00,0x00,0x03,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x41,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x41,0x00,0x00,0x00, -0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x41,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x41,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x41,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0x41,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x58,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, -0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x5d,0x00,0x00,0x00, -0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x6a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xa4,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0xa5,0x00,0x00,0x00, +0x58,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,0x65,0x00,0x00,0x00, +0x75,0x00,0x00,0x00,0xae,0x00,0x00,0x00,0xed,0x00,0x00,0x00, +0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x18,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0xa5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0xa5,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xa7,0x00,0x00,0x00, -0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xa7,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xe3,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0xe4,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0xe4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0xe4,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xe6,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x18,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x1a,0x00,0x00,0x00, 0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xe6,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xed,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xee,0x00,0x00,0x00, -0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x13,0x00,0x02,0x00, -0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x00,0x03,0x00, -0x08,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x16,0x00,0x03,0x00, -0x16,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, -0x17,0x00,0x00,0x00,0x16,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, -0x18,0x00,0x00,0x00,0x17,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x19,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x18,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x20,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x16,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x27,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x17,0x00,0x04,0x00, -0x30,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x31,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x30,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x31,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x33,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x1d,0x00,0x03,0x00,0x37,0x00,0x00,0x00,0x1b,0x00,0x00,0x00, -0x1e,0x00,0x03,0x00,0x38,0x00,0x00,0x00,0x37,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x39,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x38,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x39,0x00,0x00,0x00, -0x3a,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x3c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x1b,0x00,0x00,0x00, -0x1e,0x00,0x0b,0x00,0x41,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x1a,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x32,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x37,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00, +0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0x38,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x3a,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x3a,0x00,0x00,0x00,0x21,0x00,0x00,0x00, +0x03,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x41,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x41,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x41,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x41,0x00,0x00,0x00, +0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x41,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x41,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x41,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x41,0x00,0x00,0x00,0x07,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x41,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x41,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x58,0x00,0x00,0x00, +0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x5c,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x65,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, +0x1b,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x72,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xab,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x48,0x00,0x04,0x00,0xac,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xac,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x03,0x00,0xac,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xae,0x00,0x00,0x00,0x22,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xae,0x00,0x00,0x00, +0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xea,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x48,0x00,0x04,0x00,0xeb,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x19,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xeb,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x03,0x00,0xeb,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xed,0x00,0x00,0x00,0x22,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xed,0x00,0x00,0x00, +0x21,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xf4,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xf5,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, +0x19,0x00,0x00,0x00,0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00, +0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x15,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0x08,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0x16,0x00,0x00,0x00, +0x10,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x17,0x00,0x00,0x00, +0x16,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x18,0x00,0x00,0x00, +0x17,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x19,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0x19,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x15,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x20,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x20,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x16,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x27,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x17,0x00,0x04,0x00,0x30,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x31,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x30,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x31,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x33,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, +0x37,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, +0x38,0x00,0x00,0x00,0x37,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x39,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x38,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x39,0x00,0x00,0x00,0x3a,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x3c,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x1e,0x00,0x0b,0x00, +0x41,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x42,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x41,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0x42,0x00,0x00,0x00,0x43,0x00,0x00,0x00, -0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x44,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x45,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x4a,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x4e,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x53,0x00,0x00,0x00,0x03,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0x31,0x00,0x00,0x00,0x58,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x31,0x00,0x00,0x00,0x5d,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x6a,0x00,0x00,0x00, -0x20,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0x6b,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x6a,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x6c,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x6b,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0x6c,0x00,0x00,0x00,0x6d,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x08,0x00,0x00,0x00, -0x6f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x70,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x14,0x00,0x02,0x00,0x7c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x81,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x1d,0x00,0x03,0x00,0xa4,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x1e,0x00,0x03,0x00,0xa5,0x00,0x00,0x00,0xa4,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0xa6,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0xa5,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xa6,0x00,0x00,0x00, -0xa7,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0xad,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xc3,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x42,0x00,0x00,0x00, +0x09,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0x42,0x00,0x00,0x00,0x43,0x00,0x00,0x00,0x09,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x44,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x45,0x00,0x00,0x00, +0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x4a,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x4e,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x53,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0x31,0x00,0x00,0x00,0x58,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x59,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x31,0x00,0x00,0x00, +0x5c,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x31,0x00,0x00,0x00,0x65,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x72,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, +0x73,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x72,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x74,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x73,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x74,0x00,0x00,0x00, +0x75,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x08,0x00,0x00,0x00,0x77,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x78,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x14,0x00,0x02,0x00,0x84,0x00,0x00,0x00, +0x1d,0x00,0x03,0x00,0xab,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x1e,0x00,0x03,0x00,0xac,0x00,0x00,0x00,0xab,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0xad,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0xac,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xad,0x00,0x00,0x00, +0xae,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0xb4,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xca,0x00,0x00,0x00, 0x08,0x01,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00, -0xc5,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x6a,0x00,0x00,0x00, -0x81,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0xdc,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, -0xe3,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, -0xe4,0x00,0x00,0x00,0xe3,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0xe5,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xe4,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0xe5,0x00,0x00,0x00,0xe6,0x00,0x00,0x00, +0xcc,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x72,0x00,0x00,0x00, +0x5f,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0xe3,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, +0xea,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, +0xeb,0x00,0x00,0x00,0xea,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0xec,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xeb,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0xec,0x00,0x00,0x00,0xed,0x00,0x00,0x00, 0x0c,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xed,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x33,0x00,0x06,0x00, -0x30,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0xed,0x00,0x00,0x00, +0xf4,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x33,0x00,0x06,0x00, +0x30,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,0xf4,0x00,0x00,0x00, 0x27,0x00,0x00,0x00,0x27,0x00,0x00,0x00,0x36,0x00,0x05,0x00, 0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x03,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00, 0x41,0x00,0x05,0x00,0x33,0x00,0x00,0x00,0x5a,0x00,0x00,0x00, 0x58,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, 0x06,0x00,0x00,0x00,0x5b,0x00,0x00,0x00,0x5a,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x33,0x00,0x00,0x00,0x5e,0x00,0x00,0x00, -0x5d,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,0x5e,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x33,0x00,0x00,0x00,0xf2,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0x27,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,0xf2,0x00,0x00,0x00, -0x41,0x00,0x06,0x00,0x3c,0x00,0x00,0x00,0xf5,0x00,0x00,0x00, -0x3a,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xf3,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xf6,0x00,0x00,0x00, -0xf5,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xf7,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,0x41,0x00,0x05,0x00, -0x45,0x00,0x00,0x00,0xf9,0x00,0x00,0x00,0x43,0x00,0x00,0x00, -0x44,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xfa,0x00,0x00,0x00,0xf9,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0xf7,0x00,0x00,0x00, -0xfa,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x45,0x00,0x00,0x00, -0xfd,0x00,0x00,0x00,0x43,0x00,0x00,0x00,0x4a,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xfe,0x00,0x00,0x00, -0xfd,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xff,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,0xfe,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x33,0x00,0x00,0x00,0x5d,0x00,0x00,0x00, +0x5c,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,0x5d,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x33,0x00,0x00,0x00,0x60,0x00,0x00,0x00, +0x58,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x60,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x62,0x00,0x00,0x00, +0x5e,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x5b,0x00,0x00,0x00, +0x62,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x33,0x00,0x00,0x00, +0x66,0x00,0x00,0x00,0x65,0x00,0x00,0x00,0x59,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x67,0x00,0x00,0x00, +0x66,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x33,0x00,0x00,0x00, +0xf9,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x27,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xfa,0x00,0x00,0x00, +0xf9,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x3c,0x00,0x00,0x00, +0xfc,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0xfa,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0xfd,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x7c,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0xfd,0x00,0x00,0x00, 0x41,0x00,0x05,0x00,0x45,0x00,0x00,0x00,0x00,0x01,0x00,0x00, -0x43,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x43,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, 0x06,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x01,0x00,0x00, 0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x02,0x01,0x00,0x00, -0xff,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x41,0x00,0x05,0x00, +0xfe,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x41,0x00,0x05,0x00, 0x45,0x00,0x00,0x00,0x04,0x01,0x00,0x00,0x43,0x00,0x00,0x00, -0x53,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x05,0x01,0x00,0x00,0x04,0x01,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x06,0x01,0x00,0x00,0xf3,0x00,0x00,0x00, -0x05,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x70,0x00,0x00,0x00, -0x71,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x5f,0x00,0x00,0x00, -0x3e,0x00,0x03,0x00,0x71,0x00,0x00,0x00,0x6f,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0x73,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0x73,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00, -0x19,0x01,0x00,0x00,0x59,0x00,0x00,0x00,0x05,0x00,0x00,0x00, -0xc2,0x00,0x00,0x00,0x74,0x00,0x00,0x00,0x41,0x00,0x05,0x00, -0x45,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x43,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x7a,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x86,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,0x7a,0x00,0x00,0x00, -0x6a,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0x7c,0x00,0x00,0x00, -0x7d,0x00,0x00,0x00,0x19,0x01,0x00,0x00,0x7b,0x00,0x00,0x00, -0xf6,0x00,0x04,0x00,0x75,0x00,0x00,0x00,0x74,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x7d,0x00,0x00,0x00, -0x74,0x00,0x00,0x00,0x75,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0x74,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x80,0x00,0x00,0x00,0x19,0x01,0x00,0x00,0x6a,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x83,0x00,0x00,0x00, -0x81,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x80,0x00,0x00,0x00, -0x83,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x89,0x00,0x00,0x00,0x5b,0x00,0x00,0x00,0x7a,0x00,0x00,0x00, +0x4a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x05,0x01,0x00,0x00,0x04,0x01,0x00,0x00,0x89,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x06,0x01,0x00,0x00,0xfa,0x00,0x00,0x00, +0x05,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x45,0x00,0x00,0x00, +0x07,0x01,0x00,0x00,0x43,0x00,0x00,0x00,0x4e,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x08,0x01,0x00,0x00, +0x07,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x09,0x01,0x00,0x00,0x06,0x01,0x00,0x00,0x08,0x01,0x00,0x00, +0x41,0x00,0x05,0x00,0x45,0x00,0x00,0x00,0x0b,0x01,0x00,0x00, +0x43,0x00,0x00,0x00,0x53,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,0x0b,0x01,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0d,0x01,0x00,0x00, +0xfa,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,0x41,0x00,0x05,0x00, +0x78,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x75,0x00,0x00,0x00, +0x67,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0x79,0x00,0x00,0x00, +0x77,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x7b,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0x7b,0x00,0x00,0x00,0xf5,0x00,0x07,0x00, +0x06,0x00,0x00,0x00,0x20,0x01,0x00,0x00,0x59,0x00,0x00,0x00, +0x05,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0x7c,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x45,0x00,0x00,0x00,0x81,0x00,0x00,0x00, +0x43,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x82,0x00,0x00,0x00,0x81,0x00,0x00,0x00, +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x83,0x00,0x00,0x00, +0x82,0x00,0x00,0x00,0x72,0x00,0x00,0x00,0xb0,0x00,0x05,0x00, +0x84,0x00,0x00,0x00,0x85,0x00,0x00,0x00,0x20,0x01,0x00,0x00, +0x83,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x7d,0x00,0x00,0x00, +0x7c,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, +0x85,0x00,0x00,0x00,0x7c,0x00,0x00,0x00,0x7d,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0x7c,0x00,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x88,0x00,0x00,0x00,0x20,0x01,0x00,0x00, +0x72,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x8a,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,0x67,0x00,0x00,0x00, 0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8b,0x00,0x00,0x00, -0x89,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x86,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x8c,0x00,0x00,0x00,0x8b,0x00,0x00,0x00, -0x27,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x8f,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x27,0x00,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x90,0x00,0x00,0x00, -0x8f,0x00,0x00,0x00,0x27,0x00,0x00,0x00,0x82,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x95,0x00,0x00,0x00,0x84,0x00,0x00,0x00, -0x8f,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x99,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0x27,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0b,0x01,0x00,0x00, -0x99,0x00,0x00,0x00,0x8c,0x00,0x00,0x00,0x41,0x00,0x06,0x00, -0x20,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,0x1a,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0x0b,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0x16,0x00,0x00,0x00,0x0d,0x01,0x00,0x00,0x0c,0x01,0x00,0x00, -0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x0e,0x01,0x00,0x00, -0x0d,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x12,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,0x27,0x00,0x00,0x00, +0x88,0x00,0x00,0x00,0x8a,0x00,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x90,0x00,0x00,0x00,0x63,0x00,0x00,0x00, +0x82,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x92,0x00,0x00,0x00,0x90,0x00,0x00,0x00,0x8b,0x00,0x00,0x00, +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x93,0x00,0x00,0x00, +0x92,0x00,0x00,0x00,0x27,0x00,0x00,0x00,0x89,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x96,0x00,0x00,0x00,0x8b,0x00,0x00,0x00, +0x27,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x97,0x00,0x00,0x00,0x96,0x00,0x00,0x00,0x27,0x00,0x00,0x00, +0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9c,0x00,0x00,0x00, +0x8b,0x00,0x00,0x00,0x96,0x00,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0x02,0x01,0x00,0x00, +0x27,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x12,0x01,0x00,0x00,0xa0,0x00,0x00,0x00,0x93,0x00,0x00,0x00, 0x41,0x00,0x06,0x00,0x20,0x00,0x00,0x00,0x13,0x01,0x00,0x00, 0x1a,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x12,0x01,0x00,0x00, 0x3d,0x00,0x04,0x00,0x16,0x00,0x00,0x00,0x14,0x01,0x00,0x00, 0x13,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00, 0x15,0x01,0x00,0x00,0x14,0x01,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xaa,0x00,0x00,0x00,0x02,0x01,0x00,0x00, -0x95,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xac,0x00,0x00,0x00,0xaa,0x00,0x00,0x00,0x90,0x00,0x00,0x00, -0x41,0x00,0x06,0x00,0xad,0x00,0x00,0x00,0xae,0x00,0x00,0x00, -0xa7,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xac,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xaf,0x00,0x00,0x00, -0xae,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xb8,0x00,0x00,0x00,0xac,0x00,0x00,0x00,0x27,0x00,0x00,0x00, -0x41,0x00,0x06,0x00,0xad,0x00,0x00,0x00,0xb9,0x00,0x00,0x00, -0xa7,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xb8,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xba,0x00,0x00,0x00, -0xb9,0x00,0x00,0x00,0x85,0x00,0x05,0x00,0x08,0x00,0x00,0x00, -0xbb,0x00,0x00,0x00,0x15,0x01,0x00,0x00,0xba,0x00,0x00,0x00, -0x0c,0x00,0x08,0x00,0x08,0x00,0x00,0x00,0xbc,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x0e,0x01,0x00,0x00, -0xaf,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x08,0x00,0x00,0x00,0xbe,0x00,0x00,0x00,0x71,0x00,0x00,0x00, -0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0xbf,0x00,0x00,0x00, -0xbe,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,0x3e,0x00,0x03,0x00, -0x71,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xc2,0x00,0x00,0x00,0x19,0x01,0x00,0x00, -0x81,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x73,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0x75,0x00,0x00,0x00,0xe0,0x00,0x04,0x00, -0x81,0x00,0x00,0x00,0x81,0x00,0x00,0x00,0xc3,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0xc6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0xc6,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00, -0x1a,0x01,0x00,0x00,0xc5,0x00,0x00,0x00,0x75,0x00,0x00,0x00, -0xde,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0xac,0x00,0x05,0x00, -0x7c,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,0x1a,0x01,0x00,0x00, -0x59,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xc8,0x00,0x00,0x00, -0xc9,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, -0xcc,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,0xc8,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0xc7,0x00,0x00,0x00,0xb0,0x00,0x05,0x00, -0x7c,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x5f,0x00,0x00,0x00, -0x1a,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,0xd1,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xcf,0x00,0x00,0x00, -0xd0,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0xd0,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xd5,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,0x1a,0x01,0x00,0x00, -0x41,0x00,0x05,0x00,0x70,0x00,0x00,0x00,0xd6,0x00,0x00,0x00, -0x6d,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x08,0x00,0x00,0x00,0xd7,0x00,0x00,0x00,0xd6,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xd9,0x00,0x00,0x00, -0x71,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00, -0xda,0x00,0x00,0x00,0xd9,0x00,0x00,0x00,0xd7,0x00,0x00,0x00, -0x3e,0x00,0x03,0x00,0x71,0x00,0x00,0x00,0xda,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0xd1,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0xd1,0x00,0x00,0x00,0xe0,0x00,0x04,0x00,0x81,0x00,0x00,0x00, -0x81,0x00,0x00,0x00,0xc3,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, -0xc9,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xc9,0x00,0x00,0x00, -0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xde,0x00,0x00,0x00, -0x1a,0x01,0x00,0x00,0xdc,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, -0xc6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xc8,0x00,0x00,0x00, -0xaa,0x00,0x05,0x00,0x7c,0x00,0x00,0x00,0xe0,0x00,0x00,0x00, -0x5f,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xf7,0x00,0x03,0x00, -0xe2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, -0xe0,0x00,0x00,0x00,0xe1,0x00,0x00,0x00,0xe2,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0xe1,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,0x06,0x01,0x00,0x00, -0x5b,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x70,0x00,0x00,0x00, -0xea,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xeb,0x00,0x00,0x00, -0xea,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xad,0x00,0x00,0x00, -0xec,0x00,0x00,0x00,0xe6,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0xe9,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0xec,0x00,0x00,0x00, -0xeb,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xe2,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0xe2,0x00,0x00,0x00,0xfd,0x00,0x01,0x00, -0x38,0x00,0x01,0x00, +0x06,0x00,0x00,0x00,0x19,0x01,0x00,0x00,0x12,0x01,0x00,0x00, +0x27,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x20,0x00,0x00,0x00, +0x1a,0x01,0x00,0x00,0x1a,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0x19,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x16,0x00,0x00,0x00, +0x1b,0x01,0x00,0x00,0x1a,0x01,0x00,0x00,0x73,0x00,0x04,0x00, +0x08,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,0x1b,0x01,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb1,0x00,0x00,0x00, +0x09,0x01,0x00,0x00,0x9c,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,0xb1,0x00,0x00,0x00, +0x97,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xb4,0x00,0x00,0x00, +0xb5,0x00,0x00,0x00,0xae,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0xb3,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0xb6,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0xb3,0x00,0x00,0x00, +0x27,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xb4,0x00,0x00,0x00, +0xc0,0x00,0x00,0x00,0xae,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0xbf,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0xc1,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x85,0x00,0x05,0x00, +0x08,0x00,0x00,0x00,0xc2,0x00,0x00,0x00,0x1c,0x01,0x00,0x00, +0xc1,0x00,0x00,0x00,0x0c,0x00,0x08,0x00,0x08,0x00,0x00,0x00, +0xc3,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0x15,0x01,0x00,0x00,0xb6,0x00,0x00,0x00,0xc2,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xc5,0x00,0x00,0x00, +0x79,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00, +0xc6,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0xc3,0x00,0x00,0x00, +0x3e,0x00,0x03,0x00,0x79,0x00,0x00,0x00,0xc6,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc9,0x00,0x00,0x00, +0x20,0x01,0x00,0x00,0x5f,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, +0x7b,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x7d,0x00,0x00,0x00, +0xe0,0x00,0x04,0x00,0x5f,0x00,0x00,0x00,0x5f,0x00,0x00,0x00, +0xca,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xcd,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0xcd,0x00,0x00,0x00,0xf5,0x00,0x07,0x00, +0x06,0x00,0x00,0x00,0x21,0x01,0x00,0x00,0xcc,0x00,0x00,0x00, +0x7d,0x00,0x00,0x00,0xe5,0x00,0x00,0x00,0xd0,0x00,0x00,0x00, +0xac,0x00,0x05,0x00,0x84,0x00,0x00,0x00,0xd3,0x00,0x00,0x00, +0x21,0x01,0x00,0x00,0x59,0x00,0x00,0x00,0xf6,0x00,0x04,0x00, +0xcf,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0xfa,0x00,0x04,0x00,0xd3,0x00,0x00,0x00,0xce,0x00,0x00,0x00, +0xcf,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xce,0x00,0x00,0x00, +0xb0,0x00,0x05,0x00,0x84,0x00,0x00,0x00,0xd6,0x00,0x00,0x00, +0x67,0x00,0x00,0x00,0x21,0x01,0x00,0x00,0xf7,0x00,0x03,0x00, +0xd8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, +0xd6,0x00,0x00,0x00,0xd7,0x00,0x00,0x00,0xd8,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0xd7,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xdc,0x00,0x00,0x00,0x67,0x00,0x00,0x00, +0x21,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x78,0x00,0x00,0x00, +0xdd,0x00,0x00,0x00,0x75,0x00,0x00,0x00,0xdc,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xde,0x00,0x00,0x00, +0xdd,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0xe0,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x81,0x00,0x05,0x00, +0x08,0x00,0x00,0x00,0xe1,0x00,0x00,0x00,0xe0,0x00,0x00,0x00, +0xde,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0x79,0x00,0x00,0x00, +0xe1,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xd8,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0xd8,0x00,0x00,0x00,0xe0,0x00,0x04,0x00, +0x5f,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,0xca,0x00,0x00,0x00, +0xf9,0x00,0x02,0x00,0xd0,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xd0,0x00,0x00,0x00,0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xe5,0x00,0x00,0x00,0x21,0x01,0x00,0x00,0xe3,0x00,0x00,0x00, +0xf9,0x00,0x02,0x00,0xcd,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xcf,0x00,0x00,0x00,0xaa,0x00,0x05,0x00,0x84,0x00,0x00,0x00, +0xe7,0x00,0x00,0x00,0x67,0x00,0x00,0x00,0x59,0x00,0x00,0x00, +0xf7,0x00,0x03,0x00,0xe9,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xfa,0x00,0x04,0x00,0xe7,0x00,0x00,0x00,0xe8,0x00,0x00,0x00, +0xe9,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xe8,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf0,0x00,0x00,0x00, +0x0d,0x01,0x00,0x00,0x63,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0x78,0x00,0x00,0x00,0xf1,0x00,0x00,0x00,0x75,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0xf2,0x00,0x00,0x00,0xf1,0x00,0x00,0x00,0x41,0x00,0x06,0x00, +0xb4,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,0xed,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x3e,0x00,0x03,0x00, +0xf3,0x00,0x00,0x00,0xf2,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, +0xe9,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xe9,0x00,0x00,0x00, +0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00, }; -const uint64_t mul_mat_vec_id_f16_f32_len = 3460; +const uint64_t mul_mat_vec_id_f16_f32_len = 3608; unsigned char mul_mat_vec_id_f32_f32_data[] = { 0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00, -0x15,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, +0x1c,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, 0x01,0x00,0x00,0x00,0x0b,0x00,0x06,0x00,0x01,0x00,0x00,0x00, 0x47,0x4c,0x53,0x4c,0x2e,0x73,0x74,0x64,0x2e,0x34,0x35,0x30, 0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00,0x00,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x0f,0x00,0x0e,0x00,0x05,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x0f,0x00,0x0f,0x00,0x05,0x00,0x00,0x00, 0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e,0x00,0x00,0x00,0x00, 0x19,0x00,0x00,0x00,0x2f,0x00,0x00,0x00,0x37,0x00,0x00,0x00, -0x40,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x5a,0x00,0x00,0x00, -0x6a,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,0xe2,0x00,0x00,0x00, -0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x16,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x17,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x19,0x00,0x00,0x00, -0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x19,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x2f,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x34,0x00,0x00,0x00, +0x40,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x59,0x00,0x00,0x00, +0x62,0x00,0x00,0x00,0x72,0x00,0x00,0x00,0xab,0x00,0x00,0x00, +0xe9,0x00,0x00,0x00,0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00, +0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x16,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00, -0x35,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x35,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x17,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, -0x35,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x37,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x37,0x00,0x00,0x00,0x21,0x00,0x00,0x00, -0x03,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x3e,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x3e,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x3e,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x3e,0x00,0x00,0x00, -0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x3e,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x3e,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x3e,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x3e,0x00,0x00,0x00,0x07,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x3e,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x20,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x3e,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x55,0x00,0x00,0x00, -0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x5a,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x67,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xa1,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00, -0xa2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0xa2,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, -0xa2,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xa4,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xa4,0x00,0x00,0x00,0x21,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xdf,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00, -0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, -0xe0,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xe2,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xe2,0x00,0x00,0x00,0x21,0x00,0x00,0x00, +0x17,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x19,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x21,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x2f,0x00,0x00,0x00, +0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x34,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x48,0x00,0x04,0x00,0x35,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x35,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x03,0x00,0x35,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x37,0x00,0x00,0x00,0x22,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x37,0x00,0x00,0x00, +0x21,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x3e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x3e,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x3e,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x3e,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x3e,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x3e,0x00,0x00,0x00,0x05,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x3e,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x3e,0x00,0x00,0x00, +0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x3e,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0x3e,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x55,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x59,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x62,0x00,0x00,0x00, +0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x6f,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xa8,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0xa9,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0xa9,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0xa9,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xab,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xab,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xe6,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0xe7,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0xe7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0xe7,0x00,0x00,0x00, 0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xe9,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xea,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00, -0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00, -0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x16,0x00,0x03,0x00,0x08,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x1d,0x00,0x03,0x00,0x16,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x1e,0x00,0x03,0x00,0x17,0x00,0x00,0x00,0x16,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x17,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x18,0x00,0x00,0x00, -0x19,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x15,0x00,0x04,0x00, -0x1a,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x1a,0x00,0x00,0x00,0x1b,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x1f,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x17,0x00,0x04,0x00,0x2d,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x2e,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x2d,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x2e,0x00,0x00,0x00,0x2f,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x30,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x34,0x00,0x00,0x00, -0x1a,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x35,0x00,0x00,0x00, -0x34,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x36,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x36,0x00,0x00,0x00,0x37,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x39,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x1a,0x00,0x00,0x00,0x1e,0x00,0x0b,0x00,0x3e,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x3f,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x3e,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x3f,0x00,0x00,0x00, -0x40,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x1a,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x42,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1a,0x00,0x00,0x00, -0x47,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x1a,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x1a,0x00,0x00,0x00,0x50,0x00,0x00,0x00, -0x03,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x2e,0x00,0x00,0x00, -0x55,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x56,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0x2e,0x00,0x00,0x00,0x5a,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x67,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, -0x68,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x67,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x69,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x68,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x69,0x00,0x00,0x00, -0x6a,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x08,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x6d,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x14,0x00,0x02,0x00,0x79,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x7e,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0xa1,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xa2,0x00,0x00,0x00, -0xa1,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xa3,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0xa3,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xbf,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xe9,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xf0,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xf1,0x00,0x00,0x00, +0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x13,0x00,0x02,0x00, +0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x00,0x03,0x00, +0x08,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, +0x16,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, +0x17,0x00,0x00,0x00,0x16,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x18,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x17,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x19,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x1a,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1a,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x25,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x17,0x00,0x04,0x00, +0x2d,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x2e,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x2d,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x2e,0x00,0x00,0x00, +0x2f,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x30,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x1d,0x00,0x03,0x00,0x34,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, +0x1e,0x00,0x03,0x00,0x35,0x00,0x00,0x00,0x34,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x36,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x35,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x36,0x00,0x00,0x00, +0x37,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x39,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, +0x1e,0x00,0x0b,0x00,0x3e,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x3f,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x3e,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x3f,0x00,0x00,0x00,0x40,0x00,0x00,0x00, +0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1a,0x00,0x00,0x00, +0x41,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x42,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x1a,0x00,0x00,0x00,0x47,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1a,0x00,0x00,0x00, +0x4b,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1a,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x03,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x2e,0x00,0x00,0x00,0x55,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x56,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0x2e,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x5c,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x2e,0x00,0x00,0x00, +0x62,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x20,0x00,0x00,0x00, +0x1c,0x00,0x04,0x00,0x70,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x6f,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x71,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0x71,0x00,0x00,0x00,0x72,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x74,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x75,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x14,0x00,0x02,0x00, +0x81,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0xa8,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xa9,0x00,0x00,0x00, +0xa8,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xaa,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0xaa,0x00,0x00,0x00,0xab,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xc6,0x00,0x00,0x00, 0x08,0x01,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00, -0xc1,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x67,0x00,0x00,0x00, -0x7e,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1a,0x00,0x00,0x00, -0xd8,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, -0xdf,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, -0xe0,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0xe1,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xe0,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0xe1,0x00,0x00,0x00,0xe2,0x00,0x00,0x00, +0xc8,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x6f,0x00,0x00,0x00, +0x5c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1a,0x00,0x00,0x00, +0xdf,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, +0xe6,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, +0xe7,0x00,0x00,0x00,0xe6,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0xe8,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xe7,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0xe8,0x00,0x00,0x00,0xe9,0x00,0x00,0x00, 0x0c,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xe9,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x33,0x00,0x06,0x00, -0x2d,0x00,0x00,0x00,0xea,0x00,0x00,0x00,0xe9,0x00,0x00,0x00, +0xf0,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x33,0x00,0x06,0x00, +0x2d,0x00,0x00,0x00,0xf1,0x00,0x00,0x00,0xf0,0x00,0x00,0x00, 0x25,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x36,0x00,0x05,0x00, 0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x03,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00, 0x41,0x00,0x05,0x00,0x30,0x00,0x00,0x00,0x57,0x00,0x00,0x00, 0x55,0x00,0x00,0x00,0x56,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, 0x06,0x00,0x00,0x00,0x58,0x00,0x00,0x00,0x57,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x30,0x00,0x00,0x00,0x5b,0x00,0x00,0x00, -0x5a,0x00,0x00,0x00,0x56,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,0x5b,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x30,0x00,0x00,0x00,0xee,0x00,0x00,0x00, -0x2f,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xef,0x00,0x00,0x00,0xee,0x00,0x00,0x00, -0x41,0x00,0x06,0x00,0x39,0x00,0x00,0x00,0xf1,0x00,0x00,0x00, -0x37,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0xef,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x1a,0x00,0x00,0x00,0xf2,0x00,0x00,0x00, -0xf1,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xf3,0x00,0x00,0x00,0xf2,0x00,0x00,0x00,0x41,0x00,0x05,0x00, -0x42,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,0x40,0x00,0x00,0x00, -0x41,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xf6,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,0xf3,0x00,0x00,0x00, -0xf6,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x42,0x00,0x00,0x00, -0xf9,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x47,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xfa,0x00,0x00,0x00, -0xf9,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xfb,0x00,0x00,0x00,0xef,0x00,0x00,0x00,0xfa,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x30,0x00,0x00,0x00,0x5a,0x00,0x00,0x00, +0x59,0x00,0x00,0x00,0x56,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x5b,0x00,0x00,0x00,0x5a,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x30,0x00,0x00,0x00,0x5d,0x00,0x00,0x00, +0x55,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,0x5d,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5f,0x00,0x00,0x00, +0x5b,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x58,0x00,0x00,0x00, +0x5f,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x30,0x00,0x00,0x00, +0x63,0x00,0x00,0x00,0x62,0x00,0x00,0x00,0x56,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x64,0x00,0x00,0x00, +0x63,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x30,0x00,0x00,0x00, +0xf5,0x00,0x00,0x00,0x2f,0x00,0x00,0x00,0x25,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xf6,0x00,0x00,0x00, +0xf5,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x39,0x00,0x00,0x00, +0xf8,0x00,0x00,0x00,0x37,0x00,0x00,0x00,0x1b,0x00,0x00,0x00, +0xf6,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x1a,0x00,0x00,0x00, +0xf9,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0x7c,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,0xf9,0x00,0x00,0x00, 0x41,0x00,0x05,0x00,0x42,0x00,0x00,0x00,0xfc,0x00,0x00,0x00, -0x40,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x40,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, 0x06,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,0xfc,0x00,0x00,0x00, 0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfe,0x00,0x00,0x00, -0xfb,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0xfa,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,0x41,0x00,0x05,0x00, 0x42,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x40,0x00,0x00,0x00, -0x50,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x01,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x02,0x01,0x00,0x00,0xef,0x00,0x00,0x00, -0x01,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x6d,0x00,0x00,0x00, -0x6e,0x00,0x00,0x00,0x6a,0x00,0x00,0x00,0x5c,0x00,0x00,0x00, -0x3e,0x00,0x03,0x00,0x6e,0x00,0x00,0x00,0x6c,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0x70,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0x70,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00, -0x13,0x01,0x00,0x00,0x56,0x00,0x00,0x00,0x05,0x00,0x00,0x00, -0xbe,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x41,0x00,0x05,0x00, -0x42,0x00,0x00,0x00,0x76,0x00,0x00,0x00,0x40,0x00,0x00,0x00, -0x1b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x77,0x00,0x00,0x00,0x76,0x00,0x00,0x00,0x86,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x77,0x00,0x00,0x00, -0x67,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0x79,0x00,0x00,0x00, -0x7a,0x00,0x00,0x00,0x13,0x01,0x00,0x00,0x78,0x00,0x00,0x00, -0xf6,0x00,0x04,0x00,0x72,0x00,0x00,0x00,0x71,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x7a,0x00,0x00,0x00, -0x71,0x00,0x00,0x00,0x72,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0x71,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x7d,0x00,0x00,0x00,0x13,0x01,0x00,0x00,0x67,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x80,0x00,0x00,0x00, -0x7e,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x81,0x00,0x00,0x00,0x7d,0x00,0x00,0x00, -0x80,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x86,0x00,0x00,0x00,0x58,0x00,0x00,0x00,0x77,0x00,0x00,0x00, +0x47,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x01,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x89,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x02,0x01,0x00,0x00,0xf6,0x00,0x00,0x00, +0x01,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x42,0x00,0x00,0x00, +0x03,0x01,0x00,0x00,0x40,0x00,0x00,0x00,0x4b,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x04,0x01,0x00,0x00, +0x03,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x05,0x01,0x00,0x00,0x02,0x01,0x00,0x00,0x04,0x01,0x00,0x00, +0x41,0x00,0x05,0x00,0x42,0x00,0x00,0x00,0x07,0x01,0x00,0x00, +0x40,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x07,0x01,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x09,0x01,0x00,0x00, +0xf6,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x41,0x00,0x05,0x00, +0x75,0x00,0x00,0x00,0x76,0x00,0x00,0x00,0x72,0x00,0x00,0x00, +0x64,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0x76,0x00,0x00,0x00, +0x74,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x78,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0x78,0x00,0x00,0x00,0xf5,0x00,0x07,0x00, +0x06,0x00,0x00,0x00,0x1a,0x01,0x00,0x00,0x56,0x00,0x00,0x00, +0x05,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0x79,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x42,0x00,0x00,0x00,0x7e,0x00,0x00,0x00, +0x40,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,0x7e,0x00,0x00,0x00, +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x80,0x00,0x00,0x00, +0x7f,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0xb0,0x00,0x05,0x00, +0x81,0x00,0x00,0x00,0x82,0x00,0x00,0x00,0x1a,0x01,0x00,0x00, +0x80,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x7a,0x00,0x00,0x00, +0x79,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, +0x82,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x7a,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0x79,0x00,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x85,0x00,0x00,0x00,0x1a,0x01,0x00,0x00, +0x6f,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x87,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,0x64,0x00,0x00,0x00, 0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x88,0x00,0x00,0x00, -0x86,0x00,0x00,0x00,0x81,0x00,0x00,0x00,0x86,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x89,0x00,0x00,0x00,0x88,0x00,0x00,0x00, -0x25,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x8c,0x00,0x00,0x00,0x81,0x00,0x00,0x00,0x25,0x00,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8d,0x00,0x00,0x00, -0x8c,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x82,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x92,0x00,0x00,0x00,0x81,0x00,0x00,0x00, -0x8c,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x96,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,0x25,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x07,0x01,0x00,0x00, -0x96,0x00,0x00,0x00,0x89,0x00,0x00,0x00,0x41,0x00,0x06,0x00, -0x1f,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x19,0x00,0x00,0x00, -0x1b,0x00,0x00,0x00,0x07,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0x08,0x00,0x00,0x00,0x09,0x01,0x00,0x00,0x08,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0d,0x01,0x00,0x00, -0x07,0x01,0x00,0x00,0x25,0x00,0x00,0x00,0x41,0x00,0x06,0x00, -0x1f,0x00,0x00,0x00,0x0e,0x01,0x00,0x00,0x19,0x00,0x00,0x00, -0x1b,0x00,0x00,0x00,0x0d,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0x08,0x00,0x00,0x00,0x0f,0x01,0x00,0x00,0x0e,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa7,0x00,0x00,0x00, -0xfe,0x00,0x00,0x00,0x92,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,0xa7,0x00,0x00,0x00, -0x8d,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x1f,0x00,0x00,0x00, -0xaa,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,0x1b,0x00,0x00,0x00, -0xa9,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, -0xab,0x00,0x00,0x00,0xaa,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,0xa9,0x00,0x00,0x00, -0x25,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x1f,0x00,0x00,0x00, -0xb5,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,0x1b,0x00,0x00,0x00, -0xb4,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, -0xb6,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,0x85,0x00,0x05,0x00, -0x08,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,0x0f,0x01,0x00,0x00, -0xb6,0x00,0x00,0x00,0x0c,0x00,0x08,0x00,0x08,0x00,0x00,0x00, -0xb8,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x09,0x01,0x00,0x00,0xab,0x00,0x00,0x00,0xb7,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xba,0x00,0x00,0x00, -0x6e,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00, -0xbb,0x00,0x00,0x00,0xba,0x00,0x00,0x00,0xb8,0x00,0x00,0x00, -0x3e,0x00,0x03,0x00,0x6e,0x00,0x00,0x00,0xbb,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbe,0x00,0x00,0x00, -0x13,0x01,0x00,0x00,0x7e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, -0x70,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x72,0x00,0x00,0x00, -0xe0,0x00,0x04,0x00,0x7e,0x00,0x00,0x00,0x7e,0x00,0x00,0x00, -0xbf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xc2,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0xc2,0x00,0x00,0x00,0xf5,0x00,0x07,0x00, -0x06,0x00,0x00,0x00,0x14,0x01,0x00,0x00,0xc1,0x00,0x00,0x00, -0x72,0x00,0x00,0x00,0xda,0x00,0x00,0x00,0xc5,0x00,0x00,0x00, -0xac,0x00,0x05,0x00,0x79,0x00,0x00,0x00,0xc8,0x00,0x00,0x00, -0x14,0x01,0x00,0x00,0x56,0x00,0x00,0x00,0xf6,0x00,0x04,0x00, -0xc4,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0xfa,0x00,0x04,0x00,0xc8,0x00,0x00,0x00,0xc3,0x00,0x00,0x00, -0xc4,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xc3,0x00,0x00,0x00, -0xb0,0x00,0x05,0x00,0x79,0x00,0x00,0x00,0xcb,0x00,0x00,0x00, -0x5c,0x00,0x00,0x00,0x14,0x01,0x00,0x00,0xf7,0x00,0x03,0x00, -0xcd,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, -0xcb,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,0xcd,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0xcc,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,0x5c,0x00,0x00,0x00, -0x14,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x6d,0x00,0x00,0x00, -0xd2,0x00,0x00,0x00,0x6a,0x00,0x00,0x00,0xd1,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xd3,0x00,0x00,0x00, -0xd2,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, -0xd5,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x81,0x00,0x05,0x00, -0x08,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,0xd5,0x00,0x00,0x00, -0xd3,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0x6e,0x00,0x00,0x00, -0xd6,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xcd,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0xcd,0x00,0x00,0x00,0xe0,0x00,0x04,0x00, -0x7e,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0xbf,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0xc5,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0xc5,0x00,0x00,0x00,0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xda,0x00,0x00,0x00,0x14,0x01,0x00,0x00,0xd8,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0xc2,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0xc4,0x00,0x00,0x00,0xaa,0x00,0x05,0x00,0x79,0x00,0x00,0x00, -0xdc,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,0x56,0x00,0x00,0x00, -0xf7,0x00,0x03,0x00,0xde,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0xfa,0x00,0x04,0x00,0xdc,0x00,0x00,0x00,0xdd,0x00,0x00,0x00, -0xde,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xdd,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe5,0x00,0x00,0x00, -0x02,0x01,0x00,0x00,0x58,0x00,0x00,0x00,0x41,0x00,0x05,0x00, -0x6d,0x00,0x00,0x00,0xe6,0x00,0x00,0x00,0x6a,0x00,0x00,0x00, -0x1b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, -0xe7,0x00,0x00,0x00,0xe6,0x00,0x00,0x00,0x41,0x00,0x06,0x00, -0x1f,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0xe2,0x00,0x00,0x00, -0x1b,0x00,0x00,0x00,0xe5,0x00,0x00,0x00,0x3e,0x00,0x03,0x00, -0xe8,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, -0xde,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xde,0x00,0x00,0x00, -0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00, +0x85,0x00,0x00,0x00,0x87,0x00,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,0x60,0x00,0x00,0x00, +0x7f,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x8f,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,0x88,0x00,0x00,0x00, +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x90,0x00,0x00,0x00, +0x8f,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x89,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x93,0x00,0x00,0x00,0x88,0x00,0x00,0x00, +0x25,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x94,0x00,0x00,0x00,0x93,0x00,0x00,0x00,0x25,0x00,0x00,0x00, +0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x99,0x00,0x00,0x00, +0x88,0x00,0x00,0x00,0x93,0x00,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0xfe,0x00,0x00,0x00, +0x25,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x0e,0x01,0x00,0x00,0x9d,0x00,0x00,0x00,0x90,0x00,0x00,0x00, +0x41,0x00,0x06,0x00,0x1f,0x00,0x00,0x00,0x0f,0x01,0x00,0x00, +0x19,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x0e,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x10,0x01,0x00,0x00, +0x0f,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x14,0x01,0x00,0x00,0x0e,0x01,0x00,0x00,0x25,0x00,0x00,0x00, +0x41,0x00,0x06,0x00,0x1f,0x00,0x00,0x00,0x15,0x01,0x00,0x00, +0x19,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x14,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x16,0x01,0x00,0x00, +0x15,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xae,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0x99,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb0,0x00,0x00,0x00, +0xae,0x00,0x00,0x00,0x94,0x00,0x00,0x00,0x41,0x00,0x06,0x00, +0x1f,0x00,0x00,0x00,0xb1,0x00,0x00,0x00,0xab,0x00,0x00,0x00, +0x1b,0x00,0x00,0x00,0xb0,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x08,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,0xb1,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbb,0x00,0x00,0x00, +0xb0,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x41,0x00,0x06,0x00, +0x1f,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,0xab,0x00,0x00,0x00, +0x1b,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x08,0x00,0x00,0x00,0xbd,0x00,0x00,0x00,0xbc,0x00,0x00,0x00, +0x85,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0xbe,0x00,0x00,0x00, +0x16,0x01,0x00,0x00,0xbd,0x00,0x00,0x00,0x0c,0x00,0x08,0x00, +0x08,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x10,0x01,0x00,0x00,0xb2,0x00,0x00,0x00, +0xbe,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0xc1,0x00,0x00,0x00,0x76,0x00,0x00,0x00,0x81,0x00,0x05,0x00, +0x08,0x00,0x00,0x00,0xc2,0x00,0x00,0x00,0xc1,0x00,0x00,0x00, +0xbf,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0x76,0x00,0x00,0x00, +0xc2,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xc5,0x00,0x00,0x00,0x1a,0x01,0x00,0x00,0x5c,0x00,0x00,0x00, +0xf9,0x00,0x02,0x00,0x78,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0x7a,0x00,0x00,0x00,0xe0,0x00,0x04,0x00,0x5c,0x00,0x00,0x00, +0x5c,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, +0xc9,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xc9,0x00,0x00,0x00, +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x1b,0x01,0x00,0x00, +0xc8,0x00,0x00,0x00,0x7a,0x00,0x00,0x00,0xe1,0x00,0x00,0x00, +0xcc,0x00,0x00,0x00,0xac,0x00,0x05,0x00,0x81,0x00,0x00,0x00, +0xcf,0x00,0x00,0x00,0x1b,0x01,0x00,0x00,0x56,0x00,0x00,0x00, +0xf6,0x00,0x04,0x00,0xcb,0x00,0x00,0x00,0xcc,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xcf,0x00,0x00,0x00, +0xca,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xca,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0x81,0x00,0x00,0x00, +0xd2,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0x1b,0x01,0x00,0x00, +0xf7,0x00,0x03,0x00,0xd4,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xfa,0x00,0x04,0x00,0xd2,0x00,0x00,0x00,0xd3,0x00,0x00,0x00, +0xd4,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xd3,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd8,0x00,0x00,0x00, +0x64,0x00,0x00,0x00,0x1b,0x01,0x00,0x00,0x41,0x00,0x05,0x00, +0x75,0x00,0x00,0x00,0xd9,0x00,0x00,0x00,0x72,0x00,0x00,0x00, +0xd8,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0xda,0x00,0x00,0x00,0xd9,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x08,0x00,0x00,0x00,0xdc,0x00,0x00,0x00,0x76,0x00,0x00,0x00, +0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0xdd,0x00,0x00,0x00, +0xdc,0x00,0x00,0x00,0xda,0x00,0x00,0x00,0x3e,0x00,0x03,0x00, +0x76,0x00,0x00,0x00,0xdd,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, +0xd4,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xd4,0x00,0x00,0x00, +0xe0,0x00,0x04,0x00,0x5c,0x00,0x00,0x00,0x5c,0x00,0x00,0x00, +0xc6,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xcc,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0xcc,0x00,0x00,0x00,0xc2,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xe1,0x00,0x00,0x00,0x1b,0x01,0x00,0x00, +0xdf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xc9,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0xcb,0x00,0x00,0x00,0xaa,0x00,0x05,0x00, +0x81,0x00,0x00,0x00,0xe3,0x00,0x00,0x00,0x64,0x00,0x00,0x00, +0x56,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0xe5,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xe3,0x00,0x00,0x00, +0xe4,0x00,0x00,0x00,0xe5,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xe4,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xec,0x00,0x00,0x00,0x09,0x01,0x00,0x00,0x60,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x75,0x00,0x00,0x00,0xed,0x00,0x00,0x00, +0x72,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x08,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0xed,0x00,0x00,0x00, +0x41,0x00,0x06,0x00,0x1f,0x00,0x00,0x00,0xef,0x00,0x00,0x00, +0xe9,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0xec,0x00,0x00,0x00, +0x3e,0x00,0x03,0x00,0xef,0x00,0x00,0x00,0xee,0x00,0x00,0x00, +0xf9,0x00,0x02,0x00,0xe5,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xe5,0x00,0x00,0x00,0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00, + }; -const uint64_t mul_mat_vec_id_f32_f32_len = 3392; +const uint64_t mul_mat_vec_id_f32_f32_len = 3540; unsigned char mul_mat_vec_id_q2_k_f32_data[] = { 0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00, -0x14,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, +0x1b,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, 0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x27,0x00,0x00,0x00, 0x11,0x00,0x02,0x00,0x51,0x11,0x00,0x00,0x11,0x00,0x02,0x00, 0x60,0x11,0x00,0x00,0x0b,0x00,0x06,0x00,0x01,0x00,0x00,0x00, 0x47,0x4c,0x53,0x4c,0x2e,0x73,0x74,0x64,0x2e,0x34,0x35,0x30, 0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00,0x00,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x0f,0x00,0x0e,0x00,0x05,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x0f,0x00,0x0f,0x00,0x05,0x00,0x00,0x00, 0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e,0x00,0x00,0x00,0x00, 0x11,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x25,0x00,0x00,0x00, -0x3a,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x7c,0x00,0x00,0x00, -0xa1,0x00,0x00,0x00,0xbe,0x00,0x00,0x00,0xeb,0x02,0x00,0x00, -0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00, -0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x11,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x18,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00, -0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, -0x19,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x21,0x00,0x00,0x00, -0x03,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x23,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x23,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x23,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x23,0x00,0x00,0x00, -0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x23,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x23,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x23,0x00,0x00,0x00,0x07,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x20,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x23,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x3a,0x00,0x00,0x00, -0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x55,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x98,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x9a,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x9d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x9d,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x9d,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x9e,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x54,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0x9f,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x9f,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0x9f,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xa1,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xa1,0x00,0x00,0x00, -0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xbb,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0xbc,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xbc,0x00,0x00,0x00, +0x3a,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,0x5d,0x00,0x00,0x00, +0x83,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,0xc5,0x00,0x00,0x00, +0xf2,0x02,0x00,0x00,0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00, +0x11,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x11,0x00,0x00,0x00, +0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x18,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x48,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x19,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0xbc,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xbe,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xbe,0x00,0x00,0x00, -0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xe8,0x02,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0xe9,0x02,0x00,0x00,0x00,0x00,0x00,0x00, -0x19,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xe9,0x02,0x00,0x00, +0x47,0x00,0x03,0x00,0x19,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x22,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x21,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x23,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x23,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x23,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x23,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x23,0x00,0x00,0x00,0x05,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x23,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x23,0x00,0x00,0x00, +0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0x23,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x3a,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x3e,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x5d,0x00,0x00,0x00, +0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x9f,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xa1,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xa4,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0xe9,0x02,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xeb,0x02,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xeb,0x02,0x00,0x00, -0x21,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xf2,0x02,0x00,0x00,0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00, -0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00, -0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x17,0x00,0x04,0x00,0x0f,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x10,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x10,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x12,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x13,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x15,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x1d,0x00,0x03,0x00,0x18,0x00,0x00,0x00,0x17,0x00,0x00,0x00, -0x1e,0x00,0x03,0x00,0x19,0x00,0x00,0x00,0x18,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x1a,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x19,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x1a,0x00,0x00,0x00, -0x1b,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x1e,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x17,0x00,0x00,0x00,0x1e,0x00,0x0b,0x00,0x23,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0xa4,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0xa4,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x50,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xa5,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x48,0x00,0x04,0x00, +0xa6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0xa6,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0xa6,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xa8,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xa8,0x00,0x00,0x00,0x21,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xc2,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00, +0xc3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0xc3,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0xc3,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xc5,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xc5,0x00,0x00,0x00,0x21,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xef,0x02,0x00,0x00, +0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00, +0xf0,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0xf0,0x02,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0xf0,0x02,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xf2,0x02,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xf2,0x02,0x00,0x00,0x21,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xf9,0x02,0x00,0x00, +0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x13,0x00,0x02,0x00, +0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x17,0x00,0x04,0x00, +0x0f,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x10,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x0f,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00, +0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x13,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, +0x18,0x00,0x00,0x00,0x17,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, +0x19,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x1a,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x19,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x1a,0x00,0x00,0x00,0x1b,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x1e,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x17,0x00,0x00,0x00, +0x1e,0x00,0x0b,0x00,0x23,0x00,0x00,0x00,0x06,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x24,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x24,0x00,0x00,0x00, -0x25,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x26,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x27,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0x2c,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x35,0x00,0x00,0x00, -0x03,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00, -0x3a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4b,0x00,0x00,0x00, -0x00,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00, -0x55,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x58,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x60,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x24,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x24,0x00,0x00,0x00,0x25,0x00,0x00,0x00, +0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0x26,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x27,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x2c,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0x30,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x03,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00,0x3a,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x3b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0x10,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x41,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x53,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x3b,0x00,0x04,0x00, +0x10,0x00,0x00,0x00,0x5d,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x67,0x00,0x00,0x00, 0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x6b,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x74,0x00,0x00,0x00,0x80,0x00,0x00,0x00, -0x16,0x00,0x03,0x00,0x79,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x1c,0x00,0x04,0x00,0x7a,0x00,0x00,0x00,0x79,0x00,0x00,0x00, -0x6b,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x7b,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x7a,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x7b,0x00,0x00,0x00,0x7c,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x7d,0x00,0x00,0x00, -0x10,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x79,0x00,0x00,0x00, -0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x83,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x79,0x00,0x00,0x00, -0x14,0x00,0x02,0x00,0x8e,0x00,0x00,0x00,0x15,0x00,0x04,0x00, -0x97,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x1c,0x00,0x04,0x00,0x98,0x00,0x00,0x00,0x97,0x00,0x00,0x00, -0x7d,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x99,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, -0x9a,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x99,0x00,0x00,0x00, -0x16,0x00,0x03,0x00,0x9b,0x00,0x00,0x00,0x10,0x00,0x00,0x00, -0x17,0x00,0x04,0x00,0x9c,0x00,0x00,0x00,0x9b,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x1e,0x00,0x05,0x00,0x9d,0x00,0x00,0x00, -0x98,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,0x9c,0x00,0x00,0x00, -0x1d,0x00,0x03,0x00,0x9e,0x00,0x00,0x00,0x9d,0x00,0x00,0x00, -0x1e,0x00,0x03,0x00,0x9f,0x00,0x00,0x00,0x9e,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0xa0,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x9f,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xa0,0x00,0x00,0x00, -0xa1,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0xa5,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x9b,0x00,0x00,0x00, -0x1d,0x00,0x03,0x00,0xbb,0x00,0x00,0x00,0x79,0x00,0x00,0x00, -0x1e,0x00,0x03,0x00,0xbc,0x00,0x00,0x00,0xbb,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0xbd,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0xbc,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xbd,0x00,0x00,0x00, -0xbe,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0xc6,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x79,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0xce,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x97,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0xd3,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0xda,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x3a,0x01,0x00,0x00, +0x72,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,0x80,0x00,0x00,0x00, +0x16,0x00,0x03,0x00,0x80,0x00,0x00,0x00,0x20,0x00,0x00,0x00, +0x1c,0x00,0x04,0x00,0x81,0x00,0x00,0x00,0x80,0x00,0x00,0x00, +0x72,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x82,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x81,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0x82,0x00,0x00,0x00,0x83,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x84,0x00,0x00,0x00, +0x10,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x80,0x00,0x00,0x00, +0x89,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x8a,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x80,0x00,0x00,0x00, +0x14,0x00,0x02,0x00,0x95,0x00,0x00,0x00,0x15,0x00,0x04,0x00, +0x9e,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x1c,0x00,0x04,0x00,0x9f,0x00,0x00,0x00,0x9e,0x00,0x00,0x00, +0x84,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xa0,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, +0xa1,0x00,0x00,0x00,0x9e,0x00,0x00,0x00,0xa0,0x00,0x00,0x00, +0x16,0x00,0x03,0x00,0xa2,0x00,0x00,0x00,0x10,0x00,0x00,0x00, +0x17,0x00,0x04,0x00,0xa3,0x00,0x00,0x00,0xa2,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x1e,0x00,0x05,0x00,0xa4,0x00,0x00,0x00, +0x9f,0x00,0x00,0x00,0xa1,0x00,0x00,0x00,0xa3,0x00,0x00,0x00, +0x1d,0x00,0x03,0x00,0xa5,0x00,0x00,0x00,0xa4,0x00,0x00,0x00, +0x1e,0x00,0x03,0x00,0xa6,0x00,0x00,0x00,0xa5,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0xa7,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0xa6,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xa7,0x00,0x00,0x00, +0xa8,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0xac,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xa2,0x00,0x00,0x00, +0x1d,0x00,0x03,0x00,0xc2,0x00,0x00,0x00,0x80,0x00,0x00,0x00, +0x1e,0x00,0x03,0x00,0xc3,0x00,0x00,0x00,0xc2,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0xc3,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xc4,0x00,0x00,0x00, +0xc5,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0xcd,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x80,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0xd5,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x9e,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0xda,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0xe1,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x41,0x01,0x00,0x00, 0x30,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x42,0x01,0x00,0x00,0x03,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x69,0x01,0x00,0x00,0x04,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x89,0x01,0x00,0x00, +0x49,0x01,0x00,0x00,0x03,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x70,0x01,0x00,0x00,0x04,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x90,0x01,0x00,0x00, 0x50,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x91,0x01,0x00,0x00,0x05,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xb1,0x01,0x00,0x00,0x60,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xb9,0x01,0x00,0x00, +0x98,0x01,0x00,0x00,0x05,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xb8,0x01,0x00,0x00,0x60,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xc0,0x01,0x00,0x00, 0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0xcc,0x01,0x00,0x00,0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xda,0x01,0x00,0x00,0x70,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xe2,0x01,0x00,0x00, +0xd3,0x01,0x00,0x00,0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xe1,0x01,0x00,0x00,0x70,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xe9,0x01,0x00,0x00, 0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xca,0x02,0x00,0x00,0x08,0x01,0x00,0x00,0x1d,0x00,0x03,0x00, -0xe8,0x02,0x00,0x00,0x79,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, -0xe9,0x02,0x00,0x00,0xe8,0x02,0x00,0x00,0x20,0x00,0x04,0x00, -0xea,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,0xe9,0x02,0x00,0x00, -0x3b,0x00,0x04,0x00,0xea,0x02,0x00,0x00,0xeb,0x02,0x00,0x00, +0xd1,0x02,0x00,0x00,0x08,0x01,0x00,0x00,0x1d,0x00,0x03,0x00, +0xef,0x02,0x00,0x00,0x80,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, +0xf0,0x02,0x00,0x00,0xef,0x02,0x00,0x00,0x20,0x00,0x04,0x00, +0xf1,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,0xf0,0x02,0x00,0x00, +0x3b,0x00,0x04,0x00,0xf1,0x02,0x00,0x00,0xf2,0x02,0x00,0x00, 0x0c,0x00,0x00,0x00,0x2c,0x00,0x06,0x00,0x0f,0x00,0x00,0x00, -0xf2,0x02,0x00,0x00,0x6b,0x00,0x00,0x00,0x12,0x00,0x00,0x00, +0xf9,0x02,0x00,0x00,0x72,0x00,0x00,0x00,0x12,0x00,0x00,0x00, 0x12,0x00,0x00,0x00,0x36,0x00,0x05,0x00,0x02,0x00,0x00,0x00, 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00, 0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00,0x41,0x00,0x05,0x00, 0x13,0x00,0x00,0x00,0x3c,0x00,0x00,0x00,0x3a,0x00,0x00,0x00, 0x3b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, 0x3d,0x00,0x00,0x00,0x3c,0x00,0x00,0x00,0x41,0x00,0x05,0x00, -0x13,0x00,0x00,0x00,0xf6,0x02,0x00,0x00,0x11,0x00,0x00,0x00, -0x12,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xf7,0x02,0x00,0x00,0xf6,0x02,0x00,0x00,0x41,0x00,0x06,0x00, -0x1e,0x00,0x00,0x00,0xf9,0x02,0x00,0x00,0x1b,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0xf7,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0xfa,0x02,0x00,0x00,0xf9,0x02,0x00,0x00, -0x7c,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xfb,0x02,0x00,0x00, -0xfa,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x27,0x00,0x00,0x00, -0xfd,0x02,0x00,0x00,0x25,0x00,0x00,0x00,0x26,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xfe,0x02,0x00,0x00, -0xfd,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xff,0x02,0x00,0x00,0xfb,0x02,0x00,0x00,0xfe,0x02,0x00,0x00, -0x41,0x00,0x05,0x00,0x27,0x00,0x00,0x00,0x01,0x03,0x00,0x00, -0x25,0x00,0x00,0x00,0x2c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x02,0x03,0x00,0x00,0x01,0x03,0x00,0x00, -0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x03,0x03,0x00,0x00, -0xf7,0x02,0x00,0x00,0x02,0x03,0x00,0x00,0x41,0x00,0x05,0x00, +0x13,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,0x3e,0x00,0x00,0x00, +0x3b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x40,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0x13,0x00,0x00,0x00,0x42,0x00,0x00,0x00,0x3a,0x00,0x00,0x00, +0x41,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x43,0x00,0x00,0x00,0x42,0x00,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x40,0x00,0x00,0x00, +0x43,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x45,0x00,0x00,0x00,0x3d,0x00,0x00,0x00,0x44,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00,0xfd,0x02,0x00,0x00, +0x11,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xfe,0x02,0x00,0x00,0xfd,0x02,0x00,0x00, +0x41,0x00,0x06,0x00,0x1e,0x00,0x00,0x00,0x00,0x03,0x00,0x00, +0x1b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xfe,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x01,0x03,0x00,0x00, +0x00,0x03,0x00,0x00,0x7c,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x02,0x03,0x00,0x00,0x01,0x03,0x00,0x00,0x41,0x00,0x05,0x00, 0x27,0x00,0x00,0x00,0x04,0x03,0x00,0x00,0x25,0x00,0x00,0x00, -0x30,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x26,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, 0x05,0x03,0x00,0x00,0x04,0x03,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x06,0x03,0x00,0x00,0x03,0x03,0x00,0x00, +0x06,0x00,0x00,0x00,0x06,0x03,0x00,0x00,0x02,0x03,0x00,0x00, 0x05,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x27,0x00,0x00,0x00, -0x08,0x03,0x00,0x00,0x25,0x00,0x00,0x00,0x35,0x00,0x00,0x00, +0x08,0x03,0x00,0x00,0x25,0x00,0x00,0x00,0x2c,0x00,0x00,0x00, 0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x09,0x03,0x00,0x00, -0x08,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x0a,0x03,0x00,0x00,0xf7,0x02,0x00,0x00,0x09,0x03,0x00,0x00, -0x41,0x00,0x05,0x00,0x27,0x00,0x00,0x00,0x49,0x00,0x00,0x00, -0x25,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x4a,0x00,0x00,0x00,0x49,0x00,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4c,0x00,0x00,0x00, -0x4a,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0x86,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0xff,0x02,0x00,0x00, -0x4b,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x52,0x00,0x00,0x00,0x3d,0x00,0x00,0x00,0x4c,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x53,0x00,0x00,0x00, -0x4f,0x00,0x00,0x00,0x52,0x00,0x00,0x00,0x41,0x00,0x05,0x00, -0x13,0x00,0x00,0x00,0x56,0x00,0x00,0x00,0x55,0x00,0x00,0x00, -0x3b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x57,0x00,0x00,0x00,0x56,0x00,0x00,0x00,0x86,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x57,0x00,0x00,0x00, -0x58,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x5d,0x00,0x00,0x00,0x57,0x00,0x00,0x00,0x58,0x00,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x61,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x65,0x00,0x00,0x00,0x60,0x00,0x00,0x00, -0x61,0x00,0x00,0x00,0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x66,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x65,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x69,0x00,0x00,0x00, -0x58,0x00,0x00,0x00,0x66,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x6b,0x00,0x00,0x00, -0x61,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x6f,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x69,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x76,0x00,0x00,0x00, -0x74,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x76,0x00,0x00,0x00, -0x69,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x7f,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,0x5d,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x81,0x00,0x00,0x00, -0x7f,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x41,0x00,0x05,0x00, -0x83,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x7c,0x00,0x00,0x00, -0x81,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0x84,0x00,0x00,0x00, -0x82,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x87,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0x87,0x00,0x00,0x00,0xf5,0x00,0x07,0x00, -0x06,0x00,0x00,0x00,0x0b,0x03,0x00,0x00,0x5d,0x00,0x00,0x00, -0x05,0x00,0x00,0x00,0xc9,0x02,0x00,0x00,0x8a,0x00,0x00,0x00, -0xb0,0x00,0x05,0x00,0x8e,0x00,0x00,0x00,0x8f,0x00,0x00,0x00, -0x0b,0x03,0x00,0x00,0x4c,0x00,0x00,0x00,0xf6,0x00,0x04,0x00, -0x89,0x00,0x00,0x00,0x8a,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0xfa,0x00,0x04,0x00,0x8f,0x00,0x00,0x00,0x88,0x00,0x00,0x00, -0x89,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x88,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x92,0x00,0x00,0x00, -0x0b,0x03,0x00,0x00,0x4b,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x94,0x00,0x00,0x00,0x92,0x00,0x00,0x00, -0x78,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xa4,0x00,0x00,0x00,0x53,0x00,0x00,0x00,0x0b,0x03,0x00,0x00, -0x41,0x00,0x08,0x00,0xa5,0x00,0x00,0x00,0xa6,0x00,0x00,0x00, -0xa1,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xa4,0x00,0x00,0x00, -0x30,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x9b,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,0xa6,0x00,0x00,0x00, -0x73,0x00,0x04,0x00,0x79,0x00,0x00,0x00,0xa8,0x00,0x00,0x00, -0xa7,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xa5,0x00,0x00,0x00, -0xad,0x00,0x00,0x00,0xa1,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0xa4,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x12,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x9b,0x00,0x00,0x00,0xae,0x00,0x00,0x00, -0xad,0x00,0x00,0x00,0x73,0x00,0x04,0x00,0x79,0x00,0x00,0x00, -0xaf,0x00,0x00,0x00,0xae,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, -0xb4,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xb4,0x00,0x00,0x00, -0xf5,0x00,0x07,0x00,0x79,0x00,0x00,0x00,0x10,0x03,0x00,0x00, -0x82,0x00,0x00,0x00,0x88,0x00,0x00,0x00,0xb6,0x02,0x00,0x00, -0xb5,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x79,0x00,0x00,0x00, -0x0f,0x03,0x00,0x00,0x82,0x00,0x00,0x00,0x88,0x00,0x00,0x00, -0xfd,0x01,0x00,0x00,0xb5,0x00,0x00,0x00,0xf5,0x00,0x07,0x00, -0x17,0x00,0x00,0x00,0x0e,0x03,0x00,0x00,0x1c,0x00,0x00,0x00, -0x88,0x00,0x00,0x00,0xb8,0x02,0x00,0x00,0xb5,0x00,0x00,0x00, -0xb1,0x00,0x05,0x00,0x8e,0x00,0x00,0x00,0xba,0x00,0x00,0x00, -0x0e,0x03,0x00,0x00,0x30,0x00,0x00,0x00,0xf6,0x00,0x04,0x00, -0xb6,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0xfa,0x00,0x04,0x00,0xba,0x00,0x00,0x00,0xb5,0x00,0x00,0x00, -0xb6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xb5,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc1,0x00,0x00,0x00, -0x06,0x03,0x00,0x00,0x94,0x00,0x00,0x00,0x7c,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xc3,0x00,0x00,0x00,0x0e,0x03,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc4,0x00,0x00,0x00, -0xc1,0x00,0x00,0x00,0xc3,0x00,0x00,0x00,0x41,0x00,0x06,0x00, -0xc6,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,0xbe,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x79,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0xc7,0x00,0x00,0x00, -0x41,0x00,0x08,0x00,0xce,0x00,0x00,0x00,0xcf,0x00,0x00,0x00, -0xa1,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xa4,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0x65,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x97,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0xcf,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xd1,0x00,0x00,0x00, -0xd0,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0xd2,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,0xc7,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0xd4,0x00,0x00,0x00,0xd2,0x00,0x00,0x00, -0xd3,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x79,0x00,0x00,0x00, -0xd5,0x00,0x00,0x00,0xd4,0x00,0x00,0x00,0x85,0x00,0x05,0x00, -0x79,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,0xc8,0x00,0x00,0x00, -0xd5,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xde,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0xc3,0x00,0x00,0x00, -0x41,0x00,0x08,0x00,0xce,0x00,0x00,0x00,0xe0,0x00,0x00,0x00, -0xa1,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xa4,0x00,0x00,0x00, -0xda,0x00,0x00,0x00,0xde,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x97,0x00,0x00,0x00,0xe1,0x00,0x00,0x00,0xe0,0x00,0x00,0x00, -0xc2,0x00,0x05,0x00,0x97,0x00,0x00,0x00,0xe2,0x00,0x00,0x00, -0xe1,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xe3,0x00,0x00,0x00,0xe2,0x00,0x00,0x00, -0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0xe4,0x00,0x00,0x00, -0xe3,0x00,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0xe5,0x00,0x00,0x00,0xe4,0x00,0x00,0x00,0x35,0x00,0x00,0x00, -0x6f,0x00,0x04,0x00,0x79,0x00,0x00,0x00,0xe6,0x00,0x00,0x00, -0xe5,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xee,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,0x7d,0x00,0x00,0x00, -0x41,0x00,0x06,0x00,0xc6,0x00,0x00,0x00,0xef,0x00,0x00,0x00, -0xbe,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xee,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x79,0x00,0x00,0x00,0xf0,0x00,0x00,0x00, -0xef,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xf5,0x00,0x00,0x00,0x65,0x00,0x00,0x00,0x12,0x00,0x00,0x00, -0x41,0x00,0x08,0x00,0xce,0x00,0x00,0x00,0xf6,0x00,0x00,0x00, -0xa1,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xa4,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x97,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,0xf6,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xf8,0x00,0x00,0x00, -0xf7,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0xf9,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0xc7,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,0xf9,0x00,0x00,0x00, -0xd3,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x79,0x00,0x00,0x00, -0xfb,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,0x85,0x00,0x05,0x00, -0x79,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0xf0,0x00,0x00,0x00, -0xfb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x04,0x01,0x00,0x00,0xde,0x00,0x00,0x00,0x7d,0x00,0x00,0x00, -0x41,0x00,0x08,0x00,0xce,0x00,0x00,0x00,0x05,0x01,0x00,0x00, -0xa1,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xa4,0x00,0x00,0x00, -0xda,0x00,0x00,0x00,0x04,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0x97,0x00,0x00,0x00,0x06,0x01,0x00,0x00,0x05,0x01,0x00,0x00, -0xc2,0x00,0x05,0x00,0x97,0x00,0x00,0x00,0x07,0x01,0x00,0x00, -0x06,0x01,0x00,0x00,0x1c,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x07,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x09,0x01,0x00,0x00, -0x08,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0x0a,0x01,0x00,0x00,0x09,0x01,0x00,0x00,0x35,0x00,0x00,0x00, -0x6f,0x00,0x04,0x00,0x79,0x00,0x00,0x00,0x0b,0x01,0x00,0x00, -0x0a,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x79,0x00,0x00,0x00, -0x0c,0x01,0x00,0x00,0xfc,0x00,0x00,0x00,0x0b,0x01,0x00,0x00, -0x0c,0x00,0x08,0x00,0x79,0x00,0x00,0x00,0x0d,0x01,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xd6,0x00,0x00,0x00, -0xe6,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x14,0x01,0x00,0x00,0xc4,0x00,0x00,0x00, -0x6b,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xc6,0x00,0x00,0x00, -0x15,0x01,0x00,0x00,0xbe,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x14,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x79,0x00,0x00,0x00, -0x16,0x01,0x00,0x00,0x15,0x01,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x1b,0x01,0x00,0x00,0x65,0x00,0x00,0x00, -0x58,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xce,0x00,0x00,0x00, -0x1c,0x01,0x00,0x00,0xa1,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0xa4,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x1b,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x1d,0x01,0x00,0x00, -0x1c,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x1e,0x01,0x00,0x00,0x1d,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x1f,0x01,0x00,0x00,0x1e,0x01,0x00,0x00, -0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x20,0x01,0x00,0x00, -0x1f,0x01,0x00,0x00,0xd3,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, -0x79,0x00,0x00,0x00,0x21,0x01,0x00,0x00,0x20,0x01,0x00,0x00, -0x85,0x00,0x05,0x00,0x79,0x00,0x00,0x00,0x22,0x01,0x00,0x00, -0x16,0x01,0x00,0x00,0x21,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0x97,0x00,0x00,0x00,0x2c,0x01,0x00,0x00,0xe0,0x00,0x00,0x00, -0xc2,0x00,0x05,0x00,0x97,0x00,0x00,0x00,0x2d,0x01,0x00,0x00, -0x2c,0x01,0x00,0x00,0x30,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x2e,0x01,0x00,0x00,0x2d,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x2f,0x01,0x00,0x00, -0x2e,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0x30,0x01,0x00,0x00,0x2f,0x01,0x00,0x00,0x35,0x00,0x00,0x00, -0x6f,0x00,0x04,0x00,0x79,0x00,0x00,0x00,0x31,0x01,0x00,0x00, -0x30,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0x79,0x00,0x00,0x00, -0x33,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x22,0x01,0x00,0x00,0x31,0x01,0x00,0x00,0x0d,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3b,0x01,0x00,0x00, -0xc4,0x00,0x00,0x00,0x3a,0x01,0x00,0x00,0x41,0x00,0x06,0x00, -0xc6,0x00,0x00,0x00,0x3c,0x01,0x00,0x00,0xbe,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0x3b,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0x79,0x00,0x00,0x00,0x3d,0x01,0x00,0x00,0x3c,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x43,0x01,0x00,0x00, -0x65,0x00,0x00,0x00,0x42,0x01,0x00,0x00,0x41,0x00,0x08,0x00, -0xce,0x00,0x00,0x00,0x44,0x01,0x00,0x00,0xa1,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x43,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00, -0x45,0x01,0x00,0x00,0x44,0x01,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x46,0x01,0x00,0x00,0x45,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x47,0x01,0x00,0x00, -0x46,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0x48,0x01,0x00,0x00,0x47,0x01,0x00,0x00,0xd3,0x00,0x00,0x00, -0x6f,0x00,0x04,0x00,0x79,0x00,0x00,0x00,0x49,0x01,0x00,0x00, -0x48,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x79,0x00,0x00,0x00, -0x4a,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,0x49,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x54,0x01,0x00,0x00, -0x05,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x97,0x00,0x00,0x00, -0x55,0x01,0x00,0x00,0x54,0x01,0x00,0x00,0x30,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x56,0x01,0x00,0x00, -0x55,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0x57,0x01,0x00,0x00,0x56,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0x58,0x01,0x00,0x00,0x57,0x01,0x00,0x00, -0x35,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x79,0x00,0x00,0x00, -0x59,0x01,0x00,0x00,0x58,0x01,0x00,0x00,0x0c,0x00,0x08,0x00, -0x79,0x00,0x00,0x00,0x5b,0x01,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0x4a,0x01,0x00,0x00,0x59,0x01,0x00,0x00, -0x33,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x62,0x01,0x00,0x00,0xc4,0x00,0x00,0x00,0x99,0x00,0x00,0x00, -0x41,0x00,0x06,0x00,0xc6,0x00,0x00,0x00,0x63,0x01,0x00,0x00, -0xbe,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x62,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0x79,0x00,0x00,0x00,0x64,0x01,0x00,0x00, -0x63,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x6a,0x01,0x00,0x00,0x65,0x00,0x00,0x00,0x69,0x01,0x00,0x00, -0x41,0x00,0x08,0x00,0xce,0x00,0x00,0x00,0x6b,0x01,0x00,0x00, -0xa1,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xa4,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0x6a,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0x97,0x00,0x00,0x00,0x6c,0x01,0x00,0x00,0x6b,0x01,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x6d,0x01,0x00,0x00, -0x6c,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0x6e,0x01,0x00,0x00,0x6d,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0x6f,0x01,0x00,0x00,0x6e,0x01,0x00,0x00, -0xd3,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x79,0x00,0x00,0x00, -0x70,0x01,0x00,0x00,0x6f,0x01,0x00,0x00,0x85,0x00,0x05,0x00, -0x79,0x00,0x00,0x00,0x71,0x01,0x00,0x00,0x64,0x01,0x00,0x00, -0x70,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00, -0x7b,0x01,0x00,0x00,0xe0,0x00,0x00,0x00,0xc2,0x00,0x05,0x00, -0x97,0x00,0x00,0x00,0x7c,0x01,0x00,0x00,0x7b,0x01,0x00,0x00, -0x26,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x7d,0x01,0x00,0x00,0x7c,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x7e,0x01,0x00,0x00,0x7d,0x01,0x00,0x00, -0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x7f,0x01,0x00,0x00, -0x7e,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, -0x79,0x00,0x00,0x00,0x80,0x01,0x00,0x00,0x7f,0x01,0x00,0x00, -0x0c,0x00,0x08,0x00,0x79,0x00,0x00,0x00,0x82,0x01,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x71,0x01,0x00,0x00, -0x80,0x01,0x00,0x00,0x5b,0x01,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x8a,0x01,0x00,0x00,0xc4,0x00,0x00,0x00, -0x89,0x01,0x00,0x00,0x41,0x00,0x06,0x00,0xc6,0x00,0x00,0x00, -0x8b,0x01,0x00,0x00,0xbe,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x8a,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x79,0x00,0x00,0x00, -0x8c,0x01,0x00,0x00,0x8b,0x01,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x92,0x01,0x00,0x00,0x65,0x00,0x00,0x00, -0x91,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0xce,0x00,0x00,0x00, -0x93,0x01,0x00,0x00,0xa1,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0xa4,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x92,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x94,0x01,0x00,0x00, -0x93,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x95,0x01,0x00,0x00,0x94,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x96,0x01,0x00,0x00,0x95,0x01,0x00,0x00, -0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x97,0x01,0x00,0x00, -0x96,0x01,0x00,0x00,0xd3,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, -0x79,0x00,0x00,0x00,0x98,0x01,0x00,0x00,0x97,0x01,0x00,0x00, -0x85,0x00,0x05,0x00,0x79,0x00,0x00,0x00,0x99,0x01,0x00,0x00, -0x8c,0x01,0x00,0x00,0x98,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0x97,0x00,0x00,0x00,0xa3,0x01,0x00,0x00,0x05,0x01,0x00,0x00, -0xc2,0x00,0x05,0x00,0x97,0x00,0x00,0x00,0xa4,0x01,0x00,0x00, -0xa3,0x01,0x00,0x00,0x26,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xa5,0x01,0x00,0x00,0xa4,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0xa6,0x01,0x00,0x00, -0xa5,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0xa7,0x01,0x00,0x00,0xa6,0x01,0x00,0x00,0x35,0x00,0x00,0x00, -0x6f,0x00,0x04,0x00,0x79,0x00,0x00,0x00,0xa8,0x01,0x00,0x00, -0xa7,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0x79,0x00,0x00,0x00, -0xaa,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x99,0x01,0x00,0x00,0xa8,0x01,0x00,0x00,0x82,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb2,0x01,0x00,0x00, -0xc4,0x00,0x00,0x00,0xb1,0x01,0x00,0x00,0x41,0x00,0x06,0x00, -0xc6,0x00,0x00,0x00,0xb3,0x01,0x00,0x00,0xbe,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0xb2,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0x79,0x00,0x00,0x00,0xb4,0x01,0x00,0x00,0xb3,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xba,0x01,0x00,0x00, -0x65,0x00,0x00,0x00,0xb9,0x01,0x00,0x00,0x41,0x00,0x08,0x00, -0xce,0x00,0x00,0x00,0xbb,0x01,0x00,0x00,0xa1,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0xba,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00, -0xbc,0x01,0x00,0x00,0xbb,0x01,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xbd,0x01,0x00,0x00,0xbc,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0xbe,0x01,0x00,0x00, -0xbd,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0xbf,0x01,0x00,0x00,0xbe,0x01,0x00,0x00,0xd3,0x00,0x00,0x00, -0x6f,0x00,0x04,0x00,0x79,0x00,0x00,0x00,0xc0,0x01,0x00,0x00, -0xbf,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x79,0x00,0x00,0x00, -0xc1,0x01,0x00,0x00,0xb4,0x01,0x00,0x00,0xc0,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0xcb,0x01,0x00,0x00, -0xe0,0x00,0x00,0x00,0xc2,0x00,0x05,0x00,0x97,0x00,0x00,0x00, -0xcd,0x01,0x00,0x00,0xcb,0x01,0x00,0x00,0xcc,0x01,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xce,0x01,0x00,0x00, -0xcd,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0xcf,0x01,0x00,0x00,0xce,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0xd0,0x01,0x00,0x00,0xcf,0x01,0x00,0x00, -0x35,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x79,0x00,0x00,0x00, -0xd1,0x01,0x00,0x00,0xd0,0x01,0x00,0x00,0x0c,0x00,0x08,0x00, -0x79,0x00,0x00,0x00,0xd3,0x01,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0xc1,0x01,0x00,0x00,0xd1,0x01,0x00,0x00, -0xaa,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xdb,0x01,0x00,0x00,0xc4,0x00,0x00,0x00,0xda,0x01,0x00,0x00, -0x41,0x00,0x06,0x00,0xc6,0x00,0x00,0x00,0xdc,0x01,0x00,0x00, -0xbe,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xdb,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0x79,0x00,0x00,0x00,0xdd,0x01,0x00,0x00, -0xdc,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xe3,0x01,0x00,0x00,0x65,0x00,0x00,0x00,0xe2,0x01,0x00,0x00, -0x41,0x00,0x08,0x00,0xce,0x00,0x00,0x00,0xe4,0x01,0x00,0x00, -0xa1,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xa4,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0xe3,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0x97,0x00,0x00,0x00,0xe5,0x01,0x00,0x00,0xe4,0x01,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xe6,0x01,0x00,0x00, -0xe5,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0xe7,0x01,0x00,0x00,0xe6,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0xe8,0x01,0x00,0x00,0xe7,0x01,0x00,0x00, -0xd3,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x79,0x00,0x00,0x00, -0xe9,0x01,0x00,0x00,0xe8,0x01,0x00,0x00,0x85,0x00,0x05,0x00, -0x79,0x00,0x00,0x00,0xea,0x01,0x00,0x00,0xdd,0x01,0x00,0x00, -0xe9,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00, -0xf4,0x01,0x00,0x00,0x05,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, -0x97,0x00,0x00,0x00,0xf5,0x01,0x00,0x00,0xf4,0x01,0x00,0x00, -0xcc,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xf6,0x01,0x00,0x00,0xf5,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0xf7,0x01,0x00,0x00,0xf6,0x01,0x00,0x00, -0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xf8,0x01,0x00,0x00, -0xf7,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, -0x79,0x00,0x00,0x00,0xf9,0x01,0x00,0x00,0xf8,0x01,0x00,0x00, -0x0c,0x00,0x08,0x00,0x79,0x00,0x00,0x00,0xfb,0x01,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xea,0x01,0x00,0x00, -0xf9,0x01,0x00,0x00,0xd3,0x01,0x00,0x00,0x81,0x00,0x05,0x00, -0x79,0x00,0x00,0x00,0xfd,0x01,0x00,0x00,0x0f,0x03,0x00,0x00, -0xfb,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x79,0x00,0x00,0x00, -0x06,0x02,0x00,0x00,0xc7,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x97,0x00,0x00,0x00,0x0d,0x02,0x00,0x00,0xcf,0x00,0x00,0x00, -0xc2,0x00,0x05,0x00,0x97,0x00,0x00,0x00,0x0e,0x02,0x00,0x00, -0x0d,0x02,0x00,0x00,0x26,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x0f,0x02,0x00,0x00,0x0e,0x02,0x00,0x00, -0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x10,0x02,0x00,0x00, -0x0f,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0x11,0x02,0x00,0x00,0x10,0x02,0x00,0x00,0xd3,0x00,0x00,0x00, -0x6f,0x00,0x04,0x00,0x79,0x00,0x00,0x00,0x12,0x02,0x00,0x00, -0x11,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x79,0x00,0x00,0x00, -0x1c,0x02,0x00,0x00,0xef,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x97,0x00,0x00,0x00,0x23,0x02,0x00,0x00,0xf6,0x00,0x00,0x00, -0xc2,0x00,0x05,0x00,0x97,0x00,0x00,0x00,0x24,0x02,0x00,0x00, -0x23,0x02,0x00,0x00,0x26,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x25,0x02,0x00,0x00,0x24,0x02,0x00,0x00, -0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x26,0x02,0x00,0x00, -0x25,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0x27,0x02,0x00,0x00,0x26,0x02,0x00,0x00,0xd3,0x00,0x00,0x00, -0x6f,0x00,0x04,0x00,0x79,0x00,0x00,0x00,0x28,0x02,0x00,0x00, -0x27,0x02,0x00,0x00,0x85,0x00,0x05,0x00,0x79,0x00,0x00,0x00, -0x29,0x02,0x00,0x00,0x1c,0x02,0x00,0x00,0x28,0x02,0x00,0x00, -0x0c,0x00,0x08,0x00,0x79,0x00,0x00,0x00,0x2a,0x02,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x06,0x02,0x00,0x00, -0x12,0x02,0x00,0x00,0x29,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0x79,0x00,0x00,0x00,0x33,0x02,0x00,0x00,0x15,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x3a,0x02,0x00,0x00, -0x1c,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x97,0x00,0x00,0x00, -0x3b,0x02,0x00,0x00,0x3a,0x02,0x00,0x00,0x26,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x3c,0x02,0x00,0x00, -0x3b,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0x3d,0x02,0x00,0x00,0x3c,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0x3e,0x02,0x00,0x00,0x3d,0x02,0x00,0x00, -0xd3,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x79,0x00,0x00,0x00, -0x3f,0x02,0x00,0x00,0x3e,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, -0x79,0x00,0x00,0x00,0x41,0x02,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0x33,0x02,0x00,0x00,0x3f,0x02,0x00,0x00, -0x2a,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x79,0x00,0x00,0x00, -0x4a,0x02,0x00,0x00,0x3c,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0x97,0x00,0x00,0x00,0x51,0x02,0x00,0x00,0x44,0x01,0x00,0x00, -0xc2,0x00,0x05,0x00,0x97,0x00,0x00,0x00,0x52,0x02,0x00,0x00, -0x51,0x02,0x00,0x00,0x26,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x53,0x02,0x00,0x00,0x52,0x02,0x00,0x00, -0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x54,0x02,0x00,0x00, -0x53,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0x55,0x02,0x00,0x00,0x54,0x02,0x00,0x00,0xd3,0x00,0x00,0x00, -0x6f,0x00,0x04,0x00,0x79,0x00,0x00,0x00,0x56,0x02,0x00,0x00, -0x55,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x79,0x00,0x00,0x00, -0x58,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x4a,0x02,0x00,0x00,0x56,0x02,0x00,0x00,0x41,0x02,0x00,0x00, -0x3d,0x00,0x04,0x00,0x79,0x00,0x00,0x00,0x61,0x02,0x00,0x00, -0x63,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00, -0x68,0x02,0x00,0x00,0x6b,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, -0x97,0x00,0x00,0x00,0x69,0x02,0x00,0x00,0x68,0x02,0x00,0x00, -0x26,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x6a,0x02,0x00,0x00,0x69,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x6b,0x02,0x00,0x00,0x6a,0x02,0x00,0x00, -0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x6c,0x02,0x00,0x00, -0x6b,0x02,0x00,0x00,0xd3,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, -0x79,0x00,0x00,0x00,0x6d,0x02,0x00,0x00,0x6c,0x02,0x00,0x00, -0x0c,0x00,0x08,0x00,0x79,0x00,0x00,0x00,0x6f,0x02,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x61,0x02,0x00,0x00, -0x6d,0x02,0x00,0x00,0x58,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0x79,0x00,0x00,0x00,0x78,0x02,0x00,0x00,0x8b,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x7f,0x02,0x00,0x00, -0x93,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x97,0x00,0x00,0x00, -0x80,0x02,0x00,0x00,0x7f,0x02,0x00,0x00,0x26,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x81,0x02,0x00,0x00, -0x80,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0x82,0x02,0x00,0x00,0x81,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0x83,0x02,0x00,0x00,0x82,0x02,0x00,0x00, -0xd3,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x79,0x00,0x00,0x00, -0x84,0x02,0x00,0x00,0x83,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, -0x79,0x00,0x00,0x00,0x86,0x02,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0x78,0x02,0x00,0x00,0x84,0x02,0x00,0x00, -0x6f,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x79,0x00,0x00,0x00, -0x8f,0x02,0x00,0x00,0xb3,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0x97,0x00,0x00,0x00,0x96,0x02,0x00,0x00,0xbb,0x01,0x00,0x00, -0xc2,0x00,0x05,0x00,0x97,0x00,0x00,0x00,0x97,0x02,0x00,0x00, -0x96,0x02,0x00,0x00,0x26,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x98,0x02,0x00,0x00,0x97,0x02,0x00,0x00, -0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x99,0x02,0x00,0x00, -0x98,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0x9a,0x02,0x00,0x00,0x99,0x02,0x00,0x00,0xd3,0x00,0x00,0x00, -0x6f,0x00,0x04,0x00,0x79,0x00,0x00,0x00,0x9b,0x02,0x00,0x00, -0x9a,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x79,0x00,0x00,0x00, -0x9d,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x8f,0x02,0x00,0x00,0x9b,0x02,0x00,0x00,0x86,0x02,0x00,0x00, -0x3d,0x00,0x04,0x00,0x79,0x00,0x00,0x00,0xa6,0x02,0x00,0x00, -0xdc,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00, -0xad,0x02,0x00,0x00,0xe4,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, -0x97,0x00,0x00,0x00,0xae,0x02,0x00,0x00,0xad,0x02,0x00,0x00, -0x26,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xaf,0x02,0x00,0x00,0xae,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0xb0,0x02,0x00,0x00,0xaf,0x02,0x00,0x00, -0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xb1,0x02,0x00,0x00, -0xb0,0x02,0x00,0x00,0xd3,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, -0x79,0x00,0x00,0x00,0xb2,0x02,0x00,0x00,0xb1,0x02,0x00,0x00, -0x0c,0x00,0x08,0x00,0x79,0x00,0x00,0x00,0xb4,0x02,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xa6,0x02,0x00,0x00, -0xb2,0x02,0x00,0x00,0x9d,0x02,0x00,0x00,0x81,0x00,0x05,0x00, -0x79,0x00,0x00,0x00,0xb6,0x02,0x00,0x00,0x10,0x03,0x00,0x00, -0xb4,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0xb8,0x02,0x00,0x00,0x0e,0x03,0x00,0x00,0xda,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0xb4,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0xb6,0x00,0x00,0x00,0x85,0x00,0x05,0x00,0x79,0x00,0x00,0x00, -0xc2,0x02,0x00,0x00,0xaf,0x00,0x00,0x00,0x10,0x03,0x00,0x00, -0x7f,0x00,0x04,0x00,0x79,0x00,0x00,0x00,0x13,0x03,0x00,0x00, -0xc2,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x79,0x00,0x00,0x00, -0xc3,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0xa8,0x00,0x00,0x00,0x0f,0x03,0x00,0x00,0x13,0x03,0x00,0x00, -0x3d,0x00,0x04,0x00,0x79,0x00,0x00,0x00,0xc5,0x02,0x00,0x00, -0x84,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x79,0x00,0x00,0x00, -0xc6,0x02,0x00,0x00,0xc5,0x02,0x00,0x00,0xc3,0x02,0x00,0x00, -0x3e,0x00,0x03,0x00,0x84,0x00,0x00,0x00,0xc6,0x02,0x00,0x00, -0xf9,0x00,0x02,0x00,0x8a,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0x8a,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xc9,0x02,0x00,0x00,0x0b,0x03,0x00,0x00,0x58,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0x87,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0x89,0x00,0x00,0x00,0xe0,0x00,0x04,0x00,0x58,0x00,0x00,0x00, -0x58,0x00,0x00,0x00,0xca,0x02,0x00,0x00,0xf9,0x00,0x02,0x00, -0xcc,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xcc,0x02,0x00,0x00, -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x0c,0x03,0x00,0x00, -0x7d,0x00,0x00,0x00,0x89,0x00,0x00,0x00,0xe3,0x02,0x00,0x00, -0xcf,0x02,0x00,0x00,0xac,0x00,0x05,0x00,0x8e,0x00,0x00,0x00, -0xd2,0x02,0x00,0x00,0x0c,0x03,0x00,0x00,0x3b,0x00,0x00,0x00, -0xf6,0x00,0x04,0x00,0xce,0x02,0x00,0x00,0xcf,0x02,0x00,0x00, -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xd2,0x02,0x00,0x00, -0xcd,0x02,0x00,0x00,0xce,0x02,0x00,0x00,0xf8,0x00,0x02,0x00, -0xcd,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x8e,0x00,0x00,0x00, -0xd5,0x02,0x00,0x00,0x59,0x00,0x00,0x00,0x0c,0x03,0x00,0x00, -0xf7,0x00,0x03,0x00,0xd7,0x02,0x00,0x00,0x00,0x00,0x00,0x00, -0xfa,0x00,0x04,0x00,0xd5,0x02,0x00,0x00,0xd6,0x02,0x00,0x00, -0xd7,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xd6,0x02,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdb,0x02,0x00,0x00, -0x59,0x00,0x00,0x00,0x0c,0x03,0x00,0x00,0x41,0x00,0x05,0x00, -0x83,0x00,0x00,0x00,0xdc,0x02,0x00,0x00,0x7c,0x00,0x00,0x00, -0xdb,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x79,0x00,0x00,0x00, -0xdd,0x02,0x00,0x00,0xdc,0x02,0x00,0x00,0x41,0x00,0x05,0x00, -0x83,0x00,0x00,0x00,0xde,0x02,0x00,0x00,0x7c,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x79,0x00,0x00,0x00, -0xdf,0x02,0x00,0x00,0xde,0x02,0x00,0x00,0x81,0x00,0x05,0x00, -0x79,0x00,0x00,0x00,0xe0,0x02,0x00,0x00,0xdf,0x02,0x00,0x00, -0xdd,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0xde,0x02,0x00,0x00, -0xe0,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xd7,0x02,0x00,0x00, -0xf8,0x00,0x02,0x00,0xd7,0x02,0x00,0x00,0xe0,0x00,0x04,0x00, -0x58,0x00,0x00,0x00,0x58,0x00,0x00,0x00,0xca,0x02,0x00,0x00, -0xf9,0x00,0x02,0x00,0xcf,0x02,0x00,0x00,0xf8,0x00,0x02,0x00, -0xcf,0x02,0x00,0x00,0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xe3,0x02,0x00,0x00,0x0c,0x03,0x00,0x00,0xda,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0xcc,0x02,0x00,0x00,0xf8,0x00,0x02,0x00, -0xce,0x02,0x00,0x00,0xaa,0x00,0x05,0x00,0x8e,0x00,0x00,0x00, -0xe5,0x02,0x00,0x00,0x59,0x00,0x00,0x00,0x3b,0x00,0x00,0x00, -0xf7,0x00,0x03,0x00,0xe7,0x02,0x00,0x00,0x00,0x00,0x00,0x00, -0xfa,0x00,0x04,0x00,0xe5,0x02,0x00,0x00,0xe6,0x02,0x00,0x00, -0xe7,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xe6,0x02,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xee,0x02,0x00,0x00, -0x0a,0x03,0x00,0x00,0x3d,0x00,0x00,0x00,0x41,0x00,0x05,0x00, -0x83,0x00,0x00,0x00,0xef,0x02,0x00,0x00,0x7c,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x79,0x00,0x00,0x00, -0xf0,0x02,0x00,0x00,0xef,0x02,0x00,0x00,0x41,0x00,0x06,0x00, -0xc6,0x00,0x00,0x00,0xf1,0x02,0x00,0x00,0xeb,0x02,0x00,0x00, -0x1c,0x00,0x00,0x00,0xee,0x02,0x00,0x00,0x3e,0x00,0x03,0x00, -0xf1,0x02,0x00,0x00,0xf0,0x02,0x00,0x00,0xf9,0x00,0x02,0x00, -0xe7,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xe7,0x02,0x00,0x00, -0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00, +0x08,0x03,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x0a,0x03,0x00,0x00,0xfe,0x02,0x00,0x00,0x09,0x03,0x00,0x00, +0x41,0x00,0x05,0x00,0x27,0x00,0x00,0x00,0x0b,0x03,0x00,0x00, +0x25,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x0c,0x03,0x00,0x00,0x0b,0x03,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0d,0x03,0x00,0x00, +0x0a,0x03,0x00,0x00,0x0c,0x03,0x00,0x00,0x41,0x00,0x05,0x00, +0x27,0x00,0x00,0x00,0x0f,0x03,0x00,0x00,0x25,0x00,0x00,0x00, +0x35,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x10,0x03,0x00,0x00,0x0f,0x03,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x11,0x03,0x00,0x00,0xfe,0x02,0x00,0x00, +0x10,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x27,0x00,0x00,0x00, +0x51,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x52,0x00,0x00,0x00, +0x51,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x54,0x00,0x00,0x00,0x52,0x00,0x00,0x00,0x53,0x00,0x00,0x00, +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x57,0x00,0x00,0x00, +0x06,0x03,0x00,0x00,0x53,0x00,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x5a,0x00,0x00,0x00,0x45,0x00,0x00,0x00, +0x54,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x5b,0x00,0x00,0x00,0x57,0x00,0x00,0x00,0x5a,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00,0x5e,0x00,0x00,0x00, +0x5d,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,0x5e,0x00,0x00,0x00, +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x60,0x00,0x00,0x00, +0x5f,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x89,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0x5f,0x00,0x00,0x00, +0x41,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x68,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x67,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6c,0x00,0x00,0x00, +0x67,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x82,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x60,0x00,0x00,0x00, +0x6c,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x70,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x6d,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x74,0x00,0x00,0x00, +0x72,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x76,0x00,0x00,0x00,0x74,0x00,0x00,0x00, +0x70,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x7d,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,0x68,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7f,0x00,0x00,0x00, +0x7d,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x84,0x00,0x00,0x00, +0x64,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x88,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x60,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x8a,0x00,0x00,0x00,0x8b,0x00,0x00,0x00, +0x83,0x00,0x00,0x00,0x88,0x00,0x00,0x00,0x3e,0x00,0x03,0x00, +0x8b,0x00,0x00,0x00,0x89,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, +0x8e,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x8e,0x00,0x00,0x00, +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x12,0x03,0x00,0x00, +0x64,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0xd0,0x02,0x00,0x00, +0x91,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0x95,0x00,0x00,0x00, +0x96,0x00,0x00,0x00,0x12,0x03,0x00,0x00,0x54,0x00,0x00,0x00, +0xf6,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0x91,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x96,0x00,0x00,0x00, +0x8f,0x00,0x00,0x00,0x90,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0x8f,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x99,0x00,0x00,0x00,0x12,0x03,0x00,0x00,0x53,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9b,0x00,0x00,0x00, +0x99,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xab,0x00,0x00,0x00,0x5b,0x00,0x00,0x00, +0x12,0x03,0x00,0x00,0x41,0x00,0x08,0x00,0xac,0x00,0x00,0x00, +0xad,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0xab,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x3b,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0xa2,0x00,0x00,0x00,0xae,0x00,0x00,0x00, +0xad,0x00,0x00,0x00,0x73,0x00,0x04,0x00,0x80,0x00,0x00,0x00, +0xaf,0x00,0x00,0x00,0xae,0x00,0x00,0x00,0x41,0x00,0x08,0x00, +0xac,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,0xa8,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0xab,0x00,0x00,0x00,0x30,0x00,0x00,0x00, +0x12,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xa2,0x00,0x00,0x00, +0xb5,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,0x73,0x00,0x04,0x00, +0x80,0x00,0x00,0x00,0xb6,0x00,0x00,0x00,0xb5,0x00,0x00,0x00, +0xf9,0x00,0x02,0x00,0xbb,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xbb,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x80,0x00,0x00,0x00, +0x17,0x03,0x00,0x00,0x89,0x00,0x00,0x00,0x8f,0x00,0x00,0x00, +0xbd,0x02,0x00,0x00,0xbc,0x00,0x00,0x00,0xf5,0x00,0x07,0x00, +0x80,0x00,0x00,0x00,0x16,0x03,0x00,0x00,0x89,0x00,0x00,0x00, +0x8f,0x00,0x00,0x00,0x04,0x02,0x00,0x00,0xbc,0x00,0x00,0x00, +0xf5,0x00,0x07,0x00,0x17,0x00,0x00,0x00,0x15,0x03,0x00,0x00, +0x1c,0x00,0x00,0x00,0x8f,0x00,0x00,0x00,0xbf,0x02,0x00,0x00, +0xbc,0x00,0x00,0x00,0xb1,0x00,0x05,0x00,0x95,0x00,0x00,0x00, +0xc1,0x00,0x00,0x00,0x15,0x03,0x00,0x00,0x30,0x00,0x00,0x00, +0xf6,0x00,0x04,0x00,0xbd,0x00,0x00,0x00,0xbc,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xc1,0x00,0x00,0x00, +0xbc,0x00,0x00,0x00,0xbd,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xbc,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xc8,0x00,0x00,0x00,0x0d,0x03,0x00,0x00,0x9b,0x00,0x00,0x00, +0x7c,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xca,0x00,0x00,0x00, +0x15,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xcb,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0xca,0x00,0x00,0x00, +0x41,0x00,0x06,0x00,0xcd,0x00,0x00,0x00,0xce,0x00,0x00,0x00, +0xc5,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xcb,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x80,0x00,0x00,0x00,0xcf,0x00,0x00,0x00, +0xce,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xd5,0x00,0x00,0x00, +0xd6,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0xab,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x6c,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x9e,0x00,0x00,0x00,0xd7,0x00,0x00,0x00, +0xd6,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xd8,0x00,0x00,0x00,0xd7,0x00,0x00,0x00,0x7c,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0xd9,0x00,0x00,0x00,0xd8,0x00,0x00,0x00, +0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xdb,0x00,0x00,0x00, +0xd9,0x00,0x00,0x00,0xda,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, +0x80,0x00,0x00,0x00,0xdc,0x00,0x00,0x00,0xdb,0x00,0x00,0x00, +0x85,0x00,0x05,0x00,0x80,0x00,0x00,0x00,0xdd,0x00,0x00,0x00, +0xcf,0x00,0x00,0x00,0xdc,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xe5,0x00,0x00,0x00,0x76,0x00,0x00,0x00, +0xca,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xd5,0x00,0x00,0x00, +0xe7,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0xab,0x00,0x00,0x00,0xe1,0x00,0x00,0x00,0xe5,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x9e,0x00,0x00,0x00,0xe8,0x00,0x00,0x00, +0xe7,0x00,0x00,0x00,0xc2,0x00,0x05,0x00,0x9e,0x00,0x00,0x00, +0xe9,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xea,0x00,0x00,0x00, +0xe9,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0xeb,0x00,0x00,0x00,0xea,0x00,0x00,0x00,0xc7,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0xec,0x00,0x00,0x00,0xeb,0x00,0x00,0x00, +0x35,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x80,0x00,0x00,0x00, +0xed,0x00,0x00,0x00,0xec,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,0xcb,0x00,0x00,0x00, +0x84,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xcd,0x00,0x00,0x00, +0xf6,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0xf5,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x80,0x00,0x00,0x00, +0xf7,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x6c,0x00,0x00,0x00, +0x12,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xd5,0x00,0x00,0x00, +0xfd,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0xab,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xfc,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x9e,0x00,0x00,0x00,0xfe,0x00,0x00,0x00, +0xfd,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xff,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0x7c,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0xff,0x00,0x00,0x00, +0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x01,0x01,0x00,0x00, +0x00,0x01,0x00,0x00,0xda,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, +0x80,0x00,0x00,0x00,0x02,0x01,0x00,0x00,0x01,0x01,0x00,0x00, +0x85,0x00,0x05,0x00,0x80,0x00,0x00,0x00,0x03,0x01,0x00,0x00, +0xf7,0x00,0x00,0x00,0x02,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x0b,0x01,0x00,0x00,0xe5,0x00,0x00,0x00, +0x84,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xd5,0x00,0x00,0x00, +0x0c,0x01,0x00,0x00,0xa8,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0xab,0x00,0x00,0x00,0xe1,0x00,0x00,0x00,0x0b,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0x9e,0x00,0x00,0x00,0x0d,0x01,0x00,0x00, +0x0c,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x9e,0x00,0x00,0x00, +0x0e,0x01,0x00,0x00,0x0d,0x01,0x00,0x00,0x1c,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x0f,0x01,0x00,0x00, +0x0e,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0x10,0x01,0x00,0x00,0x0f,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0x11,0x01,0x00,0x00,0x10,0x01,0x00,0x00, +0x35,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x80,0x00,0x00,0x00, +0x12,0x01,0x00,0x00,0x11,0x01,0x00,0x00,0x85,0x00,0x05,0x00, +0x80,0x00,0x00,0x00,0x13,0x01,0x00,0x00,0x03,0x01,0x00,0x00, +0x12,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0x80,0x00,0x00,0x00, +0x14,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0xdd,0x00,0x00,0x00,0xed,0x00,0x00,0x00,0x13,0x01,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1b,0x01,0x00,0x00, +0xcb,0x00,0x00,0x00,0x72,0x00,0x00,0x00,0x41,0x00,0x06,0x00, +0xcd,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,0xc5,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0x1b,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0x80,0x00,0x00,0x00,0x1d,0x01,0x00,0x00,0x1c,0x01,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x22,0x01,0x00,0x00, +0x6c,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x41,0x00,0x08,0x00, +0xd5,0x00,0x00,0x00,0x23,0x01,0x00,0x00,0xa8,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0xab,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0x22,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x9e,0x00,0x00,0x00, +0x24,0x01,0x00,0x00,0x23,0x01,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x25,0x01,0x00,0x00,0x24,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x26,0x01,0x00,0x00, +0x25,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, +0x27,0x01,0x00,0x00,0x26,0x01,0x00,0x00,0xda,0x00,0x00,0x00, +0x6f,0x00,0x04,0x00,0x80,0x00,0x00,0x00,0x28,0x01,0x00,0x00, +0x27,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x80,0x00,0x00,0x00, +0x29,0x01,0x00,0x00,0x1d,0x01,0x00,0x00,0x28,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0x9e,0x00,0x00,0x00,0x33,0x01,0x00,0x00, +0xe7,0x00,0x00,0x00,0xc2,0x00,0x05,0x00,0x9e,0x00,0x00,0x00, +0x34,0x01,0x00,0x00,0x33,0x01,0x00,0x00,0x30,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x35,0x01,0x00,0x00, +0x34,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0x36,0x01,0x00,0x00,0x35,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0x37,0x01,0x00,0x00,0x36,0x01,0x00,0x00, +0x35,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x80,0x00,0x00,0x00, +0x38,0x01,0x00,0x00,0x37,0x01,0x00,0x00,0x0c,0x00,0x08,0x00, +0x80,0x00,0x00,0x00,0x3a,0x01,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x29,0x01,0x00,0x00,0x38,0x01,0x00,0x00, +0x14,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x42,0x01,0x00,0x00,0xcb,0x00,0x00,0x00,0x41,0x01,0x00,0x00, +0x41,0x00,0x06,0x00,0xcd,0x00,0x00,0x00,0x43,0x01,0x00,0x00, +0xc5,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x42,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0x80,0x00,0x00,0x00,0x44,0x01,0x00,0x00, +0x43,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x4a,0x01,0x00,0x00,0x6c,0x00,0x00,0x00,0x49,0x01,0x00,0x00, +0x41,0x00,0x08,0x00,0xd5,0x00,0x00,0x00,0x4b,0x01,0x00,0x00, +0xa8,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xab,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0x4a,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0x9e,0x00,0x00,0x00,0x4c,0x01,0x00,0x00,0x4b,0x01,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4d,0x01,0x00,0x00, +0x4c,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0x4e,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0x4f,0x01,0x00,0x00,0x4e,0x01,0x00,0x00, +0xda,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x80,0x00,0x00,0x00, +0x50,0x01,0x00,0x00,0x4f,0x01,0x00,0x00,0x85,0x00,0x05,0x00, +0x80,0x00,0x00,0x00,0x51,0x01,0x00,0x00,0x44,0x01,0x00,0x00, +0x50,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x9e,0x00,0x00,0x00, +0x5b,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, +0x9e,0x00,0x00,0x00,0x5c,0x01,0x00,0x00,0x5b,0x01,0x00,0x00, +0x30,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x5d,0x01,0x00,0x00,0x5c,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0x5e,0x01,0x00,0x00,0x5d,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x5f,0x01,0x00,0x00, +0x5e,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, +0x80,0x00,0x00,0x00,0x60,0x01,0x00,0x00,0x5f,0x01,0x00,0x00, +0x0c,0x00,0x08,0x00,0x80,0x00,0x00,0x00,0x62,0x01,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x51,0x01,0x00,0x00, +0x60,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x69,0x01,0x00,0x00,0xcb,0x00,0x00,0x00, +0xa0,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xcd,0x00,0x00,0x00, +0x6a,0x01,0x00,0x00,0xc5,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0x69,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x80,0x00,0x00,0x00, +0x6b,0x01,0x00,0x00,0x6a,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x71,0x01,0x00,0x00,0x6c,0x00,0x00,0x00, +0x70,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0xd5,0x00,0x00,0x00, +0x72,0x01,0x00,0x00,0xa8,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0xab,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x71,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0x9e,0x00,0x00,0x00,0x73,0x01,0x00,0x00, +0x72,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x74,0x01,0x00,0x00,0x73,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0x75,0x01,0x00,0x00,0x74,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x76,0x01,0x00,0x00, +0x75,0x01,0x00,0x00,0xda,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, +0x80,0x00,0x00,0x00,0x77,0x01,0x00,0x00,0x76,0x01,0x00,0x00, +0x85,0x00,0x05,0x00,0x80,0x00,0x00,0x00,0x78,0x01,0x00,0x00, +0x6b,0x01,0x00,0x00,0x77,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0x9e,0x00,0x00,0x00,0x82,0x01,0x00,0x00,0xe7,0x00,0x00,0x00, +0xc2,0x00,0x05,0x00,0x9e,0x00,0x00,0x00,0x83,0x01,0x00,0x00, +0x82,0x01,0x00,0x00,0x26,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x84,0x01,0x00,0x00,0x83,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x85,0x01,0x00,0x00, +0x84,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, +0x86,0x01,0x00,0x00,0x85,0x01,0x00,0x00,0x35,0x00,0x00,0x00, +0x6f,0x00,0x04,0x00,0x80,0x00,0x00,0x00,0x87,0x01,0x00,0x00, +0x86,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0x80,0x00,0x00,0x00, +0x89,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0x78,0x01,0x00,0x00,0x87,0x01,0x00,0x00,0x62,0x01,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x91,0x01,0x00,0x00, +0xcb,0x00,0x00,0x00,0x90,0x01,0x00,0x00,0x41,0x00,0x06,0x00, +0xcd,0x00,0x00,0x00,0x92,0x01,0x00,0x00,0xc5,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0x91,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0x80,0x00,0x00,0x00,0x93,0x01,0x00,0x00,0x92,0x01,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x99,0x01,0x00,0x00, +0x6c,0x00,0x00,0x00,0x98,0x01,0x00,0x00,0x41,0x00,0x08,0x00, +0xd5,0x00,0x00,0x00,0x9a,0x01,0x00,0x00,0xa8,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0xab,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0x99,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x9e,0x00,0x00,0x00, +0x9b,0x01,0x00,0x00,0x9a,0x01,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x9c,0x01,0x00,0x00,0x9b,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x9d,0x01,0x00,0x00, +0x9c,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, +0x9e,0x01,0x00,0x00,0x9d,0x01,0x00,0x00,0xda,0x00,0x00,0x00, +0x6f,0x00,0x04,0x00,0x80,0x00,0x00,0x00,0x9f,0x01,0x00,0x00, +0x9e,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x80,0x00,0x00,0x00, +0xa0,0x01,0x00,0x00,0x93,0x01,0x00,0x00,0x9f,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0x9e,0x00,0x00,0x00,0xaa,0x01,0x00,0x00, +0x0c,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x9e,0x00,0x00,0x00, +0xab,0x01,0x00,0x00,0xaa,0x01,0x00,0x00,0x26,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xac,0x01,0x00,0x00, +0xab,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0xad,0x01,0x00,0x00,0xac,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0xae,0x01,0x00,0x00,0xad,0x01,0x00,0x00, +0x35,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x80,0x00,0x00,0x00, +0xaf,0x01,0x00,0x00,0xae,0x01,0x00,0x00,0x0c,0x00,0x08,0x00, +0x80,0x00,0x00,0x00,0xb1,0x01,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0xa0,0x01,0x00,0x00,0xaf,0x01,0x00,0x00, +0x89,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xb9,0x01,0x00,0x00,0xcb,0x00,0x00,0x00,0xb8,0x01,0x00,0x00, +0x41,0x00,0x06,0x00,0xcd,0x00,0x00,0x00,0xba,0x01,0x00,0x00, +0xc5,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xb9,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0x80,0x00,0x00,0x00,0xbb,0x01,0x00,0x00, +0xba,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xc1,0x01,0x00,0x00,0x6c,0x00,0x00,0x00,0xc0,0x01,0x00,0x00, +0x41,0x00,0x08,0x00,0xd5,0x00,0x00,0x00,0xc2,0x01,0x00,0x00, +0xa8,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xab,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0xc1,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0x9e,0x00,0x00,0x00,0xc3,0x01,0x00,0x00,0xc2,0x01,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xc4,0x01,0x00,0x00, +0xc3,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0xc5,0x01,0x00,0x00,0xc4,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0xc6,0x01,0x00,0x00,0xc5,0x01,0x00,0x00, +0xda,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x80,0x00,0x00,0x00, +0xc7,0x01,0x00,0x00,0xc6,0x01,0x00,0x00,0x85,0x00,0x05,0x00, +0x80,0x00,0x00,0x00,0xc8,0x01,0x00,0x00,0xbb,0x01,0x00,0x00, +0xc7,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x9e,0x00,0x00,0x00, +0xd2,0x01,0x00,0x00,0xe7,0x00,0x00,0x00,0xc2,0x00,0x05,0x00, +0x9e,0x00,0x00,0x00,0xd4,0x01,0x00,0x00,0xd2,0x01,0x00,0x00, +0xd3,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xd5,0x01,0x00,0x00,0xd4,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0xd6,0x01,0x00,0x00,0xd5,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xd7,0x01,0x00,0x00, +0xd6,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, +0x80,0x00,0x00,0x00,0xd8,0x01,0x00,0x00,0xd7,0x01,0x00,0x00, +0x0c,0x00,0x08,0x00,0x80,0x00,0x00,0x00,0xda,0x01,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xc8,0x01,0x00,0x00, +0xd8,0x01,0x00,0x00,0xb1,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xe2,0x01,0x00,0x00,0xcb,0x00,0x00,0x00, +0xe1,0x01,0x00,0x00,0x41,0x00,0x06,0x00,0xcd,0x00,0x00,0x00, +0xe3,0x01,0x00,0x00,0xc5,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0xe2,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x80,0x00,0x00,0x00, +0xe4,0x01,0x00,0x00,0xe3,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xea,0x01,0x00,0x00,0x6c,0x00,0x00,0x00, +0xe9,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0xd5,0x00,0x00,0x00, +0xeb,0x01,0x00,0x00,0xa8,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0xab,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xea,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0x9e,0x00,0x00,0x00,0xec,0x01,0x00,0x00, +0xeb,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xed,0x01,0x00,0x00,0xec,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0xee,0x01,0x00,0x00,0xed,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xef,0x01,0x00,0x00, +0xee,0x01,0x00,0x00,0xda,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, +0x80,0x00,0x00,0x00,0xf0,0x01,0x00,0x00,0xef,0x01,0x00,0x00, +0x85,0x00,0x05,0x00,0x80,0x00,0x00,0x00,0xf1,0x01,0x00,0x00, +0xe4,0x01,0x00,0x00,0xf0,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0x9e,0x00,0x00,0x00,0xfb,0x01,0x00,0x00,0x0c,0x01,0x00,0x00, +0xc2,0x00,0x05,0x00,0x9e,0x00,0x00,0x00,0xfc,0x01,0x00,0x00, +0xfb,0x01,0x00,0x00,0xd3,0x01,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xfd,0x01,0x00,0x00,0xfc,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0xfe,0x01,0x00,0x00, +0xfd,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, +0xff,0x01,0x00,0x00,0xfe,0x01,0x00,0x00,0x35,0x00,0x00,0x00, +0x6f,0x00,0x04,0x00,0x80,0x00,0x00,0x00,0x00,0x02,0x00,0x00, +0xff,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0x80,0x00,0x00,0x00, +0x02,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0xf1,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0xda,0x01,0x00,0x00, +0x81,0x00,0x05,0x00,0x80,0x00,0x00,0x00,0x04,0x02,0x00,0x00, +0x16,0x03,0x00,0x00,0x02,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0x80,0x00,0x00,0x00,0x0d,0x02,0x00,0x00,0xce,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x9e,0x00,0x00,0x00,0x14,0x02,0x00,0x00, +0xd6,0x00,0x00,0x00,0xc2,0x00,0x05,0x00,0x9e,0x00,0x00,0x00, +0x15,0x02,0x00,0x00,0x14,0x02,0x00,0x00,0x26,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x16,0x02,0x00,0x00, +0x15,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0x17,0x02,0x00,0x00,0x16,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0x18,0x02,0x00,0x00,0x17,0x02,0x00,0x00, +0xda,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x80,0x00,0x00,0x00, +0x19,0x02,0x00,0x00,0x18,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0x80,0x00,0x00,0x00,0x23,0x02,0x00,0x00,0xf6,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x9e,0x00,0x00,0x00,0x2a,0x02,0x00,0x00, +0xfd,0x00,0x00,0x00,0xc2,0x00,0x05,0x00,0x9e,0x00,0x00,0x00, +0x2b,0x02,0x00,0x00,0x2a,0x02,0x00,0x00,0x26,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x2c,0x02,0x00,0x00, +0x2b,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0x2d,0x02,0x00,0x00,0x2c,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0x2e,0x02,0x00,0x00,0x2d,0x02,0x00,0x00, +0xda,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x80,0x00,0x00,0x00, +0x2f,0x02,0x00,0x00,0x2e,0x02,0x00,0x00,0x85,0x00,0x05,0x00, +0x80,0x00,0x00,0x00,0x30,0x02,0x00,0x00,0x23,0x02,0x00,0x00, +0x2f,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x80,0x00,0x00,0x00, +0x31,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0x0d,0x02,0x00,0x00,0x19,0x02,0x00,0x00,0x30,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0x80,0x00,0x00,0x00,0x3a,0x02,0x00,0x00, +0x1c,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x9e,0x00,0x00,0x00, +0x41,0x02,0x00,0x00,0x23,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, +0x9e,0x00,0x00,0x00,0x42,0x02,0x00,0x00,0x41,0x02,0x00,0x00, +0x26,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x43,0x02,0x00,0x00,0x42,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0x44,0x02,0x00,0x00,0x43,0x02,0x00,0x00, +0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x45,0x02,0x00,0x00, +0x44,0x02,0x00,0x00,0xda,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, +0x80,0x00,0x00,0x00,0x46,0x02,0x00,0x00,0x45,0x02,0x00,0x00, +0x0c,0x00,0x08,0x00,0x80,0x00,0x00,0x00,0x48,0x02,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x3a,0x02,0x00,0x00, +0x46,0x02,0x00,0x00,0x31,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0x80,0x00,0x00,0x00,0x51,0x02,0x00,0x00,0x43,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0x9e,0x00,0x00,0x00,0x58,0x02,0x00,0x00, +0x4b,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x9e,0x00,0x00,0x00, +0x59,0x02,0x00,0x00,0x58,0x02,0x00,0x00,0x26,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x5a,0x02,0x00,0x00, +0x59,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0x5b,0x02,0x00,0x00,0x5a,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0x5c,0x02,0x00,0x00,0x5b,0x02,0x00,0x00, +0xda,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x80,0x00,0x00,0x00, +0x5d,0x02,0x00,0x00,0x5c,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, +0x80,0x00,0x00,0x00,0x5f,0x02,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x51,0x02,0x00,0x00,0x5d,0x02,0x00,0x00, +0x48,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x80,0x00,0x00,0x00, +0x68,0x02,0x00,0x00,0x6a,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0x9e,0x00,0x00,0x00,0x6f,0x02,0x00,0x00,0x72,0x01,0x00,0x00, +0xc2,0x00,0x05,0x00,0x9e,0x00,0x00,0x00,0x70,0x02,0x00,0x00, +0x6f,0x02,0x00,0x00,0x26,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x71,0x02,0x00,0x00,0x70,0x02,0x00,0x00, +0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x72,0x02,0x00,0x00, +0x71,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, +0x73,0x02,0x00,0x00,0x72,0x02,0x00,0x00,0xda,0x00,0x00,0x00, +0x6f,0x00,0x04,0x00,0x80,0x00,0x00,0x00,0x74,0x02,0x00,0x00, +0x73,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x80,0x00,0x00,0x00, +0x76,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0x68,0x02,0x00,0x00,0x74,0x02,0x00,0x00,0x5f,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0x80,0x00,0x00,0x00,0x7f,0x02,0x00,0x00, +0x92,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x9e,0x00,0x00,0x00, +0x86,0x02,0x00,0x00,0x9a,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, +0x9e,0x00,0x00,0x00,0x87,0x02,0x00,0x00,0x86,0x02,0x00,0x00, +0x26,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x88,0x02,0x00,0x00,0x87,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0x89,0x02,0x00,0x00,0x88,0x02,0x00,0x00, +0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x8a,0x02,0x00,0x00, +0x89,0x02,0x00,0x00,0xda,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, +0x80,0x00,0x00,0x00,0x8b,0x02,0x00,0x00,0x8a,0x02,0x00,0x00, +0x0c,0x00,0x08,0x00,0x80,0x00,0x00,0x00,0x8d,0x02,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x7f,0x02,0x00,0x00, +0x8b,0x02,0x00,0x00,0x76,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0x80,0x00,0x00,0x00,0x96,0x02,0x00,0x00,0xba,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0x9e,0x00,0x00,0x00,0x9d,0x02,0x00,0x00, +0xc2,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x9e,0x00,0x00,0x00, +0x9e,0x02,0x00,0x00,0x9d,0x02,0x00,0x00,0x26,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x9f,0x02,0x00,0x00, +0x9e,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0xa0,0x02,0x00,0x00,0x9f,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0xa1,0x02,0x00,0x00,0xa0,0x02,0x00,0x00, +0xda,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x80,0x00,0x00,0x00, +0xa2,0x02,0x00,0x00,0xa1,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, +0x80,0x00,0x00,0x00,0xa4,0x02,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x96,0x02,0x00,0x00,0xa2,0x02,0x00,0x00, +0x8d,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x80,0x00,0x00,0x00, +0xad,0x02,0x00,0x00,0xe3,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0x9e,0x00,0x00,0x00,0xb4,0x02,0x00,0x00,0xeb,0x01,0x00,0x00, +0xc2,0x00,0x05,0x00,0x9e,0x00,0x00,0x00,0xb5,0x02,0x00,0x00, +0xb4,0x02,0x00,0x00,0x26,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xb6,0x02,0x00,0x00,0xb5,0x02,0x00,0x00, +0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0xb7,0x02,0x00,0x00, +0xb6,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, +0xb8,0x02,0x00,0x00,0xb7,0x02,0x00,0x00,0xda,0x00,0x00,0x00, +0x6f,0x00,0x04,0x00,0x80,0x00,0x00,0x00,0xb9,0x02,0x00,0x00, +0xb8,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x80,0x00,0x00,0x00, +0xbb,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0xad,0x02,0x00,0x00,0xb9,0x02,0x00,0x00,0xa4,0x02,0x00,0x00, +0x81,0x00,0x05,0x00,0x80,0x00,0x00,0x00,0xbd,0x02,0x00,0x00, +0x17,0x03,0x00,0x00,0xbb,0x02,0x00,0x00,0x80,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0xbf,0x02,0x00,0x00,0x15,0x03,0x00,0x00, +0xe1,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xbb,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0xbd,0x00,0x00,0x00,0x85,0x00,0x05,0x00, +0x80,0x00,0x00,0x00,0xc9,0x02,0x00,0x00,0xb6,0x00,0x00,0x00, +0x17,0x03,0x00,0x00,0x7f,0x00,0x04,0x00,0x80,0x00,0x00,0x00, +0x1a,0x03,0x00,0x00,0xc9,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, +0x80,0x00,0x00,0x00,0xca,0x02,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0x16,0x03,0x00,0x00, +0x1a,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x80,0x00,0x00,0x00, +0xcc,0x02,0x00,0x00,0x8b,0x00,0x00,0x00,0x81,0x00,0x05,0x00, +0x80,0x00,0x00,0x00,0xcd,0x02,0x00,0x00,0xcc,0x02,0x00,0x00, +0xca,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0x8b,0x00,0x00,0x00, +0xcd,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x91,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0x91,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xd0,0x02,0x00,0x00,0x12,0x03,0x00,0x00, +0x41,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x8e,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0x90,0x00,0x00,0x00,0xe0,0x00,0x04,0x00, +0x41,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0xd1,0x02,0x00,0x00, +0xf9,0x00,0x02,0x00,0xd3,0x02,0x00,0x00,0xf8,0x00,0x02,0x00, +0xd3,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00, +0x13,0x03,0x00,0x00,0x84,0x00,0x00,0x00,0x90,0x00,0x00,0x00, +0xea,0x02,0x00,0x00,0xd6,0x02,0x00,0x00,0xac,0x00,0x05,0x00, +0x95,0x00,0x00,0x00,0xd9,0x02,0x00,0x00,0x13,0x03,0x00,0x00, +0x3b,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xd5,0x02,0x00,0x00, +0xd6,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, +0xd9,0x02,0x00,0x00,0xd4,0x02,0x00,0x00,0xd5,0x02,0x00,0x00, +0xf8,0x00,0x02,0x00,0xd4,0x02,0x00,0x00,0xb0,0x00,0x05,0x00, +0x95,0x00,0x00,0x00,0xdc,0x02,0x00,0x00,0x60,0x00,0x00,0x00, +0x13,0x03,0x00,0x00,0xf7,0x00,0x03,0x00,0xde,0x02,0x00,0x00, +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xdc,0x02,0x00,0x00, +0xdd,0x02,0x00,0x00,0xde,0x02,0x00,0x00,0xf8,0x00,0x02,0x00, +0xdd,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xe2,0x02,0x00,0x00,0x60,0x00,0x00,0x00,0x13,0x03,0x00,0x00, +0x41,0x00,0x05,0x00,0x8a,0x00,0x00,0x00,0xe3,0x02,0x00,0x00, +0x83,0x00,0x00,0x00,0xe2,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0x80,0x00,0x00,0x00,0xe4,0x02,0x00,0x00,0xe3,0x02,0x00,0x00, +0x41,0x00,0x05,0x00,0x8a,0x00,0x00,0x00,0xe5,0x02,0x00,0x00, +0x83,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x80,0x00,0x00,0x00,0xe6,0x02,0x00,0x00,0xe5,0x02,0x00,0x00, +0x81,0x00,0x05,0x00,0x80,0x00,0x00,0x00,0xe7,0x02,0x00,0x00, +0xe6,0x02,0x00,0x00,0xe4,0x02,0x00,0x00,0x3e,0x00,0x03,0x00, +0xe5,0x02,0x00,0x00,0xe7,0x02,0x00,0x00,0xf9,0x00,0x02,0x00, +0xde,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xde,0x02,0x00,0x00, +0xe0,0x00,0x04,0x00,0x41,0x00,0x00,0x00,0x41,0x00,0x00,0x00, +0xd1,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xd6,0x02,0x00,0x00, +0xf8,0x00,0x02,0x00,0xd6,0x02,0x00,0x00,0xc2,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xea,0x02,0x00,0x00,0x13,0x03,0x00,0x00, +0xe1,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xd3,0x02,0x00,0x00, +0xf8,0x00,0x02,0x00,0xd5,0x02,0x00,0x00,0xaa,0x00,0x05,0x00, +0x95,0x00,0x00,0x00,0xec,0x02,0x00,0x00,0x60,0x00,0x00,0x00, +0x3b,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0xee,0x02,0x00,0x00, +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xec,0x02,0x00,0x00, +0xed,0x02,0x00,0x00,0xee,0x02,0x00,0x00,0xf8,0x00,0x02,0x00, +0xed,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xf5,0x02,0x00,0x00,0x11,0x03,0x00,0x00,0x45,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x8a,0x00,0x00,0x00,0xf6,0x02,0x00,0x00, +0x83,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x80,0x00,0x00,0x00,0xf7,0x02,0x00,0x00,0xf6,0x02,0x00,0x00, +0x41,0x00,0x06,0x00,0xcd,0x00,0x00,0x00,0xf8,0x02,0x00,0x00, +0xf2,0x02,0x00,0x00,0x1c,0x00,0x00,0x00,0xf5,0x02,0x00,0x00, +0x3e,0x00,0x03,0x00,0xf8,0x02,0x00,0x00,0xf7,0x02,0x00,0x00, +0xf9,0x00,0x02,0x00,0xee,0x02,0x00,0x00,0xf8,0x00,0x02,0x00, +0xee,0x02,0x00,0x00,0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00, + }; -const uint64_t mul_mat_vec_id_q2_k_f32_len = 8264; +const uint64_t mul_mat_vec_id_q2_k_f32_len = 8412; unsigned char mul_mat_vec_id_q3_k_f32_data[] = { 0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00, -0x5c,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, +0x63,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, 0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x27,0x00,0x00,0x00, 0x11,0x00,0x02,0x00,0x51,0x11,0x00,0x00,0x11,0x00,0x02,0x00, 0x60,0x11,0x00,0x00,0x0b,0x00,0x06,0x00,0x01,0x00,0x00,0x00, 0x47,0x4c,0x53,0x4c,0x2e,0x73,0x74,0x64,0x2e,0x34,0x35,0x30, 0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00,0x00,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x0f,0x00,0x0e,0x00,0x05,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x0f,0x00,0x0f,0x00,0x05,0x00,0x00,0x00, 0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e,0x00,0x00,0x00,0x00, 0x11,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x25,0x00,0x00,0x00, -0x3a,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x84,0x00,0x00,0x00, -0xac,0x00,0x00,0x00,0xc1,0x00,0x00,0x00,0x37,0x03,0x00,0x00, -0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00, -0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x11,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x18,0x00,0x00,0x00, +0x3a,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,0x5d,0x00,0x00,0x00, +0x8b,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,0xc8,0x00,0x00,0x00, +0x3e,0x03,0x00,0x00,0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00, +0x11,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x11,0x00,0x00,0x00, +0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x18,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x48,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x19,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x03,0x00,0x19,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x22,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x21,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x23,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x23,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x23,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x23,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x23,0x00,0x00,0x00,0x05,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x23,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x23,0x00,0x00,0x00, +0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0x23,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x3a,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x3e,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x5d,0x00,0x00,0x00, +0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xa9,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xab,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xad,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0xaf,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xaf,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0xaf,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0xaf,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x6c,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xb0,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x48,0x00,0x04,0x00, +0xb1,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0xb1,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0xb1,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xb3,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xb3,0x00,0x00,0x00,0x21,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xc5,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00, -0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xc6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0xc6,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, -0x19,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x21,0x00,0x00,0x00, -0x03,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x23,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x23,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x23,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x23,0x00,0x00,0x00, -0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x23,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x23,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x23,0x00,0x00,0x00,0x07,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x20,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x23,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x3a,0x00,0x00,0x00, -0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x55,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xa2,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xa4,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xa6,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0xa8,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0xa8,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x20,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xa8,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x60,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0xa8,0x00,0x00,0x00,0x03,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xa9,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x6e,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0xaa,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xaa,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0xaa,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xac,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xac,0x00,0x00,0x00, -0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xbe,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0xbf,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xbf,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0xbf,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xc1,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xc1,0x00,0x00,0x00, -0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x34,0x03,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0x35,0x03,0x00,0x00,0x00,0x00,0x00,0x00, -0x19,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x35,0x03,0x00,0x00, -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0x35,0x03,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x37,0x03,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x37,0x03,0x00,0x00, -0x21,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x3e,0x03,0x00,0x00,0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00, -0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00, -0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x17,0x00,0x04,0x00,0x0f,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x10,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x10,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x12,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x13,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x15,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x1d,0x00,0x03,0x00,0x18,0x00,0x00,0x00,0x17,0x00,0x00,0x00, -0x1e,0x00,0x03,0x00,0x19,0x00,0x00,0x00,0x18,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x1a,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x19,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x1a,0x00,0x00,0x00, -0x1b,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x1e,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x17,0x00,0x00,0x00,0x1e,0x00,0x0b,0x00,0x23,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0xc6,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xc8,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xc8,0x00,0x00,0x00,0x21,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x3b,0x03,0x00,0x00, +0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00, +0x3c,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x3c,0x03,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0x3c,0x03,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x3e,0x03,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x3e,0x03,0x00,0x00,0x21,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x45,0x03,0x00,0x00, +0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x13,0x00,0x02,0x00, +0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x17,0x00,0x04,0x00, +0x0f,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x10,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x0f,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00, +0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x13,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, +0x18,0x00,0x00,0x00,0x17,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, +0x19,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x1a,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x19,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x1a,0x00,0x00,0x00,0x1b,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x1e,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x17,0x00,0x00,0x00, +0x1e,0x00,0x0b,0x00,0x23,0x00,0x00,0x00,0x06,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x24,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x24,0x00,0x00,0x00, -0x25,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x26,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x27,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0x2c,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x35,0x00,0x00,0x00, -0x03,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00, -0x3a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4b,0x00,0x00,0x00, -0x00,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00, -0x55,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x58,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x60,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x67,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x24,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x24,0x00,0x00,0x00,0x25,0x00,0x00,0x00, +0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0x26,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x27,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x2c,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0x30,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x03,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00,0x3a,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x3b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0x10,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x41,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x53,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x3b,0x00,0x04,0x00, +0x10,0x00,0x00,0x00,0x5d,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x67,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x6e,0x00,0x00,0x00, 0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x6a,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x6b,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x6f,0x00,0x00,0x00, +0x17,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x72,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x76,0x00,0x00,0x00, 0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x76,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x7c,0x00,0x00,0x00, -0x80,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0x81,0x00,0x00,0x00, -0x20,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0x82,0x00,0x00,0x00, -0x81,0x00,0x00,0x00,0x76,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x83,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x82,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0x83,0x00,0x00,0x00,0x84,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,0x20,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x83,0x00,0x00,0x00, +0x80,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0x88,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0x89,0x00,0x00,0x00, +0x88,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x8a,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x89,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x8a,0x00,0x00,0x00,0x8b,0x00,0x00,0x00, 0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x85,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x81,0x00,0x00,0x00,0x8a,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x8b,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x81,0x00,0x00,0x00,0x14,0x00,0x02,0x00,0x99,0x00,0x00,0x00, -0x1c,0x00,0x04,0x00,0xa2,0x00,0x00,0x00,0x67,0x00,0x00,0x00, -0x76,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xa3,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, -0xa4,0x00,0x00,0x00,0x67,0x00,0x00,0x00,0xa3,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa5,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0xa6,0x00,0x00,0x00, -0x67,0x00,0x00,0x00,0xa5,0x00,0x00,0x00,0x16,0x00,0x03,0x00, -0xa7,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x1e,0x00,0x06,0x00, -0xa8,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,0xa4,0x00,0x00,0x00, -0xa6,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, -0xa9,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, -0xaa,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0xab,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xaa,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0xab,0x00,0x00,0x00,0xac,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xb0,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, -0xbe,0x00,0x00,0x00,0x81,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, -0xbf,0x00,0x00,0x00,0xbe,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0xc0,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xbf,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0xc0,0x00,0x00,0x00,0xc1,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xc9,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0x81,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0xcf,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x67,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0xd6,0x00,0x00,0x00, +0x8c,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x88,0x00,0x00,0x00,0x91,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x92,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x88,0x00,0x00,0x00,0x14,0x00,0x02,0x00,0xa0,0x00,0x00,0x00, +0x1c,0x00,0x04,0x00,0xa9,0x00,0x00,0x00,0x6e,0x00,0x00,0x00, +0x7d,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xaa,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, +0xab,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0xaa,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xac,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0xad,0x00,0x00,0x00, +0x6e,0x00,0x00,0x00,0xac,0x00,0x00,0x00,0x16,0x00,0x03,0x00, +0xae,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x1e,0x00,0x06,0x00, +0xaf,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,0xab,0x00,0x00,0x00, +0xad,0x00,0x00,0x00,0xae,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, +0xb0,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, +0xb1,0x00,0x00,0x00,0xb0,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0xb2,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xb1,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0xb2,0x00,0x00,0x00,0xb3,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xb7,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0xae,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, +0xc5,0x00,0x00,0x00,0x88,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, +0xc6,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0xc7,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xc6,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0xc7,0x00,0x00,0x00,0xc8,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xd0,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x88,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0xd6,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x6e,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0xdd,0x00,0x00,0x00, 0x0f,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0xe7,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x20,0x01,0x00,0x00,0x0a,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x9d,0x01,0x00,0x00, +0xee,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0x27,0x01,0x00,0x00,0x0a,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa4,0x01,0x00,0x00, 0x60,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0xa4,0x01,0x00,0x00,0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0xf5,0x01,0x00,0x00,0x09,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x2d,0x02,0x00,0x00, +0xab,0x01,0x00,0x00,0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0xfc,0x01,0x00,0x00,0x09,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x34,0x02,0x00,0x00, 0x30,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0x3e,0x02,0x00,0x00,0x0b,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x77,0x02,0x00,0x00,0x50,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x7e,0x02,0x00,0x00, +0x45,0x02,0x00,0x00,0x0b,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x7e,0x02,0x00,0x00,0x50,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x85,0x02,0x00,0x00, 0x05,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xc1,0x02,0x00,0x00,0x70,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0xc8,0x02,0x00,0x00,0x07,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x16,0x03,0x00,0x00, -0x08,0x01,0x00,0x00,0x1d,0x00,0x03,0x00,0x34,0x03,0x00,0x00, -0x81,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x35,0x03,0x00,0x00, -0x34,0x03,0x00,0x00,0x20,0x00,0x04,0x00,0x36,0x03,0x00,0x00, -0x0c,0x00,0x00,0x00,0x35,0x03,0x00,0x00,0x3b,0x00,0x04,0x00, -0x36,0x03,0x00,0x00,0x37,0x03,0x00,0x00,0x0c,0x00,0x00,0x00, -0x2c,0x00,0x06,0x00,0x0f,0x00,0x00,0x00,0x3e,0x03,0x00,0x00, -0x76,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x12,0x00,0x00,0x00, +0xc8,0x02,0x00,0x00,0x70,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0xcf,0x02,0x00,0x00,0x07,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x1d,0x03,0x00,0x00, +0x08,0x01,0x00,0x00,0x1d,0x00,0x03,0x00,0x3b,0x03,0x00,0x00, +0x88,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x3c,0x03,0x00,0x00, +0x3b,0x03,0x00,0x00,0x20,0x00,0x04,0x00,0x3d,0x03,0x00,0x00, +0x0c,0x00,0x00,0x00,0x3c,0x03,0x00,0x00,0x3b,0x00,0x04,0x00, +0x3d,0x03,0x00,0x00,0x3e,0x03,0x00,0x00,0x0c,0x00,0x00,0x00, +0x2c,0x00,0x06,0x00,0x0f,0x00,0x00,0x00,0x45,0x03,0x00,0x00, +0x7d,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x12,0x00,0x00,0x00, 0x36,0x00,0x05,0x00,0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, 0x05,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00, 0x3c,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x3b,0x00,0x00,0x00, 0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x3d,0x00,0x00,0x00, 0x3c,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00, -0x42,0x03,0x00,0x00,0x11,0x00,0x00,0x00,0x12,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x43,0x03,0x00,0x00, -0x42,0x03,0x00,0x00,0x41,0x00,0x06,0x00,0x1e,0x00,0x00,0x00, -0x45,0x03,0x00,0x00,0x1b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x43,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0x46,0x03,0x00,0x00,0x45,0x03,0x00,0x00,0x7c,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x47,0x03,0x00,0x00,0x46,0x03,0x00,0x00, -0x41,0x00,0x05,0x00,0x27,0x00,0x00,0x00,0x49,0x03,0x00,0x00, -0x25,0x00,0x00,0x00,0x26,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x4a,0x03,0x00,0x00,0x49,0x03,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4b,0x03,0x00,0x00, -0x47,0x03,0x00,0x00,0x4a,0x03,0x00,0x00,0x41,0x00,0x05,0x00, -0x27,0x00,0x00,0x00,0x4d,0x03,0x00,0x00,0x25,0x00,0x00,0x00, -0x2c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x4e,0x03,0x00,0x00,0x4d,0x03,0x00,0x00,0x89,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x4f,0x03,0x00,0x00,0x43,0x03,0x00,0x00, -0x4e,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x27,0x00,0x00,0x00, -0x50,0x03,0x00,0x00,0x25,0x00,0x00,0x00,0x30,0x00,0x00,0x00, +0x3f,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,0x3b,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x40,0x00,0x00,0x00, +0x3f,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00, +0x42,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x41,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x43,0x00,0x00,0x00, +0x42,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x44,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x43,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x45,0x00,0x00,0x00, +0x3d,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0x13,0x00,0x00,0x00,0x49,0x03,0x00,0x00,0x11,0x00,0x00,0x00, +0x12,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x4a,0x03,0x00,0x00,0x49,0x03,0x00,0x00,0x41,0x00,0x06,0x00, +0x1e,0x00,0x00,0x00,0x4c,0x03,0x00,0x00,0x1b,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0x4a,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0x4d,0x03,0x00,0x00,0x4c,0x03,0x00,0x00, +0x7c,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4e,0x03,0x00,0x00, +0x4d,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x27,0x00,0x00,0x00, +0x50,0x03,0x00,0x00,0x25,0x00,0x00,0x00,0x26,0x00,0x00,0x00, 0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x51,0x03,0x00,0x00, 0x50,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x52,0x03,0x00,0x00,0x4f,0x03,0x00,0x00,0x51,0x03,0x00,0x00, +0x52,0x03,0x00,0x00,0x4e,0x03,0x00,0x00,0x51,0x03,0x00,0x00, 0x41,0x00,0x05,0x00,0x27,0x00,0x00,0x00,0x54,0x03,0x00,0x00, -0x25,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x25,0x00,0x00,0x00,0x2c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, 0x06,0x00,0x00,0x00,0x55,0x03,0x00,0x00,0x54,0x03,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x56,0x03,0x00,0x00, -0x43,0x03,0x00,0x00,0x55,0x03,0x00,0x00,0x41,0x00,0x05,0x00, -0x27,0x00,0x00,0x00,0x49,0x00,0x00,0x00,0x25,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x4a,0x00,0x00,0x00,0x49,0x00,0x00,0x00,0x86,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x4c,0x00,0x00,0x00,0x4a,0x00,0x00,0x00, -0x4b,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x4f,0x00,0x00,0x00,0x4b,0x03,0x00,0x00,0x4b,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x52,0x00,0x00,0x00, -0x3d,0x00,0x00,0x00,0x4c,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x53,0x00,0x00,0x00,0x4f,0x00,0x00,0x00, -0x52,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00, -0x56,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x3b,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x57,0x00,0x00,0x00, -0x56,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0x57,0x00,0x00,0x00,0x58,0x00,0x00,0x00, -0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5d,0x00,0x00,0x00, -0x57,0x00,0x00,0x00,0x58,0x00,0x00,0x00,0x86,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0x60,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x65,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x61,0x00,0x00,0x00, -0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x66,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0x65,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x6b,0x00,0x00,0x00, -0x61,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0x6e,0x00,0x00,0x00,0x6a,0x00,0x00,0x00,0x6d,0x00,0x00,0x00, -0x72,0x00,0x04,0x00,0x6f,0x00,0x00,0x00,0x70,0x00,0x00,0x00, -0x6e,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x67,0x00,0x00,0x00, -0x71,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x74,0x00,0x00,0x00,0x58,0x00,0x00,0x00, -0x66,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x78,0x00,0x00,0x00,0x76,0x00,0x00,0x00,0x61,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7a,0x00,0x00,0x00, -0x78,0x00,0x00,0x00,0x74,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x7c,0x00,0x00,0x00, -0x61,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x80,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x74,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x87,0x00,0x00,0x00, -0x85,0x00,0x00,0x00,0x5d,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x89,0x00,0x00,0x00,0x87,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x8b,0x00,0x00,0x00, -0x8c,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x89,0x00,0x00,0x00, -0x3e,0x00,0x03,0x00,0x8c,0x00,0x00,0x00,0x8a,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0x92,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0x92,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00, -0x57,0x03,0x00,0x00,0x5d,0x00,0x00,0x00,0x05,0x00,0x00,0x00, -0x15,0x03,0x00,0x00,0x95,0x00,0x00,0x00,0xb0,0x00,0x05,0x00, -0x99,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,0x57,0x03,0x00,0x00, -0x4c,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x94,0x00,0x00,0x00, -0x95,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, -0x9a,0x00,0x00,0x00,0x93,0x00,0x00,0x00,0x94,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0x93,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0x57,0x03,0x00,0x00, -0x4b,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x9f,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0x80,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xaf,0x00,0x00,0x00, -0x53,0x00,0x00,0x00,0x57,0x03,0x00,0x00,0x41,0x00,0x07,0x00, -0xb0,0x00,0x00,0x00,0xb1,0x00,0x00,0x00,0xac,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0x35,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0xa7,0x00,0x00,0x00,0xb2,0x00,0x00,0x00, -0xb1,0x00,0x00,0x00,0x73,0x00,0x04,0x00,0x81,0x00,0x00,0x00, -0xb3,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, -0xb7,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xb7,0x00,0x00,0x00, -0xf5,0x00,0x07,0x00,0x81,0x00,0x00,0x00,0x5b,0x03,0x00,0x00, -0x8a,0x00,0x00,0x00,0x93,0x00,0x00,0x00,0x06,0x03,0x00,0x00, -0xb8,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x17,0x00,0x00,0x00, -0x5a,0x03,0x00,0x00,0x1c,0x00,0x00,0x00,0x93,0x00,0x00,0x00, -0x08,0x03,0x00,0x00,0xb8,0x00,0x00,0x00,0xb1,0x00,0x05,0x00, -0x99,0x00,0x00,0x00,0xbd,0x00,0x00,0x00,0x5a,0x03,0x00,0x00, -0x30,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xb9,0x00,0x00,0x00, -0xb8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, -0xbd,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0xb9,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0xb8,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,0x52,0x03,0x00,0x00, -0x9f,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xc6,0x00,0x00,0x00,0x5a,0x03,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,0xc4,0x00,0x00,0x00, -0xc6,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xc9,0x00,0x00,0x00, -0xca,0x00,0x00,0x00,0xc1,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0xc7,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x81,0x00,0x00,0x00, -0xcb,0x00,0x00,0x00,0xca,0x00,0x00,0x00,0x41,0x00,0x08,0x00, -0xcf,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0xac,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0x30,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x67,0x00,0x00,0x00, -0xd1,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0xc2,0x00,0x05,0x00, -0x67,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,0xd1,0x00,0x00,0x00, -0x6d,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xd4,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,0x7c,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0xd4,0x00,0x00,0x00, -0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xd7,0x00,0x00,0x00, -0xd5,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,0x41,0x00,0x08,0x00, -0xcf,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,0xac,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0x30,0x00,0x00,0x00, -0x2c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x67,0x00,0x00,0x00, -0xdc,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,0xc2,0x00,0x05,0x00, -0x67,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0xdc,0x00,0x00,0x00, -0x6d,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xe0,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0x7c,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0xe1,0x00,0x00,0x00,0xe0,0x00,0x00,0x00, -0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xe2,0x00,0x00,0x00, -0xe1,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0xc4,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0xe3,0x00,0x00,0x00,0xe2,0x00,0x00,0x00, -0x26,0x00,0x00,0x00,0xc5,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0xe4,0x00,0x00,0x00,0xd7,0x00,0x00,0x00,0xe3,0x00,0x00,0x00, -0x72,0x00,0x04,0x00,0x6f,0x00,0x00,0x00,0xe5,0x00,0x00,0x00, -0xe4,0x00,0x00,0x00,0x72,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0xe6,0x00,0x00,0x00,0xe5,0x00,0x00,0x00,0x82,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0xe6,0x00,0x00,0x00, -0xe7,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x81,0x00,0x00,0x00, -0xe9,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0x85,0x00,0x05,0x00, -0x81,0x00,0x00,0x00,0xea,0x00,0x00,0x00,0xcb,0x00,0x00,0x00, -0xe9,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xf1,0x00,0x00,0x00,0x7a,0x00,0x00,0x00,0xc6,0x00,0x00,0x00, -0x41,0x00,0x08,0x00,0xcf,0x00,0x00,0x00,0xf2,0x00,0x00,0x00, -0xac,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xaf,0x00,0x00,0x00, -0x6a,0x00,0x00,0x00,0xf1,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x67,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,0xf2,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xf4,0x00,0x00,0x00, -0xf3,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0xf5,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,0xc7,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,0xf5,0x00,0x00,0x00, -0x35,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xfd,0x00,0x00,0x00,0x74,0x00,0x00,0x00,0xc6,0x00,0x00,0x00, -0x41,0x00,0x08,0x00,0xcf,0x00,0x00,0x00,0xfe,0x00,0x00,0x00, -0xac,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xaf,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x67,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xfe,0x00,0x00,0x00, -0xc4,0x00,0x05,0x00,0x67,0x00,0x00,0x00,0x01,0x01,0x00,0x00, -0x71,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xc7,0x00,0x05,0x00, -0x67,0x00,0x00,0x00,0x02,0x01,0x00,0x00,0xff,0x00,0x00,0x00, -0x01,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x03,0x01,0x00,0x00,0x02,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x04,0x01,0x00,0x00,0x03,0x01,0x00,0x00, -0xab,0x00,0x05,0x00,0x99,0x00,0x00,0x00,0x05,0x01,0x00,0x00, -0x04,0x01,0x00,0x00,0x1c,0x00,0x00,0x00,0xa9,0x00,0x06,0x00, -0x17,0x00,0x00,0x00,0x06,0x01,0x00,0x00,0x05,0x01,0x00,0x00, -0x1c,0x00,0x00,0x00,0x26,0x00,0x00,0x00,0x82,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0x07,0x01,0x00,0x00,0xf6,0x00,0x00,0x00, -0x06,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x81,0x00,0x00,0x00, -0x08,0x01,0x00,0x00,0x07,0x01,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x10,0x01,0x00,0x00,0xc7,0x00,0x00,0x00, -0x76,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xc9,0x00,0x00,0x00, -0x11,0x01,0x00,0x00,0xc1,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x10,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x81,0x00,0x00,0x00, -0x12,0x01,0x00,0x00,0x11,0x01,0x00,0x00,0x41,0x00,0x08,0x00, -0xcf,0x00,0x00,0x00,0x16,0x01,0x00,0x00,0xac,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0x30,0x00,0x00,0x00, -0x30,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x67,0x00,0x00,0x00, -0x17,0x01,0x00,0x00,0x16,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, -0x67,0x00,0x00,0x00,0x19,0x01,0x00,0x00,0x17,0x01,0x00,0x00, -0x6d,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x1a,0x01,0x00,0x00,0x19,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x1b,0x01,0x00,0x00,0x1a,0x01,0x00,0x00, -0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x1c,0x01,0x00,0x00, -0x1b,0x01,0x00,0x00,0xd6,0x00,0x00,0x00,0x41,0x00,0x08,0x00, -0xcf,0x00,0x00,0x00,0x21,0x01,0x00,0x00,0xac,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0x30,0x00,0x00,0x00, -0x20,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x67,0x00,0x00,0x00, -0x22,0x01,0x00,0x00,0x21,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, -0x67,0x00,0x00,0x00,0x25,0x01,0x00,0x00,0x22,0x01,0x00,0x00, -0x6d,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x26,0x01,0x00,0x00,0x25,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x27,0x01,0x00,0x00,0x26,0x01,0x00,0x00, -0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x28,0x01,0x00,0x00, -0x27,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0xc4,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0x29,0x01,0x00,0x00,0x28,0x01,0x00,0x00, -0x26,0x00,0x00,0x00,0xc5,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0x2a,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,0x29,0x01,0x00,0x00, -0x72,0x00,0x04,0x00,0x6f,0x00,0x00,0x00,0x2b,0x01,0x00,0x00, -0x2a,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0x2c,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,0x82,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0x2d,0x01,0x00,0x00,0x2c,0x01,0x00,0x00, -0xe7,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x81,0x00,0x00,0x00, -0x2e,0x01,0x00,0x00,0x2d,0x01,0x00,0x00,0x85,0x00,0x05,0x00, -0x81,0x00,0x00,0x00,0x2f,0x01,0x00,0x00,0x12,0x01,0x00,0x00, -0x2e,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x67,0x00,0x00,0x00, -0x38,0x01,0x00,0x00,0xf2,0x00,0x00,0x00,0xc2,0x00,0x05,0x00, -0x67,0x00,0x00,0x00,0x39,0x01,0x00,0x00,0x38,0x01,0x00,0x00, -0x30,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x3a,0x01,0x00,0x00,0x39,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x3b,0x01,0x00,0x00,0x3a,0x01,0x00,0x00, -0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x3c,0x01,0x00,0x00, -0x3b,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x67,0x00,0x00,0x00,0x45,0x01,0x00,0x00,0xfe,0x00,0x00,0x00, -0xc4,0x00,0x05,0x00,0x67,0x00,0x00,0x00,0x47,0x01,0x00,0x00, -0x71,0x00,0x00,0x00,0x6a,0x00,0x00,0x00,0xc7,0x00,0x05,0x00, -0x67,0x00,0x00,0x00,0x48,0x01,0x00,0x00,0x45,0x01,0x00,0x00, -0x47,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x49,0x01,0x00,0x00,0x48,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x4a,0x01,0x00,0x00,0x49,0x01,0x00,0x00, -0xab,0x00,0x05,0x00,0x99,0x00,0x00,0x00,0x4b,0x01,0x00,0x00, -0x4a,0x01,0x00,0x00,0x1c,0x00,0x00,0x00,0xa9,0x00,0x06,0x00, -0x17,0x00,0x00,0x00,0x4c,0x01,0x00,0x00,0x4b,0x01,0x00,0x00, -0x1c,0x00,0x00,0x00,0x26,0x00,0x00,0x00,0x82,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0x4d,0x01,0x00,0x00,0x3c,0x01,0x00,0x00, -0x4c,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x81,0x00,0x00,0x00, -0x4e,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,0x85,0x00,0x05,0x00, -0x81,0x00,0x00,0x00,0x4f,0x01,0x00,0x00,0x2f,0x01,0x00,0x00, -0x4e,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0x81,0x00,0x00,0x00, -0x50,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0xea,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x4f,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x57,0x01,0x00,0x00, -0xc7,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0x41,0x00,0x06,0x00, -0xc9,0x00,0x00,0x00,0x58,0x01,0x00,0x00,0xc1,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0x57,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0x81,0x00,0x00,0x00,0x59,0x01,0x00,0x00,0x58,0x01,0x00,0x00, -0x41,0x00,0x08,0x00,0xcf,0x00,0x00,0x00,0x5d,0x01,0x00,0x00, -0xac,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xaf,0x00,0x00,0x00, -0x30,0x00,0x00,0x00,0x26,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x67,0x00,0x00,0x00,0x5e,0x01,0x00,0x00,0x5d,0x01,0x00,0x00, -0xc2,0x00,0x05,0x00,0x67,0x00,0x00,0x00,0x60,0x01,0x00,0x00, -0x5e,0x01,0x00,0x00,0x6d,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x61,0x01,0x00,0x00,0x60,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x62,0x01,0x00,0x00, -0x61,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0x63,0x01,0x00,0x00,0x62,0x01,0x00,0x00,0xd6,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x67,0x00,0x00,0x00,0x68,0x01,0x00,0x00, -0xdb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x6a,0x01,0x00,0x00,0x6d,0x00,0x00,0x00,0x58,0x00,0x00,0x00, -0xc2,0x00,0x05,0x00,0x67,0x00,0x00,0x00,0x6b,0x01,0x00,0x00, -0x68,0x01,0x00,0x00,0x6a,0x01,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x6c,0x01,0x00,0x00,0x6b,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x6d,0x01,0x00,0x00, -0x6c,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0x6e,0x01,0x00,0x00,0x6d,0x01,0x00,0x00,0x35,0x00,0x00,0x00, -0xc4,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x6f,0x01,0x00,0x00, -0x6e,0x01,0x00,0x00,0x26,0x00,0x00,0x00,0xc5,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0x70,0x01,0x00,0x00,0x63,0x01,0x00,0x00, -0x6f,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x6f,0x00,0x00,0x00, -0x71,0x01,0x00,0x00,0x70,0x01,0x00,0x00,0x72,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x72,0x01,0x00,0x00,0x71,0x01,0x00,0x00, -0x82,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x73,0x01,0x00,0x00, -0x72,0x01,0x00,0x00,0xe7,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, -0x81,0x00,0x00,0x00,0x74,0x01,0x00,0x00,0x73,0x01,0x00,0x00, -0x85,0x00,0x05,0x00,0x81,0x00,0x00,0x00,0x75,0x01,0x00,0x00, -0x59,0x01,0x00,0x00,0x74,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0x67,0x00,0x00,0x00,0x7e,0x01,0x00,0x00,0xf2,0x00,0x00,0x00, -0xc2,0x00,0x05,0x00,0x67,0x00,0x00,0x00,0x7f,0x01,0x00,0x00, -0x7e,0x01,0x00,0x00,0x26,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x80,0x01,0x00,0x00,0x7f,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x81,0x01,0x00,0x00, -0x80,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0x82,0x01,0x00,0x00,0x81,0x01,0x00,0x00,0x35,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x67,0x00,0x00,0x00,0x8b,0x01,0x00,0x00, -0xfe,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x67,0x00,0x00,0x00, -0x8d,0x01,0x00,0x00,0x71,0x00,0x00,0x00,0x30,0x00,0x00,0x00, -0xc7,0x00,0x05,0x00,0x67,0x00,0x00,0x00,0x8e,0x01,0x00,0x00, -0x8b,0x01,0x00,0x00,0x8d,0x01,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x8f,0x01,0x00,0x00,0x8e,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x90,0x01,0x00,0x00, -0x8f,0x01,0x00,0x00,0xab,0x00,0x05,0x00,0x99,0x00,0x00,0x00, -0x91,0x01,0x00,0x00,0x90,0x01,0x00,0x00,0x1c,0x00,0x00,0x00, -0xa9,0x00,0x06,0x00,0x17,0x00,0x00,0x00,0x92,0x01,0x00,0x00, -0x91,0x01,0x00,0x00,0x1c,0x00,0x00,0x00,0x26,0x00,0x00,0x00, -0x82,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x93,0x01,0x00,0x00, -0x82,0x01,0x00,0x00,0x92,0x01,0x00,0x00,0x6f,0x00,0x04,0x00, -0x81,0x00,0x00,0x00,0x94,0x01,0x00,0x00,0x93,0x01,0x00,0x00, -0x0c,0x00,0x08,0x00,0x81,0x00,0x00,0x00,0x96,0x01,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x75,0x01,0x00,0x00, -0x94,0x01,0x00,0x00,0x50,0x01,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x9e,0x01,0x00,0x00,0xc7,0x00,0x00,0x00, -0x9d,0x01,0x00,0x00,0x41,0x00,0x06,0x00,0xc9,0x00,0x00,0x00, -0x9f,0x01,0x00,0x00,0xc1,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x9e,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x81,0x00,0x00,0x00, -0xa0,0x01,0x00,0x00,0x9f,0x01,0x00,0x00,0x41,0x00,0x08,0x00, -0xcf,0x00,0x00,0x00,0xa5,0x01,0x00,0x00,0xac,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0x30,0x00,0x00,0x00, -0xa4,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x67,0x00,0x00,0x00, -0xa6,0x01,0x00,0x00,0xa5,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, -0x67,0x00,0x00,0x00,0xa8,0x01,0x00,0x00,0xa6,0x01,0x00,0x00, -0x6d,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xa9,0x01,0x00,0x00,0xa8,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0xaa,0x01,0x00,0x00,0xa9,0x01,0x00,0x00, -0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xab,0x01,0x00,0x00, -0xaa,0x01,0x00,0x00,0xd6,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x67,0x00,0x00,0x00,0xb0,0x01,0x00,0x00,0x21,0x01,0x00,0x00, -0xc2,0x00,0x05,0x00,0x67,0x00,0x00,0x00,0xb3,0x01,0x00,0x00, -0xb0,0x01,0x00,0x00,0x6a,0x01,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xb4,0x01,0x00,0x00,0xb3,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0xb5,0x01,0x00,0x00, -0xb4,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0xb6,0x01,0x00,0x00,0xb5,0x01,0x00,0x00,0x35,0x00,0x00,0x00, -0xc4,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xb7,0x01,0x00,0x00, -0xb6,0x01,0x00,0x00,0x26,0x00,0x00,0x00,0xc5,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0xb8,0x01,0x00,0x00,0xab,0x01,0x00,0x00, -0xb7,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x6f,0x00,0x00,0x00, -0xb9,0x01,0x00,0x00,0xb8,0x01,0x00,0x00,0x72,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0xba,0x01,0x00,0x00,0xb9,0x01,0x00,0x00, -0x82,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xbb,0x01,0x00,0x00, -0xba,0x01,0x00,0x00,0xe7,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, -0x81,0x00,0x00,0x00,0xbc,0x01,0x00,0x00,0xbb,0x01,0x00,0x00, -0x85,0x00,0x05,0x00,0x81,0x00,0x00,0x00,0xbd,0x01,0x00,0x00, -0xa0,0x01,0x00,0x00,0xbc,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0x67,0x00,0x00,0x00,0xc6,0x01,0x00,0x00,0xf2,0x00,0x00,0x00, -0xc2,0x00,0x05,0x00,0x67,0x00,0x00,0x00,0xc7,0x01,0x00,0x00, -0xc6,0x01,0x00,0x00,0xa4,0x01,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xc8,0x01,0x00,0x00,0xc7,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0xc9,0x01,0x00,0x00, -0xc8,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0xca,0x01,0x00,0x00,0xc9,0x01,0x00,0x00,0x35,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x67,0x00,0x00,0x00,0xd3,0x01,0x00,0x00, -0xfe,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x67,0x00,0x00,0x00, -0xd5,0x01,0x00,0x00,0x71,0x00,0x00,0x00,0x35,0x00,0x00,0x00, -0xc7,0x00,0x05,0x00,0x67,0x00,0x00,0x00,0xd6,0x01,0x00,0x00, -0xd3,0x01,0x00,0x00,0xd5,0x01,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xd7,0x01,0x00,0x00,0xd6,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0xd8,0x01,0x00,0x00, -0xd7,0x01,0x00,0x00,0xab,0x00,0x05,0x00,0x99,0x00,0x00,0x00, -0xd9,0x01,0x00,0x00,0xd8,0x01,0x00,0x00,0x1c,0x00,0x00,0x00, -0xa9,0x00,0x06,0x00,0x17,0x00,0x00,0x00,0xda,0x01,0x00,0x00, -0xd9,0x01,0x00,0x00,0x1c,0x00,0x00,0x00,0x26,0x00,0x00,0x00, -0x82,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xdb,0x01,0x00,0x00, -0xca,0x01,0x00,0x00,0xda,0x01,0x00,0x00,0x6f,0x00,0x04,0x00, -0x81,0x00,0x00,0x00,0xdc,0x01,0x00,0x00,0xdb,0x01,0x00,0x00, -0x0c,0x00,0x08,0x00,0x81,0x00,0x00,0x00,0xde,0x01,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xbd,0x01,0x00,0x00, -0xdc,0x01,0x00,0x00,0x96,0x01,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xe5,0x01,0x00,0x00,0xc7,0x00,0x00,0x00, -0x85,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xc9,0x00,0x00,0x00, -0xe6,0x01,0x00,0x00,0xc1,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0xe5,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x81,0x00,0x00,0x00, -0xe7,0x01,0x00,0x00,0xe6,0x01,0x00,0x00,0x41,0x00,0x08,0x00, -0xcf,0x00,0x00,0x00,0xeb,0x01,0x00,0x00,0xac,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0x30,0x00,0x00,0x00, -0x6a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x67,0x00,0x00,0x00, -0xec,0x01,0x00,0x00,0xeb,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, -0x67,0x00,0x00,0x00,0xee,0x01,0x00,0x00,0xec,0x01,0x00,0x00, -0x6d,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xef,0x01,0x00,0x00,0xee,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0xf0,0x01,0x00,0x00,0xef,0x01,0x00,0x00, -0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xf1,0x01,0x00,0x00, -0xf0,0x01,0x00,0x00,0xd6,0x00,0x00,0x00,0x41,0x00,0x08,0x00, -0xcf,0x00,0x00,0x00,0xf6,0x01,0x00,0x00,0xac,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0x30,0x00,0x00,0x00, -0xf5,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x67,0x00,0x00,0x00, -0xf7,0x01,0x00,0x00,0xf6,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, -0x67,0x00,0x00,0x00,0xfa,0x01,0x00,0x00,0xf7,0x01,0x00,0x00, -0x6d,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xfb,0x01,0x00,0x00,0xfa,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0xfc,0x01,0x00,0x00,0xfb,0x01,0x00,0x00, -0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xfd,0x01,0x00,0x00, -0xfc,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0xc4,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0xfe,0x01,0x00,0x00,0xfd,0x01,0x00,0x00, -0x26,0x00,0x00,0x00,0xc5,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0xff,0x01,0x00,0x00,0xf1,0x01,0x00,0x00,0xfe,0x01,0x00,0x00, -0x72,0x00,0x04,0x00,0x6f,0x00,0x00,0x00,0x00,0x02,0x00,0x00, -0xff,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0x01,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x82,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0x02,0x02,0x00,0x00,0x01,0x02,0x00,0x00, -0xe7,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x81,0x00,0x00,0x00, -0x03,0x02,0x00,0x00,0x02,0x02,0x00,0x00,0x85,0x00,0x05,0x00, -0x81,0x00,0x00,0x00,0x04,0x02,0x00,0x00,0xe7,0x01,0x00,0x00, -0x03,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x0c,0x02,0x00,0x00,0xf1,0x00,0x00,0x00,0x85,0x00,0x00,0x00, -0x41,0x00,0x08,0x00,0xcf,0x00,0x00,0x00,0x0d,0x02,0x00,0x00, -0xac,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xaf,0x00,0x00,0x00, -0x6a,0x00,0x00,0x00,0x0c,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0x67,0x00,0x00,0x00,0x0e,0x02,0x00,0x00,0x0d,0x02,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x0f,0x02,0x00,0x00, -0x0e,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0x10,0x02,0x00,0x00,0x0f,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0x11,0x02,0x00,0x00,0x10,0x02,0x00,0x00, -0x35,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x19,0x02,0x00,0x00,0xfd,0x00,0x00,0x00,0x85,0x00,0x00,0x00, -0x41,0x00,0x08,0x00,0xcf,0x00,0x00,0x00,0x1a,0x02,0x00,0x00, -0xac,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xaf,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0x19,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0x67,0x00,0x00,0x00,0x1b,0x02,0x00,0x00,0x1a,0x02,0x00,0x00, -0xc7,0x00,0x05,0x00,0x67,0x00,0x00,0x00,0x1e,0x02,0x00,0x00, -0x1b,0x02,0x00,0x00,0x01,0x01,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x1f,0x02,0x00,0x00,0x1e,0x02,0x00,0x00, -0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x20,0x02,0x00,0x00, -0x1f,0x02,0x00,0x00,0xab,0x00,0x05,0x00,0x99,0x00,0x00,0x00, -0x21,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x1c,0x00,0x00,0x00, -0xa9,0x00,0x06,0x00,0x17,0x00,0x00,0x00,0x22,0x02,0x00,0x00, -0x21,0x02,0x00,0x00,0x1c,0x00,0x00,0x00,0x26,0x00,0x00,0x00, -0x82,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x23,0x02,0x00,0x00, -0x11,0x02,0x00,0x00,0x22,0x02,0x00,0x00,0x6f,0x00,0x04,0x00, -0x81,0x00,0x00,0x00,0x24,0x02,0x00,0x00,0x23,0x02,0x00,0x00, -0x0c,0x00,0x08,0x00,0x81,0x00,0x00,0x00,0x26,0x02,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x04,0x02,0x00,0x00, -0x24,0x02,0x00,0x00,0xde,0x01,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x2e,0x02,0x00,0x00,0xc7,0x00,0x00,0x00, -0x2d,0x02,0x00,0x00,0x41,0x00,0x06,0x00,0xc9,0x00,0x00,0x00, -0x2f,0x02,0x00,0x00,0xc1,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x2e,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x81,0x00,0x00,0x00, -0x30,0x02,0x00,0x00,0x2f,0x02,0x00,0x00,0x41,0x00,0x08,0x00, -0xcf,0x00,0x00,0x00,0x34,0x02,0x00,0x00,0xac,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0x30,0x00,0x00,0x00, -0x35,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x67,0x00,0x00,0x00, -0x35,0x02,0x00,0x00,0x34,0x02,0x00,0x00,0xc2,0x00,0x05,0x00, -0x67,0x00,0x00,0x00,0x37,0x02,0x00,0x00,0x35,0x02,0x00,0x00, -0x6d,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x38,0x02,0x00,0x00,0x37,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x39,0x02,0x00,0x00,0x38,0x02,0x00,0x00, -0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x3a,0x02,0x00,0x00, -0x39,0x02,0x00,0x00,0xd6,0x00,0x00,0x00,0x41,0x00,0x08,0x00, -0xcf,0x00,0x00,0x00,0x3f,0x02,0x00,0x00,0xac,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0x30,0x00,0x00,0x00, -0x3e,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x67,0x00,0x00,0x00, -0x40,0x02,0x00,0x00,0x3f,0x02,0x00,0x00,0xc2,0x00,0x05,0x00, -0x67,0x00,0x00,0x00,0x43,0x02,0x00,0x00,0x40,0x02,0x00,0x00, -0x6d,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x44,0x02,0x00,0x00,0x43,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x45,0x02,0x00,0x00,0x44,0x02,0x00,0x00, -0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x46,0x02,0x00,0x00, -0x45,0x02,0x00,0x00,0x35,0x00,0x00,0x00,0xc4,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0x47,0x02,0x00,0x00,0x46,0x02,0x00,0x00, -0x26,0x00,0x00,0x00,0xc5,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0x48,0x02,0x00,0x00,0x3a,0x02,0x00,0x00,0x47,0x02,0x00,0x00, -0x72,0x00,0x04,0x00,0x6f,0x00,0x00,0x00,0x49,0x02,0x00,0x00, -0x48,0x02,0x00,0x00,0x72,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0x4a,0x02,0x00,0x00,0x49,0x02,0x00,0x00,0x82,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0x4b,0x02,0x00,0x00,0x4a,0x02,0x00,0x00, -0xe7,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x81,0x00,0x00,0x00, -0x4c,0x02,0x00,0x00,0x4b,0x02,0x00,0x00,0x85,0x00,0x05,0x00, -0x81,0x00,0x00,0x00,0x4d,0x02,0x00,0x00,0x30,0x02,0x00,0x00, -0x4c,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x67,0x00,0x00,0x00, -0x57,0x02,0x00,0x00,0x0d,0x02,0x00,0x00,0xc2,0x00,0x05,0x00, -0x67,0x00,0x00,0x00,0x58,0x02,0x00,0x00,0x57,0x02,0x00,0x00, -0x30,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x59,0x02,0x00,0x00,0x58,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x5a,0x02,0x00,0x00,0x59,0x02,0x00,0x00, -0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x5b,0x02,0x00,0x00, -0x5a,0x02,0x00,0x00,0x35,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x67,0x00,0x00,0x00,0x65,0x02,0x00,0x00,0x1a,0x02,0x00,0x00, -0xc7,0x00,0x05,0x00,0x67,0x00,0x00,0x00,0x68,0x02,0x00,0x00, -0x65,0x02,0x00,0x00,0x47,0x01,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x69,0x02,0x00,0x00,0x68,0x02,0x00,0x00, -0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x6a,0x02,0x00,0x00, -0x69,0x02,0x00,0x00,0xab,0x00,0x05,0x00,0x99,0x00,0x00,0x00, -0x6b,0x02,0x00,0x00,0x6a,0x02,0x00,0x00,0x1c,0x00,0x00,0x00, -0xa9,0x00,0x06,0x00,0x17,0x00,0x00,0x00,0x6c,0x02,0x00,0x00, -0x6b,0x02,0x00,0x00,0x1c,0x00,0x00,0x00,0x26,0x00,0x00,0x00, -0x82,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x6d,0x02,0x00,0x00, -0x5b,0x02,0x00,0x00,0x6c,0x02,0x00,0x00,0x6f,0x00,0x04,0x00, -0x81,0x00,0x00,0x00,0x6e,0x02,0x00,0x00,0x6d,0x02,0x00,0x00, -0x0c,0x00,0x08,0x00,0x81,0x00,0x00,0x00,0x70,0x02,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x4d,0x02,0x00,0x00, -0x6e,0x02,0x00,0x00,0x26,0x02,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x78,0x02,0x00,0x00,0xc7,0x00,0x00,0x00, -0x77,0x02,0x00,0x00,0x41,0x00,0x06,0x00,0xc9,0x00,0x00,0x00, -0x79,0x02,0x00,0x00,0xc1,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x78,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x81,0x00,0x00,0x00, -0x7a,0x02,0x00,0x00,0x79,0x02,0x00,0x00,0x41,0x00,0x08,0x00, -0xcf,0x00,0x00,0x00,0x7f,0x02,0x00,0x00,0xac,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0x30,0x00,0x00,0x00, -0x7e,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x67,0x00,0x00,0x00, -0x80,0x02,0x00,0x00,0x7f,0x02,0x00,0x00,0xc2,0x00,0x05,0x00, -0x67,0x00,0x00,0x00,0x82,0x02,0x00,0x00,0x80,0x02,0x00,0x00, -0x6d,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x83,0x02,0x00,0x00,0x82,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x84,0x02,0x00,0x00,0x83,0x02,0x00,0x00, -0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x85,0x02,0x00,0x00, -0x84,0x02,0x00,0x00,0xd6,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x67,0x00,0x00,0x00,0x8a,0x02,0x00,0x00,0xf6,0x01,0x00,0x00, -0xc2,0x00,0x05,0x00,0x67,0x00,0x00,0x00,0x8d,0x02,0x00,0x00, -0x8a,0x02,0x00,0x00,0x6a,0x01,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x8e,0x02,0x00,0x00,0x8d,0x02,0x00,0x00, -0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x8f,0x02,0x00,0x00, -0x8e,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0x90,0x02,0x00,0x00,0x8f,0x02,0x00,0x00,0x35,0x00,0x00,0x00, -0xc4,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x91,0x02,0x00,0x00, -0x90,0x02,0x00,0x00,0x26,0x00,0x00,0x00,0xc5,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0x92,0x02,0x00,0x00,0x85,0x02,0x00,0x00, -0x91,0x02,0x00,0x00,0x72,0x00,0x04,0x00,0x6f,0x00,0x00,0x00, -0x93,0x02,0x00,0x00,0x92,0x02,0x00,0x00,0x72,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x94,0x02,0x00,0x00,0x93,0x02,0x00,0x00, -0x82,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x95,0x02,0x00,0x00, -0x94,0x02,0x00,0x00,0xe7,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, -0x81,0x00,0x00,0x00,0x96,0x02,0x00,0x00,0x95,0x02,0x00,0x00, -0x85,0x00,0x05,0x00,0x81,0x00,0x00,0x00,0x97,0x02,0x00,0x00, -0x7a,0x02,0x00,0x00,0x96,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0x67,0x00,0x00,0x00,0xa1,0x02,0x00,0x00,0x0d,0x02,0x00,0x00, -0xc2,0x00,0x05,0x00,0x67,0x00,0x00,0x00,0xa2,0x02,0x00,0x00, -0xa1,0x02,0x00,0x00,0x26,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xa3,0x02,0x00,0x00,0xa2,0x02,0x00,0x00, -0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0xa4,0x02,0x00,0x00, -0xa3,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0xa5,0x02,0x00,0x00,0xa4,0x02,0x00,0x00,0x35,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x67,0x00,0x00,0x00,0xaf,0x02,0x00,0x00, -0x1a,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x67,0x00,0x00,0x00, -0xb2,0x02,0x00,0x00,0xaf,0x02,0x00,0x00,0x8d,0x01,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xb3,0x02,0x00,0x00, -0xb2,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0xb4,0x02,0x00,0x00,0xb3,0x02,0x00,0x00,0xab,0x00,0x05,0x00, -0x99,0x00,0x00,0x00,0xb5,0x02,0x00,0x00,0xb4,0x02,0x00,0x00, +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x56,0x03,0x00,0x00, +0x4a,0x03,0x00,0x00,0x55,0x03,0x00,0x00,0x41,0x00,0x05,0x00, +0x27,0x00,0x00,0x00,0x57,0x03,0x00,0x00,0x25,0x00,0x00,0x00, +0x30,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x58,0x03,0x00,0x00,0x57,0x03,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x59,0x03,0x00,0x00,0x56,0x03,0x00,0x00, +0x58,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x27,0x00,0x00,0x00, +0x5b,0x03,0x00,0x00,0x25,0x00,0x00,0x00,0x35,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x5c,0x03,0x00,0x00, +0x5b,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x5d,0x03,0x00,0x00,0x4a,0x03,0x00,0x00,0x5c,0x03,0x00,0x00, +0x41,0x00,0x05,0x00,0x27,0x00,0x00,0x00,0x51,0x00,0x00,0x00, +0x25,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x52,0x00,0x00,0x00,0x51,0x00,0x00,0x00, +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x54,0x00,0x00,0x00, +0x52,0x00,0x00,0x00,0x53,0x00,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x57,0x00,0x00,0x00,0x52,0x03,0x00,0x00, +0x53,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x5a,0x00,0x00,0x00,0x45,0x00,0x00,0x00,0x54,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5b,0x00,0x00,0x00, +0x57,0x00,0x00,0x00,0x5a,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0x13,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,0x5d,0x00,0x00,0x00, +0x3b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x5f,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x5f,0x00,0x00,0x00, +0x41,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x64,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,0x41,0x00,0x00,0x00, +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x68,0x00,0x00,0x00, +0x60,0x00,0x00,0x00,0x67,0x00,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x67,0x00,0x00,0x00, +0x68,0x00,0x00,0x00,0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x6d,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x6c,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x74,0x00,0x00,0x00, +0x72,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0xc4,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0x75,0x00,0x00,0x00,0x71,0x00,0x00,0x00, +0x74,0x00,0x00,0x00,0x72,0x00,0x04,0x00,0x76,0x00,0x00,0x00, +0x77,0x00,0x00,0x00,0x75,0x00,0x00,0x00,0x7c,0x00,0x04,0x00, +0x6e,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x77,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7b,0x00,0x00,0x00, +0x41,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,0x7d,0x00,0x00,0x00, +0x68,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x81,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,0x7b,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x85,0x00,0x00,0x00, +0x83,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x87,0x00,0x00,0x00,0x85,0x00,0x00,0x00, +0x7b,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x8e,0x00,0x00,0x00,0x8c,0x00,0x00,0x00,0x64,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x90,0x00,0x00,0x00, +0x8e,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0x92,0x00,0x00,0x00,0x93,0x00,0x00,0x00,0x8b,0x00,0x00,0x00, +0x90,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0x93,0x00,0x00,0x00, +0x91,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x99,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0x99,0x00,0x00,0x00,0xf5,0x00,0x07,0x00, +0x06,0x00,0x00,0x00,0x5e,0x03,0x00,0x00,0x64,0x00,0x00,0x00, +0x05,0x00,0x00,0x00,0x1c,0x03,0x00,0x00,0x9c,0x00,0x00,0x00, +0xb0,0x00,0x05,0x00,0xa0,0x00,0x00,0x00,0xa1,0x00,0x00,0x00, +0x5e,0x03,0x00,0x00,0x54,0x00,0x00,0x00,0xf6,0x00,0x04,0x00, +0x9b,0x00,0x00,0x00,0x9c,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0xfa,0x00,0x04,0x00,0xa1,0x00,0x00,0x00,0x9a,0x00,0x00,0x00, +0x9b,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x9a,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa4,0x00,0x00,0x00, +0x5e,0x03,0x00,0x00,0x53,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xa6,0x00,0x00,0x00,0xa4,0x00,0x00,0x00, +0x87,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xb6,0x00,0x00,0x00,0x5b,0x00,0x00,0x00,0x5e,0x03,0x00,0x00, +0x41,0x00,0x07,0x00,0xb7,0x00,0x00,0x00,0xb8,0x00,0x00,0x00, +0xb3,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xb6,0x00,0x00,0x00, +0x35,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xae,0x00,0x00,0x00, +0xb9,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0x73,0x00,0x04,0x00, +0x88,0x00,0x00,0x00,0xba,0x00,0x00,0x00,0xb9,0x00,0x00,0x00, +0xf9,0x00,0x02,0x00,0xbe,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xbe,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x88,0x00,0x00,0x00, +0x62,0x03,0x00,0x00,0x91,0x00,0x00,0x00,0x9a,0x00,0x00,0x00, +0x0d,0x03,0x00,0x00,0xbf,0x00,0x00,0x00,0xf5,0x00,0x07,0x00, +0x17,0x00,0x00,0x00,0x61,0x03,0x00,0x00,0x1c,0x00,0x00,0x00, +0x9a,0x00,0x00,0x00,0x0f,0x03,0x00,0x00,0xbf,0x00,0x00,0x00, +0xb1,0x00,0x05,0x00,0xa0,0x00,0x00,0x00,0xc4,0x00,0x00,0x00, +0x61,0x03,0x00,0x00,0x30,0x00,0x00,0x00,0xf6,0x00,0x04,0x00, +0xc0,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xfa,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,0xbf,0x00,0x00,0x00, +0xc0,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xbf,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xcb,0x00,0x00,0x00, +0x59,0x03,0x00,0x00,0xa6,0x00,0x00,0x00,0x7c,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xcd,0x00,0x00,0x00,0x61,0x03,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xce,0x00,0x00,0x00, +0xcb,0x00,0x00,0x00,0xcd,0x00,0x00,0x00,0x41,0x00,0x06,0x00, +0xd0,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,0xc8,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0xce,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x88,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,0xd1,0x00,0x00,0x00, +0x41,0x00,0x08,0x00,0xd6,0x00,0x00,0x00,0xd7,0x00,0x00,0x00, +0xb3,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xb6,0x00,0x00,0x00, +0x30,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x6e,0x00,0x00,0x00,0xd8,0x00,0x00,0x00,0xd7,0x00,0x00,0x00, +0xc2,0x00,0x05,0x00,0x6e,0x00,0x00,0x00,0xda,0x00,0x00,0x00, +0xd8,0x00,0x00,0x00,0x74,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,0xda,0x00,0x00,0x00, +0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0xdc,0x00,0x00,0x00, +0xdb,0x00,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, +0xde,0x00,0x00,0x00,0xdc,0x00,0x00,0x00,0xdd,0x00,0x00,0x00, +0x41,0x00,0x08,0x00,0xd6,0x00,0x00,0x00,0xe2,0x00,0x00,0x00, +0xb3,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xb6,0x00,0x00,0x00, +0x30,0x00,0x00,0x00,0x2c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x6e,0x00,0x00,0x00,0xe3,0x00,0x00,0x00,0xe2,0x00,0x00,0x00, +0xc2,0x00,0x05,0x00,0x6e,0x00,0x00,0x00,0xe6,0x00,0x00,0x00, +0xe3,0x00,0x00,0x00,0x74,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,0xe6,0x00,0x00,0x00, +0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0xe8,0x00,0x00,0x00, +0xe7,0x00,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, +0xe9,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0x35,0x00,0x00,0x00, +0xc4,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xea,0x00,0x00,0x00, +0xe9,0x00,0x00,0x00,0x26,0x00,0x00,0x00,0xc5,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0xde,0x00,0x00,0x00, +0xea,0x00,0x00,0x00,0x72,0x00,0x04,0x00,0x76,0x00,0x00,0x00, +0xec,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0x72,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0xed,0x00,0x00,0x00,0xec,0x00,0x00,0x00, +0x82,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xef,0x00,0x00,0x00, +0xed,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, +0x88,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0xef,0x00,0x00,0x00, +0x85,0x00,0x05,0x00,0x88,0x00,0x00,0x00,0xf1,0x00,0x00,0x00, +0xd2,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0x81,0x00,0x00,0x00, +0xcd,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xd6,0x00,0x00,0x00, +0xf9,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0xb6,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0xf8,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x6e,0x00,0x00,0x00,0xfa,0x00,0x00,0x00, +0xf9,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xfb,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,0x7c,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0xfb,0x00,0x00,0x00, +0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xfd,0x00,0x00,0x00, +0xfc,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x04,0x01,0x00,0x00,0x7b,0x00,0x00,0x00, +0xcd,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xd6,0x00,0x00,0x00, +0x05,0x01,0x00,0x00,0xb3,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0xb6,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x04,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0x6e,0x00,0x00,0x00,0x06,0x01,0x00,0x00, +0x05,0x01,0x00,0x00,0xc4,0x00,0x05,0x00,0x6e,0x00,0x00,0x00, +0x08,0x01,0x00,0x00,0x78,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0xc7,0x00,0x05,0x00,0x6e,0x00,0x00,0x00,0x09,0x01,0x00,0x00, +0x06,0x01,0x00,0x00,0x08,0x01,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x0a,0x01,0x00,0x00,0x09,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x0b,0x01,0x00,0x00, +0x0a,0x01,0x00,0x00,0xab,0x00,0x05,0x00,0xa0,0x00,0x00,0x00, +0x0c,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,0x1c,0x00,0x00,0x00, +0xa9,0x00,0x06,0x00,0x17,0x00,0x00,0x00,0x0d,0x01,0x00,0x00, +0x0c,0x01,0x00,0x00,0x1c,0x00,0x00,0x00,0x26,0x00,0x00,0x00, +0x82,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x0e,0x01,0x00,0x00, +0xfd,0x00,0x00,0x00,0x0d,0x01,0x00,0x00,0x6f,0x00,0x04,0x00, +0x88,0x00,0x00,0x00,0x0f,0x01,0x00,0x00,0x0e,0x01,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x17,0x01,0x00,0x00, +0xce,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,0x41,0x00,0x06,0x00, +0xd0,0x00,0x00,0x00,0x18,0x01,0x00,0x00,0xc8,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0x17,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0x88,0x00,0x00,0x00,0x19,0x01,0x00,0x00,0x18,0x01,0x00,0x00, +0x41,0x00,0x08,0x00,0xd6,0x00,0x00,0x00,0x1d,0x01,0x00,0x00, +0xb3,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xb6,0x00,0x00,0x00, +0x30,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x6e,0x00,0x00,0x00,0x1e,0x01,0x00,0x00,0x1d,0x01,0x00,0x00, +0xc2,0x00,0x05,0x00,0x6e,0x00,0x00,0x00,0x20,0x01,0x00,0x00, +0x1e,0x01,0x00,0x00,0x74,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x21,0x01,0x00,0x00,0x20,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x22,0x01,0x00,0x00, +0x21,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, +0x23,0x01,0x00,0x00,0x22,0x01,0x00,0x00,0xdd,0x00,0x00,0x00, +0x41,0x00,0x08,0x00,0xd6,0x00,0x00,0x00,0x28,0x01,0x00,0x00, +0xb3,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xb6,0x00,0x00,0x00, +0x30,0x00,0x00,0x00,0x27,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0x6e,0x00,0x00,0x00,0x29,0x01,0x00,0x00,0x28,0x01,0x00,0x00, +0xc2,0x00,0x05,0x00,0x6e,0x00,0x00,0x00,0x2c,0x01,0x00,0x00, +0x29,0x01,0x00,0x00,0x74,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x2d,0x01,0x00,0x00,0x2c,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x2e,0x01,0x00,0x00, +0x2d,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, +0x2f,0x01,0x00,0x00,0x2e,0x01,0x00,0x00,0x35,0x00,0x00,0x00, +0xc4,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x30,0x01,0x00,0x00, +0x2f,0x01,0x00,0x00,0x26,0x00,0x00,0x00,0xc5,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0x31,0x01,0x00,0x00,0x23,0x01,0x00,0x00, +0x30,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x76,0x00,0x00,0x00, +0x32,0x01,0x00,0x00,0x31,0x01,0x00,0x00,0x72,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0x33,0x01,0x00,0x00,0x32,0x01,0x00,0x00, +0x82,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x34,0x01,0x00,0x00, +0x33,0x01,0x00,0x00,0xee,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, +0x88,0x00,0x00,0x00,0x35,0x01,0x00,0x00,0x34,0x01,0x00,0x00, +0x85,0x00,0x05,0x00,0x88,0x00,0x00,0x00,0x36,0x01,0x00,0x00, +0x19,0x01,0x00,0x00,0x35,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0x6e,0x00,0x00,0x00,0x3f,0x01,0x00,0x00,0xf9,0x00,0x00,0x00, +0xc2,0x00,0x05,0x00,0x6e,0x00,0x00,0x00,0x40,0x01,0x00,0x00, +0x3f,0x01,0x00,0x00,0x30,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x41,0x01,0x00,0x00,0x40,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x42,0x01,0x00,0x00, +0x41,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, +0x43,0x01,0x00,0x00,0x42,0x01,0x00,0x00,0x35,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x6e,0x00,0x00,0x00,0x4c,0x01,0x00,0x00, +0x05,0x01,0x00,0x00,0xc4,0x00,0x05,0x00,0x6e,0x00,0x00,0x00, +0x4e,0x01,0x00,0x00,0x78,0x00,0x00,0x00,0x71,0x00,0x00,0x00, +0xc7,0x00,0x05,0x00,0x6e,0x00,0x00,0x00,0x4f,0x01,0x00,0x00, +0x4c,0x01,0x00,0x00,0x4e,0x01,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x50,0x01,0x00,0x00,0x4f,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x51,0x01,0x00,0x00, +0x50,0x01,0x00,0x00,0xab,0x00,0x05,0x00,0xa0,0x00,0x00,0x00, +0x52,0x01,0x00,0x00,0x51,0x01,0x00,0x00,0x1c,0x00,0x00,0x00, +0xa9,0x00,0x06,0x00,0x17,0x00,0x00,0x00,0x53,0x01,0x00,0x00, +0x52,0x01,0x00,0x00,0x1c,0x00,0x00,0x00,0x26,0x00,0x00,0x00, +0x82,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x54,0x01,0x00,0x00, +0x43,0x01,0x00,0x00,0x53,0x01,0x00,0x00,0x6f,0x00,0x04,0x00, +0x88,0x00,0x00,0x00,0x55,0x01,0x00,0x00,0x54,0x01,0x00,0x00, +0x85,0x00,0x05,0x00,0x88,0x00,0x00,0x00,0x56,0x01,0x00,0x00, +0x36,0x01,0x00,0x00,0x55,0x01,0x00,0x00,0x0c,0x00,0x08,0x00, +0x88,0x00,0x00,0x00,0x57,0x01,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0xf1,0x00,0x00,0x00,0x0f,0x01,0x00,0x00, +0x56,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x5e,0x01,0x00,0x00,0xce,0x00,0x00,0x00,0xaa,0x00,0x00,0x00, +0x41,0x00,0x06,0x00,0xd0,0x00,0x00,0x00,0x5f,0x01,0x00,0x00, +0xc8,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x5e,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0x88,0x00,0x00,0x00,0x60,0x01,0x00,0x00, +0x5f,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0xd6,0x00,0x00,0x00, +0x64,0x01,0x00,0x00,0xb3,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0xb6,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x26,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x6e,0x00,0x00,0x00,0x65,0x01,0x00,0x00, +0x64,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x6e,0x00,0x00,0x00, +0x67,0x01,0x00,0x00,0x65,0x01,0x00,0x00,0x74,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x68,0x01,0x00,0x00, +0x67,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0x69,0x01,0x00,0x00,0x68,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0x6a,0x01,0x00,0x00,0x69,0x01,0x00,0x00, +0xdd,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x6e,0x00,0x00,0x00, +0x6f,0x01,0x00,0x00,0xe2,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x71,0x01,0x00,0x00,0x74,0x00,0x00,0x00, +0x41,0x00,0x00,0x00,0xc2,0x00,0x05,0x00,0x6e,0x00,0x00,0x00, +0x72,0x01,0x00,0x00,0x6f,0x01,0x00,0x00,0x71,0x01,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x73,0x01,0x00,0x00, +0x72,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0x74,0x01,0x00,0x00,0x73,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0x75,0x01,0x00,0x00,0x74,0x01,0x00,0x00, +0x35,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x17,0x00,0x00,0x00, +0x76,0x01,0x00,0x00,0x75,0x01,0x00,0x00,0x26,0x00,0x00,0x00, +0xc5,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x77,0x01,0x00,0x00, +0x6a,0x01,0x00,0x00,0x76,0x01,0x00,0x00,0x72,0x00,0x04,0x00, +0x76,0x00,0x00,0x00,0x78,0x01,0x00,0x00,0x77,0x01,0x00,0x00, +0x72,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x79,0x01,0x00,0x00, +0x78,0x01,0x00,0x00,0x82,0x00,0x05,0x00,0x17,0x00,0x00,0x00, +0x7a,0x01,0x00,0x00,0x79,0x01,0x00,0x00,0xee,0x00,0x00,0x00, +0x6f,0x00,0x04,0x00,0x88,0x00,0x00,0x00,0x7b,0x01,0x00,0x00, +0x7a,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x88,0x00,0x00,0x00, +0x7c,0x01,0x00,0x00,0x60,0x01,0x00,0x00,0x7b,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0x6e,0x00,0x00,0x00,0x85,0x01,0x00,0x00, +0xf9,0x00,0x00,0x00,0xc2,0x00,0x05,0x00,0x6e,0x00,0x00,0x00, +0x86,0x01,0x00,0x00,0x85,0x01,0x00,0x00,0x26,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x87,0x01,0x00,0x00, +0x86,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0x88,0x01,0x00,0x00,0x87,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0x89,0x01,0x00,0x00,0x88,0x01,0x00,0x00, +0x35,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x6e,0x00,0x00,0x00, +0x92,0x01,0x00,0x00,0x05,0x01,0x00,0x00,0xc4,0x00,0x05,0x00, +0x6e,0x00,0x00,0x00,0x94,0x01,0x00,0x00,0x78,0x00,0x00,0x00, +0x30,0x00,0x00,0x00,0xc7,0x00,0x05,0x00,0x6e,0x00,0x00,0x00, +0x95,0x01,0x00,0x00,0x92,0x01,0x00,0x00,0x94,0x01,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x96,0x01,0x00,0x00, +0x95,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0x97,0x01,0x00,0x00,0x96,0x01,0x00,0x00,0xab,0x00,0x05,0x00, +0xa0,0x00,0x00,0x00,0x98,0x01,0x00,0x00,0x97,0x01,0x00,0x00, 0x1c,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,0x17,0x00,0x00,0x00, -0xb6,0x02,0x00,0x00,0xb5,0x02,0x00,0x00,0x1c,0x00,0x00,0x00, +0x99,0x01,0x00,0x00,0x98,0x01,0x00,0x00,0x1c,0x00,0x00,0x00, 0x26,0x00,0x00,0x00,0x82,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0xb7,0x02,0x00,0x00,0xa5,0x02,0x00,0x00,0xb6,0x02,0x00,0x00, -0x6f,0x00,0x04,0x00,0x81,0x00,0x00,0x00,0xb8,0x02,0x00,0x00, -0xb7,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x81,0x00,0x00,0x00, -0xba,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x97,0x02,0x00,0x00,0xb8,0x02,0x00,0x00,0x70,0x02,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc2,0x02,0x00,0x00, -0xc7,0x00,0x00,0x00,0xc1,0x02,0x00,0x00,0x41,0x00,0x06,0x00, -0xc9,0x00,0x00,0x00,0xc3,0x02,0x00,0x00,0xc1,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0xc2,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0x81,0x00,0x00,0x00,0xc4,0x02,0x00,0x00,0xc3,0x02,0x00,0x00, -0x41,0x00,0x08,0x00,0xcf,0x00,0x00,0x00,0xc9,0x02,0x00,0x00, -0xac,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xaf,0x00,0x00,0x00, -0x30,0x00,0x00,0x00,0xc8,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0x67,0x00,0x00,0x00,0xca,0x02,0x00,0x00,0xc9,0x02,0x00,0x00, -0xc2,0x00,0x05,0x00,0x67,0x00,0x00,0x00,0xcc,0x02,0x00,0x00, -0xca,0x02,0x00,0x00,0x6d,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xcd,0x02,0x00,0x00,0xcc,0x02,0x00,0x00, -0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0xce,0x02,0x00,0x00, -0xcd,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0xcf,0x02,0x00,0x00,0xce,0x02,0x00,0x00,0xd6,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x67,0x00,0x00,0x00,0xd4,0x02,0x00,0x00, -0x3f,0x02,0x00,0x00,0xc2,0x00,0x05,0x00,0x67,0x00,0x00,0x00, -0xd7,0x02,0x00,0x00,0xd4,0x02,0x00,0x00,0x6a,0x01,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xd8,0x02,0x00,0x00, -0xd7,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0xd9,0x02,0x00,0x00,0xd8,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0xda,0x02,0x00,0x00,0xd9,0x02,0x00,0x00, +0x9a,0x01,0x00,0x00,0x89,0x01,0x00,0x00,0x99,0x01,0x00,0x00, +0x6f,0x00,0x04,0x00,0x88,0x00,0x00,0x00,0x9b,0x01,0x00,0x00, +0x9a,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0x88,0x00,0x00,0x00, +0x9d,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0x7c,0x01,0x00,0x00,0x9b,0x01,0x00,0x00,0x57,0x01,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa5,0x01,0x00,0x00, +0xce,0x00,0x00,0x00,0xa4,0x01,0x00,0x00,0x41,0x00,0x06,0x00, +0xd0,0x00,0x00,0x00,0xa6,0x01,0x00,0x00,0xc8,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0xa5,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0x88,0x00,0x00,0x00,0xa7,0x01,0x00,0x00,0xa6,0x01,0x00,0x00, +0x41,0x00,0x08,0x00,0xd6,0x00,0x00,0x00,0xac,0x01,0x00,0x00, +0xb3,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xb6,0x00,0x00,0x00, +0x30,0x00,0x00,0x00,0xab,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0x6e,0x00,0x00,0x00,0xad,0x01,0x00,0x00,0xac,0x01,0x00,0x00, +0xc2,0x00,0x05,0x00,0x6e,0x00,0x00,0x00,0xaf,0x01,0x00,0x00, +0xad,0x01,0x00,0x00,0x74,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xb0,0x01,0x00,0x00,0xaf,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0xb1,0x01,0x00,0x00, +0xb0,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, +0xb2,0x01,0x00,0x00,0xb1,0x01,0x00,0x00,0xdd,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x6e,0x00,0x00,0x00,0xb7,0x01,0x00,0x00, +0x28,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x6e,0x00,0x00,0x00, +0xba,0x01,0x00,0x00,0xb7,0x01,0x00,0x00,0x71,0x01,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xbb,0x01,0x00,0x00, +0xba,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0xbc,0x01,0x00,0x00,0xbb,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0xbd,0x01,0x00,0x00,0xbc,0x01,0x00,0x00, +0x35,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x17,0x00,0x00,0x00, +0xbe,0x01,0x00,0x00,0xbd,0x01,0x00,0x00,0x26,0x00,0x00,0x00, +0xc5,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xbf,0x01,0x00,0x00, +0xb2,0x01,0x00,0x00,0xbe,0x01,0x00,0x00,0x72,0x00,0x04,0x00, +0x76,0x00,0x00,0x00,0xc0,0x01,0x00,0x00,0xbf,0x01,0x00,0x00, +0x72,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0xc1,0x01,0x00,0x00, +0xc0,0x01,0x00,0x00,0x82,0x00,0x05,0x00,0x17,0x00,0x00,0x00, +0xc2,0x01,0x00,0x00,0xc1,0x01,0x00,0x00,0xee,0x00,0x00,0x00, +0x6f,0x00,0x04,0x00,0x88,0x00,0x00,0x00,0xc3,0x01,0x00,0x00, +0xc2,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x88,0x00,0x00,0x00, +0xc4,0x01,0x00,0x00,0xa7,0x01,0x00,0x00,0xc3,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0x6e,0x00,0x00,0x00,0xcd,0x01,0x00,0x00, +0xf9,0x00,0x00,0x00,0xc2,0x00,0x05,0x00,0x6e,0x00,0x00,0x00, +0xce,0x01,0x00,0x00,0xcd,0x01,0x00,0x00,0xab,0x01,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xcf,0x01,0x00,0x00, +0xce,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0xd0,0x01,0x00,0x00,0xcf,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0xd1,0x01,0x00,0x00,0xd0,0x01,0x00,0x00, +0x35,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x6e,0x00,0x00,0x00, +0xda,0x01,0x00,0x00,0x05,0x01,0x00,0x00,0xc4,0x00,0x05,0x00, +0x6e,0x00,0x00,0x00,0xdc,0x01,0x00,0x00,0x78,0x00,0x00,0x00, +0x35,0x00,0x00,0x00,0xc7,0x00,0x05,0x00,0x6e,0x00,0x00,0x00, +0xdd,0x01,0x00,0x00,0xda,0x01,0x00,0x00,0xdc,0x01,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xde,0x01,0x00,0x00, +0xdd,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0xdf,0x01,0x00,0x00,0xde,0x01,0x00,0x00,0xab,0x00,0x05,0x00, +0xa0,0x00,0x00,0x00,0xe0,0x01,0x00,0x00,0xdf,0x01,0x00,0x00, +0x1c,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,0x17,0x00,0x00,0x00, +0xe1,0x01,0x00,0x00,0xe0,0x01,0x00,0x00,0x1c,0x00,0x00,0x00, +0x26,0x00,0x00,0x00,0x82,0x00,0x05,0x00,0x17,0x00,0x00,0x00, +0xe2,0x01,0x00,0x00,0xd1,0x01,0x00,0x00,0xe1,0x01,0x00,0x00, +0x6f,0x00,0x04,0x00,0x88,0x00,0x00,0x00,0xe3,0x01,0x00,0x00, +0xe2,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0x88,0x00,0x00,0x00, +0xe5,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0xc4,0x01,0x00,0x00,0xe3,0x01,0x00,0x00,0x9d,0x01,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xec,0x01,0x00,0x00, +0xce,0x00,0x00,0x00,0x8c,0x00,0x00,0x00,0x41,0x00,0x06,0x00, +0xd0,0x00,0x00,0x00,0xed,0x01,0x00,0x00,0xc8,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0xec,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0x88,0x00,0x00,0x00,0xee,0x01,0x00,0x00,0xed,0x01,0x00,0x00, +0x41,0x00,0x08,0x00,0xd6,0x00,0x00,0x00,0xf2,0x01,0x00,0x00, +0xb3,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xb6,0x00,0x00,0x00, +0x30,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x6e,0x00,0x00,0x00,0xf3,0x01,0x00,0x00,0xf2,0x01,0x00,0x00, +0xc2,0x00,0x05,0x00,0x6e,0x00,0x00,0x00,0xf5,0x01,0x00,0x00, +0xf3,0x01,0x00,0x00,0x74,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xf6,0x01,0x00,0x00,0xf5,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0xf7,0x01,0x00,0x00, +0xf6,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, +0xf8,0x01,0x00,0x00,0xf7,0x01,0x00,0x00,0xdd,0x00,0x00,0x00, +0x41,0x00,0x08,0x00,0xd6,0x00,0x00,0x00,0xfd,0x01,0x00,0x00, +0xb3,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xb6,0x00,0x00,0x00, +0x30,0x00,0x00,0x00,0xfc,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0x6e,0x00,0x00,0x00,0xfe,0x01,0x00,0x00,0xfd,0x01,0x00,0x00, +0xc2,0x00,0x05,0x00,0x6e,0x00,0x00,0x00,0x01,0x02,0x00,0x00, +0xfe,0x01,0x00,0x00,0x74,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x02,0x02,0x00,0x00,0x01,0x02,0x00,0x00, +0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x03,0x02,0x00,0x00, +0x02,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, +0x04,0x02,0x00,0x00,0x03,0x02,0x00,0x00,0x35,0x00,0x00,0x00, +0xc4,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x05,0x02,0x00,0x00, +0x04,0x02,0x00,0x00,0x26,0x00,0x00,0x00,0xc5,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0x06,0x02,0x00,0x00,0xf8,0x01,0x00,0x00, +0x05,0x02,0x00,0x00,0x72,0x00,0x04,0x00,0x76,0x00,0x00,0x00, +0x07,0x02,0x00,0x00,0x06,0x02,0x00,0x00,0x72,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0x08,0x02,0x00,0x00,0x07,0x02,0x00,0x00, +0x82,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x09,0x02,0x00,0x00, +0x08,0x02,0x00,0x00,0xee,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, +0x88,0x00,0x00,0x00,0x0a,0x02,0x00,0x00,0x09,0x02,0x00,0x00, +0x85,0x00,0x05,0x00,0x88,0x00,0x00,0x00,0x0b,0x02,0x00,0x00, +0xee,0x01,0x00,0x00,0x0a,0x02,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x13,0x02,0x00,0x00,0xf8,0x00,0x00,0x00, +0x8c,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xd6,0x00,0x00,0x00, +0x14,0x02,0x00,0x00,0xb3,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0xb6,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x13,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0x6e,0x00,0x00,0x00,0x15,0x02,0x00,0x00, +0x14,0x02,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x16,0x02,0x00,0x00,0x15,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0x17,0x02,0x00,0x00,0x16,0x02,0x00,0x00, +0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x18,0x02,0x00,0x00, +0x17,0x02,0x00,0x00,0x35,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x20,0x02,0x00,0x00,0x04,0x01,0x00,0x00, +0x8c,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xd6,0x00,0x00,0x00, +0x21,0x02,0x00,0x00,0xb3,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0xb6,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x20,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0x6e,0x00,0x00,0x00,0x22,0x02,0x00,0x00, +0x21,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x6e,0x00,0x00,0x00, +0x25,0x02,0x00,0x00,0x22,0x02,0x00,0x00,0x08,0x01,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x26,0x02,0x00,0x00, +0x25,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0x27,0x02,0x00,0x00,0x26,0x02,0x00,0x00,0xab,0x00,0x05,0x00, +0xa0,0x00,0x00,0x00,0x28,0x02,0x00,0x00,0x27,0x02,0x00,0x00, +0x1c,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,0x17,0x00,0x00,0x00, +0x29,0x02,0x00,0x00,0x28,0x02,0x00,0x00,0x1c,0x00,0x00,0x00, +0x26,0x00,0x00,0x00,0x82,0x00,0x05,0x00,0x17,0x00,0x00,0x00, +0x2a,0x02,0x00,0x00,0x18,0x02,0x00,0x00,0x29,0x02,0x00,0x00, +0x6f,0x00,0x04,0x00,0x88,0x00,0x00,0x00,0x2b,0x02,0x00,0x00, +0x2a,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x88,0x00,0x00,0x00, +0x2d,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0x0b,0x02,0x00,0x00,0x2b,0x02,0x00,0x00,0xe5,0x01,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x35,0x02,0x00,0x00, +0xce,0x00,0x00,0x00,0x34,0x02,0x00,0x00,0x41,0x00,0x06,0x00, +0xd0,0x00,0x00,0x00,0x36,0x02,0x00,0x00,0xc8,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0x35,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0x88,0x00,0x00,0x00,0x37,0x02,0x00,0x00,0x36,0x02,0x00,0x00, +0x41,0x00,0x08,0x00,0xd6,0x00,0x00,0x00,0x3b,0x02,0x00,0x00, +0xb3,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xb6,0x00,0x00,0x00, +0x30,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x6e,0x00,0x00,0x00,0x3c,0x02,0x00,0x00,0x3b,0x02,0x00,0x00, +0xc2,0x00,0x05,0x00,0x6e,0x00,0x00,0x00,0x3e,0x02,0x00,0x00, +0x3c,0x02,0x00,0x00,0x74,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x3f,0x02,0x00,0x00,0x3e,0x02,0x00,0x00, +0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x40,0x02,0x00,0x00, +0x3f,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, +0x41,0x02,0x00,0x00,0x40,0x02,0x00,0x00,0xdd,0x00,0x00,0x00, +0x41,0x00,0x08,0x00,0xd6,0x00,0x00,0x00,0x46,0x02,0x00,0x00, +0xb3,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xb6,0x00,0x00,0x00, +0x30,0x00,0x00,0x00,0x45,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0x6e,0x00,0x00,0x00,0x47,0x02,0x00,0x00,0x46,0x02,0x00,0x00, +0xc2,0x00,0x05,0x00,0x6e,0x00,0x00,0x00,0x4a,0x02,0x00,0x00, +0x47,0x02,0x00,0x00,0x74,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x4b,0x02,0x00,0x00,0x4a,0x02,0x00,0x00, +0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x4c,0x02,0x00,0x00, +0x4b,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, +0x4d,0x02,0x00,0x00,0x4c,0x02,0x00,0x00,0x35,0x00,0x00,0x00, +0xc4,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x4e,0x02,0x00,0x00, +0x4d,0x02,0x00,0x00,0x26,0x00,0x00,0x00,0xc5,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0x4f,0x02,0x00,0x00,0x41,0x02,0x00,0x00, +0x4e,0x02,0x00,0x00,0x72,0x00,0x04,0x00,0x76,0x00,0x00,0x00, +0x50,0x02,0x00,0x00,0x4f,0x02,0x00,0x00,0x72,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0x51,0x02,0x00,0x00,0x50,0x02,0x00,0x00, +0x82,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x52,0x02,0x00,0x00, +0x51,0x02,0x00,0x00,0xee,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, +0x88,0x00,0x00,0x00,0x53,0x02,0x00,0x00,0x52,0x02,0x00,0x00, +0x85,0x00,0x05,0x00,0x88,0x00,0x00,0x00,0x54,0x02,0x00,0x00, +0x37,0x02,0x00,0x00,0x53,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0x6e,0x00,0x00,0x00,0x5e,0x02,0x00,0x00,0x14,0x02,0x00,0x00, +0xc2,0x00,0x05,0x00,0x6e,0x00,0x00,0x00,0x5f,0x02,0x00,0x00, +0x5e,0x02,0x00,0x00,0x30,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x60,0x02,0x00,0x00,0x5f,0x02,0x00,0x00, +0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x61,0x02,0x00,0x00, +0x60,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, +0x62,0x02,0x00,0x00,0x61,0x02,0x00,0x00,0x35,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x6e,0x00,0x00,0x00,0x6c,0x02,0x00,0x00, +0x21,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x6e,0x00,0x00,0x00, +0x6f,0x02,0x00,0x00,0x6c,0x02,0x00,0x00,0x4e,0x01,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x70,0x02,0x00,0x00, +0x6f,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0x71,0x02,0x00,0x00,0x70,0x02,0x00,0x00,0xab,0x00,0x05,0x00, +0xa0,0x00,0x00,0x00,0x72,0x02,0x00,0x00,0x71,0x02,0x00,0x00, +0x1c,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,0x17,0x00,0x00,0x00, +0x73,0x02,0x00,0x00,0x72,0x02,0x00,0x00,0x1c,0x00,0x00,0x00, +0x26,0x00,0x00,0x00,0x82,0x00,0x05,0x00,0x17,0x00,0x00,0x00, +0x74,0x02,0x00,0x00,0x62,0x02,0x00,0x00,0x73,0x02,0x00,0x00, +0x6f,0x00,0x04,0x00,0x88,0x00,0x00,0x00,0x75,0x02,0x00,0x00, +0x74,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x88,0x00,0x00,0x00, +0x77,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0x54,0x02,0x00,0x00,0x75,0x02,0x00,0x00,0x2d,0x02,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7f,0x02,0x00,0x00, +0xce,0x00,0x00,0x00,0x7e,0x02,0x00,0x00,0x41,0x00,0x06,0x00, +0xd0,0x00,0x00,0x00,0x80,0x02,0x00,0x00,0xc8,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0x7f,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0x88,0x00,0x00,0x00,0x81,0x02,0x00,0x00,0x80,0x02,0x00,0x00, +0x41,0x00,0x08,0x00,0xd6,0x00,0x00,0x00,0x86,0x02,0x00,0x00, +0xb3,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xb6,0x00,0x00,0x00, +0x30,0x00,0x00,0x00,0x85,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0x6e,0x00,0x00,0x00,0x87,0x02,0x00,0x00,0x86,0x02,0x00,0x00, +0xc2,0x00,0x05,0x00,0x6e,0x00,0x00,0x00,0x89,0x02,0x00,0x00, +0x87,0x02,0x00,0x00,0x74,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x8a,0x02,0x00,0x00,0x89,0x02,0x00,0x00, +0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x8b,0x02,0x00,0x00, +0x8a,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, +0x8c,0x02,0x00,0x00,0x8b,0x02,0x00,0x00,0xdd,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x6e,0x00,0x00,0x00,0x91,0x02,0x00,0x00, +0xfd,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x6e,0x00,0x00,0x00, +0x94,0x02,0x00,0x00,0x91,0x02,0x00,0x00,0x71,0x01,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x95,0x02,0x00,0x00, +0x94,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0x96,0x02,0x00,0x00,0x95,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0x97,0x02,0x00,0x00,0x96,0x02,0x00,0x00, 0x35,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0xdb,0x02,0x00,0x00,0xda,0x02,0x00,0x00,0x26,0x00,0x00,0x00, -0xc5,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xdc,0x02,0x00,0x00, -0xcf,0x02,0x00,0x00,0xdb,0x02,0x00,0x00,0x72,0x00,0x04,0x00, -0x6f,0x00,0x00,0x00,0xdd,0x02,0x00,0x00,0xdc,0x02,0x00,0x00, -0x72,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0xde,0x02,0x00,0x00, -0xdd,0x02,0x00,0x00,0x82,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0xdf,0x02,0x00,0x00,0xde,0x02,0x00,0x00,0xe7,0x00,0x00,0x00, -0x6f,0x00,0x04,0x00,0x81,0x00,0x00,0x00,0xe0,0x02,0x00,0x00, -0xdf,0x02,0x00,0x00,0x85,0x00,0x05,0x00,0x81,0x00,0x00,0x00, -0xe1,0x02,0x00,0x00,0xc4,0x02,0x00,0x00,0xe0,0x02,0x00,0x00, -0x3d,0x00,0x04,0x00,0x67,0x00,0x00,0x00,0xeb,0x02,0x00,0x00, -0x0d,0x02,0x00,0x00,0xc2,0x00,0x05,0x00,0x67,0x00,0x00,0x00, -0xec,0x02,0x00,0x00,0xeb,0x02,0x00,0x00,0xa4,0x01,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xed,0x02,0x00,0x00, -0xec,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0xee,0x02,0x00,0x00,0xed,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0xef,0x02,0x00,0x00,0xee,0x02,0x00,0x00, -0x35,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x67,0x00,0x00,0x00, -0xf9,0x02,0x00,0x00,0x1a,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, -0x67,0x00,0x00,0x00,0xfc,0x02,0x00,0x00,0xf9,0x02,0x00,0x00, -0xd5,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xfd,0x02,0x00,0x00,0xfc,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0xfe,0x02,0x00,0x00,0xfd,0x02,0x00,0x00, -0xab,0x00,0x05,0x00,0x99,0x00,0x00,0x00,0xff,0x02,0x00,0x00, -0xfe,0x02,0x00,0x00,0x1c,0x00,0x00,0x00,0xa9,0x00,0x06,0x00, -0x17,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0xff,0x02,0x00,0x00, +0x98,0x02,0x00,0x00,0x97,0x02,0x00,0x00,0x26,0x00,0x00,0x00, +0xc5,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x99,0x02,0x00,0x00, +0x8c,0x02,0x00,0x00,0x98,0x02,0x00,0x00,0x72,0x00,0x04,0x00, +0x76,0x00,0x00,0x00,0x9a,0x02,0x00,0x00,0x99,0x02,0x00,0x00, +0x72,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x9b,0x02,0x00,0x00, +0x9a,0x02,0x00,0x00,0x82,0x00,0x05,0x00,0x17,0x00,0x00,0x00, +0x9c,0x02,0x00,0x00,0x9b,0x02,0x00,0x00,0xee,0x00,0x00,0x00, +0x6f,0x00,0x04,0x00,0x88,0x00,0x00,0x00,0x9d,0x02,0x00,0x00, +0x9c,0x02,0x00,0x00,0x85,0x00,0x05,0x00,0x88,0x00,0x00,0x00, +0x9e,0x02,0x00,0x00,0x81,0x02,0x00,0x00,0x9d,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0x6e,0x00,0x00,0x00,0xa8,0x02,0x00,0x00, +0x14,0x02,0x00,0x00,0xc2,0x00,0x05,0x00,0x6e,0x00,0x00,0x00, +0xa9,0x02,0x00,0x00,0xa8,0x02,0x00,0x00,0x26,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xaa,0x02,0x00,0x00, +0xa9,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0xab,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0xac,0x02,0x00,0x00,0xab,0x02,0x00,0x00, +0x35,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x6e,0x00,0x00,0x00, +0xb6,0x02,0x00,0x00,0x21,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, +0x6e,0x00,0x00,0x00,0xb9,0x02,0x00,0x00,0xb6,0x02,0x00,0x00, +0x94,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xba,0x02,0x00,0x00,0xb9,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0xbb,0x02,0x00,0x00,0xba,0x02,0x00,0x00, +0xab,0x00,0x05,0x00,0xa0,0x00,0x00,0x00,0xbc,0x02,0x00,0x00, +0xbb,0x02,0x00,0x00,0x1c,0x00,0x00,0x00,0xa9,0x00,0x06,0x00, +0x17,0x00,0x00,0x00,0xbd,0x02,0x00,0x00,0xbc,0x02,0x00,0x00, 0x1c,0x00,0x00,0x00,0x26,0x00,0x00,0x00,0x82,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0x01,0x03,0x00,0x00,0xef,0x02,0x00,0x00, -0x00,0x03,0x00,0x00,0x6f,0x00,0x04,0x00,0x81,0x00,0x00,0x00, -0x02,0x03,0x00,0x00,0x01,0x03,0x00,0x00,0x0c,0x00,0x08,0x00, -0x81,0x00,0x00,0x00,0x04,0x03,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0xe1,0x02,0x00,0x00,0x02,0x03,0x00,0x00, -0xba,0x02,0x00,0x00,0x81,0x00,0x05,0x00,0x81,0x00,0x00,0x00, -0x06,0x03,0x00,0x00,0x5b,0x03,0x00,0x00,0x04,0x03,0x00,0x00, -0x80,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x08,0x03,0x00,0x00, -0x5a,0x03,0x00,0x00,0x6a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, -0xb7,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xb9,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x81,0x00,0x00,0x00,0x11,0x03,0x00,0x00, -0x8c,0x00,0x00,0x00,0x0c,0x00,0x08,0x00,0x81,0x00,0x00,0x00, -0x12,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0xb3,0x00,0x00,0x00,0x5b,0x03,0x00,0x00,0x11,0x03,0x00,0x00, -0x3e,0x00,0x03,0x00,0x8c,0x00,0x00,0x00,0x12,0x03,0x00,0x00, -0xf9,0x00,0x02,0x00,0x95,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0x95,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x15,0x03,0x00,0x00,0x57,0x03,0x00,0x00,0x58,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0x92,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0x94,0x00,0x00,0x00,0xe0,0x00,0x04,0x00,0x58,0x00,0x00,0x00, -0x58,0x00,0x00,0x00,0x16,0x03,0x00,0x00,0xf9,0x00,0x02,0x00, -0x18,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x18,0x03,0x00,0x00, -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x58,0x03,0x00,0x00, -0x85,0x00,0x00,0x00,0x94,0x00,0x00,0x00,0x2f,0x03,0x00,0x00, -0x1b,0x03,0x00,0x00,0xac,0x00,0x05,0x00,0x99,0x00,0x00,0x00, -0x1e,0x03,0x00,0x00,0x58,0x03,0x00,0x00,0x3b,0x00,0x00,0x00, -0xf6,0x00,0x04,0x00,0x1a,0x03,0x00,0x00,0x1b,0x03,0x00,0x00, -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x1e,0x03,0x00,0x00, -0x19,0x03,0x00,0x00,0x1a,0x03,0x00,0x00,0xf8,0x00,0x02,0x00, -0x19,0x03,0x00,0x00,0xb0,0x00,0x05,0x00,0x99,0x00,0x00,0x00, -0x21,0x03,0x00,0x00,0x59,0x00,0x00,0x00,0x58,0x03,0x00,0x00, -0xf7,0x00,0x03,0x00,0x23,0x03,0x00,0x00,0x00,0x00,0x00,0x00, -0xfa,0x00,0x04,0x00,0x21,0x03,0x00,0x00,0x22,0x03,0x00,0x00, -0x23,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x22,0x03,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x27,0x03,0x00,0x00, -0x59,0x00,0x00,0x00,0x58,0x03,0x00,0x00,0x41,0x00,0x05,0x00, -0x8b,0x00,0x00,0x00,0x28,0x03,0x00,0x00,0x84,0x00,0x00,0x00, -0x27,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x81,0x00,0x00,0x00, -0x29,0x03,0x00,0x00,0x28,0x03,0x00,0x00,0x41,0x00,0x05,0x00, -0x8b,0x00,0x00,0x00,0x2a,0x03,0x00,0x00,0x84,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x81,0x00,0x00,0x00, -0x2b,0x03,0x00,0x00,0x2a,0x03,0x00,0x00,0x81,0x00,0x05,0x00, -0x81,0x00,0x00,0x00,0x2c,0x03,0x00,0x00,0x2b,0x03,0x00,0x00, -0x29,0x03,0x00,0x00,0x3e,0x00,0x03,0x00,0x2a,0x03,0x00,0x00, -0x2c,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,0x23,0x03,0x00,0x00, -0xf8,0x00,0x02,0x00,0x23,0x03,0x00,0x00,0xe0,0x00,0x04,0x00, -0x58,0x00,0x00,0x00,0x58,0x00,0x00,0x00,0x16,0x03,0x00,0x00, -0xf9,0x00,0x02,0x00,0x1b,0x03,0x00,0x00,0xf8,0x00,0x02,0x00, -0x1b,0x03,0x00,0x00,0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x2f,0x03,0x00,0x00,0x58,0x03,0x00,0x00,0x6a,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0x18,0x03,0x00,0x00,0xf8,0x00,0x02,0x00, -0x1a,0x03,0x00,0x00,0xaa,0x00,0x05,0x00,0x99,0x00,0x00,0x00, -0x31,0x03,0x00,0x00,0x59,0x00,0x00,0x00,0x3b,0x00,0x00,0x00, -0xf7,0x00,0x03,0x00,0x33,0x03,0x00,0x00,0x00,0x00,0x00,0x00, -0xfa,0x00,0x04,0x00,0x31,0x03,0x00,0x00,0x32,0x03,0x00,0x00, -0x33,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x32,0x03,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3a,0x03,0x00,0x00, -0x56,0x03,0x00,0x00,0x3d,0x00,0x00,0x00,0x41,0x00,0x05,0x00, -0x8b,0x00,0x00,0x00,0x3b,0x03,0x00,0x00,0x84,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x81,0x00,0x00,0x00, -0x3c,0x03,0x00,0x00,0x3b,0x03,0x00,0x00,0x41,0x00,0x06,0x00, -0xc9,0x00,0x00,0x00,0x3d,0x03,0x00,0x00,0x37,0x03,0x00,0x00, -0x1c,0x00,0x00,0x00,0x3a,0x03,0x00,0x00,0x3e,0x00,0x03,0x00, -0x3d,0x03,0x00,0x00,0x3c,0x03,0x00,0x00,0xf9,0x00,0x02,0x00, -0x33,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x33,0x03,0x00,0x00, -0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00, -}; -const uint64_t mul_mat_vec_id_q3_k_f32_len = 9872; +0x17,0x00,0x00,0x00,0xbe,0x02,0x00,0x00,0xac,0x02,0x00,0x00, +0xbd,0x02,0x00,0x00,0x6f,0x00,0x04,0x00,0x88,0x00,0x00,0x00, +0xbf,0x02,0x00,0x00,0xbe,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, +0x88,0x00,0x00,0x00,0xc1,0x02,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x9e,0x02,0x00,0x00,0xbf,0x02,0x00,0x00, +0x77,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xc9,0x02,0x00,0x00,0xce,0x00,0x00,0x00,0xc8,0x02,0x00,0x00, +0x41,0x00,0x06,0x00,0xd0,0x00,0x00,0x00,0xca,0x02,0x00,0x00, +0xc8,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xc9,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0x88,0x00,0x00,0x00,0xcb,0x02,0x00,0x00, +0xca,0x02,0x00,0x00,0x41,0x00,0x08,0x00,0xd6,0x00,0x00,0x00, +0xd0,0x02,0x00,0x00,0xb3,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0xb6,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0xcf,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0x6e,0x00,0x00,0x00,0xd1,0x02,0x00,0x00, +0xd0,0x02,0x00,0x00,0xc2,0x00,0x05,0x00,0x6e,0x00,0x00,0x00, +0xd3,0x02,0x00,0x00,0xd1,0x02,0x00,0x00,0x74,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xd4,0x02,0x00,0x00, +0xd3,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0xd5,0x02,0x00,0x00,0xd4,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0xd6,0x02,0x00,0x00,0xd5,0x02,0x00,0x00, +0xdd,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x6e,0x00,0x00,0x00, +0xdb,0x02,0x00,0x00,0x46,0x02,0x00,0x00,0xc2,0x00,0x05,0x00, +0x6e,0x00,0x00,0x00,0xde,0x02,0x00,0x00,0xdb,0x02,0x00,0x00, +0x71,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xdf,0x02,0x00,0x00,0xde,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0xe0,0x02,0x00,0x00,0xdf,0x02,0x00,0x00, +0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xe1,0x02,0x00,0x00, +0xe0,0x02,0x00,0x00,0x35,0x00,0x00,0x00,0xc4,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0xe2,0x02,0x00,0x00,0xe1,0x02,0x00,0x00, +0x26,0x00,0x00,0x00,0xc5,0x00,0x05,0x00,0x17,0x00,0x00,0x00, +0xe3,0x02,0x00,0x00,0xd6,0x02,0x00,0x00,0xe2,0x02,0x00,0x00, +0x72,0x00,0x04,0x00,0x76,0x00,0x00,0x00,0xe4,0x02,0x00,0x00, +0xe3,0x02,0x00,0x00,0x72,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0xe5,0x02,0x00,0x00,0xe4,0x02,0x00,0x00,0x82,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0xe6,0x02,0x00,0x00,0xe5,0x02,0x00,0x00, +0xee,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x88,0x00,0x00,0x00, +0xe7,0x02,0x00,0x00,0xe6,0x02,0x00,0x00,0x85,0x00,0x05,0x00, +0x88,0x00,0x00,0x00,0xe8,0x02,0x00,0x00,0xcb,0x02,0x00,0x00, +0xe7,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x6e,0x00,0x00,0x00, +0xf2,0x02,0x00,0x00,0x14,0x02,0x00,0x00,0xc2,0x00,0x05,0x00, +0x6e,0x00,0x00,0x00,0xf3,0x02,0x00,0x00,0xf2,0x02,0x00,0x00, +0xab,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xf4,0x02,0x00,0x00,0xf3,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0xf5,0x02,0x00,0x00,0xf4,0x02,0x00,0x00, +0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xf6,0x02,0x00,0x00, +0xf5,0x02,0x00,0x00,0x35,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x6e,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x21,0x02,0x00,0x00, +0xc7,0x00,0x05,0x00,0x6e,0x00,0x00,0x00,0x03,0x03,0x00,0x00, +0x00,0x03,0x00,0x00,0xdc,0x01,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x04,0x03,0x00,0x00,0x03,0x03,0x00,0x00, +0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x05,0x03,0x00,0x00, +0x04,0x03,0x00,0x00,0xab,0x00,0x05,0x00,0xa0,0x00,0x00,0x00, +0x06,0x03,0x00,0x00,0x05,0x03,0x00,0x00,0x1c,0x00,0x00,0x00, +0xa9,0x00,0x06,0x00,0x17,0x00,0x00,0x00,0x07,0x03,0x00,0x00, +0x06,0x03,0x00,0x00,0x1c,0x00,0x00,0x00,0x26,0x00,0x00,0x00, +0x82,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x08,0x03,0x00,0x00, +0xf6,0x02,0x00,0x00,0x07,0x03,0x00,0x00,0x6f,0x00,0x04,0x00, +0x88,0x00,0x00,0x00,0x09,0x03,0x00,0x00,0x08,0x03,0x00,0x00, +0x0c,0x00,0x08,0x00,0x88,0x00,0x00,0x00,0x0b,0x03,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xe8,0x02,0x00,0x00, +0x09,0x03,0x00,0x00,0xc1,0x02,0x00,0x00,0x81,0x00,0x05,0x00, +0x88,0x00,0x00,0x00,0x0d,0x03,0x00,0x00,0x62,0x03,0x00,0x00, +0x0b,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x17,0x00,0x00,0x00, +0x0f,0x03,0x00,0x00,0x61,0x03,0x00,0x00,0x71,0x00,0x00,0x00, +0xf9,0x00,0x02,0x00,0xbe,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xc0,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x88,0x00,0x00,0x00, +0x18,0x03,0x00,0x00,0x93,0x00,0x00,0x00,0x0c,0x00,0x08,0x00, +0x88,0x00,0x00,0x00,0x19,0x03,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0xba,0x00,0x00,0x00,0x62,0x03,0x00,0x00, +0x18,0x03,0x00,0x00,0x3e,0x00,0x03,0x00,0x93,0x00,0x00,0x00, +0x19,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,0x9c,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0x9c,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x1c,0x03,0x00,0x00,0x5e,0x03,0x00,0x00, +0x41,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x99,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0x9b,0x00,0x00,0x00,0xe0,0x00,0x04,0x00, +0x41,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x1d,0x03,0x00,0x00, +0xf9,0x00,0x02,0x00,0x1f,0x03,0x00,0x00,0xf8,0x00,0x02,0x00, +0x1f,0x03,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00, +0x5f,0x03,0x00,0x00,0x8c,0x00,0x00,0x00,0x9b,0x00,0x00,0x00, +0x36,0x03,0x00,0x00,0x22,0x03,0x00,0x00,0xac,0x00,0x05,0x00, +0xa0,0x00,0x00,0x00,0x25,0x03,0x00,0x00,0x5f,0x03,0x00,0x00, +0x3b,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x21,0x03,0x00,0x00, +0x22,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, +0x25,0x03,0x00,0x00,0x20,0x03,0x00,0x00,0x21,0x03,0x00,0x00, +0xf8,0x00,0x02,0x00,0x20,0x03,0x00,0x00,0xb0,0x00,0x05,0x00, +0xa0,0x00,0x00,0x00,0x28,0x03,0x00,0x00,0x60,0x00,0x00,0x00, +0x5f,0x03,0x00,0x00,0xf7,0x00,0x03,0x00,0x2a,0x03,0x00,0x00, +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x28,0x03,0x00,0x00, +0x29,0x03,0x00,0x00,0x2a,0x03,0x00,0x00,0xf8,0x00,0x02,0x00, +0x29,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x2e,0x03,0x00,0x00,0x60,0x00,0x00,0x00,0x5f,0x03,0x00,0x00, +0x41,0x00,0x05,0x00,0x92,0x00,0x00,0x00,0x2f,0x03,0x00,0x00, +0x8b,0x00,0x00,0x00,0x2e,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, +0x88,0x00,0x00,0x00,0x30,0x03,0x00,0x00,0x2f,0x03,0x00,0x00, +0x41,0x00,0x05,0x00,0x92,0x00,0x00,0x00,0x31,0x03,0x00,0x00, +0x8b,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x88,0x00,0x00,0x00,0x32,0x03,0x00,0x00,0x31,0x03,0x00,0x00, +0x81,0x00,0x05,0x00,0x88,0x00,0x00,0x00,0x33,0x03,0x00,0x00, +0x32,0x03,0x00,0x00,0x30,0x03,0x00,0x00,0x3e,0x00,0x03,0x00, +0x31,0x03,0x00,0x00,0x33,0x03,0x00,0x00,0xf9,0x00,0x02,0x00, +0x2a,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x2a,0x03,0x00,0x00, +0xe0,0x00,0x04,0x00,0x41,0x00,0x00,0x00,0x41,0x00,0x00,0x00, +0x1d,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,0x22,0x03,0x00,0x00, +0xf8,0x00,0x02,0x00,0x22,0x03,0x00,0x00,0xc2,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x36,0x03,0x00,0x00,0x5f,0x03,0x00,0x00, +0x71,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x1f,0x03,0x00,0x00, +0xf8,0x00,0x02,0x00,0x21,0x03,0x00,0x00,0xaa,0x00,0x05,0x00, +0xa0,0x00,0x00,0x00,0x38,0x03,0x00,0x00,0x60,0x00,0x00,0x00, +0x3b,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0x3a,0x03,0x00,0x00, +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x38,0x03,0x00,0x00, +0x39,0x03,0x00,0x00,0x3a,0x03,0x00,0x00,0xf8,0x00,0x02,0x00, +0x39,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x41,0x03,0x00,0x00,0x5d,0x03,0x00,0x00,0x45,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x92,0x00,0x00,0x00,0x42,0x03,0x00,0x00, +0x8b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x88,0x00,0x00,0x00,0x43,0x03,0x00,0x00,0x42,0x03,0x00,0x00, +0x41,0x00,0x06,0x00,0xd0,0x00,0x00,0x00,0x44,0x03,0x00,0x00, +0x3e,0x03,0x00,0x00,0x1c,0x00,0x00,0x00,0x41,0x03,0x00,0x00, +0x3e,0x00,0x03,0x00,0x44,0x03,0x00,0x00,0x43,0x03,0x00,0x00, +0xf9,0x00,0x02,0x00,0x3a,0x03,0x00,0x00,0xf8,0x00,0x02,0x00, +0x3a,0x03,0x00,0x00,0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00, + +}; +const uint64_t mul_mat_vec_id_q3_k_f32_len = 10020; unsigned char mul_mat_vec_id_q4_0_f32_data[] = { 0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00, -0x3d,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, +0x44,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, 0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x51,0x11,0x00,0x00, 0x11,0x00,0x02,0x00,0x60,0x11,0x00,0x00,0x0b,0x00,0x06,0x00, 0x01,0x00,0x00,0x00,0x47,0x4c,0x53,0x4c,0x2e,0x73,0x74,0x64, 0x2e,0x34,0x35,0x30,0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00, -0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0f,0x00,0x0e,0x00, +0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0f,0x00,0x0f,0x00, 0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e, 0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x47,0x00,0x00,0x00, 0x50,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x6d,0x00,0x00,0x00, -0x72,0x00,0x00,0x00,0x82,0x00,0x00,0x00,0xbc,0x00,0x00,0x00, -0xfa,0x00,0x00,0x00,0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00, -0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x1c,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x1d,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x12,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x1e,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x1e,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x20,0x00,0x00,0x00, -0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x20,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x47,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x4d,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00, -0x4e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x4e,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, -0x4e,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x50,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x50,0x00,0x00,0x00,0x21,0x00,0x00,0x00, -0x03,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x57,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x57,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x57,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x57,0x00,0x00,0x00, -0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x57,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x57,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x57,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x57,0x00,0x00,0x00,0x07,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x57,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x20,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x57,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x6d,0x00,0x00,0x00, -0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x72,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xb9,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00, -0xba,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0xba,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, -0xba,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xbc,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xbc,0x00,0x00,0x00,0x21,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xf7,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00, -0xf8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0xf8,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x71,0x00,0x00,0x00,0x7a,0x00,0x00,0x00,0x8a,0x00,0x00,0x00, +0xc3,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x10,0x00,0x06,0x00, +0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x1c,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x1d,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x48,0x00,0x04,0x00, +0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, -0xf8,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xfa,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xfa,0x00,0x00,0x00,0x21,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x01,0x01,0x00,0x00, -0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x02,0x01,0x00,0x00,0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00, -0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00, -0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x16,0x00,0x03,0x00,0x08,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x17,0x00,0x04,0x00,0x09,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0x18,0x00,0x00,0x00, -0x10,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x19,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x10,0x00,0x00,0x00, -0x1c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x19,0x00,0x00,0x00, -0x1a,0x00,0x00,0x00,0x1e,0x00,0x04,0x00,0x1c,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, -0x1d,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, -0x1e,0x00,0x00,0x00,0x1d,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x1f,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x1e,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x21,0x00,0x00,0x00, -0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x21,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x26,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, -0x2e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x30,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x19,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x35,0x00,0x00,0x00, -0x0f,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, -0x39,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x08,0x00,0x00,0x00,0x3d,0x00,0x00,0x00,0x00,0x00,0x00,0x41, -0x17,0x00,0x04,0x00,0x45,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x46,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x45,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x46,0x00,0x00,0x00,0x47,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x48,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x49,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, -0x4d,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, -0x4e,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x4f,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x4e,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0x4f,0x00,0x00,0x00,0x50,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x52,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x1e,0x00,0x0b,0x00, -0x57,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x58,0x00,0x00,0x00, -0x09,0x00,0x00,0x00,0x57,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x58,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x5a,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, -0x5f,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x21,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x68,0x00,0x00,0x00, -0x03,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x46,0x00,0x00,0x00, -0x6d,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0x46,0x00,0x00,0x00,0x72,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x7f,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, -0x80,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x7f,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x81,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x80,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x81,0x00,0x00,0x00, -0x82,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x08,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x85,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x14,0x00,0x02,0x00,0x91,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x96,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xa1,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, -0xb9,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, -0xba,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0xbb,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xba,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0xbc,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xc2,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xd8,0x00,0x00,0x00,0x08,0x01,0x00,0x00, -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xda,0x00,0x00,0x00, -0x86,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,0x96,0x00,0x00,0x00, -0x1d,0x00,0x03,0x00,0xf7,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x1e,0x00,0x03,0x00,0xf8,0x00,0x00,0x00,0xf7,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0xf9,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0xf8,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xf9,0x00,0x00,0x00, -0xfa,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x32,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x01,0x00,0x00,0x00, -0x33,0x00,0x06,0x00,0x45,0x00,0x00,0x00,0x02,0x01,0x00,0x00, -0x01,0x01,0x00,0x00,0x48,0x00,0x00,0x00,0x48,0x00,0x00,0x00, -0x2c,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0x3c,0x01,0x00,0x00, -0x3d,0x00,0x00,0x00,0x3d,0x00,0x00,0x00,0x36,0x00,0x05,0x00, -0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x03,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x49,0x00,0x00,0x00,0x6f,0x00,0x00,0x00, -0x6d,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x6f,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x49,0x00,0x00,0x00,0x73,0x00,0x00,0x00, -0x72,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x74,0x00,0x00,0x00,0x73,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x49,0x00,0x00,0x00,0x06,0x01,0x00,0x00, -0x47,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x07,0x01,0x00,0x00,0x06,0x01,0x00,0x00, -0x41,0x00,0x06,0x00,0x52,0x00,0x00,0x00,0x09,0x01,0x00,0x00, -0x50,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x07,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x0a,0x01,0x00,0x00, -0x09,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x0b,0x01,0x00,0x00,0x0a,0x01,0x00,0x00,0x41,0x00,0x05,0x00, -0x5a,0x00,0x00,0x00,0x0d,0x01,0x00,0x00,0x59,0x00,0x00,0x00, -0x39,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x0e,0x01,0x00,0x00,0x0d,0x01,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x0f,0x01,0x00,0x00,0x0b,0x01,0x00,0x00, -0x0e,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x5a,0x00,0x00,0x00, -0x11,0x01,0x00,0x00,0x59,0x00,0x00,0x00,0x5f,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x12,0x01,0x00,0x00, -0x11,0x01,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x13,0x01,0x00,0x00,0x07,0x01,0x00,0x00,0x12,0x01,0x00,0x00, -0x41,0x00,0x05,0x00,0x5a,0x00,0x00,0x00,0x14,0x01,0x00,0x00, -0x59,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x15,0x01,0x00,0x00,0x14,0x01,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x16,0x01,0x00,0x00, -0x13,0x01,0x00,0x00,0x15,0x01,0x00,0x00,0x41,0x00,0x05,0x00, -0x5a,0x00,0x00,0x00,0x18,0x01,0x00,0x00,0x59,0x00,0x00,0x00, -0x68,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x19,0x01,0x00,0x00,0x18,0x01,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x1a,0x01,0x00,0x00,0x07,0x01,0x00,0x00, -0x19,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x85,0x00,0x00,0x00, -0x86,0x00,0x00,0x00,0x82,0x00,0x00,0x00,0x74,0x00,0x00,0x00, -0x3e,0x00,0x03,0x00,0x86,0x00,0x00,0x00,0x84,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0x88,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0x88,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00, -0x39,0x01,0x00,0x00,0x6e,0x00,0x00,0x00,0x05,0x00,0x00,0x00, -0xd7,0x00,0x00,0x00,0x89,0x00,0x00,0x00,0x41,0x00,0x05,0x00, -0x5a,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x8f,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,0x86,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x90,0x00,0x00,0x00,0x8f,0x00,0x00,0x00, -0x7f,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0x91,0x00,0x00,0x00, -0x92,0x00,0x00,0x00,0x39,0x01,0x00,0x00,0x90,0x00,0x00,0x00, -0xf6,0x00,0x04,0x00,0x8a,0x00,0x00,0x00,0x89,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x92,0x00,0x00,0x00, -0x89,0x00,0x00,0x00,0x8a,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0x89,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x95,0x00,0x00,0x00,0x39,0x01,0x00,0x00,0x7f,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x98,0x00,0x00,0x00, -0x96,0x00,0x00,0x00,0x74,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x99,0x00,0x00,0x00,0x95,0x00,0x00,0x00, -0x98,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x9e,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x8f,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa0,0x00,0x00,0x00, -0x9e,0x00,0x00,0x00,0x99,0x00,0x00,0x00,0x86,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,0xa0,0x00,0x00,0x00, -0xa1,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xa5,0x00,0x00,0x00,0x99,0x00,0x00,0x00,0xa1,0x00,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa6,0x00,0x00,0x00, -0xa5,0x00,0x00,0x00,0x96,0x00,0x00,0x00,0x82,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xab,0x00,0x00,0x00,0x99,0x00,0x00,0x00, -0xa5,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xaf,0x00,0x00,0x00,0x0f,0x01,0x00,0x00,0xa1,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x21,0x01,0x00,0x00, -0xaf,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,0x41,0x00,0x07,0x00, -0x26,0x00,0x00,0x00,0x22,0x01,0x00,0x00,0x20,0x00,0x00,0x00, -0x22,0x00,0x00,0x00,0x21,0x01,0x00,0x00,0x22,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x23,0x01,0x00,0x00, -0x22,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00, -0x24,0x01,0x00,0x00,0x23,0x01,0x00,0x00,0x41,0x00,0x08,0x00, -0x30,0x00,0x00,0x00,0x29,0x01,0x00,0x00,0x20,0x00,0x00,0x00, -0x22,0x00,0x00,0x00,0x21,0x01,0x00,0x00,0x2e,0x00,0x00,0x00, -0xa6,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x19,0x00,0x00,0x00, -0x2a,0x01,0x00,0x00,0x29,0x01,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x2b,0x01,0x00,0x00,0x2a,0x01,0x00,0x00, -0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2d,0x01,0x00,0x00, -0x2b,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0x70,0x00,0x04,0x00, -0x08,0x00,0x00,0x00,0x2e,0x01,0x00,0x00,0x2d,0x01,0x00,0x00, -0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x30,0x01,0x00,0x00, -0x2b,0x01,0x00,0x00,0x39,0x00,0x00,0x00,0x70,0x00,0x04,0x00, -0x08,0x00,0x00,0x00,0x31,0x01,0x00,0x00,0x30,0x01,0x00,0x00, -0x50,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0x32,0x01,0x00,0x00, -0x2e,0x01,0x00,0x00,0x31,0x01,0x00,0x00,0x83,0x00,0x05,0x00, -0x09,0x00,0x00,0x00,0x34,0x01,0x00,0x00,0x32,0x01,0x00,0x00, -0x3c,0x01,0x00,0x00,0x8e,0x00,0x05,0x00,0x09,0x00,0x00,0x00, -0x36,0x01,0x00,0x00,0x34,0x01,0x00,0x00,0x24,0x01,0x00,0x00, -0x51,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0xb8,0x00,0x00,0x00, -0x36,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0x16,0x01,0x00,0x00, -0xab,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xc1,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0xa6,0x00,0x00,0x00, -0x41,0x00,0x06,0x00,0xc2,0x00,0x00,0x00,0xc3,0x00,0x00,0x00, -0xbc,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0xc1,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xc4,0x00,0x00,0x00, -0xc3,0x00,0x00,0x00,0x51,0x00,0x05,0x00,0x08,0x00,0x00,0x00, -0xc7,0x00,0x00,0x00,0x36,0x01,0x00,0x00,0x01,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xcd,0x00,0x00,0x00, -0xc1,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x41,0x00,0x06,0x00, -0xc2,0x00,0x00,0x00,0xce,0x00,0x00,0x00,0xbc,0x00,0x00,0x00, -0x22,0x00,0x00,0x00,0xcd,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x08,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0xce,0x00,0x00,0x00, -0x85,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0xd0,0x00,0x00,0x00, -0xc7,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x0c,0x00,0x08,0x00, -0x08,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0xc4,0x00,0x00,0x00, -0xd0,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, -0xd3,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x81,0x00,0x05,0x00, -0x08,0x00,0x00,0x00,0xd4,0x00,0x00,0x00,0xd3,0x00,0x00,0x00, -0xd1,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0x86,0x00,0x00,0x00, -0xd4,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xd7,0x00,0x00,0x00,0x39,0x01,0x00,0x00,0x96,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0x88,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0x8a,0x00,0x00,0x00,0xe0,0x00,0x04,0x00,0x96,0x00,0x00,0x00, -0x96,0x00,0x00,0x00,0xd8,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, -0xdb,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xdb,0x00,0x00,0x00, -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x3a,0x01,0x00,0x00, -0xda,0x00,0x00,0x00,0x8a,0x00,0x00,0x00,0xf2,0x00,0x00,0x00, -0xde,0x00,0x00,0x00,0xac,0x00,0x05,0x00,0x91,0x00,0x00,0x00, -0xe1,0x00,0x00,0x00,0x3a,0x01,0x00,0x00,0x6e,0x00,0x00,0x00, -0xf6,0x00,0x04,0x00,0xdd,0x00,0x00,0x00,0xde,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xe1,0x00,0x00,0x00, -0xdc,0x00,0x00,0x00,0xdd,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0xdc,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0x91,0x00,0x00,0x00, -0xe4,0x00,0x00,0x00,0x74,0x00,0x00,0x00,0x3a,0x01,0x00,0x00, -0xf7,0x00,0x03,0x00,0xe6,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0xfa,0x00,0x04,0x00,0xe4,0x00,0x00,0x00,0xe5,0x00,0x00,0x00, -0xe6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xe5,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xea,0x00,0x00,0x00, -0x74,0x00,0x00,0x00,0x3a,0x01,0x00,0x00,0x41,0x00,0x05,0x00, -0x85,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0x82,0x00,0x00,0x00, -0xea,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, -0xec,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x08,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0x86,0x00,0x00,0x00, -0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0xef,0x00,0x00,0x00, -0xee,0x00,0x00,0x00,0xec,0x00,0x00,0x00,0x3e,0x00,0x03,0x00, -0x86,0x00,0x00,0x00,0xef,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, -0xe6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xe6,0x00,0x00,0x00, -0xe0,0x00,0x04,0x00,0x96,0x00,0x00,0x00,0x96,0x00,0x00,0x00, -0xd8,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xde,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0xde,0x00,0x00,0x00,0xc2,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xf2,0x00,0x00,0x00,0x3a,0x01,0x00,0x00, -0x2e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xdb,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0xdd,0x00,0x00,0x00,0xaa,0x00,0x05,0x00, -0x91,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,0x74,0x00,0x00,0x00, -0x6e,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0xf6,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xf4,0x00,0x00,0x00, -0xf5,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0xf5,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xfd,0x00,0x00,0x00,0x1a,0x01,0x00,0x00,0x70,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x85,0x00,0x00,0x00,0xfe,0x00,0x00,0x00, -0x82,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x08,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xfe,0x00,0x00,0x00, -0x41,0x00,0x06,0x00,0xc2,0x00,0x00,0x00,0x00,0x01,0x00,0x00, -0xfa,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0xfd,0x00,0x00,0x00, -0x3e,0x00,0x03,0x00,0x00,0x01,0x00,0x00,0xff,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0xf6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0xf6,0x00,0x00,0x00,0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00, - -}; -const uint64_t mul_mat_vec_id_q4_0_f32_len = 3852; - -unsigned char mul_mat_vec_id_q4_1_f32_data[] = { -0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00, -0x4a,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, -0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x51,0x11,0x00,0x00, -0x11,0x00,0x02,0x00,0x60,0x11,0x00,0x00,0x0b,0x00,0x06,0x00, -0x01,0x00,0x00,0x00,0x47,0x4c,0x53,0x4c,0x2e,0x73,0x74,0x64, -0x2e,0x34,0x35,0x30,0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00, -0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0f,0x00,0x0e,0x00, -0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e, -0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x4f,0x00,0x00,0x00, -0x58,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x74,0x00,0x00,0x00, -0x79,0x00,0x00,0x00,0x89,0x00,0x00,0x00,0xc3,0x00,0x00,0x00, -0x01,0x01,0x00,0x00,0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00, -0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x1c,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x1c,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x1d,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x14,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x1e,0x00,0x00,0x00, +0x1e,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x20,0x00,0x00,0x00,0x21,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x47,0x00,0x00,0x00, +0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x4d,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x48,0x00,0x04,0x00,0x4e,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x4e,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0x1e,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x20,0x00,0x00,0x00, -0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x4f,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x55,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x56,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x56,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x56,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x58,0x00,0x00,0x00, -0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x58,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x03,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x5f,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x5f,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x5f,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x5f,0x00,0x00,0x00,0x03,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x5f,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x5f,0x00,0x00,0x00, -0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x5f,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x5f,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x5f,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0x5f,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x74,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, -0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x79,0x00,0x00,0x00, +0x47,0x00,0x03,0x00,0x4e,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x50,0x00,0x00,0x00,0x22,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x50,0x00,0x00,0x00, +0x21,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x57,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x57,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x57,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x57,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x57,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x57,0x00,0x00,0x00,0x05,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x57,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x57,0x00,0x00,0x00, +0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x57,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0x57,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x6d,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x71,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x7a,0x00,0x00,0x00, 0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x86,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x87,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x47,0x00,0x04,0x00,0xc0,0x00,0x00,0x00,0x06,0x00,0x00,0x00, 0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0xc1,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, @@ -123791,4150 +123566,4577 @@ unsigned char mul_mat_vec_id_q4_1_f32_data[] = { 0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, 0x1a,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, 0x1b,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, -0x1e,0x00,0x05,0x00,0x1c,0x00,0x00,0x00,0x18,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, -0x1d,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, -0x1e,0x00,0x00,0x00,0x1d,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x1f,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x1e,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x21,0x00,0x00,0x00, -0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x21,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x26,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, -0x2e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x21,0x00,0x00,0x00,0x36,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x38,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x19,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x3d,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x21,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x17,0x00,0x04,0x00,0x4d,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x4e,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x4e,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x50,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x51,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, -0x55,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, -0x56,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x57,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x56,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0x57,0x00,0x00,0x00,0x58,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x5a,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x1e,0x00,0x0b,0x00, -0x5f,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x60,0x00,0x00,0x00, -0x09,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x60,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x62,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, -0x67,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x21,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x03,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0x4e,0x00,0x00,0x00,0x74,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x75,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x4e,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x86,0x00,0x00,0x00, -0x20,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0x87,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x88,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x87,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0x88,0x00,0x00,0x00,0x89,0x00,0x00,0x00, +0x1e,0x00,0x04,0x00,0x1c,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x1b,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x1d,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x1e,0x00,0x00,0x00, +0x1d,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x1f,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0x1f,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x15,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x20,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x26,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x2e,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x30,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x0f,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x39,0x00,0x00,0x00, 0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x08,0x00,0x00,0x00, -0x8b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x8c,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x14,0x00,0x02,0x00,0x98,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa8,0x00,0x00,0x00, -0x20,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0xc0,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xc1,0x00,0x00,0x00, -0xc0,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xc2,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0xc1,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0xc2,0x00,0x00,0x00,0xc3,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0xc9,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xdf,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x34,0x00,0x06,0x00, -0x06,0x00,0x00,0x00,0xe1,0x00,0x00,0x00,0x86,0x00,0x00,0x00, -0x86,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, -0xfe,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, -0xff,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x00,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0xff,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0x00,0x01,0x00,0x00,0x01,0x01,0x00,0x00, -0x0c,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x08,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x33,0x00,0x06,0x00, -0x4d,0x00,0x00,0x00,0x09,0x01,0x00,0x00,0x08,0x01,0x00,0x00, -0x50,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x36,0x00,0x05,0x00, +0x3d,0x00,0x00,0x00,0x00,0x00,0x00,0x41,0x17,0x00,0x04,0x00, +0x45,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x46,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x45,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x46,0x00,0x00,0x00, +0x47,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x49,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x4d,0x00,0x00,0x00, +0x21,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x4e,0x00,0x00,0x00, +0x4d,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x4f,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0x4f,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x52,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x21,0x00,0x00,0x00,0x1e,0x00,0x0b,0x00,0x57,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x58,0x00,0x00,0x00,0x09,0x00,0x00,0x00, +0x57,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x58,0x00,0x00,0x00, +0x59,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x5a,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x5f,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, +0x63,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x21,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x03,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x46,0x00,0x00,0x00,0x6d,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x6e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0x46,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x74,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x46,0x00,0x00,0x00, +0x7a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x87,0x00,0x00,0x00,0x20,0x00,0x00,0x00, +0x1c,0x00,0x04,0x00,0x88,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x87,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x89,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x88,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0x89,0x00,0x00,0x00,0x8a,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x8c,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x8d,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x14,0x00,0x02,0x00, +0x99,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xa8,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, +0xc0,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, +0xc1,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0xc2,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xc1,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0xc2,0x00,0x00,0x00,0xc3,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xc9,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0x08,0x01,0x00,0x00, +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xe1,0x00,0x00,0x00, +0x86,0x00,0x00,0x00,0x87,0x00,0x00,0x00,0x74,0x00,0x00,0x00, +0x1d,0x00,0x03,0x00,0xfe,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x1e,0x00,0x03,0x00,0xff,0x00,0x00,0x00,0xfe,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x00,0x01,0x00,0x00,0x0c,0x00,0x00,0x00, +0xff,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x00,0x01,0x00,0x00, +0x01,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x32,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x01,0x00,0x00,0x00, +0x33,0x00,0x06,0x00,0x45,0x00,0x00,0x00,0x09,0x01,0x00,0x00, +0x08,0x01,0x00,0x00,0x48,0x00,0x00,0x00,0x48,0x00,0x00,0x00, +0x2c,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0x43,0x01,0x00,0x00, +0x3d,0x00,0x00,0x00,0x3d,0x00,0x00,0x00,0x36,0x00,0x05,0x00, 0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x03,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x51,0x00,0x00,0x00,0x76,0x00,0x00,0x00, -0x74,0x00,0x00,0x00,0x75,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x77,0x00,0x00,0x00,0x76,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x51,0x00,0x00,0x00,0x7a,0x00,0x00,0x00, -0x79,0x00,0x00,0x00,0x75,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,0x7a,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x51,0x00,0x00,0x00,0x0d,0x01,0x00,0x00, -0x4f,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x0e,0x01,0x00,0x00,0x0d,0x01,0x00,0x00, -0x41,0x00,0x06,0x00,0x5a,0x00,0x00,0x00,0x10,0x01,0x00,0x00, -0x58,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x0e,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x11,0x01,0x00,0x00, -0x10,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x12,0x01,0x00,0x00,0x11,0x01,0x00,0x00,0x41,0x00,0x05,0x00, -0x62,0x00,0x00,0x00,0x14,0x01,0x00,0x00,0x61,0x00,0x00,0x00, -0x41,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x15,0x01,0x00,0x00,0x14,0x01,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x16,0x01,0x00,0x00,0x12,0x01,0x00,0x00, -0x15,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x62,0x00,0x00,0x00, -0x18,0x01,0x00,0x00,0x61,0x00,0x00,0x00,0x67,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x19,0x01,0x00,0x00, -0x18,0x01,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x1a,0x01,0x00,0x00,0x0e,0x01,0x00,0x00,0x19,0x01,0x00,0x00, -0x41,0x00,0x05,0x00,0x62,0x00,0x00,0x00,0x1b,0x01,0x00,0x00, -0x61,0x00,0x00,0x00,0x36,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,0x1b,0x01,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1d,0x01,0x00,0x00, -0x1a,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,0x41,0x00,0x05,0x00, -0x62,0x00,0x00,0x00,0x1f,0x01,0x00,0x00,0x61,0x00,0x00,0x00, -0x6f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x20,0x01,0x00,0x00,0x1f,0x01,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x21,0x01,0x00,0x00,0x0e,0x01,0x00,0x00, -0x20,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x8c,0x00,0x00,0x00, -0x8d,0x00,0x00,0x00,0x89,0x00,0x00,0x00,0x7b,0x00,0x00,0x00, -0x3e,0x00,0x03,0x00,0x8d,0x00,0x00,0x00,0x8b,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0x8f,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0x8f,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00, -0x48,0x01,0x00,0x00,0x75,0x00,0x00,0x00,0x05,0x00,0x00,0x00, -0xde,0x00,0x00,0x00,0x90,0x00,0x00,0x00,0x41,0x00,0x05,0x00, -0x62,0x00,0x00,0x00,0x95,0x00,0x00,0x00,0x61,0x00,0x00,0x00, -0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x96,0x00,0x00,0x00,0x95,0x00,0x00,0x00,0x86,0x00,0x05,0x00, +0x41,0x00,0x05,0x00,0x49,0x00,0x00,0x00,0x6f,0x00,0x00,0x00, +0x6d,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x6f,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x49,0x00,0x00,0x00,0x72,0x00,0x00,0x00, +0x71,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x73,0x00,0x00,0x00,0x72,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x49,0x00,0x00,0x00,0x75,0x00,0x00,0x00, +0x6d,0x00,0x00,0x00,0x74,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x76,0x00,0x00,0x00,0x75,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x77,0x00,0x00,0x00, +0x73,0x00,0x00,0x00,0x76,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x70,0x00,0x00,0x00, +0x77,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x49,0x00,0x00,0x00, +0x7b,0x00,0x00,0x00,0x7a,0x00,0x00,0x00,0x6e,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x7c,0x00,0x00,0x00, +0x7b,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x49,0x00,0x00,0x00, +0x0d,0x01,0x00,0x00,0x47,0x00,0x00,0x00,0x48,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x0e,0x01,0x00,0x00, +0x0d,0x01,0x00,0x00,0x41,0x00,0x06,0x00,0x52,0x00,0x00,0x00, +0x10,0x01,0x00,0x00,0x50,0x00,0x00,0x00,0x22,0x00,0x00,0x00, +0x0e,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x21,0x00,0x00,0x00, +0x11,0x01,0x00,0x00,0x10,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x12,0x01,0x00,0x00,0x11,0x01,0x00,0x00, +0x41,0x00,0x05,0x00,0x5a,0x00,0x00,0x00,0x14,0x01,0x00,0x00, +0x59,0x00,0x00,0x00,0x39,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x15,0x01,0x00,0x00,0x14,0x01,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x16,0x01,0x00,0x00, +0x12,0x01,0x00,0x00,0x15,0x01,0x00,0x00,0x41,0x00,0x05,0x00, +0x5a,0x00,0x00,0x00,0x18,0x01,0x00,0x00,0x59,0x00,0x00,0x00, +0x5f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x19,0x01,0x00,0x00,0x18,0x01,0x00,0x00,0x89,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x1a,0x01,0x00,0x00,0x0e,0x01,0x00,0x00, +0x19,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x5a,0x00,0x00,0x00, +0x1b,0x01,0x00,0x00,0x59,0x00,0x00,0x00,0x63,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x1c,0x01,0x00,0x00, +0x1b,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x1d,0x01,0x00,0x00,0x1a,0x01,0x00,0x00,0x1c,0x01,0x00,0x00, +0x41,0x00,0x05,0x00,0x5a,0x00,0x00,0x00,0x1f,0x01,0x00,0x00, +0x59,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x20,0x01,0x00,0x00,0x1f,0x01,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x21,0x01,0x00,0x00, +0x0e,0x01,0x00,0x00,0x20,0x01,0x00,0x00,0x41,0x00,0x05,0x00, +0x8d,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,0x8a,0x00,0x00,0x00, +0x7c,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0x8e,0x00,0x00,0x00, +0x8c,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x90,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0x90,0x00,0x00,0x00,0xf5,0x00,0x07,0x00, +0x06,0x00,0x00,0x00,0x40,0x01,0x00,0x00,0x6e,0x00,0x00,0x00, +0x05,0x00,0x00,0x00,0xde,0x00,0x00,0x00,0x91,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x5a,0x00,0x00,0x00,0x96,0x00,0x00,0x00, +0x59,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, 0x06,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x96,0x00,0x00,0x00, -0x86,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0x98,0x00,0x00,0x00, -0x99,0x00,0x00,0x00,0x48,0x01,0x00,0x00,0x97,0x00,0x00,0x00, -0xf6,0x00,0x04,0x00,0x91,0x00,0x00,0x00,0x90,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x99,0x00,0x00,0x00, -0x90,0x00,0x00,0x00,0x91,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0x90,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x9c,0x00,0x00,0x00,0x48,0x01,0x00,0x00,0x86,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9f,0x00,0x00,0x00, -0x9d,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0x9c,0x00,0x00,0x00, -0x9f,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xa5,0x00,0x00,0x00,0x77,0x00,0x00,0x00,0x96,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa7,0x00,0x00,0x00, -0xa5,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0x86,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,0xa7,0x00,0x00,0x00, -0xa8,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xac,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0xa8,0x00,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xad,0x00,0x00,0x00, -0xac,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0x82,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,0xa0,0x00,0x00,0x00, -0xac,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xb6,0x00,0x00,0x00,0x16,0x01,0x00,0x00,0xa8,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x29,0x01,0x00,0x00, -0xb6,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,0x41,0x00,0x07,0x00, -0x26,0x00,0x00,0x00,0x2a,0x01,0x00,0x00,0x20,0x00,0x00,0x00, -0x22,0x00,0x00,0x00,0x29,0x01,0x00,0x00,0x22,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x2b,0x01,0x00,0x00, -0x2a,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00, -0x2c,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,0x41,0x00,0x07,0x00, -0x26,0x00,0x00,0x00,0x30,0x01,0x00,0x00,0x20,0x00,0x00,0x00, -0x22,0x00,0x00,0x00,0x29,0x01,0x00,0x00,0x2e,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x31,0x01,0x00,0x00, -0x30,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00, -0x32,0x01,0x00,0x00,0x31,0x01,0x00,0x00,0x41,0x00,0x08,0x00, -0x38,0x00,0x00,0x00,0x37,0x01,0x00,0x00,0x20,0x00,0x00,0x00, -0x22,0x00,0x00,0x00,0x29,0x01,0x00,0x00,0x36,0x00,0x00,0x00, -0xad,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x19,0x00,0x00,0x00, -0x38,0x01,0x00,0x00,0x37,0x01,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x39,0x01,0x00,0x00,0x38,0x01,0x00,0x00, -0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3b,0x01,0x00,0x00, -0x39,0x01,0x00,0x00,0x3d,0x00,0x00,0x00,0x70,0x00,0x04,0x00, -0x08,0x00,0x00,0x00,0x3c,0x01,0x00,0x00,0x3b,0x01,0x00,0x00, -0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3e,0x01,0x00,0x00, -0x39,0x01,0x00,0x00,0x41,0x00,0x00,0x00,0x70,0x00,0x04,0x00, -0x08,0x00,0x00,0x00,0x3f,0x01,0x00,0x00,0x3e,0x01,0x00,0x00, -0x50,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0x40,0x01,0x00,0x00, -0x3c,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,0x8e,0x00,0x05,0x00, -0x09,0x00,0x00,0x00,0x42,0x01,0x00,0x00,0x40,0x01,0x00,0x00, -0x2c,0x01,0x00,0x00,0x50,0x00,0x05,0x00,0x09,0x00,0x00,0x00, -0x44,0x01,0x00,0x00,0x32,0x01,0x00,0x00,0x32,0x01,0x00,0x00, -0x81,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0x45,0x01,0x00,0x00, -0x42,0x01,0x00,0x00,0x44,0x01,0x00,0x00,0x51,0x00,0x05,0x00, -0x08,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0x45,0x01,0x00,0x00, -0x00,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xc6,0x00,0x00,0x00,0x1d,0x01,0x00,0x00,0xb2,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc8,0x00,0x00,0x00, -0xc6,0x00,0x00,0x00,0xad,0x00,0x00,0x00,0x41,0x00,0x06,0x00, -0xc9,0x00,0x00,0x00,0xca,0x00,0x00,0x00,0xc3,0x00,0x00,0x00, -0x22,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x08,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,0xca,0x00,0x00,0x00, -0x51,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0xce,0x00,0x00,0x00, -0x45,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xd4,0x00,0x00,0x00,0xc8,0x00,0x00,0x00, -0x1a,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xc9,0x00,0x00,0x00, -0xd5,0x00,0x00,0x00,0xc3,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0xd4,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, -0xd6,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0x85,0x00,0x05,0x00, -0x08,0x00,0x00,0x00,0xd7,0x00,0x00,0x00,0xce,0x00,0x00,0x00, -0xd6,0x00,0x00,0x00,0x0c,0x00,0x08,0x00,0x08,0x00,0x00,0x00, -0xd8,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0xbf,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,0xd7,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xda,0x00,0x00,0x00, -0x8d,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00, -0xdb,0x00,0x00,0x00,0xda,0x00,0x00,0x00,0xd8,0x00,0x00,0x00, -0x3e,0x00,0x03,0x00,0x8d,0x00,0x00,0x00,0xdb,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xde,0x00,0x00,0x00, -0x48,0x01,0x00,0x00,0x9d,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, -0x8f,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x91,0x00,0x00,0x00, -0xe0,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0x9d,0x00,0x00,0x00, -0xdf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xe2,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0xe2,0x00,0x00,0x00,0xf5,0x00,0x07,0x00, -0x06,0x00,0x00,0x00,0x49,0x01,0x00,0x00,0xe1,0x00,0x00,0x00, -0x91,0x00,0x00,0x00,0xf9,0x00,0x00,0x00,0xe5,0x00,0x00,0x00, -0xac,0x00,0x05,0x00,0x98,0x00,0x00,0x00,0xe8,0x00,0x00,0x00, -0x49,0x01,0x00,0x00,0x75,0x00,0x00,0x00,0xf6,0x00,0x04,0x00, -0xe4,0x00,0x00,0x00,0xe5,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0xfa,0x00,0x04,0x00,0xe8,0x00,0x00,0x00,0xe3,0x00,0x00,0x00, -0xe4,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xe3,0x00,0x00,0x00, -0xb0,0x00,0x05,0x00,0x98,0x00,0x00,0x00,0xeb,0x00,0x00,0x00, -0x7b,0x00,0x00,0x00,0x49,0x01,0x00,0x00,0xf7,0x00,0x03,0x00, -0xed,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, -0xeb,0x00,0x00,0x00,0xec,0x00,0x00,0x00,0xed,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0xec,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xf1,0x00,0x00,0x00,0x7b,0x00,0x00,0x00, -0x49,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x8c,0x00,0x00,0x00, -0xf2,0x00,0x00,0x00,0x89,0x00,0x00,0x00,0xf1,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xf3,0x00,0x00,0x00, -0xf2,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, -0xf5,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,0x81,0x00,0x05,0x00, -0x08,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,0xf5,0x00,0x00,0x00, -0xf3,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0x8d,0x00,0x00,0x00, -0xf6,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xed,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0xed,0x00,0x00,0x00,0xe0,0x00,0x04,0x00, -0x9d,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0xdf,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0xe5,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0xe5,0x00,0x00,0x00,0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xf9,0x00,0x00,0x00,0x49,0x01,0x00,0x00,0x2e,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0xe2,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0xe4,0x00,0x00,0x00,0xaa,0x00,0x05,0x00,0x98,0x00,0x00,0x00, -0xfb,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,0x75,0x00,0x00,0x00, -0xf7,0x00,0x03,0x00,0xfd,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0xfa,0x00,0x04,0x00,0xfb,0x00,0x00,0x00,0xfc,0x00,0x00,0x00, -0xfd,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xfc,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x04,0x01,0x00,0x00, -0x21,0x01,0x00,0x00,0x77,0x00,0x00,0x00,0x41,0x00,0x05,0x00, -0x8c,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0x89,0x00,0x00,0x00, -0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, -0x06,0x01,0x00,0x00,0x05,0x01,0x00,0x00,0x41,0x00,0x06,0x00, -0xc9,0x00,0x00,0x00,0x07,0x01,0x00,0x00,0x01,0x01,0x00,0x00, -0x22,0x00,0x00,0x00,0x04,0x01,0x00,0x00,0x3e,0x00,0x03,0x00, -0x07,0x01,0x00,0x00,0x06,0x01,0x00,0x00,0xf9,0x00,0x02,0x00, -0xfd,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xfd,0x00,0x00,0x00, -0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00, +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x98,0x00,0x00,0x00, +0x97,0x00,0x00,0x00,0x87,0x00,0x00,0x00,0xb0,0x00,0x05,0x00, +0x99,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,0x40,0x01,0x00,0x00, +0x98,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x92,0x00,0x00,0x00, +0x91,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, +0x9a,0x00,0x00,0x00,0x91,0x00,0x00,0x00,0x92,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0x91,0x00,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0x40,0x01,0x00,0x00, +0x87,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x9f,0x00,0x00,0x00,0x74,0x00,0x00,0x00,0x7c,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa0,0x00,0x00,0x00, +0x9d,0x00,0x00,0x00,0x9f,0x00,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xa5,0x00,0x00,0x00,0x78,0x00,0x00,0x00, +0x97,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xa7,0x00,0x00,0x00,0xa5,0x00,0x00,0x00,0xa0,0x00,0x00,0x00, +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa9,0x00,0x00,0x00, +0xa7,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,0x89,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xac,0x00,0x00,0x00,0xa0,0x00,0x00,0x00, +0xa8,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xad,0x00,0x00,0x00,0xac,0x00,0x00,0x00,0x74,0x00,0x00,0x00, +0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb2,0x00,0x00,0x00, +0xa0,0x00,0x00,0x00,0xac,0x00,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xb6,0x00,0x00,0x00,0x16,0x01,0x00,0x00, +0xa8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x28,0x01,0x00,0x00,0xb6,0x00,0x00,0x00,0xa9,0x00,0x00,0x00, +0x41,0x00,0x07,0x00,0x26,0x00,0x00,0x00,0x29,0x01,0x00,0x00, +0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x28,0x01,0x00,0x00, +0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x18,0x00,0x00,0x00, +0x2a,0x01,0x00,0x00,0x29,0x01,0x00,0x00,0x73,0x00,0x04,0x00, +0x08,0x00,0x00,0x00,0x2b,0x01,0x00,0x00,0x2a,0x01,0x00,0x00, +0x41,0x00,0x08,0x00,0x30,0x00,0x00,0x00,0x30,0x01,0x00,0x00, +0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x28,0x01,0x00,0x00, +0x2e,0x00,0x00,0x00,0xad,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x19,0x00,0x00,0x00,0x31,0x01,0x00,0x00,0x30,0x01,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x32,0x01,0x00,0x00, +0x31,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x34,0x01,0x00,0x00,0x32,0x01,0x00,0x00,0x35,0x00,0x00,0x00, +0x70,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x35,0x01,0x00,0x00, +0x34,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x37,0x01,0x00,0x00,0x32,0x01,0x00,0x00,0x39,0x00,0x00,0x00, +0x70,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x38,0x01,0x00,0x00, +0x37,0x01,0x00,0x00,0x50,0x00,0x05,0x00,0x09,0x00,0x00,0x00, +0x39,0x01,0x00,0x00,0x35,0x01,0x00,0x00,0x38,0x01,0x00,0x00, +0x83,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0x3b,0x01,0x00,0x00, +0x39,0x01,0x00,0x00,0x43,0x01,0x00,0x00,0x8e,0x00,0x05,0x00, +0x09,0x00,0x00,0x00,0x3d,0x01,0x00,0x00,0x3b,0x01,0x00,0x00, +0x2b,0x01,0x00,0x00,0x51,0x00,0x05,0x00,0x08,0x00,0x00,0x00, +0xbf,0x00,0x00,0x00,0x3d,0x01,0x00,0x00,0x00,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc6,0x00,0x00,0x00, +0x1d,0x01,0x00,0x00,0xb2,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0xc6,0x00,0x00,0x00, +0xad,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xc9,0x00,0x00,0x00, +0xca,0x00,0x00,0x00,0xc3,0x00,0x00,0x00,0x22,0x00,0x00,0x00, +0xc8,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0xcb,0x00,0x00,0x00,0xca,0x00,0x00,0x00,0x51,0x00,0x05,0x00, +0x08,0x00,0x00,0x00,0xce,0x00,0x00,0x00,0x3d,0x01,0x00,0x00, +0x01,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xd4,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, +0x41,0x00,0x06,0x00,0xc9,0x00,0x00,0x00,0xd5,0x00,0x00,0x00, +0xc3,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0xd4,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xd6,0x00,0x00,0x00, +0xd5,0x00,0x00,0x00,0x85,0x00,0x05,0x00,0x08,0x00,0x00,0x00, +0xd7,0x00,0x00,0x00,0xce,0x00,0x00,0x00,0xd6,0x00,0x00,0x00, +0x0c,0x00,0x08,0x00,0x08,0x00,0x00,0x00,0xd8,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xbf,0x00,0x00,0x00, +0xcb,0x00,0x00,0x00,0xd7,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x08,0x00,0x00,0x00,0xda,0x00,0x00,0x00,0x8e,0x00,0x00,0x00, +0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0xdb,0x00,0x00,0x00, +0xda,0x00,0x00,0x00,0xd8,0x00,0x00,0x00,0x3e,0x00,0x03,0x00, +0x8e,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xde,0x00,0x00,0x00,0x40,0x01,0x00,0x00, +0x74,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x90,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0x92,0x00,0x00,0x00,0xe0,0x00,0x04,0x00, +0x74,0x00,0x00,0x00,0x74,0x00,0x00,0x00,0xdf,0x00,0x00,0x00, +0xf9,0x00,0x02,0x00,0xe2,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xe2,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00, +0x41,0x01,0x00,0x00,0xe1,0x00,0x00,0x00,0x92,0x00,0x00,0x00, +0xf9,0x00,0x00,0x00,0xe5,0x00,0x00,0x00,0xac,0x00,0x05,0x00, +0x99,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0x41,0x01,0x00,0x00, +0x6e,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xe4,0x00,0x00,0x00, +0xe5,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, +0xe8,0x00,0x00,0x00,0xe3,0x00,0x00,0x00,0xe4,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0xe3,0x00,0x00,0x00,0xb0,0x00,0x05,0x00, +0x99,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0x7c,0x00,0x00,0x00, +0x41,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,0xed,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xeb,0x00,0x00,0x00, +0xec,0x00,0x00,0x00,0xed,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xec,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xf1,0x00,0x00,0x00,0x7c,0x00,0x00,0x00,0x41,0x01,0x00,0x00, +0x41,0x00,0x05,0x00,0x8d,0x00,0x00,0x00,0xf2,0x00,0x00,0x00, +0x8a,0x00,0x00,0x00,0xf1,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x08,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,0xf2,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xf5,0x00,0x00,0x00, +0x8e,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00, +0xf6,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,0xf3,0x00,0x00,0x00, +0x3e,0x00,0x03,0x00,0x8e,0x00,0x00,0x00,0xf6,0x00,0x00,0x00, +0xf9,0x00,0x02,0x00,0xed,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xed,0x00,0x00,0x00,0xe0,0x00,0x04,0x00,0x74,0x00,0x00,0x00, +0x74,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, +0xe5,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xe5,0x00,0x00,0x00, +0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf9,0x00,0x00,0x00, +0x41,0x01,0x00,0x00,0x2e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, +0xe2,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xe4,0x00,0x00,0x00, +0xaa,0x00,0x05,0x00,0x99,0x00,0x00,0x00,0xfb,0x00,0x00,0x00, +0x7c,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0xf7,0x00,0x03,0x00, +0xfd,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, +0xfb,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0xfd,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0xfc,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x04,0x01,0x00,0x00,0x21,0x01,0x00,0x00, +0x78,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x8d,0x00,0x00,0x00, +0x05,0x01,0x00,0x00,0x8a,0x00,0x00,0x00,0x22,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x06,0x01,0x00,0x00, +0x05,0x01,0x00,0x00,0x41,0x00,0x06,0x00,0xc9,0x00,0x00,0x00, +0x07,0x01,0x00,0x00,0x01,0x01,0x00,0x00,0x22,0x00,0x00,0x00, +0x04,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x07,0x01,0x00,0x00, +0x06,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xfd,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0xfd,0x00,0x00,0x00,0xfd,0x00,0x01,0x00, +0x38,0x00,0x01,0x00, }; -const uint64_t mul_mat_vec_id_q4_1_f32_len = 3920; +const uint64_t mul_mat_vec_id_q4_0_f32_len = 4000; -unsigned char mul_mat_vec_id_q4_k_f32_data[] = { +unsigned char mul_mat_vec_id_q4_1_f32_data[] = { 0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00, -0xc7,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, -0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x27,0x00,0x00,0x00, -0x11,0x00,0x02,0x00,0x51,0x11,0x00,0x00,0x11,0x00,0x02,0x00, -0x60,0x11,0x00,0x00,0x0b,0x00,0x06,0x00,0x01,0x00,0x00,0x00, -0x47,0x4c,0x53,0x4c,0x2e,0x73,0x74,0x64,0x2e,0x34,0x35,0x30, -0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00,0x00,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x0f,0x00,0x0e,0x00,0x05,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e,0x00,0x00,0x00,0x00, -0x11,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x25,0x00,0x00,0x00, -0x3a,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x82,0x00,0x00,0x00, -0xab,0x00,0x00,0x00,0x1e,0x02,0x00,0x00,0xa2,0x03,0x00,0x00, -0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00, -0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x11,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x18,0x00,0x00,0x00, +0x51,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, +0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x51,0x11,0x00,0x00, +0x11,0x00,0x02,0x00,0x60,0x11,0x00,0x00,0x0b,0x00,0x06,0x00, +0x01,0x00,0x00,0x00,0x47,0x4c,0x53,0x4c,0x2e,0x73,0x74,0x64, +0x2e,0x34,0x35,0x30,0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00, +0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0f,0x00,0x0f,0x00, +0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e, +0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x4f,0x00,0x00,0x00, +0x58,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x74,0x00,0x00,0x00, +0x78,0x00,0x00,0x00,0x81,0x00,0x00,0x00,0x91,0x00,0x00,0x00, +0xca,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x10,0x00,0x06,0x00, +0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x1c,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x1c,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x1d,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x14,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x1e,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x1e,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x20,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x20,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x4f,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x55,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00, -0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x56,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x56,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, -0x19,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x21,0x00,0x00,0x00, -0x03,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x23,0x00,0x00,0x00, +0x56,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x58,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x58,0x00,0x00,0x00,0x21,0x00,0x00,0x00, +0x03,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x5f,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x23,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x5f,0x00,0x00,0x00,0x01,0x00,0x00,0x00, 0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x23,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x23,0x00,0x00,0x00, +0x5f,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x5f,0x00,0x00,0x00, 0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x5f,0x00,0x00,0x00,0x04,0x00,0x00,0x00, 0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x23,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x23,0x00,0x00,0x00, +0x5f,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x5f,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x23,0x00,0x00,0x00,0x07,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x5f,0x00,0x00,0x00,0x07,0x00,0x00,0x00, 0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x20,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x23,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x3a,0x00,0x00,0x00, +0x5f,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x5f,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x74,0x00,0x00,0x00, 0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x55,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xa5,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xa6,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0xa7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xa7,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0xa7,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xa8,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x90,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0xa9,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xa9,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0xa9,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xab,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xab,0x00,0x00,0x00, -0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x1b,0x02,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0x1c,0x02,0x00,0x00,0x00,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x1c,0x02,0x00,0x00, +0x78,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x81,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, +0x1b,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x8e,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xc7,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x48,0x00,0x04,0x00,0xc8,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xc8,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0x1c,0x02,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x1e,0x02,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x1e,0x02,0x00,0x00, +0x47,0x00,0x03,0x00,0xc8,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xca,0x00,0x00,0x00,0x22,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xca,0x00,0x00,0x00, 0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x9f,0x03,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0xa0,0x03,0x00,0x00,0x00,0x00,0x00,0x00, -0x19,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xa0,0x03,0x00,0x00, +0x05,0x01,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x48,0x00,0x04,0x00,0x06,0x01,0x00,0x00,0x00,0x00,0x00,0x00, +0x19,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x06,0x01,0x00,0x00, 0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0xa0,0x03,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xa2,0x03,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xa2,0x03,0x00,0x00, +0x47,0x00,0x03,0x00,0x06,0x01,0x00,0x00,0x02,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x08,0x01,0x00,0x00,0x22,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x08,0x01,0x00,0x00, 0x21,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xa9,0x03,0x00,0x00,0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00, -0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00, -0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x17,0x00,0x04,0x00,0x0f,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x10,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x10,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x12,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x13,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x15,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x1d,0x00,0x03,0x00,0x18,0x00,0x00,0x00,0x17,0x00,0x00,0x00, -0x1e,0x00,0x03,0x00,0x19,0x00,0x00,0x00,0x18,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x1a,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x19,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x1a,0x00,0x00,0x00, -0x1b,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x1e,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x17,0x00,0x00,0x00,0x1e,0x00,0x0b,0x00,0x23,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x0f,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x10,0x01,0x00,0x00,0x0b,0x00,0x00,0x00, +0x19,0x00,0x00,0x00,0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00, +0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x15,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0x08,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x17,0x00,0x04,0x00,0x09,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x16,0x00,0x03,0x00, +0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x15,0x00,0x04,0x00, +0x19,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, +0x10,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x19,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x1e,0x00,0x05,0x00, +0x1c,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x1b,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x1d,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x1e,0x00,0x00,0x00, +0x1d,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x1f,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0x1f,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x15,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x20,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x26,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x2e,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, +0x36,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x38,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x19,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x3d,0x00,0x00,0x00, +0x0f,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, +0x41,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x17,0x00,0x04,0x00, +0x4d,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x4e,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x4d,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x4e,0x00,0x00,0x00, +0x4f,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x51,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x55,0x00,0x00,0x00, +0x21,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x56,0x00,0x00,0x00, +0x55,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x57,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x56,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0x57,0x00,0x00,0x00,0x58,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x5a,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x21,0x00,0x00,0x00,0x1e,0x00,0x0b,0x00,0x5f,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x60,0x00,0x00,0x00,0x09,0x00,0x00,0x00, +0x5f,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x60,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x62,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x67,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, +0x6f,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0x4e,0x00,0x00,0x00,0x74,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x75,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x4e,0x00,0x00,0x00, +0x78,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x4e,0x00,0x00,0x00,0x81,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x8e,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, +0x8f,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x8e,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x8f,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x90,0x00,0x00,0x00, +0x91,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x08,0x00,0x00,0x00,0x93,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x94,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x14,0x00,0x02,0x00,0xa0,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xaf,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0xc7,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xc8,0x00,0x00,0x00, +0xc7,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xc9,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0xc9,0x00,0x00,0x00,0xca,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0xd0,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xe6,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x34,0x00,0x06,0x00, +0x06,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0x86,0x00,0x00,0x00, +0x8e,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, +0x05,0x01,0x00,0x00,0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, +0x06,0x01,0x00,0x00,0x05,0x01,0x00,0x00,0x20,0x00,0x04,0x00, +0x07,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x06,0x01,0x00,0x00, +0x3b,0x00,0x04,0x00,0x07,0x01,0x00,0x00,0x08,0x01,0x00,0x00, +0x0c,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x0f,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x33,0x00,0x06,0x00, +0x4d,0x00,0x00,0x00,0x10,0x01,0x00,0x00,0x0f,0x01,0x00,0x00, +0x50,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x36,0x00,0x05,0x00, +0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x03,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x51,0x00,0x00,0x00,0x76,0x00,0x00,0x00, +0x74,0x00,0x00,0x00,0x75,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x77,0x00,0x00,0x00,0x76,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x51,0x00,0x00,0x00,0x79,0x00,0x00,0x00, +0x78,0x00,0x00,0x00,0x75,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x7a,0x00,0x00,0x00,0x79,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x51,0x00,0x00,0x00,0x7c,0x00,0x00,0x00, +0x74,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,0x7c,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7e,0x00,0x00,0x00, +0x7a,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,0x77,0x00,0x00,0x00, +0x7e,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x51,0x00,0x00,0x00, +0x82,0x00,0x00,0x00,0x81,0x00,0x00,0x00,0x75,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x83,0x00,0x00,0x00, +0x82,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x51,0x00,0x00,0x00, +0x14,0x01,0x00,0x00,0x4f,0x00,0x00,0x00,0x50,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x15,0x01,0x00,0x00, +0x14,0x01,0x00,0x00,0x41,0x00,0x06,0x00,0x5a,0x00,0x00,0x00, +0x17,0x01,0x00,0x00,0x58,0x00,0x00,0x00,0x22,0x00,0x00,0x00, +0x15,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x21,0x00,0x00,0x00, +0x18,0x01,0x00,0x00,0x17,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x19,0x01,0x00,0x00,0x18,0x01,0x00,0x00, +0x41,0x00,0x05,0x00,0x62,0x00,0x00,0x00,0x1b,0x01,0x00,0x00, +0x61,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,0x1b,0x01,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1d,0x01,0x00,0x00, +0x19,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,0x41,0x00,0x05,0x00, +0x62,0x00,0x00,0x00,0x1f,0x01,0x00,0x00,0x61,0x00,0x00,0x00, +0x67,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x20,0x01,0x00,0x00,0x1f,0x01,0x00,0x00,0x89,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x21,0x01,0x00,0x00,0x15,0x01,0x00,0x00, +0x20,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x62,0x00,0x00,0x00, +0x22,0x01,0x00,0x00,0x61,0x00,0x00,0x00,0x36,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x23,0x01,0x00,0x00, +0x22,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x24,0x01,0x00,0x00,0x21,0x01,0x00,0x00,0x23,0x01,0x00,0x00, +0x41,0x00,0x05,0x00,0x62,0x00,0x00,0x00,0x26,0x01,0x00,0x00, +0x61,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x27,0x01,0x00,0x00,0x26,0x01,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x28,0x01,0x00,0x00, +0x15,0x01,0x00,0x00,0x27,0x01,0x00,0x00,0x41,0x00,0x05,0x00, +0x94,0x00,0x00,0x00,0x95,0x00,0x00,0x00,0x91,0x00,0x00,0x00, +0x83,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0x95,0x00,0x00,0x00, +0x93,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x97,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0x97,0x00,0x00,0x00,0xf5,0x00,0x07,0x00, +0x06,0x00,0x00,0x00,0x4f,0x01,0x00,0x00,0x75,0x00,0x00,0x00, +0x05,0x00,0x00,0x00,0xe5,0x00,0x00,0x00,0x98,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x62,0x00,0x00,0x00,0x9d,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x9e,0x00,0x00,0x00,0x9d,0x00,0x00,0x00, +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9f,0x00,0x00,0x00, +0x9e,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,0xb0,0x00,0x05,0x00, +0xa0,0x00,0x00,0x00,0xa1,0x00,0x00,0x00,0x4f,0x01,0x00,0x00, +0x9f,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x99,0x00,0x00,0x00, +0x98,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, +0xa1,0x00,0x00,0x00,0x98,0x00,0x00,0x00,0x99,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0x98,0x00,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,0x4f,0x01,0x00,0x00, +0x8e,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xa6,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,0x83,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa7,0x00,0x00,0x00, +0xa4,0x00,0x00,0x00,0xa6,0x00,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xac,0x00,0x00,0x00,0x7f,0x00,0x00,0x00, +0x9e,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xae,0x00,0x00,0x00,0xac,0x00,0x00,0x00,0xa7,0x00,0x00,0x00, +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb0,0x00,0x00,0x00, +0xae,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0x89,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,0xa7,0x00,0x00,0x00, +0xaf,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xb4,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,0x7b,0x00,0x00,0x00, +0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb9,0x00,0x00,0x00, +0xa7,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xbd,0x00,0x00,0x00,0x1d,0x01,0x00,0x00, +0xaf,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x30,0x01,0x00,0x00,0xbd,0x00,0x00,0x00,0xb0,0x00,0x00,0x00, +0x41,0x00,0x07,0x00,0x26,0x00,0x00,0x00,0x31,0x01,0x00,0x00, +0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x30,0x01,0x00,0x00, +0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x18,0x00,0x00,0x00, +0x32,0x01,0x00,0x00,0x31,0x01,0x00,0x00,0x73,0x00,0x04,0x00, +0x08,0x00,0x00,0x00,0x33,0x01,0x00,0x00,0x32,0x01,0x00,0x00, +0x41,0x00,0x07,0x00,0x26,0x00,0x00,0x00,0x37,0x01,0x00,0x00, +0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x30,0x01,0x00,0x00, +0x2e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x18,0x00,0x00,0x00, +0x38,0x01,0x00,0x00,0x37,0x01,0x00,0x00,0x73,0x00,0x04,0x00, +0x08,0x00,0x00,0x00,0x39,0x01,0x00,0x00,0x38,0x01,0x00,0x00, +0x41,0x00,0x08,0x00,0x38,0x00,0x00,0x00,0x3e,0x01,0x00,0x00, +0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x30,0x01,0x00,0x00, +0x36,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x19,0x00,0x00,0x00,0x3f,0x01,0x00,0x00,0x3e,0x01,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x40,0x01,0x00,0x00, +0x3f,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x42,0x01,0x00,0x00,0x40,0x01,0x00,0x00,0x3d,0x00,0x00,0x00, +0x70,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x43,0x01,0x00,0x00, +0x42,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x45,0x01,0x00,0x00,0x40,0x01,0x00,0x00,0x41,0x00,0x00,0x00, +0x70,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x46,0x01,0x00,0x00, +0x45,0x01,0x00,0x00,0x50,0x00,0x05,0x00,0x09,0x00,0x00,0x00, +0x47,0x01,0x00,0x00,0x43,0x01,0x00,0x00,0x46,0x01,0x00,0x00, +0x8e,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0x49,0x01,0x00,0x00, +0x47,0x01,0x00,0x00,0x33,0x01,0x00,0x00,0x50,0x00,0x05,0x00, +0x09,0x00,0x00,0x00,0x4b,0x01,0x00,0x00,0x39,0x01,0x00,0x00, +0x39,0x01,0x00,0x00,0x81,0x00,0x05,0x00,0x09,0x00,0x00,0x00, +0x4c,0x01,0x00,0x00,0x49,0x01,0x00,0x00,0x4b,0x01,0x00,0x00, +0x51,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0xc6,0x00,0x00,0x00, +0x4c,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xcd,0x00,0x00,0x00,0x24,0x01,0x00,0x00, +0xb9,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xcf,0x00,0x00,0x00,0xcd,0x00,0x00,0x00,0xb4,0x00,0x00,0x00, +0x41,0x00,0x06,0x00,0xd0,0x00,0x00,0x00,0xd1,0x00,0x00,0x00, +0xca,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0xcf,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xd2,0x00,0x00,0x00, +0xd1,0x00,0x00,0x00,0x51,0x00,0x05,0x00,0x08,0x00,0x00,0x00, +0xd5,0x00,0x00,0x00,0x4c,0x01,0x00,0x00,0x01,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdb,0x00,0x00,0x00, +0xcf,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x41,0x00,0x06,0x00, +0xd0,0x00,0x00,0x00,0xdc,0x00,0x00,0x00,0xca,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x08,0x00,0x00,0x00,0xdd,0x00,0x00,0x00,0xdc,0x00,0x00,0x00, +0x85,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0xde,0x00,0x00,0x00, +0xd5,0x00,0x00,0x00,0xdd,0x00,0x00,0x00,0x0c,0x00,0x08,0x00, +0x08,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,0xd2,0x00,0x00,0x00, +0xde,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0xe1,0x00,0x00,0x00,0x95,0x00,0x00,0x00,0x81,0x00,0x05,0x00, +0x08,0x00,0x00,0x00,0xe2,0x00,0x00,0x00,0xe1,0x00,0x00,0x00, +0xdf,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0x95,0x00,0x00,0x00, +0xe2,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xe5,0x00,0x00,0x00,0x4f,0x01,0x00,0x00,0x7b,0x00,0x00,0x00, +0xf9,0x00,0x02,0x00,0x97,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0x99,0x00,0x00,0x00,0xe0,0x00,0x04,0x00,0x7b,0x00,0x00,0x00, +0x7b,0x00,0x00,0x00,0xe6,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, +0xe9,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xe9,0x00,0x00,0x00, +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x50,0x01,0x00,0x00, +0xe8,0x00,0x00,0x00,0x99,0x00,0x00,0x00,0x00,0x01,0x00,0x00, +0xec,0x00,0x00,0x00,0xac,0x00,0x05,0x00,0xa0,0x00,0x00,0x00, +0xef,0x00,0x00,0x00,0x50,0x01,0x00,0x00,0x75,0x00,0x00,0x00, +0xf6,0x00,0x04,0x00,0xeb,0x00,0x00,0x00,0xec,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xef,0x00,0x00,0x00, +0xea,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xea,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0xa0,0x00,0x00,0x00, +0xf2,0x00,0x00,0x00,0x83,0x00,0x00,0x00,0x50,0x01,0x00,0x00, +0xf7,0x00,0x03,0x00,0xf4,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xfa,0x00,0x04,0x00,0xf2,0x00,0x00,0x00,0xf3,0x00,0x00,0x00, +0xf4,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xf3,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf8,0x00,0x00,0x00, +0x83,0x00,0x00,0x00,0x50,0x01,0x00,0x00,0x41,0x00,0x05,0x00, +0x94,0x00,0x00,0x00,0xf9,0x00,0x00,0x00,0x91,0x00,0x00,0x00, +0xf8,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0xfa,0x00,0x00,0x00,0xf9,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x08,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x95,0x00,0x00,0x00, +0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0xfd,0x00,0x00,0x00, +0xfc,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,0x3e,0x00,0x03,0x00, +0x95,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, +0xf4,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xf4,0x00,0x00,0x00, +0xe0,0x00,0x04,0x00,0x7b,0x00,0x00,0x00,0x7b,0x00,0x00,0x00, +0xe6,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xec,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0xec,0x00,0x00,0x00,0xc2,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x50,0x01,0x00,0x00, +0x2e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xe9,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0xeb,0x00,0x00,0x00,0xaa,0x00,0x05,0x00, +0xa0,0x00,0x00,0x00,0x02,0x01,0x00,0x00,0x83,0x00,0x00,0x00, +0x75,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0x04,0x01,0x00,0x00, +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x02,0x01,0x00,0x00, +0x03,0x01,0x00,0x00,0x04,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, +0x03,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x0b,0x01,0x00,0x00,0x28,0x01,0x00,0x00,0x7f,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x94,0x00,0x00,0x00,0x0c,0x01,0x00,0x00, +0x91,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x08,0x00,0x00,0x00,0x0d,0x01,0x00,0x00,0x0c,0x01,0x00,0x00, +0x41,0x00,0x06,0x00,0xd0,0x00,0x00,0x00,0x0e,0x01,0x00,0x00, +0x08,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x0b,0x01,0x00,0x00, +0x3e,0x00,0x03,0x00,0x0e,0x01,0x00,0x00,0x0d,0x01,0x00,0x00, +0xf9,0x00,0x02,0x00,0x04,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, +0x04,0x01,0x00,0x00,0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00, + +}; +const uint64_t mul_mat_vec_id_q4_1_f32_len = 4068; + +unsigned char mul_mat_vec_id_q4_k_f32_data[] = { +0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00, +0xce,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, +0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x27,0x00,0x00,0x00, +0x11,0x00,0x02,0x00,0x51,0x11,0x00,0x00,0x11,0x00,0x02,0x00, +0x60,0x11,0x00,0x00,0x0b,0x00,0x06,0x00,0x01,0x00,0x00,0x00, +0x47,0x4c,0x53,0x4c,0x2e,0x73,0x74,0x64,0x2e,0x34,0x35,0x30, +0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00,0x00,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x0f,0x00,0x0f,0x00,0x05,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e,0x00,0x00,0x00,0x00, +0x11,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x25,0x00,0x00,0x00, +0x3a,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,0x5d,0x00,0x00,0x00, +0x89,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,0x25,0x02,0x00,0x00, +0xa9,0x03,0x00,0x00,0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00, +0x11,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x11,0x00,0x00,0x00, +0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x18,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x48,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x19,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x03,0x00,0x19,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x22,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x21,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x23,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x23,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x23,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x23,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x23,0x00,0x00,0x00,0x05,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x23,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x23,0x00,0x00,0x00, +0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0x23,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x3a,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x3e,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x5d,0x00,0x00,0x00, +0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xac,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xad,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xae,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0xae,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0xae,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x10,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xaf,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x90,0x00,0x00,0x00,0x48,0x00,0x04,0x00, +0xb0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0xb0,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0xb0,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xb2,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xb2,0x00,0x00,0x00,0x21,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x22,0x02,0x00,0x00, +0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00, +0x23,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x23,0x02,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0x23,0x02,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x25,0x02,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x25,0x02,0x00,0x00,0x21,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xa6,0x03,0x00,0x00, +0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00, +0xa7,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0xa7,0x03,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0xa7,0x03,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xa9,0x03,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xa9,0x03,0x00,0x00,0x21,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xb0,0x03,0x00,0x00, +0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x13,0x00,0x02,0x00, +0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x17,0x00,0x04,0x00, +0x0f,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x10,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x0f,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00, +0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x13,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, +0x18,0x00,0x00,0x00,0x17,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, +0x19,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x1a,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x19,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x1a,0x00,0x00,0x00,0x1b,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x1e,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x17,0x00,0x00,0x00, +0x1e,0x00,0x0b,0x00,0x23,0x00,0x00,0x00,0x06,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x24,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x24,0x00,0x00,0x00, -0x25,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x26,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x27,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0x2c,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x35,0x00,0x00,0x00, -0x03,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00, -0x3a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4b,0x00,0x00,0x00, -0x00,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00, -0x55,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x58,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x60,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x24,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x24,0x00,0x00,0x00,0x25,0x00,0x00,0x00, +0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0x26,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x27,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x2c,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0x30,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x03,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00,0x3a,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x3b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0x10,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x41,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x53,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x3b,0x00,0x04,0x00, +0x10,0x00,0x00,0x00,0x5d,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x67,0x00,0x00,0x00, 0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x74,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x7a,0x00,0x00,0x00,0x40,0x00,0x00,0x00, -0x16,0x00,0x03,0x00,0x7f,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x1c,0x00,0x04,0x00,0x80,0x00,0x00,0x00,0x7f,0x00,0x00,0x00, -0x74,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x81,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x81,0x00,0x00,0x00,0x82,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x83,0x00,0x00,0x00, -0x10,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x7f,0x00,0x00,0x00, -0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x89,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x7f,0x00,0x00,0x00, -0x14,0x00,0x02,0x00,0x94,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0x80,0x00,0x00,0x00, -0x16,0x00,0x03,0x00,0xa1,0x00,0x00,0x00,0x10,0x00,0x00,0x00, -0x17,0x00,0x04,0x00,0xa2,0x00,0x00,0x00,0xa1,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0xa3,0x00,0x00,0x00, +0x7b,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x81,0x00,0x00,0x00,0x40,0x00,0x00,0x00, +0x16,0x00,0x03,0x00,0x86,0x00,0x00,0x00,0x20,0x00,0x00,0x00, +0x1c,0x00,0x04,0x00,0x87,0x00,0x00,0x00,0x86,0x00,0x00,0x00, +0x7b,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x88,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x87,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0x88,0x00,0x00,0x00,0x89,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x8a,0x00,0x00,0x00, +0x10,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x86,0x00,0x00,0x00, +0x8f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x90,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x86,0x00,0x00,0x00, +0x14,0x00,0x02,0x00,0x9b,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,0x80,0x00,0x00,0x00, +0x16,0x00,0x03,0x00,0xa8,0x00,0x00,0x00,0x10,0x00,0x00,0x00, +0x17,0x00,0x04,0x00,0xa9,0x00,0x00,0x00,0xa8,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0xaa,0x00,0x00,0x00, 0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x1c,0x00,0x04,0x00,0xa5,0x00,0x00,0x00,0xa3,0x00,0x00,0x00, -0xa4,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0xa6,0x00,0x00,0x00, -0xa3,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0x1e,0x00,0x05,0x00, -0xa7,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,0xa5,0x00,0x00,0x00, -0xa6,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0xa8,0x00,0x00,0x00, -0xa7,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xa9,0x00,0x00,0x00, -0xa8,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xaa,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0xaa,0x00,0x00,0x00,0xab,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0xaf,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0xa1,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0xbf,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0xc2,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xa3,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0xc7,0x00,0x00,0x00, -0x3f,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0xc9,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0xab,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x1c,0x00,0x04,0x00,0xac,0x00,0x00,0x00,0xaa,0x00,0x00,0x00, +0xab,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0xad,0x00,0x00,0x00, +0xaa,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,0x1e,0x00,0x05,0x00, +0xae,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,0xac,0x00,0x00,0x00, +0xad,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0xaf,0x00,0x00,0x00, +0xae,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xb0,0x00,0x00,0x00, +0xaf,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xb1,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0xb0,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0xb1,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0xb6,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0xa8,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0xc6,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0xc9,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xaa,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0xce,0x00,0x00,0x00, +0x3f,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0xd0,0x00,0x00,0x00, 0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0x05,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xfd,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,0x05,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x04,0x01,0x00,0x00, 0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0x03,0x01,0x00,0x00,0x0f,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x0e,0x01,0x00,0x00,0xc0,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x1a,0x01,0x00,0x00, +0x0a,0x01,0x00,0x00,0x0f,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0x15,0x01,0x00,0x00,0xc0,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x21,0x01,0x00,0x00, 0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x93,0x01,0x00,0x00,0x03,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xd1,0x01,0x00,0x00,0x41,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xdf,0x01,0x00,0x00, +0x9a,0x01,0x00,0x00,0x03,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xd8,0x01,0x00,0x00,0x41,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xe6,0x01,0x00,0x00, 0x42,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xed,0x01,0x00,0x00,0x43,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, -0x1b,0x02,0x00,0x00,0x7f,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, -0x1c,0x02,0x00,0x00,0x1b,0x02,0x00,0x00,0x20,0x00,0x04,0x00, -0x1d,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,0x1c,0x02,0x00,0x00, -0x3b,0x00,0x04,0x00,0x1d,0x02,0x00,0x00,0x1e,0x02,0x00,0x00, -0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x22,0x02,0x00,0x00, -0x0c,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x53,0x02,0x00,0x00,0x21,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x5e,0x02,0x00,0x00, +0xf4,0x01,0x00,0x00,0x43,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, +0x22,0x02,0x00,0x00,0x86,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, +0x23,0x02,0x00,0x00,0x22,0x02,0x00,0x00,0x20,0x00,0x04,0x00, +0x24,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,0x23,0x02,0x00,0x00, +0x3b,0x00,0x04,0x00,0x24,0x02,0x00,0x00,0x25,0x02,0x00,0x00, +0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x29,0x02,0x00,0x00, +0x0c,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x5a,0x02,0x00,0x00,0x21,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x65,0x02,0x00,0x00, 0x22,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x69,0x02,0x00,0x00,0x23,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x81,0x03,0x00,0x00,0x08,0x01,0x00,0x00, -0x1d,0x00,0x03,0x00,0x9f,0x03,0x00,0x00,0x7f,0x00,0x00,0x00, -0x1e,0x00,0x03,0x00,0xa0,0x03,0x00,0x00,0x9f,0x03,0x00,0x00, -0x20,0x00,0x04,0x00,0xa1,0x03,0x00,0x00,0x0c,0x00,0x00,0x00, -0xa0,0x03,0x00,0x00,0x3b,0x00,0x04,0x00,0xa1,0x03,0x00,0x00, -0xa2,0x03,0x00,0x00,0x0c,0x00,0x00,0x00,0x2c,0x00,0x06,0x00, -0x0f,0x00,0x00,0x00,0xa9,0x03,0x00,0x00,0x74,0x00,0x00,0x00, +0x70,0x02,0x00,0x00,0x23,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x88,0x03,0x00,0x00,0x08,0x01,0x00,0x00, +0x1d,0x00,0x03,0x00,0xa6,0x03,0x00,0x00,0x86,0x00,0x00,0x00, +0x1e,0x00,0x03,0x00,0xa7,0x03,0x00,0x00,0xa6,0x03,0x00,0x00, +0x20,0x00,0x04,0x00,0xa8,0x03,0x00,0x00,0x0c,0x00,0x00,0x00, +0xa7,0x03,0x00,0x00,0x3b,0x00,0x04,0x00,0xa8,0x03,0x00,0x00, +0xa9,0x03,0x00,0x00,0x0c,0x00,0x00,0x00,0x2c,0x00,0x06,0x00, +0x0f,0x00,0x00,0x00,0xb0,0x03,0x00,0x00,0x7b,0x00,0x00,0x00, 0x12,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x36,0x00,0x05,0x00, 0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x03,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00, 0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00,0x3c,0x00,0x00,0x00, 0x3a,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, 0x06,0x00,0x00,0x00,0x3d,0x00,0x00,0x00,0x3c,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00,0xad,0x03,0x00,0x00, -0x11,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xae,0x03,0x00,0x00,0xad,0x03,0x00,0x00, -0x41,0x00,0x06,0x00,0x1e,0x00,0x00,0x00,0xb0,0x03,0x00,0x00, -0x1b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xae,0x03,0x00,0x00, -0x3d,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0xb1,0x03,0x00,0x00, -0xb0,0x03,0x00,0x00,0x7c,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xb2,0x03,0x00,0x00,0xb1,0x03,0x00,0x00,0x41,0x00,0x05,0x00, -0x27,0x00,0x00,0x00,0xb4,0x03,0x00,0x00,0x25,0x00,0x00,0x00, -0x26,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xb5,0x03,0x00,0x00,0xb4,0x03,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xb6,0x03,0x00,0x00,0xb2,0x03,0x00,0x00, -0xb5,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x27,0x00,0x00,0x00, -0xb8,0x03,0x00,0x00,0x25,0x00,0x00,0x00,0x2c,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xb9,0x03,0x00,0x00, -0xb8,0x03,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xba,0x03,0x00,0x00,0xae,0x03,0x00,0x00,0xb9,0x03,0x00,0x00, +0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00,0x3f,0x00,0x00,0x00, +0x3e,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x3f,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00,0x42,0x00,0x00,0x00, +0x3a,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x43,0x00,0x00,0x00,0x42,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x44,0x00,0x00,0x00, +0x40,0x00,0x00,0x00,0x43,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x45,0x00,0x00,0x00,0x3d,0x00,0x00,0x00, +0x44,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00, +0xb4,0x03,0x00,0x00,0x11,0x00,0x00,0x00,0x12,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xb5,0x03,0x00,0x00, +0xb4,0x03,0x00,0x00,0x41,0x00,0x06,0x00,0x1e,0x00,0x00,0x00, +0xb7,0x03,0x00,0x00,0x1b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0xb5,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0xb8,0x03,0x00,0x00,0xb7,0x03,0x00,0x00,0x7c,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xb9,0x03,0x00,0x00,0xb8,0x03,0x00,0x00, 0x41,0x00,0x05,0x00,0x27,0x00,0x00,0x00,0xbb,0x03,0x00,0x00, -0x25,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x25,0x00,0x00,0x00,0x26,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, 0x06,0x00,0x00,0x00,0xbc,0x03,0x00,0x00,0xbb,0x03,0x00,0x00, 0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbd,0x03,0x00,0x00, -0xba,0x03,0x00,0x00,0xbc,0x03,0x00,0x00,0x41,0x00,0x05,0x00, +0xb9,0x03,0x00,0x00,0xbc,0x03,0x00,0x00,0x41,0x00,0x05,0x00, 0x27,0x00,0x00,0x00,0xbf,0x03,0x00,0x00,0x25,0x00,0x00,0x00, -0x35,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xc0,0x03,0x00,0x00,0xbf,0x03,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xc1,0x03,0x00,0x00,0xae,0x03,0x00,0x00, +0x2c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xc0,0x03,0x00,0x00,0xbf,0x03,0x00,0x00,0x89,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xc1,0x03,0x00,0x00,0xb5,0x03,0x00,0x00, 0xc0,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x27,0x00,0x00,0x00, -0x49,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4a,0x00,0x00,0x00, -0x49,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x4c,0x00,0x00,0x00,0x4a,0x00,0x00,0x00,0x4b,0x00,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4f,0x00,0x00,0x00, -0xb6,0x03,0x00,0x00,0x4b,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x52,0x00,0x00,0x00,0x3d,0x00,0x00,0x00, -0x4c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x53,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x52,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00,0x56,0x00,0x00,0x00, -0x55,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x57,0x00,0x00,0x00,0x56,0x00,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0x57,0x00,0x00,0x00,0x58,0x00,0x00,0x00,0x89,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x5d,0x00,0x00,0x00,0x57,0x00,0x00,0x00, -0x58,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x61,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x60,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x65,0x00,0x00,0x00, -0x60,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x82,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x66,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0x65,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x69,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x58,0x00,0x00,0x00, -0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6c,0x00,0x00,0x00, -0x61,0x00,0x00,0x00,0x58,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x58,0x00,0x00,0x00, -0x66,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x71,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x6c,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x72,0x00,0x00,0x00, -0x60,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x76,0x00,0x00,0x00,0x74,0x00,0x00,0x00, -0x69,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x78,0x00,0x00,0x00,0x76,0x00,0x00,0x00,0x72,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7c,0x00,0x00,0x00, -0x7a,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x7c,0x00,0x00,0x00, -0x72,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x85,0x00,0x00,0x00,0x83,0x00,0x00,0x00,0x5d,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x87,0x00,0x00,0x00, -0x85,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x41,0x00,0x05,0x00, -0x89,0x00,0x00,0x00,0x8a,0x00,0x00,0x00,0x82,0x00,0x00,0x00, -0x87,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0x8a,0x00,0x00,0x00, -0x88,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x8d,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0x8d,0x00,0x00,0x00,0xf5,0x00,0x07,0x00, -0x06,0x00,0x00,0x00,0xc2,0x03,0x00,0x00,0x5d,0x00,0x00,0x00, -0x05,0x00,0x00,0x00,0x80,0x03,0x00,0x00,0x8e,0x00,0x00,0x00, -0xb0,0x00,0x05,0x00,0x94,0x00,0x00,0x00,0x95,0x00,0x00,0x00, -0xc2,0x03,0x00,0x00,0x4c,0x00,0x00,0x00,0xf6,0x00,0x04,0x00, -0x8f,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0xfa,0x00,0x04,0x00,0x95,0x00,0x00,0x00,0x8e,0x00,0x00,0x00, -0x8f,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x8e,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x98,0x00,0x00,0x00, -0xc2,0x03,0x00,0x00,0x4b,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,0x98,0x00,0x00,0x00, -0x7e,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x9e,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,0x9d,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xae,0x00,0x00,0x00, -0x53,0x00,0x00,0x00,0xc2,0x03,0x00,0x00,0x41,0x00,0x08,0x00, -0xaf,0x00,0x00,0x00,0xb0,0x00,0x00,0x00,0xab,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0xae,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x3b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xa1,0x00,0x00,0x00, -0xb1,0x00,0x00,0x00,0xb0,0x00,0x00,0x00,0x73,0x00,0x04,0x00, -0x7f,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,0xb1,0x00,0x00,0x00, -0x41,0x00,0x08,0x00,0xaf,0x00,0x00,0x00,0xb7,0x00,0x00,0x00, -0xab,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xae,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0xa1,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0xb7,0x00,0x00,0x00, -0x73,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0xb9,0x00,0x00,0x00, -0xb8,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xc1,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0x58,0x00,0x00,0x00, -0x41,0x00,0x08,0x00,0xc2,0x00,0x00,0x00,0xc3,0x00,0x00,0x00, -0xab,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xae,0x00,0x00,0x00, -0xbf,0x00,0x00,0x00,0xc1,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0xa3,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,0xc3,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xc5,0x00,0x00,0x00, -0xc4,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0xc6,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0xc7,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0xc6,0x00,0x00,0x00, -0xc7,0x00,0x00,0x00,0x72,0x00,0x04,0x00,0xc9,0x00,0x00,0x00, -0xca,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x7c,0x00,0x04,0x00, -0xa3,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,0xca,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd2,0x00,0x00,0x00, -0xc1,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x41,0x00,0x08,0x00, -0xc2,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,0xab,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0xae,0x00,0x00,0x00,0xbf,0x00,0x00,0x00, -0xd2,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xa3,0x00,0x00,0x00, -0xd4,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0xd4,0x00,0x00,0x00, -0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0xd6,0x00,0x00,0x00, -0xd5,0x00,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0xd7,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,0xc7,0x00,0x00,0x00, -0x72,0x00,0x04,0x00,0xc9,0x00,0x00,0x00,0xd8,0x00,0x00,0x00, -0xd7,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0xa3,0x00,0x00,0x00, -0xd9,0x00,0x00,0x00,0xd8,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xe0,0x00,0x00,0x00,0xc1,0x00,0x00,0x00, -0x60,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xc2,0x00,0x00,0x00, -0xe1,0x00,0x00,0x00,0xab,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0xae,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0xe0,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0xa3,0x00,0x00,0x00,0xe2,0x00,0x00,0x00, -0xe1,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xe3,0x00,0x00,0x00,0xe2,0x00,0x00,0x00,0x7c,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0xe4,0x00,0x00,0x00,0xe3,0x00,0x00,0x00, -0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xe5,0x00,0x00,0x00, -0xe4,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,0x72,0x00,0x04,0x00, -0xc9,0x00,0x00,0x00,0xe6,0x00,0x00,0x00,0xe5,0x00,0x00,0x00, -0x7c,0x00,0x04,0x00,0xa3,0x00,0x00,0x00,0xe7,0x00,0x00,0x00, -0xe6,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xef,0x00,0x00,0x00,0xc1,0x00,0x00,0x00,0xee,0x00,0x00,0x00, -0x41,0x00,0x08,0x00,0xc2,0x00,0x00,0x00,0xf0,0x00,0x00,0x00, -0xab,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xae,0x00,0x00,0x00, -0xbf,0x00,0x00,0x00,0xef,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0xa3,0x00,0x00,0x00,0xf1,0x00,0x00,0x00,0xf0,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xf2,0x00,0x00,0x00, -0xf1,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0xf3,0x00,0x00,0x00,0xf2,0x00,0x00,0x00,0xc7,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,0xf3,0x00,0x00,0x00, -0xc7,0x00,0x00,0x00,0x72,0x00,0x04,0x00,0xc9,0x00,0x00,0x00, -0xf5,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,0x7c,0x00,0x04,0x00, -0xa3,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,0xf5,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfe,0x00,0x00,0x00, -0xc1,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,0x41,0x00,0x08,0x00, -0xc2,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xab,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0xae,0x00,0x00,0x00,0xbf,0x00,0x00,0x00, -0xfe,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xa3,0x00,0x00,0x00, -0x00,0x01,0x00,0x00,0xff,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x02,0x01,0x00,0x00, -0x01,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0x04,0x01,0x00,0x00,0x02,0x01,0x00,0x00,0x03,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0xa3,0x00,0x00,0x00,0x0b,0x01,0x00,0x00, -0xc3,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x0c,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x0d,0x01,0x00,0x00,0x0c,0x01,0x00,0x00, -0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x0f,0x01,0x00,0x00, -0x0d,0x01,0x00,0x00,0x0e,0x01,0x00,0x00,0xc3,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0x10,0x01,0x00,0x00,0x0f,0x01,0x00,0x00, +0xc2,0x03,0x00,0x00,0x25,0x00,0x00,0x00,0x30,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xc3,0x03,0x00,0x00, +0xc2,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xc4,0x03,0x00,0x00,0xc1,0x03,0x00,0x00,0xc3,0x03,0x00,0x00, +0x41,0x00,0x05,0x00,0x27,0x00,0x00,0x00,0xc6,0x03,0x00,0x00, +0x25,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xc7,0x03,0x00,0x00,0xc6,0x03,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc8,0x03,0x00,0x00, +0xb5,0x03,0x00,0x00,0xc7,0x03,0x00,0x00,0x41,0x00,0x05,0x00, +0x27,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0x25,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x52,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x52,0x00,0x00,0x00, +0x53,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x57,0x00,0x00,0x00,0xbd,0x03,0x00,0x00,0x53,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5a,0x00,0x00,0x00, +0x45,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x5b,0x00,0x00,0x00,0x57,0x00,0x00,0x00, +0x5a,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00, +0x5e,0x00,0x00,0x00,0x5d,0x00,0x00,0x00,0x3b,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x5f,0x00,0x00,0x00, +0x5e,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x60,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,0x41,0x00,0x00,0x00, +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x64,0x00,0x00,0x00, +0x5f,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x60,0x00,0x00,0x00, +0x67,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x6c,0x00,0x00,0x00,0x67,0x00,0x00,0x00,0x68,0x00,0x00,0x00, +0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6d,0x00,0x00,0x00, +0x60,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x68,0x00,0x00,0x00, +0x41,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x73,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x41,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x76,0x00,0x00,0x00, +0x41,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x76,0x00,0x00,0x00, +0x73,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x79,0x00,0x00,0x00,0x67,0x00,0x00,0x00,0x78,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7d,0x00,0x00,0x00, +0x7b,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,0x7d,0x00,0x00,0x00, +0x79,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x83,0x00,0x00,0x00,0x81,0x00,0x00,0x00,0x70,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x85,0x00,0x00,0x00, +0x83,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x8c,0x00,0x00,0x00,0x8a,0x00,0x00,0x00, +0x64,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x8e,0x00,0x00,0x00,0x8c,0x00,0x00,0x00,0x60,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x90,0x00,0x00,0x00,0x91,0x00,0x00,0x00, +0x89,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,0x3e,0x00,0x03,0x00, +0x91,0x00,0x00,0x00,0x8f,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, +0x94,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x94,0x00,0x00,0x00, +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xc9,0x03,0x00,0x00, +0x64,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x87,0x03,0x00,0x00, +0x95,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0x9b,0x00,0x00,0x00, +0x9c,0x00,0x00,0x00,0xc9,0x03,0x00,0x00,0x54,0x00,0x00,0x00, +0xf6,0x00,0x04,0x00,0x96,0x00,0x00,0x00,0x95,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x9c,0x00,0x00,0x00, +0x95,0x00,0x00,0x00,0x96,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0x95,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x9f,0x00,0x00,0x00,0xc9,0x03,0x00,0x00,0x53,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa1,0x00,0x00,0x00, +0x9f,0x00,0x00,0x00,0x85,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xa5,0x00,0x00,0x00,0xa1,0x00,0x00,0x00, +0xa4,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xb5,0x00,0x00,0x00,0x5b,0x00,0x00,0x00,0xc9,0x03,0x00,0x00, +0x41,0x00,0x08,0x00,0xb6,0x00,0x00,0x00,0xb7,0x00,0x00,0x00, +0xb2,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xb5,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0xa8,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0xb7,0x00,0x00,0x00, +0x73,0x00,0x04,0x00,0x86,0x00,0x00,0x00,0xb9,0x00,0x00,0x00, +0xb8,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xb6,0x00,0x00,0x00, +0xbe,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0xb5,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x12,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0xa8,0x00,0x00,0x00,0xbf,0x00,0x00,0x00, +0xbe,0x00,0x00,0x00,0x73,0x00,0x04,0x00,0x86,0x00,0x00,0x00, +0xc0,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x70,0x00,0x00,0x00, +0x41,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xc9,0x00,0x00,0x00, +0xca,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0xb5,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,0xc8,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0xaa,0x00,0x00,0x00,0xcb,0x00,0x00,0x00, +0xca,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xcc,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,0x7c,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0xcd,0x00,0x00,0x00,0xcc,0x00,0x00,0x00, +0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xcf,0x00,0x00,0x00, +0xcd,0x00,0x00,0x00,0xce,0x00,0x00,0x00,0x72,0x00,0x04,0x00, +0xd0,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,0xcf,0x00,0x00,0x00, +0x7c,0x00,0x04,0x00,0xaa,0x00,0x00,0x00,0xd2,0x00,0x00,0x00, +0xd1,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xd9,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x12,0x00,0x00,0x00, +0x41,0x00,0x08,0x00,0xc9,0x00,0x00,0x00,0xda,0x00,0x00,0x00, +0xb2,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xb5,0x00,0x00,0x00, +0xc6,0x00,0x00,0x00,0xd9,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0xaa,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,0xda,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xdc,0x00,0x00,0x00, +0xdb,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0xdd,0x00,0x00,0x00,0xdc,0x00,0x00,0x00,0xc7,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0xde,0x00,0x00,0x00,0xdd,0x00,0x00,0x00, +0xce,0x00,0x00,0x00,0x72,0x00,0x04,0x00,0xd0,0x00,0x00,0x00, +0xdf,0x00,0x00,0x00,0xde,0x00,0x00,0x00,0x7c,0x00,0x04,0x00, +0xaa,0x00,0x00,0x00,0xe0,0x00,0x00,0x00,0xdf,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe7,0x00,0x00,0x00, +0xc8,0x00,0x00,0x00,0x67,0x00,0x00,0x00,0x41,0x00,0x08,0x00, +0xc9,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0xb2,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,0xc6,0x00,0x00,0x00, +0xe7,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xaa,0x00,0x00,0x00, +0xe9,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xea,0x00,0x00,0x00,0xe9,0x00,0x00,0x00, +0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0xeb,0x00,0x00,0x00, +0xea,0x00,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, +0xec,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0xce,0x00,0x00,0x00, +0x72,0x00,0x04,0x00,0xd0,0x00,0x00,0x00,0xed,0x00,0x00,0x00, +0xec,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0xaa,0x00,0x00,0x00, +0xee,0x00,0x00,0x00,0xed,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,0xc8,0x00,0x00,0x00, +0xf5,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xc9,0x00,0x00,0x00, +0xf7,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0xb5,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,0xf6,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0xaa,0x00,0x00,0x00,0xf8,0x00,0x00,0x00, +0xf7,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xf9,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0x7c,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,0xf9,0x00,0x00,0x00, +0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xfb,0x00,0x00,0x00, +0xfa,0x00,0x00,0x00,0xce,0x00,0x00,0x00,0x72,0x00,0x04,0x00, +0xd0,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0xfb,0x00,0x00,0x00, +0x7c,0x00,0x04,0x00,0xaa,0x00,0x00,0x00,0xfd,0x00,0x00,0x00, +0xfc,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x05,0x01,0x00,0x00,0xc8,0x00,0x00,0x00,0x04,0x01,0x00,0x00, +0x41,0x00,0x08,0x00,0xc9,0x00,0x00,0x00,0x06,0x01,0x00,0x00, +0xb2,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xb5,0x00,0x00,0x00, +0xc6,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0xaa,0x00,0x00,0x00,0x07,0x01,0x00,0x00,0x06,0x01,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x08,0x01,0x00,0x00, +0x07,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0x09,0x01,0x00,0x00,0x08,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0x0b,0x01,0x00,0x00,0x09,0x01,0x00,0x00, +0x0a,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xaa,0x00,0x00,0x00, +0x12,0x01,0x00,0x00,0xca,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x13,0x01,0x00,0x00,0x12,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x14,0x01,0x00,0x00, +0x13,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, +0x16,0x01,0x00,0x00,0x14,0x01,0x00,0x00,0x15,0x01,0x00,0x00, +0xc3,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x17,0x01,0x00,0x00, +0x16,0x01,0x00,0x00,0x30,0x00,0x00,0x00,0xc5,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0x18,0x01,0x00,0x00,0x0b,0x01,0x00,0x00, +0x17,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0xd0,0x00,0x00,0x00, +0x19,0x01,0x00,0x00,0x18,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0xaa,0x00,0x00,0x00,0x1a,0x01,0x00,0x00,0x19,0x01,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x22,0x01,0x00,0x00, +0xc8,0x00,0x00,0x00,0x21,0x01,0x00,0x00,0x41,0x00,0x08,0x00, +0xc9,0x00,0x00,0x00,0x23,0x01,0x00,0x00,0xb2,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,0xc6,0x00,0x00,0x00, +0x22,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xaa,0x00,0x00,0x00, +0x24,0x01,0x00,0x00,0x23,0x01,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x25,0x01,0x00,0x00,0x24,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x26,0x01,0x00,0x00, +0x25,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, +0x27,0x01,0x00,0x00,0x26,0x01,0x00,0x00,0x0a,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0xaa,0x00,0x00,0x00,0x2f,0x01,0x00,0x00, +0xda,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x30,0x01,0x00,0x00,0x2f,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0x31,0x01,0x00,0x00,0x30,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x32,0x01,0x00,0x00, +0x31,0x01,0x00,0x00,0x15,0x01,0x00,0x00,0xc3,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0x33,0x01,0x00,0x00,0x32,0x01,0x00,0x00, 0x30,0x00,0x00,0x00,0xc5,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0x11,0x01,0x00,0x00,0x04,0x01,0x00,0x00,0x10,0x01,0x00,0x00, -0x72,0x00,0x04,0x00,0xc9,0x00,0x00,0x00,0x12,0x01,0x00,0x00, -0x11,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0xa3,0x00,0x00,0x00, -0x13,0x01,0x00,0x00,0x12,0x01,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x1b,0x01,0x00,0x00,0xc1,0x00,0x00,0x00, -0x1a,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0xc2,0x00,0x00,0x00, -0x1c,0x01,0x00,0x00,0xab,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0xae,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0x1b,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0xa3,0x00,0x00,0x00,0x1d,0x01,0x00,0x00, -0x1c,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x1e,0x01,0x00,0x00,0x1d,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x1f,0x01,0x00,0x00,0x1e,0x01,0x00,0x00, -0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x20,0x01,0x00,0x00, -0x1f,0x01,0x00,0x00,0x03,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0xa3,0x00,0x00,0x00,0x28,0x01,0x00,0x00,0xd3,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x29,0x01,0x00,0x00, -0x28,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0x2a,0x01,0x00,0x00,0x29,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0x2b,0x01,0x00,0x00,0x2a,0x01,0x00,0x00, -0x0e,0x01,0x00,0x00,0xc3,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0x2c,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,0x30,0x00,0x00,0x00, -0xc5,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x2d,0x01,0x00,0x00, -0x20,0x01,0x00,0x00,0x2c,0x01,0x00,0x00,0x72,0x00,0x04,0x00, -0xc9,0x00,0x00,0x00,0x2e,0x01,0x00,0x00,0x2d,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0xa3,0x00,0x00,0x00,0x2f,0x01,0x00,0x00, -0x2e,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xa3,0x00,0x00,0x00, -0x38,0x01,0x00,0x00,0xff,0x00,0x00,0x00,0xc2,0x00,0x05,0x00, -0xa3,0x00,0x00,0x00,0x39,0x01,0x00,0x00,0x38,0x01,0x00,0x00, -0x26,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x3a,0x01,0x00,0x00,0x39,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x3b,0x01,0x00,0x00,0x3a,0x01,0x00,0x00, -0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x3c,0x01,0x00,0x00, -0x3b,0x01,0x00,0x00,0x03,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0xa3,0x00,0x00,0x00,0x44,0x01,0x00,0x00,0xe1,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x45,0x01,0x00,0x00, -0x44,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0x46,0x01,0x00,0x00,0x45,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0x47,0x01,0x00,0x00,0x46,0x01,0x00,0x00, -0x0e,0x01,0x00,0x00,0xc3,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0x48,0x01,0x00,0x00,0x47,0x01,0x00,0x00,0x30,0x00,0x00,0x00, -0xc5,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x49,0x01,0x00,0x00, -0x3c,0x01,0x00,0x00,0x48,0x01,0x00,0x00,0x72,0x00,0x04,0x00, -0xc9,0x00,0x00,0x00,0x4a,0x01,0x00,0x00,0x49,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0xa3,0x00,0x00,0x00,0x4b,0x01,0x00,0x00, -0x4a,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xa3,0x00,0x00,0x00, -0x54,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, -0xa3,0x00,0x00,0x00,0x55,0x01,0x00,0x00,0x54,0x01,0x00,0x00, -0x26,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x56,0x01,0x00,0x00,0x55,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x57,0x01,0x00,0x00,0x56,0x01,0x00,0x00, -0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x58,0x01,0x00,0x00, -0x57,0x01,0x00,0x00,0x03,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0xa3,0x00,0x00,0x00,0x60,0x01,0x00,0x00,0xf0,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x61,0x01,0x00,0x00, -0x60,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0x62,0x01,0x00,0x00,0x61,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0x63,0x01,0x00,0x00,0x62,0x01,0x00,0x00, -0x0e,0x01,0x00,0x00,0xc3,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0x64,0x01,0x00,0x00,0x63,0x01,0x00,0x00,0x30,0x00,0x00,0x00, -0xc5,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x65,0x01,0x00,0x00, -0x58,0x01,0x00,0x00,0x64,0x01,0x00,0x00,0x72,0x00,0x04,0x00, -0xc9,0x00,0x00,0x00,0x66,0x01,0x00,0x00,0x65,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0xa3,0x00,0x00,0x00,0x67,0x01,0x00,0x00, -0x66,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0xc2,0x00,0x00,0x00, -0x6d,0x01,0x00,0x00,0xab,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0xae,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x78,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0xa3,0x00,0x00,0x00,0x6e,0x01,0x00,0x00, -0x6d,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x6f,0x01,0x00,0x00,0x6e,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x70,0x01,0x00,0x00,0x6f,0x01,0x00,0x00, -0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x71,0x01,0x00,0x00, -0x70,0x01,0x00,0x00,0x03,0x01,0x00,0x00,0x72,0x00,0x04,0x00, -0xc9,0x00,0x00,0x00,0x72,0x01,0x00,0x00,0x71,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0xa3,0x00,0x00,0x00,0x73,0x01,0x00,0x00, -0x72,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x79,0x01,0x00,0x00,0x78,0x00,0x00,0x00,0x12,0x00,0x00,0x00, -0x41,0x00,0x08,0x00,0xc2,0x00,0x00,0x00,0x7a,0x01,0x00,0x00, -0xab,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xae,0x00,0x00,0x00, -0x30,0x00,0x00,0x00,0x79,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0xa3,0x00,0x00,0x00,0x7b,0x01,0x00,0x00,0x7a,0x01,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x7c,0x01,0x00,0x00, -0x7b,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0x7d,0x01,0x00,0x00,0x7c,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0x7e,0x01,0x00,0x00,0x7d,0x01,0x00,0x00, -0x03,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0xc9,0x00,0x00,0x00, -0x7f,0x01,0x00,0x00,0x7e,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0xa3,0x00,0x00,0x00,0x80,0x01,0x00,0x00,0x7f,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x86,0x01,0x00,0x00, -0x78,0x00,0x00,0x00,0x58,0x00,0x00,0x00,0x41,0x00,0x08,0x00, -0xc2,0x00,0x00,0x00,0x87,0x01,0x00,0x00,0xab,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0xae,0x00,0x00,0x00,0x30,0x00,0x00,0x00, -0x86,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xa3,0x00,0x00,0x00, -0x88,0x01,0x00,0x00,0x87,0x01,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x89,0x01,0x00,0x00,0x88,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x8a,0x01,0x00,0x00, -0x89,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0x8b,0x01,0x00,0x00,0x8a,0x01,0x00,0x00,0x03,0x01,0x00,0x00, -0x72,0x00,0x04,0x00,0xc9,0x00,0x00,0x00,0x8c,0x01,0x00,0x00, -0x8b,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0xa3,0x00,0x00,0x00, -0x8d,0x01,0x00,0x00,0x8c,0x01,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x94,0x01,0x00,0x00,0x78,0x00,0x00,0x00, -0x93,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0xc2,0x00,0x00,0x00, -0x95,0x01,0x00,0x00,0xab,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0xae,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x94,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0xa3,0x00,0x00,0x00,0x96,0x01,0x00,0x00, -0x95,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x97,0x01,0x00,0x00,0x96,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x98,0x01,0x00,0x00,0x97,0x01,0x00,0x00, -0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x99,0x01,0x00,0x00, -0x98,0x01,0x00,0x00,0x03,0x01,0x00,0x00,0x72,0x00,0x04,0x00, -0xc9,0x00,0x00,0x00,0x9a,0x01,0x00,0x00,0x99,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0xa3,0x00,0x00,0x00,0x9b,0x01,0x00,0x00, -0x9a,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xa3,0x00,0x00,0x00, -0xa2,0x01,0x00,0x00,0x6d,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, -0xa3,0x00,0x00,0x00,0xa3,0x01,0x00,0x00,0xa2,0x01,0x00,0x00, -0x26,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xa3,0x00,0x00,0x00, -0xab,0x01,0x00,0x00,0x7a,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, -0xa3,0x00,0x00,0x00,0xac,0x01,0x00,0x00,0xab,0x01,0x00,0x00, -0x26,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xa3,0x00,0x00,0x00, -0xb4,0x01,0x00,0x00,0x87,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, -0xa3,0x00,0x00,0x00,0xb5,0x01,0x00,0x00,0xb4,0x01,0x00,0x00, -0x26,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xa3,0x00,0x00,0x00, -0xbd,0x01,0x00,0x00,0x95,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, -0xa3,0x00,0x00,0x00,0xbe,0x01,0x00,0x00,0xbd,0x01,0x00,0x00, +0x34,0x01,0x00,0x00,0x27,0x01,0x00,0x00,0x33,0x01,0x00,0x00, +0x72,0x00,0x04,0x00,0xd0,0x00,0x00,0x00,0x35,0x01,0x00,0x00, +0x34,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0xaa,0x00,0x00,0x00, +0x36,0x01,0x00,0x00,0x35,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0xaa,0x00,0x00,0x00,0x3f,0x01,0x00,0x00,0x06,0x01,0x00,0x00, +0xc2,0x00,0x05,0x00,0xaa,0x00,0x00,0x00,0x40,0x01,0x00,0x00, +0x3f,0x01,0x00,0x00,0x26,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x41,0x01,0x00,0x00,0x40,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x42,0x01,0x00,0x00, +0x41,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, +0x43,0x01,0x00,0x00,0x42,0x01,0x00,0x00,0x0a,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0xaa,0x00,0x00,0x00,0x4b,0x01,0x00,0x00, +0xe8,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x4c,0x01,0x00,0x00,0x4b,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0x4d,0x01,0x00,0x00,0x4c,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x4e,0x01,0x00,0x00, +0x4d,0x01,0x00,0x00,0x15,0x01,0x00,0x00,0xc3,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0x4f,0x01,0x00,0x00,0x4e,0x01,0x00,0x00, +0x30,0x00,0x00,0x00,0xc5,0x00,0x05,0x00,0x17,0x00,0x00,0x00, +0x50,0x01,0x00,0x00,0x43,0x01,0x00,0x00,0x4f,0x01,0x00,0x00, +0x72,0x00,0x04,0x00,0xd0,0x00,0x00,0x00,0x51,0x01,0x00,0x00, +0x50,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0xaa,0x00,0x00,0x00, +0x52,0x01,0x00,0x00,0x51,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0xaa,0x00,0x00,0x00,0x5b,0x01,0x00,0x00,0x23,0x01,0x00,0x00, +0xc2,0x00,0x05,0x00,0xaa,0x00,0x00,0x00,0x5c,0x01,0x00,0x00, +0x5b,0x01,0x00,0x00,0x26,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,0x5c,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x5e,0x01,0x00,0x00, +0x5d,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, +0x5f,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,0x0a,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0xaa,0x00,0x00,0x00,0x67,0x01,0x00,0x00, +0xf7,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x68,0x01,0x00,0x00,0x67,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0x69,0x01,0x00,0x00,0x68,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x6a,0x01,0x00,0x00, +0x69,0x01,0x00,0x00,0x15,0x01,0x00,0x00,0xc3,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0x6b,0x01,0x00,0x00,0x6a,0x01,0x00,0x00, +0x30,0x00,0x00,0x00,0xc5,0x00,0x05,0x00,0x17,0x00,0x00,0x00, +0x6c,0x01,0x00,0x00,0x5f,0x01,0x00,0x00,0x6b,0x01,0x00,0x00, +0x72,0x00,0x04,0x00,0xd0,0x00,0x00,0x00,0x6d,0x01,0x00,0x00, +0x6c,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0xaa,0x00,0x00,0x00, +0x6e,0x01,0x00,0x00,0x6d,0x01,0x00,0x00,0x41,0x00,0x08,0x00, +0xc9,0x00,0x00,0x00,0x74,0x01,0x00,0x00,0xb2,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,0x30,0x00,0x00,0x00, +0x7f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xaa,0x00,0x00,0x00, +0x75,0x01,0x00,0x00,0x74,0x01,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x76,0x01,0x00,0x00,0x75,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x77,0x01,0x00,0x00, +0x76,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, +0x78,0x01,0x00,0x00,0x77,0x01,0x00,0x00,0x0a,0x01,0x00,0x00, +0x72,0x00,0x04,0x00,0xd0,0x00,0x00,0x00,0x79,0x01,0x00,0x00, +0x78,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0xaa,0x00,0x00,0x00, +0x7a,0x01,0x00,0x00,0x79,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x80,0x01,0x00,0x00,0x7f,0x00,0x00,0x00, +0x12,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xc9,0x00,0x00,0x00, +0x81,0x01,0x00,0x00,0xb2,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0xb5,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x80,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0xaa,0x00,0x00,0x00,0x82,0x01,0x00,0x00, +0x81,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x83,0x01,0x00,0x00,0x82,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0x84,0x01,0x00,0x00,0x83,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x85,0x01,0x00,0x00, +0x84,0x01,0x00,0x00,0x0a,0x01,0x00,0x00,0x72,0x00,0x04,0x00, +0xd0,0x00,0x00,0x00,0x86,0x01,0x00,0x00,0x85,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0xaa,0x00,0x00,0x00,0x87,0x01,0x00,0x00, +0x86,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x8d,0x01,0x00,0x00,0x7f,0x00,0x00,0x00,0x41,0x00,0x00,0x00, +0x41,0x00,0x08,0x00,0xc9,0x00,0x00,0x00,0x8e,0x01,0x00,0x00, +0xb2,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xb5,0x00,0x00,0x00, +0x30,0x00,0x00,0x00,0x8d,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0xaa,0x00,0x00,0x00,0x8f,0x01,0x00,0x00,0x8e,0x01,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x90,0x01,0x00,0x00, +0x8f,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0x91,0x01,0x00,0x00,0x90,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0x92,0x01,0x00,0x00,0x91,0x01,0x00,0x00, +0x0a,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0xd0,0x00,0x00,0x00, +0x93,0x01,0x00,0x00,0x92,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0xaa,0x00,0x00,0x00,0x94,0x01,0x00,0x00,0x93,0x01,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9b,0x01,0x00,0x00, +0x7f,0x00,0x00,0x00,0x9a,0x01,0x00,0x00,0x41,0x00,0x08,0x00, +0xc9,0x00,0x00,0x00,0x9c,0x01,0x00,0x00,0xb2,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,0x30,0x00,0x00,0x00, +0x9b,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xaa,0x00,0x00,0x00, +0x9d,0x01,0x00,0x00,0x9c,0x01,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x9e,0x01,0x00,0x00,0x9d,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x9f,0x01,0x00,0x00, +0x9e,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, +0xa0,0x01,0x00,0x00,0x9f,0x01,0x00,0x00,0x0a,0x01,0x00,0x00, +0x72,0x00,0x04,0x00,0xd0,0x00,0x00,0x00,0xa1,0x01,0x00,0x00, +0xa0,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0xaa,0x00,0x00,0x00, +0xa2,0x01,0x00,0x00,0xa1,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0xaa,0x00,0x00,0x00,0xa9,0x01,0x00,0x00,0x74,0x01,0x00,0x00, +0xc2,0x00,0x05,0x00,0xaa,0x00,0x00,0x00,0xaa,0x01,0x00,0x00, +0xa9,0x01,0x00,0x00,0x26,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0xaa,0x00,0x00,0x00,0xb2,0x01,0x00,0x00,0x81,0x01,0x00,0x00, +0xc2,0x00,0x05,0x00,0xaa,0x00,0x00,0x00,0xb3,0x01,0x00,0x00, +0xb2,0x01,0x00,0x00,0x26,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0xaa,0x00,0x00,0x00,0xbb,0x01,0x00,0x00,0x8e,0x01,0x00,0x00, +0xc2,0x00,0x05,0x00,0xaa,0x00,0x00,0x00,0xbc,0x01,0x00,0x00, +0xbb,0x01,0x00,0x00,0x26,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0xaa,0x00,0x00,0x00,0xc4,0x01,0x00,0x00,0x9c,0x01,0x00,0x00, +0xc2,0x00,0x05,0x00,0xaa,0x00,0x00,0x00,0xc5,0x01,0x00,0x00, +0xc4,0x01,0x00,0x00,0x26,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xcb,0x01,0x00,0x00,0x7f,0x00,0x00,0x00, +0x81,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xc9,0x00,0x00,0x00, +0xcc,0x01,0x00,0x00,0xb2,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0xb5,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0xcb,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0xaa,0x00,0x00,0x00,0xcd,0x01,0x00,0x00, +0xcc,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xce,0x01,0x00,0x00,0xcd,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0xcf,0x01,0x00,0x00,0xce,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xd0,0x01,0x00,0x00, +0xcf,0x01,0x00,0x00,0x0a,0x01,0x00,0x00,0x72,0x00,0x04,0x00, +0xd0,0x00,0x00,0x00,0xd1,0x01,0x00,0x00,0xd0,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0xaa,0x00,0x00,0x00,0xd2,0x01,0x00,0x00, +0xd1,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xd9,0x01,0x00,0x00,0x7f,0x00,0x00,0x00,0xd8,0x01,0x00,0x00, +0x41,0x00,0x08,0x00,0xc9,0x00,0x00,0x00,0xda,0x01,0x00,0x00, +0xb2,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xb5,0x00,0x00,0x00, +0x30,0x00,0x00,0x00,0xd9,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0xaa,0x00,0x00,0x00,0xdb,0x01,0x00,0x00,0xda,0x01,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xdc,0x01,0x00,0x00, +0xdb,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0xdd,0x01,0x00,0x00,0xdc,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0xde,0x01,0x00,0x00,0xdd,0x01,0x00,0x00, +0x0a,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0xd0,0x00,0x00,0x00, +0xdf,0x01,0x00,0x00,0xde,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0xaa,0x00,0x00,0x00,0xe0,0x01,0x00,0x00,0xdf,0x01,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe7,0x01,0x00,0x00, +0x7f,0x00,0x00,0x00,0xe6,0x01,0x00,0x00,0x41,0x00,0x08,0x00, +0xc9,0x00,0x00,0x00,0xe8,0x01,0x00,0x00,0xb2,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,0x30,0x00,0x00,0x00, +0xe7,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xaa,0x00,0x00,0x00, +0xe9,0x01,0x00,0x00,0xe8,0x01,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xea,0x01,0x00,0x00,0xe9,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0xeb,0x01,0x00,0x00, +0xea,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, +0xec,0x01,0x00,0x00,0xeb,0x01,0x00,0x00,0x0a,0x01,0x00,0x00, +0x72,0x00,0x04,0x00,0xd0,0x00,0x00,0x00,0xed,0x01,0x00,0x00, +0xec,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0xaa,0x00,0x00,0x00, +0xee,0x01,0x00,0x00,0xed,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xf5,0x01,0x00,0x00,0x7f,0x00,0x00,0x00, +0xf4,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0xc9,0x00,0x00,0x00, +0xf6,0x01,0x00,0x00,0xb2,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0xb5,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0xf5,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0xaa,0x00,0x00,0x00,0xf7,0x01,0x00,0x00, +0xf6,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xf8,0x01,0x00,0x00,0xf7,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0xf9,0x01,0x00,0x00,0xf8,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xfa,0x01,0x00,0x00, +0xf9,0x01,0x00,0x00,0x0a,0x01,0x00,0x00,0x72,0x00,0x04,0x00, +0xd0,0x00,0x00,0x00,0xfb,0x01,0x00,0x00,0xfa,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0xaa,0x00,0x00,0x00,0xfc,0x01,0x00,0x00, +0xfb,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xaa,0x00,0x00,0x00, +0x04,0x02,0x00,0x00,0xcc,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, +0xaa,0x00,0x00,0x00,0x05,0x02,0x00,0x00,0x04,0x02,0x00,0x00, +0x26,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xaa,0x00,0x00,0x00, +0x0d,0x02,0x00,0x00,0xda,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, +0xaa,0x00,0x00,0x00,0x0e,0x02,0x00,0x00,0x0d,0x02,0x00,0x00, +0x26,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xaa,0x00,0x00,0x00, +0x16,0x02,0x00,0x00,0xe8,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, +0xaa,0x00,0x00,0x00,0x17,0x02,0x00,0x00,0x16,0x02,0x00,0x00, +0x26,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xaa,0x00,0x00,0x00, +0x1f,0x02,0x00,0x00,0xf6,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, +0xaa,0x00,0x00,0x00,0x20,0x02,0x00,0x00,0x1f,0x02,0x00,0x00, 0x26,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xc4,0x01,0x00,0x00,0x78,0x00,0x00,0x00,0x7a,0x00,0x00,0x00, -0x41,0x00,0x08,0x00,0xc2,0x00,0x00,0x00,0xc5,0x01,0x00,0x00, -0xab,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xae,0x00,0x00,0x00, -0x30,0x00,0x00,0x00,0xc4,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0xa3,0x00,0x00,0x00,0xc6,0x01,0x00,0x00,0xc5,0x01,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xc7,0x01,0x00,0x00, -0xc6,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0xc8,0x01,0x00,0x00,0xc7,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0xc9,0x01,0x00,0x00,0xc8,0x01,0x00,0x00, -0x03,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0xc9,0x00,0x00,0x00, -0xca,0x01,0x00,0x00,0xc9,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0xa3,0x00,0x00,0x00,0xcb,0x01,0x00,0x00,0xca,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd2,0x01,0x00,0x00, -0x78,0x00,0x00,0x00,0xd1,0x01,0x00,0x00,0x41,0x00,0x08,0x00, -0xc2,0x00,0x00,0x00,0xd3,0x01,0x00,0x00,0xab,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0xae,0x00,0x00,0x00,0x30,0x00,0x00,0x00, -0xd2,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xa3,0x00,0x00,0x00, -0xd4,0x01,0x00,0x00,0xd3,0x01,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xd5,0x01,0x00,0x00,0xd4,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0xd6,0x01,0x00,0x00, -0xd5,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0xd7,0x01,0x00,0x00,0xd6,0x01,0x00,0x00,0x03,0x01,0x00,0x00, -0x72,0x00,0x04,0x00,0xc9,0x00,0x00,0x00,0xd8,0x01,0x00,0x00, -0xd7,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0xa3,0x00,0x00,0x00, -0xd9,0x01,0x00,0x00,0xd8,0x01,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xe0,0x01,0x00,0x00,0x78,0x00,0x00,0x00, -0xdf,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0xc2,0x00,0x00,0x00, -0xe1,0x01,0x00,0x00,0xab,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0xae,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0xe0,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0xa3,0x00,0x00,0x00,0xe2,0x01,0x00,0x00, -0xe1,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xe3,0x01,0x00,0x00,0xe2,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0xe4,0x01,0x00,0x00,0xe3,0x01,0x00,0x00, -0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xe5,0x01,0x00,0x00, -0xe4,0x01,0x00,0x00,0x03,0x01,0x00,0x00,0x72,0x00,0x04,0x00, -0xc9,0x00,0x00,0x00,0xe6,0x01,0x00,0x00,0xe5,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0xa3,0x00,0x00,0x00,0xe7,0x01,0x00,0x00, -0xe6,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xee,0x01,0x00,0x00,0x78,0x00,0x00,0x00,0xed,0x01,0x00,0x00, -0x41,0x00,0x08,0x00,0xc2,0x00,0x00,0x00,0xef,0x01,0x00,0x00, -0xab,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xae,0x00,0x00,0x00, -0x30,0x00,0x00,0x00,0xee,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0xa3,0x00,0x00,0x00,0xf0,0x01,0x00,0x00,0xef,0x01,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xf1,0x01,0x00,0x00, -0xf0,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0xf2,0x01,0x00,0x00,0xf1,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0xf3,0x01,0x00,0x00,0xf2,0x01,0x00,0x00, -0x03,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0xc9,0x00,0x00,0x00, -0xf4,0x01,0x00,0x00,0xf3,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0xa3,0x00,0x00,0x00,0xf5,0x01,0x00,0x00,0xf4,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0xa3,0x00,0x00,0x00,0xfd,0x01,0x00,0x00, -0xc5,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0xa3,0x00,0x00,0x00, -0xfe,0x01,0x00,0x00,0xfd,0x01,0x00,0x00,0x26,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0xa3,0x00,0x00,0x00,0x06,0x02,0x00,0x00, -0xd3,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0xa3,0x00,0x00,0x00, -0x07,0x02,0x00,0x00,0x06,0x02,0x00,0x00,0x26,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0xa3,0x00,0x00,0x00,0x0f,0x02,0x00,0x00, -0xe1,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0xa3,0x00,0x00,0x00, -0x10,0x02,0x00,0x00,0x0f,0x02,0x00,0x00,0x26,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0xa3,0x00,0x00,0x00,0x18,0x02,0x00,0x00, -0xef,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0xa3,0x00,0x00,0x00, -0x19,0x02,0x00,0x00,0x18,0x02,0x00,0x00,0x26,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x21,0x02,0x00,0x00, -0xbd,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0x41,0x00,0x06,0x00, -0x22,0x02,0x00,0x00,0x23,0x02,0x00,0x00,0x1e,0x02,0x00,0x00, -0x1c,0x00,0x00,0x00,0x21,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0x7f,0x00,0x00,0x00,0x24,0x02,0x00,0x00,0x23,0x02,0x00,0x00, -0x70,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0x26,0x02,0x00,0x00, -0x73,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x2b,0x02,0x00,0x00,0x21,0x02,0x00,0x00,0x12,0x00,0x00,0x00, -0x41,0x00,0x06,0x00,0x22,0x02,0x00,0x00,0x2c,0x02,0x00,0x00, -0x1e,0x02,0x00,0x00,0x1c,0x00,0x00,0x00,0x2b,0x02,0x00,0x00, -0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0x2d,0x02,0x00,0x00, -0x2c,0x02,0x00,0x00,0x70,0x00,0x04,0x00,0x7f,0x00,0x00,0x00, -0x2f,0x02,0x00,0x00,0x80,0x01,0x00,0x00,0x85,0x00,0x05,0x00, -0x7f,0x00,0x00,0x00,0x30,0x02,0x00,0x00,0x2d,0x02,0x00,0x00, -0x2f,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x7f,0x00,0x00,0x00, -0x31,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x24,0x02,0x00,0x00,0x26,0x02,0x00,0x00,0x30,0x02,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x35,0x02,0x00,0x00, -0x21,0x02,0x00,0x00,0x58,0x00,0x00,0x00,0x41,0x00,0x06,0x00, -0x22,0x02,0x00,0x00,0x36,0x02,0x00,0x00,0x1e,0x02,0x00,0x00, -0x1c,0x00,0x00,0x00,0x35,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0x7f,0x00,0x00,0x00,0x37,0x02,0x00,0x00,0x36,0x02,0x00,0x00, -0x70,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0x39,0x02,0x00,0x00, -0x8d,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0x7f,0x00,0x00,0x00, -0x3b,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x37,0x02,0x00,0x00,0x39,0x02,0x00,0x00,0x31,0x02,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3f,0x02,0x00,0x00, -0x21,0x02,0x00,0x00,0x93,0x01,0x00,0x00,0x41,0x00,0x06,0x00, -0x22,0x02,0x00,0x00,0x40,0x02,0x00,0x00,0x1e,0x02,0x00,0x00, -0x1c,0x00,0x00,0x00,0x3f,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0x7f,0x00,0x00,0x00,0x41,0x02,0x00,0x00,0x40,0x02,0x00,0x00, -0x70,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0x43,0x02,0x00,0x00, -0x9b,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0x7f,0x00,0x00,0x00, -0x45,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x41,0x02,0x00,0x00,0x43,0x02,0x00,0x00,0x3b,0x02,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4a,0x02,0x00,0x00, -0x21,0x02,0x00,0x00,0x74,0x00,0x00,0x00,0x41,0x00,0x06,0x00, -0x22,0x02,0x00,0x00,0x4b,0x02,0x00,0x00,0x1e,0x02,0x00,0x00, -0x1c,0x00,0x00,0x00,0x4a,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0x7f,0x00,0x00,0x00,0x4c,0x02,0x00,0x00,0x4b,0x02,0x00,0x00, -0x70,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0x4e,0x02,0x00,0x00, -0xa3,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x54,0x02,0x00,0x00,0x21,0x02,0x00,0x00,0x53,0x02,0x00,0x00, -0x41,0x00,0x06,0x00,0x22,0x02,0x00,0x00,0x55,0x02,0x00,0x00, -0x1e,0x02,0x00,0x00,0x1c,0x00,0x00,0x00,0x54,0x02,0x00,0x00, -0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0x56,0x02,0x00,0x00, -0x55,0x02,0x00,0x00,0x70,0x00,0x04,0x00,0x7f,0x00,0x00,0x00, -0x58,0x02,0x00,0x00,0xac,0x01,0x00,0x00,0x85,0x00,0x05,0x00, -0x7f,0x00,0x00,0x00,0x59,0x02,0x00,0x00,0x56,0x02,0x00,0x00, -0x58,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x7f,0x00,0x00,0x00, -0x5a,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x4c,0x02,0x00,0x00,0x4e,0x02,0x00,0x00,0x59,0x02,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5f,0x02,0x00,0x00, -0x21,0x02,0x00,0x00,0x5e,0x02,0x00,0x00,0x41,0x00,0x06,0x00, -0x22,0x02,0x00,0x00,0x60,0x02,0x00,0x00,0x1e,0x02,0x00,0x00, -0x1c,0x00,0x00,0x00,0x5f,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0x7f,0x00,0x00,0x00,0x61,0x02,0x00,0x00,0x60,0x02,0x00,0x00, -0x70,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0x63,0x02,0x00,0x00, -0xb5,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0x7f,0x00,0x00,0x00, -0x65,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x61,0x02,0x00,0x00,0x63,0x02,0x00,0x00,0x5a,0x02,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6a,0x02,0x00,0x00, -0x21,0x02,0x00,0x00,0x69,0x02,0x00,0x00,0x41,0x00,0x06,0x00, -0x22,0x02,0x00,0x00,0x6b,0x02,0x00,0x00,0x1e,0x02,0x00,0x00, -0x1c,0x00,0x00,0x00,0x6a,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0x7f,0x00,0x00,0x00,0x6c,0x02,0x00,0x00,0x6b,0x02,0x00,0x00, -0x70,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0x6e,0x02,0x00,0x00, -0xbe,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0x7f,0x00,0x00,0x00, -0x70,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x6c,0x02,0x00,0x00,0x6e,0x02,0x00,0x00,0x65,0x02,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x74,0x02,0x00,0x00, -0xbd,0x03,0x00,0x00,0x9e,0x00,0x00,0x00,0x41,0x00,0x06,0x00, -0x22,0x02,0x00,0x00,0x75,0x02,0x00,0x00,0x1e,0x02,0x00,0x00, -0x1c,0x00,0x00,0x00,0x74,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0x7f,0x00,0x00,0x00,0x76,0x02,0x00,0x00,0x75,0x02,0x00,0x00, -0x70,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0x78,0x02,0x00,0x00, -0xcb,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x7d,0x02,0x00,0x00,0x74,0x02,0x00,0x00,0x12,0x00,0x00,0x00, -0x41,0x00,0x06,0x00,0x22,0x02,0x00,0x00,0x7e,0x02,0x00,0x00, -0x1e,0x02,0x00,0x00,0x1c,0x00,0x00,0x00,0x7d,0x02,0x00,0x00, -0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0x7f,0x02,0x00,0x00, -0x7e,0x02,0x00,0x00,0x70,0x00,0x04,0x00,0x7f,0x00,0x00,0x00, -0x81,0x02,0x00,0x00,0xd9,0x01,0x00,0x00,0x85,0x00,0x05,0x00, -0x7f,0x00,0x00,0x00,0x82,0x02,0x00,0x00,0x7f,0x02,0x00,0x00, -0x81,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x7f,0x00,0x00,0x00, -0x83,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x76,0x02,0x00,0x00,0x78,0x02,0x00,0x00,0x82,0x02,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x87,0x02,0x00,0x00, -0x74,0x02,0x00,0x00,0x58,0x00,0x00,0x00,0x41,0x00,0x06,0x00, -0x22,0x02,0x00,0x00,0x88,0x02,0x00,0x00,0x1e,0x02,0x00,0x00, -0x1c,0x00,0x00,0x00,0x87,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0x7f,0x00,0x00,0x00,0x89,0x02,0x00,0x00,0x88,0x02,0x00,0x00, -0x70,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0x8b,0x02,0x00,0x00, -0xe7,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0x7f,0x00,0x00,0x00, -0x8d,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x89,0x02,0x00,0x00,0x8b,0x02,0x00,0x00,0x83,0x02,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x91,0x02,0x00,0x00, -0x74,0x02,0x00,0x00,0x93,0x01,0x00,0x00,0x41,0x00,0x06,0x00, -0x22,0x02,0x00,0x00,0x92,0x02,0x00,0x00,0x1e,0x02,0x00,0x00, -0x1c,0x00,0x00,0x00,0x91,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0x7f,0x00,0x00,0x00,0x93,0x02,0x00,0x00,0x92,0x02,0x00,0x00, -0x70,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0x95,0x02,0x00,0x00, -0xf5,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0x7f,0x00,0x00,0x00, -0x97,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x93,0x02,0x00,0x00,0x95,0x02,0x00,0x00,0x8d,0x02,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9c,0x02,0x00,0x00, -0x74,0x02,0x00,0x00,0x74,0x00,0x00,0x00,0x41,0x00,0x06,0x00, -0x22,0x02,0x00,0x00,0x9d,0x02,0x00,0x00,0x1e,0x02,0x00,0x00, -0x1c,0x00,0x00,0x00,0x9c,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0x7f,0x00,0x00,0x00,0x9e,0x02,0x00,0x00,0x9d,0x02,0x00,0x00, -0x70,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0xa0,0x02,0x00,0x00, -0xfe,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xa5,0x02,0x00,0x00,0x74,0x02,0x00,0x00,0x53,0x02,0x00,0x00, -0x41,0x00,0x06,0x00,0x22,0x02,0x00,0x00,0xa6,0x02,0x00,0x00, -0x1e,0x02,0x00,0x00,0x1c,0x00,0x00,0x00,0xa5,0x02,0x00,0x00, -0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0xa7,0x02,0x00,0x00, -0xa6,0x02,0x00,0x00,0x70,0x00,0x04,0x00,0x7f,0x00,0x00,0x00, -0xa9,0x02,0x00,0x00,0x07,0x02,0x00,0x00,0x85,0x00,0x05,0x00, -0x7f,0x00,0x00,0x00,0xaa,0x02,0x00,0x00,0xa7,0x02,0x00,0x00, -0xa9,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x7f,0x00,0x00,0x00, -0xab,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x9e,0x02,0x00,0x00,0xa0,0x02,0x00,0x00,0xaa,0x02,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xaf,0x02,0x00,0x00, -0x74,0x02,0x00,0x00,0x5e,0x02,0x00,0x00,0x41,0x00,0x06,0x00, -0x22,0x02,0x00,0x00,0xb0,0x02,0x00,0x00,0x1e,0x02,0x00,0x00, -0x1c,0x00,0x00,0x00,0xaf,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0x7f,0x00,0x00,0x00,0xb1,0x02,0x00,0x00,0xb0,0x02,0x00,0x00, -0x70,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0xb3,0x02,0x00,0x00, -0x10,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x7f,0x00,0x00,0x00, -0xb5,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0xb1,0x02,0x00,0x00,0xb3,0x02,0x00,0x00,0xab,0x02,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb9,0x02,0x00,0x00, -0x74,0x02,0x00,0x00,0x69,0x02,0x00,0x00,0x41,0x00,0x06,0x00, -0x22,0x02,0x00,0x00,0xba,0x02,0x00,0x00,0x1e,0x02,0x00,0x00, -0x1c,0x00,0x00,0x00,0xb9,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0x7f,0x00,0x00,0x00,0xbb,0x02,0x00,0x00,0xba,0x02,0x00,0x00, -0x70,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0xbd,0x02,0x00,0x00, -0x19,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x7f,0x00,0x00,0x00, -0xbf,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0xbb,0x02,0x00,0x00,0xbd,0x02,0x00,0x00,0xb5,0x02,0x00,0x00, -0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0xc5,0x02,0x00,0x00, -0x23,0x02,0x00,0x00,0x70,0x00,0x04,0x00,0x7f,0x00,0x00,0x00, -0xc7,0x02,0x00,0x00,0xe7,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x7f,0x00,0x00,0x00,0xce,0x02,0x00,0x00,0x4b,0x02,0x00,0x00, -0x70,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0xd0,0x02,0x00,0x00, -0xf6,0x00,0x00,0x00,0x85,0x00,0x05,0x00,0x7f,0x00,0x00,0x00, -0xd1,0x02,0x00,0x00,0xce,0x02,0x00,0x00,0xd0,0x02,0x00,0x00, -0x0c,0x00,0x08,0x00,0x7f,0x00,0x00,0x00,0xd2,0x02,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xc5,0x02,0x00,0x00, -0xc7,0x02,0x00,0x00,0xd1,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0x7f,0x00,0x00,0x00,0xd7,0x02,0x00,0x00,0x75,0x02,0x00,0x00, -0x70,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0xd9,0x02,0x00,0x00, -0x4b,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0x7f,0x00,0x00,0x00, -0xdb,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0xd7,0x02,0x00,0x00,0xd9,0x02,0x00,0x00,0xd2,0x02,0x00,0x00, -0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0xe1,0x02,0x00,0x00, -0x9d,0x02,0x00,0x00,0x70,0x00,0x04,0x00,0x7f,0x00,0x00,0x00, -0xe3,0x02,0x00,0x00,0x67,0x01,0x00,0x00,0x0c,0x00,0x08,0x00, -0x7f,0x00,0x00,0x00,0xe5,0x02,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0xe1,0x02,0x00,0x00,0xe3,0x02,0x00,0x00, -0xdb,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00, -0xeb,0x02,0x00,0x00,0x2c,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, -0x7f,0x00,0x00,0x00,0xef,0x02,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0xeb,0x02,0x00,0x00,0xc7,0x02,0x00,0x00, -0xe5,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00, -0xf5,0x02,0x00,0x00,0x55,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, -0x7f,0x00,0x00,0x00,0xf9,0x02,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0xf5,0x02,0x00,0x00,0xd0,0x02,0x00,0x00, -0xef,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00, -0xff,0x02,0x00,0x00,0x7e,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, -0x7f,0x00,0x00,0x00,0x03,0x03,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0xff,0x02,0x00,0x00,0xd9,0x02,0x00,0x00, -0xf9,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00, -0x09,0x03,0x00,0x00,0xa6,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, -0x7f,0x00,0x00,0x00,0x0d,0x03,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0x09,0x03,0x00,0x00,0xe3,0x02,0x00,0x00, -0x03,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00, -0x13,0x03,0x00,0x00,0x36,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, -0x7f,0x00,0x00,0x00,0x17,0x03,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0x13,0x03,0x00,0x00,0xc7,0x02,0x00,0x00, -0x0d,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00, -0x1d,0x03,0x00,0x00,0x60,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, -0x7f,0x00,0x00,0x00,0x21,0x03,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0x1d,0x03,0x00,0x00,0xd0,0x02,0x00,0x00, -0x17,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00, -0x27,0x03,0x00,0x00,0x88,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, -0x7f,0x00,0x00,0x00,0x2b,0x03,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0x27,0x03,0x00,0x00,0xd9,0x02,0x00,0x00, -0x21,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00, -0x31,0x03,0x00,0x00,0xb0,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, -0x7f,0x00,0x00,0x00,0x35,0x03,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0x31,0x03,0x00,0x00,0xe3,0x02,0x00,0x00, -0x2b,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00, -0x3b,0x03,0x00,0x00,0x40,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, -0x7f,0x00,0x00,0x00,0x3f,0x03,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0x3b,0x03,0x00,0x00,0xc7,0x02,0x00,0x00, -0x35,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00, -0x45,0x03,0x00,0x00,0x6b,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, -0x7f,0x00,0x00,0x00,0x49,0x03,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0x45,0x03,0x00,0x00,0xd0,0x02,0x00,0x00, -0x3f,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00, -0x4f,0x03,0x00,0x00,0x92,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, -0x7f,0x00,0x00,0x00,0x53,0x03,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0x4f,0x03,0x00,0x00,0xd9,0x02,0x00,0x00, -0x49,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00, -0x59,0x03,0x00,0x00,0xba,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, -0x7f,0x00,0x00,0x00,0x5d,0x03,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0x59,0x03,0x00,0x00,0xe3,0x02,0x00,0x00, -0x53,0x03,0x00,0x00,0x70,0x00,0x04,0x00,0x7f,0x00,0x00,0x00, -0x65,0x03,0x00,0x00,0xcb,0x00,0x00,0x00,0x70,0x00,0x04,0x00, -0x7f,0x00,0x00,0x00,0x69,0x03,0x00,0x00,0xd9,0x00,0x00,0x00, -0x85,0x00,0x05,0x00,0x7f,0x00,0x00,0x00,0x6a,0x03,0x00,0x00, -0x70,0x02,0x00,0x00,0x69,0x03,0x00,0x00,0x0c,0x00,0x08,0x00, -0x7f,0x00,0x00,0x00,0x6b,0x03,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0x45,0x02,0x00,0x00,0x65,0x03,0x00,0x00, -0x6a,0x03,0x00,0x00,0x70,0x00,0x04,0x00,0x7f,0x00,0x00,0x00, -0x6e,0x03,0x00,0x00,0x13,0x01,0x00,0x00,0x0c,0x00,0x08,0x00, -0x7f,0x00,0x00,0x00,0x70,0x03,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0x97,0x02,0x00,0x00,0x6e,0x03,0x00,0x00, -0x6b,0x03,0x00,0x00,0x70,0x00,0x04,0x00,0x7f,0x00,0x00,0x00, -0x73,0x03,0x00,0x00,0x2f,0x01,0x00,0x00,0x0c,0x00,0x08,0x00, -0x7f,0x00,0x00,0x00,0x75,0x03,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0xbf,0x02,0x00,0x00,0x73,0x03,0x00,0x00, -0x70,0x03,0x00,0x00,0x85,0x00,0x05,0x00,0x7f,0x00,0x00,0x00, -0x79,0x03,0x00,0x00,0xb9,0x00,0x00,0x00,0x5d,0x03,0x00,0x00, -0x7f,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0xc6,0x03,0x00,0x00, -0x79,0x03,0x00,0x00,0x0c,0x00,0x08,0x00,0x7f,0x00,0x00,0x00, -0x7a,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0xb2,0x00,0x00,0x00,0x75,0x03,0x00,0x00,0xc6,0x03,0x00,0x00, -0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0x7c,0x03,0x00,0x00, -0x8a,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x7f,0x00,0x00,0x00, -0x7d,0x03,0x00,0x00,0x7c,0x03,0x00,0x00,0x7a,0x03,0x00,0x00, -0x3e,0x00,0x03,0x00,0x8a,0x00,0x00,0x00,0x7d,0x03,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x80,0x03,0x00,0x00, -0xc2,0x03,0x00,0x00,0x58,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, -0x8d,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x8f,0x00,0x00,0x00, -0xe0,0x00,0x04,0x00,0x58,0x00,0x00,0x00,0x58,0x00,0x00,0x00, -0x81,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,0x83,0x03,0x00,0x00, -0xf8,0x00,0x02,0x00,0x83,0x03,0x00,0x00,0xf5,0x00,0x07,0x00, -0x06,0x00,0x00,0x00,0xc3,0x03,0x00,0x00,0x83,0x00,0x00,0x00, -0x8f,0x00,0x00,0x00,0x9a,0x03,0x00,0x00,0x86,0x03,0x00,0x00, -0xac,0x00,0x05,0x00,0x94,0x00,0x00,0x00,0x89,0x03,0x00,0x00, -0xc3,0x03,0x00,0x00,0x3b,0x00,0x00,0x00,0xf6,0x00,0x04,0x00, -0x85,0x03,0x00,0x00,0x86,0x03,0x00,0x00,0x01,0x00,0x00,0x00, -0xfa,0x00,0x04,0x00,0x89,0x03,0x00,0x00,0x84,0x03,0x00,0x00, -0x85,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x84,0x03,0x00,0x00, -0xb0,0x00,0x05,0x00,0x94,0x00,0x00,0x00,0x8c,0x03,0x00,0x00, -0x59,0x00,0x00,0x00,0xc3,0x03,0x00,0x00,0xf7,0x00,0x03,0x00, -0x8e,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, -0x8c,0x03,0x00,0x00,0x8d,0x03,0x00,0x00,0x8e,0x03,0x00,0x00, -0xf8,0x00,0x02,0x00,0x8d,0x03,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x92,0x03,0x00,0x00,0x59,0x00,0x00,0x00, -0xc3,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x89,0x00,0x00,0x00, -0x93,0x03,0x00,0x00,0x82,0x00,0x00,0x00,0x92,0x03,0x00,0x00, -0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0x94,0x03,0x00,0x00, -0x93,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x89,0x00,0x00,0x00, -0x95,0x03,0x00,0x00,0x82,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0x96,0x03,0x00,0x00, -0x95,0x03,0x00,0x00,0x81,0x00,0x05,0x00,0x7f,0x00,0x00,0x00, -0x97,0x03,0x00,0x00,0x96,0x03,0x00,0x00,0x94,0x03,0x00,0x00, -0x3e,0x00,0x03,0x00,0x95,0x03,0x00,0x00,0x97,0x03,0x00,0x00, -0xf9,0x00,0x02,0x00,0x8e,0x03,0x00,0x00,0xf8,0x00,0x02,0x00, -0x8e,0x03,0x00,0x00,0xe0,0x00,0x04,0x00,0x58,0x00,0x00,0x00, -0x58,0x00,0x00,0x00,0x81,0x03,0x00,0x00,0xf9,0x00,0x02,0x00, -0x86,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x86,0x03,0x00,0x00, -0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9a,0x03,0x00,0x00, -0xc3,0x03,0x00,0x00,0xbf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, -0x83,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x85,0x03,0x00,0x00, -0xaa,0x00,0x05,0x00,0x94,0x00,0x00,0x00,0x9c,0x03,0x00,0x00, -0x59,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,0xf7,0x00,0x03,0x00, -0x9e,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, -0x9c,0x03,0x00,0x00,0x9d,0x03,0x00,0x00,0x9e,0x03,0x00,0x00, -0xf8,0x00,0x02,0x00,0x9d,0x03,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xa5,0x03,0x00,0x00,0xc1,0x03,0x00,0x00, -0x3d,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x89,0x00,0x00,0x00, -0xa6,0x03,0x00,0x00,0x82,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0xa7,0x03,0x00,0x00, -0xa6,0x03,0x00,0x00,0x41,0x00,0x06,0x00,0x22,0x02,0x00,0x00, -0xa8,0x03,0x00,0x00,0xa2,0x03,0x00,0x00,0x1c,0x00,0x00,0x00, -0xa5,0x03,0x00,0x00,0x3e,0x00,0x03,0x00,0xa8,0x03,0x00,0x00, -0xa7,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,0x9e,0x03,0x00,0x00, -0xf8,0x00,0x02,0x00,0x9e,0x03,0x00,0x00,0xfd,0x00,0x01,0x00, -0x38,0x00,0x01,0x00, +0x28,0x02,0x00,0x00,0xc4,0x03,0x00,0x00,0xa1,0x00,0x00,0x00, +0x41,0x00,0x06,0x00,0x29,0x02,0x00,0x00,0x2a,0x02,0x00,0x00, +0x25,0x02,0x00,0x00,0x1c,0x00,0x00,0x00,0x28,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0x86,0x00,0x00,0x00,0x2b,0x02,0x00,0x00, +0x2a,0x02,0x00,0x00,0x70,0x00,0x04,0x00,0x86,0x00,0x00,0x00, +0x2d,0x02,0x00,0x00,0x7a,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x32,0x02,0x00,0x00,0x28,0x02,0x00,0x00, +0x12,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x29,0x02,0x00,0x00, +0x33,0x02,0x00,0x00,0x25,0x02,0x00,0x00,0x1c,0x00,0x00,0x00, +0x32,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x86,0x00,0x00,0x00, +0x34,0x02,0x00,0x00,0x33,0x02,0x00,0x00,0x70,0x00,0x04,0x00, +0x86,0x00,0x00,0x00,0x36,0x02,0x00,0x00,0x87,0x01,0x00,0x00, +0x85,0x00,0x05,0x00,0x86,0x00,0x00,0x00,0x37,0x02,0x00,0x00, +0x34,0x02,0x00,0x00,0x36,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, +0x86,0x00,0x00,0x00,0x38,0x02,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x2b,0x02,0x00,0x00,0x2d,0x02,0x00,0x00, +0x37,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x3c,0x02,0x00,0x00,0x28,0x02,0x00,0x00,0x41,0x00,0x00,0x00, +0x41,0x00,0x06,0x00,0x29,0x02,0x00,0x00,0x3d,0x02,0x00,0x00, +0x25,0x02,0x00,0x00,0x1c,0x00,0x00,0x00,0x3c,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0x86,0x00,0x00,0x00,0x3e,0x02,0x00,0x00, +0x3d,0x02,0x00,0x00,0x70,0x00,0x04,0x00,0x86,0x00,0x00,0x00, +0x40,0x02,0x00,0x00,0x94,0x01,0x00,0x00,0x0c,0x00,0x08,0x00, +0x86,0x00,0x00,0x00,0x42,0x02,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x3e,0x02,0x00,0x00,0x40,0x02,0x00,0x00, +0x38,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x46,0x02,0x00,0x00,0x28,0x02,0x00,0x00,0x9a,0x01,0x00,0x00, +0x41,0x00,0x06,0x00,0x29,0x02,0x00,0x00,0x47,0x02,0x00,0x00, +0x25,0x02,0x00,0x00,0x1c,0x00,0x00,0x00,0x46,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0x86,0x00,0x00,0x00,0x48,0x02,0x00,0x00, +0x47,0x02,0x00,0x00,0x70,0x00,0x04,0x00,0x86,0x00,0x00,0x00, +0x4a,0x02,0x00,0x00,0xa2,0x01,0x00,0x00,0x0c,0x00,0x08,0x00, +0x86,0x00,0x00,0x00,0x4c,0x02,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x48,0x02,0x00,0x00,0x4a,0x02,0x00,0x00, +0x42,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x51,0x02,0x00,0x00,0x28,0x02,0x00,0x00,0x7b,0x00,0x00,0x00, +0x41,0x00,0x06,0x00,0x29,0x02,0x00,0x00,0x52,0x02,0x00,0x00, +0x25,0x02,0x00,0x00,0x1c,0x00,0x00,0x00,0x51,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0x86,0x00,0x00,0x00,0x53,0x02,0x00,0x00, +0x52,0x02,0x00,0x00,0x70,0x00,0x04,0x00,0x86,0x00,0x00,0x00, +0x55,0x02,0x00,0x00,0xaa,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x5b,0x02,0x00,0x00,0x28,0x02,0x00,0x00, +0x5a,0x02,0x00,0x00,0x41,0x00,0x06,0x00,0x29,0x02,0x00,0x00, +0x5c,0x02,0x00,0x00,0x25,0x02,0x00,0x00,0x1c,0x00,0x00,0x00, +0x5b,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x86,0x00,0x00,0x00, +0x5d,0x02,0x00,0x00,0x5c,0x02,0x00,0x00,0x70,0x00,0x04,0x00, +0x86,0x00,0x00,0x00,0x5f,0x02,0x00,0x00,0xb3,0x01,0x00,0x00, +0x85,0x00,0x05,0x00,0x86,0x00,0x00,0x00,0x60,0x02,0x00,0x00, +0x5d,0x02,0x00,0x00,0x5f,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, +0x86,0x00,0x00,0x00,0x61,0x02,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x53,0x02,0x00,0x00,0x55,0x02,0x00,0x00, +0x60,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x66,0x02,0x00,0x00,0x28,0x02,0x00,0x00,0x65,0x02,0x00,0x00, +0x41,0x00,0x06,0x00,0x29,0x02,0x00,0x00,0x67,0x02,0x00,0x00, +0x25,0x02,0x00,0x00,0x1c,0x00,0x00,0x00,0x66,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0x86,0x00,0x00,0x00,0x68,0x02,0x00,0x00, +0x67,0x02,0x00,0x00,0x70,0x00,0x04,0x00,0x86,0x00,0x00,0x00, +0x6a,0x02,0x00,0x00,0xbc,0x01,0x00,0x00,0x0c,0x00,0x08,0x00, +0x86,0x00,0x00,0x00,0x6c,0x02,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x68,0x02,0x00,0x00,0x6a,0x02,0x00,0x00, +0x61,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x71,0x02,0x00,0x00,0x28,0x02,0x00,0x00,0x70,0x02,0x00,0x00, +0x41,0x00,0x06,0x00,0x29,0x02,0x00,0x00,0x72,0x02,0x00,0x00, +0x25,0x02,0x00,0x00,0x1c,0x00,0x00,0x00,0x71,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0x86,0x00,0x00,0x00,0x73,0x02,0x00,0x00, +0x72,0x02,0x00,0x00,0x70,0x00,0x04,0x00,0x86,0x00,0x00,0x00, +0x75,0x02,0x00,0x00,0xc5,0x01,0x00,0x00,0x0c,0x00,0x08,0x00, +0x86,0x00,0x00,0x00,0x77,0x02,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x73,0x02,0x00,0x00,0x75,0x02,0x00,0x00, +0x6c,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x7b,0x02,0x00,0x00,0xc4,0x03,0x00,0x00,0xa5,0x00,0x00,0x00, +0x41,0x00,0x06,0x00,0x29,0x02,0x00,0x00,0x7c,0x02,0x00,0x00, +0x25,0x02,0x00,0x00,0x1c,0x00,0x00,0x00,0x7b,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0x86,0x00,0x00,0x00,0x7d,0x02,0x00,0x00, +0x7c,0x02,0x00,0x00,0x70,0x00,0x04,0x00,0x86,0x00,0x00,0x00, +0x7f,0x02,0x00,0x00,0xd2,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x84,0x02,0x00,0x00,0x7b,0x02,0x00,0x00, +0x12,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x29,0x02,0x00,0x00, +0x85,0x02,0x00,0x00,0x25,0x02,0x00,0x00,0x1c,0x00,0x00,0x00, +0x84,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x86,0x00,0x00,0x00, +0x86,0x02,0x00,0x00,0x85,0x02,0x00,0x00,0x70,0x00,0x04,0x00, +0x86,0x00,0x00,0x00,0x88,0x02,0x00,0x00,0xe0,0x01,0x00,0x00, +0x85,0x00,0x05,0x00,0x86,0x00,0x00,0x00,0x89,0x02,0x00,0x00, +0x86,0x02,0x00,0x00,0x88,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, +0x86,0x00,0x00,0x00,0x8a,0x02,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x7d,0x02,0x00,0x00,0x7f,0x02,0x00,0x00, +0x89,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x8e,0x02,0x00,0x00,0x7b,0x02,0x00,0x00,0x41,0x00,0x00,0x00, +0x41,0x00,0x06,0x00,0x29,0x02,0x00,0x00,0x8f,0x02,0x00,0x00, +0x25,0x02,0x00,0x00,0x1c,0x00,0x00,0x00,0x8e,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0x86,0x00,0x00,0x00,0x90,0x02,0x00,0x00, +0x8f,0x02,0x00,0x00,0x70,0x00,0x04,0x00,0x86,0x00,0x00,0x00, +0x92,0x02,0x00,0x00,0xee,0x01,0x00,0x00,0x0c,0x00,0x08,0x00, +0x86,0x00,0x00,0x00,0x94,0x02,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x90,0x02,0x00,0x00,0x92,0x02,0x00,0x00, +0x8a,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x98,0x02,0x00,0x00,0x7b,0x02,0x00,0x00,0x9a,0x01,0x00,0x00, +0x41,0x00,0x06,0x00,0x29,0x02,0x00,0x00,0x99,0x02,0x00,0x00, +0x25,0x02,0x00,0x00,0x1c,0x00,0x00,0x00,0x98,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0x86,0x00,0x00,0x00,0x9a,0x02,0x00,0x00, +0x99,0x02,0x00,0x00,0x70,0x00,0x04,0x00,0x86,0x00,0x00,0x00, +0x9c,0x02,0x00,0x00,0xfc,0x01,0x00,0x00,0x0c,0x00,0x08,0x00, +0x86,0x00,0x00,0x00,0x9e,0x02,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x9a,0x02,0x00,0x00,0x9c,0x02,0x00,0x00, +0x94,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xa3,0x02,0x00,0x00,0x7b,0x02,0x00,0x00,0x7b,0x00,0x00,0x00, +0x41,0x00,0x06,0x00,0x29,0x02,0x00,0x00,0xa4,0x02,0x00,0x00, +0x25,0x02,0x00,0x00,0x1c,0x00,0x00,0x00,0xa3,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0x86,0x00,0x00,0x00,0xa5,0x02,0x00,0x00, +0xa4,0x02,0x00,0x00,0x70,0x00,0x04,0x00,0x86,0x00,0x00,0x00, +0xa7,0x02,0x00,0x00,0x05,0x02,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xac,0x02,0x00,0x00,0x7b,0x02,0x00,0x00, +0x5a,0x02,0x00,0x00,0x41,0x00,0x06,0x00,0x29,0x02,0x00,0x00, +0xad,0x02,0x00,0x00,0x25,0x02,0x00,0x00,0x1c,0x00,0x00,0x00, +0xac,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x86,0x00,0x00,0x00, +0xae,0x02,0x00,0x00,0xad,0x02,0x00,0x00,0x70,0x00,0x04,0x00, +0x86,0x00,0x00,0x00,0xb0,0x02,0x00,0x00,0x0e,0x02,0x00,0x00, +0x85,0x00,0x05,0x00,0x86,0x00,0x00,0x00,0xb1,0x02,0x00,0x00, +0xae,0x02,0x00,0x00,0xb0,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, +0x86,0x00,0x00,0x00,0xb2,0x02,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0xa5,0x02,0x00,0x00,0xa7,0x02,0x00,0x00, +0xb1,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xb6,0x02,0x00,0x00,0x7b,0x02,0x00,0x00,0x65,0x02,0x00,0x00, +0x41,0x00,0x06,0x00,0x29,0x02,0x00,0x00,0xb7,0x02,0x00,0x00, +0x25,0x02,0x00,0x00,0x1c,0x00,0x00,0x00,0xb6,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0x86,0x00,0x00,0x00,0xb8,0x02,0x00,0x00, +0xb7,0x02,0x00,0x00,0x70,0x00,0x04,0x00,0x86,0x00,0x00,0x00, +0xba,0x02,0x00,0x00,0x17,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, +0x86,0x00,0x00,0x00,0xbc,0x02,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0xb8,0x02,0x00,0x00,0xba,0x02,0x00,0x00, +0xb2,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xc0,0x02,0x00,0x00,0x7b,0x02,0x00,0x00,0x70,0x02,0x00,0x00, +0x41,0x00,0x06,0x00,0x29,0x02,0x00,0x00,0xc1,0x02,0x00,0x00, +0x25,0x02,0x00,0x00,0x1c,0x00,0x00,0x00,0xc0,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0x86,0x00,0x00,0x00,0xc2,0x02,0x00,0x00, +0xc1,0x02,0x00,0x00,0x70,0x00,0x04,0x00,0x86,0x00,0x00,0x00, +0xc4,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, +0x86,0x00,0x00,0x00,0xc6,0x02,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0xc2,0x02,0x00,0x00,0xc4,0x02,0x00,0x00, +0xbc,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x86,0x00,0x00,0x00, +0xcc,0x02,0x00,0x00,0x2a,0x02,0x00,0x00,0x70,0x00,0x04,0x00, +0x86,0x00,0x00,0x00,0xce,0x02,0x00,0x00,0xee,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x86,0x00,0x00,0x00,0xd5,0x02,0x00,0x00, +0x52,0x02,0x00,0x00,0x70,0x00,0x04,0x00,0x86,0x00,0x00,0x00, +0xd7,0x02,0x00,0x00,0xfd,0x00,0x00,0x00,0x85,0x00,0x05,0x00, +0x86,0x00,0x00,0x00,0xd8,0x02,0x00,0x00,0xd5,0x02,0x00,0x00, +0xd7,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x86,0x00,0x00,0x00, +0xd9,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0xcc,0x02,0x00,0x00,0xce,0x02,0x00,0x00,0xd8,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0x86,0x00,0x00,0x00,0xde,0x02,0x00,0x00, +0x7c,0x02,0x00,0x00,0x70,0x00,0x04,0x00,0x86,0x00,0x00,0x00, +0xe0,0x02,0x00,0x00,0x52,0x01,0x00,0x00,0x0c,0x00,0x08,0x00, +0x86,0x00,0x00,0x00,0xe2,0x02,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0xde,0x02,0x00,0x00,0xe0,0x02,0x00,0x00, +0xd9,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x86,0x00,0x00,0x00, +0xe8,0x02,0x00,0x00,0xa4,0x02,0x00,0x00,0x70,0x00,0x04,0x00, +0x86,0x00,0x00,0x00,0xea,0x02,0x00,0x00,0x6e,0x01,0x00,0x00, +0x0c,0x00,0x08,0x00,0x86,0x00,0x00,0x00,0xec,0x02,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xe8,0x02,0x00,0x00, +0xea,0x02,0x00,0x00,0xe2,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0x86,0x00,0x00,0x00,0xf2,0x02,0x00,0x00,0x33,0x02,0x00,0x00, +0x0c,0x00,0x08,0x00,0x86,0x00,0x00,0x00,0xf6,0x02,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xf2,0x02,0x00,0x00, +0xce,0x02,0x00,0x00,0xec,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0x86,0x00,0x00,0x00,0xfc,0x02,0x00,0x00,0x5c,0x02,0x00,0x00, +0x0c,0x00,0x08,0x00,0x86,0x00,0x00,0x00,0x00,0x03,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xfc,0x02,0x00,0x00, +0xd7,0x02,0x00,0x00,0xf6,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0x86,0x00,0x00,0x00,0x06,0x03,0x00,0x00,0x85,0x02,0x00,0x00, +0x0c,0x00,0x08,0x00,0x86,0x00,0x00,0x00,0x0a,0x03,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x06,0x03,0x00,0x00, +0xe0,0x02,0x00,0x00,0x00,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, +0x86,0x00,0x00,0x00,0x10,0x03,0x00,0x00,0xad,0x02,0x00,0x00, +0x0c,0x00,0x08,0x00,0x86,0x00,0x00,0x00,0x14,0x03,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x10,0x03,0x00,0x00, +0xea,0x02,0x00,0x00,0x0a,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, +0x86,0x00,0x00,0x00,0x1a,0x03,0x00,0x00,0x3d,0x02,0x00,0x00, +0x0c,0x00,0x08,0x00,0x86,0x00,0x00,0x00,0x1e,0x03,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x1a,0x03,0x00,0x00, +0xce,0x02,0x00,0x00,0x14,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, +0x86,0x00,0x00,0x00,0x24,0x03,0x00,0x00,0x67,0x02,0x00,0x00, +0x0c,0x00,0x08,0x00,0x86,0x00,0x00,0x00,0x28,0x03,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x24,0x03,0x00,0x00, +0xd7,0x02,0x00,0x00,0x1e,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, +0x86,0x00,0x00,0x00,0x2e,0x03,0x00,0x00,0x8f,0x02,0x00,0x00, +0x0c,0x00,0x08,0x00,0x86,0x00,0x00,0x00,0x32,0x03,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x2e,0x03,0x00,0x00, +0xe0,0x02,0x00,0x00,0x28,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, +0x86,0x00,0x00,0x00,0x38,0x03,0x00,0x00,0xb7,0x02,0x00,0x00, +0x0c,0x00,0x08,0x00,0x86,0x00,0x00,0x00,0x3c,0x03,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x38,0x03,0x00,0x00, +0xea,0x02,0x00,0x00,0x32,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, +0x86,0x00,0x00,0x00,0x42,0x03,0x00,0x00,0x47,0x02,0x00,0x00, +0x0c,0x00,0x08,0x00,0x86,0x00,0x00,0x00,0x46,0x03,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x42,0x03,0x00,0x00, +0xce,0x02,0x00,0x00,0x3c,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, +0x86,0x00,0x00,0x00,0x4c,0x03,0x00,0x00,0x72,0x02,0x00,0x00, +0x0c,0x00,0x08,0x00,0x86,0x00,0x00,0x00,0x50,0x03,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x4c,0x03,0x00,0x00, +0xd7,0x02,0x00,0x00,0x46,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, +0x86,0x00,0x00,0x00,0x56,0x03,0x00,0x00,0x99,0x02,0x00,0x00, +0x0c,0x00,0x08,0x00,0x86,0x00,0x00,0x00,0x5a,0x03,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x56,0x03,0x00,0x00, +0xe0,0x02,0x00,0x00,0x50,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, +0x86,0x00,0x00,0x00,0x60,0x03,0x00,0x00,0xc1,0x02,0x00,0x00, +0x0c,0x00,0x08,0x00,0x86,0x00,0x00,0x00,0x64,0x03,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x60,0x03,0x00,0x00, +0xea,0x02,0x00,0x00,0x5a,0x03,0x00,0x00,0x70,0x00,0x04,0x00, +0x86,0x00,0x00,0x00,0x6c,0x03,0x00,0x00,0xd2,0x00,0x00,0x00, +0x70,0x00,0x04,0x00,0x86,0x00,0x00,0x00,0x70,0x03,0x00,0x00, +0xe0,0x00,0x00,0x00,0x85,0x00,0x05,0x00,0x86,0x00,0x00,0x00, +0x71,0x03,0x00,0x00,0x77,0x02,0x00,0x00,0x70,0x03,0x00,0x00, +0x0c,0x00,0x08,0x00,0x86,0x00,0x00,0x00,0x72,0x03,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x4c,0x02,0x00,0x00, +0x6c,0x03,0x00,0x00,0x71,0x03,0x00,0x00,0x70,0x00,0x04,0x00, +0x86,0x00,0x00,0x00,0x75,0x03,0x00,0x00,0x1a,0x01,0x00,0x00, +0x0c,0x00,0x08,0x00,0x86,0x00,0x00,0x00,0x77,0x03,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x9e,0x02,0x00,0x00, +0x75,0x03,0x00,0x00,0x72,0x03,0x00,0x00,0x70,0x00,0x04,0x00, +0x86,0x00,0x00,0x00,0x7a,0x03,0x00,0x00,0x36,0x01,0x00,0x00, +0x0c,0x00,0x08,0x00,0x86,0x00,0x00,0x00,0x7c,0x03,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xc6,0x02,0x00,0x00, +0x7a,0x03,0x00,0x00,0x77,0x03,0x00,0x00,0x85,0x00,0x05,0x00, +0x86,0x00,0x00,0x00,0x80,0x03,0x00,0x00,0xc0,0x00,0x00,0x00, +0x64,0x03,0x00,0x00,0x7f,0x00,0x04,0x00,0x86,0x00,0x00,0x00, +0xcd,0x03,0x00,0x00,0x80,0x03,0x00,0x00,0x0c,0x00,0x08,0x00, +0x86,0x00,0x00,0x00,0x81,0x03,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0x7c,0x03,0x00,0x00, +0xcd,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x86,0x00,0x00,0x00, +0x83,0x03,0x00,0x00,0x91,0x00,0x00,0x00,0x81,0x00,0x05,0x00, +0x86,0x00,0x00,0x00,0x84,0x03,0x00,0x00,0x83,0x03,0x00,0x00, +0x81,0x03,0x00,0x00,0x3e,0x00,0x03,0x00,0x91,0x00,0x00,0x00, +0x84,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x87,0x03,0x00,0x00,0xc9,0x03,0x00,0x00,0x41,0x00,0x00,0x00, +0xf9,0x00,0x02,0x00,0x94,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0x96,0x00,0x00,0x00,0xe0,0x00,0x04,0x00,0x41,0x00,0x00,0x00, +0x41,0x00,0x00,0x00,0x88,0x03,0x00,0x00,0xf9,0x00,0x02,0x00, +0x8a,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x8a,0x03,0x00,0x00, +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xca,0x03,0x00,0x00, +0x8a,0x00,0x00,0x00,0x96,0x00,0x00,0x00,0xa1,0x03,0x00,0x00, +0x8d,0x03,0x00,0x00,0xac,0x00,0x05,0x00,0x9b,0x00,0x00,0x00, +0x90,0x03,0x00,0x00,0xca,0x03,0x00,0x00,0x3b,0x00,0x00,0x00, +0xf6,0x00,0x04,0x00,0x8c,0x03,0x00,0x00,0x8d,0x03,0x00,0x00, +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x90,0x03,0x00,0x00, +0x8b,0x03,0x00,0x00,0x8c,0x03,0x00,0x00,0xf8,0x00,0x02,0x00, +0x8b,0x03,0x00,0x00,0xb0,0x00,0x05,0x00,0x9b,0x00,0x00,0x00, +0x93,0x03,0x00,0x00,0x60,0x00,0x00,0x00,0xca,0x03,0x00,0x00, +0xf7,0x00,0x03,0x00,0x95,0x03,0x00,0x00,0x00,0x00,0x00,0x00, +0xfa,0x00,0x04,0x00,0x93,0x03,0x00,0x00,0x94,0x03,0x00,0x00, +0x95,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x94,0x03,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x99,0x03,0x00,0x00, +0x60,0x00,0x00,0x00,0xca,0x03,0x00,0x00,0x41,0x00,0x05,0x00, +0x90,0x00,0x00,0x00,0x9a,0x03,0x00,0x00,0x89,0x00,0x00,0x00, +0x99,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x86,0x00,0x00,0x00, +0x9b,0x03,0x00,0x00,0x9a,0x03,0x00,0x00,0x41,0x00,0x05,0x00, +0x90,0x00,0x00,0x00,0x9c,0x03,0x00,0x00,0x89,0x00,0x00,0x00, +0x60,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x86,0x00,0x00,0x00, +0x9d,0x03,0x00,0x00,0x9c,0x03,0x00,0x00,0x81,0x00,0x05,0x00, +0x86,0x00,0x00,0x00,0x9e,0x03,0x00,0x00,0x9d,0x03,0x00,0x00, +0x9b,0x03,0x00,0x00,0x3e,0x00,0x03,0x00,0x9c,0x03,0x00,0x00, +0x9e,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,0x95,0x03,0x00,0x00, +0xf8,0x00,0x02,0x00,0x95,0x03,0x00,0x00,0xe0,0x00,0x04,0x00, +0x41,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x88,0x03,0x00,0x00, +0xf9,0x00,0x02,0x00,0x8d,0x03,0x00,0x00,0xf8,0x00,0x02,0x00, +0x8d,0x03,0x00,0x00,0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xa1,0x03,0x00,0x00,0xca,0x03,0x00,0x00,0xc6,0x00,0x00,0x00, +0xf9,0x00,0x02,0x00,0x8a,0x03,0x00,0x00,0xf8,0x00,0x02,0x00, +0x8c,0x03,0x00,0x00,0xaa,0x00,0x05,0x00,0x9b,0x00,0x00,0x00, +0xa3,0x03,0x00,0x00,0x60,0x00,0x00,0x00,0x3b,0x00,0x00,0x00, +0xf7,0x00,0x03,0x00,0xa5,0x03,0x00,0x00,0x00,0x00,0x00,0x00, +0xfa,0x00,0x04,0x00,0xa3,0x03,0x00,0x00,0xa4,0x03,0x00,0x00, +0xa5,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0xa4,0x03,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xac,0x03,0x00,0x00, +0xc8,0x03,0x00,0x00,0x45,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0x90,0x00,0x00,0x00,0xad,0x03,0x00,0x00,0x89,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x86,0x00,0x00,0x00, +0xae,0x03,0x00,0x00,0xad,0x03,0x00,0x00,0x41,0x00,0x06,0x00, +0x29,0x02,0x00,0x00,0xaf,0x03,0x00,0x00,0xa9,0x03,0x00,0x00, +0x1c,0x00,0x00,0x00,0xac,0x03,0x00,0x00,0x3e,0x00,0x03,0x00, +0xaf,0x03,0x00,0x00,0xae,0x03,0x00,0x00,0xf9,0x00,0x02,0x00, +0xa5,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0xa5,0x03,0x00,0x00, +0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00, }; -const uint64_t mul_mat_vec_id_q4_k_f32_len = 9796; +const uint64_t mul_mat_vec_id_q4_k_f32_len = 9944; unsigned char mul_mat_vec_id_q5_0_f32_data[] = { 0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00, -0x91,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, +0x98,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, 0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x51,0x11,0x00,0x00, 0x11,0x00,0x02,0x00,0x60,0x11,0x00,0x00,0x0b,0x00,0x06,0x00, 0x01,0x00,0x00,0x00,0x47,0x4c,0x53,0x4c,0x2e,0x73,0x74,0x64, 0x2e,0x34,0x35,0x30,0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00, -0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0f,0x00,0x0e,0x00, +0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0f,0x00,0x0f,0x00, 0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e, 0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x78,0x00,0x00,0x00, 0x80,0x00,0x00,0x00,0x89,0x00,0x00,0x00,0x9c,0x00,0x00,0x00, -0xa0,0x00,0x00,0x00,0xb0,0x00,0x00,0x00,0xe9,0x00,0x00,0x00, -0x27,0x01,0x00,0x00,0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00, -0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x1e,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x1f,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x1f,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x20,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x16,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x21,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x21,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x23,0x00,0x00,0x00, -0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x23,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x78,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x7d,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00, -0x7e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x7e,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, -0x7e,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x80,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x80,0x00,0x00,0x00,0x21,0x00,0x00,0x00, -0x03,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x87,0x00,0x00,0x00, +0x9f,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,0xb7,0x00,0x00,0x00, +0xf0,0x00,0x00,0x00,0x2e,0x01,0x00,0x00,0x10,0x00,0x06,0x00, +0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x1e,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x1f,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x87,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x87,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x87,0x00,0x00,0x00, -0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x87,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x87,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x87,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x87,0x00,0x00,0x00,0x07,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x87,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x20,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x87,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x9c,0x00,0x00,0x00, -0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xa0,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xad,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xe6,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00, -0xe7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0xe7,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, -0xe7,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xe9,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xe9,0x00,0x00,0x00,0x21,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x24,0x01,0x00,0x00, -0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00, -0x25,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x25,0x01,0x00,0x00,0x00,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x1f,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x1f,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x20,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x16,0x00,0x00,0x00,0x48,0x00,0x04,0x00, +0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, -0x25,0x01,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x27,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x27,0x01,0x00,0x00,0x21,0x00,0x00,0x00, +0x21,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x23,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x21,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x78,0x00,0x00,0x00, +0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x7d,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x48,0x00,0x04,0x00,0x7e,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x7e,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x03,0x00,0x7e,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x80,0x00,0x00,0x00,0x22,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x80,0x00,0x00,0x00, +0x21,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x87,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x87,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x87,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x87,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x87,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x87,0x00,0x00,0x00,0x05,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x87,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x87,0x00,0x00,0x00, +0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x87,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0x87,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x9c,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x9f,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xa7,0x00,0x00,0x00, +0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xb4,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xed,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0xee,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0xee,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0xee,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xf0,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xf0,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x2b,0x01,0x00,0x00,0x06,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x2c,0x01,0x00,0x00, +0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x2c,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x2c,0x01,0x00,0x00, 0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x2e,0x01,0x00,0x00, -0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x2f,0x01,0x00,0x00,0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00, -0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00, -0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x16,0x00,0x03,0x00,0x08,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x17,0x00,0x04,0x00,0x09,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0x18,0x00,0x00,0x00, -0x10,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x19,0x00,0x00,0x00, -0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x1c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x19,0x00,0x00,0x00, -0x1a,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x1c,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x1d,0x00,0x00,0x00,0x10,0x00,0x00,0x00, -0x1c,0x00,0x04,0x00,0x1e,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x1d,0x00,0x00,0x00,0x1e,0x00,0x05,0x00,0x1f,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x1e,0x00,0x00,0x00, -0x1d,0x00,0x03,0x00,0x20,0x00,0x00,0x00,0x1f,0x00,0x00,0x00, -0x1e,0x00,0x03,0x00,0x21,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x22,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x21,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x22,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x15,0x00,0x04,0x00, -0x24,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x24,0x00,0x00,0x00,0x25,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x29,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x24,0x00,0x00,0x00,0x31,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x32,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x19,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x24,0x00,0x00,0x00, -0x36,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x24,0x00,0x00,0x00,0x45,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4b,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x24,0x00,0x00,0x00, -0x55,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x57,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x5c,0x00,0x00,0x00, -0x0f,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x5e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x67,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x6e,0x00,0x00,0x00, -0x00,0x00,0x80,0x41,0x17,0x00,0x04,0x00,0x76,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x77,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0x77,0x00,0x00,0x00,0x78,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x79,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, -0x7d,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, -0x7e,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x7f,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x7e,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0x80,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x82,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x1e,0x00,0x0b,0x00, -0x87,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x88,0x00,0x00,0x00, -0x09,0x00,0x00,0x00,0x87,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x88,0x00,0x00,0x00,0x89,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x8a,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x24,0x00,0x00,0x00, -0x8f,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x24,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x03,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0x77,0x00,0x00,0x00,0x9c,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x2e,0x01,0x00,0x00,0x21,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x35,0x01,0x00,0x00,0x01,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x36,0x01,0x00,0x00, +0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x13,0x00,0x02,0x00, +0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x00,0x03,0x00, +0x08,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x17,0x00,0x04,0x00, +0x09,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x16,0x00,0x03,0x00,0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00, +0x15,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x10,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x1a,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, +0x15,0x00,0x04,0x00,0x1c,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x1d,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, +0x1e,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x1d,0x00,0x00,0x00, +0x1e,0x00,0x05,0x00,0x1f,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x1b,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, +0x20,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, +0x21,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x22,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x21,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x22,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x24,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x24,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x29,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x24,0x00,0x00,0x00, +0x31,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x32,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x19,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x24,0x00,0x00,0x00,0x36,0x00,0x00,0x00, +0x10,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x24,0x00,0x00,0x00, +0x45,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x24,0x00,0x00,0x00,0x55,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x57,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,0x0f,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x5e,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x67,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x08,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x00,0x00,0x80,0x41, +0x17,0x00,0x04,0x00,0x76,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x77,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x76,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0x77,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x79,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x7d,0x00,0x00,0x00, +0x24,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x7e,0x00,0x00,0x00, +0x7d,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x7f,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0x7f,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x82,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x24,0x00,0x00,0x00,0x1e,0x00,0x0b,0x00,0x87,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x88,0x00,0x00,0x00,0x09,0x00,0x00,0x00, +0x87,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x88,0x00,0x00,0x00, +0x89,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x8a,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x24,0x00,0x00,0x00,0x8f,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x24,0x00,0x00,0x00, +0x97,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0x77,0x00,0x00,0x00,0x9c,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x77,0x00,0x00,0x00,0x9f,0x00,0x00,0x00, 0x01,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x77,0x00,0x00,0x00, -0xa0,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xad,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x1c,0x00,0x04,0x00,0xae,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0xad,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xaf,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0xae,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0xaf,0x00,0x00,0x00,0xb0,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xb2,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xb3,0x00,0x00,0x00, +0xa7,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,0x20,0x00,0x00,0x00, +0x1c,0x00,0x04,0x00,0xb5,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0xb4,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xb6,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0xb6,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xb9,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xba,0x00,0x00,0x00, 0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x14,0x00,0x02,0x00, -0xbf,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xce,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, -0xe6,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, -0xe7,0x00,0x00,0x00,0xe6,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0xe8,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xe7,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0xe8,0x00,0x00,0x00,0xe9,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xef,0x00,0x00,0x00, +0xc6,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xd5,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, +0xed,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, +0xee,0x00,0x00,0x00,0xed,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0xef,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xee,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0xef,0x00,0x00,0x00,0xf0,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xf6,0x00,0x00,0x00, 0x0c,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0x08,0x01,0x00,0x00, -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x07,0x01,0x00,0x00, -0x86,0x00,0x00,0x00,0xad,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, -0x1d,0x00,0x03,0x00,0x24,0x01,0x00,0x00,0x08,0x00,0x00,0x00, -0x1e,0x00,0x03,0x00,0x25,0x01,0x00,0x00,0x24,0x01,0x00,0x00, -0x20,0x00,0x04,0x00,0x26,0x01,0x00,0x00,0x0c,0x00,0x00,0x00, -0x25,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,0x26,0x01,0x00,0x00, -0x27,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x32,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x2e,0x01,0x00,0x00,0x01,0x00,0x00,0x00, -0x33,0x00,0x06,0x00,0x76,0x00,0x00,0x00,0x2f,0x01,0x00,0x00, -0x2e,0x01,0x00,0x00,0x67,0x00,0x00,0x00,0x67,0x00,0x00,0x00, -0x2c,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0x90,0x01,0x00,0x00, +0x06,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,0x08,0x01,0x00,0x00, +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x0e,0x01,0x00,0x00, +0x86,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, +0x1d,0x00,0x03,0x00,0x2b,0x01,0x00,0x00,0x08,0x00,0x00,0x00, +0x1e,0x00,0x03,0x00,0x2c,0x01,0x00,0x00,0x2b,0x01,0x00,0x00, +0x20,0x00,0x04,0x00,0x2d,0x01,0x00,0x00,0x0c,0x00,0x00,0x00, +0x2c,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,0x2d,0x01,0x00,0x00, +0x2e,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x32,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x35,0x01,0x00,0x00,0x01,0x00,0x00,0x00, +0x33,0x00,0x06,0x00,0x76,0x00,0x00,0x00,0x36,0x01,0x00,0x00, +0x35,0x01,0x00,0x00,0x67,0x00,0x00,0x00,0x67,0x00,0x00,0x00, +0x2c,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0x97,0x01,0x00,0x00, 0x6e,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x36,0x00,0x05,0x00, 0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x03,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00, 0x41,0x00,0x05,0x00,0x79,0x00,0x00,0x00,0x9d,0x00,0x00,0x00, 0x9c,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, 0x06,0x00,0x00,0x00,0x9e,0x00,0x00,0x00,0x9d,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x79,0x00,0x00,0x00,0xa1,0x00,0x00,0x00, -0xa0,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,0xa1,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x79,0x00,0x00,0x00,0x33,0x01,0x00,0x00, -0x78,0x00,0x00,0x00,0x67,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x34,0x01,0x00,0x00,0x33,0x01,0x00,0x00, -0x41,0x00,0x06,0x00,0x82,0x00,0x00,0x00,0x36,0x01,0x00,0x00, -0x80,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x34,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0x24,0x00,0x00,0x00,0x37,0x01,0x00,0x00, -0x36,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x38,0x01,0x00,0x00,0x37,0x01,0x00,0x00,0x41,0x00,0x05,0x00, -0x8a,0x00,0x00,0x00,0x3a,0x01,0x00,0x00,0x89,0x00,0x00,0x00, -0x45,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x3b,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x3c,0x01,0x00,0x00,0x38,0x01,0x00,0x00, -0x3b,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x8a,0x00,0x00,0x00, -0x3e,0x01,0x00,0x00,0x89,0x00,0x00,0x00,0x8f,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x3f,0x01,0x00,0x00, -0x3e,0x01,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x40,0x01,0x00,0x00,0x34,0x01,0x00,0x00,0x3f,0x01,0x00,0x00, +0x41,0x00,0x05,0x00,0x79,0x00,0x00,0x00,0xa0,0x00,0x00,0x00, +0x9f,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xa1,0x00,0x00,0x00,0xa0,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x79,0x00,0x00,0x00,0xa2,0x00,0x00,0x00, +0x9c,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0xa2,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa4,0x00,0x00,0x00, +0xa1,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xa5,0x00,0x00,0x00,0x9e,0x00,0x00,0x00, +0xa4,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x79,0x00,0x00,0x00, +0xa8,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,0x5e,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa9,0x00,0x00,0x00, +0xa8,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x79,0x00,0x00,0x00, +0x3a,0x01,0x00,0x00,0x78,0x00,0x00,0x00,0x67,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x3b,0x01,0x00,0x00, +0x3a,0x01,0x00,0x00,0x41,0x00,0x06,0x00,0x82,0x00,0x00,0x00, +0x3d,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x25,0x00,0x00,0x00, +0x3b,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x24,0x00,0x00,0x00, +0x3e,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x3f,0x01,0x00,0x00,0x3e,0x01,0x00,0x00, 0x41,0x00,0x05,0x00,0x8a,0x00,0x00,0x00,0x41,0x01,0x00,0x00, -0x89,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x89,0x00,0x00,0x00,0x45,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, 0x06,0x00,0x00,0x00,0x42,0x01,0x00,0x00,0x41,0x01,0x00,0x00, 0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x43,0x01,0x00,0x00, -0x40,0x01,0x00,0x00,0x42,0x01,0x00,0x00,0x41,0x00,0x05,0x00, +0x3f,0x01,0x00,0x00,0x42,0x01,0x00,0x00,0x41,0x00,0x05,0x00, 0x8a,0x00,0x00,0x00,0x45,0x01,0x00,0x00,0x89,0x00,0x00,0x00, -0x97,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x46,0x01,0x00,0x00,0x45,0x01,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x47,0x01,0x00,0x00,0x34,0x01,0x00,0x00, -0x46,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0xb3,0x00,0x00,0x00, -0xb4,0x00,0x00,0x00,0xb0,0x00,0x00,0x00,0xa2,0x00,0x00,0x00, -0x3e,0x00,0x03,0x00,0xb4,0x00,0x00,0x00,0xb2,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0xb6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0xb6,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00, -0x8d,0x01,0x00,0x00,0x5e,0x00,0x00,0x00,0x05,0x00,0x00,0x00, -0x04,0x01,0x00,0x00,0xb7,0x00,0x00,0x00,0x41,0x00,0x05,0x00, -0x8a,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,0x89,0x00,0x00,0x00, -0x25,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xbd,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,0x86,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xbe,0x00,0x00,0x00,0xbd,0x00,0x00,0x00, -0xad,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0xbf,0x00,0x00,0x00, -0xc0,0x00,0x00,0x00,0x8d,0x01,0x00,0x00,0xbe,0x00,0x00,0x00, -0xf6,0x00,0x04,0x00,0xb8,0x00,0x00,0x00,0xb7,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xc0,0x00,0x00,0x00, -0xb7,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0xb7,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xc3,0x00,0x00,0x00,0x8d,0x01,0x00,0x00,0xad,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc5,0x00,0x00,0x00, -0x1a,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,0xc3,0x00,0x00,0x00, -0xc5,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xcb,0x00,0x00,0x00,0x9e,0x00,0x00,0x00,0xbd,0x00,0x00,0x00, +0x8f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x46,0x01,0x00,0x00,0x45,0x01,0x00,0x00,0x89,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x47,0x01,0x00,0x00,0x3b,0x01,0x00,0x00, +0x46,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x8a,0x00,0x00,0x00, +0x48,0x01,0x00,0x00,0x89,0x00,0x00,0x00,0x55,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x49,0x01,0x00,0x00, +0x48,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x4a,0x01,0x00,0x00,0x47,0x01,0x00,0x00,0x49,0x01,0x00,0x00, +0x41,0x00,0x05,0x00,0x8a,0x00,0x00,0x00,0x4c,0x01,0x00,0x00, +0x89,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x4d,0x01,0x00,0x00,0x4c,0x01,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4e,0x01,0x00,0x00, +0x3b,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,0x41,0x00,0x05,0x00, +0xba,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0xb7,0x00,0x00,0x00, +0xa9,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0xbb,0x00,0x00,0x00, +0xb9,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xbd,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0xbd,0x00,0x00,0x00,0xf5,0x00,0x07,0x00, +0x06,0x00,0x00,0x00,0x94,0x01,0x00,0x00,0x5e,0x00,0x00,0x00, +0x05,0x00,0x00,0x00,0x0b,0x01,0x00,0x00,0xbe,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x8a,0x00,0x00,0x00,0xc3,0x00,0x00,0x00, +0x89,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,0xc3,0x00,0x00,0x00, +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc5,0x00,0x00,0x00, +0xc4,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,0xb0,0x00,0x05,0x00, +0xc6,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,0x94,0x01,0x00,0x00, +0xc5,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xbf,0x00,0x00,0x00, +0xbe,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, +0xc7,0x00,0x00,0x00,0xbe,0x00,0x00,0x00,0xbf,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0xbe,0x00,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xca,0x00,0x00,0x00,0x94,0x01,0x00,0x00, +0xb4,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xcc,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0xa9,0x00,0x00,0x00, 0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xcd,0x00,0x00,0x00, -0xcb,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,0x86,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0xcd,0x00,0x00,0x00, -0xce,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xd2,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,0xce,0x00,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd3,0x00,0x00,0x00, -0xd2,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x82,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xd8,0x00,0x00,0x00,0xc6,0x00,0x00,0x00, -0xd2,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xdc,0x00,0x00,0x00,0x3c,0x01,0x00,0x00,0xce,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x50,0x01,0x00,0x00, -0xdc,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x41,0x00,0x07,0x00, -0x29,0x00,0x00,0x00,0x51,0x01,0x00,0x00,0x23,0x00,0x00,0x00, -0x25,0x00,0x00,0x00,0x50,0x01,0x00,0x00,0x25,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x52,0x01,0x00,0x00, -0x51,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00, -0x53,0x01,0x00,0x00,0x52,0x01,0x00,0x00,0x41,0x00,0x08,0x00, -0x32,0x00,0x00,0x00,0x57,0x01,0x00,0x00,0x23,0x00,0x00,0x00, -0x25,0x00,0x00,0x00,0x50,0x01,0x00,0x00,0x31,0x00,0x00,0x00, -0x31,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x19,0x00,0x00,0x00, -0x58,0x01,0x00,0x00,0x57,0x01,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x59,0x01,0x00,0x00,0x58,0x01,0x00,0x00, -0xc4,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5a,0x01,0x00,0x00, -0x59,0x01,0x00,0x00,0x36,0x00,0x00,0x00,0x41,0x00,0x08,0x00, -0x32,0x00,0x00,0x00,0x5e,0x01,0x00,0x00,0x23,0x00,0x00,0x00, -0x25,0x00,0x00,0x00,0x50,0x01,0x00,0x00,0x31,0x00,0x00,0x00, -0x25,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x19,0x00,0x00,0x00, -0x5f,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x60,0x01,0x00,0x00,0x5f,0x01,0x00,0x00, -0xc5,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x61,0x01,0x00,0x00, -0x5a,0x01,0x00,0x00,0x60,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x64,0x01,0x00,0x00,0x61,0x01,0x00,0x00, -0xd3,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x65,0x01,0x00,0x00,0x64,0x01,0x00,0x00,0x45,0x00,0x00,0x00, -0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x66,0x01,0x00,0x00, -0x65,0x01,0x00,0x00,0x1d,0x00,0x00,0x00,0x7c,0x00,0x04,0x00, -0x24,0x00,0x00,0x00,0x67,0x01,0x00,0x00,0x66,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6a,0x01,0x00,0x00, -0xd3,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0xc2,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x6b,0x01,0x00,0x00,0x61,0x01,0x00,0x00, -0x6a,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x6c,0x01,0x00,0x00,0x6b,0x01,0x00,0x00,0x1d,0x00,0x00,0x00, -0x7c,0x00,0x04,0x00,0x24,0x00,0x00,0x00,0x6d,0x01,0x00,0x00, -0x6c,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x57,0x00,0x00,0x00, -0x73,0x01,0x00,0x00,0x23,0x00,0x00,0x00,0x25,0x00,0x00,0x00, -0x50,0x01,0x00,0x00,0x55,0x00,0x00,0x00,0xd3,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x1c,0x00,0x00,0x00,0x74,0x01,0x00,0x00, -0x73,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x75,0x01,0x00,0x00,0x74,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x77,0x01,0x00,0x00,0x75,0x01,0x00,0x00, -0x5c,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x7a,0x01,0x00,0x00,0x67,0x01,0x00,0x00,0xc5,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x7b,0x01,0x00,0x00,0x77,0x01,0x00,0x00, -0x7a,0x01,0x00,0x00,0x70,0x00,0x04,0x00,0x08,0x00,0x00,0x00, -0x7c,0x01,0x00,0x00,0x7b,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x7e,0x01,0x00,0x00,0x75,0x01,0x00,0x00, -0x45,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x81,0x01,0x00,0x00,0x6d,0x01,0x00,0x00,0xc5,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x82,0x01,0x00,0x00,0x7e,0x01,0x00,0x00, -0x81,0x01,0x00,0x00,0x70,0x00,0x04,0x00,0x08,0x00,0x00,0x00, -0x83,0x01,0x00,0x00,0x82,0x01,0x00,0x00,0x50,0x00,0x05,0x00, -0x09,0x00,0x00,0x00,0x84,0x01,0x00,0x00,0x7c,0x01,0x00,0x00, -0x83,0x01,0x00,0x00,0x83,0x00,0x05,0x00,0x09,0x00,0x00,0x00, -0x86,0x01,0x00,0x00,0x84,0x01,0x00,0x00,0x90,0x01,0x00,0x00, -0x8e,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0x88,0x01,0x00,0x00, -0x86,0x01,0x00,0x00,0x53,0x01,0x00,0x00,0x51,0x00,0x05,0x00, -0x08,0x00,0x00,0x00,0xe5,0x00,0x00,0x00,0x88,0x01,0x00,0x00, -0x00,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xec,0x00,0x00,0x00,0x43,0x01,0x00,0x00,0xd8,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xee,0x00,0x00,0x00, -0xec,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,0x41,0x00,0x06,0x00, -0xef,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0xe9,0x00,0x00,0x00, -0x25,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x08,0x00,0x00,0x00,0xf1,0x00,0x00,0x00,0xf0,0x00,0x00,0x00, -0x51,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0xf4,0x00,0x00,0x00, -0x88,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,0xee,0x00,0x00,0x00, -0x1d,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xef,0x00,0x00,0x00, -0xfb,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,0x25,0x00,0x00,0x00, -0xfa,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, -0xfc,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0x85,0x00,0x05,0x00, -0x08,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,0xf4,0x00,0x00,0x00, -0xfc,0x00,0x00,0x00,0x0c,0x00,0x08,0x00,0x08,0x00,0x00,0x00, -0xfe,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0xe5,0x00,0x00,0x00,0xf1,0x00,0x00,0x00,0xfd,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x00,0x01,0x00,0x00, -0xb4,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00, -0x01,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0xfe,0x00,0x00,0x00, -0x3e,0x00,0x03,0x00,0xb4,0x00,0x00,0x00,0x01,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x04,0x01,0x00,0x00, -0x8d,0x01,0x00,0x00,0x1a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, -0xb6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xb8,0x00,0x00,0x00, +0xca,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,0xa5,0x00,0x00,0x00, +0xc4,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xd4,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,0xcd,0x00,0x00,0x00, +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd6,0x00,0x00,0x00, +0xd4,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0x89,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xd9,0x00,0x00,0x00,0xcd,0x00,0x00,0x00, +0xd5,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xda,0x00,0x00,0x00,0xd9,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, +0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdf,0x00,0x00,0x00, +0xcd,0x00,0x00,0x00,0xd9,0x00,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xe3,0x00,0x00,0x00,0x43,0x01,0x00,0x00, +0xd5,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x57,0x01,0x00,0x00,0xe3,0x00,0x00,0x00,0xd6,0x00,0x00,0x00, +0x41,0x00,0x07,0x00,0x29,0x00,0x00,0x00,0x58,0x01,0x00,0x00, +0x23,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x57,0x01,0x00,0x00, +0x25,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x18,0x00,0x00,0x00, +0x59,0x01,0x00,0x00,0x58,0x01,0x00,0x00,0x73,0x00,0x04,0x00, +0x08,0x00,0x00,0x00,0x5a,0x01,0x00,0x00,0x59,0x01,0x00,0x00, +0x41,0x00,0x08,0x00,0x32,0x00,0x00,0x00,0x5e,0x01,0x00,0x00, +0x23,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x57,0x01,0x00,0x00, +0x31,0x00,0x00,0x00,0x31,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x19,0x00,0x00,0x00,0x5f,0x01,0x00,0x00,0x5e,0x01,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x60,0x01,0x00,0x00, +0x5f,0x01,0x00,0x00,0xc4,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x61,0x01,0x00,0x00,0x60,0x01,0x00,0x00,0x36,0x00,0x00,0x00, +0x41,0x00,0x08,0x00,0x32,0x00,0x00,0x00,0x65,0x01,0x00,0x00, +0x23,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x57,0x01,0x00,0x00, +0x31,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x19,0x00,0x00,0x00,0x66,0x01,0x00,0x00,0x65,0x01,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x67,0x01,0x00,0x00, +0x66,0x01,0x00,0x00,0xc5,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x68,0x01,0x00,0x00,0x61,0x01,0x00,0x00,0x67,0x01,0x00,0x00, +0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6b,0x01,0x00,0x00, +0x68,0x01,0x00,0x00,0xda,0x00,0x00,0x00,0xc4,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x6c,0x01,0x00,0x00,0x6b,0x01,0x00,0x00, +0x45,0x00,0x00,0x00,0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x6d,0x01,0x00,0x00,0x6c,0x01,0x00,0x00,0x1d,0x00,0x00,0x00, +0x7c,0x00,0x04,0x00,0x24,0x00,0x00,0x00,0x6e,0x01,0x00,0x00, +0x6d,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x71,0x01,0x00,0x00,0xda,0x00,0x00,0x00,0x4b,0x00,0x00,0x00, +0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x72,0x01,0x00,0x00, +0x68,0x01,0x00,0x00,0x71,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x73,0x01,0x00,0x00,0x72,0x01,0x00,0x00, +0x1d,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x24,0x00,0x00,0x00, +0x74,0x01,0x00,0x00,0x73,0x01,0x00,0x00,0x41,0x00,0x08,0x00, +0x57,0x00,0x00,0x00,0x7a,0x01,0x00,0x00,0x23,0x00,0x00,0x00, +0x25,0x00,0x00,0x00,0x57,0x01,0x00,0x00,0x55,0x00,0x00,0x00, +0xda,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x1c,0x00,0x00,0x00, +0x7b,0x01,0x00,0x00,0x7a,0x01,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x7c,0x01,0x00,0x00,0x7b,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7e,0x01,0x00,0x00, +0x7c,0x01,0x00,0x00,0x5c,0x00,0x00,0x00,0x7c,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x81,0x01,0x00,0x00,0x6e,0x01,0x00,0x00, +0xc5,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x82,0x01,0x00,0x00, +0x7e,0x01,0x00,0x00,0x81,0x01,0x00,0x00,0x70,0x00,0x04,0x00, +0x08,0x00,0x00,0x00,0x83,0x01,0x00,0x00,0x82,0x01,0x00,0x00, +0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x85,0x01,0x00,0x00, +0x7c,0x01,0x00,0x00,0x45,0x00,0x00,0x00,0x7c,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x88,0x01,0x00,0x00,0x74,0x01,0x00,0x00, +0xc5,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x89,0x01,0x00,0x00, +0x85,0x01,0x00,0x00,0x88,0x01,0x00,0x00,0x70,0x00,0x04,0x00, +0x08,0x00,0x00,0x00,0x8a,0x01,0x00,0x00,0x89,0x01,0x00,0x00, +0x50,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0x8b,0x01,0x00,0x00, +0x83,0x01,0x00,0x00,0x8a,0x01,0x00,0x00,0x83,0x00,0x05,0x00, +0x09,0x00,0x00,0x00,0x8d,0x01,0x00,0x00,0x8b,0x01,0x00,0x00, +0x97,0x01,0x00,0x00,0x8e,0x00,0x05,0x00,0x09,0x00,0x00,0x00, +0x8f,0x01,0x00,0x00,0x8d,0x01,0x00,0x00,0x5a,0x01,0x00,0x00, +0x51,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0xec,0x00,0x00,0x00, +0x8f,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,0x4a,0x01,0x00,0x00, +0xdf,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xf5,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,0xda,0x00,0x00,0x00, +0x41,0x00,0x06,0x00,0xf6,0x00,0x00,0x00,0xf7,0x00,0x00,0x00, +0xf0,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0xf5,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xf8,0x00,0x00,0x00, +0xf7,0x00,0x00,0x00,0x51,0x00,0x05,0x00,0x08,0x00,0x00,0x00, +0xfb,0x00,0x00,0x00,0x8f,0x01,0x00,0x00,0x01,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x01,0x01,0x00,0x00, +0xf5,0x00,0x00,0x00,0x1d,0x00,0x00,0x00,0x41,0x00,0x06,0x00, +0xf6,0x00,0x00,0x00,0x02,0x01,0x00,0x00,0xf0,0x00,0x00,0x00, +0x25,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0x08,0x00,0x00,0x00,0x03,0x01,0x00,0x00,0x02,0x01,0x00,0x00, +0x85,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0x04,0x01,0x00,0x00, +0xfb,0x00,0x00,0x00,0x03,0x01,0x00,0x00,0x0c,0x00,0x08,0x00, +0x08,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0xec,0x00,0x00,0x00,0xf8,0x00,0x00,0x00, +0x04,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0x07,0x01,0x00,0x00,0xbb,0x00,0x00,0x00,0x81,0x00,0x05,0x00, +0x08,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x07,0x01,0x00,0x00, +0x05,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xbb,0x00,0x00,0x00, +0x08,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x0b,0x01,0x00,0x00,0x94,0x01,0x00,0x00,0x1a,0x00,0x00,0x00, +0xf9,0x00,0x02,0x00,0xbd,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xbf,0x00,0x00,0x00,0xe0,0x00,0x04,0x00,0x1a,0x00,0x00,0x00, +0x1a,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,0xf9,0x00,0x02,0x00, +0x0f,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x0f,0x01,0x00,0x00, +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x95,0x01,0x00,0x00, +0x0e,0x01,0x00,0x00,0xbf,0x00,0x00,0x00,0x26,0x01,0x00,0x00, +0x12,0x01,0x00,0x00,0xac,0x00,0x05,0x00,0xc6,0x00,0x00,0x00, +0x15,0x01,0x00,0x00,0x95,0x01,0x00,0x00,0x5e,0x00,0x00,0x00, +0xf6,0x00,0x04,0x00,0x11,0x01,0x00,0x00,0x12,0x01,0x00,0x00, +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x15,0x01,0x00,0x00, +0x10,0x01,0x00,0x00,0x11,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, +0x10,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc6,0x00,0x00,0x00, +0x18,0x01,0x00,0x00,0xa9,0x00,0x00,0x00,0x95,0x01,0x00,0x00, +0xf7,0x00,0x03,0x00,0x1a,0x01,0x00,0x00,0x00,0x00,0x00,0x00, +0xfa,0x00,0x04,0x00,0x18,0x01,0x00,0x00,0x19,0x01,0x00,0x00, +0x1a,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x19,0x01,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1e,0x01,0x00,0x00, +0xa9,0x00,0x00,0x00,0x95,0x01,0x00,0x00,0x41,0x00,0x05,0x00, +0xba,0x00,0x00,0x00,0x1f,0x01,0x00,0x00,0xb7,0x00,0x00,0x00, +0x1e,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0x20,0x01,0x00,0x00,0x1f,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0x08,0x00,0x00,0x00,0x22,0x01,0x00,0x00,0xbb,0x00,0x00,0x00, +0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0x23,0x01,0x00,0x00, +0x22,0x01,0x00,0x00,0x20,0x01,0x00,0x00,0x3e,0x00,0x03,0x00, +0xbb,0x00,0x00,0x00,0x23,0x01,0x00,0x00,0xf9,0x00,0x02,0x00, +0x1a,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x1a,0x01,0x00,0x00, 0xe0,0x00,0x04,0x00,0x1a,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, -0x05,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x08,0x01,0x00,0x00, -0xf8,0x00,0x02,0x00,0x08,0x01,0x00,0x00,0xf5,0x00,0x07,0x00, -0x06,0x00,0x00,0x00,0x8e,0x01,0x00,0x00,0x07,0x01,0x00,0x00, -0xb8,0x00,0x00,0x00,0x1f,0x01,0x00,0x00,0x0b,0x01,0x00,0x00, -0xac,0x00,0x05,0x00,0xbf,0x00,0x00,0x00,0x0e,0x01,0x00,0x00, -0x8e,0x01,0x00,0x00,0x5e,0x00,0x00,0x00,0xf6,0x00,0x04,0x00, -0x0a,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,0x01,0x00,0x00,0x00, -0xfa,0x00,0x04,0x00,0x0e,0x01,0x00,0x00,0x09,0x01,0x00,0x00, -0x0a,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x09,0x01,0x00,0x00, -0xb0,0x00,0x05,0x00,0xbf,0x00,0x00,0x00,0x11,0x01,0x00,0x00, -0xa2,0x00,0x00,0x00,0x8e,0x01,0x00,0x00,0xf7,0x00,0x03,0x00, -0x13,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, -0x11,0x01,0x00,0x00,0x12,0x01,0x00,0x00,0x13,0x01,0x00,0x00, -0xf8,0x00,0x02,0x00,0x12,0x01,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x17,0x01,0x00,0x00,0xa2,0x00,0x00,0x00, -0x8e,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0xb3,0x00,0x00,0x00, -0x18,0x01,0x00,0x00,0xb0,0x00,0x00,0x00,0x17,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x19,0x01,0x00,0x00, -0x18,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, -0x1b,0x01,0x00,0x00,0xb4,0x00,0x00,0x00,0x81,0x00,0x05,0x00, -0x08,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,0x1b,0x01,0x00,0x00, -0x19,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xb4,0x00,0x00,0x00, -0x1c,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x13,0x01,0x00,0x00, -0xf8,0x00,0x02,0x00,0x13,0x01,0x00,0x00,0xe0,0x00,0x04,0x00, -0x1a,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x05,0x01,0x00,0x00, -0xf9,0x00,0x02,0x00,0x0b,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, -0x0b,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x1f,0x01,0x00,0x00,0x8e,0x01,0x00,0x00,0x31,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0x08,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, -0x0a,0x01,0x00,0x00,0xaa,0x00,0x05,0x00,0xbf,0x00,0x00,0x00, -0x21,0x01,0x00,0x00,0xa2,0x00,0x00,0x00,0x5e,0x00,0x00,0x00, -0xf7,0x00,0x03,0x00,0x23,0x01,0x00,0x00,0x00,0x00,0x00,0x00, -0xfa,0x00,0x04,0x00,0x21,0x01,0x00,0x00,0x22,0x01,0x00,0x00, -0x23,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x22,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2a,0x01,0x00,0x00, -0x47,0x01,0x00,0x00,0x9e,0x00,0x00,0x00,0x41,0x00,0x05,0x00, -0xb3,0x00,0x00,0x00,0x2b,0x01,0x00,0x00,0xb0,0x00,0x00,0x00, -0x25,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, -0x2c,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,0x41,0x00,0x06,0x00, -0xef,0x00,0x00,0x00,0x2d,0x01,0x00,0x00,0x27,0x01,0x00,0x00, -0x25,0x00,0x00,0x00,0x2a,0x01,0x00,0x00,0x3e,0x00,0x03,0x00, -0x2d,0x01,0x00,0x00,0x2c,0x01,0x00,0x00,0xf9,0x00,0x02,0x00, -0x23,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x23,0x01,0x00,0x00, -0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00, +0x0c,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x12,0x01,0x00,0x00, +0xf8,0x00,0x02,0x00,0x12,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x26,0x01,0x00,0x00,0x95,0x01,0x00,0x00, +0x31,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x0f,0x01,0x00,0x00, +0xf8,0x00,0x02,0x00,0x11,0x01,0x00,0x00,0xaa,0x00,0x05,0x00, +0xc6,0x00,0x00,0x00,0x28,0x01,0x00,0x00,0xa9,0x00,0x00,0x00, +0x5e,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0x2a,0x01,0x00,0x00, +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x28,0x01,0x00,0x00, +0x29,0x01,0x00,0x00,0x2a,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, +0x29,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x31,0x01,0x00,0x00,0x4e,0x01,0x00,0x00,0xa5,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0xba,0x00,0x00,0x00,0x32,0x01,0x00,0x00, +0xb7,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x08,0x00,0x00,0x00,0x33,0x01,0x00,0x00,0x32,0x01,0x00,0x00, +0x41,0x00,0x06,0x00,0xf6,0x00,0x00,0x00,0x34,0x01,0x00,0x00, +0x2e,0x01,0x00,0x00,0x25,0x00,0x00,0x00,0x31,0x01,0x00,0x00, +0x3e,0x00,0x03,0x00,0x34,0x01,0x00,0x00,0x33,0x01,0x00,0x00, +0xf9,0x00,0x02,0x00,0x2a,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, +0x2a,0x01,0x00,0x00,0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00, + }; -const uint64_t mul_mat_vec_id_q5_0_f32_len = 4364; +const uint64_t mul_mat_vec_id_q5_0_f32_len = 4512; unsigned char mul_mat_vec_id_q5_1_f32_data[] = { 0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00, -0x89,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, +0x90,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, 0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x51,0x11,0x00,0x00, 0x11,0x00,0x02,0x00,0x60,0x11,0x00,0x00,0x0b,0x00,0x06,0x00, 0x01,0x00,0x00,0x00,0x47,0x4c,0x53,0x4c,0x2e,0x73,0x74,0x64, 0x2e,0x34,0x35,0x30,0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00, -0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0f,0x00,0x0e,0x00, +0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0f,0x00,0x0f,0x00, 0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e, 0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x73,0x00,0x00,0x00, 0x7b,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x96,0x00,0x00,0x00, -0x9a,0x00,0x00,0x00,0xaa,0x00,0x00,0x00,0xe4,0x00,0x00,0x00, -0x22,0x01,0x00,0x00,0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00, -0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x1c,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x1c,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x1c,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x1d,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x04,0x00, -0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, -0x1e,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x20,0x00,0x00,0x00,0x21,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x73,0x00,0x00,0x00, -0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x78,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0x79,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x79,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0x79,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x7b,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x7b,0x00,0x00,0x00, -0x21,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x82,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x82,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x82,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x82,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x82,0x00,0x00,0x00,0x05,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x82,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x82,0x00,0x00,0x00, -0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x82,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x47,0x00,0x03,0x00, -0x82,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x96,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x9a,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, -0x1b,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xa7,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xe1,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0xe2,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xe2,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0xe2,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xe4,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xe4,0x00,0x00,0x00, -0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x1f,0x01,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0x20,0x01,0x00,0x00,0x00,0x00,0x00,0x00, -0x19,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x20,0x01,0x00,0x00, +0x99,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,0xb2,0x00,0x00,0x00, +0xeb,0x00,0x00,0x00,0x29,0x01,0x00,0x00,0x10,0x00,0x06,0x00, +0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x1c,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x1c,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x1c,0x00,0x00,0x00,0x03,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x1d,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x48,0x00,0x04,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x1e,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0x20,0x01,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x22,0x01,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x22,0x01,0x00,0x00, -0x21,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x29,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x2a,0x01,0x00,0x00,0x0b,0x00,0x00,0x00, -0x19,0x00,0x00,0x00,0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00, -0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x15,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0x08,0x00,0x00,0x00, -0x20,0x00,0x00,0x00,0x17,0x00,0x04,0x00,0x09,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x16,0x00,0x03,0x00, -0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x15,0x00,0x04,0x00, -0x19,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, -0x10,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x19,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x1e,0x00,0x06,0x00, -0x1c,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x18,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, -0x1d,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, -0x1e,0x00,0x00,0x00,0x1d,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x1f,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x1e,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x21,0x00,0x00,0x00, -0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x21,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x26,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, -0x2e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x21,0x00,0x00,0x00,0x36,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x37,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, -0x40,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x46,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x50,0x00,0x00,0x00, -0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x52,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x57,0x00,0x00,0x00,0x0f,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x62,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x17,0x00,0x04,0x00, -0x71,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x72,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x71,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x72,0x00,0x00,0x00, -0x73,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x74,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x1d,0x00,0x03,0x00,0x78,0x00,0x00,0x00,0x21,0x00,0x00,0x00, -0x1e,0x00,0x03,0x00,0x79,0x00,0x00,0x00,0x78,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x7a,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x79,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x7a,0x00,0x00,0x00, -0x7b,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x7d,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x21,0x00,0x00,0x00, -0x1e,0x00,0x0b,0x00,0x82,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x47,0x00,0x03,0x00,0x1e,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x20,0x00,0x00,0x00, +0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x73,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x78,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x79,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x79,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x79,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x7b,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x7b,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x03,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x82,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x82,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x82,0x00,0x00,0x00,0x03,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x82,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x82,0x00,0x00,0x00, +0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x82,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x82,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x82,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00, +0x47,0x00,0x03,0x00,0x82,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x96,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, +0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x99,0x00,0x00,0x00, +0x0b,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xa2,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xaf,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xe8,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00, +0xe9,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0xe9,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0xe9,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xeb,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xeb,0x00,0x00,0x00,0x21,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x26,0x01,0x00,0x00, +0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00, +0x27,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x27,0x01,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0x27,0x01,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x29,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x29,0x01,0x00,0x00,0x21,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x30,0x01,0x00,0x00, +0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x31,0x01,0x00,0x00,0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00, +0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00, +0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x16,0x00,0x03,0x00,0x08,0x00,0x00,0x00,0x20,0x00,0x00,0x00, +0x17,0x00,0x04,0x00,0x09,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0x18,0x00,0x00,0x00, +0x10,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x19,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x10,0x00,0x00,0x00, +0x1c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x19,0x00,0x00,0x00, +0x1a,0x00,0x00,0x00,0x1e,0x00,0x06,0x00,0x1c,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x1b,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x1d,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x1e,0x00,0x00,0x00, +0x1d,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x1f,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0x1f,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x15,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x20,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x26,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x2e,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, +0x36,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x37,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x40,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x46,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x21,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x03,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x52,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x19,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x57,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x62,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x17,0x00,0x04,0x00,0x71,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x72,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x71,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x72,0x00,0x00,0x00,0x73,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x74,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, +0x78,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, +0x79,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x7a,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x79,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x7a,0x00,0x00,0x00,0x7b,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x7d,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x1e,0x00,0x0b,0x00, +0x82,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x83,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x82,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0x83,0x00,0x00,0x00,0x84,0x00,0x00,0x00, -0x09,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x85,0x00,0x00,0x00, -0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x21,0x00,0x00,0x00,0x8a,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0x72,0x00,0x00,0x00,0x96,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x72,0x00,0x00,0x00, -0x9a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x1c,0x00,0x04,0x00,0xa8,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0xa7,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xa9,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0xa9,0x00,0x00,0x00,0xaa,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xac,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xad,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x14,0x00,0x02,0x00, -0xb9,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xbe,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x1d,0x00,0x03,0x00,0xe1,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x1e,0x00,0x03,0x00,0xe2,0x00,0x00,0x00,0xe1,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0xe3,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0xe2,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xe3,0x00,0x00,0x00, -0xe4,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0xea,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x00,0x01,0x00,0x00, +0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x83,0x00,0x00,0x00, +0x09,0x00,0x00,0x00,0x82,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0x83,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x09,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x85,0x00,0x00,0x00,0x09,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, +0x8a,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0x72,0x00,0x00,0x00,0x96,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x72,0x00,0x00,0x00,0x99,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x9c,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0x72,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xaf,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0xb0,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0xb1,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xb0,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0xb1,0x00,0x00,0x00,0xb2,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0xb4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0xb5,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x14,0x00,0x02,0x00,0xc1,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0x20,0x00,0x00,0x00, +0x1d,0x00,0x03,0x00,0xe8,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x1e,0x00,0x03,0x00,0xe9,0x00,0x00,0x00,0xe8,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0xea,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0xe9,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xea,0x00,0x00,0x00, +0xeb,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0xf1,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x07,0x01,0x00,0x00, 0x08,0x01,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00, -0x02,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0xa7,0x00,0x00,0x00, -0xbe,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x1f,0x01,0x00,0x00, -0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x20,0x01,0x00,0x00, -0x1f,0x01,0x00,0x00,0x20,0x00,0x04,0x00,0x21,0x01,0x00,0x00, -0x0c,0x00,0x00,0x00,0x20,0x01,0x00,0x00,0x3b,0x00,0x04,0x00, -0x21,0x01,0x00,0x00,0x22,0x01,0x00,0x00,0x0c,0x00,0x00,0x00, -0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x29,0x01,0x00,0x00, +0x09,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0xaf,0x00,0x00,0x00, +0x9c,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x26,0x01,0x00,0x00, +0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x27,0x01,0x00,0x00, +0x26,0x01,0x00,0x00,0x20,0x00,0x04,0x00,0x28,0x01,0x00,0x00, +0x0c,0x00,0x00,0x00,0x27,0x01,0x00,0x00,0x3b,0x00,0x04,0x00, +0x28,0x01,0x00,0x00,0x29,0x01,0x00,0x00,0x0c,0x00,0x00,0x00, +0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x30,0x01,0x00,0x00, 0x01,0x00,0x00,0x00,0x33,0x00,0x06,0x00,0x71,0x00,0x00,0x00, -0x2a,0x01,0x00,0x00,0x29,0x01,0x00,0x00,0x62,0x00,0x00,0x00, +0x31,0x01,0x00,0x00,0x30,0x01,0x00,0x00,0x62,0x00,0x00,0x00, 0x62,0x00,0x00,0x00,0x36,0x00,0x05,0x00,0x02,0x00,0x00,0x00, 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00, 0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00,0x41,0x00,0x05,0x00, 0x74,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x96,0x00,0x00,0x00, 0x59,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, 0x98,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x41,0x00,0x05,0x00, -0x74,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,0x9a,0x00,0x00,0x00, +0x74,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,0x99,0x00,0x00,0x00, 0x59,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x9c,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,0x41,0x00,0x05,0x00, -0x74,0x00,0x00,0x00,0x2e,0x01,0x00,0x00,0x73,0x00,0x00,0x00, -0x62,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x2f,0x01,0x00,0x00,0x2e,0x01,0x00,0x00,0x41,0x00,0x06,0x00, -0x7d,0x00,0x00,0x00,0x31,0x01,0x00,0x00,0x7b,0x00,0x00,0x00, -0x22,0x00,0x00,0x00,0x2f,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0x21,0x00,0x00,0x00,0x32,0x01,0x00,0x00,0x31,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x33,0x01,0x00,0x00, -0x32,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x85,0x00,0x00,0x00, -0x35,0x01,0x00,0x00,0x84,0x00,0x00,0x00,0x40,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x36,0x01,0x00,0x00, -0x35,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x37,0x01,0x00,0x00,0x33,0x01,0x00,0x00,0x36,0x01,0x00,0x00, -0x41,0x00,0x05,0x00,0x85,0x00,0x00,0x00,0x39,0x01,0x00,0x00, -0x84,0x00,0x00,0x00,0x8a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x3a,0x01,0x00,0x00,0x39,0x01,0x00,0x00, -0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3b,0x01,0x00,0x00, -0x2f,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,0x41,0x00,0x05,0x00, +0x9b,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0x74,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0x96,0x00,0x00,0x00, +0x9c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x9e,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x9f,0x00,0x00,0x00,0x9b,0x00,0x00,0x00, +0x9e,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xa0,0x00,0x00,0x00,0x98,0x00,0x00,0x00,0x9f,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x74,0x00,0x00,0x00,0xa3,0x00,0x00,0x00, +0xa2,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,0xa3,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x74,0x00,0x00,0x00,0x35,0x01,0x00,0x00, +0x73,0x00,0x00,0x00,0x62,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x36,0x01,0x00,0x00,0x35,0x01,0x00,0x00, +0x41,0x00,0x06,0x00,0x7d,0x00,0x00,0x00,0x38,0x01,0x00,0x00, +0x7b,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x36,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x39,0x01,0x00,0x00, +0x38,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x3a,0x01,0x00,0x00,0x39,0x01,0x00,0x00,0x41,0x00,0x05,0x00, 0x85,0x00,0x00,0x00,0x3c,0x01,0x00,0x00,0x84,0x00,0x00,0x00, -0x36,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x40,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, 0x3d,0x01,0x00,0x00,0x3c,0x01,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x3e,0x01,0x00,0x00,0x3b,0x01,0x00,0x00, +0x06,0x00,0x00,0x00,0x3e,0x01,0x00,0x00,0x3a,0x01,0x00,0x00, 0x3d,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x85,0x00,0x00,0x00, -0x40,0x01,0x00,0x00,0x84,0x00,0x00,0x00,0x50,0x00,0x00,0x00, +0x40,0x01,0x00,0x00,0x84,0x00,0x00,0x00,0x8a,0x00,0x00,0x00, 0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x41,0x01,0x00,0x00, -0x40,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x42,0x01,0x00,0x00,0x2f,0x01,0x00,0x00,0x41,0x01,0x00,0x00, -0x41,0x00,0x05,0x00,0xad,0x00,0x00,0x00,0xae,0x00,0x00,0x00, -0xaa,0x00,0x00,0x00,0x9c,0x00,0x00,0x00,0x3e,0x00,0x03,0x00, -0xae,0x00,0x00,0x00,0xac,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, -0xb0,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xb0,0x00,0x00,0x00, -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x87,0x01,0x00,0x00, -0x59,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0xff,0x00,0x00,0x00, -0xb1,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x85,0x00,0x00,0x00, -0xb6,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xb7,0x00,0x00,0x00, -0xb6,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xb8,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,0xa7,0x00,0x00,0x00, -0xb0,0x00,0x05,0x00,0xb9,0x00,0x00,0x00,0xba,0x00,0x00,0x00, -0x87,0x01,0x00,0x00,0xb8,0x00,0x00,0x00,0xf6,0x00,0x04,0x00, -0xb2,0x00,0x00,0x00,0xb1,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0xfa,0x00,0x04,0x00,0xba,0x00,0x00,0x00,0xb1,0x00,0x00,0x00, -0xb2,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xb1,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbd,0x00,0x00,0x00, -0x87,0x01,0x00,0x00,0xa7,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0xbe,0x00,0x00,0x00, -0x9c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xc1,0x00,0x00,0x00,0xbd,0x00,0x00,0x00,0xc0,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc6,0x00,0x00,0x00, -0x98,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0xc6,0x00,0x00,0x00, -0xc1,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xca,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0xc9,0x00,0x00,0x00, -0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xcd,0x00,0x00,0x00, -0xc1,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0x86,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xce,0x00,0x00,0x00,0xcd,0x00,0x00,0x00, -0xbe,0x00,0x00,0x00,0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xd3,0x00,0x00,0x00,0xc1,0x00,0x00,0x00,0xcd,0x00,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd7,0x00,0x00,0x00, -0x37,0x01,0x00,0x00,0xc9,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x4c,0x01,0x00,0x00,0xd7,0x00,0x00,0x00, -0xca,0x00,0x00,0x00,0x41,0x00,0x07,0x00,0x26,0x00,0x00,0x00, -0x4d,0x01,0x00,0x00,0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x4c,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x18,0x00,0x00,0x00,0x4e,0x01,0x00,0x00,0x4d,0x01,0x00,0x00, -0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x4f,0x01,0x00,0x00, -0x4e,0x01,0x00,0x00,0x41,0x00,0x07,0x00,0x26,0x00,0x00,0x00, -0x53,0x01,0x00,0x00,0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x4c,0x01,0x00,0x00,0x2e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x18,0x00,0x00,0x00,0x54,0x01,0x00,0x00,0x53,0x01,0x00,0x00, -0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x55,0x01,0x00,0x00, -0x54,0x01,0x00,0x00,0x41,0x00,0x07,0x00,0x37,0x00,0x00,0x00, -0x59,0x01,0x00,0x00,0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x4c,0x01,0x00,0x00,0x36,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x5a,0x01,0x00,0x00,0x59,0x01,0x00,0x00, -0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5d,0x01,0x00,0x00, -0x5a,0x01,0x00,0x00,0xce,0x00,0x00,0x00,0xc4,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x5e,0x01,0x00,0x00,0x5d,0x01,0x00,0x00, -0x40,0x00,0x00,0x00,0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x5f,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,0x1a,0x00,0x00,0x00, -0x7c,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x60,0x01,0x00,0x00, -0x5f,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x63,0x01,0x00,0x00,0xce,0x00,0x00,0x00,0x46,0x00,0x00,0x00, -0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x64,0x01,0x00,0x00, -0x5a,0x01,0x00,0x00,0x63,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x65,0x01,0x00,0x00,0x64,0x01,0x00,0x00, +0x40,0x01,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x42,0x01,0x00,0x00,0x36,0x01,0x00,0x00,0x41,0x01,0x00,0x00, +0x41,0x00,0x05,0x00,0x85,0x00,0x00,0x00,0x43,0x01,0x00,0x00, +0x84,0x00,0x00,0x00,0x36,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x44,0x01,0x00,0x00,0x43,0x01,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x45,0x01,0x00,0x00, +0x42,0x01,0x00,0x00,0x44,0x01,0x00,0x00,0x41,0x00,0x05,0x00, +0x85,0x00,0x00,0x00,0x47,0x01,0x00,0x00,0x84,0x00,0x00,0x00, +0x50,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x48,0x01,0x00,0x00,0x47,0x01,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x49,0x01,0x00,0x00,0x36,0x01,0x00,0x00, +0x48,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0xb5,0x00,0x00,0x00, +0xb6,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,0xa4,0x00,0x00,0x00, +0x3e,0x00,0x03,0x00,0xb6,0x00,0x00,0x00,0xb4,0x00,0x00,0x00, +0xf9,0x00,0x02,0x00,0xb8,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xb8,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00, +0x8e,0x01,0x00,0x00,0x59,0x00,0x00,0x00,0x05,0x00,0x00,0x00, +0x06,0x01,0x00,0x00,0xb9,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0x85,0x00,0x00,0x00,0xbe,0x00,0x00,0x00,0x84,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xbf,0x00,0x00,0x00,0xbe,0x00,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0xbf,0x00,0x00,0x00, +0xaf,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00, +0xc2,0x00,0x00,0x00,0x8e,0x01,0x00,0x00,0xc0,0x00,0x00,0x00, +0xf6,0x00,0x04,0x00,0xba,0x00,0x00,0x00,0xb9,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xc2,0x00,0x00,0x00, +0xb9,0x00,0x00,0x00,0xba,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xb9,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xc5,0x00,0x00,0x00,0x8e,0x01,0x00,0x00,0xaf,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc7,0x00,0x00,0x00, +0x9c,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0xc5,0x00,0x00,0x00, +0xc7,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xcd,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0xbf,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xcf,0x00,0x00,0x00, +0xcd,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,0xcf,0x00,0x00,0x00, +0xd0,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xd4,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0xd0,0x00,0x00,0x00, +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd5,0x00,0x00,0x00, +0xd4,0x00,0x00,0x00,0x9c,0x00,0x00,0x00,0x82,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xda,0x00,0x00,0x00,0xc8,0x00,0x00,0x00, +0xd4,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xde,0x00,0x00,0x00,0x3e,0x01,0x00,0x00,0xd0,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x53,0x01,0x00,0x00, +0xde,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,0x41,0x00,0x07,0x00, +0x26,0x00,0x00,0x00,0x54,0x01,0x00,0x00,0x20,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x53,0x01,0x00,0x00,0x22,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x55,0x01,0x00,0x00, +0x54,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0x56,0x01,0x00,0x00,0x55,0x01,0x00,0x00,0x41,0x00,0x07,0x00, +0x26,0x00,0x00,0x00,0x5a,0x01,0x00,0x00,0x20,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x53,0x01,0x00,0x00,0x2e,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x5b,0x01,0x00,0x00, +0x5a,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0x5c,0x01,0x00,0x00,0x5b,0x01,0x00,0x00,0x41,0x00,0x07,0x00, +0x37,0x00,0x00,0x00,0x60,0x01,0x00,0x00,0x20,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x53,0x01,0x00,0x00,0x36,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x61,0x01,0x00,0x00, +0x60,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x64,0x01,0x00,0x00,0x61,0x01,0x00,0x00,0xd5,0x00,0x00,0x00, +0xc4,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x65,0x01,0x00,0x00, +0x64,0x01,0x00,0x00,0x40,0x00,0x00,0x00,0xc7,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x66,0x01,0x00,0x00,0x65,0x01,0x00,0x00, 0x1a,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x21,0x00,0x00,0x00, -0x66,0x01,0x00,0x00,0x65,0x01,0x00,0x00,0x41,0x00,0x08,0x00, -0x52,0x00,0x00,0x00,0x6c,0x01,0x00,0x00,0x20,0x00,0x00,0x00, -0x22,0x00,0x00,0x00,0x4c,0x01,0x00,0x00,0x50,0x00,0x00,0x00, -0xce,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x19,0x00,0x00,0x00, -0x6d,0x01,0x00,0x00,0x6c,0x01,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x6e,0x01,0x00,0x00,0x6d,0x01,0x00,0x00, -0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x70,0x01,0x00,0x00, -0x6e,0x01,0x00,0x00,0x57,0x00,0x00,0x00,0x7c,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x73,0x01,0x00,0x00,0x60,0x01,0x00,0x00, -0xc5,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x74,0x01,0x00,0x00, -0x70,0x01,0x00,0x00,0x73,0x01,0x00,0x00,0x70,0x00,0x04,0x00, -0x08,0x00,0x00,0x00,0x75,0x01,0x00,0x00,0x74,0x01,0x00,0x00, -0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x77,0x01,0x00,0x00, -0x6e,0x01,0x00,0x00,0x40,0x00,0x00,0x00,0x7c,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x7a,0x01,0x00,0x00,0x66,0x01,0x00,0x00, -0xc5,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7b,0x01,0x00,0x00, -0x77,0x01,0x00,0x00,0x7a,0x01,0x00,0x00,0x70,0x00,0x04,0x00, -0x08,0x00,0x00,0x00,0x7c,0x01,0x00,0x00,0x7b,0x01,0x00,0x00, -0x50,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0x7d,0x01,0x00,0x00, -0x75,0x01,0x00,0x00,0x7c,0x01,0x00,0x00,0x8e,0x00,0x05,0x00, -0x09,0x00,0x00,0x00,0x7f,0x01,0x00,0x00,0x7d,0x01,0x00,0x00, -0x4f,0x01,0x00,0x00,0x50,0x00,0x05,0x00,0x09,0x00,0x00,0x00, -0x81,0x01,0x00,0x00,0x55,0x01,0x00,0x00,0x55,0x01,0x00,0x00, -0x81,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0x82,0x01,0x00,0x00, -0x7f,0x01,0x00,0x00,0x81,0x01,0x00,0x00,0x51,0x00,0x05,0x00, -0x08,0x00,0x00,0x00,0xe0,0x00,0x00,0x00,0x82,0x01,0x00,0x00, -0x00,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xe7,0x00,0x00,0x00,0x3e,0x01,0x00,0x00,0xd3,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe9,0x00,0x00,0x00, -0xe7,0x00,0x00,0x00,0xce,0x00,0x00,0x00,0x41,0x00,0x06,0x00, -0xea,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0xe4,0x00,0x00,0x00, -0x22,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x08,0x00,0x00,0x00,0xec,0x00,0x00,0x00,0xeb,0x00,0x00,0x00, -0x51,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0xef,0x00,0x00,0x00, -0x82,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,0xe9,0x00,0x00,0x00, -0x1a,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xea,0x00,0x00,0x00, -0xf6,0x00,0x00,0x00,0xe4,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0xf5,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, -0xf7,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,0x85,0x00,0x05,0x00, -0x08,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0xef,0x00,0x00,0x00, -0xf7,0x00,0x00,0x00,0x0c,0x00,0x08,0x00,0x08,0x00,0x00,0x00, -0xf9,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0xe0,0x00,0x00,0x00,0xec,0x00,0x00,0x00,0xf8,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xfb,0x00,0x00,0x00, -0xae,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00, -0xfc,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0xf9,0x00,0x00,0x00, -0x3e,0x00,0x03,0x00,0xae,0x00,0x00,0x00,0xfc,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xff,0x00,0x00,0x00, -0x87,0x01,0x00,0x00,0xbe,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, -0xb0,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xb2,0x00,0x00,0x00, -0xe0,0x00,0x04,0x00,0xbe,0x00,0x00,0x00,0xbe,0x00,0x00,0x00, -0x00,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x03,0x01,0x00,0x00, -0xf8,0x00,0x02,0x00,0x03,0x01,0x00,0x00,0xf5,0x00,0x07,0x00, -0x06,0x00,0x00,0x00,0x88,0x01,0x00,0x00,0x02,0x01,0x00,0x00, -0xb2,0x00,0x00,0x00,0x1a,0x01,0x00,0x00,0x06,0x01,0x00,0x00, -0xac,0x00,0x05,0x00,0xb9,0x00,0x00,0x00,0x09,0x01,0x00,0x00, -0x88,0x01,0x00,0x00,0x59,0x00,0x00,0x00,0xf6,0x00,0x04,0x00, -0x05,0x01,0x00,0x00,0x06,0x01,0x00,0x00,0x01,0x00,0x00,0x00, -0xfa,0x00,0x04,0x00,0x09,0x01,0x00,0x00,0x04,0x01,0x00,0x00, -0x05,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x04,0x01,0x00,0x00, -0xb0,0x00,0x05,0x00,0xb9,0x00,0x00,0x00,0x0c,0x01,0x00,0x00, -0x9c,0x00,0x00,0x00,0x88,0x01,0x00,0x00,0xf7,0x00,0x03,0x00, -0x0e,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, -0x0c,0x01,0x00,0x00,0x0d,0x01,0x00,0x00,0x0e,0x01,0x00,0x00, -0xf8,0x00,0x02,0x00,0x0d,0x01,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x12,0x01,0x00,0x00,0x9c,0x00,0x00,0x00, -0x88,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0xad,0x00,0x00,0x00, -0x13,0x01,0x00,0x00,0xaa,0x00,0x00,0x00,0x12,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x14,0x01,0x00,0x00, -0x13,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, -0x16,0x01,0x00,0x00,0xae,0x00,0x00,0x00,0x81,0x00,0x05,0x00, -0x08,0x00,0x00,0x00,0x17,0x01,0x00,0x00,0x16,0x01,0x00,0x00, -0x14,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xae,0x00,0x00,0x00, -0x17,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x0e,0x01,0x00,0x00, -0xf8,0x00,0x02,0x00,0x0e,0x01,0x00,0x00,0xe0,0x00,0x04,0x00, -0xbe,0x00,0x00,0x00,0xbe,0x00,0x00,0x00,0x00,0x01,0x00,0x00, -0xf9,0x00,0x02,0x00,0x06,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, -0x06,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x1a,0x01,0x00,0x00,0x88,0x01,0x00,0x00,0x2e,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0x03,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, -0x05,0x01,0x00,0x00,0xaa,0x00,0x05,0x00,0xb9,0x00,0x00,0x00, -0x1c,0x01,0x00,0x00,0x9c,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0xf7,0x00,0x03,0x00,0x1e,0x01,0x00,0x00,0x00,0x00,0x00,0x00, -0xfa,0x00,0x04,0x00,0x1c,0x01,0x00,0x00,0x1d,0x01,0x00,0x00, -0x1e,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x1d,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x25,0x01,0x00,0x00, -0x42,0x01,0x00,0x00,0x98,0x00,0x00,0x00,0x41,0x00,0x05,0x00, -0xad,0x00,0x00,0x00,0x26,0x01,0x00,0x00,0xaa,0x00,0x00,0x00, -0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, -0x27,0x01,0x00,0x00,0x26,0x01,0x00,0x00,0x41,0x00,0x06,0x00, -0xea,0x00,0x00,0x00,0x28,0x01,0x00,0x00,0x22,0x01,0x00,0x00, -0x22,0x00,0x00,0x00,0x25,0x01,0x00,0x00,0x3e,0x00,0x03,0x00, -0x28,0x01,0x00,0x00,0x27,0x01,0x00,0x00,0xf9,0x00,0x02,0x00, -0x1e,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x1e,0x01,0x00,0x00, -0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00, +0x67,0x01,0x00,0x00,0x66,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x6a,0x01,0x00,0x00,0xd5,0x00,0x00,0x00, +0x46,0x00,0x00,0x00,0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x6b,0x01,0x00,0x00,0x61,0x01,0x00,0x00,0x6a,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6c,0x01,0x00,0x00, +0x6b,0x01,0x00,0x00,0x1a,0x00,0x00,0x00,0x7c,0x00,0x04,0x00, +0x21,0x00,0x00,0x00,0x6d,0x01,0x00,0x00,0x6c,0x01,0x00,0x00, +0x41,0x00,0x08,0x00,0x52,0x00,0x00,0x00,0x73,0x01,0x00,0x00, +0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x53,0x01,0x00,0x00, +0x50,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x19,0x00,0x00,0x00,0x74,0x01,0x00,0x00,0x73,0x01,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x75,0x01,0x00,0x00, +0x74,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x77,0x01,0x00,0x00,0x75,0x01,0x00,0x00,0x57,0x00,0x00,0x00, +0x7c,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x7a,0x01,0x00,0x00, +0x67,0x01,0x00,0x00,0xc5,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x7b,0x01,0x00,0x00,0x77,0x01,0x00,0x00,0x7a,0x01,0x00,0x00, +0x70,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x7c,0x01,0x00,0x00, +0x7b,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x7e,0x01,0x00,0x00,0x75,0x01,0x00,0x00,0x40,0x00,0x00,0x00, +0x7c,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x81,0x01,0x00,0x00, +0x6d,0x01,0x00,0x00,0xc5,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x82,0x01,0x00,0x00,0x7e,0x01,0x00,0x00,0x81,0x01,0x00,0x00, +0x70,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x83,0x01,0x00,0x00, +0x82,0x01,0x00,0x00,0x50,0x00,0x05,0x00,0x09,0x00,0x00,0x00, +0x84,0x01,0x00,0x00,0x7c,0x01,0x00,0x00,0x83,0x01,0x00,0x00, +0x8e,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0x86,0x01,0x00,0x00, +0x84,0x01,0x00,0x00,0x56,0x01,0x00,0x00,0x50,0x00,0x05,0x00, +0x09,0x00,0x00,0x00,0x88,0x01,0x00,0x00,0x5c,0x01,0x00,0x00, +0x5c,0x01,0x00,0x00,0x81,0x00,0x05,0x00,0x09,0x00,0x00,0x00, +0x89,0x01,0x00,0x00,0x86,0x01,0x00,0x00,0x88,0x01,0x00,0x00, +0x51,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0xe7,0x00,0x00,0x00, +0x89,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0x45,0x01,0x00,0x00, +0xda,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xf0,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0xd5,0x00,0x00,0x00, +0x41,0x00,0x06,0x00,0xf1,0x00,0x00,0x00,0xf2,0x00,0x00,0x00, +0xeb,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0xf0,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xf3,0x00,0x00,0x00, +0xf2,0x00,0x00,0x00,0x51,0x00,0x05,0x00,0x08,0x00,0x00,0x00, +0xf6,0x00,0x00,0x00,0x89,0x01,0x00,0x00,0x01,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfc,0x00,0x00,0x00, +0xf0,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x41,0x00,0x06,0x00, +0xf1,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,0xeb,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x08,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0xfd,0x00,0x00,0x00, +0x85,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0xff,0x00,0x00,0x00, +0xf6,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0x0c,0x00,0x08,0x00, +0x08,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,0xf3,0x00,0x00,0x00, +0xff,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0x02,0x01,0x00,0x00,0xb6,0x00,0x00,0x00,0x81,0x00,0x05,0x00, +0x08,0x00,0x00,0x00,0x03,0x01,0x00,0x00,0x02,0x01,0x00,0x00, +0x00,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xb6,0x00,0x00,0x00, +0x03,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x06,0x01,0x00,0x00,0x8e,0x01,0x00,0x00,0x9c,0x00,0x00,0x00, +0xf9,0x00,0x02,0x00,0xb8,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xba,0x00,0x00,0x00,0xe0,0x00,0x04,0x00,0x9c,0x00,0x00,0x00, +0x9c,0x00,0x00,0x00,0x07,0x01,0x00,0x00,0xf9,0x00,0x02,0x00, +0x0a,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x0a,0x01,0x00,0x00, +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x8f,0x01,0x00,0x00, +0x09,0x01,0x00,0x00,0xba,0x00,0x00,0x00,0x21,0x01,0x00,0x00, +0x0d,0x01,0x00,0x00,0xac,0x00,0x05,0x00,0xc1,0x00,0x00,0x00, +0x10,0x01,0x00,0x00,0x8f,0x01,0x00,0x00,0x59,0x00,0x00,0x00, +0xf6,0x00,0x04,0x00,0x0c,0x01,0x00,0x00,0x0d,0x01,0x00,0x00, +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x10,0x01,0x00,0x00, +0x0b,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, +0x0b,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xc1,0x00,0x00,0x00, +0x13,0x01,0x00,0x00,0xa4,0x00,0x00,0x00,0x8f,0x01,0x00,0x00, +0xf7,0x00,0x03,0x00,0x15,0x01,0x00,0x00,0x00,0x00,0x00,0x00, +0xfa,0x00,0x04,0x00,0x13,0x01,0x00,0x00,0x14,0x01,0x00,0x00, +0x15,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x14,0x01,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x19,0x01,0x00,0x00, +0xa4,0x00,0x00,0x00,0x8f,0x01,0x00,0x00,0x41,0x00,0x05,0x00, +0xb5,0x00,0x00,0x00,0x1a,0x01,0x00,0x00,0xb2,0x00,0x00,0x00, +0x19,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0x1b,0x01,0x00,0x00,0x1a,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0x08,0x00,0x00,0x00,0x1d,0x01,0x00,0x00,0xb6,0x00,0x00,0x00, +0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0x1e,0x01,0x00,0x00, +0x1d,0x01,0x00,0x00,0x1b,0x01,0x00,0x00,0x3e,0x00,0x03,0x00, +0xb6,0x00,0x00,0x00,0x1e,0x01,0x00,0x00,0xf9,0x00,0x02,0x00, +0x15,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x15,0x01,0x00,0x00, +0xe0,0x00,0x04,0x00,0x9c,0x00,0x00,0x00,0x9c,0x00,0x00,0x00, +0x07,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x0d,0x01,0x00,0x00, +0xf8,0x00,0x02,0x00,0x0d,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x21,0x01,0x00,0x00,0x8f,0x01,0x00,0x00, +0x2e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x0a,0x01,0x00,0x00, +0xf8,0x00,0x02,0x00,0x0c,0x01,0x00,0x00,0xaa,0x00,0x05,0x00, +0xc1,0x00,0x00,0x00,0x23,0x01,0x00,0x00,0xa4,0x00,0x00,0x00, +0x59,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0x25,0x01,0x00,0x00, +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x23,0x01,0x00,0x00, +0x24,0x01,0x00,0x00,0x25,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, +0x24,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x2c,0x01,0x00,0x00,0x49,0x01,0x00,0x00,0xa0,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0xb5,0x00,0x00,0x00,0x2d,0x01,0x00,0x00, +0xb2,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x08,0x00,0x00,0x00,0x2e,0x01,0x00,0x00,0x2d,0x01,0x00,0x00, +0x41,0x00,0x06,0x00,0xf1,0x00,0x00,0x00,0x2f,0x01,0x00,0x00, +0x29,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x2c,0x01,0x00,0x00, +0x3e,0x00,0x03,0x00,0x2f,0x01,0x00,0x00,0x2e,0x01,0x00,0x00, +0xf9,0x00,0x02,0x00,0x25,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, +0x25,0x01,0x00,0x00,0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00, + }; -const uint64_t mul_mat_vec_id_q5_1_f32_len = 4244; +const uint64_t mul_mat_vec_id_q5_1_f32_len = 4392; unsigned char mul_mat_vec_id_q5_k_f32_data[] = { 0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00, -0xb2,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, +0xb9,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, 0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x27,0x00,0x00,0x00, 0x11,0x00,0x02,0x00,0x51,0x11,0x00,0x00,0x11,0x00,0x02,0x00, 0x60,0x11,0x00,0x00,0x0b,0x00,0x06,0x00,0x01,0x00,0x00,0x00, 0x47,0x4c,0x53,0x4c,0x2e,0x73,0x74,0x64,0x2e,0x34,0x35,0x30, 0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00,0x00,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x0f,0x00,0x0e,0x00,0x05,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x0f,0x00,0x0f,0x00,0x05,0x00,0x00,0x00, 0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e,0x00,0x00,0x00,0x00, 0x11,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x25,0x00,0x00,0x00, -0x3a,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x8f,0x00,0x00,0x00, -0xb8,0x00,0x00,0x00,0x28,0x02,0x00,0x00,0x8d,0x04,0x00,0x00, -0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00, -0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x11,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x18,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00, -0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, -0x19,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x21,0x00,0x00,0x00, -0x03,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x23,0x00,0x00,0x00, +0x3a,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,0x5d,0x00,0x00,0x00, +0x96,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0x2f,0x02,0x00,0x00, +0x94,0x04,0x00,0x00,0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00, +0x11,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x11,0x00,0x00,0x00, +0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x18,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x48,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x19,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x23,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x23,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x23,0x00,0x00,0x00, -0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x47,0x00,0x03,0x00,0x19,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x22,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x21,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x23,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x23,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x23,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x23,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x23,0x00,0x00,0x00,0x05,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x23,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x23,0x00,0x00,0x00, +0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0x23,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x3a,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x3e,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x5d,0x00,0x00,0x00, +0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xb8,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xb9,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xba,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0xbb,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xbb,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0xbb,0x00,0x00,0x00,0x02,0x00,0x00,0x00, 0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x23,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x23,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x23,0x00,0x00,0x00,0x07,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x20,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x23,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x3a,0x00,0x00,0x00, -0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x55,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xb1,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xb2,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xb3,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0xb4,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0xb4,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xb4,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0xb4,0x00,0x00,0x00,0x03,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xb5,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0xb0,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0xb6,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xb6,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0xb6,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xb8,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xb8,0x00,0x00,0x00, -0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x25,0x02,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0x26,0x02,0x00,0x00,0x00,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x26,0x02,0x00,0x00, -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0x26,0x02,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x28,0x02,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x28,0x02,0x00,0x00, -0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x8a,0x04,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0x8b,0x04,0x00,0x00,0x00,0x00,0x00,0x00, -0x19,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x8b,0x04,0x00,0x00, -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0x8b,0x04,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x8d,0x04,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x8d,0x04,0x00,0x00, -0x21,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x94,0x04,0x00,0x00,0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00, -0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00, -0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x17,0x00,0x04,0x00,0x0f,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x10,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x10,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x12,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x13,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x15,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x1d,0x00,0x03,0x00,0x18,0x00,0x00,0x00,0x17,0x00,0x00,0x00, -0x1e,0x00,0x03,0x00,0x19,0x00,0x00,0x00,0x18,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x1a,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x19,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x1a,0x00,0x00,0x00, -0x1b,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x1e,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x17,0x00,0x00,0x00,0x1e,0x00,0x0b,0x00,0x23,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0xbb,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x30,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xbc,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0xb0,0x00,0x00,0x00,0x48,0x00,0x04,0x00, +0xbd,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0xbd,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0xbd,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xbf,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xbf,0x00,0x00,0x00,0x21,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x2c,0x02,0x00,0x00, +0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00, +0x2d,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x2d,0x02,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0x2d,0x02,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x2f,0x02,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x2f,0x02,0x00,0x00,0x21,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x91,0x04,0x00,0x00, +0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00, +0x92,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x92,0x04,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0x92,0x04,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x94,0x04,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x94,0x04,0x00,0x00,0x21,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x9b,0x04,0x00,0x00, +0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x13,0x00,0x02,0x00, +0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x17,0x00,0x04,0x00, +0x0f,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x10,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x0f,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00, +0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x13,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, +0x18,0x00,0x00,0x00,0x17,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, +0x19,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x1a,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x19,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x1a,0x00,0x00,0x00,0x1b,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x1e,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x17,0x00,0x00,0x00, +0x1e,0x00,0x0b,0x00,0x23,0x00,0x00,0x00,0x06,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x24,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x24,0x00,0x00,0x00, -0x25,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x26,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x27,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0x2c,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x35,0x00,0x00,0x00, -0x03,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00, -0x3a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4b,0x00,0x00,0x00, -0x00,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00, -0x55,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x58,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x60,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x24,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x24,0x00,0x00,0x00,0x25,0x00,0x00,0x00, +0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0x26,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x27,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x2c,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0x30,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x03,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00,0x3a,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x3b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0x10,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x41,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x53,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x3b,0x00,0x04,0x00, +0x10,0x00,0x00,0x00,0x5d,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x67,0x00,0x00,0x00, 0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x74,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x7a,0x00,0x00,0x00,0x40,0x00,0x00,0x00, -0x15,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x7b,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x81,0x00,0x00,0x00,0x40,0x00,0x00,0x00, +0x15,0x00,0x04,0x00,0x86,0x00,0x00,0x00,0x08,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0x82,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x15,0x00,0x04,0x00, -0x86,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x16,0x00,0x03,0x00,0x8c,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x1c,0x00,0x04,0x00,0x8d,0x00,0x00,0x00,0x8c,0x00,0x00,0x00, -0x74,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x8e,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x8e,0x00,0x00,0x00,0x8f,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x90,0x00,0x00,0x00, -0x10,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x8c,0x00,0x00,0x00, -0x95,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x96,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x8c,0x00,0x00,0x00, -0x14,0x00,0x02,0x00,0xa1,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xaa,0x00,0x00,0x00,0x80,0x00,0x00,0x00, -0x16,0x00,0x03,0x00,0xae,0x00,0x00,0x00,0x10,0x00,0x00,0x00, -0x17,0x00,0x04,0x00,0xaf,0x00,0x00,0x00,0xae,0x00,0x00,0x00, +0x89,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x15,0x00,0x04,0x00, +0x8d,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x16,0x00,0x03,0x00,0x93,0x00,0x00,0x00,0x20,0x00,0x00,0x00, +0x1c,0x00,0x04,0x00,0x94,0x00,0x00,0x00,0x93,0x00,0x00,0x00, +0x7b,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x95,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x94,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0x95,0x00,0x00,0x00,0x96,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x97,0x00,0x00,0x00, +0x10,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x93,0x00,0x00,0x00, +0x9c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x9d,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x93,0x00,0x00,0x00, +0x14,0x00,0x02,0x00,0xa8,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xb1,0x00,0x00,0x00,0x80,0x00,0x00,0x00, +0x16,0x00,0x03,0x00,0xb5,0x00,0x00,0x00,0x10,0x00,0x00,0x00, +0x17,0x00,0x04,0x00,0xb6,0x00,0x00,0x00,0xb5,0x00,0x00,0x00, 0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xb0,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, -0xb1,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,0xb0,0x00,0x00,0x00, -0x1c,0x00,0x04,0x00,0xb2,0x00,0x00,0x00,0x7f,0x00,0x00,0x00, -0x74,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0xb3,0x00,0x00,0x00, -0x7f,0x00,0x00,0x00,0xaa,0x00,0x00,0x00,0x1e,0x00,0x06,0x00, -0xb4,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0xb1,0x00,0x00,0x00, -0xb2,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, -0xb5,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, -0xb6,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0xb7,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xb6,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0xb7,0x00,0x00,0x00,0xb8,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xbc,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0xae,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0xcd,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x7f,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0xd2,0x00,0x00,0x00, +0xb7,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, +0xb8,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0xb7,0x00,0x00,0x00, +0x1c,0x00,0x04,0x00,0xb9,0x00,0x00,0x00,0x86,0x00,0x00,0x00, +0x7b,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0xba,0x00,0x00,0x00, +0x86,0x00,0x00,0x00,0xb1,0x00,0x00,0x00,0x1e,0x00,0x06,0x00, +0xbb,0x00,0x00,0x00,0xb6,0x00,0x00,0x00,0xb8,0x00,0x00,0x00, +0xb9,0x00,0x00,0x00,0xba,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, +0xbc,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, +0xbd,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0xbe,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xbd,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0xbe,0x00,0x00,0x00,0xbf,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xc3,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0xd4,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x86,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0xd9,0x00,0x00,0x00, 0x3f,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xf8,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x07,0x01,0x00,0x00,0x08,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x0d,0x01,0x00,0x00, +0xff,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x0e,0x01,0x00,0x00,0x08,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x14,0x01,0x00,0x00, 0x0f,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0x18,0x01,0x00,0x00,0xc0,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x24,0x01,0x00,0x00,0x09,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x9d,0x01,0x00,0x00, +0x1f,0x01,0x00,0x00,0xc0,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x2b,0x01,0x00,0x00,0x09,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa4,0x01,0x00,0x00, 0x11,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xdb,0x01,0x00,0x00,0x41,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xe9,0x01,0x00,0x00,0x50,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xf7,0x01,0x00,0x00, -0x51,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x25,0x02,0x00,0x00, -0x8c,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x26,0x02,0x00,0x00, -0x25,0x02,0x00,0x00,0x20,0x00,0x04,0x00,0x27,0x02,0x00,0x00, -0x0c,0x00,0x00,0x00,0x26,0x02,0x00,0x00,0x3b,0x00,0x04,0x00, -0x27,0x02,0x00,0x00,0x28,0x02,0x00,0x00,0x0c,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x2c,0x02,0x00,0x00,0x0c,0x00,0x00,0x00, -0x8c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0x3d,0x02,0x00,0x00,0x10,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xad,0x02,0x00,0x00,0x21,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xc9,0x02,0x00,0x00, +0xe2,0x01,0x00,0x00,0x41,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xf0,0x01,0x00,0x00,0x50,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xfe,0x01,0x00,0x00, +0x51,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x2c,0x02,0x00,0x00, +0x93,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x2d,0x02,0x00,0x00, +0x2c,0x02,0x00,0x00,0x20,0x00,0x04,0x00,0x2e,0x02,0x00,0x00, +0x0c,0x00,0x00,0x00,0x2d,0x02,0x00,0x00,0x3b,0x00,0x04,0x00, +0x2e,0x02,0x00,0x00,0x2f,0x02,0x00,0x00,0x0c,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x33,0x02,0x00,0x00,0x0c,0x00,0x00,0x00, +0x93,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0x44,0x02,0x00,0x00,0x10,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xb4,0x02,0x00,0x00,0x21,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xd0,0x02,0x00,0x00, 0x30,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xe5,0x02,0x00,0x00,0x31,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x6c,0x04,0x00,0x00,0x08,0x01,0x00,0x00, -0x1d,0x00,0x03,0x00,0x8a,0x04,0x00,0x00,0x8c,0x00,0x00,0x00, -0x1e,0x00,0x03,0x00,0x8b,0x04,0x00,0x00,0x8a,0x04,0x00,0x00, -0x20,0x00,0x04,0x00,0x8c,0x04,0x00,0x00,0x0c,0x00,0x00,0x00, -0x8b,0x04,0x00,0x00,0x3b,0x00,0x04,0x00,0x8c,0x04,0x00,0x00, -0x8d,0x04,0x00,0x00,0x0c,0x00,0x00,0x00,0x2c,0x00,0x06,0x00, -0x0f,0x00,0x00,0x00,0x94,0x04,0x00,0x00,0x74,0x00,0x00,0x00, +0xec,0x02,0x00,0x00,0x31,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x73,0x04,0x00,0x00,0x08,0x01,0x00,0x00, +0x1d,0x00,0x03,0x00,0x91,0x04,0x00,0x00,0x93,0x00,0x00,0x00, +0x1e,0x00,0x03,0x00,0x92,0x04,0x00,0x00,0x91,0x04,0x00,0x00, +0x20,0x00,0x04,0x00,0x93,0x04,0x00,0x00,0x0c,0x00,0x00,0x00, +0x92,0x04,0x00,0x00,0x3b,0x00,0x04,0x00,0x93,0x04,0x00,0x00, +0x94,0x04,0x00,0x00,0x0c,0x00,0x00,0x00,0x2c,0x00,0x06,0x00, +0x0f,0x00,0x00,0x00,0x9b,0x04,0x00,0x00,0x7b,0x00,0x00,0x00, 0x12,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x36,0x00,0x05,0x00, 0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x03,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00, 0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00,0x3c,0x00,0x00,0x00, 0x3a,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, 0x06,0x00,0x00,0x00,0x3d,0x00,0x00,0x00,0x3c,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00,0x98,0x04,0x00,0x00, -0x11,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x99,0x04,0x00,0x00,0x98,0x04,0x00,0x00, -0x41,0x00,0x06,0x00,0x1e,0x00,0x00,0x00,0x9b,0x04,0x00,0x00, -0x1b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x99,0x04,0x00,0x00, -0x3d,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x9c,0x04,0x00,0x00, -0x9b,0x04,0x00,0x00,0x7c,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x9d,0x04,0x00,0x00,0x9c,0x04,0x00,0x00,0x41,0x00,0x05,0x00, -0x27,0x00,0x00,0x00,0x9f,0x04,0x00,0x00,0x25,0x00,0x00,0x00, -0x26,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xa0,0x04,0x00,0x00,0x9f,0x04,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xa1,0x04,0x00,0x00,0x9d,0x04,0x00,0x00, -0xa0,0x04,0x00,0x00,0x41,0x00,0x05,0x00,0x27,0x00,0x00,0x00, -0xa3,0x04,0x00,0x00,0x25,0x00,0x00,0x00,0x2c,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa4,0x04,0x00,0x00, -0xa3,0x04,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xa5,0x04,0x00,0x00,0x99,0x04,0x00,0x00,0xa4,0x04,0x00,0x00, +0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00,0x3f,0x00,0x00,0x00, +0x3e,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x3f,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00,0x42,0x00,0x00,0x00, +0x3a,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x43,0x00,0x00,0x00,0x42,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x44,0x00,0x00,0x00, +0x40,0x00,0x00,0x00,0x43,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x45,0x00,0x00,0x00,0x3d,0x00,0x00,0x00, +0x44,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00, +0x9f,0x04,0x00,0x00,0x11,0x00,0x00,0x00,0x12,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa0,0x04,0x00,0x00, +0x9f,0x04,0x00,0x00,0x41,0x00,0x06,0x00,0x1e,0x00,0x00,0x00, +0xa2,0x04,0x00,0x00,0x1b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0xa0,0x04,0x00,0x00,0x3d,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0xa3,0x04,0x00,0x00,0xa2,0x04,0x00,0x00,0x7c,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xa4,0x04,0x00,0x00,0xa3,0x04,0x00,0x00, 0x41,0x00,0x05,0x00,0x27,0x00,0x00,0x00,0xa6,0x04,0x00,0x00, -0x25,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x25,0x00,0x00,0x00,0x26,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, 0x06,0x00,0x00,0x00,0xa7,0x04,0x00,0x00,0xa6,0x04,0x00,0x00, 0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa8,0x04,0x00,0x00, -0xa5,0x04,0x00,0x00,0xa7,0x04,0x00,0x00,0x41,0x00,0x05,0x00, +0xa4,0x04,0x00,0x00,0xa7,0x04,0x00,0x00,0x41,0x00,0x05,0x00, 0x27,0x00,0x00,0x00,0xaa,0x04,0x00,0x00,0x25,0x00,0x00,0x00, -0x35,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xab,0x04,0x00,0x00,0xaa,0x04,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xac,0x04,0x00,0x00,0x99,0x04,0x00,0x00, +0x2c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xab,0x04,0x00,0x00,0xaa,0x04,0x00,0x00,0x89,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xac,0x04,0x00,0x00,0xa0,0x04,0x00,0x00, 0xab,0x04,0x00,0x00,0x41,0x00,0x05,0x00,0x27,0x00,0x00,0x00, -0x49,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4a,0x00,0x00,0x00, -0x49,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x4c,0x00,0x00,0x00,0x4a,0x00,0x00,0x00,0x4b,0x00,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4f,0x00,0x00,0x00, -0xa1,0x04,0x00,0x00,0x4b,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x52,0x00,0x00,0x00,0x3d,0x00,0x00,0x00, -0x4c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x53,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x52,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00,0x56,0x00,0x00,0x00, -0x55,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x57,0x00,0x00,0x00,0x56,0x00,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0x57,0x00,0x00,0x00,0x58,0x00,0x00,0x00,0x89,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x5d,0x00,0x00,0x00,0x57,0x00,0x00,0x00, -0x58,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x61,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x60,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x65,0x00,0x00,0x00, -0x60,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x82,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x66,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0x65,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x69,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x58,0x00,0x00,0x00, -0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6c,0x00,0x00,0x00, -0x61,0x00,0x00,0x00,0x58,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x60,0x00,0x00,0x00, -0x66,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x71,0x00,0x00,0x00,0x58,0x00,0x00,0x00,0x6c,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x72,0x00,0x00,0x00, -0x6f,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x76,0x00,0x00,0x00,0x74,0x00,0x00,0x00, -0x69,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x78,0x00,0x00,0x00,0x76,0x00,0x00,0x00,0x72,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7c,0x00,0x00,0x00, -0x7a,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x7c,0x00,0x00,0x00, -0x72,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x84,0x00,0x00,0x00,0x58,0x00,0x00,0x00,0x69,0x00,0x00,0x00, -0xc4,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x85,0x00,0x00,0x00, -0x82,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x72,0x00,0x04,0x00, -0x86,0x00,0x00,0x00,0x87,0x00,0x00,0x00,0x85,0x00,0x00,0x00, -0x7c,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0x88,0x00,0x00,0x00, -0x87,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x7f,0x00,0x00,0x00, -0x8b,0x00,0x00,0x00,0x88,0x00,0x00,0x00,0x26,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x92,0x00,0x00,0x00, -0x90,0x00,0x00,0x00,0x5d,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x94,0x00,0x00,0x00,0x92,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x96,0x00,0x00,0x00, -0x97,0x00,0x00,0x00,0x8f,0x00,0x00,0x00,0x94,0x00,0x00,0x00, -0x3e,0x00,0x03,0x00,0x97,0x00,0x00,0x00,0x95,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0x9a,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0x9a,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00, -0xad,0x04,0x00,0x00,0x5d,0x00,0x00,0x00,0x05,0x00,0x00,0x00, -0x6b,0x04,0x00,0x00,0x9b,0x00,0x00,0x00,0xb0,0x00,0x05,0x00, -0xa1,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,0xad,0x04,0x00,0x00, -0x4c,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x9c,0x00,0x00,0x00, -0x9b,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, -0xa2,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,0x9c,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0x9b,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xa5,0x00,0x00,0x00,0xad,0x04,0x00,0x00, -0x4b,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xa7,0x00,0x00,0x00,0xa5,0x00,0x00,0x00,0x7e,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xab,0x00,0x00,0x00, -0xa7,0x00,0x00,0x00,0xaa,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0x53,0x00,0x00,0x00, -0xad,0x04,0x00,0x00,0x41,0x00,0x08,0x00,0xbc,0x00,0x00,0x00, -0xbd,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0xbb,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x3b,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0xae,0x00,0x00,0x00,0xbe,0x00,0x00,0x00, -0xbd,0x00,0x00,0x00,0x73,0x00,0x04,0x00,0x8c,0x00,0x00,0x00, -0xbf,0x00,0x00,0x00,0xbe,0x00,0x00,0x00,0x41,0x00,0x08,0x00, -0xbc,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,0xb8,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x12,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xae,0x00,0x00,0x00, +0xad,0x04,0x00,0x00,0x25,0x00,0x00,0x00,0x30,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xae,0x04,0x00,0x00, +0xad,0x04,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xaf,0x04,0x00,0x00,0xac,0x04,0x00,0x00,0xae,0x04,0x00,0x00, +0x41,0x00,0x05,0x00,0x27,0x00,0x00,0x00,0xb1,0x04,0x00,0x00, +0x25,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xb2,0x04,0x00,0x00,0xb1,0x04,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb3,0x04,0x00,0x00, +0xa0,0x04,0x00,0x00,0xb2,0x04,0x00,0x00,0x41,0x00,0x05,0x00, +0x27,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0x25,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x52,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x52,0x00,0x00,0x00, +0x53,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x57,0x00,0x00,0x00,0xa8,0x04,0x00,0x00,0x53,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5a,0x00,0x00,0x00, +0x45,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x5b,0x00,0x00,0x00,0x57,0x00,0x00,0x00, +0x5a,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00, +0x5e,0x00,0x00,0x00,0x5d,0x00,0x00,0x00,0x3b,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x5f,0x00,0x00,0x00, +0x5e,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x60,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,0x41,0x00,0x00,0x00, +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x64,0x00,0x00,0x00, +0x5f,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x60,0x00,0x00,0x00, +0x67,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x6c,0x00,0x00,0x00,0x67,0x00,0x00,0x00,0x68,0x00,0x00,0x00, +0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6d,0x00,0x00,0x00, +0x60,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x68,0x00,0x00,0x00, +0x41,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x73,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x41,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x76,0x00,0x00,0x00, +0x67,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x41,0x00,0x00,0x00, +0x73,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x79,0x00,0x00,0x00,0x76,0x00,0x00,0x00,0x78,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7d,0x00,0x00,0x00, +0x7b,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,0x7d,0x00,0x00,0x00, +0x79,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x83,0x00,0x00,0x00,0x81,0x00,0x00,0x00,0x70,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x85,0x00,0x00,0x00, +0x83,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x8b,0x00,0x00,0x00,0x41,0x00,0x00,0x00, +0x70,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x17,0x00,0x00,0x00, +0x8c,0x00,0x00,0x00,0x89,0x00,0x00,0x00,0x8b,0x00,0x00,0x00, +0x72,0x00,0x04,0x00,0x8d,0x00,0x00,0x00,0x8e,0x00,0x00,0x00, +0x8c,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x86,0x00,0x00,0x00, +0x8f,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,0xc4,0x00,0x05,0x00, +0x86,0x00,0x00,0x00,0x92,0x00,0x00,0x00,0x8f,0x00,0x00,0x00, +0x26,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x99,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x64,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9b,0x00,0x00,0x00, +0x99,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0x9d,0x00,0x00,0x00,0x9e,0x00,0x00,0x00,0x96,0x00,0x00,0x00, +0x9b,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0x9e,0x00,0x00,0x00, +0x9c,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xa1,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0xa1,0x00,0x00,0x00,0xf5,0x00,0x07,0x00, +0x06,0x00,0x00,0x00,0xb4,0x04,0x00,0x00,0x64,0x00,0x00,0x00, +0x05,0x00,0x00,0x00,0x72,0x04,0x00,0x00,0xa2,0x00,0x00,0x00, +0xb0,0x00,0x05,0x00,0xa8,0x00,0x00,0x00,0xa9,0x00,0x00,0x00, +0xb4,0x04,0x00,0x00,0x54,0x00,0x00,0x00,0xf6,0x00,0x04,0x00, +0xa3,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0xfa,0x00,0x04,0x00,0xa9,0x00,0x00,0x00,0xa2,0x00,0x00,0x00, +0xa3,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xa2,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xac,0x00,0x00,0x00, +0xb4,0x04,0x00,0x00,0x53,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xae,0x00,0x00,0x00,0xac,0x00,0x00,0x00, +0x85,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xb2,0x00,0x00,0x00,0xae,0x00,0x00,0x00,0xb1,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc2,0x00,0x00,0x00, +0x5b,0x00,0x00,0x00,0xb4,0x04,0x00,0x00,0x41,0x00,0x08,0x00, +0xc3,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,0xbf,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0xc2,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0x3b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xb5,0x00,0x00,0x00, 0xc5,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,0x73,0x00,0x04,0x00, -0x8c,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,0xc5,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xcc,0x00,0x00,0x00, -0x69,0x00,0x00,0x00,0x58,0x00,0x00,0x00,0x41,0x00,0x08,0x00, -0xcd,0x00,0x00,0x00,0xce,0x00,0x00,0x00,0xb8,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0x82,0x00,0x00,0x00, -0xcc,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00, -0xcf,0x00,0x00,0x00,0xce,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0xcf,0x00,0x00,0x00, -0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0xd1,0x00,0x00,0x00, -0xd0,0x00,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0xd3,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,0xd2,0x00,0x00,0x00, -0x72,0x00,0x04,0x00,0x86,0x00,0x00,0x00,0xd4,0x00,0x00,0x00, -0xd3,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x7f,0x00,0x00,0x00, -0xd5,0x00,0x00,0x00,0xd4,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xdc,0x00,0x00,0x00,0xcc,0x00,0x00,0x00, -0x12,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xcd,0x00,0x00,0x00, -0xdd,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0xbb,0x00,0x00,0x00,0x82,0x00,0x00,0x00,0xdc,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0xde,0x00,0x00,0x00, -0xdd,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xdf,0x00,0x00,0x00,0xde,0x00,0x00,0x00,0x7c,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0xe0,0x00,0x00,0x00,0xdf,0x00,0x00,0x00, -0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xe1,0x00,0x00,0x00, -0xe0,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,0x72,0x00,0x04,0x00, -0x86,0x00,0x00,0x00,0xe2,0x00,0x00,0x00,0xe1,0x00,0x00,0x00, -0x7c,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0xe3,0x00,0x00,0x00, -0xe2,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xea,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,0x60,0x00,0x00,0x00, -0x41,0x00,0x08,0x00,0xcd,0x00,0x00,0x00,0xeb,0x00,0x00,0x00, -0xb8,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xbb,0x00,0x00,0x00, -0x82,0x00,0x00,0x00,0xea,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x7f,0x00,0x00,0x00,0xec,0x00,0x00,0x00,0xeb,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xed,0x00,0x00,0x00, -0xec,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0xee,0x00,0x00,0x00,0xed,0x00,0x00,0x00,0xc7,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0xef,0x00,0x00,0x00,0xee,0x00,0x00,0x00, -0xd2,0x00,0x00,0x00,0x72,0x00,0x04,0x00,0x86,0x00,0x00,0x00, -0xf0,0x00,0x00,0x00,0xef,0x00,0x00,0x00,0x7c,0x00,0x04,0x00, -0x7f,0x00,0x00,0x00,0xf1,0x00,0x00,0x00,0xf0,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf9,0x00,0x00,0x00, -0xcc,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0x41,0x00,0x08,0x00, -0xcd,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,0xb8,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0x82,0x00,0x00,0x00, -0xf9,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00, -0xfb,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0xfb,0x00,0x00,0x00, -0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0xfd,0x00,0x00,0x00, -0xfc,0x00,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0xfe,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,0xd2,0x00,0x00,0x00, -0x72,0x00,0x04,0x00,0x86,0x00,0x00,0x00,0xff,0x00,0x00,0x00, -0xfe,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x7f,0x00,0x00,0x00, -0x00,0x01,0x00,0x00,0xff,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0xcc,0x00,0x00,0x00, -0x07,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0xcd,0x00,0x00,0x00, -0x09,0x01,0x00,0x00,0xb8,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0xbb,0x00,0x00,0x00,0x82,0x00,0x00,0x00,0x08,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0x0a,0x01,0x00,0x00, -0x09,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x0b,0x01,0x00,0x00,0x0a,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,0x0b,0x01,0x00,0x00, -0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x0e,0x01,0x00,0x00, -0x0c,0x01,0x00,0x00,0x0d,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0x7f,0x00,0x00,0x00,0x15,0x01,0x00,0x00,0xce,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x16,0x01,0x00,0x00, -0x15,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0x17,0x01,0x00,0x00,0x16,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0x19,0x01,0x00,0x00,0x17,0x01,0x00,0x00, -0x18,0x01,0x00,0x00,0xc3,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0x1a,0x01,0x00,0x00,0x19,0x01,0x00,0x00,0x30,0x00,0x00,0x00, -0xc5,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x1b,0x01,0x00,0x00, -0x0e,0x01,0x00,0x00,0x1a,0x01,0x00,0x00,0x72,0x00,0x04,0x00, -0x86,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,0x1b,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0x1d,0x01,0x00,0x00, -0x1c,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x25,0x01,0x00,0x00,0xcc,0x00,0x00,0x00,0x24,0x01,0x00,0x00, -0x41,0x00,0x08,0x00,0xcd,0x00,0x00,0x00,0x26,0x01,0x00,0x00, -0xb8,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xbb,0x00,0x00,0x00, -0x82,0x00,0x00,0x00,0x25,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0x7f,0x00,0x00,0x00,0x27,0x01,0x00,0x00,0x26,0x01,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x28,0x01,0x00,0x00, -0x27,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0x29,0x01,0x00,0x00,0x28,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0x2a,0x01,0x00,0x00,0x29,0x01,0x00,0x00, -0x0d,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00, -0x32,0x01,0x00,0x00,0xdd,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x33,0x01,0x00,0x00,0x32,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x34,0x01,0x00,0x00, -0x33,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0x35,0x01,0x00,0x00,0x34,0x01,0x00,0x00,0x18,0x01,0x00,0x00, -0xc3,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x36,0x01,0x00,0x00, -0x35,0x01,0x00,0x00,0x30,0x00,0x00,0x00,0xc5,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0x37,0x01,0x00,0x00,0x2a,0x01,0x00,0x00, -0x36,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x86,0x00,0x00,0x00, -0x38,0x01,0x00,0x00,0x37,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x7f,0x00,0x00,0x00,0x39,0x01,0x00,0x00,0x38,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0x42,0x01,0x00,0x00, -0x09,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x7f,0x00,0x00,0x00, -0x43,0x01,0x00,0x00,0x42,0x01,0x00,0x00,0x26,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x44,0x01,0x00,0x00, -0x43,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0x45,0x01,0x00,0x00,0x44,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0x46,0x01,0x00,0x00,0x45,0x01,0x00,0x00, -0x0d,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00, -0x4e,0x01,0x00,0x00,0xeb,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x4f,0x01,0x00,0x00,0x4e,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x50,0x01,0x00,0x00, -0x4f,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0x51,0x01,0x00,0x00,0x50,0x01,0x00,0x00,0x18,0x01,0x00,0x00, -0xc3,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x52,0x01,0x00,0x00, -0x51,0x01,0x00,0x00,0x30,0x00,0x00,0x00,0xc5,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0x53,0x01,0x00,0x00,0x46,0x01,0x00,0x00, -0x52,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x86,0x00,0x00,0x00, -0x54,0x01,0x00,0x00,0x53,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x7f,0x00,0x00,0x00,0x55,0x01,0x00,0x00,0x54,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0x5e,0x01,0x00,0x00, -0x26,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x7f,0x00,0x00,0x00, -0x5f,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,0x26,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x60,0x01,0x00,0x00, -0x5f,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0x61,0x01,0x00,0x00,0x60,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0x62,0x01,0x00,0x00,0x61,0x01,0x00,0x00, -0x0d,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00, -0x6a,0x01,0x00,0x00,0xfa,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x6b,0x01,0x00,0x00,0x6a,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x6c,0x01,0x00,0x00, -0x6b,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0x6d,0x01,0x00,0x00,0x6c,0x01,0x00,0x00,0x18,0x01,0x00,0x00, -0xc3,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x6e,0x01,0x00,0x00, -0x6d,0x01,0x00,0x00,0x30,0x00,0x00,0x00,0xc5,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0x6f,0x01,0x00,0x00,0x62,0x01,0x00,0x00, -0x6e,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x86,0x00,0x00,0x00, -0x70,0x01,0x00,0x00,0x6f,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x7f,0x00,0x00,0x00,0x71,0x01,0x00,0x00,0x70,0x01,0x00,0x00, -0x41,0x00,0x08,0x00,0xcd,0x00,0x00,0x00,0x77,0x01,0x00,0x00, -0xb8,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xbb,0x00,0x00,0x00, -0x35,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x7f,0x00,0x00,0x00,0x78,0x01,0x00,0x00,0x77,0x01,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x79,0x01,0x00,0x00, -0x78,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0x7a,0x01,0x00,0x00,0x79,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0x7b,0x01,0x00,0x00,0x7a,0x01,0x00,0x00, -0x0d,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x86,0x00,0x00,0x00, -0x7c,0x01,0x00,0x00,0x7b,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x7f,0x00,0x00,0x00,0x7d,0x01,0x00,0x00,0x7c,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x83,0x01,0x00,0x00, -0x78,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x41,0x00,0x08,0x00, -0xcd,0x00,0x00,0x00,0x84,0x01,0x00,0x00,0xb8,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0x35,0x00,0x00,0x00, -0x83,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00, -0x85,0x01,0x00,0x00,0x84,0x01,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x86,0x01,0x00,0x00,0x85,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x87,0x01,0x00,0x00, -0x86,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0x88,0x01,0x00,0x00,0x87,0x01,0x00,0x00,0x0d,0x01,0x00,0x00, -0x72,0x00,0x04,0x00,0x86,0x00,0x00,0x00,0x89,0x01,0x00,0x00, -0x88,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x7f,0x00,0x00,0x00, -0x8a,0x01,0x00,0x00,0x89,0x01,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x90,0x01,0x00,0x00,0x78,0x00,0x00,0x00, -0x90,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xcd,0x00,0x00,0x00, -0x91,0x01,0x00,0x00,0xb8,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0xbb,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x90,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0x92,0x01,0x00,0x00, -0x91,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x93,0x01,0x00,0x00,0x92,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x94,0x01,0x00,0x00,0x93,0x01,0x00,0x00, -0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x95,0x01,0x00,0x00, -0x94,0x01,0x00,0x00,0x0d,0x01,0x00,0x00,0x72,0x00,0x04,0x00, -0x86,0x00,0x00,0x00,0x96,0x01,0x00,0x00,0x95,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0x97,0x01,0x00,0x00, -0x96,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x9e,0x01,0x00,0x00,0x78,0x00,0x00,0x00,0x9d,0x01,0x00,0x00, -0x41,0x00,0x08,0x00,0xcd,0x00,0x00,0x00,0x9f,0x01,0x00,0x00, -0xb8,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xbb,0x00,0x00,0x00, -0x35,0x00,0x00,0x00,0x9e,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0x7f,0x00,0x00,0x00,0xa0,0x01,0x00,0x00,0x9f,0x01,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa1,0x01,0x00,0x00, -0xa0,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0xa2,0x01,0x00,0x00,0xa1,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0xa3,0x01,0x00,0x00,0xa2,0x01,0x00,0x00, -0x0d,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x86,0x00,0x00,0x00, -0xa4,0x01,0x00,0x00,0xa3,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x7f,0x00,0x00,0x00,0xa5,0x01,0x00,0x00,0xa4,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0xac,0x01,0x00,0x00, -0x77,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x7f,0x00,0x00,0x00, -0xad,0x01,0x00,0x00,0xac,0x01,0x00,0x00,0x26,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0xb5,0x01,0x00,0x00, -0x84,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x7f,0x00,0x00,0x00, -0xb6,0x01,0x00,0x00,0xb5,0x01,0x00,0x00,0x26,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0xbe,0x01,0x00,0x00, -0x91,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x7f,0x00,0x00,0x00, -0xbf,0x01,0x00,0x00,0xbe,0x01,0x00,0x00,0x26,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0xc7,0x01,0x00,0x00, -0x9f,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x7f,0x00,0x00,0x00, -0xc8,0x01,0x00,0x00,0xc7,0x01,0x00,0x00,0x26,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xce,0x01,0x00,0x00, -0x78,0x00,0x00,0x00,0x7a,0x00,0x00,0x00,0x41,0x00,0x08,0x00, -0xcd,0x00,0x00,0x00,0xcf,0x01,0x00,0x00,0xb8,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0x35,0x00,0x00,0x00, -0xce,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00, -0xd0,0x01,0x00,0x00,0xcf,0x01,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xd1,0x01,0x00,0x00,0xd0,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0xd2,0x01,0x00,0x00, -0xd1,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0xd3,0x01,0x00,0x00,0xd2,0x01,0x00,0x00,0x0d,0x01,0x00,0x00, -0x72,0x00,0x04,0x00,0x86,0x00,0x00,0x00,0xd4,0x01,0x00,0x00, -0xd3,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x7f,0x00,0x00,0x00, -0xd5,0x01,0x00,0x00,0xd4,0x01,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xdc,0x01,0x00,0x00,0x78,0x00,0x00,0x00, -0xdb,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0xcd,0x00,0x00,0x00, -0xdd,0x01,0x00,0x00,0xb8,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0xbb,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0xdc,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0xde,0x01,0x00,0x00, -0xdd,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xdf,0x01,0x00,0x00,0xde,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0xe0,0x01,0x00,0x00,0xdf,0x01,0x00,0x00, -0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xe1,0x01,0x00,0x00, -0xe0,0x01,0x00,0x00,0x0d,0x01,0x00,0x00,0x72,0x00,0x04,0x00, -0x86,0x00,0x00,0x00,0xe2,0x01,0x00,0x00,0xe1,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0xe3,0x01,0x00,0x00, -0xe2,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xea,0x01,0x00,0x00,0x78,0x00,0x00,0x00,0xe9,0x01,0x00,0x00, -0x41,0x00,0x08,0x00,0xcd,0x00,0x00,0x00,0xeb,0x01,0x00,0x00, -0xb8,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xbb,0x00,0x00,0x00, -0x35,0x00,0x00,0x00,0xea,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0x7f,0x00,0x00,0x00,0xec,0x01,0x00,0x00,0xeb,0x01,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xed,0x01,0x00,0x00, -0xec,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0xee,0x01,0x00,0x00,0xed,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0xef,0x01,0x00,0x00,0xee,0x01,0x00,0x00, -0x0d,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x86,0x00,0x00,0x00, -0xf0,0x01,0x00,0x00,0xef,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x7f,0x00,0x00,0x00,0xf1,0x01,0x00,0x00,0xf0,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf8,0x01,0x00,0x00, -0x78,0x00,0x00,0x00,0xf7,0x01,0x00,0x00,0x41,0x00,0x08,0x00, -0xcd,0x00,0x00,0x00,0xf9,0x01,0x00,0x00,0xb8,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0x35,0x00,0x00,0x00, -0xf8,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00, -0xfa,0x01,0x00,0x00,0xf9,0x01,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xfb,0x01,0x00,0x00,0xfa,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0xfc,0x01,0x00,0x00, -0xfb,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0xfd,0x01,0x00,0x00,0xfc,0x01,0x00,0x00,0x0d,0x01,0x00,0x00, -0x72,0x00,0x04,0x00,0x86,0x00,0x00,0x00,0xfe,0x01,0x00,0x00, -0xfd,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x7f,0x00,0x00,0x00, -0xff,0x01,0x00,0x00,0xfe,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0x7f,0x00,0x00,0x00,0x07,0x02,0x00,0x00,0xcf,0x01,0x00,0x00, -0xc2,0x00,0x05,0x00,0x7f,0x00,0x00,0x00,0x08,0x02,0x00,0x00, -0x07,0x02,0x00,0x00,0x26,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x7f,0x00,0x00,0x00,0x10,0x02,0x00,0x00,0xdd,0x01,0x00,0x00, -0xc2,0x00,0x05,0x00,0x7f,0x00,0x00,0x00,0x11,0x02,0x00,0x00, -0x10,0x02,0x00,0x00,0x26,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x7f,0x00,0x00,0x00,0x19,0x02,0x00,0x00,0xeb,0x01,0x00,0x00, -0xc2,0x00,0x05,0x00,0x7f,0x00,0x00,0x00,0x1a,0x02,0x00,0x00, -0x19,0x02,0x00,0x00,0x26,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x7f,0x00,0x00,0x00,0x22,0x02,0x00,0x00,0xf9,0x01,0x00,0x00, -0xc2,0x00,0x05,0x00,0x7f,0x00,0x00,0x00,0x23,0x02,0x00,0x00, -0x22,0x02,0x00,0x00,0x26,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x2b,0x02,0x00,0x00,0xa8,0x04,0x00,0x00, -0xa7,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x2c,0x02,0x00,0x00, -0x2d,0x02,0x00,0x00,0x28,0x02,0x00,0x00,0x1c,0x00,0x00,0x00, -0x2b,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00, -0x2e,0x02,0x00,0x00,0x2d,0x02,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x30,0x02,0x00,0x00,0x7d,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x31,0x02,0x00,0x00, -0x30,0x02,0x00,0x00,0x41,0x00,0x08,0x00,0xcd,0x00,0x00,0x00, -0x36,0x02,0x00,0x00,0xb8,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0xbb,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x72,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0x37,0x02,0x00,0x00, -0x36,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x7f,0x00,0x00,0x00, -0x39,0x02,0x00,0x00,0x37,0x02,0x00,0x00,0x88,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x3a,0x02,0x00,0x00, -0x39,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0x3b,0x02,0x00,0x00,0x3a,0x02,0x00,0x00,0xab,0x00,0x05,0x00, -0xa1,0x00,0x00,0x00,0x3c,0x02,0x00,0x00,0x3b,0x02,0x00,0x00, -0x1c,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,0x17,0x00,0x00,0x00, -0x3e,0x02,0x00,0x00,0x3c,0x02,0x00,0x00,0x3d,0x02,0x00,0x00, -0x1c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0x3f,0x02,0x00,0x00,0x31,0x02,0x00,0x00,0x3e,0x02,0x00,0x00, -0x6f,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,0x40,0x02,0x00,0x00, -0x3f,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x45,0x02,0x00,0x00,0x2b,0x02,0x00,0x00,0x12,0x00,0x00,0x00, -0x41,0x00,0x06,0x00,0x2c,0x02,0x00,0x00,0x46,0x02,0x00,0x00, -0x28,0x02,0x00,0x00,0x1c,0x00,0x00,0x00,0x45,0x02,0x00,0x00, -0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,0x47,0x02,0x00,0x00, -0x46,0x02,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x49,0x02,0x00,0x00,0x8a,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x4a,0x02,0x00,0x00,0x49,0x02,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4f,0x02,0x00,0x00, -0x72,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x41,0x00,0x08,0x00, -0xcd,0x00,0x00,0x00,0x50,0x02,0x00,0x00,0xb8,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0x30,0x00,0x00,0x00, -0x4f,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00, -0x51,0x02,0x00,0x00,0x50,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, -0x7f,0x00,0x00,0x00,0x53,0x02,0x00,0x00,0x51,0x02,0x00,0x00, -0x88,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x54,0x02,0x00,0x00,0x53,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x55,0x02,0x00,0x00,0x54,0x02,0x00,0x00, -0xab,0x00,0x05,0x00,0xa1,0x00,0x00,0x00,0x56,0x02,0x00,0x00, -0x55,0x02,0x00,0x00,0x1c,0x00,0x00,0x00,0xa9,0x00,0x06,0x00, -0x17,0x00,0x00,0x00,0x57,0x02,0x00,0x00,0x56,0x02,0x00,0x00, -0x3d,0x02,0x00,0x00,0x1c,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0x58,0x02,0x00,0x00,0x4a,0x02,0x00,0x00, -0x57,0x02,0x00,0x00,0x6f,0x00,0x04,0x00,0x8c,0x00,0x00,0x00, -0x59,0x02,0x00,0x00,0x58,0x02,0x00,0x00,0x85,0x00,0x05,0x00, -0x8c,0x00,0x00,0x00,0x5a,0x02,0x00,0x00,0x47,0x02,0x00,0x00, -0x59,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x8c,0x00,0x00,0x00, -0x5b,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x2e,0x02,0x00,0x00,0x40,0x02,0x00,0x00,0x5a,0x02,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5f,0x02,0x00,0x00, -0x2b,0x02,0x00,0x00,0x90,0x00,0x00,0x00,0x41,0x00,0x06,0x00, -0x2c,0x02,0x00,0x00,0x60,0x02,0x00,0x00,0x28,0x02,0x00,0x00, -0x1c,0x00,0x00,0x00,0x5f,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0x8c,0x00,0x00,0x00,0x61,0x02,0x00,0x00,0x60,0x02,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x63,0x02,0x00,0x00, -0x97,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0x64,0x02,0x00,0x00,0x63,0x02,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x69,0x02,0x00,0x00,0x72,0x00,0x00,0x00, -0x90,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xcd,0x00,0x00,0x00, -0x6a,0x02,0x00,0x00,0xb8,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0xbb,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x69,0x02,0x00,0x00, -0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0x6b,0x02,0x00,0x00, -0x6a,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x7f,0x00,0x00,0x00, -0x6d,0x02,0x00,0x00,0x6b,0x02,0x00,0x00,0x88,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x6e,0x02,0x00,0x00, -0x6d,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0x6f,0x02,0x00,0x00,0x6e,0x02,0x00,0x00,0xab,0x00,0x05,0x00, -0xa1,0x00,0x00,0x00,0x70,0x02,0x00,0x00,0x6f,0x02,0x00,0x00, -0x1c,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,0x17,0x00,0x00,0x00, -0x71,0x02,0x00,0x00,0x70,0x02,0x00,0x00,0x3d,0x02,0x00,0x00, -0x1c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0x72,0x02,0x00,0x00,0x64,0x02,0x00,0x00,0x71,0x02,0x00,0x00, -0x6f,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,0x73,0x02,0x00,0x00, -0x72,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x8c,0x00,0x00,0x00, -0x75,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x61,0x02,0x00,0x00,0x73,0x02,0x00,0x00,0x5b,0x02,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x79,0x02,0x00,0x00, -0x2b,0x02,0x00,0x00,0x9d,0x01,0x00,0x00,0x41,0x00,0x06,0x00, -0x2c,0x02,0x00,0x00,0x7a,0x02,0x00,0x00,0x28,0x02,0x00,0x00, -0x1c,0x00,0x00,0x00,0x79,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0x8c,0x00,0x00,0x00,0x7b,0x02,0x00,0x00,0x7a,0x02,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x7d,0x02,0x00,0x00, -0xa5,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0x7e,0x02,0x00,0x00,0x7d,0x02,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x83,0x02,0x00,0x00,0x72,0x00,0x00,0x00, -0x9d,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0xcd,0x00,0x00,0x00, -0x84,0x02,0x00,0x00,0xb8,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0xbb,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x83,0x02,0x00,0x00, -0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0x85,0x02,0x00,0x00, -0x84,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x7f,0x00,0x00,0x00, -0x87,0x02,0x00,0x00,0x85,0x02,0x00,0x00,0x88,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x88,0x02,0x00,0x00, -0x87,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0x89,0x02,0x00,0x00,0x88,0x02,0x00,0x00,0xab,0x00,0x05,0x00, -0xa1,0x00,0x00,0x00,0x8a,0x02,0x00,0x00,0x89,0x02,0x00,0x00, -0x1c,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,0x17,0x00,0x00,0x00, -0x8b,0x02,0x00,0x00,0x8a,0x02,0x00,0x00,0x3d,0x02,0x00,0x00, -0x1c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0x8c,0x02,0x00,0x00,0x7e,0x02,0x00,0x00,0x8b,0x02,0x00,0x00, -0x6f,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,0x8d,0x02,0x00,0x00, -0x8c,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x8c,0x00,0x00,0x00, -0x8f,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x7b,0x02,0x00,0x00,0x8d,0x02,0x00,0x00,0x75,0x02,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x94,0x02,0x00,0x00, -0x2b,0x02,0x00,0x00,0x74,0x00,0x00,0x00,0x41,0x00,0x06,0x00, -0x2c,0x02,0x00,0x00,0x95,0x02,0x00,0x00,0x28,0x02,0x00,0x00, -0x1c,0x00,0x00,0x00,0x94,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0x8c,0x00,0x00,0x00,0x96,0x02,0x00,0x00,0x95,0x02,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x98,0x02,0x00,0x00, -0xad,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0x99,0x02,0x00,0x00,0x98,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0x7f,0x00,0x00,0x00,0x9f,0x02,0x00,0x00,0x36,0x02,0x00,0x00, -0xc4,0x00,0x05,0x00,0x7f,0x00,0x00,0x00,0xa1,0x02,0x00,0x00, -0x88,0x00,0x00,0x00,0x82,0x00,0x00,0x00,0xc7,0x00,0x05,0x00, -0x7f,0x00,0x00,0x00,0xa2,0x02,0x00,0x00,0x9f,0x02,0x00,0x00, -0xa1,0x02,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xa3,0x02,0x00,0x00,0xa2,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0xa4,0x02,0x00,0x00,0xa3,0x02,0x00,0x00, -0xab,0x00,0x05,0x00,0xa1,0x00,0x00,0x00,0xa5,0x02,0x00,0x00, -0xa4,0x02,0x00,0x00,0x1c,0x00,0x00,0x00,0xa9,0x00,0x06,0x00, -0x17,0x00,0x00,0x00,0xa6,0x02,0x00,0x00,0xa5,0x02,0x00,0x00, -0x3d,0x02,0x00,0x00,0x1c,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0xa7,0x02,0x00,0x00,0x99,0x02,0x00,0x00, -0xa6,0x02,0x00,0x00,0x6f,0x00,0x04,0x00,0x8c,0x00,0x00,0x00, -0xa8,0x02,0x00,0x00,0xa7,0x02,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xae,0x02,0x00,0x00,0x2b,0x02,0x00,0x00, -0xad,0x02,0x00,0x00,0x41,0x00,0x06,0x00,0x2c,0x02,0x00,0x00, -0xaf,0x02,0x00,0x00,0x28,0x02,0x00,0x00,0x1c,0x00,0x00,0x00, -0xae,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00, -0xb0,0x02,0x00,0x00,0xaf,0x02,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xb2,0x02,0x00,0x00,0xb6,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0xb3,0x02,0x00,0x00, -0xb2,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00, -0xba,0x02,0x00,0x00,0x50,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, -0x7f,0x00,0x00,0x00,0xbd,0x02,0x00,0x00,0xba,0x02,0x00,0x00, -0xa1,0x02,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xbe,0x02,0x00,0x00,0xbd,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0xbf,0x02,0x00,0x00,0xbe,0x02,0x00,0x00, -0xab,0x00,0x05,0x00,0xa1,0x00,0x00,0x00,0xc0,0x02,0x00,0x00, -0xbf,0x02,0x00,0x00,0x1c,0x00,0x00,0x00,0xa9,0x00,0x06,0x00, -0x17,0x00,0x00,0x00,0xc1,0x02,0x00,0x00,0xc0,0x02,0x00,0x00, -0x3d,0x02,0x00,0x00,0x1c,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0xc2,0x02,0x00,0x00,0xb3,0x02,0x00,0x00, -0xc1,0x02,0x00,0x00,0x6f,0x00,0x04,0x00,0x8c,0x00,0x00,0x00, -0xc3,0x02,0x00,0x00,0xc2,0x02,0x00,0x00,0x85,0x00,0x05,0x00, -0x8c,0x00,0x00,0x00,0xc4,0x02,0x00,0x00,0xb0,0x02,0x00,0x00, -0xc3,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x8c,0x00,0x00,0x00, -0xc5,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x96,0x02,0x00,0x00,0xa8,0x02,0x00,0x00,0xc4,0x02,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xca,0x02,0x00,0x00, -0x2b,0x02,0x00,0x00,0xc9,0x02,0x00,0x00,0x41,0x00,0x06,0x00, -0x2c,0x02,0x00,0x00,0xcb,0x02,0x00,0x00,0x28,0x02,0x00,0x00, -0x1c,0x00,0x00,0x00,0xca,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0x8c,0x00,0x00,0x00,0xcc,0x02,0x00,0x00,0xcb,0x02,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xce,0x02,0x00,0x00, -0xbf,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0xcf,0x02,0x00,0x00,0xce,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0x7f,0x00,0x00,0x00,0xd6,0x02,0x00,0x00,0x6a,0x02,0x00,0x00, -0xc7,0x00,0x05,0x00,0x7f,0x00,0x00,0x00,0xd9,0x02,0x00,0x00, -0xd6,0x02,0x00,0x00,0xa1,0x02,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xda,0x02,0x00,0x00,0xd9,0x02,0x00,0x00, -0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0xdb,0x02,0x00,0x00, -0xda,0x02,0x00,0x00,0xab,0x00,0x05,0x00,0xa1,0x00,0x00,0x00, -0xdc,0x02,0x00,0x00,0xdb,0x02,0x00,0x00,0x1c,0x00,0x00,0x00, -0xa9,0x00,0x06,0x00,0x17,0x00,0x00,0x00,0xdd,0x02,0x00,0x00, -0xdc,0x02,0x00,0x00,0x3d,0x02,0x00,0x00,0x1c,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xde,0x02,0x00,0x00, -0xcf,0x02,0x00,0x00,0xdd,0x02,0x00,0x00,0x6f,0x00,0x04,0x00, -0x8c,0x00,0x00,0x00,0xdf,0x02,0x00,0x00,0xde,0x02,0x00,0x00, -0x0c,0x00,0x08,0x00,0x8c,0x00,0x00,0x00,0xe1,0x02,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xcc,0x02,0x00,0x00, -0xdf,0x02,0x00,0x00,0xc5,0x02,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xe6,0x02,0x00,0x00,0x2b,0x02,0x00,0x00, -0xe5,0x02,0x00,0x00,0x41,0x00,0x06,0x00,0x2c,0x02,0x00,0x00, -0xe7,0x02,0x00,0x00,0x28,0x02,0x00,0x00,0x1c,0x00,0x00,0x00, -0xe6,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00, -0xe8,0x02,0x00,0x00,0xe7,0x02,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xea,0x02,0x00,0x00,0xc8,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0xeb,0x02,0x00,0x00, -0xea,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00, -0xf2,0x02,0x00,0x00,0x84,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, -0x7f,0x00,0x00,0x00,0xf5,0x02,0x00,0x00,0xf2,0x02,0x00,0x00, -0xa1,0x02,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xf6,0x02,0x00,0x00,0xf5,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0xf7,0x02,0x00,0x00,0xf6,0x02,0x00,0x00, -0xab,0x00,0x05,0x00,0xa1,0x00,0x00,0x00,0xf8,0x02,0x00,0x00, -0xf7,0x02,0x00,0x00,0x1c,0x00,0x00,0x00,0xa9,0x00,0x06,0x00, -0x17,0x00,0x00,0x00,0xf9,0x02,0x00,0x00,0xf8,0x02,0x00,0x00, -0x3d,0x02,0x00,0x00,0x1c,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0xfa,0x02,0x00,0x00,0xeb,0x02,0x00,0x00, -0xf9,0x02,0x00,0x00,0x6f,0x00,0x04,0x00,0x8c,0x00,0x00,0x00, -0xfb,0x02,0x00,0x00,0xfa,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, -0x8c,0x00,0x00,0x00,0xfd,0x02,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0xe8,0x02,0x00,0x00,0xfb,0x02,0x00,0x00, -0xe1,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x01,0x03,0x00,0x00,0xa8,0x04,0x00,0x00,0xab,0x00,0x00,0x00, -0x41,0x00,0x06,0x00,0x2c,0x02,0x00,0x00,0x02,0x03,0x00,0x00, -0x28,0x02,0x00,0x00,0x1c,0x00,0x00,0x00,0x01,0x03,0x00,0x00, -0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,0x03,0x03,0x00,0x00, -0x02,0x03,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x05,0x03,0x00,0x00,0xd5,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x06,0x03,0x00,0x00,0x05,0x03,0x00,0x00, -0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0x0c,0x03,0x00,0x00, -0x36,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x7f,0x00,0x00,0x00, -0x0e,0x03,0x00,0x00,0x0c,0x03,0x00,0x00,0x8b,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x0f,0x03,0x00,0x00, -0x0e,0x03,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0x10,0x03,0x00,0x00,0x0f,0x03,0x00,0x00,0xab,0x00,0x05,0x00, -0xa1,0x00,0x00,0x00,0x11,0x03,0x00,0x00,0x10,0x03,0x00,0x00, -0x1c,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,0x17,0x00,0x00,0x00, -0x12,0x03,0x00,0x00,0x11,0x03,0x00,0x00,0x3d,0x02,0x00,0x00, -0x1c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0x13,0x03,0x00,0x00,0x06,0x03,0x00,0x00,0x12,0x03,0x00,0x00, -0x6f,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,0x14,0x03,0x00,0x00, -0x13,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x19,0x03,0x00,0x00,0x01,0x03,0x00,0x00,0x12,0x00,0x00,0x00, -0x41,0x00,0x06,0x00,0x2c,0x02,0x00,0x00,0x1a,0x03,0x00,0x00, -0x28,0x02,0x00,0x00,0x1c,0x00,0x00,0x00,0x19,0x03,0x00,0x00, -0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,0x1b,0x03,0x00,0x00, -0x1a,0x03,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x1d,0x03,0x00,0x00,0xe3,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x1e,0x03,0x00,0x00,0x1d,0x03,0x00,0x00, -0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0x25,0x03,0x00,0x00, -0x50,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x7f,0x00,0x00,0x00, -0x27,0x03,0x00,0x00,0x25,0x03,0x00,0x00,0x8b,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x28,0x03,0x00,0x00, -0x27,0x03,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0x29,0x03,0x00,0x00,0x28,0x03,0x00,0x00,0xab,0x00,0x05,0x00, -0xa1,0x00,0x00,0x00,0x2a,0x03,0x00,0x00,0x29,0x03,0x00,0x00, +0x93,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,0xc5,0x00,0x00,0x00, +0x41,0x00,0x08,0x00,0xc3,0x00,0x00,0x00,0xcb,0x00,0x00,0x00, +0xbf,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xc2,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0xb5,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,0xcb,0x00,0x00,0x00, +0x73,0x00,0x04,0x00,0x93,0x00,0x00,0x00,0xcd,0x00,0x00,0x00, +0xcc,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xd3,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x41,0x00,0x00,0x00, +0x41,0x00,0x08,0x00,0xd4,0x00,0x00,0x00,0xd5,0x00,0x00,0x00, +0xbf,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xc2,0x00,0x00,0x00, +0x89,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x86,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,0xd5,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xd7,0x00,0x00,0x00, +0xd6,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0xd8,0x00,0x00,0x00,0xd7,0x00,0x00,0x00,0xc7,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0xda,0x00,0x00,0x00,0xd8,0x00,0x00,0x00, +0xd9,0x00,0x00,0x00,0x72,0x00,0x04,0x00,0x8d,0x00,0x00,0x00, +0xdb,0x00,0x00,0x00,0xda,0x00,0x00,0x00,0x7c,0x00,0x04,0x00, +0x86,0x00,0x00,0x00,0xdc,0x00,0x00,0x00,0xdb,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe3,0x00,0x00,0x00, +0xd3,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x41,0x00,0x08,0x00, +0xd4,0x00,0x00,0x00,0xe4,0x00,0x00,0x00,0xbf,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0xc2,0x00,0x00,0x00,0x89,0x00,0x00,0x00, +0xe3,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x86,0x00,0x00,0x00, +0xe5,0x00,0x00,0x00,0xe4,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xe6,0x00,0x00,0x00,0xe5,0x00,0x00,0x00, +0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0xe7,0x00,0x00,0x00, +0xe6,0x00,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, +0xe8,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,0xd9,0x00,0x00,0x00, +0x72,0x00,0x04,0x00,0x8d,0x00,0x00,0x00,0xe9,0x00,0x00,0x00, +0xe8,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x86,0x00,0x00,0x00, +0xea,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xf1,0x00,0x00,0x00,0xd3,0x00,0x00,0x00, +0x67,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xd4,0x00,0x00,0x00, +0xf2,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0xc2,0x00,0x00,0x00,0x89,0x00,0x00,0x00,0xf1,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x86,0x00,0x00,0x00,0xf3,0x00,0x00,0x00, +0xf2,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xf4,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,0x7c,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,0xf4,0x00,0x00,0x00, +0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xf6,0x00,0x00,0x00, +0xf5,0x00,0x00,0x00,0xd9,0x00,0x00,0x00,0x72,0x00,0x04,0x00, +0x8d,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,0xf6,0x00,0x00,0x00, +0x7c,0x00,0x04,0x00,0x86,0x00,0x00,0x00,0xf8,0x00,0x00,0x00, +0xf7,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x00,0x01,0x00,0x00,0xd3,0x00,0x00,0x00,0xff,0x00,0x00,0x00, +0x41,0x00,0x08,0x00,0xd4,0x00,0x00,0x00,0x01,0x01,0x00,0x00, +0xbf,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xc2,0x00,0x00,0x00, +0x89,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0x86,0x00,0x00,0x00,0x02,0x01,0x00,0x00,0x01,0x01,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x03,0x01,0x00,0x00, +0x02,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0x04,0x01,0x00,0x00,0x03,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0x04,0x01,0x00,0x00, +0xd9,0x00,0x00,0x00,0x72,0x00,0x04,0x00,0x8d,0x00,0x00,0x00, +0x06,0x01,0x00,0x00,0x05,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x86,0x00,0x00,0x00,0x07,0x01,0x00,0x00,0x06,0x01,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0f,0x01,0x00,0x00, +0xd3,0x00,0x00,0x00,0x0e,0x01,0x00,0x00,0x41,0x00,0x08,0x00, +0xd4,0x00,0x00,0x00,0x10,0x01,0x00,0x00,0xbf,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0xc2,0x00,0x00,0x00,0x89,0x00,0x00,0x00, +0x0f,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x86,0x00,0x00,0x00, +0x11,0x01,0x00,0x00,0x10,0x01,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x12,0x01,0x00,0x00,0x11,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x13,0x01,0x00,0x00, +0x12,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, +0x15,0x01,0x00,0x00,0x13,0x01,0x00,0x00,0x14,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0x86,0x00,0x00,0x00,0x1c,0x01,0x00,0x00, +0xd5,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x1d,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0x1e,0x01,0x00,0x00,0x1d,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x20,0x01,0x00,0x00, +0x1e,0x01,0x00,0x00,0x1f,0x01,0x00,0x00,0xc3,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0x21,0x01,0x00,0x00,0x20,0x01,0x00,0x00, +0x30,0x00,0x00,0x00,0xc5,0x00,0x05,0x00,0x17,0x00,0x00,0x00, +0x22,0x01,0x00,0x00,0x15,0x01,0x00,0x00,0x21,0x01,0x00,0x00, +0x72,0x00,0x04,0x00,0x8d,0x00,0x00,0x00,0x23,0x01,0x00,0x00, +0x22,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x86,0x00,0x00,0x00, +0x24,0x01,0x00,0x00,0x23,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x2c,0x01,0x00,0x00,0xd3,0x00,0x00,0x00, +0x2b,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0xd4,0x00,0x00,0x00, +0x2d,0x01,0x00,0x00,0xbf,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0xc2,0x00,0x00,0x00,0x89,0x00,0x00,0x00,0x2c,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0x86,0x00,0x00,0x00,0x2e,0x01,0x00,0x00, +0x2d,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x2f,0x01,0x00,0x00,0x2e,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0x30,0x01,0x00,0x00,0x2f,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x31,0x01,0x00,0x00, +0x30,0x01,0x00,0x00,0x14,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0x86,0x00,0x00,0x00,0x39,0x01,0x00,0x00,0xe4,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x3a,0x01,0x00,0x00, +0x39,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0x3b,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0x3c,0x01,0x00,0x00,0x3b,0x01,0x00,0x00, +0x1f,0x01,0x00,0x00,0xc3,0x00,0x05,0x00,0x17,0x00,0x00,0x00, +0x3d,0x01,0x00,0x00,0x3c,0x01,0x00,0x00,0x30,0x00,0x00,0x00, +0xc5,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x3e,0x01,0x00,0x00, +0x31,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,0x72,0x00,0x04,0x00, +0x8d,0x00,0x00,0x00,0x3f,0x01,0x00,0x00,0x3e,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x86,0x00,0x00,0x00,0x40,0x01,0x00,0x00, +0x3f,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x86,0x00,0x00,0x00, +0x49,0x01,0x00,0x00,0x10,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, +0x86,0x00,0x00,0x00,0x4a,0x01,0x00,0x00,0x49,0x01,0x00,0x00, +0x26,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x4b,0x01,0x00,0x00,0x4a,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0x4c,0x01,0x00,0x00,0x4b,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x4d,0x01,0x00,0x00, +0x4c,0x01,0x00,0x00,0x14,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0x86,0x00,0x00,0x00,0x55,0x01,0x00,0x00,0xf2,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x56,0x01,0x00,0x00, +0x55,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0x57,0x01,0x00,0x00,0x56,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0x58,0x01,0x00,0x00,0x57,0x01,0x00,0x00, +0x1f,0x01,0x00,0x00,0xc3,0x00,0x05,0x00,0x17,0x00,0x00,0x00, +0x59,0x01,0x00,0x00,0x58,0x01,0x00,0x00,0x30,0x00,0x00,0x00, +0xc5,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x5a,0x01,0x00,0x00, +0x4d,0x01,0x00,0x00,0x59,0x01,0x00,0x00,0x72,0x00,0x04,0x00, +0x8d,0x00,0x00,0x00,0x5b,0x01,0x00,0x00,0x5a,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x86,0x00,0x00,0x00,0x5c,0x01,0x00,0x00, +0x5b,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x86,0x00,0x00,0x00, +0x65,0x01,0x00,0x00,0x2d,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, +0x86,0x00,0x00,0x00,0x66,0x01,0x00,0x00,0x65,0x01,0x00,0x00, +0x26,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x67,0x01,0x00,0x00,0x66,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0x68,0x01,0x00,0x00,0x67,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x69,0x01,0x00,0x00, +0x68,0x01,0x00,0x00,0x14,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0x86,0x00,0x00,0x00,0x71,0x01,0x00,0x00,0x01,0x01,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x72,0x01,0x00,0x00, +0x71,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0x73,0x01,0x00,0x00,0x72,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0x74,0x01,0x00,0x00,0x73,0x01,0x00,0x00, +0x1f,0x01,0x00,0x00,0xc3,0x00,0x05,0x00,0x17,0x00,0x00,0x00, +0x75,0x01,0x00,0x00,0x74,0x01,0x00,0x00,0x30,0x00,0x00,0x00, +0xc5,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x76,0x01,0x00,0x00, +0x69,0x01,0x00,0x00,0x75,0x01,0x00,0x00,0x72,0x00,0x04,0x00, +0x8d,0x00,0x00,0x00,0x77,0x01,0x00,0x00,0x76,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x86,0x00,0x00,0x00,0x78,0x01,0x00,0x00, +0x77,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0xd4,0x00,0x00,0x00, +0x7e,0x01,0x00,0x00,0xbf,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0xc2,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x7f,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x86,0x00,0x00,0x00,0x7f,0x01,0x00,0x00, +0x7e,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x80,0x01,0x00,0x00,0x7f,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0x81,0x01,0x00,0x00,0x80,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x82,0x01,0x00,0x00, +0x81,0x01,0x00,0x00,0x14,0x01,0x00,0x00,0x72,0x00,0x04,0x00, +0x8d,0x00,0x00,0x00,0x83,0x01,0x00,0x00,0x82,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x86,0x00,0x00,0x00,0x84,0x01,0x00,0x00, +0x83,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x8a,0x01,0x00,0x00,0x7f,0x00,0x00,0x00,0x12,0x00,0x00,0x00, +0x41,0x00,0x08,0x00,0xd4,0x00,0x00,0x00,0x8b,0x01,0x00,0x00, +0xbf,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xc2,0x00,0x00,0x00, +0x35,0x00,0x00,0x00,0x8a,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0x86,0x00,0x00,0x00,0x8c,0x01,0x00,0x00,0x8b,0x01,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x8d,0x01,0x00,0x00, +0x8c,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0x8e,0x01,0x00,0x00,0x8d,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0x8f,0x01,0x00,0x00,0x8e,0x01,0x00,0x00, +0x14,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x8d,0x00,0x00,0x00, +0x90,0x01,0x00,0x00,0x8f,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x86,0x00,0x00,0x00,0x91,0x01,0x00,0x00,0x90,0x01,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x97,0x01,0x00,0x00, +0x7f,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x41,0x00,0x08,0x00, +0xd4,0x00,0x00,0x00,0x98,0x01,0x00,0x00,0xbf,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0xc2,0x00,0x00,0x00,0x35,0x00,0x00,0x00, +0x97,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x86,0x00,0x00,0x00, +0x99,0x01,0x00,0x00,0x98,0x01,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x9a,0x01,0x00,0x00,0x99,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x9b,0x01,0x00,0x00, +0x9a,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, +0x9c,0x01,0x00,0x00,0x9b,0x01,0x00,0x00,0x14,0x01,0x00,0x00, +0x72,0x00,0x04,0x00,0x8d,0x00,0x00,0x00,0x9d,0x01,0x00,0x00, +0x9c,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x86,0x00,0x00,0x00, +0x9e,0x01,0x00,0x00,0x9d,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xa5,0x01,0x00,0x00,0x7f,0x00,0x00,0x00, +0xa4,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0xd4,0x00,0x00,0x00, +0xa6,0x01,0x00,0x00,0xbf,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0xc2,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0xa5,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0x86,0x00,0x00,0x00,0xa7,0x01,0x00,0x00, +0xa6,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xa8,0x01,0x00,0x00,0xa7,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0xa9,0x01,0x00,0x00,0xa8,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xaa,0x01,0x00,0x00, +0xa9,0x01,0x00,0x00,0x14,0x01,0x00,0x00,0x72,0x00,0x04,0x00, +0x8d,0x00,0x00,0x00,0xab,0x01,0x00,0x00,0xaa,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x86,0x00,0x00,0x00,0xac,0x01,0x00,0x00, +0xab,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x86,0x00,0x00,0x00, +0xb3,0x01,0x00,0x00,0x7e,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, +0x86,0x00,0x00,0x00,0xb4,0x01,0x00,0x00,0xb3,0x01,0x00,0x00, +0x26,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x86,0x00,0x00,0x00, +0xbc,0x01,0x00,0x00,0x8b,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, +0x86,0x00,0x00,0x00,0xbd,0x01,0x00,0x00,0xbc,0x01,0x00,0x00, +0x26,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x86,0x00,0x00,0x00, +0xc5,0x01,0x00,0x00,0x98,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, +0x86,0x00,0x00,0x00,0xc6,0x01,0x00,0x00,0xc5,0x01,0x00,0x00, +0x26,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x86,0x00,0x00,0x00, +0xce,0x01,0x00,0x00,0xa6,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, +0x86,0x00,0x00,0x00,0xcf,0x01,0x00,0x00,0xce,0x01,0x00,0x00, +0x26,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xd5,0x01,0x00,0x00,0x7f,0x00,0x00,0x00,0x81,0x00,0x00,0x00, +0x41,0x00,0x08,0x00,0xd4,0x00,0x00,0x00,0xd6,0x01,0x00,0x00, +0xbf,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xc2,0x00,0x00,0x00, +0x35,0x00,0x00,0x00,0xd5,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0x86,0x00,0x00,0x00,0xd7,0x01,0x00,0x00,0xd6,0x01,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xd8,0x01,0x00,0x00, +0xd7,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0xd9,0x01,0x00,0x00,0xd8,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0xda,0x01,0x00,0x00,0xd9,0x01,0x00,0x00, +0x14,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x8d,0x00,0x00,0x00, +0xdb,0x01,0x00,0x00,0xda,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x86,0x00,0x00,0x00,0xdc,0x01,0x00,0x00,0xdb,0x01,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe3,0x01,0x00,0x00, +0x7f,0x00,0x00,0x00,0xe2,0x01,0x00,0x00,0x41,0x00,0x08,0x00, +0xd4,0x00,0x00,0x00,0xe4,0x01,0x00,0x00,0xbf,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0xc2,0x00,0x00,0x00,0x35,0x00,0x00,0x00, +0xe3,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x86,0x00,0x00,0x00, +0xe5,0x01,0x00,0x00,0xe4,0x01,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xe6,0x01,0x00,0x00,0xe5,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0xe7,0x01,0x00,0x00, +0xe6,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, +0xe8,0x01,0x00,0x00,0xe7,0x01,0x00,0x00,0x14,0x01,0x00,0x00, +0x72,0x00,0x04,0x00,0x8d,0x00,0x00,0x00,0xe9,0x01,0x00,0x00, +0xe8,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x86,0x00,0x00,0x00, +0xea,0x01,0x00,0x00,0xe9,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xf1,0x01,0x00,0x00,0x7f,0x00,0x00,0x00, +0xf0,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0xd4,0x00,0x00,0x00, +0xf2,0x01,0x00,0x00,0xbf,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0xc2,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0xf1,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0x86,0x00,0x00,0x00,0xf3,0x01,0x00,0x00, +0xf2,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xf4,0x01,0x00,0x00,0xf3,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0xf5,0x01,0x00,0x00,0xf4,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xf6,0x01,0x00,0x00, +0xf5,0x01,0x00,0x00,0x14,0x01,0x00,0x00,0x72,0x00,0x04,0x00, +0x8d,0x00,0x00,0x00,0xf7,0x01,0x00,0x00,0xf6,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x86,0x00,0x00,0x00,0xf8,0x01,0x00,0x00, +0xf7,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xff,0x01,0x00,0x00,0x7f,0x00,0x00,0x00,0xfe,0x01,0x00,0x00, +0x41,0x00,0x08,0x00,0xd4,0x00,0x00,0x00,0x00,0x02,0x00,0x00, +0xbf,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xc2,0x00,0x00,0x00, +0x35,0x00,0x00,0x00,0xff,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0x86,0x00,0x00,0x00,0x01,0x02,0x00,0x00,0x00,0x02,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x02,0x02,0x00,0x00, +0x01,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0x03,0x02,0x00,0x00,0x02,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0x04,0x02,0x00,0x00,0x03,0x02,0x00,0x00, +0x14,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x8d,0x00,0x00,0x00, +0x05,0x02,0x00,0x00,0x04,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, +0x86,0x00,0x00,0x00,0x06,0x02,0x00,0x00,0x05,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0x86,0x00,0x00,0x00,0x0e,0x02,0x00,0x00, +0xd6,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x86,0x00,0x00,0x00, +0x0f,0x02,0x00,0x00,0x0e,0x02,0x00,0x00,0x26,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x86,0x00,0x00,0x00,0x17,0x02,0x00,0x00, +0xe4,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x86,0x00,0x00,0x00, +0x18,0x02,0x00,0x00,0x17,0x02,0x00,0x00,0x26,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x86,0x00,0x00,0x00,0x20,0x02,0x00,0x00, +0xf2,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x86,0x00,0x00,0x00, +0x21,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x26,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x86,0x00,0x00,0x00,0x29,0x02,0x00,0x00, +0x00,0x02,0x00,0x00,0xc2,0x00,0x05,0x00,0x86,0x00,0x00,0x00, +0x2a,0x02,0x00,0x00,0x29,0x02,0x00,0x00,0x26,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x32,0x02,0x00,0x00, +0xaf,0x04,0x00,0x00,0xae,0x00,0x00,0x00,0x41,0x00,0x06,0x00, +0x33,0x02,0x00,0x00,0x34,0x02,0x00,0x00,0x2f,0x02,0x00,0x00, +0x1c,0x00,0x00,0x00,0x32,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0x93,0x00,0x00,0x00,0x35,0x02,0x00,0x00,0x34,0x02,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x37,0x02,0x00,0x00, +0x84,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0x38,0x02,0x00,0x00,0x37,0x02,0x00,0x00,0x41,0x00,0x08,0x00, +0xd4,0x00,0x00,0x00,0x3d,0x02,0x00,0x00,0xbf,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0xc2,0x00,0x00,0x00,0x30,0x00,0x00,0x00, +0x79,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x86,0x00,0x00,0x00, +0x3e,0x02,0x00,0x00,0x3d,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, +0x86,0x00,0x00,0x00,0x40,0x02,0x00,0x00,0x3e,0x02,0x00,0x00, +0x8f,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x41,0x02,0x00,0x00,0x40,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0x42,0x02,0x00,0x00,0x41,0x02,0x00,0x00, +0xab,0x00,0x05,0x00,0xa8,0x00,0x00,0x00,0x43,0x02,0x00,0x00, +0x42,0x02,0x00,0x00,0x1c,0x00,0x00,0x00,0xa9,0x00,0x06,0x00, +0x17,0x00,0x00,0x00,0x45,0x02,0x00,0x00,0x43,0x02,0x00,0x00, +0x44,0x02,0x00,0x00,0x1c,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0x46,0x02,0x00,0x00,0x38,0x02,0x00,0x00, +0x45,0x02,0x00,0x00,0x6f,0x00,0x04,0x00,0x93,0x00,0x00,0x00, +0x47,0x02,0x00,0x00,0x46,0x02,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x4c,0x02,0x00,0x00,0x32,0x02,0x00,0x00, +0x12,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x33,0x02,0x00,0x00, +0x4d,0x02,0x00,0x00,0x2f,0x02,0x00,0x00,0x1c,0x00,0x00,0x00, +0x4c,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x93,0x00,0x00,0x00, +0x4e,0x02,0x00,0x00,0x4d,0x02,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x50,0x02,0x00,0x00,0x91,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x51,0x02,0x00,0x00, +0x50,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x56,0x02,0x00,0x00,0x79,0x00,0x00,0x00,0x12,0x00,0x00,0x00, +0x41,0x00,0x08,0x00,0xd4,0x00,0x00,0x00,0x57,0x02,0x00,0x00, +0xbf,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xc2,0x00,0x00,0x00, +0x30,0x00,0x00,0x00,0x56,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0x86,0x00,0x00,0x00,0x58,0x02,0x00,0x00,0x57,0x02,0x00,0x00, +0xc7,0x00,0x05,0x00,0x86,0x00,0x00,0x00,0x5a,0x02,0x00,0x00, +0x58,0x02,0x00,0x00,0x8f,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x5b,0x02,0x00,0x00,0x5a,0x02,0x00,0x00, +0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x5c,0x02,0x00,0x00, +0x5b,0x02,0x00,0x00,0xab,0x00,0x05,0x00,0xa8,0x00,0x00,0x00, +0x5d,0x02,0x00,0x00,0x5c,0x02,0x00,0x00,0x1c,0x00,0x00,0x00, +0xa9,0x00,0x06,0x00,0x17,0x00,0x00,0x00,0x5e,0x02,0x00,0x00, +0x5d,0x02,0x00,0x00,0x44,0x02,0x00,0x00,0x1c,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x5f,0x02,0x00,0x00, +0x51,0x02,0x00,0x00,0x5e,0x02,0x00,0x00,0x6f,0x00,0x04,0x00, +0x93,0x00,0x00,0x00,0x60,0x02,0x00,0x00,0x5f,0x02,0x00,0x00, +0x85,0x00,0x05,0x00,0x93,0x00,0x00,0x00,0x61,0x02,0x00,0x00, +0x4e,0x02,0x00,0x00,0x60,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, +0x93,0x00,0x00,0x00,0x62,0x02,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x35,0x02,0x00,0x00,0x47,0x02,0x00,0x00, +0x61,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x66,0x02,0x00,0x00,0x32,0x02,0x00,0x00,0x97,0x00,0x00,0x00, +0x41,0x00,0x06,0x00,0x33,0x02,0x00,0x00,0x67,0x02,0x00,0x00, +0x2f,0x02,0x00,0x00,0x1c,0x00,0x00,0x00,0x66,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0x93,0x00,0x00,0x00,0x68,0x02,0x00,0x00, +0x67,0x02,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x6a,0x02,0x00,0x00,0x9e,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0x6b,0x02,0x00,0x00,0x6a,0x02,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x70,0x02,0x00,0x00, +0x79,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x41,0x00,0x08,0x00, +0xd4,0x00,0x00,0x00,0x71,0x02,0x00,0x00,0xbf,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0xc2,0x00,0x00,0x00,0x30,0x00,0x00,0x00, +0x70,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x86,0x00,0x00,0x00, +0x72,0x02,0x00,0x00,0x71,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, +0x86,0x00,0x00,0x00,0x74,0x02,0x00,0x00,0x72,0x02,0x00,0x00, +0x8f,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x75,0x02,0x00,0x00,0x74,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0x76,0x02,0x00,0x00,0x75,0x02,0x00,0x00, +0xab,0x00,0x05,0x00,0xa8,0x00,0x00,0x00,0x77,0x02,0x00,0x00, +0x76,0x02,0x00,0x00,0x1c,0x00,0x00,0x00,0xa9,0x00,0x06,0x00, +0x17,0x00,0x00,0x00,0x78,0x02,0x00,0x00,0x77,0x02,0x00,0x00, +0x44,0x02,0x00,0x00,0x1c,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0x79,0x02,0x00,0x00,0x6b,0x02,0x00,0x00, +0x78,0x02,0x00,0x00,0x6f,0x00,0x04,0x00,0x93,0x00,0x00,0x00, +0x7a,0x02,0x00,0x00,0x79,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, +0x93,0x00,0x00,0x00,0x7c,0x02,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x68,0x02,0x00,0x00,0x7a,0x02,0x00,0x00, +0x62,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x80,0x02,0x00,0x00,0x32,0x02,0x00,0x00,0xa4,0x01,0x00,0x00, +0x41,0x00,0x06,0x00,0x33,0x02,0x00,0x00,0x81,0x02,0x00,0x00, +0x2f,0x02,0x00,0x00,0x1c,0x00,0x00,0x00,0x80,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0x93,0x00,0x00,0x00,0x82,0x02,0x00,0x00, +0x81,0x02,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x84,0x02,0x00,0x00,0xac,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0x85,0x02,0x00,0x00,0x84,0x02,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8a,0x02,0x00,0x00, +0x79,0x00,0x00,0x00,0xa4,0x01,0x00,0x00,0x41,0x00,0x08,0x00, +0xd4,0x00,0x00,0x00,0x8b,0x02,0x00,0x00,0xbf,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0xc2,0x00,0x00,0x00,0x30,0x00,0x00,0x00, +0x8a,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x86,0x00,0x00,0x00, +0x8c,0x02,0x00,0x00,0x8b,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, +0x86,0x00,0x00,0x00,0x8e,0x02,0x00,0x00,0x8c,0x02,0x00,0x00, +0x8f,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x8f,0x02,0x00,0x00,0x8e,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0x90,0x02,0x00,0x00,0x8f,0x02,0x00,0x00, +0xab,0x00,0x05,0x00,0xa8,0x00,0x00,0x00,0x91,0x02,0x00,0x00, +0x90,0x02,0x00,0x00,0x1c,0x00,0x00,0x00,0xa9,0x00,0x06,0x00, +0x17,0x00,0x00,0x00,0x92,0x02,0x00,0x00,0x91,0x02,0x00,0x00, +0x44,0x02,0x00,0x00,0x1c,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0x93,0x02,0x00,0x00,0x85,0x02,0x00,0x00, +0x92,0x02,0x00,0x00,0x6f,0x00,0x04,0x00,0x93,0x00,0x00,0x00, +0x94,0x02,0x00,0x00,0x93,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, +0x93,0x00,0x00,0x00,0x96,0x02,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x82,0x02,0x00,0x00,0x94,0x02,0x00,0x00, +0x7c,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x9b,0x02,0x00,0x00,0x32,0x02,0x00,0x00,0x7b,0x00,0x00,0x00, +0x41,0x00,0x06,0x00,0x33,0x02,0x00,0x00,0x9c,0x02,0x00,0x00, +0x2f,0x02,0x00,0x00,0x1c,0x00,0x00,0x00,0x9b,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0x93,0x00,0x00,0x00,0x9d,0x02,0x00,0x00, +0x9c,0x02,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x9f,0x02,0x00,0x00,0xb4,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0xa0,0x02,0x00,0x00,0x9f,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0x86,0x00,0x00,0x00,0xa6,0x02,0x00,0x00, +0x3d,0x02,0x00,0x00,0xc4,0x00,0x05,0x00,0x86,0x00,0x00,0x00, +0xa8,0x02,0x00,0x00,0x8f,0x00,0x00,0x00,0x89,0x00,0x00,0x00, +0xc7,0x00,0x05,0x00,0x86,0x00,0x00,0x00,0xa9,0x02,0x00,0x00, +0xa6,0x02,0x00,0x00,0xa8,0x02,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xaa,0x02,0x00,0x00,0xa9,0x02,0x00,0x00, +0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0xab,0x02,0x00,0x00, +0xaa,0x02,0x00,0x00,0xab,0x00,0x05,0x00,0xa8,0x00,0x00,0x00, +0xac,0x02,0x00,0x00,0xab,0x02,0x00,0x00,0x1c,0x00,0x00,0x00, +0xa9,0x00,0x06,0x00,0x17,0x00,0x00,0x00,0xad,0x02,0x00,0x00, +0xac,0x02,0x00,0x00,0x44,0x02,0x00,0x00,0x1c,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xae,0x02,0x00,0x00, +0xa0,0x02,0x00,0x00,0xad,0x02,0x00,0x00,0x6f,0x00,0x04,0x00, +0x93,0x00,0x00,0x00,0xaf,0x02,0x00,0x00,0xae,0x02,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb5,0x02,0x00,0x00, +0x32,0x02,0x00,0x00,0xb4,0x02,0x00,0x00,0x41,0x00,0x06,0x00, +0x33,0x02,0x00,0x00,0xb6,0x02,0x00,0x00,0x2f,0x02,0x00,0x00, +0x1c,0x00,0x00,0x00,0xb5,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0x93,0x00,0x00,0x00,0xb7,0x02,0x00,0x00,0xb6,0x02,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xb9,0x02,0x00,0x00, +0xbd,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0xba,0x02,0x00,0x00,0xb9,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0x86,0x00,0x00,0x00,0xc1,0x02,0x00,0x00,0x57,0x02,0x00,0x00, +0xc7,0x00,0x05,0x00,0x86,0x00,0x00,0x00,0xc4,0x02,0x00,0x00, +0xc1,0x02,0x00,0x00,0xa8,0x02,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xc5,0x02,0x00,0x00,0xc4,0x02,0x00,0x00, +0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0xc6,0x02,0x00,0x00, +0xc5,0x02,0x00,0x00,0xab,0x00,0x05,0x00,0xa8,0x00,0x00,0x00, +0xc7,0x02,0x00,0x00,0xc6,0x02,0x00,0x00,0x1c,0x00,0x00,0x00, +0xa9,0x00,0x06,0x00,0x17,0x00,0x00,0x00,0xc8,0x02,0x00,0x00, +0xc7,0x02,0x00,0x00,0x44,0x02,0x00,0x00,0x1c,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xc9,0x02,0x00,0x00, +0xba,0x02,0x00,0x00,0xc8,0x02,0x00,0x00,0x6f,0x00,0x04,0x00, +0x93,0x00,0x00,0x00,0xca,0x02,0x00,0x00,0xc9,0x02,0x00,0x00, +0x85,0x00,0x05,0x00,0x93,0x00,0x00,0x00,0xcb,0x02,0x00,0x00, +0xb7,0x02,0x00,0x00,0xca,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, +0x93,0x00,0x00,0x00,0xcc,0x02,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x9d,0x02,0x00,0x00,0xaf,0x02,0x00,0x00, +0xcb,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xd1,0x02,0x00,0x00,0x32,0x02,0x00,0x00,0xd0,0x02,0x00,0x00, +0x41,0x00,0x06,0x00,0x33,0x02,0x00,0x00,0xd2,0x02,0x00,0x00, +0x2f,0x02,0x00,0x00,0x1c,0x00,0x00,0x00,0xd1,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0x93,0x00,0x00,0x00,0xd3,0x02,0x00,0x00, +0xd2,0x02,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xd5,0x02,0x00,0x00,0xc6,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0xd6,0x02,0x00,0x00,0xd5,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0x86,0x00,0x00,0x00,0xdd,0x02,0x00,0x00, +0x71,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x86,0x00,0x00,0x00, +0xe0,0x02,0x00,0x00,0xdd,0x02,0x00,0x00,0xa8,0x02,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xe1,0x02,0x00,0x00, +0xe0,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0xe2,0x02,0x00,0x00,0xe1,0x02,0x00,0x00,0xab,0x00,0x05,0x00, +0xa8,0x00,0x00,0x00,0xe3,0x02,0x00,0x00,0xe2,0x02,0x00,0x00, 0x1c,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,0x17,0x00,0x00,0x00, -0x2b,0x03,0x00,0x00,0x2a,0x03,0x00,0x00,0x3d,0x02,0x00,0x00, +0xe4,0x02,0x00,0x00,0xe3,0x02,0x00,0x00,0x44,0x02,0x00,0x00, 0x1c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0x2c,0x03,0x00,0x00,0x1e,0x03,0x00,0x00,0x2b,0x03,0x00,0x00, -0x6f,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,0x2d,0x03,0x00,0x00, -0x2c,0x03,0x00,0x00,0x85,0x00,0x05,0x00,0x8c,0x00,0x00,0x00, -0x2e,0x03,0x00,0x00,0x1b,0x03,0x00,0x00,0x2d,0x03,0x00,0x00, -0x0c,0x00,0x08,0x00,0x8c,0x00,0x00,0x00,0x2f,0x03,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x03,0x03,0x00,0x00, -0x14,0x03,0x00,0x00,0x2e,0x03,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x33,0x03,0x00,0x00,0x01,0x03,0x00,0x00, -0x90,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x2c,0x02,0x00,0x00, -0x34,0x03,0x00,0x00,0x28,0x02,0x00,0x00,0x1c,0x00,0x00,0x00, -0x33,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00, -0x35,0x03,0x00,0x00,0x34,0x03,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x37,0x03,0x00,0x00,0xf1,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x38,0x03,0x00,0x00, -0x37,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00, -0x3f,0x03,0x00,0x00,0x6a,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, -0x7f,0x00,0x00,0x00,0x41,0x03,0x00,0x00,0x3f,0x03,0x00,0x00, -0x8b,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x42,0x03,0x00,0x00,0x41,0x03,0x00,0x00,0x7c,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x43,0x03,0x00,0x00,0x42,0x03,0x00,0x00, -0xab,0x00,0x05,0x00,0xa1,0x00,0x00,0x00,0x44,0x03,0x00,0x00, -0x43,0x03,0x00,0x00,0x1c,0x00,0x00,0x00,0xa9,0x00,0x06,0x00, -0x17,0x00,0x00,0x00,0x45,0x03,0x00,0x00,0x44,0x03,0x00,0x00, -0x3d,0x02,0x00,0x00,0x1c,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0x46,0x03,0x00,0x00,0x38,0x03,0x00,0x00, -0x45,0x03,0x00,0x00,0x6f,0x00,0x04,0x00,0x8c,0x00,0x00,0x00, -0x47,0x03,0x00,0x00,0x46,0x03,0x00,0x00,0x0c,0x00,0x08,0x00, -0x8c,0x00,0x00,0x00,0x49,0x03,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0x35,0x03,0x00,0x00,0x47,0x03,0x00,0x00, -0x2f,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x4d,0x03,0x00,0x00,0x01,0x03,0x00,0x00,0x9d,0x01,0x00,0x00, -0x41,0x00,0x06,0x00,0x2c,0x02,0x00,0x00,0x4e,0x03,0x00,0x00, -0x28,0x02,0x00,0x00,0x1c,0x00,0x00,0x00,0x4d,0x03,0x00,0x00, -0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,0x4f,0x03,0x00,0x00, -0x4e,0x03,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x51,0x03,0x00,0x00,0xff,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x52,0x03,0x00,0x00,0x51,0x03,0x00,0x00, -0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0x59,0x03,0x00,0x00, -0x84,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x7f,0x00,0x00,0x00, -0x5b,0x03,0x00,0x00,0x59,0x03,0x00,0x00,0x8b,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x5c,0x03,0x00,0x00, -0x5b,0x03,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0x5d,0x03,0x00,0x00,0x5c,0x03,0x00,0x00,0xab,0x00,0x05,0x00, -0xa1,0x00,0x00,0x00,0x5e,0x03,0x00,0x00,0x5d,0x03,0x00,0x00, +0xe5,0x02,0x00,0x00,0xd6,0x02,0x00,0x00,0xe4,0x02,0x00,0x00, +0x6f,0x00,0x04,0x00,0x93,0x00,0x00,0x00,0xe6,0x02,0x00,0x00, +0xe5,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x93,0x00,0x00,0x00, +0xe8,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0xd3,0x02,0x00,0x00,0xe6,0x02,0x00,0x00,0xcc,0x02,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xed,0x02,0x00,0x00, +0x32,0x02,0x00,0x00,0xec,0x02,0x00,0x00,0x41,0x00,0x06,0x00, +0x33,0x02,0x00,0x00,0xee,0x02,0x00,0x00,0x2f,0x02,0x00,0x00, +0x1c,0x00,0x00,0x00,0xed,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0x93,0x00,0x00,0x00,0xef,0x02,0x00,0x00,0xee,0x02,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xf1,0x02,0x00,0x00, +0xcf,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0xf2,0x02,0x00,0x00,0xf1,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0x86,0x00,0x00,0x00,0xf9,0x02,0x00,0x00,0x8b,0x02,0x00,0x00, +0xc7,0x00,0x05,0x00,0x86,0x00,0x00,0x00,0xfc,0x02,0x00,0x00, +0xf9,0x02,0x00,0x00,0xa8,0x02,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xfd,0x02,0x00,0x00,0xfc,0x02,0x00,0x00, +0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0xfe,0x02,0x00,0x00, +0xfd,0x02,0x00,0x00,0xab,0x00,0x05,0x00,0xa8,0x00,0x00,0x00, +0xff,0x02,0x00,0x00,0xfe,0x02,0x00,0x00,0x1c,0x00,0x00,0x00, +0xa9,0x00,0x06,0x00,0x17,0x00,0x00,0x00,0x00,0x03,0x00,0x00, +0xff,0x02,0x00,0x00,0x44,0x02,0x00,0x00,0x1c,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x01,0x03,0x00,0x00, +0xf2,0x02,0x00,0x00,0x00,0x03,0x00,0x00,0x6f,0x00,0x04,0x00, +0x93,0x00,0x00,0x00,0x02,0x03,0x00,0x00,0x01,0x03,0x00,0x00, +0x0c,0x00,0x08,0x00,0x93,0x00,0x00,0x00,0x04,0x03,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xef,0x02,0x00,0x00, +0x02,0x03,0x00,0x00,0xe8,0x02,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x08,0x03,0x00,0x00,0xaf,0x04,0x00,0x00, +0xb2,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x33,0x02,0x00,0x00, +0x09,0x03,0x00,0x00,0x2f,0x02,0x00,0x00,0x1c,0x00,0x00,0x00, +0x08,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x93,0x00,0x00,0x00, +0x0a,0x03,0x00,0x00,0x09,0x03,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x0c,0x03,0x00,0x00,0xdc,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x0d,0x03,0x00,0x00, +0x0c,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x86,0x00,0x00,0x00, +0x13,0x03,0x00,0x00,0x3d,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, +0x86,0x00,0x00,0x00,0x15,0x03,0x00,0x00,0x13,0x03,0x00,0x00, +0x92,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x16,0x03,0x00,0x00,0x15,0x03,0x00,0x00,0x7c,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0x17,0x03,0x00,0x00,0x16,0x03,0x00,0x00, +0xab,0x00,0x05,0x00,0xa8,0x00,0x00,0x00,0x18,0x03,0x00,0x00, +0x17,0x03,0x00,0x00,0x1c,0x00,0x00,0x00,0xa9,0x00,0x06,0x00, +0x17,0x00,0x00,0x00,0x19,0x03,0x00,0x00,0x18,0x03,0x00,0x00, +0x44,0x02,0x00,0x00,0x1c,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0x1a,0x03,0x00,0x00,0x0d,0x03,0x00,0x00, +0x19,0x03,0x00,0x00,0x6f,0x00,0x04,0x00,0x93,0x00,0x00,0x00, +0x1b,0x03,0x00,0x00,0x1a,0x03,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x20,0x03,0x00,0x00,0x08,0x03,0x00,0x00, +0x12,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x33,0x02,0x00,0x00, +0x21,0x03,0x00,0x00,0x2f,0x02,0x00,0x00,0x1c,0x00,0x00,0x00, +0x20,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x93,0x00,0x00,0x00, +0x22,0x03,0x00,0x00,0x21,0x03,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x24,0x03,0x00,0x00,0xea,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x25,0x03,0x00,0x00, +0x24,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x86,0x00,0x00,0x00, +0x2c,0x03,0x00,0x00,0x57,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, +0x86,0x00,0x00,0x00,0x2e,0x03,0x00,0x00,0x2c,0x03,0x00,0x00, +0x92,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x2f,0x03,0x00,0x00,0x2e,0x03,0x00,0x00,0x7c,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0x30,0x03,0x00,0x00,0x2f,0x03,0x00,0x00, +0xab,0x00,0x05,0x00,0xa8,0x00,0x00,0x00,0x31,0x03,0x00,0x00, +0x30,0x03,0x00,0x00,0x1c,0x00,0x00,0x00,0xa9,0x00,0x06,0x00, +0x17,0x00,0x00,0x00,0x32,0x03,0x00,0x00,0x31,0x03,0x00,0x00, +0x44,0x02,0x00,0x00,0x1c,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0x33,0x03,0x00,0x00,0x25,0x03,0x00,0x00, +0x32,0x03,0x00,0x00,0x6f,0x00,0x04,0x00,0x93,0x00,0x00,0x00, +0x34,0x03,0x00,0x00,0x33,0x03,0x00,0x00,0x85,0x00,0x05,0x00, +0x93,0x00,0x00,0x00,0x35,0x03,0x00,0x00,0x22,0x03,0x00,0x00, +0x34,0x03,0x00,0x00,0x0c,0x00,0x08,0x00,0x93,0x00,0x00,0x00, +0x36,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0x0a,0x03,0x00,0x00,0x1b,0x03,0x00,0x00,0x35,0x03,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3a,0x03,0x00,0x00, +0x08,0x03,0x00,0x00,0x97,0x00,0x00,0x00,0x41,0x00,0x06,0x00, +0x33,0x02,0x00,0x00,0x3b,0x03,0x00,0x00,0x2f,0x02,0x00,0x00, +0x1c,0x00,0x00,0x00,0x3a,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, +0x93,0x00,0x00,0x00,0x3c,0x03,0x00,0x00,0x3b,0x03,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x3e,0x03,0x00,0x00, +0xf8,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0x3f,0x03,0x00,0x00,0x3e,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, +0x86,0x00,0x00,0x00,0x46,0x03,0x00,0x00,0x71,0x02,0x00,0x00, +0xc7,0x00,0x05,0x00,0x86,0x00,0x00,0x00,0x48,0x03,0x00,0x00, +0x46,0x03,0x00,0x00,0x92,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x49,0x03,0x00,0x00,0x48,0x03,0x00,0x00, +0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x4a,0x03,0x00,0x00, +0x49,0x03,0x00,0x00,0xab,0x00,0x05,0x00,0xa8,0x00,0x00,0x00, +0x4b,0x03,0x00,0x00,0x4a,0x03,0x00,0x00,0x1c,0x00,0x00,0x00, +0xa9,0x00,0x06,0x00,0x17,0x00,0x00,0x00,0x4c,0x03,0x00,0x00, +0x4b,0x03,0x00,0x00,0x44,0x02,0x00,0x00,0x1c,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x4d,0x03,0x00,0x00, +0x3f,0x03,0x00,0x00,0x4c,0x03,0x00,0x00,0x6f,0x00,0x04,0x00, +0x93,0x00,0x00,0x00,0x4e,0x03,0x00,0x00,0x4d,0x03,0x00,0x00, +0x0c,0x00,0x08,0x00,0x93,0x00,0x00,0x00,0x50,0x03,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x3c,0x03,0x00,0x00, +0x4e,0x03,0x00,0x00,0x36,0x03,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x54,0x03,0x00,0x00,0x08,0x03,0x00,0x00, +0xa4,0x01,0x00,0x00,0x41,0x00,0x06,0x00,0x33,0x02,0x00,0x00, +0x55,0x03,0x00,0x00,0x2f,0x02,0x00,0x00,0x1c,0x00,0x00,0x00, +0x54,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x93,0x00,0x00,0x00, +0x56,0x03,0x00,0x00,0x55,0x03,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x58,0x03,0x00,0x00,0x06,0x02,0x00,0x00, +0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x59,0x03,0x00,0x00, +0x58,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x86,0x00,0x00,0x00, +0x60,0x03,0x00,0x00,0x8b,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, +0x86,0x00,0x00,0x00,0x62,0x03,0x00,0x00,0x60,0x03,0x00,0x00, +0x92,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x63,0x03,0x00,0x00,0x62,0x03,0x00,0x00,0x7c,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0x64,0x03,0x00,0x00,0x63,0x03,0x00,0x00, +0xab,0x00,0x05,0x00,0xa8,0x00,0x00,0x00,0x65,0x03,0x00,0x00, +0x64,0x03,0x00,0x00,0x1c,0x00,0x00,0x00,0xa9,0x00,0x06,0x00, +0x17,0x00,0x00,0x00,0x66,0x03,0x00,0x00,0x65,0x03,0x00,0x00, +0x44,0x02,0x00,0x00,0x1c,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0x67,0x03,0x00,0x00,0x59,0x03,0x00,0x00, +0x66,0x03,0x00,0x00,0x6f,0x00,0x04,0x00,0x93,0x00,0x00,0x00, +0x68,0x03,0x00,0x00,0x67,0x03,0x00,0x00,0x0c,0x00,0x08,0x00, +0x93,0x00,0x00,0x00,0x6a,0x03,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x56,0x03,0x00,0x00,0x68,0x03,0x00,0x00, +0x50,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x6f,0x03,0x00,0x00,0x08,0x03,0x00,0x00,0x7b,0x00,0x00,0x00, +0x41,0x00,0x06,0x00,0x33,0x02,0x00,0x00,0x70,0x03,0x00,0x00, +0x2f,0x02,0x00,0x00,0x1c,0x00,0x00,0x00,0x6f,0x03,0x00,0x00, +0x3d,0x00,0x04,0x00,0x93,0x00,0x00,0x00,0x71,0x03,0x00,0x00, +0x70,0x03,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x73,0x03,0x00,0x00,0x0f,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0x74,0x03,0x00,0x00,0x73,0x03,0x00,0x00, +0x3d,0x00,0x04,0x00,0x86,0x00,0x00,0x00,0x7a,0x03,0x00,0x00, +0x3d,0x02,0x00,0x00,0xc4,0x00,0x05,0x00,0x86,0x00,0x00,0x00, +0x7c,0x03,0x00,0x00,0x92,0x00,0x00,0x00,0x89,0x00,0x00,0x00, +0xc7,0x00,0x05,0x00,0x86,0x00,0x00,0x00,0x7d,0x03,0x00,0x00, +0x7a,0x03,0x00,0x00,0x7c,0x03,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x7e,0x03,0x00,0x00,0x7d,0x03,0x00,0x00, +0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x7f,0x03,0x00,0x00, +0x7e,0x03,0x00,0x00,0xab,0x00,0x05,0x00,0xa8,0x00,0x00,0x00, +0x80,0x03,0x00,0x00,0x7f,0x03,0x00,0x00,0x1c,0x00,0x00,0x00, +0xa9,0x00,0x06,0x00,0x17,0x00,0x00,0x00,0x81,0x03,0x00,0x00, +0x80,0x03,0x00,0x00,0x44,0x02,0x00,0x00,0x1c,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x82,0x03,0x00,0x00, +0x74,0x03,0x00,0x00,0x81,0x03,0x00,0x00,0x6f,0x00,0x04,0x00, +0x93,0x00,0x00,0x00,0x83,0x03,0x00,0x00,0x82,0x03,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x88,0x03,0x00,0x00, +0x08,0x03,0x00,0x00,0xb4,0x02,0x00,0x00,0x41,0x00,0x06,0x00, +0x33,0x02,0x00,0x00,0x89,0x03,0x00,0x00,0x2f,0x02,0x00,0x00, +0x1c,0x00,0x00,0x00,0x88,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, +0x93,0x00,0x00,0x00,0x8a,0x03,0x00,0x00,0x89,0x03,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x8c,0x03,0x00,0x00, +0x18,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0x8d,0x03,0x00,0x00,0x8c,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, +0x86,0x00,0x00,0x00,0x94,0x03,0x00,0x00,0x57,0x02,0x00,0x00, +0xc7,0x00,0x05,0x00,0x86,0x00,0x00,0x00,0x97,0x03,0x00,0x00, +0x94,0x03,0x00,0x00,0x7c,0x03,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x98,0x03,0x00,0x00,0x97,0x03,0x00,0x00, +0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x99,0x03,0x00,0x00, +0x98,0x03,0x00,0x00,0xab,0x00,0x05,0x00,0xa8,0x00,0x00,0x00, +0x9a,0x03,0x00,0x00,0x99,0x03,0x00,0x00,0x1c,0x00,0x00,0x00, +0xa9,0x00,0x06,0x00,0x17,0x00,0x00,0x00,0x9b,0x03,0x00,0x00, +0x9a,0x03,0x00,0x00,0x44,0x02,0x00,0x00,0x1c,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x9c,0x03,0x00,0x00, +0x8d,0x03,0x00,0x00,0x9b,0x03,0x00,0x00,0x6f,0x00,0x04,0x00, +0x93,0x00,0x00,0x00,0x9d,0x03,0x00,0x00,0x9c,0x03,0x00,0x00, +0x85,0x00,0x05,0x00,0x93,0x00,0x00,0x00,0x9e,0x03,0x00,0x00, +0x8a,0x03,0x00,0x00,0x9d,0x03,0x00,0x00,0x0c,0x00,0x08,0x00, +0x93,0x00,0x00,0x00,0x9f,0x03,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x71,0x03,0x00,0x00,0x83,0x03,0x00,0x00, +0x9e,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xa3,0x03,0x00,0x00,0x08,0x03,0x00,0x00,0xd0,0x02,0x00,0x00, +0x41,0x00,0x06,0x00,0x33,0x02,0x00,0x00,0xa4,0x03,0x00,0x00, +0x2f,0x02,0x00,0x00,0x1c,0x00,0x00,0x00,0xa3,0x03,0x00,0x00, +0x3d,0x00,0x04,0x00,0x93,0x00,0x00,0x00,0xa5,0x03,0x00,0x00, +0xa4,0x03,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xa7,0x03,0x00,0x00,0x21,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0xa8,0x03,0x00,0x00,0xa7,0x03,0x00,0x00, +0x3d,0x00,0x04,0x00,0x86,0x00,0x00,0x00,0xaf,0x03,0x00,0x00, +0x71,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x86,0x00,0x00,0x00, +0xb2,0x03,0x00,0x00,0xaf,0x03,0x00,0x00,0x7c,0x03,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xb3,0x03,0x00,0x00, +0xb2,0x03,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0xb4,0x03,0x00,0x00,0xb3,0x03,0x00,0x00,0xab,0x00,0x05,0x00, +0xa8,0x00,0x00,0x00,0xb5,0x03,0x00,0x00,0xb4,0x03,0x00,0x00, 0x1c,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,0x17,0x00,0x00,0x00, -0x5f,0x03,0x00,0x00,0x5e,0x03,0x00,0x00,0x3d,0x02,0x00,0x00, +0xb6,0x03,0x00,0x00,0xb5,0x03,0x00,0x00,0x44,0x02,0x00,0x00, 0x1c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0x60,0x03,0x00,0x00,0x52,0x03,0x00,0x00,0x5f,0x03,0x00,0x00, -0x6f,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,0x61,0x03,0x00,0x00, -0x60,0x03,0x00,0x00,0x0c,0x00,0x08,0x00,0x8c,0x00,0x00,0x00, -0x63,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x4f,0x03,0x00,0x00,0x61,0x03,0x00,0x00,0x49,0x03,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x68,0x03,0x00,0x00, -0x01,0x03,0x00,0x00,0x74,0x00,0x00,0x00,0x41,0x00,0x06,0x00, -0x2c,0x02,0x00,0x00,0x69,0x03,0x00,0x00,0x28,0x02,0x00,0x00, -0x1c,0x00,0x00,0x00,0x68,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, -0x8c,0x00,0x00,0x00,0x6a,0x03,0x00,0x00,0x69,0x03,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x6c,0x03,0x00,0x00, -0x08,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0x6d,0x03,0x00,0x00,0x6c,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, -0x7f,0x00,0x00,0x00,0x73,0x03,0x00,0x00,0x36,0x02,0x00,0x00, -0xc4,0x00,0x05,0x00,0x7f,0x00,0x00,0x00,0x75,0x03,0x00,0x00, -0x8b,0x00,0x00,0x00,0x82,0x00,0x00,0x00,0xc7,0x00,0x05,0x00, -0x7f,0x00,0x00,0x00,0x76,0x03,0x00,0x00,0x73,0x03,0x00,0x00, -0x75,0x03,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x77,0x03,0x00,0x00,0x76,0x03,0x00,0x00,0x7c,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x78,0x03,0x00,0x00,0x77,0x03,0x00,0x00, -0xab,0x00,0x05,0x00,0xa1,0x00,0x00,0x00,0x79,0x03,0x00,0x00, -0x78,0x03,0x00,0x00,0x1c,0x00,0x00,0x00,0xa9,0x00,0x06,0x00, -0x17,0x00,0x00,0x00,0x7a,0x03,0x00,0x00,0x79,0x03,0x00,0x00, -0x3d,0x02,0x00,0x00,0x1c,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0x7b,0x03,0x00,0x00,0x6d,0x03,0x00,0x00, -0x7a,0x03,0x00,0x00,0x6f,0x00,0x04,0x00,0x8c,0x00,0x00,0x00, -0x7c,0x03,0x00,0x00,0x7b,0x03,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x81,0x03,0x00,0x00,0x01,0x03,0x00,0x00, -0xad,0x02,0x00,0x00,0x41,0x00,0x06,0x00,0x2c,0x02,0x00,0x00, -0x82,0x03,0x00,0x00,0x28,0x02,0x00,0x00,0x1c,0x00,0x00,0x00, -0x81,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00, -0x83,0x03,0x00,0x00,0x82,0x03,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x85,0x03,0x00,0x00,0x11,0x02,0x00,0x00, -0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x86,0x03,0x00,0x00, -0x85,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00, -0x8d,0x03,0x00,0x00,0x50,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, -0x7f,0x00,0x00,0x00,0x90,0x03,0x00,0x00,0x8d,0x03,0x00,0x00, -0x75,0x03,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x91,0x03,0x00,0x00,0x90,0x03,0x00,0x00,0x7c,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x92,0x03,0x00,0x00,0x91,0x03,0x00,0x00, -0xab,0x00,0x05,0x00,0xa1,0x00,0x00,0x00,0x93,0x03,0x00,0x00, -0x92,0x03,0x00,0x00,0x1c,0x00,0x00,0x00,0xa9,0x00,0x06,0x00, -0x17,0x00,0x00,0x00,0x94,0x03,0x00,0x00,0x93,0x03,0x00,0x00, -0x3d,0x02,0x00,0x00,0x1c,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0x95,0x03,0x00,0x00,0x86,0x03,0x00,0x00, -0x94,0x03,0x00,0x00,0x6f,0x00,0x04,0x00,0x8c,0x00,0x00,0x00, -0x96,0x03,0x00,0x00,0x95,0x03,0x00,0x00,0x85,0x00,0x05,0x00, -0x8c,0x00,0x00,0x00,0x97,0x03,0x00,0x00,0x83,0x03,0x00,0x00, -0x96,0x03,0x00,0x00,0x0c,0x00,0x08,0x00,0x8c,0x00,0x00,0x00, -0x98,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x6a,0x03,0x00,0x00,0x7c,0x03,0x00,0x00,0x97,0x03,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9c,0x03,0x00,0x00, -0x01,0x03,0x00,0x00,0xc9,0x02,0x00,0x00,0x41,0x00,0x06,0x00, -0x2c,0x02,0x00,0x00,0x9d,0x03,0x00,0x00,0x28,0x02,0x00,0x00, -0x1c,0x00,0x00,0x00,0x9c,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, -0x8c,0x00,0x00,0x00,0x9e,0x03,0x00,0x00,0x9d,0x03,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa0,0x03,0x00,0x00, -0x1a,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0xa1,0x03,0x00,0x00,0xa0,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, -0x7f,0x00,0x00,0x00,0xa8,0x03,0x00,0x00,0x6a,0x02,0x00,0x00, -0xc7,0x00,0x05,0x00,0x7f,0x00,0x00,0x00,0xab,0x03,0x00,0x00, -0xa8,0x03,0x00,0x00,0x75,0x03,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xac,0x03,0x00,0x00,0xab,0x03,0x00,0x00, -0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0xad,0x03,0x00,0x00, -0xac,0x03,0x00,0x00,0xab,0x00,0x05,0x00,0xa1,0x00,0x00,0x00, -0xae,0x03,0x00,0x00,0xad,0x03,0x00,0x00,0x1c,0x00,0x00,0x00, -0xa9,0x00,0x06,0x00,0x17,0x00,0x00,0x00,0xaf,0x03,0x00,0x00, -0xae,0x03,0x00,0x00,0x3d,0x02,0x00,0x00,0x1c,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xb0,0x03,0x00,0x00, -0xa1,0x03,0x00,0x00,0xaf,0x03,0x00,0x00,0x6f,0x00,0x04,0x00, -0x8c,0x00,0x00,0x00,0xb1,0x03,0x00,0x00,0xb0,0x03,0x00,0x00, -0x0c,0x00,0x08,0x00,0x8c,0x00,0x00,0x00,0xb3,0x03,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x9e,0x03,0x00,0x00, -0xb1,0x03,0x00,0x00,0x98,0x03,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xb7,0x03,0x00,0x00,0x01,0x03,0x00,0x00, -0xe5,0x02,0x00,0x00,0x41,0x00,0x06,0x00,0x2c,0x02,0x00,0x00, -0xb8,0x03,0x00,0x00,0x28,0x02,0x00,0x00,0x1c,0x00,0x00,0x00, -0xb7,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00, -0xb9,0x03,0x00,0x00,0xb8,0x03,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xbb,0x03,0x00,0x00,0x23,0x02,0x00,0x00, -0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0xbc,0x03,0x00,0x00, -0xbb,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00, -0xc3,0x03,0x00,0x00,0x84,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, -0x7f,0x00,0x00,0x00,0xc6,0x03,0x00,0x00,0xc3,0x03,0x00,0x00, -0x75,0x03,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xc7,0x03,0x00,0x00,0xc6,0x03,0x00,0x00,0x7c,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0xc8,0x03,0x00,0x00,0xc7,0x03,0x00,0x00, -0xab,0x00,0x05,0x00,0xa1,0x00,0x00,0x00,0xc9,0x03,0x00,0x00, -0xc8,0x03,0x00,0x00,0x1c,0x00,0x00,0x00,0xa9,0x00,0x06,0x00, -0x17,0x00,0x00,0x00,0xca,0x03,0x00,0x00,0xc9,0x03,0x00,0x00, -0x3d,0x02,0x00,0x00,0x1c,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0xcb,0x03,0x00,0x00,0xbc,0x03,0x00,0x00, -0xca,0x03,0x00,0x00,0x6f,0x00,0x04,0x00,0x8c,0x00,0x00,0x00, -0xcc,0x03,0x00,0x00,0xcb,0x03,0x00,0x00,0x0c,0x00,0x08,0x00, -0x8c,0x00,0x00,0x00,0xce,0x03,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0xb9,0x03,0x00,0x00,0xcc,0x03,0x00,0x00, -0xb3,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00, -0xd4,0x03,0x00,0x00,0x2d,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0x8c,0x00,0x00,0x00,0xda,0x03,0x00,0x00,0x46,0x02,0x00,0x00, -0x81,0x00,0x05,0x00,0x8c,0x00,0x00,0x00,0xdb,0x03,0x00,0x00, -0xd4,0x03,0x00,0x00,0xda,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, -0x8c,0x00,0x00,0x00,0xe1,0x03,0x00,0x00,0x60,0x02,0x00,0x00, -0x81,0x00,0x05,0x00,0x8c,0x00,0x00,0x00,0xe2,0x03,0x00,0x00, -0xdb,0x03,0x00,0x00,0xe1,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, -0x8c,0x00,0x00,0x00,0xe8,0x03,0x00,0x00,0x7a,0x02,0x00,0x00, -0x81,0x00,0x05,0x00,0x8c,0x00,0x00,0x00,0xe9,0x03,0x00,0x00, -0xe2,0x03,0x00,0x00,0xe8,0x03,0x00,0x00,0x70,0x00,0x04,0x00, -0x8c,0x00,0x00,0x00,0xeb,0x03,0x00,0x00,0xf1,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,0xf2,0x03,0x00,0x00, -0x95,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00, -0xf8,0x03,0x00,0x00,0xaf,0x02,0x00,0x00,0x81,0x00,0x05,0x00, -0x8c,0x00,0x00,0x00,0xf9,0x03,0x00,0x00,0xf2,0x03,0x00,0x00, -0xf8,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00, -0xff,0x03,0x00,0x00,0xcb,0x02,0x00,0x00,0x81,0x00,0x05,0x00, -0x8c,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0xf9,0x03,0x00,0x00, -0xff,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00, -0x06,0x04,0x00,0x00,0xe7,0x02,0x00,0x00,0x81,0x00,0x05,0x00, -0x8c,0x00,0x00,0x00,0x07,0x04,0x00,0x00,0x00,0x04,0x00,0x00, -0x06,0x04,0x00,0x00,0x70,0x00,0x04,0x00,0x8c,0x00,0x00,0x00, -0x09,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x85,0x00,0x05,0x00, -0x8c,0x00,0x00,0x00,0x0a,0x04,0x00,0x00,0x07,0x04,0x00,0x00, -0x09,0x04,0x00,0x00,0x0c,0x00,0x08,0x00,0x8c,0x00,0x00,0x00, -0x0b,0x04,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0xe9,0x03,0x00,0x00,0xeb,0x03,0x00,0x00,0x0a,0x04,0x00,0x00, -0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,0x10,0x04,0x00,0x00, -0x02,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00, -0x16,0x04,0x00,0x00,0x1a,0x03,0x00,0x00,0x81,0x00,0x05,0x00, -0x8c,0x00,0x00,0x00,0x17,0x04,0x00,0x00,0x10,0x04,0x00,0x00, -0x16,0x04,0x00,0x00,0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00, -0x1d,0x04,0x00,0x00,0x34,0x03,0x00,0x00,0x81,0x00,0x05,0x00, -0x8c,0x00,0x00,0x00,0x1e,0x04,0x00,0x00,0x17,0x04,0x00,0x00, -0x1d,0x04,0x00,0x00,0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00, -0x24,0x04,0x00,0x00,0x4e,0x03,0x00,0x00,0x81,0x00,0x05,0x00, -0x8c,0x00,0x00,0x00,0x25,0x04,0x00,0x00,0x1e,0x04,0x00,0x00, -0x24,0x04,0x00,0x00,0x70,0x00,0x04,0x00,0x8c,0x00,0x00,0x00, -0x27,0x04,0x00,0x00,0x55,0x01,0x00,0x00,0x0c,0x00,0x08,0x00, -0x8c,0x00,0x00,0x00,0x29,0x04,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0x25,0x04,0x00,0x00,0x27,0x04,0x00,0x00, -0x0b,0x04,0x00,0x00,0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00, -0x2f,0x04,0x00,0x00,0x69,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, -0x8c,0x00,0x00,0x00,0x35,0x04,0x00,0x00,0x82,0x03,0x00,0x00, -0x81,0x00,0x05,0x00,0x8c,0x00,0x00,0x00,0x36,0x04,0x00,0x00, -0x2f,0x04,0x00,0x00,0x35,0x04,0x00,0x00,0x3d,0x00,0x04,0x00, -0x8c,0x00,0x00,0x00,0x3c,0x04,0x00,0x00,0x9d,0x03,0x00,0x00, -0x81,0x00,0x05,0x00,0x8c,0x00,0x00,0x00,0x3d,0x04,0x00,0x00, -0x36,0x04,0x00,0x00,0x3c,0x04,0x00,0x00,0x3d,0x00,0x04,0x00, -0x8c,0x00,0x00,0x00,0x43,0x04,0x00,0x00,0xb8,0x03,0x00,0x00, -0x81,0x00,0x05,0x00,0x8c,0x00,0x00,0x00,0x44,0x04,0x00,0x00, -0x3d,0x04,0x00,0x00,0x43,0x04,0x00,0x00,0x70,0x00,0x04,0x00, -0x8c,0x00,0x00,0x00,0x46,0x04,0x00,0x00,0x71,0x01,0x00,0x00, -0x0c,0x00,0x08,0x00,0x8c,0x00,0x00,0x00,0x48,0x04,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x44,0x04,0x00,0x00, -0x46,0x04,0x00,0x00,0x29,0x04,0x00,0x00,0x70,0x00,0x04,0x00, -0x8c,0x00,0x00,0x00,0x50,0x04,0x00,0x00,0xd5,0x00,0x00,0x00, -0x70,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,0x54,0x04,0x00,0x00, -0xe3,0x00,0x00,0x00,0x85,0x00,0x05,0x00,0x8c,0x00,0x00,0x00, -0x55,0x04,0x00,0x00,0xfd,0x02,0x00,0x00,0x54,0x04,0x00,0x00, -0x0c,0x00,0x08,0x00,0x8c,0x00,0x00,0x00,0x56,0x04,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x8f,0x02,0x00,0x00, -0x50,0x04,0x00,0x00,0x55,0x04,0x00,0x00,0x70,0x00,0x04,0x00, -0x8c,0x00,0x00,0x00,0x59,0x04,0x00,0x00,0x1d,0x01,0x00,0x00, -0x0c,0x00,0x08,0x00,0x8c,0x00,0x00,0x00,0x5b,0x04,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x63,0x03,0x00,0x00, -0x59,0x04,0x00,0x00,0x56,0x04,0x00,0x00,0x70,0x00,0x04,0x00, -0x8c,0x00,0x00,0x00,0x5e,0x04,0x00,0x00,0x39,0x01,0x00,0x00, -0x0c,0x00,0x08,0x00,0x8c,0x00,0x00,0x00,0x60,0x04,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xce,0x03,0x00,0x00, -0x5e,0x04,0x00,0x00,0x5b,0x04,0x00,0x00,0x85,0x00,0x05,0x00, -0x8c,0x00,0x00,0x00,0x64,0x04,0x00,0x00,0xc6,0x00,0x00,0x00, -0x48,0x04,0x00,0x00,0x7f,0x00,0x04,0x00,0x8c,0x00,0x00,0x00, -0xb1,0x04,0x00,0x00,0x64,0x04,0x00,0x00,0x0c,0x00,0x08,0x00, -0x8c,0x00,0x00,0x00,0x65,0x04,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0x60,0x04,0x00,0x00, -0xb1,0x04,0x00,0x00,0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00, -0x67,0x04,0x00,0x00,0x97,0x00,0x00,0x00,0x81,0x00,0x05,0x00, -0x8c,0x00,0x00,0x00,0x68,0x04,0x00,0x00,0x67,0x04,0x00,0x00, -0x65,0x04,0x00,0x00,0x3e,0x00,0x03,0x00,0x97,0x00,0x00,0x00, -0x68,0x04,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x6b,0x04,0x00,0x00,0xad,0x04,0x00,0x00,0x58,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0x9a,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0x9c,0x00,0x00,0x00,0xe0,0x00,0x04,0x00,0x58,0x00,0x00,0x00, -0x58,0x00,0x00,0x00,0x6c,0x04,0x00,0x00,0xf9,0x00,0x02,0x00, -0x6e,0x04,0x00,0x00,0xf8,0x00,0x02,0x00,0x6e,0x04,0x00,0x00, -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xae,0x04,0x00,0x00, -0x90,0x00,0x00,0x00,0x9c,0x00,0x00,0x00,0x85,0x04,0x00,0x00, -0x71,0x04,0x00,0x00,0xac,0x00,0x05,0x00,0xa1,0x00,0x00,0x00, -0x74,0x04,0x00,0x00,0xae,0x04,0x00,0x00,0x3b,0x00,0x00,0x00, -0xf6,0x00,0x04,0x00,0x70,0x04,0x00,0x00,0x71,0x04,0x00,0x00, -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x74,0x04,0x00,0x00, -0x6f,0x04,0x00,0x00,0x70,0x04,0x00,0x00,0xf8,0x00,0x02,0x00, -0x6f,0x04,0x00,0x00,0xb0,0x00,0x05,0x00,0xa1,0x00,0x00,0x00, -0x77,0x04,0x00,0x00,0x59,0x00,0x00,0x00,0xae,0x04,0x00,0x00, -0xf7,0x00,0x03,0x00,0x79,0x04,0x00,0x00,0x00,0x00,0x00,0x00, -0xfa,0x00,0x04,0x00,0x77,0x04,0x00,0x00,0x78,0x04,0x00,0x00, -0x79,0x04,0x00,0x00,0xf8,0x00,0x02,0x00,0x78,0x04,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7d,0x04,0x00,0x00, -0x59,0x00,0x00,0x00,0xae,0x04,0x00,0x00,0x41,0x00,0x05,0x00, -0x96,0x00,0x00,0x00,0x7e,0x04,0x00,0x00,0x8f,0x00,0x00,0x00, -0x7d,0x04,0x00,0x00,0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00, -0x7f,0x04,0x00,0x00,0x7e,0x04,0x00,0x00,0x41,0x00,0x05,0x00, -0x96,0x00,0x00,0x00,0x80,0x04,0x00,0x00,0x8f,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00, -0x81,0x04,0x00,0x00,0x80,0x04,0x00,0x00,0x81,0x00,0x05,0x00, -0x8c,0x00,0x00,0x00,0x82,0x04,0x00,0x00,0x81,0x04,0x00,0x00, -0x7f,0x04,0x00,0x00,0x3e,0x00,0x03,0x00,0x80,0x04,0x00,0x00, -0x82,0x04,0x00,0x00,0xf9,0x00,0x02,0x00,0x79,0x04,0x00,0x00, -0xf8,0x00,0x02,0x00,0x79,0x04,0x00,0x00,0xe0,0x00,0x04,0x00, -0x58,0x00,0x00,0x00,0x58,0x00,0x00,0x00,0x6c,0x04,0x00,0x00, -0xf9,0x00,0x02,0x00,0x71,0x04,0x00,0x00,0xf8,0x00,0x02,0x00, -0x71,0x04,0x00,0x00,0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x85,0x04,0x00,0x00,0xae,0x04,0x00,0x00,0x82,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0x6e,0x04,0x00,0x00,0xf8,0x00,0x02,0x00, -0x70,0x04,0x00,0x00,0xaa,0x00,0x05,0x00,0xa1,0x00,0x00,0x00, -0x87,0x04,0x00,0x00,0x59,0x00,0x00,0x00,0x3b,0x00,0x00,0x00, -0xf7,0x00,0x03,0x00,0x89,0x04,0x00,0x00,0x00,0x00,0x00,0x00, -0xfa,0x00,0x04,0x00,0x87,0x04,0x00,0x00,0x88,0x04,0x00,0x00, -0x89,0x04,0x00,0x00,0xf8,0x00,0x02,0x00,0x88,0x04,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x90,0x04,0x00,0x00, -0xac,0x04,0x00,0x00,0x3d,0x00,0x00,0x00,0x41,0x00,0x05,0x00, -0x96,0x00,0x00,0x00,0x91,0x04,0x00,0x00,0x8f,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00, -0x92,0x04,0x00,0x00,0x91,0x04,0x00,0x00,0x41,0x00,0x06,0x00, -0x2c,0x02,0x00,0x00,0x93,0x04,0x00,0x00,0x8d,0x04,0x00,0x00, -0x1c,0x00,0x00,0x00,0x90,0x04,0x00,0x00,0x3e,0x00,0x03,0x00, -0x93,0x04,0x00,0x00,0x92,0x04,0x00,0x00,0xf9,0x00,0x02,0x00, -0x89,0x04,0x00,0x00,0xf8,0x00,0x02,0x00,0x89,0x04,0x00,0x00, -0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00, +0xb7,0x03,0x00,0x00,0xa8,0x03,0x00,0x00,0xb6,0x03,0x00,0x00, +0x6f,0x00,0x04,0x00,0x93,0x00,0x00,0x00,0xb8,0x03,0x00,0x00, +0xb7,0x03,0x00,0x00,0x0c,0x00,0x08,0x00,0x93,0x00,0x00,0x00, +0xba,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0xa5,0x03,0x00,0x00,0xb8,0x03,0x00,0x00,0x9f,0x03,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbe,0x03,0x00,0x00, +0x08,0x03,0x00,0x00,0xec,0x02,0x00,0x00,0x41,0x00,0x06,0x00, +0x33,0x02,0x00,0x00,0xbf,0x03,0x00,0x00,0x2f,0x02,0x00,0x00, +0x1c,0x00,0x00,0x00,0xbe,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, +0x93,0x00,0x00,0x00,0xc0,0x03,0x00,0x00,0xbf,0x03,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xc2,0x03,0x00,0x00, +0x2a,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0xc3,0x03,0x00,0x00,0xc2,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, +0x86,0x00,0x00,0x00,0xca,0x03,0x00,0x00,0x8b,0x02,0x00,0x00, +0xc7,0x00,0x05,0x00,0x86,0x00,0x00,0x00,0xcd,0x03,0x00,0x00, +0xca,0x03,0x00,0x00,0x7c,0x03,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xce,0x03,0x00,0x00,0xcd,0x03,0x00,0x00, +0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0xcf,0x03,0x00,0x00, +0xce,0x03,0x00,0x00,0xab,0x00,0x05,0x00,0xa8,0x00,0x00,0x00, +0xd0,0x03,0x00,0x00,0xcf,0x03,0x00,0x00,0x1c,0x00,0x00,0x00, +0xa9,0x00,0x06,0x00,0x17,0x00,0x00,0x00,0xd1,0x03,0x00,0x00, +0xd0,0x03,0x00,0x00,0x44,0x02,0x00,0x00,0x1c,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xd2,0x03,0x00,0x00, +0xc3,0x03,0x00,0x00,0xd1,0x03,0x00,0x00,0x6f,0x00,0x04,0x00, +0x93,0x00,0x00,0x00,0xd3,0x03,0x00,0x00,0xd2,0x03,0x00,0x00, +0x0c,0x00,0x08,0x00,0x93,0x00,0x00,0x00,0xd5,0x03,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xc0,0x03,0x00,0x00, +0xd3,0x03,0x00,0x00,0xba,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, +0x93,0x00,0x00,0x00,0xdb,0x03,0x00,0x00,0x34,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0x93,0x00,0x00,0x00,0xe1,0x03,0x00,0x00, +0x4d,0x02,0x00,0x00,0x81,0x00,0x05,0x00,0x93,0x00,0x00,0x00, +0xe2,0x03,0x00,0x00,0xdb,0x03,0x00,0x00,0xe1,0x03,0x00,0x00, +0x3d,0x00,0x04,0x00,0x93,0x00,0x00,0x00,0xe8,0x03,0x00,0x00, +0x67,0x02,0x00,0x00,0x81,0x00,0x05,0x00,0x93,0x00,0x00,0x00, +0xe9,0x03,0x00,0x00,0xe2,0x03,0x00,0x00,0xe8,0x03,0x00,0x00, +0x3d,0x00,0x04,0x00,0x93,0x00,0x00,0x00,0xef,0x03,0x00,0x00, +0x81,0x02,0x00,0x00,0x81,0x00,0x05,0x00,0x93,0x00,0x00,0x00, +0xf0,0x03,0x00,0x00,0xe9,0x03,0x00,0x00,0xef,0x03,0x00,0x00, +0x70,0x00,0x04,0x00,0x93,0x00,0x00,0x00,0xf2,0x03,0x00,0x00, +0xf8,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x93,0x00,0x00,0x00, +0xf9,0x03,0x00,0x00,0x9c,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0x93,0x00,0x00,0x00,0xff,0x03,0x00,0x00,0xb6,0x02,0x00,0x00, +0x81,0x00,0x05,0x00,0x93,0x00,0x00,0x00,0x00,0x04,0x00,0x00, +0xf9,0x03,0x00,0x00,0xff,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, +0x93,0x00,0x00,0x00,0x06,0x04,0x00,0x00,0xd2,0x02,0x00,0x00, +0x81,0x00,0x05,0x00,0x93,0x00,0x00,0x00,0x07,0x04,0x00,0x00, +0x00,0x04,0x00,0x00,0x06,0x04,0x00,0x00,0x3d,0x00,0x04,0x00, +0x93,0x00,0x00,0x00,0x0d,0x04,0x00,0x00,0xee,0x02,0x00,0x00, +0x81,0x00,0x05,0x00,0x93,0x00,0x00,0x00,0x0e,0x04,0x00,0x00, +0x07,0x04,0x00,0x00,0x0d,0x04,0x00,0x00,0x70,0x00,0x04,0x00, +0x93,0x00,0x00,0x00,0x10,0x04,0x00,0x00,0x07,0x01,0x00,0x00, +0x85,0x00,0x05,0x00,0x93,0x00,0x00,0x00,0x11,0x04,0x00,0x00, +0x0e,0x04,0x00,0x00,0x10,0x04,0x00,0x00,0x0c,0x00,0x08,0x00, +0x93,0x00,0x00,0x00,0x12,0x04,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0xf0,0x03,0x00,0x00,0xf2,0x03,0x00,0x00, +0x11,0x04,0x00,0x00,0x3d,0x00,0x04,0x00,0x93,0x00,0x00,0x00, +0x17,0x04,0x00,0x00,0x09,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, +0x93,0x00,0x00,0x00,0x1d,0x04,0x00,0x00,0x21,0x03,0x00,0x00, +0x81,0x00,0x05,0x00,0x93,0x00,0x00,0x00,0x1e,0x04,0x00,0x00, +0x17,0x04,0x00,0x00,0x1d,0x04,0x00,0x00,0x3d,0x00,0x04,0x00, +0x93,0x00,0x00,0x00,0x24,0x04,0x00,0x00,0x3b,0x03,0x00,0x00, +0x81,0x00,0x05,0x00,0x93,0x00,0x00,0x00,0x25,0x04,0x00,0x00, +0x1e,0x04,0x00,0x00,0x24,0x04,0x00,0x00,0x3d,0x00,0x04,0x00, +0x93,0x00,0x00,0x00,0x2b,0x04,0x00,0x00,0x55,0x03,0x00,0x00, +0x81,0x00,0x05,0x00,0x93,0x00,0x00,0x00,0x2c,0x04,0x00,0x00, +0x25,0x04,0x00,0x00,0x2b,0x04,0x00,0x00,0x70,0x00,0x04,0x00, +0x93,0x00,0x00,0x00,0x2e,0x04,0x00,0x00,0x5c,0x01,0x00,0x00, +0x0c,0x00,0x08,0x00,0x93,0x00,0x00,0x00,0x30,0x04,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x2c,0x04,0x00,0x00, +0x2e,0x04,0x00,0x00,0x12,0x04,0x00,0x00,0x3d,0x00,0x04,0x00, +0x93,0x00,0x00,0x00,0x36,0x04,0x00,0x00,0x70,0x03,0x00,0x00, +0x3d,0x00,0x04,0x00,0x93,0x00,0x00,0x00,0x3c,0x04,0x00,0x00, +0x89,0x03,0x00,0x00,0x81,0x00,0x05,0x00,0x93,0x00,0x00,0x00, +0x3d,0x04,0x00,0x00,0x36,0x04,0x00,0x00,0x3c,0x04,0x00,0x00, +0x3d,0x00,0x04,0x00,0x93,0x00,0x00,0x00,0x43,0x04,0x00,0x00, +0xa4,0x03,0x00,0x00,0x81,0x00,0x05,0x00,0x93,0x00,0x00,0x00, +0x44,0x04,0x00,0x00,0x3d,0x04,0x00,0x00,0x43,0x04,0x00,0x00, +0x3d,0x00,0x04,0x00,0x93,0x00,0x00,0x00,0x4a,0x04,0x00,0x00, +0xbf,0x03,0x00,0x00,0x81,0x00,0x05,0x00,0x93,0x00,0x00,0x00, +0x4b,0x04,0x00,0x00,0x44,0x04,0x00,0x00,0x4a,0x04,0x00,0x00, +0x70,0x00,0x04,0x00,0x93,0x00,0x00,0x00,0x4d,0x04,0x00,0x00, +0x78,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0x93,0x00,0x00,0x00, +0x4f,0x04,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0x4b,0x04,0x00,0x00,0x4d,0x04,0x00,0x00,0x30,0x04,0x00,0x00, +0x70,0x00,0x04,0x00,0x93,0x00,0x00,0x00,0x57,0x04,0x00,0x00, +0xdc,0x00,0x00,0x00,0x70,0x00,0x04,0x00,0x93,0x00,0x00,0x00, +0x5b,0x04,0x00,0x00,0xea,0x00,0x00,0x00,0x85,0x00,0x05,0x00, +0x93,0x00,0x00,0x00,0x5c,0x04,0x00,0x00,0x04,0x03,0x00,0x00, +0x5b,0x04,0x00,0x00,0x0c,0x00,0x08,0x00,0x93,0x00,0x00,0x00, +0x5d,0x04,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0x96,0x02,0x00,0x00,0x57,0x04,0x00,0x00,0x5c,0x04,0x00,0x00, +0x70,0x00,0x04,0x00,0x93,0x00,0x00,0x00,0x60,0x04,0x00,0x00, +0x24,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0x93,0x00,0x00,0x00, +0x62,0x04,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0x6a,0x03,0x00,0x00,0x60,0x04,0x00,0x00,0x5d,0x04,0x00,0x00, +0x70,0x00,0x04,0x00,0x93,0x00,0x00,0x00,0x65,0x04,0x00,0x00, +0x40,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0x93,0x00,0x00,0x00, +0x67,0x04,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0xd5,0x03,0x00,0x00,0x65,0x04,0x00,0x00,0x62,0x04,0x00,0x00, +0x85,0x00,0x05,0x00,0x93,0x00,0x00,0x00,0x6b,0x04,0x00,0x00, +0xcd,0x00,0x00,0x00,0x4f,0x04,0x00,0x00,0x7f,0x00,0x04,0x00, +0x93,0x00,0x00,0x00,0xb8,0x04,0x00,0x00,0x6b,0x04,0x00,0x00, +0x0c,0x00,0x08,0x00,0x93,0x00,0x00,0x00,0x6c,0x04,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xc6,0x00,0x00,0x00, +0x67,0x04,0x00,0x00,0xb8,0x04,0x00,0x00,0x3d,0x00,0x04,0x00, +0x93,0x00,0x00,0x00,0x6e,0x04,0x00,0x00,0x9e,0x00,0x00,0x00, +0x81,0x00,0x05,0x00,0x93,0x00,0x00,0x00,0x6f,0x04,0x00,0x00, +0x6e,0x04,0x00,0x00,0x6c,0x04,0x00,0x00,0x3e,0x00,0x03,0x00, +0x9e,0x00,0x00,0x00,0x6f,0x04,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x72,0x04,0x00,0x00,0xb4,0x04,0x00,0x00, +0x41,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xa1,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0xa3,0x00,0x00,0x00,0xe0,0x00,0x04,0x00, +0x41,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x73,0x04,0x00,0x00, +0xf9,0x00,0x02,0x00,0x75,0x04,0x00,0x00,0xf8,0x00,0x02,0x00, +0x75,0x04,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00, +0xb5,0x04,0x00,0x00,0x97,0x00,0x00,0x00,0xa3,0x00,0x00,0x00, +0x8c,0x04,0x00,0x00,0x78,0x04,0x00,0x00,0xac,0x00,0x05,0x00, +0xa8,0x00,0x00,0x00,0x7b,0x04,0x00,0x00,0xb5,0x04,0x00,0x00, +0x3b,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x77,0x04,0x00,0x00, +0x78,0x04,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, +0x7b,0x04,0x00,0x00,0x76,0x04,0x00,0x00,0x77,0x04,0x00,0x00, +0xf8,0x00,0x02,0x00,0x76,0x04,0x00,0x00,0xb0,0x00,0x05,0x00, +0xa8,0x00,0x00,0x00,0x7e,0x04,0x00,0x00,0x60,0x00,0x00,0x00, +0xb5,0x04,0x00,0x00,0xf7,0x00,0x03,0x00,0x80,0x04,0x00,0x00, +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x7e,0x04,0x00,0x00, +0x7f,0x04,0x00,0x00,0x80,0x04,0x00,0x00,0xf8,0x00,0x02,0x00, +0x7f,0x04,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x84,0x04,0x00,0x00,0x60,0x00,0x00,0x00,0xb5,0x04,0x00,0x00, +0x41,0x00,0x05,0x00,0x9d,0x00,0x00,0x00,0x85,0x04,0x00,0x00, +0x96,0x00,0x00,0x00,0x84,0x04,0x00,0x00,0x3d,0x00,0x04,0x00, +0x93,0x00,0x00,0x00,0x86,0x04,0x00,0x00,0x85,0x04,0x00,0x00, +0x41,0x00,0x05,0x00,0x9d,0x00,0x00,0x00,0x87,0x04,0x00,0x00, +0x96,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x93,0x00,0x00,0x00,0x88,0x04,0x00,0x00,0x87,0x04,0x00,0x00, +0x81,0x00,0x05,0x00,0x93,0x00,0x00,0x00,0x89,0x04,0x00,0x00, +0x88,0x04,0x00,0x00,0x86,0x04,0x00,0x00,0x3e,0x00,0x03,0x00, +0x87,0x04,0x00,0x00,0x89,0x04,0x00,0x00,0xf9,0x00,0x02,0x00, +0x80,0x04,0x00,0x00,0xf8,0x00,0x02,0x00,0x80,0x04,0x00,0x00, +0xe0,0x00,0x04,0x00,0x41,0x00,0x00,0x00,0x41,0x00,0x00,0x00, +0x73,0x04,0x00,0x00,0xf9,0x00,0x02,0x00,0x78,0x04,0x00,0x00, +0xf8,0x00,0x02,0x00,0x78,0x04,0x00,0x00,0xc2,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x8c,0x04,0x00,0x00,0xb5,0x04,0x00,0x00, +0x89,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x75,0x04,0x00,0x00, +0xf8,0x00,0x02,0x00,0x77,0x04,0x00,0x00,0xaa,0x00,0x05,0x00, +0xa8,0x00,0x00,0x00,0x8e,0x04,0x00,0x00,0x60,0x00,0x00,0x00, +0x3b,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0x90,0x04,0x00,0x00, +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x8e,0x04,0x00,0x00, +0x8f,0x04,0x00,0x00,0x90,0x04,0x00,0x00,0xf8,0x00,0x02,0x00, +0x8f,0x04,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x97,0x04,0x00,0x00,0xb3,0x04,0x00,0x00,0x45,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x9d,0x00,0x00,0x00,0x98,0x04,0x00,0x00, +0x96,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x93,0x00,0x00,0x00,0x99,0x04,0x00,0x00,0x98,0x04,0x00,0x00, +0x41,0x00,0x06,0x00,0x33,0x02,0x00,0x00,0x9a,0x04,0x00,0x00, +0x94,0x04,0x00,0x00,0x1c,0x00,0x00,0x00,0x97,0x04,0x00,0x00, +0x3e,0x00,0x03,0x00,0x9a,0x04,0x00,0x00,0x99,0x04,0x00,0x00, +0xf9,0x00,0x02,0x00,0x90,0x04,0x00,0x00,0xf8,0x00,0x02,0x00, +0x90,0x04,0x00,0x00,0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00, + }; -const uint64_t mul_mat_vec_id_q5_k_f32_len = 12668; +const uint64_t mul_mat_vec_id_q5_k_f32_len = 12816; unsigned char mul_mat_vec_id_q6_k_f32_data[] = { 0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00, -0xf1,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, +0xf8,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, 0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x27,0x00,0x00,0x00, 0x11,0x00,0x02,0x00,0x51,0x11,0x00,0x00,0x11,0x00,0x02,0x00, 0x60,0x11,0x00,0x00,0x0b,0x00,0x06,0x00,0x01,0x00,0x00,0x00, 0x47,0x4c,0x53,0x4c,0x2e,0x73,0x74,0x64,0x2e,0x34,0x35,0x30, 0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00,0x00,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x0f,0x00,0x0e,0x00,0x05,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x0f,0x00,0x0f,0x00,0x05,0x00,0x00,0x00, 0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e,0x00,0x00,0x00,0x00, 0x11,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x25,0x00,0x00,0x00, -0x3a,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x88,0x00,0x00,0x00, -0xad,0x00,0x00,0x00,0xc2,0x00,0x00,0x00,0xd3,0x01,0x00,0x00, -0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00, -0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x11,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x18,0x00,0x00,0x00, +0x3a,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,0x5d,0x00,0x00,0x00, +0x8f,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,0xc9,0x00,0x00,0x00, +0xda,0x01,0x00,0x00,0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00, +0x11,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x11,0x00,0x00,0x00, +0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x18,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x48,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x19,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x03,0x00,0x19,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x22,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x21,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x23,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x23,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x23,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x23,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x23,0x00,0x00,0x00,0x05,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x23,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x23,0x00,0x00,0x00, +0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0x23,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x3a,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x3e,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x5d,0x00,0x00,0x00, +0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xab,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xac,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xae,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0xb0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xb0,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x80,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0xb0,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0xb0,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0xd0,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xb1,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,0x48,0x00,0x04,0x00, +0xb2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0xb2,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0xb2,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xb4,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xb4,0x00,0x00,0x00,0x21,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xc6,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00, -0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, -0x19,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x21,0x00,0x00,0x00, -0x03,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x23,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x23,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x23,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x23,0x00,0x00,0x00, -0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x23,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x23,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x23,0x00,0x00,0x00,0x07,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x20,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x23,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x3a,0x00,0x00,0x00, -0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x55,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xa4,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xa5,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xa7,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0xa9,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0xa9,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x80,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xa9,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0xc0,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0xa9,0x00,0x00,0x00,0x03,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xaa,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0xd2,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0xab,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xab,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0xab,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xad,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xad,0x00,0x00,0x00, -0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xbf,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xc0,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0xc0,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xc2,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xc2,0x00,0x00,0x00, -0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xd0,0x01,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0xd1,0x01,0x00,0x00,0x00,0x00,0x00,0x00, -0x19,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xd1,0x01,0x00,0x00, -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0xd1,0x01,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xd3,0x01,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xd3,0x01,0x00,0x00, -0x21,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xda,0x01,0x00,0x00,0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00, -0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00, -0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x17,0x00,0x04,0x00,0x0f,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x10,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x10,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x12,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x13,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x15,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x1d,0x00,0x03,0x00,0x18,0x00,0x00,0x00,0x17,0x00,0x00,0x00, -0x1e,0x00,0x03,0x00,0x19,0x00,0x00,0x00,0x18,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x1a,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x19,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x1a,0x00,0x00,0x00, -0x1b,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x1e,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x17,0x00,0x00,0x00,0x1e,0x00,0x0b,0x00,0x23,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0xc7,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xc9,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xc9,0x00,0x00,0x00,0x21,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xd7,0x01,0x00,0x00, +0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00, +0xd8,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0xd8,0x01,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0xd8,0x01,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xda,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xda,0x01,0x00,0x00,0x21,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xe1,0x01,0x00,0x00, +0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x13,0x00,0x02,0x00, +0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x17,0x00,0x04,0x00, +0x0f,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x10,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x0f,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00, +0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x13,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, +0x18,0x00,0x00,0x00,0x17,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, +0x19,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x1a,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x19,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x1a,0x00,0x00,0x00,0x1b,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x1e,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x17,0x00,0x00,0x00, +0x1e,0x00,0x0b,0x00,0x23,0x00,0x00,0x00,0x06,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x24,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x24,0x00,0x00,0x00, -0x25,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x26,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x27,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0x2c,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x35,0x00,0x00,0x00, -0x03,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00, -0x3a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4b,0x00,0x00,0x00, -0x00,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00, -0x55,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x58,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x60,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x24,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x24,0x00,0x00,0x00,0x25,0x00,0x00,0x00, +0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0x26,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x27,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x2c,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0x30,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x03,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00,0x3a,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x3b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0x10,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x41,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x53,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x3b,0x00,0x04,0x00, +0x10,0x00,0x00,0x00,0x5d,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x67,0x00,0x00,0x00, 0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x68,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x40,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x75,0x00,0x00,0x00, +0x6f,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x76,0x00,0x00,0x00,0x40,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x7c,0x00,0x00,0x00, 0x20,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x16,0x00,0x03,0x00, -0x85,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, -0x86,0x00,0x00,0x00,0x85,0x00,0x00,0x00,0x75,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x87,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x86,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x87,0x00,0x00,0x00, -0x88,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x89,0x00,0x00,0x00,0x10,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x85,0x00,0x00,0x00,0x8e,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x8f,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x85,0x00,0x00,0x00,0x14,0x00,0x02,0x00, -0x9a,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0xa3,0x00,0x00,0x00, +0x87,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x16,0x00,0x03,0x00, +0x8c,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, +0x8d,0x00,0x00,0x00,0x8c,0x00,0x00,0x00,0x7c,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x8e,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x8d,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x8e,0x00,0x00,0x00, +0x8f,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x90,0x00,0x00,0x00,0x10,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,0x95,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x96,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x8c,0x00,0x00,0x00,0x14,0x00,0x02,0x00, +0xa1,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0xaa,0x00,0x00,0x00, 0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, -0xa4,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0x80,0x00,0x00,0x00, -0x1c,0x00,0x04,0x00,0xa5,0x00,0x00,0x00,0xa3,0x00,0x00,0x00, -0x6f,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0xa6,0x00,0x00,0x00, +0xab,0x00,0x00,0x00,0xaa,0x00,0x00,0x00,0x87,0x00,0x00,0x00, +0x1c,0x00,0x04,0x00,0xac,0x00,0x00,0x00,0xaa,0x00,0x00,0x00, +0x76,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0xad,0x00,0x00,0x00, 0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, -0xa7,0x00,0x00,0x00,0xa6,0x00,0x00,0x00,0x89,0x00,0x00,0x00, -0x16,0x00,0x03,0x00,0xa8,0x00,0x00,0x00,0x10,0x00,0x00,0x00, -0x1e,0x00,0x06,0x00,0xa9,0x00,0x00,0x00,0xa4,0x00,0x00,0x00, -0xa5,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,0xa8,0x00,0x00,0x00, -0x1d,0x00,0x03,0x00,0xaa,0x00,0x00,0x00,0xa9,0x00,0x00,0x00, -0x1e,0x00,0x03,0x00,0xab,0x00,0x00,0x00,0xaa,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0xac,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0xab,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xac,0x00,0x00,0x00, -0xad,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0xb1,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xa8,0x00,0x00,0x00, -0x1d,0x00,0x03,0x00,0xbf,0x00,0x00,0x00,0x85,0x00,0x00,0x00, -0x1e,0x00,0x03,0x00,0xc0,0x00,0x00,0x00,0xbf,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0xc1,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0xc0,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xc1,0x00,0x00,0x00, -0xc2,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0xca,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x85,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0xd2,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0xa6,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xe1,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0xe6,0x00,0x00,0x00,0x0f,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0xeb,0x00,0x00,0x00, +0xae,0x00,0x00,0x00,0xad,0x00,0x00,0x00,0x90,0x00,0x00,0x00, +0x16,0x00,0x03,0x00,0xaf,0x00,0x00,0x00,0x10,0x00,0x00,0x00, +0x1e,0x00,0x06,0x00,0xb0,0x00,0x00,0x00,0xab,0x00,0x00,0x00, +0xac,0x00,0x00,0x00,0xae,0x00,0x00,0x00,0xaf,0x00,0x00,0x00, +0x1d,0x00,0x03,0x00,0xb1,0x00,0x00,0x00,0xb0,0x00,0x00,0x00, +0x1e,0x00,0x03,0x00,0xb2,0x00,0x00,0x00,0xb1,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0xb3,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0xb2,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xb3,0x00,0x00,0x00, +0xb4,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0xb8,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xaf,0x00,0x00,0x00, +0x1d,0x00,0x03,0x00,0xc6,0x00,0x00,0x00,0x8c,0x00,0x00,0x00, +0x1e,0x00,0x03,0x00,0xc7,0x00,0x00,0x00,0xc6,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0xc8,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0xc7,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xc8,0x00,0x00,0x00, +0xc9,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0xd1,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x8c,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0xd9,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0xad,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xe8,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0xaa,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0xed,0x00,0x00,0x00,0x0f,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0xf2,0x00,0x00,0x00, 0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0xfa,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x70,0x01,0x00,0x00,0x60,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x78,0x01,0x00,0x00, +0x01,0x01,0x00,0x00,0x20,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x77,0x01,0x00,0x00,0x60,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x7f,0x01,0x00,0x00, 0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0x96,0x01,0x00,0x00,0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xb2,0x01,0x00,0x00,0x08,0x01,0x00,0x00, -0x1d,0x00,0x03,0x00,0xd0,0x01,0x00,0x00,0x85,0x00,0x00,0x00, -0x1e,0x00,0x03,0x00,0xd1,0x01,0x00,0x00,0xd0,0x01,0x00,0x00, -0x20,0x00,0x04,0x00,0xd2,0x01,0x00,0x00,0x0c,0x00,0x00,0x00, -0xd1,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,0xd2,0x01,0x00,0x00, -0xd3,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x2c,0x00,0x06,0x00, -0x0f,0x00,0x00,0x00,0xda,0x01,0x00,0x00,0x75,0x00,0x00,0x00, +0x9d,0x01,0x00,0x00,0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xb9,0x01,0x00,0x00,0x08,0x01,0x00,0x00, +0x1d,0x00,0x03,0x00,0xd7,0x01,0x00,0x00,0x8c,0x00,0x00,0x00, +0x1e,0x00,0x03,0x00,0xd8,0x01,0x00,0x00,0xd7,0x01,0x00,0x00, +0x20,0x00,0x04,0x00,0xd9,0x01,0x00,0x00,0x0c,0x00,0x00,0x00, +0xd8,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,0xd9,0x01,0x00,0x00, +0xda,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x2c,0x00,0x06,0x00, +0x0f,0x00,0x00,0x00,0xe1,0x01,0x00,0x00,0x7c,0x00,0x00,0x00, 0x12,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xe7,0x03,0x00,0x00,0x21,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xe8,0x03,0x00,0x00, +0x06,0x00,0x00,0x00,0xee,0x03,0x00,0x00,0x21,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xef,0x03,0x00,0x00, 0x41,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xe9,0x03,0x00,0x00,0x61,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xea,0x03,0x00,0x00,0x22,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xeb,0x03,0x00,0x00, +0xf0,0x03,0x00,0x00,0x61,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xf1,0x03,0x00,0x00,0x22,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xf2,0x03,0x00,0x00, 0x42,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xec,0x03,0x00,0x00,0x62,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xed,0x03,0x00,0x00,0x03,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xee,0x03,0x00,0x00, +0xf3,0x03,0x00,0x00,0x62,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xf4,0x03,0x00,0x00,0x03,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xf5,0x03,0x00,0x00, 0x23,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xef,0x03,0x00,0x00,0x43,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xf0,0x03,0x00,0x00,0x63,0x00,0x00,0x00, +0xf6,0x03,0x00,0x00,0x43,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xf7,0x03,0x00,0x00,0x63,0x00,0x00,0x00, 0x36,0x00,0x05,0x00,0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, 0x05,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00, 0x3c,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x3b,0x00,0x00,0x00, 0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x3d,0x00,0x00,0x00, 0x3c,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00, -0xde,0x01,0x00,0x00,0x11,0x00,0x00,0x00,0x12,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xdf,0x01,0x00,0x00, -0xde,0x01,0x00,0x00,0x41,0x00,0x06,0x00,0x1e,0x00,0x00,0x00, -0xe1,0x01,0x00,0x00,0x1b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0xdf,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0xe2,0x01,0x00,0x00,0xe1,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xe3,0x01,0x00,0x00,0xe2,0x01,0x00,0x00, -0x41,0x00,0x05,0x00,0x27,0x00,0x00,0x00,0xe5,0x01,0x00,0x00, -0x25,0x00,0x00,0x00,0x26,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xe6,0x01,0x00,0x00,0xe5,0x01,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe7,0x01,0x00,0x00, -0xe3,0x01,0x00,0x00,0xe6,0x01,0x00,0x00,0x41,0x00,0x05,0x00, -0x27,0x00,0x00,0x00,0xe9,0x01,0x00,0x00,0x25,0x00,0x00,0x00, -0x2c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xea,0x01,0x00,0x00,0xe9,0x01,0x00,0x00,0x89,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xeb,0x01,0x00,0x00,0xdf,0x01,0x00,0x00, -0xea,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x27,0x00,0x00,0x00, -0xec,0x01,0x00,0x00,0x25,0x00,0x00,0x00,0x30,0x00,0x00,0x00, +0x3f,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,0x3b,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x40,0x00,0x00,0x00, +0x3f,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00, +0x42,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x41,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x43,0x00,0x00,0x00, +0x42,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x44,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x43,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x45,0x00,0x00,0x00, +0x3d,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0x13,0x00,0x00,0x00,0xe5,0x01,0x00,0x00,0x11,0x00,0x00,0x00, +0x12,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xe6,0x01,0x00,0x00,0xe5,0x01,0x00,0x00,0x41,0x00,0x06,0x00, +0x1e,0x00,0x00,0x00,0xe8,0x01,0x00,0x00,0x1b,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0xe6,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0xe9,0x01,0x00,0x00,0xe8,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xea,0x01,0x00,0x00, +0xe9,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x27,0x00,0x00,0x00, +0xec,0x01,0x00,0x00,0x25,0x00,0x00,0x00,0x26,0x00,0x00,0x00, 0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xed,0x01,0x00,0x00, 0xec,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xee,0x01,0x00,0x00,0xeb,0x01,0x00,0x00,0xed,0x01,0x00,0x00, +0xee,0x01,0x00,0x00,0xea,0x01,0x00,0x00,0xed,0x01,0x00,0x00, 0x41,0x00,0x05,0x00,0x27,0x00,0x00,0x00,0xf0,0x01,0x00,0x00, -0x25,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x25,0x00,0x00,0x00,0x2c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, 0x06,0x00,0x00,0x00,0xf1,0x01,0x00,0x00,0xf0,0x01,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf2,0x01,0x00,0x00, -0xdf,0x01,0x00,0x00,0xf1,0x01,0x00,0x00,0x41,0x00,0x05,0x00, -0x27,0x00,0x00,0x00,0x49,0x00,0x00,0x00,0x25,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x4a,0x00,0x00,0x00,0x49,0x00,0x00,0x00,0x86,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x4c,0x00,0x00,0x00,0x4a,0x00,0x00,0x00, -0x4b,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x4f,0x00,0x00,0x00,0xe7,0x01,0x00,0x00,0x4b,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x52,0x00,0x00,0x00, -0x3d,0x00,0x00,0x00,0x4c,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x53,0x00,0x00,0x00,0x4f,0x00,0x00,0x00, -0x52,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00, -0x56,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x3b,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x57,0x00,0x00,0x00, -0x56,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0x57,0x00,0x00,0x00,0x58,0x00,0x00,0x00, -0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5d,0x00,0x00,0x00, -0x57,0x00,0x00,0x00,0x58,0x00,0x00,0x00,0x86,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0x60,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x65,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x61,0x00,0x00,0x00, -0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x66,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0x65,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x6a,0x00,0x00,0x00,0x68,0x00,0x00,0x00, -0x66,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x6d,0x00,0x00,0x00,0x66,0x00,0x00,0x00,0x68,0x00,0x00,0x00, +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf2,0x01,0x00,0x00, +0xe6,0x01,0x00,0x00,0xf1,0x01,0x00,0x00,0x41,0x00,0x05,0x00, +0x27,0x00,0x00,0x00,0xf3,0x01,0x00,0x00,0x25,0x00,0x00,0x00, +0x30,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xf4,0x01,0x00,0x00,0xf3,0x01,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xf5,0x01,0x00,0x00,0xf2,0x01,0x00,0x00, +0xf4,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x27,0x00,0x00,0x00, +0xf7,0x01,0x00,0x00,0x25,0x00,0x00,0x00,0x35,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xf8,0x01,0x00,0x00, +0xf7,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xf9,0x01,0x00,0x00,0xe6,0x01,0x00,0x00,0xf8,0x01,0x00,0x00, +0x41,0x00,0x05,0x00,0x27,0x00,0x00,0x00,0x51,0x00,0x00,0x00, +0x25,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x52,0x00,0x00,0x00,0x51,0x00,0x00,0x00, +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x54,0x00,0x00,0x00, +0x52,0x00,0x00,0x00,0x53,0x00,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x57,0x00,0x00,0x00,0xee,0x01,0x00,0x00, +0x53,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x5a,0x00,0x00,0x00,0x45,0x00,0x00,0x00,0x54,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5b,0x00,0x00,0x00, +0x57,0x00,0x00,0x00,0x5a,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0x13,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,0x5d,0x00,0x00,0x00, +0x3b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x5f,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x5f,0x00,0x00,0x00, +0x41,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x64,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,0x41,0x00,0x00,0x00, +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x68,0x00,0x00,0x00, +0x60,0x00,0x00,0x00,0x67,0x00,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x67,0x00,0x00,0x00, +0x68,0x00,0x00,0x00,0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x6d,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x6c,0x00,0x00,0x00, 0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x71,0x00,0x00,0x00, -0x6f,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x73,0x00,0x00,0x00,0x71,0x00,0x00,0x00, -0x6a,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x77,0x00,0x00,0x00,0x75,0x00,0x00,0x00,0x61,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x79,0x00,0x00,0x00, -0x77,0x00,0x00,0x00,0x6a,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x65,0x00,0x00,0x00, -0x6d,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x82,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x61,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x84,0x00,0x00,0x00, -0x82,0x00,0x00,0x00,0x6a,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x8b,0x00,0x00,0x00,0x89,0x00,0x00,0x00, -0x5d,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x8d,0x00,0x00,0x00,0x8b,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x8f,0x00,0x00,0x00,0x90,0x00,0x00,0x00, -0x88,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,0x3e,0x00,0x03,0x00, -0x90,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, -0x93,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x93,0x00,0x00,0x00, -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xf3,0x01,0x00,0x00, -0x5d,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0xb1,0x01,0x00,0x00, -0x94,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0x9a,0x00,0x00,0x00, -0x9b,0x00,0x00,0x00,0xf3,0x01,0x00,0x00,0x4c,0x00,0x00,0x00, -0xf6,0x00,0x04,0x00,0x95,0x00,0x00,0x00,0x94,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x9b,0x00,0x00,0x00, -0x94,0x00,0x00,0x00,0x95,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0x94,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x9e,0x00,0x00,0x00,0xf3,0x01,0x00,0x00,0x4b,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa0,0x00,0x00,0x00, -0x9e,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xb0,0x00,0x00,0x00,0x53,0x00,0x00,0x00, -0xf3,0x01,0x00,0x00,0x41,0x00,0x07,0x00,0xb1,0x00,0x00,0x00, -0xb2,0x00,0x00,0x00,0xad,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0xb0,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0xa8,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,0xb2,0x00,0x00,0x00, -0x73,0x00,0x04,0x00,0x85,0x00,0x00,0x00,0xb4,0x00,0x00,0x00, -0xb3,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xc5,0x00,0x00,0x00,0xee,0x01,0x00,0x00,0xa0,0x00,0x00,0x00, -0x41,0x00,0x06,0x00,0xca,0x00,0x00,0x00,0xcb,0x00,0x00,0x00, -0xc2,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xc5,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x85,0x00,0x00,0x00,0xcc,0x00,0x00,0x00, -0xcb,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xd2,0x00,0x00,0x00, -0xd3,0x00,0x00,0x00,0xad,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0xb0,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x7e,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0xa6,0x00,0x00,0x00,0xd4,0x00,0x00,0x00, -0xd3,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x85,0x00,0x00,0x00, -0xd5,0x00,0x00,0x00,0xd4,0x00,0x00,0x00,0x85,0x00,0x05,0x00, -0x85,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,0xcc,0x00,0x00,0x00, -0xd5,0x00,0x00,0x00,0x85,0x00,0x05,0x00,0x85,0x00,0x00,0x00, -0xd8,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,0xb4,0x00,0x00,0x00, -0x41,0x00,0x08,0x00,0xe1,0x00,0x00,0x00,0xe2,0x00,0x00,0x00, -0xad,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xb0,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0x73,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0xa3,0x00,0x00,0x00,0xe3,0x00,0x00,0x00,0xe2,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xe4,0x00,0x00,0x00, -0xe3,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0xe5,0x00,0x00,0x00,0xe4,0x00,0x00,0x00,0xc7,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,0xe5,0x00,0x00,0x00, -0xe6,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xe1,0x00,0x00,0x00, -0xf0,0x00,0x00,0x00,0xad,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0xb0,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0x79,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0xa3,0x00,0x00,0x00,0xf1,0x00,0x00,0x00, -0xf0,0x00,0x00,0x00,0xc2,0x00,0x05,0x00,0xa3,0x00,0x00,0x00, -0xf2,0x00,0x00,0x00,0xf1,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xf3,0x00,0x00,0x00, -0xf2,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0xf4,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,0xc7,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,0xf4,0x00,0x00,0x00, -0x35,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0xf6,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,0x26,0x00,0x00,0x00, -0xc5,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xf7,0x00,0x00,0x00, -0xe7,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,0x72,0x00,0x04,0x00, -0xa6,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0xf7,0x00,0x00,0x00, -0x72,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0xf9,0x00,0x00,0x00, -0xf8,0x00,0x00,0x00,0x82,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0xfb,0x00,0x00,0x00,0xf9,0x00,0x00,0x00,0xfa,0x00,0x00,0x00, -0x6f,0x00,0x04,0x00,0x85,0x00,0x00,0x00,0xfc,0x00,0x00,0x00, -0xfb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x04,0x01,0x00,0x00,0xc5,0x00,0x00,0x00,0x75,0x00,0x00,0x00, -0x41,0x00,0x06,0x00,0xca,0x00,0x00,0x00,0x05,0x01,0x00,0x00, -0xc2,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x04,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0x85,0x00,0x00,0x00,0x06,0x01,0x00,0x00, -0x05,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x0b,0x01,0x00,0x00,0x7e,0x00,0x00,0x00,0x58,0x00,0x00,0x00, -0x41,0x00,0x08,0x00,0xd2,0x00,0x00,0x00,0x0c,0x01,0x00,0x00, -0xad,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xb0,0x00,0x00,0x00, -0x30,0x00,0x00,0x00,0x0b,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0xa6,0x00,0x00,0x00,0x0d,0x01,0x00,0x00,0x0c,0x01,0x00,0x00, -0x6f,0x00,0x04,0x00,0x85,0x00,0x00,0x00,0x0e,0x01,0x00,0x00, -0x0d,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x85,0x00,0x00,0x00, -0x0f,0x01,0x00,0x00,0x06,0x01,0x00,0x00,0x0e,0x01,0x00,0x00, -0x85,0x00,0x05,0x00,0x85,0x00,0x00,0x00,0x11,0x01,0x00,0x00, -0x0f,0x01,0x00,0x00,0xb4,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x19,0x01,0x00,0x00,0x73,0x00,0x00,0x00, -0x75,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xe1,0x00,0x00,0x00, -0x1a,0x01,0x00,0x00,0xad,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0xb0,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x19,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0xa3,0x00,0x00,0x00,0x1b,0x01,0x00,0x00, -0x1a,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x1c,0x01,0x00,0x00,0x1b,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x1d,0x01,0x00,0x00,0x1c,0x01,0x00,0x00, -0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x1e,0x01,0x00,0x00, -0x1d,0x01,0x00,0x00,0xe6,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0xa3,0x00,0x00,0x00,0x27,0x01,0x00,0x00,0xf0,0x00,0x00,0x00, -0xc2,0x00,0x05,0x00,0xa3,0x00,0x00,0x00,0x28,0x01,0x00,0x00, -0x27,0x01,0x00,0x00,0x30,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x29,0x01,0x00,0x00,0x28,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x2a,0x01,0x00,0x00, -0x29,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0x2b,0x01,0x00,0x00,0x2a,0x01,0x00,0x00,0x35,0x00,0x00,0x00, -0xc4,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x2c,0x01,0x00,0x00, -0x2b,0x01,0x00,0x00,0x26,0x00,0x00,0x00,0xc5,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0x2d,0x01,0x00,0x00,0x1e,0x01,0x00,0x00, -0x2c,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0xa6,0x00,0x00,0x00, -0x2e,0x01,0x00,0x00,0x2d,0x01,0x00,0x00,0x72,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x2f,0x01,0x00,0x00,0x2e,0x01,0x00,0x00, -0x82,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x30,0x01,0x00,0x00, -0x2f,0x01,0x00,0x00,0xfa,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, -0x85,0x00,0x00,0x00,0x31,0x01,0x00,0x00,0x30,0x01,0x00,0x00, -0x85,0x00,0x05,0x00,0x85,0x00,0x00,0x00,0x32,0x01,0x00,0x00, -0x11,0x01,0x00,0x00,0x31,0x01,0x00,0x00,0x0c,0x00,0x08,0x00, -0x85,0x00,0x00,0x00,0x33,0x01,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0xd8,0x00,0x00,0x00,0xfc,0x00,0x00,0x00, -0x32,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x3a,0x01,0x00,0x00,0xc5,0x00,0x00,0x00,0x6f,0x00,0x00,0x00, -0x41,0x00,0x06,0x00,0xca,0x00,0x00,0x00,0x3b,0x01,0x00,0x00, -0xc2,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x3a,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0x85,0x00,0x00,0x00,0x3c,0x01,0x00,0x00, -0x3b,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x41,0x01,0x00,0x00,0x7e,0x00,0x00,0x00,0x68,0x00,0x00,0x00, -0x41,0x00,0x08,0x00,0xd2,0x00,0x00,0x00,0x42,0x01,0x00,0x00, -0xad,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xb0,0x00,0x00,0x00, -0x30,0x00,0x00,0x00,0x41,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0xa6,0x00,0x00,0x00,0x43,0x01,0x00,0x00,0x42,0x01,0x00,0x00, -0x6f,0x00,0x04,0x00,0x85,0x00,0x00,0x00,0x44,0x01,0x00,0x00, -0x43,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x85,0x00,0x00,0x00, -0x45,0x01,0x00,0x00,0x3c,0x01,0x00,0x00,0x44,0x01,0x00,0x00, -0x85,0x00,0x05,0x00,0x85,0x00,0x00,0x00,0x47,0x01,0x00,0x00, -0x45,0x01,0x00,0x00,0xb4,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0xa3,0x00,0x00,0x00,0x51,0x01,0x00,0x00,0xe2,0x00,0x00,0x00, -0xc2,0x00,0x05,0x00,0xa3,0x00,0x00,0x00,0x52,0x01,0x00,0x00, -0x51,0x01,0x00,0x00,0x26,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x53,0x01,0x00,0x00,0x52,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x54,0x01,0x00,0x00, -0x53,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xa3,0x00,0x00,0x00, -0x5d,0x01,0x00,0x00,0xf0,0x00,0x00,0x00,0xc2,0x00,0x05,0x00, -0xa3,0x00,0x00,0x00,0x5e,0x01,0x00,0x00,0x5d,0x01,0x00,0x00, -0x26,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x5f,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x60,0x01,0x00,0x00,0x5f,0x01,0x00,0x00, -0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x61,0x01,0x00,0x00, -0x60,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0xc4,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0x62,0x01,0x00,0x00,0x61,0x01,0x00,0x00, -0x26,0x00,0x00,0x00,0xc5,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0x63,0x01,0x00,0x00,0x54,0x01,0x00,0x00,0x62,0x01,0x00,0x00, -0x72,0x00,0x04,0x00,0xa6,0x00,0x00,0x00,0x64,0x01,0x00,0x00, -0x63,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0x65,0x01,0x00,0x00,0x64,0x01,0x00,0x00,0x82,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0x66,0x01,0x00,0x00,0x65,0x01,0x00,0x00, -0xfa,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x85,0x00,0x00,0x00, -0x67,0x01,0x00,0x00,0x66,0x01,0x00,0x00,0x0c,0x00,0x08,0x00, -0x85,0x00,0x00,0x00,0x69,0x01,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0x47,0x01,0x00,0x00,0x67,0x01,0x00,0x00, -0x33,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x71,0x01,0x00,0x00,0xc5,0x00,0x00,0x00,0x70,0x01,0x00,0x00, -0x41,0x00,0x06,0x00,0xca,0x00,0x00,0x00,0x72,0x01,0x00,0x00, -0xc2,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x71,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0x85,0x00,0x00,0x00,0x73,0x01,0x00,0x00, -0x72,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x79,0x01,0x00,0x00,0x7e,0x00,0x00,0x00,0x78,0x01,0x00,0x00, -0x41,0x00,0x08,0x00,0xd2,0x00,0x00,0x00,0x7a,0x01,0x00,0x00, -0xad,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xb0,0x00,0x00,0x00, -0x30,0x00,0x00,0x00,0x79,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0xa6,0x00,0x00,0x00,0x7b,0x01,0x00,0x00,0x7a,0x01,0x00,0x00, -0x6f,0x00,0x04,0x00,0x85,0x00,0x00,0x00,0x7c,0x01,0x00,0x00, -0x7b,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x85,0x00,0x00,0x00, -0x7d,0x01,0x00,0x00,0x73,0x01,0x00,0x00,0x7c,0x01,0x00,0x00, -0x85,0x00,0x05,0x00,0x85,0x00,0x00,0x00,0x7f,0x01,0x00,0x00, -0x7d,0x01,0x00,0x00,0xb4,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0xa3,0x00,0x00,0x00,0x89,0x01,0x00,0x00,0x1a,0x01,0x00,0x00, -0xc2,0x00,0x05,0x00,0xa3,0x00,0x00,0x00,0x8a,0x01,0x00,0x00, -0x89,0x01,0x00,0x00,0x26,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x8b,0x01,0x00,0x00,0x8a,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x8c,0x01,0x00,0x00, -0x8b,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xa3,0x00,0x00,0x00, -0x95,0x01,0x00,0x00,0xf0,0x00,0x00,0x00,0xc2,0x00,0x05,0x00, -0xa3,0x00,0x00,0x00,0x97,0x01,0x00,0x00,0x95,0x01,0x00,0x00, -0x96,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x98,0x01,0x00,0x00,0x97,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x99,0x01,0x00,0x00,0x98,0x01,0x00,0x00, -0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x9a,0x01,0x00,0x00, -0x99,0x01,0x00,0x00,0x35,0x00,0x00,0x00,0xc4,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0x9b,0x01,0x00,0x00,0x9a,0x01,0x00,0x00, -0x26,0x00,0x00,0x00,0xc5,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0x9c,0x01,0x00,0x00,0x8c,0x01,0x00,0x00,0x9b,0x01,0x00,0x00, -0x72,0x00,0x04,0x00,0xa6,0x00,0x00,0x00,0x9d,0x01,0x00,0x00, -0x9c,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0x9e,0x01,0x00,0x00,0x9d,0x01,0x00,0x00,0x82,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0x9f,0x01,0x00,0x00,0x9e,0x01,0x00,0x00, -0xfa,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x85,0x00,0x00,0x00, -0xa0,0x01,0x00,0x00,0x9f,0x01,0x00,0x00,0x0c,0x00,0x08,0x00, -0x85,0x00,0x00,0x00,0xa2,0x01,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0x7f,0x01,0x00,0x00,0xa0,0x01,0x00,0x00, -0x69,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x02,0x02,0x00,0x00,0xc5,0x00,0x00,0x00,0x12,0x00,0x00,0x00, -0x41,0x00,0x06,0x00,0xca,0x00,0x00,0x00,0x04,0x02,0x00,0x00, -0xc2,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x02,0x02,0x00,0x00, -0x3d,0x00,0x04,0x00,0x85,0x00,0x00,0x00,0x05,0x02,0x00,0x00, -0x04,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xa6,0x00,0x00,0x00, -0x09,0x02,0x00,0x00,0xd3,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, -0x85,0x00,0x00,0x00,0x0a,0x02,0x00,0x00,0x09,0x02,0x00,0x00, -0x85,0x00,0x05,0x00,0x85,0x00,0x00,0x00,0x0b,0x02,0x00,0x00, -0x05,0x02,0x00,0x00,0x0a,0x02,0x00,0x00,0x85,0x00,0x05,0x00, -0x85,0x00,0x00,0x00,0x0c,0x02,0x00,0x00,0x0b,0x02,0x00,0x00, -0xb4,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x0f,0x02,0x00,0x00,0x73,0x00,0x00,0x00,0x12,0x00,0x00,0x00, -0x41,0x00,0x08,0x00,0xe1,0x00,0x00,0x00,0x11,0x02,0x00,0x00, -0xad,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xb0,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0x0f,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0xa3,0x00,0x00,0x00,0x12,0x02,0x00,0x00,0x11,0x02,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x13,0x02,0x00,0x00, -0x12,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0x14,0x02,0x00,0x00,0x13,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0x15,0x02,0x00,0x00,0x14,0x02,0x00,0x00, -0xe6,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x18,0x02,0x00,0x00,0x79,0x00,0x00,0x00,0x12,0x00,0x00,0x00, -0x41,0x00,0x08,0x00,0xe1,0x00,0x00,0x00,0x19,0x02,0x00,0x00, -0xad,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xb0,0x00,0x00,0x00, -0xeb,0x00,0x00,0x00,0x18,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0xa3,0x00,0x00,0x00,0x1a,0x02,0x00,0x00,0x19,0x02,0x00,0x00, -0xc2,0x00,0x05,0x00,0xa3,0x00,0x00,0x00,0x1b,0x02,0x00,0x00, -0x1a,0x02,0x00,0x00,0x1c,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x1c,0x02,0x00,0x00,0x1b,0x02,0x00,0x00, -0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x1d,0x02,0x00,0x00, -0x1c,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0x1e,0x02,0x00,0x00,0x1d,0x02,0x00,0x00,0x35,0x00,0x00,0x00, -0xc4,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x1f,0x02,0x00,0x00, -0x1e,0x02,0x00,0x00,0x26,0x00,0x00,0x00,0xc5,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0x20,0x02,0x00,0x00,0x15,0x02,0x00,0x00, -0x1f,0x02,0x00,0x00,0x72,0x00,0x04,0x00,0xa6,0x00,0x00,0x00, -0x21,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x72,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x22,0x02,0x00,0x00,0x21,0x02,0x00,0x00, -0x82,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x23,0x02,0x00,0x00, -0x22,0x02,0x00,0x00,0xfa,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, -0x85,0x00,0x00,0x00,0x24,0x02,0x00,0x00,0x23,0x02,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x29,0x02,0x00,0x00, -0xc5,0x00,0x00,0x00,0xe7,0x03,0x00,0x00,0x41,0x00,0x06,0x00, -0xca,0x00,0x00,0x00,0x2a,0x02,0x00,0x00,0xc2,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0x29,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0x85,0x00,0x00,0x00,0x2b,0x02,0x00,0x00,0x2a,0x02,0x00,0x00, -0x3d,0x00,0x04,0x00,0xa6,0x00,0x00,0x00,0x2f,0x02,0x00,0x00, -0x0c,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x85,0x00,0x00,0x00, -0x30,0x02,0x00,0x00,0x2f,0x02,0x00,0x00,0x85,0x00,0x05,0x00, -0x85,0x00,0x00,0x00,0x31,0x02,0x00,0x00,0x2b,0x02,0x00,0x00, -0x30,0x02,0x00,0x00,0x85,0x00,0x05,0x00,0x85,0x00,0x00,0x00, -0x32,0x02,0x00,0x00,0x31,0x02,0x00,0x00,0xb4,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x36,0x02,0x00,0x00, -0x73,0x00,0x00,0x00,0xe7,0x03,0x00,0x00,0x41,0x00,0x08,0x00, -0xe1,0x00,0x00,0x00,0x37,0x02,0x00,0x00,0xad,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0xb0,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x36,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xa3,0x00,0x00,0x00, -0x38,0x02,0x00,0x00,0x37,0x02,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x39,0x02,0x00,0x00,0x38,0x02,0x00,0x00, -0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x3a,0x02,0x00,0x00, -0x39,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0x3b,0x02,0x00,0x00,0x3a,0x02,0x00,0x00,0xe6,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0xa3,0x00,0x00,0x00,0x40,0x02,0x00,0x00, -0x19,0x02,0x00,0x00,0xc2,0x00,0x05,0x00,0xa3,0x00,0x00,0x00, -0x41,0x02,0x00,0x00,0x40,0x02,0x00,0x00,0x30,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x42,0x02,0x00,0x00, -0x41,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0x43,0x02,0x00,0x00,0x42,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0x44,0x02,0x00,0x00,0x43,0x02,0x00,0x00, -0x35,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0x45,0x02,0x00,0x00,0x44,0x02,0x00,0x00,0x26,0x00,0x00,0x00, -0xc5,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x46,0x02,0x00,0x00, -0x3b,0x02,0x00,0x00,0x45,0x02,0x00,0x00,0x72,0x00,0x04,0x00, -0xa6,0x00,0x00,0x00,0x47,0x02,0x00,0x00,0x46,0x02,0x00,0x00, -0x72,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x48,0x02,0x00,0x00, -0x47,0x02,0x00,0x00,0x82,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0x49,0x02,0x00,0x00,0x48,0x02,0x00,0x00,0xfa,0x00,0x00,0x00, -0x6f,0x00,0x04,0x00,0x85,0x00,0x00,0x00,0x4a,0x02,0x00,0x00, -0x49,0x02,0x00,0x00,0x85,0x00,0x05,0x00,0x85,0x00,0x00,0x00, -0x4b,0x02,0x00,0x00,0x32,0x02,0x00,0x00,0x4a,0x02,0x00,0x00, -0x0c,0x00,0x08,0x00,0x85,0x00,0x00,0x00,0x4c,0x02,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x0c,0x02,0x00,0x00, -0x24,0x02,0x00,0x00,0x4b,0x02,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x50,0x02,0x00,0x00,0xc5,0x00,0x00,0x00, -0xe8,0x03,0x00,0x00,0x41,0x00,0x06,0x00,0xca,0x00,0x00,0x00, -0x51,0x02,0x00,0x00,0xc2,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x50,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x85,0x00,0x00,0x00, -0x52,0x02,0x00,0x00,0x51,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0xa6,0x00,0x00,0x00,0x56,0x02,0x00,0x00,0x42,0x01,0x00,0x00, -0x6f,0x00,0x04,0x00,0x85,0x00,0x00,0x00,0x57,0x02,0x00,0x00, -0x56,0x02,0x00,0x00,0x85,0x00,0x05,0x00,0x85,0x00,0x00,0x00, -0x58,0x02,0x00,0x00,0x52,0x02,0x00,0x00,0x57,0x02,0x00,0x00, -0x85,0x00,0x05,0x00,0x85,0x00,0x00,0x00,0x59,0x02,0x00,0x00, -0x58,0x02,0x00,0x00,0xb4,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0xa3,0x00,0x00,0x00,0x5f,0x02,0x00,0x00,0x11,0x02,0x00,0x00, -0xc2,0x00,0x05,0x00,0xa3,0x00,0x00,0x00,0x60,0x02,0x00,0x00, -0x5f,0x02,0x00,0x00,0x26,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x61,0x02,0x00,0x00,0x60,0x02,0x00,0x00, -0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x62,0x02,0x00,0x00, -0x61,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xa3,0x00,0x00,0x00, -0x67,0x02,0x00,0x00,0x19,0x02,0x00,0x00,0xc2,0x00,0x05,0x00, -0xa3,0x00,0x00,0x00,0x68,0x02,0x00,0x00,0x67,0x02,0x00,0x00, -0x26,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x69,0x02,0x00,0x00,0x68,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x6a,0x02,0x00,0x00,0x69,0x02,0x00,0x00, -0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x6b,0x02,0x00,0x00, -0x6a,0x02,0x00,0x00,0x35,0x00,0x00,0x00,0xc4,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0x6c,0x02,0x00,0x00,0x6b,0x02,0x00,0x00, +0x6f,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x74,0x00,0x00,0x00,0x6d,0x00,0x00,0x00, +0x6f,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x78,0x00,0x00,0x00,0x76,0x00,0x00,0x00,0x68,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7a,0x00,0x00,0x00, +0x78,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x7c,0x00,0x00,0x00, +0x68,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x80,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x71,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x85,0x00,0x00,0x00, +0x6c,0x00,0x00,0x00,0x74,0x00,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x89,0x00,0x00,0x00,0x87,0x00,0x00,0x00, +0x68,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x8b,0x00,0x00,0x00,0x89,0x00,0x00,0x00,0x71,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x92,0x00,0x00,0x00, +0x90,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x94,0x00,0x00,0x00,0x92,0x00,0x00,0x00, +0x60,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x96,0x00,0x00,0x00, +0x97,0x00,0x00,0x00,0x8f,0x00,0x00,0x00,0x94,0x00,0x00,0x00, +0x3e,0x00,0x03,0x00,0x97,0x00,0x00,0x00,0x95,0x00,0x00,0x00, +0xf9,0x00,0x02,0x00,0x9a,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0x9a,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00, +0xfa,0x01,0x00,0x00,0x64,0x00,0x00,0x00,0x05,0x00,0x00,0x00, +0xb8,0x01,0x00,0x00,0x9b,0x00,0x00,0x00,0xb0,0x00,0x05,0x00, +0xa1,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,0xfa,0x01,0x00,0x00, +0x54,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x9c,0x00,0x00,0x00, +0x9b,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, +0xa2,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,0x9c,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0x9b,0x00,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xa5,0x00,0x00,0x00,0xfa,0x01,0x00,0x00, +0x53,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xa7,0x00,0x00,0x00,0xa5,0x00,0x00,0x00,0x8b,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb7,0x00,0x00,0x00, +0x5b,0x00,0x00,0x00,0xfa,0x01,0x00,0x00,0x41,0x00,0x07,0x00, +0xb8,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0xb4,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,0x35,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0xaf,0x00,0x00,0x00,0xba,0x00,0x00,0x00, +0xb9,0x00,0x00,0x00,0x73,0x00,0x04,0x00,0x8c,0x00,0x00,0x00, +0xbb,0x00,0x00,0x00,0xba,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,0xf5,0x01,0x00,0x00, +0xa7,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xd1,0x00,0x00,0x00, +0xd2,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0xcc,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00, +0xd3,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,0x41,0x00,0x08,0x00, +0xd9,0x00,0x00,0x00,0xda,0x00,0x00,0x00,0xb4,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,0x30,0x00,0x00,0x00, +0x85,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xad,0x00,0x00,0x00, +0xdb,0x00,0x00,0x00,0xda,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, +0x8c,0x00,0x00,0x00,0xdc,0x00,0x00,0x00,0xdb,0x00,0x00,0x00, +0x85,0x00,0x05,0x00,0x8c,0x00,0x00,0x00,0xdd,0x00,0x00,0x00, +0xd3,0x00,0x00,0x00,0xdc,0x00,0x00,0x00,0x85,0x00,0x05,0x00, +0x8c,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0xdd,0x00,0x00,0x00, +0xbb,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xe8,0x00,0x00,0x00, +0xe9,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0xb7,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x7a,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0xaa,0x00,0x00,0x00,0xea,0x00,0x00,0x00, +0xe9,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xeb,0x00,0x00,0x00,0xea,0x00,0x00,0x00,0x7c,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0xec,0x00,0x00,0x00,0xeb,0x00,0x00,0x00, +0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xee,0x00,0x00,0x00, +0xec,0x00,0x00,0x00,0xed,0x00,0x00,0x00,0x41,0x00,0x08,0x00, +0xe8,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,0xb4,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,0xf2,0x00,0x00,0x00, +0x80,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xaa,0x00,0x00,0x00, +0xf8,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,0xc2,0x00,0x05,0x00, +0xaa,0x00,0x00,0x00,0xf9,0x00,0x00,0x00,0xf8,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xfa,0x00,0x00,0x00,0xf9,0x00,0x00,0x00,0x7c,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0xfa,0x00,0x00,0x00, +0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xfc,0x00,0x00,0x00, +0xfb,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0xc4,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,0xfc,0x00,0x00,0x00, 0x26,0x00,0x00,0x00,0xc5,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0x6d,0x02,0x00,0x00,0x62,0x02,0x00,0x00,0x6c,0x02,0x00,0x00, -0x72,0x00,0x04,0x00,0xa6,0x00,0x00,0x00,0x6e,0x02,0x00,0x00, -0x6d,0x02,0x00,0x00,0x72,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0x6f,0x02,0x00,0x00,0x6e,0x02,0x00,0x00,0x82,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0x70,0x02,0x00,0x00,0x6f,0x02,0x00,0x00, -0xfa,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x85,0x00,0x00,0x00, -0x71,0x02,0x00,0x00,0x70,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, -0x85,0x00,0x00,0x00,0x73,0x02,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0x59,0x02,0x00,0x00,0x71,0x02,0x00,0x00, -0x4c,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x77,0x02,0x00,0x00,0xc5,0x00,0x00,0x00,0xe9,0x03,0x00,0x00, -0x41,0x00,0x06,0x00,0xca,0x00,0x00,0x00,0x78,0x02,0x00,0x00, -0xc2,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x77,0x02,0x00,0x00, -0x3d,0x00,0x04,0x00,0x85,0x00,0x00,0x00,0x79,0x02,0x00,0x00, -0x78,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xa6,0x00,0x00,0x00, -0x7d,0x02,0x00,0x00,0x7a,0x01,0x00,0x00,0x6f,0x00,0x04,0x00, -0x85,0x00,0x00,0x00,0x7e,0x02,0x00,0x00,0x7d,0x02,0x00,0x00, -0x85,0x00,0x05,0x00,0x85,0x00,0x00,0x00,0x7f,0x02,0x00,0x00, -0x79,0x02,0x00,0x00,0x7e,0x02,0x00,0x00,0x85,0x00,0x05,0x00, -0x85,0x00,0x00,0x00,0x80,0x02,0x00,0x00,0x7f,0x02,0x00,0x00, -0xb4,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xa3,0x00,0x00,0x00, -0x86,0x02,0x00,0x00,0x37,0x02,0x00,0x00,0xc2,0x00,0x05,0x00, -0xa3,0x00,0x00,0x00,0x87,0x02,0x00,0x00,0x86,0x02,0x00,0x00, -0x26,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x88,0x02,0x00,0x00,0x87,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x89,0x02,0x00,0x00,0x88,0x02,0x00,0x00, -0x3d,0x00,0x04,0x00,0xa3,0x00,0x00,0x00,0x8e,0x02,0x00,0x00, -0x19,0x02,0x00,0x00,0xc2,0x00,0x05,0x00,0xa3,0x00,0x00,0x00, -0x8f,0x02,0x00,0x00,0x8e,0x02,0x00,0x00,0x96,0x01,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x90,0x02,0x00,0x00, -0x8f,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0x91,0x02,0x00,0x00,0x90,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0x92,0x02,0x00,0x00,0x91,0x02,0x00,0x00, +0xfe,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0xfd,0x00,0x00,0x00, +0x72,0x00,0x04,0x00,0xad,0x00,0x00,0x00,0xff,0x00,0x00,0x00, +0xfe,0x00,0x00,0x00,0x72,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0x00,0x01,0x00,0x00,0xff,0x00,0x00,0x00,0x82,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0x02,0x01,0x00,0x00,0x00,0x01,0x00,0x00, +0x01,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x8c,0x00,0x00,0x00, +0x03,0x01,0x00,0x00,0x02,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x0b,0x01,0x00,0x00,0xcc,0x00,0x00,0x00, +0x7c,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xd1,0x00,0x00,0x00, +0x0c,0x01,0x00,0x00,0xc9,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0x0b,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00, +0x0d,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x12,0x01,0x00,0x00,0x85,0x00,0x00,0x00, +0x41,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xd9,0x00,0x00,0x00, +0x13,0x01,0x00,0x00,0xb4,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0xb7,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x12,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0xad,0x00,0x00,0x00,0x14,0x01,0x00,0x00, +0x13,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x8c,0x00,0x00,0x00, +0x15,0x01,0x00,0x00,0x14,0x01,0x00,0x00,0x85,0x00,0x05,0x00, +0x8c,0x00,0x00,0x00,0x16,0x01,0x00,0x00,0x0d,0x01,0x00,0x00, +0x15,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x8c,0x00,0x00,0x00, +0x18,0x01,0x00,0x00,0x16,0x01,0x00,0x00,0xbb,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x20,0x01,0x00,0x00, +0x7a,0x00,0x00,0x00,0x7c,0x00,0x00,0x00,0x41,0x00,0x08,0x00, +0xe8,0x00,0x00,0x00,0x21,0x01,0x00,0x00,0xb4,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0x20,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xaa,0x00,0x00,0x00, +0x22,0x01,0x00,0x00,0x21,0x01,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x23,0x01,0x00,0x00,0x22,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x24,0x01,0x00,0x00, +0x23,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, +0x25,0x01,0x00,0x00,0x24,0x01,0x00,0x00,0xed,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0xaa,0x00,0x00,0x00,0x2e,0x01,0x00,0x00, +0xf7,0x00,0x00,0x00,0xc2,0x00,0x05,0x00,0xaa,0x00,0x00,0x00, +0x2f,0x01,0x00,0x00,0x2e,0x01,0x00,0x00,0x30,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x30,0x01,0x00,0x00, +0x2f,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0x31,0x01,0x00,0x00,0x30,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0x32,0x01,0x00,0x00,0x31,0x01,0x00,0x00, 0x35,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0x93,0x02,0x00,0x00,0x92,0x02,0x00,0x00,0x26,0x00,0x00,0x00, -0xc5,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x94,0x02,0x00,0x00, -0x89,0x02,0x00,0x00,0x93,0x02,0x00,0x00,0x72,0x00,0x04,0x00, -0xa6,0x00,0x00,0x00,0x95,0x02,0x00,0x00,0x94,0x02,0x00,0x00, -0x72,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x96,0x02,0x00,0x00, -0x95,0x02,0x00,0x00,0x82,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0x97,0x02,0x00,0x00,0x96,0x02,0x00,0x00,0xfa,0x00,0x00,0x00, -0x6f,0x00,0x04,0x00,0x85,0x00,0x00,0x00,0x98,0x02,0x00,0x00, -0x97,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x85,0x00,0x00,0x00, -0x9a,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x80,0x02,0x00,0x00,0x98,0x02,0x00,0x00,0x73,0x02,0x00,0x00, -0x81,0x00,0x05,0x00,0x85,0x00,0x00,0x00,0x9b,0x02,0x00,0x00, -0xa2,0x01,0x00,0x00,0x9a,0x02,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xa6,0x02,0x00,0x00,0xc5,0x00,0x00,0x00, -0x58,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xca,0x00,0x00,0x00, -0xa8,0x02,0x00,0x00,0xc2,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0xa6,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x85,0x00,0x00,0x00, -0xa9,0x02,0x00,0x00,0xa8,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0xa6,0x00,0x00,0x00,0xad,0x02,0x00,0x00,0xd3,0x00,0x00,0x00, -0x6f,0x00,0x04,0x00,0x85,0x00,0x00,0x00,0xae,0x02,0x00,0x00, -0xad,0x02,0x00,0x00,0x85,0x00,0x05,0x00,0x85,0x00,0x00,0x00, -0xaf,0x02,0x00,0x00,0xa9,0x02,0x00,0x00,0xae,0x02,0x00,0x00, -0x85,0x00,0x05,0x00,0x85,0x00,0x00,0x00,0xb0,0x02,0x00,0x00, -0xaf,0x02,0x00,0x00,0xb4,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xb3,0x02,0x00,0x00,0x73,0x00,0x00,0x00, -0x58,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xe1,0x00,0x00,0x00, -0xb5,0x02,0x00,0x00,0xad,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0xb0,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xb3,0x02,0x00,0x00, -0x3d,0x00,0x04,0x00,0xa3,0x00,0x00,0x00,0xb6,0x02,0x00,0x00, -0xb5,0x02,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xb7,0x02,0x00,0x00,0xb6,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0xb8,0x02,0x00,0x00,0xb7,0x02,0x00,0x00, -0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xb9,0x02,0x00,0x00, -0xb8,0x02,0x00,0x00,0xe6,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xbc,0x02,0x00,0x00,0x79,0x00,0x00,0x00, -0x58,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xe1,0x00,0x00,0x00, -0xbd,0x02,0x00,0x00,0xad,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0xb0,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0xbc,0x02,0x00,0x00, -0x3d,0x00,0x04,0x00,0xa3,0x00,0x00,0x00,0xbe,0x02,0x00,0x00, -0xbd,0x02,0x00,0x00,0xc2,0x00,0x05,0x00,0xa3,0x00,0x00,0x00, -0xbf,0x02,0x00,0x00,0xbe,0x02,0x00,0x00,0x1c,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xc0,0x02,0x00,0x00, -0xbf,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0xc1,0x02,0x00,0x00,0xc0,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0xc2,0x02,0x00,0x00,0xc1,0x02,0x00,0x00, +0x33,0x01,0x00,0x00,0x32,0x01,0x00,0x00,0x26,0x00,0x00,0x00, +0xc5,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x34,0x01,0x00,0x00, +0x25,0x01,0x00,0x00,0x33,0x01,0x00,0x00,0x72,0x00,0x04,0x00, +0xad,0x00,0x00,0x00,0x35,0x01,0x00,0x00,0x34,0x01,0x00,0x00, +0x72,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x36,0x01,0x00,0x00, +0x35,0x01,0x00,0x00,0x82,0x00,0x05,0x00,0x17,0x00,0x00,0x00, +0x37,0x01,0x00,0x00,0x36,0x01,0x00,0x00,0x01,0x01,0x00,0x00, +0x6f,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,0x38,0x01,0x00,0x00, +0x37,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x8c,0x00,0x00,0x00, +0x39,0x01,0x00,0x00,0x18,0x01,0x00,0x00,0x38,0x01,0x00,0x00, +0x0c,0x00,0x08,0x00,0x8c,0x00,0x00,0x00,0x3a,0x01,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xdf,0x00,0x00,0x00, +0x03,0x01,0x00,0x00,0x39,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x41,0x01,0x00,0x00,0xcc,0x00,0x00,0x00, +0x76,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xd1,0x00,0x00,0x00, +0x42,0x01,0x00,0x00,0xc9,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0x41,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00, +0x43,0x01,0x00,0x00,0x42,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x48,0x01,0x00,0x00,0x85,0x00,0x00,0x00, +0x6f,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xd9,0x00,0x00,0x00, +0x49,0x01,0x00,0x00,0xb4,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0xb7,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x48,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0xad,0x00,0x00,0x00,0x4a,0x01,0x00,0x00, +0x49,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x8c,0x00,0x00,0x00, +0x4b,0x01,0x00,0x00,0x4a,0x01,0x00,0x00,0x85,0x00,0x05,0x00, +0x8c,0x00,0x00,0x00,0x4c,0x01,0x00,0x00,0x43,0x01,0x00,0x00, +0x4b,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x8c,0x00,0x00,0x00, +0x4e,0x01,0x00,0x00,0x4c,0x01,0x00,0x00,0xbb,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0xaa,0x00,0x00,0x00,0x58,0x01,0x00,0x00, +0xe9,0x00,0x00,0x00,0xc2,0x00,0x05,0x00,0xaa,0x00,0x00,0x00, +0x59,0x01,0x00,0x00,0x58,0x01,0x00,0x00,0x26,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x5a,0x01,0x00,0x00, +0x59,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0x5b,0x01,0x00,0x00,0x5a,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0xaa,0x00,0x00,0x00,0x64,0x01,0x00,0x00,0xf7,0x00,0x00,0x00, +0xc2,0x00,0x05,0x00,0xaa,0x00,0x00,0x00,0x65,0x01,0x00,0x00, +0x64,0x01,0x00,0x00,0x26,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x66,0x01,0x00,0x00,0x65,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x67,0x01,0x00,0x00, +0x66,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, +0x68,0x01,0x00,0x00,0x67,0x01,0x00,0x00,0x35,0x00,0x00,0x00, +0xc4,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x69,0x01,0x00,0x00, +0x68,0x01,0x00,0x00,0x26,0x00,0x00,0x00,0xc5,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0x6a,0x01,0x00,0x00,0x5b,0x01,0x00,0x00, +0x69,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0xad,0x00,0x00,0x00, +0x6b,0x01,0x00,0x00,0x6a,0x01,0x00,0x00,0x72,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0x6c,0x01,0x00,0x00,0x6b,0x01,0x00,0x00, +0x82,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x6d,0x01,0x00,0x00, +0x6c,0x01,0x00,0x00,0x01,0x01,0x00,0x00,0x6f,0x00,0x04,0x00, +0x8c,0x00,0x00,0x00,0x6e,0x01,0x00,0x00,0x6d,0x01,0x00,0x00, +0x0c,0x00,0x08,0x00,0x8c,0x00,0x00,0x00,0x70,0x01,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x4e,0x01,0x00,0x00, +0x6e,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x78,0x01,0x00,0x00,0xcc,0x00,0x00,0x00, +0x77,0x01,0x00,0x00,0x41,0x00,0x06,0x00,0xd1,0x00,0x00,0x00, +0x79,0x01,0x00,0x00,0xc9,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0x78,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00, +0x7a,0x01,0x00,0x00,0x79,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x80,0x01,0x00,0x00,0x85,0x00,0x00,0x00, +0x7f,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0xd9,0x00,0x00,0x00, +0x81,0x01,0x00,0x00,0xb4,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0xb7,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x80,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0xad,0x00,0x00,0x00,0x82,0x01,0x00,0x00, +0x81,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x8c,0x00,0x00,0x00, +0x83,0x01,0x00,0x00,0x82,0x01,0x00,0x00,0x85,0x00,0x05,0x00, +0x8c,0x00,0x00,0x00,0x84,0x01,0x00,0x00,0x7a,0x01,0x00,0x00, +0x83,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x8c,0x00,0x00,0x00, +0x86,0x01,0x00,0x00,0x84,0x01,0x00,0x00,0xbb,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0xaa,0x00,0x00,0x00,0x90,0x01,0x00,0x00, +0x21,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0xaa,0x00,0x00,0x00, +0x91,0x01,0x00,0x00,0x90,0x01,0x00,0x00,0x26,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x92,0x01,0x00,0x00, +0x91,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0x93,0x01,0x00,0x00,0x92,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0xaa,0x00,0x00,0x00,0x9c,0x01,0x00,0x00,0xf7,0x00,0x00,0x00, +0xc2,0x00,0x05,0x00,0xaa,0x00,0x00,0x00,0x9e,0x01,0x00,0x00, +0x9c,0x01,0x00,0x00,0x9d,0x01,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x9f,0x01,0x00,0x00,0x9e,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0xa0,0x01,0x00,0x00, +0x9f,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, +0xa1,0x01,0x00,0x00,0xa0,0x01,0x00,0x00,0x35,0x00,0x00,0x00, +0xc4,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xa2,0x01,0x00,0x00, +0xa1,0x01,0x00,0x00,0x26,0x00,0x00,0x00,0xc5,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0xa3,0x01,0x00,0x00,0x93,0x01,0x00,0x00, +0xa2,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0xad,0x00,0x00,0x00, +0xa4,0x01,0x00,0x00,0xa3,0x01,0x00,0x00,0x72,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0xa5,0x01,0x00,0x00,0xa4,0x01,0x00,0x00, +0x82,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xa6,0x01,0x00,0x00, +0xa5,0x01,0x00,0x00,0x01,0x01,0x00,0x00,0x6f,0x00,0x04,0x00, +0x8c,0x00,0x00,0x00,0xa7,0x01,0x00,0x00,0xa6,0x01,0x00,0x00, +0x0c,0x00,0x08,0x00,0x8c,0x00,0x00,0x00,0xa9,0x01,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x86,0x01,0x00,0x00, +0xa7,0x01,0x00,0x00,0x70,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x09,0x02,0x00,0x00,0xcc,0x00,0x00,0x00, +0x12,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xd1,0x00,0x00,0x00, +0x0b,0x02,0x00,0x00,0xc9,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0x09,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00, +0x0c,0x02,0x00,0x00,0x0b,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0xad,0x00,0x00,0x00,0x10,0x02,0x00,0x00,0xda,0x00,0x00,0x00, +0x6f,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,0x11,0x02,0x00,0x00, +0x10,0x02,0x00,0x00,0x85,0x00,0x05,0x00,0x8c,0x00,0x00,0x00, +0x12,0x02,0x00,0x00,0x0c,0x02,0x00,0x00,0x11,0x02,0x00,0x00, +0x85,0x00,0x05,0x00,0x8c,0x00,0x00,0x00,0x13,0x02,0x00,0x00, +0x12,0x02,0x00,0x00,0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x16,0x02,0x00,0x00,0x7a,0x00,0x00,0x00, +0x12,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xe8,0x00,0x00,0x00, +0x18,0x02,0x00,0x00,0xb4,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0xb7,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x16,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0xaa,0x00,0x00,0x00,0x19,0x02,0x00,0x00, +0x18,0x02,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x1a,0x02,0x00,0x00,0x19,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0x1b,0x02,0x00,0x00,0x1a,0x02,0x00,0x00, +0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x1c,0x02,0x00,0x00, +0x1b,0x02,0x00,0x00,0xed,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x1f,0x02,0x00,0x00,0x80,0x00,0x00,0x00, +0x12,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xe8,0x00,0x00,0x00, +0x20,0x02,0x00,0x00,0xb4,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0xb7,0x00,0x00,0x00,0xf2,0x00,0x00,0x00,0x1f,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0xaa,0x00,0x00,0x00,0x21,0x02,0x00,0x00, +0x20,0x02,0x00,0x00,0xc2,0x00,0x05,0x00,0xaa,0x00,0x00,0x00, +0x22,0x02,0x00,0x00,0x21,0x02,0x00,0x00,0x1c,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x23,0x02,0x00,0x00, +0x22,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0x24,0x02,0x00,0x00,0x23,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0x25,0x02,0x00,0x00,0x24,0x02,0x00,0x00, 0x35,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0xc3,0x02,0x00,0x00,0xc2,0x02,0x00,0x00,0x26,0x00,0x00,0x00, -0xc5,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xc4,0x02,0x00,0x00, -0xb9,0x02,0x00,0x00,0xc3,0x02,0x00,0x00,0x72,0x00,0x04,0x00, -0xa6,0x00,0x00,0x00,0xc5,0x02,0x00,0x00,0xc4,0x02,0x00,0x00, -0x72,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0xc6,0x02,0x00,0x00, -0xc5,0x02,0x00,0x00,0x82,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0xc7,0x02,0x00,0x00,0xc6,0x02,0x00,0x00,0xfa,0x00,0x00,0x00, -0x6f,0x00,0x04,0x00,0x85,0x00,0x00,0x00,0xc8,0x02,0x00,0x00, -0xc7,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xcd,0x02,0x00,0x00,0xc5,0x00,0x00,0x00,0xea,0x03,0x00,0x00, -0x41,0x00,0x06,0x00,0xca,0x00,0x00,0x00,0xce,0x02,0x00,0x00, -0xc2,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xcd,0x02,0x00,0x00, -0x3d,0x00,0x04,0x00,0x85,0x00,0x00,0x00,0xcf,0x02,0x00,0x00, -0xce,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xa6,0x00,0x00,0x00, -0xd3,0x02,0x00,0x00,0x0c,0x01,0x00,0x00,0x6f,0x00,0x04,0x00, -0x85,0x00,0x00,0x00,0xd4,0x02,0x00,0x00,0xd3,0x02,0x00,0x00, -0x85,0x00,0x05,0x00,0x85,0x00,0x00,0x00,0xd5,0x02,0x00,0x00, -0xcf,0x02,0x00,0x00,0xd4,0x02,0x00,0x00,0x85,0x00,0x05,0x00, -0x85,0x00,0x00,0x00,0xd6,0x02,0x00,0x00,0xd5,0x02,0x00,0x00, -0xb4,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xda,0x02,0x00,0x00,0x73,0x00,0x00,0x00,0xea,0x03,0x00,0x00, -0x41,0x00,0x08,0x00,0xe1,0x00,0x00,0x00,0xdb,0x02,0x00,0x00, -0xad,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xb0,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0xda,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0xa3,0x00,0x00,0x00,0xdc,0x02,0x00,0x00,0xdb,0x02,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xdd,0x02,0x00,0x00, -0xdc,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0xde,0x02,0x00,0x00,0xdd,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0xdf,0x02,0x00,0x00,0xde,0x02,0x00,0x00, -0xe6,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xa3,0x00,0x00,0x00, -0xe4,0x02,0x00,0x00,0xbd,0x02,0x00,0x00,0xc2,0x00,0x05,0x00, -0xa3,0x00,0x00,0x00,0xe5,0x02,0x00,0x00,0xe4,0x02,0x00,0x00, +0x26,0x02,0x00,0x00,0x25,0x02,0x00,0x00,0x26,0x00,0x00,0x00, +0xc5,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x27,0x02,0x00,0x00, +0x1c,0x02,0x00,0x00,0x26,0x02,0x00,0x00,0x72,0x00,0x04,0x00, +0xad,0x00,0x00,0x00,0x28,0x02,0x00,0x00,0x27,0x02,0x00,0x00, +0x72,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x29,0x02,0x00,0x00, +0x28,0x02,0x00,0x00,0x82,0x00,0x05,0x00,0x17,0x00,0x00,0x00, +0x2a,0x02,0x00,0x00,0x29,0x02,0x00,0x00,0x01,0x01,0x00,0x00, +0x6f,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,0x2b,0x02,0x00,0x00, +0x2a,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x30,0x02,0x00,0x00,0xcc,0x00,0x00,0x00,0xee,0x03,0x00,0x00, +0x41,0x00,0x06,0x00,0xd1,0x00,0x00,0x00,0x31,0x02,0x00,0x00, +0xc9,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x30,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,0x32,0x02,0x00,0x00, +0x31,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xad,0x00,0x00,0x00, +0x36,0x02,0x00,0x00,0x13,0x01,0x00,0x00,0x6f,0x00,0x04,0x00, +0x8c,0x00,0x00,0x00,0x37,0x02,0x00,0x00,0x36,0x02,0x00,0x00, +0x85,0x00,0x05,0x00,0x8c,0x00,0x00,0x00,0x38,0x02,0x00,0x00, +0x32,0x02,0x00,0x00,0x37,0x02,0x00,0x00,0x85,0x00,0x05,0x00, +0x8c,0x00,0x00,0x00,0x39,0x02,0x00,0x00,0x38,0x02,0x00,0x00, +0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x3d,0x02,0x00,0x00,0x7a,0x00,0x00,0x00,0xee,0x03,0x00,0x00, +0x41,0x00,0x08,0x00,0xe8,0x00,0x00,0x00,0x3e,0x02,0x00,0x00, +0xb4,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xb7,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0x3d,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0xaa,0x00,0x00,0x00,0x3f,0x02,0x00,0x00,0x3e,0x02,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x40,0x02,0x00,0x00, +0x3f,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0x41,0x02,0x00,0x00,0x40,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0x42,0x02,0x00,0x00,0x41,0x02,0x00,0x00, +0xed,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xaa,0x00,0x00,0x00, +0x47,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0xc2,0x00,0x05,0x00, +0xaa,0x00,0x00,0x00,0x48,0x02,0x00,0x00,0x47,0x02,0x00,0x00, 0x30,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xe6,0x02,0x00,0x00,0xe5,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0xe7,0x02,0x00,0x00,0xe6,0x02,0x00,0x00, -0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xe8,0x02,0x00,0x00, -0xe7,0x02,0x00,0x00,0x35,0x00,0x00,0x00,0xc4,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0xe9,0x02,0x00,0x00,0xe8,0x02,0x00,0x00, +0x49,0x02,0x00,0x00,0x48,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0x4a,0x02,0x00,0x00,0x49,0x02,0x00,0x00, +0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x4b,0x02,0x00,0x00, +0x4a,0x02,0x00,0x00,0x35,0x00,0x00,0x00,0xc4,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0x4c,0x02,0x00,0x00,0x4b,0x02,0x00,0x00, 0x26,0x00,0x00,0x00,0xc5,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0xea,0x02,0x00,0x00,0xdf,0x02,0x00,0x00,0xe9,0x02,0x00,0x00, -0x72,0x00,0x04,0x00,0xa6,0x00,0x00,0x00,0xeb,0x02,0x00,0x00, -0xea,0x02,0x00,0x00,0x72,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0xec,0x02,0x00,0x00,0xeb,0x02,0x00,0x00,0x82,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0xed,0x02,0x00,0x00,0xec,0x02,0x00,0x00, -0xfa,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x85,0x00,0x00,0x00, -0xee,0x02,0x00,0x00,0xed,0x02,0x00,0x00,0x85,0x00,0x05,0x00, -0x85,0x00,0x00,0x00,0xef,0x02,0x00,0x00,0xd6,0x02,0x00,0x00, -0xee,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x85,0x00,0x00,0x00, -0xf0,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0xb0,0x02,0x00,0x00,0xc8,0x02,0x00,0x00,0xef,0x02,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf4,0x02,0x00,0x00, -0xc5,0x00,0x00,0x00,0xeb,0x03,0x00,0x00,0x41,0x00,0x06,0x00, -0xca,0x00,0x00,0x00,0xf5,0x02,0x00,0x00,0xc2,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0xf4,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0x85,0x00,0x00,0x00,0xf6,0x02,0x00,0x00,0xf5,0x02,0x00,0x00, -0x3d,0x00,0x04,0x00,0xa6,0x00,0x00,0x00,0xfa,0x02,0x00,0x00, -0x42,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x85,0x00,0x00,0x00, -0xfb,0x02,0x00,0x00,0xfa,0x02,0x00,0x00,0x85,0x00,0x05,0x00, -0x85,0x00,0x00,0x00,0xfc,0x02,0x00,0x00,0xf6,0x02,0x00,0x00, -0xfb,0x02,0x00,0x00,0x85,0x00,0x05,0x00,0x85,0x00,0x00,0x00, -0xfd,0x02,0x00,0x00,0xfc,0x02,0x00,0x00,0xb4,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0xa3,0x00,0x00,0x00,0x03,0x03,0x00,0x00, -0xb5,0x02,0x00,0x00,0xc2,0x00,0x05,0x00,0xa3,0x00,0x00,0x00, -0x04,0x03,0x00,0x00,0x03,0x03,0x00,0x00,0x26,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x05,0x03,0x00,0x00, -0x04,0x03,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0x06,0x03,0x00,0x00,0x05,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, -0xa3,0x00,0x00,0x00,0x0b,0x03,0x00,0x00,0xbd,0x02,0x00,0x00, -0xc2,0x00,0x05,0x00,0xa3,0x00,0x00,0x00,0x0c,0x03,0x00,0x00, -0x0b,0x03,0x00,0x00,0x26,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x0d,0x03,0x00,0x00,0x0c,0x03,0x00,0x00, -0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x0e,0x03,0x00,0x00, -0x0d,0x03,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0x0f,0x03,0x00,0x00,0x0e,0x03,0x00,0x00,0x35,0x00,0x00,0x00, -0xc4,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x10,0x03,0x00,0x00, -0x0f,0x03,0x00,0x00,0x26,0x00,0x00,0x00,0xc5,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0x11,0x03,0x00,0x00,0x06,0x03,0x00,0x00, -0x10,0x03,0x00,0x00,0x72,0x00,0x04,0x00,0xa6,0x00,0x00,0x00, -0x12,0x03,0x00,0x00,0x11,0x03,0x00,0x00,0x72,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x13,0x03,0x00,0x00,0x12,0x03,0x00,0x00, -0x82,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x14,0x03,0x00,0x00, -0x13,0x03,0x00,0x00,0xfa,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, -0x85,0x00,0x00,0x00,0x15,0x03,0x00,0x00,0x14,0x03,0x00,0x00, -0x0c,0x00,0x08,0x00,0x85,0x00,0x00,0x00,0x17,0x03,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xfd,0x02,0x00,0x00, -0x15,0x03,0x00,0x00,0xf0,0x02,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x1b,0x03,0x00,0x00,0xc5,0x00,0x00,0x00, -0xec,0x03,0x00,0x00,0x41,0x00,0x06,0x00,0xca,0x00,0x00,0x00, -0x1c,0x03,0x00,0x00,0xc2,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x1b,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x85,0x00,0x00,0x00, -0x1d,0x03,0x00,0x00,0x1c,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, -0xa6,0x00,0x00,0x00,0x21,0x03,0x00,0x00,0x7a,0x01,0x00,0x00, -0x6f,0x00,0x04,0x00,0x85,0x00,0x00,0x00,0x22,0x03,0x00,0x00, -0x21,0x03,0x00,0x00,0x85,0x00,0x05,0x00,0x85,0x00,0x00,0x00, -0x23,0x03,0x00,0x00,0x1d,0x03,0x00,0x00,0x22,0x03,0x00,0x00, -0x85,0x00,0x05,0x00,0x85,0x00,0x00,0x00,0x24,0x03,0x00,0x00, -0x23,0x03,0x00,0x00,0xb4,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0xa3,0x00,0x00,0x00,0x2a,0x03,0x00,0x00,0xdb,0x02,0x00,0x00, -0xc2,0x00,0x05,0x00,0xa3,0x00,0x00,0x00,0x2b,0x03,0x00,0x00, -0x2a,0x03,0x00,0x00,0x26,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x2c,0x03,0x00,0x00,0x2b,0x03,0x00,0x00, -0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x2d,0x03,0x00,0x00, -0x2c,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0xa3,0x00,0x00,0x00, -0x32,0x03,0x00,0x00,0xbd,0x02,0x00,0x00,0xc2,0x00,0x05,0x00, -0xa3,0x00,0x00,0x00,0x33,0x03,0x00,0x00,0x32,0x03,0x00,0x00, -0x96,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x34,0x03,0x00,0x00,0x33,0x03,0x00,0x00,0x7c,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x35,0x03,0x00,0x00,0x34,0x03,0x00,0x00, -0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x36,0x03,0x00,0x00, -0x35,0x03,0x00,0x00,0x35,0x00,0x00,0x00,0xc4,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0x37,0x03,0x00,0x00,0x36,0x03,0x00,0x00, +0x4d,0x02,0x00,0x00,0x42,0x02,0x00,0x00,0x4c,0x02,0x00,0x00, +0x72,0x00,0x04,0x00,0xad,0x00,0x00,0x00,0x4e,0x02,0x00,0x00, +0x4d,0x02,0x00,0x00,0x72,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0x4f,0x02,0x00,0x00,0x4e,0x02,0x00,0x00,0x82,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0x50,0x02,0x00,0x00,0x4f,0x02,0x00,0x00, +0x01,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x8c,0x00,0x00,0x00, +0x51,0x02,0x00,0x00,0x50,0x02,0x00,0x00,0x85,0x00,0x05,0x00, +0x8c,0x00,0x00,0x00,0x52,0x02,0x00,0x00,0x39,0x02,0x00,0x00, +0x51,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x8c,0x00,0x00,0x00, +0x53,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0x13,0x02,0x00,0x00,0x2b,0x02,0x00,0x00,0x52,0x02,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x57,0x02,0x00,0x00, +0xcc,0x00,0x00,0x00,0xef,0x03,0x00,0x00,0x41,0x00,0x06,0x00, +0xd1,0x00,0x00,0x00,0x58,0x02,0x00,0x00,0xc9,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0x57,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0x8c,0x00,0x00,0x00,0x59,0x02,0x00,0x00,0x58,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0xad,0x00,0x00,0x00,0x5d,0x02,0x00,0x00, +0x49,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x8c,0x00,0x00,0x00, +0x5e,0x02,0x00,0x00,0x5d,0x02,0x00,0x00,0x85,0x00,0x05,0x00, +0x8c,0x00,0x00,0x00,0x5f,0x02,0x00,0x00,0x59,0x02,0x00,0x00, +0x5e,0x02,0x00,0x00,0x85,0x00,0x05,0x00,0x8c,0x00,0x00,0x00, +0x60,0x02,0x00,0x00,0x5f,0x02,0x00,0x00,0xbb,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0xaa,0x00,0x00,0x00,0x66,0x02,0x00,0x00, +0x18,0x02,0x00,0x00,0xc2,0x00,0x05,0x00,0xaa,0x00,0x00,0x00, +0x67,0x02,0x00,0x00,0x66,0x02,0x00,0x00,0x26,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x68,0x02,0x00,0x00, +0x67,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0x69,0x02,0x00,0x00,0x68,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0xaa,0x00,0x00,0x00,0x6e,0x02,0x00,0x00,0x20,0x02,0x00,0x00, +0xc2,0x00,0x05,0x00,0xaa,0x00,0x00,0x00,0x6f,0x02,0x00,0x00, +0x6e,0x02,0x00,0x00,0x26,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x70,0x02,0x00,0x00,0x6f,0x02,0x00,0x00, +0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x71,0x02,0x00,0x00, +0x70,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, +0x72,0x02,0x00,0x00,0x71,0x02,0x00,0x00,0x35,0x00,0x00,0x00, +0xc4,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x73,0x02,0x00,0x00, +0x72,0x02,0x00,0x00,0x26,0x00,0x00,0x00,0xc5,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0x74,0x02,0x00,0x00,0x69,0x02,0x00,0x00, +0x73,0x02,0x00,0x00,0x72,0x00,0x04,0x00,0xad,0x00,0x00,0x00, +0x75,0x02,0x00,0x00,0x74,0x02,0x00,0x00,0x72,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0x76,0x02,0x00,0x00,0x75,0x02,0x00,0x00, +0x82,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x77,0x02,0x00,0x00, +0x76,0x02,0x00,0x00,0x01,0x01,0x00,0x00,0x6f,0x00,0x04,0x00, +0x8c,0x00,0x00,0x00,0x78,0x02,0x00,0x00,0x77,0x02,0x00,0x00, +0x0c,0x00,0x08,0x00,0x8c,0x00,0x00,0x00,0x7a,0x02,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x60,0x02,0x00,0x00, +0x78,0x02,0x00,0x00,0x53,0x02,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x7e,0x02,0x00,0x00,0xcc,0x00,0x00,0x00, +0xf0,0x03,0x00,0x00,0x41,0x00,0x06,0x00,0xd1,0x00,0x00,0x00, +0x7f,0x02,0x00,0x00,0xc9,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0x7e,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00, +0x80,0x02,0x00,0x00,0x7f,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0xad,0x00,0x00,0x00,0x84,0x02,0x00,0x00,0x81,0x01,0x00,0x00, +0x6f,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,0x85,0x02,0x00,0x00, +0x84,0x02,0x00,0x00,0x85,0x00,0x05,0x00,0x8c,0x00,0x00,0x00, +0x86,0x02,0x00,0x00,0x80,0x02,0x00,0x00,0x85,0x02,0x00,0x00, +0x85,0x00,0x05,0x00,0x8c,0x00,0x00,0x00,0x87,0x02,0x00,0x00, +0x86,0x02,0x00,0x00,0xbb,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0xaa,0x00,0x00,0x00,0x8d,0x02,0x00,0x00,0x3e,0x02,0x00,0x00, +0xc2,0x00,0x05,0x00,0xaa,0x00,0x00,0x00,0x8e,0x02,0x00,0x00, +0x8d,0x02,0x00,0x00,0x26,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x8f,0x02,0x00,0x00,0x8e,0x02,0x00,0x00, +0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x90,0x02,0x00,0x00, +0x8f,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xaa,0x00,0x00,0x00, +0x95,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0xc2,0x00,0x05,0x00, +0xaa,0x00,0x00,0x00,0x96,0x02,0x00,0x00,0x95,0x02,0x00,0x00, +0x9d,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x97,0x02,0x00,0x00,0x96,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0x98,0x02,0x00,0x00,0x97,0x02,0x00,0x00, +0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x99,0x02,0x00,0x00, +0x98,0x02,0x00,0x00,0x35,0x00,0x00,0x00,0xc4,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0x9a,0x02,0x00,0x00,0x99,0x02,0x00,0x00, 0x26,0x00,0x00,0x00,0xc5,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0x38,0x03,0x00,0x00,0x2d,0x03,0x00,0x00,0x37,0x03,0x00,0x00, -0x72,0x00,0x04,0x00,0xa6,0x00,0x00,0x00,0x39,0x03,0x00,0x00, -0x38,0x03,0x00,0x00,0x72,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0x3a,0x03,0x00,0x00,0x39,0x03,0x00,0x00,0x82,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0x3b,0x03,0x00,0x00,0x3a,0x03,0x00,0x00, -0xfa,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x85,0x00,0x00,0x00, -0x3c,0x03,0x00,0x00,0x3b,0x03,0x00,0x00,0x0c,0x00,0x08,0x00, -0x85,0x00,0x00,0x00,0x3e,0x03,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0x24,0x03,0x00,0x00,0x3c,0x03,0x00,0x00, -0x17,0x03,0x00,0x00,0x81,0x00,0x05,0x00,0x85,0x00,0x00,0x00, -0x3f,0x03,0x00,0x00,0x9b,0x02,0x00,0x00,0x3e,0x03,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4a,0x03,0x00,0x00, -0xc5,0x00,0x00,0x00,0xed,0x03,0x00,0x00,0x41,0x00,0x06,0x00, -0xca,0x00,0x00,0x00,0x4c,0x03,0x00,0x00,0xc2,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0x4a,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, -0x85,0x00,0x00,0x00,0x4d,0x03,0x00,0x00,0x4c,0x03,0x00,0x00, -0x3d,0x00,0x04,0x00,0xa6,0x00,0x00,0x00,0x51,0x03,0x00,0x00, -0xd3,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x85,0x00,0x00,0x00, -0x52,0x03,0x00,0x00,0x51,0x03,0x00,0x00,0x85,0x00,0x05,0x00, -0x85,0x00,0x00,0x00,0x53,0x03,0x00,0x00,0x4d,0x03,0x00,0x00, -0x52,0x03,0x00,0x00,0x85,0x00,0x05,0x00,0x85,0x00,0x00,0x00, -0x54,0x03,0x00,0x00,0x53,0x03,0x00,0x00,0xb4,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x57,0x03,0x00,0x00, -0x73,0x00,0x00,0x00,0xed,0x03,0x00,0x00,0x41,0x00,0x08,0x00, -0xe1,0x00,0x00,0x00,0x59,0x03,0x00,0x00,0xad,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0xb0,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x57,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0xa3,0x00,0x00,0x00, -0x5a,0x03,0x00,0x00,0x59,0x03,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x5b,0x03,0x00,0x00,0x5a,0x03,0x00,0x00, -0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x5c,0x03,0x00,0x00, -0x5b,0x03,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0x5d,0x03,0x00,0x00,0x5c,0x03,0x00,0x00,0xe6,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x60,0x03,0x00,0x00, -0x79,0x00,0x00,0x00,0xed,0x03,0x00,0x00,0x41,0x00,0x08,0x00, -0xe1,0x00,0x00,0x00,0x61,0x03,0x00,0x00,0xad,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0xb0,0x00,0x00,0x00,0xeb,0x00,0x00,0x00, -0x60,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0xa3,0x00,0x00,0x00, -0x62,0x03,0x00,0x00,0x61,0x03,0x00,0x00,0xc2,0x00,0x05,0x00, -0xa3,0x00,0x00,0x00,0x63,0x03,0x00,0x00,0x62,0x03,0x00,0x00, +0x9b,0x02,0x00,0x00,0x90,0x02,0x00,0x00,0x9a,0x02,0x00,0x00, +0x72,0x00,0x04,0x00,0xad,0x00,0x00,0x00,0x9c,0x02,0x00,0x00, +0x9b,0x02,0x00,0x00,0x72,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0x9d,0x02,0x00,0x00,0x9c,0x02,0x00,0x00,0x82,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0x9e,0x02,0x00,0x00,0x9d,0x02,0x00,0x00, +0x01,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x8c,0x00,0x00,0x00, +0x9f,0x02,0x00,0x00,0x9e,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, +0x8c,0x00,0x00,0x00,0xa1,0x02,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x87,0x02,0x00,0x00,0x9f,0x02,0x00,0x00, +0x7a,0x02,0x00,0x00,0x81,0x00,0x05,0x00,0x8c,0x00,0x00,0x00, +0xa2,0x02,0x00,0x00,0xa9,0x01,0x00,0x00,0xa1,0x02,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xad,0x02,0x00,0x00, +0xcc,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x41,0x00,0x06,0x00, +0xd1,0x00,0x00,0x00,0xaf,0x02,0x00,0x00,0xc9,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0xad,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0x8c,0x00,0x00,0x00,0xb0,0x02,0x00,0x00,0xaf,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0xad,0x00,0x00,0x00,0xb4,0x02,0x00,0x00, +0xda,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x8c,0x00,0x00,0x00, +0xb5,0x02,0x00,0x00,0xb4,0x02,0x00,0x00,0x85,0x00,0x05,0x00, +0x8c,0x00,0x00,0x00,0xb6,0x02,0x00,0x00,0xb0,0x02,0x00,0x00, +0xb5,0x02,0x00,0x00,0x85,0x00,0x05,0x00,0x8c,0x00,0x00,0x00, +0xb7,0x02,0x00,0x00,0xb6,0x02,0x00,0x00,0xbb,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xba,0x02,0x00,0x00, +0x7a,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x41,0x00,0x08,0x00, +0xe8,0x00,0x00,0x00,0xbc,0x02,0x00,0x00,0xb4,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0xba,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xaa,0x00,0x00,0x00, +0xbd,0x02,0x00,0x00,0xbc,0x02,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xbe,0x02,0x00,0x00,0xbd,0x02,0x00,0x00, +0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0xbf,0x02,0x00,0x00, +0xbe,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, +0xc0,0x02,0x00,0x00,0xbf,0x02,0x00,0x00,0xed,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc3,0x02,0x00,0x00, +0x80,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x41,0x00,0x08,0x00, +0xe8,0x00,0x00,0x00,0xc4,0x02,0x00,0x00,0xb4,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,0xf2,0x00,0x00,0x00, +0xc3,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xaa,0x00,0x00,0x00, +0xc5,0x02,0x00,0x00,0xc4,0x02,0x00,0x00,0xc2,0x00,0x05,0x00, +0xaa,0x00,0x00,0x00,0xc6,0x02,0x00,0x00,0xc5,0x02,0x00,0x00, 0x1c,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x64,0x03,0x00,0x00,0x63,0x03,0x00,0x00,0x7c,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x65,0x03,0x00,0x00,0x64,0x03,0x00,0x00, -0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x66,0x03,0x00,0x00, -0x65,0x03,0x00,0x00,0x35,0x00,0x00,0x00,0xc4,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0x67,0x03,0x00,0x00,0x66,0x03,0x00,0x00, +0xc7,0x02,0x00,0x00,0xc6,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0xc8,0x02,0x00,0x00,0xc7,0x02,0x00,0x00, +0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xc9,0x02,0x00,0x00, +0xc8,0x02,0x00,0x00,0x35,0x00,0x00,0x00,0xc4,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0xca,0x02,0x00,0x00,0xc9,0x02,0x00,0x00, 0x26,0x00,0x00,0x00,0xc5,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0x68,0x03,0x00,0x00,0x5d,0x03,0x00,0x00,0x67,0x03,0x00,0x00, -0x72,0x00,0x04,0x00,0xa6,0x00,0x00,0x00,0x69,0x03,0x00,0x00, -0x68,0x03,0x00,0x00,0x72,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0x6a,0x03,0x00,0x00,0x69,0x03,0x00,0x00,0x82,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0x6b,0x03,0x00,0x00,0x6a,0x03,0x00,0x00, -0xfa,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x85,0x00,0x00,0x00, -0x6c,0x03,0x00,0x00,0x6b,0x03,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x71,0x03,0x00,0x00,0xc5,0x00,0x00,0x00, -0xee,0x03,0x00,0x00,0x41,0x00,0x06,0x00,0xca,0x00,0x00,0x00, -0x72,0x03,0x00,0x00,0xc2,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x71,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x85,0x00,0x00,0x00, -0x73,0x03,0x00,0x00,0x72,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, -0xa6,0x00,0x00,0x00,0x77,0x03,0x00,0x00,0x0c,0x01,0x00,0x00, -0x6f,0x00,0x04,0x00,0x85,0x00,0x00,0x00,0x78,0x03,0x00,0x00, -0x77,0x03,0x00,0x00,0x85,0x00,0x05,0x00,0x85,0x00,0x00,0x00, -0x79,0x03,0x00,0x00,0x73,0x03,0x00,0x00,0x78,0x03,0x00,0x00, -0x85,0x00,0x05,0x00,0x85,0x00,0x00,0x00,0x7a,0x03,0x00,0x00, -0x79,0x03,0x00,0x00,0xb4,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x7e,0x03,0x00,0x00,0x73,0x00,0x00,0x00, -0xee,0x03,0x00,0x00,0x41,0x00,0x08,0x00,0xe1,0x00,0x00,0x00, -0x7f,0x03,0x00,0x00,0xad,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0xb0,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x7e,0x03,0x00,0x00, -0x3d,0x00,0x04,0x00,0xa3,0x00,0x00,0x00,0x80,0x03,0x00,0x00, -0x7f,0x03,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x81,0x03,0x00,0x00,0x80,0x03,0x00,0x00,0x7c,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x82,0x03,0x00,0x00,0x81,0x03,0x00,0x00, -0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x83,0x03,0x00,0x00, -0x82,0x03,0x00,0x00,0xe6,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0xa3,0x00,0x00,0x00,0x88,0x03,0x00,0x00,0x61,0x03,0x00,0x00, -0xc2,0x00,0x05,0x00,0xa3,0x00,0x00,0x00,0x89,0x03,0x00,0x00, -0x88,0x03,0x00,0x00,0x30,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x8a,0x03,0x00,0x00,0x89,0x03,0x00,0x00, -0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x8b,0x03,0x00,0x00, -0x8a,0x03,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0x8c,0x03,0x00,0x00,0x8b,0x03,0x00,0x00,0x35,0x00,0x00,0x00, -0xc4,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x8d,0x03,0x00,0x00, -0x8c,0x03,0x00,0x00,0x26,0x00,0x00,0x00,0xc5,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0x8e,0x03,0x00,0x00,0x83,0x03,0x00,0x00, -0x8d,0x03,0x00,0x00,0x72,0x00,0x04,0x00,0xa6,0x00,0x00,0x00, -0x8f,0x03,0x00,0x00,0x8e,0x03,0x00,0x00,0x72,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0x90,0x03,0x00,0x00,0x8f,0x03,0x00,0x00, -0x82,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x91,0x03,0x00,0x00, -0x90,0x03,0x00,0x00,0xfa,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, -0x85,0x00,0x00,0x00,0x92,0x03,0x00,0x00,0x91,0x03,0x00,0x00, -0x85,0x00,0x05,0x00,0x85,0x00,0x00,0x00,0x93,0x03,0x00,0x00, -0x7a,0x03,0x00,0x00,0x92,0x03,0x00,0x00,0x0c,0x00,0x08,0x00, -0x85,0x00,0x00,0x00,0x94,0x03,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0x54,0x03,0x00,0x00,0x6c,0x03,0x00,0x00, -0x93,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x98,0x03,0x00,0x00,0xc5,0x00,0x00,0x00,0xef,0x03,0x00,0x00, -0x41,0x00,0x06,0x00,0xca,0x00,0x00,0x00,0x99,0x03,0x00,0x00, -0xc2,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x98,0x03,0x00,0x00, -0x3d,0x00,0x04,0x00,0x85,0x00,0x00,0x00,0x9a,0x03,0x00,0x00, -0x99,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0xa6,0x00,0x00,0x00, -0x9e,0x03,0x00,0x00,0x42,0x01,0x00,0x00,0x6f,0x00,0x04,0x00, -0x85,0x00,0x00,0x00,0x9f,0x03,0x00,0x00,0x9e,0x03,0x00,0x00, -0x85,0x00,0x05,0x00,0x85,0x00,0x00,0x00,0xa0,0x03,0x00,0x00, -0x9a,0x03,0x00,0x00,0x9f,0x03,0x00,0x00,0x85,0x00,0x05,0x00, -0x85,0x00,0x00,0x00,0xa1,0x03,0x00,0x00,0xa0,0x03,0x00,0x00, -0xb4,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xa3,0x00,0x00,0x00, -0xa7,0x03,0x00,0x00,0x59,0x03,0x00,0x00,0xc2,0x00,0x05,0x00, -0xa3,0x00,0x00,0x00,0xa8,0x03,0x00,0x00,0xa7,0x03,0x00,0x00, +0xcb,0x02,0x00,0x00,0xc0,0x02,0x00,0x00,0xca,0x02,0x00,0x00, +0x72,0x00,0x04,0x00,0xad,0x00,0x00,0x00,0xcc,0x02,0x00,0x00, +0xcb,0x02,0x00,0x00,0x72,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0xcd,0x02,0x00,0x00,0xcc,0x02,0x00,0x00,0x82,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0xce,0x02,0x00,0x00,0xcd,0x02,0x00,0x00, +0x01,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x8c,0x00,0x00,0x00, +0xcf,0x02,0x00,0x00,0xce,0x02,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xd4,0x02,0x00,0x00,0xcc,0x00,0x00,0x00, +0xf1,0x03,0x00,0x00,0x41,0x00,0x06,0x00,0xd1,0x00,0x00,0x00, +0xd5,0x02,0x00,0x00,0xc9,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0xd4,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00, +0xd6,0x02,0x00,0x00,0xd5,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0xad,0x00,0x00,0x00,0xda,0x02,0x00,0x00,0x13,0x01,0x00,0x00, +0x6f,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,0xdb,0x02,0x00,0x00, +0xda,0x02,0x00,0x00,0x85,0x00,0x05,0x00,0x8c,0x00,0x00,0x00, +0xdc,0x02,0x00,0x00,0xd6,0x02,0x00,0x00,0xdb,0x02,0x00,0x00, +0x85,0x00,0x05,0x00,0x8c,0x00,0x00,0x00,0xdd,0x02,0x00,0x00, +0xdc,0x02,0x00,0x00,0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xe1,0x02,0x00,0x00,0x7a,0x00,0x00,0x00, +0xf1,0x03,0x00,0x00,0x41,0x00,0x08,0x00,0xe8,0x00,0x00,0x00, +0xe2,0x02,0x00,0x00,0xb4,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0xb7,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xe1,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0xaa,0x00,0x00,0x00,0xe3,0x02,0x00,0x00, +0xe2,0x02,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xe4,0x02,0x00,0x00,0xe3,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0xe5,0x02,0x00,0x00,0xe4,0x02,0x00,0x00, +0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xe6,0x02,0x00,0x00, +0xe5,0x02,0x00,0x00,0xed,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0xaa,0x00,0x00,0x00,0xeb,0x02,0x00,0x00,0xc4,0x02,0x00,0x00, +0xc2,0x00,0x05,0x00,0xaa,0x00,0x00,0x00,0xec,0x02,0x00,0x00, +0xeb,0x02,0x00,0x00,0x30,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xed,0x02,0x00,0x00,0xec,0x02,0x00,0x00, +0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0xee,0x02,0x00,0x00, +0xed,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, +0xef,0x02,0x00,0x00,0xee,0x02,0x00,0x00,0x35,0x00,0x00,0x00, +0xc4,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xf0,0x02,0x00,0x00, +0xef,0x02,0x00,0x00,0x26,0x00,0x00,0x00,0xc5,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0xf1,0x02,0x00,0x00,0xe6,0x02,0x00,0x00, +0xf0,0x02,0x00,0x00,0x72,0x00,0x04,0x00,0xad,0x00,0x00,0x00, +0xf2,0x02,0x00,0x00,0xf1,0x02,0x00,0x00,0x72,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0xf3,0x02,0x00,0x00,0xf2,0x02,0x00,0x00, +0x82,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xf4,0x02,0x00,0x00, +0xf3,0x02,0x00,0x00,0x01,0x01,0x00,0x00,0x6f,0x00,0x04,0x00, +0x8c,0x00,0x00,0x00,0xf5,0x02,0x00,0x00,0xf4,0x02,0x00,0x00, +0x85,0x00,0x05,0x00,0x8c,0x00,0x00,0x00,0xf6,0x02,0x00,0x00, +0xdd,0x02,0x00,0x00,0xf5,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, +0x8c,0x00,0x00,0x00,0xf7,0x02,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0xb7,0x02,0x00,0x00,0xcf,0x02,0x00,0x00, +0xf6,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xfb,0x02,0x00,0x00,0xcc,0x00,0x00,0x00,0xf2,0x03,0x00,0x00, +0x41,0x00,0x06,0x00,0xd1,0x00,0x00,0x00,0xfc,0x02,0x00,0x00, +0xc9,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xfb,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,0xfd,0x02,0x00,0x00, +0xfc,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xad,0x00,0x00,0x00, +0x01,0x03,0x00,0x00,0x49,0x01,0x00,0x00,0x6f,0x00,0x04,0x00, +0x8c,0x00,0x00,0x00,0x02,0x03,0x00,0x00,0x01,0x03,0x00,0x00, +0x85,0x00,0x05,0x00,0x8c,0x00,0x00,0x00,0x03,0x03,0x00,0x00, +0xfd,0x02,0x00,0x00,0x02,0x03,0x00,0x00,0x85,0x00,0x05,0x00, +0x8c,0x00,0x00,0x00,0x04,0x03,0x00,0x00,0x03,0x03,0x00,0x00, +0xbb,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xaa,0x00,0x00,0x00, +0x0a,0x03,0x00,0x00,0xbc,0x02,0x00,0x00,0xc2,0x00,0x05,0x00, +0xaa,0x00,0x00,0x00,0x0b,0x03,0x00,0x00,0x0a,0x03,0x00,0x00, 0x26,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xa9,0x03,0x00,0x00,0xa8,0x03,0x00,0x00,0x7c,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0xaa,0x03,0x00,0x00,0xa9,0x03,0x00,0x00, -0x3d,0x00,0x04,0x00,0xa3,0x00,0x00,0x00,0xaf,0x03,0x00,0x00, -0x61,0x03,0x00,0x00,0xc2,0x00,0x05,0x00,0xa3,0x00,0x00,0x00, -0xb0,0x03,0x00,0x00,0xaf,0x03,0x00,0x00,0x26,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xb1,0x03,0x00,0x00, -0xb0,0x03,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0xb2,0x03,0x00,0x00,0xb1,0x03,0x00,0x00,0xc7,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0xb3,0x03,0x00,0x00,0xb2,0x03,0x00,0x00, +0x0c,0x03,0x00,0x00,0x0b,0x03,0x00,0x00,0x7c,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0x0d,0x03,0x00,0x00,0x0c,0x03,0x00,0x00, +0x3d,0x00,0x04,0x00,0xaa,0x00,0x00,0x00,0x12,0x03,0x00,0x00, +0xc4,0x02,0x00,0x00,0xc2,0x00,0x05,0x00,0xaa,0x00,0x00,0x00, +0x13,0x03,0x00,0x00,0x12,0x03,0x00,0x00,0x26,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x14,0x03,0x00,0x00, +0x13,0x03,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0x15,0x03,0x00,0x00,0x14,0x03,0x00,0x00,0xc7,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0x16,0x03,0x00,0x00,0x15,0x03,0x00,0x00, 0x35,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0xb4,0x03,0x00,0x00,0xb3,0x03,0x00,0x00,0x26,0x00,0x00,0x00, -0xc5,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xb5,0x03,0x00,0x00, -0xaa,0x03,0x00,0x00,0xb4,0x03,0x00,0x00,0x72,0x00,0x04,0x00, -0xa6,0x00,0x00,0x00,0xb6,0x03,0x00,0x00,0xb5,0x03,0x00,0x00, -0x72,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0xb7,0x03,0x00,0x00, -0xb6,0x03,0x00,0x00,0x82,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0xb8,0x03,0x00,0x00,0xb7,0x03,0x00,0x00,0xfa,0x00,0x00,0x00, -0x6f,0x00,0x04,0x00,0x85,0x00,0x00,0x00,0xb9,0x03,0x00,0x00, -0xb8,0x03,0x00,0x00,0x0c,0x00,0x08,0x00,0x85,0x00,0x00,0x00, -0xbb,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0xa1,0x03,0x00,0x00,0xb9,0x03,0x00,0x00,0x94,0x03,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbf,0x03,0x00,0x00, -0xc5,0x00,0x00,0x00,0xf0,0x03,0x00,0x00,0x41,0x00,0x06,0x00, -0xca,0x00,0x00,0x00,0xc0,0x03,0x00,0x00,0xc2,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0xbf,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, -0x85,0x00,0x00,0x00,0xc1,0x03,0x00,0x00,0xc0,0x03,0x00,0x00, -0x3d,0x00,0x04,0x00,0xa6,0x00,0x00,0x00,0xc5,0x03,0x00,0x00, -0x7a,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x85,0x00,0x00,0x00, -0xc6,0x03,0x00,0x00,0xc5,0x03,0x00,0x00,0x85,0x00,0x05,0x00, -0x85,0x00,0x00,0x00,0xc7,0x03,0x00,0x00,0xc1,0x03,0x00,0x00, -0xc6,0x03,0x00,0x00,0x85,0x00,0x05,0x00,0x85,0x00,0x00,0x00, -0xc8,0x03,0x00,0x00,0xc7,0x03,0x00,0x00,0xb4,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0xa3,0x00,0x00,0x00,0xce,0x03,0x00,0x00, -0x7f,0x03,0x00,0x00,0xc2,0x00,0x05,0x00,0xa3,0x00,0x00,0x00, -0xcf,0x03,0x00,0x00,0xce,0x03,0x00,0x00,0x26,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xd0,0x03,0x00,0x00, -0xcf,0x03,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, -0xd1,0x03,0x00,0x00,0xd0,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, -0xa3,0x00,0x00,0x00,0xd6,0x03,0x00,0x00,0x61,0x03,0x00,0x00, -0xc2,0x00,0x05,0x00,0xa3,0x00,0x00,0x00,0xd7,0x03,0x00,0x00, -0xd6,0x03,0x00,0x00,0x96,0x01,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xd8,0x03,0x00,0x00,0xd7,0x03,0x00,0x00, -0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0xd9,0x03,0x00,0x00, -0xd8,0x03,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, -0xda,0x03,0x00,0x00,0xd9,0x03,0x00,0x00,0x35,0x00,0x00,0x00, -0xc4,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xdb,0x03,0x00,0x00, -0xda,0x03,0x00,0x00,0x26,0x00,0x00,0x00,0xc5,0x00,0x05,0x00, -0x17,0x00,0x00,0x00,0xdc,0x03,0x00,0x00,0xd1,0x03,0x00,0x00, -0xdb,0x03,0x00,0x00,0x72,0x00,0x04,0x00,0xa6,0x00,0x00,0x00, -0xdd,0x03,0x00,0x00,0xdc,0x03,0x00,0x00,0x72,0x00,0x04,0x00, -0x17,0x00,0x00,0x00,0xde,0x03,0x00,0x00,0xdd,0x03,0x00,0x00, -0x82,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xdf,0x03,0x00,0x00, -0xde,0x03,0x00,0x00,0xfa,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, -0x85,0x00,0x00,0x00,0xe0,0x03,0x00,0x00,0xdf,0x03,0x00,0x00, -0x0c,0x00,0x08,0x00,0x85,0x00,0x00,0x00,0xe2,0x03,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xc8,0x03,0x00,0x00, -0xe0,0x03,0x00,0x00,0xbb,0x03,0x00,0x00,0x81,0x00,0x05,0x00, -0x85,0x00,0x00,0x00,0xe3,0x03,0x00,0x00,0x3f,0x03,0x00,0x00, -0xe2,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x85,0x00,0x00,0x00, -0xad,0x01,0x00,0x00,0x90,0x00,0x00,0x00,0x81,0x00,0x05,0x00, -0x85,0x00,0x00,0x00,0xae,0x01,0x00,0x00,0xad,0x01,0x00,0x00, -0xe3,0x03,0x00,0x00,0x3e,0x00,0x03,0x00,0x90,0x00,0x00,0x00, -0xae,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xb1,0x01,0x00,0x00,0xf3,0x01,0x00,0x00,0x58,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0x93,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0x95,0x00,0x00,0x00,0xe0,0x00,0x04,0x00,0x58,0x00,0x00,0x00, -0x58,0x00,0x00,0x00,0xb2,0x01,0x00,0x00,0xf9,0x00,0x02,0x00, -0xb4,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xb4,0x01,0x00,0x00, -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xf4,0x01,0x00,0x00, -0x89,0x00,0x00,0x00,0x95,0x00,0x00,0x00,0xcb,0x01,0x00,0x00, -0xb7,0x01,0x00,0x00,0xac,0x00,0x05,0x00,0x9a,0x00,0x00,0x00, -0xba,0x01,0x00,0x00,0xf4,0x01,0x00,0x00,0x3b,0x00,0x00,0x00, -0xf6,0x00,0x04,0x00,0xb6,0x01,0x00,0x00,0xb7,0x01,0x00,0x00, -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xba,0x01,0x00,0x00, -0xb5,0x01,0x00,0x00,0xb6,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, -0xb5,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0x9a,0x00,0x00,0x00, -0xbd,0x01,0x00,0x00,0x59,0x00,0x00,0x00,0xf4,0x01,0x00,0x00, -0xf7,0x00,0x03,0x00,0xbf,0x01,0x00,0x00,0x00,0x00,0x00,0x00, -0xfa,0x00,0x04,0x00,0xbd,0x01,0x00,0x00,0xbe,0x01,0x00,0x00, -0xbf,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xbe,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc3,0x01,0x00,0x00, -0x59,0x00,0x00,0x00,0xf4,0x01,0x00,0x00,0x41,0x00,0x05,0x00, -0x8f,0x00,0x00,0x00,0xc4,0x01,0x00,0x00,0x88,0x00,0x00,0x00, -0xc3,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x85,0x00,0x00,0x00, -0xc5,0x01,0x00,0x00,0xc4,0x01,0x00,0x00,0x41,0x00,0x05,0x00, -0x8f,0x00,0x00,0x00,0xc6,0x01,0x00,0x00,0x88,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x85,0x00,0x00,0x00, -0xc7,0x01,0x00,0x00,0xc6,0x01,0x00,0x00,0x81,0x00,0x05,0x00, -0x85,0x00,0x00,0x00,0xc8,0x01,0x00,0x00,0xc7,0x01,0x00,0x00, -0xc5,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xc6,0x01,0x00,0x00, -0xc8,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xbf,0x01,0x00,0x00, -0xf8,0x00,0x02,0x00,0xbf,0x01,0x00,0x00,0xe0,0x00,0x04,0x00, -0x58,0x00,0x00,0x00,0x58,0x00,0x00,0x00,0xb2,0x01,0x00,0x00, -0xf9,0x00,0x02,0x00,0xb7,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, -0xb7,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xcb,0x01,0x00,0x00,0xf4,0x01,0x00,0x00,0xeb,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0xb4,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, -0xb6,0x01,0x00,0x00,0xaa,0x00,0x05,0x00,0x9a,0x00,0x00,0x00, -0xcd,0x01,0x00,0x00,0x59,0x00,0x00,0x00,0x3b,0x00,0x00,0x00, -0xf7,0x00,0x03,0x00,0xcf,0x01,0x00,0x00,0x00,0x00,0x00,0x00, -0xfa,0x00,0x04,0x00,0xcd,0x01,0x00,0x00,0xce,0x01,0x00,0x00, -0xcf,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xce,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd6,0x01,0x00,0x00, -0xf2,0x01,0x00,0x00,0x3d,0x00,0x00,0x00,0x41,0x00,0x05,0x00, -0x8f,0x00,0x00,0x00,0xd7,0x01,0x00,0x00,0x88,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x85,0x00,0x00,0x00, -0xd8,0x01,0x00,0x00,0xd7,0x01,0x00,0x00,0x41,0x00,0x06,0x00, -0xca,0x00,0x00,0x00,0xd9,0x01,0x00,0x00,0xd3,0x01,0x00,0x00, -0x1c,0x00,0x00,0x00,0xd6,0x01,0x00,0x00,0x3e,0x00,0x03,0x00, -0xd9,0x01,0x00,0x00,0xd8,0x01,0x00,0x00,0xf9,0x00,0x02,0x00, -0xcf,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xcf,0x01,0x00,0x00, -0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00, +0x17,0x03,0x00,0x00,0x16,0x03,0x00,0x00,0x26,0x00,0x00,0x00, +0xc5,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x18,0x03,0x00,0x00, +0x0d,0x03,0x00,0x00,0x17,0x03,0x00,0x00,0x72,0x00,0x04,0x00, +0xad,0x00,0x00,0x00,0x19,0x03,0x00,0x00,0x18,0x03,0x00,0x00, +0x72,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x1a,0x03,0x00,0x00, +0x19,0x03,0x00,0x00,0x82,0x00,0x05,0x00,0x17,0x00,0x00,0x00, +0x1b,0x03,0x00,0x00,0x1a,0x03,0x00,0x00,0x01,0x01,0x00,0x00, +0x6f,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,0x1c,0x03,0x00,0x00, +0x1b,0x03,0x00,0x00,0x0c,0x00,0x08,0x00,0x8c,0x00,0x00,0x00, +0x1e,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0x04,0x03,0x00,0x00,0x1c,0x03,0x00,0x00,0xf7,0x02,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x22,0x03,0x00,0x00, +0xcc,0x00,0x00,0x00,0xf3,0x03,0x00,0x00,0x41,0x00,0x06,0x00, +0xd1,0x00,0x00,0x00,0x23,0x03,0x00,0x00,0xc9,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0x22,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, +0x8c,0x00,0x00,0x00,0x24,0x03,0x00,0x00,0x23,0x03,0x00,0x00, +0x3d,0x00,0x04,0x00,0xad,0x00,0x00,0x00,0x28,0x03,0x00,0x00, +0x81,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x8c,0x00,0x00,0x00, +0x29,0x03,0x00,0x00,0x28,0x03,0x00,0x00,0x85,0x00,0x05,0x00, +0x8c,0x00,0x00,0x00,0x2a,0x03,0x00,0x00,0x24,0x03,0x00,0x00, +0x29,0x03,0x00,0x00,0x85,0x00,0x05,0x00,0x8c,0x00,0x00,0x00, +0x2b,0x03,0x00,0x00,0x2a,0x03,0x00,0x00,0xbb,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0xaa,0x00,0x00,0x00,0x31,0x03,0x00,0x00, +0xe2,0x02,0x00,0x00,0xc2,0x00,0x05,0x00,0xaa,0x00,0x00,0x00, +0x32,0x03,0x00,0x00,0x31,0x03,0x00,0x00,0x26,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x33,0x03,0x00,0x00, +0x32,0x03,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0x34,0x03,0x00,0x00,0x33,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, +0xaa,0x00,0x00,0x00,0x39,0x03,0x00,0x00,0xc4,0x02,0x00,0x00, +0xc2,0x00,0x05,0x00,0xaa,0x00,0x00,0x00,0x3a,0x03,0x00,0x00, +0x39,0x03,0x00,0x00,0x9d,0x01,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x3b,0x03,0x00,0x00,0x3a,0x03,0x00,0x00, +0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x3c,0x03,0x00,0x00, +0x3b,0x03,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, +0x3d,0x03,0x00,0x00,0x3c,0x03,0x00,0x00,0x35,0x00,0x00,0x00, +0xc4,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x3e,0x03,0x00,0x00, +0x3d,0x03,0x00,0x00,0x26,0x00,0x00,0x00,0xc5,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0x3f,0x03,0x00,0x00,0x34,0x03,0x00,0x00, +0x3e,0x03,0x00,0x00,0x72,0x00,0x04,0x00,0xad,0x00,0x00,0x00, +0x40,0x03,0x00,0x00,0x3f,0x03,0x00,0x00,0x72,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0x41,0x03,0x00,0x00,0x40,0x03,0x00,0x00, +0x82,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x42,0x03,0x00,0x00, +0x41,0x03,0x00,0x00,0x01,0x01,0x00,0x00,0x6f,0x00,0x04,0x00, +0x8c,0x00,0x00,0x00,0x43,0x03,0x00,0x00,0x42,0x03,0x00,0x00, +0x0c,0x00,0x08,0x00,0x8c,0x00,0x00,0x00,0x45,0x03,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x2b,0x03,0x00,0x00, +0x43,0x03,0x00,0x00,0x1e,0x03,0x00,0x00,0x81,0x00,0x05,0x00, +0x8c,0x00,0x00,0x00,0x46,0x03,0x00,0x00,0xa2,0x02,0x00,0x00, +0x45,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x51,0x03,0x00,0x00,0xcc,0x00,0x00,0x00,0xf4,0x03,0x00,0x00, +0x41,0x00,0x06,0x00,0xd1,0x00,0x00,0x00,0x53,0x03,0x00,0x00, +0xc9,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x51,0x03,0x00,0x00, +0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,0x54,0x03,0x00,0x00, +0x53,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0xad,0x00,0x00,0x00, +0x58,0x03,0x00,0x00,0xda,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, +0x8c,0x00,0x00,0x00,0x59,0x03,0x00,0x00,0x58,0x03,0x00,0x00, +0x85,0x00,0x05,0x00,0x8c,0x00,0x00,0x00,0x5a,0x03,0x00,0x00, +0x54,0x03,0x00,0x00,0x59,0x03,0x00,0x00,0x85,0x00,0x05,0x00, +0x8c,0x00,0x00,0x00,0x5b,0x03,0x00,0x00,0x5a,0x03,0x00,0x00, +0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x5e,0x03,0x00,0x00,0x7a,0x00,0x00,0x00,0xf4,0x03,0x00,0x00, +0x41,0x00,0x08,0x00,0xe8,0x00,0x00,0x00,0x60,0x03,0x00,0x00, +0xb4,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xb7,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0x5e,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, +0xaa,0x00,0x00,0x00,0x61,0x03,0x00,0x00,0x60,0x03,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x62,0x03,0x00,0x00, +0x61,0x03,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0x63,0x03,0x00,0x00,0x62,0x03,0x00,0x00,0xc7,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0x64,0x03,0x00,0x00,0x63,0x03,0x00,0x00, +0xed,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x67,0x03,0x00,0x00,0x80,0x00,0x00,0x00,0xf4,0x03,0x00,0x00, +0x41,0x00,0x08,0x00,0xe8,0x00,0x00,0x00,0x68,0x03,0x00,0x00, +0xb4,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xb7,0x00,0x00,0x00, +0xf2,0x00,0x00,0x00,0x67,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, +0xaa,0x00,0x00,0x00,0x69,0x03,0x00,0x00,0x68,0x03,0x00,0x00, +0xc2,0x00,0x05,0x00,0xaa,0x00,0x00,0x00,0x6a,0x03,0x00,0x00, +0x69,0x03,0x00,0x00,0x1c,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x6b,0x03,0x00,0x00,0x6a,0x03,0x00,0x00, +0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x6c,0x03,0x00,0x00, +0x6b,0x03,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, +0x6d,0x03,0x00,0x00,0x6c,0x03,0x00,0x00,0x35,0x00,0x00,0x00, +0xc4,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x6e,0x03,0x00,0x00, +0x6d,0x03,0x00,0x00,0x26,0x00,0x00,0x00,0xc5,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0x6f,0x03,0x00,0x00,0x64,0x03,0x00,0x00, +0x6e,0x03,0x00,0x00,0x72,0x00,0x04,0x00,0xad,0x00,0x00,0x00, +0x70,0x03,0x00,0x00,0x6f,0x03,0x00,0x00,0x72,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0x71,0x03,0x00,0x00,0x70,0x03,0x00,0x00, +0x82,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x72,0x03,0x00,0x00, +0x71,0x03,0x00,0x00,0x01,0x01,0x00,0x00,0x6f,0x00,0x04,0x00, +0x8c,0x00,0x00,0x00,0x73,0x03,0x00,0x00,0x72,0x03,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x78,0x03,0x00,0x00, +0xcc,0x00,0x00,0x00,0xf5,0x03,0x00,0x00,0x41,0x00,0x06,0x00, +0xd1,0x00,0x00,0x00,0x79,0x03,0x00,0x00,0xc9,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0x78,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, +0x8c,0x00,0x00,0x00,0x7a,0x03,0x00,0x00,0x79,0x03,0x00,0x00, +0x3d,0x00,0x04,0x00,0xad,0x00,0x00,0x00,0x7e,0x03,0x00,0x00, +0x13,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x8c,0x00,0x00,0x00, +0x7f,0x03,0x00,0x00,0x7e,0x03,0x00,0x00,0x85,0x00,0x05,0x00, +0x8c,0x00,0x00,0x00,0x80,0x03,0x00,0x00,0x7a,0x03,0x00,0x00, +0x7f,0x03,0x00,0x00,0x85,0x00,0x05,0x00,0x8c,0x00,0x00,0x00, +0x81,0x03,0x00,0x00,0x80,0x03,0x00,0x00,0xbb,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x85,0x03,0x00,0x00, +0x7a,0x00,0x00,0x00,0xf5,0x03,0x00,0x00,0x41,0x00,0x08,0x00, +0xe8,0x00,0x00,0x00,0x86,0x03,0x00,0x00,0xb4,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0x85,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0xaa,0x00,0x00,0x00, +0x87,0x03,0x00,0x00,0x86,0x03,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x88,0x03,0x00,0x00,0x87,0x03,0x00,0x00, +0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x89,0x03,0x00,0x00, +0x88,0x03,0x00,0x00,0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00, +0x8a,0x03,0x00,0x00,0x89,0x03,0x00,0x00,0xed,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0xaa,0x00,0x00,0x00,0x8f,0x03,0x00,0x00, +0x68,0x03,0x00,0x00,0xc2,0x00,0x05,0x00,0xaa,0x00,0x00,0x00, +0x90,0x03,0x00,0x00,0x8f,0x03,0x00,0x00,0x30,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x91,0x03,0x00,0x00, +0x90,0x03,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0x92,0x03,0x00,0x00,0x91,0x03,0x00,0x00,0xc7,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0x93,0x03,0x00,0x00,0x92,0x03,0x00,0x00, +0x35,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x17,0x00,0x00,0x00, +0x94,0x03,0x00,0x00,0x93,0x03,0x00,0x00,0x26,0x00,0x00,0x00, +0xc5,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0x95,0x03,0x00,0x00, +0x8a,0x03,0x00,0x00,0x94,0x03,0x00,0x00,0x72,0x00,0x04,0x00, +0xad,0x00,0x00,0x00,0x96,0x03,0x00,0x00,0x95,0x03,0x00,0x00, +0x72,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x97,0x03,0x00,0x00, +0x96,0x03,0x00,0x00,0x82,0x00,0x05,0x00,0x17,0x00,0x00,0x00, +0x98,0x03,0x00,0x00,0x97,0x03,0x00,0x00,0x01,0x01,0x00,0x00, +0x6f,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,0x99,0x03,0x00,0x00, +0x98,0x03,0x00,0x00,0x85,0x00,0x05,0x00,0x8c,0x00,0x00,0x00, +0x9a,0x03,0x00,0x00,0x81,0x03,0x00,0x00,0x99,0x03,0x00,0x00, +0x0c,0x00,0x08,0x00,0x8c,0x00,0x00,0x00,0x9b,0x03,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x5b,0x03,0x00,0x00, +0x73,0x03,0x00,0x00,0x9a,0x03,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x9f,0x03,0x00,0x00,0xcc,0x00,0x00,0x00, +0xf6,0x03,0x00,0x00,0x41,0x00,0x06,0x00,0xd1,0x00,0x00,0x00, +0xa0,0x03,0x00,0x00,0xc9,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0x9f,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00, +0xa1,0x03,0x00,0x00,0xa0,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, +0xad,0x00,0x00,0x00,0xa5,0x03,0x00,0x00,0x49,0x01,0x00,0x00, +0x6f,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,0xa6,0x03,0x00,0x00, +0xa5,0x03,0x00,0x00,0x85,0x00,0x05,0x00,0x8c,0x00,0x00,0x00, +0xa7,0x03,0x00,0x00,0xa1,0x03,0x00,0x00,0xa6,0x03,0x00,0x00, +0x85,0x00,0x05,0x00,0x8c,0x00,0x00,0x00,0xa8,0x03,0x00,0x00, +0xa7,0x03,0x00,0x00,0xbb,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0xaa,0x00,0x00,0x00,0xae,0x03,0x00,0x00,0x60,0x03,0x00,0x00, +0xc2,0x00,0x05,0x00,0xaa,0x00,0x00,0x00,0xaf,0x03,0x00,0x00, +0xae,0x03,0x00,0x00,0x26,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xb0,0x03,0x00,0x00,0xaf,0x03,0x00,0x00, +0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0xb1,0x03,0x00,0x00, +0xb0,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0xaa,0x00,0x00,0x00, +0xb6,0x03,0x00,0x00,0x68,0x03,0x00,0x00,0xc2,0x00,0x05,0x00, +0xaa,0x00,0x00,0x00,0xb7,0x03,0x00,0x00,0xb6,0x03,0x00,0x00, +0x26,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xb8,0x03,0x00,0x00,0xb7,0x03,0x00,0x00,0x7c,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0xb9,0x03,0x00,0x00,0xb8,0x03,0x00,0x00, +0xc7,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xba,0x03,0x00,0x00, +0xb9,0x03,0x00,0x00,0x35,0x00,0x00,0x00,0xc4,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0xbb,0x03,0x00,0x00,0xba,0x03,0x00,0x00, +0x26,0x00,0x00,0x00,0xc5,0x00,0x05,0x00,0x17,0x00,0x00,0x00, +0xbc,0x03,0x00,0x00,0xb1,0x03,0x00,0x00,0xbb,0x03,0x00,0x00, +0x72,0x00,0x04,0x00,0xad,0x00,0x00,0x00,0xbd,0x03,0x00,0x00, +0xbc,0x03,0x00,0x00,0x72,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0xbe,0x03,0x00,0x00,0xbd,0x03,0x00,0x00,0x82,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0xbf,0x03,0x00,0x00,0xbe,0x03,0x00,0x00, +0x01,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x8c,0x00,0x00,0x00, +0xc0,0x03,0x00,0x00,0xbf,0x03,0x00,0x00,0x0c,0x00,0x08,0x00, +0x8c,0x00,0x00,0x00,0xc2,0x03,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0xa8,0x03,0x00,0x00,0xc0,0x03,0x00,0x00, +0x9b,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xc6,0x03,0x00,0x00,0xcc,0x00,0x00,0x00,0xf7,0x03,0x00,0x00, +0x41,0x00,0x06,0x00,0xd1,0x00,0x00,0x00,0xc7,0x03,0x00,0x00, +0xc9,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xc6,0x03,0x00,0x00, +0x3d,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,0xc8,0x03,0x00,0x00, +0xc7,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0xad,0x00,0x00,0x00, +0xcc,0x03,0x00,0x00,0x81,0x01,0x00,0x00,0x6f,0x00,0x04,0x00, +0x8c,0x00,0x00,0x00,0xcd,0x03,0x00,0x00,0xcc,0x03,0x00,0x00, +0x85,0x00,0x05,0x00,0x8c,0x00,0x00,0x00,0xce,0x03,0x00,0x00, +0xc8,0x03,0x00,0x00,0xcd,0x03,0x00,0x00,0x85,0x00,0x05,0x00, +0x8c,0x00,0x00,0x00,0xcf,0x03,0x00,0x00,0xce,0x03,0x00,0x00, +0xbb,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xaa,0x00,0x00,0x00, +0xd5,0x03,0x00,0x00,0x86,0x03,0x00,0x00,0xc2,0x00,0x05,0x00, +0xaa,0x00,0x00,0x00,0xd6,0x03,0x00,0x00,0xd5,0x03,0x00,0x00, +0x26,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xd7,0x03,0x00,0x00,0xd6,0x03,0x00,0x00,0x7c,0x00,0x04,0x00, +0x17,0x00,0x00,0x00,0xd8,0x03,0x00,0x00,0xd7,0x03,0x00,0x00, +0x3d,0x00,0x04,0x00,0xaa,0x00,0x00,0x00,0xdd,0x03,0x00,0x00, +0x68,0x03,0x00,0x00,0xc2,0x00,0x05,0x00,0xaa,0x00,0x00,0x00, +0xde,0x03,0x00,0x00,0xdd,0x03,0x00,0x00,0x9d,0x01,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xdf,0x03,0x00,0x00, +0xde,0x03,0x00,0x00,0x7c,0x00,0x04,0x00,0x17,0x00,0x00,0x00, +0xe0,0x03,0x00,0x00,0xdf,0x03,0x00,0x00,0xc7,0x00,0x05,0x00, +0x17,0x00,0x00,0x00,0xe1,0x03,0x00,0x00,0xe0,0x03,0x00,0x00, +0x35,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x17,0x00,0x00,0x00, +0xe2,0x03,0x00,0x00,0xe1,0x03,0x00,0x00,0x26,0x00,0x00,0x00, +0xc5,0x00,0x05,0x00,0x17,0x00,0x00,0x00,0xe3,0x03,0x00,0x00, +0xd8,0x03,0x00,0x00,0xe2,0x03,0x00,0x00,0x72,0x00,0x04,0x00, +0xad,0x00,0x00,0x00,0xe4,0x03,0x00,0x00,0xe3,0x03,0x00,0x00, +0x72,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0xe5,0x03,0x00,0x00, +0xe4,0x03,0x00,0x00,0x82,0x00,0x05,0x00,0x17,0x00,0x00,0x00, +0xe6,0x03,0x00,0x00,0xe5,0x03,0x00,0x00,0x01,0x01,0x00,0x00, +0x6f,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,0xe7,0x03,0x00,0x00, +0xe6,0x03,0x00,0x00,0x0c,0x00,0x08,0x00,0x8c,0x00,0x00,0x00, +0xe9,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0xcf,0x03,0x00,0x00,0xe7,0x03,0x00,0x00,0xc2,0x03,0x00,0x00, +0x81,0x00,0x05,0x00,0x8c,0x00,0x00,0x00,0xea,0x03,0x00,0x00, +0x46,0x03,0x00,0x00,0xe9,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, +0x8c,0x00,0x00,0x00,0xb4,0x01,0x00,0x00,0x97,0x00,0x00,0x00, +0x81,0x00,0x05,0x00,0x8c,0x00,0x00,0x00,0xb5,0x01,0x00,0x00, +0xb4,0x01,0x00,0x00,0xea,0x03,0x00,0x00,0x3e,0x00,0x03,0x00, +0x97,0x00,0x00,0x00,0xb5,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xb8,0x01,0x00,0x00,0xfa,0x01,0x00,0x00, +0x41,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x9a,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0x9c,0x00,0x00,0x00,0xe0,0x00,0x04,0x00, +0x41,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0xb9,0x01,0x00,0x00, +0xf9,0x00,0x02,0x00,0xbb,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, +0xbb,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00, +0xfb,0x01,0x00,0x00,0x90,0x00,0x00,0x00,0x9c,0x00,0x00,0x00, +0xd2,0x01,0x00,0x00,0xbe,0x01,0x00,0x00,0xac,0x00,0x05,0x00, +0xa1,0x00,0x00,0x00,0xc1,0x01,0x00,0x00,0xfb,0x01,0x00,0x00, +0x3b,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xbd,0x01,0x00,0x00, +0xbe,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, +0xc1,0x01,0x00,0x00,0xbc,0x01,0x00,0x00,0xbd,0x01,0x00,0x00, +0xf8,0x00,0x02,0x00,0xbc,0x01,0x00,0x00,0xb0,0x00,0x05,0x00, +0xa1,0x00,0x00,0x00,0xc4,0x01,0x00,0x00,0x60,0x00,0x00,0x00, +0xfb,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,0xc6,0x01,0x00,0x00, +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xc4,0x01,0x00,0x00, +0xc5,0x01,0x00,0x00,0xc6,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, +0xc5,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xca,0x01,0x00,0x00,0x60,0x00,0x00,0x00,0xfb,0x01,0x00,0x00, +0x41,0x00,0x05,0x00,0x96,0x00,0x00,0x00,0xcb,0x01,0x00,0x00, +0x8f,0x00,0x00,0x00,0xca,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0x8c,0x00,0x00,0x00,0xcc,0x01,0x00,0x00,0xcb,0x01,0x00,0x00, +0x41,0x00,0x05,0x00,0x96,0x00,0x00,0x00,0xcd,0x01,0x00,0x00, +0x8f,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x8c,0x00,0x00,0x00,0xce,0x01,0x00,0x00,0xcd,0x01,0x00,0x00, +0x81,0x00,0x05,0x00,0x8c,0x00,0x00,0x00,0xcf,0x01,0x00,0x00, +0xce,0x01,0x00,0x00,0xcc,0x01,0x00,0x00,0x3e,0x00,0x03,0x00, +0xcd,0x01,0x00,0x00,0xcf,0x01,0x00,0x00,0xf9,0x00,0x02,0x00, +0xc6,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xc6,0x01,0x00,0x00, +0xe0,0x00,0x04,0x00,0x41,0x00,0x00,0x00,0x41,0x00,0x00,0x00, +0xb9,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xbe,0x01,0x00,0x00, +0xf8,0x00,0x02,0x00,0xbe,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xd2,0x01,0x00,0x00,0xfb,0x01,0x00,0x00, +0xf2,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xbb,0x01,0x00,0x00, +0xf8,0x00,0x02,0x00,0xbd,0x01,0x00,0x00,0xaa,0x00,0x05,0x00, +0xa1,0x00,0x00,0x00,0xd4,0x01,0x00,0x00,0x60,0x00,0x00,0x00, +0x3b,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0xd6,0x01,0x00,0x00, +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xd4,0x01,0x00,0x00, +0xd5,0x01,0x00,0x00,0xd6,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, +0xd5,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xdd,0x01,0x00,0x00,0xf9,0x01,0x00,0x00,0x45,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x96,0x00,0x00,0x00,0xde,0x01,0x00,0x00, +0x8f,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x8c,0x00,0x00,0x00,0xdf,0x01,0x00,0x00,0xde,0x01,0x00,0x00, +0x41,0x00,0x06,0x00,0xd1,0x00,0x00,0x00,0xe0,0x01,0x00,0x00, +0xda,0x01,0x00,0x00,0x1c,0x00,0x00,0x00,0xdd,0x01,0x00,0x00, +0x3e,0x00,0x03,0x00,0xe0,0x01,0x00,0x00,0xdf,0x01,0x00,0x00, +0xf9,0x00,0x02,0x00,0xd6,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, +0xd6,0x01,0x00,0x00,0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00, + }; -const uint64_t mul_mat_vec_id_q6_k_f32_len = 11612; +const uint64_t mul_mat_vec_id_q6_k_f32_len = 11760; unsigned char mul_mat_vec_id_q8_0_f32_data[] = { 0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00, -0x3a,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, +0x41,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, 0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x51,0x11,0x00,0x00, 0x11,0x00,0x02,0x00,0x60,0x11,0x00,0x00,0x0b,0x00,0x06,0x00, 0x01,0x00,0x00,0x00,0x47,0x4c,0x53,0x4c,0x2e,0x73,0x74,0x64, 0x2e,0x34,0x35,0x30,0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00, -0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0f,0x00,0x0e,0x00, +0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0f,0x00,0x0f,0x00, 0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e, 0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x46,0x00,0x00,0x00, 0x4e,0x00,0x00,0x00,0x57,0x00,0x00,0x00,0x6c,0x00,0x00,0x00, -0x71,0x00,0x00,0x00,0x81,0x00,0x00,0x00,0xba,0x00,0x00,0x00, -0xf8,0x00,0x00,0x00,0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00, -0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x1c,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x1d,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x22,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x1e,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x1e,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x20,0x00,0x00,0x00, -0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x20,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x46,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x4b,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00, -0x4c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x4c,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x70,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x89,0x00,0x00,0x00, +0xc1,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x10,0x00,0x06,0x00, +0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x1c,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x1d,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x48,0x00,0x04,0x00, +0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, -0x4c,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x4e,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x4e,0x00,0x00,0x00,0x21,0x00,0x00,0x00, -0x03,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x55,0x00,0x00,0x00, +0x1e,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x20,0x00,0x00,0x00,0x21,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x46,0x00,0x00,0x00, +0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x4b,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x48,0x00,0x04,0x00,0x4c,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x4c,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x55,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x55,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x55,0x00,0x00,0x00, -0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x55,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x55,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x55,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x55,0x00,0x00,0x00,0x07,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x55,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x20,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x55,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x6c,0x00,0x00,0x00, -0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x71,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x7e,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xb7,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00, -0xb8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0xb8,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, -0xb8,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xba,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xba,0x00,0x00,0x00,0x21,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xf5,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00, -0xf6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0xf6,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, -0xf6,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xf8,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xf8,0x00,0x00,0x00,0x21,0x00,0x00,0x00, +0x47,0x00,0x03,0x00,0x4c,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x4e,0x00,0x00,0x00,0x22,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x4e,0x00,0x00,0x00, +0x21,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x55,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x55,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x55,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x55,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x55,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x55,0x00,0x00,0x00,0x05,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x55,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x55,0x00,0x00,0x00, +0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x55,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0x55,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x6c,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x70,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x79,0x00,0x00,0x00, +0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x86,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xbe,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0xbf,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0xbf,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0xbf,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xc1,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xc1,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xfc,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0xfd,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0xfd,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0xfd,0x00,0x00,0x00, 0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xff,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x00,0x01,0x00,0x00,0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00, -0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00, -0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x16,0x00,0x03,0x00,0x08,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x17,0x00,0x04,0x00,0x09,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0x18,0x00,0x00,0x00, -0x10,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x19,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x1c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x19,0x00,0x00,0x00, -0x1a,0x00,0x00,0x00,0x1e,0x00,0x04,0x00,0x1c,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, -0x1d,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, -0x1e,0x00,0x00,0x00,0x1d,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x1f,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x1e,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x21,0x00,0x00,0x00, -0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x21,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x26,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, -0x2d,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x2f,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x19,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x38,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x17,0x00,0x04,0x00,0x44,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x45,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x44,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0x45,0x00,0x00,0x00,0x46,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x47,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, -0x4b,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, -0x4c,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x4d,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x4c,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0x4d,0x00,0x00,0x00,0x4e,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x50,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x1e,0x00,0x0b,0x00, -0x55,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xff,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x06,0x01,0x00,0x00,0x01,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x07,0x01,0x00,0x00, +0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x13,0x00,0x02,0x00, +0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x00,0x03,0x00, +0x08,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x17,0x00,0x04,0x00, +0x09,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x16,0x00,0x03,0x00,0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00, +0x15,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x1a,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, +0x1e,0x00,0x04,0x00,0x1c,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x1b,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x1d,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x1e,0x00,0x00,0x00, +0x1d,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x1f,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0x1f,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x15,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x20,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x26,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x2d,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x2f,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x17,0x00,0x04,0x00,0x44,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x45,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0x45,0x00,0x00,0x00,0x46,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x47,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x4b,0x00,0x00,0x00, +0x21,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x4c,0x00,0x00,0x00, +0x4b,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x4d,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x4c,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0x4d,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x50,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x21,0x00,0x00,0x00,0x1e,0x00,0x0b,0x00,0x55,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x56,0x00,0x00,0x00, -0x09,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x56,0x00,0x00,0x00,0x57,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x58,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x59,0x00,0x00,0x00, -0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x21,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x62,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, -0x67,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x45,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x6d,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x45,0x00,0x00,0x00, -0x71,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x1c,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x7e,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x80,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x80,0x00,0x00,0x00,0x81,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x83,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x84,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x14,0x00,0x02,0x00, -0x90,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x95,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, -0xb7,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, -0xb8,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0xb9,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xb8,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0xb9,0x00,0x00,0x00,0xba,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xc0,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x56,0x00,0x00,0x00,0x09,0x00,0x00,0x00, +0x55,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x56,0x00,0x00,0x00, +0x57,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x21,0x00,0x00,0x00,0x58,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x59,0x00,0x00,0x00,0x09,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, +0x5e,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x21,0x00,0x00,0x00,0x62,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x67,0x00,0x00,0x00, +0x03,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x45,0x00,0x00,0x00, +0x6c,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x45,0x00,0x00,0x00,0x70,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x73,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0x45,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x86,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0x87,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x88,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x87,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x88,0x00,0x00,0x00,0x89,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0x8b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x8c,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x14,0x00,0x02,0x00,0x98,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, +0xbe,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, +0xbf,0x00,0x00,0x00,0xbe,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0xc0,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xbf,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0xc0,0x00,0x00,0x00,0xc1,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xc7,0x00,0x00,0x00, 0x0c,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,0x08,0x01,0x00,0x00, -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xd8,0x00,0x00,0x00, -0x86,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x95,0x00,0x00,0x00, -0x1d,0x00,0x03,0x00,0xf5,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x1e,0x00,0x03,0x00,0xf6,0x00,0x00,0x00,0xf5,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0xf7,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0xf6,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xf7,0x00,0x00,0x00, -0xf8,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x32,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x33,0x00,0x06,0x00,0x44,0x00,0x00,0x00,0x00,0x01,0x00,0x00, -0xff,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x38,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0xdd,0x00,0x00,0x00,0x08,0x01,0x00,0x00, +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0xdf,0x00,0x00,0x00, +0x86,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x73,0x00,0x00,0x00, +0x1d,0x00,0x03,0x00,0xfc,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x1e,0x00,0x03,0x00,0xfd,0x00,0x00,0x00,0xfc,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0xfe,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0xfd,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xfe,0x00,0x00,0x00, +0xff,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x32,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x06,0x01,0x00,0x00,0x01,0x00,0x00,0x00, +0x33,0x00,0x06,0x00,0x44,0x00,0x00,0x00,0x07,0x01,0x00,0x00, +0x06,0x01,0x00,0x00,0x38,0x00,0x00,0x00,0x38,0x00,0x00,0x00, 0x36,0x00,0x05,0x00,0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, 0x05,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x47,0x00,0x00,0x00, 0x6e,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x6d,0x00,0x00,0x00, 0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x6f,0x00,0x00,0x00, 0x6e,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x47,0x00,0x00,0x00, -0x72,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x6d,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x73,0x00,0x00,0x00, -0x72,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x47,0x00,0x00,0x00, -0x04,0x01,0x00,0x00,0x46,0x00,0x00,0x00,0x38,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x05,0x01,0x00,0x00, -0x04,0x01,0x00,0x00,0x41,0x00,0x06,0x00,0x50,0x00,0x00,0x00, -0x07,0x01,0x00,0x00,0x4e,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x05,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x21,0x00,0x00,0x00, -0x08,0x01,0x00,0x00,0x07,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x09,0x01,0x00,0x00,0x08,0x01,0x00,0x00, -0x41,0x00,0x05,0x00,0x59,0x00,0x00,0x00,0x0b,0x01,0x00,0x00, -0x57,0x00,0x00,0x00,0x58,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,0x0b,0x01,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0d,0x01,0x00,0x00, -0x09,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,0x41,0x00,0x05,0x00, -0x59,0x00,0x00,0x00,0x0f,0x01,0x00,0x00,0x57,0x00,0x00,0x00, -0x5e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x10,0x01,0x00,0x00,0x0f,0x01,0x00,0x00,0x89,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x11,0x01,0x00,0x00,0x05,0x01,0x00,0x00, -0x10,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x59,0x00,0x00,0x00, -0x12,0x01,0x00,0x00,0x57,0x00,0x00,0x00,0x62,0x00,0x00,0x00, +0x71,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x6d,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x72,0x00,0x00,0x00, +0x71,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x47,0x00,0x00,0x00, +0x74,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x73,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x75,0x00,0x00,0x00, +0x74,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x76,0x00,0x00,0x00,0x72,0x00,0x00,0x00,0x75,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x77,0x00,0x00,0x00, +0x6f,0x00,0x00,0x00,0x76,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0x47,0x00,0x00,0x00,0x7a,0x00,0x00,0x00,0x79,0x00,0x00,0x00, +0x6d,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x7b,0x00,0x00,0x00,0x7a,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0x47,0x00,0x00,0x00,0x0b,0x01,0x00,0x00,0x46,0x00,0x00,0x00, +0x38,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x0c,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,0x41,0x00,0x06,0x00, +0x50,0x00,0x00,0x00,0x0e,0x01,0x00,0x00,0x4e,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0x21,0x00,0x00,0x00,0x0f,0x01,0x00,0x00,0x0e,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x10,0x01,0x00,0x00, +0x0f,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x59,0x00,0x00,0x00, +0x12,0x01,0x00,0x00,0x57,0x00,0x00,0x00,0x58,0x00,0x00,0x00, 0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x13,0x01,0x00,0x00, 0x12,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x14,0x01,0x00,0x00,0x11,0x01,0x00,0x00,0x13,0x01,0x00,0x00, +0x14,0x01,0x00,0x00,0x10,0x01,0x00,0x00,0x13,0x01,0x00,0x00, 0x41,0x00,0x05,0x00,0x59,0x00,0x00,0x00,0x16,0x01,0x00,0x00, -0x57,0x00,0x00,0x00,0x67,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x57,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, 0x06,0x00,0x00,0x00,0x17,0x01,0x00,0x00,0x16,0x01,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x18,0x01,0x00,0x00, -0x05,0x01,0x00,0x00,0x17,0x01,0x00,0x00,0x41,0x00,0x05,0x00, -0x84,0x00,0x00,0x00,0x85,0x00,0x00,0x00,0x81,0x00,0x00,0x00, -0x73,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0x85,0x00,0x00,0x00, -0x83,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x87,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0x87,0x00,0x00,0x00,0xf5,0x00,0x07,0x00, -0x06,0x00,0x00,0x00,0x38,0x01,0x00,0x00,0x6d,0x00,0x00,0x00, -0x05,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0x88,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x59,0x00,0x00,0x00,0x8d,0x00,0x00,0x00, -0x57,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,0x8d,0x00,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8f,0x00,0x00,0x00, -0x8e,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0xb0,0x00,0x05,0x00, -0x90,0x00,0x00,0x00,0x91,0x00,0x00,0x00,0x38,0x01,0x00,0x00, -0x8f,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x89,0x00,0x00,0x00, -0x88,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, -0x91,0x00,0x00,0x00,0x88,0x00,0x00,0x00,0x89,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0x88,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x94,0x00,0x00,0x00,0x38,0x01,0x00,0x00, -0x7e,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x97,0x00,0x00,0x00,0x95,0x00,0x00,0x00,0x73,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x98,0x00,0x00,0x00, -0x94,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0x6f,0x00,0x00,0x00, -0x8e,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x9f,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0x98,0x00,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa0,0x00,0x00,0x00, -0x9f,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x89,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0x98,0x00,0x00,0x00, -0x1a,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xa4,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0x38,0x00,0x00,0x00, -0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa9,0x00,0x00,0x00, -0x98,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0x86,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xad,0x00,0x00,0x00,0x0d,0x01,0x00,0x00, -0x1a,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x1e,0x01,0x00,0x00,0xad,0x00,0x00,0x00,0xa0,0x00,0x00,0x00, -0x41,0x00,0x07,0x00,0x26,0x00,0x00,0x00,0x1f,0x01,0x00,0x00, -0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x1e,0x01,0x00,0x00, -0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x18,0x00,0x00,0x00, -0x20,0x01,0x00,0x00,0x1f,0x01,0x00,0x00,0x73,0x00,0x04,0x00, -0x08,0x00,0x00,0x00,0x21,0x01,0x00,0x00,0x20,0x01,0x00,0x00, -0x41,0x00,0x08,0x00,0x2f,0x00,0x00,0x00,0x26,0x01,0x00,0x00, -0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x1e,0x01,0x00,0x00, -0x2d,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x19,0x00,0x00,0x00,0x27,0x01,0x00,0x00,0x26,0x01,0x00,0x00, -0x72,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x28,0x01,0x00,0x00, -0x27,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x08,0x00,0x00,0x00, -0x29,0x01,0x00,0x00,0x28,0x01,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x2e,0x01,0x00,0x00,0xa4,0x00,0x00,0x00, -0x38,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0x2f,0x00,0x00,0x00, -0x2f,0x01,0x00,0x00,0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x1e,0x01,0x00,0x00,0x2d,0x00,0x00,0x00,0x2e,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x30,0x01,0x00,0x00, -0x2f,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x21,0x00,0x00,0x00, -0x31,0x01,0x00,0x00,0x30,0x01,0x00,0x00,0x6f,0x00,0x04,0x00, -0x08,0x00,0x00,0x00,0x32,0x01,0x00,0x00,0x31,0x01,0x00,0x00, -0x50,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0x33,0x01,0x00,0x00, -0x29,0x01,0x00,0x00,0x32,0x01,0x00,0x00,0x8e,0x00,0x05,0x00, -0x09,0x00,0x00,0x00,0x35,0x01,0x00,0x00,0x33,0x01,0x00,0x00, -0x21,0x01,0x00,0x00,0x51,0x00,0x05,0x00,0x08,0x00,0x00,0x00, -0xb6,0x00,0x00,0x00,0x35,0x01,0x00,0x00,0x00,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbd,0x00,0x00,0x00, -0x14,0x01,0x00,0x00,0xa9,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0xbd,0x00,0x00,0x00, -0xa4,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xc0,0x00,0x00,0x00, -0xc1,0x00,0x00,0x00,0xba,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0xbf,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, -0xc2,0x00,0x00,0x00,0xc1,0x00,0x00,0x00,0x51,0x00,0x05,0x00, -0x08,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0x35,0x01,0x00,0x00, -0x01,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xcb,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0x38,0x00,0x00,0x00, -0x41,0x00,0x06,0x00,0xc0,0x00,0x00,0x00,0xcc,0x00,0x00,0x00, -0xba,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0xcb,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xcd,0x00,0x00,0x00, -0xcc,0x00,0x00,0x00,0x85,0x00,0x05,0x00,0x08,0x00,0x00,0x00, -0xce,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0xcd,0x00,0x00,0x00, -0x0c,0x00,0x08,0x00,0x08,0x00,0x00,0x00,0xcf,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xb6,0x00,0x00,0x00, -0xc2,0x00,0x00,0x00,0xce,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x08,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,0x85,0x00,0x00,0x00, -0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0xd2,0x00,0x00,0x00, -0xd1,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x3e,0x00,0x03,0x00, -0x85,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0x38,0x01,0x00,0x00, -0x95,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x87,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0x89,0x00,0x00,0x00,0xe0,0x00,0x04,0x00, -0x95,0x00,0x00,0x00,0x95,0x00,0x00,0x00,0xd6,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0xd9,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0xd9,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00, -0x39,0x01,0x00,0x00,0xd8,0x00,0x00,0x00,0x89,0x00,0x00,0x00, -0xf0,0x00,0x00,0x00,0xdc,0x00,0x00,0x00,0xac,0x00,0x05,0x00, -0x90,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0x39,0x01,0x00,0x00, -0x6d,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xdb,0x00,0x00,0x00, -0xdc,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, -0xdf,0x00,0x00,0x00,0xda,0x00,0x00,0x00,0xdb,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0xda,0x00,0x00,0x00,0xb0,0x00,0x05,0x00, -0x90,0x00,0x00,0x00,0xe2,0x00,0x00,0x00,0x73,0x00,0x00,0x00, -0x39,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,0xe4,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xe2,0x00,0x00,0x00, -0xe3,0x00,0x00,0x00,0xe4,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0xe3,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xe8,0x00,0x00,0x00,0x73,0x00,0x00,0x00,0x39,0x01,0x00,0x00, -0x41,0x00,0x05,0x00,0x84,0x00,0x00,0x00,0xe9,0x00,0x00,0x00, -0x81,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x08,0x00,0x00,0x00,0xea,0x00,0x00,0x00,0xe9,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xec,0x00,0x00,0x00, -0x85,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00, -0xed,0x00,0x00,0x00,0xec,0x00,0x00,0x00,0xea,0x00,0x00,0x00, -0x3e,0x00,0x03,0x00,0x85,0x00,0x00,0x00,0xed,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0xe4,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0xe4,0x00,0x00,0x00,0xe0,0x00,0x04,0x00,0x95,0x00,0x00,0x00, -0x95,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, -0xdc,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xdc,0x00,0x00,0x00, -0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf0,0x00,0x00,0x00, -0x39,0x01,0x00,0x00,0x2d,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, -0xd9,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xdb,0x00,0x00,0x00, -0xaa,0x00,0x05,0x00,0x90,0x00,0x00,0x00,0xf2,0x00,0x00,0x00, -0x73,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0xf7,0x00,0x03,0x00, -0xf4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, -0xf2,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,0xf4,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0xf3,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0x18,0x01,0x00,0x00, -0x6f,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x84,0x00,0x00,0x00, -0xfc,0x00,0x00,0x00,0x81,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xfd,0x00,0x00,0x00, -0xfc,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xc0,0x00,0x00,0x00, -0xfe,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0xfb,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0xfe,0x00,0x00,0x00, -0xfd,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xf4,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0xf4,0x00,0x00,0x00,0xfd,0x00,0x01,0x00, -0x38,0x00,0x01,0x00, +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x18,0x01,0x00,0x00, +0x0c,0x01,0x00,0x00,0x17,0x01,0x00,0x00,0x41,0x00,0x05,0x00, +0x59,0x00,0x00,0x00,0x19,0x01,0x00,0x00,0x57,0x00,0x00,0x00, +0x62,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x1a,0x01,0x00,0x00,0x19,0x01,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x1b,0x01,0x00,0x00,0x18,0x01,0x00,0x00, +0x1a,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x59,0x00,0x00,0x00, +0x1d,0x01,0x00,0x00,0x57,0x00,0x00,0x00,0x67,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x1e,0x01,0x00,0x00, +0x1d,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x1f,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,0x1e,0x01,0x00,0x00, +0x41,0x00,0x05,0x00,0x8c,0x00,0x00,0x00,0x8d,0x00,0x00,0x00, +0x89,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,0x3e,0x00,0x03,0x00, +0x8d,0x00,0x00,0x00,0x8b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, +0x8f,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x8f,0x00,0x00,0x00, +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x3f,0x01,0x00,0x00, +0x6d,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0xdc,0x00,0x00,0x00, +0x90,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x59,0x00,0x00,0x00, +0x95,0x00,0x00,0x00,0x57,0x00,0x00,0x00,0x22,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x96,0x00,0x00,0x00, +0x95,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x97,0x00,0x00,0x00,0x96,0x00,0x00,0x00,0x86,0x00,0x00,0x00, +0xb0,0x00,0x05,0x00,0x98,0x00,0x00,0x00,0x99,0x00,0x00,0x00, +0x3f,0x01,0x00,0x00,0x97,0x00,0x00,0x00,0xf6,0x00,0x04,0x00, +0x91,0x00,0x00,0x00,0x90,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0xfa,0x00,0x04,0x00,0x99,0x00,0x00,0x00,0x90,0x00,0x00,0x00, +0x91,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x90,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9c,0x00,0x00,0x00, +0x3f,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x9e,0x00,0x00,0x00,0x73,0x00,0x00,0x00, +0x7b,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x9f,0x00,0x00,0x00,0x9c,0x00,0x00,0x00,0x9e,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa4,0x00,0x00,0x00, +0x77,0x00,0x00,0x00,0x96,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xa6,0x00,0x00,0x00,0xa4,0x00,0x00,0x00, +0x9f,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xa7,0x00,0x00,0x00,0xa6,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xaa,0x00,0x00,0x00, +0x9f,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xab,0x00,0x00,0x00,0xaa,0x00,0x00,0x00, +0x38,0x00,0x00,0x00,0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xb0,0x00,0x00,0x00,0x9f,0x00,0x00,0x00,0xaa,0x00,0x00,0x00, +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb4,0x00,0x00,0x00, +0x14,0x01,0x00,0x00,0x1a,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x25,0x01,0x00,0x00,0xb4,0x00,0x00,0x00, +0xa7,0x00,0x00,0x00,0x41,0x00,0x07,0x00,0x26,0x00,0x00,0x00, +0x26,0x01,0x00,0x00,0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00, +0x25,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x18,0x00,0x00,0x00,0x27,0x01,0x00,0x00,0x26,0x01,0x00,0x00, +0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x28,0x01,0x00,0x00, +0x27,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x2f,0x00,0x00,0x00, +0x2d,0x01,0x00,0x00,0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00, +0x25,0x01,0x00,0x00,0x2d,0x00,0x00,0x00,0xab,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x2e,0x01,0x00,0x00, +0x2d,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x21,0x00,0x00,0x00, +0x2f,0x01,0x00,0x00,0x2e,0x01,0x00,0x00,0x6f,0x00,0x04,0x00, +0x08,0x00,0x00,0x00,0x30,0x01,0x00,0x00,0x2f,0x01,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x35,0x01,0x00,0x00, +0xab,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x41,0x00,0x08,0x00, +0x2f,0x00,0x00,0x00,0x36,0x01,0x00,0x00,0x20,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x25,0x01,0x00,0x00,0x2d,0x00,0x00,0x00, +0x35,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x19,0x00,0x00,0x00, +0x37,0x01,0x00,0x00,0x36,0x01,0x00,0x00,0x72,0x00,0x04,0x00, +0x21,0x00,0x00,0x00,0x38,0x01,0x00,0x00,0x37,0x01,0x00,0x00, +0x6f,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x39,0x01,0x00,0x00, +0x38,0x01,0x00,0x00,0x50,0x00,0x05,0x00,0x09,0x00,0x00,0x00, +0x3a,0x01,0x00,0x00,0x30,0x01,0x00,0x00,0x39,0x01,0x00,0x00, +0x8e,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0x3c,0x01,0x00,0x00, +0x3a,0x01,0x00,0x00,0x28,0x01,0x00,0x00,0x51,0x00,0x05,0x00, +0x08,0x00,0x00,0x00,0xbd,0x00,0x00,0x00,0x3c,0x01,0x00,0x00, +0x00,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xc4,0x00,0x00,0x00,0x1b,0x01,0x00,0x00,0xb0,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc6,0x00,0x00,0x00, +0xc4,0x00,0x00,0x00,0xab,0x00,0x00,0x00,0x41,0x00,0x06,0x00, +0xc7,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0xc1,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x08,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0xc8,0x00,0x00,0x00, +0x51,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0xcc,0x00,0x00,0x00, +0x3c,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,0xc6,0x00,0x00,0x00, +0x38,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xc7,0x00,0x00,0x00, +0xd3,0x00,0x00,0x00,0xc1,0x00,0x00,0x00,0x22,0x00,0x00,0x00, +0xd2,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0xd4,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,0x85,0x00,0x05,0x00, +0x08,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0xcc,0x00,0x00,0x00, +0xd4,0x00,0x00,0x00,0x0c,0x00,0x08,0x00,0x08,0x00,0x00,0x00, +0xd6,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0xbd,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0xd5,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xd8,0x00,0x00,0x00, +0x8d,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00, +0xd9,0x00,0x00,0x00,0xd8,0x00,0x00,0x00,0xd6,0x00,0x00,0x00, +0x3e,0x00,0x03,0x00,0x8d,0x00,0x00,0x00,0xd9,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdc,0x00,0x00,0x00, +0x3f,0x01,0x00,0x00,0x73,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, +0x8f,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x91,0x00,0x00,0x00, +0xe0,0x00,0x04,0x00,0x73,0x00,0x00,0x00,0x73,0x00,0x00,0x00, +0xdd,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xe0,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0xe0,0x00,0x00,0x00,0xf5,0x00,0x07,0x00, +0x06,0x00,0x00,0x00,0x40,0x01,0x00,0x00,0xdf,0x00,0x00,0x00, +0x91,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,0xe3,0x00,0x00,0x00, +0xac,0x00,0x05,0x00,0x98,0x00,0x00,0x00,0xe6,0x00,0x00,0x00, +0x40,0x01,0x00,0x00,0x6d,0x00,0x00,0x00,0xf6,0x00,0x04,0x00, +0xe2,0x00,0x00,0x00,0xe3,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0xfa,0x00,0x04,0x00,0xe6,0x00,0x00,0x00,0xe1,0x00,0x00,0x00, +0xe2,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xe1,0x00,0x00,0x00, +0xb0,0x00,0x05,0x00,0x98,0x00,0x00,0x00,0xe9,0x00,0x00,0x00, +0x7b,0x00,0x00,0x00,0x40,0x01,0x00,0x00,0xf7,0x00,0x03,0x00, +0xeb,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, +0xe9,0x00,0x00,0x00,0xea,0x00,0x00,0x00,0xeb,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0xea,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xef,0x00,0x00,0x00,0x7b,0x00,0x00,0x00, +0x40,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x8c,0x00,0x00,0x00, +0xf0,0x00,0x00,0x00,0x89,0x00,0x00,0x00,0xef,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xf1,0x00,0x00,0x00, +0xf0,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0xf3,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,0x81,0x00,0x05,0x00, +0x08,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,0xf3,0x00,0x00,0x00, +0xf1,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0x8d,0x00,0x00,0x00, +0xf4,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xeb,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0xeb,0x00,0x00,0x00,0xe0,0x00,0x04,0x00, +0x73,0x00,0x00,0x00,0x73,0x00,0x00,0x00,0xdd,0x00,0x00,0x00, +0xf9,0x00,0x02,0x00,0xe3,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xe3,0x00,0x00,0x00,0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xf7,0x00,0x00,0x00,0x40,0x01,0x00,0x00,0x2d,0x00,0x00,0x00, +0xf9,0x00,0x02,0x00,0xe0,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xe2,0x00,0x00,0x00,0xaa,0x00,0x05,0x00,0x98,0x00,0x00,0x00, +0xf9,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,0x6d,0x00,0x00,0x00, +0xf7,0x00,0x03,0x00,0xfb,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xfa,0x00,0x04,0x00,0xf9,0x00,0x00,0x00,0xfa,0x00,0x00,0x00, +0xfb,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xfa,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x02,0x01,0x00,0x00, +0x1f,0x01,0x00,0x00,0x77,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0x8c,0x00,0x00,0x00,0x03,0x01,0x00,0x00,0x89,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0x04,0x01,0x00,0x00,0x03,0x01,0x00,0x00,0x41,0x00,0x06,0x00, +0xc7,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0xff,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x02,0x01,0x00,0x00,0x3e,0x00,0x03,0x00, +0x05,0x01,0x00,0x00,0x04,0x01,0x00,0x00,0xf9,0x00,0x02,0x00, +0xfb,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xfb,0x00,0x00,0x00, +0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00, }; -const uint64_t mul_mat_vec_id_q8_0_f32_len = 3808; +const uint64_t mul_mat_vec_id_q8_0_f32_len = 3956; unsigned char mul_mat_vec_nc_f16_f32_data[] = { 0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00, @@ -128413,3835 +128615,3565 @@ const uint64_t mul_mat_vec_p021_f16_f32_len = 2768; unsigned char mul_mat_vec_q2_k_f16_f32_data[] = { 0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00, -0x49,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, +0x50,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, 0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x27,0x00,0x00,0x00, 0x11,0x00,0x02,0x00,0x51,0x11,0x00,0x00,0x11,0x00,0x02,0x00, 0x60,0x11,0x00,0x00,0x0b,0x00,0x06,0x00,0x01,0x00,0x00,0x00, 0x47,0x4c,0x53,0x4c,0x2e,0x73,0x74,0x64,0x2e,0x34,0x35,0x30, 0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00,0x00,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x0f,0x00,0x0d,0x00,0x05,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x0f,0x00,0x0e,0x00,0x05,0x00,0x00,0x00, 0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e,0x00,0x00,0x00,0x00, 0x11,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x4a,0x00,0x00,0x00, -0x66,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,0xb2,0x00,0x00,0x00, -0xd0,0x00,0x00,0x00,0x0c,0x03,0x00,0x00,0x10,0x00,0x06,0x00, -0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x11,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x18,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x03,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00, -0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x18,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x4e,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x94,0x00,0x00,0x00, +0xb9,0x00,0x00,0x00,0xd7,0x00,0x00,0x00,0x13,0x03,0x00,0x00, +0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x11,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, 0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x18,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x28,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x18,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x4a,0x00,0x00,0x00, -0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x66,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xa9,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xab,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0xae,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xae,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0xae,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xaf,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x54,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0xb0,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xb0,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0xb0,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xb2,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xb2,0x00,0x00,0x00, -0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xcd,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0xce,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xce,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0xce,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xd0,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xd0,0x00,0x00,0x00, -0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x09,0x03,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0x0a,0x03,0x00,0x00,0x00,0x00,0x00,0x00, -0x19,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x0a,0x03,0x00,0x00, +0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x18,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00, +0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x18,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x07,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x18,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00, +0x09,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x0a,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0x18,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x4a,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x4e,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x6e,0x00,0x00,0x00, +0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xb0,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xb2,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xb5,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0x0a,0x03,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x0c,0x03,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x0c,0x03,0x00,0x00, -0x21,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x14,0x03,0x00,0x00,0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00, -0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00, -0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x17,0x00,0x04,0x00,0x0f,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x10,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x10,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x12,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x13,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x1e,0x00,0x0d,0x00, -0x18,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0xb5,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0xb5,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x50,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xb6,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x48,0x00,0x04,0x00, +0xb7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0xb7,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0xb7,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xb9,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xb9,0x00,0x00,0x00,0x21,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xd4,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x48,0x00,0x04,0x00, +0xd5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0xd5,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0xd5,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xd7,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xd7,0x00,0x00,0x00,0x21,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x10,0x03,0x00,0x00, +0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00, +0x11,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x11,0x03,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0x11,0x03,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x13,0x03,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x13,0x03,0x00,0x00,0x21,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x1b,0x03,0x00,0x00, +0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x13,0x00,0x02,0x00, +0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x17,0x00,0x04,0x00, +0x0f,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x10,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x0f,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00, +0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x13,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x1e,0x00,0x0d,0x00,0x18,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x19,0x00,0x00,0x00, -0x1a,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x15,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x1d,0x00,0x00,0x00, -0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x0a,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x2e,0x00,0x00,0x00, -0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x34,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x40,0x00,0x00,0x00, -0x05,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x45,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x10,0x00,0x00,0x00,0x4a,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4b,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,0x00,0x01,0x00,0x00, -0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00,0x66,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x19,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, +0x09,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x1d,0x00,0x00,0x00,0x09,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x28,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,0x09,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x00,0x00, +0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x3b,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x05,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x45,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00, +0x4a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00,0x4e,0x00,0x00,0x00, 0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x69,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x7c,0x00,0x00,0x00, +0x51,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x64,0x00,0x00,0x00, +0x00,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00, +0x6e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x83,0x00,0x00,0x00, 0x20,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x85,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x16,0x00,0x03,0x00, -0x8a,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, -0x8b,0x00,0x00,0x00,0x8a,0x00,0x00,0x00,0x7c,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x8b,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x8c,0x00,0x00,0x00, -0x8d,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,0x10,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x8a,0x00,0x00,0x00,0x93,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x94,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x8a,0x00,0x00,0x00,0x14,0x00,0x02,0x00, -0x9f,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0xa8,0x00,0x00,0x00, +0x8c,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x16,0x00,0x03,0x00, +0x91,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, +0x92,0x00,0x00,0x00,0x91,0x00,0x00,0x00,0x83,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x93,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x92,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x93,0x00,0x00,0x00, +0x94,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x95,0x00,0x00,0x00,0x10,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x91,0x00,0x00,0x00,0x9a,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x9b,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x91,0x00,0x00,0x00,0x14,0x00,0x02,0x00, +0xa6,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0xaf,0x00,0x00,0x00, 0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, -0xa9,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,0x8e,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xaa,0x00,0x00,0x00, -0x40,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0xab,0x00,0x00,0x00, -0xa8,0x00,0x00,0x00,0xaa,0x00,0x00,0x00,0x16,0x00,0x03,0x00, -0xac,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x17,0x00,0x04,0x00, -0xad,0x00,0x00,0x00,0xac,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x1e,0x00,0x05,0x00,0xae,0x00,0x00,0x00,0xa9,0x00,0x00,0x00, -0xab,0x00,0x00,0x00,0xad,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, -0xaf,0x00,0x00,0x00,0xae,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, -0xb0,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0xb1,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xb0,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0xb1,0x00,0x00,0x00,0xb2,0x00,0x00,0x00, +0xb0,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0x95,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xb1,0x00,0x00,0x00, +0x40,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0xb2,0x00,0x00,0x00, +0xaf,0x00,0x00,0x00,0xb1,0x00,0x00,0x00,0x16,0x00,0x03,0x00, +0xb3,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x17,0x00,0x04,0x00, +0xb4,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x1e,0x00,0x05,0x00,0xb5,0x00,0x00,0x00,0xb0,0x00,0x00,0x00, +0xb2,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, +0xb6,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, +0xb7,0x00,0x00,0x00,0xb6,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0xb8,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xb7,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0xb8,0x00,0x00,0x00,0xb9,0x00,0x00,0x00, 0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0xb6,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0xb7,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xac,0x00,0x00,0x00, -0x1d,0x00,0x03,0x00,0xcd,0x00,0x00,0x00,0xac,0x00,0x00,0x00, -0x1e,0x00,0x03,0x00,0xce,0x00,0x00,0x00,0xcd,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0xce,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xcf,0x00,0x00,0x00, -0xd0,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0xe0,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xa8,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xe5,0x00,0x00,0x00, +0xbd,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0xbe,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xb3,0x00,0x00,0x00, +0x1d,0x00,0x03,0x00,0xd4,0x00,0x00,0x00,0xb3,0x00,0x00,0x00, +0x1e,0x00,0x03,0x00,0xd5,0x00,0x00,0x00,0xd4,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0xd6,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0xd5,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xd6,0x00,0x00,0x00, +0xd7,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0xe7,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xaf,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xec,0x00,0x00,0x00, 0x0f,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0xec,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,0x03,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4f,0x01,0x00,0x00, +0xf3,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0x03,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x56,0x01,0x00,0x00, 0x30,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x58,0x01,0x00,0x00,0x03,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x80,0x01,0x00,0x00,0x04,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa0,0x01,0x00,0x00, +0x5f,0x01,0x00,0x00,0x03,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x87,0x01,0x00,0x00,0x04,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa7,0x01,0x00,0x00, 0x50,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xa9,0x01,0x00,0x00,0x05,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xc9,0x01,0x00,0x00,0x60,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xd2,0x01,0x00,0x00, +0xb0,0x01,0x00,0x00,0x05,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xd0,0x01,0x00,0x00,0x60,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xd9,0x01,0x00,0x00, 0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xf2,0x01,0x00,0x00,0x70,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xfb,0x01,0x00,0x00,0x07,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xeb,0x02,0x00,0x00, -0x08,0x01,0x00,0x00,0x1d,0x00,0x03,0x00,0x09,0x03,0x00,0x00, -0x8a,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x0a,0x03,0x00,0x00, -0x09,0x03,0x00,0x00,0x20,0x00,0x04,0x00,0x0b,0x03,0x00,0x00, -0x0c,0x00,0x00,0x00,0x0a,0x03,0x00,0x00,0x3b,0x00,0x04,0x00, -0x0b,0x03,0x00,0x00,0x0c,0x03,0x00,0x00,0x0c,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x12,0x03,0x00,0x00,0x0c,0x00,0x00,0x00, -0x8a,0x00,0x00,0x00,0x2c,0x00,0x06,0x00,0x0f,0x00,0x00,0x00, -0x14,0x03,0x00,0x00,0x7c,0x00,0x00,0x00,0x12,0x00,0x00,0x00, +0xf9,0x01,0x00,0x00,0x70,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x02,0x02,0x00,0x00,0x07,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xf2,0x02,0x00,0x00, +0x08,0x01,0x00,0x00,0x1d,0x00,0x03,0x00,0x10,0x03,0x00,0x00, +0x91,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x11,0x03,0x00,0x00, +0x10,0x03,0x00,0x00,0x20,0x00,0x04,0x00,0x12,0x03,0x00,0x00, +0x0c,0x00,0x00,0x00,0x11,0x03,0x00,0x00,0x3b,0x00,0x04,0x00, +0x12,0x03,0x00,0x00,0x13,0x03,0x00,0x00,0x0c,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x19,0x03,0x00,0x00,0x0c,0x00,0x00,0x00, +0x91,0x00,0x00,0x00,0x2c,0x00,0x06,0x00,0x0f,0x00,0x00,0x00, +0x1b,0x03,0x00,0x00,0x83,0x00,0x00,0x00,0x12,0x00,0x00,0x00, 0x12,0x00,0x00,0x00,0x36,0x00,0x05,0x00,0x02,0x00,0x00,0x00, 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00, 0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00,0x41,0x00,0x05,0x00, 0x13,0x00,0x00,0x00,0x4c,0x00,0x00,0x00,0x4a,0x00,0x00,0x00, 0x4b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, 0x4d,0x00,0x00,0x00,0x4c,0x00,0x00,0x00,0x41,0x00,0x05,0x00, -0x13,0x00,0x00,0x00,0x1c,0x03,0x00,0x00,0x11,0x00,0x00,0x00, -0x12,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x1d,0x03,0x00,0x00,0x1c,0x03,0x00,0x00,0x41,0x00,0x05,0x00, -0x1d,0x00,0x00,0x00,0x1f,0x03,0x00,0x00,0x1a,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x20,0x03,0x00,0x00,0x1f,0x03,0x00,0x00,0x86,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x21,0x03,0x00,0x00,0x1d,0x03,0x00,0x00, -0x20,0x03,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x25,0x03,0x00,0x00,0x1d,0x03,0x00,0x00,0x20,0x03,0x00,0x00, -0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00,0x27,0x03,0x00,0x00, -0x1a,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x28,0x03,0x00,0x00,0x27,0x03,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x29,0x03,0x00,0x00, -0x21,0x03,0x00,0x00,0x28,0x03,0x00,0x00,0x41,0x00,0x05,0x00, -0x1d,0x00,0x00,0x00,0x2b,0x03,0x00,0x00,0x1a,0x00,0x00,0x00, -0x2e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x2c,0x03,0x00,0x00,0x2b,0x03,0x00,0x00,0x86,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x2d,0x03,0x00,0x00,0x25,0x03,0x00,0x00, -0x2c,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00, -0x2f,0x03,0x00,0x00,0x1a,0x00,0x00,0x00,0x34,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x30,0x03,0x00,0x00, -0x2f,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x31,0x03,0x00,0x00,0x29,0x03,0x00,0x00,0x30,0x03,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x33,0x03,0x00,0x00, -0x31,0x03,0x00,0x00,0x2d,0x03,0x00,0x00,0x41,0x00,0x05,0x00, -0x1d,0x00,0x00,0x00,0x35,0x03,0x00,0x00,0x1a,0x00,0x00,0x00, -0x3b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x36,0x03,0x00,0x00,0x35,0x03,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x37,0x03,0x00,0x00,0x33,0x03,0x00,0x00, -0x36,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00, -0x39,0x03,0x00,0x00,0x1a,0x00,0x00,0x00,0x40,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x3a,0x03,0x00,0x00, -0x39,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x3b,0x03,0x00,0x00,0x1d,0x03,0x00,0x00,0x3a,0x03,0x00,0x00, -0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00,0x3d,0x03,0x00,0x00, -0x1a,0x00,0x00,0x00,0x45,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x3e,0x03,0x00,0x00,0x3d,0x03,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3f,0x03,0x00,0x00, -0x1d,0x03,0x00,0x00,0x3e,0x03,0x00,0x00,0x41,0x00,0x05,0x00, -0x1d,0x00,0x00,0x00,0x5a,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x5b,0x00,0x00,0x00,0x5a,0x00,0x00,0x00,0x86,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x5d,0x00,0x00,0x00,0x5b,0x00,0x00,0x00, -0x5c,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x60,0x00,0x00,0x00,0x37,0x03,0x00,0x00,0x5c,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x63,0x00,0x00,0x00, -0x4d,0x00,0x00,0x00,0x5d,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0x60,0x00,0x00,0x00, -0x63,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00, -0x67,0x00,0x00,0x00,0x66,0x00,0x00,0x00,0x4b,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x68,0x00,0x00,0x00, -0x67,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x6a,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x69,0x00,0x00,0x00, -0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6e,0x00,0x00,0x00, -0x68,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0x86,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x72,0x00,0x00,0x00,0x6a,0x00,0x00,0x00, -0x71,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x76,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x72,0x00,0x00,0x00, -0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x77,0x00,0x00,0x00, -0x6a,0x00,0x00,0x00,0x76,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x7a,0x00,0x00,0x00,0x69,0x00,0x00,0x00, -0x77,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x7e,0x00,0x00,0x00,0x7c,0x00,0x00,0x00,0x72,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x80,0x00,0x00,0x00, -0x7e,0x00,0x00,0x00,0x7a,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x87,0x00,0x00,0x00,0x85,0x00,0x00,0x00, -0x72,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x89,0x00,0x00,0x00,0x87,0x00,0x00,0x00,0x7a,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x90,0x00,0x00,0x00, -0x8e,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x92,0x00,0x00,0x00,0x90,0x00,0x00,0x00, -0x6a,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x94,0x00,0x00,0x00, -0x95,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,0x92,0x00,0x00,0x00, -0x3e,0x00,0x03,0x00,0x95,0x00,0x00,0x00,0x93,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0x98,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0x98,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00, -0x40,0x03,0x00,0x00,0x6e,0x00,0x00,0x00,0x05,0x00,0x00,0x00, -0xea,0x02,0x00,0x00,0x9b,0x00,0x00,0x00,0xb0,0x00,0x05,0x00, -0x9f,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0x40,0x03,0x00,0x00, -0x5d,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x9a,0x00,0x00,0x00, -0x9b,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, -0xa0,0x00,0x00,0x00,0x99,0x00,0x00,0x00,0x9a,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0x99,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0x40,0x03,0x00,0x00, -0x5c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xa5,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0x89,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb5,0x00,0x00,0x00, -0x64,0x00,0x00,0x00,0x40,0x03,0x00,0x00,0x41,0x00,0x08,0x00, -0xb7,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0xb2,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,0xb6,0x00,0x00,0x00, -0x4b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xac,0x00,0x00,0x00, -0xb9,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0x73,0x00,0x04,0x00, -0x8a,0x00,0x00,0x00,0xba,0x00,0x00,0x00,0xb9,0x00,0x00,0x00, -0x41,0x00,0x08,0x00,0xb7,0x00,0x00,0x00,0xbf,0x00,0x00,0x00, -0xb2,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xb5,0x00,0x00,0x00, -0xb6,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0xac,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0xbf,0x00,0x00,0x00, -0x73,0x00,0x04,0x00,0x8a,0x00,0x00,0x00,0xc1,0x00,0x00,0x00, -0xc0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xc6,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0xc6,0x00,0x00,0x00,0xf5,0x00,0x07,0x00, -0x8a,0x00,0x00,0x00,0x45,0x03,0x00,0x00,0x93,0x00,0x00,0x00, -0x99,0x00,0x00,0x00,0xd7,0x02,0x00,0x00,0xc7,0x00,0x00,0x00, -0xf5,0x00,0x07,0x00,0x8a,0x00,0x00,0x00,0x44,0x03,0x00,0x00, -0x93,0x00,0x00,0x00,0x99,0x00,0x00,0x00,0x16,0x02,0x00,0x00, -0xc7,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x1b,0x00,0x00,0x00, -0x43,0x03,0x00,0x00,0x59,0x00,0x00,0x00,0x99,0x00,0x00,0x00, -0xd9,0x02,0x00,0x00,0xc7,0x00,0x00,0x00,0xb1,0x00,0x05,0x00, -0x9f,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,0x43,0x03,0x00,0x00, -0xb6,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xc8,0x00,0x00,0x00, -0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, -0xcc,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,0xc8,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0xc7,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,0x3b,0x03,0x00,0x00, -0xa5,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xd5,0x00,0x00,0x00,0x43,0x03,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,0xd3,0x00,0x00,0x00, -0xd5,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xb7,0x00,0x00,0x00, -0xd8,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0xd6,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xac,0x00,0x00,0x00, -0xd9,0x00,0x00,0x00,0xd8,0x00,0x00,0x00,0x73,0x00,0x04,0x00, -0x8a,0x00,0x00,0x00,0xda,0x00,0x00,0x00,0xd9,0x00,0x00,0x00, -0x41,0x00,0x08,0x00,0xe0,0x00,0x00,0x00,0xe1,0x00,0x00,0x00, -0xb2,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xb5,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0x76,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0xa8,0x00,0x00,0x00,0xe2,0x00,0x00,0x00,0xe1,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xe3,0x00,0x00,0x00, -0xe2,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0xe4,0x00,0x00,0x00,0xe3,0x00,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0xe6,0x00,0x00,0x00,0xe4,0x00,0x00,0x00, -0xe5,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x8a,0x00,0x00,0x00, -0xe7,0x00,0x00,0x00,0xe6,0x00,0x00,0x00,0x85,0x00,0x05,0x00, -0x8a,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0xda,0x00,0x00,0x00, -0xe7,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xf0,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0xd5,0x00,0x00,0x00, -0x41,0x00,0x08,0x00,0xe0,0x00,0x00,0x00,0xf2,0x00,0x00,0x00, -0xb2,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xb5,0x00,0x00,0x00, -0xec,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0xa8,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,0xf2,0x00,0x00,0x00, -0xc2,0x00,0x05,0x00,0xa8,0x00,0x00,0x00,0xf4,0x00,0x00,0x00, -0xf3,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,0xf4,0x00,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xf6,0x00,0x00,0x00, -0xf5,0x00,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0xf8,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,0xf7,0x00,0x00,0x00, -0x6f,0x00,0x04,0x00,0x8a,0x00,0x00,0x00,0xf9,0x00,0x00,0x00, -0xf8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x01,0x01,0x00,0x00,0xd6,0x00,0x00,0x00,0x8e,0x00,0x00,0x00, -0x41,0x00,0x06,0x00,0xb7,0x00,0x00,0x00,0x02,0x01,0x00,0x00, -0xd0,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x01,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0xac,0x00,0x00,0x00,0x03,0x01,0x00,0x00, -0x02,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x8a,0x00,0x00,0x00, -0x04,0x01,0x00,0x00,0x03,0x01,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x09,0x01,0x00,0x00,0x76,0x00,0x00,0x00, -0x12,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xe0,0x00,0x00,0x00, -0x0a,0x01,0x00,0x00,0xb2,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0xb5,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x09,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0xa8,0x00,0x00,0x00,0x0b,0x01,0x00,0x00, -0x0a,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x0c,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x0d,0x01,0x00,0x00,0x0c,0x01,0x00,0x00, -0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x0e,0x01,0x00,0x00, -0x0d,0x01,0x00,0x00,0xe5,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, -0x8a,0x00,0x00,0x00,0x0f,0x01,0x00,0x00,0x0e,0x01,0x00,0x00, -0x85,0x00,0x05,0x00,0x8a,0x00,0x00,0x00,0x10,0x01,0x00,0x00, -0x04,0x01,0x00,0x00,0x0f,0x01,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x18,0x01,0x00,0x00,0xf0,0x00,0x00,0x00, -0x8e,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xe0,0x00,0x00,0x00, -0x19,0x01,0x00,0x00,0xb2,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0xb5,0x00,0x00,0x00,0xec,0x00,0x00,0x00,0x18,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0xa8,0x00,0x00,0x00,0x1a,0x01,0x00,0x00, -0x19,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0xa8,0x00,0x00,0x00, -0x1b,0x01,0x00,0x00,0x1a,0x01,0x00,0x00,0x59,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x1c,0x01,0x00,0x00, -0x1b,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x1d,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x1e,0x01,0x00,0x00,0x1d,0x01,0x00,0x00, -0xf7,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x8a,0x00,0x00,0x00, -0x1f,0x01,0x00,0x00,0x1e,0x01,0x00,0x00,0x85,0x00,0x05,0x00, -0x8a,0x00,0x00,0x00,0x20,0x01,0x00,0x00,0x10,0x01,0x00,0x00, -0x1f,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0x8a,0x00,0x00,0x00, -0x21,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0xe8,0x00,0x00,0x00,0xf9,0x00,0x00,0x00,0x20,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x28,0x01,0x00,0x00, -0xd6,0x00,0x00,0x00,0x7c,0x00,0x00,0x00,0x41,0x00,0x06,0x00, -0xb7,0x00,0x00,0x00,0x29,0x01,0x00,0x00,0xd0,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0x28,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0xac,0x00,0x00,0x00,0x2a,0x01,0x00,0x00,0x29,0x01,0x00,0x00, -0x73,0x00,0x04,0x00,0x8a,0x00,0x00,0x00,0x2b,0x01,0x00,0x00, -0x2a,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x30,0x01,0x00,0x00,0x76,0x00,0x00,0x00,0x69,0x00,0x00,0x00, -0x41,0x00,0x08,0x00,0xe0,0x00,0x00,0x00,0x31,0x01,0x00,0x00, -0xb2,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xb5,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0x30,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0xa8,0x00,0x00,0x00,0x32,0x01,0x00,0x00,0x31,0x01,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x33,0x01,0x00,0x00, -0x32,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x34,0x01,0x00,0x00,0x33,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x35,0x01,0x00,0x00,0x34,0x01,0x00,0x00, -0xe5,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x8a,0x00,0x00,0x00, -0x36,0x01,0x00,0x00,0x35,0x01,0x00,0x00,0x85,0x00,0x05,0x00, -0x8a,0x00,0x00,0x00,0x37,0x01,0x00,0x00,0x2b,0x01,0x00,0x00, -0x36,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xa8,0x00,0x00,0x00, -0x41,0x01,0x00,0x00,0xf2,0x00,0x00,0x00,0xc2,0x00,0x05,0x00, -0xa8,0x00,0x00,0x00,0x42,0x01,0x00,0x00,0x41,0x01,0x00,0x00, -0xb6,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x43,0x01,0x00,0x00,0x42,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x44,0x01,0x00,0x00,0x43,0x01,0x00,0x00, -0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x45,0x01,0x00,0x00, -0x44,0x01,0x00,0x00,0xf7,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, -0x8a,0x00,0x00,0x00,0x46,0x01,0x00,0x00,0x45,0x01,0x00,0x00, -0x0c,0x00,0x08,0x00,0x8a,0x00,0x00,0x00,0x48,0x01,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x37,0x01,0x00,0x00, -0x46,0x01,0x00,0x00,0x21,0x01,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x50,0x01,0x00,0x00,0xd6,0x00,0x00,0x00, -0x4f,0x01,0x00,0x00,0x41,0x00,0x06,0x00,0xb7,0x00,0x00,0x00, -0x51,0x01,0x00,0x00,0xd0,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0x50,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xac,0x00,0x00,0x00, -0x52,0x01,0x00,0x00,0x51,0x01,0x00,0x00,0x73,0x00,0x04,0x00, -0x8a,0x00,0x00,0x00,0x53,0x01,0x00,0x00,0x52,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x59,0x01,0x00,0x00, -0x76,0x00,0x00,0x00,0x58,0x01,0x00,0x00,0x41,0x00,0x08,0x00, -0xe0,0x00,0x00,0x00,0x5a,0x01,0x00,0x00,0xb2,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0x59,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xa8,0x00,0x00,0x00, -0x5b,0x01,0x00,0x00,0x5a,0x01,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x5c,0x01,0x00,0x00,0x5b,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x5d,0x01,0x00,0x00, -0x5c,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x5e,0x01,0x00,0x00,0x5d,0x01,0x00,0x00,0xe5,0x00,0x00,0x00, -0x6f,0x00,0x04,0x00,0x8a,0x00,0x00,0x00,0x5f,0x01,0x00,0x00, -0x5e,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x8a,0x00,0x00,0x00, -0x60,0x01,0x00,0x00,0x53,0x01,0x00,0x00,0x5f,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0xa8,0x00,0x00,0x00,0x6a,0x01,0x00,0x00, -0x19,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0xa8,0x00,0x00,0x00, -0x6b,0x01,0x00,0x00,0x6a,0x01,0x00,0x00,0xb6,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x6c,0x01,0x00,0x00, -0x6b,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x6d,0x01,0x00,0x00,0x6c,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x6e,0x01,0x00,0x00,0x6d,0x01,0x00,0x00, -0xf7,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x8a,0x00,0x00,0x00, -0x6f,0x01,0x00,0x00,0x6e,0x01,0x00,0x00,0x0c,0x00,0x08,0x00, -0x8a,0x00,0x00,0x00,0x71,0x01,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0x60,0x01,0x00,0x00,0x6f,0x01,0x00,0x00, -0x48,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x78,0x01,0x00,0x00,0xd6,0x00,0x00,0x00,0xaa,0x00,0x00,0x00, -0x41,0x00,0x06,0x00,0xb7,0x00,0x00,0x00,0x79,0x01,0x00,0x00, -0xd0,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x78,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0xac,0x00,0x00,0x00,0x7a,0x01,0x00,0x00, -0x79,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x8a,0x00,0x00,0x00, -0x7b,0x01,0x00,0x00,0x7a,0x01,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x81,0x01,0x00,0x00,0x76,0x00,0x00,0x00, -0x80,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0xe0,0x00,0x00,0x00, -0x82,0x01,0x00,0x00,0xb2,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0xb5,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x81,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0xa8,0x00,0x00,0x00,0x83,0x01,0x00,0x00, -0x82,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x84,0x01,0x00,0x00,0x83,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x85,0x01,0x00,0x00,0x84,0x01,0x00,0x00, -0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x86,0x01,0x00,0x00, -0x85,0x01,0x00,0x00,0xe5,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, -0x8a,0x00,0x00,0x00,0x87,0x01,0x00,0x00,0x86,0x01,0x00,0x00, -0x85,0x00,0x05,0x00,0x8a,0x00,0x00,0x00,0x88,0x01,0x00,0x00, -0x7b,0x01,0x00,0x00,0x87,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0xa8,0x00,0x00,0x00,0x92,0x01,0x00,0x00,0xf2,0x00,0x00,0x00, -0xc2,0x00,0x05,0x00,0xa8,0x00,0x00,0x00,0x93,0x01,0x00,0x00, -0x92,0x01,0x00,0x00,0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x94,0x01,0x00,0x00,0x93,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x95,0x01,0x00,0x00, -0x94,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x96,0x01,0x00,0x00,0x95,0x01,0x00,0x00,0xf7,0x00,0x00,0x00, -0x6f,0x00,0x04,0x00,0x8a,0x00,0x00,0x00,0x97,0x01,0x00,0x00, -0x96,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0x8a,0x00,0x00,0x00, -0x99,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x88,0x01,0x00,0x00,0x97,0x01,0x00,0x00,0x71,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa1,0x01,0x00,0x00, -0xd6,0x00,0x00,0x00,0xa0,0x01,0x00,0x00,0x41,0x00,0x06,0x00, -0xb7,0x00,0x00,0x00,0xa2,0x01,0x00,0x00,0xd0,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xa1,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0xac,0x00,0x00,0x00,0xa3,0x01,0x00,0x00,0xa2,0x01,0x00,0x00, -0x73,0x00,0x04,0x00,0x8a,0x00,0x00,0x00,0xa4,0x01,0x00,0x00, -0xa3,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xaa,0x01,0x00,0x00,0x76,0x00,0x00,0x00,0xa9,0x01,0x00,0x00, -0x41,0x00,0x08,0x00,0xe0,0x00,0x00,0x00,0xab,0x01,0x00,0x00, -0xb2,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xb5,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xaa,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0xa8,0x00,0x00,0x00,0xac,0x01,0x00,0x00,0xab,0x01,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xad,0x01,0x00,0x00, -0xac,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0xae,0x01,0x00,0x00,0xad,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0xaf,0x01,0x00,0x00,0xae,0x01,0x00,0x00, -0xe5,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x8a,0x00,0x00,0x00, -0xb0,0x01,0x00,0x00,0xaf,0x01,0x00,0x00,0x85,0x00,0x05,0x00, -0x8a,0x00,0x00,0x00,0xb1,0x01,0x00,0x00,0xa4,0x01,0x00,0x00, -0xb0,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xa8,0x00,0x00,0x00, -0xbb,0x01,0x00,0x00,0x19,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, -0xa8,0x00,0x00,0x00,0xbc,0x01,0x00,0x00,0xbb,0x01,0x00,0x00, -0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xbd,0x01,0x00,0x00,0xbc,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0xbe,0x01,0x00,0x00,0xbd,0x01,0x00,0x00, -0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xbf,0x01,0x00,0x00, -0xbe,0x01,0x00,0x00,0xf7,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, -0x8a,0x00,0x00,0x00,0xc0,0x01,0x00,0x00,0xbf,0x01,0x00,0x00, -0x0c,0x00,0x08,0x00,0x8a,0x00,0x00,0x00,0xc2,0x01,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xb1,0x01,0x00,0x00, -0xc0,0x01,0x00,0x00,0x99,0x01,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xca,0x01,0x00,0x00,0xd6,0x00,0x00,0x00, -0xc9,0x01,0x00,0x00,0x41,0x00,0x06,0x00,0xb7,0x00,0x00,0x00, -0xcb,0x01,0x00,0x00,0xd0,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0xca,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xac,0x00,0x00,0x00, -0xcc,0x01,0x00,0x00,0xcb,0x01,0x00,0x00,0x73,0x00,0x04,0x00, -0x8a,0x00,0x00,0x00,0xcd,0x01,0x00,0x00,0xcc,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd3,0x01,0x00,0x00, -0x76,0x00,0x00,0x00,0xd2,0x01,0x00,0x00,0x41,0x00,0x08,0x00, -0xe0,0x00,0x00,0x00,0xd4,0x01,0x00,0x00,0xb2,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0xd3,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xa8,0x00,0x00,0x00, -0xd5,0x01,0x00,0x00,0xd4,0x01,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xd6,0x01,0x00,0x00,0xd5,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xd7,0x01,0x00,0x00, -0xd6,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0xd8,0x01,0x00,0x00,0xd7,0x01,0x00,0x00,0xe5,0x00,0x00,0x00, -0x6f,0x00,0x04,0x00,0x8a,0x00,0x00,0x00,0xd9,0x01,0x00,0x00, -0xd8,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x8a,0x00,0x00,0x00, -0xda,0x01,0x00,0x00,0xcd,0x01,0x00,0x00,0xd9,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0xa8,0x00,0x00,0x00,0xe4,0x01,0x00,0x00, -0xf2,0x00,0x00,0x00,0xc2,0x00,0x05,0x00,0xa8,0x00,0x00,0x00, -0xe5,0x01,0x00,0x00,0xe4,0x01,0x00,0x00,0x45,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xe6,0x01,0x00,0x00, -0xe5,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0xe7,0x01,0x00,0x00,0xe6,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0xe8,0x01,0x00,0x00,0xe7,0x01,0x00,0x00, -0xf7,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x8a,0x00,0x00,0x00, -0xe9,0x01,0x00,0x00,0xe8,0x01,0x00,0x00,0x0c,0x00,0x08,0x00, -0x8a,0x00,0x00,0x00,0xeb,0x01,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0xda,0x01,0x00,0x00,0xe9,0x01,0x00,0x00, -0xc2,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xf3,0x01,0x00,0x00,0xd6,0x00,0x00,0x00,0xf2,0x01,0x00,0x00, -0x41,0x00,0x06,0x00,0xb7,0x00,0x00,0x00,0xf4,0x01,0x00,0x00, -0xd0,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xf3,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0xac,0x00,0x00,0x00,0xf5,0x01,0x00,0x00, -0xf4,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x8a,0x00,0x00,0x00, -0xf6,0x01,0x00,0x00,0xf5,0x01,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xfc,0x01,0x00,0x00,0x76,0x00,0x00,0x00, -0xfb,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0xe0,0x00,0x00,0x00, -0xfd,0x01,0x00,0x00,0xb2,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0xb5,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xfc,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0xa8,0x00,0x00,0x00,0xfe,0x01,0x00,0x00, -0xfd,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xff,0x01,0x00,0x00,0xfe,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0xff,0x01,0x00,0x00, -0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x01,0x02,0x00,0x00, -0x00,0x02,0x00,0x00,0xe5,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, -0x8a,0x00,0x00,0x00,0x02,0x02,0x00,0x00,0x01,0x02,0x00,0x00, -0x85,0x00,0x05,0x00,0x8a,0x00,0x00,0x00,0x03,0x02,0x00,0x00, -0xf6,0x01,0x00,0x00,0x02,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0xa8,0x00,0x00,0x00,0x0d,0x02,0x00,0x00,0x19,0x01,0x00,0x00, -0xc2,0x00,0x05,0x00,0xa8,0x00,0x00,0x00,0x0e,0x02,0x00,0x00, -0x0d,0x02,0x00,0x00,0x45,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x0f,0x02,0x00,0x00,0x0e,0x02,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x10,0x02,0x00,0x00, -0x0f,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x11,0x02,0x00,0x00,0x10,0x02,0x00,0x00,0xf7,0x00,0x00,0x00, -0x6f,0x00,0x04,0x00,0x8a,0x00,0x00,0x00,0x12,0x02,0x00,0x00, -0x11,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x8a,0x00,0x00,0x00, -0x14,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x03,0x02,0x00,0x00,0x12,0x02,0x00,0x00,0xeb,0x01,0x00,0x00, -0x81,0x00,0x05,0x00,0x8a,0x00,0x00,0x00,0x16,0x02,0x00,0x00, -0x44,0x03,0x00,0x00,0x14,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0xac,0x00,0x00,0x00,0x1f,0x02,0x00,0x00,0xd8,0x00,0x00,0x00, -0x73,0x00,0x04,0x00,0x8a,0x00,0x00,0x00,0x20,0x02,0x00,0x00, -0x1f,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xa8,0x00,0x00,0x00, -0x27,0x02,0x00,0x00,0xe1,0x00,0x00,0x00,0xc2,0x00,0x05,0x00, -0xa8,0x00,0x00,0x00,0x28,0x02,0x00,0x00,0x27,0x02,0x00,0x00, -0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x29,0x02,0x00,0x00,0x28,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x2a,0x02,0x00,0x00,0x29,0x02,0x00,0x00, -0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x2b,0x02,0x00,0x00, -0x2a,0x02,0x00,0x00,0xe5,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, -0x8a,0x00,0x00,0x00,0x2c,0x02,0x00,0x00,0x2b,0x02,0x00,0x00, -0x3d,0x00,0x04,0x00,0xac,0x00,0x00,0x00,0x36,0x02,0x00,0x00, -0x02,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x8a,0x00,0x00,0x00, -0x37,0x02,0x00,0x00,0x36,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0xa8,0x00,0x00,0x00,0x3e,0x02,0x00,0x00,0x0a,0x01,0x00,0x00, -0xc2,0x00,0x05,0x00,0xa8,0x00,0x00,0x00,0x3f,0x02,0x00,0x00, -0x3e,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x40,0x02,0x00,0x00,0x3f,0x02,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x41,0x02,0x00,0x00, -0x40,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x42,0x02,0x00,0x00,0x41,0x02,0x00,0x00,0xe5,0x00,0x00,0x00, -0x6f,0x00,0x04,0x00,0x8a,0x00,0x00,0x00,0x43,0x02,0x00,0x00, -0x42,0x02,0x00,0x00,0x85,0x00,0x05,0x00,0x8a,0x00,0x00,0x00, -0x44,0x02,0x00,0x00,0x37,0x02,0x00,0x00,0x43,0x02,0x00,0x00, -0x0c,0x00,0x08,0x00,0x8a,0x00,0x00,0x00,0x45,0x02,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x20,0x02,0x00,0x00, -0x2c,0x02,0x00,0x00,0x44,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0xac,0x00,0x00,0x00,0x4e,0x02,0x00,0x00,0x29,0x01,0x00,0x00, -0x73,0x00,0x04,0x00,0x8a,0x00,0x00,0x00,0x4f,0x02,0x00,0x00, -0x4e,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xa8,0x00,0x00,0x00, -0x56,0x02,0x00,0x00,0x31,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, -0xa8,0x00,0x00,0x00,0x57,0x02,0x00,0x00,0x56,0x02,0x00,0x00, -0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x58,0x02,0x00,0x00,0x57,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x59,0x02,0x00,0x00,0x58,0x02,0x00,0x00, -0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x5a,0x02,0x00,0x00, -0x59,0x02,0x00,0x00,0xe5,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, -0x8a,0x00,0x00,0x00,0x5b,0x02,0x00,0x00,0x5a,0x02,0x00,0x00, -0x0c,0x00,0x08,0x00,0x8a,0x00,0x00,0x00,0x5d,0x02,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x4f,0x02,0x00,0x00, -0x5b,0x02,0x00,0x00,0x45,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0xac,0x00,0x00,0x00,0x66,0x02,0x00,0x00,0x51,0x01,0x00,0x00, -0x73,0x00,0x04,0x00,0x8a,0x00,0x00,0x00,0x67,0x02,0x00,0x00, -0x66,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xa8,0x00,0x00,0x00, -0x6e,0x02,0x00,0x00,0x5a,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, -0xa8,0x00,0x00,0x00,0x6f,0x02,0x00,0x00,0x6e,0x02,0x00,0x00, -0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x70,0x02,0x00,0x00,0x6f,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x71,0x02,0x00,0x00,0x70,0x02,0x00,0x00, -0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x72,0x02,0x00,0x00, -0x71,0x02,0x00,0x00,0xe5,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, -0x8a,0x00,0x00,0x00,0x73,0x02,0x00,0x00,0x72,0x02,0x00,0x00, -0x0c,0x00,0x08,0x00,0x8a,0x00,0x00,0x00,0x75,0x02,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x67,0x02,0x00,0x00, -0x73,0x02,0x00,0x00,0x5d,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0xac,0x00,0x00,0x00,0x7e,0x02,0x00,0x00,0x79,0x01,0x00,0x00, -0x73,0x00,0x04,0x00,0x8a,0x00,0x00,0x00,0x7f,0x02,0x00,0x00, -0x7e,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xa8,0x00,0x00,0x00, -0x86,0x02,0x00,0x00,0x82,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, -0xa8,0x00,0x00,0x00,0x87,0x02,0x00,0x00,0x86,0x02,0x00,0x00, -0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x88,0x02,0x00,0x00,0x87,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x89,0x02,0x00,0x00,0x88,0x02,0x00,0x00, -0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x8a,0x02,0x00,0x00, -0x89,0x02,0x00,0x00,0xe5,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, -0x8a,0x00,0x00,0x00,0x8b,0x02,0x00,0x00,0x8a,0x02,0x00,0x00, -0x0c,0x00,0x08,0x00,0x8a,0x00,0x00,0x00,0x8d,0x02,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x7f,0x02,0x00,0x00, -0x8b,0x02,0x00,0x00,0x75,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0xac,0x00,0x00,0x00,0x96,0x02,0x00,0x00,0xa2,0x01,0x00,0x00, -0x73,0x00,0x04,0x00,0x8a,0x00,0x00,0x00,0x97,0x02,0x00,0x00, -0x96,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xa8,0x00,0x00,0x00, -0x9e,0x02,0x00,0x00,0xab,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, -0xa8,0x00,0x00,0x00,0x9f,0x02,0x00,0x00,0x9e,0x02,0x00,0x00, -0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xa0,0x02,0x00,0x00,0x9f,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0xa1,0x02,0x00,0x00,0xa0,0x02,0x00,0x00, -0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xa2,0x02,0x00,0x00, -0xa1,0x02,0x00,0x00,0xe5,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, -0x8a,0x00,0x00,0x00,0xa3,0x02,0x00,0x00,0xa2,0x02,0x00,0x00, -0x0c,0x00,0x08,0x00,0x8a,0x00,0x00,0x00,0xa5,0x02,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x97,0x02,0x00,0x00, -0xa3,0x02,0x00,0x00,0x8d,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0xac,0x00,0x00,0x00,0xae,0x02,0x00,0x00,0xcb,0x01,0x00,0x00, -0x73,0x00,0x04,0x00,0x8a,0x00,0x00,0x00,0xaf,0x02,0x00,0x00, -0xae,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xa8,0x00,0x00,0x00, -0xb6,0x02,0x00,0x00,0xd4,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, -0xa8,0x00,0x00,0x00,0xb7,0x02,0x00,0x00,0xb6,0x02,0x00,0x00, -0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xb8,0x02,0x00,0x00,0xb7,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0xb9,0x02,0x00,0x00,0xb8,0x02,0x00,0x00, -0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xba,0x02,0x00,0x00, -0xb9,0x02,0x00,0x00,0xe5,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, -0x8a,0x00,0x00,0x00,0xbb,0x02,0x00,0x00,0xba,0x02,0x00,0x00, -0x0c,0x00,0x08,0x00,0x8a,0x00,0x00,0x00,0xbd,0x02,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xaf,0x02,0x00,0x00, -0xbb,0x02,0x00,0x00,0xa5,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0xac,0x00,0x00,0x00,0xc6,0x02,0x00,0x00,0xf4,0x01,0x00,0x00, -0x73,0x00,0x04,0x00,0x8a,0x00,0x00,0x00,0xc7,0x02,0x00,0x00, -0xc6,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xa8,0x00,0x00,0x00, -0xce,0x02,0x00,0x00,0xfd,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, -0xa8,0x00,0x00,0x00,0xcf,0x02,0x00,0x00,0xce,0x02,0x00,0x00, -0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xd0,0x02,0x00,0x00,0xcf,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0xd1,0x02,0x00,0x00,0xd0,0x02,0x00,0x00, -0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xd2,0x02,0x00,0x00, -0xd1,0x02,0x00,0x00,0xe5,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, -0x8a,0x00,0x00,0x00,0xd3,0x02,0x00,0x00,0xd2,0x02,0x00,0x00, -0x0c,0x00,0x08,0x00,0x8a,0x00,0x00,0x00,0xd5,0x02,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xc7,0x02,0x00,0x00, -0xd3,0x02,0x00,0x00,0xbd,0x02,0x00,0x00,0x81,0x00,0x05,0x00, -0x8a,0x00,0x00,0x00,0xd7,0x02,0x00,0x00,0x45,0x03,0x00,0x00, -0xd5,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0xd9,0x02,0x00,0x00,0x43,0x03,0x00,0x00,0xec,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0xc6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0xc8,0x00,0x00,0x00,0x85,0x00,0x05,0x00,0x8a,0x00,0x00,0x00, -0xe3,0x02,0x00,0x00,0xc1,0x00,0x00,0x00,0x45,0x03,0x00,0x00, -0x7f,0x00,0x04,0x00,0x8a,0x00,0x00,0x00,0x48,0x03,0x00,0x00, -0xe3,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x8a,0x00,0x00,0x00, -0xe4,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0xba,0x00,0x00,0x00,0x44,0x03,0x00,0x00,0x48,0x03,0x00,0x00, -0x3d,0x00,0x04,0x00,0x8a,0x00,0x00,0x00,0xe6,0x02,0x00,0x00, -0x95,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x8a,0x00,0x00,0x00, -0xe7,0x02,0x00,0x00,0xe6,0x02,0x00,0x00,0xe4,0x02,0x00,0x00, -0x3e,0x00,0x03,0x00,0x95,0x00,0x00,0x00,0xe7,0x02,0x00,0x00, -0xf9,0x00,0x02,0x00,0x9b,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0x9b,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xea,0x02,0x00,0x00,0x40,0x03,0x00,0x00,0x69,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0x98,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0x9a,0x00,0x00,0x00,0xe0,0x00,0x04,0x00,0x69,0x00,0x00,0x00, -0x69,0x00,0x00,0x00,0xeb,0x02,0x00,0x00,0xf9,0x00,0x02,0x00, -0xed,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xed,0x02,0x00,0x00, -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x41,0x03,0x00,0x00, -0x8e,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,0x04,0x03,0x00,0x00, -0xf0,0x02,0x00,0x00,0xac,0x00,0x05,0x00,0x9f,0x00,0x00,0x00, -0xf3,0x02,0x00,0x00,0x41,0x03,0x00,0x00,0x4b,0x00,0x00,0x00, -0xf6,0x00,0x04,0x00,0xef,0x02,0x00,0x00,0xf0,0x02,0x00,0x00, -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xf3,0x02,0x00,0x00, -0xee,0x02,0x00,0x00,0xef,0x02,0x00,0x00,0xf8,0x00,0x02,0x00, -0xee,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0x9f,0x00,0x00,0x00, -0xf6,0x02,0x00,0x00,0x6a,0x00,0x00,0x00,0x41,0x03,0x00,0x00, -0xf7,0x00,0x03,0x00,0xf8,0x02,0x00,0x00,0x00,0x00,0x00,0x00, -0xfa,0x00,0x04,0x00,0xf6,0x02,0x00,0x00,0xf7,0x02,0x00,0x00, -0xf8,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xf7,0x02,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfc,0x02,0x00,0x00, -0x6a,0x00,0x00,0x00,0x41,0x03,0x00,0x00,0x41,0x00,0x05,0x00, -0x94,0x00,0x00,0x00,0xfd,0x02,0x00,0x00,0x8d,0x00,0x00,0x00, -0xfc,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x8a,0x00,0x00,0x00, -0xfe,0x02,0x00,0x00,0xfd,0x02,0x00,0x00,0x41,0x00,0x05,0x00, -0x94,0x00,0x00,0x00,0xff,0x02,0x00,0x00,0x8d,0x00,0x00,0x00, -0x6a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x8a,0x00,0x00,0x00, -0x00,0x03,0x00,0x00,0xff,0x02,0x00,0x00,0x81,0x00,0x05,0x00, -0x8a,0x00,0x00,0x00,0x01,0x03,0x00,0x00,0x00,0x03,0x00,0x00, -0xfe,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0xff,0x02,0x00,0x00, -0x01,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,0xf8,0x02,0x00,0x00, -0xf8,0x00,0x02,0x00,0xf8,0x02,0x00,0x00,0xe0,0x00,0x04,0x00, -0x69,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0xeb,0x02,0x00,0x00, -0xf9,0x00,0x02,0x00,0xf0,0x02,0x00,0x00,0xf8,0x00,0x02,0x00, -0xf0,0x02,0x00,0x00,0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x04,0x03,0x00,0x00,0x41,0x03,0x00,0x00,0xec,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0xed,0x02,0x00,0x00,0xf8,0x00,0x02,0x00, -0xef,0x02,0x00,0x00,0xaa,0x00,0x05,0x00,0x9f,0x00,0x00,0x00, -0x06,0x03,0x00,0x00,0x6a,0x00,0x00,0x00,0x4b,0x00,0x00,0x00, -0xf7,0x00,0x03,0x00,0x08,0x03,0x00,0x00,0x00,0x00,0x00,0x00, -0xfa,0x00,0x04,0x00,0x06,0x03,0x00,0x00,0x07,0x03,0x00,0x00, -0x08,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x07,0x03,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0f,0x03,0x00,0x00, -0x3f,0x03,0x00,0x00,0x4d,0x00,0x00,0x00,0x41,0x00,0x05,0x00, -0x94,0x00,0x00,0x00,0x10,0x03,0x00,0x00,0x8d,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x8a,0x00,0x00,0x00, -0x11,0x03,0x00,0x00,0x10,0x03,0x00,0x00,0x41,0x00,0x06,0x00, -0x12,0x03,0x00,0x00,0x13,0x03,0x00,0x00,0x0c,0x03,0x00,0x00, -0x59,0x00,0x00,0x00,0x0f,0x03,0x00,0x00,0x3e,0x00,0x03,0x00, -0x13,0x03,0x00,0x00,0x11,0x03,0x00,0x00,0xf9,0x00,0x02,0x00, -0x08,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x08,0x03,0x00,0x00, -0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00, +0x13,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x4e,0x00,0x00,0x00, +0x4b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x50,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0x13,0x00,0x00,0x00,0x52,0x00,0x00,0x00,0x4a,0x00,0x00,0x00, +0x51,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x53,0x00,0x00,0x00,0x52,0x00,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x50,0x00,0x00,0x00, +0x53,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x55,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,0x54,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00,0x23,0x03,0x00,0x00, +0x11,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x24,0x03,0x00,0x00,0x23,0x03,0x00,0x00, +0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00,0x26,0x03,0x00,0x00, +0x1a,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x27,0x03,0x00,0x00,0x26,0x03,0x00,0x00, +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x28,0x03,0x00,0x00, +0x24,0x03,0x00,0x00,0x27,0x03,0x00,0x00,0x89,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x2c,0x03,0x00,0x00,0x24,0x03,0x00,0x00, +0x27,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00, +0x2e,0x03,0x00,0x00,0x1a,0x00,0x00,0x00,0x28,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x2f,0x03,0x00,0x00, +0x2e,0x03,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x30,0x03,0x00,0x00,0x28,0x03,0x00,0x00,0x2f,0x03,0x00,0x00, +0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00,0x32,0x03,0x00,0x00, +0x1a,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x33,0x03,0x00,0x00,0x32,0x03,0x00,0x00, +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x34,0x03,0x00,0x00, +0x2c,0x03,0x00,0x00,0x33,0x03,0x00,0x00,0x41,0x00,0x05,0x00, +0x1d,0x00,0x00,0x00,0x36,0x03,0x00,0x00,0x1a,0x00,0x00,0x00, +0x34,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x37,0x03,0x00,0x00,0x36,0x03,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x38,0x03,0x00,0x00,0x30,0x03,0x00,0x00, +0x37,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x3a,0x03,0x00,0x00,0x38,0x03,0x00,0x00,0x34,0x03,0x00,0x00, +0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00,0x3c,0x03,0x00,0x00, +0x1a,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x3d,0x03,0x00,0x00,0x3c,0x03,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3e,0x03,0x00,0x00, +0x3a,0x03,0x00,0x00,0x3d,0x03,0x00,0x00,0x41,0x00,0x05,0x00, +0x1d,0x00,0x00,0x00,0x40,0x03,0x00,0x00,0x1a,0x00,0x00,0x00, +0x40,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x41,0x03,0x00,0x00,0x40,0x03,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x42,0x03,0x00,0x00,0x24,0x03,0x00,0x00, +0x41,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00, +0x44,0x03,0x00,0x00,0x1a,0x00,0x00,0x00,0x45,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x45,0x03,0x00,0x00, +0x44,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x46,0x03,0x00,0x00,0x24,0x03,0x00,0x00,0x45,0x03,0x00,0x00, +0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00,0x62,0x00,0x00,0x00, +0x1a,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x62,0x00,0x00,0x00, +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x65,0x00,0x00,0x00, +0x63,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x3e,0x03,0x00,0x00, +0x64,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x6b,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x65,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6c,0x00,0x00,0x00, +0x68,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0x13,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x6e,0x00,0x00,0x00, +0x4b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x70,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x70,0x00,0x00,0x00, +0x51,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x75,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x51,0x00,0x00,0x00, +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x79,0x00,0x00,0x00, +0x71,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,0x78,0x00,0x00,0x00, +0x79,0x00,0x00,0x00,0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x7e,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x7d,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x81,0x00,0x00,0x00, +0x51,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x85,0x00,0x00,0x00,0x83,0x00,0x00,0x00, +0x79,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x87,0x00,0x00,0x00,0x85,0x00,0x00,0x00,0x81,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8e,0x00,0x00,0x00, +0x8c,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x90,0x00,0x00,0x00,0x8e,0x00,0x00,0x00, +0x81,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x97,0x00,0x00,0x00,0x95,0x00,0x00,0x00,0x75,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x99,0x00,0x00,0x00, +0x97,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0x9b,0x00,0x00,0x00,0x9c,0x00,0x00,0x00,0x94,0x00,0x00,0x00, +0x99,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0x9c,0x00,0x00,0x00, +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x9f,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0x9f,0x00,0x00,0x00,0xf5,0x00,0x07,0x00, +0x06,0x00,0x00,0x00,0x47,0x03,0x00,0x00,0x75,0x00,0x00,0x00, +0x05,0x00,0x00,0x00,0xf1,0x02,0x00,0x00,0xa2,0x00,0x00,0x00, +0xb0,0x00,0x05,0x00,0xa6,0x00,0x00,0x00,0xa7,0x00,0x00,0x00, +0x47,0x03,0x00,0x00,0x65,0x00,0x00,0x00,0xf6,0x00,0x04,0x00, +0xa1,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0xfa,0x00,0x04,0x00,0xa7,0x00,0x00,0x00,0xa0,0x00,0x00,0x00, +0xa1,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xa0,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xaa,0x00,0x00,0x00, +0x47,0x03,0x00,0x00,0x64,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xac,0x00,0x00,0x00,0xaa,0x00,0x00,0x00, +0x90,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xbc,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x47,0x03,0x00,0x00, +0x41,0x00,0x08,0x00,0xbe,0x00,0x00,0x00,0xbf,0x00,0x00,0x00, +0xb9,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xbc,0x00,0x00,0x00, +0xbd,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0xb3,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0xbf,0x00,0x00,0x00, +0x73,0x00,0x04,0x00,0x91,0x00,0x00,0x00,0xc1,0x00,0x00,0x00, +0xc0,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xbe,0x00,0x00,0x00, +0xc6,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0xbc,0x00,0x00,0x00,0xbd,0x00,0x00,0x00,0x12,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0xb3,0x00,0x00,0x00,0xc7,0x00,0x00,0x00, +0xc6,0x00,0x00,0x00,0x73,0x00,0x04,0x00,0x91,0x00,0x00,0x00, +0xc8,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, +0xcd,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xcd,0x00,0x00,0x00, +0xf5,0x00,0x07,0x00,0x91,0x00,0x00,0x00,0x4c,0x03,0x00,0x00, +0x9a,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0xde,0x02,0x00,0x00, +0xce,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x91,0x00,0x00,0x00, +0x4b,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xa0,0x00,0x00,0x00, +0x1d,0x02,0x00,0x00,0xce,0x00,0x00,0x00,0xf5,0x00,0x07,0x00, +0x1b,0x00,0x00,0x00,0x4a,0x03,0x00,0x00,0x61,0x00,0x00,0x00, +0xa0,0x00,0x00,0x00,0xe0,0x02,0x00,0x00,0xce,0x00,0x00,0x00, +0xb1,0x00,0x05,0x00,0xa6,0x00,0x00,0x00,0xd3,0x00,0x00,0x00, +0x4a,0x03,0x00,0x00,0xbd,0x00,0x00,0x00,0xf6,0x00,0x04,0x00, +0xcf,0x00,0x00,0x00,0xce,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xfa,0x00,0x04,0x00,0xd3,0x00,0x00,0x00,0xce,0x00,0x00,0x00, +0xcf,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xce,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xda,0x00,0x00,0x00, +0x42,0x03,0x00,0x00,0xac,0x00,0x00,0x00,0x7c,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xdc,0x00,0x00,0x00,0x4a,0x03,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdd,0x00,0x00,0x00, +0xda,0x00,0x00,0x00,0xdc,0x00,0x00,0x00,0x41,0x00,0x06,0x00, +0xbe,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0xd7,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0xdd,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0xb3,0x00,0x00,0x00,0xe0,0x00,0x00,0x00,0xdf,0x00,0x00,0x00, +0x73,0x00,0x04,0x00,0x91,0x00,0x00,0x00,0xe1,0x00,0x00,0x00, +0xe0,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xe7,0x00,0x00,0x00, +0xe8,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0xbc,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x7d,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0xaf,0x00,0x00,0x00,0xe9,0x00,0x00,0x00, +0xe8,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xea,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0xea,0x00,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xed,0x00,0x00,0x00, +0xeb,0x00,0x00,0x00,0xec,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, +0x91,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0xed,0x00,0x00,0x00, +0x85,0x00,0x05,0x00,0x91,0x00,0x00,0x00,0xef,0x00,0x00,0x00, +0xe1,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,0x87,0x00,0x00,0x00, +0xdc,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xe7,0x00,0x00,0x00, +0xf9,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0xbc,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,0xf7,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0xaf,0x00,0x00,0x00,0xfa,0x00,0x00,0x00, +0xf9,0x00,0x00,0x00,0xc2,0x00,0x05,0x00,0xaf,0x00,0x00,0x00, +0xfb,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xfc,0x00,0x00,0x00, +0xfb,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0xfd,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xfd,0x00,0x00,0x00, +0xfe,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x91,0x00,0x00,0x00, +0x00,0x01,0x00,0x00,0xff,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0xdd,0x00,0x00,0x00, +0x95,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xbe,0x00,0x00,0x00, +0x09,0x01,0x00,0x00,0xd7,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0x08,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xb3,0x00,0x00,0x00, +0x0a,0x01,0x00,0x00,0x09,0x01,0x00,0x00,0x73,0x00,0x04,0x00, +0x91,0x00,0x00,0x00,0x0b,0x01,0x00,0x00,0x0a,0x01,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x10,0x01,0x00,0x00, +0x7d,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x41,0x00,0x08,0x00, +0xe7,0x00,0x00,0x00,0x11,0x01,0x00,0x00,0xb9,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0x10,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xaf,0x00,0x00,0x00, +0x12,0x01,0x00,0x00,0x11,0x01,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x13,0x01,0x00,0x00,0x12,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x14,0x01,0x00,0x00, +0x13,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x15,0x01,0x00,0x00,0x14,0x01,0x00,0x00,0xec,0x00,0x00,0x00, +0x6f,0x00,0x04,0x00,0x91,0x00,0x00,0x00,0x16,0x01,0x00,0x00, +0x15,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x91,0x00,0x00,0x00, +0x17,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,0x16,0x01,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1f,0x01,0x00,0x00, +0xf7,0x00,0x00,0x00,0x95,0x00,0x00,0x00,0x41,0x00,0x08,0x00, +0xe7,0x00,0x00,0x00,0x20,0x01,0x00,0x00,0xb9,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,0xf3,0x00,0x00,0x00, +0x1f,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xaf,0x00,0x00,0x00, +0x21,0x01,0x00,0x00,0x20,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, +0xaf,0x00,0x00,0x00,0x22,0x01,0x00,0x00,0x21,0x01,0x00,0x00, +0x61,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x23,0x01,0x00,0x00,0x22,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x24,0x01,0x00,0x00,0x23,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x25,0x01,0x00,0x00, +0x24,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, +0x91,0x00,0x00,0x00,0x26,0x01,0x00,0x00,0x25,0x01,0x00,0x00, +0x85,0x00,0x05,0x00,0x91,0x00,0x00,0x00,0x27,0x01,0x00,0x00, +0x17,0x01,0x00,0x00,0x26,0x01,0x00,0x00,0x0c,0x00,0x08,0x00, +0x91,0x00,0x00,0x00,0x28,0x01,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0xef,0x00,0x00,0x00,0x00,0x01,0x00,0x00, +0x27,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x2f,0x01,0x00,0x00,0xdd,0x00,0x00,0x00,0x83,0x00,0x00,0x00, +0x41,0x00,0x06,0x00,0xbe,0x00,0x00,0x00,0x30,0x01,0x00,0x00, +0xd7,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x2f,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0xb3,0x00,0x00,0x00,0x31,0x01,0x00,0x00, +0x30,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x91,0x00,0x00,0x00, +0x32,0x01,0x00,0x00,0x31,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x37,0x01,0x00,0x00,0x7d,0x00,0x00,0x00, +0x51,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xe7,0x00,0x00,0x00, +0x38,0x01,0x00,0x00,0xb9,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0xbc,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x37,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0xaf,0x00,0x00,0x00,0x39,0x01,0x00,0x00, +0x38,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x3a,0x01,0x00,0x00,0x39,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x3b,0x01,0x00,0x00,0x3a,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x3c,0x01,0x00,0x00, +0x3b,0x01,0x00,0x00,0xec,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, +0x91,0x00,0x00,0x00,0x3d,0x01,0x00,0x00,0x3c,0x01,0x00,0x00, +0x85,0x00,0x05,0x00,0x91,0x00,0x00,0x00,0x3e,0x01,0x00,0x00, +0x32,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0xaf,0x00,0x00,0x00,0x48,0x01,0x00,0x00,0xf9,0x00,0x00,0x00, +0xc2,0x00,0x05,0x00,0xaf,0x00,0x00,0x00,0x49,0x01,0x00,0x00, +0x48,0x01,0x00,0x00,0xbd,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x4a,0x01,0x00,0x00,0x49,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x4b,0x01,0x00,0x00, +0x4a,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x4c,0x01,0x00,0x00,0x4b,0x01,0x00,0x00,0xfe,0x00,0x00,0x00, +0x6f,0x00,0x04,0x00,0x91,0x00,0x00,0x00,0x4d,0x01,0x00,0x00, +0x4c,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0x91,0x00,0x00,0x00, +0x4f,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0x3e,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,0x28,0x01,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x57,0x01,0x00,0x00, +0xdd,0x00,0x00,0x00,0x56,0x01,0x00,0x00,0x41,0x00,0x06,0x00, +0xbe,0x00,0x00,0x00,0x58,0x01,0x00,0x00,0xd7,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0x57,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0xb3,0x00,0x00,0x00,0x59,0x01,0x00,0x00,0x58,0x01,0x00,0x00, +0x73,0x00,0x04,0x00,0x91,0x00,0x00,0x00,0x5a,0x01,0x00,0x00, +0x59,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x60,0x01,0x00,0x00,0x7d,0x00,0x00,0x00,0x5f,0x01,0x00,0x00, +0x41,0x00,0x08,0x00,0xe7,0x00,0x00,0x00,0x61,0x01,0x00,0x00, +0xb9,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xbc,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0x60,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0xaf,0x00,0x00,0x00,0x62,0x01,0x00,0x00,0x61,0x01,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x63,0x01,0x00,0x00, +0x62,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x64,0x01,0x00,0x00,0x63,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x65,0x01,0x00,0x00,0x64,0x01,0x00,0x00, +0xec,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x91,0x00,0x00,0x00, +0x66,0x01,0x00,0x00,0x65,0x01,0x00,0x00,0x85,0x00,0x05,0x00, +0x91,0x00,0x00,0x00,0x67,0x01,0x00,0x00,0x5a,0x01,0x00,0x00, +0x66,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xaf,0x00,0x00,0x00, +0x71,0x01,0x00,0x00,0x20,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, +0xaf,0x00,0x00,0x00,0x72,0x01,0x00,0x00,0x71,0x01,0x00,0x00, +0xbd,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x73,0x01,0x00,0x00,0x72,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x74,0x01,0x00,0x00,0x73,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x75,0x01,0x00,0x00, +0x74,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, +0x91,0x00,0x00,0x00,0x76,0x01,0x00,0x00,0x75,0x01,0x00,0x00, +0x0c,0x00,0x08,0x00,0x91,0x00,0x00,0x00,0x78,0x01,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x67,0x01,0x00,0x00, +0x76,0x01,0x00,0x00,0x4f,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x7f,0x01,0x00,0x00,0xdd,0x00,0x00,0x00, +0xb1,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xbe,0x00,0x00,0x00, +0x80,0x01,0x00,0x00,0xd7,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0x7f,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xb3,0x00,0x00,0x00, +0x81,0x01,0x00,0x00,0x80,0x01,0x00,0x00,0x73,0x00,0x04,0x00, +0x91,0x00,0x00,0x00,0x82,0x01,0x00,0x00,0x81,0x01,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x88,0x01,0x00,0x00, +0x7d,0x00,0x00,0x00,0x87,0x01,0x00,0x00,0x41,0x00,0x08,0x00, +0xe7,0x00,0x00,0x00,0x89,0x01,0x00,0x00,0xb9,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0x88,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xaf,0x00,0x00,0x00, +0x8a,0x01,0x00,0x00,0x89,0x01,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x8b,0x01,0x00,0x00,0x8a,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x8c,0x01,0x00,0x00, +0x8b,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x8d,0x01,0x00,0x00,0x8c,0x01,0x00,0x00,0xec,0x00,0x00,0x00, +0x6f,0x00,0x04,0x00,0x91,0x00,0x00,0x00,0x8e,0x01,0x00,0x00, +0x8d,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x91,0x00,0x00,0x00, +0x8f,0x01,0x00,0x00,0x82,0x01,0x00,0x00,0x8e,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0xaf,0x00,0x00,0x00,0x99,0x01,0x00,0x00, +0xf9,0x00,0x00,0x00,0xc2,0x00,0x05,0x00,0xaf,0x00,0x00,0x00, +0x9a,0x01,0x00,0x00,0x99,0x01,0x00,0x00,0x3b,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x9b,0x01,0x00,0x00, +0x9a,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x9c,0x01,0x00,0x00,0x9b,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x9d,0x01,0x00,0x00,0x9c,0x01,0x00,0x00, +0xfe,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x91,0x00,0x00,0x00, +0x9e,0x01,0x00,0x00,0x9d,0x01,0x00,0x00,0x0c,0x00,0x08,0x00, +0x91,0x00,0x00,0x00,0xa0,0x01,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x8f,0x01,0x00,0x00,0x9e,0x01,0x00,0x00, +0x78,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xa8,0x01,0x00,0x00,0xdd,0x00,0x00,0x00,0xa7,0x01,0x00,0x00, +0x41,0x00,0x06,0x00,0xbe,0x00,0x00,0x00,0xa9,0x01,0x00,0x00, +0xd7,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xa8,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0xb3,0x00,0x00,0x00,0xaa,0x01,0x00,0x00, +0xa9,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x91,0x00,0x00,0x00, +0xab,0x01,0x00,0x00,0xaa,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xb1,0x01,0x00,0x00,0x7d,0x00,0x00,0x00, +0xb0,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0xe7,0x00,0x00,0x00, +0xb2,0x01,0x00,0x00,0xb9,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0xbc,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xb1,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0xaf,0x00,0x00,0x00,0xb3,0x01,0x00,0x00, +0xb2,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xb4,0x01,0x00,0x00,0xb3,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0xb5,0x01,0x00,0x00,0xb4,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xb6,0x01,0x00,0x00, +0xb5,0x01,0x00,0x00,0xec,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, +0x91,0x00,0x00,0x00,0xb7,0x01,0x00,0x00,0xb6,0x01,0x00,0x00, +0x85,0x00,0x05,0x00,0x91,0x00,0x00,0x00,0xb8,0x01,0x00,0x00, +0xab,0x01,0x00,0x00,0xb7,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0xaf,0x00,0x00,0x00,0xc2,0x01,0x00,0x00,0x20,0x01,0x00,0x00, +0xc2,0x00,0x05,0x00,0xaf,0x00,0x00,0x00,0xc3,0x01,0x00,0x00, +0xc2,0x01,0x00,0x00,0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xc4,0x01,0x00,0x00,0xc3,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xc5,0x01,0x00,0x00, +0xc4,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0xc6,0x01,0x00,0x00,0xc5,0x01,0x00,0x00,0xfe,0x00,0x00,0x00, +0x6f,0x00,0x04,0x00,0x91,0x00,0x00,0x00,0xc7,0x01,0x00,0x00, +0xc6,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0x91,0x00,0x00,0x00, +0xc9,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0xb8,0x01,0x00,0x00,0xc7,0x01,0x00,0x00,0xa0,0x01,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd1,0x01,0x00,0x00, +0xdd,0x00,0x00,0x00,0xd0,0x01,0x00,0x00,0x41,0x00,0x06,0x00, +0xbe,0x00,0x00,0x00,0xd2,0x01,0x00,0x00,0xd7,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0xd1,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0xb3,0x00,0x00,0x00,0xd3,0x01,0x00,0x00,0xd2,0x01,0x00,0x00, +0x73,0x00,0x04,0x00,0x91,0x00,0x00,0x00,0xd4,0x01,0x00,0x00, +0xd3,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xda,0x01,0x00,0x00,0x7d,0x00,0x00,0x00,0xd9,0x01,0x00,0x00, +0x41,0x00,0x08,0x00,0xe7,0x00,0x00,0x00,0xdb,0x01,0x00,0x00, +0xb9,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xbc,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0xda,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0xaf,0x00,0x00,0x00,0xdc,0x01,0x00,0x00,0xdb,0x01,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xdd,0x01,0x00,0x00, +0xdc,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0xde,0x01,0x00,0x00,0xdd,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0xdf,0x01,0x00,0x00,0xde,0x01,0x00,0x00, +0xec,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x91,0x00,0x00,0x00, +0xe0,0x01,0x00,0x00,0xdf,0x01,0x00,0x00,0x85,0x00,0x05,0x00, +0x91,0x00,0x00,0x00,0xe1,0x01,0x00,0x00,0xd4,0x01,0x00,0x00, +0xe0,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xaf,0x00,0x00,0x00, +0xeb,0x01,0x00,0x00,0xf9,0x00,0x00,0x00,0xc2,0x00,0x05,0x00, +0xaf,0x00,0x00,0x00,0xec,0x01,0x00,0x00,0xeb,0x01,0x00,0x00, +0x45,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xed,0x01,0x00,0x00,0xec,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0xee,0x01,0x00,0x00,0xed,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xef,0x01,0x00,0x00, +0xee,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, +0x91,0x00,0x00,0x00,0xf0,0x01,0x00,0x00,0xef,0x01,0x00,0x00, +0x0c,0x00,0x08,0x00,0x91,0x00,0x00,0x00,0xf2,0x01,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xe1,0x01,0x00,0x00, +0xf0,0x01,0x00,0x00,0xc9,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xfa,0x01,0x00,0x00,0xdd,0x00,0x00,0x00, +0xf9,0x01,0x00,0x00,0x41,0x00,0x06,0x00,0xbe,0x00,0x00,0x00, +0xfb,0x01,0x00,0x00,0xd7,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0xfa,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xb3,0x00,0x00,0x00, +0xfc,0x01,0x00,0x00,0xfb,0x01,0x00,0x00,0x73,0x00,0x04,0x00, +0x91,0x00,0x00,0x00,0xfd,0x01,0x00,0x00,0xfc,0x01,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x03,0x02,0x00,0x00, +0x7d,0x00,0x00,0x00,0x02,0x02,0x00,0x00,0x41,0x00,0x08,0x00, +0xe7,0x00,0x00,0x00,0x04,0x02,0x00,0x00,0xb9,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0x03,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xaf,0x00,0x00,0x00, +0x05,0x02,0x00,0x00,0x04,0x02,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x06,0x02,0x00,0x00,0x05,0x02,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x07,0x02,0x00,0x00, +0x06,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x08,0x02,0x00,0x00,0x07,0x02,0x00,0x00,0xec,0x00,0x00,0x00, +0x6f,0x00,0x04,0x00,0x91,0x00,0x00,0x00,0x09,0x02,0x00,0x00, +0x08,0x02,0x00,0x00,0x85,0x00,0x05,0x00,0x91,0x00,0x00,0x00, +0x0a,0x02,0x00,0x00,0xfd,0x01,0x00,0x00,0x09,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0xaf,0x00,0x00,0x00,0x14,0x02,0x00,0x00, +0x20,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0xaf,0x00,0x00,0x00, +0x15,0x02,0x00,0x00,0x14,0x02,0x00,0x00,0x45,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x16,0x02,0x00,0x00, +0x15,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x17,0x02,0x00,0x00,0x16,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x18,0x02,0x00,0x00,0x17,0x02,0x00,0x00, +0xfe,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x91,0x00,0x00,0x00, +0x19,0x02,0x00,0x00,0x18,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, +0x91,0x00,0x00,0x00,0x1b,0x02,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x0a,0x02,0x00,0x00,0x19,0x02,0x00,0x00, +0xf2,0x01,0x00,0x00,0x81,0x00,0x05,0x00,0x91,0x00,0x00,0x00, +0x1d,0x02,0x00,0x00,0x4b,0x03,0x00,0x00,0x1b,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0xb3,0x00,0x00,0x00,0x26,0x02,0x00,0x00, +0xdf,0x00,0x00,0x00,0x73,0x00,0x04,0x00,0x91,0x00,0x00,0x00, +0x27,0x02,0x00,0x00,0x26,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0xaf,0x00,0x00,0x00,0x2e,0x02,0x00,0x00,0xe8,0x00,0x00,0x00, +0xc2,0x00,0x05,0x00,0xaf,0x00,0x00,0x00,0x2f,0x02,0x00,0x00, +0x2e,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x30,0x02,0x00,0x00,0x2f,0x02,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x31,0x02,0x00,0x00, +0x30,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x32,0x02,0x00,0x00,0x31,0x02,0x00,0x00,0xec,0x00,0x00,0x00, +0x6f,0x00,0x04,0x00,0x91,0x00,0x00,0x00,0x33,0x02,0x00,0x00, +0x32,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xb3,0x00,0x00,0x00, +0x3d,0x02,0x00,0x00,0x09,0x01,0x00,0x00,0x73,0x00,0x04,0x00, +0x91,0x00,0x00,0x00,0x3e,0x02,0x00,0x00,0x3d,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0xaf,0x00,0x00,0x00,0x45,0x02,0x00,0x00, +0x11,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0xaf,0x00,0x00,0x00, +0x46,0x02,0x00,0x00,0x45,0x02,0x00,0x00,0x3b,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x47,0x02,0x00,0x00, +0x46,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x48,0x02,0x00,0x00,0x47,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x49,0x02,0x00,0x00,0x48,0x02,0x00,0x00, +0xec,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x91,0x00,0x00,0x00, +0x4a,0x02,0x00,0x00,0x49,0x02,0x00,0x00,0x85,0x00,0x05,0x00, +0x91,0x00,0x00,0x00,0x4b,0x02,0x00,0x00,0x3e,0x02,0x00,0x00, +0x4a,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x91,0x00,0x00,0x00, +0x4c,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0x27,0x02,0x00,0x00,0x33,0x02,0x00,0x00,0x4b,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0xb3,0x00,0x00,0x00,0x55,0x02,0x00,0x00, +0x30,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x91,0x00,0x00,0x00, +0x56,0x02,0x00,0x00,0x55,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0xaf,0x00,0x00,0x00,0x5d,0x02,0x00,0x00,0x38,0x01,0x00,0x00, +0xc2,0x00,0x05,0x00,0xaf,0x00,0x00,0x00,0x5e,0x02,0x00,0x00, +0x5d,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x5f,0x02,0x00,0x00,0x5e,0x02,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x60,0x02,0x00,0x00, +0x5f,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x61,0x02,0x00,0x00,0x60,0x02,0x00,0x00,0xec,0x00,0x00,0x00, +0x6f,0x00,0x04,0x00,0x91,0x00,0x00,0x00,0x62,0x02,0x00,0x00, +0x61,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x91,0x00,0x00,0x00, +0x64,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0x56,0x02,0x00,0x00,0x62,0x02,0x00,0x00,0x4c,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0xb3,0x00,0x00,0x00,0x6d,0x02,0x00,0x00, +0x58,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x91,0x00,0x00,0x00, +0x6e,0x02,0x00,0x00,0x6d,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0xaf,0x00,0x00,0x00,0x75,0x02,0x00,0x00,0x61,0x01,0x00,0x00, +0xc2,0x00,0x05,0x00,0xaf,0x00,0x00,0x00,0x76,0x02,0x00,0x00, +0x75,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x77,0x02,0x00,0x00,0x76,0x02,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x78,0x02,0x00,0x00, +0x77,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x79,0x02,0x00,0x00,0x78,0x02,0x00,0x00,0xec,0x00,0x00,0x00, +0x6f,0x00,0x04,0x00,0x91,0x00,0x00,0x00,0x7a,0x02,0x00,0x00, +0x79,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x91,0x00,0x00,0x00, +0x7c,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0x6e,0x02,0x00,0x00,0x7a,0x02,0x00,0x00,0x64,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0xb3,0x00,0x00,0x00,0x85,0x02,0x00,0x00, +0x80,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x91,0x00,0x00,0x00, +0x86,0x02,0x00,0x00,0x85,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0xaf,0x00,0x00,0x00,0x8d,0x02,0x00,0x00,0x89,0x01,0x00,0x00, +0xc2,0x00,0x05,0x00,0xaf,0x00,0x00,0x00,0x8e,0x02,0x00,0x00, +0x8d,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x8f,0x02,0x00,0x00,0x8e,0x02,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x90,0x02,0x00,0x00, +0x8f,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x91,0x02,0x00,0x00,0x90,0x02,0x00,0x00,0xec,0x00,0x00,0x00, +0x6f,0x00,0x04,0x00,0x91,0x00,0x00,0x00,0x92,0x02,0x00,0x00, +0x91,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x91,0x00,0x00,0x00, +0x94,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0x86,0x02,0x00,0x00,0x92,0x02,0x00,0x00,0x7c,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0xb3,0x00,0x00,0x00,0x9d,0x02,0x00,0x00, +0xa9,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x91,0x00,0x00,0x00, +0x9e,0x02,0x00,0x00,0x9d,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0xaf,0x00,0x00,0x00,0xa5,0x02,0x00,0x00,0xb2,0x01,0x00,0x00, +0xc2,0x00,0x05,0x00,0xaf,0x00,0x00,0x00,0xa6,0x02,0x00,0x00, +0xa5,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xa7,0x02,0x00,0x00,0xa6,0x02,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xa8,0x02,0x00,0x00, +0xa7,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0xa9,0x02,0x00,0x00,0xa8,0x02,0x00,0x00,0xec,0x00,0x00,0x00, +0x6f,0x00,0x04,0x00,0x91,0x00,0x00,0x00,0xaa,0x02,0x00,0x00, +0xa9,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x91,0x00,0x00,0x00, +0xac,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0x9e,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,0x94,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0xb3,0x00,0x00,0x00,0xb5,0x02,0x00,0x00, +0xd2,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x91,0x00,0x00,0x00, +0xb6,0x02,0x00,0x00,0xb5,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0xaf,0x00,0x00,0x00,0xbd,0x02,0x00,0x00,0xdb,0x01,0x00,0x00, +0xc2,0x00,0x05,0x00,0xaf,0x00,0x00,0x00,0xbe,0x02,0x00,0x00, +0xbd,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xbf,0x02,0x00,0x00,0xbe,0x02,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xc0,0x02,0x00,0x00, +0xbf,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0xc1,0x02,0x00,0x00,0xc0,0x02,0x00,0x00,0xec,0x00,0x00,0x00, +0x6f,0x00,0x04,0x00,0x91,0x00,0x00,0x00,0xc2,0x02,0x00,0x00, +0xc1,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x91,0x00,0x00,0x00, +0xc4,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0xb6,0x02,0x00,0x00,0xc2,0x02,0x00,0x00,0xac,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0xb3,0x00,0x00,0x00,0xcd,0x02,0x00,0x00, +0xfb,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x91,0x00,0x00,0x00, +0xce,0x02,0x00,0x00,0xcd,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0xaf,0x00,0x00,0x00,0xd5,0x02,0x00,0x00,0x04,0x02,0x00,0x00, +0xc2,0x00,0x05,0x00,0xaf,0x00,0x00,0x00,0xd6,0x02,0x00,0x00, +0xd5,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xd7,0x02,0x00,0x00,0xd6,0x02,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xd8,0x02,0x00,0x00, +0xd7,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0xd9,0x02,0x00,0x00,0xd8,0x02,0x00,0x00,0xec,0x00,0x00,0x00, +0x6f,0x00,0x04,0x00,0x91,0x00,0x00,0x00,0xda,0x02,0x00,0x00, +0xd9,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x91,0x00,0x00,0x00, +0xdc,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0xce,0x02,0x00,0x00,0xda,0x02,0x00,0x00,0xc4,0x02,0x00,0x00, +0x81,0x00,0x05,0x00,0x91,0x00,0x00,0x00,0xde,0x02,0x00,0x00, +0x4c,0x03,0x00,0x00,0xdc,0x02,0x00,0x00,0x80,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0xe0,0x02,0x00,0x00,0x4a,0x03,0x00,0x00, +0xf3,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xcd,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0xcf,0x00,0x00,0x00,0x85,0x00,0x05,0x00, +0x91,0x00,0x00,0x00,0xea,0x02,0x00,0x00,0xc8,0x00,0x00,0x00, +0x4c,0x03,0x00,0x00,0x7f,0x00,0x04,0x00,0x91,0x00,0x00,0x00, +0x4f,0x03,0x00,0x00,0xea,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, +0x91,0x00,0x00,0x00,0xeb,0x02,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0xc1,0x00,0x00,0x00,0x4b,0x03,0x00,0x00, +0x4f,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x91,0x00,0x00,0x00, +0xed,0x02,0x00,0x00,0x9c,0x00,0x00,0x00,0x81,0x00,0x05,0x00, +0x91,0x00,0x00,0x00,0xee,0x02,0x00,0x00,0xed,0x02,0x00,0x00, +0xeb,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0x9c,0x00,0x00,0x00, +0xee,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xa2,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0xa2,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xf1,0x02,0x00,0x00,0x47,0x03,0x00,0x00, +0x51,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x9f,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0xa1,0x00,0x00,0x00,0xe0,0x00,0x04,0x00, +0x51,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0xf2,0x02,0x00,0x00, +0xf9,0x00,0x02,0x00,0xf4,0x02,0x00,0x00,0xf8,0x00,0x02,0x00, +0xf4,0x02,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00, +0x48,0x03,0x00,0x00,0x95,0x00,0x00,0x00,0xa1,0x00,0x00,0x00, +0x0b,0x03,0x00,0x00,0xf7,0x02,0x00,0x00,0xac,0x00,0x05,0x00, +0xa6,0x00,0x00,0x00,0xfa,0x02,0x00,0x00,0x48,0x03,0x00,0x00, +0x4b,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xf6,0x02,0x00,0x00, +0xf7,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, +0xfa,0x02,0x00,0x00,0xf5,0x02,0x00,0x00,0xf6,0x02,0x00,0x00, +0xf8,0x00,0x02,0x00,0xf5,0x02,0x00,0x00,0xb0,0x00,0x05,0x00, +0xa6,0x00,0x00,0x00,0xfd,0x02,0x00,0x00,0x71,0x00,0x00,0x00, +0x48,0x03,0x00,0x00,0xf7,0x00,0x03,0x00,0xff,0x02,0x00,0x00, +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xfd,0x02,0x00,0x00, +0xfe,0x02,0x00,0x00,0xff,0x02,0x00,0x00,0xf8,0x00,0x02,0x00, +0xfe,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x03,0x03,0x00,0x00,0x71,0x00,0x00,0x00,0x48,0x03,0x00,0x00, +0x41,0x00,0x05,0x00,0x9b,0x00,0x00,0x00,0x04,0x03,0x00,0x00, +0x94,0x00,0x00,0x00,0x03,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, +0x91,0x00,0x00,0x00,0x05,0x03,0x00,0x00,0x04,0x03,0x00,0x00, +0x41,0x00,0x05,0x00,0x9b,0x00,0x00,0x00,0x06,0x03,0x00,0x00, +0x94,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x91,0x00,0x00,0x00,0x07,0x03,0x00,0x00,0x06,0x03,0x00,0x00, +0x81,0x00,0x05,0x00,0x91,0x00,0x00,0x00,0x08,0x03,0x00,0x00, +0x07,0x03,0x00,0x00,0x05,0x03,0x00,0x00,0x3e,0x00,0x03,0x00, +0x06,0x03,0x00,0x00,0x08,0x03,0x00,0x00,0xf9,0x00,0x02,0x00, +0xff,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xff,0x02,0x00,0x00, +0xe0,0x00,0x04,0x00,0x51,0x00,0x00,0x00,0x51,0x00,0x00,0x00, +0xf2,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xf7,0x02,0x00,0x00, +0xf8,0x00,0x02,0x00,0xf7,0x02,0x00,0x00,0xc2,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x0b,0x03,0x00,0x00,0x48,0x03,0x00,0x00, +0xf3,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xf4,0x02,0x00,0x00, +0xf8,0x00,0x02,0x00,0xf6,0x02,0x00,0x00,0xaa,0x00,0x05,0x00, +0xa6,0x00,0x00,0x00,0x0d,0x03,0x00,0x00,0x71,0x00,0x00,0x00, +0x4b,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0x0f,0x03,0x00,0x00, +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x0d,0x03,0x00,0x00, +0x0e,0x03,0x00,0x00,0x0f,0x03,0x00,0x00,0xf8,0x00,0x02,0x00, +0x0e,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x16,0x03,0x00,0x00,0x46,0x03,0x00,0x00,0x55,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x9b,0x00,0x00,0x00,0x17,0x03,0x00,0x00, +0x94,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x91,0x00,0x00,0x00,0x18,0x03,0x00,0x00,0x17,0x03,0x00,0x00, +0x41,0x00,0x06,0x00,0x19,0x03,0x00,0x00,0x1a,0x03,0x00,0x00, +0x13,0x03,0x00,0x00,0x61,0x00,0x00,0x00,0x16,0x03,0x00,0x00, +0x3e,0x00,0x03,0x00,0x1a,0x03,0x00,0x00,0x18,0x03,0x00,0x00, +0xf9,0x00,0x02,0x00,0x0f,0x03,0x00,0x00,0xf8,0x00,0x02,0x00, +0x0f,0x03,0x00,0x00,0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00, + }; -const uint64_t mul_mat_vec_q2_k_f16_f32_len = 8612; +const uint64_t mul_mat_vec_q2_k_f16_f32_len = 8760; unsigned char mul_mat_vec_q2_k_f32_f32_data[] = { 0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00, -0x39,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, +0x40,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, 0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x27,0x00,0x00,0x00, 0x11,0x00,0x02,0x00,0x51,0x11,0x00,0x00,0x11,0x00,0x02,0x00, 0x60,0x11,0x00,0x00,0x0b,0x00,0x06,0x00,0x01,0x00,0x00,0x00, 0x47,0x4c,0x53,0x4c,0x2e,0x73,0x74,0x64,0x2e,0x34,0x35,0x30, 0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00,0x00,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x0f,0x00,0x0d,0x00,0x05,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x0f,0x00,0x0e,0x00,0x05,0x00,0x00,0x00, 0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e,0x00,0x00,0x00,0x00, 0x11,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x4a,0x00,0x00,0x00, -0x66,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,0xb2,0x00,0x00,0x00, -0xd0,0x00,0x00,0x00,0xfd,0x02,0x00,0x00,0x10,0x00,0x06,0x00, -0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x11,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x18,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x03,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00, -0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x18,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x18,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x28,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x18,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x4a,0x00,0x00,0x00, -0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x66,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xa9,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xab,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0xae,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xae,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0xae,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xaf,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x54,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0xb0,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xb0,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0xb0,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xb2,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xb2,0x00,0x00,0x00, -0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xcd,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0xce,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xce,0x00,0x00,0x00, +0x4e,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x94,0x00,0x00,0x00, +0xb9,0x00,0x00,0x00,0xd7,0x00,0x00,0x00,0x04,0x03,0x00,0x00, +0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x11,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0xce,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xd0,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xd0,0x00,0x00,0x00, -0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xfa,0x02,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0xfb,0x02,0x00,0x00,0x00,0x00,0x00,0x00, -0x19,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xfb,0x02,0x00,0x00, +0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x18,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00, +0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x18,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x07,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x18,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00, +0x09,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x0a,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0x18,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x4a,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x4e,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x6e,0x00,0x00,0x00, +0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xb0,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xb2,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xb5,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0xfb,0x02,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xfd,0x02,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xfd,0x02,0x00,0x00, -0x21,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x04,0x03,0x00,0x00,0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00, -0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00, -0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x17,0x00,0x04,0x00,0x0f,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x10,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x10,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x12,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x13,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x1e,0x00,0x0d,0x00, -0x18,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0xb5,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0xb5,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x50,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xb6,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x48,0x00,0x04,0x00, +0xb7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0xb7,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0xb7,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xb9,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xb9,0x00,0x00,0x00,0x21,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xd4,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00, +0xd5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0xd5,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0xd5,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xd7,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xd7,0x00,0x00,0x00,0x21,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x01,0x03,0x00,0x00, +0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00, +0x02,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x02,0x03,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0x02,0x03,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x04,0x03,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x04,0x03,0x00,0x00,0x21,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x0b,0x03,0x00,0x00, +0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x13,0x00,0x02,0x00, +0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x17,0x00,0x04,0x00, +0x0f,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x10,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x0f,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00, +0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x13,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x1e,0x00,0x0d,0x00,0x18,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x19,0x00,0x00,0x00, -0x1a,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x15,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x1d,0x00,0x00,0x00, -0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x0a,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x2e,0x00,0x00,0x00, -0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x34,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x40,0x00,0x00,0x00, -0x05,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x45,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x10,0x00,0x00,0x00,0x4a,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4b,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,0x00,0x01,0x00,0x00, -0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00,0x66,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x19,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, +0x09,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x1d,0x00,0x00,0x00,0x09,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x28,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,0x09,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x00,0x00, +0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x3b,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x05,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x45,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00, +0x4a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00,0x4e,0x00,0x00,0x00, 0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x69,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x7c,0x00,0x00,0x00, +0x51,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x64,0x00,0x00,0x00, +0x00,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00, +0x6e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x83,0x00,0x00,0x00, 0x20,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x85,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x16,0x00,0x03,0x00, -0x8a,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, -0x8b,0x00,0x00,0x00,0x8a,0x00,0x00,0x00,0x7c,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x8c,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x8b,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x8c,0x00,0x00,0x00, -0x8d,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,0x10,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x8a,0x00,0x00,0x00,0x93,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x94,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x8a,0x00,0x00,0x00,0x14,0x00,0x02,0x00, -0x9f,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0xa8,0x00,0x00,0x00, +0x8c,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x16,0x00,0x03,0x00, +0x91,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, +0x92,0x00,0x00,0x00,0x91,0x00,0x00,0x00,0x83,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x93,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x92,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x93,0x00,0x00,0x00, +0x94,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x95,0x00,0x00,0x00,0x10,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x91,0x00,0x00,0x00,0x9a,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x9b,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x91,0x00,0x00,0x00,0x14,0x00,0x02,0x00, +0xa6,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0xaf,0x00,0x00,0x00, 0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, -0xa9,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,0x8e,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xaa,0x00,0x00,0x00, -0x40,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0xab,0x00,0x00,0x00, -0xa8,0x00,0x00,0x00,0xaa,0x00,0x00,0x00,0x16,0x00,0x03,0x00, -0xac,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x17,0x00,0x04,0x00, -0xad,0x00,0x00,0x00,0xac,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x1e,0x00,0x05,0x00,0xae,0x00,0x00,0x00,0xa9,0x00,0x00,0x00, -0xab,0x00,0x00,0x00,0xad,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, -0xaf,0x00,0x00,0x00,0xae,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, -0xb0,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0xb1,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xb0,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0xb1,0x00,0x00,0x00,0xb2,0x00,0x00,0x00, +0xb0,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0x95,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xb1,0x00,0x00,0x00, +0x40,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0xb2,0x00,0x00,0x00, +0xaf,0x00,0x00,0x00,0xb1,0x00,0x00,0x00,0x16,0x00,0x03,0x00, +0xb3,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x17,0x00,0x04,0x00, +0xb4,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x1e,0x00,0x05,0x00,0xb5,0x00,0x00,0x00,0xb0,0x00,0x00,0x00, +0xb2,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, +0xb6,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, +0xb7,0x00,0x00,0x00,0xb6,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0xb8,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xb7,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0xb8,0x00,0x00,0x00,0xb9,0x00,0x00,0x00, 0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0xb6,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0xb7,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xac,0x00,0x00,0x00, -0x1d,0x00,0x03,0x00,0xcd,0x00,0x00,0x00,0x8a,0x00,0x00,0x00, -0x1e,0x00,0x03,0x00,0xce,0x00,0x00,0x00,0xcd,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0xce,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xcf,0x00,0x00,0x00, -0xd0,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0xd8,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x8a,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0xe0,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0xa8,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0xe5,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0xec,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xf7,0x00,0x00,0x00, +0xbd,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0xbe,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xb3,0x00,0x00,0x00, +0x1d,0x00,0x03,0x00,0xd4,0x00,0x00,0x00,0x91,0x00,0x00,0x00, +0x1e,0x00,0x03,0x00,0xd5,0x00,0x00,0x00,0xd4,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0xd6,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0xd5,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xd6,0x00,0x00,0x00, +0xd7,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0xdf,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x91,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0xe7,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0xaf,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0xec,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xfe,0x00,0x00,0x00, 0x03,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x4d,0x01,0x00,0x00,0x30,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x55,0x01,0x00,0x00,0x03,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x7c,0x01,0x00,0x00, +0x54,0x01,0x00,0x00,0x30,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x5c,0x01,0x00,0x00,0x03,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x83,0x01,0x00,0x00, 0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x9c,0x01,0x00,0x00,0x50,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xa4,0x01,0x00,0x00,0x05,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xc4,0x01,0x00,0x00, +0xa3,0x01,0x00,0x00,0x50,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xab,0x01,0x00,0x00,0x05,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xcb,0x01,0x00,0x00, 0x60,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xcc,0x01,0x00,0x00,0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xec,0x01,0x00,0x00,0x70,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xf4,0x01,0x00,0x00, +0xd3,0x01,0x00,0x00,0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xf3,0x01,0x00,0x00,0x70,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xfb,0x01,0x00,0x00, 0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xdc,0x02,0x00,0x00,0x08,0x01,0x00,0x00,0x1d,0x00,0x03,0x00, -0xfa,0x02,0x00,0x00,0x8a,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, -0xfb,0x02,0x00,0x00,0xfa,0x02,0x00,0x00,0x20,0x00,0x04,0x00, -0xfc,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,0xfb,0x02,0x00,0x00, -0x3b,0x00,0x04,0x00,0xfc,0x02,0x00,0x00,0xfd,0x02,0x00,0x00, +0xe3,0x02,0x00,0x00,0x08,0x01,0x00,0x00,0x1d,0x00,0x03,0x00, +0x01,0x03,0x00,0x00,0x91,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, +0x02,0x03,0x00,0x00,0x01,0x03,0x00,0x00,0x20,0x00,0x04,0x00, +0x03,0x03,0x00,0x00,0x0c,0x00,0x00,0x00,0x02,0x03,0x00,0x00, +0x3b,0x00,0x04,0x00,0x03,0x03,0x00,0x00,0x04,0x03,0x00,0x00, 0x0c,0x00,0x00,0x00,0x2c,0x00,0x06,0x00,0x0f,0x00,0x00,0x00, -0x04,0x03,0x00,0x00,0x7c,0x00,0x00,0x00,0x12,0x00,0x00,0x00, +0x0b,0x03,0x00,0x00,0x83,0x00,0x00,0x00,0x12,0x00,0x00,0x00, 0x12,0x00,0x00,0x00,0x36,0x00,0x05,0x00,0x02,0x00,0x00,0x00, 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00, 0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00,0x41,0x00,0x05,0x00, 0x13,0x00,0x00,0x00,0x4c,0x00,0x00,0x00,0x4a,0x00,0x00,0x00, 0x4b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, 0x4d,0x00,0x00,0x00,0x4c,0x00,0x00,0x00,0x41,0x00,0x05,0x00, -0x13,0x00,0x00,0x00,0x0c,0x03,0x00,0x00,0x11,0x00,0x00,0x00, -0x12,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x0d,0x03,0x00,0x00,0x0c,0x03,0x00,0x00,0x41,0x00,0x05,0x00, -0x1d,0x00,0x00,0x00,0x0f,0x03,0x00,0x00,0x1a,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x10,0x03,0x00,0x00,0x0f,0x03,0x00,0x00,0x86,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x11,0x03,0x00,0x00,0x0d,0x03,0x00,0x00, -0x10,0x03,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x15,0x03,0x00,0x00,0x0d,0x03,0x00,0x00,0x10,0x03,0x00,0x00, -0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00,0x17,0x03,0x00,0x00, -0x1a,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x18,0x03,0x00,0x00,0x17,0x03,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x19,0x03,0x00,0x00, -0x11,0x03,0x00,0x00,0x18,0x03,0x00,0x00,0x41,0x00,0x05,0x00, -0x1d,0x00,0x00,0x00,0x1b,0x03,0x00,0x00,0x1a,0x00,0x00,0x00, -0x2e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x1c,0x03,0x00,0x00,0x1b,0x03,0x00,0x00,0x86,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x1d,0x03,0x00,0x00,0x15,0x03,0x00,0x00, -0x1c,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00, -0x1f,0x03,0x00,0x00,0x1a,0x00,0x00,0x00,0x34,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x20,0x03,0x00,0x00, -0x1f,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x21,0x03,0x00,0x00,0x19,0x03,0x00,0x00,0x20,0x03,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x23,0x03,0x00,0x00, -0x21,0x03,0x00,0x00,0x1d,0x03,0x00,0x00,0x41,0x00,0x05,0x00, -0x1d,0x00,0x00,0x00,0x25,0x03,0x00,0x00,0x1a,0x00,0x00,0x00, -0x3b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x26,0x03,0x00,0x00,0x25,0x03,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x27,0x03,0x00,0x00,0x23,0x03,0x00,0x00, -0x26,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00, -0x29,0x03,0x00,0x00,0x1a,0x00,0x00,0x00,0x40,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x2a,0x03,0x00,0x00, -0x29,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x2b,0x03,0x00,0x00,0x0d,0x03,0x00,0x00,0x2a,0x03,0x00,0x00, -0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00,0x2d,0x03,0x00,0x00, -0x1a,0x00,0x00,0x00,0x45,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x2e,0x03,0x00,0x00,0x2d,0x03,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2f,0x03,0x00,0x00, -0x0d,0x03,0x00,0x00,0x2e,0x03,0x00,0x00,0x41,0x00,0x05,0x00, -0x1d,0x00,0x00,0x00,0x5a,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x5b,0x00,0x00,0x00,0x5a,0x00,0x00,0x00,0x86,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x5d,0x00,0x00,0x00,0x5b,0x00,0x00,0x00, -0x5c,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x60,0x00,0x00,0x00,0x27,0x03,0x00,0x00,0x5c,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x63,0x00,0x00,0x00, -0x4d,0x00,0x00,0x00,0x5d,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0x60,0x00,0x00,0x00, -0x63,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00, -0x67,0x00,0x00,0x00,0x66,0x00,0x00,0x00,0x4b,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x68,0x00,0x00,0x00, -0x67,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x6a,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x69,0x00,0x00,0x00, -0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6e,0x00,0x00,0x00, -0x68,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0x86,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x72,0x00,0x00,0x00,0x6a,0x00,0x00,0x00, -0x71,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x76,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x72,0x00,0x00,0x00, -0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x77,0x00,0x00,0x00, -0x6a,0x00,0x00,0x00,0x76,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x7a,0x00,0x00,0x00,0x69,0x00,0x00,0x00, -0x77,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x7e,0x00,0x00,0x00,0x7c,0x00,0x00,0x00,0x72,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x80,0x00,0x00,0x00, -0x7e,0x00,0x00,0x00,0x7a,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x87,0x00,0x00,0x00,0x85,0x00,0x00,0x00, -0x72,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x89,0x00,0x00,0x00,0x87,0x00,0x00,0x00,0x7a,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x90,0x00,0x00,0x00, -0x8e,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x92,0x00,0x00,0x00,0x90,0x00,0x00,0x00, -0x6a,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x94,0x00,0x00,0x00, -0x95,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,0x92,0x00,0x00,0x00, -0x3e,0x00,0x03,0x00,0x95,0x00,0x00,0x00,0x93,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0x98,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0x98,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00, -0x30,0x03,0x00,0x00,0x6e,0x00,0x00,0x00,0x05,0x00,0x00,0x00, -0xdb,0x02,0x00,0x00,0x9b,0x00,0x00,0x00,0xb0,0x00,0x05,0x00, -0x9f,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0x30,0x03,0x00,0x00, -0x5d,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x9a,0x00,0x00,0x00, -0x9b,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, -0xa0,0x00,0x00,0x00,0x99,0x00,0x00,0x00,0x9a,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0x99,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0x30,0x03,0x00,0x00, -0x5c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xa5,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0x89,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb5,0x00,0x00,0x00, -0x64,0x00,0x00,0x00,0x30,0x03,0x00,0x00,0x41,0x00,0x08,0x00, -0xb7,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0xb2,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,0xb6,0x00,0x00,0x00, -0x4b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xac,0x00,0x00,0x00, -0xb9,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0x73,0x00,0x04,0x00, -0x8a,0x00,0x00,0x00,0xba,0x00,0x00,0x00,0xb9,0x00,0x00,0x00, -0x41,0x00,0x08,0x00,0xb7,0x00,0x00,0x00,0xbf,0x00,0x00,0x00, -0xb2,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xb5,0x00,0x00,0x00, -0xb6,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0xac,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0xbf,0x00,0x00,0x00, -0x73,0x00,0x04,0x00,0x8a,0x00,0x00,0x00,0xc1,0x00,0x00,0x00, -0xc0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xc6,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0xc6,0x00,0x00,0x00,0xf5,0x00,0x07,0x00, -0x8a,0x00,0x00,0x00,0x35,0x03,0x00,0x00,0x93,0x00,0x00,0x00, -0x99,0x00,0x00,0x00,0xc8,0x02,0x00,0x00,0xc7,0x00,0x00,0x00, -0xf5,0x00,0x07,0x00,0x8a,0x00,0x00,0x00,0x34,0x03,0x00,0x00, -0x93,0x00,0x00,0x00,0x99,0x00,0x00,0x00,0x0f,0x02,0x00,0x00, -0xc7,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x1b,0x00,0x00,0x00, -0x33,0x03,0x00,0x00,0x59,0x00,0x00,0x00,0x99,0x00,0x00,0x00, -0xca,0x02,0x00,0x00,0xc7,0x00,0x00,0x00,0xb1,0x00,0x05,0x00, -0x9f,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,0x33,0x03,0x00,0x00, -0xb6,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xc8,0x00,0x00,0x00, -0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, -0xcc,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,0xc8,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0xc7,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,0x2b,0x03,0x00,0x00, -0xa5,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xd5,0x00,0x00,0x00,0x33,0x03,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,0xd3,0x00,0x00,0x00, -0xd5,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xd8,0x00,0x00,0x00, -0xd9,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0xd6,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x8a,0x00,0x00,0x00, -0xda,0x00,0x00,0x00,0xd9,0x00,0x00,0x00,0x41,0x00,0x08,0x00, -0xe0,0x00,0x00,0x00,0xe1,0x00,0x00,0x00,0xb2,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0x76,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xa8,0x00,0x00,0x00, -0xe2,0x00,0x00,0x00,0xe1,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xe3,0x00,0x00,0x00,0xe2,0x00,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xe4,0x00,0x00,0x00, -0xe3,0x00,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0xe6,0x00,0x00,0x00,0xe4,0x00,0x00,0x00,0xe5,0x00,0x00,0x00, -0x6f,0x00,0x04,0x00,0x8a,0x00,0x00,0x00,0xe7,0x00,0x00,0x00, -0xe6,0x00,0x00,0x00,0x85,0x00,0x05,0x00,0x8a,0x00,0x00,0x00, -0xe8,0x00,0x00,0x00,0xda,0x00,0x00,0x00,0xe7,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf0,0x00,0x00,0x00, -0x80,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0x41,0x00,0x08,0x00, -0xe0,0x00,0x00,0x00,0xf2,0x00,0x00,0x00,0xb2,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,0xec,0x00,0x00,0x00, -0xf0,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xa8,0x00,0x00,0x00, -0xf3,0x00,0x00,0x00,0xf2,0x00,0x00,0x00,0xc2,0x00,0x05,0x00, -0xa8,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,0xf3,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xf5,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,0xf5,0x00,0x00,0x00, -0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xf8,0x00,0x00,0x00, -0xf6,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, -0x8a,0x00,0x00,0x00,0xf9,0x00,0x00,0x00,0xf8,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x01,0x01,0x00,0x00, -0xd6,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,0x41,0x00,0x06,0x00, -0xd8,0x00,0x00,0x00,0x02,0x01,0x00,0x00,0xd0,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0x8a,0x00,0x00,0x00,0x03,0x01,0x00,0x00,0x02,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x08,0x01,0x00,0x00, -0x76,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x41,0x00,0x08,0x00, -0xe0,0x00,0x00,0x00,0x09,0x01,0x00,0x00,0xb2,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0x08,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xa8,0x00,0x00,0x00, -0x0a,0x01,0x00,0x00,0x09,0x01,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x0b,0x01,0x00,0x00,0x0a,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x0c,0x01,0x00,0x00, -0x0b,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x0d,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,0xe5,0x00,0x00,0x00, -0x6f,0x00,0x04,0x00,0x8a,0x00,0x00,0x00,0x0e,0x01,0x00,0x00, -0x0d,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x8a,0x00,0x00,0x00, -0x0f,0x01,0x00,0x00,0x03,0x01,0x00,0x00,0x0e,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x17,0x01,0x00,0x00, -0xf0,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,0x41,0x00,0x08,0x00, -0xe0,0x00,0x00,0x00,0x18,0x01,0x00,0x00,0xb2,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,0xec,0x00,0x00,0x00, -0x17,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xa8,0x00,0x00,0x00, -0x19,0x01,0x00,0x00,0x18,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, -0xa8,0x00,0x00,0x00,0x1a,0x01,0x00,0x00,0x19,0x01,0x00,0x00, -0x59,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x1b,0x01,0x00,0x00,0x1a,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,0x1b,0x01,0x00,0x00, -0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x1d,0x01,0x00,0x00, -0x1c,0x01,0x00,0x00,0xf7,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, -0x8a,0x00,0x00,0x00,0x1e,0x01,0x00,0x00,0x1d,0x01,0x00,0x00, -0x85,0x00,0x05,0x00,0x8a,0x00,0x00,0x00,0x1f,0x01,0x00,0x00, -0x0f,0x01,0x00,0x00,0x1e,0x01,0x00,0x00,0x0c,0x00,0x08,0x00, -0x8a,0x00,0x00,0x00,0x20,0x01,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0xf9,0x00,0x00,0x00, -0x1f,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x27,0x01,0x00,0x00,0xd6,0x00,0x00,0x00,0x7c,0x00,0x00,0x00, -0x41,0x00,0x06,0x00,0xd8,0x00,0x00,0x00,0x28,0x01,0x00,0x00, -0xd0,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x27,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0x8a,0x00,0x00,0x00,0x29,0x01,0x00,0x00, -0x28,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x2e,0x01,0x00,0x00,0x76,0x00,0x00,0x00,0x69,0x00,0x00,0x00, -0x41,0x00,0x08,0x00,0xe0,0x00,0x00,0x00,0x2f,0x01,0x00,0x00, -0xb2,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xb5,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0x2e,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0xa8,0x00,0x00,0x00,0x30,0x01,0x00,0x00,0x2f,0x01,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x31,0x01,0x00,0x00, -0x30,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x32,0x01,0x00,0x00,0x31,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x33,0x01,0x00,0x00,0x32,0x01,0x00,0x00, -0xe5,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x8a,0x00,0x00,0x00, -0x34,0x01,0x00,0x00,0x33,0x01,0x00,0x00,0x85,0x00,0x05,0x00, -0x8a,0x00,0x00,0x00,0x35,0x01,0x00,0x00,0x29,0x01,0x00,0x00, -0x34,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xa8,0x00,0x00,0x00, -0x3f,0x01,0x00,0x00,0xf2,0x00,0x00,0x00,0xc2,0x00,0x05,0x00, -0xa8,0x00,0x00,0x00,0x40,0x01,0x00,0x00,0x3f,0x01,0x00,0x00, -0xb6,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x41,0x01,0x00,0x00,0x40,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x42,0x01,0x00,0x00,0x41,0x01,0x00,0x00, -0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x43,0x01,0x00,0x00, -0x42,0x01,0x00,0x00,0xf7,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, -0x8a,0x00,0x00,0x00,0x44,0x01,0x00,0x00,0x43,0x01,0x00,0x00, -0x0c,0x00,0x08,0x00,0x8a,0x00,0x00,0x00,0x46,0x01,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x35,0x01,0x00,0x00, -0x44,0x01,0x00,0x00,0x20,0x01,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x4e,0x01,0x00,0x00,0xd6,0x00,0x00,0x00, -0x4d,0x01,0x00,0x00,0x41,0x00,0x06,0x00,0xd8,0x00,0x00,0x00, -0x4f,0x01,0x00,0x00,0xd0,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0x4e,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x8a,0x00,0x00,0x00, -0x50,0x01,0x00,0x00,0x4f,0x01,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x56,0x01,0x00,0x00,0x76,0x00,0x00,0x00, -0x55,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0xe0,0x00,0x00,0x00, -0x57,0x01,0x00,0x00,0xb2,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0xb5,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x56,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0xa8,0x00,0x00,0x00,0x58,0x01,0x00,0x00, -0x57,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x59,0x01,0x00,0x00,0x58,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x5a,0x01,0x00,0x00,0x59,0x01,0x00,0x00, -0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x5b,0x01,0x00,0x00, -0x5a,0x01,0x00,0x00,0xe5,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, -0x8a,0x00,0x00,0x00,0x5c,0x01,0x00,0x00,0x5b,0x01,0x00,0x00, -0x85,0x00,0x05,0x00,0x8a,0x00,0x00,0x00,0x5d,0x01,0x00,0x00, -0x50,0x01,0x00,0x00,0x5c,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0xa8,0x00,0x00,0x00,0x67,0x01,0x00,0x00,0x18,0x01,0x00,0x00, -0xc2,0x00,0x05,0x00,0xa8,0x00,0x00,0x00,0x68,0x01,0x00,0x00, -0x67,0x01,0x00,0x00,0xb6,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x69,0x01,0x00,0x00,0x68,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x6a,0x01,0x00,0x00, -0x69,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x6b,0x01,0x00,0x00,0x6a,0x01,0x00,0x00,0xf7,0x00,0x00,0x00, -0x6f,0x00,0x04,0x00,0x8a,0x00,0x00,0x00,0x6c,0x01,0x00,0x00, -0x6b,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0x8a,0x00,0x00,0x00, -0x6e,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x5d,0x01,0x00,0x00,0x6c,0x01,0x00,0x00,0x46,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x75,0x01,0x00,0x00, -0xd6,0x00,0x00,0x00,0xaa,0x00,0x00,0x00,0x41,0x00,0x06,0x00, -0xd8,0x00,0x00,0x00,0x76,0x01,0x00,0x00,0xd0,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0x75,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0x8a,0x00,0x00,0x00,0x77,0x01,0x00,0x00,0x76,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7d,0x01,0x00,0x00, -0x76,0x00,0x00,0x00,0x7c,0x01,0x00,0x00,0x41,0x00,0x08,0x00, -0xe0,0x00,0x00,0x00,0x7e,0x01,0x00,0x00,0xb2,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0x7d,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xa8,0x00,0x00,0x00, -0x7f,0x01,0x00,0x00,0x7e,0x01,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x80,0x01,0x00,0x00,0x7f,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x81,0x01,0x00,0x00, -0x80,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x82,0x01,0x00,0x00,0x81,0x01,0x00,0x00,0xe5,0x00,0x00,0x00, -0x6f,0x00,0x04,0x00,0x8a,0x00,0x00,0x00,0x83,0x01,0x00,0x00, -0x82,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x8a,0x00,0x00,0x00, -0x84,0x01,0x00,0x00,0x77,0x01,0x00,0x00,0x83,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0xa8,0x00,0x00,0x00,0x8e,0x01,0x00,0x00, -0xf2,0x00,0x00,0x00,0xc2,0x00,0x05,0x00,0xa8,0x00,0x00,0x00, -0x8f,0x01,0x00,0x00,0x8e,0x01,0x00,0x00,0x3b,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x90,0x01,0x00,0x00, -0x8f,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x91,0x01,0x00,0x00,0x90,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x92,0x01,0x00,0x00,0x91,0x01,0x00,0x00, -0xf7,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x8a,0x00,0x00,0x00, -0x93,0x01,0x00,0x00,0x92,0x01,0x00,0x00,0x0c,0x00,0x08,0x00, -0x8a,0x00,0x00,0x00,0x95,0x01,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0x84,0x01,0x00,0x00,0x93,0x01,0x00,0x00, -0x6e,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x9d,0x01,0x00,0x00,0xd6,0x00,0x00,0x00,0x9c,0x01,0x00,0x00, -0x41,0x00,0x06,0x00,0xd8,0x00,0x00,0x00,0x9e,0x01,0x00,0x00, -0xd0,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x9d,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0x8a,0x00,0x00,0x00,0x9f,0x01,0x00,0x00, -0x9e,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xa5,0x01,0x00,0x00,0x76,0x00,0x00,0x00,0xa4,0x01,0x00,0x00, -0x41,0x00,0x08,0x00,0xe0,0x00,0x00,0x00,0xa6,0x01,0x00,0x00, -0xb2,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xb5,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xa5,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0xa8,0x00,0x00,0x00,0xa7,0x01,0x00,0x00,0xa6,0x01,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa8,0x01,0x00,0x00, -0xa7,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0xa9,0x01,0x00,0x00,0xa8,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0xaa,0x01,0x00,0x00,0xa9,0x01,0x00,0x00, -0xe5,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x8a,0x00,0x00,0x00, -0xab,0x01,0x00,0x00,0xaa,0x01,0x00,0x00,0x85,0x00,0x05,0x00, -0x8a,0x00,0x00,0x00,0xac,0x01,0x00,0x00,0x9f,0x01,0x00,0x00, -0xab,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xa8,0x00,0x00,0x00, -0xb6,0x01,0x00,0x00,0x18,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, -0xa8,0x00,0x00,0x00,0xb7,0x01,0x00,0x00,0xb6,0x01,0x00,0x00, -0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xb8,0x01,0x00,0x00,0xb7,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0xb9,0x01,0x00,0x00,0xb8,0x01,0x00,0x00, -0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xba,0x01,0x00,0x00, -0xb9,0x01,0x00,0x00,0xf7,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, -0x8a,0x00,0x00,0x00,0xbb,0x01,0x00,0x00,0xba,0x01,0x00,0x00, -0x0c,0x00,0x08,0x00,0x8a,0x00,0x00,0x00,0xbd,0x01,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xac,0x01,0x00,0x00, -0xbb,0x01,0x00,0x00,0x95,0x01,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xc5,0x01,0x00,0x00,0xd6,0x00,0x00,0x00, -0xc4,0x01,0x00,0x00,0x41,0x00,0x06,0x00,0xd8,0x00,0x00,0x00, -0xc6,0x01,0x00,0x00,0xd0,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0xc5,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x8a,0x00,0x00,0x00, -0xc7,0x01,0x00,0x00,0xc6,0x01,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xcd,0x01,0x00,0x00,0x76,0x00,0x00,0x00, -0xcc,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0xe0,0x00,0x00,0x00, -0xce,0x01,0x00,0x00,0xb2,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0xb5,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xcd,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0xa8,0x00,0x00,0x00,0xcf,0x01,0x00,0x00, -0xce,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xd0,0x01,0x00,0x00,0xcf,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0xd1,0x01,0x00,0x00,0xd0,0x01,0x00,0x00, -0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xd2,0x01,0x00,0x00, -0xd1,0x01,0x00,0x00,0xe5,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, -0x8a,0x00,0x00,0x00,0xd3,0x01,0x00,0x00,0xd2,0x01,0x00,0x00, -0x85,0x00,0x05,0x00,0x8a,0x00,0x00,0x00,0xd4,0x01,0x00,0x00, -0xc7,0x01,0x00,0x00,0xd3,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0xa8,0x00,0x00,0x00,0xde,0x01,0x00,0x00,0xf2,0x00,0x00,0x00, -0xc2,0x00,0x05,0x00,0xa8,0x00,0x00,0x00,0xdf,0x01,0x00,0x00, -0xde,0x01,0x00,0x00,0x45,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xe0,0x01,0x00,0x00,0xdf,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xe1,0x01,0x00,0x00, -0xe0,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0xe2,0x01,0x00,0x00,0xe1,0x01,0x00,0x00,0xf7,0x00,0x00,0x00, -0x6f,0x00,0x04,0x00,0x8a,0x00,0x00,0x00,0xe3,0x01,0x00,0x00, -0xe2,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0x8a,0x00,0x00,0x00, -0xe5,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0xd4,0x01,0x00,0x00,0xe3,0x01,0x00,0x00,0xbd,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xed,0x01,0x00,0x00, -0xd6,0x00,0x00,0x00,0xec,0x01,0x00,0x00,0x41,0x00,0x06,0x00, -0xd8,0x00,0x00,0x00,0xee,0x01,0x00,0x00,0xd0,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xed,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0x8a,0x00,0x00,0x00,0xef,0x01,0x00,0x00,0xee,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf5,0x01,0x00,0x00, -0x76,0x00,0x00,0x00,0xf4,0x01,0x00,0x00,0x41,0x00,0x08,0x00, -0xe0,0x00,0x00,0x00,0xf6,0x01,0x00,0x00,0xb2,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0xf5,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xa8,0x00,0x00,0x00, -0xf7,0x01,0x00,0x00,0xf6,0x01,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xf8,0x01,0x00,0x00,0xf7,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xf9,0x01,0x00,0x00, -0xf8,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0xfa,0x01,0x00,0x00,0xf9,0x01,0x00,0x00,0xe5,0x00,0x00,0x00, -0x6f,0x00,0x04,0x00,0x8a,0x00,0x00,0x00,0xfb,0x01,0x00,0x00, -0xfa,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x8a,0x00,0x00,0x00, -0xfc,0x01,0x00,0x00,0xef,0x01,0x00,0x00,0xfb,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0xa8,0x00,0x00,0x00,0x06,0x02,0x00,0x00, -0x18,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0xa8,0x00,0x00,0x00, -0x07,0x02,0x00,0x00,0x06,0x02,0x00,0x00,0x45,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x08,0x02,0x00,0x00, -0x07,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x09,0x02,0x00,0x00,0x08,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x0a,0x02,0x00,0x00,0x09,0x02,0x00,0x00, -0xf7,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x8a,0x00,0x00,0x00, -0x0b,0x02,0x00,0x00,0x0a,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, -0x8a,0x00,0x00,0x00,0x0d,0x02,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0xfc,0x01,0x00,0x00,0x0b,0x02,0x00,0x00, -0xe5,0x01,0x00,0x00,0x81,0x00,0x05,0x00,0x8a,0x00,0x00,0x00, -0x0f,0x02,0x00,0x00,0x34,0x03,0x00,0x00,0x0d,0x02,0x00,0x00, -0x3d,0x00,0x04,0x00,0x8a,0x00,0x00,0x00,0x18,0x02,0x00,0x00, -0xd9,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xa8,0x00,0x00,0x00, -0x1f,0x02,0x00,0x00,0xe1,0x00,0x00,0x00,0xc2,0x00,0x05,0x00, -0xa8,0x00,0x00,0x00,0x20,0x02,0x00,0x00,0x1f,0x02,0x00,0x00, -0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x21,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x22,0x02,0x00,0x00,0x21,0x02,0x00,0x00, -0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x23,0x02,0x00,0x00, -0x22,0x02,0x00,0x00,0xe5,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, -0x8a,0x00,0x00,0x00,0x24,0x02,0x00,0x00,0x23,0x02,0x00,0x00, -0x3d,0x00,0x04,0x00,0x8a,0x00,0x00,0x00,0x2e,0x02,0x00,0x00, -0x02,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xa8,0x00,0x00,0x00, -0x35,0x02,0x00,0x00,0x09,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, -0xa8,0x00,0x00,0x00,0x36,0x02,0x00,0x00,0x35,0x02,0x00,0x00, +0x13,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x4e,0x00,0x00,0x00, +0x4b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x50,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0x13,0x00,0x00,0x00,0x52,0x00,0x00,0x00,0x4a,0x00,0x00,0x00, +0x51,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x53,0x00,0x00,0x00,0x52,0x00,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x50,0x00,0x00,0x00, +0x53,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x55,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,0x54,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00,0x13,0x03,0x00,0x00, +0x11,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x14,0x03,0x00,0x00,0x13,0x03,0x00,0x00, +0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00,0x16,0x03,0x00,0x00, +0x1a,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x17,0x03,0x00,0x00,0x16,0x03,0x00,0x00, +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x18,0x03,0x00,0x00, +0x14,0x03,0x00,0x00,0x17,0x03,0x00,0x00,0x89,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x1c,0x03,0x00,0x00,0x14,0x03,0x00,0x00, +0x17,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00, +0x1e,0x03,0x00,0x00,0x1a,0x00,0x00,0x00,0x28,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x1f,0x03,0x00,0x00, +0x1e,0x03,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x20,0x03,0x00,0x00,0x18,0x03,0x00,0x00,0x1f,0x03,0x00,0x00, +0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00,0x22,0x03,0x00,0x00, +0x1a,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x23,0x03,0x00,0x00,0x22,0x03,0x00,0x00, +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x24,0x03,0x00,0x00, +0x1c,0x03,0x00,0x00,0x23,0x03,0x00,0x00,0x41,0x00,0x05,0x00, +0x1d,0x00,0x00,0x00,0x26,0x03,0x00,0x00,0x1a,0x00,0x00,0x00, +0x34,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x27,0x03,0x00,0x00,0x26,0x03,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x28,0x03,0x00,0x00,0x20,0x03,0x00,0x00, +0x27,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x2a,0x03,0x00,0x00,0x28,0x03,0x00,0x00,0x24,0x03,0x00,0x00, +0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00,0x2c,0x03,0x00,0x00, +0x1a,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x2d,0x03,0x00,0x00,0x2c,0x03,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2e,0x03,0x00,0x00, +0x2a,0x03,0x00,0x00,0x2d,0x03,0x00,0x00,0x41,0x00,0x05,0x00, +0x1d,0x00,0x00,0x00,0x30,0x03,0x00,0x00,0x1a,0x00,0x00,0x00, +0x40,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x31,0x03,0x00,0x00,0x30,0x03,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x32,0x03,0x00,0x00,0x14,0x03,0x00,0x00, +0x31,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00, +0x34,0x03,0x00,0x00,0x1a,0x00,0x00,0x00,0x45,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x35,0x03,0x00,0x00, +0x34,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x36,0x03,0x00,0x00,0x14,0x03,0x00,0x00,0x35,0x03,0x00,0x00, +0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00,0x62,0x00,0x00,0x00, +0x1a,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x62,0x00,0x00,0x00, +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x65,0x00,0x00,0x00, +0x63,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x2e,0x03,0x00,0x00, +0x64,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x6b,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x65,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6c,0x00,0x00,0x00, +0x68,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0x13,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x6e,0x00,0x00,0x00, +0x4b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x70,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x70,0x00,0x00,0x00, +0x51,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x75,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x51,0x00,0x00,0x00, +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x79,0x00,0x00,0x00, +0x71,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,0x78,0x00,0x00,0x00, +0x79,0x00,0x00,0x00,0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x7e,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x7d,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x81,0x00,0x00,0x00, +0x51,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x85,0x00,0x00,0x00,0x83,0x00,0x00,0x00, +0x79,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x87,0x00,0x00,0x00,0x85,0x00,0x00,0x00,0x81,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8e,0x00,0x00,0x00, +0x8c,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x90,0x00,0x00,0x00,0x8e,0x00,0x00,0x00, +0x81,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x97,0x00,0x00,0x00,0x95,0x00,0x00,0x00,0x75,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x99,0x00,0x00,0x00, +0x97,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0x9b,0x00,0x00,0x00,0x9c,0x00,0x00,0x00,0x94,0x00,0x00,0x00, +0x99,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0x9c,0x00,0x00,0x00, +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x9f,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0x9f,0x00,0x00,0x00,0xf5,0x00,0x07,0x00, +0x06,0x00,0x00,0x00,0x37,0x03,0x00,0x00,0x75,0x00,0x00,0x00, +0x05,0x00,0x00,0x00,0xe2,0x02,0x00,0x00,0xa2,0x00,0x00,0x00, +0xb0,0x00,0x05,0x00,0xa6,0x00,0x00,0x00,0xa7,0x00,0x00,0x00, +0x37,0x03,0x00,0x00,0x65,0x00,0x00,0x00,0xf6,0x00,0x04,0x00, +0xa1,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0xfa,0x00,0x04,0x00,0xa7,0x00,0x00,0x00,0xa0,0x00,0x00,0x00, +0xa1,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xa0,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xaa,0x00,0x00,0x00, +0x37,0x03,0x00,0x00,0x64,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xac,0x00,0x00,0x00,0xaa,0x00,0x00,0x00, +0x90,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xbc,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x37,0x03,0x00,0x00, +0x41,0x00,0x08,0x00,0xbe,0x00,0x00,0x00,0xbf,0x00,0x00,0x00, +0xb9,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xbc,0x00,0x00,0x00, +0xbd,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0xb3,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0xbf,0x00,0x00,0x00, +0x73,0x00,0x04,0x00,0x91,0x00,0x00,0x00,0xc1,0x00,0x00,0x00, +0xc0,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xbe,0x00,0x00,0x00, +0xc6,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0xbc,0x00,0x00,0x00,0xbd,0x00,0x00,0x00,0x12,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0xb3,0x00,0x00,0x00,0xc7,0x00,0x00,0x00, +0xc6,0x00,0x00,0x00,0x73,0x00,0x04,0x00,0x91,0x00,0x00,0x00, +0xc8,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, +0xcd,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xcd,0x00,0x00,0x00, +0xf5,0x00,0x07,0x00,0x91,0x00,0x00,0x00,0x3c,0x03,0x00,0x00, +0x9a,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0xcf,0x02,0x00,0x00, +0xce,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x91,0x00,0x00,0x00, +0x3b,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xa0,0x00,0x00,0x00, +0x16,0x02,0x00,0x00,0xce,0x00,0x00,0x00,0xf5,0x00,0x07,0x00, +0x1b,0x00,0x00,0x00,0x3a,0x03,0x00,0x00,0x61,0x00,0x00,0x00, +0xa0,0x00,0x00,0x00,0xd1,0x02,0x00,0x00,0xce,0x00,0x00,0x00, +0xb1,0x00,0x05,0x00,0xa6,0x00,0x00,0x00,0xd3,0x00,0x00,0x00, +0x3a,0x03,0x00,0x00,0xbd,0x00,0x00,0x00,0xf6,0x00,0x04,0x00, +0xcf,0x00,0x00,0x00,0xce,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xfa,0x00,0x04,0x00,0xd3,0x00,0x00,0x00,0xce,0x00,0x00,0x00, +0xcf,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xce,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xda,0x00,0x00,0x00, +0x32,0x03,0x00,0x00,0xac,0x00,0x00,0x00,0x7c,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xdc,0x00,0x00,0x00,0x3a,0x03,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdd,0x00,0x00,0x00, +0xda,0x00,0x00,0x00,0xdc,0x00,0x00,0x00,0x41,0x00,0x06,0x00, +0xdf,0x00,0x00,0x00,0xe0,0x00,0x00,0x00,0xd7,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0xdd,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x91,0x00,0x00,0x00,0xe1,0x00,0x00,0x00,0xe0,0x00,0x00,0x00, +0x41,0x00,0x08,0x00,0xe7,0x00,0x00,0x00,0xe8,0x00,0x00,0x00, +0xb9,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xbc,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0xaf,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,0xe8,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xea,0x00,0x00,0x00, +0xe9,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0xeb,0x00,0x00,0x00,0xea,0x00,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0xed,0x00,0x00,0x00,0xeb,0x00,0x00,0x00, +0xec,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x91,0x00,0x00,0x00, +0xee,0x00,0x00,0x00,0xed,0x00,0x00,0x00,0x85,0x00,0x05,0x00, +0x91,0x00,0x00,0x00,0xef,0x00,0x00,0x00,0xe1,0x00,0x00,0x00, +0xee,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xf7,0x00,0x00,0x00,0x87,0x00,0x00,0x00,0xdc,0x00,0x00,0x00, +0x41,0x00,0x08,0x00,0xe7,0x00,0x00,0x00,0xf9,0x00,0x00,0x00, +0xb9,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xbc,0x00,0x00,0x00, +0xf3,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0xaf,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,0xf9,0x00,0x00,0x00, +0xc2,0x00,0x05,0x00,0xaf,0x00,0x00,0x00,0xfb,0x00,0x00,0x00, +0xfa,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0xfb,0x00,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xfd,0x00,0x00,0x00, +0xfc,0x00,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0xff,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,0xfe,0x00,0x00,0x00, +0x6f,0x00,0x04,0x00,0x91,0x00,0x00,0x00,0x00,0x01,0x00,0x00, +0xff,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x08,0x01,0x00,0x00,0xdd,0x00,0x00,0x00,0x95,0x00,0x00,0x00, +0x41,0x00,0x06,0x00,0xdf,0x00,0x00,0x00,0x09,0x01,0x00,0x00, +0xd7,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x08,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0x91,0x00,0x00,0x00,0x0a,0x01,0x00,0x00, +0x09,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x0f,0x01,0x00,0x00,0x7d,0x00,0x00,0x00,0x12,0x00,0x00,0x00, +0x41,0x00,0x08,0x00,0xe7,0x00,0x00,0x00,0x10,0x01,0x00,0x00, +0xb9,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xbc,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0x0f,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0xaf,0x00,0x00,0x00,0x11,0x01,0x00,0x00,0x10,0x01,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x12,0x01,0x00,0x00, +0x11,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x13,0x01,0x00,0x00,0x12,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x14,0x01,0x00,0x00,0x13,0x01,0x00,0x00, +0xec,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x91,0x00,0x00,0x00, +0x15,0x01,0x00,0x00,0x14,0x01,0x00,0x00,0x85,0x00,0x05,0x00, +0x91,0x00,0x00,0x00,0x16,0x01,0x00,0x00,0x0a,0x01,0x00,0x00, +0x15,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x1e,0x01,0x00,0x00,0xf7,0x00,0x00,0x00,0x95,0x00,0x00,0x00, +0x41,0x00,0x08,0x00,0xe7,0x00,0x00,0x00,0x1f,0x01,0x00,0x00, +0xb9,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xbc,0x00,0x00,0x00, +0xf3,0x00,0x00,0x00,0x1e,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0xaf,0x00,0x00,0x00,0x20,0x01,0x00,0x00,0x1f,0x01,0x00,0x00, +0xc2,0x00,0x05,0x00,0xaf,0x00,0x00,0x00,0x21,0x01,0x00,0x00, +0x20,0x01,0x00,0x00,0x61,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x22,0x01,0x00,0x00,0x21,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x23,0x01,0x00,0x00, +0x22,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x24,0x01,0x00,0x00,0x23,0x01,0x00,0x00,0xfe,0x00,0x00,0x00, +0x6f,0x00,0x04,0x00,0x91,0x00,0x00,0x00,0x25,0x01,0x00,0x00, +0x24,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x91,0x00,0x00,0x00, +0x26,0x01,0x00,0x00,0x16,0x01,0x00,0x00,0x25,0x01,0x00,0x00, +0x0c,0x00,0x08,0x00,0x91,0x00,0x00,0x00,0x27,0x01,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xef,0x00,0x00,0x00, +0x00,0x01,0x00,0x00,0x26,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x2e,0x01,0x00,0x00,0xdd,0x00,0x00,0x00, +0x83,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xdf,0x00,0x00,0x00, +0x2f,0x01,0x00,0x00,0xd7,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0x2e,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x91,0x00,0x00,0x00, +0x30,0x01,0x00,0x00,0x2f,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x35,0x01,0x00,0x00,0x7d,0x00,0x00,0x00, +0x51,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xe7,0x00,0x00,0x00, +0x36,0x01,0x00,0x00,0xb9,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0xbc,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x35,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0xaf,0x00,0x00,0x00,0x37,0x01,0x00,0x00, +0x36,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x38,0x01,0x00,0x00,0x37,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x39,0x01,0x00,0x00,0x38,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x3a,0x01,0x00,0x00, +0x39,0x01,0x00,0x00,0xec,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, +0x91,0x00,0x00,0x00,0x3b,0x01,0x00,0x00,0x3a,0x01,0x00,0x00, +0x85,0x00,0x05,0x00,0x91,0x00,0x00,0x00,0x3c,0x01,0x00,0x00, +0x30,0x01,0x00,0x00,0x3b,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0xaf,0x00,0x00,0x00,0x46,0x01,0x00,0x00,0xf9,0x00,0x00,0x00, +0xc2,0x00,0x05,0x00,0xaf,0x00,0x00,0x00,0x47,0x01,0x00,0x00, +0x46,0x01,0x00,0x00,0xbd,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x48,0x01,0x00,0x00,0x47,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x49,0x01,0x00,0x00, +0x48,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x4a,0x01,0x00,0x00,0x49,0x01,0x00,0x00,0xfe,0x00,0x00,0x00, +0x6f,0x00,0x04,0x00,0x91,0x00,0x00,0x00,0x4b,0x01,0x00,0x00, +0x4a,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0x91,0x00,0x00,0x00, +0x4d,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0x3c,0x01,0x00,0x00,0x4b,0x01,0x00,0x00,0x27,0x01,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x55,0x01,0x00,0x00, +0xdd,0x00,0x00,0x00,0x54,0x01,0x00,0x00,0x41,0x00,0x06,0x00, +0xdf,0x00,0x00,0x00,0x56,0x01,0x00,0x00,0xd7,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0x55,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0x91,0x00,0x00,0x00,0x57,0x01,0x00,0x00,0x56,0x01,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5d,0x01,0x00,0x00, +0x7d,0x00,0x00,0x00,0x5c,0x01,0x00,0x00,0x41,0x00,0x08,0x00, +0xe7,0x00,0x00,0x00,0x5e,0x01,0x00,0x00,0xb9,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0x5d,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xaf,0x00,0x00,0x00, +0x5f,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x60,0x01,0x00,0x00,0x5f,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x61,0x01,0x00,0x00, +0x60,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x62,0x01,0x00,0x00,0x61,0x01,0x00,0x00,0xec,0x00,0x00,0x00, +0x6f,0x00,0x04,0x00,0x91,0x00,0x00,0x00,0x63,0x01,0x00,0x00, +0x62,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x91,0x00,0x00,0x00, +0x64,0x01,0x00,0x00,0x57,0x01,0x00,0x00,0x63,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0xaf,0x00,0x00,0x00,0x6e,0x01,0x00,0x00, +0x1f,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0xaf,0x00,0x00,0x00, +0x6f,0x01,0x00,0x00,0x6e,0x01,0x00,0x00,0xbd,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x70,0x01,0x00,0x00, +0x6f,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x71,0x01,0x00,0x00,0x70,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x72,0x01,0x00,0x00,0x71,0x01,0x00,0x00, +0xfe,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x91,0x00,0x00,0x00, +0x73,0x01,0x00,0x00,0x72,0x01,0x00,0x00,0x0c,0x00,0x08,0x00, +0x91,0x00,0x00,0x00,0x75,0x01,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x64,0x01,0x00,0x00,0x73,0x01,0x00,0x00, +0x4d,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x7c,0x01,0x00,0x00,0xdd,0x00,0x00,0x00,0xb1,0x00,0x00,0x00, +0x41,0x00,0x06,0x00,0xdf,0x00,0x00,0x00,0x7d,0x01,0x00,0x00, +0xd7,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x7c,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0x91,0x00,0x00,0x00,0x7e,0x01,0x00,0x00, +0x7d,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x84,0x01,0x00,0x00,0x7d,0x00,0x00,0x00,0x83,0x01,0x00,0x00, +0x41,0x00,0x08,0x00,0xe7,0x00,0x00,0x00,0x85,0x01,0x00,0x00, +0xb9,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xbc,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0x84,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0xaf,0x00,0x00,0x00,0x86,0x01,0x00,0x00,0x85,0x01,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x87,0x01,0x00,0x00, +0x86,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x88,0x01,0x00,0x00,0x87,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x89,0x01,0x00,0x00,0x88,0x01,0x00,0x00, +0xec,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x91,0x00,0x00,0x00, +0x8a,0x01,0x00,0x00,0x89,0x01,0x00,0x00,0x85,0x00,0x05,0x00, +0x91,0x00,0x00,0x00,0x8b,0x01,0x00,0x00,0x7e,0x01,0x00,0x00, +0x8a,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xaf,0x00,0x00,0x00, +0x95,0x01,0x00,0x00,0xf9,0x00,0x00,0x00,0xc2,0x00,0x05,0x00, +0xaf,0x00,0x00,0x00,0x96,0x01,0x00,0x00,0x95,0x01,0x00,0x00, 0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x37,0x02,0x00,0x00,0x36,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x38,0x02,0x00,0x00,0x37,0x02,0x00,0x00, -0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x39,0x02,0x00,0x00, -0x38,0x02,0x00,0x00,0xe5,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, -0x8a,0x00,0x00,0x00,0x3a,0x02,0x00,0x00,0x39,0x02,0x00,0x00, -0x85,0x00,0x05,0x00,0x8a,0x00,0x00,0x00,0x3b,0x02,0x00,0x00, -0x2e,0x02,0x00,0x00,0x3a,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, -0x8a,0x00,0x00,0x00,0x3c,0x02,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0x18,0x02,0x00,0x00,0x24,0x02,0x00,0x00, -0x3b,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x8a,0x00,0x00,0x00, -0x45,0x02,0x00,0x00,0x28,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0xa8,0x00,0x00,0x00,0x4c,0x02,0x00,0x00,0x2f,0x01,0x00,0x00, -0xc2,0x00,0x05,0x00,0xa8,0x00,0x00,0x00,0x4d,0x02,0x00,0x00, -0x4c,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x4e,0x02,0x00,0x00,0x4d,0x02,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x4f,0x02,0x00,0x00, -0x4e,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x50,0x02,0x00,0x00,0x4f,0x02,0x00,0x00,0xe5,0x00,0x00,0x00, -0x6f,0x00,0x04,0x00,0x8a,0x00,0x00,0x00,0x51,0x02,0x00,0x00, -0x50,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x8a,0x00,0x00,0x00, -0x53,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x45,0x02,0x00,0x00,0x51,0x02,0x00,0x00,0x3c,0x02,0x00,0x00, -0x3d,0x00,0x04,0x00,0x8a,0x00,0x00,0x00,0x5c,0x02,0x00,0x00, -0x4f,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xa8,0x00,0x00,0x00, -0x63,0x02,0x00,0x00,0x57,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, -0xa8,0x00,0x00,0x00,0x64,0x02,0x00,0x00,0x63,0x02,0x00,0x00, +0x97,0x01,0x00,0x00,0x96,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x98,0x01,0x00,0x00,0x97,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x99,0x01,0x00,0x00, +0x98,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, +0x91,0x00,0x00,0x00,0x9a,0x01,0x00,0x00,0x99,0x01,0x00,0x00, +0x0c,0x00,0x08,0x00,0x91,0x00,0x00,0x00,0x9c,0x01,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x8b,0x01,0x00,0x00, +0x9a,0x01,0x00,0x00,0x75,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xa4,0x01,0x00,0x00,0xdd,0x00,0x00,0x00, +0xa3,0x01,0x00,0x00,0x41,0x00,0x06,0x00,0xdf,0x00,0x00,0x00, +0xa5,0x01,0x00,0x00,0xd7,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0xa4,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x91,0x00,0x00,0x00, +0xa6,0x01,0x00,0x00,0xa5,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xac,0x01,0x00,0x00,0x7d,0x00,0x00,0x00, +0xab,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0xe7,0x00,0x00,0x00, +0xad,0x01,0x00,0x00,0xb9,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0xbc,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xac,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0xaf,0x00,0x00,0x00,0xae,0x01,0x00,0x00, +0xad,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xaf,0x01,0x00,0x00,0xae,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0xb0,0x01,0x00,0x00,0xaf,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xb1,0x01,0x00,0x00, +0xb0,0x01,0x00,0x00,0xec,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, +0x91,0x00,0x00,0x00,0xb2,0x01,0x00,0x00,0xb1,0x01,0x00,0x00, +0x85,0x00,0x05,0x00,0x91,0x00,0x00,0x00,0xb3,0x01,0x00,0x00, +0xa6,0x01,0x00,0x00,0xb2,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0xaf,0x00,0x00,0x00,0xbd,0x01,0x00,0x00,0x1f,0x01,0x00,0x00, +0xc2,0x00,0x05,0x00,0xaf,0x00,0x00,0x00,0xbe,0x01,0x00,0x00, +0xbd,0x01,0x00,0x00,0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xbf,0x01,0x00,0x00,0xbe,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xc0,0x01,0x00,0x00, +0xbf,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0xc1,0x01,0x00,0x00,0xc0,0x01,0x00,0x00,0xfe,0x00,0x00,0x00, +0x6f,0x00,0x04,0x00,0x91,0x00,0x00,0x00,0xc2,0x01,0x00,0x00, +0xc1,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0x91,0x00,0x00,0x00, +0xc4,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0xb3,0x01,0x00,0x00,0xc2,0x01,0x00,0x00,0x9c,0x01,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xcc,0x01,0x00,0x00, +0xdd,0x00,0x00,0x00,0xcb,0x01,0x00,0x00,0x41,0x00,0x06,0x00, +0xdf,0x00,0x00,0x00,0xcd,0x01,0x00,0x00,0xd7,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0xcc,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0x91,0x00,0x00,0x00,0xce,0x01,0x00,0x00,0xcd,0x01,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd4,0x01,0x00,0x00, +0x7d,0x00,0x00,0x00,0xd3,0x01,0x00,0x00,0x41,0x00,0x08,0x00, +0xe7,0x00,0x00,0x00,0xd5,0x01,0x00,0x00,0xb9,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0xd4,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xaf,0x00,0x00,0x00, +0xd6,0x01,0x00,0x00,0xd5,0x01,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xd7,0x01,0x00,0x00,0xd6,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xd8,0x01,0x00,0x00, +0xd7,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0xd9,0x01,0x00,0x00,0xd8,0x01,0x00,0x00,0xec,0x00,0x00,0x00, +0x6f,0x00,0x04,0x00,0x91,0x00,0x00,0x00,0xda,0x01,0x00,0x00, +0xd9,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x91,0x00,0x00,0x00, +0xdb,0x01,0x00,0x00,0xce,0x01,0x00,0x00,0xda,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0xaf,0x00,0x00,0x00,0xe5,0x01,0x00,0x00, +0xf9,0x00,0x00,0x00,0xc2,0x00,0x05,0x00,0xaf,0x00,0x00,0x00, +0xe6,0x01,0x00,0x00,0xe5,0x01,0x00,0x00,0x45,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xe7,0x01,0x00,0x00, +0xe6,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0xe8,0x01,0x00,0x00,0xe7,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0xe9,0x01,0x00,0x00,0xe8,0x01,0x00,0x00, +0xfe,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x91,0x00,0x00,0x00, +0xea,0x01,0x00,0x00,0xe9,0x01,0x00,0x00,0x0c,0x00,0x08,0x00, +0x91,0x00,0x00,0x00,0xec,0x01,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0xdb,0x01,0x00,0x00,0xea,0x01,0x00,0x00, +0xc4,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xf4,0x01,0x00,0x00,0xdd,0x00,0x00,0x00,0xf3,0x01,0x00,0x00, +0x41,0x00,0x06,0x00,0xdf,0x00,0x00,0x00,0xf5,0x01,0x00,0x00, +0xd7,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xf4,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0x91,0x00,0x00,0x00,0xf6,0x01,0x00,0x00, +0xf5,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xfc,0x01,0x00,0x00,0x7d,0x00,0x00,0x00,0xfb,0x01,0x00,0x00, +0x41,0x00,0x08,0x00,0xe7,0x00,0x00,0x00,0xfd,0x01,0x00,0x00, +0xb9,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xbc,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0xfc,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0xaf,0x00,0x00,0x00,0xfe,0x01,0x00,0x00,0xfd,0x01,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xff,0x01,0x00,0x00, +0xfe,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x00,0x02,0x00,0x00,0xff,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x01,0x02,0x00,0x00,0x00,0x02,0x00,0x00, +0xec,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x91,0x00,0x00,0x00, +0x02,0x02,0x00,0x00,0x01,0x02,0x00,0x00,0x85,0x00,0x05,0x00, +0x91,0x00,0x00,0x00,0x03,0x02,0x00,0x00,0xf6,0x01,0x00,0x00, +0x02,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xaf,0x00,0x00,0x00, +0x0d,0x02,0x00,0x00,0x1f,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, +0xaf,0x00,0x00,0x00,0x0e,0x02,0x00,0x00,0x0d,0x02,0x00,0x00, +0x45,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x0f,0x02,0x00,0x00,0x0e,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x10,0x02,0x00,0x00,0x0f,0x02,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x11,0x02,0x00,0x00, +0x10,0x02,0x00,0x00,0xfe,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, +0x91,0x00,0x00,0x00,0x12,0x02,0x00,0x00,0x11,0x02,0x00,0x00, +0x0c,0x00,0x08,0x00,0x91,0x00,0x00,0x00,0x14,0x02,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x03,0x02,0x00,0x00, +0x12,0x02,0x00,0x00,0xec,0x01,0x00,0x00,0x81,0x00,0x05,0x00, +0x91,0x00,0x00,0x00,0x16,0x02,0x00,0x00,0x3b,0x03,0x00,0x00, +0x14,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x91,0x00,0x00,0x00, +0x1f,0x02,0x00,0x00,0xe0,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0xaf,0x00,0x00,0x00,0x26,0x02,0x00,0x00,0xe8,0x00,0x00,0x00, +0xc2,0x00,0x05,0x00,0xaf,0x00,0x00,0x00,0x27,0x02,0x00,0x00, +0x26,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x28,0x02,0x00,0x00,0x27,0x02,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x29,0x02,0x00,0x00, +0x28,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x2a,0x02,0x00,0x00,0x29,0x02,0x00,0x00,0xec,0x00,0x00,0x00, +0x6f,0x00,0x04,0x00,0x91,0x00,0x00,0x00,0x2b,0x02,0x00,0x00, +0x2a,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x91,0x00,0x00,0x00, +0x35,0x02,0x00,0x00,0x09,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0xaf,0x00,0x00,0x00,0x3c,0x02,0x00,0x00,0x10,0x01,0x00,0x00, +0xc2,0x00,0x05,0x00,0xaf,0x00,0x00,0x00,0x3d,0x02,0x00,0x00, +0x3c,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x3e,0x02,0x00,0x00,0x3d,0x02,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x3f,0x02,0x00,0x00, +0x3e,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x40,0x02,0x00,0x00,0x3f,0x02,0x00,0x00,0xec,0x00,0x00,0x00, +0x6f,0x00,0x04,0x00,0x91,0x00,0x00,0x00,0x41,0x02,0x00,0x00, +0x40,0x02,0x00,0x00,0x85,0x00,0x05,0x00,0x91,0x00,0x00,0x00, +0x42,0x02,0x00,0x00,0x35,0x02,0x00,0x00,0x41,0x02,0x00,0x00, +0x0c,0x00,0x08,0x00,0x91,0x00,0x00,0x00,0x43,0x02,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x1f,0x02,0x00,0x00, +0x2b,0x02,0x00,0x00,0x42,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0x91,0x00,0x00,0x00,0x4c,0x02,0x00,0x00,0x2f,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0xaf,0x00,0x00,0x00,0x53,0x02,0x00,0x00, +0x36,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0xaf,0x00,0x00,0x00, +0x54,0x02,0x00,0x00,0x53,0x02,0x00,0x00,0x3b,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x55,0x02,0x00,0x00, +0x54,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x56,0x02,0x00,0x00,0x55,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x57,0x02,0x00,0x00,0x56,0x02,0x00,0x00, +0xec,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x91,0x00,0x00,0x00, +0x58,0x02,0x00,0x00,0x57,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, +0x91,0x00,0x00,0x00,0x5a,0x02,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x4c,0x02,0x00,0x00,0x58,0x02,0x00,0x00, +0x43,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x91,0x00,0x00,0x00, +0x63,0x02,0x00,0x00,0x56,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0xaf,0x00,0x00,0x00,0x6a,0x02,0x00,0x00,0x5e,0x01,0x00,0x00, +0xc2,0x00,0x05,0x00,0xaf,0x00,0x00,0x00,0x6b,0x02,0x00,0x00, +0x6a,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x6c,0x02,0x00,0x00,0x6b,0x02,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x6d,0x02,0x00,0x00, +0x6c,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x6e,0x02,0x00,0x00,0x6d,0x02,0x00,0x00,0xec,0x00,0x00,0x00, +0x6f,0x00,0x04,0x00,0x91,0x00,0x00,0x00,0x6f,0x02,0x00,0x00, +0x6e,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x91,0x00,0x00,0x00, +0x71,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0x63,0x02,0x00,0x00,0x6f,0x02,0x00,0x00,0x5a,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0x91,0x00,0x00,0x00,0x7a,0x02,0x00,0x00, +0x7d,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xaf,0x00,0x00,0x00, +0x81,0x02,0x00,0x00,0x85,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, +0xaf,0x00,0x00,0x00,0x82,0x02,0x00,0x00,0x81,0x02,0x00,0x00, 0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x65,0x02,0x00,0x00,0x64,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x66,0x02,0x00,0x00,0x65,0x02,0x00,0x00, -0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x67,0x02,0x00,0x00, -0x66,0x02,0x00,0x00,0xe5,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, -0x8a,0x00,0x00,0x00,0x68,0x02,0x00,0x00,0x67,0x02,0x00,0x00, -0x0c,0x00,0x08,0x00,0x8a,0x00,0x00,0x00,0x6a,0x02,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x5c,0x02,0x00,0x00, -0x68,0x02,0x00,0x00,0x53,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0x8a,0x00,0x00,0x00,0x73,0x02,0x00,0x00,0x76,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0xa8,0x00,0x00,0x00,0x7a,0x02,0x00,0x00, -0x7e,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0xa8,0x00,0x00,0x00, -0x7b,0x02,0x00,0x00,0x7a,0x02,0x00,0x00,0x3b,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x7c,0x02,0x00,0x00, -0x7b,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x7d,0x02,0x00,0x00,0x7c,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x7e,0x02,0x00,0x00,0x7d,0x02,0x00,0x00, -0xe5,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x8a,0x00,0x00,0x00, -0x7f,0x02,0x00,0x00,0x7e,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, -0x8a,0x00,0x00,0x00,0x81,0x02,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0x73,0x02,0x00,0x00,0x7f,0x02,0x00,0x00, -0x6a,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x8a,0x00,0x00,0x00, -0x8a,0x02,0x00,0x00,0x9e,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0xa8,0x00,0x00,0x00,0x91,0x02,0x00,0x00,0xa6,0x01,0x00,0x00, -0xc2,0x00,0x05,0x00,0xa8,0x00,0x00,0x00,0x92,0x02,0x00,0x00, -0x91,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x93,0x02,0x00,0x00,0x92,0x02,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x94,0x02,0x00,0x00, -0x93,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x95,0x02,0x00,0x00,0x94,0x02,0x00,0x00,0xe5,0x00,0x00,0x00, -0x6f,0x00,0x04,0x00,0x8a,0x00,0x00,0x00,0x96,0x02,0x00,0x00, -0x95,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x8a,0x00,0x00,0x00, -0x98,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x8a,0x02,0x00,0x00,0x96,0x02,0x00,0x00,0x81,0x02,0x00,0x00, -0x3d,0x00,0x04,0x00,0x8a,0x00,0x00,0x00,0xa1,0x02,0x00,0x00, -0xc6,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xa8,0x00,0x00,0x00, -0xa8,0x02,0x00,0x00,0xce,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, -0xa8,0x00,0x00,0x00,0xa9,0x02,0x00,0x00,0xa8,0x02,0x00,0x00, +0x83,0x02,0x00,0x00,0x82,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x84,0x02,0x00,0x00,0x83,0x02,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x85,0x02,0x00,0x00, +0x84,0x02,0x00,0x00,0xec,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, +0x91,0x00,0x00,0x00,0x86,0x02,0x00,0x00,0x85,0x02,0x00,0x00, +0x0c,0x00,0x08,0x00,0x91,0x00,0x00,0x00,0x88,0x02,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x7a,0x02,0x00,0x00, +0x86,0x02,0x00,0x00,0x71,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0x91,0x00,0x00,0x00,0x91,0x02,0x00,0x00,0xa5,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0xaf,0x00,0x00,0x00,0x98,0x02,0x00,0x00, +0xad,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0xaf,0x00,0x00,0x00, +0x99,0x02,0x00,0x00,0x98,0x02,0x00,0x00,0x3b,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x9a,0x02,0x00,0x00, +0x99,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x9b,0x02,0x00,0x00,0x9a,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x9c,0x02,0x00,0x00,0x9b,0x02,0x00,0x00, +0xec,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x91,0x00,0x00,0x00, +0x9d,0x02,0x00,0x00,0x9c,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, +0x91,0x00,0x00,0x00,0x9f,0x02,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x91,0x02,0x00,0x00,0x9d,0x02,0x00,0x00, +0x88,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x91,0x00,0x00,0x00, +0xa8,0x02,0x00,0x00,0xcd,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0xaf,0x00,0x00,0x00,0xaf,0x02,0x00,0x00,0xd5,0x01,0x00,0x00, +0xc2,0x00,0x05,0x00,0xaf,0x00,0x00,0x00,0xb0,0x02,0x00,0x00, +0xaf,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xb1,0x02,0x00,0x00,0xb0,0x02,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xb2,0x02,0x00,0x00, +0xb1,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0xb3,0x02,0x00,0x00,0xb2,0x02,0x00,0x00,0xec,0x00,0x00,0x00, +0x6f,0x00,0x04,0x00,0x91,0x00,0x00,0x00,0xb4,0x02,0x00,0x00, +0xb3,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x91,0x00,0x00,0x00, +0xb6,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0xa8,0x02,0x00,0x00,0xb4,0x02,0x00,0x00,0x9f,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0x91,0x00,0x00,0x00,0xbf,0x02,0x00,0x00, +0xf5,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xaf,0x00,0x00,0x00, +0xc6,0x02,0x00,0x00,0xfd,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, +0xaf,0x00,0x00,0x00,0xc7,0x02,0x00,0x00,0xc6,0x02,0x00,0x00, 0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xaa,0x02,0x00,0x00,0xa9,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0xab,0x02,0x00,0x00,0xaa,0x02,0x00,0x00, -0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xac,0x02,0x00,0x00, -0xab,0x02,0x00,0x00,0xe5,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, -0x8a,0x00,0x00,0x00,0xad,0x02,0x00,0x00,0xac,0x02,0x00,0x00, -0x0c,0x00,0x08,0x00,0x8a,0x00,0x00,0x00,0xaf,0x02,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xa1,0x02,0x00,0x00, -0xad,0x02,0x00,0x00,0x98,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0x8a,0x00,0x00,0x00,0xb8,0x02,0x00,0x00,0xee,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0xa8,0x00,0x00,0x00,0xbf,0x02,0x00,0x00, -0xf6,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0xa8,0x00,0x00,0x00, -0xc0,0x02,0x00,0x00,0xbf,0x02,0x00,0x00,0x3b,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xc1,0x02,0x00,0x00, -0xc0,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0xc2,0x02,0x00,0x00,0xc1,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0xc3,0x02,0x00,0x00,0xc2,0x02,0x00,0x00, -0xe5,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x8a,0x00,0x00,0x00, -0xc4,0x02,0x00,0x00,0xc3,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, -0x8a,0x00,0x00,0x00,0xc6,0x02,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0xb8,0x02,0x00,0x00,0xc4,0x02,0x00,0x00, -0xaf,0x02,0x00,0x00,0x81,0x00,0x05,0x00,0x8a,0x00,0x00,0x00, -0xc8,0x02,0x00,0x00,0x35,0x03,0x00,0x00,0xc6,0x02,0x00,0x00, -0x80,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xca,0x02,0x00,0x00, -0x33,0x03,0x00,0x00,0xec,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, -0xc6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xc8,0x00,0x00,0x00, -0x85,0x00,0x05,0x00,0x8a,0x00,0x00,0x00,0xd4,0x02,0x00,0x00, -0xc1,0x00,0x00,0x00,0x35,0x03,0x00,0x00,0x7f,0x00,0x04,0x00, -0x8a,0x00,0x00,0x00,0x38,0x03,0x00,0x00,0xd4,0x02,0x00,0x00, -0x0c,0x00,0x08,0x00,0x8a,0x00,0x00,0x00,0xd5,0x02,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xba,0x00,0x00,0x00, -0x34,0x03,0x00,0x00,0x38,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, -0x8a,0x00,0x00,0x00,0xd7,0x02,0x00,0x00,0x95,0x00,0x00,0x00, -0x81,0x00,0x05,0x00,0x8a,0x00,0x00,0x00,0xd8,0x02,0x00,0x00, -0xd7,0x02,0x00,0x00,0xd5,0x02,0x00,0x00,0x3e,0x00,0x03,0x00, -0x95,0x00,0x00,0x00,0xd8,0x02,0x00,0x00,0xf9,0x00,0x02,0x00, -0x9b,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x9b,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdb,0x02,0x00,0x00, -0x30,0x03,0x00,0x00,0x69,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, -0x98,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x9a,0x00,0x00,0x00, -0xe0,0x00,0x04,0x00,0x69,0x00,0x00,0x00,0x69,0x00,0x00,0x00, -0xdc,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xde,0x02,0x00,0x00, -0xf8,0x00,0x02,0x00,0xde,0x02,0x00,0x00,0xf5,0x00,0x07,0x00, -0x06,0x00,0x00,0x00,0x31,0x03,0x00,0x00,0x8e,0x00,0x00,0x00, -0x9a,0x00,0x00,0x00,0xf5,0x02,0x00,0x00,0xe1,0x02,0x00,0x00, -0xac,0x00,0x05,0x00,0x9f,0x00,0x00,0x00,0xe4,0x02,0x00,0x00, -0x31,0x03,0x00,0x00,0x4b,0x00,0x00,0x00,0xf6,0x00,0x04,0x00, -0xe0,0x02,0x00,0x00,0xe1,0x02,0x00,0x00,0x01,0x00,0x00,0x00, -0xfa,0x00,0x04,0x00,0xe4,0x02,0x00,0x00,0xdf,0x02,0x00,0x00, -0xe0,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xdf,0x02,0x00,0x00, -0xb0,0x00,0x05,0x00,0x9f,0x00,0x00,0x00,0xe7,0x02,0x00,0x00, -0x6a,0x00,0x00,0x00,0x31,0x03,0x00,0x00,0xf7,0x00,0x03,0x00, -0xe9,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, -0xe7,0x02,0x00,0x00,0xe8,0x02,0x00,0x00,0xe9,0x02,0x00,0x00, -0xf8,0x00,0x02,0x00,0xe8,0x02,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xed,0x02,0x00,0x00,0x6a,0x00,0x00,0x00, -0x31,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x94,0x00,0x00,0x00, -0xee,0x02,0x00,0x00,0x8d,0x00,0x00,0x00,0xed,0x02,0x00,0x00, -0x3d,0x00,0x04,0x00,0x8a,0x00,0x00,0x00,0xef,0x02,0x00,0x00, -0xee,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x94,0x00,0x00,0x00, -0xf0,0x02,0x00,0x00,0x8d,0x00,0x00,0x00,0x6a,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x8a,0x00,0x00,0x00,0xf1,0x02,0x00,0x00, -0xf0,0x02,0x00,0x00,0x81,0x00,0x05,0x00,0x8a,0x00,0x00,0x00, -0xf2,0x02,0x00,0x00,0xf1,0x02,0x00,0x00,0xef,0x02,0x00,0x00, -0x3e,0x00,0x03,0x00,0xf0,0x02,0x00,0x00,0xf2,0x02,0x00,0x00, -0xf9,0x00,0x02,0x00,0xe9,0x02,0x00,0x00,0xf8,0x00,0x02,0x00, -0xe9,0x02,0x00,0x00,0xe0,0x00,0x04,0x00,0x69,0x00,0x00,0x00, -0x69,0x00,0x00,0x00,0xdc,0x02,0x00,0x00,0xf9,0x00,0x02,0x00, -0xe1,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xe1,0x02,0x00,0x00, -0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf5,0x02,0x00,0x00, -0x31,0x03,0x00,0x00,0xec,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, -0xde,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xe0,0x02,0x00,0x00, -0xaa,0x00,0x05,0x00,0x9f,0x00,0x00,0x00,0xf7,0x02,0x00,0x00, -0x6a,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0xf7,0x00,0x03,0x00, -0xf9,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, -0xf7,0x02,0x00,0x00,0xf8,0x02,0x00,0x00,0xf9,0x02,0x00,0x00, -0xf8,0x00,0x02,0x00,0xf8,0x02,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x2f,0x03,0x00,0x00, -0x4d,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x94,0x00,0x00,0x00, -0x01,0x03,0x00,0x00,0x8d,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x8a,0x00,0x00,0x00,0x02,0x03,0x00,0x00, -0x01,0x03,0x00,0x00,0x41,0x00,0x06,0x00,0xd8,0x00,0x00,0x00, -0x03,0x03,0x00,0x00,0xfd,0x02,0x00,0x00,0x59,0x00,0x00,0x00, -0x00,0x03,0x00,0x00,0x3e,0x00,0x03,0x00,0x03,0x03,0x00,0x00, -0x02,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,0xf9,0x02,0x00,0x00, -0xf8,0x00,0x02,0x00,0xf9,0x02,0x00,0x00,0xfd,0x00,0x01,0x00, -0x38,0x00,0x01,0x00, +0xc8,0x02,0x00,0x00,0xc7,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0xc9,0x02,0x00,0x00,0xc8,0x02,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xca,0x02,0x00,0x00, +0xc9,0x02,0x00,0x00,0xec,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, +0x91,0x00,0x00,0x00,0xcb,0x02,0x00,0x00,0xca,0x02,0x00,0x00, +0x0c,0x00,0x08,0x00,0x91,0x00,0x00,0x00,0xcd,0x02,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xbf,0x02,0x00,0x00, +0xcb,0x02,0x00,0x00,0xb6,0x02,0x00,0x00,0x81,0x00,0x05,0x00, +0x91,0x00,0x00,0x00,0xcf,0x02,0x00,0x00,0x3c,0x03,0x00,0x00, +0xcd,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0xd1,0x02,0x00,0x00,0x3a,0x03,0x00,0x00,0xf3,0x00,0x00,0x00, +0xf9,0x00,0x02,0x00,0xcd,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xcf,0x00,0x00,0x00,0x85,0x00,0x05,0x00,0x91,0x00,0x00,0x00, +0xdb,0x02,0x00,0x00,0xc8,0x00,0x00,0x00,0x3c,0x03,0x00,0x00, +0x7f,0x00,0x04,0x00,0x91,0x00,0x00,0x00,0x3f,0x03,0x00,0x00, +0xdb,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x91,0x00,0x00,0x00, +0xdc,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0xc1,0x00,0x00,0x00,0x3b,0x03,0x00,0x00,0x3f,0x03,0x00,0x00, +0x3d,0x00,0x04,0x00,0x91,0x00,0x00,0x00,0xde,0x02,0x00,0x00, +0x9c,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x91,0x00,0x00,0x00, +0xdf,0x02,0x00,0x00,0xde,0x02,0x00,0x00,0xdc,0x02,0x00,0x00, +0x3e,0x00,0x03,0x00,0x9c,0x00,0x00,0x00,0xdf,0x02,0x00,0x00, +0xf9,0x00,0x02,0x00,0xa2,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xa2,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xe2,0x02,0x00,0x00,0x37,0x03,0x00,0x00,0x51,0x00,0x00,0x00, +0xf9,0x00,0x02,0x00,0x9f,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xa1,0x00,0x00,0x00,0xe0,0x00,0x04,0x00,0x51,0x00,0x00,0x00, +0x51,0x00,0x00,0x00,0xe3,0x02,0x00,0x00,0xf9,0x00,0x02,0x00, +0xe5,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xe5,0x02,0x00,0x00, +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x38,0x03,0x00,0x00, +0x95,0x00,0x00,0x00,0xa1,0x00,0x00,0x00,0xfc,0x02,0x00,0x00, +0xe8,0x02,0x00,0x00,0xac,0x00,0x05,0x00,0xa6,0x00,0x00,0x00, +0xeb,0x02,0x00,0x00,0x38,0x03,0x00,0x00,0x4b,0x00,0x00,0x00, +0xf6,0x00,0x04,0x00,0xe7,0x02,0x00,0x00,0xe8,0x02,0x00,0x00, +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xeb,0x02,0x00,0x00, +0xe6,0x02,0x00,0x00,0xe7,0x02,0x00,0x00,0xf8,0x00,0x02,0x00, +0xe6,0x02,0x00,0x00,0xb0,0x00,0x05,0x00,0xa6,0x00,0x00,0x00, +0xee,0x02,0x00,0x00,0x71,0x00,0x00,0x00,0x38,0x03,0x00,0x00, +0xf7,0x00,0x03,0x00,0xf0,0x02,0x00,0x00,0x00,0x00,0x00,0x00, +0xfa,0x00,0x04,0x00,0xee,0x02,0x00,0x00,0xef,0x02,0x00,0x00, +0xf0,0x02,0x00,0x00,0xf8,0x00,0x02,0x00,0xef,0x02,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf4,0x02,0x00,0x00, +0x71,0x00,0x00,0x00,0x38,0x03,0x00,0x00,0x41,0x00,0x05,0x00, +0x9b,0x00,0x00,0x00,0xf5,0x02,0x00,0x00,0x94,0x00,0x00,0x00, +0xf4,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x91,0x00,0x00,0x00, +0xf6,0x02,0x00,0x00,0xf5,0x02,0x00,0x00,0x41,0x00,0x05,0x00, +0x9b,0x00,0x00,0x00,0xf7,0x02,0x00,0x00,0x94,0x00,0x00,0x00, +0x71,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x91,0x00,0x00,0x00, +0xf8,0x02,0x00,0x00,0xf7,0x02,0x00,0x00,0x81,0x00,0x05,0x00, +0x91,0x00,0x00,0x00,0xf9,0x02,0x00,0x00,0xf8,0x02,0x00,0x00, +0xf6,0x02,0x00,0x00,0x3e,0x00,0x03,0x00,0xf7,0x02,0x00,0x00, +0xf9,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0xf0,0x02,0x00,0x00, +0xf8,0x00,0x02,0x00,0xf0,0x02,0x00,0x00,0xe0,0x00,0x04,0x00, +0x51,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0xe3,0x02,0x00,0x00, +0xf9,0x00,0x02,0x00,0xe8,0x02,0x00,0x00,0xf8,0x00,0x02,0x00, +0xe8,0x02,0x00,0x00,0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xfc,0x02,0x00,0x00,0x38,0x03,0x00,0x00,0xf3,0x00,0x00,0x00, +0xf9,0x00,0x02,0x00,0xe5,0x02,0x00,0x00,0xf8,0x00,0x02,0x00, +0xe7,0x02,0x00,0x00,0xaa,0x00,0x05,0x00,0xa6,0x00,0x00,0x00, +0xfe,0x02,0x00,0x00,0x71,0x00,0x00,0x00,0x4b,0x00,0x00,0x00, +0xf7,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00, +0xfa,0x00,0x04,0x00,0xfe,0x02,0x00,0x00,0xff,0x02,0x00,0x00, +0x00,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0xff,0x02,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x07,0x03,0x00,0x00, +0x36,0x03,0x00,0x00,0x55,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0x9b,0x00,0x00,0x00,0x08,0x03,0x00,0x00,0x94,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x91,0x00,0x00,0x00, +0x09,0x03,0x00,0x00,0x08,0x03,0x00,0x00,0x41,0x00,0x06,0x00, +0xdf,0x00,0x00,0x00,0x0a,0x03,0x00,0x00,0x04,0x03,0x00,0x00, +0x61,0x00,0x00,0x00,0x07,0x03,0x00,0x00,0x3e,0x00,0x03,0x00, +0x0a,0x03,0x00,0x00,0x09,0x03,0x00,0x00,0xf9,0x00,0x02,0x00, +0x00,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x00,0x03,0x00,0x00, +0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00, }; -const uint64_t mul_mat_vec_q2_k_f32_f32_len = 8356; +const uint64_t mul_mat_vec_q2_k_f32_f32_len = 8504; unsigned char mul_mat_vec_q3_k_f16_f32_data[] = { 0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00, -0x85,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, +0x8c,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, 0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x27,0x00,0x00,0x00, 0x11,0x00,0x02,0x00,0x51,0x11,0x00,0x00,0x11,0x00,0x02,0x00, 0x60,0x11,0x00,0x00,0x0b,0x00,0x06,0x00,0x01,0x00,0x00,0x00, 0x47,0x4c,0x53,0x4c,0x2e,0x73,0x74,0x64,0x2e,0x34,0x35,0x30, 0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00,0x00,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x0f,0x00,0x0d,0x00,0x05,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x0f,0x00,0x0e,0x00,0x05,0x00,0x00,0x00, 0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e,0x00,0x00,0x00,0x00, 0x11,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x4a,0x00,0x00,0x00, -0x66,0x00,0x00,0x00,0x95,0x00,0x00,0x00,0xbd,0x00,0x00,0x00, -0xd4,0x00,0x00,0x00,0x4c,0x03,0x00,0x00,0x10,0x00,0x06,0x00, -0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x11,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x18,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x03,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00, -0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x18,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x4e,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x9c,0x00,0x00,0x00, +0xc4,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,0x53,0x03,0x00,0x00, +0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x11,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, 0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x18,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x28,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x18,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x4a,0x00,0x00,0x00, -0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x66,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xb3,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xb5,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xb7,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0xb9,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0xb9,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x20,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xb9,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x60,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0xb9,0x00,0x00,0x00,0x03,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xba,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x6e,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xbb,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0xbb,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xbd,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xbd,0x00,0x00,0x00, -0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xd1,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0xd2,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xd2,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0xd2,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xd4,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xd4,0x00,0x00,0x00, -0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x49,0x03,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0x4a,0x03,0x00,0x00,0x00,0x00,0x00,0x00, -0x19,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x4a,0x03,0x00,0x00, 0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0x4a,0x03,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x4c,0x03,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x4c,0x03,0x00,0x00, -0x21,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x54,0x03,0x00,0x00,0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00, -0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00, -0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x17,0x00,0x04,0x00,0x0f,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x10,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x10,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x12,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x13,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x1e,0x00,0x0d,0x00, -0x18,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x19,0x00,0x00,0x00, -0x1a,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x15,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x1d,0x00,0x00,0x00, -0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x0a,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x2e,0x00,0x00,0x00, -0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x34,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x40,0x00,0x00,0x00, -0x05,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x45,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x10,0x00,0x00,0x00,0x4a,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4b,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,0x00,0x01,0x00,0x00, -0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00,0x66,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x69,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x15,0x00,0x04,0x00,0x78,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x7b,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x7c,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x15,0x00,0x04,0x00,0x80,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x87,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,0x80,0x00,0x00,0x00, -0x16,0x00,0x03,0x00,0x92,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x1c,0x00,0x04,0x00,0x93,0x00,0x00,0x00,0x92,0x00,0x00,0x00, -0x87,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x94,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x93,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x94,0x00,0x00,0x00,0x95,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x96,0x00,0x00,0x00, -0x10,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x92,0x00,0x00,0x00, -0x9b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x9c,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x92,0x00,0x00,0x00, -0x14,0x00,0x02,0x00,0xaa,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, -0xb3,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x87,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xb4,0x00,0x00,0x00, -0x40,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0xb5,0x00,0x00,0x00, -0x78,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xb6,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x1c,0x00,0x04,0x00,0xb7,0x00,0x00,0x00,0x78,0x00,0x00,0x00, -0xb6,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0xb8,0x00,0x00,0x00, -0x10,0x00,0x00,0x00,0x1e,0x00,0x06,0x00,0xb9,0x00,0x00,0x00, -0xb3,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,0xb7,0x00,0x00,0x00, -0xb8,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0xba,0x00,0x00,0x00, -0xb9,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xbb,0x00,0x00,0x00, -0xba,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xbc,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0xbc,0x00,0x00,0x00,0xbd,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xc1,0x00,0x00,0x00, -0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xc2,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x1d,0x00,0x03,0x00,0xd1,0x00,0x00,0x00,0xb8,0x00,0x00,0x00, -0x1e,0x00,0x03,0x00,0xd2,0x00,0x00,0x00,0xd1,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0xd3,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0xd2,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xd3,0x00,0x00,0x00, -0xd4,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0xe2,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x78,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xe9,0x00,0x00,0x00, -0x0f,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0xfa,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xb1,0x01,0x00,0x00,0x60,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x41,0x02,0x00,0x00, -0x30,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x53,0x02,0x00,0x00,0x0b,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x8c,0x02,0x00,0x00,0x50,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xd6,0x02,0x00,0x00, -0x70,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x2b,0x03,0x00,0x00,0x08,0x01,0x00,0x00,0x1d,0x00,0x03,0x00, -0x49,0x03,0x00,0x00,0x92,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, -0x4a,0x03,0x00,0x00,0x49,0x03,0x00,0x00,0x20,0x00,0x04,0x00, -0x4b,0x03,0x00,0x00,0x0c,0x00,0x00,0x00,0x4a,0x03,0x00,0x00, -0x3b,0x00,0x04,0x00,0x4b,0x03,0x00,0x00,0x4c,0x03,0x00,0x00, -0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x52,0x03,0x00,0x00, -0x0c,0x00,0x00,0x00,0x92,0x00,0x00,0x00,0x2c,0x00,0x06,0x00, -0x0f,0x00,0x00,0x00,0x54,0x03,0x00,0x00,0x87,0x00,0x00,0x00, -0x12,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x36,0x00,0x05,0x00, -0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x03,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00,0x4c,0x00,0x00,0x00, -0x4a,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,0x4c,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00,0x5c,0x03,0x00,0x00, -0x11,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x5d,0x03,0x00,0x00,0x5c,0x03,0x00,0x00, -0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00,0x5f,0x03,0x00,0x00, -0x1a,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x60,0x03,0x00,0x00,0x5f,0x03,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x61,0x03,0x00,0x00, -0x5d,0x03,0x00,0x00,0x60,0x03,0x00,0x00,0x89,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x65,0x03,0x00,0x00,0x5d,0x03,0x00,0x00, -0x60,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00, -0x67,0x03,0x00,0x00,0x1a,0x00,0x00,0x00,0x28,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x68,0x03,0x00,0x00, -0x67,0x03,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x69,0x03,0x00,0x00,0x61,0x03,0x00,0x00,0x68,0x03,0x00,0x00, -0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00,0x6b,0x03,0x00,0x00, -0x1a,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x6c,0x03,0x00,0x00,0x6b,0x03,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6d,0x03,0x00,0x00, -0x65,0x03,0x00,0x00,0x6c,0x03,0x00,0x00,0x41,0x00,0x05,0x00, -0x1d,0x00,0x00,0x00,0x6f,0x03,0x00,0x00,0x1a,0x00,0x00,0x00, -0x34,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x70,0x03,0x00,0x00,0x6f,0x03,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x71,0x03,0x00,0x00,0x69,0x03,0x00,0x00, -0x70,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x73,0x03,0x00,0x00,0x71,0x03,0x00,0x00,0x6d,0x03,0x00,0x00, -0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00,0x75,0x03,0x00,0x00, -0x1a,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x76,0x03,0x00,0x00,0x75,0x03,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x77,0x03,0x00,0x00, -0x73,0x03,0x00,0x00,0x76,0x03,0x00,0x00,0x41,0x00,0x05,0x00, -0x1d,0x00,0x00,0x00,0x79,0x03,0x00,0x00,0x1a,0x00,0x00,0x00, -0x40,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x7a,0x03,0x00,0x00,0x79,0x03,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x7b,0x03,0x00,0x00,0x5d,0x03,0x00,0x00, -0x7a,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00, -0x7d,0x03,0x00,0x00,0x1a,0x00,0x00,0x00,0x45,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x7e,0x03,0x00,0x00, -0x7d,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x7f,0x03,0x00,0x00,0x5d,0x03,0x00,0x00,0x7e,0x03,0x00,0x00, -0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00,0x5a,0x00,0x00,0x00, -0x1a,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x5b,0x00,0x00,0x00,0x5a,0x00,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5d,0x00,0x00,0x00, -0x5b,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,0x86,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x77,0x03,0x00,0x00, -0x5c,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x63,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,0x5d,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x64,0x00,0x00,0x00, -0x60,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x41,0x00,0x05,0x00, -0x13,0x00,0x00,0x00,0x67,0x00,0x00,0x00,0x66,0x00,0x00,0x00, -0x4b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x68,0x00,0x00,0x00,0x67,0x00,0x00,0x00,0x86,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x6a,0x00,0x00,0x00,0x68,0x00,0x00,0x00, -0x69,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x6e,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x69,0x00,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x72,0x00,0x00,0x00, -0x6a,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x76,0x00,0x00,0x00,0x71,0x00,0x00,0x00, -0x72,0x00,0x00,0x00,0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x77,0x00,0x00,0x00,0x6a,0x00,0x00,0x00,0x76,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7e,0x00,0x00,0x00, -0x7c,0x00,0x00,0x00,0x72,0x00,0x00,0x00,0xc4,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,0x7b,0x00,0x00,0x00, -0x7e,0x00,0x00,0x00,0x72,0x00,0x04,0x00,0x80,0x00,0x00,0x00, -0x81,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,0x7c,0x00,0x04,0x00, -0x78,0x00,0x00,0x00,0x82,0x00,0x00,0x00,0x81,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x85,0x00,0x00,0x00, -0x69,0x00,0x00,0x00,0x77,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x89,0x00,0x00,0x00,0x87,0x00,0x00,0x00, -0x72,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x8b,0x00,0x00,0x00,0x89,0x00,0x00,0x00,0x85,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8f,0x00,0x00,0x00, -0x8d,0x00,0x00,0x00,0x72,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x91,0x00,0x00,0x00,0x8f,0x00,0x00,0x00, -0x85,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x98,0x00,0x00,0x00,0x96,0x00,0x00,0x00,0x6e,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9a,0x00,0x00,0x00, -0x98,0x00,0x00,0x00,0x6a,0x00,0x00,0x00,0x41,0x00,0x05,0x00, -0x9c,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0x95,0x00,0x00,0x00, -0x9a,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0x9d,0x00,0x00,0x00, -0x9b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xa3,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0xa3,0x00,0x00,0x00,0xf5,0x00,0x07,0x00, -0x06,0x00,0x00,0x00,0x80,0x03,0x00,0x00,0x6e,0x00,0x00,0x00, -0x05,0x00,0x00,0x00,0x2a,0x03,0x00,0x00,0xa6,0x00,0x00,0x00, -0xb0,0x00,0x05,0x00,0xaa,0x00,0x00,0x00,0xab,0x00,0x00,0x00, -0x80,0x03,0x00,0x00,0x5d,0x00,0x00,0x00,0xf6,0x00,0x04,0x00, -0xa5,0x00,0x00,0x00,0xa6,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0xfa,0x00,0x04,0x00,0xab,0x00,0x00,0x00,0xa4,0x00,0x00,0x00, -0xa5,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xa4,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xae,0x00,0x00,0x00, -0x80,0x03,0x00,0x00,0x5c,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xb0,0x00,0x00,0x00,0xae,0x00,0x00,0x00, -0x91,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xc0,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0x80,0x03,0x00,0x00, -0x41,0x00,0x07,0x00,0xc2,0x00,0x00,0x00,0xc3,0x00,0x00,0x00, -0xbd,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xc0,0x00,0x00,0x00, -0xc1,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xb8,0x00,0x00,0x00, -0xc4,0x00,0x00,0x00,0xc3,0x00,0x00,0x00,0x73,0x00,0x04,0x00, -0x92,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0xc4,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0xc9,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0xc9,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x92,0x00,0x00,0x00, -0x84,0x03,0x00,0x00,0x9b,0x00,0x00,0x00,0xa4,0x00,0x00,0x00, -0x1b,0x03,0x00,0x00,0xca,0x00,0x00,0x00,0xf5,0x00,0x07,0x00, -0x1b,0x00,0x00,0x00,0x83,0x03,0x00,0x00,0x59,0x00,0x00,0x00, -0xa4,0x00,0x00,0x00,0x1d,0x03,0x00,0x00,0xca,0x00,0x00,0x00, -0xb1,0x00,0x05,0x00,0xaa,0x00,0x00,0x00,0xd0,0x00,0x00,0x00, -0x83,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf6,0x00,0x04,0x00, -0xcb,0x00,0x00,0x00,0xca,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0xfa,0x00,0x04,0x00,0xd0,0x00,0x00,0x00,0xca,0x00,0x00,0x00, -0xcb,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xca,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd7,0x00,0x00,0x00, -0x7b,0x03,0x00,0x00,0xb0,0x00,0x00,0x00,0x7c,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xd9,0x00,0x00,0x00,0x83,0x03,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xda,0x00,0x00,0x00, -0xd7,0x00,0x00,0x00,0xd9,0x00,0x00,0x00,0x41,0x00,0x06,0x00, -0xc2,0x00,0x00,0x00,0xdc,0x00,0x00,0x00,0xd4,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xda,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb8,0x00,0x00,0x00,0xdd,0x00,0x00,0x00,0xdc,0x00,0x00,0x00, -0x73,0x00,0x04,0x00,0x92,0x00,0x00,0x00,0xde,0x00,0x00,0x00, -0xdd,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xe2,0x00,0x00,0x00, -0xe3,0x00,0x00,0x00,0xbd,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0xc0,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x78,0x00,0x00,0x00,0xe4,0x00,0x00,0x00, -0xe3,0x00,0x00,0x00,0xc2,0x00,0x05,0x00,0x78,0x00,0x00,0x00, -0xe6,0x00,0x00,0x00,0xe4,0x00,0x00,0x00,0x7e,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xe7,0x00,0x00,0x00, -0xe6,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0xe8,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0xea,0x00,0x00,0x00,0xe8,0x00,0x00,0x00, -0xe9,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xe2,0x00,0x00,0x00, -0xee,0x00,0x00,0x00,0xbd,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0xc0,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x78,0x00,0x00,0x00,0xef,0x00,0x00,0x00, -0xee,0x00,0x00,0x00,0xc2,0x00,0x05,0x00,0x78,0x00,0x00,0x00, -0xf2,0x00,0x00,0x00,0xef,0x00,0x00,0x00,0x7e,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xf3,0x00,0x00,0x00, -0xf2,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0xf4,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,0xf4,0x00,0x00,0x00, -0xc1,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0xf6,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,0x3b,0x00,0x00,0x00, -0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xf7,0x00,0x00,0x00, -0xea,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,0x72,0x00,0x04,0x00, -0x80,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0xf7,0x00,0x00,0x00, -0x72,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xf9,0x00,0x00,0x00, -0xf8,0x00,0x00,0x00,0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0xfb,0x00,0x00,0x00,0xf9,0x00,0x00,0x00,0xfa,0x00,0x00,0x00, -0x6f,0x00,0x04,0x00,0x92,0x00,0x00,0x00,0xfc,0x00,0x00,0x00, -0xfb,0x00,0x00,0x00,0x85,0x00,0x05,0x00,0x92,0x00,0x00,0x00, -0xfd,0x00,0x00,0x00,0xde,0x00,0x00,0x00,0xfc,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x04,0x01,0x00,0x00, -0x8b,0x00,0x00,0x00,0xd9,0x00,0x00,0x00,0x41,0x00,0x08,0x00, -0xe2,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0xbd,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x7b,0x00,0x00,0x00, -0x04,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x78,0x00,0x00,0x00, -0x06,0x01,0x00,0x00,0x05,0x01,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x07,0x01,0x00,0x00,0x06,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x08,0x01,0x00,0x00, -0x07,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x09,0x01,0x00,0x00,0x08,0x01,0x00,0x00,0xc1,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x10,0x01,0x00,0x00, -0x85,0x00,0x00,0x00,0xd9,0x00,0x00,0x00,0x41,0x00,0x08,0x00, -0xe2,0x00,0x00,0x00,0x11,0x01,0x00,0x00,0xbd,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0x10,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x78,0x00,0x00,0x00, -0x12,0x01,0x00,0x00,0x11,0x01,0x00,0x00,0xc4,0x00,0x05,0x00, -0x78,0x00,0x00,0x00,0x14,0x01,0x00,0x00,0x82,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xc7,0x00,0x05,0x00,0x78,0x00,0x00,0x00, -0x15,0x01,0x00,0x00,0x12,0x01,0x00,0x00,0x14,0x01,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x16,0x01,0x00,0x00, -0x15,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x17,0x01,0x00,0x00,0x16,0x01,0x00,0x00,0xab,0x00,0x05,0x00, -0xaa,0x00,0x00,0x00,0x18,0x01,0x00,0x00,0x17,0x01,0x00,0x00, -0x59,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,0x1b,0x00,0x00,0x00, -0x19,0x01,0x00,0x00,0x18,0x01,0x00,0x00,0x59,0x00,0x00,0x00, -0x3b,0x00,0x00,0x00,0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x1a,0x01,0x00,0x00,0x09,0x01,0x00,0x00,0x19,0x01,0x00,0x00, -0x6f,0x00,0x04,0x00,0x92,0x00,0x00,0x00,0x1b,0x01,0x00,0x00, -0x1a,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x23,0x01,0x00,0x00,0xda,0x00,0x00,0x00,0x87,0x00,0x00,0x00, -0x41,0x00,0x06,0x00,0xc2,0x00,0x00,0x00,0x24,0x01,0x00,0x00, -0xd4,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x23,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb8,0x00,0x00,0x00,0x25,0x01,0x00,0x00, -0x24,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x92,0x00,0x00,0x00, -0x26,0x01,0x00,0x00,0x25,0x01,0x00,0x00,0x41,0x00,0x08,0x00, -0xe2,0x00,0x00,0x00,0x2a,0x01,0x00,0x00,0xbd,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0xcf,0x00,0x00,0x00, -0xcf,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x78,0x00,0x00,0x00, -0x2b,0x01,0x00,0x00,0x2a,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, -0x78,0x00,0x00,0x00,0x2d,0x01,0x00,0x00,0x2b,0x01,0x00,0x00, -0x7e,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x2e,0x01,0x00,0x00,0x2d,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x2f,0x01,0x00,0x00,0x2e,0x01,0x00,0x00, -0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x30,0x01,0x00,0x00, -0x2f,0x01,0x00,0x00,0xe9,0x00,0x00,0x00,0x41,0x00,0x08,0x00, -0xe2,0x00,0x00,0x00,0x34,0x01,0x00,0x00,0xbd,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0xcf,0x00,0x00,0x00, -0x28,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x78,0x00,0x00,0x00, -0x35,0x01,0x00,0x00,0x34,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, -0x78,0x00,0x00,0x00,0x38,0x01,0x00,0x00,0x35,0x01,0x00,0x00, -0x7e,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x39,0x01,0x00,0x00,0x38,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x3a,0x01,0x00,0x00,0x39,0x01,0x00,0x00, -0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x3b,0x01,0x00,0x00, -0x3a,0x01,0x00,0x00,0xc1,0x00,0x00,0x00,0xc4,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x3c,0x01,0x00,0x00,0x3b,0x01,0x00,0x00, -0x3b,0x00,0x00,0x00,0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x3d,0x01,0x00,0x00,0x30,0x01,0x00,0x00,0x3c,0x01,0x00,0x00, -0x72,0x00,0x04,0x00,0x80,0x00,0x00,0x00,0x3e,0x01,0x00,0x00, -0x3d,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x3f,0x01,0x00,0x00,0x3e,0x01,0x00,0x00,0x82,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x40,0x01,0x00,0x00,0x3f,0x01,0x00,0x00, -0xfa,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x92,0x00,0x00,0x00, -0x41,0x01,0x00,0x00,0x40,0x01,0x00,0x00,0x85,0x00,0x05,0x00, -0x92,0x00,0x00,0x00,0x42,0x01,0x00,0x00,0x26,0x01,0x00,0x00, -0x41,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x78,0x00,0x00,0x00, -0x4b,0x01,0x00,0x00,0x05,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, -0x78,0x00,0x00,0x00,0x4c,0x01,0x00,0x00,0x4b,0x01,0x00,0x00, -0xcf,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x4d,0x01,0x00,0x00,0x4c,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x4e,0x01,0x00,0x00,0x4d,0x01,0x00,0x00, -0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x4f,0x01,0x00,0x00, -0x4e,0x01,0x00,0x00,0xc1,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x78,0x00,0x00,0x00,0x58,0x01,0x00,0x00,0x11,0x01,0x00,0x00, -0xc4,0x00,0x05,0x00,0x78,0x00,0x00,0x00,0x5a,0x01,0x00,0x00, -0x82,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,0xc7,0x00,0x05,0x00, -0x78,0x00,0x00,0x00,0x5b,0x01,0x00,0x00,0x58,0x01,0x00,0x00, -0x5a,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x5c,0x01,0x00,0x00,0x5b,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,0x5c,0x01,0x00,0x00, -0xab,0x00,0x05,0x00,0xaa,0x00,0x00,0x00,0x5e,0x01,0x00,0x00, -0x5d,0x01,0x00,0x00,0x59,0x00,0x00,0x00,0xa9,0x00,0x06,0x00, -0x1b,0x00,0x00,0x00,0x5f,0x01,0x00,0x00,0x5e,0x01,0x00,0x00, -0x59,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,0x82,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x60,0x01,0x00,0x00,0x4f,0x01,0x00,0x00, -0x5f,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x92,0x00,0x00,0x00, -0x61,0x01,0x00,0x00,0x60,0x01,0x00,0x00,0x85,0x00,0x05,0x00, -0x92,0x00,0x00,0x00,0x62,0x01,0x00,0x00,0x42,0x01,0x00,0x00, -0x61,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0x92,0x00,0x00,0x00, -0x63,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0xfd,0x00,0x00,0x00,0x1b,0x01,0x00,0x00,0x62,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6a,0x01,0x00,0x00, -0xda,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,0x41,0x00,0x06,0x00, -0xc2,0x00,0x00,0x00,0x6b,0x01,0x00,0x00,0xd4,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0x6a,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb8,0x00,0x00,0x00,0x6c,0x01,0x00,0x00,0x6b,0x01,0x00,0x00, -0x73,0x00,0x04,0x00,0x92,0x00,0x00,0x00,0x6d,0x01,0x00,0x00, -0x6c,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0xe2,0x00,0x00,0x00, -0x71,0x01,0x00,0x00,0xbd,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0xc0,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x3b,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x78,0x00,0x00,0x00,0x72,0x01,0x00,0x00, -0x71,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x78,0x00,0x00,0x00, -0x74,0x01,0x00,0x00,0x72,0x01,0x00,0x00,0x7e,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x75,0x01,0x00,0x00, -0x74,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x76,0x01,0x00,0x00,0x75,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x77,0x01,0x00,0x00,0x76,0x01,0x00,0x00, -0xe9,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x78,0x00,0x00,0x00, -0x7c,0x01,0x00,0x00,0xee,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x7e,0x01,0x00,0x00,0x7e,0x00,0x00,0x00, -0x69,0x00,0x00,0x00,0xc2,0x00,0x05,0x00,0x78,0x00,0x00,0x00, -0x7f,0x01,0x00,0x00,0x7c,0x01,0x00,0x00,0x7e,0x01,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x80,0x01,0x00,0x00, -0x7f,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x81,0x01,0x00,0x00,0x80,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x82,0x01,0x00,0x00,0x81,0x01,0x00,0x00, -0xc1,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x83,0x01,0x00,0x00,0x82,0x01,0x00,0x00,0x3b,0x00,0x00,0x00, -0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x84,0x01,0x00,0x00, -0x77,0x01,0x00,0x00,0x83,0x01,0x00,0x00,0x72,0x00,0x04,0x00, -0x80,0x00,0x00,0x00,0x85,0x01,0x00,0x00,0x84,0x01,0x00,0x00, -0x72,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x86,0x01,0x00,0x00, -0x85,0x01,0x00,0x00,0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x87,0x01,0x00,0x00,0x86,0x01,0x00,0x00,0xfa,0x00,0x00,0x00, -0x6f,0x00,0x04,0x00,0x92,0x00,0x00,0x00,0x88,0x01,0x00,0x00, -0x87,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x92,0x00,0x00,0x00, -0x89,0x01,0x00,0x00,0x6d,0x01,0x00,0x00,0x88,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0x78,0x00,0x00,0x00,0x92,0x01,0x00,0x00, -0x05,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x78,0x00,0x00,0x00, -0x93,0x01,0x00,0x00,0x92,0x01,0x00,0x00,0x3b,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x94,0x01,0x00,0x00, -0x93,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x95,0x01,0x00,0x00,0x94,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x96,0x01,0x00,0x00,0x95,0x01,0x00,0x00, -0xc1,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x78,0x00,0x00,0x00, -0x9f,0x01,0x00,0x00,0x11,0x01,0x00,0x00,0xc4,0x00,0x05,0x00, -0x78,0x00,0x00,0x00,0xa1,0x01,0x00,0x00,0x82,0x00,0x00,0x00, -0xcf,0x00,0x00,0x00,0xc7,0x00,0x05,0x00,0x78,0x00,0x00,0x00, -0xa2,0x01,0x00,0x00,0x9f,0x01,0x00,0x00,0xa1,0x01,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa3,0x01,0x00,0x00, -0xa2,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0xa4,0x01,0x00,0x00,0xa3,0x01,0x00,0x00,0xab,0x00,0x05,0x00, -0xaa,0x00,0x00,0x00,0xa5,0x01,0x00,0x00,0xa4,0x01,0x00,0x00, -0x59,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,0x1b,0x00,0x00,0x00, -0xa6,0x01,0x00,0x00,0xa5,0x01,0x00,0x00,0x59,0x00,0x00,0x00, -0x3b,0x00,0x00,0x00,0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0xa7,0x01,0x00,0x00,0x96,0x01,0x00,0x00,0xa6,0x01,0x00,0x00, -0x6f,0x00,0x04,0x00,0x92,0x00,0x00,0x00,0xa8,0x01,0x00,0x00, -0xa7,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0x92,0x00,0x00,0x00, -0xaa,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x89,0x01,0x00,0x00,0xa8,0x01,0x00,0x00,0x63,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb2,0x01,0x00,0x00, -0xda,0x00,0x00,0x00,0xb1,0x01,0x00,0x00,0x41,0x00,0x06,0x00, -0xc2,0x00,0x00,0x00,0xb3,0x01,0x00,0x00,0xd4,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xb2,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb8,0x00,0x00,0x00,0xb4,0x01,0x00,0x00,0xb3,0x01,0x00,0x00, -0x73,0x00,0x04,0x00,0x92,0x00,0x00,0x00,0xb5,0x01,0x00,0x00, -0xb4,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0xe2,0x00,0x00,0x00, -0xb9,0x01,0x00,0x00,0xbd,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0xc0,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x45,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x78,0x00,0x00,0x00,0xba,0x01,0x00,0x00, -0xb9,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x78,0x00,0x00,0x00, -0xbc,0x01,0x00,0x00,0xba,0x01,0x00,0x00,0x7e,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xbd,0x01,0x00,0x00, -0xbc,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0xbe,0x01,0x00,0x00,0xbd,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0xbf,0x01,0x00,0x00,0xbe,0x01,0x00,0x00, -0xe9,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x78,0x00,0x00,0x00, -0xc4,0x01,0x00,0x00,0x34,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, -0x78,0x00,0x00,0x00,0xc7,0x01,0x00,0x00,0xc4,0x01,0x00,0x00, -0x7e,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xc8,0x01,0x00,0x00,0xc7,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0xc9,0x01,0x00,0x00,0xc8,0x01,0x00,0x00, -0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xca,0x01,0x00,0x00, -0xc9,0x01,0x00,0x00,0xc1,0x00,0x00,0x00,0xc4,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0xcb,0x01,0x00,0x00,0xca,0x01,0x00,0x00, +0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x18,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00, +0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x18,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x07,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x18,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00, +0x09,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x0a,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0x18,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x4a,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x4e,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x6e,0x00,0x00,0x00, +0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xba,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xbc,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xbe,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xc0,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0xc0,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0xc0,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x6c,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xc1,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x48,0x00,0x04,0x00, +0xc2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0xc2,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xc4,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,0x21,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xd8,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x48,0x00,0x04,0x00, +0xd9,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0xd9,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0xd9,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xdb,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xdb,0x00,0x00,0x00,0x21,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x50,0x03,0x00,0x00, +0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00, +0x51,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x51,0x03,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0x51,0x03,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x53,0x03,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x53,0x03,0x00,0x00,0x21,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x5b,0x03,0x00,0x00, +0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x13,0x00,0x02,0x00, +0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x17,0x00,0x04,0x00, +0x0f,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x10,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x0f,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00, +0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x13,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x1e,0x00,0x0d,0x00,0x18,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x19,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, +0x09,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x1d,0x00,0x00,0x00,0x09,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x28,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,0x09,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x00,0x00, +0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x3b,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x05,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x45,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00, +0x4a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00,0x4e,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x51,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x64,0x00,0x00,0x00, +0x00,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00, +0x6e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x15,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x82,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x83,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x15,0x00,0x04,0x00,0x87,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x8e,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x94,0x00,0x00,0x00,0x80,0x00,0x00,0x00, +0x16,0x00,0x03,0x00,0x99,0x00,0x00,0x00,0x20,0x00,0x00,0x00, +0x1c,0x00,0x04,0x00,0x9a,0x00,0x00,0x00,0x99,0x00,0x00,0x00, +0x8e,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x9b,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0x9b,0x00,0x00,0x00,0x9c,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x9d,0x00,0x00,0x00, +0x10,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x99,0x00,0x00,0x00, +0xa2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0xa3,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x99,0x00,0x00,0x00, +0x14,0x00,0x02,0x00,0xb1,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, +0xba,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,0x8e,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xbb,0x00,0x00,0x00, +0x40,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0xbc,0x00,0x00,0x00, +0x7f,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xbd,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x1c,0x00,0x04,0x00,0xbe,0x00,0x00,0x00,0x7f,0x00,0x00,0x00, +0xbd,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0xbf,0x00,0x00,0x00, +0x10,0x00,0x00,0x00,0x1e,0x00,0x06,0x00,0xc0,0x00,0x00,0x00, +0xba,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,0xbe,0x00,0x00,0x00, +0xbf,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0xc1,0x00,0x00,0x00, +0xc0,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xc2,0x00,0x00,0x00, +0xc1,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xc3,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0xc2,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0xc3,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xc8,0x00,0x00,0x00, +0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xc9,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x1d,0x00,0x03,0x00,0xd8,0x00,0x00,0x00,0xbf,0x00,0x00,0x00, +0x1e,0x00,0x03,0x00,0xd9,0x00,0x00,0x00,0xd8,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0xda,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0xd9,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xda,0x00,0x00,0x00, +0xdb,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0xe9,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x7f,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xf0,0x00,0x00,0x00, +0x0f,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x01,0x01,0x00,0x00,0x20,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xb8,0x01,0x00,0x00,0x60,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x48,0x02,0x00,0x00, +0x30,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x5a,0x02,0x00,0x00,0x0b,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x93,0x02,0x00,0x00,0x50,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xdd,0x02,0x00,0x00, +0x70,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x32,0x03,0x00,0x00,0x08,0x01,0x00,0x00,0x1d,0x00,0x03,0x00, +0x50,0x03,0x00,0x00,0x99,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, +0x51,0x03,0x00,0x00,0x50,0x03,0x00,0x00,0x20,0x00,0x04,0x00, +0x52,0x03,0x00,0x00,0x0c,0x00,0x00,0x00,0x51,0x03,0x00,0x00, +0x3b,0x00,0x04,0x00,0x52,0x03,0x00,0x00,0x53,0x03,0x00,0x00, +0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x59,0x03,0x00,0x00, +0x0c,0x00,0x00,0x00,0x99,0x00,0x00,0x00,0x2c,0x00,0x06,0x00, +0x0f,0x00,0x00,0x00,0x5b,0x03,0x00,0x00,0x8e,0x00,0x00,0x00, +0x12,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x36,0x00,0x05,0x00, +0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x03,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00,0x4c,0x00,0x00,0x00, +0x4a,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,0x4c,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00,0x4f,0x00,0x00,0x00, +0x4e,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x4f,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00,0x52,0x00,0x00,0x00, +0x4a,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x53,0x00,0x00,0x00,0x52,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x54,0x00,0x00,0x00, +0x50,0x00,0x00,0x00,0x53,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x4d,0x00,0x00,0x00, +0x54,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00, +0x63,0x03,0x00,0x00,0x11,0x00,0x00,0x00,0x12,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x64,0x03,0x00,0x00, +0x63,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00, +0x66,0x03,0x00,0x00,0x1a,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x67,0x03,0x00,0x00, +0x66,0x03,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x68,0x03,0x00,0x00,0x64,0x03,0x00,0x00,0x67,0x03,0x00,0x00, +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6c,0x03,0x00,0x00, +0x64,0x03,0x00,0x00,0x67,0x03,0x00,0x00,0x41,0x00,0x05,0x00, +0x1d,0x00,0x00,0x00,0x6e,0x03,0x00,0x00,0x1a,0x00,0x00,0x00, +0x28,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x6f,0x03,0x00,0x00,0x6e,0x03,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x70,0x03,0x00,0x00,0x68,0x03,0x00,0x00, +0x6f,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00, +0x72,0x03,0x00,0x00,0x1a,0x00,0x00,0x00,0x2e,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x73,0x03,0x00,0x00, +0x72,0x03,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x74,0x03,0x00,0x00,0x6c,0x03,0x00,0x00,0x73,0x03,0x00,0x00, +0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00,0x76,0x03,0x00,0x00, +0x1a,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x77,0x03,0x00,0x00,0x76,0x03,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x78,0x03,0x00,0x00, +0x70,0x03,0x00,0x00,0x77,0x03,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x7a,0x03,0x00,0x00,0x78,0x03,0x00,0x00, +0x74,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00, +0x7c,0x03,0x00,0x00,0x1a,0x00,0x00,0x00,0x3b,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x7d,0x03,0x00,0x00, +0x7c,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x7e,0x03,0x00,0x00,0x7a,0x03,0x00,0x00,0x7d,0x03,0x00,0x00, +0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00,0x80,0x03,0x00,0x00, +0x1a,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x81,0x03,0x00,0x00,0x80,0x03,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x82,0x03,0x00,0x00, +0x64,0x03,0x00,0x00,0x81,0x03,0x00,0x00,0x41,0x00,0x05,0x00, +0x1d,0x00,0x00,0x00,0x84,0x03,0x00,0x00,0x1a,0x00,0x00,0x00, +0x45,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x85,0x03,0x00,0x00,0x84,0x03,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x86,0x03,0x00,0x00,0x64,0x03,0x00,0x00, +0x85,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00, +0x62,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x63,0x00,0x00,0x00, +0x62,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x65,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x64,0x00,0x00,0x00, +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x68,0x00,0x00,0x00, +0x7e,0x03,0x00,0x00,0x64,0x00,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,0x55,0x00,0x00,0x00, +0x65,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x6c,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x6b,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00,0x6f,0x00,0x00,0x00, +0x6e,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x6f,0x00,0x00,0x00, +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x71,0x00,0x00,0x00, +0x70,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0x89,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x75,0x00,0x00,0x00,0x70,0x00,0x00,0x00, +0x51,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x79,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x78,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7d,0x00,0x00,0x00, +0x78,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x82,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x71,0x00,0x00,0x00, +0x7d,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x85,0x00,0x00,0x00,0x83,0x00,0x00,0x00,0x79,0x00,0x00,0x00, +0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x86,0x00,0x00,0x00, +0x82,0x00,0x00,0x00,0x85,0x00,0x00,0x00,0x72,0x00,0x04,0x00, +0x87,0x00,0x00,0x00,0x88,0x00,0x00,0x00,0x86,0x00,0x00,0x00, +0x7c,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0x89,0x00,0x00,0x00, +0x88,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x8c,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0x7e,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x90,0x00,0x00,0x00, +0x8e,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x92,0x00,0x00,0x00,0x90,0x00,0x00,0x00, +0x8c,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x96,0x00,0x00,0x00,0x94,0x00,0x00,0x00,0x79,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x98,0x00,0x00,0x00, +0x96,0x00,0x00,0x00,0x8c,0x00,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x9f,0x00,0x00,0x00,0x9d,0x00,0x00,0x00, +0x75,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xa1,0x00,0x00,0x00,0x9f,0x00,0x00,0x00,0x71,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0xa3,0x00,0x00,0x00,0xa4,0x00,0x00,0x00, +0x9c,0x00,0x00,0x00,0xa1,0x00,0x00,0x00,0x3e,0x00,0x03,0x00, +0xa4,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, +0xaa,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xaa,0x00,0x00,0x00, +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x87,0x03,0x00,0x00, +0x75,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x31,0x03,0x00,0x00, +0xad,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0xb1,0x00,0x00,0x00, +0xb2,0x00,0x00,0x00,0x87,0x03,0x00,0x00,0x65,0x00,0x00,0x00, +0xf6,0x00,0x04,0x00,0xac,0x00,0x00,0x00,0xad,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xb2,0x00,0x00,0x00, +0xab,0x00,0x00,0x00,0xac,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xab,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xb5,0x00,0x00,0x00,0x87,0x03,0x00,0x00,0x64,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb7,0x00,0x00,0x00, +0xb5,0x00,0x00,0x00,0x98,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,0x6c,0x00,0x00,0x00, +0x87,0x03,0x00,0x00,0x41,0x00,0x07,0x00,0xc9,0x00,0x00,0x00, +0xca,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0xc7,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0xbf,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,0xca,0x00,0x00,0x00, +0x73,0x00,0x04,0x00,0x99,0x00,0x00,0x00,0xcc,0x00,0x00,0x00, +0xcb,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xd0,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0xd0,0x00,0x00,0x00,0xf5,0x00,0x07,0x00, +0x99,0x00,0x00,0x00,0x8b,0x03,0x00,0x00,0xa2,0x00,0x00,0x00, +0xab,0x00,0x00,0x00,0x22,0x03,0x00,0x00,0xd1,0x00,0x00,0x00, +0xf5,0x00,0x07,0x00,0x1b,0x00,0x00,0x00,0x8a,0x03,0x00,0x00, +0x61,0x00,0x00,0x00,0xab,0x00,0x00,0x00,0x24,0x03,0x00,0x00, +0xd1,0x00,0x00,0x00,0xb1,0x00,0x05,0x00,0xb1,0x00,0x00,0x00, +0xd7,0x00,0x00,0x00,0x8a,0x03,0x00,0x00,0xd6,0x00,0x00,0x00, +0xf6,0x00,0x04,0x00,0xd2,0x00,0x00,0x00,0xd1,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xd7,0x00,0x00,0x00, +0xd1,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xd1,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xde,0x00,0x00,0x00,0x82,0x03,0x00,0x00,0xb7,0x00,0x00,0x00, +0x7c,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xe0,0x00,0x00,0x00, +0x8a,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xe1,0x00,0x00,0x00,0xde,0x00,0x00,0x00,0xe0,0x00,0x00,0x00, +0x41,0x00,0x06,0x00,0xc9,0x00,0x00,0x00,0xe3,0x00,0x00,0x00, +0xdb,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xe1,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0xbf,0x00,0x00,0x00,0xe4,0x00,0x00,0x00, +0xe3,0x00,0x00,0x00,0x73,0x00,0x04,0x00,0x99,0x00,0x00,0x00, +0xe5,0x00,0x00,0x00,0xe4,0x00,0x00,0x00,0x41,0x00,0x08,0x00, +0xe9,0x00,0x00,0x00,0xea,0x00,0x00,0x00,0xc4,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,0xd6,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00, +0xeb,0x00,0x00,0x00,0xea,0x00,0x00,0x00,0xc2,0x00,0x05,0x00, +0x7f,0x00,0x00,0x00,0xed,0x00,0x00,0x00,0xeb,0x00,0x00,0x00, +0x85,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xee,0x00,0x00,0x00,0xed,0x00,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0xef,0x00,0x00,0x00,0xee,0x00,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xf1,0x00,0x00,0x00, +0xef,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x41,0x00,0x08,0x00, +0xe9,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,0xc4,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,0xd6,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00, +0xf6,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,0xc2,0x00,0x05,0x00, +0x7f,0x00,0x00,0x00,0xf9,0x00,0x00,0x00,0xf6,0x00,0x00,0x00, +0x85,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xfa,0x00,0x00,0x00,0xf9,0x00,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0xfa,0x00,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xfc,0x00,0x00,0x00, +0xfb,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0xc4,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,0xfc,0x00,0x00,0x00, 0x3b,0x00,0x00,0x00,0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0xcc,0x01,0x00,0x00,0xbf,0x01,0x00,0x00,0xcb,0x01,0x00,0x00, -0x72,0x00,0x04,0x00,0x80,0x00,0x00,0x00,0xcd,0x01,0x00,0x00, -0xcc,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0xce,0x01,0x00,0x00,0xcd,0x01,0x00,0x00,0x82,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0xcf,0x01,0x00,0x00,0xce,0x01,0x00,0x00, -0xfa,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x92,0x00,0x00,0x00, -0xd0,0x01,0x00,0x00,0xcf,0x01,0x00,0x00,0x85,0x00,0x05,0x00, -0x92,0x00,0x00,0x00,0xd1,0x01,0x00,0x00,0xb5,0x01,0x00,0x00, -0xd0,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x78,0x00,0x00,0x00, -0xda,0x01,0x00,0x00,0x05,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, -0x78,0x00,0x00,0x00,0xdb,0x01,0x00,0x00,0xda,0x01,0x00,0x00, -0x45,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xdc,0x01,0x00,0x00,0xdb,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0xdd,0x01,0x00,0x00,0xdc,0x01,0x00,0x00, -0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xde,0x01,0x00,0x00, -0xdd,0x01,0x00,0x00,0xc1,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x78,0x00,0x00,0x00,0xe7,0x01,0x00,0x00,0x11,0x01,0x00,0x00, -0xc4,0x00,0x05,0x00,0x78,0x00,0x00,0x00,0xe9,0x01,0x00,0x00, -0x82,0x00,0x00,0x00,0xc1,0x00,0x00,0x00,0xc7,0x00,0x05,0x00, -0x78,0x00,0x00,0x00,0xea,0x01,0x00,0x00,0xe7,0x01,0x00,0x00, -0xe9,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xeb,0x01,0x00,0x00,0xea,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0xec,0x01,0x00,0x00,0xeb,0x01,0x00,0x00, -0xab,0x00,0x05,0x00,0xaa,0x00,0x00,0x00,0xed,0x01,0x00,0x00, -0xec,0x01,0x00,0x00,0x59,0x00,0x00,0x00,0xa9,0x00,0x06,0x00, -0x1b,0x00,0x00,0x00,0xee,0x01,0x00,0x00,0xed,0x01,0x00,0x00, -0x59,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,0x82,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0xef,0x01,0x00,0x00,0xde,0x01,0x00,0x00, -0xee,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x92,0x00,0x00,0x00, -0xf0,0x01,0x00,0x00,0xef,0x01,0x00,0x00,0x0c,0x00,0x08,0x00, -0x92,0x00,0x00,0x00,0xf2,0x01,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0xd1,0x01,0x00,0x00,0xf0,0x01,0x00,0x00, -0xaa,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xf9,0x01,0x00,0x00,0xda,0x00,0x00,0x00,0x96,0x00,0x00,0x00, -0x41,0x00,0x06,0x00,0xc2,0x00,0x00,0x00,0xfa,0x01,0x00,0x00, -0xd4,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xf9,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb8,0x00,0x00,0x00,0xfb,0x01,0x00,0x00, -0xfa,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x92,0x00,0x00,0x00, -0xfc,0x01,0x00,0x00,0xfb,0x01,0x00,0x00,0x41,0x00,0x08,0x00, -0xe2,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0xbd,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0xcf,0x00,0x00,0x00, -0x7b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x78,0x00,0x00,0x00, -0x01,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0xc2,0x00,0x05,0x00, -0x78,0x00,0x00,0x00,0x03,0x02,0x00,0x00,0x01,0x02,0x00,0x00, -0x7e,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x04,0x02,0x00,0x00,0x03,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x05,0x02,0x00,0x00,0x04,0x02,0x00,0x00, -0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x06,0x02,0x00,0x00, -0x05,0x02,0x00,0x00,0xe9,0x00,0x00,0x00,0x41,0x00,0x08,0x00, -0xe2,0x00,0x00,0x00,0x0a,0x02,0x00,0x00,0xbd,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0xcf,0x00,0x00,0x00, -0x2e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x78,0x00,0x00,0x00, -0x0b,0x02,0x00,0x00,0x0a,0x02,0x00,0x00,0xc2,0x00,0x05,0x00, -0x78,0x00,0x00,0x00,0x0e,0x02,0x00,0x00,0x0b,0x02,0x00,0x00, -0x7e,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x0f,0x02,0x00,0x00,0x0e,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x10,0x02,0x00,0x00,0x0f,0x02,0x00,0x00, -0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x11,0x02,0x00,0x00, -0x10,0x02,0x00,0x00,0xc1,0x00,0x00,0x00,0xc4,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x12,0x02,0x00,0x00,0x11,0x02,0x00,0x00, +0xfe,0x00,0x00,0x00,0xf1,0x00,0x00,0x00,0xfd,0x00,0x00,0x00, +0x72,0x00,0x04,0x00,0x87,0x00,0x00,0x00,0xff,0x00,0x00,0x00, +0xfe,0x00,0x00,0x00,0x72,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x00,0x01,0x00,0x00,0xff,0x00,0x00,0x00,0x82,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x02,0x01,0x00,0x00,0x00,0x01,0x00,0x00, +0x01,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x99,0x00,0x00,0x00, +0x03,0x01,0x00,0x00,0x02,0x01,0x00,0x00,0x85,0x00,0x05,0x00, +0x99,0x00,0x00,0x00,0x04,0x01,0x00,0x00,0xe5,0x00,0x00,0x00, +0x03,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x0b,0x01,0x00,0x00,0x92,0x00,0x00,0x00,0xe0,0x00,0x00,0x00, +0x41,0x00,0x08,0x00,0xe9,0x00,0x00,0x00,0x0c,0x01,0x00,0x00, +0xc4,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xc7,0x00,0x00,0x00, +0x82,0x00,0x00,0x00,0x0b,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0x7f,0x00,0x00,0x00,0x0d,0x01,0x00,0x00,0x0c,0x01,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x0e,0x01,0x00,0x00, +0x0d,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x0f,0x01,0x00,0x00,0x0e,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x10,0x01,0x00,0x00,0x0f,0x01,0x00,0x00, +0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x17,0x01,0x00,0x00,0x8c,0x00,0x00,0x00,0xe0,0x00,0x00,0x00, +0x41,0x00,0x08,0x00,0xe9,0x00,0x00,0x00,0x18,0x01,0x00,0x00, +0xc4,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xc7,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0x17,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0x7f,0x00,0x00,0x00,0x19,0x01,0x00,0x00,0x18,0x01,0x00,0x00, +0xc4,0x00,0x05,0x00,0x7f,0x00,0x00,0x00,0x1b,0x01,0x00,0x00, +0x89,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xc7,0x00,0x05,0x00, +0x7f,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,0x19,0x01,0x00,0x00, +0x1b,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x1d,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x1e,0x01,0x00,0x00,0x1d,0x01,0x00,0x00, +0xab,0x00,0x05,0x00,0xb1,0x00,0x00,0x00,0x1f,0x01,0x00,0x00, +0x1e,0x01,0x00,0x00,0x61,0x00,0x00,0x00,0xa9,0x00,0x06,0x00, +0x1b,0x00,0x00,0x00,0x20,0x01,0x00,0x00,0x1f,0x01,0x00,0x00, +0x61,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,0x82,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x21,0x01,0x00,0x00,0x10,0x01,0x00,0x00, +0x20,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x99,0x00,0x00,0x00, +0x22,0x01,0x00,0x00,0x21,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x2a,0x01,0x00,0x00,0xe1,0x00,0x00,0x00, +0x8e,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xc9,0x00,0x00,0x00, +0x2b,0x01,0x00,0x00,0xdb,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0x2a,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xbf,0x00,0x00,0x00, +0x2c,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,0x73,0x00,0x04,0x00, +0x99,0x00,0x00,0x00,0x2d,0x01,0x00,0x00,0x2c,0x01,0x00,0x00, +0x41,0x00,0x08,0x00,0xe9,0x00,0x00,0x00,0x31,0x01,0x00,0x00, +0xc4,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xc7,0x00,0x00,0x00, +0xd6,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x7f,0x00,0x00,0x00,0x32,0x01,0x00,0x00,0x31,0x01,0x00,0x00, +0xc2,0x00,0x05,0x00,0x7f,0x00,0x00,0x00,0x34,0x01,0x00,0x00, +0x32,0x01,0x00,0x00,0x85,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x35,0x01,0x00,0x00,0x34,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x36,0x01,0x00,0x00, +0x35,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x37,0x01,0x00,0x00,0x36,0x01,0x00,0x00,0xf0,0x00,0x00,0x00, +0x41,0x00,0x08,0x00,0xe9,0x00,0x00,0x00,0x3b,0x01,0x00,0x00, +0xc4,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xc7,0x00,0x00,0x00, +0xd6,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x7f,0x00,0x00,0x00,0x3c,0x01,0x00,0x00,0x3b,0x01,0x00,0x00, +0xc2,0x00,0x05,0x00,0x7f,0x00,0x00,0x00,0x3f,0x01,0x00,0x00, +0x3c,0x01,0x00,0x00,0x85,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x40,0x01,0x00,0x00,0x3f,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x41,0x01,0x00,0x00, +0x40,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x42,0x01,0x00,0x00,0x41,0x01,0x00,0x00,0xc8,0x00,0x00,0x00, +0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x43,0x01,0x00,0x00, +0x42,0x01,0x00,0x00,0x3b,0x00,0x00,0x00,0xc5,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x44,0x01,0x00,0x00,0x37,0x01,0x00,0x00, +0x43,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x87,0x00,0x00,0x00, +0x45,0x01,0x00,0x00,0x44,0x01,0x00,0x00,0x72,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x46,0x01,0x00,0x00,0x45,0x01,0x00,0x00, +0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x47,0x01,0x00,0x00, +0x46,0x01,0x00,0x00,0x01,0x01,0x00,0x00,0x6f,0x00,0x04,0x00, +0x99,0x00,0x00,0x00,0x48,0x01,0x00,0x00,0x47,0x01,0x00,0x00, +0x85,0x00,0x05,0x00,0x99,0x00,0x00,0x00,0x49,0x01,0x00,0x00, +0x2d,0x01,0x00,0x00,0x48,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0x7f,0x00,0x00,0x00,0x52,0x01,0x00,0x00,0x0c,0x01,0x00,0x00, +0xc2,0x00,0x05,0x00,0x7f,0x00,0x00,0x00,0x53,0x01,0x00,0x00, +0x52,0x01,0x00,0x00,0xd6,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x54,0x01,0x00,0x00,0x53,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x55,0x01,0x00,0x00, +0x54,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x56,0x01,0x00,0x00,0x55,0x01,0x00,0x00,0xc8,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0x5f,0x01,0x00,0x00, +0x18,0x01,0x00,0x00,0xc4,0x00,0x05,0x00,0x7f,0x00,0x00,0x00, +0x61,0x01,0x00,0x00,0x89,0x00,0x00,0x00,0x82,0x00,0x00,0x00, +0xc7,0x00,0x05,0x00,0x7f,0x00,0x00,0x00,0x62,0x01,0x00,0x00, +0x5f,0x01,0x00,0x00,0x61,0x01,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x63,0x01,0x00,0x00,0x62,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x64,0x01,0x00,0x00, +0x63,0x01,0x00,0x00,0xab,0x00,0x05,0x00,0xb1,0x00,0x00,0x00, +0x65,0x01,0x00,0x00,0x64,0x01,0x00,0x00,0x61,0x00,0x00,0x00, +0xa9,0x00,0x06,0x00,0x1b,0x00,0x00,0x00,0x66,0x01,0x00,0x00, +0x65,0x01,0x00,0x00,0x61,0x00,0x00,0x00,0x3b,0x00,0x00,0x00, +0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x67,0x01,0x00,0x00, +0x56,0x01,0x00,0x00,0x66,0x01,0x00,0x00,0x6f,0x00,0x04,0x00, +0x99,0x00,0x00,0x00,0x68,0x01,0x00,0x00,0x67,0x01,0x00,0x00, +0x85,0x00,0x05,0x00,0x99,0x00,0x00,0x00,0x69,0x01,0x00,0x00, +0x49,0x01,0x00,0x00,0x68,0x01,0x00,0x00,0x0c,0x00,0x08,0x00, +0x99,0x00,0x00,0x00,0x6a,0x01,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x04,0x01,0x00,0x00,0x22,0x01,0x00,0x00, +0x69,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x71,0x01,0x00,0x00,0xe1,0x00,0x00,0x00,0xbb,0x00,0x00,0x00, +0x41,0x00,0x06,0x00,0xc9,0x00,0x00,0x00,0x72,0x01,0x00,0x00, +0xdb,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x71,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0xbf,0x00,0x00,0x00,0x73,0x01,0x00,0x00, +0x72,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x99,0x00,0x00,0x00, +0x74,0x01,0x00,0x00,0x73,0x01,0x00,0x00,0x41,0x00,0x08,0x00, +0xe9,0x00,0x00,0x00,0x78,0x01,0x00,0x00,0xc4,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,0xd6,0x00,0x00,0x00, +0x3b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00, +0x79,0x01,0x00,0x00,0x78,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, +0x7f,0x00,0x00,0x00,0x7b,0x01,0x00,0x00,0x79,0x01,0x00,0x00, +0x85,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x7c,0x01,0x00,0x00,0x7b,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x7d,0x01,0x00,0x00,0x7c,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x7e,0x01,0x00,0x00, +0x7d,0x01,0x00,0x00,0xf0,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x7f,0x00,0x00,0x00,0x83,0x01,0x00,0x00,0xf5,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x85,0x01,0x00,0x00, +0x85,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0xc2,0x00,0x05,0x00, +0x7f,0x00,0x00,0x00,0x86,0x01,0x00,0x00,0x83,0x01,0x00,0x00, +0x85,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x87,0x01,0x00,0x00,0x86,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x88,0x01,0x00,0x00,0x87,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x89,0x01,0x00,0x00, +0x88,0x01,0x00,0x00,0xc8,0x00,0x00,0x00,0xc4,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x8a,0x01,0x00,0x00,0x89,0x01,0x00,0x00, 0x3b,0x00,0x00,0x00,0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x13,0x02,0x00,0x00,0x06,0x02,0x00,0x00,0x12,0x02,0x00,0x00, -0x72,0x00,0x04,0x00,0x80,0x00,0x00,0x00,0x14,0x02,0x00,0x00, -0x13,0x02,0x00,0x00,0x72,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x15,0x02,0x00,0x00,0x14,0x02,0x00,0x00,0x82,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x16,0x02,0x00,0x00,0x15,0x02,0x00,0x00, -0xfa,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x92,0x00,0x00,0x00, -0x17,0x02,0x00,0x00,0x16,0x02,0x00,0x00,0x85,0x00,0x05,0x00, -0x92,0x00,0x00,0x00,0x18,0x02,0x00,0x00,0xfc,0x01,0x00,0x00, -0x17,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x20,0x02,0x00,0x00,0x04,0x01,0x00,0x00,0x96,0x00,0x00,0x00, -0x41,0x00,0x08,0x00,0xe2,0x00,0x00,0x00,0x21,0x02,0x00,0x00, -0xbd,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xc0,0x00,0x00,0x00, -0x7b,0x00,0x00,0x00,0x20,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0x78,0x00,0x00,0x00,0x22,0x02,0x00,0x00,0x21,0x02,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x23,0x02,0x00,0x00, -0x22,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x24,0x02,0x00,0x00,0x23,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x25,0x02,0x00,0x00,0x24,0x02,0x00,0x00, -0xc1,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x2d,0x02,0x00,0x00,0x10,0x01,0x00,0x00,0x96,0x00,0x00,0x00, -0x41,0x00,0x08,0x00,0xe2,0x00,0x00,0x00,0x2e,0x02,0x00,0x00, -0xbd,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xc0,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0x2d,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0x78,0x00,0x00,0x00,0x2f,0x02,0x00,0x00,0x2e,0x02,0x00,0x00, -0xc7,0x00,0x05,0x00,0x78,0x00,0x00,0x00,0x32,0x02,0x00,0x00, -0x2f,0x02,0x00,0x00,0x14,0x01,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x33,0x02,0x00,0x00,0x32,0x02,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x34,0x02,0x00,0x00, -0x33,0x02,0x00,0x00,0xab,0x00,0x05,0x00,0xaa,0x00,0x00,0x00, -0x35,0x02,0x00,0x00,0x34,0x02,0x00,0x00,0x59,0x00,0x00,0x00, -0xa9,0x00,0x06,0x00,0x1b,0x00,0x00,0x00,0x36,0x02,0x00,0x00, -0x35,0x02,0x00,0x00,0x59,0x00,0x00,0x00,0x3b,0x00,0x00,0x00, -0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x37,0x02,0x00,0x00, -0x25,0x02,0x00,0x00,0x36,0x02,0x00,0x00,0x6f,0x00,0x04,0x00, -0x92,0x00,0x00,0x00,0x38,0x02,0x00,0x00,0x37,0x02,0x00,0x00, -0x0c,0x00,0x08,0x00,0x92,0x00,0x00,0x00,0x3a,0x02,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x18,0x02,0x00,0x00, -0x38,0x02,0x00,0x00,0xf2,0x01,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x42,0x02,0x00,0x00,0xda,0x00,0x00,0x00, -0x41,0x02,0x00,0x00,0x41,0x00,0x06,0x00,0xc2,0x00,0x00,0x00, -0x43,0x02,0x00,0x00,0xd4,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0x42,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xb8,0x00,0x00,0x00, -0x44,0x02,0x00,0x00,0x43,0x02,0x00,0x00,0x73,0x00,0x04,0x00, -0x92,0x00,0x00,0x00,0x45,0x02,0x00,0x00,0x44,0x02,0x00,0x00, -0x41,0x00,0x08,0x00,0xe2,0x00,0x00,0x00,0x49,0x02,0x00,0x00, -0xbd,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xc0,0x00,0x00,0x00, -0xcf,0x00,0x00,0x00,0xc1,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x78,0x00,0x00,0x00,0x4a,0x02,0x00,0x00,0x49,0x02,0x00,0x00, -0xc2,0x00,0x05,0x00,0x78,0x00,0x00,0x00,0x4c,0x02,0x00,0x00, -0x4a,0x02,0x00,0x00,0x7e,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x4d,0x02,0x00,0x00,0x4c,0x02,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x4e,0x02,0x00,0x00, -0x4d,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x4f,0x02,0x00,0x00,0x4e,0x02,0x00,0x00,0xe9,0x00,0x00,0x00, -0x41,0x00,0x08,0x00,0xe2,0x00,0x00,0x00,0x54,0x02,0x00,0x00, -0xbd,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xc0,0x00,0x00,0x00, -0xcf,0x00,0x00,0x00,0x53,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0x78,0x00,0x00,0x00,0x55,0x02,0x00,0x00,0x54,0x02,0x00,0x00, -0xc2,0x00,0x05,0x00,0x78,0x00,0x00,0x00,0x58,0x02,0x00,0x00, -0x55,0x02,0x00,0x00,0x7e,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x59,0x02,0x00,0x00,0x58,0x02,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x5a,0x02,0x00,0x00, -0x59,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x5b,0x02,0x00,0x00,0x5a,0x02,0x00,0x00,0xc1,0x00,0x00,0x00, -0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x5c,0x02,0x00,0x00, -0x5b,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0xc5,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x5d,0x02,0x00,0x00,0x4f,0x02,0x00,0x00, -0x5c,0x02,0x00,0x00,0x72,0x00,0x04,0x00,0x80,0x00,0x00,0x00, -0x5e,0x02,0x00,0x00,0x5d,0x02,0x00,0x00,0x72,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x5f,0x02,0x00,0x00,0x5e,0x02,0x00,0x00, -0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x60,0x02,0x00,0x00, -0x5f,0x02,0x00,0x00,0xfa,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, -0x92,0x00,0x00,0x00,0x61,0x02,0x00,0x00,0x60,0x02,0x00,0x00, -0x85,0x00,0x05,0x00,0x92,0x00,0x00,0x00,0x62,0x02,0x00,0x00, -0x45,0x02,0x00,0x00,0x61,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0x78,0x00,0x00,0x00,0x6c,0x02,0x00,0x00,0x21,0x02,0x00,0x00, -0xc2,0x00,0x05,0x00,0x78,0x00,0x00,0x00,0x6d,0x02,0x00,0x00, -0x6c,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x6e,0x02,0x00,0x00,0x6d,0x02,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x6f,0x02,0x00,0x00, -0x6e,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x70,0x02,0x00,0x00,0x6f,0x02,0x00,0x00,0xc1,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x78,0x00,0x00,0x00,0x7a,0x02,0x00,0x00, -0x2e,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x78,0x00,0x00,0x00, -0x7d,0x02,0x00,0x00,0x7a,0x02,0x00,0x00,0x5a,0x01,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x7e,0x02,0x00,0x00, -0x7d,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x7f,0x02,0x00,0x00,0x7e,0x02,0x00,0x00,0xab,0x00,0x05,0x00, -0xaa,0x00,0x00,0x00,0x80,0x02,0x00,0x00,0x7f,0x02,0x00,0x00, -0x59,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,0x1b,0x00,0x00,0x00, -0x81,0x02,0x00,0x00,0x80,0x02,0x00,0x00,0x59,0x00,0x00,0x00, +0x8b,0x01,0x00,0x00,0x7e,0x01,0x00,0x00,0x8a,0x01,0x00,0x00, +0x72,0x00,0x04,0x00,0x87,0x00,0x00,0x00,0x8c,0x01,0x00,0x00, +0x8b,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x8d,0x01,0x00,0x00,0x8c,0x01,0x00,0x00,0x82,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x8e,0x01,0x00,0x00,0x8d,0x01,0x00,0x00, +0x01,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x99,0x00,0x00,0x00, +0x8f,0x01,0x00,0x00,0x8e,0x01,0x00,0x00,0x85,0x00,0x05,0x00, +0x99,0x00,0x00,0x00,0x90,0x01,0x00,0x00,0x74,0x01,0x00,0x00, +0x8f,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00, +0x99,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, +0x7f,0x00,0x00,0x00,0x9a,0x01,0x00,0x00,0x99,0x01,0x00,0x00, +0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x9b,0x01,0x00,0x00,0x9a,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x9c,0x01,0x00,0x00,0x9b,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x9d,0x01,0x00,0x00, +0x9c,0x01,0x00,0x00,0xc8,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x7f,0x00,0x00,0x00,0xa6,0x01,0x00,0x00,0x18,0x01,0x00,0x00, +0xc4,0x00,0x05,0x00,0x7f,0x00,0x00,0x00,0xa8,0x01,0x00,0x00, +0x89,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,0xc7,0x00,0x05,0x00, +0x7f,0x00,0x00,0x00,0xa9,0x01,0x00,0x00,0xa6,0x01,0x00,0x00, +0xa8,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xaa,0x01,0x00,0x00,0xa9,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0xab,0x01,0x00,0x00,0xaa,0x01,0x00,0x00, +0xab,0x00,0x05,0x00,0xb1,0x00,0x00,0x00,0xac,0x01,0x00,0x00, +0xab,0x01,0x00,0x00,0x61,0x00,0x00,0x00,0xa9,0x00,0x06,0x00, +0x1b,0x00,0x00,0x00,0xad,0x01,0x00,0x00,0xac,0x01,0x00,0x00, +0x61,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,0x82,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0xae,0x01,0x00,0x00,0x9d,0x01,0x00,0x00, +0xad,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x99,0x00,0x00,0x00, +0xaf,0x01,0x00,0x00,0xae,0x01,0x00,0x00,0x0c,0x00,0x08,0x00, +0x99,0x00,0x00,0x00,0xb1,0x01,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x90,0x01,0x00,0x00,0xaf,0x01,0x00,0x00, +0x6a,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xb9,0x01,0x00,0x00,0xe1,0x00,0x00,0x00,0xb8,0x01,0x00,0x00, +0x41,0x00,0x06,0x00,0xc9,0x00,0x00,0x00,0xba,0x01,0x00,0x00, +0xdb,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xb9,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0xbf,0x00,0x00,0x00,0xbb,0x01,0x00,0x00, +0xba,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x99,0x00,0x00,0x00, +0xbc,0x01,0x00,0x00,0xbb,0x01,0x00,0x00,0x41,0x00,0x08,0x00, +0xe9,0x00,0x00,0x00,0xc0,0x01,0x00,0x00,0xc4,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,0xd6,0x00,0x00,0x00, +0x45,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00, +0xc1,0x01,0x00,0x00,0xc0,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, +0x7f,0x00,0x00,0x00,0xc3,0x01,0x00,0x00,0xc1,0x01,0x00,0x00, +0x85,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xc4,0x01,0x00,0x00,0xc3,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0xc5,0x01,0x00,0x00,0xc4,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xc6,0x01,0x00,0x00, +0xc5,0x01,0x00,0x00,0xf0,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x7f,0x00,0x00,0x00,0xcb,0x01,0x00,0x00,0x3b,0x01,0x00,0x00, +0xc2,0x00,0x05,0x00,0x7f,0x00,0x00,0x00,0xce,0x01,0x00,0x00, +0xcb,0x01,0x00,0x00,0x85,0x01,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xcf,0x01,0x00,0x00,0xce,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xd0,0x01,0x00,0x00, +0xcf,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0xd1,0x01,0x00,0x00,0xd0,0x01,0x00,0x00,0xc8,0x00,0x00,0x00, +0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xd2,0x01,0x00,0x00, +0xd1,0x01,0x00,0x00,0x3b,0x00,0x00,0x00,0xc5,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0xd3,0x01,0x00,0x00,0xc6,0x01,0x00,0x00, +0xd2,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x87,0x00,0x00,0x00, +0xd4,0x01,0x00,0x00,0xd3,0x01,0x00,0x00,0x72,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0xd5,0x01,0x00,0x00,0xd4,0x01,0x00,0x00, +0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xd6,0x01,0x00,0x00, +0xd5,0x01,0x00,0x00,0x01,0x01,0x00,0x00,0x6f,0x00,0x04,0x00, +0x99,0x00,0x00,0x00,0xd7,0x01,0x00,0x00,0xd6,0x01,0x00,0x00, +0x85,0x00,0x05,0x00,0x99,0x00,0x00,0x00,0xd8,0x01,0x00,0x00, +0xbc,0x01,0x00,0x00,0xd7,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0x7f,0x00,0x00,0x00,0xe1,0x01,0x00,0x00,0x0c,0x01,0x00,0x00, +0xc2,0x00,0x05,0x00,0x7f,0x00,0x00,0x00,0xe2,0x01,0x00,0x00, +0xe1,0x01,0x00,0x00,0x45,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xe3,0x01,0x00,0x00,0xe2,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xe4,0x01,0x00,0x00, +0xe3,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0xe5,0x01,0x00,0x00,0xe4,0x01,0x00,0x00,0xc8,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0xee,0x01,0x00,0x00, +0x18,0x01,0x00,0x00,0xc4,0x00,0x05,0x00,0x7f,0x00,0x00,0x00, +0xf0,0x01,0x00,0x00,0x89,0x00,0x00,0x00,0xc8,0x00,0x00,0x00, +0xc7,0x00,0x05,0x00,0x7f,0x00,0x00,0x00,0xf1,0x01,0x00,0x00, +0xee,0x01,0x00,0x00,0xf0,0x01,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xf2,0x01,0x00,0x00,0xf1,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xf3,0x01,0x00,0x00, +0xf2,0x01,0x00,0x00,0xab,0x00,0x05,0x00,0xb1,0x00,0x00,0x00, +0xf4,0x01,0x00,0x00,0xf3,0x01,0x00,0x00,0x61,0x00,0x00,0x00, +0xa9,0x00,0x06,0x00,0x1b,0x00,0x00,0x00,0xf5,0x01,0x00,0x00, +0xf4,0x01,0x00,0x00,0x61,0x00,0x00,0x00,0x3b,0x00,0x00,0x00, +0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xf6,0x01,0x00,0x00, +0xe5,0x01,0x00,0x00,0xf5,0x01,0x00,0x00,0x6f,0x00,0x04,0x00, +0x99,0x00,0x00,0x00,0xf7,0x01,0x00,0x00,0xf6,0x01,0x00,0x00, +0x0c,0x00,0x08,0x00,0x99,0x00,0x00,0x00,0xf9,0x01,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xd8,0x01,0x00,0x00, +0xf7,0x01,0x00,0x00,0xb1,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0xe1,0x00,0x00,0x00, +0x9d,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xc9,0x00,0x00,0x00, +0x01,0x02,0x00,0x00,0xdb,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0x00,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xbf,0x00,0x00,0x00, +0x02,0x02,0x00,0x00,0x01,0x02,0x00,0x00,0x73,0x00,0x04,0x00, +0x99,0x00,0x00,0x00,0x03,0x02,0x00,0x00,0x02,0x02,0x00,0x00, +0x41,0x00,0x08,0x00,0xe9,0x00,0x00,0x00,0x07,0x02,0x00,0x00, +0xc4,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xc7,0x00,0x00,0x00, +0xd6,0x00,0x00,0x00,0x82,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x7f,0x00,0x00,0x00,0x08,0x02,0x00,0x00,0x07,0x02,0x00,0x00, +0xc2,0x00,0x05,0x00,0x7f,0x00,0x00,0x00,0x0a,0x02,0x00,0x00, +0x08,0x02,0x00,0x00,0x85,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x0b,0x02,0x00,0x00,0x0a,0x02,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x0c,0x02,0x00,0x00, +0x0b,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x0d,0x02,0x00,0x00,0x0c,0x02,0x00,0x00,0xf0,0x00,0x00,0x00, +0x41,0x00,0x08,0x00,0xe9,0x00,0x00,0x00,0x11,0x02,0x00,0x00, +0xc4,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xc7,0x00,0x00,0x00, +0xd6,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x7f,0x00,0x00,0x00,0x12,0x02,0x00,0x00,0x11,0x02,0x00,0x00, +0xc2,0x00,0x05,0x00,0x7f,0x00,0x00,0x00,0x15,0x02,0x00,0x00, +0x12,0x02,0x00,0x00,0x85,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x16,0x02,0x00,0x00,0x15,0x02,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x17,0x02,0x00,0x00, +0x16,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x18,0x02,0x00,0x00,0x17,0x02,0x00,0x00,0xc8,0x00,0x00,0x00, +0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x19,0x02,0x00,0x00, +0x18,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0xc5,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x1a,0x02,0x00,0x00,0x0d,0x02,0x00,0x00, +0x19,0x02,0x00,0x00,0x72,0x00,0x04,0x00,0x87,0x00,0x00,0x00, +0x1b,0x02,0x00,0x00,0x1a,0x02,0x00,0x00,0x72,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x1c,0x02,0x00,0x00,0x1b,0x02,0x00,0x00, +0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x1d,0x02,0x00,0x00, +0x1c,0x02,0x00,0x00,0x01,0x01,0x00,0x00,0x6f,0x00,0x04,0x00, +0x99,0x00,0x00,0x00,0x1e,0x02,0x00,0x00,0x1d,0x02,0x00,0x00, +0x85,0x00,0x05,0x00,0x99,0x00,0x00,0x00,0x1f,0x02,0x00,0x00, +0x03,0x02,0x00,0x00,0x1e,0x02,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x27,0x02,0x00,0x00,0x0b,0x01,0x00,0x00, +0x9d,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xe9,0x00,0x00,0x00, +0x28,0x02,0x00,0x00,0xc4,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0xc7,0x00,0x00,0x00,0x82,0x00,0x00,0x00,0x27,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0x29,0x02,0x00,0x00, +0x28,0x02,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x2a,0x02,0x00,0x00,0x29,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x2b,0x02,0x00,0x00,0x2a,0x02,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x2c,0x02,0x00,0x00, +0x2b,0x02,0x00,0x00,0xc8,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x34,0x02,0x00,0x00,0x17,0x01,0x00,0x00, +0x9d,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xe9,0x00,0x00,0x00, +0x35,0x02,0x00,0x00,0xc4,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0xc7,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x34,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0x36,0x02,0x00,0x00, +0x35,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x7f,0x00,0x00,0x00, +0x39,0x02,0x00,0x00,0x36,0x02,0x00,0x00,0x1b,0x01,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x3a,0x02,0x00,0x00, +0x39,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x3b,0x02,0x00,0x00,0x3a,0x02,0x00,0x00,0xab,0x00,0x05,0x00, +0xb1,0x00,0x00,0x00,0x3c,0x02,0x00,0x00,0x3b,0x02,0x00,0x00, +0x61,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,0x1b,0x00,0x00,0x00, +0x3d,0x02,0x00,0x00,0x3c,0x02,0x00,0x00,0x61,0x00,0x00,0x00, 0x3b,0x00,0x00,0x00,0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x82,0x02,0x00,0x00,0x70,0x02,0x00,0x00,0x81,0x02,0x00,0x00, -0x6f,0x00,0x04,0x00,0x92,0x00,0x00,0x00,0x83,0x02,0x00,0x00, -0x82,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x92,0x00,0x00,0x00, -0x85,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x62,0x02,0x00,0x00,0x83,0x02,0x00,0x00,0x3a,0x02,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8d,0x02,0x00,0x00, -0xda,0x00,0x00,0x00,0x8c,0x02,0x00,0x00,0x41,0x00,0x06,0x00, -0xc2,0x00,0x00,0x00,0x8e,0x02,0x00,0x00,0xd4,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0x8d,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb8,0x00,0x00,0x00,0x8f,0x02,0x00,0x00,0x8e,0x02,0x00,0x00, -0x73,0x00,0x04,0x00,0x92,0x00,0x00,0x00,0x90,0x02,0x00,0x00, -0x8f,0x02,0x00,0x00,0x41,0x00,0x08,0x00,0xe2,0x00,0x00,0x00, -0x94,0x02,0x00,0x00,0xbd,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0xc0,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x40,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x78,0x00,0x00,0x00,0x95,0x02,0x00,0x00, -0x94,0x02,0x00,0x00,0xc2,0x00,0x05,0x00,0x78,0x00,0x00,0x00, -0x97,0x02,0x00,0x00,0x95,0x02,0x00,0x00,0x7e,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x98,0x02,0x00,0x00, -0x97,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x99,0x02,0x00,0x00,0x98,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x9a,0x02,0x00,0x00,0x99,0x02,0x00,0x00, -0xe9,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x78,0x00,0x00,0x00, -0x9f,0x02,0x00,0x00,0x0a,0x02,0x00,0x00,0xc2,0x00,0x05,0x00, -0x78,0x00,0x00,0x00,0xa2,0x02,0x00,0x00,0x9f,0x02,0x00,0x00, -0x7e,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xa3,0x02,0x00,0x00,0xa2,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0xa4,0x02,0x00,0x00,0xa3,0x02,0x00,0x00, -0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xa5,0x02,0x00,0x00, -0xa4,0x02,0x00,0x00,0xc1,0x00,0x00,0x00,0xc4,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0xa6,0x02,0x00,0x00,0xa5,0x02,0x00,0x00, +0x3e,0x02,0x00,0x00,0x2c,0x02,0x00,0x00,0x3d,0x02,0x00,0x00, +0x6f,0x00,0x04,0x00,0x99,0x00,0x00,0x00,0x3f,0x02,0x00,0x00, +0x3e,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x99,0x00,0x00,0x00, +0x41,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0x1f,0x02,0x00,0x00,0x3f,0x02,0x00,0x00,0xf9,0x01,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x49,0x02,0x00,0x00, +0xe1,0x00,0x00,0x00,0x48,0x02,0x00,0x00,0x41,0x00,0x06,0x00, +0xc9,0x00,0x00,0x00,0x4a,0x02,0x00,0x00,0xdb,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0x49,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0xbf,0x00,0x00,0x00,0x4b,0x02,0x00,0x00,0x4a,0x02,0x00,0x00, +0x73,0x00,0x04,0x00,0x99,0x00,0x00,0x00,0x4c,0x02,0x00,0x00, +0x4b,0x02,0x00,0x00,0x41,0x00,0x08,0x00,0xe9,0x00,0x00,0x00, +0x50,0x02,0x00,0x00,0xc4,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0xc7,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,0xc8,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0x51,0x02,0x00,0x00, +0x50,0x02,0x00,0x00,0xc2,0x00,0x05,0x00,0x7f,0x00,0x00,0x00, +0x53,0x02,0x00,0x00,0x51,0x02,0x00,0x00,0x85,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x54,0x02,0x00,0x00, +0x53,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x55,0x02,0x00,0x00,0x54,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x56,0x02,0x00,0x00,0x55,0x02,0x00,0x00, +0xf0,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xe9,0x00,0x00,0x00, +0x5b,0x02,0x00,0x00,0xc4,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0xc7,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,0x5a,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0x5c,0x02,0x00,0x00, +0x5b,0x02,0x00,0x00,0xc2,0x00,0x05,0x00,0x7f,0x00,0x00,0x00, +0x5f,0x02,0x00,0x00,0x5c,0x02,0x00,0x00,0x85,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x60,0x02,0x00,0x00, +0x5f,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x61,0x02,0x00,0x00,0x60,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x62,0x02,0x00,0x00,0x61,0x02,0x00,0x00, +0xc8,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x63,0x02,0x00,0x00,0x62,0x02,0x00,0x00,0x3b,0x00,0x00,0x00, +0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x64,0x02,0x00,0x00, +0x56,0x02,0x00,0x00,0x63,0x02,0x00,0x00,0x72,0x00,0x04,0x00, +0x87,0x00,0x00,0x00,0x65,0x02,0x00,0x00,0x64,0x02,0x00,0x00, +0x72,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x66,0x02,0x00,0x00, +0x65,0x02,0x00,0x00,0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x67,0x02,0x00,0x00,0x66,0x02,0x00,0x00,0x01,0x01,0x00,0x00, +0x6f,0x00,0x04,0x00,0x99,0x00,0x00,0x00,0x68,0x02,0x00,0x00, +0x67,0x02,0x00,0x00,0x85,0x00,0x05,0x00,0x99,0x00,0x00,0x00, +0x69,0x02,0x00,0x00,0x4c,0x02,0x00,0x00,0x68,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0x73,0x02,0x00,0x00, +0x28,0x02,0x00,0x00,0xc2,0x00,0x05,0x00,0x7f,0x00,0x00,0x00, +0x74,0x02,0x00,0x00,0x73,0x02,0x00,0x00,0xd6,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x75,0x02,0x00,0x00, +0x74,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x76,0x02,0x00,0x00,0x75,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x77,0x02,0x00,0x00,0x76,0x02,0x00,0x00, +0xc8,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00, +0x81,0x02,0x00,0x00,0x35,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, +0x7f,0x00,0x00,0x00,0x84,0x02,0x00,0x00,0x81,0x02,0x00,0x00, +0x61,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x85,0x02,0x00,0x00,0x84,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x86,0x02,0x00,0x00,0x85,0x02,0x00,0x00, +0xab,0x00,0x05,0x00,0xb1,0x00,0x00,0x00,0x87,0x02,0x00,0x00, +0x86,0x02,0x00,0x00,0x61,0x00,0x00,0x00,0xa9,0x00,0x06,0x00, +0x1b,0x00,0x00,0x00,0x88,0x02,0x00,0x00,0x87,0x02,0x00,0x00, +0x61,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,0x82,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x89,0x02,0x00,0x00,0x77,0x02,0x00,0x00, +0x88,0x02,0x00,0x00,0x6f,0x00,0x04,0x00,0x99,0x00,0x00,0x00, +0x8a,0x02,0x00,0x00,0x89,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, +0x99,0x00,0x00,0x00,0x8c,0x02,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x69,0x02,0x00,0x00,0x8a,0x02,0x00,0x00, +0x41,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x94,0x02,0x00,0x00,0xe1,0x00,0x00,0x00,0x93,0x02,0x00,0x00, +0x41,0x00,0x06,0x00,0xc9,0x00,0x00,0x00,0x95,0x02,0x00,0x00, +0xdb,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x94,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0xbf,0x00,0x00,0x00,0x96,0x02,0x00,0x00, +0x95,0x02,0x00,0x00,0x73,0x00,0x04,0x00,0x99,0x00,0x00,0x00, +0x97,0x02,0x00,0x00,0x96,0x02,0x00,0x00,0x41,0x00,0x08,0x00, +0xe9,0x00,0x00,0x00,0x9b,0x02,0x00,0x00,0xc4,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,0xd6,0x00,0x00,0x00, +0x40,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00, +0x9c,0x02,0x00,0x00,0x9b,0x02,0x00,0x00,0xc2,0x00,0x05,0x00, +0x7f,0x00,0x00,0x00,0x9e,0x02,0x00,0x00,0x9c,0x02,0x00,0x00, +0x85,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x9f,0x02,0x00,0x00,0x9e,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0xa0,0x02,0x00,0x00,0x9f,0x02,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xa1,0x02,0x00,0x00, +0xa0,0x02,0x00,0x00,0xf0,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x7f,0x00,0x00,0x00,0xa6,0x02,0x00,0x00,0x11,0x02,0x00,0x00, +0xc2,0x00,0x05,0x00,0x7f,0x00,0x00,0x00,0xa9,0x02,0x00,0x00, +0xa6,0x02,0x00,0x00,0x85,0x01,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xaa,0x02,0x00,0x00,0xa9,0x02,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xab,0x02,0x00,0x00, +0xaa,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0xac,0x02,0x00,0x00,0xab,0x02,0x00,0x00,0xc8,0x00,0x00,0x00, +0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xad,0x02,0x00,0x00, +0xac,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0xc5,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0xae,0x02,0x00,0x00,0xa1,0x02,0x00,0x00, +0xad,0x02,0x00,0x00,0x72,0x00,0x04,0x00,0x87,0x00,0x00,0x00, +0xaf,0x02,0x00,0x00,0xae,0x02,0x00,0x00,0x72,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0xb0,0x02,0x00,0x00,0xaf,0x02,0x00,0x00, +0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xb1,0x02,0x00,0x00, +0xb0,0x02,0x00,0x00,0x01,0x01,0x00,0x00,0x6f,0x00,0x04,0x00, +0x99,0x00,0x00,0x00,0xb2,0x02,0x00,0x00,0xb1,0x02,0x00,0x00, +0x85,0x00,0x05,0x00,0x99,0x00,0x00,0x00,0xb3,0x02,0x00,0x00, +0x97,0x02,0x00,0x00,0xb2,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0x7f,0x00,0x00,0x00,0xbd,0x02,0x00,0x00,0x28,0x02,0x00,0x00, +0xc2,0x00,0x05,0x00,0x7f,0x00,0x00,0x00,0xbe,0x02,0x00,0x00, +0xbd,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xbf,0x02,0x00,0x00,0xbe,0x02,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xc0,0x02,0x00,0x00, +0xbf,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0xc1,0x02,0x00,0x00,0xc0,0x02,0x00,0x00,0xc8,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0xcb,0x02,0x00,0x00, +0x35,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x7f,0x00,0x00,0x00, +0xce,0x02,0x00,0x00,0xcb,0x02,0x00,0x00,0xa8,0x01,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xcf,0x02,0x00,0x00, +0xce,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0xd0,0x02,0x00,0x00,0xcf,0x02,0x00,0x00,0xab,0x00,0x05,0x00, +0xb1,0x00,0x00,0x00,0xd1,0x02,0x00,0x00,0xd0,0x02,0x00,0x00, +0x61,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,0x1b,0x00,0x00,0x00, +0xd2,0x02,0x00,0x00,0xd1,0x02,0x00,0x00,0x61,0x00,0x00,0x00, +0x3b,0x00,0x00,0x00,0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0xd3,0x02,0x00,0x00,0xc1,0x02,0x00,0x00,0xd2,0x02,0x00,0x00, +0x6f,0x00,0x04,0x00,0x99,0x00,0x00,0x00,0xd4,0x02,0x00,0x00, +0xd3,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x99,0x00,0x00,0x00, +0xd6,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0xb3,0x02,0x00,0x00,0xd4,0x02,0x00,0x00,0x8c,0x02,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xde,0x02,0x00,0x00, +0xe1,0x00,0x00,0x00,0xdd,0x02,0x00,0x00,0x41,0x00,0x06,0x00, +0xc9,0x00,0x00,0x00,0xdf,0x02,0x00,0x00,0xdb,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0xde,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0xbf,0x00,0x00,0x00,0xe0,0x02,0x00,0x00,0xdf,0x02,0x00,0x00, +0x73,0x00,0x04,0x00,0x99,0x00,0x00,0x00,0xe1,0x02,0x00,0x00, +0xe0,0x02,0x00,0x00,0x41,0x00,0x08,0x00,0xe9,0x00,0x00,0x00, +0xe5,0x02,0x00,0x00,0xc4,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0xc7,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,0x34,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0xe6,0x02,0x00,0x00, +0xe5,0x02,0x00,0x00,0xc2,0x00,0x05,0x00,0x7f,0x00,0x00,0x00, +0xe8,0x02,0x00,0x00,0xe6,0x02,0x00,0x00,0x85,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xe9,0x02,0x00,0x00, +0xe8,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0xea,0x02,0x00,0x00,0xe9,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0xeb,0x02,0x00,0x00,0xea,0x02,0x00,0x00, +0xf0,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00, +0xf0,0x02,0x00,0x00,0x5b,0x02,0x00,0x00,0xc2,0x00,0x05,0x00, +0x7f,0x00,0x00,0x00,0xf3,0x02,0x00,0x00,0xf0,0x02,0x00,0x00, +0x85,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xf4,0x02,0x00,0x00,0xf3,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0xf5,0x02,0x00,0x00,0xf4,0x02,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xf6,0x02,0x00,0x00, +0xf5,0x02,0x00,0x00,0xc8,0x00,0x00,0x00,0xc4,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0xf7,0x02,0x00,0x00,0xf6,0x02,0x00,0x00, 0x3b,0x00,0x00,0x00,0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0xa7,0x02,0x00,0x00,0x9a,0x02,0x00,0x00,0xa6,0x02,0x00,0x00, -0x72,0x00,0x04,0x00,0x80,0x00,0x00,0x00,0xa8,0x02,0x00,0x00, -0xa7,0x02,0x00,0x00,0x72,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0xa9,0x02,0x00,0x00,0xa8,0x02,0x00,0x00,0x82,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0xaa,0x02,0x00,0x00,0xa9,0x02,0x00,0x00, -0xfa,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x92,0x00,0x00,0x00, -0xab,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,0x85,0x00,0x05,0x00, -0x92,0x00,0x00,0x00,0xac,0x02,0x00,0x00,0x90,0x02,0x00,0x00, -0xab,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x78,0x00,0x00,0x00, -0xb6,0x02,0x00,0x00,0x21,0x02,0x00,0x00,0xc2,0x00,0x05,0x00, -0x78,0x00,0x00,0x00,0xb7,0x02,0x00,0x00,0xb6,0x02,0x00,0x00, -0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xb8,0x02,0x00,0x00,0xb7,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0xb9,0x02,0x00,0x00,0xb8,0x02,0x00,0x00, -0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xba,0x02,0x00,0x00, -0xb9,0x02,0x00,0x00,0xc1,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x78,0x00,0x00,0x00,0xc4,0x02,0x00,0x00,0x2e,0x02,0x00,0x00, -0xc7,0x00,0x05,0x00,0x78,0x00,0x00,0x00,0xc7,0x02,0x00,0x00, -0xc4,0x02,0x00,0x00,0xa1,0x01,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xc8,0x02,0x00,0x00,0xc7,0x02,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xc9,0x02,0x00,0x00, -0xc8,0x02,0x00,0x00,0xab,0x00,0x05,0x00,0xaa,0x00,0x00,0x00, -0xca,0x02,0x00,0x00,0xc9,0x02,0x00,0x00,0x59,0x00,0x00,0x00, -0xa9,0x00,0x06,0x00,0x1b,0x00,0x00,0x00,0xcb,0x02,0x00,0x00, -0xca,0x02,0x00,0x00,0x59,0x00,0x00,0x00,0x3b,0x00,0x00,0x00, -0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xcc,0x02,0x00,0x00, -0xba,0x02,0x00,0x00,0xcb,0x02,0x00,0x00,0x6f,0x00,0x04,0x00, -0x92,0x00,0x00,0x00,0xcd,0x02,0x00,0x00,0xcc,0x02,0x00,0x00, -0x0c,0x00,0x08,0x00,0x92,0x00,0x00,0x00,0xcf,0x02,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xac,0x02,0x00,0x00, -0xcd,0x02,0x00,0x00,0x85,0x02,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xd7,0x02,0x00,0x00,0xda,0x00,0x00,0x00, -0xd6,0x02,0x00,0x00,0x41,0x00,0x06,0x00,0xc2,0x00,0x00,0x00, -0xd8,0x02,0x00,0x00,0xd4,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0xd7,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xb8,0x00,0x00,0x00, -0xd9,0x02,0x00,0x00,0xd8,0x02,0x00,0x00,0x73,0x00,0x04,0x00, -0x92,0x00,0x00,0x00,0xda,0x02,0x00,0x00,0xd9,0x02,0x00,0x00, -0x41,0x00,0x08,0x00,0xe2,0x00,0x00,0x00,0xde,0x02,0x00,0x00, -0xbd,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xc0,0x00,0x00,0x00, -0xcf,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x78,0x00,0x00,0x00,0xdf,0x02,0x00,0x00,0xde,0x02,0x00,0x00, -0xc2,0x00,0x05,0x00,0x78,0x00,0x00,0x00,0xe1,0x02,0x00,0x00, -0xdf,0x02,0x00,0x00,0x7e,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xe2,0x02,0x00,0x00,0xe1,0x02,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xe3,0x02,0x00,0x00, -0xe2,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0xe4,0x02,0x00,0x00,0xe3,0x02,0x00,0x00,0xe9,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x78,0x00,0x00,0x00,0xe9,0x02,0x00,0x00, -0x54,0x02,0x00,0x00,0xc2,0x00,0x05,0x00,0x78,0x00,0x00,0x00, -0xec,0x02,0x00,0x00,0xe9,0x02,0x00,0x00,0x7e,0x01,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xed,0x02,0x00,0x00, -0xec,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0xee,0x02,0x00,0x00,0xed,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0xef,0x02,0x00,0x00,0xee,0x02,0x00,0x00, -0xc1,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0xf0,0x02,0x00,0x00,0xef,0x02,0x00,0x00,0x3b,0x00,0x00,0x00, -0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xf1,0x02,0x00,0x00, -0xe4,0x02,0x00,0x00,0xf0,0x02,0x00,0x00,0x72,0x00,0x04,0x00, -0x80,0x00,0x00,0x00,0xf2,0x02,0x00,0x00,0xf1,0x02,0x00,0x00, -0x72,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xf3,0x02,0x00,0x00, -0xf2,0x02,0x00,0x00,0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0xf4,0x02,0x00,0x00,0xf3,0x02,0x00,0x00,0xfa,0x00,0x00,0x00, -0x6f,0x00,0x04,0x00,0x92,0x00,0x00,0x00,0xf5,0x02,0x00,0x00, -0xf4,0x02,0x00,0x00,0x85,0x00,0x05,0x00,0x92,0x00,0x00,0x00, -0xf6,0x02,0x00,0x00,0xda,0x02,0x00,0x00,0xf5,0x02,0x00,0x00, -0x3d,0x00,0x04,0x00,0x78,0x00,0x00,0x00,0x00,0x03,0x00,0x00, -0x21,0x02,0x00,0x00,0xc2,0x00,0x05,0x00,0x78,0x00,0x00,0x00, -0x01,0x03,0x00,0x00,0x00,0x03,0x00,0x00,0x45,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x02,0x03,0x00,0x00, -0x01,0x03,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x03,0x03,0x00,0x00,0x02,0x03,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x04,0x03,0x00,0x00,0x03,0x03,0x00,0x00, -0xc1,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x78,0x00,0x00,0x00, -0x0e,0x03,0x00,0x00,0x2e,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, -0x78,0x00,0x00,0x00,0x11,0x03,0x00,0x00,0x0e,0x03,0x00,0x00, -0xe9,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x12,0x03,0x00,0x00,0x11,0x03,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x13,0x03,0x00,0x00,0x12,0x03,0x00,0x00, -0xab,0x00,0x05,0x00,0xaa,0x00,0x00,0x00,0x14,0x03,0x00,0x00, -0x13,0x03,0x00,0x00,0x59,0x00,0x00,0x00,0xa9,0x00,0x06,0x00, -0x1b,0x00,0x00,0x00,0x15,0x03,0x00,0x00,0x14,0x03,0x00,0x00, -0x59,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,0x82,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x16,0x03,0x00,0x00,0x04,0x03,0x00,0x00, -0x15,0x03,0x00,0x00,0x6f,0x00,0x04,0x00,0x92,0x00,0x00,0x00, -0x17,0x03,0x00,0x00,0x16,0x03,0x00,0x00,0x0c,0x00,0x08,0x00, -0x92,0x00,0x00,0x00,0x19,0x03,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0xf6,0x02,0x00,0x00,0x17,0x03,0x00,0x00, -0xcf,0x02,0x00,0x00,0x81,0x00,0x05,0x00,0x92,0x00,0x00,0x00, -0x1b,0x03,0x00,0x00,0x84,0x03,0x00,0x00,0x19,0x03,0x00,0x00, -0x80,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x1d,0x03,0x00,0x00, -0x83,0x03,0x00,0x00,0x7b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, -0xc9,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xcb,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x92,0x00,0x00,0x00,0x26,0x03,0x00,0x00, -0x9d,0x00,0x00,0x00,0x0c,0x00,0x08,0x00,0x92,0x00,0x00,0x00, -0x27,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0xc5,0x00,0x00,0x00,0x84,0x03,0x00,0x00,0x26,0x03,0x00,0x00, -0x3e,0x00,0x03,0x00,0x9d,0x00,0x00,0x00,0x27,0x03,0x00,0x00, -0xf9,0x00,0x02,0x00,0xa6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0xa6,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x2a,0x03,0x00,0x00,0x80,0x03,0x00,0x00,0x69,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0xa3,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0xa5,0x00,0x00,0x00,0xe0,0x00,0x04,0x00,0x69,0x00,0x00,0x00, -0x69,0x00,0x00,0x00,0x2b,0x03,0x00,0x00,0xf9,0x00,0x02,0x00, -0x2d,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x2d,0x03,0x00,0x00, -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x81,0x03,0x00,0x00, -0x96,0x00,0x00,0x00,0xa5,0x00,0x00,0x00,0x44,0x03,0x00,0x00, -0x30,0x03,0x00,0x00,0xac,0x00,0x05,0x00,0xaa,0x00,0x00,0x00, -0x33,0x03,0x00,0x00,0x81,0x03,0x00,0x00,0x4b,0x00,0x00,0x00, -0xf6,0x00,0x04,0x00,0x2f,0x03,0x00,0x00,0x30,0x03,0x00,0x00, -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x33,0x03,0x00,0x00, -0x2e,0x03,0x00,0x00,0x2f,0x03,0x00,0x00,0xf8,0x00,0x02,0x00, -0x2e,0x03,0x00,0x00,0xb0,0x00,0x05,0x00,0xaa,0x00,0x00,0x00, -0x36,0x03,0x00,0x00,0x6a,0x00,0x00,0x00,0x81,0x03,0x00,0x00, -0xf7,0x00,0x03,0x00,0x38,0x03,0x00,0x00,0x00,0x00,0x00,0x00, -0xfa,0x00,0x04,0x00,0x36,0x03,0x00,0x00,0x37,0x03,0x00,0x00, -0x38,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x37,0x03,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3c,0x03,0x00,0x00, -0x6a,0x00,0x00,0x00,0x81,0x03,0x00,0x00,0x41,0x00,0x05,0x00, -0x9c,0x00,0x00,0x00,0x3d,0x03,0x00,0x00,0x95,0x00,0x00,0x00, -0x3c,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x92,0x00,0x00,0x00, -0x3e,0x03,0x00,0x00,0x3d,0x03,0x00,0x00,0x41,0x00,0x05,0x00, -0x9c,0x00,0x00,0x00,0x3f,0x03,0x00,0x00,0x95,0x00,0x00,0x00, -0x6a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x92,0x00,0x00,0x00, -0x40,0x03,0x00,0x00,0x3f,0x03,0x00,0x00,0x81,0x00,0x05,0x00, -0x92,0x00,0x00,0x00,0x41,0x03,0x00,0x00,0x40,0x03,0x00,0x00, -0x3e,0x03,0x00,0x00,0x3e,0x00,0x03,0x00,0x3f,0x03,0x00,0x00, -0x41,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,0x38,0x03,0x00,0x00, -0xf8,0x00,0x02,0x00,0x38,0x03,0x00,0x00,0xe0,0x00,0x04,0x00, -0x69,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0x2b,0x03,0x00,0x00, -0xf9,0x00,0x02,0x00,0x30,0x03,0x00,0x00,0xf8,0x00,0x02,0x00, -0x30,0x03,0x00,0x00,0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x44,0x03,0x00,0x00,0x81,0x03,0x00,0x00,0x7b,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0x2d,0x03,0x00,0x00,0xf8,0x00,0x02,0x00, -0x2f,0x03,0x00,0x00,0xaa,0x00,0x05,0x00,0xaa,0x00,0x00,0x00, -0x46,0x03,0x00,0x00,0x6a,0x00,0x00,0x00,0x4b,0x00,0x00,0x00, -0xf7,0x00,0x03,0x00,0x48,0x03,0x00,0x00,0x00,0x00,0x00,0x00, -0xfa,0x00,0x04,0x00,0x46,0x03,0x00,0x00,0x47,0x03,0x00,0x00, -0x48,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x47,0x03,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4f,0x03,0x00,0x00, -0x7f,0x03,0x00,0x00,0x4d,0x00,0x00,0x00,0x41,0x00,0x05,0x00, -0x9c,0x00,0x00,0x00,0x50,0x03,0x00,0x00,0x95,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x92,0x00,0x00,0x00, -0x51,0x03,0x00,0x00,0x50,0x03,0x00,0x00,0x41,0x00,0x06,0x00, -0x52,0x03,0x00,0x00,0x53,0x03,0x00,0x00,0x4c,0x03,0x00,0x00, -0x59,0x00,0x00,0x00,0x4f,0x03,0x00,0x00,0x3e,0x00,0x03,0x00, -0x53,0x03,0x00,0x00,0x51,0x03,0x00,0x00,0xf9,0x00,0x02,0x00, -0x48,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x48,0x03,0x00,0x00, -0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00, +0xf8,0x02,0x00,0x00,0xeb,0x02,0x00,0x00,0xf7,0x02,0x00,0x00, +0x72,0x00,0x04,0x00,0x87,0x00,0x00,0x00,0xf9,0x02,0x00,0x00, +0xf8,0x02,0x00,0x00,0x72,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0xfa,0x02,0x00,0x00,0xf9,0x02,0x00,0x00,0x82,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0xfb,0x02,0x00,0x00,0xfa,0x02,0x00,0x00, +0x01,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x99,0x00,0x00,0x00, +0xfc,0x02,0x00,0x00,0xfb,0x02,0x00,0x00,0x85,0x00,0x05,0x00, +0x99,0x00,0x00,0x00,0xfd,0x02,0x00,0x00,0xe1,0x02,0x00,0x00, +0xfc,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00, +0x07,0x03,0x00,0x00,0x28,0x02,0x00,0x00,0xc2,0x00,0x05,0x00, +0x7f,0x00,0x00,0x00,0x08,0x03,0x00,0x00,0x07,0x03,0x00,0x00, +0x45,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x09,0x03,0x00,0x00,0x08,0x03,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x0a,0x03,0x00,0x00,0x09,0x03,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x0b,0x03,0x00,0x00, +0x0a,0x03,0x00,0x00,0xc8,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x7f,0x00,0x00,0x00,0x15,0x03,0x00,0x00,0x35,0x02,0x00,0x00, +0xc7,0x00,0x05,0x00,0x7f,0x00,0x00,0x00,0x18,0x03,0x00,0x00, +0x15,0x03,0x00,0x00,0xf0,0x01,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x19,0x03,0x00,0x00,0x18,0x03,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x1a,0x03,0x00,0x00, +0x19,0x03,0x00,0x00,0xab,0x00,0x05,0x00,0xb1,0x00,0x00,0x00, +0x1b,0x03,0x00,0x00,0x1a,0x03,0x00,0x00,0x61,0x00,0x00,0x00, +0xa9,0x00,0x06,0x00,0x1b,0x00,0x00,0x00,0x1c,0x03,0x00,0x00, +0x1b,0x03,0x00,0x00,0x61,0x00,0x00,0x00,0x3b,0x00,0x00,0x00, +0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x1d,0x03,0x00,0x00, +0x0b,0x03,0x00,0x00,0x1c,0x03,0x00,0x00,0x6f,0x00,0x04,0x00, +0x99,0x00,0x00,0x00,0x1e,0x03,0x00,0x00,0x1d,0x03,0x00,0x00, +0x0c,0x00,0x08,0x00,0x99,0x00,0x00,0x00,0x20,0x03,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xfd,0x02,0x00,0x00, +0x1e,0x03,0x00,0x00,0xd6,0x02,0x00,0x00,0x81,0x00,0x05,0x00, +0x99,0x00,0x00,0x00,0x22,0x03,0x00,0x00,0x8b,0x03,0x00,0x00, +0x20,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x24,0x03,0x00,0x00,0x8a,0x03,0x00,0x00,0x82,0x00,0x00,0x00, +0xf9,0x00,0x02,0x00,0xd0,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xd2,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x99,0x00,0x00,0x00, +0x2d,0x03,0x00,0x00,0xa4,0x00,0x00,0x00,0x0c,0x00,0x08,0x00, +0x99,0x00,0x00,0x00,0x2e,0x03,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,0x8b,0x03,0x00,0x00, +0x2d,0x03,0x00,0x00,0x3e,0x00,0x03,0x00,0xa4,0x00,0x00,0x00, +0x2e,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,0xad,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0xad,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x31,0x03,0x00,0x00,0x87,0x03,0x00,0x00, +0x51,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xaa,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0xac,0x00,0x00,0x00,0xe0,0x00,0x04,0x00, +0x51,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0x32,0x03,0x00,0x00, +0xf9,0x00,0x02,0x00,0x34,0x03,0x00,0x00,0xf8,0x00,0x02,0x00, +0x34,0x03,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00, +0x88,0x03,0x00,0x00,0x9d,0x00,0x00,0x00,0xac,0x00,0x00,0x00, +0x4b,0x03,0x00,0x00,0x37,0x03,0x00,0x00,0xac,0x00,0x05,0x00, +0xb1,0x00,0x00,0x00,0x3a,0x03,0x00,0x00,0x88,0x03,0x00,0x00, +0x4b,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x36,0x03,0x00,0x00, +0x37,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, +0x3a,0x03,0x00,0x00,0x35,0x03,0x00,0x00,0x36,0x03,0x00,0x00, +0xf8,0x00,0x02,0x00,0x35,0x03,0x00,0x00,0xb0,0x00,0x05,0x00, +0xb1,0x00,0x00,0x00,0x3d,0x03,0x00,0x00,0x71,0x00,0x00,0x00, +0x88,0x03,0x00,0x00,0xf7,0x00,0x03,0x00,0x3f,0x03,0x00,0x00, +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x3d,0x03,0x00,0x00, +0x3e,0x03,0x00,0x00,0x3f,0x03,0x00,0x00,0xf8,0x00,0x02,0x00, +0x3e,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x43,0x03,0x00,0x00,0x71,0x00,0x00,0x00,0x88,0x03,0x00,0x00, +0x41,0x00,0x05,0x00,0xa3,0x00,0x00,0x00,0x44,0x03,0x00,0x00, +0x9c,0x00,0x00,0x00,0x43,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, +0x99,0x00,0x00,0x00,0x45,0x03,0x00,0x00,0x44,0x03,0x00,0x00, +0x41,0x00,0x05,0x00,0xa3,0x00,0x00,0x00,0x46,0x03,0x00,0x00, +0x9c,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x99,0x00,0x00,0x00,0x47,0x03,0x00,0x00,0x46,0x03,0x00,0x00, +0x81,0x00,0x05,0x00,0x99,0x00,0x00,0x00,0x48,0x03,0x00,0x00, +0x47,0x03,0x00,0x00,0x45,0x03,0x00,0x00,0x3e,0x00,0x03,0x00, +0x46,0x03,0x00,0x00,0x48,0x03,0x00,0x00,0xf9,0x00,0x02,0x00, +0x3f,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x3f,0x03,0x00,0x00, +0xe0,0x00,0x04,0x00,0x51,0x00,0x00,0x00,0x51,0x00,0x00,0x00, +0x32,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,0x37,0x03,0x00,0x00, +0xf8,0x00,0x02,0x00,0x37,0x03,0x00,0x00,0xc2,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x4b,0x03,0x00,0x00,0x88,0x03,0x00,0x00, +0x82,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x34,0x03,0x00,0x00, +0xf8,0x00,0x02,0x00,0x36,0x03,0x00,0x00,0xaa,0x00,0x05,0x00, +0xb1,0x00,0x00,0x00,0x4d,0x03,0x00,0x00,0x71,0x00,0x00,0x00, +0x4b,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0x4f,0x03,0x00,0x00, +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x4d,0x03,0x00,0x00, +0x4e,0x03,0x00,0x00,0x4f,0x03,0x00,0x00,0xf8,0x00,0x02,0x00, +0x4e,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x56,0x03,0x00,0x00,0x86,0x03,0x00,0x00,0x55,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0xa3,0x00,0x00,0x00,0x57,0x03,0x00,0x00, +0x9c,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x99,0x00,0x00,0x00,0x58,0x03,0x00,0x00,0x57,0x03,0x00,0x00, +0x41,0x00,0x06,0x00,0x59,0x03,0x00,0x00,0x5a,0x03,0x00,0x00, +0x53,0x03,0x00,0x00,0x61,0x00,0x00,0x00,0x56,0x03,0x00,0x00, +0x3e,0x00,0x03,0x00,0x5a,0x03,0x00,0x00,0x58,0x03,0x00,0x00, +0xf9,0x00,0x02,0x00,0x4f,0x03,0x00,0x00,0xf8,0x00,0x02,0x00, +0x4f,0x03,0x00,0x00,0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00, + }; -const uint64_t mul_mat_vec_q3_k_f16_f32_len = 10028; +const uint64_t mul_mat_vec_q3_k_f16_f32_len = 10176; unsigned char mul_mat_vec_q3_k_f32_f32_data[] = { 0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00, -0x7d,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, +0x84,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, 0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x27,0x00,0x00,0x00, 0x11,0x00,0x02,0x00,0x51,0x11,0x00,0x00,0x11,0x00,0x02,0x00, 0x60,0x11,0x00,0x00,0x0b,0x00,0x06,0x00,0x01,0x00,0x00,0x00, 0x47,0x4c,0x53,0x4c,0x2e,0x73,0x74,0x64,0x2e,0x34,0x35,0x30, 0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00,0x00,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x0f,0x00,0x0d,0x00,0x05,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x0f,0x00,0x0e,0x00,0x05,0x00,0x00,0x00, 0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e,0x00,0x00,0x00,0x00, 0x11,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x4a,0x00,0x00,0x00, -0x66,0x00,0x00,0x00,0x95,0x00,0x00,0x00,0xbd,0x00,0x00,0x00, -0xd4,0x00,0x00,0x00,0x45,0x03,0x00,0x00,0x10,0x00,0x06,0x00, -0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x11,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x18,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x03,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00, -0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x18,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x4e,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x9c,0x00,0x00,0x00, +0xc4,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,0x4c,0x03,0x00,0x00, +0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x11,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, 0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x18,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x28,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x18,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x4a,0x00,0x00,0x00, -0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x66,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xb3,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xb5,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xb7,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0xb9,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0xb9,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x20,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xb9,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x60,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0xb9,0x00,0x00,0x00,0x03,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xba,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x6e,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xbb,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0xbb,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xbd,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xbd,0x00,0x00,0x00, -0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xd1,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0xd2,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xd2,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0xd2,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xd4,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xd4,0x00,0x00,0x00, -0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x42,0x03,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0x43,0x03,0x00,0x00,0x00,0x00,0x00,0x00, -0x19,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x43,0x03,0x00,0x00, -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0x43,0x03,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x45,0x03,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x45,0x03,0x00,0x00, -0x21,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x4c,0x03,0x00,0x00,0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00, -0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00, -0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x17,0x00,0x04,0x00,0x0f,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x10,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x10,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x12,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x13,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x1e,0x00,0x0d,0x00, -0x18,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x18,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00, +0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x18,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x07,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x18,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00, +0x09,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x0a,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0x18,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x4a,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x4e,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x6e,0x00,0x00,0x00, +0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xba,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xbc,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xbe,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xc0,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0xc0,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0xc0,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x6c,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xc1,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x48,0x00,0x04,0x00, +0xc2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0xc2,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0xc2,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xc4,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,0x21,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xd8,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00, +0xd9,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0xd9,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0xd9,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xdb,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xdb,0x00,0x00,0x00,0x21,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x49,0x03,0x00,0x00, +0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00, +0x4a,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x4a,0x03,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0x4a,0x03,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x4c,0x03,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x4c,0x03,0x00,0x00,0x21,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x53,0x03,0x00,0x00, +0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x13,0x00,0x02,0x00, +0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x17,0x00,0x04,0x00, +0x0f,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x10,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x0f,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00, +0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x13,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x1e,0x00,0x0d,0x00,0x18,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x19,0x00,0x00,0x00, -0x1a,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x15,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x1d,0x00,0x00,0x00, -0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x0a,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x2e,0x00,0x00,0x00, -0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x34,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x40,0x00,0x00,0x00, -0x05,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x45,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x10,0x00,0x00,0x00,0x4a,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4b,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,0x00,0x01,0x00,0x00, -0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00,0x66,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x19,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, +0x09,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x1d,0x00,0x00,0x00,0x09,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x28,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,0x09,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x00,0x00, +0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x3b,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x05,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x45,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00, +0x4a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00,0x4e,0x00,0x00,0x00, 0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x69,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x15,0x00,0x04,0x00,0x78,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x7b,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x7c,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x15,0x00,0x04,0x00,0x80,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x51,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x64,0x00,0x00,0x00, +0x00,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00, +0x6e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x15,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x82,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x83,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x15,0x00,0x04,0x00,0x87,0x00,0x00,0x00,0x08,0x00,0x00,0x00, 0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x87,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,0x80,0x00,0x00,0x00, -0x16,0x00,0x03,0x00,0x92,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x1c,0x00,0x04,0x00,0x93,0x00,0x00,0x00,0x92,0x00,0x00,0x00, -0x87,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x94,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x93,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x94,0x00,0x00,0x00,0x95,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x96,0x00,0x00,0x00, -0x10,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x92,0x00,0x00,0x00, -0x9b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x9c,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x92,0x00,0x00,0x00, -0x14,0x00,0x02,0x00,0xaa,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, -0xb3,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x87,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xb4,0x00,0x00,0x00, -0x40,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0xb5,0x00,0x00,0x00, -0x78,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xb6,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x1c,0x00,0x04,0x00,0xb7,0x00,0x00,0x00,0x78,0x00,0x00,0x00, -0xb6,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0xb8,0x00,0x00,0x00, -0x10,0x00,0x00,0x00,0x1e,0x00,0x06,0x00,0xb9,0x00,0x00,0x00, -0xb3,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,0xb7,0x00,0x00,0x00, -0xb8,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0xba,0x00,0x00,0x00, -0xb9,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xbb,0x00,0x00,0x00, -0xba,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xbc,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0xbc,0x00,0x00,0x00,0xbd,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xc1,0x00,0x00,0x00, -0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xc2,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x1d,0x00,0x03,0x00,0xd1,0x00,0x00,0x00,0x92,0x00,0x00,0x00, -0x1e,0x00,0x03,0x00,0xd2,0x00,0x00,0x00,0xd1,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0xd3,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0xd2,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xd3,0x00,0x00,0x00, -0xd4,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0xdc,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x92,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0xe2,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x78,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0xe9,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xaf,0x01,0x00,0x00, +0x8e,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x94,0x00,0x00,0x00,0x80,0x00,0x00,0x00, +0x16,0x00,0x03,0x00,0x99,0x00,0x00,0x00,0x20,0x00,0x00,0x00, +0x1c,0x00,0x04,0x00,0x9a,0x00,0x00,0x00,0x99,0x00,0x00,0x00, +0x8e,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x9b,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0x9b,0x00,0x00,0x00,0x9c,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x9d,0x00,0x00,0x00, +0x10,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x99,0x00,0x00,0x00, +0xa2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0xa3,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x99,0x00,0x00,0x00, +0x14,0x00,0x02,0x00,0xb1,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, +0xba,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,0x8e,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xbb,0x00,0x00,0x00, +0x40,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0xbc,0x00,0x00,0x00, +0x7f,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xbd,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x1c,0x00,0x04,0x00,0xbe,0x00,0x00,0x00,0x7f,0x00,0x00,0x00, +0xbd,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0xbf,0x00,0x00,0x00, +0x10,0x00,0x00,0x00,0x1e,0x00,0x06,0x00,0xc0,0x00,0x00,0x00, +0xba,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,0xbe,0x00,0x00,0x00, +0xbf,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0xc1,0x00,0x00,0x00, +0xc0,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xc2,0x00,0x00,0x00, +0xc1,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xc3,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0xc2,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0xc3,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xc8,0x00,0x00,0x00, +0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xc9,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x1d,0x00,0x03,0x00,0xd8,0x00,0x00,0x00,0x99,0x00,0x00,0x00, +0x1e,0x00,0x03,0x00,0xd9,0x00,0x00,0x00,0xd8,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0xda,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0xd9,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xda,0x00,0x00,0x00, +0xdb,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0xe3,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x99,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0xe9,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x7f,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0xf0,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x20,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xb6,0x01,0x00,0x00, 0x60,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x3d,0x02,0x00,0x00,0x30,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x4e,0x02,0x00,0x00,0x0b,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x87,0x02,0x00,0x00, +0x44,0x02,0x00,0x00,0x30,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x55,0x02,0x00,0x00,0x0b,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x8e,0x02,0x00,0x00, 0x50,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xd0,0x02,0x00,0x00,0x70,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x24,0x03,0x00,0x00,0x08,0x01,0x00,0x00, -0x1d,0x00,0x03,0x00,0x42,0x03,0x00,0x00,0x92,0x00,0x00,0x00, -0x1e,0x00,0x03,0x00,0x43,0x03,0x00,0x00,0x42,0x03,0x00,0x00, -0x20,0x00,0x04,0x00,0x44,0x03,0x00,0x00,0x0c,0x00,0x00,0x00, -0x43,0x03,0x00,0x00,0x3b,0x00,0x04,0x00,0x44,0x03,0x00,0x00, -0x45,0x03,0x00,0x00,0x0c,0x00,0x00,0x00,0x2c,0x00,0x06,0x00, -0x0f,0x00,0x00,0x00,0x4c,0x03,0x00,0x00,0x87,0x00,0x00,0x00, +0xd7,0x02,0x00,0x00,0x70,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x2b,0x03,0x00,0x00,0x08,0x01,0x00,0x00, +0x1d,0x00,0x03,0x00,0x49,0x03,0x00,0x00,0x99,0x00,0x00,0x00, +0x1e,0x00,0x03,0x00,0x4a,0x03,0x00,0x00,0x49,0x03,0x00,0x00, +0x20,0x00,0x04,0x00,0x4b,0x03,0x00,0x00,0x0c,0x00,0x00,0x00, +0x4a,0x03,0x00,0x00,0x3b,0x00,0x04,0x00,0x4b,0x03,0x00,0x00, +0x4c,0x03,0x00,0x00,0x0c,0x00,0x00,0x00,0x2c,0x00,0x06,0x00, +0x0f,0x00,0x00,0x00,0x53,0x03,0x00,0x00,0x8e,0x00,0x00,0x00, 0x12,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x36,0x00,0x05,0x00, 0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x03,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00, 0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00,0x4c,0x00,0x00,0x00, 0x4a,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, 0x06,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,0x4c,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00,0x54,0x03,0x00,0x00, -0x11,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x55,0x03,0x00,0x00,0x54,0x03,0x00,0x00, -0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00,0x57,0x03,0x00,0x00, -0x1a,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x58,0x03,0x00,0x00,0x57,0x03,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x59,0x03,0x00,0x00, -0x55,0x03,0x00,0x00,0x58,0x03,0x00,0x00,0x89,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x5d,0x03,0x00,0x00,0x55,0x03,0x00,0x00, -0x58,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00, -0x5f,0x03,0x00,0x00,0x1a,0x00,0x00,0x00,0x28,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x60,0x03,0x00,0x00, -0x5f,0x03,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x61,0x03,0x00,0x00,0x59,0x03,0x00,0x00,0x60,0x03,0x00,0x00, -0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00,0x63,0x03,0x00,0x00, -0x1a,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x64,0x03,0x00,0x00,0x63,0x03,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x65,0x03,0x00,0x00, -0x5d,0x03,0x00,0x00,0x64,0x03,0x00,0x00,0x41,0x00,0x05,0x00, -0x1d,0x00,0x00,0x00,0x67,0x03,0x00,0x00,0x1a,0x00,0x00,0x00, -0x34,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x68,0x03,0x00,0x00,0x67,0x03,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x69,0x03,0x00,0x00,0x61,0x03,0x00,0x00, -0x68,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x6b,0x03,0x00,0x00,0x69,0x03,0x00,0x00,0x65,0x03,0x00,0x00, -0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00,0x6d,0x03,0x00,0x00, -0x1a,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x6e,0x03,0x00,0x00,0x6d,0x03,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6f,0x03,0x00,0x00, -0x6b,0x03,0x00,0x00,0x6e,0x03,0x00,0x00,0x41,0x00,0x05,0x00, -0x1d,0x00,0x00,0x00,0x71,0x03,0x00,0x00,0x1a,0x00,0x00,0x00, -0x40,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x72,0x03,0x00,0x00,0x71,0x03,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x73,0x03,0x00,0x00,0x55,0x03,0x00,0x00, -0x72,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00, -0x75,0x03,0x00,0x00,0x1a,0x00,0x00,0x00,0x45,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x76,0x03,0x00,0x00, -0x75,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x77,0x03,0x00,0x00,0x55,0x03,0x00,0x00,0x76,0x03,0x00,0x00, -0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00,0x5a,0x00,0x00,0x00, -0x1a,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x5b,0x00,0x00,0x00,0x5a,0x00,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5d,0x00,0x00,0x00, -0x5b,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,0x86,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x6f,0x03,0x00,0x00, -0x5c,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x63,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,0x5d,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x64,0x00,0x00,0x00, -0x60,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x41,0x00,0x05,0x00, -0x13,0x00,0x00,0x00,0x67,0x00,0x00,0x00,0x66,0x00,0x00,0x00, -0x4b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x68,0x00,0x00,0x00,0x67,0x00,0x00,0x00,0x86,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x6a,0x00,0x00,0x00,0x68,0x00,0x00,0x00, -0x69,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x6e,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x69,0x00,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x72,0x00,0x00,0x00, -0x6a,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x76,0x00,0x00,0x00,0x71,0x00,0x00,0x00, -0x72,0x00,0x00,0x00,0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x77,0x00,0x00,0x00,0x6a,0x00,0x00,0x00,0x76,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7e,0x00,0x00,0x00, -0x7c,0x00,0x00,0x00,0x72,0x00,0x00,0x00,0xc4,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,0x7b,0x00,0x00,0x00, -0x7e,0x00,0x00,0x00,0x72,0x00,0x04,0x00,0x80,0x00,0x00,0x00, -0x81,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,0x7c,0x00,0x04,0x00, -0x78,0x00,0x00,0x00,0x82,0x00,0x00,0x00,0x81,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x85,0x00,0x00,0x00, -0x69,0x00,0x00,0x00,0x77,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x89,0x00,0x00,0x00,0x87,0x00,0x00,0x00, -0x72,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x8b,0x00,0x00,0x00,0x89,0x00,0x00,0x00,0x85,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8f,0x00,0x00,0x00, -0x8d,0x00,0x00,0x00,0x72,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x91,0x00,0x00,0x00,0x8f,0x00,0x00,0x00, -0x85,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x98,0x00,0x00,0x00,0x96,0x00,0x00,0x00,0x6e,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9a,0x00,0x00,0x00, -0x98,0x00,0x00,0x00,0x6a,0x00,0x00,0x00,0x41,0x00,0x05,0x00, -0x9c,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0x95,0x00,0x00,0x00, -0x9a,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0x9d,0x00,0x00,0x00, -0x9b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xa3,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0xa3,0x00,0x00,0x00,0xf5,0x00,0x07,0x00, -0x06,0x00,0x00,0x00,0x78,0x03,0x00,0x00,0x6e,0x00,0x00,0x00, -0x05,0x00,0x00,0x00,0x23,0x03,0x00,0x00,0xa6,0x00,0x00,0x00, -0xb0,0x00,0x05,0x00,0xaa,0x00,0x00,0x00,0xab,0x00,0x00,0x00, -0x78,0x03,0x00,0x00,0x5d,0x00,0x00,0x00,0xf6,0x00,0x04,0x00, -0xa5,0x00,0x00,0x00,0xa6,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0xfa,0x00,0x04,0x00,0xab,0x00,0x00,0x00,0xa4,0x00,0x00,0x00, -0xa5,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xa4,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xae,0x00,0x00,0x00, -0x78,0x03,0x00,0x00,0x5c,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xb0,0x00,0x00,0x00,0xae,0x00,0x00,0x00, -0x91,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xc0,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0x78,0x03,0x00,0x00, -0x41,0x00,0x07,0x00,0xc2,0x00,0x00,0x00,0xc3,0x00,0x00,0x00, -0xbd,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xc0,0x00,0x00,0x00, -0xc1,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xb8,0x00,0x00,0x00, -0xc4,0x00,0x00,0x00,0xc3,0x00,0x00,0x00,0x73,0x00,0x04,0x00, -0x92,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0xc4,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0xc9,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0xc9,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x92,0x00,0x00,0x00, -0x7c,0x03,0x00,0x00,0x9b,0x00,0x00,0x00,0xa4,0x00,0x00,0x00, -0x14,0x03,0x00,0x00,0xca,0x00,0x00,0x00,0xf5,0x00,0x07,0x00, -0x1b,0x00,0x00,0x00,0x7b,0x03,0x00,0x00,0x59,0x00,0x00,0x00, -0xa4,0x00,0x00,0x00,0x16,0x03,0x00,0x00,0xca,0x00,0x00,0x00, -0xb1,0x00,0x05,0x00,0xaa,0x00,0x00,0x00,0xd0,0x00,0x00,0x00, -0x7b,0x03,0x00,0x00,0xcf,0x00,0x00,0x00,0xf6,0x00,0x04,0x00, -0xcb,0x00,0x00,0x00,0xca,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0xfa,0x00,0x04,0x00,0xd0,0x00,0x00,0x00,0xca,0x00,0x00,0x00, -0xcb,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xca,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd7,0x00,0x00,0x00, -0x73,0x03,0x00,0x00,0xb0,0x00,0x00,0x00,0x7c,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xd9,0x00,0x00,0x00,0x7b,0x03,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xda,0x00,0x00,0x00, -0xd7,0x00,0x00,0x00,0xd9,0x00,0x00,0x00,0x41,0x00,0x06,0x00, -0xdc,0x00,0x00,0x00,0xdd,0x00,0x00,0x00,0xd4,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xda,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x92,0x00,0x00,0x00,0xde,0x00,0x00,0x00,0xdd,0x00,0x00,0x00, -0x41,0x00,0x08,0x00,0xe2,0x00,0x00,0x00,0xe3,0x00,0x00,0x00, -0xbd,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xc0,0x00,0x00,0x00, -0xcf,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x78,0x00,0x00,0x00,0xe4,0x00,0x00,0x00,0xe3,0x00,0x00,0x00, -0xc2,0x00,0x05,0x00,0x78,0x00,0x00,0x00,0xe6,0x00,0x00,0x00, -0xe4,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,0xe6,0x00,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xe8,0x00,0x00,0x00, -0xe7,0x00,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0xea,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0xe9,0x00,0x00,0x00, -0x41,0x00,0x08,0x00,0xe2,0x00,0x00,0x00,0xee,0x00,0x00,0x00, -0xbd,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xc0,0x00,0x00,0x00, -0xcf,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x78,0x00,0x00,0x00,0xef,0x00,0x00,0x00,0xee,0x00,0x00,0x00, -0xc2,0x00,0x05,0x00,0x78,0x00,0x00,0x00,0xf2,0x00,0x00,0x00, -0xef,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,0xf2,0x00,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xf4,0x00,0x00,0x00, -0xf3,0x00,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0xf5,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,0xc1,0x00,0x00,0x00, -0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xf6,0x00,0x00,0x00, -0xf5,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,0xc5,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,0xea,0x00,0x00,0x00, -0xf6,0x00,0x00,0x00,0x72,0x00,0x04,0x00,0x80,0x00,0x00,0x00, -0xf8,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,0x72,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0xf9,0x00,0x00,0x00,0xf8,0x00,0x00,0x00, -0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xfb,0x00,0x00,0x00, -0xf9,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, -0x92,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0xfb,0x00,0x00,0x00, -0x85,0x00,0x05,0x00,0x92,0x00,0x00,0x00,0xfd,0x00,0x00,0x00, -0xde,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x04,0x01,0x00,0x00,0x8b,0x00,0x00,0x00, -0xd9,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xe2,0x00,0x00,0x00, -0x05,0x01,0x00,0x00,0xbd,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0xc0,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,0x04,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0x78,0x00,0x00,0x00,0x06,0x01,0x00,0x00, -0x05,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x07,0x01,0x00,0x00,0x06,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x07,0x01,0x00,0x00, -0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x09,0x01,0x00,0x00, -0x08,0x01,0x00,0x00,0xc1,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x10,0x01,0x00,0x00,0x85,0x00,0x00,0x00, -0xd9,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xe2,0x00,0x00,0x00, -0x11,0x01,0x00,0x00,0xbd,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0xc0,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x10,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0x78,0x00,0x00,0x00,0x12,0x01,0x00,0x00, -0x11,0x01,0x00,0x00,0xc4,0x00,0x05,0x00,0x78,0x00,0x00,0x00, -0x14,0x01,0x00,0x00,0x82,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0xc7,0x00,0x05,0x00,0x78,0x00,0x00,0x00,0x15,0x01,0x00,0x00, -0x12,0x01,0x00,0x00,0x14,0x01,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x16,0x01,0x00,0x00,0x15,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x17,0x01,0x00,0x00, -0x16,0x01,0x00,0x00,0xab,0x00,0x05,0x00,0xaa,0x00,0x00,0x00, -0x18,0x01,0x00,0x00,0x17,0x01,0x00,0x00,0x59,0x00,0x00,0x00, -0xa9,0x00,0x06,0x00,0x1b,0x00,0x00,0x00,0x19,0x01,0x00,0x00, -0x18,0x01,0x00,0x00,0x59,0x00,0x00,0x00,0x3b,0x00,0x00,0x00, -0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x1a,0x01,0x00,0x00, -0x09,0x01,0x00,0x00,0x19,0x01,0x00,0x00,0x6f,0x00,0x04,0x00, -0x92,0x00,0x00,0x00,0x1b,0x01,0x00,0x00,0x1a,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x23,0x01,0x00,0x00, -0xda,0x00,0x00,0x00,0x87,0x00,0x00,0x00,0x41,0x00,0x06,0x00, -0xdc,0x00,0x00,0x00,0x24,0x01,0x00,0x00,0xd4,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0x23,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0x92,0x00,0x00,0x00,0x25,0x01,0x00,0x00,0x24,0x01,0x00,0x00, -0x41,0x00,0x08,0x00,0xe2,0x00,0x00,0x00,0x29,0x01,0x00,0x00, -0xbd,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xc0,0x00,0x00,0x00, -0xcf,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x78,0x00,0x00,0x00,0x2a,0x01,0x00,0x00,0x29,0x01,0x00,0x00, -0xc2,0x00,0x05,0x00,0x78,0x00,0x00,0x00,0x2c,0x01,0x00,0x00, -0x2a,0x01,0x00,0x00,0x7e,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x2d,0x01,0x00,0x00,0x2c,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x2e,0x01,0x00,0x00, -0x2d,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x2f,0x01,0x00,0x00,0x2e,0x01,0x00,0x00,0xe9,0x00,0x00,0x00, -0x41,0x00,0x08,0x00,0xe2,0x00,0x00,0x00,0x33,0x01,0x00,0x00, -0xbd,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xc0,0x00,0x00,0x00, -0xcf,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x78,0x00,0x00,0x00,0x34,0x01,0x00,0x00,0x33,0x01,0x00,0x00, -0xc2,0x00,0x05,0x00,0x78,0x00,0x00,0x00,0x37,0x01,0x00,0x00, -0x34,0x01,0x00,0x00,0x7e,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x38,0x01,0x00,0x00,0x37,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x39,0x01,0x00,0x00, -0x38,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x3a,0x01,0x00,0x00,0x39,0x01,0x00,0x00,0xc1,0x00,0x00,0x00, -0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x3b,0x01,0x00,0x00, -0x3a,0x01,0x00,0x00,0x3b,0x00,0x00,0x00,0xc5,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x3c,0x01,0x00,0x00,0x2f,0x01,0x00,0x00, -0x3b,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x80,0x00,0x00,0x00, -0x3d,0x01,0x00,0x00,0x3c,0x01,0x00,0x00,0x72,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x3e,0x01,0x00,0x00,0x3d,0x01,0x00,0x00, -0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x3f,0x01,0x00,0x00, -0x3e,0x01,0x00,0x00,0xfa,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, -0x92,0x00,0x00,0x00,0x40,0x01,0x00,0x00,0x3f,0x01,0x00,0x00, -0x85,0x00,0x05,0x00,0x92,0x00,0x00,0x00,0x41,0x01,0x00,0x00, -0x25,0x01,0x00,0x00,0x40,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0x78,0x00,0x00,0x00,0x4a,0x01,0x00,0x00,0x05,0x01,0x00,0x00, -0xc2,0x00,0x05,0x00,0x78,0x00,0x00,0x00,0x4b,0x01,0x00,0x00, -0x4a,0x01,0x00,0x00,0xcf,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x4c,0x01,0x00,0x00,0x4b,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x4d,0x01,0x00,0x00, -0x4c,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x4e,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,0xc1,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x78,0x00,0x00,0x00,0x57,0x01,0x00,0x00, -0x11,0x01,0x00,0x00,0xc4,0x00,0x05,0x00,0x78,0x00,0x00,0x00, -0x59,0x01,0x00,0x00,0x82,0x00,0x00,0x00,0x7b,0x00,0x00,0x00, -0xc7,0x00,0x05,0x00,0x78,0x00,0x00,0x00,0x5a,0x01,0x00,0x00, -0x57,0x01,0x00,0x00,0x59,0x01,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x5b,0x01,0x00,0x00,0x5a,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x5c,0x01,0x00,0x00, -0x5b,0x01,0x00,0x00,0xab,0x00,0x05,0x00,0xaa,0x00,0x00,0x00, -0x5d,0x01,0x00,0x00,0x5c,0x01,0x00,0x00,0x59,0x00,0x00,0x00, -0xa9,0x00,0x06,0x00,0x1b,0x00,0x00,0x00,0x5e,0x01,0x00,0x00, -0x5d,0x01,0x00,0x00,0x59,0x00,0x00,0x00,0x3b,0x00,0x00,0x00, -0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x5f,0x01,0x00,0x00, -0x4e,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,0x6f,0x00,0x04,0x00, -0x92,0x00,0x00,0x00,0x60,0x01,0x00,0x00,0x5f,0x01,0x00,0x00, -0x85,0x00,0x05,0x00,0x92,0x00,0x00,0x00,0x61,0x01,0x00,0x00, -0x41,0x01,0x00,0x00,0x60,0x01,0x00,0x00,0x0c,0x00,0x08,0x00, -0x92,0x00,0x00,0x00,0x62,0x01,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,0x1b,0x01,0x00,0x00, -0x61,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x69,0x01,0x00,0x00,0xda,0x00,0x00,0x00,0xb4,0x00,0x00,0x00, -0x41,0x00,0x06,0x00,0xdc,0x00,0x00,0x00,0x6a,0x01,0x00,0x00, -0xd4,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x69,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0x92,0x00,0x00,0x00,0x6b,0x01,0x00,0x00, -0x6a,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0xe2,0x00,0x00,0x00, -0x6f,0x01,0x00,0x00,0xbd,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0xc0,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x3b,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x78,0x00,0x00,0x00,0x70,0x01,0x00,0x00, -0x6f,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x78,0x00,0x00,0x00, -0x72,0x01,0x00,0x00,0x70,0x01,0x00,0x00,0x7e,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x73,0x01,0x00,0x00, -0x72,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x74,0x01,0x00,0x00,0x73,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x75,0x01,0x00,0x00,0x74,0x01,0x00,0x00, -0xe9,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x78,0x00,0x00,0x00, -0x7a,0x01,0x00,0x00,0xee,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x7c,0x01,0x00,0x00,0x7e,0x00,0x00,0x00, -0x69,0x00,0x00,0x00,0xc2,0x00,0x05,0x00,0x78,0x00,0x00,0x00, -0x7d,0x01,0x00,0x00,0x7a,0x01,0x00,0x00,0x7c,0x01,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x7e,0x01,0x00,0x00, -0x7d,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x7f,0x01,0x00,0x00,0x7e,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x80,0x01,0x00,0x00,0x7f,0x01,0x00,0x00, -0xc1,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x81,0x01,0x00,0x00,0x80,0x01,0x00,0x00,0x3b,0x00,0x00,0x00, -0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x82,0x01,0x00,0x00, -0x75,0x01,0x00,0x00,0x81,0x01,0x00,0x00,0x72,0x00,0x04,0x00, -0x80,0x00,0x00,0x00,0x83,0x01,0x00,0x00,0x82,0x01,0x00,0x00, -0x72,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x84,0x01,0x00,0x00, -0x83,0x01,0x00,0x00,0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x85,0x01,0x00,0x00,0x84,0x01,0x00,0x00,0xfa,0x00,0x00,0x00, -0x6f,0x00,0x04,0x00,0x92,0x00,0x00,0x00,0x86,0x01,0x00,0x00, -0x85,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x92,0x00,0x00,0x00, -0x87,0x01,0x00,0x00,0x6b,0x01,0x00,0x00,0x86,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0x78,0x00,0x00,0x00,0x90,0x01,0x00,0x00, -0x05,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x78,0x00,0x00,0x00, -0x91,0x01,0x00,0x00,0x90,0x01,0x00,0x00,0x3b,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x92,0x01,0x00,0x00, -0x91,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x93,0x01,0x00,0x00,0x92,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x94,0x01,0x00,0x00,0x93,0x01,0x00,0x00, -0xc1,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x78,0x00,0x00,0x00, -0x9d,0x01,0x00,0x00,0x11,0x01,0x00,0x00,0xc4,0x00,0x05,0x00, -0x78,0x00,0x00,0x00,0x9f,0x01,0x00,0x00,0x82,0x00,0x00,0x00, -0xcf,0x00,0x00,0x00,0xc7,0x00,0x05,0x00,0x78,0x00,0x00,0x00, -0xa0,0x01,0x00,0x00,0x9d,0x01,0x00,0x00,0x9f,0x01,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa1,0x01,0x00,0x00, -0xa0,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0xa2,0x01,0x00,0x00,0xa1,0x01,0x00,0x00,0xab,0x00,0x05,0x00, -0xaa,0x00,0x00,0x00,0xa3,0x01,0x00,0x00,0xa2,0x01,0x00,0x00, -0x59,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,0x1b,0x00,0x00,0x00, -0xa4,0x01,0x00,0x00,0xa3,0x01,0x00,0x00,0x59,0x00,0x00,0x00, -0x3b,0x00,0x00,0x00,0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0xa5,0x01,0x00,0x00,0x94,0x01,0x00,0x00,0xa4,0x01,0x00,0x00, -0x6f,0x00,0x04,0x00,0x92,0x00,0x00,0x00,0xa6,0x01,0x00,0x00, -0xa5,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0x92,0x00,0x00,0x00, -0xa8,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x87,0x01,0x00,0x00,0xa6,0x01,0x00,0x00,0x62,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb0,0x01,0x00,0x00, -0xda,0x00,0x00,0x00,0xaf,0x01,0x00,0x00,0x41,0x00,0x06,0x00, -0xdc,0x00,0x00,0x00,0xb1,0x01,0x00,0x00,0xd4,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xb0,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0x92,0x00,0x00,0x00,0xb2,0x01,0x00,0x00,0xb1,0x01,0x00,0x00, -0x41,0x00,0x08,0x00,0xe2,0x00,0x00,0x00,0xb6,0x01,0x00,0x00, -0xbd,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xc0,0x00,0x00,0x00, -0xcf,0x00,0x00,0x00,0x45,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x78,0x00,0x00,0x00,0xb7,0x01,0x00,0x00,0xb6,0x01,0x00,0x00, -0xc2,0x00,0x05,0x00,0x78,0x00,0x00,0x00,0xb9,0x01,0x00,0x00, -0xb7,0x01,0x00,0x00,0x7e,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xba,0x01,0x00,0x00,0xb9,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xbb,0x01,0x00,0x00, -0xba,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0xbc,0x01,0x00,0x00,0xbb,0x01,0x00,0x00,0xe9,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x78,0x00,0x00,0x00,0xc1,0x01,0x00,0x00, -0x33,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x78,0x00,0x00,0x00, -0xc4,0x01,0x00,0x00,0xc1,0x01,0x00,0x00,0x7c,0x01,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xc5,0x01,0x00,0x00, -0xc4,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0xc6,0x01,0x00,0x00,0xc5,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0xc7,0x01,0x00,0x00,0xc6,0x01,0x00,0x00, -0xc1,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0xc8,0x01,0x00,0x00,0xc7,0x01,0x00,0x00,0x3b,0x00,0x00,0x00, -0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xc9,0x01,0x00,0x00, -0xbc,0x01,0x00,0x00,0xc8,0x01,0x00,0x00,0x72,0x00,0x04,0x00, -0x80,0x00,0x00,0x00,0xca,0x01,0x00,0x00,0xc9,0x01,0x00,0x00, -0x72,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xcb,0x01,0x00,0x00, -0xca,0x01,0x00,0x00,0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0xcc,0x01,0x00,0x00,0xcb,0x01,0x00,0x00,0xfa,0x00,0x00,0x00, -0x6f,0x00,0x04,0x00,0x92,0x00,0x00,0x00,0xcd,0x01,0x00,0x00, -0xcc,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x92,0x00,0x00,0x00, -0xce,0x01,0x00,0x00,0xb2,0x01,0x00,0x00,0xcd,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0x78,0x00,0x00,0x00,0xd7,0x01,0x00,0x00, -0x05,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x78,0x00,0x00,0x00, -0xd8,0x01,0x00,0x00,0xd7,0x01,0x00,0x00,0x45,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xd9,0x01,0x00,0x00, -0xd8,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0xda,0x01,0x00,0x00,0xd9,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0xdb,0x01,0x00,0x00,0xda,0x01,0x00,0x00, -0xc1,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x78,0x00,0x00,0x00, -0xe4,0x01,0x00,0x00,0x11,0x01,0x00,0x00,0xc4,0x00,0x05,0x00, -0x78,0x00,0x00,0x00,0xe6,0x01,0x00,0x00,0x82,0x00,0x00,0x00, -0xc1,0x00,0x00,0x00,0xc7,0x00,0x05,0x00,0x78,0x00,0x00,0x00, -0xe7,0x01,0x00,0x00,0xe4,0x01,0x00,0x00,0xe6,0x01,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xe8,0x01,0x00,0x00, -0xe7,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0xe9,0x01,0x00,0x00,0xe8,0x01,0x00,0x00,0xab,0x00,0x05,0x00, -0xaa,0x00,0x00,0x00,0xea,0x01,0x00,0x00,0xe9,0x01,0x00,0x00, -0x59,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,0x1b,0x00,0x00,0x00, -0xeb,0x01,0x00,0x00,0xea,0x01,0x00,0x00,0x59,0x00,0x00,0x00, -0x3b,0x00,0x00,0x00,0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0xec,0x01,0x00,0x00,0xdb,0x01,0x00,0x00,0xeb,0x01,0x00,0x00, -0x6f,0x00,0x04,0x00,0x92,0x00,0x00,0x00,0xed,0x01,0x00,0x00, -0xec,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0x92,0x00,0x00,0x00, -0xef,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0xce,0x01,0x00,0x00,0xed,0x01,0x00,0x00,0xa8,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf6,0x01,0x00,0x00, -0xda,0x00,0x00,0x00,0x96,0x00,0x00,0x00,0x41,0x00,0x06,0x00, -0xdc,0x00,0x00,0x00,0xf7,0x01,0x00,0x00,0xd4,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xf6,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0x92,0x00,0x00,0x00,0xf8,0x01,0x00,0x00,0xf7,0x01,0x00,0x00, -0x41,0x00,0x08,0x00,0xe2,0x00,0x00,0x00,0xfc,0x01,0x00,0x00, -0xbd,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xc0,0x00,0x00,0x00, -0xcf,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x78,0x00,0x00,0x00,0xfd,0x01,0x00,0x00,0xfc,0x01,0x00,0x00, -0xc2,0x00,0x05,0x00,0x78,0x00,0x00,0x00,0xff,0x01,0x00,0x00, -0xfd,0x01,0x00,0x00,0x7e,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0xff,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x01,0x02,0x00,0x00, -0x00,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x02,0x02,0x00,0x00,0x01,0x02,0x00,0x00,0xe9,0x00,0x00,0x00, -0x41,0x00,0x08,0x00,0xe2,0x00,0x00,0x00,0x06,0x02,0x00,0x00, -0xbd,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xc0,0x00,0x00,0x00, -0xcf,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x78,0x00,0x00,0x00,0x07,0x02,0x00,0x00,0x06,0x02,0x00,0x00, -0xc2,0x00,0x05,0x00,0x78,0x00,0x00,0x00,0x0a,0x02,0x00,0x00, -0x07,0x02,0x00,0x00,0x7e,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x0b,0x02,0x00,0x00,0x0a,0x02,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x0c,0x02,0x00,0x00, -0x0b,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x0d,0x02,0x00,0x00,0x0c,0x02,0x00,0x00,0xc1,0x00,0x00,0x00, -0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x0e,0x02,0x00,0x00, -0x0d,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0xc5,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x0f,0x02,0x00,0x00,0x02,0x02,0x00,0x00, -0x0e,0x02,0x00,0x00,0x72,0x00,0x04,0x00,0x80,0x00,0x00,0x00, -0x10,0x02,0x00,0x00,0x0f,0x02,0x00,0x00,0x72,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x11,0x02,0x00,0x00,0x10,0x02,0x00,0x00, -0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x12,0x02,0x00,0x00, -0x11,0x02,0x00,0x00,0xfa,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, -0x92,0x00,0x00,0x00,0x13,0x02,0x00,0x00,0x12,0x02,0x00,0x00, -0x85,0x00,0x05,0x00,0x92,0x00,0x00,0x00,0x14,0x02,0x00,0x00, -0xf8,0x01,0x00,0x00,0x13,0x02,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x1c,0x02,0x00,0x00,0x04,0x01,0x00,0x00, -0x96,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xe2,0x00,0x00,0x00, -0x1d,0x02,0x00,0x00,0xbd,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0xc0,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,0x1c,0x02,0x00,0x00, -0x3d,0x00,0x04,0x00,0x78,0x00,0x00,0x00,0x1e,0x02,0x00,0x00, -0x1d,0x02,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x1f,0x02,0x00,0x00,0x1e,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x20,0x02,0x00,0x00,0x1f,0x02,0x00,0x00, -0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x21,0x02,0x00,0x00, -0x20,0x02,0x00,0x00,0xc1,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x29,0x02,0x00,0x00,0x10,0x01,0x00,0x00, -0x96,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xe2,0x00,0x00,0x00, -0x2a,0x02,0x00,0x00,0xbd,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0xc0,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x29,0x02,0x00,0x00, -0x3d,0x00,0x04,0x00,0x78,0x00,0x00,0x00,0x2b,0x02,0x00,0x00, -0x2a,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x78,0x00,0x00,0x00, -0x2e,0x02,0x00,0x00,0x2b,0x02,0x00,0x00,0x14,0x01,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x2f,0x02,0x00,0x00, -0x2e,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x30,0x02,0x00,0x00,0x2f,0x02,0x00,0x00,0xab,0x00,0x05,0x00, -0xaa,0x00,0x00,0x00,0x31,0x02,0x00,0x00,0x30,0x02,0x00,0x00, -0x59,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,0x1b,0x00,0x00,0x00, -0x32,0x02,0x00,0x00,0x31,0x02,0x00,0x00,0x59,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00,0x4f,0x00,0x00,0x00, +0x4e,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x4f,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00,0x52,0x00,0x00,0x00, +0x4a,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x53,0x00,0x00,0x00,0x52,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x54,0x00,0x00,0x00, +0x50,0x00,0x00,0x00,0x53,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x4d,0x00,0x00,0x00, +0x54,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00, +0x5b,0x03,0x00,0x00,0x11,0x00,0x00,0x00,0x12,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x5c,0x03,0x00,0x00, +0x5b,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00, +0x5e,0x03,0x00,0x00,0x1a,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x5f,0x03,0x00,0x00, +0x5e,0x03,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x60,0x03,0x00,0x00,0x5c,0x03,0x00,0x00,0x5f,0x03,0x00,0x00, +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x64,0x03,0x00,0x00, +0x5c,0x03,0x00,0x00,0x5f,0x03,0x00,0x00,0x41,0x00,0x05,0x00, +0x1d,0x00,0x00,0x00,0x66,0x03,0x00,0x00,0x1a,0x00,0x00,0x00, +0x28,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x67,0x03,0x00,0x00,0x66,0x03,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x68,0x03,0x00,0x00,0x60,0x03,0x00,0x00, +0x67,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00, +0x6a,0x03,0x00,0x00,0x1a,0x00,0x00,0x00,0x2e,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x6b,0x03,0x00,0x00, +0x6a,0x03,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x6c,0x03,0x00,0x00,0x64,0x03,0x00,0x00,0x6b,0x03,0x00,0x00, +0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00,0x6e,0x03,0x00,0x00, +0x1a,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x6f,0x03,0x00,0x00,0x6e,0x03,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x70,0x03,0x00,0x00, +0x68,0x03,0x00,0x00,0x6f,0x03,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x72,0x03,0x00,0x00,0x70,0x03,0x00,0x00, +0x6c,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00, +0x74,0x03,0x00,0x00,0x1a,0x00,0x00,0x00,0x3b,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x75,0x03,0x00,0x00, +0x74,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x76,0x03,0x00,0x00,0x72,0x03,0x00,0x00,0x75,0x03,0x00,0x00, +0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00,0x78,0x03,0x00,0x00, +0x1a,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x79,0x03,0x00,0x00,0x78,0x03,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7a,0x03,0x00,0x00, +0x5c,0x03,0x00,0x00,0x79,0x03,0x00,0x00,0x41,0x00,0x05,0x00, +0x1d,0x00,0x00,0x00,0x7c,0x03,0x00,0x00,0x1a,0x00,0x00,0x00, +0x45,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x7d,0x03,0x00,0x00,0x7c,0x03,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x7e,0x03,0x00,0x00,0x5c,0x03,0x00,0x00, +0x7d,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00, +0x62,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x63,0x00,0x00,0x00, +0x62,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x65,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x64,0x00,0x00,0x00, +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x68,0x00,0x00,0x00, +0x76,0x03,0x00,0x00,0x64,0x00,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,0x55,0x00,0x00,0x00, +0x65,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x6c,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x6b,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00,0x6f,0x00,0x00,0x00, +0x6e,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x6f,0x00,0x00,0x00, +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x71,0x00,0x00,0x00, +0x70,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0x89,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x75,0x00,0x00,0x00,0x70,0x00,0x00,0x00, +0x51,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x79,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x78,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7d,0x00,0x00,0x00, +0x78,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x82,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x71,0x00,0x00,0x00, +0x7d,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x85,0x00,0x00,0x00,0x83,0x00,0x00,0x00,0x79,0x00,0x00,0x00, +0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x86,0x00,0x00,0x00, +0x82,0x00,0x00,0x00,0x85,0x00,0x00,0x00,0x72,0x00,0x04,0x00, +0x87,0x00,0x00,0x00,0x88,0x00,0x00,0x00,0x86,0x00,0x00,0x00, +0x7c,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0x89,0x00,0x00,0x00, +0x88,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x8c,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0x7e,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x90,0x00,0x00,0x00, +0x8e,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x92,0x00,0x00,0x00,0x90,0x00,0x00,0x00, +0x8c,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x96,0x00,0x00,0x00,0x94,0x00,0x00,0x00,0x79,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x98,0x00,0x00,0x00, +0x96,0x00,0x00,0x00,0x8c,0x00,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x9f,0x00,0x00,0x00,0x9d,0x00,0x00,0x00, +0x75,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xa1,0x00,0x00,0x00,0x9f,0x00,0x00,0x00,0x71,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0xa3,0x00,0x00,0x00,0xa4,0x00,0x00,0x00, +0x9c,0x00,0x00,0x00,0xa1,0x00,0x00,0x00,0x3e,0x00,0x03,0x00, +0xa4,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, +0xaa,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xaa,0x00,0x00,0x00, +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x7f,0x03,0x00,0x00, +0x75,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x2a,0x03,0x00,0x00, +0xad,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0xb1,0x00,0x00,0x00, +0xb2,0x00,0x00,0x00,0x7f,0x03,0x00,0x00,0x65,0x00,0x00,0x00, +0xf6,0x00,0x04,0x00,0xac,0x00,0x00,0x00,0xad,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xb2,0x00,0x00,0x00, +0xab,0x00,0x00,0x00,0xac,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xab,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xb5,0x00,0x00,0x00,0x7f,0x03,0x00,0x00,0x64,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb7,0x00,0x00,0x00, +0xb5,0x00,0x00,0x00,0x98,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,0x6c,0x00,0x00,0x00, +0x7f,0x03,0x00,0x00,0x41,0x00,0x07,0x00,0xc9,0x00,0x00,0x00, +0xca,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0xc7,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0xbf,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,0xca,0x00,0x00,0x00, +0x73,0x00,0x04,0x00,0x99,0x00,0x00,0x00,0xcc,0x00,0x00,0x00, +0xcb,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xd0,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0xd0,0x00,0x00,0x00,0xf5,0x00,0x07,0x00, +0x99,0x00,0x00,0x00,0x83,0x03,0x00,0x00,0xa2,0x00,0x00,0x00, +0xab,0x00,0x00,0x00,0x1b,0x03,0x00,0x00,0xd1,0x00,0x00,0x00, +0xf5,0x00,0x07,0x00,0x1b,0x00,0x00,0x00,0x82,0x03,0x00,0x00, +0x61,0x00,0x00,0x00,0xab,0x00,0x00,0x00,0x1d,0x03,0x00,0x00, +0xd1,0x00,0x00,0x00,0xb1,0x00,0x05,0x00,0xb1,0x00,0x00,0x00, +0xd7,0x00,0x00,0x00,0x82,0x03,0x00,0x00,0xd6,0x00,0x00,0x00, +0xf6,0x00,0x04,0x00,0xd2,0x00,0x00,0x00,0xd1,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xd7,0x00,0x00,0x00, +0xd1,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xd1,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xde,0x00,0x00,0x00,0x7a,0x03,0x00,0x00,0xb7,0x00,0x00,0x00, +0x7c,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xe0,0x00,0x00,0x00, +0x82,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xe1,0x00,0x00,0x00,0xde,0x00,0x00,0x00,0xe0,0x00,0x00,0x00, +0x41,0x00,0x06,0x00,0xe3,0x00,0x00,0x00,0xe4,0x00,0x00,0x00, +0xdb,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xe1,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x99,0x00,0x00,0x00,0xe5,0x00,0x00,0x00, +0xe4,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xe9,0x00,0x00,0x00, +0xea,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0xc7,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0xeb,0x00,0x00,0x00, +0xea,0x00,0x00,0x00,0xc2,0x00,0x05,0x00,0x7f,0x00,0x00,0x00, +0xed,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0x85,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xee,0x00,0x00,0x00, +0xed,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0xef,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0xf1,0x00,0x00,0x00,0xef,0x00,0x00,0x00, +0xf0,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xe9,0x00,0x00,0x00, +0xf5,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0xc7,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0xf6,0x00,0x00,0x00, +0xf5,0x00,0x00,0x00,0xc2,0x00,0x05,0x00,0x7f,0x00,0x00,0x00, +0xf9,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,0x85,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xfa,0x00,0x00,0x00, +0xf9,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0xfb,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0xfb,0x00,0x00,0x00, +0xc8,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0xfd,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x3b,0x00,0x00,0x00, +0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xfe,0x00,0x00,0x00, +0xf1,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,0x72,0x00,0x04,0x00, +0x87,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xfe,0x00,0x00,0x00, +0x72,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x00,0x01,0x00,0x00, +0xff,0x00,0x00,0x00,0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x02,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x01,0x00,0x00, +0x6f,0x00,0x04,0x00,0x99,0x00,0x00,0x00,0x03,0x01,0x00,0x00, +0x02,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x99,0x00,0x00,0x00, +0x04,0x01,0x00,0x00,0xe5,0x00,0x00,0x00,0x03,0x01,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0b,0x01,0x00,0x00, +0x92,0x00,0x00,0x00,0xe0,0x00,0x00,0x00,0x41,0x00,0x08,0x00, +0xe9,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,0xc4,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,0x82,0x00,0x00,0x00, +0x0b,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00, +0x0d,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x0e,0x01,0x00,0x00,0x0d,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x0f,0x01,0x00,0x00, +0x0e,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x10,0x01,0x00,0x00,0x0f,0x01,0x00,0x00,0xc8,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x17,0x01,0x00,0x00, +0x8c,0x00,0x00,0x00,0xe0,0x00,0x00,0x00,0x41,0x00,0x08,0x00, +0xe9,0x00,0x00,0x00,0x18,0x01,0x00,0x00,0xc4,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0x17,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00, +0x19,0x01,0x00,0x00,0x18,0x01,0x00,0x00,0xc4,0x00,0x05,0x00, +0x7f,0x00,0x00,0x00,0x1b,0x01,0x00,0x00,0x89,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0xc7,0x00,0x05,0x00,0x7f,0x00,0x00,0x00, +0x1c,0x01,0x00,0x00,0x19,0x01,0x00,0x00,0x1b,0x01,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x1d,0x01,0x00,0x00, +0x1c,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x1e,0x01,0x00,0x00,0x1d,0x01,0x00,0x00,0xab,0x00,0x05,0x00, +0xb1,0x00,0x00,0x00,0x1f,0x01,0x00,0x00,0x1e,0x01,0x00,0x00, +0x61,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,0x1b,0x00,0x00,0x00, +0x20,0x01,0x00,0x00,0x1f,0x01,0x00,0x00,0x61,0x00,0x00,0x00, 0x3b,0x00,0x00,0x00,0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x33,0x02,0x00,0x00,0x21,0x02,0x00,0x00,0x32,0x02,0x00,0x00, -0x6f,0x00,0x04,0x00,0x92,0x00,0x00,0x00,0x34,0x02,0x00,0x00, -0x33,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x92,0x00,0x00,0x00, -0x36,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x14,0x02,0x00,0x00,0x34,0x02,0x00,0x00,0xef,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3e,0x02,0x00,0x00, -0xda,0x00,0x00,0x00,0x3d,0x02,0x00,0x00,0x41,0x00,0x06,0x00, -0xdc,0x00,0x00,0x00,0x3f,0x02,0x00,0x00,0xd4,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0x3e,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0x92,0x00,0x00,0x00,0x40,0x02,0x00,0x00,0x3f,0x02,0x00,0x00, -0x41,0x00,0x08,0x00,0xe2,0x00,0x00,0x00,0x44,0x02,0x00,0x00, -0xbd,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xc0,0x00,0x00,0x00, -0xcf,0x00,0x00,0x00,0xc1,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x78,0x00,0x00,0x00,0x45,0x02,0x00,0x00,0x44,0x02,0x00,0x00, -0xc2,0x00,0x05,0x00,0x78,0x00,0x00,0x00,0x47,0x02,0x00,0x00, -0x45,0x02,0x00,0x00,0x7e,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x48,0x02,0x00,0x00,0x47,0x02,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x49,0x02,0x00,0x00, -0x48,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x4a,0x02,0x00,0x00,0x49,0x02,0x00,0x00,0xe9,0x00,0x00,0x00, -0x41,0x00,0x08,0x00,0xe2,0x00,0x00,0x00,0x4f,0x02,0x00,0x00, -0xbd,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xc0,0x00,0x00,0x00, -0xcf,0x00,0x00,0x00,0x4e,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0x78,0x00,0x00,0x00,0x50,0x02,0x00,0x00,0x4f,0x02,0x00,0x00, -0xc2,0x00,0x05,0x00,0x78,0x00,0x00,0x00,0x53,0x02,0x00,0x00, -0x50,0x02,0x00,0x00,0x7e,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x54,0x02,0x00,0x00,0x53,0x02,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x55,0x02,0x00,0x00, -0x54,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x56,0x02,0x00,0x00,0x55,0x02,0x00,0x00,0xc1,0x00,0x00,0x00, -0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x57,0x02,0x00,0x00, -0x56,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0xc5,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x58,0x02,0x00,0x00,0x4a,0x02,0x00,0x00, -0x57,0x02,0x00,0x00,0x72,0x00,0x04,0x00,0x80,0x00,0x00,0x00, -0x59,0x02,0x00,0x00,0x58,0x02,0x00,0x00,0x72,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x5a,0x02,0x00,0x00,0x59,0x02,0x00,0x00, -0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x5b,0x02,0x00,0x00, -0x5a,0x02,0x00,0x00,0xfa,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, -0x92,0x00,0x00,0x00,0x5c,0x02,0x00,0x00,0x5b,0x02,0x00,0x00, -0x85,0x00,0x05,0x00,0x92,0x00,0x00,0x00,0x5d,0x02,0x00,0x00, -0x40,0x02,0x00,0x00,0x5c,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0x78,0x00,0x00,0x00,0x67,0x02,0x00,0x00,0x1d,0x02,0x00,0x00, -0xc2,0x00,0x05,0x00,0x78,0x00,0x00,0x00,0x68,0x02,0x00,0x00, -0x67,0x02,0x00,0x00,0xcf,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x69,0x02,0x00,0x00,0x68,0x02,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x6a,0x02,0x00,0x00, -0x69,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x6b,0x02,0x00,0x00,0x6a,0x02,0x00,0x00,0xc1,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x78,0x00,0x00,0x00,0x75,0x02,0x00,0x00, -0x2a,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x78,0x00,0x00,0x00, -0x78,0x02,0x00,0x00,0x75,0x02,0x00,0x00,0x59,0x01,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x79,0x02,0x00,0x00, -0x78,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x7a,0x02,0x00,0x00,0x79,0x02,0x00,0x00,0xab,0x00,0x05,0x00, -0xaa,0x00,0x00,0x00,0x7b,0x02,0x00,0x00,0x7a,0x02,0x00,0x00, -0x59,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,0x1b,0x00,0x00,0x00, -0x7c,0x02,0x00,0x00,0x7b,0x02,0x00,0x00,0x59,0x00,0x00,0x00, +0x21,0x01,0x00,0x00,0x10,0x01,0x00,0x00,0x20,0x01,0x00,0x00, +0x6f,0x00,0x04,0x00,0x99,0x00,0x00,0x00,0x22,0x01,0x00,0x00, +0x21,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x2a,0x01,0x00,0x00,0xe1,0x00,0x00,0x00,0x8e,0x00,0x00,0x00, +0x41,0x00,0x06,0x00,0xe3,0x00,0x00,0x00,0x2b,0x01,0x00,0x00, +0xdb,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x2a,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0x99,0x00,0x00,0x00,0x2c,0x01,0x00,0x00, +0x2b,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0xe9,0x00,0x00,0x00, +0x30,0x01,0x00,0x00,0xc4,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0xc7,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,0xd6,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0x31,0x01,0x00,0x00, +0x30,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x7f,0x00,0x00,0x00, +0x33,0x01,0x00,0x00,0x31,0x01,0x00,0x00,0x85,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x34,0x01,0x00,0x00, +0x33,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x35,0x01,0x00,0x00,0x34,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x36,0x01,0x00,0x00,0x35,0x01,0x00,0x00, +0xf0,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xe9,0x00,0x00,0x00, +0x3a,0x01,0x00,0x00,0xc4,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0xc7,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,0x28,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0x3b,0x01,0x00,0x00, +0x3a,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x7f,0x00,0x00,0x00, +0x3e,0x01,0x00,0x00,0x3b,0x01,0x00,0x00,0x85,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x3f,0x01,0x00,0x00, +0x3e,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x40,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x41,0x01,0x00,0x00,0x40,0x01,0x00,0x00, +0xc8,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x42,0x01,0x00,0x00,0x41,0x01,0x00,0x00,0x3b,0x00,0x00,0x00, +0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x43,0x01,0x00,0x00, +0x36,0x01,0x00,0x00,0x42,0x01,0x00,0x00,0x72,0x00,0x04,0x00, +0x87,0x00,0x00,0x00,0x44,0x01,0x00,0x00,0x43,0x01,0x00,0x00, +0x72,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x45,0x01,0x00,0x00, +0x44,0x01,0x00,0x00,0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x46,0x01,0x00,0x00,0x45,0x01,0x00,0x00,0x01,0x01,0x00,0x00, +0x6f,0x00,0x04,0x00,0x99,0x00,0x00,0x00,0x47,0x01,0x00,0x00, +0x46,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x99,0x00,0x00,0x00, +0x48,0x01,0x00,0x00,0x2c,0x01,0x00,0x00,0x47,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0x51,0x01,0x00,0x00, +0x0c,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x7f,0x00,0x00,0x00, +0x52,0x01,0x00,0x00,0x51,0x01,0x00,0x00,0xd6,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x53,0x01,0x00,0x00, +0x52,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x54,0x01,0x00,0x00,0x53,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x55,0x01,0x00,0x00,0x54,0x01,0x00,0x00, +0xc8,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00, +0x5e,0x01,0x00,0x00,0x18,0x01,0x00,0x00,0xc4,0x00,0x05,0x00, +0x7f,0x00,0x00,0x00,0x60,0x01,0x00,0x00,0x89,0x00,0x00,0x00, +0x82,0x00,0x00,0x00,0xc7,0x00,0x05,0x00,0x7f,0x00,0x00,0x00, +0x61,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,0x60,0x01,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x62,0x01,0x00,0x00, +0x61,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x63,0x01,0x00,0x00,0x62,0x01,0x00,0x00,0xab,0x00,0x05,0x00, +0xb1,0x00,0x00,0x00,0x64,0x01,0x00,0x00,0x63,0x01,0x00,0x00, +0x61,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,0x1b,0x00,0x00,0x00, +0x65,0x01,0x00,0x00,0x64,0x01,0x00,0x00,0x61,0x00,0x00,0x00, 0x3b,0x00,0x00,0x00,0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x7d,0x02,0x00,0x00,0x6b,0x02,0x00,0x00,0x7c,0x02,0x00,0x00, -0x6f,0x00,0x04,0x00,0x92,0x00,0x00,0x00,0x7e,0x02,0x00,0x00, -0x7d,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x92,0x00,0x00,0x00, -0x80,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x5d,0x02,0x00,0x00,0x7e,0x02,0x00,0x00,0x36,0x02,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x88,0x02,0x00,0x00, -0xda,0x00,0x00,0x00,0x87,0x02,0x00,0x00,0x41,0x00,0x06,0x00, -0xdc,0x00,0x00,0x00,0x89,0x02,0x00,0x00,0xd4,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0x88,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0x92,0x00,0x00,0x00,0x8a,0x02,0x00,0x00,0x89,0x02,0x00,0x00, -0x41,0x00,0x08,0x00,0xe2,0x00,0x00,0x00,0x8e,0x02,0x00,0x00, -0xbd,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xc0,0x00,0x00,0x00, -0xcf,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x78,0x00,0x00,0x00,0x8f,0x02,0x00,0x00,0x8e,0x02,0x00,0x00, -0xc2,0x00,0x05,0x00,0x78,0x00,0x00,0x00,0x91,0x02,0x00,0x00, -0x8f,0x02,0x00,0x00,0x7e,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x92,0x02,0x00,0x00,0x91,0x02,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x93,0x02,0x00,0x00, -0x92,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x94,0x02,0x00,0x00,0x93,0x02,0x00,0x00,0xe9,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x78,0x00,0x00,0x00,0x99,0x02,0x00,0x00, -0x06,0x02,0x00,0x00,0xc2,0x00,0x05,0x00,0x78,0x00,0x00,0x00, -0x9c,0x02,0x00,0x00,0x99,0x02,0x00,0x00,0x7c,0x01,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x9d,0x02,0x00,0x00, -0x9c,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x9e,0x02,0x00,0x00,0x9d,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x9f,0x02,0x00,0x00,0x9e,0x02,0x00,0x00, -0xc1,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0xa0,0x02,0x00,0x00,0x9f,0x02,0x00,0x00,0x3b,0x00,0x00,0x00, -0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xa1,0x02,0x00,0x00, -0x94,0x02,0x00,0x00,0xa0,0x02,0x00,0x00,0x72,0x00,0x04,0x00, -0x80,0x00,0x00,0x00,0xa2,0x02,0x00,0x00,0xa1,0x02,0x00,0x00, -0x72,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xa3,0x02,0x00,0x00, -0xa2,0x02,0x00,0x00,0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0xa4,0x02,0x00,0x00,0xa3,0x02,0x00,0x00,0xfa,0x00,0x00,0x00, -0x6f,0x00,0x04,0x00,0x92,0x00,0x00,0x00,0xa5,0x02,0x00,0x00, -0xa4,0x02,0x00,0x00,0x85,0x00,0x05,0x00,0x92,0x00,0x00,0x00, -0xa6,0x02,0x00,0x00,0x8a,0x02,0x00,0x00,0xa5,0x02,0x00,0x00, -0x3d,0x00,0x04,0x00,0x78,0x00,0x00,0x00,0xb0,0x02,0x00,0x00, -0x1d,0x02,0x00,0x00,0xc2,0x00,0x05,0x00,0x78,0x00,0x00,0x00, -0xb1,0x02,0x00,0x00,0xb0,0x02,0x00,0x00,0x3b,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xb2,0x02,0x00,0x00, -0xb1,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0xb3,0x02,0x00,0x00,0xb2,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0xb4,0x02,0x00,0x00,0xb3,0x02,0x00,0x00, -0xc1,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x78,0x00,0x00,0x00, -0xbe,0x02,0x00,0x00,0x2a,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, -0x78,0x00,0x00,0x00,0xc1,0x02,0x00,0x00,0xbe,0x02,0x00,0x00, -0x9f,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xc2,0x02,0x00,0x00,0xc1,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0xc3,0x02,0x00,0x00,0xc2,0x02,0x00,0x00, -0xab,0x00,0x05,0x00,0xaa,0x00,0x00,0x00,0xc4,0x02,0x00,0x00, -0xc3,0x02,0x00,0x00,0x59,0x00,0x00,0x00,0xa9,0x00,0x06,0x00, -0x1b,0x00,0x00,0x00,0xc5,0x02,0x00,0x00,0xc4,0x02,0x00,0x00, -0x59,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,0x82,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0xc6,0x02,0x00,0x00,0xb4,0x02,0x00,0x00, -0xc5,0x02,0x00,0x00,0x6f,0x00,0x04,0x00,0x92,0x00,0x00,0x00, -0xc7,0x02,0x00,0x00,0xc6,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, -0x92,0x00,0x00,0x00,0xc9,0x02,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0xa6,0x02,0x00,0x00,0xc7,0x02,0x00,0x00, -0x80,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xd1,0x02,0x00,0x00,0xda,0x00,0x00,0x00,0xd0,0x02,0x00,0x00, -0x41,0x00,0x06,0x00,0xdc,0x00,0x00,0x00,0xd2,0x02,0x00,0x00, -0xd4,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xd1,0x02,0x00,0x00, -0x3d,0x00,0x04,0x00,0x92,0x00,0x00,0x00,0xd3,0x02,0x00,0x00, -0xd2,0x02,0x00,0x00,0x41,0x00,0x08,0x00,0xe2,0x00,0x00,0x00, -0xd7,0x02,0x00,0x00,0xbd,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0xc0,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x34,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x78,0x00,0x00,0x00,0xd8,0x02,0x00,0x00, -0xd7,0x02,0x00,0x00,0xc2,0x00,0x05,0x00,0x78,0x00,0x00,0x00, -0xda,0x02,0x00,0x00,0xd8,0x02,0x00,0x00,0x7e,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xdb,0x02,0x00,0x00, -0xda,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0xdc,0x02,0x00,0x00,0xdb,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0xdd,0x02,0x00,0x00,0xdc,0x02,0x00,0x00, -0xe9,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x78,0x00,0x00,0x00, -0xe2,0x02,0x00,0x00,0x4f,0x02,0x00,0x00,0xc2,0x00,0x05,0x00, -0x78,0x00,0x00,0x00,0xe5,0x02,0x00,0x00,0xe2,0x02,0x00,0x00, -0x7c,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xe6,0x02,0x00,0x00,0xe5,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0xe7,0x02,0x00,0x00,0xe6,0x02,0x00,0x00, -0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xe8,0x02,0x00,0x00, -0xe7,0x02,0x00,0x00,0xc1,0x00,0x00,0x00,0xc4,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0xe9,0x02,0x00,0x00,0xe8,0x02,0x00,0x00, +0x66,0x01,0x00,0x00,0x55,0x01,0x00,0x00,0x65,0x01,0x00,0x00, +0x6f,0x00,0x04,0x00,0x99,0x00,0x00,0x00,0x67,0x01,0x00,0x00, +0x66,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x99,0x00,0x00,0x00, +0x68,0x01,0x00,0x00,0x48,0x01,0x00,0x00,0x67,0x01,0x00,0x00, +0x0c,0x00,0x08,0x00,0x99,0x00,0x00,0x00,0x69,0x01,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x04,0x01,0x00,0x00, +0x22,0x01,0x00,0x00,0x68,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x70,0x01,0x00,0x00,0xe1,0x00,0x00,0x00, +0xbb,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xe3,0x00,0x00,0x00, +0x71,0x01,0x00,0x00,0xdb,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0x70,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x99,0x00,0x00,0x00, +0x72,0x01,0x00,0x00,0x71,0x01,0x00,0x00,0x41,0x00,0x08,0x00, +0xe9,0x00,0x00,0x00,0x76,0x01,0x00,0x00,0xc4,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,0xd6,0x00,0x00,0x00, +0x3b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00, +0x77,0x01,0x00,0x00,0x76,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, +0x7f,0x00,0x00,0x00,0x79,0x01,0x00,0x00,0x77,0x01,0x00,0x00, +0x85,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x7a,0x01,0x00,0x00,0x79,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x7b,0x01,0x00,0x00,0x7a,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x7c,0x01,0x00,0x00, +0x7b,0x01,0x00,0x00,0xf0,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x7f,0x00,0x00,0x00,0x81,0x01,0x00,0x00,0xf5,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x83,0x01,0x00,0x00, +0x85,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0xc2,0x00,0x05,0x00, +0x7f,0x00,0x00,0x00,0x84,0x01,0x00,0x00,0x81,0x01,0x00,0x00, +0x83,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x85,0x01,0x00,0x00,0x84,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x86,0x01,0x00,0x00,0x85,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x87,0x01,0x00,0x00, +0x86,0x01,0x00,0x00,0xc8,0x00,0x00,0x00,0xc4,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x88,0x01,0x00,0x00,0x87,0x01,0x00,0x00, 0x3b,0x00,0x00,0x00,0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0xea,0x02,0x00,0x00,0xdd,0x02,0x00,0x00,0xe9,0x02,0x00,0x00, -0x72,0x00,0x04,0x00,0x80,0x00,0x00,0x00,0xeb,0x02,0x00,0x00, -0xea,0x02,0x00,0x00,0x72,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0xec,0x02,0x00,0x00,0xeb,0x02,0x00,0x00,0x82,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0xed,0x02,0x00,0x00,0xec,0x02,0x00,0x00, -0xfa,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x92,0x00,0x00,0x00, -0xee,0x02,0x00,0x00,0xed,0x02,0x00,0x00,0x85,0x00,0x05,0x00, -0x92,0x00,0x00,0x00,0xef,0x02,0x00,0x00,0xd3,0x02,0x00,0x00, -0xee,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x78,0x00,0x00,0x00, -0xf9,0x02,0x00,0x00,0x1d,0x02,0x00,0x00,0xc2,0x00,0x05,0x00, -0x78,0x00,0x00,0x00,0xfa,0x02,0x00,0x00,0xf9,0x02,0x00,0x00, +0x89,0x01,0x00,0x00,0x7c,0x01,0x00,0x00,0x88,0x01,0x00,0x00, +0x72,0x00,0x04,0x00,0x87,0x00,0x00,0x00,0x8a,0x01,0x00,0x00, +0x89,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x8b,0x01,0x00,0x00,0x8a,0x01,0x00,0x00,0x82,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x8c,0x01,0x00,0x00,0x8b,0x01,0x00,0x00, +0x01,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x99,0x00,0x00,0x00, +0x8d,0x01,0x00,0x00,0x8c,0x01,0x00,0x00,0x85,0x00,0x05,0x00, +0x99,0x00,0x00,0x00,0x8e,0x01,0x00,0x00,0x72,0x01,0x00,0x00, +0x8d,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00, +0x97,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, +0x7f,0x00,0x00,0x00,0x98,0x01,0x00,0x00,0x97,0x01,0x00,0x00, +0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x99,0x01,0x00,0x00,0x98,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x9a,0x01,0x00,0x00,0x99,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x9b,0x01,0x00,0x00, +0x9a,0x01,0x00,0x00,0xc8,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x7f,0x00,0x00,0x00,0xa4,0x01,0x00,0x00,0x18,0x01,0x00,0x00, +0xc4,0x00,0x05,0x00,0x7f,0x00,0x00,0x00,0xa6,0x01,0x00,0x00, +0x89,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,0xc7,0x00,0x05,0x00, +0x7f,0x00,0x00,0x00,0xa7,0x01,0x00,0x00,0xa4,0x01,0x00,0x00, +0xa6,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xa8,0x01,0x00,0x00,0xa7,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0xa9,0x01,0x00,0x00,0xa8,0x01,0x00,0x00, +0xab,0x00,0x05,0x00,0xb1,0x00,0x00,0x00,0xaa,0x01,0x00,0x00, +0xa9,0x01,0x00,0x00,0x61,0x00,0x00,0x00,0xa9,0x00,0x06,0x00, +0x1b,0x00,0x00,0x00,0xab,0x01,0x00,0x00,0xaa,0x01,0x00,0x00, +0x61,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,0x82,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0xac,0x01,0x00,0x00,0x9b,0x01,0x00,0x00, +0xab,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x99,0x00,0x00,0x00, +0xad,0x01,0x00,0x00,0xac,0x01,0x00,0x00,0x0c,0x00,0x08,0x00, +0x99,0x00,0x00,0x00,0xaf,0x01,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x8e,0x01,0x00,0x00,0xad,0x01,0x00,0x00, +0x69,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xb7,0x01,0x00,0x00,0xe1,0x00,0x00,0x00,0xb6,0x01,0x00,0x00, +0x41,0x00,0x06,0x00,0xe3,0x00,0x00,0x00,0xb8,0x01,0x00,0x00, +0xdb,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xb7,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0x99,0x00,0x00,0x00,0xb9,0x01,0x00,0x00, +0xb8,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0xe9,0x00,0x00,0x00, +0xbd,0x01,0x00,0x00,0xc4,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0xc7,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,0x45,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0xbe,0x01,0x00,0x00, +0xbd,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x7f,0x00,0x00,0x00, +0xc0,0x01,0x00,0x00,0xbe,0x01,0x00,0x00,0x85,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xc1,0x01,0x00,0x00, +0xc0,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0xc2,0x01,0x00,0x00,0xc1,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0xc3,0x01,0x00,0x00,0xc2,0x01,0x00,0x00, +0xf0,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00, +0xc8,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, +0x7f,0x00,0x00,0x00,0xcb,0x01,0x00,0x00,0xc8,0x01,0x00,0x00, +0x83,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xcc,0x01,0x00,0x00,0xcb,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0xcd,0x01,0x00,0x00,0xcc,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xce,0x01,0x00,0x00, +0xcd,0x01,0x00,0x00,0xc8,0x00,0x00,0x00,0xc4,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0xcf,0x01,0x00,0x00,0xce,0x01,0x00,0x00, +0x3b,0x00,0x00,0x00,0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0xd0,0x01,0x00,0x00,0xc3,0x01,0x00,0x00,0xcf,0x01,0x00,0x00, +0x72,0x00,0x04,0x00,0x87,0x00,0x00,0x00,0xd1,0x01,0x00,0x00, +0xd0,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0xd2,0x01,0x00,0x00,0xd1,0x01,0x00,0x00,0x82,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0xd3,0x01,0x00,0x00,0xd2,0x01,0x00,0x00, +0x01,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x99,0x00,0x00,0x00, +0xd4,0x01,0x00,0x00,0xd3,0x01,0x00,0x00,0x85,0x00,0x05,0x00, +0x99,0x00,0x00,0x00,0xd5,0x01,0x00,0x00,0xb9,0x01,0x00,0x00, +0xd4,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00, +0xde,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, +0x7f,0x00,0x00,0x00,0xdf,0x01,0x00,0x00,0xde,0x01,0x00,0x00, 0x45,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xfb,0x02,0x00,0x00,0xfa,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0xfc,0x02,0x00,0x00,0xfb,0x02,0x00,0x00, -0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xfd,0x02,0x00,0x00, -0xfc,0x02,0x00,0x00,0xc1,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x78,0x00,0x00,0x00,0x07,0x03,0x00,0x00,0x2a,0x02,0x00,0x00, -0xc7,0x00,0x05,0x00,0x78,0x00,0x00,0x00,0x0a,0x03,0x00,0x00, -0x07,0x03,0x00,0x00,0xe6,0x01,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x0b,0x03,0x00,0x00,0x0a,0x03,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x0c,0x03,0x00,0x00, -0x0b,0x03,0x00,0x00,0xab,0x00,0x05,0x00,0xaa,0x00,0x00,0x00, -0x0d,0x03,0x00,0x00,0x0c,0x03,0x00,0x00,0x59,0x00,0x00,0x00, -0xa9,0x00,0x06,0x00,0x1b,0x00,0x00,0x00,0x0e,0x03,0x00,0x00, -0x0d,0x03,0x00,0x00,0x59,0x00,0x00,0x00,0x3b,0x00,0x00,0x00, -0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x0f,0x03,0x00,0x00, -0xfd,0x02,0x00,0x00,0x0e,0x03,0x00,0x00,0x6f,0x00,0x04,0x00, -0x92,0x00,0x00,0x00,0x10,0x03,0x00,0x00,0x0f,0x03,0x00,0x00, -0x0c,0x00,0x08,0x00,0x92,0x00,0x00,0x00,0x12,0x03,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xef,0x02,0x00,0x00, -0x10,0x03,0x00,0x00,0xc9,0x02,0x00,0x00,0x81,0x00,0x05,0x00, -0x92,0x00,0x00,0x00,0x14,0x03,0x00,0x00,0x7c,0x03,0x00,0x00, -0x12,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x16,0x03,0x00,0x00,0x7b,0x03,0x00,0x00,0x7b,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0xc9,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0xcb,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x92,0x00,0x00,0x00, -0x1f,0x03,0x00,0x00,0x9d,0x00,0x00,0x00,0x0c,0x00,0x08,0x00, -0x92,0x00,0x00,0x00,0x20,0x03,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0x7c,0x03,0x00,0x00, -0x1f,0x03,0x00,0x00,0x3e,0x00,0x03,0x00,0x9d,0x00,0x00,0x00, -0x20,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,0xa6,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0xa6,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x23,0x03,0x00,0x00,0x78,0x03,0x00,0x00, -0x69,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xa3,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0xa5,0x00,0x00,0x00,0xe0,0x00,0x04,0x00, -0x69,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0x24,0x03,0x00,0x00, -0xf9,0x00,0x02,0x00,0x26,0x03,0x00,0x00,0xf8,0x00,0x02,0x00, -0x26,0x03,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00, -0x79,0x03,0x00,0x00,0x96,0x00,0x00,0x00,0xa5,0x00,0x00,0x00, -0x3d,0x03,0x00,0x00,0x29,0x03,0x00,0x00,0xac,0x00,0x05,0x00, -0xaa,0x00,0x00,0x00,0x2c,0x03,0x00,0x00,0x79,0x03,0x00,0x00, -0x4b,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x28,0x03,0x00,0x00, -0x29,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, -0x2c,0x03,0x00,0x00,0x27,0x03,0x00,0x00,0x28,0x03,0x00,0x00, -0xf8,0x00,0x02,0x00,0x27,0x03,0x00,0x00,0xb0,0x00,0x05,0x00, -0xaa,0x00,0x00,0x00,0x2f,0x03,0x00,0x00,0x6a,0x00,0x00,0x00, -0x79,0x03,0x00,0x00,0xf7,0x00,0x03,0x00,0x31,0x03,0x00,0x00, -0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x2f,0x03,0x00,0x00, -0x30,0x03,0x00,0x00,0x31,0x03,0x00,0x00,0xf8,0x00,0x02,0x00, -0x30,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x35,0x03,0x00,0x00,0x6a,0x00,0x00,0x00,0x79,0x03,0x00,0x00, -0x41,0x00,0x05,0x00,0x9c,0x00,0x00,0x00,0x36,0x03,0x00,0x00, -0x95,0x00,0x00,0x00,0x35,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, -0x92,0x00,0x00,0x00,0x37,0x03,0x00,0x00,0x36,0x03,0x00,0x00, -0x41,0x00,0x05,0x00,0x9c,0x00,0x00,0x00,0x38,0x03,0x00,0x00, -0x95,0x00,0x00,0x00,0x6a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x92,0x00,0x00,0x00,0x39,0x03,0x00,0x00,0x38,0x03,0x00,0x00, -0x81,0x00,0x05,0x00,0x92,0x00,0x00,0x00,0x3a,0x03,0x00,0x00, -0x39,0x03,0x00,0x00,0x37,0x03,0x00,0x00,0x3e,0x00,0x03,0x00, -0x38,0x03,0x00,0x00,0x3a,0x03,0x00,0x00,0xf9,0x00,0x02,0x00, -0x31,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x31,0x03,0x00,0x00, -0xe0,0x00,0x04,0x00,0x69,0x00,0x00,0x00,0x69,0x00,0x00,0x00, -0x24,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,0x29,0x03,0x00,0x00, -0xf8,0x00,0x02,0x00,0x29,0x03,0x00,0x00,0xc2,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x3d,0x03,0x00,0x00,0x79,0x03,0x00,0x00, -0x7b,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x26,0x03,0x00,0x00, -0xf8,0x00,0x02,0x00,0x28,0x03,0x00,0x00,0xaa,0x00,0x05,0x00, -0xaa,0x00,0x00,0x00,0x3f,0x03,0x00,0x00,0x6a,0x00,0x00,0x00, -0x4b,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0x41,0x03,0x00,0x00, -0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x3f,0x03,0x00,0x00, -0x40,0x03,0x00,0x00,0x41,0x03,0x00,0x00,0xf8,0x00,0x02,0x00, -0x40,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x48,0x03,0x00,0x00,0x77,0x03,0x00,0x00,0x4d,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x9c,0x00,0x00,0x00,0x49,0x03,0x00,0x00, -0x95,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x92,0x00,0x00,0x00,0x4a,0x03,0x00,0x00,0x49,0x03,0x00,0x00, -0x41,0x00,0x06,0x00,0xdc,0x00,0x00,0x00,0x4b,0x03,0x00,0x00, -0x45,0x03,0x00,0x00,0x59,0x00,0x00,0x00,0x48,0x03,0x00,0x00, -0x3e,0x00,0x03,0x00,0x4b,0x03,0x00,0x00,0x4a,0x03,0x00,0x00, -0xf9,0x00,0x02,0x00,0x41,0x03,0x00,0x00,0xf8,0x00,0x02,0x00, -0x41,0x03,0x00,0x00,0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00, - +0xe0,0x01,0x00,0x00,0xdf,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0xe1,0x01,0x00,0x00,0xe0,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xe2,0x01,0x00,0x00, +0xe1,0x01,0x00,0x00,0xc8,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x7f,0x00,0x00,0x00,0xeb,0x01,0x00,0x00,0x18,0x01,0x00,0x00, +0xc4,0x00,0x05,0x00,0x7f,0x00,0x00,0x00,0xed,0x01,0x00,0x00, +0x89,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0xc7,0x00,0x05,0x00, +0x7f,0x00,0x00,0x00,0xee,0x01,0x00,0x00,0xeb,0x01,0x00,0x00, +0xed,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xef,0x01,0x00,0x00,0xee,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0xf0,0x01,0x00,0x00,0xef,0x01,0x00,0x00, +0xab,0x00,0x05,0x00,0xb1,0x00,0x00,0x00,0xf1,0x01,0x00,0x00, +0xf0,0x01,0x00,0x00,0x61,0x00,0x00,0x00,0xa9,0x00,0x06,0x00, +0x1b,0x00,0x00,0x00,0xf2,0x01,0x00,0x00,0xf1,0x01,0x00,0x00, +0x61,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,0x82,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0xf3,0x01,0x00,0x00,0xe2,0x01,0x00,0x00, +0xf2,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x99,0x00,0x00,0x00, +0xf4,0x01,0x00,0x00,0xf3,0x01,0x00,0x00,0x0c,0x00,0x08,0x00, +0x99,0x00,0x00,0x00,0xf6,0x01,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0xd5,0x01,0x00,0x00,0xf4,0x01,0x00,0x00, +0xaf,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xfd,0x01,0x00,0x00,0xe1,0x00,0x00,0x00,0x9d,0x00,0x00,0x00, +0x41,0x00,0x06,0x00,0xe3,0x00,0x00,0x00,0xfe,0x01,0x00,0x00, +0xdb,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xfd,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0x99,0x00,0x00,0x00,0xff,0x01,0x00,0x00, +0xfe,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0xe9,0x00,0x00,0x00, +0x03,0x02,0x00,0x00,0xc4,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0xc7,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,0x82,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0x04,0x02,0x00,0x00, +0x03,0x02,0x00,0x00,0xc2,0x00,0x05,0x00,0x7f,0x00,0x00,0x00, +0x06,0x02,0x00,0x00,0x04,0x02,0x00,0x00,0x85,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x07,0x02,0x00,0x00, +0x06,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x08,0x02,0x00,0x00,0x07,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x09,0x02,0x00,0x00,0x08,0x02,0x00,0x00, +0xf0,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xe9,0x00,0x00,0x00, +0x0d,0x02,0x00,0x00,0xc4,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0xc7,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,0x2e,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0x0e,0x02,0x00,0x00, +0x0d,0x02,0x00,0x00,0xc2,0x00,0x05,0x00,0x7f,0x00,0x00,0x00, +0x11,0x02,0x00,0x00,0x0e,0x02,0x00,0x00,0x85,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x12,0x02,0x00,0x00, +0x11,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x13,0x02,0x00,0x00,0x12,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x14,0x02,0x00,0x00,0x13,0x02,0x00,0x00, +0xc8,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x15,0x02,0x00,0x00,0x14,0x02,0x00,0x00,0x3b,0x00,0x00,0x00, +0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x16,0x02,0x00,0x00, +0x09,0x02,0x00,0x00,0x15,0x02,0x00,0x00,0x72,0x00,0x04,0x00, +0x87,0x00,0x00,0x00,0x17,0x02,0x00,0x00,0x16,0x02,0x00,0x00, +0x72,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x18,0x02,0x00,0x00, +0x17,0x02,0x00,0x00,0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x19,0x02,0x00,0x00,0x18,0x02,0x00,0x00,0x01,0x01,0x00,0x00, +0x6f,0x00,0x04,0x00,0x99,0x00,0x00,0x00,0x1a,0x02,0x00,0x00, +0x19,0x02,0x00,0x00,0x85,0x00,0x05,0x00,0x99,0x00,0x00,0x00, +0x1b,0x02,0x00,0x00,0xff,0x01,0x00,0x00,0x1a,0x02,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x23,0x02,0x00,0x00, +0x0b,0x01,0x00,0x00,0x9d,0x00,0x00,0x00,0x41,0x00,0x08,0x00, +0xe9,0x00,0x00,0x00,0x24,0x02,0x00,0x00,0xc4,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,0x82,0x00,0x00,0x00, +0x23,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00, +0x25,0x02,0x00,0x00,0x24,0x02,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x26,0x02,0x00,0x00,0x25,0x02,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x27,0x02,0x00,0x00, +0x26,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x28,0x02,0x00,0x00,0x27,0x02,0x00,0x00,0xc8,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x30,0x02,0x00,0x00, +0x17,0x01,0x00,0x00,0x9d,0x00,0x00,0x00,0x41,0x00,0x08,0x00, +0xe9,0x00,0x00,0x00,0x31,0x02,0x00,0x00,0xc4,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0x30,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00, +0x32,0x02,0x00,0x00,0x31,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, +0x7f,0x00,0x00,0x00,0x35,0x02,0x00,0x00,0x32,0x02,0x00,0x00, +0x1b,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x36,0x02,0x00,0x00,0x35,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x37,0x02,0x00,0x00,0x36,0x02,0x00,0x00, +0xab,0x00,0x05,0x00,0xb1,0x00,0x00,0x00,0x38,0x02,0x00,0x00, +0x37,0x02,0x00,0x00,0x61,0x00,0x00,0x00,0xa9,0x00,0x06,0x00, +0x1b,0x00,0x00,0x00,0x39,0x02,0x00,0x00,0x38,0x02,0x00,0x00, +0x61,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,0x82,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x3a,0x02,0x00,0x00,0x28,0x02,0x00,0x00, +0x39,0x02,0x00,0x00,0x6f,0x00,0x04,0x00,0x99,0x00,0x00,0x00, +0x3b,0x02,0x00,0x00,0x3a,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, +0x99,0x00,0x00,0x00,0x3d,0x02,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x1b,0x02,0x00,0x00,0x3b,0x02,0x00,0x00, +0xf6,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x45,0x02,0x00,0x00,0xe1,0x00,0x00,0x00,0x44,0x02,0x00,0x00, +0x41,0x00,0x06,0x00,0xe3,0x00,0x00,0x00,0x46,0x02,0x00,0x00, +0xdb,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x45,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0x99,0x00,0x00,0x00,0x47,0x02,0x00,0x00, +0x46,0x02,0x00,0x00,0x41,0x00,0x08,0x00,0xe9,0x00,0x00,0x00, +0x4b,0x02,0x00,0x00,0xc4,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0xc7,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,0xc8,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0x4c,0x02,0x00,0x00, +0x4b,0x02,0x00,0x00,0xc2,0x00,0x05,0x00,0x7f,0x00,0x00,0x00, +0x4e,0x02,0x00,0x00,0x4c,0x02,0x00,0x00,0x85,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4f,0x02,0x00,0x00, +0x4e,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x50,0x02,0x00,0x00,0x4f,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x51,0x02,0x00,0x00,0x50,0x02,0x00,0x00, +0xf0,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xe9,0x00,0x00,0x00, +0x56,0x02,0x00,0x00,0xc4,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0xc7,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,0x55,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0x57,0x02,0x00,0x00, +0x56,0x02,0x00,0x00,0xc2,0x00,0x05,0x00,0x7f,0x00,0x00,0x00, +0x5a,0x02,0x00,0x00,0x57,0x02,0x00,0x00,0x85,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x5b,0x02,0x00,0x00, +0x5a,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x5c,0x02,0x00,0x00,0x5b,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x5d,0x02,0x00,0x00,0x5c,0x02,0x00,0x00, +0xc8,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x5e,0x02,0x00,0x00,0x5d,0x02,0x00,0x00,0x3b,0x00,0x00,0x00, +0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x5f,0x02,0x00,0x00, +0x51,0x02,0x00,0x00,0x5e,0x02,0x00,0x00,0x72,0x00,0x04,0x00, +0x87,0x00,0x00,0x00,0x60,0x02,0x00,0x00,0x5f,0x02,0x00,0x00, +0x72,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x61,0x02,0x00,0x00, +0x60,0x02,0x00,0x00,0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x62,0x02,0x00,0x00,0x61,0x02,0x00,0x00,0x01,0x01,0x00,0x00, +0x6f,0x00,0x04,0x00,0x99,0x00,0x00,0x00,0x63,0x02,0x00,0x00, +0x62,0x02,0x00,0x00,0x85,0x00,0x05,0x00,0x99,0x00,0x00,0x00, +0x64,0x02,0x00,0x00,0x47,0x02,0x00,0x00,0x63,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0x6e,0x02,0x00,0x00, +0x24,0x02,0x00,0x00,0xc2,0x00,0x05,0x00,0x7f,0x00,0x00,0x00, +0x6f,0x02,0x00,0x00,0x6e,0x02,0x00,0x00,0xd6,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x70,0x02,0x00,0x00, +0x6f,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x71,0x02,0x00,0x00,0x70,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x72,0x02,0x00,0x00,0x71,0x02,0x00,0x00, +0xc8,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00, +0x7c,0x02,0x00,0x00,0x31,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, +0x7f,0x00,0x00,0x00,0x7f,0x02,0x00,0x00,0x7c,0x02,0x00,0x00, +0x60,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x80,0x02,0x00,0x00,0x7f,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x81,0x02,0x00,0x00,0x80,0x02,0x00,0x00, +0xab,0x00,0x05,0x00,0xb1,0x00,0x00,0x00,0x82,0x02,0x00,0x00, +0x81,0x02,0x00,0x00,0x61,0x00,0x00,0x00,0xa9,0x00,0x06,0x00, +0x1b,0x00,0x00,0x00,0x83,0x02,0x00,0x00,0x82,0x02,0x00,0x00, +0x61,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,0x82,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x84,0x02,0x00,0x00,0x72,0x02,0x00,0x00, +0x83,0x02,0x00,0x00,0x6f,0x00,0x04,0x00,0x99,0x00,0x00,0x00, +0x85,0x02,0x00,0x00,0x84,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, +0x99,0x00,0x00,0x00,0x87,0x02,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x64,0x02,0x00,0x00,0x85,0x02,0x00,0x00, +0x3d,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x8f,0x02,0x00,0x00,0xe1,0x00,0x00,0x00,0x8e,0x02,0x00,0x00, +0x41,0x00,0x06,0x00,0xe3,0x00,0x00,0x00,0x90,0x02,0x00,0x00, +0xdb,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x8f,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0x99,0x00,0x00,0x00,0x91,0x02,0x00,0x00, +0x90,0x02,0x00,0x00,0x41,0x00,0x08,0x00,0xe9,0x00,0x00,0x00, +0x95,0x02,0x00,0x00,0xc4,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0xc7,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,0x40,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0x96,0x02,0x00,0x00, +0x95,0x02,0x00,0x00,0xc2,0x00,0x05,0x00,0x7f,0x00,0x00,0x00, +0x98,0x02,0x00,0x00,0x96,0x02,0x00,0x00,0x85,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x99,0x02,0x00,0x00, +0x98,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x9a,0x02,0x00,0x00,0x99,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x9b,0x02,0x00,0x00,0x9a,0x02,0x00,0x00, +0xf0,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00, +0xa0,0x02,0x00,0x00,0x0d,0x02,0x00,0x00,0xc2,0x00,0x05,0x00, +0x7f,0x00,0x00,0x00,0xa3,0x02,0x00,0x00,0xa0,0x02,0x00,0x00, +0x83,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xa4,0x02,0x00,0x00,0xa3,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0xa5,0x02,0x00,0x00,0xa4,0x02,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xa6,0x02,0x00,0x00, +0xa5,0x02,0x00,0x00,0xc8,0x00,0x00,0x00,0xc4,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0xa7,0x02,0x00,0x00,0xa6,0x02,0x00,0x00, +0x3b,0x00,0x00,0x00,0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0xa8,0x02,0x00,0x00,0x9b,0x02,0x00,0x00,0xa7,0x02,0x00,0x00, +0x72,0x00,0x04,0x00,0x87,0x00,0x00,0x00,0xa9,0x02,0x00,0x00, +0xa8,0x02,0x00,0x00,0x72,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0xaa,0x02,0x00,0x00,0xa9,0x02,0x00,0x00,0x82,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0xab,0x02,0x00,0x00,0xaa,0x02,0x00,0x00, +0x01,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x99,0x00,0x00,0x00, +0xac,0x02,0x00,0x00,0xab,0x02,0x00,0x00,0x85,0x00,0x05,0x00, +0x99,0x00,0x00,0x00,0xad,0x02,0x00,0x00,0x91,0x02,0x00,0x00, +0xac,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00, +0xb7,0x02,0x00,0x00,0x24,0x02,0x00,0x00,0xc2,0x00,0x05,0x00, +0x7f,0x00,0x00,0x00,0xb8,0x02,0x00,0x00,0xb7,0x02,0x00,0x00, +0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xb9,0x02,0x00,0x00,0xb8,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0xba,0x02,0x00,0x00,0xb9,0x02,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xbb,0x02,0x00,0x00, +0xba,0x02,0x00,0x00,0xc8,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x7f,0x00,0x00,0x00,0xc5,0x02,0x00,0x00,0x31,0x02,0x00,0x00, +0xc7,0x00,0x05,0x00,0x7f,0x00,0x00,0x00,0xc8,0x02,0x00,0x00, +0xc5,0x02,0x00,0x00,0xa6,0x01,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xc9,0x02,0x00,0x00,0xc8,0x02,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xca,0x02,0x00,0x00, +0xc9,0x02,0x00,0x00,0xab,0x00,0x05,0x00,0xb1,0x00,0x00,0x00, +0xcb,0x02,0x00,0x00,0xca,0x02,0x00,0x00,0x61,0x00,0x00,0x00, +0xa9,0x00,0x06,0x00,0x1b,0x00,0x00,0x00,0xcc,0x02,0x00,0x00, +0xcb,0x02,0x00,0x00,0x61,0x00,0x00,0x00,0x3b,0x00,0x00,0x00, +0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xcd,0x02,0x00,0x00, +0xbb,0x02,0x00,0x00,0xcc,0x02,0x00,0x00,0x6f,0x00,0x04,0x00, +0x99,0x00,0x00,0x00,0xce,0x02,0x00,0x00,0xcd,0x02,0x00,0x00, +0x0c,0x00,0x08,0x00,0x99,0x00,0x00,0x00,0xd0,0x02,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xad,0x02,0x00,0x00, +0xce,0x02,0x00,0x00,0x87,0x02,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xd8,0x02,0x00,0x00,0xe1,0x00,0x00,0x00, +0xd7,0x02,0x00,0x00,0x41,0x00,0x06,0x00,0xe3,0x00,0x00,0x00, +0xd9,0x02,0x00,0x00,0xdb,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0xd8,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x99,0x00,0x00,0x00, +0xda,0x02,0x00,0x00,0xd9,0x02,0x00,0x00,0x41,0x00,0x08,0x00, +0xe9,0x00,0x00,0x00,0xde,0x02,0x00,0x00,0xc4,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,0xd6,0x00,0x00,0x00, +0x34,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00, +0xdf,0x02,0x00,0x00,0xde,0x02,0x00,0x00,0xc2,0x00,0x05,0x00, +0x7f,0x00,0x00,0x00,0xe1,0x02,0x00,0x00,0xdf,0x02,0x00,0x00, +0x85,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xe2,0x02,0x00,0x00,0xe1,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0xe3,0x02,0x00,0x00,0xe2,0x02,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xe4,0x02,0x00,0x00, +0xe3,0x02,0x00,0x00,0xf0,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x7f,0x00,0x00,0x00,0xe9,0x02,0x00,0x00,0x56,0x02,0x00,0x00, +0xc2,0x00,0x05,0x00,0x7f,0x00,0x00,0x00,0xec,0x02,0x00,0x00, +0xe9,0x02,0x00,0x00,0x83,0x01,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xed,0x02,0x00,0x00,0xec,0x02,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xee,0x02,0x00,0x00, +0xed,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0xef,0x02,0x00,0x00,0xee,0x02,0x00,0x00,0xc8,0x00,0x00,0x00, +0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xf0,0x02,0x00,0x00, +0xef,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0xc5,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0xf1,0x02,0x00,0x00,0xe4,0x02,0x00,0x00, +0xf0,0x02,0x00,0x00,0x72,0x00,0x04,0x00,0x87,0x00,0x00,0x00, +0xf2,0x02,0x00,0x00,0xf1,0x02,0x00,0x00,0x72,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0xf3,0x02,0x00,0x00,0xf2,0x02,0x00,0x00, +0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xf4,0x02,0x00,0x00, +0xf3,0x02,0x00,0x00,0x01,0x01,0x00,0x00,0x6f,0x00,0x04,0x00, +0x99,0x00,0x00,0x00,0xf5,0x02,0x00,0x00,0xf4,0x02,0x00,0x00, +0x85,0x00,0x05,0x00,0x99,0x00,0x00,0x00,0xf6,0x02,0x00,0x00, +0xda,0x02,0x00,0x00,0xf5,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0x7f,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x24,0x02,0x00,0x00, +0xc2,0x00,0x05,0x00,0x7f,0x00,0x00,0x00,0x01,0x03,0x00,0x00, +0x00,0x03,0x00,0x00,0x45,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x02,0x03,0x00,0x00,0x01,0x03,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x03,0x03,0x00,0x00, +0x02,0x03,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x04,0x03,0x00,0x00,0x03,0x03,0x00,0x00,0xc8,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0x0e,0x03,0x00,0x00, +0x31,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x7f,0x00,0x00,0x00, +0x11,0x03,0x00,0x00,0x0e,0x03,0x00,0x00,0xed,0x01,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x12,0x03,0x00,0x00, +0x11,0x03,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x13,0x03,0x00,0x00,0x12,0x03,0x00,0x00,0xab,0x00,0x05,0x00, +0xb1,0x00,0x00,0x00,0x14,0x03,0x00,0x00,0x13,0x03,0x00,0x00, +0x61,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,0x1b,0x00,0x00,0x00, +0x15,0x03,0x00,0x00,0x14,0x03,0x00,0x00,0x61,0x00,0x00,0x00, +0x3b,0x00,0x00,0x00,0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x16,0x03,0x00,0x00,0x04,0x03,0x00,0x00,0x15,0x03,0x00,0x00, +0x6f,0x00,0x04,0x00,0x99,0x00,0x00,0x00,0x17,0x03,0x00,0x00, +0x16,0x03,0x00,0x00,0x0c,0x00,0x08,0x00,0x99,0x00,0x00,0x00, +0x19,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0xf6,0x02,0x00,0x00,0x17,0x03,0x00,0x00,0xd0,0x02,0x00,0x00, +0x81,0x00,0x05,0x00,0x99,0x00,0x00,0x00,0x1b,0x03,0x00,0x00, +0x83,0x03,0x00,0x00,0x19,0x03,0x00,0x00,0x80,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x1d,0x03,0x00,0x00,0x82,0x03,0x00,0x00, +0x82,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xd0,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0xd2,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x99,0x00,0x00,0x00,0x26,0x03,0x00,0x00,0xa4,0x00,0x00,0x00, +0x0c,0x00,0x08,0x00,0x99,0x00,0x00,0x00,0x27,0x03,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xcc,0x00,0x00,0x00, +0x83,0x03,0x00,0x00,0x26,0x03,0x00,0x00,0x3e,0x00,0x03,0x00, +0xa4,0x00,0x00,0x00,0x27,0x03,0x00,0x00,0xf9,0x00,0x02,0x00, +0xad,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xad,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2a,0x03,0x00,0x00, +0x7f,0x03,0x00,0x00,0x51,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, +0xaa,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xac,0x00,0x00,0x00, +0xe0,0x00,0x04,0x00,0x51,0x00,0x00,0x00,0x51,0x00,0x00,0x00, +0x2b,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,0x2d,0x03,0x00,0x00, +0xf8,0x00,0x02,0x00,0x2d,0x03,0x00,0x00,0xf5,0x00,0x07,0x00, +0x06,0x00,0x00,0x00,0x80,0x03,0x00,0x00,0x9d,0x00,0x00,0x00, +0xac,0x00,0x00,0x00,0x44,0x03,0x00,0x00,0x30,0x03,0x00,0x00, +0xac,0x00,0x05,0x00,0xb1,0x00,0x00,0x00,0x33,0x03,0x00,0x00, +0x80,0x03,0x00,0x00,0x4b,0x00,0x00,0x00,0xf6,0x00,0x04,0x00, +0x2f,0x03,0x00,0x00,0x30,0x03,0x00,0x00,0x01,0x00,0x00,0x00, +0xfa,0x00,0x04,0x00,0x33,0x03,0x00,0x00,0x2e,0x03,0x00,0x00, +0x2f,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x2e,0x03,0x00,0x00, +0xb0,0x00,0x05,0x00,0xb1,0x00,0x00,0x00,0x36,0x03,0x00,0x00, +0x71,0x00,0x00,0x00,0x80,0x03,0x00,0x00,0xf7,0x00,0x03,0x00, +0x38,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, +0x36,0x03,0x00,0x00,0x37,0x03,0x00,0x00,0x38,0x03,0x00,0x00, +0xf8,0x00,0x02,0x00,0x37,0x03,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x3c,0x03,0x00,0x00,0x71,0x00,0x00,0x00, +0x80,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0xa3,0x00,0x00,0x00, +0x3d,0x03,0x00,0x00,0x9c,0x00,0x00,0x00,0x3c,0x03,0x00,0x00, +0x3d,0x00,0x04,0x00,0x99,0x00,0x00,0x00,0x3e,0x03,0x00,0x00, +0x3d,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0xa3,0x00,0x00,0x00, +0x3f,0x03,0x00,0x00,0x9c,0x00,0x00,0x00,0x71,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x99,0x00,0x00,0x00,0x40,0x03,0x00,0x00, +0x3f,0x03,0x00,0x00,0x81,0x00,0x05,0x00,0x99,0x00,0x00,0x00, +0x41,0x03,0x00,0x00,0x40,0x03,0x00,0x00,0x3e,0x03,0x00,0x00, +0x3e,0x00,0x03,0x00,0x3f,0x03,0x00,0x00,0x41,0x03,0x00,0x00, +0xf9,0x00,0x02,0x00,0x38,0x03,0x00,0x00,0xf8,0x00,0x02,0x00, +0x38,0x03,0x00,0x00,0xe0,0x00,0x04,0x00,0x51,0x00,0x00,0x00, +0x51,0x00,0x00,0x00,0x2b,0x03,0x00,0x00,0xf9,0x00,0x02,0x00, +0x30,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x30,0x03,0x00,0x00, +0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x44,0x03,0x00,0x00, +0x80,0x03,0x00,0x00,0x82,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, +0x2d,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x2f,0x03,0x00,0x00, +0xaa,0x00,0x05,0x00,0xb1,0x00,0x00,0x00,0x46,0x03,0x00,0x00, +0x71,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0xf7,0x00,0x03,0x00, +0x48,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, +0x46,0x03,0x00,0x00,0x47,0x03,0x00,0x00,0x48,0x03,0x00,0x00, +0xf8,0x00,0x02,0x00,0x47,0x03,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x4f,0x03,0x00,0x00,0x7e,0x03,0x00,0x00, +0x55,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0xa3,0x00,0x00,0x00, +0x50,0x03,0x00,0x00,0x9c,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x99,0x00,0x00,0x00,0x51,0x03,0x00,0x00, +0x50,0x03,0x00,0x00,0x41,0x00,0x06,0x00,0xe3,0x00,0x00,0x00, +0x52,0x03,0x00,0x00,0x4c,0x03,0x00,0x00,0x61,0x00,0x00,0x00, +0x4f,0x03,0x00,0x00,0x3e,0x00,0x03,0x00,0x52,0x03,0x00,0x00, +0x51,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,0x48,0x03,0x00,0x00, +0xf8,0x00,0x02,0x00,0x48,0x03,0x00,0x00,0xfd,0x00,0x01,0x00, +0x38,0x00,0x01,0x00, }; -const uint64_t mul_mat_vec_q3_k_f32_f32_len = 9900; +const uint64_t mul_mat_vec_q3_k_f32_f32_len = 10048; unsigned char mul_mat_vec_q4_0_f16_f32_data[] = { 0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00, -0x63,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, +0x6a,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, 0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x51,0x11,0x00,0x00, 0x11,0x00,0x02,0x00,0x60,0x11,0x00,0x00,0x0b,0x00,0x06,0x00, 0x01,0x00,0x00,0x00,0x47,0x4c,0x53,0x4c,0x2e,0x73,0x74,0x64, 0x2e,0x34,0x35,0x30,0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00, -0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0f,0x00,0x0d,0x00, +0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0f,0x00,0x0e,0x00, 0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e, 0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x47,0x00,0x00,0x00, -0x50,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x83,0x00,0x00,0x00, -0x93,0x00,0x00,0x00,0xcd,0x00,0x00,0x00,0x0c,0x01,0x00,0x00, -0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x1c,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x1c,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x1d,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x12,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x1e,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0x1e,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x20,0x00,0x00,0x00, -0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x47,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x4e,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x4e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x4e,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x4e,0x00,0x00,0x00,0x03,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x4e,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x4e,0x00,0x00,0x00, -0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x4e,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x4e,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x50,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x82,0x00,0x00,0x00, +0x8b,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,0xd4,0x00,0x00,0x00, +0x13,0x01,0x00,0x00,0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00, +0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x1c,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x1d,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x12,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x1e,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x1e,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x20,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x20,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x47,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, 0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x4e,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x4e,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x4e,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x28,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x4e,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x7e,0x00,0x00,0x00, -0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x83,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xca,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x48,0x00,0x04,0x00, -0xcb,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0xcb,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, -0xcb,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xcd,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xcd,0x00,0x00,0x00,0x21,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x09,0x01,0x00,0x00, -0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00, -0x0a,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x0a,0x01,0x00,0x00,0x00,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, -0x0a,0x01,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x0c,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x0c,0x01,0x00,0x00,0x21,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x14,0x01,0x00,0x00, -0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x15,0x01,0x00,0x00,0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00, -0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00, -0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x16,0x00,0x03,0x00,0x08,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x17,0x00,0x04,0x00,0x09,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0x18,0x00,0x00,0x00, -0x10,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x19,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x10,0x00,0x00,0x00, -0x1c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x19,0x00,0x00,0x00, -0x1a,0x00,0x00,0x00,0x1e,0x00,0x04,0x00,0x1c,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, -0x1d,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, -0x1e,0x00,0x00,0x00,0x1d,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x1f,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x1e,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x21,0x00,0x00,0x00, -0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x21,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x26,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, -0x2e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x30,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x19,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x35,0x00,0x00,0x00, -0x0f,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, -0x39,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x08,0x00,0x00,0x00,0x3d,0x00,0x00,0x00,0x00,0x00,0x00,0x41, -0x17,0x00,0x04,0x00,0x45,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x46,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x45,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x46,0x00,0x00,0x00,0x47,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x48,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x49,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x1e,0x00,0x0d,0x00, -0x4e,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x4e,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x4e,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x4e,0x00,0x00,0x00, +0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x4e,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x4e,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x4e,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x4e,0x00,0x00,0x00,0x07,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x4e,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x4e,0x00,0x00,0x00, +0x09,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x4e,0x00,0x00,0x00,0x0a,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0x4e,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x7e,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x82,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x8b,0x00,0x00,0x00, +0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x98,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xd1,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0xd2,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0xd2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0xd2,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xd4,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xd4,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x10,0x01,0x00,0x00,0x06,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x11,0x01,0x00,0x00, +0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x11,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x11,0x01,0x00,0x00, +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x13,0x01,0x00,0x00, +0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x13,0x01,0x00,0x00,0x21,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x1b,0x01,0x00,0x00,0x01,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x1c,0x01,0x00,0x00, +0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x13,0x00,0x02,0x00, +0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x00,0x03,0x00, +0x08,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x17,0x00,0x04,0x00, +0x09,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x16,0x00,0x03,0x00,0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00, +0x15,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x1a,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, +0x1e,0x00,0x04,0x00,0x1c,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x1b,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x1d,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x1e,0x00,0x00,0x00, +0x1d,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x1f,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0x1f,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x15,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x20,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x26,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x2e,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x30,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x0f,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x39,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0x3d,0x00,0x00,0x00,0x00,0x00,0x00,0x41,0x17,0x00,0x04,0x00, +0x45,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x46,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x45,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x46,0x00,0x00,0x00, +0x47,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x49,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x1e,0x00,0x0d,0x00,0x4e,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x4f,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x4e,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x4f,0x00,0x00,0x00, -0x50,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x21,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x52,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, -0x5d,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x21,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x69,0x00,0x00,0x00, -0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, -0x74,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x21,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0x46,0x00,0x00,0x00,0x7e,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x46,0x00,0x00,0x00,0x83,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x90,0x00,0x00,0x00, -0x20,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0x91,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x90,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x92,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x91,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0x92,0x00,0x00,0x00,0x93,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x08,0x00,0x00,0x00, -0x95,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x96,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x14,0x00,0x02,0x00,0xa2,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xb2,0x00,0x00,0x00, -0x20,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0xca,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xcb,0x00,0x00,0x00, -0xca,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xcc,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0xcc,0x00,0x00,0x00,0xcd,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xea,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x4f,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x4e,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x4f,0x00,0x00,0x00,0x50,0x00,0x00,0x00, +0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, +0x51,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x52,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x5d,0x00,0x00,0x00, +0x0a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, +0x63,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x21,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0x07,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x74,0x00,0x00,0x00, +0x05,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, +0x79,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0x46,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x7f,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x46,0x00,0x00,0x00, +0x82,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x85,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x46,0x00,0x00,0x00,0x8b,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x98,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, +0x99,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x98,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x9a,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x99,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x9a,0x00,0x00,0x00, +0x9b,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x08,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x9e,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x14,0x00,0x02,0x00,0xaa,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xb9,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0xd1,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xd2,0x00,0x00,0x00, +0xd1,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xd3,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0xd3,0x00,0x00,0x00,0xd4,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xf1,0x00,0x00,0x00, 0x08,0x01,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00, -0xec,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x90,0x00,0x00,0x00, -0xa7,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x09,0x01,0x00,0x00, -0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x0a,0x01,0x00,0x00, -0x09,0x01,0x00,0x00,0x20,0x00,0x04,0x00,0x0b,0x01,0x00,0x00, -0x0c,0x00,0x00,0x00,0x0a,0x01,0x00,0x00,0x3b,0x00,0x04,0x00, -0x0b,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,0x0c,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x12,0x01,0x00,0x00,0x0c,0x00,0x00,0x00, +0xf3,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x98,0x00,0x00,0x00, +0x85,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x10,0x01,0x00,0x00, +0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x11,0x01,0x00,0x00, +0x10,0x01,0x00,0x00,0x20,0x00,0x04,0x00,0x12,0x01,0x00,0x00, +0x0c,0x00,0x00,0x00,0x11,0x01,0x00,0x00,0x3b,0x00,0x04,0x00, +0x12,0x01,0x00,0x00,0x13,0x01,0x00,0x00,0x0c,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x19,0x01,0x00,0x00,0x0c,0x00,0x00,0x00, 0x08,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x14,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x33,0x00,0x06,0x00, -0x45,0x00,0x00,0x00,0x15,0x01,0x00,0x00,0x14,0x01,0x00,0x00, +0x1b,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x33,0x00,0x06,0x00, +0x45,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,0x1b,0x01,0x00,0x00, 0x48,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x2c,0x00,0x05,0x00, -0x09,0x00,0x00,0x00,0x62,0x01,0x00,0x00,0x3d,0x00,0x00,0x00, +0x09,0x00,0x00,0x00,0x69,0x01,0x00,0x00,0x3d,0x00,0x00,0x00, 0x3d,0x00,0x00,0x00,0x36,0x00,0x05,0x00,0x02,0x00,0x00,0x00, 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00, 0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00,0x41,0x00,0x05,0x00, 0x49,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x7e,0x00,0x00,0x00, 0x7f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, 0x81,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x41,0x00,0x05,0x00, -0x49,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x83,0x00,0x00,0x00, +0x49,0x00,0x00,0x00,0x83,0x00,0x00,0x00,0x82,0x00,0x00,0x00, 0x7f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x85,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x41,0x00,0x05,0x00, -0x49,0x00,0x00,0x00,0x1d,0x01,0x00,0x00,0x47,0x00,0x00,0x00, -0x48,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x1e,0x01,0x00,0x00,0x1d,0x01,0x00,0x00,0x41,0x00,0x05,0x00, -0x52,0x00,0x00,0x00,0x20,0x01,0x00,0x00,0x50,0x00,0x00,0x00, -0x51,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x21,0x01,0x00,0x00,0x20,0x01,0x00,0x00,0x86,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x22,0x01,0x00,0x00,0x1e,0x01,0x00,0x00, -0x21,0x01,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x26,0x01,0x00,0x00,0x1e,0x01,0x00,0x00,0x21,0x01,0x00,0x00, -0x41,0x00,0x05,0x00,0x52,0x00,0x00,0x00,0x28,0x01,0x00,0x00, -0x50,0x00,0x00,0x00,0x5d,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x29,0x01,0x00,0x00,0x28,0x01,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2a,0x01,0x00,0x00, -0x22,0x01,0x00,0x00,0x29,0x01,0x00,0x00,0x41,0x00,0x05,0x00, -0x52,0x00,0x00,0x00,0x2c,0x01,0x00,0x00,0x50,0x00,0x00,0x00, -0x63,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x2d,0x01,0x00,0x00,0x2c,0x01,0x00,0x00,0x86,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x2e,0x01,0x00,0x00,0x26,0x01,0x00,0x00, -0x2d,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x52,0x00,0x00,0x00, -0x30,0x01,0x00,0x00,0x50,0x00,0x00,0x00,0x69,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x31,0x01,0x00,0x00, -0x30,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x32,0x01,0x00,0x00,0x2a,0x01,0x00,0x00,0x31,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x34,0x01,0x00,0x00, -0x32,0x01,0x00,0x00,0x2e,0x01,0x00,0x00,0x41,0x00,0x05,0x00, -0x52,0x00,0x00,0x00,0x36,0x01,0x00,0x00,0x50,0x00,0x00,0x00, -0x39,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x37,0x01,0x00,0x00,0x36,0x01,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x38,0x01,0x00,0x00,0x34,0x01,0x00,0x00, -0x37,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x52,0x00,0x00,0x00, -0x3a,0x01,0x00,0x00,0x50,0x00,0x00,0x00,0x74,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x3b,0x01,0x00,0x00, -0x3a,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x3c,0x01,0x00,0x00,0x1e,0x01,0x00,0x00,0x3b,0x01,0x00,0x00, -0x41,0x00,0x05,0x00,0x52,0x00,0x00,0x00,0x3e,0x01,0x00,0x00, -0x50,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x3f,0x01,0x00,0x00,0x3e,0x01,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x40,0x01,0x00,0x00, -0x1e,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,0x41,0x00,0x05,0x00, -0x96,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x93,0x00,0x00,0x00, -0x85,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0x97,0x00,0x00,0x00, -0x95,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x99,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0x99,0x00,0x00,0x00,0xf5,0x00,0x07,0x00, -0x06,0x00,0x00,0x00,0x5f,0x01,0x00,0x00,0x7f,0x00,0x00,0x00, -0x05,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,0x9a,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x52,0x00,0x00,0x00,0x9f,0x00,0x00,0x00, -0x50,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0x9f,0x00,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa1,0x00,0x00,0x00, -0xa0,0x00,0x00,0x00,0x90,0x00,0x00,0x00,0xb0,0x00,0x05,0x00, -0xa2,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0x5f,0x01,0x00,0x00, -0xa1,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x9b,0x00,0x00,0x00, -0x9a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, -0xa3,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,0x9b,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0x9a,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xa6,0x00,0x00,0x00,0x5f,0x01,0x00,0x00, -0x90,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xa9,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,0x85,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xaa,0x00,0x00,0x00, -0xa6,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0x81,0x00,0x00,0x00, -0xa0,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xb1,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0xaa,0x00,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb3,0x00,0x00,0x00, -0xb1,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,0x89,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xb6,0x00,0x00,0x00,0xaa,0x00,0x00,0x00, -0xb2,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xb7,0x00,0x00,0x00,0xb6,0x00,0x00,0x00,0xa7,0x00,0x00,0x00, -0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbc,0x00,0x00,0x00, -0xaa,0x00,0x00,0x00,0xb6,0x00,0x00,0x00,0x86,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x38,0x01,0x00,0x00, -0xb2,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x47,0x01,0x00,0x00,0xc0,0x00,0x00,0x00,0xb3,0x00,0x00,0x00, -0x41,0x00,0x07,0x00,0x26,0x00,0x00,0x00,0x48,0x01,0x00,0x00, -0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x47,0x01,0x00,0x00, -0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x18,0x00,0x00,0x00, -0x49,0x01,0x00,0x00,0x48,0x01,0x00,0x00,0x73,0x00,0x04,0x00, -0x08,0x00,0x00,0x00,0x4a,0x01,0x00,0x00,0x49,0x01,0x00,0x00, -0x41,0x00,0x08,0x00,0x30,0x00,0x00,0x00,0x4f,0x01,0x00,0x00, -0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x47,0x01,0x00,0x00, -0x2e,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x19,0x00,0x00,0x00,0x50,0x01,0x00,0x00,0x4f,0x01,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x51,0x01,0x00,0x00, -0x50,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x53,0x01,0x00,0x00,0x51,0x01,0x00,0x00,0x35,0x00,0x00,0x00, -0x70,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x54,0x01,0x00,0x00, -0x53,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x56,0x01,0x00,0x00,0x51,0x01,0x00,0x00,0x39,0x00,0x00,0x00, -0x70,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x57,0x01,0x00,0x00, -0x56,0x01,0x00,0x00,0x50,0x00,0x05,0x00,0x09,0x00,0x00,0x00, -0x58,0x01,0x00,0x00,0x54,0x01,0x00,0x00,0x57,0x01,0x00,0x00, -0x83,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0x5a,0x01,0x00,0x00, -0x58,0x01,0x00,0x00,0x62,0x01,0x00,0x00,0x8e,0x00,0x05,0x00, -0x09,0x00,0x00,0x00,0x5c,0x01,0x00,0x00,0x5a,0x01,0x00,0x00, -0x4a,0x01,0x00,0x00,0x51,0x00,0x05,0x00,0x08,0x00,0x00,0x00, -0xc9,0x00,0x00,0x00,0x5c,0x01,0x00,0x00,0x00,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd0,0x00,0x00,0x00, -0x3c,0x01,0x00,0x00,0xbc,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,0xd0,0x00,0x00,0x00, -0xb7,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x26,0x00,0x00,0x00, -0xd3,0x00,0x00,0x00,0xcd,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0xd2,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x18,0x00,0x00,0x00, -0xd4,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,0x73,0x00,0x04,0x00, -0x08,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0xd4,0x00,0x00,0x00, -0x51,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0xd8,0x00,0x00,0x00, -0x5c,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xde,0x00,0x00,0x00,0xd2,0x00,0x00,0x00, -0x1a,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x26,0x00,0x00,0x00, -0xdf,0x00,0x00,0x00,0xcd,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0xde,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x18,0x00,0x00,0x00, -0xe0,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0x73,0x00,0x04,0x00, -0x08,0x00,0x00,0x00,0xe1,0x00,0x00,0x00,0xe0,0x00,0x00,0x00, -0x85,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0xe2,0x00,0x00,0x00, -0xd8,0x00,0x00,0x00,0xe1,0x00,0x00,0x00,0x0c,0x00,0x08,0x00, -0x08,0x00,0x00,0x00,0xe3,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0xd5,0x00,0x00,0x00, -0xe2,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, -0xe5,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x81,0x00,0x05,0x00, -0x08,0x00,0x00,0x00,0xe6,0x00,0x00,0x00,0xe5,0x00,0x00,0x00, -0xe3,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0x97,0x00,0x00,0x00, -0xe6,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xe9,0x00,0x00,0x00,0x5f,0x01,0x00,0x00,0xa7,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0x99,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0x9b,0x00,0x00,0x00,0xe0,0x00,0x04,0x00,0xa7,0x00,0x00,0x00, -0xa7,0x00,0x00,0x00,0xea,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, -0xed,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xed,0x00,0x00,0x00, -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x60,0x01,0x00,0x00, -0xec,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,0x04,0x01,0x00,0x00, -0xf0,0x00,0x00,0x00,0xac,0x00,0x05,0x00,0xa2,0x00,0x00,0x00, -0xf3,0x00,0x00,0x00,0x60,0x01,0x00,0x00,0x7f,0x00,0x00,0x00, -0xf6,0x00,0x04,0x00,0xef,0x00,0x00,0x00,0xf0,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xf3,0x00,0x00,0x00, -0xee,0x00,0x00,0x00,0xef,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0xee,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0xa2,0x00,0x00,0x00, -0xf6,0x00,0x00,0x00,0x85,0x00,0x00,0x00,0x60,0x01,0x00,0x00, -0xf7,0x00,0x03,0x00,0xf8,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0xfa,0x00,0x04,0x00,0xf6,0x00,0x00,0x00,0xf7,0x00,0x00,0x00, -0xf8,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xf7,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfc,0x00,0x00,0x00, -0x85,0x00,0x00,0x00,0x60,0x01,0x00,0x00,0x41,0x00,0x05,0x00, -0x96,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,0x93,0x00,0x00,0x00, -0xfc,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, -0xfe,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x08,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x97,0x00,0x00,0x00, -0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0x01,0x01,0x00,0x00, -0x00,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,0x3e,0x00,0x03,0x00, -0x97,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0xf9,0x00,0x02,0x00, -0xf8,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xf8,0x00,0x00,0x00, -0xe0,0x00,0x04,0x00,0xa7,0x00,0x00,0x00,0xa7,0x00,0x00,0x00, -0xea,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xf0,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0xf0,0x00,0x00,0x00,0xc2,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x04,0x01,0x00,0x00,0x60,0x01,0x00,0x00, -0x2e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xed,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0xef,0x00,0x00,0x00,0xaa,0x00,0x05,0x00, -0xa2,0x00,0x00,0x00,0x06,0x01,0x00,0x00,0x85,0x00,0x00,0x00, -0x7f,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0x08,0x01,0x00,0x00, -0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x06,0x01,0x00,0x00, -0x07,0x01,0x00,0x00,0x08,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, -0x07,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x0f,0x01,0x00,0x00,0x40,0x01,0x00,0x00,0x81,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x96,0x00,0x00,0x00,0x10,0x01,0x00,0x00, -0x93,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x08,0x00,0x00,0x00,0x11,0x01,0x00,0x00,0x10,0x01,0x00,0x00, -0x41,0x00,0x06,0x00,0x12,0x01,0x00,0x00,0x13,0x01,0x00,0x00, -0x0c,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x0f,0x01,0x00,0x00, -0x3e,0x00,0x03,0x00,0x13,0x01,0x00,0x00,0x11,0x01,0x00,0x00, -0xf9,0x00,0x02,0x00,0x08,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, -0x08,0x01,0x00,0x00,0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00, - +0x84,0x00,0x00,0x00,0x83,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0x49,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x7e,0x00,0x00,0x00, +0x85,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x87,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x88,0x00,0x00,0x00,0x84,0x00,0x00,0x00, +0x87,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x89,0x00,0x00,0x00,0x81,0x00,0x00,0x00,0x88,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x49,0x00,0x00,0x00,0x8c,0x00,0x00,0x00, +0x8b,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,0x8c,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x49,0x00,0x00,0x00,0x24,0x01,0x00,0x00, +0x47,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x25,0x01,0x00,0x00,0x24,0x01,0x00,0x00, +0x41,0x00,0x05,0x00,0x52,0x00,0x00,0x00,0x27,0x01,0x00,0x00, +0x50,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x28,0x01,0x00,0x00,0x27,0x01,0x00,0x00, +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x29,0x01,0x00,0x00, +0x25,0x01,0x00,0x00,0x28,0x01,0x00,0x00,0x89,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x2d,0x01,0x00,0x00,0x25,0x01,0x00,0x00, +0x28,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x52,0x00,0x00,0x00, +0x2f,0x01,0x00,0x00,0x50,0x00,0x00,0x00,0x5d,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x30,0x01,0x00,0x00, +0x2f,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x31,0x01,0x00,0x00,0x29,0x01,0x00,0x00,0x30,0x01,0x00,0x00, +0x41,0x00,0x05,0x00,0x52,0x00,0x00,0x00,0x33,0x01,0x00,0x00, +0x50,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x34,0x01,0x00,0x00,0x33,0x01,0x00,0x00, +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x35,0x01,0x00,0x00, +0x2d,0x01,0x00,0x00,0x34,0x01,0x00,0x00,0x41,0x00,0x05,0x00, +0x52,0x00,0x00,0x00,0x37,0x01,0x00,0x00,0x50,0x00,0x00,0x00, +0x69,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x38,0x01,0x00,0x00,0x37,0x01,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x39,0x01,0x00,0x00,0x31,0x01,0x00,0x00, +0x38,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x3b,0x01,0x00,0x00,0x39,0x01,0x00,0x00,0x35,0x01,0x00,0x00, +0x41,0x00,0x05,0x00,0x52,0x00,0x00,0x00,0x3d,0x01,0x00,0x00, +0x50,0x00,0x00,0x00,0x39,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x3e,0x01,0x00,0x00,0x3d,0x01,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3f,0x01,0x00,0x00, +0x3b,0x01,0x00,0x00,0x3e,0x01,0x00,0x00,0x41,0x00,0x05,0x00, +0x52,0x00,0x00,0x00,0x41,0x01,0x00,0x00,0x50,0x00,0x00,0x00, +0x74,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x42,0x01,0x00,0x00,0x41,0x01,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x43,0x01,0x00,0x00,0x25,0x01,0x00,0x00, +0x42,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x52,0x00,0x00,0x00, +0x45,0x01,0x00,0x00,0x50,0x00,0x00,0x00,0x79,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x46,0x01,0x00,0x00, +0x45,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x47,0x01,0x00,0x00,0x25,0x01,0x00,0x00,0x46,0x01,0x00,0x00, +0x41,0x00,0x05,0x00,0x9e,0x00,0x00,0x00,0x9f,0x00,0x00,0x00, +0x9b,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,0x3e,0x00,0x03,0x00, +0x9f,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, +0xa1,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xa1,0x00,0x00,0x00, +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x66,0x01,0x00,0x00, +0x7f,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0xf0,0x00,0x00,0x00, +0xa2,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x52,0x00,0x00,0x00, +0xa7,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x22,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa8,0x00,0x00,0x00, +0xa7,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xa9,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,0x98,0x00,0x00,0x00, +0xb0,0x00,0x05,0x00,0xaa,0x00,0x00,0x00,0xab,0x00,0x00,0x00, +0x66,0x01,0x00,0x00,0xa9,0x00,0x00,0x00,0xf6,0x00,0x04,0x00, +0xa3,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0xfa,0x00,0x04,0x00,0xab,0x00,0x00,0x00,0xa2,0x00,0x00,0x00, +0xa3,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xa2,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xae,0x00,0x00,0x00, +0x66,0x01,0x00,0x00,0x98,0x00,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xb0,0x00,0x00,0x00,0x85,0x00,0x00,0x00, +0x8d,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xb1,0x00,0x00,0x00,0xae,0x00,0x00,0x00,0xb0,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb6,0x00,0x00,0x00, +0x89,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0xb6,0x00,0x00,0x00, +0xb1,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xba,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0xb9,0x00,0x00,0x00, +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbd,0x00,0x00,0x00, +0xb1,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xbe,0x00,0x00,0x00,0xbd,0x00,0x00,0x00, +0x85,0x00,0x00,0x00,0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xc3,0x00,0x00,0x00,0xb1,0x00,0x00,0x00,0xbd,0x00,0x00,0x00, +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc7,0x00,0x00,0x00, +0x3f,0x01,0x00,0x00,0xb9,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x4e,0x01,0x00,0x00,0xc7,0x00,0x00,0x00, +0xba,0x00,0x00,0x00,0x41,0x00,0x07,0x00,0x26,0x00,0x00,0x00, +0x4f,0x01,0x00,0x00,0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00, +0x4e,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x18,0x00,0x00,0x00,0x50,0x01,0x00,0x00,0x4f,0x01,0x00,0x00, +0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x51,0x01,0x00,0x00, +0x50,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x30,0x00,0x00,0x00, +0x56,0x01,0x00,0x00,0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00, +0x4e,0x01,0x00,0x00,0x2e,0x00,0x00,0x00,0xbe,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x57,0x01,0x00,0x00, +0x56,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x58,0x01,0x00,0x00,0x57,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x5a,0x01,0x00,0x00,0x58,0x01,0x00,0x00, +0x35,0x00,0x00,0x00,0x70,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0x5b,0x01,0x00,0x00,0x5a,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,0x58,0x01,0x00,0x00, +0x39,0x00,0x00,0x00,0x70,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0x5e,0x01,0x00,0x00,0x5d,0x01,0x00,0x00,0x50,0x00,0x05,0x00, +0x09,0x00,0x00,0x00,0x5f,0x01,0x00,0x00,0x5b,0x01,0x00,0x00, +0x5e,0x01,0x00,0x00,0x83,0x00,0x05,0x00,0x09,0x00,0x00,0x00, +0x61,0x01,0x00,0x00,0x5f,0x01,0x00,0x00,0x69,0x01,0x00,0x00, +0x8e,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0x63,0x01,0x00,0x00, +0x61,0x01,0x00,0x00,0x51,0x01,0x00,0x00,0x51,0x00,0x05,0x00, +0x08,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0x63,0x01,0x00,0x00, +0x00,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xd7,0x00,0x00,0x00,0x43,0x01,0x00,0x00,0xc3,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd9,0x00,0x00,0x00, +0xd7,0x00,0x00,0x00,0xbe,0x00,0x00,0x00,0x41,0x00,0x06,0x00, +0x26,0x00,0x00,0x00,0xda,0x00,0x00,0x00,0xd4,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0xd9,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x18,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,0xda,0x00,0x00,0x00, +0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xdc,0x00,0x00,0x00, +0xdb,0x00,0x00,0x00,0x51,0x00,0x05,0x00,0x08,0x00,0x00,0x00, +0xdf,0x00,0x00,0x00,0x63,0x01,0x00,0x00,0x01,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe5,0x00,0x00,0x00, +0xd9,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x41,0x00,0x06,0x00, +0x26,0x00,0x00,0x00,0xe6,0x00,0x00,0x00,0xd4,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0xe5,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x18,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,0xe6,0x00,0x00,0x00, +0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xe8,0x00,0x00,0x00, +0xe7,0x00,0x00,0x00,0x85,0x00,0x05,0x00,0x08,0x00,0x00,0x00, +0xe9,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0xe8,0x00,0x00,0x00, +0x0c,0x00,0x08,0x00,0x08,0x00,0x00,0x00,0xea,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xd0,0x00,0x00,0x00, +0xdc,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x08,0x00,0x00,0x00,0xec,0x00,0x00,0x00,0x9f,0x00,0x00,0x00, +0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0xed,0x00,0x00,0x00, +0xec,0x00,0x00,0x00,0xea,0x00,0x00,0x00,0x3e,0x00,0x03,0x00, +0x9f,0x00,0x00,0x00,0xed,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x66,0x01,0x00,0x00, +0x85,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xa1,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0xa3,0x00,0x00,0x00,0xe0,0x00,0x04,0x00, +0x85,0x00,0x00,0x00,0x85,0x00,0x00,0x00,0xf1,0x00,0x00,0x00, +0xf9,0x00,0x02,0x00,0xf4,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xf4,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00, +0x67,0x01,0x00,0x00,0xf3,0x00,0x00,0x00,0xa3,0x00,0x00,0x00, +0x0b,0x01,0x00,0x00,0xf7,0x00,0x00,0x00,0xac,0x00,0x05,0x00, +0xaa,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,0x67,0x01,0x00,0x00, +0x7f,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xf6,0x00,0x00,0x00, +0xf7,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, +0xfa,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,0xf6,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0xf5,0x00,0x00,0x00,0xb0,0x00,0x05,0x00, +0xaa,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,0x8d,0x00,0x00,0x00, +0x67,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,0xff,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xfd,0x00,0x00,0x00, +0xfe,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xfe,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x03,0x01,0x00,0x00,0x8d,0x00,0x00,0x00,0x67,0x01,0x00,0x00, +0x41,0x00,0x05,0x00,0x9e,0x00,0x00,0x00,0x04,0x01,0x00,0x00, +0x9b,0x00,0x00,0x00,0x03,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0x08,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0x04,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x07,0x01,0x00,0x00, +0x9f,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00, +0x08,0x01,0x00,0x00,0x07,0x01,0x00,0x00,0x05,0x01,0x00,0x00, +0x3e,0x00,0x03,0x00,0x9f,0x00,0x00,0x00,0x08,0x01,0x00,0x00, +0xf9,0x00,0x02,0x00,0xff,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xff,0x00,0x00,0x00,0xe0,0x00,0x04,0x00,0x85,0x00,0x00,0x00, +0x85,0x00,0x00,0x00,0xf1,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, +0xf7,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xf7,0x00,0x00,0x00, +0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0b,0x01,0x00,0x00, +0x67,0x01,0x00,0x00,0x2e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, +0xf4,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xf6,0x00,0x00,0x00, +0xaa,0x00,0x05,0x00,0xaa,0x00,0x00,0x00,0x0d,0x01,0x00,0x00, +0x8d,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,0xf7,0x00,0x03,0x00, +0x0f,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, +0x0d,0x01,0x00,0x00,0x0e,0x01,0x00,0x00,0x0f,0x01,0x00,0x00, +0xf8,0x00,0x02,0x00,0x0e,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x16,0x01,0x00,0x00,0x47,0x01,0x00,0x00, +0x89,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x9e,0x00,0x00,0x00, +0x17,0x01,0x00,0x00,0x9b,0x00,0x00,0x00,0x22,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x18,0x01,0x00,0x00, +0x17,0x01,0x00,0x00,0x41,0x00,0x06,0x00,0x19,0x01,0x00,0x00, +0x1a,0x01,0x00,0x00,0x13,0x01,0x00,0x00,0x22,0x00,0x00,0x00, +0x16,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x1a,0x01,0x00,0x00, +0x18,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x0f,0x01,0x00,0x00, +0xf8,0x00,0x02,0x00,0x0f,0x01,0x00,0x00,0xfd,0x00,0x01,0x00, +0x38,0x00,0x01,0x00, }; -const uint64_t mul_mat_vec_q4_0_f16_f32_len = 3960; +const uint64_t mul_mat_vec_q4_0_f16_f32_len = 4108; unsigned char mul_mat_vec_q4_0_f32_f32_data[] = { 0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00, -0x61,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, +0x68,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, 0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x51,0x11,0x00,0x00, 0x11,0x00,0x02,0x00,0x60,0x11,0x00,0x00,0x0b,0x00,0x06,0x00, 0x01,0x00,0x00,0x00,0x47,0x4c,0x53,0x4c,0x2e,0x73,0x74,0x64, 0x2e,0x34,0x35,0x30,0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00, -0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0f,0x00,0x0d,0x00, +0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0f,0x00,0x0e,0x00, 0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e, 0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x47,0x00,0x00,0x00, -0x50,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x83,0x00,0x00,0x00, -0x93,0x00,0x00,0x00,0xcd,0x00,0x00,0x00,0x0b,0x01,0x00,0x00, -0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x1c,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x1c,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x1d,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x12,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x1e,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0x1e,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x20,0x00,0x00,0x00, -0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x47,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x4e,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x4e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x4e,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x4e,0x00,0x00,0x00,0x03,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x4e,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x4e,0x00,0x00,0x00, -0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x4e,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x4e,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x50,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x82,0x00,0x00,0x00, +0x8b,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,0xd4,0x00,0x00,0x00, +0x12,0x01,0x00,0x00,0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00, +0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x1c,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x1d,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x12,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x1e,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x1e,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x20,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x20,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x47,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, 0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x4e,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x4e,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x4e,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x28,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x4e,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x7e,0x00,0x00,0x00, -0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x83,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xca,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00, -0xcb,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0xcb,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, -0xcb,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xcd,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xcd,0x00,0x00,0x00,0x21,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x08,0x01,0x00,0x00, -0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00, -0x09,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x09,0x01,0x00,0x00,0x00,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, -0x09,0x01,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x0b,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x0b,0x01,0x00,0x00,0x21,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x12,0x01,0x00,0x00, -0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x13,0x01,0x00,0x00,0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00, -0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00, -0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x16,0x00,0x03,0x00,0x08,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x17,0x00,0x04,0x00,0x09,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0x18,0x00,0x00,0x00, -0x10,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x19,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x10,0x00,0x00,0x00, -0x1c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x19,0x00,0x00,0x00, -0x1a,0x00,0x00,0x00,0x1e,0x00,0x04,0x00,0x1c,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, -0x1d,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, -0x1e,0x00,0x00,0x00,0x1d,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x1f,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x1e,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x21,0x00,0x00,0x00, -0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x21,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x26,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, -0x2e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x30,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x19,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x35,0x00,0x00,0x00, -0x0f,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, -0x39,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x08,0x00,0x00,0x00,0x3d,0x00,0x00,0x00,0x00,0x00,0x00,0x41, -0x17,0x00,0x04,0x00,0x45,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x46,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x45,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x46,0x00,0x00,0x00,0x47,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x48,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x49,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x1e,0x00,0x0d,0x00, -0x4e,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x4f,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x4e,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x4f,0x00,0x00,0x00, -0x50,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x21,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x52,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, -0x5d,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x21,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x69,0x00,0x00,0x00, -0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, -0x74,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x21,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0x46,0x00,0x00,0x00,0x7e,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x46,0x00,0x00,0x00,0x83,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x90,0x00,0x00,0x00, -0x20,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0x91,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x90,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x92,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x91,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0x92,0x00,0x00,0x00,0x93,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x08,0x00,0x00,0x00, -0x95,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x96,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x14,0x00,0x02,0x00,0xa2,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xb2,0x00,0x00,0x00, -0x20,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0xca,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xcb,0x00,0x00,0x00, -0xca,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xcc,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0xcc,0x00,0x00,0x00,0xcd,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0xd3,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xe9,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x34,0x00,0x06,0x00, -0x06,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0x86,0x00,0x00,0x00, -0x90,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, -0x08,0x01,0x00,0x00,0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, -0x09,0x01,0x00,0x00,0x08,0x01,0x00,0x00,0x20,0x00,0x04,0x00, -0x0a,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x09,0x01,0x00,0x00, -0x3b,0x00,0x04,0x00,0x0a,0x01,0x00,0x00,0x0b,0x01,0x00,0x00, -0x0c,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x12,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x33,0x00,0x06,0x00, -0x45,0x00,0x00,0x00,0x13,0x01,0x00,0x00,0x12,0x01,0x00,0x00, -0x48,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x2c,0x00,0x05,0x00, -0x09,0x00,0x00,0x00,0x60,0x01,0x00,0x00,0x3d,0x00,0x00,0x00, -0x3d,0x00,0x00,0x00,0x36,0x00,0x05,0x00,0x02,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00,0x41,0x00,0x05,0x00, -0x49,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x7e,0x00,0x00,0x00, -0x7f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x81,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x41,0x00,0x05,0x00, -0x49,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x83,0x00,0x00,0x00, -0x7f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x85,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x41,0x00,0x05,0x00, -0x49,0x00,0x00,0x00,0x1b,0x01,0x00,0x00,0x47,0x00,0x00,0x00, -0x48,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x1c,0x01,0x00,0x00,0x1b,0x01,0x00,0x00,0x41,0x00,0x05,0x00, -0x52,0x00,0x00,0x00,0x1e,0x01,0x00,0x00,0x50,0x00,0x00,0x00, -0x51,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x1f,0x01,0x00,0x00,0x1e,0x01,0x00,0x00,0x86,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x20,0x01,0x00,0x00,0x1c,0x01,0x00,0x00, -0x1f,0x01,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x24,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,0x1f,0x01,0x00,0x00, -0x41,0x00,0x05,0x00,0x52,0x00,0x00,0x00,0x26,0x01,0x00,0x00, -0x50,0x00,0x00,0x00,0x5d,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x27,0x01,0x00,0x00,0x26,0x01,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x28,0x01,0x00,0x00, -0x20,0x01,0x00,0x00,0x27,0x01,0x00,0x00,0x41,0x00,0x05,0x00, -0x52,0x00,0x00,0x00,0x2a,0x01,0x00,0x00,0x50,0x00,0x00,0x00, -0x63,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x2b,0x01,0x00,0x00,0x2a,0x01,0x00,0x00,0x86,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x2c,0x01,0x00,0x00,0x24,0x01,0x00,0x00, -0x2b,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x52,0x00,0x00,0x00, -0x2e,0x01,0x00,0x00,0x50,0x00,0x00,0x00,0x69,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x2f,0x01,0x00,0x00, -0x2e,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x30,0x01,0x00,0x00,0x28,0x01,0x00,0x00,0x2f,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x32,0x01,0x00,0x00, -0x30,0x01,0x00,0x00,0x2c,0x01,0x00,0x00,0x41,0x00,0x05,0x00, -0x52,0x00,0x00,0x00,0x34,0x01,0x00,0x00,0x50,0x00,0x00,0x00, -0x39,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x35,0x01,0x00,0x00,0x34,0x01,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x36,0x01,0x00,0x00,0x32,0x01,0x00,0x00, -0x35,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x52,0x00,0x00,0x00, -0x38,0x01,0x00,0x00,0x50,0x00,0x00,0x00,0x74,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x39,0x01,0x00,0x00, -0x38,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x3a,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,0x39,0x01,0x00,0x00, -0x41,0x00,0x05,0x00,0x52,0x00,0x00,0x00,0x3c,0x01,0x00,0x00, -0x50,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x3d,0x01,0x00,0x00,0x3c,0x01,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3e,0x01,0x00,0x00, -0x1c,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,0x41,0x00,0x05,0x00, -0x96,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x93,0x00,0x00,0x00, -0x85,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0x97,0x00,0x00,0x00, -0x95,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x99,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0x99,0x00,0x00,0x00,0xf5,0x00,0x07,0x00, -0x06,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,0x7f,0x00,0x00,0x00, -0x05,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0x9a,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x52,0x00,0x00,0x00,0x9f,0x00,0x00,0x00, -0x50,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0x9f,0x00,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa1,0x00,0x00,0x00, -0xa0,0x00,0x00,0x00,0x90,0x00,0x00,0x00,0xb0,0x00,0x05,0x00, -0xa2,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0x5d,0x01,0x00,0x00, -0xa1,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x9b,0x00,0x00,0x00, -0x9a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, -0xa3,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,0x9b,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0x9a,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xa6,0x00,0x00,0x00,0x5d,0x01,0x00,0x00, -0x90,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xa9,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,0x85,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xaa,0x00,0x00,0x00, -0xa6,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0x81,0x00,0x00,0x00, -0xa0,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xb1,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0xaa,0x00,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb3,0x00,0x00,0x00, -0xb1,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,0x89,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xb6,0x00,0x00,0x00,0xaa,0x00,0x00,0x00, -0xb2,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xb7,0x00,0x00,0x00,0xb6,0x00,0x00,0x00,0xa7,0x00,0x00,0x00, -0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbc,0x00,0x00,0x00, -0xaa,0x00,0x00,0x00,0xb6,0x00,0x00,0x00,0x86,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x36,0x01,0x00,0x00, -0xb2,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x45,0x01,0x00,0x00,0xc0,0x00,0x00,0x00,0xb3,0x00,0x00,0x00, -0x41,0x00,0x07,0x00,0x26,0x00,0x00,0x00,0x46,0x01,0x00,0x00, -0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x45,0x01,0x00,0x00, -0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x18,0x00,0x00,0x00, -0x47,0x01,0x00,0x00,0x46,0x01,0x00,0x00,0x73,0x00,0x04,0x00, -0x08,0x00,0x00,0x00,0x48,0x01,0x00,0x00,0x47,0x01,0x00,0x00, -0x41,0x00,0x08,0x00,0x30,0x00,0x00,0x00,0x4d,0x01,0x00,0x00, -0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x45,0x01,0x00,0x00, -0x2e,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x19,0x00,0x00,0x00,0x4e,0x01,0x00,0x00,0x4d,0x01,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4f,0x01,0x00,0x00, -0x4e,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x51,0x01,0x00,0x00,0x4f,0x01,0x00,0x00,0x35,0x00,0x00,0x00, -0x70,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x52,0x01,0x00,0x00, -0x51,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x54,0x01,0x00,0x00,0x4f,0x01,0x00,0x00,0x39,0x00,0x00,0x00, -0x70,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x55,0x01,0x00,0x00, -0x54,0x01,0x00,0x00,0x50,0x00,0x05,0x00,0x09,0x00,0x00,0x00, -0x56,0x01,0x00,0x00,0x52,0x01,0x00,0x00,0x55,0x01,0x00,0x00, -0x83,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0x58,0x01,0x00,0x00, -0x56,0x01,0x00,0x00,0x60,0x01,0x00,0x00,0x8e,0x00,0x05,0x00, -0x09,0x00,0x00,0x00,0x5a,0x01,0x00,0x00,0x58,0x01,0x00,0x00, -0x48,0x01,0x00,0x00,0x51,0x00,0x05,0x00,0x08,0x00,0x00,0x00, -0xc9,0x00,0x00,0x00,0x5a,0x01,0x00,0x00,0x00,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd0,0x00,0x00,0x00, -0x3a,0x01,0x00,0x00,0xbc,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,0xd0,0x00,0x00,0x00, -0xb7,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xd3,0x00,0x00,0x00, -0xd4,0x00,0x00,0x00,0xcd,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0xd2,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, -0xd5,0x00,0x00,0x00,0xd4,0x00,0x00,0x00,0x51,0x00,0x05,0x00, -0x08,0x00,0x00,0x00,0xd8,0x00,0x00,0x00,0x5a,0x01,0x00,0x00, -0x01,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xde,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, -0x41,0x00,0x06,0x00,0xd3,0x00,0x00,0x00,0xdf,0x00,0x00,0x00, -0xcd,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0xde,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xe0,0x00,0x00,0x00, -0xdf,0x00,0x00,0x00,0x85,0x00,0x05,0x00,0x08,0x00,0x00,0x00, -0xe1,0x00,0x00,0x00,0xd8,0x00,0x00,0x00,0xe0,0x00,0x00,0x00, -0x0c,0x00,0x08,0x00,0x08,0x00,0x00,0x00,0xe2,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xc9,0x00,0x00,0x00, -0xd5,0x00,0x00,0x00,0xe1,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x08,0x00,0x00,0x00,0xe4,0x00,0x00,0x00,0x97,0x00,0x00,0x00, -0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0xe5,0x00,0x00,0x00, -0xe4,0x00,0x00,0x00,0xe2,0x00,0x00,0x00,0x3e,0x00,0x03,0x00, -0x97,0x00,0x00,0x00,0xe5,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0x5d,0x01,0x00,0x00, -0xa7,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x99,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0x9b,0x00,0x00,0x00,0xe0,0x00,0x04,0x00, -0xa7,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,0xe9,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0xec,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0xec,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00, -0x5e,0x01,0x00,0x00,0xeb,0x00,0x00,0x00,0x9b,0x00,0x00,0x00, -0x03,0x01,0x00,0x00,0xef,0x00,0x00,0x00,0xac,0x00,0x05,0x00, -0xa2,0x00,0x00,0x00,0xf2,0x00,0x00,0x00,0x5e,0x01,0x00,0x00, -0x7f,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xee,0x00,0x00,0x00, -0xef,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, -0xf2,0x00,0x00,0x00,0xed,0x00,0x00,0x00,0xee,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0xed,0x00,0x00,0x00,0xb0,0x00,0x05,0x00, -0xa2,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,0x85,0x00,0x00,0x00, -0x5e,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,0xf7,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xf5,0x00,0x00,0x00, -0xf6,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0xf6,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xfb,0x00,0x00,0x00,0x85,0x00,0x00,0x00,0x5e,0x01,0x00,0x00, -0x41,0x00,0x05,0x00,0x96,0x00,0x00,0x00,0xfc,0x00,0x00,0x00, -0x93,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x08,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,0xfc,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xff,0x00,0x00,0x00, -0x97,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00, -0x00,0x01,0x00,0x00,0xff,0x00,0x00,0x00,0xfd,0x00,0x00,0x00, -0x3e,0x00,0x03,0x00,0x97,0x00,0x00,0x00,0x00,0x01,0x00,0x00, -0xf9,0x00,0x02,0x00,0xf7,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0xf7,0x00,0x00,0x00,0xe0,0x00,0x04,0x00,0xa7,0x00,0x00,0x00, -0xa7,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, -0xef,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xef,0x00,0x00,0x00, -0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x03,0x01,0x00,0x00, -0x5e,0x01,0x00,0x00,0x2e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, -0xec,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xee,0x00,0x00,0x00, -0xaa,0x00,0x05,0x00,0xa2,0x00,0x00,0x00,0x05,0x01,0x00,0x00, -0x85,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,0xf7,0x00,0x03,0x00, -0x07,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, -0x05,0x01,0x00,0x00,0x06,0x01,0x00,0x00,0x07,0x01,0x00,0x00, -0xf8,0x00,0x02,0x00,0x06,0x01,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x0e,0x01,0x00,0x00,0x3e,0x01,0x00,0x00, -0x81,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x96,0x00,0x00,0x00, -0x0f,0x01,0x00,0x00,0x93,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x10,0x01,0x00,0x00, -0x0f,0x01,0x00,0x00,0x41,0x00,0x06,0x00,0xd3,0x00,0x00,0x00, -0x11,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,0x22,0x00,0x00,0x00, -0x0e,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x11,0x01,0x00,0x00, -0x10,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x07,0x01,0x00,0x00, -0xf8,0x00,0x02,0x00,0x07,0x01,0x00,0x00,0xfd,0x00,0x01,0x00, -0x38,0x00,0x01,0x00, -}; -const uint64_t mul_mat_vec_q4_0_f32_f32_len = 3928; - -unsigned char mul_mat_vec_q4_1_f16_f32_data[] = { -0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00, -0x71,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, -0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x51,0x11,0x00,0x00, -0x11,0x00,0x02,0x00,0x60,0x11,0x00,0x00,0x0b,0x00,0x06,0x00, -0x01,0x00,0x00,0x00,0x47,0x4c,0x53,0x4c,0x2e,0x73,0x74,0x64, -0x2e,0x34,0x35,0x30,0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00, -0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0f,0x00,0x0d,0x00, -0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e, -0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x4f,0x00,0x00,0x00, -0x58,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x8b,0x00,0x00,0x00, -0x9b,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0x14,0x01,0x00,0x00, -0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x1c,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x1c,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x1c,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x1d,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x48,0x00,0x04,0x00, -0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, -0x1e,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x20,0x00,0x00,0x00,0x21,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x4f,0x00,0x00,0x00, -0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x56,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x56,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x56,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x56,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x56,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x56,0x00,0x00,0x00,0x05,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x56,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x56,0x00,0x00,0x00, -0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x56,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x56,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x24,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x56,0x00,0x00,0x00, -0x0a,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x28,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0x56,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x86,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, -0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x8b,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x4e,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x4e,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x4e,0x00,0x00,0x00, +0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x4e,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x4e,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x4e,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x4e,0x00,0x00,0x00,0x07,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x4e,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x4e,0x00,0x00,0x00, +0x09,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x4e,0x00,0x00,0x00,0x0a,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0x4e,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x7e,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x82,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x8b,0x00,0x00,0x00, 0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x47,0x00,0x04,0x00, 0x98,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xd2,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0xd3,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xd1,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0xd2,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0xd3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0xd3,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xd5,0x00,0x00,0x00, +0xd2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0xd2,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xd4,0x00,0x00,0x00, 0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xd5,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x11,0x01,0x00,0x00,0x06,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x12,0x01,0x00,0x00, +0xd4,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x0f,0x01,0x00,0x00,0x06,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x10,0x01,0x00,0x00, 0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x12,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x12,0x01,0x00,0x00, -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x14,0x01,0x00,0x00, +0x10,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x10,0x01,0x00,0x00, +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x12,0x01,0x00,0x00, 0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x14,0x01,0x00,0x00,0x21,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x1c,0x01,0x00,0x00,0x01,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x1d,0x01,0x00,0x00, +0x12,0x01,0x00,0x00,0x21,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x19,0x01,0x00,0x00,0x01,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x1a,0x01,0x00,0x00, 0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x13,0x00,0x02,0x00, 0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00, 0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x06,0x00,0x00,0x00, @@ -132253,2757 +132185,3552 @@ unsigned char mul_mat_vec_q4_1_f16_f32_data[] = { 0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, 0x1a,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, 0x1b,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, -0x1e,0x00,0x05,0x00,0x1c,0x00,0x00,0x00,0x18,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, -0x1d,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, -0x1e,0x00,0x00,0x00,0x1d,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x1f,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x1e,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x21,0x00,0x00,0x00, -0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x21,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x26,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, -0x2e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x21,0x00,0x00,0x00,0x36,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x38,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x19,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x3d,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x21,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x17,0x00,0x04,0x00,0x4d,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x4e,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x4e,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x50,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x51,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x1e,0x00,0x0d,0x00, -0x56,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x1e,0x00,0x04,0x00,0x1c,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x1b,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x1d,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x1e,0x00,0x00,0x00, +0x1d,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x1f,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0x1f,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x15,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x20,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x26,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x2e,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x30,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x0f,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x39,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0x3d,0x00,0x00,0x00,0x00,0x00,0x00,0x41,0x17,0x00,0x04,0x00, +0x45,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x46,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x45,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x46,0x00,0x00,0x00, +0x47,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x49,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x1e,0x00,0x0d,0x00,0x4e,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x57,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x56,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x57,0x00,0x00,0x00, -0x58,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x21,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x5a,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, -0x65,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x21,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x71,0x00,0x00,0x00, -0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, -0x7c,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x21,0x00,0x00,0x00,0x81,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0x4e,0x00,0x00,0x00,0x86,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x87,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x4e,0x00,0x00,0x00,0x8b,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x98,0x00,0x00,0x00, -0x20,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0x99,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x98,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x9a,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x99,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0x9a,0x00,0x00,0x00,0x9b,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x08,0x00,0x00,0x00, -0x9d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x9e,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x14,0x00,0x02,0x00,0xaa,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xba,0x00,0x00,0x00, -0x20,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0xd2,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xd3,0x00,0x00,0x00, -0xd2,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xd4,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0xd4,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xf2,0x00,0x00,0x00, -0x08,0x01,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00, -0xf4,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x98,0x00,0x00,0x00, -0xaf,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x11,0x01,0x00,0x00, -0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x12,0x01,0x00,0x00, -0x11,0x01,0x00,0x00,0x20,0x00,0x04,0x00,0x13,0x01,0x00,0x00, -0x0c,0x00,0x00,0x00,0x12,0x01,0x00,0x00,0x3b,0x00,0x04,0x00, -0x13,0x01,0x00,0x00,0x14,0x01,0x00,0x00,0x0c,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x1a,0x01,0x00,0x00,0x0c,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x1c,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x33,0x00,0x06,0x00, -0x4d,0x00,0x00,0x00,0x1d,0x01,0x00,0x00,0x1c,0x01,0x00,0x00, -0x50,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x36,0x00,0x05,0x00, -0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x03,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x51,0x00,0x00,0x00,0x88,0x00,0x00,0x00, -0x86,0x00,0x00,0x00,0x87,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x89,0x00,0x00,0x00,0x88,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x51,0x00,0x00,0x00,0x8c,0x00,0x00,0x00, -0x8b,0x00,0x00,0x00,0x87,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x4f,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x4e,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x4f,0x00,0x00,0x00,0x50,0x00,0x00,0x00, +0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, +0x51,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x52,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x5d,0x00,0x00,0x00, +0x0a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, +0x63,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x21,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0x07,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x74,0x00,0x00,0x00, +0x05,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, +0x79,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0x46,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x7f,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x46,0x00,0x00,0x00, +0x82,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x85,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x46,0x00,0x00,0x00,0x8b,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x98,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, +0x99,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x98,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x9a,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x99,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x9a,0x00,0x00,0x00, +0x9b,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x08,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x9e,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x14,0x00,0x02,0x00,0xaa,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xb9,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0xd1,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xd2,0x00,0x00,0x00, +0xd1,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xd3,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0xd3,0x00,0x00,0x00,0xd4,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0xda,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xf0,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x34,0x00,0x06,0x00, +0x06,0x00,0x00,0x00,0xf2,0x00,0x00,0x00,0x86,0x00,0x00,0x00, +0x98,0x00,0x00,0x00,0x85,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, +0x0f,0x01,0x00,0x00,0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, +0x10,0x01,0x00,0x00,0x0f,0x01,0x00,0x00,0x20,0x00,0x04,0x00, +0x11,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x10,0x01,0x00,0x00, +0x3b,0x00,0x04,0x00,0x11,0x01,0x00,0x00,0x12,0x01,0x00,0x00, +0x0c,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x19,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x33,0x00,0x06,0x00, +0x45,0x00,0x00,0x00,0x1a,0x01,0x00,0x00,0x19,0x01,0x00,0x00, +0x48,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x2c,0x00,0x05,0x00, +0x09,0x00,0x00,0x00,0x67,0x01,0x00,0x00,0x3d,0x00,0x00,0x00, +0x3d,0x00,0x00,0x00,0x36,0x00,0x05,0x00,0x02,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0x49,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x7e,0x00,0x00,0x00, +0x7f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x81,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0x49,0x00,0x00,0x00,0x83,0x00,0x00,0x00,0x82,0x00,0x00,0x00, +0x7f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x84,0x00,0x00,0x00,0x83,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0x49,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x7e,0x00,0x00,0x00, +0x85,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x87,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x88,0x00,0x00,0x00,0x84,0x00,0x00,0x00, +0x87,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x89,0x00,0x00,0x00,0x81,0x00,0x00,0x00,0x88,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x49,0x00,0x00,0x00,0x8c,0x00,0x00,0x00, +0x8b,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, 0x06,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,0x8c,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x51,0x00,0x00,0x00,0x25,0x01,0x00,0x00, -0x4f,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x41,0x00,0x05,0x00,0x49,0x00,0x00,0x00,0x22,0x01,0x00,0x00, +0x47,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x23,0x01,0x00,0x00,0x22,0x01,0x00,0x00, +0x41,0x00,0x05,0x00,0x52,0x00,0x00,0x00,0x25,0x01,0x00,0x00, +0x50,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, 0x06,0x00,0x00,0x00,0x26,0x01,0x00,0x00,0x25,0x01,0x00,0x00, -0x41,0x00,0x05,0x00,0x5a,0x00,0x00,0x00,0x28,0x01,0x00,0x00, -0x58,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x29,0x01,0x00,0x00,0x28,0x01,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2a,0x01,0x00,0x00, -0x26,0x01,0x00,0x00,0x29,0x01,0x00,0x00,0x89,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x2e,0x01,0x00,0x00,0x26,0x01,0x00,0x00, -0x29,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x5a,0x00,0x00,0x00, -0x30,0x01,0x00,0x00,0x58,0x00,0x00,0x00,0x65,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x31,0x01,0x00,0x00, -0x30,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x32,0x01,0x00,0x00,0x2a,0x01,0x00,0x00,0x31,0x01,0x00,0x00, -0x41,0x00,0x05,0x00,0x5a,0x00,0x00,0x00,0x34,0x01,0x00,0x00, -0x58,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x35,0x01,0x00,0x00,0x34,0x01,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x36,0x01,0x00,0x00, -0x2e,0x01,0x00,0x00,0x35,0x01,0x00,0x00,0x41,0x00,0x05,0x00, -0x5a,0x00,0x00,0x00,0x38,0x01,0x00,0x00,0x58,0x00,0x00,0x00, -0x71,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x39,0x01,0x00,0x00,0x38,0x01,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x3a,0x01,0x00,0x00,0x32,0x01,0x00,0x00, -0x39,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x3c,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,0x36,0x01,0x00,0x00, -0x41,0x00,0x05,0x00,0x5a,0x00,0x00,0x00,0x3e,0x01,0x00,0x00, -0x58,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x3f,0x01,0x00,0x00,0x3e,0x01,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x40,0x01,0x00,0x00, -0x3c,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,0x41,0x00,0x05,0x00, -0x5a,0x00,0x00,0x00,0x42,0x01,0x00,0x00,0x58,0x00,0x00,0x00, -0x7c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x43,0x01,0x00,0x00,0x42,0x01,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x44,0x01,0x00,0x00,0x26,0x01,0x00,0x00, -0x43,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x5a,0x00,0x00,0x00, -0x46,0x01,0x00,0x00,0x58,0x00,0x00,0x00,0x81,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x47,0x01,0x00,0x00, -0x46,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x48,0x01,0x00,0x00,0x26,0x01,0x00,0x00,0x47,0x01,0x00,0x00, +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x27,0x01,0x00,0x00, +0x23,0x01,0x00,0x00,0x26,0x01,0x00,0x00,0x89,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x2b,0x01,0x00,0x00,0x23,0x01,0x00,0x00, +0x26,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x52,0x00,0x00,0x00, +0x2d,0x01,0x00,0x00,0x50,0x00,0x00,0x00,0x5d,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x2e,0x01,0x00,0x00, +0x2d,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x2f,0x01,0x00,0x00,0x27,0x01,0x00,0x00,0x2e,0x01,0x00,0x00, +0x41,0x00,0x05,0x00,0x52,0x00,0x00,0x00,0x31,0x01,0x00,0x00, +0x50,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x32,0x01,0x00,0x00,0x31,0x01,0x00,0x00, +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x33,0x01,0x00,0x00, +0x2b,0x01,0x00,0x00,0x32,0x01,0x00,0x00,0x41,0x00,0x05,0x00, +0x52,0x00,0x00,0x00,0x35,0x01,0x00,0x00,0x50,0x00,0x00,0x00, +0x69,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x36,0x01,0x00,0x00,0x35,0x01,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x37,0x01,0x00,0x00,0x2f,0x01,0x00,0x00, +0x36,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x39,0x01,0x00,0x00,0x37,0x01,0x00,0x00,0x33,0x01,0x00,0x00, +0x41,0x00,0x05,0x00,0x52,0x00,0x00,0x00,0x3b,0x01,0x00,0x00, +0x50,0x00,0x00,0x00,0x39,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x3c,0x01,0x00,0x00,0x3b,0x01,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3d,0x01,0x00,0x00, +0x39,0x01,0x00,0x00,0x3c,0x01,0x00,0x00,0x41,0x00,0x05,0x00, +0x52,0x00,0x00,0x00,0x3f,0x01,0x00,0x00,0x50,0x00,0x00,0x00, +0x74,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x40,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x41,0x01,0x00,0x00,0x23,0x01,0x00,0x00, +0x40,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x52,0x00,0x00,0x00, +0x43,0x01,0x00,0x00,0x50,0x00,0x00,0x00,0x79,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x44,0x01,0x00,0x00, +0x43,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x45,0x01,0x00,0x00,0x23,0x01,0x00,0x00,0x44,0x01,0x00,0x00, 0x41,0x00,0x05,0x00,0x9e,0x00,0x00,0x00,0x9f,0x00,0x00,0x00, 0x9b,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,0x3e,0x00,0x03,0x00, 0x9f,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, 0xa1,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xa1,0x00,0x00,0x00, -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x6f,0x01,0x00,0x00, -0x87,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0xf1,0x00,0x00,0x00, -0xa2,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x5a,0x00,0x00,0x00, -0xa7,0x00,0x00,0x00,0x58,0x00,0x00,0x00,0x22,0x00,0x00,0x00, +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x64,0x01,0x00,0x00, +0x7f,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0xef,0x00,0x00,0x00, +0xa2,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x52,0x00,0x00,0x00, +0xa7,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x22,0x00,0x00,0x00, 0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa8,0x00,0x00,0x00, 0xa7,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, 0xa9,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,0x98,0x00,0x00,0x00, 0xb0,0x00,0x05,0x00,0xaa,0x00,0x00,0x00,0xab,0x00,0x00,0x00, -0x6f,0x01,0x00,0x00,0xa9,0x00,0x00,0x00,0xf6,0x00,0x04,0x00, +0x64,0x01,0x00,0x00,0xa9,0x00,0x00,0x00,0xf6,0x00,0x04,0x00, 0xa3,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,0x01,0x00,0x00,0x00, 0xfa,0x00,0x04,0x00,0xab,0x00,0x00,0x00,0xa2,0x00,0x00,0x00, 0xa3,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xa2,0x00,0x00,0x00, 0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xae,0x00,0x00,0x00, -0x6f,0x01,0x00,0x00,0x98,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xb1,0x00,0x00,0x00,0xaf,0x00,0x00,0x00, +0x64,0x01,0x00,0x00,0x98,0x00,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xb0,0x00,0x00,0x00,0x85,0x00,0x00,0x00, 0x8d,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xb2,0x00,0x00,0x00,0xae,0x00,0x00,0x00,0xb1,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb7,0x00,0x00,0x00, +0xb1,0x00,0x00,0x00,0xae,0x00,0x00,0x00,0xb0,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb6,0x00,0x00,0x00, 0x89,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0xb7,0x00,0x00,0x00, -0xb2,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xbb,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0xba,0x00,0x00,0x00, -0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbe,0x00,0x00,0x00, -0xb2,0x00,0x00,0x00,0xba,0x00,0x00,0x00,0x86,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0xbe,0x00,0x00,0x00, -0xaf,0x00,0x00,0x00,0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xc4,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,0xbe,0x00,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc8,0x00,0x00,0x00, -0x40,0x01,0x00,0x00,0xba,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x50,0x01,0x00,0x00,0xc8,0x00,0x00,0x00, -0xbb,0x00,0x00,0x00,0x41,0x00,0x07,0x00,0x26,0x00,0x00,0x00, -0x51,0x01,0x00,0x00,0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x50,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x18,0x00,0x00,0x00,0x52,0x01,0x00,0x00,0x51,0x01,0x00,0x00, -0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x53,0x01,0x00,0x00, -0x52,0x01,0x00,0x00,0x41,0x00,0x07,0x00,0x26,0x00,0x00,0x00, -0x57,0x01,0x00,0x00,0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x50,0x01,0x00,0x00,0x2e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x18,0x00,0x00,0x00,0x58,0x01,0x00,0x00,0x57,0x01,0x00,0x00, -0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x59,0x01,0x00,0x00, -0x58,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x38,0x00,0x00,0x00, -0x5e,0x01,0x00,0x00,0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x50,0x01,0x00,0x00,0x36,0x00,0x00,0x00,0xbf,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x5f,0x01,0x00,0x00, -0x5e,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x60,0x01,0x00,0x00,0x5f,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x62,0x01,0x00,0x00,0x60,0x01,0x00,0x00, -0x3d,0x00,0x00,0x00,0x70,0x00,0x04,0x00,0x08,0x00,0x00,0x00, -0x63,0x01,0x00,0x00,0x62,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x65,0x01,0x00,0x00,0x60,0x01,0x00,0x00, -0x41,0x00,0x00,0x00,0x70,0x00,0x04,0x00,0x08,0x00,0x00,0x00, -0x66,0x01,0x00,0x00,0x65,0x01,0x00,0x00,0x50,0x00,0x05,0x00, -0x09,0x00,0x00,0x00,0x67,0x01,0x00,0x00,0x63,0x01,0x00,0x00, -0x66,0x01,0x00,0x00,0x8e,0x00,0x05,0x00,0x09,0x00,0x00,0x00, -0x69,0x01,0x00,0x00,0x67,0x01,0x00,0x00,0x53,0x01,0x00,0x00, -0x50,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0x6b,0x01,0x00,0x00, -0x59,0x01,0x00,0x00,0x59,0x01,0x00,0x00,0x81,0x00,0x05,0x00, -0x09,0x00,0x00,0x00,0x6c,0x01,0x00,0x00,0x69,0x01,0x00,0x00, -0x6b,0x01,0x00,0x00,0x51,0x00,0x05,0x00,0x08,0x00,0x00,0x00, -0xd1,0x00,0x00,0x00,0x6c,0x01,0x00,0x00,0x00,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd8,0x00,0x00,0x00, -0x44,0x01,0x00,0x00,0xc4,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xda,0x00,0x00,0x00,0xd8,0x00,0x00,0x00, -0xbf,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x26,0x00,0x00,0x00, -0xdb,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0xda,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x18,0x00,0x00,0x00, -0xdc,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,0x73,0x00,0x04,0x00, -0x08,0x00,0x00,0x00,0xdd,0x00,0x00,0x00,0xdc,0x00,0x00,0x00, -0x51,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0xe0,0x00,0x00,0x00, -0x6c,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xe6,0x00,0x00,0x00,0xda,0x00,0x00,0x00, -0x1a,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x26,0x00,0x00,0x00, -0xe7,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0xe6,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x18,0x00,0x00,0x00, -0xe8,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,0x73,0x00,0x04,0x00, -0x08,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,0xe8,0x00,0x00,0x00, -0x85,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0xea,0x00,0x00,0x00, -0xe0,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,0x0c,0x00,0x08,0x00, -0x08,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,0xdd,0x00,0x00,0x00, -0xea,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, -0xed,0x00,0x00,0x00,0x9f,0x00,0x00,0x00,0x81,0x00,0x05,0x00, -0x08,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0xed,0x00,0x00,0x00, -0xeb,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0x9f,0x00,0x00,0x00, -0xee,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xf1,0x00,0x00,0x00,0x6f,0x01,0x00,0x00,0xaf,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0xa1,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0xa3,0x00,0x00,0x00,0xe0,0x00,0x04,0x00,0xaf,0x00,0x00,0x00, -0xaf,0x00,0x00,0x00,0xf2,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, -0xf5,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xf5,0x00,0x00,0x00, -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x70,0x01,0x00,0x00, -0xf4,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0x0c,0x01,0x00,0x00, -0xf8,0x00,0x00,0x00,0xac,0x00,0x05,0x00,0xaa,0x00,0x00,0x00, -0xfb,0x00,0x00,0x00,0x70,0x01,0x00,0x00,0x87,0x00,0x00,0x00, -0xf6,0x00,0x04,0x00,0xf7,0x00,0x00,0x00,0xf8,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xfb,0x00,0x00,0x00, -0xf6,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0xf6,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0xaa,0x00,0x00,0x00, -0xfe,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,0x70,0x01,0x00,0x00, -0xf7,0x00,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00, -0xfa,0x00,0x04,0x00,0xfe,0x00,0x00,0x00,0xff,0x00,0x00,0x00, -0x00,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xff,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x04,0x01,0x00,0x00, -0x8d,0x00,0x00,0x00,0x70,0x01,0x00,0x00,0x41,0x00,0x05,0x00, -0x9e,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0x9b,0x00,0x00,0x00, -0x04,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, -0x06,0x01,0x00,0x00,0x05,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0x08,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x9f,0x00,0x00,0x00, -0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0x09,0x01,0x00,0x00, -0x08,0x01,0x00,0x00,0x06,0x01,0x00,0x00,0x3e,0x00,0x03,0x00, -0x9f,0x00,0x00,0x00,0x09,0x01,0x00,0x00,0xf9,0x00,0x02,0x00, -0x00,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x00,0x01,0x00,0x00, -0xe0,0x00,0x04,0x00,0xaf,0x00,0x00,0x00,0xaf,0x00,0x00,0x00, -0xf2,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xf8,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0xf8,0x00,0x00,0x00,0xc2,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,0x70,0x01,0x00,0x00, -0x2e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xf5,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0xf7,0x00,0x00,0x00,0xaa,0x00,0x05,0x00, -0xaa,0x00,0x00,0x00,0x0e,0x01,0x00,0x00,0x8d,0x00,0x00,0x00, -0x87,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0x10,0x01,0x00,0x00, -0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x0e,0x01,0x00,0x00, -0x0f,0x01,0x00,0x00,0x10,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, -0x0f,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x17,0x01,0x00,0x00,0x48,0x01,0x00,0x00,0x89,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x9e,0x00,0x00,0x00,0x18,0x01,0x00,0x00, -0x9b,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x08,0x00,0x00,0x00,0x19,0x01,0x00,0x00,0x18,0x01,0x00,0x00, -0x41,0x00,0x06,0x00,0x1a,0x01,0x00,0x00,0x1b,0x01,0x00,0x00, -0x14,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x17,0x01,0x00,0x00, -0x3e,0x00,0x03,0x00,0x1b,0x01,0x00,0x00,0x19,0x01,0x00,0x00, -0xf9,0x00,0x02,0x00,0x10,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, -0x10,0x01,0x00,0x00,0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00, - +0x06,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0xb6,0x00,0x00,0x00, +0xb1,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xba,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0xb9,0x00,0x00,0x00, +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbd,0x00,0x00,0x00, +0xb1,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xbe,0x00,0x00,0x00,0xbd,0x00,0x00,0x00, +0x85,0x00,0x00,0x00,0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xc3,0x00,0x00,0x00,0xb1,0x00,0x00,0x00,0xbd,0x00,0x00,0x00, +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc7,0x00,0x00,0x00, +0x3d,0x01,0x00,0x00,0xb9,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x4c,0x01,0x00,0x00,0xc7,0x00,0x00,0x00, +0xba,0x00,0x00,0x00,0x41,0x00,0x07,0x00,0x26,0x00,0x00,0x00, +0x4d,0x01,0x00,0x00,0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00, +0x4c,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x18,0x00,0x00,0x00,0x4e,0x01,0x00,0x00,0x4d,0x01,0x00,0x00, +0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x4f,0x01,0x00,0x00, +0x4e,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x30,0x00,0x00,0x00, +0x54,0x01,0x00,0x00,0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00, +0x4c,0x01,0x00,0x00,0x2e,0x00,0x00,0x00,0xbe,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x55,0x01,0x00,0x00, +0x54,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x56,0x01,0x00,0x00,0x55,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x58,0x01,0x00,0x00,0x56,0x01,0x00,0x00, +0x35,0x00,0x00,0x00,0x70,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0x59,0x01,0x00,0x00,0x58,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x5b,0x01,0x00,0x00,0x56,0x01,0x00,0x00, +0x39,0x00,0x00,0x00,0x70,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0x5c,0x01,0x00,0x00,0x5b,0x01,0x00,0x00,0x50,0x00,0x05,0x00, +0x09,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,0x59,0x01,0x00,0x00, +0x5c,0x01,0x00,0x00,0x83,0x00,0x05,0x00,0x09,0x00,0x00,0x00, +0x5f,0x01,0x00,0x00,0x5d,0x01,0x00,0x00,0x67,0x01,0x00,0x00, +0x8e,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0x61,0x01,0x00,0x00, +0x5f,0x01,0x00,0x00,0x4f,0x01,0x00,0x00,0x51,0x00,0x05,0x00, +0x08,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0x61,0x01,0x00,0x00, +0x00,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xd7,0x00,0x00,0x00,0x41,0x01,0x00,0x00,0xc3,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd9,0x00,0x00,0x00, +0xd7,0x00,0x00,0x00,0xbe,0x00,0x00,0x00,0x41,0x00,0x06,0x00, +0xda,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,0xd4,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0xd9,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x08,0x00,0x00,0x00,0xdc,0x00,0x00,0x00,0xdb,0x00,0x00,0x00, +0x51,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0xdf,0x00,0x00,0x00, +0x61,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xe5,0x00,0x00,0x00,0xd9,0x00,0x00,0x00, +0x1a,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xda,0x00,0x00,0x00, +0xe6,0x00,0x00,0x00,0xd4,0x00,0x00,0x00,0x22,0x00,0x00,0x00, +0xe5,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0xe7,0x00,0x00,0x00,0xe6,0x00,0x00,0x00,0x85,0x00,0x05,0x00, +0x08,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0xdf,0x00,0x00,0x00, +0xe7,0x00,0x00,0x00,0x0c,0x00,0x08,0x00,0x08,0x00,0x00,0x00, +0xe9,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0xd0,0x00,0x00,0x00,0xdc,0x00,0x00,0x00,0xe8,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xeb,0x00,0x00,0x00, +0x9f,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00, +0xec,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0xe9,0x00,0x00,0x00, +0x3e,0x00,0x03,0x00,0x9f,0x00,0x00,0x00,0xec,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xef,0x00,0x00,0x00, +0x64,0x01,0x00,0x00,0x85,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, +0xa1,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xa3,0x00,0x00,0x00, +0xe0,0x00,0x04,0x00,0x85,0x00,0x00,0x00,0x85,0x00,0x00,0x00, +0xf0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xf3,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0xf3,0x00,0x00,0x00,0xf5,0x00,0x07,0x00, +0x06,0x00,0x00,0x00,0x65,0x01,0x00,0x00,0xf2,0x00,0x00,0x00, +0xa3,0x00,0x00,0x00,0x0a,0x01,0x00,0x00,0xf6,0x00,0x00,0x00, +0xac,0x00,0x05,0x00,0xaa,0x00,0x00,0x00,0xf9,0x00,0x00,0x00, +0x65,0x01,0x00,0x00,0x7f,0x00,0x00,0x00,0xf6,0x00,0x04,0x00, +0xf5,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0xfa,0x00,0x04,0x00,0xf9,0x00,0x00,0x00,0xf4,0x00,0x00,0x00, +0xf5,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xf4,0x00,0x00,0x00, +0xb0,0x00,0x05,0x00,0xaa,0x00,0x00,0x00,0xfc,0x00,0x00,0x00, +0x8d,0x00,0x00,0x00,0x65,0x01,0x00,0x00,0xf7,0x00,0x03,0x00, +0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, +0xfc,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,0xfe,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0xfd,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x02,0x01,0x00,0x00,0x8d,0x00,0x00,0x00, +0x65,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x9e,0x00,0x00,0x00, +0x03,0x01,0x00,0x00,0x9b,0x00,0x00,0x00,0x02,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x04,0x01,0x00,0x00, +0x03,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0x06,0x01,0x00,0x00,0x9f,0x00,0x00,0x00,0x81,0x00,0x05,0x00, +0x08,0x00,0x00,0x00,0x07,0x01,0x00,0x00,0x06,0x01,0x00,0x00, +0x04,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x9f,0x00,0x00,0x00, +0x07,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xfe,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0xfe,0x00,0x00,0x00,0xe0,0x00,0x04,0x00, +0x85,0x00,0x00,0x00,0x85,0x00,0x00,0x00,0xf0,0x00,0x00,0x00, +0xf9,0x00,0x02,0x00,0xf6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xf6,0x00,0x00,0x00,0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x0a,0x01,0x00,0x00,0x65,0x01,0x00,0x00,0x2e,0x00,0x00,0x00, +0xf9,0x00,0x02,0x00,0xf3,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xf5,0x00,0x00,0x00,0xaa,0x00,0x05,0x00,0xaa,0x00,0x00,0x00, +0x0c,0x01,0x00,0x00,0x8d,0x00,0x00,0x00,0x7f,0x00,0x00,0x00, +0xf7,0x00,0x03,0x00,0x0e,0x01,0x00,0x00,0x00,0x00,0x00,0x00, +0xfa,0x00,0x04,0x00,0x0c,0x01,0x00,0x00,0x0d,0x01,0x00,0x00, +0x0e,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x0d,0x01,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x15,0x01,0x00,0x00, +0x45,0x01,0x00,0x00,0x89,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0x9e,0x00,0x00,0x00,0x16,0x01,0x00,0x00,0x9b,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0x17,0x01,0x00,0x00,0x16,0x01,0x00,0x00,0x41,0x00,0x06,0x00, +0xda,0x00,0x00,0x00,0x18,0x01,0x00,0x00,0x12,0x01,0x00,0x00, +0x22,0x00,0x00,0x00,0x15,0x01,0x00,0x00,0x3e,0x00,0x03,0x00, +0x18,0x01,0x00,0x00,0x17,0x01,0x00,0x00,0xf9,0x00,0x02,0x00, +0x0e,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x0e,0x01,0x00,0x00, +0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00, }; -const uint64_t mul_mat_vec_q4_1_f16_f32_len = 4044; +const uint64_t mul_mat_vec_q4_0_f32_f32_len = 4076; -unsigned char mul_mat_vec_q4_1_f32_f32_data[] = { +unsigned char mul_mat_vec_q4_1_f16_f32_data[] = { 0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00, -0x6f,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, +0x78,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, 0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x51,0x11,0x00,0x00, 0x11,0x00,0x02,0x00,0x60,0x11,0x00,0x00,0x0b,0x00,0x06,0x00, 0x01,0x00,0x00,0x00,0x47,0x4c,0x53,0x4c,0x2e,0x73,0x74,0x64, 0x2e,0x34,0x35,0x30,0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00, -0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0f,0x00,0x0d,0x00, +0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0f,0x00,0x0e,0x00, 0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e, 0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x4f,0x00,0x00,0x00, -0x58,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x8b,0x00,0x00,0x00, -0x9b,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0x13,0x01,0x00,0x00, -0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x1c,0x00,0x00,0x00, +0x58,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x8a,0x00,0x00,0x00, +0x93,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0xdc,0x00,0x00,0x00, +0x1b,0x01,0x00,0x00,0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00, +0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x1c,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x1c,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x1d,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x14,0x00,0x00,0x00, +0x48,0x00,0x04,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x1e,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x1c,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x1c,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x1d,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x48,0x00,0x04,0x00, -0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, -0x1e,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x20,0x00,0x00,0x00,0x21,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x4f,0x00,0x00,0x00, -0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x56,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x56,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x56,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x56,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x56,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x56,0x00,0x00,0x00,0x05,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x56,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x56,0x00,0x00,0x00, -0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x56,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x56,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x24,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x56,0x00,0x00,0x00, -0x0a,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x28,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0x56,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x86,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, -0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x8b,0x00,0x00,0x00, -0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x98,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xd2,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0xd3,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0xd3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0xd3,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xd5,0x00,0x00,0x00, -0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xd5,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x10,0x01,0x00,0x00,0x06,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x11,0x01,0x00,0x00, -0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x11,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x11,0x01,0x00,0x00, -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x13,0x01,0x00,0x00, -0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x13,0x01,0x00,0x00,0x21,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x1a,0x01,0x00,0x00,0x01,0x00,0x00,0x00, +0x47,0x00,0x03,0x00,0x1e,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x20,0x00,0x00,0x00, +0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x4f,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x56,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x56,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x56,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x56,0x00,0x00,0x00,0x03,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x56,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x56,0x00,0x00,0x00, +0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x56,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x56,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x56,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x56,0x00,0x00,0x00,0x09,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x56,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x28,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x56,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x86,0x00,0x00,0x00, +0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x8a,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x93,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, +0x1b,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xa0,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xd9,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x48,0x00,0x04,0x00,0xda,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xda,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x03,0x00,0xda,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xdc,0x00,0x00,0x00,0x22,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xdc,0x00,0x00,0x00, +0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x18,0x01,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x48,0x00,0x04,0x00,0x19,0x01,0x00,0x00,0x00,0x00,0x00,0x00, +0x19,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x19,0x01,0x00,0x00, +0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x03,0x00,0x19,0x01,0x00,0x00,0x02,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x1b,0x01,0x00,0x00,0x22,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x1b,0x01,0x00,0x00, -0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x13,0x00,0x02,0x00, -0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x00,0x03,0x00, -0x08,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x17,0x00,0x04,0x00, -0x09,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x16,0x00,0x03,0x00,0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00, -0x15,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x1a,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, -0x1e,0x00,0x05,0x00,0x1c,0x00,0x00,0x00,0x18,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, -0x1d,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, -0x1e,0x00,0x00,0x00,0x1d,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x1f,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x1e,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x21,0x00,0x00,0x00, -0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x21,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x26,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, -0x2e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x21,0x00,0x00,0x00,0x36,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x38,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x19,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x3d,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x21,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x17,0x00,0x04,0x00,0x4d,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x4e,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x4e,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x50,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x51,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x1e,0x00,0x0d,0x00, -0x56,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x21,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x23,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x24,0x01,0x00,0x00,0x0b,0x00,0x00,0x00, +0x19,0x00,0x00,0x00,0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00, +0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x15,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0x08,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x17,0x00,0x04,0x00,0x09,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x16,0x00,0x03,0x00, +0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x15,0x00,0x04,0x00, +0x19,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, +0x10,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x19,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x1e,0x00,0x05,0x00, +0x1c,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x1b,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x1d,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x1e,0x00,0x00,0x00, +0x1d,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x1f,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0x1f,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x15,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x20,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x26,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x2e,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, +0x36,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x38,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x19,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x3d,0x00,0x00,0x00, +0x0f,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, +0x41,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x17,0x00,0x04,0x00, +0x4d,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x4e,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x4d,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x4e,0x00,0x00,0x00, +0x4f,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x51,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x1e,0x00,0x0d,0x00,0x56,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x57,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x56,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x57,0x00,0x00,0x00, -0x58,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x21,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x5a,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, -0x65,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x21,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x71,0x00,0x00,0x00, -0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, -0x7c,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x21,0x00,0x00,0x00,0x81,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0x4e,0x00,0x00,0x00,0x86,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x87,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x4e,0x00,0x00,0x00,0x8b,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x98,0x00,0x00,0x00, -0x20,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0x99,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x98,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x9a,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x99,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0x9a,0x00,0x00,0x00,0x9b,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x08,0x00,0x00,0x00, -0x9d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x9e,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x14,0x00,0x02,0x00,0xaa,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xba,0x00,0x00,0x00, -0x20,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0xd2,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xd3,0x00,0x00,0x00, -0xd2,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xd4,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0xd4,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0xdb,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xf1,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x34,0x00,0x06,0x00, -0x06,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,0x86,0x00,0x00,0x00, -0x98,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, -0x10,0x01,0x00,0x00,0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, -0x11,0x01,0x00,0x00,0x10,0x01,0x00,0x00,0x20,0x00,0x04,0x00, -0x12,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x11,0x01,0x00,0x00, -0x3b,0x00,0x04,0x00,0x12,0x01,0x00,0x00,0x13,0x01,0x00,0x00, -0x0c,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x1a,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x33,0x00,0x06,0x00, -0x4d,0x00,0x00,0x00,0x1b,0x01,0x00,0x00,0x1a,0x01,0x00,0x00, +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x57,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x56,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x57,0x00,0x00,0x00,0x58,0x00,0x00,0x00, +0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, +0x59,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x5a,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x65,0x00,0x00,0x00, +0x0a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, +0x6b,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x21,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x07,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x7c,0x00,0x00,0x00, +0x05,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, +0x81,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0x4e,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x87,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x4e,0x00,0x00,0x00, +0x8a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x4e,0x00,0x00,0x00,0x93,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xa0,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, +0xa1,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0xa0,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0xa2,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0xa1,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xa2,0x00,0x00,0x00, +0xa3,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x08,0x00,0x00,0x00,0xa5,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0xa6,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x14,0x00,0x02,0x00,0xb2,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xc1,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0xd9,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xda,0x00,0x00,0x00, +0xd9,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xdb,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0xda,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0xdb,0x00,0x00,0x00,0xdc,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xf9,0x00,0x00,0x00, +0x08,0x01,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00, +0xfb,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0xa0,0x00,0x00,0x00, +0x8d,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x18,0x01,0x00,0x00, +0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x19,0x01,0x00,0x00, +0x18,0x01,0x00,0x00,0x20,0x00,0x04,0x00,0x1a,0x01,0x00,0x00, +0x0c,0x00,0x00,0x00,0x19,0x01,0x00,0x00,0x3b,0x00,0x04,0x00, +0x1a,0x01,0x00,0x00,0x1b,0x01,0x00,0x00,0x0c,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x21,0x01,0x00,0x00,0x0c,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x23,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x33,0x00,0x06,0x00, +0x4d,0x00,0x00,0x00,0x24,0x01,0x00,0x00,0x23,0x01,0x00,0x00, 0x50,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x36,0x00,0x05,0x00, 0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x03,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00, 0x41,0x00,0x05,0x00,0x51,0x00,0x00,0x00,0x88,0x00,0x00,0x00, 0x86,0x00,0x00,0x00,0x87,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, 0x06,0x00,0x00,0x00,0x89,0x00,0x00,0x00,0x88,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x51,0x00,0x00,0x00,0x8c,0x00,0x00,0x00, -0x8b,0x00,0x00,0x00,0x87,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,0x8c,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x51,0x00,0x00,0x00,0x23,0x01,0x00,0x00, -0x4f,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x24,0x01,0x00,0x00,0x23,0x01,0x00,0x00, -0x41,0x00,0x05,0x00,0x5a,0x00,0x00,0x00,0x26,0x01,0x00,0x00, -0x58,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x27,0x01,0x00,0x00,0x26,0x01,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x28,0x01,0x00,0x00, -0x24,0x01,0x00,0x00,0x27,0x01,0x00,0x00,0x89,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x2c,0x01,0x00,0x00,0x24,0x01,0x00,0x00, -0x27,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x5a,0x00,0x00,0x00, -0x2e,0x01,0x00,0x00,0x58,0x00,0x00,0x00,0x65,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x2f,0x01,0x00,0x00, -0x2e,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x30,0x01,0x00,0x00,0x28,0x01,0x00,0x00,0x2f,0x01,0x00,0x00, -0x41,0x00,0x05,0x00,0x5a,0x00,0x00,0x00,0x32,0x01,0x00,0x00, -0x58,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x33,0x01,0x00,0x00,0x32,0x01,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x34,0x01,0x00,0x00, -0x2c,0x01,0x00,0x00,0x33,0x01,0x00,0x00,0x41,0x00,0x05,0x00, -0x5a,0x00,0x00,0x00,0x36,0x01,0x00,0x00,0x58,0x00,0x00,0x00, -0x71,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x37,0x01,0x00,0x00,0x36,0x01,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x38,0x01,0x00,0x00,0x30,0x01,0x00,0x00, -0x37,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x3a,0x01,0x00,0x00,0x38,0x01,0x00,0x00,0x34,0x01,0x00,0x00, -0x41,0x00,0x05,0x00,0x5a,0x00,0x00,0x00,0x3c,0x01,0x00,0x00, -0x58,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x3d,0x01,0x00,0x00,0x3c,0x01,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3e,0x01,0x00,0x00, -0x3a,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,0x41,0x00,0x05,0x00, -0x5a,0x00,0x00,0x00,0x40,0x01,0x00,0x00,0x58,0x00,0x00,0x00, -0x7c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x41,0x01,0x00,0x00,0x40,0x01,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x42,0x01,0x00,0x00,0x24,0x01,0x00,0x00, -0x41,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x5a,0x00,0x00,0x00, -0x44,0x01,0x00,0x00,0x58,0x00,0x00,0x00,0x81,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x45,0x01,0x00,0x00, -0x44,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x46,0x01,0x00,0x00,0x24,0x01,0x00,0x00,0x45,0x01,0x00,0x00, -0x41,0x00,0x05,0x00,0x9e,0x00,0x00,0x00,0x9f,0x00,0x00,0x00, -0x9b,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,0x3e,0x00,0x03,0x00, -0x9f,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, -0xa1,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xa1,0x00,0x00,0x00, -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x6d,0x01,0x00,0x00, -0x87,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0xf0,0x00,0x00,0x00, -0xa2,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x5a,0x00,0x00,0x00, -0xa7,0x00,0x00,0x00,0x58,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa8,0x00,0x00,0x00, -0xa7,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xa9,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,0x98,0x00,0x00,0x00, -0xb0,0x00,0x05,0x00,0xaa,0x00,0x00,0x00,0xab,0x00,0x00,0x00, -0x6d,0x01,0x00,0x00,0xa9,0x00,0x00,0x00,0xf6,0x00,0x04,0x00, -0xa3,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0xfa,0x00,0x04,0x00,0xab,0x00,0x00,0x00,0xa2,0x00,0x00,0x00, -0xa3,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xa2,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xae,0x00,0x00,0x00, -0x6d,0x01,0x00,0x00,0x98,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xb1,0x00,0x00,0x00,0xaf,0x00,0x00,0x00, -0x8d,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xb2,0x00,0x00,0x00,0xae,0x00,0x00,0x00,0xb1,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb7,0x00,0x00,0x00, -0x89,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0xb7,0x00,0x00,0x00, -0xb2,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xbb,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0xba,0x00,0x00,0x00, -0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbe,0x00,0x00,0x00, -0xb2,0x00,0x00,0x00,0xba,0x00,0x00,0x00,0x86,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0xbe,0x00,0x00,0x00, -0xaf,0x00,0x00,0x00,0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xc4,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,0xbe,0x00,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc8,0x00,0x00,0x00, -0x3e,0x01,0x00,0x00,0xba,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x4e,0x01,0x00,0x00,0xc8,0x00,0x00,0x00, -0xbb,0x00,0x00,0x00,0x41,0x00,0x07,0x00,0x26,0x00,0x00,0x00, -0x4f,0x01,0x00,0x00,0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x4e,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x18,0x00,0x00,0x00,0x50,0x01,0x00,0x00,0x4f,0x01,0x00,0x00, -0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x51,0x01,0x00,0x00, -0x50,0x01,0x00,0x00,0x41,0x00,0x07,0x00,0x26,0x00,0x00,0x00, -0x55,0x01,0x00,0x00,0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x4e,0x01,0x00,0x00,0x2e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x18,0x00,0x00,0x00,0x56,0x01,0x00,0x00,0x55,0x01,0x00,0x00, -0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x57,0x01,0x00,0x00, -0x56,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x38,0x00,0x00,0x00, -0x5c,0x01,0x00,0x00,0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x4e,0x01,0x00,0x00,0x36,0x00,0x00,0x00,0xbf,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x5d,0x01,0x00,0x00, -0x5c,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x5e,0x01,0x00,0x00,0x5d,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x60,0x01,0x00,0x00,0x5e,0x01,0x00,0x00, -0x3d,0x00,0x00,0x00,0x70,0x00,0x04,0x00,0x08,0x00,0x00,0x00, -0x61,0x01,0x00,0x00,0x60,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x63,0x01,0x00,0x00,0x5e,0x01,0x00,0x00, -0x41,0x00,0x00,0x00,0x70,0x00,0x04,0x00,0x08,0x00,0x00,0x00, -0x64,0x01,0x00,0x00,0x63,0x01,0x00,0x00,0x50,0x00,0x05,0x00, -0x09,0x00,0x00,0x00,0x65,0x01,0x00,0x00,0x61,0x01,0x00,0x00, -0x64,0x01,0x00,0x00,0x8e,0x00,0x05,0x00,0x09,0x00,0x00,0x00, -0x67,0x01,0x00,0x00,0x65,0x01,0x00,0x00,0x51,0x01,0x00,0x00, -0x50,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0x69,0x01,0x00,0x00, -0x57,0x01,0x00,0x00,0x57,0x01,0x00,0x00,0x81,0x00,0x05,0x00, -0x09,0x00,0x00,0x00,0x6a,0x01,0x00,0x00,0x67,0x01,0x00,0x00, -0x69,0x01,0x00,0x00,0x51,0x00,0x05,0x00,0x08,0x00,0x00,0x00, -0xd1,0x00,0x00,0x00,0x6a,0x01,0x00,0x00,0x00,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd8,0x00,0x00,0x00, -0x42,0x01,0x00,0x00,0xc4,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xda,0x00,0x00,0x00,0xd8,0x00,0x00,0x00, -0xbf,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xdb,0x00,0x00,0x00, -0xdc,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0xda,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, -0xdd,0x00,0x00,0x00,0xdc,0x00,0x00,0x00,0x51,0x00,0x05,0x00, -0x08,0x00,0x00,0x00,0xe0,0x00,0x00,0x00,0x6a,0x01,0x00,0x00, -0x01,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xe6,0x00,0x00,0x00,0xda,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, -0x41,0x00,0x06,0x00,0xdb,0x00,0x00,0x00,0xe7,0x00,0x00,0x00, -0xd5,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0xe6,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xe8,0x00,0x00,0x00, -0xe7,0x00,0x00,0x00,0x85,0x00,0x05,0x00,0x08,0x00,0x00,0x00, -0xe9,0x00,0x00,0x00,0xe0,0x00,0x00,0x00,0xe8,0x00,0x00,0x00, -0x0c,0x00,0x08,0x00,0x08,0x00,0x00,0x00,0xea,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xd1,0x00,0x00,0x00, -0xdd,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x08,0x00,0x00,0x00,0xec,0x00,0x00,0x00,0x9f,0x00,0x00,0x00, -0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0xed,0x00,0x00,0x00, -0xec,0x00,0x00,0x00,0xea,0x00,0x00,0x00,0x3e,0x00,0x03,0x00, -0x9f,0x00,0x00,0x00,0xed,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x6d,0x01,0x00,0x00, -0xaf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xa1,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0xa3,0x00,0x00,0x00,0xe0,0x00,0x04,0x00, -0xaf,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0xf1,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0xf4,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0xf4,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00, -0x6e,0x01,0x00,0x00,0xf3,0x00,0x00,0x00,0xa3,0x00,0x00,0x00, -0x0b,0x01,0x00,0x00,0xf7,0x00,0x00,0x00,0xac,0x00,0x05,0x00, -0xaa,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,0x6e,0x01,0x00,0x00, -0x87,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xf6,0x00,0x00,0x00, -0xf7,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, -0xfa,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,0xf6,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0xf5,0x00,0x00,0x00,0xb0,0x00,0x05,0x00, -0xaa,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,0x8d,0x00,0x00,0x00, -0x6e,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,0xff,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xfd,0x00,0x00,0x00, -0xfe,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0xfe,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x03,0x01,0x00,0x00,0x8d,0x00,0x00,0x00,0x6e,0x01,0x00,0x00, -0x41,0x00,0x05,0x00,0x9e,0x00,0x00,0x00,0x04,0x01,0x00,0x00, -0x9b,0x00,0x00,0x00,0x03,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0x08,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0x04,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x07,0x01,0x00,0x00, -0x9f,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00, -0x08,0x01,0x00,0x00,0x07,0x01,0x00,0x00,0x05,0x01,0x00,0x00, -0x3e,0x00,0x03,0x00,0x9f,0x00,0x00,0x00,0x08,0x01,0x00,0x00, -0xf9,0x00,0x02,0x00,0xff,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0xff,0x00,0x00,0x00,0xe0,0x00,0x04,0x00,0xaf,0x00,0x00,0x00, -0xaf,0x00,0x00,0x00,0xf1,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, -0xf7,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xf7,0x00,0x00,0x00, -0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0b,0x01,0x00,0x00, -0x6e,0x01,0x00,0x00,0x2e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, -0xf4,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xf6,0x00,0x00,0x00, -0xaa,0x00,0x05,0x00,0xaa,0x00,0x00,0x00,0x0d,0x01,0x00,0x00, -0x8d,0x00,0x00,0x00,0x87,0x00,0x00,0x00,0xf7,0x00,0x03,0x00, -0x0f,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, -0x0d,0x01,0x00,0x00,0x0e,0x01,0x00,0x00,0x0f,0x01,0x00,0x00, -0xf8,0x00,0x02,0x00,0x0e,0x01,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x16,0x01,0x00,0x00,0x46,0x01,0x00,0x00, -0x89,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x9e,0x00,0x00,0x00, -0x17,0x01,0x00,0x00,0x9b,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x18,0x01,0x00,0x00, -0x17,0x01,0x00,0x00,0x41,0x00,0x06,0x00,0xdb,0x00,0x00,0x00, -0x19,0x01,0x00,0x00,0x13,0x01,0x00,0x00,0x22,0x00,0x00,0x00, -0x16,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x19,0x01,0x00,0x00, -0x18,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x0f,0x01,0x00,0x00, -0xf8,0x00,0x02,0x00,0x0f,0x01,0x00,0x00,0xfd,0x00,0x01,0x00, +0x41,0x00,0x05,0x00,0x51,0x00,0x00,0x00,0x8b,0x00,0x00,0x00, +0x8a,0x00,0x00,0x00,0x87,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x8c,0x00,0x00,0x00,0x8b,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x51,0x00,0x00,0x00,0x8e,0x00,0x00,0x00, +0x86,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x8f,0x00,0x00,0x00,0x8e,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x90,0x00,0x00,0x00, +0x8c,0x00,0x00,0x00,0x8f,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x91,0x00,0x00,0x00,0x89,0x00,0x00,0x00, +0x90,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x51,0x00,0x00,0x00, +0x94,0x00,0x00,0x00,0x93,0x00,0x00,0x00,0x87,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x95,0x00,0x00,0x00, +0x94,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x51,0x00,0x00,0x00, +0x2c,0x01,0x00,0x00,0x4f,0x00,0x00,0x00,0x50,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x2d,0x01,0x00,0x00, +0x2c,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x5a,0x00,0x00,0x00, +0x2f,0x01,0x00,0x00,0x58,0x00,0x00,0x00,0x59,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x30,0x01,0x00,0x00, +0x2f,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x31,0x01,0x00,0x00,0x2d,0x01,0x00,0x00,0x30,0x01,0x00,0x00, +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x35,0x01,0x00,0x00, +0x2d,0x01,0x00,0x00,0x30,0x01,0x00,0x00,0x41,0x00,0x05,0x00, +0x5a,0x00,0x00,0x00,0x37,0x01,0x00,0x00,0x58,0x00,0x00,0x00, +0x65,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x38,0x01,0x00,0x00,0x37,0x01,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x39,0x01,0x00,0x00,0x31,0x01,0x00,0x00, +0x38,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x5a,0x00,0x00,0x00, +0x3b,0x01,0x00,0x00,0x58,0x00,0x00,0x00,0x6b,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x3c,0x01,0x00,0x00, +0x3b,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x3d,0x01,0x00,0x00,0x35,0x01,0x00,0x00,0x3c,0x01,0x00,0x00, +0x41,0x00,0x05,0x00,0x5a,0x00,0x00,0x00,0x3f,0x01,0x00,0x00, +0x58,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x40,0x01,0x00,0x00,0x3f,0x01,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x41,0x01,0x00,0x00, +0x39,0x01,0x00,0x00,0x40,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x43,0x01,0x00,0x00,0x41,0x01,0x00,0x00, +0x3d,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x5a,0x00,0x00,0x00, +0x45,0x01,0x00,0x00,0x58,0x00,0x00,0x00,0x41,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x46,0x01,0x00,0x00, +0x45,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x47,0x01,0x00,0x00,0x43,0x01,0x00,0x00,0x46,0x01,0x00,0x00, +0x41,0x00,0x05,0x00,0x5a,0x00,0x00,0x00,0x49,0x01,0x00,0x00, +0x58,0x00,0x00,0x00,0x7c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x4a,0x01,0x00,0x00,0x49,0x01,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4b,0x01,0x00,0x00, +0x2d,0x01,0x00,0x00,0x4a,0x01,0x00,0x00,0x41,0x00,0x05,0x00, +0x5a,0x00,0x00,0x00,0x4d,0x01,0x00,0x00,0x58,0x00,0x00,0x00, +0x81,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x4e,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x4f,0x01,0x00,0x00,0x2d,0x01,0x00,0x00, +0x4e,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0xa6,0x00,0x00,0x00, +0xa7,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0x95,0x00,0x00,0x00, +0x3e,0x00,0x03,0x00,0xa7,0x00,0x00,0x00,0xa5,0x00,0x00,0x00, +0xf9,0x00,0x02,0x00,0xa9,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xa9,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00, +0x76,0x01,0x00,0x00,0x87,0x00,0x00,0x00,0x05,0x00,0x00,0x00, +0xf8,0x00,0x00,0x00,0xaa,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0x5a,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0x58,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xb0,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xb1,0x00,0x00,0x00,0xb0,0x00,0x00,0x00, +0xa0,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0xb2,0x00,0x00,0x00, +0xb3,0x00,0x00,0x00,0x76,0x01,0x00,0x00,0xb1,0x00,0x00,0x00, +0xf6,0x00,0x04,0x00,0xab,0x00,0x00,0x00,0xaa,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xb3,0x00,0x00,0x00, +0xaa,0x00,0x00,0x00,0xab,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xaa,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xb6,0x00,0x00,0x00,0x76,0x01,0x00,0x00,0xa0,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb8,0x00,0x00,0x00, +0x8d,0x00,0x00,0x00,0x95,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0xb6,0x00,0x00,0x00, +0xb8,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xbe,0x00,0x00,0x00,0x91,0x00,0x00,0x00,0xb0,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc0,0x00,0x00,0x00, +0xbe,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xc2,0x00,0x00,0x00,0xc0,0x00,0x00,0x00, +0xc1,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xc5,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0xc1,0x00,0x00,0x00, +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc6,0x00,0x00,0x00, +0xc5,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,0x82,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,0xb9,0x00,0x00,0x00, +0xc5,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xcf,0x00,0x00,0x00,0x47,0x01,0x00,0x00,0xc1,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x57,0x01,0x00,0x00, +0xcf,0x00,0x00,0x00,0xc2,0x00,0x00,0x00,0x41,0x00,0x07,0x00, +0x26,0x00,0x00,0x00,0x58,0x01,0x00,0x00,0x20,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x57,0x01,0x00,0x00,0x22,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x59,0x01,0x00,0x00, +0x58,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0x5a,0x01,0x00,0x00,0x59,0x01,0x00,0x00,0x41,0x00,0x07,0x00, +0x26,0x00,0x00,0x00,0x5e,0x01,0x00,0x00,0x20,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x57,0x01,0x00,0x00,0x2e,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x5f,0x01,0x00,0x00, +0x5e,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0x60,0x01,0x00,0x00,0x5f,0x01,0x00,0x00,0x41,0x00,0x08,0x00, +0x38,0x00,0x00,0x00,0x65,0x01,0x00,0x00,0x20,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x57,0x01,0x00,0x00,0x36,0x00,0x00,0x00, +0xc6,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x19,0x00,0x00,0x00, +0x66,0x01,0x00,0x00,0x65,0x01,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x67,0x01,0x00,0x00,0x66,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x69,0x01,0x00,0x00, +0x67,0x01,0x00,0x00,0x3d,0x00,0x00,0x00,0x70,0x00,0x04,0x00, +0x08,0x00,0x00,0x00,0x6a,0x01,0x00,0x00,0x69,0x01,0x00,0x00, +0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6c,0x01,0x00,0x00, +0x67,0x01,0x00,0x00,0x41,0x00,0x00,0x00,0x70,0x00,0x04,0x00, +0x08,0x00,0x00,0x00,0x6d,0x01,0x00,0x00,0x6c,0x01,0x00,0x00, +0x50,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0x6e,0x01,0x00,0x00, +0x6a,0x01,0x00,0x00,0x6d,0x01,0x00,0x00,0x8e,0x00,0x05,0x00, +0x09,0x00,0x00,0x00,0x70,0x01,0x00,0x00,0x6e,0x01,0x00,0x00, +0x5a,0x01,0x00,0x00,0x50,0x00,0x05,0x00,0x09,0x00,0x00,0x00, +0x72,0x01,0x00,0x00,0x60,0x01,0x00,0x00,0x60,0x01,0x00,0x00, +0x81,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0x73,0x01,0x00,0x00, +0x70,0x01,0x00,0x00,0x72,0x01,0x00,0x00,0x51,0x00,0x05,0x00, +0x08,0x00,0x00,0x00,0xd8,0x00,0x00,0x00,0x73,0x01,0x00,0x00, +0x00,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xdf,0x00,0x00,0x00,0x4b,0x01,0x00,0x00,0xcb,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe1,0x00,0x00,0x00, +0xdf,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,0x41,0x00,0x06,0x00, +0x26,0x00,0x00,0x00,0xe2,0x00,0x00,0x00,0xdc,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0xe1,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x18,0x00,0x00,0x00,0xe3,0x00,0x00,0x00,0xe2,0x00,0x00,0x00, +0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xe4,0x00,0x00,0x00, +0xe3,0x00,0x00,0x00,0x51,0x00,0x05,0x00,0x08,0x00,0x00,0x00, +0xe7,0x00,0x00,0x00,0x73,0x01,0x00,0x00,0x01,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xed,0x00,0x00,0x00, +0xe1,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x41,0x00,0x06,0x00, +0x26,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0xdc,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0xed,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x18,0x00,0x00,0x00,0xef,0x00,0x00,0x00,0xee,0x00,0x00,0x00, +0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xf0,0x00,0x00,0x00, +0xef,0x00,0x00,0x00,0x85,0x00,0x05,0x00,0x08,0x00,0x00,0x00, +0xf1,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,0xf0,0x00,0x00,0x00, +0x0c,0x00,0x08,0x00,0x08,0x00,0x00,0x00,0xf2,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xd8,0x00,0x00,0x00, +0xe4,0x00,0x00,0x00,0xf1,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x08,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,0xa7,0x00,0x00,0x00, +0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0xf5,0x00,0x00,0x00, +0xf4,0x00,0x00,0x00,0xf2,0x00,0x00,0x00,0x3e,0x00,0x03,0x00, +0xa7,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0x76,0x01,0x00,0x00, +0x8d,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xa9,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0xab,0x00,0x00,0x00,0xe0,0x00,0x04,0x00, +0x8d,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,0xf9,0x00,0x00,0x00, +0xf9,0x00,0x02,0x00,0xfc,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xfc,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00, +0x77,0x01,0x00,0x00,0xfb,0x00,0x00,0x00,0xab,0x00,0x00,0x00, +0x13,0x01,0x00,0x00,0xff,0x00,0x00,0x00,0xac,0x00,0x05,0x00, +0xb2,0x00,0x00,0x00,0x02,0x01,0x00,0x00,0x77,0x01,0x00,0x00, +0x87,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xfe,0x00,0x00,0x00, +0xff,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, +0x02,0x01,0x00,0x00,0xfd,0x00,0x00,0x00,0xfe,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0xfd,0x00,0x00,0x00,0xb0,0x00,0x05,0x00, +0xb2,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0x95,0x00,0x00,0x00, +0x77,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,0x07,0x01,0x00,0x00, +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x05,0x01,0x00,0x00, +0x06,0x01,0x00,0x00,0x07,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, +0x06,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x0b,0x01,0x00,0x00,0x95,0x00,0x00,0x00,0x77,0x01,0x00,0x00, +0x41,0x00,0x05,0x00,0xa6,0x00,0x00,0x00,0x0c,0x01,0x00,0x00, +0xa3,0x00,0x00,0x00,0x0b,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0x08,0x00,0x00,0x00,0x0d,0x01,0x00,0x00,0x0c,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x0f,0x01,0x00,0x00, +0xa7,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00, +0x10,0x01,0x00,0x00,0x0f,0x01,0x00,0x00,0x0d,0x01,0x00,0x00, +0x3e,0x00,0x03,0x00,0xa7,0x00,0x00,0x00,0x10,0x01,0x00,0x00, +0xf9,0x00,0x02,0x00,0x07,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, +0x07,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,0x8d,0x00,0x00,0x00, +0x8d,0x00,0x00,0x00,0xf9,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, +0xff,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xff,0x00,0x00,0x00, +0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x13,0x01,0x00,0x00, +0x77,0x01,0x00,0x00,0x2e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, +0xfc,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xfe,0x00,0x00,0x00, +0xaa,0x00,0x05,0x00,0xb2,0x00,0x00,0x00,0x15,0x01,0x00,0x00, +0x95,0x00,0x00,0x00,0x87,0x00,0x00,0x00,0xf7,0x00,0x03,0x00, +0x17,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, +0x15,0x01,0x00,0x00,0x16,0x01,0x00,0x00,0x17,0x01,0x00,0x00, +0xf8,0x00,0x02,0x00,0x16,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x1e,0x01,0x00,0x00,0x4f,0x01,0x00,0x00, +0x91,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0xa6,0x00,0x00,0x00, +0x1f,0x01,0x00,0x00,0xa3,0x00,0x00,0x00,0x22,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x20,0x01,0x00,0x00, +0x1f,0x01,0x00,0x00,0x41,0x00,0x06,0x00,0x21,0x01,0x00,0x00, +0x22,0x01,0x00,0x00,0x1b,0x01,0x00,0x00,0x22,0x00,0x00,0x00, +0x1e,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x22,0x01,0x00,0x00, +0x20,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x17,0x01,0x00,0x00, +0xf8,0x00,0x02,0x00,0x17,0x01,0x00,0x00,0xfd,0x00,0x01,0x00, 0x38,0x00,0x01,0x00, }; -const uint64_t mul_mat_vec_q4_1_f32_f32_len = 4012; +const uint64_t mul_mat_vec_q4_1_f16_f32_len = 4192; -unsigned char mul_mat_vec_q4_k_f16_f32_data[] = { +unsigned char mul_mat_vec_q4_1_f32_f32_data[] = { 0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00, -0x0c,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, -0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x27,0x00,0x00,0x00, -0x11,0x00,0x02,0x00,0x51,0x11,0x00,0x00,0x11,0x00,0x02,0x00, -0x60,0x11,0x00,0x00,0x0b,0x00,0x06,0x00,0x01,0x00,0x00,0x00, -0x47,0x4c,0x53,0x4c,0x2e,0x73,0x74,0x64,0x2e,0x34,0x35,0x30, -0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00,0x00,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x0f,0x00,0x0d,0x00,0x05,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e,0x00,0x00,0x00,0x00, -0x11,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x4a,0x00,0x00,0x00, -0x66,0x00,0x00,0x00,0x93,0x00,0x00,0x00,0xbc,0x00,0x00,0x00, -0x30,0x02,0x00,0x00,0xd3,0x03,0x00,0x00,0x10,0x00,0x06,0x00, -0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x11,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x76,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, +0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x51,0x11,0x00,0x00, +0x11,0x00,0x02,0x00,0x60,0x11,0x00,0x00,0x0b,0x00,0x06,0x00, +0x01,0x00,0x00,0x00,0x47,0x4c,0x53,0x4c,0x2e,0x73,0x74,0x64, +0x2e,0x34,0x35,0x30,0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00, +0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0f,0x00,0x0e,0x00, +0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e, +0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x4f,0x00,0x00,0x00, +0x58,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x8a,0x00,0x00,0x00, +0x93,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0xdc,0x00,0x00,0x00, +0x1a,0x01,0x00,0x00,0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00, +0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x1c,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x1c,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x1d,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x14,0x00,0x00,0x00, +0x48,0x00,0x04,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x1e,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x03,0x00,0x1e,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x20,0x00,0x00,0x00, +0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x4f,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x56,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x18,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00, +0x56,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x56,0x00,0x00,0x00, 0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x03,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x56,0x00,0x00,0x00,0x03,0x00,0x00,0x00, 0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00, +0x56,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x56,0x00,0x00,0x00, 0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x56,0x00,0x00,0x00,0x06,0x00,0x00,0x00, 0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x18,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00, +0x56,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x56,0x00,0x00,0x00, 0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x09,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x56,0x00,0x00,0x00,0x09,0x00,0x00,0x00, 0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x18,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x28,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x18,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x4a,0x00,0x00,0x00, +0x56,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x28,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x56,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x86,0x00,0x00,0x00, 0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x66,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xb6,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xb7,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0xb8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xb8,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0xb8,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xb9,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x90,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0xba,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xba,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0xba,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xbc,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xbc,0x00,0x00,0x00, -0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x2d,0x02,0x00,0x00,0x06,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0x2e,0x02,0x00,0x00,0x00,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x2e,0x02,0x00,0x00, +0x8a,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x93,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, +0x1b,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xa0,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xd9,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x48,0x00,0x04,0x00,0xda,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xda,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0x2e,0x02,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x30,0x02,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x30,0x02,0x00,0x00, +0x47,0x00,0x03,0x00,0xda,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xdc,0x00,0x00,0x00,0x22,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xdc,0x00,0x00,0x00, 0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xd0,0x03,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0xd1,0x03,0x00,0x00,0x00,0x00,0x00,0x00, -0x19,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xd1,0x03,0x00,0x00, +0x17,0x01,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x48,0x00,0x04,0x00,0x18,0x01,0x00,0x00,0x00,0x00,0x00,0x00, +0x19,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x01,0x00,0x00, 0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0xd1,0x03,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xd3,0x03,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xd3,0x03,0x00,0x00, +0x47,0x00,0x03,0x00,0x18,0x01,0x00,0x00,0x02,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x1a,0x01,0x00,0x00,0x22,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x1a,0x01,0x00,0x00, 0x21,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xdb,0x03,0x00,0x00,0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00, -0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00, -0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x17,0x00,0x04,0x00,0x0f,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x10,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x10,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x12,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x13,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x1e,0x00,0x0d,0x00, -0x18,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x21,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x22,0x01,0x00,0x00,0x0b,0x00,0x00,0x00, +0x19,0x00,0x00,0x00,0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00, +0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x15,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0x08,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x17,0x00,0x04,0x00,0x09,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x16,0x00,0x03,0x00, +0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x15,0x00,0x04,0x00, +0x19,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, +0x10,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x19,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x1e,0x00,0x05,0x00, +0x1c,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x1b,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x1d,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x1e,0x00,0x00,0x00, +0x1d,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x1f,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0x1f,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x15,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x20,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x26,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x2e,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, +0x36,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x38,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x19,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x3d,0x00,0x00,0x00, +0x0f,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, +0x41,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x17,0x00,0x04,0x00, +0x4d,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x4e,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x4d,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x4e,0x00,0x00,0x00, +0x4f,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x51,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x1e,0x00,0x0d,0x00,0x56,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x19,0x00,0x00,0x00, -0x1a,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x15,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x1d,0x00,0x00,0x00, -0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x0a,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x2e,0x00,0x00,0x00, -0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x34,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x40,0x00,0x00,0x00, -0x05,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x45,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x10,0x00,0x00,0x00,0x4a,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4b,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,0x00,0x01,0x00,0x00, -0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00,0x66,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x57,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x56,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x57,0x00,0x00,0x00,0x58,0x00,0x00,0x00, +0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, +0x59,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x5a,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x65,0x00,0x00,0x00, +0x0a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, +0x6b,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x21,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x07,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x7c,0x00,0x00,0x00, +0x05,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, +0x81,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0x4e,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x87,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x4e,0x00,0x00,0x00, +0x8a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x4e,0x00,0x00,0x00,0x93,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xa0,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, +0xa1,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0xa0,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0xa2,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0xa1,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xa2,0x00,0x00,0x00, +0xa3,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x08,0x00,0x00,0x00,0xa5,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0xa6,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x14,0x00,0x02,0x00,0xb2,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xc1,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0xd9,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xda,0x00,0x00,0x00, +0xd9,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xdb,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0xda,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0xdb,0x00,0x00,0x00,0xdc,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0xe2,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xf8,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x34,0x00,0x06,0x00, +0x06,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,0x86,0x00,0x00,0x00, +0xa0,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, +0x17,0x01,0x00,0x00,0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, +0x18,0x01,0x00,0x00,0x17,0x01,0x00,0x00,0x20,0x00,0x04,0x00, +0x19,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x18,0x01,0x00,0x00, +0x3b,0x00,0x04,0x00,0x19,0x01,0x00,0x00,0x1a,0x01,0x00,0x00, +0x0c,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x21,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x33,0x00,0x06,0x00, +0x4d,0x00,0x00,0x00,0x22,0x01,0x00,0x00,0x21,0x01,0x00,0x00, +0x50,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x36,0x00,0x05,0x00, +0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x03,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x51,0x00,0x00,0x00,0x88,0x00,0x00,0x00, +0x86,0x00,0x00,0x00,0x87,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x89,0x00,0x00,0x00,0x88,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x51,0x00,0x00,0x00,0x8b,0x00,0x00,0x00, +0x8a,0x00,0x00,0x00,0x87,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x8c,0x00,0x00,0x00,0x8b,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x51,0x00,0x00,0x00,0x8e,0x00,0x00,0x00, +0x86,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x8f,0x00,0x00,0x00,0x8e,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x90,0x00,0x00,0x00, +0x8c,0x00,0x00,0x00,0x8f,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x91,0x00,0x00,0x00,0x89,0x00,0x00,0x00, +0x90,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x51,0x00,0x00,0x00, +0x94,0x00,0x00,0x00,0x93,0x00,0x00,0x00,0x87,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x95,0x00,0x00,0x00, +0x94,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x51,0x00,0x00,0x00, +0x2a,0x01,0x00,0x00,0x4f,0x00,0x00,0x00,0x50,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x2b,0x01,0x00,0x00, +0x2a,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x5a,0x00,0x00,0x00, +0x2d,0x01,0x00,0x00,0x58,0x00,0x00,0x00,0x59,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x2e,0x01,0x00,0x00, +0x2d,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x2f,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,0x2e,0x01,0x00,0x00, +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x33,0x01,0x00,0x00, +0x2b,0x01,0x00,0x00,0x2e,0x01,0x00,0x00,0x41,0x00,0x05,0x00, +0x5a,0x00,0x00,0x00,0x35,0x01,0x00,0x00,0x58,0x00,0x00,0x00, +0x65,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x36,0x01,0x00,0x00,0x35,0x01,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x37,0x01,0x00,0x00,0x2f,0x01,0x00,0x00, +0x36,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x5a,0x00,0x00,0x00, +0x39,0x01,0x00,0x00,0x58,0x00,0x00,0x00,0x6b,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x3a,0x01,0x00,0x00, +0x39,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x3b,0x01,0x00,0x00,0x33,0x01,0x00,0x00,0x3a,0x01,0x00,0x00, +0x41,0x00,0x05,0x00,0x5a,0x00,0x00,0x00,0x3d,0x01,0x00,0x00, +0x58,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x3e,0x01,0x00,0x00,0x3d,0x01,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3f,0x01,0x00,0x00, +0x37,0x01,0x00,0x00,0x3e,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x41,0x01,0x00,0x00,0x3f,0x01,0x00,0x00, +0x3b,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x5a,0x00,0x00,0x00, +0x43,0x01,0x00,0x00,0x58,0x00,0x00,0x00,0x41,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x44,0x01,0x00,0x00, +0x43,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x45,0x01,0x00,0x00,0x41,0x01,0x00,0x00,0x44,0x01,0x00,0x00, +0x41,0x00,0x05,0x00,0x5a,0x00,0x00,0x00,0x47,0x01,0x00,0x00, +0x58,0x00,0x00,0x00,0x7c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x48,0x01,0x00,0x00,0x47,0x01,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x49,0x01,0x00,0x00, +0x2b,0x01,0x00,0x00,0x48,0x01,0x00,0x00,0x41,0x00,0x05,0x00, +0x5a,0x00,0x00,0x00,0x4b,0x01,0x00,0x00,0x58,0x00,0x00,0x00, +0x81,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x4c,0x01,0x00,0x00,0x4b,0x01,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x4d,0x01,0x00,0x00,0x2b,0x01,0x00,0x00, +0x4c,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0xa6,0x00,0x00,0x00, +0xa7,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0x95,0x00,0x00,0x00, +0x3e,0x00,0x03,0x00,0xa7,0x00,0x00,0x00,0xa5,0x00,0x00,0x00, +0xf9,0x00,0x02,0x00,0xa9,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xa9,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00, +0x74,0x01,0x00,0x00,0x87,0x00,0x00,0x00,0x05,0x00,0x00,0x00, +0xf7,0x00,0x00,0x00,0xaa,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0x5a,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0x58,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xb0,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xb1,0x00,0x00,0x00,0xb0,0x00,0x00,0x00, +0xa0,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0xb2,0x00,0x00,0x00, +0xb3,0x00,0x00,0x00,0x74,0x01,0x00,0x00,0xb1,0x00,0x00,0x00, +0xf6,0x00,0x04,0x00,0xab,0x00,0x00,0x00,0xaa,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xb3,0x00,0x00,0x00, +0xaa,0x00,0x00,0x00,0xab,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xaa,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xb6,0x00,0x00,0x00,0x74,0x01,0x00,0x00,0xa0,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb8,0x00,0x00,0x00, +0x8d,0x00,0x00,0x00,0x95,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0xb6,0x00,0x00,0x00, +0xb8,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xbe,0x00,0x00,0x00,0x91,0x00,0x00,0x00,0xb0,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc0,0x00,0x00,0x00, +0xbe,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xc2,0x00,0x00,0x00,0xc0,0x00,0x00,0x00, +0xc1,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xc5,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0xc1,0x00,0x00,0x00, +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc6,0x00,0x00,0x00, +0xc5,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,0x82,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,0xb9,0x00,0x00,0x00, +0xc5,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xcf,0x00,0x00,0x00,0x45,0x01,0x00,0x00,0xc1,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x55,0x01,0x00,0x00, +0xcf,0x00,0x00,0x00,0xc2,0x00,0x00,0x00,0x41,0x00,0x07,0x00, +0x26,0x00,0x00,0x00,0x56,0x01,0x00,0x00,0x20,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x55,0x01,0x00,0x00,0x22,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x57,0x01,0x00,0x00, +0x56,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0x58,0x01,0x00,0x00,0x57,0x01,0x00,0x00,0x41,0x00,0x07,0x00, +0x26,0x00,0x00,0x00,0x5c,0x01,0x00,0x00,0x20,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x55,0x01,0x00,0x00,0x2e,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x5d,0x01,0x00,0x00, +0x5c,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0x5e,0x01,0x00,0x00,0x5d,0x01,0x00,0x00,0x41,0x00,0x08,0x00, +0x38,0x00,0x00,0x00,0x63,0x01,0x00,0x00,0x20,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x55,0x01,0x00,0x00,0x36,0x00,0x00,0x00, +0xc6,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x19,0x00,0x00,0x00, +0x64,0x01,0x00,0x00,0x63,0x01,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x65,0x01,0x00,0x00,0x64,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x67,0x01,0x00,0x00, +0x65,0x01,0x00,0x00,0x3d,0x00,0x00,0x00,0x70,0x00,0x04,0x00, +0x08,0x00,0x00,0x00,0x68,0x01,0x00,0x00,0x67,0x01,0x00,0x00, +0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6a,0x01,0x00,0x00, +0x65,0x01,0x00,0x00,0x41,0x00,0x00,0x00,0x70,0x00,0x04,0x00, +0x08,0x00,0x00,0x00,0x6b,0x01,0x00,0x00,0x6a,0x01,0x00,0x00, +0x50,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0x6c,0x01,0x00,0x00, +0x68,0x01,0x00,0x00,0x6b,0x01,0x00,0x00,0x8e,0x00,0x05,0x00, +0x09,0x00,0x00,0x00,0x6e,0x01,0x00,0x00,0x6c,0x01,0x00,0x00, +0x58,0x01,0x00,0x00,0x50,0x00,0x05,0x00,0x09,0x00,0x00,0x00, +0x70,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,0x5e,0x01,0x00,0x00, +0x81,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0x71,0x01,0x00,0x00, +0x6e,0x01,0x00,0x00,0x70,0x01,0x00,0x00,0x51,0x00,0x05,0x00, +0x08,0x00,0x00,0x00,0xd8,0x00,0x00,0x00,0x71,0x01,0x00,0x00, +0x00,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xdf,0x00,0x00,0x00,0x49,0x01,0x00,0x00,0xcb,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe1,0x00,0x00,0x00, +0xdf,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,0x41,0x00,0x06,0x00, +0xe2,0x00,0x00,0x00,0xe3,0x00,0x00,0x00,0xdc,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0xe1,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x08,0x00,0x00,0x00,0xe4,0x00,0x00,0x00,0xe3,0x00,0x00,0x00, +0x51,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0xe7,0x00,0x00,0x00, +0x71,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xed,0x00,0x00,0x00,0xe1,0x00,0x00,0x00, +0x1a,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xe2,0x00,0x00,0x00, +0xee,0x00,0x00,0x00,0xdc,0x00,0x00,0x00,0x22,0x00,0x00,0x00, +0xed,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0xef,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0x85,0x00,0x05,0x00, +0x08,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0xe7,0x00,0x00,0x00, +0xef,0x00,0x00,0x00,0x0c,0x00,0x08,0x00,0x08,0x00,0x00,0x00, +0xf1,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0xd8,0x00,0x00,0x00,0xe4,0x00,0x00,0x00,0xf0,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xf3,0x00,0x00,0x00, +0xa7,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00, +0xf4,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,0xf1,0x00,0x00,0x00, +0x3e,0x00,0x03,0x00,0xa7,0x00,0x00,0x00,0xf4,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf7,0x00,0x00,0x00, +0x74,0x01,0x00,0x00,0x8d,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, +0xa9,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xab,0x00,0x00,0x00, +0xe0,0x00,0x04,0x00,0x8d,0x00,0x00,0x00,0x8d,0x00,0x00,0x00, +0xf8,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xfb,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0xfb,0x00,0x00,0x00,0xf5,0x00,0x07,0x00, +0x06,0x00,0x00,0x00,0x75,0x01,0x00,0x00,0xfa,0x00,0x00,0x00, +0xab,0x00,0x00,0x00,0x12,0x01,0x00,0x00,0xfe,0x00,0x00,0x00, +0xac,0x00,0x05,0x00,0xb2,0x00,0x00,0x00,0x01,0x01,0x00,0x00, +0x75,0x01,0x00,0x00,0x87,0x00,0x00,0x00,0xf6,0x00,0x04,0x00, +0xfd,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0xfa,0x00,0x04,0x00,0x01,0x01,0x00,0x00,0xfc,0x00,0x00,0x00, +0xfd,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xfc,0x00,0x00,0x00, +0xb0,0x00,0x05,0x00,0xb2,0x00,0x00,0x00,0x04,0x01,0x00,0x00, +0x95,0x00,0x00,0x00,0x75,0x01,0x00,0x00,0xf7,0x00,0x03,0x00, +0x06,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, +0x04,0x01,0x00,0x00,0x05,0x01,0x00,0x00,0x06,0x01,0x00,0x00, +0xf8,0x00,0x02,0x00,0x05,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x0a,0x01,0x00,0x00,0x95,0x00,0x00,0x00, +0x75,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0xa6,0x00,0x00,0x00, +0x0b,0x01,0x00,0x00,0xa3,0x00,0x00,0x00,0x0a,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x0c,0x01,0x00,0x00, +0x0b,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0x0e,0x01,0x00,0x00,0xa7,0x00,0x00,0x00,0x81,0x00,0x05,0x00, +0x08,0x00,0x00,0x00,0x0f,0x01,0x00,0x00,0x0e,0x01,0x00,0x00, +0x0c,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xa7,0x00,0x00,0x00, +0x0f,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x06,0x01,0x00,0x00, +0xf8,0x00,0x02,0x00,0x06,0x01,0x00,0x00,0xe0,0x00,0x04,0x00, +0x8d,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,0xf8,0x00,0x00,0x00, +0xf9,0x00,0x02,0x00,0xfe,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xfe,0x00,0x00,0x00,0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x12,0x01,0x00,0x00,0x75,0x01,0x00,0x00,0x2e,0x00,0x00,0x00, +0xf9,0x00,0x02,0x00,0xfb,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xfd,0x00,0x00,0x00,0xaa,0x00,0x05,0x00,0xb2,0x00,0x00,0x00, +0x14,0x01,0x00,0x00,0x95,0x00,0x00,0x00,0x87,0x00,0x00,0x00, +0xf7,0x00,0x03,0x00,0x16,0x01,0x00,0x00,0x00,0x00,0x00,0x00, +0xfa,0x00,0x04,0x00,0x14,0x01,0x00,0x00,0x15,0x01,0x00,0x00, +0x16,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x15,0x01,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1d,0x01,0x00,0x00, +0x4d,0x01,0x00,0x00,0x91,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0xa6,0x00,0x00,0x00,0x1e,0x01,0x00,0x00,0xa3,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0x1f,0x01,0x00,0x00,0x1e,0x01,0x00,0x00,0x41,0x00,0x06,0x00, +0xe2,0x00,0x00,0x00,0x20,0x01,0x00,0x00,0x1a,0x01,0x00,0x00, +0x22,0x00,0x00,0x00,0x1d,0x01,0x00,0x00,0x3e,0x00,0x03,0x00, +0x20,0x01,0x00,0x00,0x1f,0x01,0x00,0x00,0xf9,0x00,0x02,0x00, +0x16,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x16,0x01,0x00,0x00, +0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00, +}; +const uint64_t mul_mat_vec_q4_1_f32_f32_len = 4160; + +unsigned char mul_mat_vec_q4_k_f16_f32_data[] = { +0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00, +0x13,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, +0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x27,0x00,0x00,0x00, +0x11,0x00,0x02,0x00,0x51,0x11,0x00,0x00,0x11,0x00,0x02,0x00, +0x60,0x11,0x00,0x00,0x0b,0x00,0x06,0x00,0x01,0x00,0x00,0x00, +0x47,0x4c,0x53,0x4c,0x2e,0x73,0x74,0x64,0x2e,0x34,0x35,0x30, +0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00,0x00,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x0f,0x00,0x0e,0x00,0x05,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e,0x00,0x00,0x00,0x00, +0x11,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x4a,0x00,0x00,0x00, +0x4e,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x9a,0x00,0x00,0x00, +0xc3,0x00,0x00,0x00,0x37,0x02,0x00,0x00,0xda,0x03,0x00,0x00, +0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x11,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x18,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00, +0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x18,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x07,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x18,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00, +0x09,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x0a,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0x18,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x4a,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x4e,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x6e,0x00,0x00,0x00, +0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xbd,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xbe,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xbf,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0xbf,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0xbf,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x10,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xc0,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x90,0x00,0x00,0x00,0x48,0x00,0x04,0x00, +0xc1,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0xc1,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xc3,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x21,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x34,0x02,0x00,0x00, +0x06,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x48,0x00,0x04,0x00, +0x35,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x35,0x02,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0x35,0x02,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x37,0x02,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x37,0x02,0x00,0x00,0x21,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xd7,0x03,0x00,0x00, +0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00, +0xd8,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0xd8,0x03,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0xd8,0x03,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xda,0x03,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xda,0x03,0x00,0x00,0x21,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xe2,0x03,0x00,0x00, +0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x13,0x00,0x02,0x00, +0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x17,0x00,0x04,0x00, +0x0f,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x10,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x0f,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00, +0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x13,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x1e,0x00,0x0d,0x00,0x18,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x19,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, +0x09,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x1d,0x00,0x00,0x00,0x09,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x28,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,0x09,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x00,0x00, +0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x3b,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x05,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x45,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00, +0x4a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00,0x4e,0x00,0x00,0x00, 0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x69,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x85,0x00,0x00,0x00, +0x51,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x64,0x00,0x00,0x00, +0x00,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00, +0x6e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x8c,0x00,0x00,0x00, 0x20,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x8b,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x16,0x00,0x03,0x00, -0x90,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, -0x91,0x00,0x00,0x00,0x90,0x00,0x00,0x00,0x85,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x92,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x91,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x92,0x00,0x00,0x00, -0x93,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x94,0x00,0x00,0x00,0x10,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0x99,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x9a,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x90,0x00,0x00,0x00,0x14,0x00,0x02,0x00, -0xa5,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xae,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x16,0x00,0x03,0x00, -0xb2,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x17,0x00,0x04,0x00, -0xb3,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x15,0x00,0x04,0x00,0xb4,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x92,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x16,0x00,0x03,0x00, +0x97,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, +0x98,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x8c,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x99,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x98,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x99,0x00,0x00,0x00, +0x9a,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,0x10,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0xa0,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xa1,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x14,0x00,0x02,0x00, +0xac,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xb5,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x16,0x00,0x03,0x00, +0xb9,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x17,0x00,0x04,0x00, +0xba,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x15,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0x08,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xb5,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, -0xb6,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,0xb5,0x00,0x00,0x00, -0x1c,0x00,0x04,0x00,0xb7,0x00,0x00,0x00,0xb4,0x00,0x00,0x00, -0xae,0x00,0x00,0x00,0x1e,0x00,0x05,0x00,0xb8,0x00,0x00,0x00, -0xb3,0x00,0x00,0x00,0xb6,0x00,0x00,0x00,0xb7,0x00,0x00,0x00, -0x1d,0x00,0x03,0x00,0xb9,0x00,0x00,0x00,0xb8,0x00,0x00,0x00, -0x1e,0x00,0x03,0x00,0xba,0x00,0x00,0x00,0xb9,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0xba,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xbb,0x00,0x00,0x00, -0xbc,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0xc0,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xb2,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xd0,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xd3,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0xd8,0x00,0x00,0x00,0x3f,0x00,0x00,0x00, -0x15,0x00,0x04,0x00,0xda,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0xbc,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, +0xbd,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0xbc,0x00,0x00,0x00, +0x1c,0x00,0x04,0x00,0xbe,0x00,0x00,0x00,0xbb,0x00,0x00,0x00, +0xb5,0x00,0x00,0x00,0x1e,0x00,0x05,0x00,0xbf,0x00,0x00,0x00, +0xba,0x00,0x00,0x00,0xbd,0x00,0x00,0x00,0xbe,0x00,0x00,0x00, +0x1d,0x00,0x03,0x00,0xc0,0x00,0x00,0x00,0xbf,0x00,0x00,0x00, +0x1e,0x00,0x03,0x00,0xc1,0x00,0x00,0x00,0xc0,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0xc2,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0xc1,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xc2,0x00,0x00,0x00, +0xc3,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0xc7,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xb9,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xd7,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xda,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0x3f,0x00,0x00,0x00, +0x15,0x00,0x04,0x00,0xe1,0x00,0x00,0x00,0x08,0x00,0x00,0x00, 0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xff,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x0e,0x01,0x00,0x00,0x08,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x14,0x01,0x00,0x00, +0x06,0x01,0x00,0x00,0x05,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x15,0x01,0x00,0x00,0x08,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x1b,0x01,0x00,0x00, 0x0f,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x1f,0x01,0x00,0x00,0xc0,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x21,0x01,0x00,0x00,0x02,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x2c,0x01,0x00,0x00, +0x26,0x01,0x00,0x00,0xc0,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x28,0x01,0x00,0x00,0x02,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x33,0x01,0x00,0x00, 0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xa5,0x01,0x00,0x00,0x03,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xe3,0x01,0x00,0x00,0x41,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xf1,0x01,0x00,0x00, +0xac,0x01,0x00,0x00,0x03,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xea,0x01,0x00,0x00,0x41,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xf8,0x01,0x00,0x00, 0x42,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xff,0x01,0x00,0x00,0x43,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, -0x2d,0x02,0x00,0x00,0xb2,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, -0x2e,0x02,0x00,0x00,0x2d,0x02,0x00,0x00,0x20,0x00,0x04,0x00, -0x2f,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,0x2e,0x02,0x00,0x00, -0x3b,0x00,0x04,0x00,0x2f,0x02,0x00,0x00,0x30,0x02,0x00,0x00, +0x06,0x02,0x00,0x00,0x43,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, +0x34,0x02,0x00,0x00,0xb9,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, +0x35,0x02,0x00,0x00,0x34,0x02,0x00,0x00,0x20,0x00,0x04,0x00, +0x36,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,0x35,0x02,0x00,0x00, +0x3b,0x00,0x04,0x00,0x36,0x02,0x00,0x00,0x37,0x02,0x00,0x00, 0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x69,0x02,0x00,0x00,0x21,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x75,0x02,0x00,0x00,0x22,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x81,0x02,0x00,0x00, +0x70,0x02,0x00,0x00,0x21,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x7c,0x02,0x00,0x00,0x22,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x88,0x02,0x00,0x00, 0x23,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xb2,0x03,0x00,0x00,0x08,0x01,0x00,0x00,0x1d,0x00,0x03,0x00, -0xd0,0x03,0x00,0x00,0x90,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, -0xd1,0x03,0x00,0x00,0xd0,0x03,0x00,0x00,0x20,0x00,0x04,0x00, -0xd2,0x03,0x00,0x00,0x0c,0x00,0x00,0x00,0xd1,0x03,0x00,0x00, -0x3b,0x00,0x04,0x00,0xd2,0x03,0x00,0x00,0xd3,0x03,0x00,0x00, -0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xd9,0x03,0x00,0x00, -0x0c,0x00,0x00,0x00,0x90,0x00,0x00,0x00,0x2c,0x00,0x06,0x00, -0x0f,0x00,0x00,0x00,0xdb,0x03,0x00,0x00,0x85,0x00,0x00,0x00, +0xb9,0x03,0x00,0x00,0x08,0x01,0x00,0x00,0x1d,0x00,0x03,0x00, +0xd7,0x03,0x00,0x00,0x97,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, +0xd8,0x03,0x00,0x00,0xd7,0x03,0x00,0x00,0x20,0x00,0x04,0x00, +0xd9,0x03,0x00,0x00,0x0c,0x00,0x00,0x00,0xd8,0x03,0x00,0x00, +0x3b,0x00,0x04,0x00,0xd9,0x03,0x00,0x00,0xda,0x03,0x00,0x00, +0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xe0,0x03,0x00,0x00, +0x0c,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x2c,0x00,0x06,0x00, +0x0f,0x00,0x00,0x00,0xe2,0x03,0x00,0x00,0x8c,0x00,0x00,0x00, 0x12,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x36,0x00,0x05,0x00, 0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x03,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00, 0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00,0x4c,0x00,0x00,0x00, 0x4a,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, 0x06,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,0x4c,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00,0xe3,0x03,0x00,0x00, -0x11,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xe4,0x03,0x00,0x00,0xe3,0x03,0x00,0x00, -0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00,0xe6,0x03,0x00,0x00, -0x1a,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xe7,0x03,0x00,0x00,0xe6,0x03,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe8,0x03,0x00,0x00, -0xe4,0x03,0x00,0x00,0xe7,0x03,0x00,0x00,0x89,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xec,0x03,0x00,0x00,0xe4,0x03,0x00,0x00, -0xe7,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00, -0xee,0x03,0x00,0x00,0x1a,0x00,0x00,0x00,0x28,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xef,0x03,0x00,0x00, -0xee,0x03,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xf0,0x03,0x00,0x00,0xe8,0x03,0x00,0x00,0xef,0x03,0x00,0x00, -0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00,0xf2,0x03,0x00,0x00, -0x1a,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xf3,0x03,0x00,0x00,0xf2,0x03,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf4,0x03,0x00,0x00, -0xec,0x03,0x00,0x00,0xf3,0x03,0x00,0x00,0x41,0x00,0x05,0x00, -0x1d,0x00,0x00,0x00,0xf6,0x03,0x00,0x00,0x1a,0x00,0x00,0x00, -0x34,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xf7,0x03,0x00,0x00,0xf6,0x03,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xf8,0x03,0x00,0x00,0xf0,0x03,0x00,0x00, -0xf7,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xfa,0x03,0x00,0x00,0xf8,0x03,0x00,0x00,0xf4,0x03,0x00,0x00, -0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00,0xfc,0x03,0x00,0x00, -0x1a,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xfd,0x03,0x00,0x00,0xfc,0x03,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfe,0x03,0x00,0x00, -0xfa,0x03,0x00,0x00,0xfd,0x03,0x00,0x00,0x41,0x00,0x05,0x00, -0x1d,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x1a,0x00,0x00,0x00, -0x40,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x01,0x04,0x00,0x00,0x00,0x04,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x02,0x04,0x00,0x00,0xe4,0x03,0x00,0x00, -0x01,0x04,0x00,0x00,0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00, -0x04,0x04,0x00,0x00,0x1a,0x00,0x00,0x00,0x45,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x05,0x04,0x00,0x00, -0x04,0x04,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x06,0x04,0x00,0x00,0xe4,0x03,0x00,0x00,0x05,0x04,0x00,0x00, -0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00,0x5a,0x00,0x00,0x00, -0x1a,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x5b,0x00,0x00,0x00,0x5a,0x00,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5d,0x00,0x00,0x00, -0x5b,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,0x86,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0xfe,0x03,0x00,0x00, -0x5c,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x63,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,0x5d,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x64,0x00,0x00,0x00, -0x60,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x41,0x00,0x05,0x00, -0x13,0x00,0x00,0x00,0x67,0x00,0x00,0x00,0x66,0x00,0x00,0x00, -0x4b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x68,0x00,0x00,0x00,0x67,0x00,0x00,0x00,0x86,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x6a,0x00,0x00,0x00,0x68,0x00,0x00,0x00, -0x69,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x6e,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x69,0x00,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x72,0x00,0x00,0x00, -0x6a,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x76,0x00,0x00,0x00,0x71,0x00,0x00,0x00, -0x72,0x00,0x00,0x00,0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x77,0x00,0x00,0x00,0x6a,0x00,0x00,0x00,0x76,0x00,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7a,0x00,0x00,0x00, -0x72,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0x89,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,0x72,0x00,0x00,0x00, -0x69,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x80,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0x77,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x82,0x00,0x00,0x00, -0x80,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x83,0x00,0x00,0x00,0x71,0x00,0x00,0x00, -0x82,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x87,0x00,0x00,0x00,0x85,0x00,0x00,0x00,0x7a,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x89,0x00,0x00,0x00, -0x87,0x00,0x00,0x00,0x83,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,0x8b,0x00,0x00,0x00, -0x7a,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x8f,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,0x83,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x96,0x00,0x00,0x00, -0x94,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x98,0x00,0x00,0x00,0x96,0x00,0x00,0x00, -0x6a,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x9a,0x00,0x00,0x00, -0x9b,0x00,0x00,0x00,0x93,0x00,0x00,0x00,0x98,0x00,0x00,0x00, -0x3e,0x00,0x03,0x00,0x9b,0x00,0x00,0x00,0x99,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0x9e,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0x9e,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00, -0x07,0x04,0x00,0x00,0x6e,0x00,0x00,0x00,0x05,0x00,0x00,0x00, -0xb1,0x03,0x00,0x00,0x9f,0x00,0x00,0x00,0xb0,0x00,0x05,0x00, -0xa5,0x00,0x00,0x00,0xa6,0x00,0x00,0x00,0x07,0x04,0x00,0x00, -0x5d,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xa0,0x00,0x00,0x00, -0x9f,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, -0xa6,0x00,0x00,0x00,0x9f,0x00,0x00,0x00,0xa0,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0x9f,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,0x07,0x04,0x00,0x00, -0x5c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xab,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,0x8f,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xaf,0x00,0x00,0x00, -0xab,0x00,0x00,0x00,0xae,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0x64,0x00,0x00,0x00, -0x07,0x04,0x00,0x00,0x41,0x00,0x08,0x00,0xc0,0x00,0x00,0x00, -0xc1,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0xbf,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x4b,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb2,0x00,0x00,0x00,0xc2,0x00,0x00,0x00, -0xc1,0x00,0x00,0x00,0x73,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0xc3,0x00,0x00,0x00,0xc2,0x00,0x00,0x00,0x41,0x00,0x08,0x00, -0xc0,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0xbc,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0x12,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xb2,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00,0x4f,0x00,0x00,0x00, +0x4e,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x4f,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00,0x52,0x00,0x00,0x00, +0x4a,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x53,0x00,0x00,0x00,0x52,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x54,0x00,0x00,0x00, +0x50,0x00,0x00,0x00,0x53,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x4d,0x00,0x00,0x00, +0x54,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00, +0xea,0x03,0x00,0x00,0x11,0x00,0x00,0x00,0x12,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xeb,0x03,0x00,0x00, +0xea,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00, +0xed,0x03,0x00,0x00,0x1a,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xee,0x03,0x00,0x00, +0xed,0x03,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xef,0x03,0x00,0x00,0xeb,0x03,0x00,0x00,0xee,0x03,0x00,0x00, +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf3,0x03,0x00,0x00, +0xeb,0x03,0x00,0x00,0xee,0x03,0x00,0x00,0x41,0x00,0x05,0x00, +0x1d,0x00,0x00,0x00,0xf5,0x03,0x00,0x00,0x1a,0x00,0x00,0x00, +0x28,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xf6,0x03,0x00,0x00,0xf5,0x03,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xf7,0x03,0x00,0x00,0xef,0x03,0x00,0x00, +0xf6,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00, +0xf9,0x03,0x00,0x00,0x1a,0x00,0x00,0x00,0x2e,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xfa,0x03,0x00,0x00, +0xf9,0x03,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xfb,0x03,0x00,0x00,0xf3,0x03,0x00,0x00,0xfa,0x03,0x00,0x00, +0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00,0xfd,0x03,0x00,0x00, +0x1a,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xfe,0x03,0x00,0x00,0xfd,0x03,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xff,0x03,0x00,0x00, +0xf7,0x03,0x00,0x00,0xfe,0x03,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x01,0x04,0x00,0x00,0xff,0x03,0x00,0x00, +0xfb,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00, +0x03,0x04,0x00,0x00,0x1a,0x00,0x00,0x00,0x3b,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x04,0x04,0x00,0x00, +0x03,0x04,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x05,0x04,0x00,0x00,0x01,0x04,0x00,0x00,0x04,0x04,0x00,0x00, +0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00,0x07,0x04,0x00,0x00, +0x1a,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x08,0x04,0x00,0x00,0x07,0x04,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x09,0x04,0x00,0x00, +0xeb,0x03,0x00,0x00,0x08,0x04,0x00,0x00,0x41,0x00,0x05,0x00, +0x1d,0x00,0x00,0x00,0x0b,0x04,0x00,0x00,0x1a,0x00,0x00,0x00, +0x45,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x0c,0x04,0x00,0x00,0x0b,0x04,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x0d,0x04,0x00,0x00,0xeb,0x03,0x00,0x00, +0x0c,0x04,0x00,0x00,0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00, +0x62,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x63,0x00,0x00,0x00, +0x62,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x65,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x64,0x00,0x00,0x00, +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x68,0x00,0x00,0x00, +0x05,0x04,0x00,0x00,0x64,0x00,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,0x55,0x00,0x00,0x00, +0x65,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x6c,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x6b,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00,0x6f,0x00,0x00,0x00, +0x6e,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x6f,0x00,0x00,0x00, +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x71,0x00,0x00,0x00, +0x70,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0x89,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x75,0x00,0x00,0x00,0x70,0x00,0x00,0x00, +0x51,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x79,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x78,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7d,0x00,0x00,0x00, +0x78,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x82,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x71,0x00,0x00,0x00, +0x7d,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x81,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x51,0x00,0x00,0x00, +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x84,0x00,0x00,0x00, +0x79,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x87,0x00,0x00,0x00,0x51,0x00,0x00,0x00, +0x7e,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x89,0x00,0x00,0x00,0x87,0x00,0x00,0x00,0x84,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8a,0x00,0x00,0x00, +0x78,0x00,0x00,0x00,0x89,0x00,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,0x8c,0x00,0x00,0x00, +0x81,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x90,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,0x8a,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x94,0x00,0x00,0x00, +0x92,0x00,0x00,0x00,0x81,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x96,0x00,0x00,0x00,0x94,0x00,0x00,0x00, +0x8a,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x9d,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,0x75,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9f,0x00,0x00,0x00, +0x9d,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0xa1,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,0x9a,0x00,0x00,0x00, +0x9f,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0xa2,0x00,0x00,0x00, +0xa0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xa5,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0xa5,0x00,0x00,0x00,0xf5,0x00,0x07,0x00, +0x06,0x00,0x00,0x00,0x0e,0x04,0x00,0x00,0x75,0x00,0x00,0x00, +0x05,0x00,0x00,0x00,0xb8,0x03,0x00,0x00,0xa6,0x00,0x00,0x00, +0xb0,0x00,0x05,0x00,0xac,0x00,0x00,0x00,0xad,0x00,0x00,0x00, +0x0e,0x04,0x00,0x00,0x65,0x00,0x00,0x00,0xf6,0x00,0x04,0x00, +0xa7,0x00,0x00,0x00,0xa6,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0xfa,0x00,0x04,0x00,0xad,0x00,0x00,0x00,0xa6,0x00,0x00,0x00, +0xa7,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xa6,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb0,0x00,0x00,0x00, +0x0e,0x04,0x00,0x00,0x64,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,0xb0,0x00,0x00,0x00, +0x96,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xb6,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,0xb5,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc6,0x00,0x00,0x00, +0x6c,0x00,0x00,0x00,0x0e,0x04,0x00,0x00,0x41,0x00,0x08,0x00, +0xc7,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0xc3,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0x4b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xb9,0x00,0x00,0x00, 0xc9,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x73,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0xca,0x00,0x00,0x00,0xc9,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd2,0x00,0x00,0x00, -0x7a,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0x41,0x00,0x08,0x00, -0xd3,0x00,0x00,0x00,0xd4,0x00,0x00,0x00,0xbc,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0xd0,0x00,0x00,0x00, -0xd2,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00, -0xd5,0x00,0x00,0x00,0xd4,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,0xd5,0x00,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xd7,0x00,0x00,0x00, -0xd6,0x00,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0xd9,0x00,0x00,0x00,0xd7,0x00,0x00,0x00,0xd8,0x00,0x00,0x00, -0x72,0x00,0x04,0x00,0xda,0x00,0x00,0x00,0xdb,0x00,0x00,0x00, -0xd9,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0xb4,0x00,0x00,0x00, -0xdc,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xe3,0x00,0x00,0x00,0xd2,0x00,0x00,0x00, -0x12,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xd3,0x00,0x00,0x00, -0xe4,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0xbf,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0xe3,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00,0xe5,0x00,0x00,0x00, -0xe4,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xe6,0x00,0x00,0x00,0xe5,0x00,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,0xe6,0x00,0x00,0x00, -0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xe8,0x00,0x00,0x00, -0xe7,0x00,0x00,0x00,0xd8,0x00,0x00,0x00,0x72,0x00,0x04,0x00, -0xda,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,0xe8,0x00,0x00,0x00, -0x7c,0x00,0x04,0x00,0xb4,0x00,0x00,0x00,0xea,0x00,0x00,0x00, -0xe9,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xf1,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,0x71,0x00,0x00,0x00, -0x41,0x00,0x08,0x00,0xd3,0x00,0x00,0x00,0xf2,0x00,0x00,0x00, -0xbc,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xbf,0x00,0x00,0x00, -0xd0,0x00,0x00,0x00,0xf1,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb4,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,0xf2,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xf4,0x00,0x00,0x00, -0xf3,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0xf5,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,0xf5,0x00,0x00,0x00, -0xd8,0x00,0x00,0x00,0x72,0x00,0x04,0x00,0xda,0x00,0x00,0x00, -0xf7,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,0x7c,0x00,0x04,0x00, -0xb4,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0xf7,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x00,0x01,0x00,0x00, -0xd2,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x41,0x00,0x08,0x00, -0xd3,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0xbc,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0xd0,0x00,0x00,0x00, -0x00,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00, -0x02,0x01,0x00,0x00,0x01,0x01,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x03,0x01,0x00,0x00,0x02,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x04,0x01,0x00,0x00, -0x03,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x05,0x01,0x00,0x00,0x04,0x01,0x00,0x00,0xd8,0x00,0x00,0x00, -0x72,0x00,0x04,0x00,0xda,0x00,0x00,0x00,0x06,0x01,0x00,0x00, -0x05,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0xb4,0x00,0x00,0x00, -0x07,0x01,0x00,0x00,0x06,0x01,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x0f,0x01,0x00,0x00,0xd2,0x00,0x00,0x00, -0x0e,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0xd3,0x00,0x00,0x00, -0x10,0x01,0x00,0x00,0xbc,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0xbf,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0x0f,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00,0x11,0x01,0x00,0x00, -0x10,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x12,0x01,0x00,0x00,0x11,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x13,0x01,0x00,0x00,0x12,0x01,0x00,0x00, -0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x15,0x01,0x00,0x00, -0x13,0x01,0x00,0x00,0x14,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb4,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,0xd4,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x1d,0x01,0x00,0x00, -0x1c,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x1e,0x01,0x00,0x00,0x1d,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x20,0x01,0x00,0x00,0x1e,0x01,0x00,0x00, -0x1f,0x01,0x00,0x00,0xc3,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x22,0x01,0x00,0x00,0x20,0x01,0x00,0x00,0x21,0x01,0x00,0x00, -0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x23,0x01,0x00,0x00, -0x15,0x01,0x00,0x00,0x22,0x01,0x00,0x00,0x72,0x00,0x04,0x00, -0xda,0x00,0x00,0x00,0x24,0x01,0x00,0x00,0x23,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0xb4,0x00,0x00,0x00,0x25,0x01,0x00,0x00, -0x24,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x2d,0x01,0x00,0x00,0xd2,0x00,0x00,0x00,0x2c,0x01,0x00,0x00, -0x41,0x00,0x08,0x00,0xd3,0x00,0x00,0x00,0x2e,0x01,0x00,0x00, -0xbc,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xbf,0x00,0x00,0x00, -0xd0,0x00,0x00,0x00,0x2d,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb4,0x00,0x00,0x00,0x2f,0x01,0x00,0x00,0x2e,0x01,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x30,0x01,0x00,0x00, -0x2f,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x31,0x01,0x00,0x00,0x30,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x32,0x01,0x00,0x00,0x31,0x01,0x00,0x00, -0x14,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00, -0x3a,0x01,0x00,0x00,0xe4,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x3b,0x01,0x00,0x00,0x3a,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x3c,0x01,0x00,0x00, -0x3b,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x3d,0x01,0x00,0x00,0x3c,0x01,0x00,0x00,0x1f,0x01,0x00,0x00, -0xc3,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x3e,0x01,0x00,0x00, -0x3d,0x01,0x00,0x00,0x21,0x01,0x00,0x00,0xc5,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x3f,0x01,0x00,0x00,0x32,0x01,0x00,0x00, -0x3e,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0xda,0x00,0x00,0x00, -0x40,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0xb4,0x00,0x00,0x00,0x41,0x01,0x00,0x00,0x40,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00,0x4a,0x01,0x00,0x00, -0x10,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0xb4,0x00,0x00,0x00, -0x4b,0x01,0x00,0x00,0x4a,0x01,0x00,0x00,0x3b,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4c,0x01,0x00,0x00, -0x4b,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x4d,0x01,0x00,0x00,0x4c,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x4e,0x01,0x00,0x00,0x4d,0x01,0x00,0x00, -0x14,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00, -0x56,0x01,0x00,0x00,0xf2,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x57,0x01,0x00,0x00,0x56,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x58,0x01,0x00,0x00, -0x57,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x59,0x01,0x00,0x00,0x58,0x01,0x00,0x00,0x1f,0x01,0x00,0x00, -0xc3,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x5a,0x01,0x00,0x00, -0x59,0x01,0x00,0x00,0x21,0x01,0x00,0x00,0xc5,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x5b,0x01,0x00,0x00,0x4e,0x01,0x00,0x00, -0x5a,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0xda,0x00,0x00,0x00, -0x5c,0x01,0x00,0x00,0x5b,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0xb4,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,0x5c,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00,0x66,0x01,0x00,0x00, -0x2e,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0xb4,0x00,0x00,0x00, -0x67,0x01,0x00,0x00,0x66,0x01,0x00,0x00,0x3b,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x68,0x01,0x00,0x00, -0x67,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x69,0x01,0x00,0x00,0x68,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x6a,0x01,0x00,0x00,0x69,0x01,0x00,0x00, -0x14,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00, -0x72,0x01,0x00,0x00,0x01,0x01,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x73,0x01,0x00,0x00,0x72,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x74,0x01,0x00,0x00, -0x73,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x75,0x01,0x00,0x00,0x74,0x01,0x00,0x00,0x1f,0x01,0x00,0x00, -0xc3,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x76,0x01,0x00,0x00, -0x75,0x01,0x00,0x00,0x21,0x01,0x00,0x00,0xc5,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x77,0x01,0x00,0x00,0x6a,0x01,0x00,0x00, -0x76,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0xda,0x00,0x00,0x00, -0x78,0x01,0x00,0x00,0x77,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0xb4,0x00,0x00,0x00,0x79,0x01,0x00,0x00,0x78,0x01,0x00,0x00, -0x41,0x00,0x08,0x00,0xd3,0x00,0x00,0x00,0x7f,0x01,0x00,0x00, -0xbc,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xbf,0x00,0x00,0x00, -0x21,0x01,0x00,0x00,0x89,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb4,0x00,0x00,0x00,0x80,0x01,0x00,0x00,0x7f,0x01,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x81,0x01,0x00,0x00, -0x80,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x82,0x01,0x00,0x00,0x81,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x83,0x01,0x00,0x00,0x82,0x01,0x00,0x00, -0x14,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0xda,0x00,0x00,0x00, -0x84,0x01,0x00,0x00,0x83,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0xb4,0x00,0x00,0x00,0x85,0x01,0x00,0x00,0x84,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8b,0x01,0x00,0x00, -0x89,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x41,0x00,0x08,0x00, -0xd3,0x00,0x00,0x00,0x8c,0x01,0x00,0x00,0xbc,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0x21,0x01,0x00,0x00, -0x8b,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00, -0x8d,0x01,0x00,0x00,0x8c,0x01,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x8e,0x01,0x00,0x00,0x8d,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x8f,0x01,0x00,0x00, -0x8e,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x90,0x01,0x00,0x00,0x8f,0x01,0x00,0x00,0x14,0x01,0x00,0x00, -0x72,0x00,0x04,0x00,0xda,0x00,0x00,0x00,0x91,0x01,0x00,0x00, -0x90,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0xb4,0x00,0x00,0x00, -0x92,0x01,0x00,0x00,0x91,0x01,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x98,0x01,0x00,0x00,0x89,0x00,0x00,0x00, -0x69,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xd3,0x00,0x00,0x00, -0x99,0x01,0x00,0x00,0xbc,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0xbf,0x00,0x00,0x00,0x21,0x01,0x00,0x00,0x98,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00,0x9a,0x01,0x00,0x00, -0x99,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x9b,0x01,0x00,0x00,0x9a,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x9c,0x01,0x00,0x00,0x9b,0x01,0x00,0x00, -0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x9d,0x01,0x00,0x00, -0x9c,0x01,0x00,0x00,0x14,0x01,0x00,0x00,0x72,0x00,0x04,0x00, -0xda,0x00,0x00,0x00,0x9e,0x01,0x00,0x00,0x9d,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0xb4,0x00,0x00,0x00,0x9f,0x01,0x00,0x00, -0x9e,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xa6,0x01,0x00,0x00,0x89,0x00,0x00,0x00,0xa5,0x01,0x00,0x00, -0x41,0x00,0x08,0x00,0xd3,0x00,0x00,0x00,0xa7,0x01,0x00,0x00, -0xbc,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xbf,0x00,0x00,0x00, -0x21,0x01,0x00,0x00,0xa6,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb4,0x00,0x00,0x00,0xa8,0x01,0x00,0x00,0xa7,0x01,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa9,0x01,0x00,0x00, -0xa8,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0xaa,0x01,0x00,0x00,0xa9,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0xab,0x01,0x00,0x00,0xaa,0x01,0x00,0x00, -0x14,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0xda,0x00,0x00,0x00, -0xac,0x01,0x00,0x00,0xab,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0xb4,0x00,0x00,0x00,0xad,0x01,0x00,0x00,0xac,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00,0xb4,0x01,0x00,0x00, -0x7f,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0xb4,0x00,0x00,0x00, -0xb5,0x01,0x00,0x00,0xb4,0x01,0x00,0x00,0x3b,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00,0xbd,0x01,0x00,0x00, -0x8c,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0xb4,0x00,0x00,0x00, -0xbe,0x01,0x00,0x00,0xbd,0x01,0x00,0x00,0x3b,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00,0xc6,0x01,0x00,0x00, -0x99,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0xb4,0x00,0x00,0x00, -0xc7,0x01,0x00,0x00,0xc6,0x01,0x00,0x00,0x3b,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00,0xcf,0x01,0x00,0x00, -0xa7,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0xb4,0x00,0x00,0x00, -0xd0,0x01,0x00,0x00,0xcf,0x01,0x00,0x00,0x3b,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd6,0x01,0x00,0x00, -0x89,0x00,0x00,0x00,0x8b,0x00,0x00,0x00,0x41,0x00,0x08,0x00, -0xd3,0x00,0x00,0x00,0xd7,0x01,0x00,0x00,0xbc,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0x21,0x01,0x00,0x00, -0xd6,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00, -0xd8,0x01,0x00,0x00,0xd7,0x01,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xd9,0x01,0x00,0x00,0xd8,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xda,0x01,0x00,0x00, -0xd9,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0xdb,0x01,0x00,0x00,0xda,0x01,0x00,0x00,0x14,0x01,0x00,0x00, -0x72,0x00,0x04,0x00,0xda,0x00,0x00,0x00,0xdc,0x01,0x00,0x00, -0xdb,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0xb4,0x00,0x00,0x00, -0xdd,0x01,0x00,0x00,0xdc,0x01,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xe4,0x01,0x00,0x00,0x89,0x00,0x00,0x00, -0xe3,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0xd3,0x00,0x00,0x00, -0xe5,0x01,0x00,0x00,0xbc,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0xbf,0x00,0x00,0x00,0x21,0x01,0x00,0x00,0xe4,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00,0xe6,0x01,0x00,0x00, -0xe5,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xe7,0x01,0x00,0x00,0xe6,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0xe8,0x01,0x00,0x00,0xe7,0x01,0x00,0x00, -0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xe9,0x01,0x00,0x00, -0xe8,0x01,0x00,0x00,0x14,0x01,0x00,0x00,0x72,0x00,0x04,0x00, -0xda,0x00,0x00,0x00,0xea,0x01,0x00,0x00,0xe9,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0xb4,0x00,0x00,0x00,0xeb,0x01,0x00,0x00, -0xea,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xf2,0x01,0x00,0x00,0x89,0x00,0x00,0x00,0xf1,0x01,0x00,0x00, -0x41,0x00,0x08,0x00,0xd3,0x00,0x00,0x00,0xf3,0x01,0x00,0x00, -0xbc,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xbf,0x00,0x00,0x00, -0x21,0x01,0x00,0x00,0xf2,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb4,0x00,0x00,0x00,0xf4,0x01,0x00,0x00,0xf3,0x01,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xf5,0x01,0x00,0x00, -0xf4,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0xf6,0x01,0x00,0x00,0xf5,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0xf7,0x01,0x00,0x00,0xf6,0x01,0x00,0x00, -0x14,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0xda,0x00,0x00,0x00, -0xf8,0x01,0x00,0x00,0xf7,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0xb4,0x00,0x00,0x00,0xf9,0x01,0x00,0x00,0xf8,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x00,0x02,0x00,0x00, -0x89,0x00,0x00,0x00,0xff,0x01,0x00,0x00,0x41,0x00,0x08,0x00, -0xd3,0x00,0x00,0x00,0x01,0x02,0x00,0x00,0xbc,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0x21,0x01,0x00,0x00, -0x00,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00, -0x02,0x02,0x00,0x00,0x01,0x02,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x03,0x02,0x00,0x00,0x02,0x02,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x04,0x02,0x00,0x00, -0x03,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x05,0x02,0x00,0x00,0x04,0x02,0x00,0x00,0x14,0x01,0x00,0x00, -0x72,0x00,0x04,0x00,0xda,0x00,0x00,0x00,0x06,0x02,0x00,0x00, -0x05,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0xb4,0x00,0x00,0x00, -0x07,0x02,0x00,0x00,0x06,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb4,0x00,0x00,0x00,0x0f,0x02,0x00,0x00,0xd7,0x01,0x00,0x00, -0xc2,0x00,0x05,0x00,0xb4,0x00,0x00,0x00,0x10,0x02,0x00,0x00, -0x0f,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb4,0x00,0x00,0x00,0x18,0x02,0x00,0x00,0xe5,0x01,0x00,0x00, -0xc2,0x00,0x05,0x00,0xb4,0x00,0x00,0x00,0x19,0x02,0x00,0x00, -0x18,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb4,0x00,0x00,0x00,0x21,0x02,0x00,0x00,0xf3,0x01,0x00,0x00, -0xc2,0x00,0x05,0x00,0xb4,0x00,0x00,0x00,0x22,0x02,0x00,0x00, -0x21,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb4,0x00,0x00,0x00,0x2a,0x02,0x00,0x00,0x01,0x02,0x00,0x00, -0xc2,0x00,0x05,0x00,0xb4,0x00,0x00,0x00,0x2b,0x02,0x00,0x00, -0x2a,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x33,0x02,0x00,0x00,0x02,0x04,0x00,0x00, -0xab,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xc0,0x00,0x00,0x00, -0x34,0x02,0x00,0x00,0x30,0x02,0x00,0x00,0x59,0x00,0x00,0x00, -0x33,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xb2,0x00,0x00,0x00, -0x35,0x02,0x00,0x00,0x34,0x02,0x00,0x00,0x73,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0x36,0x02,0x00,0x00,0x35,0x02,0x00,0x00, -0x70,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0x38,0x02,0x00,0x00, -0x85,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x3d,0x02,0x00,0x00,0x33,0x02,0x00,0x00,0x12,0x00,0x00,0x00, -0x41,0x00,0x06,0x00,0xc0,0x00,0x00,0x00,0x3e,0x02,0x00,0x00, -0x30,0x02,0x00,0x00,0x59,0x00,0x00,0x00,0x3d,0x02,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb2,0x00,0x00,0x00,0x3f,0x02,0x00,0x00, -0x3e,0x02,0x00,0x00,0x73,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0x40,0x02,0x00,0x00,0x3f,0x02,0x00,0x00,0x70,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0x42,0x02,0x00,0x00,0x92,0x01,0x00,0x00, -0x85,0x00,0x05,0x00,0x90,0x00,0x00,0x00,0x43,0x02,0x00,0x00, -0x40,0x02,0x00,0x00,0x42,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, -0x90,0x00,0x00,0x00,0x44,0x02,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0x36,0x02,0x00,0x00,0x38,0x02,0x00,0x00, -0x43,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x48,0x02,0x00,0x00,0x33,0x02,0x00,0x00,0x69,0x00,0x00,0x00, -0x41,0x00,0x06,0x00,0xc0,0x00,0x00,0x00,0x49,0x02,0x00,0x00, -0x30,0x02,0x00,0x00,0x59,0x00,0x00,0x00,0x48,0x02,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb2,0x00,0x00,0x00,0x4a,0x02,0x00,0x00, -0x49,0x02,0x00,0x00,0x73,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0x4b,0x02,0x00,0x00,0x4a,0x02,0x00,0x00,0x70,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0x4d,0x02,0x00,0x00,0x9f,0x01,0x00,0x00, -0x0c,0x00,0x08,0x00,0x90,0x00,0x00,0x00,0x4f,0x02,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x4b,0x02,0x00,0x00, -0x4d,0x02,0x00,0x00,0x44,0x02,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x53,0x02,0x00,0x00,0x33,0x02,0x00,0x00, -0xa5,0x01,0x00,0x00,0x41,0x00,0x06,0x00,0xc0,0x00,0x00,0x00, -0x54,0x02,0x00,0x00,0x30,0x02,0x00,0x00,0x59,0x00,0x00,0x00, -0x53,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xb2,0x00,0x00,0x00, -0x55,0x02,0x00,0x00,0x54,0x02,0x00,0x00,0x73,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0x56,0x02,0x00,0x00,0x55,0x02,0x00,0x00, -0x70,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0x58,0x02,0x00,0x00, -0xad,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0x90,0x00,0x00,0x00, -0x5a,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x56,0x02,0x00,0x00,0x58,0x02,0x00,0x00,0x4f,0x02,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5f,0x02,0x00,0x00, -0x33,0x02,0x00,0x00,0x85,0x00,0x00,0x00,0x41,0x00,0x06,0x00, -0xc0,0x00,0x00,0x00,0x60,0x02,0x00,0x00,0x30,0x02,0x00,0x00, -0x59,0x00,0x00,0x00,0x5f,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb2,0x00,0x00,0x00,0x61,0x02,0x00,0x00,0x60,0x02,0x00,0x00, -0x73,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0x62,0x02,0x00,0x00, -0x61,0x02,0x00,0x00,0x70,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0x64,0x02,0x00,0x00,0xb5,0x01,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x6a,0x02,0x00,0x00,0x33,0x02,0x00,0x00, -0x69,0x02,0x00,0x00,0x41,0x00,0x06,0x00,0xc0,0x00,0x00,0x00, -0x6b,0x02,0x00,0x00,0x30,0x02,0x00,0x00,0x59,0x00,0x00,0x00, -0x6a,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xb2,0x00,0x00,0x00, -0x6c,0x02,0x00,0x00,0x6b,0x02,0x00,0x00,0x73,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0x6d,0x02,0x00,0x00,0x6c,0x02,0x00,0x00, -0x70,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0x6f,0x02,0x00,0x00, -0xbe,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x90,0x00,0x00,0x00, -0x70,0x02,0x00,0x00,0x6d,0x02,0x00,0x00,0x6f,0x02,0x00,0x00, -0x0c,0x00,0x08,0x00,0x90,0x00,0x00,0x00,0x71,0x02,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x62,0x02,0x00,0x00, -0x64,0x02,0x00,0x00,0x70,0x02,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x76,0x02,0x00,0x00,0x33,0x02,0x00,0x00, -0x75,0x02,0x00,0x00,0x41,0x00,0x06,0x00,0xc0,0x00,0x00,0x00, -0x77,0x02,0x00,0x00,0x30,0x02,0x00,0x00,0x59,0x00,0x00,0x00, -0x76,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xb2,0x00,0x00,0x00, -0x78,0x02,0x00,0x00,0x77,0x02,0x00,0x00,0x73,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0x79,0x02,0x00,0x00,0x78,0x02,0x00,0x00, -0x70,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0x7b,0x02,0x00,0x00, -0xc7,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0x90,0x00,0x00,0x00, -0x7d,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x79,0x02,0x00,0x00,0x7b,0x02,0x00,0x00,0x71,0x02,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x82,0x02,0x00,0x00, -0x33,0x02,0x00,0x00,0x81,0x02,0x00,0x00,0x41,0x00,0x06,0x00, -0xc0,0x00,0x00,0x00,0x83,0x02,0x00,0x00,0x30,0x02,0x00,0x00, -0x59,0x00,0x00,0x00,0x82,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb2,0x00,0x00,0x00,0x84,0x02,0x00,0x00,0x83,0x02,0x00,0x00, -0x73,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0x85,0x02,0x00,0x00, -0x84,0x02,0x00,0x00,0x70,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0x87,0x02,0x00,0x00,0xd0,0x01,0x00,0x00,0x0c,0x00,0x08,0x00, -0x90,0x00,0x00,0x00,0x89,0x02,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0x85,0x02,0x00,0x00,0x87,0x02,0x00,0x00, -0x7d,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x8d,0x02,0x00,0x00,0x02,0x04,0x00,0x00,0xaf,0x00,0x00,0x00, -0x41,0x00,0x06,0x00,0xc0,0x00,0x00,0x00,0x8e,0x02,0x00,0x00, -0x30,0x02,0x00,0x00,0x59,0x00,0x00,0x00,0x8d,0x02,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb2,0x00,0x00,0x00,0x8f,0x02,0x00,0x00, -0x8e,0x02,0x00,0x00,0x73,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0x90,0x02,0x00,0x00,0x8f,0x02,0x00,0x00,0x70,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0x92,0x02,0x00,0x00,0xdd,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x97,0x02,0x00,0x00, -0x8d,0x02,0x00,0x00,0x12,0x00,0x00,0x00,0x41,0x00,0x06,0x00, -0xc0,0x00,0x00,0x00,0x98,0x02,0x00,0x00,0x30,0x02,0x00,0x00, -0x59,0x00,0x00,0x00,0x97,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb2,0x00,0x00,0x00,0x99,0x02,0x00,0x00,0x98,0x02,0x00,0x00, -0x73,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0x9a,0x02,0x00,0x00, -0x99,0x02,0x00,0x00,0x70,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0x9c,0x02,0x00,0x00,0xeb,0x01,0x00,0x00,0x85,0x00,0x05,0x00, -0x90,0x00,0x00,0x00,0x9d,0x02,0x00,0x00,0x9a,0x02,0x00,0x00, -0x9c,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x90,0x00,0x00,0x00, -0x9e,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x90,0x02,0x00,0x00,0x92,0x02,0x00,0x00,0x9d,0x02,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa2,0x02,0x00,0x00, -0x8d,0x02,0x00,0x00,0x69,0x00,0x00,0x00,0x41,0x00,0x06,0x00, -0xc0,0x00,0x00,0x00,0xa3,0x02,0x00,0x00,0x30,0x02,0x00,0x00, -0x59,0x00,0x00,0x00,0xa2,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb2,0x00,0x00,0x00,0xa4,0x02,0x00,0x00,0xa3,0x02,0x00,0x00, -0x73,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0xa5,0x02,0x00,0x00, -0xa4,0x02,0x00,0x00,0x70,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0xa7,0x02,0x00,0x00,0xf9,0x01,0x00,0x00,0x0c,0x00,0x08,0x00, -0x90,0x00,0x00,0x00,0xa9,0x02,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0xa5,0x02,0x00,0x00,0xa7,0x02,0x00,0x00, -0x9e,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xad,0x02,0x00,0x00,0x8d,0x02,0x00,0x00,0xa5,0x01,0x00,0x00, -0x41,0x00,0x06,0x00,0xc0,0x00,0x00,0x00,0xae,0x02,0x00,0x00, -0x30,0x02,0x00,0x00,0x59,0x00,0x00,0x00,0xad,0x02,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb2,0x00,0x00,0x00,0xaf,0x02,0x00,0x00, -0xae,0x02,0x00,0x00,0x73,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0xb0,0x02,0x00,0x00,0xaf,0x02,0x00,0x00,0x70,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0xb2,0x02,0x00,0x00,0x07,0x02,0x00,0x00, -0x0c,0x00,0x08,0x00,0x90,0x00,0x00,0x00,0xb4,0x02,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xb0,0x02,0x00,0x00, -0xb2,0x02,0x00,0x00,0xa9,0x02,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xb9,0x02,0x00,0x00,0x8d,0x02,0x00,0x00, -0x85,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xc0,0x00,0x00,0x00, -0xba,0x02,0x00,0x00,0x30,0x02,0x00,0x00,0x59,0x00,0x00,0x00, -0xb9,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xb2,0x00,0x00,0x00, -0xbb,0x02,0x00,0x00,0xba,0x02,0x00,0x00,0x73,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0xbc,0x02,0x00,0x00,0xbb,0x02,0x00,0x00, -0x70,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0xbe,0x02,0x00,0x00, -0x10,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xc3,0x02,0x00,0x00,0x8d,0x02,0x00,0x00,0x69,0x02,0x00,0x00, -0x41,0x00,0x06,0x00,0xc0,0x00,0x00,0x00,0xc4,0x02,0x00,0x00, -0x30,0x02,0x00,0x00,0x59,0x00,0x00,0x00,0xc3,0x02,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb2,0x00,0x00,0x00,0xc5,0x02,0x00,0x00, -0xc4,0x02,0x00,0x00,0x73,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0xc6,0x02,0x00,0x00,0xc5,0x02,0x00,0x00,0x70,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0xc8,0x02,0x00,0x00,0x19,0x02,0x00,0x00, -0x85,0x00,0x05,0x00,0x90,0x00,0x00,0x00,0xc9,0x02,0x00,0x00, -0xc6,0x02,0x00,0x00,0xc8,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, -0x90,0x00,0x00,0x00,0xca,0x02,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0xbc,0x02,0x00,0x00,0xbe,0x02,0x00,0x00, -0xc9,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xce,0x02,0x00,0x00,0x8d,0x02,0x00,0x00,0x75,0x02,0x00,0x00, -0x41,0x00,0x06,0x00,0xc0,0x00,0x00,0x00,0xcf,0x02,0x00,0x00, -0x30,0x02,0x00,0x00,0x59,0x00,0x00,0x00,0xce,0x02,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb2,0x00,0x00,0x00,0xd0,0x02,0x00,0x00, -0xcf,0x02,0x00,0x00,0x73,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0xd1,0x02,0x00,0x00,0xd0,0x02,0x00,0x00,0x70,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0xd3,0x02,0x00,0x00,0x22,0x02,0x00,0x00, -0x0c,0x00,0x08,0x00,0x90,0x00,0x00,0x00,0xd5,0x02,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xd1,0x02,0x00,0x00, -0xd3,0x02,0x00,0x00,0xca,0x02,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xd9,0x02,0x00,0x00,0x8d,0x02,0x00,0x00, -0x81,0x02,0x00,0x00,0x41,0x00,0x06,0x00,0xc0,0x00,0x00,0x00, -0xda,0x02,0x00,0x00,0x30,0x02,0x00,0x00,0x59,0x00,0x00,0x00, -0xd9,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xb2,0x00,0x00,0x00, -0xdb,0x02,0x00,0x00,0xda,0x02,0x00,0x00,0x73,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0xdc,0x02,0x00,0x00,0xdb,0x02,0x00,0x00, -0x70,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0xde,0x02,0x00,0x00, -0x2b,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x90,0x00,0x00,0x00, -0xe0,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0xdc,0x02,0x00,0x00,0xde,0x02,0x00,0x00,0xd5,0x02,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb2,0x00,0x00,0x00,0xe6,0x02,0x00,0x00, -0x34,0x02,0x00,0x00,0x73,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0xe7,0x02,0x00,0x00,0xe6,0x02,0x00,0x00,0x70,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0xe9,0x02,0x00,0x00,0xf8,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb2,0x00,0x00,0x00,0xf0,0x02,0x00,0x00, -0x60,0x02,0x00,0x00,0x73,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0xf1,0x02,0x00,0x00,0xf0,0x02,0x00,0x00,0x70,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0xf3,0x02,0x00,0x00,0x07,0x01,0x00,0x00, -0x85,0x00,0x05,0x00,0x90,0x00,0x00,0x00,0xf4,0x02,0x00,0x00, -0xf1,0x02,0x00,0x00,0xf3,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, -0x90,0x00,0x00,0x00,0xf5,0x02,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0xe7,0x02,0x00,0x00,0xe9,0x02,0x00,0x00, -0xf4,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xb2,0x00,0x00,0x00, -0xfa,0x02,0x00,0x00,0x8e,0x02,0x00,0x00,0x73,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0xfb,0x02,0x00,0x00,0xfa,0x02,0x00,0x00, -0x70,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0xfd,0x02,0x00,0x00, -0x5d,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0x90,0x00,0x00,0x00, -0xff,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0xfb,0x02,0x00,0x00,0xfd,0x02,0x00,0x00,0xf5,0x02,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb2,0x00,0x00,0x00,0x05,0x03,0x00,0x00, -0xba,0x02,0x00,0x00,0x73,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0x06,0x03,0x00,0x00,0x05,0x03,0x00,0x00,0x70,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0x08,0x03,0x00,0x00,0x79,0x01,0x00,0x00, -0x0c,0x00,0x08,0x00,0x90,0x00,0x00,0x00,0x0a,0x03,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x06,0x03,0x00,0x00, -0x08,0x03,0x00,0x00,0xff,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb2,0x00,0x00,0x00,0x10,0x03,0x00,0x00,0x3e,0x02,0x00,0x00, -0x73,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0x11,0x03,0x00,0x00, -0x10,0x03,0x00,0x00,0x0c,0x00,0x08,0x00,0x90,0x00,0x00,0x00, -0x15,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x11,0x03,0x00,0x00,0xe9,0x02,0x00,0x00,0x0a,0x03,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb2,0x00,0x00,0x00,0x1b,0x03,0x00,0x00, -0x6b,0x02,0x00,0x00,0x73,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0x1c,0x03,0x00,0x00,0x1b,0x03,0x00,0x00,0x0c,0x00,0x08,0x00, -0x90,0x00,0x00,0x00,0x20,0x03,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0x1c,0x03,0x00,0x00,0xf3,0x02,0x00,0x00, -0x15,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0xb2,0x00,0x00,0x00, -0x26,0x03,0x00,0x00,0x98,0x02,0x00,0x00,0x73,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0x27,0x03,0x00,0x00,0x26,0x03,0x00,0x00, -0x0c,0x00,0x08,0x00,0x90,0x00,0x00,0x00,0x2b,0x03,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x27,0x03,0x00,0x00, -0xfd,0x02,0x00,0x00,0x20,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb2,0x00,0x00,0x00,0x31,0x03,0x00,0x00,0xc4,0x02,0x00,0x00, -0x73,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0x32,0x03,0x00,0x00, -0x31,0x03,0x00,0x00,0x0c,0x00,0x08,0x00,0x90,0x00,0x00,0x00, -0x36,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x32,0x03,0x00,0x00,0x08,0x03,0x00,0x00,0x2b,0x03,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb2,0x00,0x00,0x00,0x3c,0x03,0x00,0x00, -0x49,0x02,0x00,0x00,0x73,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0x3d,0x03,0x00,0x00,0x3c,0x03,0x00,0x00,0x0c,0x00,0x08,0x00, -0x90,0x00,0x00,0x00,0x41,0x03,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0x3d,0x03,0x00,0x00,0xe9,0x02,0x00,0x00, -0x36,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0xb2,0x00,0x00,0x00, -0x47,0x03,0x00,0x00,0x77,0x02,0x00,0x00,0x73,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0x48,0x03,0x00,0x00,0x47,0x03,0x00,0x00, -0x0c,0x00,0x08,0x00,0x90,0x00,0x00,0x00,0x4c,0x03,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x48,0x03,0x00,0x00, -0xf3,0x02,0x00,0x00,0x41,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb2,0x00,0x00,0x00,0x52,0x03,0x00,0x00,0xa3,0x02,0x00,0x00, -0x73,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0x53,0x03,0x00,0x00, -0x52,0x03,0x00,0x00,0x0c,0x00,0x08,0x00,0x90,0x00,0x00,0x00, -0x57,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x53,0x03,0x00,0x00,0xfd,0x02,0x00,0x00,0x4c,0x03,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb2,0x00,0x00,0x00,0x5d,0x03,0x00,0x00, -0xcf,0x02,0x00,0x00,0x73,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0x5e,0x03,0x00,0x00,0x5d,0x03,0x00,0x00,0x0c,0x00,0x08,0x00, -0x90,0x00,0x00,0x00,0x62,0x03,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0x5e,0x03,0x00,0x00,0x08,0x03,0x00,0x00, -0x57,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0xb2,0x00,0x00,0x00, -0x68,0x03,0x00,0x00,0x54,0x02,0x00,0x00,0x73,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0x69,0x03,0x00,0x00,0x68,0x03,0x00,0x00, -0x0c,0x00,0x08,0x00,0x90,0x00,0x00,0x00,0x6d,0x03,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x69,0x03,0x00,0x00, -0xe9,0x02,0x00,0x00,0x62,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb2,0x00,0x00,0x00,0x73,0x03,0x00,0x00,0x83,0x02,0x00,0x00, -0x73,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0x74,0x03,0x00,0x00, -0x73,0x03,0x00,0x00,0x0c,0x00,0x08,0x00,0x90,0x00,0x00,0x00, -0x78,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x74,0x03,0x00,0x00,0xf3,0x02,0x00,0x00,0x6d,0x03,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb2,0x00,0x00,0x00,0x7e,0x03,0x00,0x00, -0xae,0x02,0x00,0x00,0x73,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0x7f,0x03,0x00,0x00,0x7e,0x03,0x00,0x00,0x0c,0x00,0x08,0x00, -0x90,0x00,0x00,0x00,0x83,0x03,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0x7f,0x03,0x00,0x00,0xfd,0x02,0x00,0x00, -0x78,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0xb2,0x00,0x00,0x00, -0x89,0x03,0x00,0x00,0xda,0x02,0x00,0x00,0x73,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0x8a,0x03,0x00,0x00,0x89,0x03,0x00,0x00, -0x0c,0x00,0x08,0x00,0x90,0x00,0x00,0x00,0x8e,0x03,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x8a,0x03,0x00,0x00, -0x08,0x03,0x00,0x00,0x83,0x03,0x00,0x00,0x70,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0x96,0x03,0x00,0x00,0xdc,0x00,0x00,0x00, -0x70,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0x9a,0x03,0x00,0x00, -0xea,0x00,0x00,0x00,0x85,0x00,0x05,0x00,0x90,0x00,0x00,0x00, -0x9b,0x03,0x00,0x00,0x89,0x02,0x00,0x00,0x9a,0x03,0x00,0x00, -0x0c,0x00,0x08,0x00,0x90,0x00,0x00,0x00,0x9c,0x03,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x5a,0x02,0x00,0x00, -0x96,0x03,0x00,0x00,0x9b,0x03,0x00,0x00,0x70,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0x9f,0x03,0x00,0x00,0x25,0x01,0x00,0x00, -0x0c,0x00,0x08,0x00,0x90,0x00,0x00,0x00,0xa1,0x03,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xb4,0x02,0x00,0x00, -0x9f,0x03,0x00,0x00,0x9c,0x03,0x00,0x00,0x70,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0xa4,0x03,0x00,0x00,0x41,0x01,0x00,0x00, -0x0c,0x00,0x08,0x00,0x90,0x00,0x00,0x00,0xa6,0x03,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xe0,0x02,0x00,0x00, -0xa4,0x03,0x00,0x00,0xa1,0x03,0x00,0x00,0x85,0x00,0x05,0x00, -0x90,0x00,0x00,0x00,0xaa,0x03,0x00,0x00,0xca,0x00,0x00,0x00, -0x8e,0x03,0x00,0x00,0x7f,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0x0b,0x04,0x00,0x00,0xaa,0x03,0x00,0x00,0x0c,0x00,0x08,0x00, -0x90,0x00,0x00,0x00,0xab,0x03,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0xc3,0x00,0x00,0x00,0xa6,0x03,0x00,0x00, -0x0b,0x04,0x00,0x00,0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0xad,0x03,0x00,0x00,0x9b,0x00,0x00,0x00,0x81,0x00,0x05,0x00, -0x90,0x00,0x00,0x00,0xae,0x03,0x00,0x00,0xad,0x03,0x00,0x00, -0xab,0x03,0x00,0x00,0x3e,0x00,0x03,0x00,0x9b,0x00,0x00,0x00, -0xae,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xb1,0x03,0x00,0x00,0x07,0x04,0x00,0x00,0x69,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0x9e,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0xa0,0x00,0x00,0x00,0xe0,0x00,0x04,0x00,0x69,0x00,0x00,0x00, -0x69,0x00,0x00,0x00,0xb2,0x03,0x00,0x00,0xf9,0x00,0x02,0x00, -0xb4,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0xb4,0x03,0x00,0x00, -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x08,0x04,0x00,0x00, -0x94,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0xcb,0x03,0x00,0x00, -0xb7,0x03,0x00,0x00,0xac,0x00,0x05,0x00,0xa5,0x00,0x00,0x00, -0xba,0x03,0x00,0x00,0x08,0x04,0x00,0x00,0x4b,0x00,0x00,0x00, -0xf6,0x00,0x04,0x00,0xb6,0x03,0x00,0x00,0xb7,0x03,0x00,0x00, -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xba,0x03,0x00,0x00, -0xb5,0x03,0x00,0x00,0xb6,0x03,0x00,0x00,0xf8,0x00,0x02,0x00, -0xb5,0x03,0x00,0x00,0xb0,0x00,0x05,0x00,0xa5,0x00,0x00,0x00, -0xbd,0x03,0x00,0x00,0x6a,0x00,0x00,0x00,0x08,0x04,0x00,0x00, -0xf7,0x00,0x03,0x00,0xbf,0x03,0x00,0x00,0x00,0x00,0x00,0x00, -0xfa,0x00,0x04,0x00,0xbd,0x03,0x00,0x00,0xbe,0x03,0x00,0x00, -0xbf,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0xbe,0x03,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc3,0x03,0x00,0x00, -0x6a,0x00,0x00,0x00,0x08,0x04,0x00,0x00,0x41,0x00,0x05,0x00, -0x9a,0x00,0x00,0x00,0xc4,0x03,0x00,0x00,0x93,0x00,0x00,0x00, -0xc3,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0xc5,0x03,0x00,0x00,0xc4,0x03,0x00,0x00,0x41,0x00,0x05,0x00, -0x9a,0x00,0x00,0x00,0xc6,0x03,0x00,0x00,0x93,0x00,0x00,0x00, -0x6a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0xc7,0x03,0x00,0x00,0xc6,0x03,0x00,0x00,0x81,0x00,0x05,0x00, -0x90,0x00,0x00,0x00,0xc8,0x03,0x00,0x00,0xc7,0x03,0x00,0x00, -0xc5,0x03,0x00,0x00,0x3e,0x00,0x03,0x00,0xc6,0x03,0x00,0x00, -0xc8,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,0xbf,0x03,0x00,0x00, -0xf8,0x00,0x02,0x00,0xbf,0x03,0x00,0x00,0xe0,0x00,0x04,0x00, -0x69,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0xb2,0x03,0x00,0x00, -0xf9,0x00,0x02,0x00,0xb7,0x03,0x00,0x00,0xf8,0x00,0x02,0x00, -0xb7,0x03,0x00,0x00,0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xcb,0x03,0x00,0x00,0x08,0x04,0x00,0x00,0xd0,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0xb4,0x03,0x00,0x00,0xf8,0x00,0x02,0x00, -0xb6,0x03,0x00,0x00,0xaa,0x00,0x05,0x00,0xa5,0x00,0x00,0x00, -0xcd,0x03,0x00,0x00,0x6a,0x00,0x00,0x00,0x4b,0x00,0x00,0x00, -0xf7,0x00,0x03,0x00,0xcf,0x03,0x00,0x00,0x00,0x00,0x00,0x00, -0xfa,0x00,0x04,0x00,0xcd,0x03,0x00,0x00,0xce,0x03,0x00,0x00, -0xcf,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0xce,0x03,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd6,0x03,0x00,0x00, -0x06,0x04,0x00,0x00,0x4d,0x00,0x00,0x00,0x41,0x00,0x05,0x00, -0x9a,0x00,0x00,0x00,0xd7,0x03,0x00,0x00,0x93,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0xd8,0x03,0x00,0x00,0xd7,0x03,0x00,0x00,0x41,0x00,0x06,0x00, -0xd9,0x03,0x00,0x00,0xda,0x03,0x00,0x00,0xd3,0x03,0x00,0x00, -0x59,0x00,0x00,0x00,0xd6,0x03,0x00,0x00,0x3e,0x00,0x03,0x00, -0xda,0x03,0x00,0x00,0xd8,0x03,0x00,0x00,0xf9,0x00,0x02,0x00, -0xcf,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0xcf,0x03,0x00,0x00, -0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00, +0x97,0x00,0x00,0x00,0xca,0x00,0x00,0x00,0xc9,0x00,0x00,0x00, +0x41,0x00,0x08,0x00,0xc7,0x00,0x00,0x00,0xcf,0x00,0x00,0x00, +0xc3,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xc6,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0xb9,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0xcf,0x00,0x00,0x00, +0x73,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0xd1,0x00,0x00,0x00, +0xd0,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xd9,0x00,0x00,0x00,0x81,0x00,0x00,0x00,0x51,0x00,0x00,0x00, +0x41,0x00,0x08,0x00,0xda,0x00,0x00,0x00,0xdb,0x00,0x00,0x00, +0xc3,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xc6,0x00,0x00,0x00, +0xd7,0x00,0x00,0x00,0xd9,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0xbb,0x00,0x00,0x00,0xdc,0x00,0x00,0x00,0xdb,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xdd,0x00,0x00,0x00, +0xdc,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0xde,0x00,0x00,0x00,0xdd,0x00,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0xe0,0x00,0x00,0x00,0xde,0x00,0x00,0x00, +0xdf,0x00,0x00,0x00,0x72,0x00,0x04,0x00,0xe1,0x00,0x00,0x00, +0xe2,0x00,0x00,0x00,0xe0,0x00,0x00,0x00,0x7c,0x00,0x04,0x00, +0xbb,0x00,0x00,0x00,0xe3,0x00,0x00,0x00,0xe2,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xea,0x00,0x00,0x00, +0xd9,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x41,0x00,0x08,0x00, +0xda,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0xc3,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,0xd7,0x00,0x00,0x00, +0xea,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00, +0xec,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xed,0x00,0x00,0x00,0xec,0x00,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xee,0x00,0x00,0x00, +0xed,0x00,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0xef,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0xdf,0x00,0x00,0x00, +0x72,0x00,0x04,0x00,0xe1,0x00,0x00,0x00,0xf0,0x00,0x00,0x00, +0xef,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0xbb,0x00,0x00,0x00, +0xf1,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0xd9,0x00,0x00,0x00, +0x78,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xda,0x00,0x00,0x00, +0xf9,0x00,0x00,0x00,0xc3,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0xc6,0x00,0x00,0x00,0xd7,0x00,0x00,0x00,0xf8,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0xfa,0x00,0x00,0x00, +0xf9,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xfb,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0xfb,0x00,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xfd,0x00,0x00,0x00, +0xfc,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0x72,0x00,0x04,0x00, +0xe1,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0xfd,0x00,0x00,0x00, +0x7c,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0xff,0x00,0x00,0x00, +0xfe,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x07,0x01,0x00,0x00,0xd9,0x00,0x00,0x00,0x06,0x01,0x00,0x00, +0x41,0x00,0x08,0x00,0xda,0x00,0x00,0x00,0x08,0x01,0x00,0x00, +0xc3,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xc6,0x00,0x00,0x00, +0xd7,0x00,0x00,0x00,0x07,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0xbb,0x00,0x00,0x00,0x09,0x01,0x00,0x00,0x08,0x01,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x0a,0x01,0x00,0x00, +0x09,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x0b,0x01,0x00,0x00,0x0a,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,0x0b,0x01,0x00,0x00, +0xdf,0x00,0x00,0x00,0x72,0x00,0x04,0x00,0xe1,0x00,0x00,0x00, +0x0d,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0xbb,0x00,0x00,0x00,0x0e,0x01,0x00,0x00,0x0d,0x01,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x16,0x01,0x00,0x00, +0xd9,0x00,0x00,0x00,0x15,0x01,0x00,0x00,0x41,0x00,0x08,0x00, +0xda,0x00,0x00,0x00,0x17,0x01,0x00,0x00,0xc3,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,0xd7,0x00,0x00,0x00, +0x16,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00, +0x18,0x01,0x00,0x00,0x17,0x01,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x19,0x01,0x00,0x00,0x18,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x1a,0x01,0x00,0x00, +0x19,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x1c,0x01,0x00,0x00,0x1a,0x01,0x00,0x00,0x1b,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0x23,0x01,0x00,0x00, +0xdb,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x24,0x01,0x00,0x00,0x23,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x25,0x01,0x00,0x00,0x24,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x27,0x01,0x00,0x00, +0x25,0x01,0x00,0x00,0x26,0x01,0x00,0x00,0xc3,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x29,0x01,0x00,0x00,0x27,0x01,0x00,0x00, +0x28,0x01,0x00,0x00,0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x2a,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,0x29,0x01,0x00,0x00, +0x72,0x00,0x04,0x00,0xe1,0x00,0x00,0x00,0x2b,0x01,0x00,0x00, +0x2a,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0xbb,0x00,0x00,0x00, +0x2c,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x34,0x01,0x00,0x00,0xd9,0x00,0x00,0x00, +0x33,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0xda,0x00,0x00,0x00, +0x35,0x01,0x00,0x00,0xc3,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0xc6,0x00,0x00,0x00,0xd7,0x00,0x00,0x00,0x34,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0x36,0x01,0x00,0x00, +0x35,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x37,0x01,0x00,0x00,0x36,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x38,0x01,0x00,0x00,0x37,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x39,0x01,0x00,0x00, +0x38,0x01,0x00,0x00,0x1b,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0xbb,0x00,0x00,0x00,0x41,0x01,0x00,0x00,0xeb,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x42,0x01,0x00,0x00, +0x41,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x43,0x01,0x00,0x00,0x42,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x44,0x01,0x00,0x00,0x43,0x01,0x00,0x00, +0x26,0x01,0x00,0x00,0xc3,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x45,0x01,0x00,0x00,0x44,0x01,0x00,0x00,0x28,0x01,0x00,0x00, +0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x46,0x01,0x00,0x00, +0x39,0x01,0x00,0x00,0x45,0x01,0x00,0x00,0x72,0x00,0x04,0x00, +0xe1,0x00,0x00,0x00,0x47,0x01,0x00,0x00,0x46,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0x48,0x01,0x00,0x00, +0x47,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00, +0x51,0x01,0x00,0x00,0x17,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, +0xbb,0x00,0x00,0x00,0x52,0x01,0x00,0x00,0x51,0x01,0x00,0x00, +0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x53,0x01,0x00,0x00,0x52,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x54,0x01,0x00,0x00,0x53,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x55,0x01,0x00,0x00, +0x54,0x01,0x00,0x00,0x1b,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0xbb,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,0xf9,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x5e,0x01,0x00,0x00, +0x5d,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x5f,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x60,0x01,0x00,0x00,0x5f,0x01,0x00,0x00, +0x26,0x01,0x00,0x00,0xc3,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x61,0x01,0x00,0x00,0x60,0x01,0x00,0x00,0x28,0x01,0x00,0x00, +0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x62,0x01,0x00,0x00, +0x55,0x01,0x00,0x00,0x61,0x01,0x00,0x00,0x72,0x00,0x04,0x00, +0xe1,0x00,0x00,0x00,0x63,0x01,0x00,0x00,0x62,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0x64,0x01,0x00,0x00, +0x63,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00, +0x6d,0x01,0x00,0x00,0x35,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, +0xbb,0x00,0x00,0x00,0x6e,0x01,0x00,0x00,0x6d,0x01,0x00,0x00, +0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x6f,0x01,0x00,0x00,0x6e,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x70,0x01,0x00,0x00,0x6f,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x71,0x01,0x00,0x00, +0x70,0x01,0x00,0x00,0x1b,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0xbb,0x00,0x00,0x00,0x79,0x01,0x00,0x00,0x08,0x01,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x7a,0x01,0x00,0x00, +0x79,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x7b,0x01,0x00,0x00,0x7a,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x7c,0x01,0x00,0x00,0x7b,0x01,0x00,0x00, +0x26,0x01,0x00,0x00,0xc3,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x7d,0x01,0x00,0x00,0x7c,0x01,0x00,0x00,0x28,0x01,0x00,0x00, +0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x7e,0x01,0x00,0x00, +0x71,0x01,0x00,0x00,0x7d,0x01,0x00,0x00,0x72,0x00,0x04,0x00, +0xe1,0x00,0x00,0x00,0x7f,0x01,0x00,0x00,0x7e,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0x80,0x01,0x00,0x00, +0x7f,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0xda,0x00,0x00,0x00, +0x86,0x01,0x00,0x00,0xc3,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0xc6,0x00,0x00,0x00,0x28,0x01,0x00,0x00,0x90,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0x87,0x01,0x00,0x00, +0x86,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x88,0x01,0x00,0x00,0x87,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x89,0x01,0x00,0x00,0x88,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x8a,0x01,0x00,0x00, +0x89,0x01,0x00,0x00,0x1b,0x01,0x00,0x00,0x72,0x00,0x04,0x00, +0xe1,0x00,0x00,0x00,0x8b,0x01,0x00,0x00,0x8a,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0x8c,0x01,0x00,0x00, +0x8b,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x92,0x01,0x00,0x00,0x90,0x00,0x00,0x00,0x12,0x00,0x00,0x00, +0x41,0x00,0x08,0x00,0xda,0x00,0x00,0x00,0x93,0x01,0x00,0x00, +0xc3,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xc6,0x00,0x00,0x00, +0x28,0x01,0x00,0x00,0x92,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0xbb,0x00,0x00,0x00,0x94,0x01,0x00,0x00,0x93,0x01,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x95,0x01,0x00,0x00, +0x94,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x96,0x01,0x00,0x00,0x95,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x97,0x01,0x00,0x00,0x96,0x01,0x00,0x00, +0x1b,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0xe1,0x00,0x00,0x00, +0x98,0x01,0x00,0x00,0x97,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0xbb,0x00,0x00,0x00,0x99,0x01,0x00,0x00,0x98,0x01,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9f,0x01,0x00,0x00, +0x90,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0x41,0x00,0x08,0x00, +0xda,0x00,0x00,0x00,0xa0,0x01,0x00,0x00,0xc3,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,0x28,0x01,0x00,0x00, +0x9f,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00, +0xa1,0x01,0x00,0x00,0xa0,0x01,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xa2,0x01,0x00,0x00,0xa1,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xa3,0x01,0x00,0x00, +0xa2,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0xa4,0x01,0x00,0x00,0xa3,0x01,0x00,0x00,0x1b,0x01,0x00,0x00, +0x72,0x00,0x04,0x00,0xe1,0x00,0x00,0x00,0xa5,0x01,0x00,0x00, +0xa4,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0xbb,0x00,0x00,0x00, +0xa6,0x01,0x00,0x00,0xa5,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xad,0x01,0x00,0x00,0x90,0x00,0x00,0x00, +0xac,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0xda,0x00,0x00,0x00, +0xae,0x01,0x00,0x00,0xc3,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0xc6,0x00,0x00,0x00,0x28,0x01,0x00,0x00,0xad,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0xaf,0x01,0x00,0x00, +0xae,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xb0,0x01,0x00,0x00,0xaf,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0xb1,0x01,0x00,0x00,0xb0,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xb2,0x01,0x00,0x00, +0xb1,0x01,0x00,0x00,0x1b,0x01,0x00,0x00,0x72,0x00,0x04,0x00, +0xe1,0x00,0x00,0x00,0xb3,0x01,0x00,0x00,0xb2,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0xb4,0x01,0x00,0x00, +0xb3,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00, +0xbb,0x01,0x00,0x00,0x86,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, +0xbb,0x00,0x00,0x00,0xbc,0x01,0x00,0x00,0xbb,0x01,0x00,0x00, +0x3b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00, +0xc4,0x01,0x00,0x00,0x93,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, +0xbb,0x00,0x00,0x00,0xc5,0x01,0x00,0x00,0xc4,0x01,0x00,0x00, +0x3b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00, +0xcd,0x01,0x00,0x00,0xa0,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, +0xbb,0x00,0x00,0x00,0xce,0x01,0x00,0x00,0xcd,0x01,0x00,0x00, +0x3b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00, +0xd6,0x01,0x00,0x00,0xae,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, +0xbb,0x00,0x00,0x00,0xd7,0x01,0x00,0x00,0xd6,0x01,0x00,0x00, +0x3b,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xdd,0x01,0x00,0x00,0x90,0x00,0x00,0x00,0x92,0x00,0x00,0x00, +0x41,0x00,0x08,0x00,0xda,0x00,0x00,0x00,0xde,0x01,0x00,0x00, +0xc3,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xc6,0x00,0x00,0x00, +0x28,0x01,0x00,0x00,0xdd,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0xbb,0x00,0x00,0x00,0xdf,0x01,0x00,0x00,0xde,0x01,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xe0,0x01,0x00,0x00, +0xdf,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0xe1,0x01,0x00,0x00,0xe0,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0xe2,0x01,0x00,0x00,0xe1,0x01,0x00,0x00, +0x1b,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0xe1,0x00,0x00,0x00, +0xe3,0x01,0x00,0x00,0xe2,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0xbb,0x00,0x00,0x00,0xe4,0x01,0x00,0x00,0xe3,0x01,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xeb,0x01,0x00,0x00, +0x90,0x00,0x00,0x00,0xea,0x01,0x00,0x00,0x41,0x00,0x08,0x00, +0xda,0x00,0x00,0x00,0xec,0x01,0x00,0x00,0xc3,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,0x28,0x01,0x00,0x00, +0xeb,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00, +0xed,0x01,0x00,0x00,0xec,0x01,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xee,0x01,0x00,0x00,0xed,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xef,0x01,0x00,0x00, +0xee,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0xf0,0x01,0x00,0x00,0xef,0x01,0x00,0x00,0x1b,0x01,0x00,0x00, +0x72,0x00,0x04,0x00,0xe1,0x00,0x00,0x00,0xf1,0x01,0x00,0x00, +0xf0,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0xbb,0x00,0x00,0x00, +0xf2,0x01,0x00,0x00,0xf1,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xf9,0x01,0x00,0x00,0x90,0x00,0x00,0x00, +0xf8,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0xda,0x00,0x00,0x00, +0xfa,0x01,0x00,0x00,0xc3,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0xc6,0x00,0x00,0x00,0x28,0x01,0x00,0x00,0xf9,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0xfb,0x01,0x00,0x00, +0xfa,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xfc,0x01,0x00,0x00,0xfb,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0xfd,0x01,0x00,0x00,0xfc,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xfe,0x01,0x00,0x00, +0xfd,0x01,0x00,0x00,0x1b,0x01,0x00,0x00,0x72,0x00,0x04,0x00, +0xe1,0x00,0x00,0x00,0xff,0x01,0x00,0x00,0xfe,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0x00,0x02,0x00,0x00, +0xff,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x07,0x02,0x00,0x00,0x90,0x00,0x00,0x00,0x06,0x02,0x00,0x00, +0x41,0x00,0x08,0x00,0xda,0x00,0x00,0x00,0x08,0x02,0x00,0x00, +0xc3,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xc6,0x00,0x00,0x00, +0x28,0x01,0x00,0x00,0x07,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0xbb,0x00,0x00,0x00,0x09,0x02,0x00,0x00,0x08,0x02,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x0a,0x02,0x00,0x00, +0x09,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x0b,0x02,0x00,0x00,0x0a,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x0c,0x02,0x00,0x00,0x0b,0x02,0x00,0x00, +0x1b,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0xe1,0x00,0x00,0x00, +0x0d,0x02,0x00,0x00,0x0c,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, +0xbb,0x00,0x00,0x00,0x0e,0x02,0x00,0x00,0x0d,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0x16,0x02,0x00,0x00, +0xde,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0xbb,0x00,0x00,0x00, +0x17,0x02,0x00,0x00,0x16,0x02,0x00,0x00,0x3b,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0x1f,0x02,0x00,0x00, +0xec,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0xbb,0x00,0x00,0x00, +0x20,0x02,0x00,0x00,0x1f,0x02,0x00,0x00,0x3b,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0x28,0x02,0x00,0x00, +0xfa,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0xbb,0x00,0x00,0x00, +0x29,0x02,0x00,0x00,0x28,0x02,0x00,0x00,0x3b,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0x31,0x02,0x00,0x00, +0x08,0x02,0x00,0x00,0xc2,0x00,0x05,0x00,0xbb,0x00,0x00,0x00, +0x32,0x02,0x00,0x00,0x31,0x02,0x00,0x00,0x3b,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3a,0x02,0x00,0x00, +0x09,0x04,0x00,0x00,0xb2,0x00,0x00,0x00,0x41,0x00,0x06,0x00, +0xc7,0x00,0x00,0x00,0x3b,0x02,0x00,0x00,0x37,0x02,0x00,0x00, +0x61,0x00,0x00,0x00,0x3a,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0xb9,0x00,0x00,0x00,0x3c,0x02,0x00,0x00,0x3b,0x02,0x00,0x00, +0x73,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x3d,0x02,0x00,0x00, +0x3c,0x02,0x00,0x00,0x70,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0x3f,0x02,0x00,0x00,0x8c,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x44,0x02,0x00,0x00,0x3a,0x02,0x00,0x00, +0x12,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xc7,0x00,0x00,0x00, +0x45,0x02,0x00,0x00,0x37,0x02,0x00,0x00,0x61,0x00,0x00,0x00, +0x44,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xb9,0x00,0x00,0x00, +0x46,0x02,0x00,0x00,0x45,0x02,0x00,0x00,0x73,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0x47,0x02,0x00,0x00,0x46,0x02,0x00,0x00, +0x70,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x49,0x02,0x00,0x00, +0x99,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x97,0x00,0x00,0x00, +0x4a,0x02,0x00,0x00,0x47,0x02,0x00,0x00,0x49,0x02,0x00,0x00, +0x0c,0x00,0x08,0x00,0x97,0x00,0x00,0x00,0x4b,0x02,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x3d,0x02,0x00,0x00, +0x3f,0x02,0x00,0x00,0x4a,0x02,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x4f,0x02,0x00,0x00,0x3a,0x02,0x00,0x00, +0x51,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xc7,0x00,0x00,0x00, +0x50,0x02,0x00,0x00,0x37,0x02,0x00,0x00,0x61,0x00,0x00,0x00, +0x4f,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xb9,0x00,0x00,0x00, +0x51,0x02,0x00,0x00,0x50,0x02,0x00,0x00,0x73,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0x52,0x02,0x00,0x00,0x51,0x02,0x00,0x00, +0x70,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x54,0x02,0x00,0x00, +0xa6,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0x97,0x00,0x00,0x00, +0x56,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0x52,0x02,0x00,0x00,0x54,0x02,0x00,0x00,0x4b,0x02,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5a,0x02,0x00,0x00, +0x3a,0x02,0x00,0x00,0xac,0x01,0x00,0x00,0x41,0x00,0x06,0x00, +0xc7,0x00,0x00,0x00,0x5b,0x02,0x00,0x00,0x37,0x02,0x00,0x00, +0x61,0x00,0x00,0x00,0x5a,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0xb9,0x00,0x00,0x00,0x5c,0x02,0x00,0x00,0x5b,0x02,0x00,0x00, +0x73,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x5d,0x02,0x00,0x00, +0x5c,0x02,0x00,0x00,0x70,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0x5f,0x02,0x00,0x00,0xb4,0x01,0x00,0x00,0x0c,0x00,0x08,0x00, +0x97,0x00,0x00,0x00,0x61,0x02,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x5d,0x02,0x00,0x00,0x5f,0x02,0x00,0x00, +0x56,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x66,0x02,0x00,0x00,0x3a,0x02,0x00,0x00,0x8c,0x00,0x00,0x00, +0x41,0x00,0x06,0x00,0xc7,0x00,0x00,0x00,0x67,0x02,0x00,0x00, +0x37,0x02,0x00,0x00,0x61,0x00,0x00,0x00,0x66,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0xb9,0x00,0x00,0x00,0x68,0x02,0x00,0x00, +0x67,0x02,0x00,0x00,0x73,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0x69,0x02,0x00,0x00,0x68,0x02,0x00,0x00,0x70,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0x6b,0x02,0x00,0x00,0xbc,0x01,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x71,0x02,0x00,0x00, +0x3a,0x02,0x00,0x00,0x70,0x02,0x00,0x00,0x41,0x00,0x06,0x00, +0xc7,0x00,0x00,0x00,0x72,0x02,0x00,0x00,0x37,0x02,0x00,0x00, +0x61,0x00,0x00,0x00,0x71,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0xb9,0x00,0x00,0x00,0x73,0x02,0x00,0x00,0x72,0x02,0x00,0x00, +0x73,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x74,0x02,0x00,0x00, +0x73,0x02,0x00,0x00,0x70,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0x76,0x02,0x00,0x00,0xc5,0x01,0x00,0x00,0x85,0x00,0x05,0x00, +0x97,0x00,0x00,0x00,0x77,0x02,0x00,0x00,0x74,0x02,0x00,0x00, +0x76,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x97,0x00,0x00,0x00, +0x78,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0x69,0x02,0x00,0x00,0x6b,0x02,0x00,0x00,0x77,0x02,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7d,0x02,0x00,0x00, +0x3a,0x02,0x00,0x00,0x7c,0x02,0x00,0x00,0x41,0x00,0x06,0x00, +0xc7,0x00,0x00,0x00,0x7e,0x02,0x00,0x00,0x37,0x02,0x00,0x00, +0x61,0x00,0x00,0x00,0x7d,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0xb9,0x00,0x00,0x00,0x7f,0x02,0x00,0x00,0x7e,0x02,0x00,0x00, +0x73,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x80,0x02,0x00,0x00, +0x7f,0x02,0x00,0x00,0x70,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0x82,0x02,0x00,0x00,0xce,0x01,0x00,0x00,0x0c,0x00,0x08,0x00, +0x97,0x00,0x00,0x00,0x84,0x02,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x80,0x02,0x00,0x00,0x82,0x02,0x00,0x00, +0x78,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x89,0x02,0x00,0x00,0x3a,0x02,0x00,0x00,0x88,0x02,0x00,0x00, +0x41,0x00,0x06,0x00,0xc7,0x00,0x00,0x00,0x8a,0x02,0x00,0x00, +0x37,0x02,0x00,0x00,0x61,0x00,0x00,0x00,0x89,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0xb9,0x00,0x00,0x00,0x8b,0x02,0x00,0x00, +0x8a,0x02,0x00,0x00,0x73,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0x8c,0x02,0x00,0x00,0x8b,0x02,0x00,0x00,0x70,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0x8e,0x02,0x00,0x00,0xd7,0x01,0x00,0x00, +0x0c,0x00,0x08,0x00,0x97,0x00,0x00,0x00,0x90,0x02,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x8c,0x02,0x00,0x00, +0x8e,0x02,0x00,0x00,0x84,0x02,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x94,0x02,0x00,0x00,0x09,0x04,0x00,0x00, +0xb6,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xc7,0x00,0x00,0x00, +0x95,0x02,0x00,0x00,0x37,0x02,0x00,0x00,0x61,0x00,0x00,0x00, +0x94,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xb9,0x00,0x00,0x00, +0x96,0x02,0x00,0x00,0x95,0x02,0x00,0x00,0x73,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0x97,0x02,0x00,0x00,0x96,0x02,0x00,0x00, +0x70,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x99,0x02,0x00,0x00, +0xe4,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x9e,0x02,0x00,0x00,0x94,0x02,0x00,0x00,0x12,0x00,0x00,0x00, +0x41,0x00,0x06,0x00,0xc7,0x00,0x00,0x00,0x9f,0x02,0x00,0x00, +0x37,0x02,0x00,0x00,0x61,0x00,0x00,0x00,0x9e,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0xb9,0x00,0x00,0x00,0xa0,0x02,0x00,0x00, +0x9f,0x02,0x00,0x00,0x73,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0xa1,0x02,0x00,0x00,0xa0,0x02,0x00,0x00,0x70,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0xa3,0x02,0x00,0x00,0xf2,0x01,0x00,0x00, +0x85,0x00,0x05,0x00,0x97,0x00,0x00,0x00,0xa4,0x02,0x00,0x00, +0xa1,0x02,0x00,0x00,0xa3,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, +0x97,0x00,0x00,0x00,0xa5,0x02,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x97,0x02,0x00,0x00,0x99,0x02,0x00,0x00, +0xa4,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xa9,0x02,0x00,0x00,0x94,0x02,0x00,0x00,0x51,0x00,0x00,0x00, +0x41,0x00,0x06,0x00,0xc7,0x00,0x00,0x00,0xaa,0x02,0x00,0x00, +0x37,0x02,0x00,0x00,0x61,0x00,0x00,0x00,0xa9,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0xb9,0x00,0x00,0x00,0xab,0x02,0x00,0x00, +0xaa,0x02,0x00,0x00,0x73,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0xac,0x02,0x00,0x00,0xab,0x02,0x00,0x00,0x70,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0xae,0x02,0x00,0x00,0x00,0x02,0x00,0x00, +0x0c,0x00,0x08,0x00,0x97,0x00,0x00,0x00,0xb0,0x02,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xac,0x02,0x00,0x00, +0xae,0x02,0x00,0x00,0xa5,0x02,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xb4,0x02,0x00,0x00,0x94,0x02,0x00,0x00, +0xac,0x01,0x00,0x00,0x41,0x00,0x06,0x00,0xc7,0x00,0x00,0x00, +0xb5,0x02,0x00,0x00,0x37,0x02,0x00,0x00,0x61,0x00,0x00,0x00, +0xb4,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xb9,0x00,0x00,0x00, +0xb6,0x02,0x00,0x00,0xb5,0x02,0x00,0x00,0x73,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0xb7,0x02,0x00,0x00,0xb6,0x02,0x00,0x00, +0x70,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0xb9,0x02,0x00,0x00, +0x0e,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x97,0x00,0x00,0x00, +0xbb,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0xb7,0x02,0x00,0x00,0xb9,0x02,0x00,0x00,0xb0,0x02,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc0,0x02,0x00,0x00, +0x94,0x02,0x00,0x00,0x8c,0x00,0x00,0x00,0x41,0x00,0x06,0x00, +0xc7,0x00,0x00,0x00,0xc1,0x02,0x00,0x00,0x37,0x02,0x00,0x00, +0x61,0x00,0x00,0x00,0xc0,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0xb9,0x00,0x00,0x00,0xc2,0x02,0x00,0x00,0xc1,0x02,0x00,0x00, +0x73,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0xc3,0x02,0x00,0x00, +0xc2,0x02,0x00,0x00,0x70,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0xc5,0x02,0x00,0x00,0x17,0x02,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xca,0x02,0x00,0x00,0x94,0x02,0x00,0x00, +0x70,0x02,0x00,0x00,0x41,0x00,0x06,0x00,0xc7,0x00,0x00,0x00, +0xcb,0x02,0x00,0x00,0x37,0x02,0x00,0x00,0x61,0x00,0x00,0x00, +0xca,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xb9,0x00,0x00,0x00, +0xcc,0x02,0x00,0x00,0xcb,0x02,0x00,0x00,0x73,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0xcd,0x02,0x00,0x00,0xcc,0x02,0x00,0x00, +0x70,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0xcf,0x02,0x00,0x00, +0x20,0x02,0x00,0x00,0x85,0x00,0x05,0x00,0x97,0x00,0x00,0x00, +0xd0,0x02,0x00,0x00,0xcd,0x02,0x00,0x00,0xcf,0x02,0x00,0x00, +0x0c,0x00,0x08,0x00,0x97,0x00,0x00,0x00,0xd1,0x02,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xc3,0x02,0x00,0x00, +0xc5,0x02,0x00,0x00,0xd0,0x02,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xd5,0x02,0x00,0x00,0x94,0x02,0x00,0x00, +0x7c,0x02,0x00,0x00,0x41,0x00,0x06,0x00,0xc7,0x00,0x00,0x00, +0xd6,0x02,0x00,0x00,0x37,0x02,0x00,0x00,0x61,0x00,0x00,0x00, +0xd5,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xb9,0x00,0x00,0x00, +0xd7,0x02,0x00,0x00,0xd6,0x02,0x00,0x00,0x73,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0xd8,0x02,0x00,0x00,0xd7,0x02,0x00,0x00, +0x70,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0xda,0x02,0x00,0x00, +0x29,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x97,0x00,0x00,0x00, +0xdc,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0xd8,0x02,0x00,0x00,0xda,0x02,0x00,0x00,0xd1,0x02,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe0,0x02,0x00,0x00, +0x94,0x02,0x00,0x00,0x88,0x02,0x00,0x00,0x41,0x00,0x06,0x00, +0xc7,0x00,0x00,0x00,0xe1,0x02,0x00,0x00,0x37,0x02,0x00,0x00, +0x61,0x00,0x00,0x00,0xe0,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0xb9,0x00,0x00,0x00,0xe2,0x02,0x00,0x00,0xe1,0x02,0x00,0x00, +0x73,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0xe3,0x02,0x00,0x00, +0xe2,0x02,0x00,0x00,0x70,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0xe5,0x02,0x00,0x00,0x32,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, +0x97,0x00,0x00,0x00,0xe7,0x02,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0xe3,0x02,0x00,0x00,0xe5,0x02,0x00,0x00, +0xdc,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xb9,0x00,0x00,0x00, +0xed,0x02,0x00,0x00,0x3b,0x02,0x00,0x00,0x73,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0xee,0x02,0x00,0x00,0xed,0x02,0x00,0x00, +0x70,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0xf0,0x02,0x00,0x00, +0xff,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xb9,0x00,0x00,0x00, +0xf7,0x02,0x00,0x00,0x67,0x02,0x00,0x00,0x73,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0xf8,0x02,0x00,0x00,0xf7,0x02,0x00,0x00, +0x70,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0xfa,0x02,0x00,0x00, +0x0e,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x97,0x00,0x00,0x00, +0xfb,0x02,0x00,0x00,0xf8,0x02,0x00,0x00,0xfa,0x02,0x00,0x00, +0x0c,0x00,0x08,0x00,0x97,0x00,0x00,0x00,0xfc,0x02,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xee,0x02,0x00,0x00, +0xf0,0x02,0x00,0x00,0xfb,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0xb9,0x00,0x00,0x00,0x01,0x03,0x00,0x00,0x95,0x02,0x00,0x00, +0x73,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x02,0x03,0x00,0x00, +0x01,0x03,0x00,0x00,0x70,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0x04,0x03,0x00,0x00,0x64,0x01,0x00,0x00,0x0c,0x00,0x08,0x00, +0x97,0x00,0x00,0x00,0x06,0x03,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x02,0x03,0x00,0x00,0x04,0x03,0x00,0x00, +0xfc,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xb9,0x00,0x00,0x00, +0x0c,0x03,0x00,0x00,0xc1,0x02,0x00,0x00,0x73,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0x0d,0x03,0x00,0x00,0x0c,0x03,0x00,0x00, +0x70,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x0f,0x03,0x00,0x00, +0x80,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0x97,0x00,0x00,0x00, +0x11,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0x0d,0x03,0x00,0x00,0x0f,0x03,0x00,0x00,0x06,0x03,0x00,0x00, +0x3d,0x00,0x04,0x00,0xb9,0x00,0x00,0x00,0x17,0x03,0x00,0x00, +0x45,0x02,0x00,0x00,0x73,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0x18,0x03,0x00,0x00,0x17,0x03,0x00,0x00,0x0c,0x00,0x08,0x00, +0x97,0x00,0x00,0x00,0x1c,0x03,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x18,0x03,0x00,0x00,0xf0,0x02,0x00,0x00, +0x11,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0xb9,0x00,0x00,0x00, +0x22,0x03,0x00,0x00,0x72,0x02,0x00,0x00,0x73,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0x23,0x03,0x00,0x00,0x22,0x03,0x00,0x00, +0x0c,0x00,0x08,0x00,0x97,0x00,0x00,0x00,0x27,0x03,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x23,0x03,0x00,0x00, +0xfa,0x02,0x00,0x00,0x1c,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, +0xb9,0x00,0x00,0x00,0x2d,0x03,0x00,0x00,0x9f,0x02,0x00,0x00, +0x73,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x2e,0x03,0x00,0x00, +0x2d,0x03,0x00,0x00,0x0c,0x00,0x08,0x00,0x97,0x00,0x00,0x00, +0x32,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0x2e,0x03,0x00,0x00,0x04,0x03,0x00,0x00,0x27,0x03,0x00,0x00, +0x3d,0x00,0x04,0x00,0xb9,0x00,0x00,0x00,0x38,0x03,0x00,0x00, +0xcb,0x02,0x00,0x00,0x73,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0x39,0x03,0x00,0x00,0x38,0x03,0x00,0x00,0x0c,0x00,0x08,0x00, +0x97,0x00,0x00,0x00,0x3d,0x03,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x39,0x03,0x00,0x00,0x0f,0x03,0x00,0x00, +0x32,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0xb9,0x00,0x00,0x00, +0x43,0x03,0x00,0x00,0x50,0x02,0x00,0x00,0x73,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0x44,0x03,0x00,0x00,0x43,0x03,0x00,0x00, +0x0c,0x00,0x08,0x00,0x97,0x00,0x00,0x00,0x48,0x03,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x44,0x03,0x00,0x00, +0xf0,0x02,0x00,0x00,0x3d,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, +0xb9,0x00,0x00,0x00,0x4e,0x03,0x00,0x00,0x7e,0x02,0x00,0x00, +0x73,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x4f,0x03,0x00,0x00, +0x4e,0x03,0x00,0x00,0x0c,0x00,0x08,0x00,0x97,0x00,0x00,0x00, +0x53,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0x4f,0x03,0x00,0x00,0xfa,0x02,0x00,0x00,0x48,0x03,0x00,0x00, +0x3d,0x00,0x04,0x00,0xb9,0x00,0x00,0x00,0x59,0x03,0x00,0x00, +0xaa,0x02,0x00,0x00,0x73,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0x5a,0x03,0x00,0x00,0x59,0x03,0x00,0x00,0x0c,0x00,0x08,0x00, +0x97,0x00,0x00,0x00,0x5e,0x03,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x5a,0x03,0x00,0x00,0x04,0x03,0x00,0x00, +0x53,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0xb9,0x00,0x00,0x00, +0x64,0x03,0x00,0x00,0xd6,0x02,0x00,0x00,0x73,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0x65,0x03,0x00,0x00,0x64,0x03,0x00,0x00, +0x0c,0x00,0x08,0x00,0x97,0x00,0x00,0x00,0x69,0x03,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x65,0x03,0x00,0x00, +0x0f,0x03,0x00,0x00,0x5e,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, +0xb9,0x00,0x00,0x00,0x6f,0x03,0x00,0x00,0x5b,0x02,0x00,0x00, +0x73,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x70,0x03,0x00,0x00, +0x6f,0x03,0x00,0x00,0x0c,0x00,0x08,0x00,0x97,0x00,0x00,0x00, +0x74,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0x70,0x03,0x00,0x00,0xf0,0x02,0x00,0x00,0x69,0x03,0x00,0x00, +0x3d,0x00,0x04,0x00,0xb9,0x00,0x00,0x00,0x7a,0x03,0x00,0x00, +0x8a,0x02,0x00,0x00,0x73,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0x7b,0x03,0x00,0x00,0x7a,0x03,0x00,0x00,0x0c,0x00,0x08,0x00, +0x97,0x00,0x00,0x00,0x7f,0x03,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x7b,0x03,0x00,0x00,0xfa,0x02,0x00,0x00, +0x74,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0xb9,0x00,0x00,0x00, +0x85,0x03,0x00,0x00,0xb5,0x02,0x00,0x00,0x73,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0x86,0x03,0x00,0x00,0x85,0x03,0x00,0x00, +0x0c,0x00,0x08,0x00,0x97,0x00,0x00,0x00,0x8a,0x03,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x86,0x03,0x00,0x00, +0x04,0x03,0x00,0x00,0x7f,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, +0xb9,0x00,0x00,0x00,0x90,0x03,0x00,0x00,0xe1,0x02,0x00,0x00, +0x73,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x91,0x03,0x00,0x00, +0x90,0x03,0x00,0x00,0x0c,0x00,0x08,0x00,0x97,0x00,0x00,0x00, +0x95,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0x91,0x03,0x00,0x00,0x0f,0x03,0x00,0x00,0x8a,0x03,0x00,0x00, +0x70,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x9d,0x03,0x00,0x00, +0xe3,0x00,0x00,0x00,0x70,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0xa1,0x03,0x00,0x00,0xf1,0x00,0x00,0x00,0x85,0x00,0x05,0x00, +0x97,0x00,0x00,0x00,0xa2,0x03,0x00,0x00,0x90,0x02,0x00,0x00, +0xa1,0x03,0x00,0x00,0x0c,0x00,0x08,0x00,0x97,0x00,0x00,0x00, +0xa3,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0x61,0x02,0x00,0x00,0x9d,0x03,0x00,0x00,0xa2,0x03,0x00,0x00, +0x70,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0xa6,0x03,0x00,0x00, +0x2c,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0x97,0x00,0x00,0x00, +0xa8,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0xbb,0x02,0x00,0x00,0xa6,0x03,0x00,0x00,0xa3,0x03,0x00,0x00, +0x70,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0xab,0x03,0x00,0x00, +0x48,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0x97,0x00,0x00,0x00, +0xad,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0xe7,0x02,0x00,0x00,0xab,0x03,0x00,0x00,0xa8,0x03,0x00,0x00, +0x85,0x00,0x05,0x00,0x97,0x00,0x00,0x00,0xb1,0x03,0x00,0x00, +0xd1,0x00,0x00,0x00,0x95,0x03,0x00,0x00,0x7f,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0x12,0x04,0x00,0x00,0xb1,0x03,0x00,0x00, +0x0c,0x00,0x08,0x00,0x97,0x00,0x00,0x00,0xb2,0x03,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xca,0x00,0x00,0x00, +0xad,0x03,0x00,0x00,0x12,0x04,0x00,0x00,0x3d,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0xb4,0x03,0x00,0x00,0xa2,0x00,0x00,0x00, +0x81,0x00,0x05,0x00,0x97,0x00,0x00,0x00,0xb5,0x03,0x00,0x00, +0xb4,0x03,0x00,0x00,0xb2,0x03,0x00,0x00,0x3e,0x00,0x03,0x00, +0xa2,0x00,0x00,0x00,0xb5,0x03,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xb8,0x03,0x00,0x00,0x0e,0x04,0x00,0x00, +0x51,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xa5,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0xa7,0x00,0x00,0x00,0xe0,0x00,0x04,0x00, +0x51,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0xb9,0x03,0x00,0x00, +0xf9,0x00,0x02,0x00,0xbb,0x03,0x00,0x00,0xf8,0x00,0x02,0x00, +0xbb,0x03,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00, +0x0f,0x04,0x00,0x00,0x9b,0x00,0x00,0x00,0xa7,0x00,0x00,0x00, +0xd2,0x03,0x00,0x00,0xbe,0x03,0x00,0x00,0xac,0x00,0x05,0x00, +0xac,0x00,0x00,0x00,0xc1,0x03,0x00,0x00,0x0f,0x04,0x00,0x00, +0x4b,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xbd,0x03,0x00,0x00, +0xbe,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, +0xc1,0x03,0x00,0x00,0xbc,0x03,0x00,0x00,0xbd,0x03,0x00,0x00, +0xf8,0x00,0x02,0x00,0xbc,0x03,0x00,0x00,0xb0,0x00,0x05,0x00, +0xac,0x00,0x00,0x00,0xc4,0x03,0x00,0x00,0x71,0x00,0x00,0x00, +0x0f,0x04,0x00,0x00,0xf7,0x00,0x03,0x00,0xc6,0x03,0x00,0x00, +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xc4,0x03,0x00,0x00, +0xc5,0x03,0x00,0x00,0xc6,0x03,0x00,0x00,0xf8,0x00,0x02,0x00, +0xc5,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xca,0x03,0x00,0x00,0x71,0x00,0x00,0x00,0x0f,0x04,0x00,0x00, +0x41,0x00,0x05,0x00,0xa1,0x00,0x00,0x00,0xcb,0x03,0x00,0x00, +0x9a,0x00,0x00,0x00,0xca,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0xcc,0x03,0x00,0x00,0xcb,0x03,0x00,0x00, +0x41,0x00,0x05,0x00,0xa1,0x00,0x00,0x00,0xcd,0x03,0x00,0x00, +0x9a,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0xce,0x03,0x00,0x00,0xcd,0x03,0x00,0x00, +0x81,0x00,0x05,0x00,0x97,0x00,0x00,0x00,0xcf,0x03,0x00,0x00, +0xce,0x03,0x00,0x00,0xcc,0x03,0x00,0x00,0x3e,0x00,0x03,0x00, +0xcd,0x03,0x00,0x00,0xcf,0x03,0x00,0x00,0xf9,0x00,0x02,0x00, +0xc6,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0xc6,0x03,0x00,0x00, +0xe0,0x00,0x04,0x00,0x51,0x00,0x00,0x00,0x51,0x00,0x00,0x00, +0xb9,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,0xbe,0x03,0x00,0x00, +0xf8,0x00,0x02,0x00,0xbe,0x03,0x00,0x00,0xc2,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xd2,0x03,0x00,0x00,0x0f,0x04,0x00,0x00, +0xd7,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xbb,0x03,0x00,0x00, +0xf8,0x00,0x02,0x00,0xbd,0x03,0x00,0x00,0xaa,0x00,0x05,0x00, +0xac,0x00,0x00,0x00,0xd4,0x03,0x00,0x00,0x71,0x00,0x00,0x00, +0x4b,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0xd6,0x03,0x00,0x00, +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xd4,0x03,0x00,0x00, +0xd5,0x03,0x00,0x00,0xd6,0x03,0x00,0x00,0xf8,0x00,0x02,0x00, +0xd5,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xdd,0x03,0x00,0x00,0x0d,0x04,0x00,0x00,0x55,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0xa1,0x00,0x00,0x00,0xde,0x03,0x00,0x00, +0x9a,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0xdf,0x03,0x00,0x00,0xde,0x03,0x00,0x00, +0x41,0x00,0x06,0x00,0xe0,0x03,0x00,0x00,0xe1,0x03,0x00,0x00, +0xda,0x03,0x00,0x00,0x61,0x00,0x00,0x00,0xdd,0x03,0x00,0x00, +0x3e,0x00,0x03,0x00,0xe1,0x03,0x00,0x00,0xdf,0x03,0x00,0x00, +0xf9,0x00,0x02,0x00,0xd6,0x03,0x00,0x00,0xf8,0x00,0x02,0x00, +0xd6,0x03,0x00,0x00,0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00, + }; -const uint64_t mul_mat_vec_q4_k_f16_f32_len = 10400; +const uint64_t mul_mat_vec_q4_k_f16_f32_len = 10548; unsigned char mul_mat_vec_q4_k_f32_f32_data[] = { 0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00, -0xec,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, +0xf3,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, 0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x27,0x00,0x00,0x00, 0x11,0x00,0x02,0x00,0x51,0x11,0x00,0x00,0x11,0x00,0x02,0x00, 0x60,0x11,0x00,0x00,0x0b,0x00,0x06,0x00,0x01,0x00,0x00,0x00, 0x47,0x4c,0x53,0x4c,0x2e,0x73,0x74,0x64,0x2e,0x34,0x35,0x30, 0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00,0x00,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x0f,0x00,0x0d,0x00,0x05,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x0f,0x00,0x0e,0x00,0x05,0x00,0x00,0x00, 0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e,0x00,0x00,0x00,0x00, 0x11,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x4a,0x00,0x00,0x00, -0x66,0x00,0x00,0x00,0x93,0x00,0x00,0x00,0xbc,0x00,0x00,0x00, -0x30,0x02,0x00,0x00,0xb4,0x03,0x00,0x00,0x10,0x00,0x06,0x00, -0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x11,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x18,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x03,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00, -0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x18,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x4e,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x9a,0x00,0x00,0x00, +0xc3,0x00,0x00,0x00,0x37,0x02,0x00,0x00,0xbb,0x03,0x00,0x00, +0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x11,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, 0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x18,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x28,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x18,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x4a,0x00,0x00,0x00, -0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x66,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xb6,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xb7,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0xb8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xb8,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0xb8,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xb9,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x90,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0xba,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xba,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0xba,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xbc,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xbc,0x00,0x00,0x00, -0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x2d,0x02,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0x2e,0x02,0x00,0x00,0x00,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x2e,0x02,0x00,0x00, -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0x2e,0x02,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x30,0x02,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x30,0x02,0x00,0x00, -0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xb1,0x03,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0xb2,0x03,0x00,0x00,0x00,0x00,0x00,0x00, -0x19,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xb2,0x03,0x00,0x00, +0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x18,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00, +0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x18,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x07,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x18,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00, +0x09,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x0a,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0x18,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x4a,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x4e,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x6e,0x00,0x00,0x00, +0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xbd,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xbe,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xbf,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0xb2,0x03,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xb4,0x03,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xb4,0x03,0x00,0x00, -0x21,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xbb,0x03,0x00,0x00,0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00, -0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00, -0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x17,0x00,0x04,0x00,0x0f,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x10,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x10,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x12,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x13,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x1e,0x00,0x0d,0x00, -0x18,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0xbf,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0xbf,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x10,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xc0,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x90,0x00,0x00,0x00,0x48,0x00,0x04,0x00, +0xc1,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0xc1,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xc3,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xc3,0x00,0x00,0x00,0x21,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x34,0x02,0x00,0x00, +0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00, +0x35,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x35,0x02,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0x35,0x02,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x37,0x02,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x37,0x02,0x00,0x00,0x21,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xb8,0x03,0x00,0x00, +0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00, +0xb9,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0xb9,0x03,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0xb9,0x03,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xbb,0x03,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xbb,0x03,0x00,0x00,0x21,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xc2,0x03,0x00,0x00, +0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x13,0x00,0x02,0x00, +0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x17,0x00,0x04,0x00, +0x0f,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x10,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x0f,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00, +0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x13,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x1e,0x00,0x0d,0x00,0x18,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x19,0x00,0x00,0x00, -0x1a,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x15,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x1d,0x00,0x00,0x00, -0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x0a,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x2e,0x00,0x00,0x00, -0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x34,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x40,0x00,0x00,0x00, -0x05,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x45,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x10,0x00,0x00,0x00,0x4a,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4b,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,0x00,0x01,0x00,0x00, -0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00,0x66,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x19,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, +0x09,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x1d,0x00,0x00,0x00,0x09,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x28,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,0x09,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x00,0x00, +0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x3b,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x05,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x45,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00, +0x4a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00,0x4e,0x00,0x00,0x00, 0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x69,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x85,0x00,0x00,0x00, +0x51,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x64,0x00,0x00,0x00, +0x00,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00, +0x6e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x8c,0x00,0x00,0x00, 0x20,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x8b,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x16,0x00,0x03,0x00, -0x90,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, -0x91,0x00,0x00,0x00,0x90,0x00,0x00,0x00,0x85,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x92,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x91,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x92,0x00,0x00,0x00, -0x93,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x94,0x00,0x00,0x00,0x10,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0x99,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x9a,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x90,0x00,0x00,0x00,0x14,0x00,0x02,0x00, -0xa5,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xae,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x16,0x00,0x03,0x00, -0xb2,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x17,0x00,0x04,0x00, -0xb3,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x15,0x00,0x04,0x00,0xb4,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x92,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x16,0x00,0x03,0x00, +0x97,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, +0x98,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x8c,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x99,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x98,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x99,0x00,0x00,0x00, +0x9a,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,0x10,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0xa0,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xa1,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x14,0x00,0x02,0x00, +0xac,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xb5,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x16,0x00,0x03,0x00, +0xb9,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x17,0x00,0x04,0x00, +0xba,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x15,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0x08,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xb5,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, -0xb6,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,0xb5,0x00,0x00,0x00, -0x1c,0x00,0x04,0x00,0xb7,0x00,0x00,0x00,0xb4,0x00,0x00,0x00, -0xae,0x00,0x00,0x00,0x1e,0x00,0x05,0x00,0xb8,0x00,0x00,0x00, -0xb3,0x00,0x00,0x00,0xb6,0x00,0x00,0x00,0xb7,0x00,0x00,0x00, -0x1d,0x00,0x03,0x00,0xb9,0x00,0x00,0x00,0xb8,0x00,0x00,0x00, -0x1e,0x00,0x03,0x00,0xba,0x00,0x00,0x00,0xb9,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0xba,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xbb,0x00,0x00,0x00, -0xbc,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0xc0,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xb2,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xd0,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xd3,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0xd8,0x00,0x00,0x00,0x3f,0x00,0x00,0x00, -0x15,0x00,0x04,0x00,0xda,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0xbc,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, +0xbd,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0xbc,0x00,0x00,0x00, +0x1c,0x00,0x04,0x00,0xbe,0x00,0x00,0x00,0xbb,0x00,0x00,0x00, +0xb5,0x00,0x00,0x00,0x1e,0x00,0x05,0x00,0xbf,0x00,0x00,0x00, +0xba,0x00,0x00,0x00,0xbd,0x00,0x00,0x00,0xbe,0x00,0x00,0x00, +0x1d,0x00,0x03,0x00,0xc0,0x00,0x00,0x00,0xbf,0x00,0x00,0x00, +0x1e,0x00,0x03,0x00,0xc1,0x00,0x00,0x00,0xc0,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0xc2,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0xc1,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xc2,0x00,0x00,0x00, +0xc3,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0xc7,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xb9,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xd7,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xda,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0x3f,0x00,0x00,0x00, +0x15,0x00,0x04,0x00,0xe1,0x00,0x00,0x00,0x08,0x00,0x00,0x00, 0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xff,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x0e,0x01,0x00,0x00,0x08,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x14,0x01,0x00,0x00, +0x06,0x01,0x00,0x00,0x05,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x15,0x01,0x00,0x00,0x08,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x1b,0x01,0x00,0x00, 0x0f,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x1f,0x01,0x00,0x00,0xc0,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x21,0x01,0x00,0x00,0x02,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x2c,0x01,0x00,0x00, +0x26,0x01,0x00,0x00,0xc0,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x28,0x01,0x00,0x00,0x02,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x33,0x01,0x00,0x00, 0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xa5,0x01,0x00,0x00,0x03,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xe3,0x01,0x00,0x00,0x41,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xf1,0x01,0x00,0x00, +0xac,0x01,0x00,0x00,0x03,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xea,0x01,0x00,0x00,0x41,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xf8,0x01,0x00,0x00, 0x42,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xff,0x01,0x00,0x00,0x43,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, -0x2d,0x02,0x00,0x00,0x90,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, -0x2e,0x02,0x00,0x00,0x2d,0x02,0x00,0x00,0x20,0x00,0x04,0x00, -0x2f,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,0x2e,0x02,0x00,0x00, -0x3b,0x00,0x04,0x00,0x2f,0x02,0x00,0x00,0x30,0x02,0x00,0x00, -0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x34,0x02,0x00,0x00, -0x0c,0x00,0x00,0x00,0x90,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x65,0x02,0x00,0x00,0x21,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x70,0x02,0x00,0x00, +0x06,0x02,0x00,0x00,0x43,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, +0x34,0x02,0x00,0x00,0x97,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, +0x35,0x02,0x00,0x00,0x34,0x02,0x00,0x00,0x20,0x00,0x04,0x00, +0x36,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,0x35,0x02,0x00,0x00, +0x3b,0x00,0x04,0x00,0x36,0x02,0x00,0x00,0x37,0x02,0x00,0x00, +0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x3b,0x02,0x00,0x00, +0x0c,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x6c,0x02,0x00,0x00,0x21,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x77,0x02,0x00,0x00, 0x22,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x7b,0x02,0x00,0x00,0x23,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x93,0x03,0x00,0x00,0x08,0x01,0x00,0x00, -0x1d,0x00,0x03,0x00,0xb1,0x03,0x00,0x00,0x90,0x00,0x00,0x00, -0x1e,0x00,0x03,0x00,0xb2,0x03,0x00,0x00,0xb1,0x03,0x00,0x00, -0x20,0x00,0x04,0x00,0xb3,0x03,0x00,0x00,0x0c,0x00,0x00,0x00, -0xb2,0x03,0x00,0x00,0x3b,0x00,0x04,0x00,0xb3,0x03,0x00,0x00, -0xb4,0x03,0x00,0x00,0x0c,0x00,0x00,0x00,0x2c,0x00,0x06,0x00, -0x0f,0x00,0x00,0x00,0xbb,0x03,0x00,0x00,0x85,0x00,0x00,0x00, +0x82,0x02,0x00,0x00,0x23,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x9a,0x03,0x00,0x00,0x08,0x01,0x00,0x00, +0x1d,0x00,0x03,0x00,0xb8,0x03,0x00,0x00,0x97,0x00,0x00,0x00, +0x1e,0x00,0x03,0x00,0xb9,0x03,0x00,0x00,0xb8,0x03,0x00,0x00, +0x20,0x00,0x04,0x00,0xba,0x03,0x00,0x00,0x0c,0x00,0x00,0x00, +0xb9,0x03,0x00,0x00,0x3b,0x00,0x04,0x00,0xba,0x03,0x00,0x00, +0xbb,0x03,0x00,0x00,0x0c,0x00,0x00,0x00,0x2c,0x00,0x06,0x00, +0x0f,0x00,0x00,0x00,0xc2,0x03,0x00,0x00,0x8c,0x00,0x00,0x00, 0x12,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x36,0x00,0x05,0x00, 0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x03,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00, 0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00,0x4c,0x00,0x00,0x00, 0x4a,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, 0x06,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,0x4c,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00,0xc3,0x03,0x00,0x00, -0x11,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xc4,0x03,0x00,0x00,0xc3,0x03,0x00,0x00, -0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00,0xc6,0x03,0x00,0x00, -0x1a,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xc7,0x03,0x00,0x00,0xc6,0x03,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc8,0x03,0x00,0x00, -0xc4,0x03,0x00,0x00,0xc7,0x03,0x00,0x00,0x89,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xcc,0x03,0x00,0x00,0xc4,0x03,0x00,0x00, -0xc7,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00, -0xce,0x03,0x00,0x00,0x1a,0x00,0x00,0x00,0x28,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xcf,0x03,0x00,0x00, -0xce,0x03,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xd0,0x03,0x00,0x00,0xc8,0x03,0x00,0x00,0xcf,0x03,0x00,0x00, -0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00,0xd2,0x03,0x00,0x00, -0x1a,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xd3,0x03,0x00,0x00,0xd2,0x03,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd4,0x03,0x00,0x00, -0xcc,0x03,0x00,0x00,0xd3,0x03,0x00,0x00,0x41,0x00,0x05,0x00, -0x1d,0x00,0x00,0x00,0xd6,0x03,0x00,0x00,0x1a,0x00,0x00,0x00, -0x34,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xd7,0x03,0x00,0x00,0xd6,0x03,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xd8,0x03,0x00,0x00,0xd0,0x03,0x00,0x00, -0xd7,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xda,0x03,0x00,0x00,0xd8,0x03,0x00,0x00,0xd4,0x03,0x00,0x00, -0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00,0xdc,0x03,0x00,0x00, -0x1a,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xdd,0x03,0x00,0x00,0xdc,0x03,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xde,0x03,0x00,0x00, -0xda,0x03,0x00,0x00,0xdd,0x03,0x00,0x00,0x41,0x00,0x05,0x00, -0x1d,0x00,0x00,0x00,0xe0,0x03,0x00,0x00,0x1a,0x00,0x00,0x00, -0x40,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xe1,0x03,0x00,0x00,0xe0,0x03,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xe2,0x03,0x00,0x00,0xc4,0x03,0x00,0x00, -0xe1,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00, -0xe4,0x03,0x00,0x00,0x1a,0x00,0x00,0x00,0x45,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xe5,0x03,0x00,0x00, -0xe4,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xe6,0x03,0x00,0x00,0xc4,0x03,0x00,0x00,0xe5,0x03,0x00,0x00, -0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00,0x5a,0x00,0x00,0x00, -0x1a,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x5b,0x00,0x00,0x00,0x5a,0x00,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5d,0x00,0x00,0x00, -0x5b,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,0x86,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0xde,0x03,0x00,0x00, -0x5c,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x63,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,0x5d,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x64,0x00,0x00,0x00, -0x60,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x41,0x00,0x05,0x00, -0x13,0x00,0x00,0x00,0x67,0x00,0x00,0x00,0x66,0x00,0x00,0x00, -0x4b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x68,0x00,0x00,0x00,0x67,0x00,0x00,0x00,0x86,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x6a,0x00,0x00,0x00,0x68,0x00,0x00,0x00, -0x69,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x6e,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x69,0x00,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x72,0x00,0x00,0x00, -0x6a,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x76,0x00,0x00,0x00,0x71,0x00,0x00,0x00, -0x72,0x00,0x00,0x00,0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x77,0x00,0x00,0x00,0x6a,0x00,0x00,0x00,0x76,0x00,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7a,0x00,0x00,0x00, -0x72,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0x89,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,0x72,0x00,0x00,0x00, -0x69,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x80,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0x77,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x82,0x00,0x00,0x00, -0x80,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x83,0x00,0x00,0x00,0x71,0x00,0x00,0x00, -0x82,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x87,0x00,0x00,0x00,0x85,0x00,0x00,0x00,0x7a,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x89,0x00,0x00,0x00, -0x87,0x00,0x00,0x00,0x83,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,0x8b,0x00,0x00,0x00, -0x7a,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x8f,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,0x83,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x96,0x00,0x00,0x00, -0x94,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x98,0x00,0x00,0x00,0x96,0x00,0x00,0x00, -0x6a,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x9a,0x00,0x00,0x00, -0x9b,0x00,0x00,0x00,0x93,0x00,0x00,0x00,0x98,0x00,0x00,0x00, -0x3e,0x00,0x03,0x00,0x9b,0x00,0x00,0x00,0x99,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0x9e,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0x9e,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00, -0xe7,0x03,0x00,0x00,0x6e,0x00,0x00,0x00,0x05,0x00,0x00,0x00, -0x92,0x03,0x00,0x00,0x9f,0x00,0x00,0x00,0xb0,0x00,0x05,0x00, -0xa5,0x00,0x00,0x00,0xa6,0x00,0x00,0x00,0xe7,0x03,0x00,0x00, -0x5d,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xa0,0x00,0x00,0x00, -0x9f,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, -0xa6,0x00,0x00,0x00,0x9f,0x00,0x00,0x00,0xa0,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0x9f,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,0xe7,0x03,0x00,0x00, -0x5c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xab,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,0x8f,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xaf,0x00,0x00,0x00, -0xab,0x00,0x00,0x00,0xae,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0x64,0x00,0x00,0x00, -0xe7,0x03,0x00,0x00,0x41,0x00,0x08,0x00,0xc0,0x00,0x00,0x00, -0xc1,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0xbf,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x4b,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb2,0x00,0x00,0x00,0xc2,0x00,0x00,0x00, -0xc1,0x00,0x00,0x00,0x73,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0xc3,0x00,0x00,0x00,0xc2,0x00,0x00,0x00,0x41,0x00,0x08,0x00, -0xc0,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0xbc,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0x12,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xb2,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00,0x4f,0x00,0x00,0x00, +0x4e,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x4f,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00,0x52,0x00,0x00,0x00, +0x4a,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x53,0x00,0x00,0x00,0x52,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x54,0x00,0x00,0x00, +0x50,0x00,0x00,0x00,0x53,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x4d,0x00,0x00,0x00, +0x54,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00, +0xca,0x03,0x00,0x00,0x11,0x00,0x00,0x00,0x12,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xcb,0x03,0x00,0x00, +0xca,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00, +0xcd,0x03,0x00,0x00,0x1a,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xce,0x03,0x00,0x00, +0xcd,0x03,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xcf,0x03,0x00,0x00,0xcb,0x03,0x00,0x00,0xce,0x03,0x00,0x00, +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd3,0x03,0x00,0x00, +0xcb,0x03,0x00,0x00,0xce,0x03,0x00,0x00,0x41,0x00,0x05,0x00, +0x1d,0x00,0x00,0x00,0xd5,0x03,0x00,0x00,0x1a,0x00,0x00,0x00, +0x28,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xd6,0x03,0x00,0x00,0xd5,0x03,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xd7,0x03,0x00,0x00,0xcf,0x03,0x00,0x00, +0xd6,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00, +0xd9,0x03,0x00,0x00,0x1a,0x00,0x00,0x00,0x2e,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xda,0x03,0x00,0x00, +0xd9,0x03,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xdb,0x03,0x00,0x00,0xd3,0x03,0x00,0x00,0xda,0x03,0x00,0x00, +0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00,0xdd,0x03,0x00,0x00, +0x1a,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xde,0x03,0x00,0x00,0xdd,0x03,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdf,0x03,0x00,0x00, +0xd7,0x03,0x00,0x00,0xde,0x03,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xe1,0x03,0x00,0x00,0xdf,0x03,0x00,0x00, +0xdb,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00, +0xe3,0x03,0x00,0x00,0x1a,0x00,0x00,0x00,0x3b,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xe4,0x03,0x00,0x00, +0xe3,0x03,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xe5,0x03,0x00,0x00,0xe1,0x03,0x00,0x00,0xe4,0x03,0x00,0x00, +0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00,0xe7,0x03,0x00,0x00, +0x1a,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xe8,0x03,0x00,0x00,0xe7,0x03,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe9,0x03,0x00,0x00, +0xcb,0x03,0x00,0x00,0xe8,0x03,0x00,0x00,0x41,0x00,0x05,0x00, +0x1d,0x00,0x00,0x00,0xeb,0x03,0x00,0x00,0x1a,0x00,0x00,0x00, +0x45,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xec,0x03,0x00,0x00,0xeb,0x03,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xed,0x03,0x00,0x00,0xcb,0x03,0x00,0x00, +0xec,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00, +0x62,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x63,0x00,0x00,0x00, +0x62,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x65,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x64,0x00,0x00,0x00, +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x68,0x00,0x00,0x00, +0xe5,0x03,0x00,0x00,0x64,0x00,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,0x55,0x00,0x00,0x00, +0x65,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x6c,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x6b,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00,0x6f,0x00,0x00,0x00, +0x6e,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x6f,0x00,0x00,0x00, +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x71,0x00,0x00,0x00, +0x70,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0x89,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x75,0x00,0x00,0x00,0x70,0x00,0x00,0x00, +0x51,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x79,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x78,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7d,0x00,0x00,0x00, +0x78,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x82,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x71,0x00,0x00,0x00, +0x7d,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x81,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x51,0x00,0x00,0x00, +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x84,0x00,0x00,0x00, +0x79,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x87,0x00,0x00,0x00,0x51,0x00,0x00,0x00, +0x7e,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x89,0x00,0x00,0x00,0x87,0x00,0x00,0x00,0x84,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8a,0x00,0x00,0x00, +0x78,0x00,0x00,0x00,0x89,0x00,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,0x8c,0x00,0x00,0x00, +0x81,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x90,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,0x8a,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x94,0x00,0x00,0x00, +0x92,0x00,0x00,0x00,0x81,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x96,0x00,0x00,0x00,0x94,0x00,0x00,0x00, +0x8a,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x9d,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,0x75,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9f,0x00,0x00,0x00, +0x9d,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0xa1,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,0x9a,0x00,0x00,0x00, +0x9f,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0xa2,0x00,0x00,0x00, +0xa0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xa5,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0xa5,0x00,0x00,0x00,0xf5,0x00,0x07,0x00, +0x06,0x00,0x00,0x00,0xee,0x03,0x00,0x00,0x75,0x00,0x00,0x00, +0x05,0x00,0x00,0x00,0x99,0x03,0x00,0x00,0xa6,0x00,0x00,0x00, +0xb0,0x00,0x05,0x00,0xac,0x00,0x00,0x00,0xad,0x00,0x00,0x00, +0xee,0x03,0x00,0x00,0x65,0x00,0x00,0x00,0xf6,0x00,0x04,0x00, +0xa7,0x00,0x00,0x00,0xa6,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0xfa,0x00,0x04,0x00,0xad,0x00,0x00,0x00,0xa6,0x00,0x00,0x00, +0xa7,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xa6,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb0,0x00,0x00,0x00, +0xee,0x03,0x00,0x00,0x64,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,0xb0,0x00,0x00,0x00, +0x96,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xb6,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,0xb5,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc6,0x00,0x00,0x00, +0x6c,0x00,0x00,0x00,0xee,0x03,0x00,0x00,0x41,0x00,0x08,0x00, +0xc7,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0xc3,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0x4b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xb9,0x00,0x00,0x00, 0xc9,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x73,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0xca,0x00,0x00,0x00,0xc9,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd2,0x00,0x00,0x00, -0x7a,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0x41,0x00,0x08,0x00, -0xd3,0x00,0x00,0x00,0xd4,0x00,0x00,0x00,0xbc,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0xd0,0x00,0x00,0x00, -0xd2,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00, -0xd5,0x00,0x00,0x00,0xd4,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,0xd5,0x00,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xd7,0x00,0x00,0x00, -0xd6,0x00,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0xd9,0x00,0x00,0x00,0xd7,0x00,0x00,0x00,0xd8,0x00,0x00,0x00, -0x72,0x00,0x04,0x00,0xda,0x00,0x00,0x00,0xdb,0x00,0x00,0x00, -0xd9,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0xb4,0x00,0x00,0x00, -0xdc,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xe3,0x00,0x00,0x00,0xd2,0x00,0x00,0x00, -0x12,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xd3,0x00,0x00,0x00, -0xe4,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0xbf,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0xe3,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00,0xe5,0x00,0x00,0x00, -0xe4,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xe6,0x00,0x00,0x00,0xe5,0x00,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,0xe6,0x00,0x00,0x00, -0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xe8,0x00,0x00,0x00, -0xe7,0x00,0x00,0x00,0xd8,0x00,0x00,0x00,0x72,0x00,0x04,0x00, -0xda,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,0xe8,0x00,0x00,0x00, -0x7c,0x00,0x04,0x00,0xb4,0x00,0x00,0x00,0xea,0x00,0x00,0x00, -0xe9,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xf1,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,0x71,0x00,0x00,0x00, -0x41,0x00,0x08,0x00,0xd3,0x00,0x00,0x00,0xf2,0x00,0x00,0x00, -0xbc,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xbf,0x00,0x00,0x00, -0xd0,0x00,0x00,0x00,0xf1,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb4,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,0xf2,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xf4,0x00,0x00,0x00, -0xf3,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0xf5,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,0xf5,0x00,0x00,0x00, -0xd8,0x00,0x00,0x00,0x72,0x00,0x04,0x00,0xda,0x00,0x00,0x00, -0xf7,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,0x7c,0x00,0x04,0x00, -0xb4,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0xf7,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x00,0x01,0x00,0x00, -0xd2,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x41,0x00,0x08,0x00, -0xd3,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0xbc,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0xd0,0x00,0x00,0x00, -0x00,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00, -0x02,0x01,0x00,0x00,0x01,0x01,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x03,0x01,0x00,0x00,0x02,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x04,0x01,0x00,0x00, -0x03,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x05,0x01,0x00,0x00,0x04,0x01,0x00,0x00,0xd8,0x00,0x00,0x00, -0x72,0x00,0x04,0x00,0xda,0x00,0x00,0x00,0x06,0x01,0x00,0x00, -0x05,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0xb4,0x00,0x00,0x00, -0x07,0x01,0x00,0x00,0x06,0x01,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x0f,0x01,0x00,0x00,0xd2,0x00,0x00,0x00, -0x0e,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0xd3,0x00,0x00,0x00, -0x10,0x01,0x00,0x00,0xbc,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0xbf,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0x0f,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00,0x11,0x01,0x00,0x00, -0x10,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x12,0x01,0x00,0x00,0x11,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x13,0x01,0x00,0x00,0x12,0x01,0x00,0x00, -0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x15,0x01,0x00,0x00, -0x13,0x01,0x00,0x00,0x14,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb4,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,0xd4,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x1d,0x01,0x00,0x00, -0x1c,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x1e,0x01,0x00,0x00,0x1d,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x20,0x01,0x00,0x00,0x1e,0x01,0x00,0x00, -0x1f,0x01,0x00,0x00,0xc3,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x22,0x01,0x00,0x00,0x20,0x01,0x00,0x00,0x21,0x01,0x00,0x00, -0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x23,0x01,0x00,0x00, -0x15,0x01,0x00,0x00,0x22,0x01,0x00,0x00,0x72,0x00,0x04,0x00, -0xda,0x00,0x00,0x00,0x24,0x01,0x00,0x00,0x23,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0xb4,0x00,0x00,0x00,0x25,0x01,0x00,0x00, -0x24,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x2d,0x01,0x00,0x00,0xd2,0x00,0x00,0x00,0x2c,0x01,0x00,0x00, -0x41,0x00,0x08,0x00,0xd3,0x00,0x00,0x00,0x2e,0x01,0x00,0x00, -0xbc,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xbf,0x00,0x00,0x00, -0xd0,0x00,0x00,0x00,0x2d,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb4,0x00,0x00,0x00,0x2f,0x01,0x00,0x00,0x2e,0x01,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x30,0x01,0x00,0x00, -0x2f,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x31,0x01,0x00,0x00,0x30,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x32,0x01,0x00,0x00,0x31,0x01,0x00,0x00, -0x14,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00, -0x3a,0x01,0x00,0x00,0xe4,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x3b,0x01,0x00,0x00,0x3a,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x3c,0x01,0x00,0x00, -0x3b,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x3d,0x01,0x00,0x00,0x3c,0x01,0x00,0x00,0x1f,0x01,0x00,0x00, -0xc3,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x3e,0x01,0x00,0x00, -0x3d,0x01,0x00,0x00,0x21,0x01,0x00,0x00,0xc5,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x3f,0x01,0x00,0x00,0x32,0x01,0x00,0x00, -0x3e,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0xda,0x00,0x00,0x00, -0x40,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0xb4,0x00,0x00,0x00,0x41,0x01,0x00,0x00,0x40,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00,0x4a,0x01,0x00,0x00, -0x10,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0xb4,0x00,0x00,0x00, -0x4b,0x01,0x00,0x00,0x4a,0x01,0x00,0x00,0x3b,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4c,0x01,0x00,0x00, -0x4b,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x4d,0x01,0x00,0x00,0x4c,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x4e,0x01,0x00,0x00,0x4d,0x01,0x00,0x00, -0x14,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00, -0x56,0x01,0x00,0x00,0xf2,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x57,0x01,0x00,0x00,0x56,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x58,0x01,0x00,0x00, -0x57,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x59,0x01,0x00,0x00,0x58,0x01,0x00,0x00,0x1f,0x01,0x00,0x00, -0xc3,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x5a,0x01,0x00,0x00, -0x59,0x01,0x00,0x00,0x21,0x01,0x00,0x00,0xc5,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x5b,0x01,0x00,0x00,0x4e,0x01,0x00,0x00, -0x5a,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0xda,0x00,0x00,0x00, -0x5c,0x01,0x00,0x00,0x5b,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0xb4,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,0x5c,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00,0x66,0x01,0x00,0x00, -0x2e,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0xb4,0x00,0x00,0x00, -0x67,0x01,0x00,0x00,0x66,0x01,0x00,0x00,0x3b,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x68,0x01,0x00,0x00, -0x67,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x69,0x01,0x00,0x00,0x68,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x6a,0x01,0x00,0x00,0x69,0x01,0x00,0x00, -0x14,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00, -0x72,0x01,0x00,0x00,0x01,0x01,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x73,0x01,0x00,0x00,0x72,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x74,0x01,0x00,0x00, -0x73,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x75,0x01,0x00,0x00,0x74,0x01,0x00,0x00,0x1f,0x01,0x00,0x00, -0xc3,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x76,0x01,0x00,0x00, -0x75,0x01,0x00,0x00,0x21,0x01,0x00,0x00,0xc5,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x77,0x01,0x00,0x00,0x6a,0x01,0x00,0x00, -0x76,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0xda,0x00,0x00,0x00, -0x78,0x01,0x00,0x00,0x77,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0xb4,0x00,0x00,0x00,0x79,0x01,0x00,0x00,0x78,0x01,0x00,0x00, -0x41,0x00,0x08,0x00,0xd3,0x00,0x00,0x00,0x7f,0x01,0x00,0x00, -0xbc,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xbf,0x00,0x00,0x00, -0x21,0x01,0x00,0x00,0x89,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb4,0x00,0x00,0x00,0x80,0x01,0x00,0x00,0x7f,0x01,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x81,0x01,0x00,0x00, -0x80,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x82,0x01,0x00,0x00,0x81,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x83,0x01,0x00,0x00,0x82,0x01,0x00,0x00, -0x14,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0xda,0x00,0x00,0x00, -0x84,0x01,0x00,0x00,0x83,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0xb4,0x00,0x00,0x00,0x85,0x01,0x00,0x00,0x84,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8b,0x01,0x00,0x00, -0x89,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x41,0x00,0x08,0x00, -0xd3,0x00,0x00,0x00,0x8c,0x01,0x00,0x00,0xbc,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0x21,0x01,0x00,0x00, -0x8b,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00, -0x8d,0x01,0x00,0x00,0x8c,0x01,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x8e,0x01,0x00,0x00,0x8d,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x8f,0x01,0x00,0x00, -0x8e,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x90,0x01,0x00,0x00,0x8f,0x01,0x00,0x00,0x14,0x01,0x00,0x00, -0x72,0x00,0x04,0x00,0xda,0x00,0x00,0x00,0x91,0x01,0x00,0x00, -0x90,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0xb4,0x00,0x00,0x00, -0x92,0x01,0x00,0x00,0x91,0x01,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x98,0x01,0x00,0x00,0x89,0x00,0x00,0x00, -0x69,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xd3,0x00,0x00,0x00, -0x99,0x01,0x00,0x00,0xbc,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0xbf,0x00,0x00,0x00,0x21,0x01,0x00,0x00,0x98,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00,0x9a,0x01,0x00,0x00, -0x99,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x9b,0x01,0x00,0x00,0x9a,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x9c,0x01,0x00,0x00,0x9b,0x01,0x00,0x00, -0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x9d,0x01,0x00,0x00, -0x9c,0x01,0x00,0x00,0x14,0x01,0x00,0x00,0x72,0x00,0x04,0x00, -0xda,0x00,0x00,0x00,0x9e,0x01,0x00,0x00,0x9d,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0xb4,0x00,0x00,0x00,0x9f,0x01,0x00,0x00, -0x9e,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xa6,0x01,0x00,0x00,0x89,0x00,0x00,0x00,0xa5,0x01,0x00,0x00, -0x41,0x00,0x08,0x00,0xd3,0x00,0x00,0x00,0xa7,0x01,0x00,0x00, -0xbc,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xbf,0x00,0x00,0x00, -0x21,0x01,0x00,0x00,0xa6,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb4,0x00,0x00,0x00,0xa8,0x01,0x00,0x00,0xa7,0x01,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa9,0x01,0x00,0x00, -0xa8,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0xaa,0x01,0x00,0x00,0xa9,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0xab,0x01,0x00,0x00,0xaa,0x01,0x00,0x00, -0x14,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0xda,0x00,0x00,0x00, -0xac,0x01,0x00,0x00,0xab,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0xb4,0x00,0x00,0x00,0xad,0x01,0x00,0x00,0xac,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00,0xb4,0x01,0x00,0x00, -0x7f,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0xb4,0x00,0x00,0x00, -0xb5,0x01,0x00,0x00,0xb4,0x01,0x00,0x00,0x3b,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00,0xbd,0x01,0x00,0x00, -0x8c,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0xb4,0x00,0x00,0x00, -0xbe,0x01,0x00,0x00,0xbd,0x01,0x00,0x00,0x3b,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00,0xc6,0x01,0x00,0x00, -0x99,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0xb4,0x00,0x00,0x00, -0xc7,0x01,0x00,0x00,0xc6,0x01,0x00,0x00,0x3b,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00,0xcf,0x01,0x00,0x00, -0xa7,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0xb4,0x00,0x00,0x00, -0xd0,0x01,0x00,0x00,0xcf,0x01,0x00,0x00,0x3b,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd6,0x01,0x00,0x00, -0x89,0x00,0x00,0x00,0x8b,0x00,0x00,0x00,0x41,0x00,0x08,0x00, -0xd3,0x00,0x00,0x00,0xd7,0x01,0x00,0x00,0xbc,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0x21,0x01,0x00,0x00, -0xd6,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00, -0xd8,0x01,0x00,0x00,0xd7,0x01,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xd9,0x01,0x00,0x00,0xd8,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xda,0x01,0x00,0x00, -0xd9,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0xdb,0x01,0x00,0x00,0xda,0x01,0x00,0x00,0x14,0x01,0x00,0x00, -0x72,0x00,0x04,0x00,0xda,0x00,0x00,0x00,0xdc,0x01,0x00,0x00, -0xdb,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0xb4,0x00,0x00,0x00, -0xdd,0x01,0x00,0x00,0xdc,0x01,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xe4,0x01,0x00,0x00,0x89,0x00,0x00,0x00, -0xe3,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0xd3,0x00,0x00,0x00, -0xe5,0x01,0x00,0x00,0xbc,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0xbf,0x00,0x00,0x00,0x21,0x01,0x00,0x00,0xe4,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00,0xe6,0x01,0x00,0x00, -0xe5,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xe7,0x01,0x00,0x00,0xe6,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0xe8,0x01,0x00,0x00,0xe7,0x01,0x00,0x00, -0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xe9,0x01,0x00,0x00, -0xe8,0x01,0x00,0x00,0x14,0x01,0x00,0x00,0x72,0x00,0x04,0x00, -0xda,0x00,0x00,0x00,0xea,0x01,0x00,0x00,0xe9,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0xb4,0x00,0x00,0x00,0xeb,0x01,0x00,0x00, -0xea,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xf2,0x01,0x00,0x00,0x89,0x00,0x00,0x00,0xf1,0x01,0x00,0x00, -0x41,0x00,0x08,0x00,0xd3,0x00,0x00,0x00,0xf3,0x01,0x00,0x00, -0xbc,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xbf,0x00,0x00,0x00, -0x21,0x01,0x00,0x00,0xf2,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb4,0x00,0x00,0x00,0xf4,0x01,0x00,0x00,0xf3,0x01,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xf5,0x01,0x00,0x00, -0xf4,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0xf6,0x01,0x00,0x00,0xf5,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0xf7,0x01,0x00,0x00,0xf6,0x01,0x00,0x00, -0x14,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0xda,0x00,0x00,0x00, -0xf8,0x01,0x00,0x00,0xf7,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0xb4,0x00,0x00,0x00,0xf9,0x01,0x00,0x00,0xf8,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x00,0x02,0x00,0x00, -0x89,0x00,0x00,0x00,0xff,0x01,0x00,0x00,0x41,0x00,0x08,0x00, -0xd3,0x00,0x00,0x00,0x01,0x02,0x00,0x00,0xbc,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0x21,0x01,0x00,0x00, -0x00,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00, -0x02,0x02,0x00,0x00,0x01,0x02,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x03,0x02,0x00,0x00,0x02,0x02,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x04,0x02,0x00,0x00, -0x03,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x05,0x02,0x00,0x00,0x04,0x02,0x00,0x00,0x14,0x01,0x00,0x00, -0x72,0x00,0x04,0x00,0xda,0x00,0x00,0x00,0x06,0x02,0x00,0x00, -0x05,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0xb4,0x00,0x00,0x00, -0x07,0x02,0x00,0x00,0x06,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb4,0x00,0x00,0x00,0x0f,0x02,0x00,0x00,0xd7,0x01,0x00,0x00, -0xc2,0x00,0x05,0x00,0xb4,0x00,0x00,0x00,0x10,0x02,0x00,0x00, -0x0f,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb4,0x00,0x00,0x00,0x18,0x02,0x00,0x00,0xe5,0x01,0x00,0x00, -0xc2,0x00,0x05,0x00,0xb4,0x00,0x00,0x00,0x19,0x02,0x00,0x00, -0x18,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb4,0x00,0x00,0x00,0x21,0x02,0x00,0x00,0xf3,0x01,0x00,0x00, -0xc2,0x00,0x05,0x00,0xb4,0x00,0x00,0x00,0x22,0x02,0x00,0x00, -0x21,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb4,0x00,0x00,0x00,0x2a,0x02,0x00,0x00,0x01,0x02,0x00,0x00, -0xc2,0x00,0x05,0x00,0xb4,0x00,0x00,0x00,0x2b,0x02,0x00,0x00, -0x2a,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x33,0x02,0x00,0x00,0xe2,0x03,0x00,0x00, -0xab,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x34,0x02,0x00,0x00, -0x35,0x02,0x00,0x00,0x30,0x02,0x00,0x00,0x59,0x00,0x00,0x00, -0x33,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0x36,0x02,0x00,0x00,0x35,0x02,0x00,0x00,0x70,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0x38,0x02,0x00,0x00,0x85,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3d,0x02,0x00,0x00, -0x33,0x02,0x00,0x00,0x12,0x00,0x00,0x00,0x41,0x00,0x06,0x00, -0x34,0x02,0x00,0x00,0x3e,0x02,0x00,0x00,0x30,0x02,0x00,0x00, -0x59,0x00,0x00,0x00,0x3d,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0x3f,0x02,0x00,0x00,0x3e,0x02,0x00,0x00, -0x70,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0x41,0x02,0x00,0x00, -0x92,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x90,0x00,0x00,0x00, -0x42,0x02,0x00,0x00,0x3f,0x02,0x00,0x00,0x41,0x02,0x00,0x00, -0x0c,0x00,0x08,0x00,0x90,0x00,0x00,0x00,0x43,0x02,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x36,0x02,0x00,0x00, -0x38,0x02,0x00,0x00,0x42,0x02,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x47,0x02,0x00,0x00,0x33,0x02,0x00,0x00, -0x69,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x34,0x02,0x00,0x00, -0x48,0x02,0x00,0x00,0x30,0x02,0x00,0x00,0x59,0x00,0x00,0x00, -0x47,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0x49,0x02,0x00,0x00,0x48,0x02,0x00,0x00,0x70,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0x4b,0x02,0x00,0x00,0x9f,0x01,0x00,0x00, -0x0c,0x00,0x08,0x00,0x90,0x00,0x00,0x00,0x4d,0x02,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x49,0x02,0x00,0x00, -0x4b,0x02,0x00,0x00,0x43,0x02,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x51,0x02,0x00,0x00,0x33,0x02,0x00,0x00, -0xa5,0x01,0x00,0x00,0x41,0x00,0x06,0x00,0x34,0x02,0x00,0x00, -0x52,0x02,0x00,0x00,0x30,0x02,0x00,0x00,0x59,0x00,0x00,0x00, -0x51,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0x53,0x02,0x00,0x00,0x52,0x02,0x00,0x00,0x70,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0x55,0x02,0x00,0x00,0xad,0x01,0x00,0x00, -0x0c,0x00,0x08,0x00,0x90,0x00,0x00,0x00,0x57,0x02,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x53,0x02,0x00,0x00, -0x55,0x02,0x00,0x00,0x4d,0x02,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x5c,0x02,0x00,0x00,0x33,0x02,0x00,0x00, -0x85,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x34,0x02,0x00,0x00, -0x5d,0x02,0x00,0x00,0x30,0x02,0x00,0x00,0x59,0x00,0x00,0x00, -0x5c,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0x5e,0x02,0x00,0x00,0x5d,0x02,0x00,0x00,0x70,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0x60,0x02,0x00,0x00,0xb5,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x66,0x02,0x00,0x00, -0x33,0x02,0x00,0x00,0x65,0x02,0x00,0x00,0x41,0x00,0x06,0x00, -0x34,0x02,0x00,0x00,0x67,0x02,0x00,0x00,0x30,0x02,0x00,0x00, -0x59,0x00,0x00,0x00,0x66,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0x68,0x02,0x00,0x00,0x67,0x02,0x00,0x00, -0x70,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0x6a,0x02,0x00,0x00, -0xbe,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x90,0x00,0x00,0x00, -0x6b,0x02,0x00,0x00,0x68,0x02,0x00,0x00,0x6a,0x02,0x00,0x00, -0x0c,0x00,0x08,0x00,0x90,0x00,0x00,0x00,0x6c,0x02,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x5e,0x02,0x00,0x00, -0x60,0x02,0x00,0x00,0x6b,0x02,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x71,0x02,0x00,0x00,0x33,0x02,0x00,0x00, -0x70,0x02,0x00,0x00,0x41,0x00,0x06,0x00,0x34,0x02,0x00,0x00, -0x72,0x02,0x00,0x00,0x30,0x02,0x00,0x00,0x59,0x00,0x00,0x00, -0x71,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0x73,0x02,0x00,0x00,0x72,0x02,0x00,0x00,0x70,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0x75,0x02,0x00,0x00,0xc7,0x01,0x00,0x00, -0x0c,0x00,0x08,0x00,0x90,0x00,0x00,0x00,0x77,0x02,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x73,0x02,0x00,0x00, -0x75,0x02,0x00,0x00,0x6c,0x02,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x7c,0x02,0x00,0x00,0x33,0x02,0x00,0x00, -0x7b,0x02,0x00,0x00,0x41,0x00,0x06,0x00,0x34,0x02,0x00,0x00, -0x7d,0x02,0x00,0x00,0x30,0x02,0x00,0x00,0x59,0x00,0x00,0x00, -0x7c,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0x7e,0x02,0x00,0x00,0x7d,0x02,0x00,0x00,0x70,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0x80,0x02,0x00,0x00,0xd0,0x01,0x00,0x00, -0x0c,0x00,0x08,0x00,0x90,0x00,0x00,0x00,0x82,0x02,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x7e,0x02,0x00,0x00, -0x80,0x02,0x00,0x00,0x77,0x02,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x86,0x02,0x00,0x00,0xe2,0x03,0x00,0x00, -0xaf,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x34,0x02,0x00,0x00, -0x87,0x02,0x00,0x00,0x30,0x02,0x00,0x00,0x59,0x00,0x00,0x00, -0x86,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0x88,0x02,0x00,0x00,0x87,0x02,0x00,0x00,0x70,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0x8a,0x02,0x00,0x00,0xdd,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8f,0x02,0x00,0x00, -0x86,0x02,0x00,0x00,0x12,0x00,0x00,0x00,0x41,0x00,0x06,0x00, -0x34,0x02,0x00,0x00,0x90,0x02,0x00,0x00,0x30,0x02,0x00,0x00, -0x59,0x00,0x00,0x00,0x8f,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0x91,0x02,0x00,0x00,0x90,0x02,0x00,0x00, -0x70,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0x93,0x02,0x00,0x00, -0xeb,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x90,0x00,0x00,0x00, -0x94,0x02,0x00,0x00,0x91,0x02,0x00,0x00,0x93,0x02,0x00,0x00, -0x0c,0x00,0x08,0x00,0x90,0x00,0x00,0x00,0x95,0x02,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x88,0x02,0x00,0x00, -0x8a,0x02,0x00,0x00,0x94,0x02,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x99,0x02,0x00,0x00,0x86,0x02,0x00,0x00, -0x69,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x34,0x02,0x00,0x00, -0x9a,0x02,0x00,0x00,0x30,0x02,0x00,0x00,0x59,0x00,0x00,0x00, -0x99,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0x9b,0x02,0x00,0x00,0x9a,0x02,0x00,0x00,0x70,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0x9d,0x02,0x00,0x00,0xf9,0x01,0x00,0x00, -0x0c,0x00,0x08,0x00,0x90,0x00,0x00,0x00,0x9f,0x02,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x9b,0x02,0x00,0x00, -0x9d,0x02,0x00,0x00,0x95,0x02,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xa3,0x02,0x00,0x00,0x86,0x02,0x00,0x00, -0xa5,0x01,0x00,0x00,0x41,0x00,0x06,0x00,0x34,0x02,0x00,0x00, -0xa4,0x02,0x00,0x00,0x30,0x02,0x00,0x00,0x59,0x00,0x00,0x00, -0xa3,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0xa5,0x02,0x00,0x00,0xa4,0x02,0x00,0x00,0x70,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0xa7,0x02,0x00,0x00,0x07,0x02,0x00,0x00, -0x0c,0x00,0x08,0x00,0x90,0x00,0x00,0x00,0xa9,0x02,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xa5,0x02,0x00,0x00, -0xa7,0x02,0x00,0x00,0x9f,0x02,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xae,0x02,0x00,0x00,0x86,0x02,0x00,0x00, -0x85,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x34,0x02,0x00,0x00, -0xaf,0x02,0x00,0x00,0x30,0x02,0x00,0x00,0x59,0x00,0x00,0x00, -0xae,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0xb0,0x02,0x00,0x00,0xaf,0x02,0x00,0x00,0x70,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0xb2,0x02,0x00,0x00,0x10,0x02,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb7,0x02,0x00,0x00, -0x86,0x02,0x00,0x00,0x65,0x02,0x00,0x00,0x41,0x00,0x06,0x00, -0x34,0x02,0x00,0x00,0xb8,0x02,0x00,0x00,0x30,0x02,0x00,0x00, -0x59,0x00,0x00,0x00,0xb7,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0xb9,0x02,0x00,0x00,0xb8,0x02,0x00,0x00, -0x70,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0xbb,0x02,0x00,0x00, -0x19,0x02,0x00,0x00,0x85,0x00,0x05,0x00,0x90,0x00,0x00,0x00, -0xbc,0x02,0x00,0x00,0xb9,0x02,0x00,0x00,0xbb,0x02,0x00,0x00, -0x0c,0x00,0x08,0x00,0x90,0x00,0x00,0x00,0xbd,0x02,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xb0,0x02,0x00,0x00, -0xb2,0x02,0x00,0x00,0xbc,0x02,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xc1,0x02,0x00,0x00,0x86,0x02,0x00,0x00, -0x70,0x02,0x00,0x00,0x41,0x00,0x06,0x00,0x34,0x02,0x00,0x00, -0xc2,0x02,0x00,0x00,0x30,0x02,0x00,0x00,0x59,0x00,0x00,0x00, -0xc1,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0xc3,0x02,0x00,0x00,0xc2,0x02,0x00,0x00,0x70,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0xc5,0x02,0x00,0x00,0x22,0x02,0x00,0x00, -0x0c,0x00,0x08,0x00,0x90,0x00,0x00,0x00,0xc7,0x02,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xc3,0x02,0x00,0x00, -0xc5,0x02,0x00,0x00,0xbd,0x02,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xcb,0x02,0x00,0x00,0x86,0x02,0x00,0x00, -0x7b,0x02,0x00,0x00,0x41,0x00,0x06,0x00,0x34,0x02,0x00,0x00, -0xcc,0x02,0x00,0x00,0x30,0x02,0x00,0x00,0x59,0x00,0x00,0x00, -0xcb,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0xcd,0x02,0x00,0x00,0xcc,0x02,0x00,0x00,0x70,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0xcf,0x02,0x00,0x00,0x2b,0x02,0x00,0x00, -0x0c,0x00,0x08,0x00,0x90,0x00,0x00,0x00,0xd1,0x02,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xcd,0x02,0x00,0x00, -0xcf,0x02,0x00,0x00,0xc7,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0xd7,0x02,0x00,0x00,0x35,0x02,0x00,0x00, -0x70,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0xd9,0x02,0x00,0x00, -0xf8,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0xe0,0x02,0x00,0x00,0x5d,0x02,0x00,0x00,0x70,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0xe2,0x02,0x00,0x00,0x07,0x01,0x00,0x00, -0x85,0x00,0x05,0x00,0x90,0x00,0x00,0x00,0xe3,0x02,0x00,0x00, -0xe0,0x02,0x00,0x00,0xe2,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, -0x90,0x00,0x00,0x00,0xe4,0x02,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0xd7,0x02,0x00,0x00,0xd9,0x02,0x00,0x00, -0xe3,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0xe9,0x02,0x00,0x00,0x87,0x02,0x00,0x00,0x70,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0xeb,0x02,0x00,0x00,0x5d,0x01,0x00,0x00, -0x0c,0x00,0x08,0x00,0x90,0x00,0x00,0x00,0xed,0x02,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xe9,0x02,0x00,0x00, -0xeb,0x02,0x00,0x00,0xe4,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0xf3,0x02,0x00,0x00,0xaf,0x02,0x00,0x00, -0x70,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0xf5,0x02,0x00,0x00, -0x79,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0x90,0x00,0x00,0x00, -0xf7,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0xf3,0x02,0x00,0x00,0xf5,0x02,0x00,0x00,0xed,0x02,0x00,0x00, -0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0xfd,0x02,0x00,0x00, -0x3e,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x90,0x00,0x00,0x00, -0x01,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0xfd,0x02,0x00,0x00,0xd9,0x02,0x00,0x00,0xf7,0x02,0x00,0x00, -0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0x07,0x03,0x00,0x00, -0x67,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x90,0x00,0x00,0x00, -0x0b,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x07,0x03,0x00,0x00,0xe2,0x02,0x00,0x00,0x01,0x03,0x00,0x00, -0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0x11,0x03,0x00,0x00, -0x90,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x90,0x00,0x00,0x00, -0x15,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x11,0x03,0x00,0x00,0xeb,0x02,0x00,0x00,0x0b,0x03,0x00,0x00, -0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0x1b,0x03,0x00,0x00, -0xb8,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x90,0x00,0x00,0x00, -0x1f,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x1b,0x03,0x00,0x00,0xf5,0x02,0x00,0x00,0x15,0x03,0x00,0x00, -0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0x25,0x03,0x00,0x00, -0x48,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x90,0x00,0x00,0x00, -0x29,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x25,0x03,0x00,0x00,0xd9,0x02,0x00,0x00,0x1f,0x03,0x00,0x00, -0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0x2f,0x03,0x00,0x00, -0x72,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x90,0x00,0x00,0x00, -0x33,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x2f,0x03,0x00,0x00,0xe2,0x02,0x00,0x00,0x29,0x03,0x00,0x00, -0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0x39,0x03,0x00,0x00, -0x9a,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x90,0x00,0x00,0x00, -0x3d,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x39,0x03,0x00,0x00,0xeb,0x02,0x00,0x00,0x33,0x03,0x00,0x00, -0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0x43,0x03,0x00,0x00, -0xc2,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x90,0x00,0x00,0x00, -0x47,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x43,0x03,0x00,0x00,0xf5,0x02,0x00,0x00,0x3d,0x03,0x00,0x00, -0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0x4d,0x03,0x00,0x00, -0x52,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x90,0x00,0x00,0x00, -0x51,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x4d,0x03,0x00,0x00,0xd9,0x02,0x00,0x00,0x47,0x03,0x00,0x00, -0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0x57,0x03,0x00,0x00, -0x7d,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x90,0x00,0x00,0x00, -0x5b,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x57,0x03,0x00,0x00,0xe2,0x02,0x00,0x00,0x51,0x03,0x00,0x00, -0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0x61,0x03,0x00,0x00, -0xa4,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x90,0x00,0x00,0x00, -0x65,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x61,0x03,0x00,0x00,0xeb,0x02,0x00,0x00,0x5b,0x03,0x00,0x00, -0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0x6b,0x03,0x00,0x00, -0xcc,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x90,0x00,0x00,0x00, -0x6f,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x6b,0x03,0x00,0x00,0xf5,0x02,0x00,0x00,0x65,0x03,0x00,0x00, -0x70,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0x77,0x03,0x00,0x00, -0xdc,0x00,0x00,0x00,0x70,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0x7b,0x03,0x00,0x00,0xea,0x00,0x00,0x00,0x85,0x00,0x05,0x00, -0x90,0x00,0x00,0x00,0x7c,0x03,0x00,0x00,0x82,0x02,0x00,0x00, -0x7b,0x03,0x00,0x00,0x0c,0x00,0x08,0x00,0x90,0x00,0x00,0x00, -0x7d,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x57,0x02,0x00,0x00,0x77,0x03,0x00,0x00,0x7c,0x03,0x00,0x00, -0x70,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0x80,0x03,0x00,0x00, -0x25,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0x90,0x00,0x00,0x00, -0x82,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0xa9,0x02,0x00,0x00,0x80,0x03,0x00,0x00,0x7d,0x03,0x00,0x00, -0x70,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0x85,0x03,0x00,0x00, -0x41,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0x90,0x00,0x00,0x00, -0x87,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0xd1,0x02,0x00,0x00,0x85,0x03,0x00,0x00,0x82,0x03,0x00,0x00, -0x85,0x00,0x05,0x00,0x90,0x00,0x00,0x00,0x8b,0x03,0x00,0x00, -0xca,0x00,0x00,0x00,0x6f,0x03,0x00,0x00,0x7f,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0xeb,0x03,0x00,0x00,0x8b,0x03,0x00,0x00, -0x0c,0x00,0x08,0x00,0x90,0x00,0x00,0x00,0x8c,0x03,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xc3,0x00,0x00,0x00, -0x87,0x03,0x00,0x00,0xeb,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0x8e,0x03,0x00,0x00,0x9b,0x00,0x00,0x00, -0x81,0x00,0x05,0x00,0x90,0x00,0x00,0x00,0x8f,0x03,0x00,0x00, -0x8e,0x03,0x00,0x00,0x8c,0x03,0x00,0x00,0x3e,0x00,0x03,0x00, -0x9b,0x00,0x00,0x00,0x8f,0x03,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x92,0x03,0x00,0x00,0xe7,0x03,0x00,0x00, -0x69,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x9e,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0xa0,0x00,0x00,0x00,0xe0,0x00,0x04,0x00, -0x69,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0x93,0x03,0x00,0x00, -0xf9,0x00,0x02,0x00,0x95,0x03,0x00,0x00,0xf8,0x00,0x02,0x00, -0x95,0x03,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00, -0xe8,0x03,0x00,0x00,0x94,0x00,0x00,0x00,0xa0,0x00,0x00,0x00, -0xac,0x03,0x00,0x00,0x98,0x03,0x00,0x00,0xac,0x00,0x05,0x00, -0xa5,0x00,0x00,0x00,0x9b,0x03,0x00,0x00,0xe8,0x03,0x00,0x00, -0x4b,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x97,0x03,0x00,0x00, -0x98,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, -0x9b,0x03,0x00,0x00,0x96,0x03,0x00,0x00,0x97,0x03,0x00,0x00, -0xf8,0x00,0x02,0x00,0x96,0x03,0x00,0x00,0xb0,0x00,0x05,0x00, -0xa5,0x00,0x00,0x00,0x9e,0x03,0x00,0x00,0x6a,0x00,0x00,0x00, -0xe8,0x03,0x00,0x00,0xf7,0x00,0x03,0x00,0xa0,0x03,0x00,0x00, -0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x9e,0x03,0x00,0x00, -0x9f,0x03,0x00,0x00,0xa0,0x03,0x00,0x00,0xf8,0x00,0x02,0x00, -0x9f,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xa4,0x03,0x00,0x00,0x6a,0x00,0x00,0x00,0xe8,0x03,0x00,0x00, -0x41,0x00,0x05,0x00,0x9a,0x00,0x00,0x00,0xa5,0x03,0x00,0x00, -0x93,0x00,0x00,0x00,0xa4,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0xa6,0x03,0x00,0x00,0xa5,0x03,0x00,0x00, -0x41,0x00,0x05,0x00,0x9a,0x00,0x00,0x00,0xa7,0x03,0x00,0x00, -0x93,0x00,0x00,0x00,0x6a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0xa8,0x03,0x00,0x00,0xa7,0x03,0x00,0x00, -0x81,0x00,0x05,0x00,0x90,0x00,0x00,0x00,0xa9,0x03,0x00,0x00, -0xa8,0x03,0x00,0x00,0xa6,0x03,0x00,0x00,0x3e,0x00,0x03,0x00, -0xa7,0x03,0x00,0x00,0xa9,0x03,0x00,0x00,0xf9,0x00,0x02,0x00, -0xa0,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0xa0,0x03,0x00,0x00, -0xe0,0x00,0x04,0x00,0x69,0x00,0x00,0x00,0x69,0x00,0x00,0x00, -0x93,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,0x98,0x03,0x00,0x00, -0xf8,0x00,0x02,0x00,0x98,0x03,0x00,0x00,0xc2,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xac,0x03,0x00,0x00,0xe8,0x03,0x00,0x00, -0xd0,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x95,0x03,0x00,0x00, -0xf8,0x00,0x02,0x00,0x97,0x03,0x00,0x00,0xaa,0x00,0x05,0x00, -0xa5,0x00,0x00,0x00,0xae,0x03,0x00,0x00,0x6a,0x00,0x00,0x00, -0x4b,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0xb0,0x03,0x00,0x00, -0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xae,0x03,0x00,0x00, -0xaf,0x03,0x00,0x00,0xb0,0x03,0x00,0x00,0xf8,0x00,0x02,0x00, -0xaf,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xb7,0x03,0x00,0x00,0xe6,0x03,0x00,0x00,0x4d,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x9a,0x00,0x00,0x00,0xb8,0x03,0x00,0x00, -0x93,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0xb9,0x03,0x00,0x00,0xb8,0x03,0x00,0x00, -0x41,0x00,0x06,0x00,0x34,0x02,0x00,0x00,0xba,0x03,0x00,0x00, -0xb4,0x03,0x00,0x00,0x59,0x00,0x00,0x00,0xb7,0x03,0x00,0x00, -0x3e,0x00,0x03,0x00,0xba,0x03,0x00,0x00,0xb9,0x03,0x00,0x00, -0xf9,0x00,0x02,0x00,0xb0,0x03,0x00,0x00,0xf8,0x00,0x02,0x00, -0xb0,0x03,0x00,0x00,0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00, - -}; -const uint64_t mul_mat_vec_q4_k_f32_f32_len = 9888; - -unsigned char mul_mat_vec_q5_0_f16_f32_data[] = { -0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00, -0xb8,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, -0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x51,0x11,0x00,0x00, -0x11,0x00,0x02,0x00,0x60,0x11,0x00,0x00,0x0b,0x00,0x06,0x00, -0x01,0x00,0x00,0x00,0x47,0x4c,0x53,0x4c,0x2e,0x73,0x74,0x64, -0x2e,0x34,0x35,0x30,0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00, -0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0f,0x00,0x0d,0x00, -0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e, -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x78,0x00,0x00,0x00, -0x80,0x00,0x00,0x00,0xae,0x00,0x00,0x00,0xb2,0x00,0x00,0x00, -0xc2,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0x3a,0x01,0x00,0x00, -0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x1e,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x1f,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x1f,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x20,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x16,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x21,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0x21,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x23,0x00,0x00,0x00, -0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x78,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x7e,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x7e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x7e,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x7e,0x00,0x00,0x00,0x03,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x7e,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x7e,0x00,0x00,0x00, -0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x7e,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x7e,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x97,0x00,0x00,0x00,0xca,0x00,0x00,0x00,0xc9,0x00,0x00,0x00, +0x41,0x00,0x08,0x00,0xc7,0x00,0x00,0x00,0xcf,0x00,0x00,0x00, +0xc3,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xc6,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0xb9,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0xcf,0x00,0x00,0x00, +0x73,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0xd1,0x00,0x00,0x00, +0xd0,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xd9,0x00,0x00,0x00,0x81,0x00,0x00,0x00,0x51,0x00,0x00,0x00, +0x41,0x00,0x08,0x00,0xda,0x00,0x00,0x00,0xdb,0x00,0x00,0x00, +0xc3,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xc6,0x00,0x00,0x00, +0xd7,0x00,0x00,0x00,0xd9,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0xbb,0x00,0x00,0x00,0xdc,0x00,0x00,0x00,0xdb,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xdd,0x00,0x00,0x00, +0xdc,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0xde,0x00,0x00,0x00,0xdd,0x00,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0xe0,0x00,0x00,0x00,0xde,0x00,0x00,0x00, +0xdf,0x00,0x00,0x00,0x72,0x00,0x04,0x00,0xe1,0x00,0x00,0x00, +0xe2,0x00,0x00,0x00,0xe0,0x00,0x00,0x00,0x7c,0x00,0x04,0x00, +0xbb,0x00,0x00,0x00,0xe3,0x00,0x00,0x00,0xe2,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xea,0x00,0x00,0x00, +0xd9,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x41,0x00,0x08,0x00, +0xda,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0xc3,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,0xd7,0x00,0x00,0x00, +0xea,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00, +0xec,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xed,0x00,0x00,0x00,0xec,0x00,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xee,0x00,0x00,0x00, +0xed,0x00,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0xef,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0xdf,0x00,0x00,0x00, +0x72,0x00,0x04,0x00,0xe1,0x00,0x00,0x00,0xf0,0x00,0x00,0x00, +0xef,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0xbb,0x00,0x00,0x00, +0xf1,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0xd9,0x00,0x00,0x00, +0x78,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xda,0x00,0x00,0x00, +0xf9,0x00,0x00,0x00,0xc3,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0xc6,0x00,0x00,0x00,0xd7,0x00,0x00,0x00,0xf8,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0xfa,0x00,0x00,0x00, +0xf9,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xfb,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0xfb,0x00,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xfd,0x00,0x00,0x00, +0xfc,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0x72,0x00,0x04,0x00, +0xe1,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0xfd,0x00,0x00,0x00, +0x7c,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0xff,0x00,0x00,0x00, +0xfe,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x07,0x01,0x00,0x00,0xd9,0x00,0x00,0x00,0x06,0x01,0x00,0x00, +0x41,0x00,0x08,0x00,0xda,0x00,0x00,0x00,0x08,0x01,0x00,0x00, +0xc3,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xc6,0x00,0x00,0x00, +0xd7,0x00,0x00,0x00,0x07,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0xbb,0x00,0x00,0x00,0x09,0x01,0x00,0x00,0x08,0x01,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x0a,0x01,0x00,0x00, +0x09,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x0b,0x01,0x00,0x00,0x0a,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,0x0b,0x01,0x00,0x00, +0xdf,0x00,0x00,0x00,0x72,0x00,0x04,0x00,0xe1,0x00,0x00,0x00, +0x0d,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0xbb,0x00,0x00,0x00,0x0e,0x01,0x00,0x00,0x0d,0x01,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x16,0x01,0x00,0x00, +0xd9,0x00,0x00,0x00,0x15,0x01,0x00,0x00,0x41,0x00,0x08,0x00, +0xda,0x00,0x00,0x00,0x17,0x01,0x00,0x00,0xc3,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,0xd7,0x00,0x00,0x00, +0x16,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00, +0x18,0x01,0x00,0x00,0x17,0x01,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x19,0x01,0x00,0x00,0x18,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x1a,0x01,0x00,0x00, +0x19,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x1c,0x01,0x00,0x00,0x1a,0x01,0x00,0x00,0x1b,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0x23,0x01,0x00,0x00, +0xdb,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x24,0x01,0x00,0x00,0x23,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x25,0x01,0x00,0x00,0x24,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x27,0x01,0x00,0x00, +0x25,0x01,0x00,0x00,0x26,0x01,0x00,0x00,0xc3,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x29,0x01,0x00,0x00,0x27,0x01,0x00,0x00, +0x28,0x01,0x00,0x00,0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x2a,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,0x29,0x01,0x00,0x00, +0x72,0x00,0x04,0x00,0xe1,0x00,0x00,0x00,0x2b,0x01,0x00,0x00, +0x2a,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0xbb,0x00,0x00,0x00, +0x2c,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x34,0x01,0x00,0x00,0xd9,0x00,0x00,0x00, +0x33,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0xda,0x00,0x00,0x00, +0x35,0x01,0x00,0x00,0xc3,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0xc6,0x00,0x00,0x00,0xd7,0x00,0x00,0x00,0x34,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0x36,0x01,0x00,0x00, +0x35,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x37,0x01,0x00,0x00,0x36,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x38,0x01,0x00,0x00,0x37,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x39,0x01,0x00,0x00, +0x38,0x01,0x00,0x00,0x1b,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0xbb,0x00,0x00,0x00,0x41,0x01,0x00,0x00,0xeb,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x42,0x01,0x00,0x00, +0x41,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x43,0x01,0x00,0x00,0x42,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x44,0x01,0x00,0x00,0x43,0x01,0x00,0x00, +0x26,0x01,0x00,0x00,0xc3,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x45,0x01,0x00,0x00,0x44,0x01,0x00,0x00,0x28,0x01,0x00,0x00, +0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x46,0x01,0x00,0x00, +0x39,0x01,0x00,0x00,0x45,0x01,0x00,0x00,0x72,0x00,0x04,0x00, +0xe1,0x00,0x00,0x00,0x47,0x01,0x00,0x00,0x46,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0x48,0x01,0x00,0x00, +0x47,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00, +0x51,0x01,0x00,0x00,0x17,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, +0xbb,0x00,0x00,0x00,0x52,0x01,0x00,0x00,0x51,0x01,0x00,0x00, +0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x53,0x01,0x00,0x00,0x52,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x54,0x01,0x00,0x00,0x53,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x55,0x01,0x00,0x00, +0x54,0x01,0x00,0x00,0x1b,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0xbb,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,0xf9,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x5e,0x01,0x00,0x00, +0x5d,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x5f,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x60,0x01,0x00,0x00,0x5f,0x01,0x00,0x00, +0x26,0x01,0x00,0x00,0xc3,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x61,0x01,0x00,0x00,0x60,0x01,0x00,0x00,0x28,0x01,0x00,0x00, +0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x62,0x01,0x00,0x00, +0x55,0x01,0x00,0x00,0x61,0x01,0x00,0x00,0x72,0x00,0x04,0x00, +0xe1,0x00,0x00,0x00,0x63,0x01,0x00,0x00,0x62,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0x64,0x01,0x00,0x00, +0x63,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00, +0x6d,0x01,0x00,0x00,0x35,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, +0xbb,0x00,0x00,0x00,0x6e,0x01,0x00,0x00,0x6d,0x01,0x00,0x00, +0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x6f,0x01,0x00,0x00,0x6e,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x70,0x01,0x00,0x00,0x6f,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x71,0x01,0x00,0x00, +0x70,0x01,0x00,0x00,0x1b,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0xbb,0x00,0x00,0x00,0x79,0x01,0x00,0x00,0x08,0x01,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x7a,0x01,0x00,0x00, +0x79,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x7b,0x01,0x00,0x00,0x7a,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x7c,0x01,0x00,0x00,0x7b,0x01,0x00,0x00, +0x26,0x01,0x00,0x00,0xc3,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x7d,0x01,0x00,0x00,0x7c,0x01,0x00,0x00,0x28,0x01,0x00,0x00, +0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x7e,0x01,0x00,0x00, +0x71,0x01,0x00,0x00,0x7d,0x01,0x00,0x00,0x72,0x00,0x04,0x00, +0xe1,0x00,0x00,0x00,0x7f,0x01,0x00,0x00,0x7e,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0x80,0x01,0x00,0x00, +0x7f,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0xda,0x00,0x00,0x00, +0x86,0x01,0x00,0x00,0xc3,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0xc6,0x00,0x00,0x00,0x28,0x01,0x00,0x00,0x90,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0x87,0x01,0x00,0x00, +0x86,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x88,0x01,0x00,0x00,0x87,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x89,0x01,0x00,0x00,0x88,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x8a,0x01,0x00,0x00, +0x89,0x01,0x00,0x00,0x1b,0x01,0x00,0x00,0x72,0x00,0x04,0x00, +0xe1,0x00,0x00,0x00,0x8b,0x01,0x00,0x00,0x8a,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0x8c,0x01,0x00,0x00, +0x8b,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x92,0x01,0x00,0x00,0x90,0x00,0x00,0x00,0x12,0x00,0x00,0x00, +0x41,0x00,0x08,0x00,0xda,0x00,0x00,0x00,0x93,0x01,0x00,0x00, +0xc3,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xc6,0x00,0x00,0x00, +0x28,0x01,0x00,0x00,0x92,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0xbb,0x00,0x00,0x00,0x94,0x01,0x00,0x00,0x93,0x01,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x95,0x01,0x00,0x00, +0x94,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x96,0x01,0x00,0x00,0x95,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x97,0x01,0x00,0x00,0x96,0x01,0x00,0x00, +0x1b,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0xe1,0x00,0x00,0x00, +0x98,0x01,0x00,0x00,0x97,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0xbb,0x00,0x00,0x00,0x99,0x01,0x00,0x00,0x98,0x01,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9f,0x01,0x00,0x00, +0x90,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0x41,0x00,0x08,0x00, +0xda,0x00,0x00,0x00,0xa0,0x01,0x00,0x00,0xc3,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,0x28,0x01,0x00,0x00, +0x9f,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00, +0xa1,0x01,0x00,0x00,0xa0,0x01,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xa2,0x01,0x00,0x00,0xa1,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xa3,0x01,0x00,0x00, +0xa2,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0xa4,0x01,0x00,0x00,0xa3,0x01,0x00,0x00,0x1b,0x01,0x00,0x00, +0x72,0x00,0x04,0x00,0xe1,0x00,0x00,0x00,0xa5,0x01,0x00,0x00, +0xa4,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0xbb,0x00,0x00,0x00, +0xa6,0x01,0x00,0x00,0xa5,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xad,0x01,0x00,0x00,0x90,0x00,0x00,0x00, +0xac,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0xda,0x00,0x00,0x00, +0xae,0x01,0x00,0x00,0xc3,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0xc6,0x00,0x00,0x00,0x28,0x01,0x00,0x00,0xad,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0xaf,0x01,0x00,0x00, +0xae,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xb0,0x01,0x00,0x00,0xaf,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0xb1,0x01,0x00,0x00,0xb0,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xb2,0x01,0x00,0x00, +0xb1,0x01,0x00,0x00,0x1b,0x01,0x00,0x00,0x72,0x00,0x04,0x00, +0xe1,0x00,0x00,0x00,0xb3,0x01,0x00,0x00,0xb2,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0xb4,0x01,0x00,0x00, +0xb3,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00, +0xbb,0x01,0x00,0x00,0x86,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, +0xbb,0x00,0x00,0x00,0xbc,0x01,0x00,0x00,0xbb,0x01,0x00,0x00, +0x3b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00, +0xc4,0x01,0x00,0x00,0x93,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, +0xbb,0x00,0x00,0x00,0xc5,0x01,0x00,0x00,0xc4,0x01,0x00,0x00, +0x3b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00, +0xcd,0x01,0x00,0x00,0xa0,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, +0xbb,0x00,0x00,0x00,0xce,0x01,0x00,0x00,0xcd,0x01,0x00,0x00, +0x3b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00, +0xd6,0x01,0x00,0x00,0xae,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, +0xbb,0x00,0x00,0x00,0xd7,0x01,0x00,0x00,0xd6,0x01,0x00,0x00, +0x3b,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xdd,0x01,0x00,0x00,0x90,0x00,0x00,0x00,0x92,0x00,0x00,0x00, +0x41,0x00,0x08,0x00,0xda,0x00,0x00,0x00,0xde,0x01,0x00,0x00, +0xc3,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xc6,0x00,0x00,0x00, +0x28,0x01,0x00,0x00,0xdd,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0xbb,0x00,0x00,0x00,0xdf,0x01,0x00,0x00,0xde,0x01,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xe0,0x01,0x00,0x00, +0xdf,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0xe1,0x01,0x00,0x00,0xe0,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0xe2,0x01,0x00,0x00,0xe1,0x01,0x00,0x00, +0x1b,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0xe1,0x00,0x00,0x00, +0xe3,0x01,0x00,0x00,0xe2,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0xbb,0x00,0x00,0x00,0xe4,0x01,0x00,0x00,0xe3,0x01,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xeb,0x01,0x00,0x00, +0x90,0x00,0x00,0x00,0xea,0x01,0x00,0x00,0x41,0x00,0x08,0x00, +0xda,0x00,0x00,0x00,0xec,0x01,0x00,0x00,0xc3,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,0x28,0x01,0x00,0x00, +0xeb,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00, +0xed,0x01,0x00,0x00,0xec,0x01,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xee,0x01,0x00,0x00,0xed,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xef,0x01,0x00,0x00, +0xee,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0xf0,0x01,0x00,0x00,0xef,0x01,0x00,0x00,0x1b,0x01,0x00,0x00, +0x72,0x00,0x04,0x00,0xe1,0x00,0x00,0x00,0xf1,0x01,0x00,0x00, +0xf0,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0xbb,0x00,0x00,0x00, +0xf2,0x01,0x00,0x00,0xf1,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xf9,0x01,0x00,0x00,0x90,0x00,0x00,0x00, +0xf8,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0xda,0x00,0x00,0x00, +0xfa,0x01,0x00,0x00,0xc3,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0xc6,0x00,0x00,0x00,0x28,0x01,0x00,0x00,0xf9,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0xfb,0x01,0x00,0x00, +0xfa,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xfc,0x01,0x00,0x00,0xfb,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0xfd,0x01,0x00,0x00,0xfc,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xfe,0x01,0x00,0x00, +0xfd,0x01,0x00,0x00,0x1b,0x01,0x00,0x00,0x72,0x00,0x04,0x00, +0xe1,0x00,0x00,0x00,0xff,0x01,0x00,0x00,0xfe,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0x00,0x02,0x00,0x00, +0xff,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x07,0x02,0x00,0x00,0x90,0x00,0x00,0x00,0x06,0x02,0x00,0x00, +0x41,0x00,0x08,0x00,0xda,0x00,0x00,0x00,0x08,0x02,0x00,0x00, +0xc3,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xc6,0x00,0x00,0x00, +0x28,0x01,0x00,0x00,0x07,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0xbb,0x00,0x00,0x00,0x09,0x02,0x00,0x00,0x08,0x02,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x0a,0x02,0x00,0x00, +0x09,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x0b,0x02,0x00,0x00,0x0a,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x0c,0x02,0x00,0x00,0x0b,0x02,0x00,0x00, +0x1b,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0xe1,0x00,0x00,0x00, +0x0d,0x02,0x00,0x00,0x0c,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, +0xbb,0x00,0x00,0x00,0x0e,0x02,0x00,0x00,0x0d,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0x16,0x02,0x00,0x00, +0xde,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0xbb,0x00,0x00,0x00, +0x17,0x02,0x00,0x00,0x16,0x02,0x00,0x00,0x3b,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0x1f,0x02,0x00,0x00, +0xec,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0xbb,0x00,0x00,0x00, +0x20,0x02,0x00,0x00,0x1f,0x02,0x00,0x00,0x3b,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0x28,0x02,0x00,0x00, +0xfa,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0xbb,0x00,0x00,0x00, +0x29,0x02,0x00,0x00,0x28,0x02,0x00,0x00,0x3b,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0x31,0x02,0x00,0x00, +0x08,0x02,0x00,0x00,0xc2,0x00,0x05,0x00,0xbb,0x00,0x00,0x00, +0x32,0x02,0x00,0x00,0x31,0x02,0x00,0x00,0x3b,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3a,0x02,0x00,0x00, +0xe9,0x03,0x00,0x00,0xb2,0x00,0x00,0x00,0x41,0x00,0x06,0x00, +0x3b,0x02,0x00,0x00,0x3c,0x02,0x00,0x00,0x37,0x02,0x00,0x00, +0x61,0x00,0x00,0x00,0x3a,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0x3d,0x02,0x00,0x00,0x3c,0x02,0x00,0x00, +0x70,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x3f,0x02,0x00,0x00, +0x8c,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x44,0x02,0x00,0x00,0x3a,0x02,0x00,0x00,0x12,0x00,0x00,0x00, +0x41,0x00,0x06,0x00,0x3b,0x02,0x00,0x00,0x45,0x02,0x00,0x00, +0x37,0x02,0x00,0x00,0x61,0x00,0x00,0x00,0x44,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x46,0x02,0x00,0x00, +0x45,0x02,0x00,0x00,0x70,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0x48,0x02,0x00,0x00,0x99,0x01,0x00,0x00,0x85,0x00,0x05,0x00, +0x97,0x00,0x00,0x00,0x49,0x02,0x00,0x00,0x46,0x02,0x00,0x00, +0x48,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x97,0x00,0x00,0x00, +0x4a,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0x3d,0x02,0x00,0x00,0x3f,0x02,0x00,0x00,0x49,0x02,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4e,0x02,0x00,0x00, +0x3a,0x02,0x00,0x00,0x51,0x00,0x00,0x00,0x41,0x00,0x06,0x00, +0x3b,0x02,0x00,0x00,0x4f,0x02,0x00,0x00,0x37,0x02,0x00,0x00, +0x61,0x00,0x00,0x00,0x4e,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0x50,0x02,0x00,0x00,0x4f,0x02,0x00,0x00, +0x70,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x52,0x02,0x00,0x00, +0xa6,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0x97,0x00,0x00,0x00, +0x54,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0x50,0x02,0x00,0x00,0x52,0x02,0x00,0x00,0x4a,0x02,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x58,0x02,0x00,0x00, +0x3a,0x02,0x00,0x00,0xac,0x01,0x00,0x00,0x41,0x00,0x06,0x00, +0x3b,0x02,0x00,0x00,0x59,0x02,0x00,0x00,0x37,0x02,0x00,0x00, +0x61,0x00,0x00,0x00,0x58,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0x5a,0x02,0x00,0x00,0x59,0x02,0x00,0x00, +0x70,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x5c,0x02,0x00,0x00, +0xb4,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0x97,0x00,0x00,0x00, +0x5e,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0x5a,0x02,0x00,0x00,0x5c,0x02,0x00,0x00,0x54,0x02,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x63,0x02,0x00,0x00, +0x3a,0x02,0x00,0x00,0x8c,0x00,0x00,0x00,0x41,0x00,0x06,0x00, +0x3b,0x02,0x00,0x00,0x64,0x02,0x00,0x00,0x37,0x02,0x00,0x00, +0x61,0x00,0x00,0x00,0x63,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0x65,0x02,0x00,0x00,0x64,0x02,0x00,0x00, +0x70,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x67,0x02,0x00,0x00, +0xbc,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x6d,0x02,0x00,0x00,0x3a,0x02,0x00,0x00,0x6c,0x02,0x00,0x00, +0x41,0x00,0x06,0x00,0x3b,0x02,0x00,0x00,0x6e,0x02,0x00,0x00, +0x37,0x02,0x00,0x00,0x61,0x00,0x00,0x00,0x6d,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x6f,0x02,0x00,0x00, +0x6e,0x02,0x00,0x00,0x70,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0x71,0x02,0x00,0x00,0xc5,0x01,0x00,0x00,0x85,0x00,0x05,0x00, +0x97,0x00,0x00,0x00,0x72,0x02,0x00,0x00,0x6f,0x02,0x00,0x00, +0x71,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x97,0x00,0x00,0x00, +0x73,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0x65,0x02,0x00,0x00,0x67,0x02,0x00,0x00,0x72,0x02,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x78,0x02,0x00,0x00, +0x3a,0x02,0x00,0x00,0x77,0x02,0x00,0x00,0x41,0x00,0x06,0x00, +0x3b,0x02,0x00,0x00,0x79,0x02,0x00,0x00,0x37,0x02,0x00,0x00, +0x61,0x00,0x00,0x00,0x78,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0x7a,0x02,0x00,0x00,0x79,0x02,0x00,0x00, +0x70,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x7c,0x02,0x00,0x00, +0xce,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0x97,0x00,0x00,0x00, +0x7e,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0x7a,0x02,0x00,0x00,0x7c,0x02,0x00,0x00,0x73,0x02,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x83,0x02,0x00,0x00, +0x3a,0x02,0x00,0x00,0x82,0x02,0x00,0x00,0x41,0x00,0x06,0x00, +0x3b,0x02,0x00,0x00,0x84,0x02,0x00,0x00,0x37,0x02,0x00,0x00, +0x61,0x00,0x00,0x00,0x83,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0x85,0x02,0x00,0x00,0x84,0x02,0x00,0x00, +0x70,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x87,0x02,0x00,0x00, +0xd7,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0x97,0x00,0x00,0x00, +0x89,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0x85,0x02,0x00,0x00,0x87,0x02,0x00,0x00,0x7e,0x02,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8d,0x02,0x00,0x00, +0xe9,0x03,0x00,0x00,0xb6,0x00,0x00,0x00,0x41,0x00,0x06,0x00, +0x3b,0x02,0x00,0x00,0x8e,0x02,0x00,0x00,0x37,0x02,0x00,0x00, +0x61,0x00,0x00,0x00,0x8d,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0x8f,0x02,0x00,0x00,0x8e,0x02,0x00,0x00, +0x70,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x91,0x02,0x00,0x00, +0xe4,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x96,0x02,0x00,0x00,0x8d,0x02,0x00,0x00,0x12,0x00,0x00,0x00, +0x41,0x00,0x06,0x00,0x3b,0x02,0x00,0x00,0x97,0x02,0x00,0x00, +0x37,0x02,0x00,0x00,0x61,0x00,0x00,0x00,0x96,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x98,0x02,0x00,0x00, +0x97,0x02,0x00,0x00,0x70,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0x9a,0x02,0x00,0x00,0xf2,0x01,0x00,0x00,0x85,0x00,0x05,0x00, +0x97,0x00,0x00,0x00,0x9b,0x02,0x00,0x00,0x98,0x02,0x00,0x00, +0x9a,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x97,0x00,0x00,0x00, +0x9c,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0x8f,0x02,0x00,0x00,0x91,0x02,0x00,0x00,0x9b,0x02,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa0,0x02,0x00,0x00, +0x8d,0x02,0x00,0x00,0x51,0x00,0x00,0x00,0x41,0x00,0x06,0x00, +0x3b,0x02,0x00,0x00,0xa1,0x02,0x00,0x00,0x37,0x02,0x00,0x00, +0x61,0x00,0x00,0x00,0xa0,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0xa2,0x02,0x00,0x00,0xa1,0x02,0x00,0x00, +0x70,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0xa4,0x02,0x00,0x00, +0x00,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x97,0x00,0x00,0x00, +0xa6,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0xa2,0x02,0x00,0x00,0xa4,0x02,0x00,0x00,0x9c,0x02,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xaa,0x02,0x00,0x00, +0x8d,0x02,0x00,0x00,0xac,0x01,0x00,0x00,0x41,0x00,0x06,0x00, +0x3b,0x02,0x00,0x00,0xab,0x02,0x00,0x00,0x37,0x02,0x00,0x00, +0x61,0x00,0x00,0x00,0xaa,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0xac,0x02,0x00,0x00,0xab,0x02,0x00,0x00, +0x70,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0xae,0x02,0x00,0x00, +0x0e,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x97,0x00,0x00,0x00, +0xb0,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0xac,0x02,0x00,0x00,0xae,0x02,0x00,0x00,0xa6,0x02,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb5,0x02,0x00,0x00, +0x8d,0x02,0x00,0x00,0x8c,0x00,0x00,0x00,0x41,0x00,0x06,0x00, +0x3b,0x02,0x00,0x00,0xb6,0x02,0x00,0x00,0x37,0x02,0x00,0x00, +0x61,0x00,0x00,0x00,0xb5,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0xb7,0x02,0x00,0x00,0xb6,0x02,0x00,0x00, +0x70,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0xb9,0x02,0x00,0x00, +0x17,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xbe,0x02,0x00,0x00,0x8d,0x02,0x00,0x00,0x6c,0x02,0x00,0x00, +0x41,0x00,0x06,0x00,0x3b,0x02,0x00,0x00,0xbf,0x02,0x00,0x00, +0x37,0x02,0x00,0x00,0x61,0x00,0x00,0x00,0xbe,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0xc0,0x02,0x00,0x00, +0xbf,0x02,0x00,0x00,0x70,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0xc2,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x85,0x00,0x05,0x00, +0x97,0x00,0x00,0x00,0xc3,0x02,0x00,0x00,0xc0,0x02,0x00,0x00, +0xc2,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x97,0x00,0x00,0x00, +0xc4,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0xb7,0x02,0x00,0x00,0xb9,0x02,0x00,0x00,0xc3,0x02,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc8,0x02,0x00,0x00, +0x8d,0x02,0x00,0x00,0x77,0x02,0x00,0x00,0x41,0x00,0x06,0x00, +0x3b,0x02,0x00,0x00,0xc9,0x02,0x00,0x00,0x37,0x02,0x00,0x00, +0x61,0x00,0x00,0x00,0xc8,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0xca,0x02,0x00,0x00,0xc9,0x02,0x00,0x00, +0x70,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0xcc,0x02,0x00,0x00, +0x29,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x97,0x00,0x00,0x00, +0xce,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0xca,0x02,0x00,0x00,0xcc,0x02,0x00,0x00,0xc4,0x02,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd2,0x02,0x00,0x00, +0x8d,0x02,0x00,0x00,0x82,0x02,0x00,0x00,0x41,0x00,0x06,0x00, +0x3b,0x02,0x00,0x00,0xd3,0x02,0x00,0x00,0x37,0x02,0x00,0x00, +0x61,0x00,0x00,0x00,0xd2,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0xd4,0x02,0x00,0x00,0xd3,0x02,0x00,0x00, +0x70,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0xd6,0x02,0x00,0x00, +0x32,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x97,0x00,0x00,0x00, +0xd8,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0xd4,0x02,0x00,0x00,0xd6,0x02,0x00,0x00,0xce,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0xde,0x02,0x00,0x00, +0x3c,0x02,0x00,0x00,0x70,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0xe0,0x02,0x00,0x00,0xff,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0xe7,0x02,0x00,0x00,0x64,0x02,0x00,0x00, +0x70,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0xe9,0x02,0x00,0x00, +0x0e,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x97,0x00,0x00,0x00, +0xea,0x02,0x00,0x00,0xe7,0x02,0x00,0x00,0xe9,0x02,0x00,0x00, +0x0c,0x00,0x08,0x00,0x97,0x00,0x00,0x00,0xeb,0x02,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xde,0x02,0x00,0x00, +0xe0,0x02,0x00,0x00,0xea,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0xf0,0x02,0x00,0x00,0x8e,0x02,0x00,0x00, +0x70,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0xf2,0x02,0x00,0x00, +0x64,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0x97,0x00,0x00,0x00, +0xf4,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0xf0,0x02,0x00,0x00,0xf2,0x02,0x00,0x00,0xeb,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0xfa,0x02,0x00,0x00, +0xb6,0x02,0x00,0x00,0x70,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0xfc,0x02,0x00,0x00,0x80,0x01,0x00,0x00,0x0c,0x00,0x08,0x00, +0x97,0x00,0x00,0x00,0xfe,0x02,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0xfa,0x02,0x00,0x00,0xfc,0x02,0x00,0x00, +0xf4,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0x04,0x03,0x00,0x00,0x45,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, +0x97,0x00,0x00,0x00,0x08,0x03,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x04,0x03,0x00,0x00,0xe0,0x02,0x00,0x00, +0xfe,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0x0e,0x03,0x00,0x00,0x6e,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, +0x97,0x00,0x00,0x00,0x12,0x03,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x0e,0x03,0x00,0x00,0xe9,0x02,0x00,0x00, +0x08,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0x18,0x03,0x00,0x00,0x97,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, +0x97,0x00,0x00,0x00,0x1c,0x03,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x18,0x03,0x00,0x00,0xf2,0x02,0x00,0x00, +0x12,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0x22,0x03,0x00,0x00,0xbf,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, +0x97,0x00,0x00,0x00,0x26,0x03,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x22,0x03,0x00,0x00,0xfc,0x02,0x00,0x00, +0x1c,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0x2c,0x03,0x00,0x00,0x4f,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, +0x97,0x00,0x00,0x00,0x30,0x03,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x2c,0x03,0x00,0x00,0xe0,0x02,0x00,0x00, +0x26,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0x36,0x03,0x00,0x00,0x79,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, +0x97,0x00,0x00,0x00,0x3a,0x03,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x36,0x03,0x00,0x00,0xe9,0x02,0x00,0x00, +0x30,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0x40,0x03,0x00,0x00,0xa1,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, +0x97,0x00,0x00,0x00,0x44,0x03,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x40,0x03,0x00,0x00,0xf2,0x02,0x00,0x00, +0x3a,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0x4a,0x03,0x00,0x00,0xc9,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, +0x97,0x00,0x00,0x00,0x4e,0x03,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x4a,0x03,0x00,0x00,0xfc,0x02,0x00,0x00, +0x44,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0x54,0x03,0x00,0x00,0x59,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, +0x97,0x00,0x00,0x00,0x58,0x03,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x54,0x03,0x00,0x00,0xe0,0x02,0x00,0x00, +0x4e,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0x5e,0x03,0x00,0x00,0x84,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, +0x97,0x00,0x00,0x00,0x62,0x03,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x5e,0x03,0x00,0x00,0xe9,0x02,0x00,0x00, +0x58,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0x68,0x03,0x00,0x00,0xab,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, +0x97,0x00,0x00,0x00,0x6c,0x03,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x68,0x03,0x00,0x00,0xf2,0x02,0x00,0x00, +0x62,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0x72,0x03,0x00,0x00,0xd3,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, +0x97,0x00,0x00,0x00,0x76,0x03,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x72,0x03,0x00,0x00,0xfc,0x02,0x00,0x00, +0x6c,0x03,0x00,0x00,0x70,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0x7e,0x03,0x00,0x00,0xe3,0x00,0x00,0x00,0x70,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0x82,0x03,0x00,0x00,0xf1,0x00,0x00,0x00, +0x85,0x00,0x05,0x00,0x97,0x00,0x00,0x00,0x83,0x03,0x00,0x00, +0x89,0x02,0x00,0x00,0x82,0x03,0x00,0x00,0x0c,0x00,0x08,0x00, +0x97,0x00,0x00,0x00,0x84,0x03,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x5e,0x02,0x00,0x00,0x7e,0x03,0x00,0x00, +0x83,0x03,0x00,0x00,0x70,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0x87,0x03,0x00,0x00,0x2c,0x01,0x00,0x00,0x0c,0x00,0x08,0x00, +0x97,0x00,0x00,0x00,0x89,0x03,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0xb0,0x02,0x00,0x00,0x87,0x03,0x00,0x00, +0x84,0x03,0x00,0x00,0x70,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0x8c,0x03,0x00,0x00,0x48,0x01,0x00,0x00,0x0c,0x00,0x08,0x00, +0x97,0x00,0x00,0x00,0x8e,0x03,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0xd8,0x02,0x00,0x00,0x8c,0x03,0x00,0x00, +0x89,0x03,0x00,0x00,0x85,0x00,0x05,0x00,0x97,0x00,0x00,0x00, +0x92,0x03,0x00,0x00,0xd1,0x00,0x00,0x00,0x76,0x03,0x00,0x00, +0x7f,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0xf2,0x03,0x00,0x00, +0x92,0x03,0x00,0x00,0x0c,0x00,0x08,0x00,0x97,0x00,0x00,0x00, +0x93,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0xca,0x00,0x00,0x00,0x8e,0x03,0x00,0x00,0xf2,0x03,0x00,0x00, +0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x95,0x03,0x00,0x00, +0xa2,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x97,0x00,0x00,0x00, +0x96,0x03,0x00,0x00,0x95,0x03,0x00,0x00,0x93,0x03,0x00,0x00, +0x3e,0x00,0x03,0x00,0xa2,0x00,0x00,0x00,0x96,0x03,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x99,0x03,0x00,0x00, +0xee,0x03,0x00,0x00,0x51,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, +0xa5,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xa7,0x00,0x00,0x00, +0xe0,0x00,0x04,0x00,0x51,0x00,0x00,0x00,0x51,0x00,0x00,0x00, +0x9a,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,0x9c,0x03,0x00,0x00, +0xf8,0x00,0x02,0x00,0x9c,0x03,0x00,0x00,0xf5,0x00,0x07,0x00, +0x06,0x00,0x00,0x00,0xef,0x03,0x00,0x00,0x9b,0x00,0x00,0x00, +0xa7,0x00,0x00,0x00,0xb3,0x03,0x00,0x00,0x9f,0x03,0x00,0x00, +0xac,0x00,0x05,0x00,0xac,0x00,0x00,0x00,0xa2,0x03,0x00,0x00, +0xef,0x03,0x00,0x00,0x4b,0x00,0x00,0x00,0xf6,0x00,0x04,0x00, +0x9e,0x03,0x00,0x00,0x9f,0x03,0x00,0x00,0x01,0x00,0x00,0x00, +0xfa,0x00,0x04,0x00,0xa2,0x03,0x00,0x00,0x9d,0x03,0x00,0x00, +0x9e,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x9d,0x03,0x00,0x00, +0xb0,0x00,0x05,0x00,0xac,0x00,0x00,0x00,0xa5,0x03,0x00,0x00, +0x71,0x00,0x00,0x00,0xef,0x03,0x00,0x00,0xf7,0x00,0x03,0x00, +0xa7,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, +0xa5,0x03,0x00,0x00,0xa6,0x03,0x00,0x00,0xa7,0x03,0x00,0x00, +0xf8,0x00,0x02,0x00,0xa6,0x03,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xab,0x03,0x00,0x00,0x71,0x00,0x00,0x00, +0xef,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0xa1,0x00,0x00,0x00, +0xac,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0xab,0x03,0x00,0x00, +0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0xad,0x03,0x00,0x00, +0xac,0x03,0x00,0x00,0x41,0x00,0x05,0x00,0xa1,0x00,0x00,0x00, +0xae,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0x71,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0xaf,0x03,0x00,0x00, +0xae,0x03,0x00,0x00,0x81,0x00,0x05,0x00,0x97,0x00,0x00,0x00, +0xb0,0x03,0x00,0x00,0xaf,0x03,0x00,0x00,0xad,0x03,0x00,0x00, +0x3e,0x00,0x03,0x00,0xae,0x03,0x00,0x00,0xb0,0x03,0x00,0x00, +0xf9,0x00,0x02,0x00,0xa7,0x03,0x00,0x00,0xf8,0x00,0x02,0x00, +0xa7,0x03,0x00,0x00,0xe0,0x00,0x04,0x00,0x51,0x00,0x00,0x00, +0x51,0x00,0x00,0x00,0x9a,0x03,0x00,0x00,0xf9,0x00,0x02,0x00, +0x9f,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x9f,0x03,0x00,0x00, +0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb3,0x03,0x00,0x00, +0xef,0x03,0x00,0x00,0xd7,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, +0x9c,0x03,0x00,0x00,0xf8,0x00,0x02,0x00,0x9e,0x03,0x00,0x00, +0xaa,0x00,0x05,0x00,0xac,0x00,0x00,0x00,0xb5,0x03,0x00,0x00, +0x71,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0xf7,0x00,0x03,0x00, +0xb7,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, +0xb5,0x03,0x00,0x00,0xb6,0x03,0x00,0x00,0xb7,0x03,0x00,0x00, +0xf8,0x00,0x02,0x00,0xb6,0x03,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xbe,0x03,0x00,0x00,0xed,0x03,0x00,0x00, +0x55,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0xa1,0x00,0x00,0x00, +0xbf,0x03,0x00,0x00,0x9a,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0xc0,0x03,0x00,0x00, +0xbf,0x03,0x00,0x00,0x41,0x00,0x06,0x00,0x3b,0x02,0x00,0x00, +0xc1,0x03,0x00,0x00,0xbb,0x03,0x00,0x00,0x61,0x00,0x00,0x00, +0xbe,0x03,0x00,0x00,0x3e,0x00,0x03,0x00,0xc1,0x03,0x00,0x00, +0xc0,0x03,0x00,0x00,0xf9,0x00,0x02,0x00,0xb7,0x03,0x00,0x00, +0xf8,0x00,0x02,0x00,0xb7,0x03,0x00,0x00,0xfd,0x00,0x01,0x00, +0x38,0x00,0x01,0x00, +}; +const uint64_t mul_mat_vec_q4_k_f32_f32_len = 10036; + +unsigned char mul_mat_vec_q5_0_f16_f32_data[] = { +0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00, +0xbf,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, +0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x51,0x11,0x00,0x00, +0x11,0x00,0x02,0x00,0x60,0x11,0x00,0x00,0x0b,0x00,0x06,0x00, +0x01,0x00,0x00,0x00,0x47,0x4c,0x53,0x4c,0x2e,0x73,0x74,0x64, +0x2e,0x34,0x35,0x30,0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00, +0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0f,0x00,0x0e,0x00, +0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e, +0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x78,0x00,0x00,0x00, +0x80,0x00,0x00,0x00,0xae,0x00,0x00,0x00,0xb1,0x00,0x00,0x00, +0xb9,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0x02,0x01,0x00,0x00, +0x41,0x01,0x00,0x00,0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00, +0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x1e,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x1f,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x1f,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x20,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x16,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x21,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x21,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x23,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x23,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x78,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, 0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x7e,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x7e,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x7e,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x28,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x7e,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xae,0x00,0x00,0x00, -0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xb2,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xbf,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xf8,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x48,0x00,0x04,0x00, -0xf9,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0xf9,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, -0xf9,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xfb,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xfb,0x00,0x00,0x00,0x21,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x37,0x01,0x00,0x00, -0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00, -0x38,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x38,0x01,0x00,0x00,0x00,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, -0x38,0x01,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x3a,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x3a,0x01,0x00,0x00,0x21,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x42,0x01,0x00,0x00, -0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x43,0x01,0x00,0x00,0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00, -0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00, -0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x16,0x00,0x03,0x00,0x08,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x17,0x00,0x04,0x00,0x09,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0x18,0x00,0x00,0x00, -0x10,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x19,0x00,0x00,0x00, -0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x1c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x19,0x00,0x00,0x00, -0x1a,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x1c,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x1d,0x00,0x00,0x00,0x10,0x00,0x00,0x00, -0x1c,0x00,0x04,0x00,0x1e,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x1d,0x00,0x00,0x00,0x1e,0x00,0x05,0x00,0x1f,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x1e,0x00,0x00,0x00, -0x1d,0x00,0x03,0x00,0x20,0x00,0x00,0x00,0x1f,0x00,0x00,0x00, -0x1e,0x00,0x03,0x00,0x21,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x22,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x21,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x22,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x15,0x00,0x04,0x00, -0x24,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x24,0x00,0x00,0x00,0x25,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x29,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x24,0x00,0x00,0x00,0x31,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x32,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x19,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x24,0x00,0x00,0x00, -0x36,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x24,0x00,0x00,0x00,0x45,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4b,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x24,0x00,0x00,0x00, -0x55,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x57,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x5c,0x00,0x00,0x00, -0x0f,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x5e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x67,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x6e,0x00,0x00,0x00, -0x00,0x00,0x80,0x41,0x17,0x00,0x04,0x00,0x76,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x77,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0x77,0x00,0x00,0x00,0x78,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x79,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x1e,0x00,0x0d,0x00, -0x7e,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x7e,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x7f,0x00,0x00,0x00, -0x80,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x24,0x00,0x00,0x00,0x81,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x82,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x24,0x00,0x00,0x00, -0x8d,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x24,0x00,0x00,0x00,0x93,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x24,0x00,0x00,0x00,0x99,0x00,0x00,0x00, -0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x24,0x00,0x00,0x00, -0xa4,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x24,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0x77,0x00,0x00,0x00,0xae,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x7e,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x7e,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x7e,0x00,0x00,0x00, +0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x7e,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x7e,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x7e,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x7e,0x00,0x00,0x00,0x07,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x7e,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x7e,0x00,0x00,0x00, +0x09,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x7e,0x00,0x00,0x00,0x0a,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0x7e,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xae,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xb1,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xb9,0x00,0x00,0x00, +0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xc6,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xff,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x00,0x01,0x00,0x00, +0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x00,0x01,0x00,0x00, +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x02,0x01,0x00,0x00, +0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x02,0x01,0x00,0x00,0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x3e,0x01,0x00,0x00,0x06,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x3f,0x01,0x00,0x00, +0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x3f,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x3f,0x01,0x00,0x00, +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x41,0x01,0x00,0x00, +0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x41,0x01,0x00,0x00,0x21,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x49,0x01,0x00,0x00,0x01,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x4a,0x01,0x00,0x00, +0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x13,0x00,0x02,0x00, +0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x00,0x03,0x00, +0x08,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x17,0x00,0x04,0x00, +0x09,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x16,0x00,0x03,0x00,0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00, +0x15,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x10,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x1a,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, +0x15,0x00,0x04,0x00,0x1c,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x1d,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, +0x1e,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x1d,0x00,0x00,0x00, +0x1e,0x00,0x05,0x00,0x1f,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x1b,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, +0x20,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, +0x21,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x22,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x21,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x22,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x24,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x24,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x29,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x24,0x00,0x00,0x00, +0x31,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x32,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x19,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x24,0x00,0x00,0x00,0x36,0x00,0x00,0x00, +0x10,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x24,0x00,0x00,0x00, +0x45,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x24,0x00,0x00,0x00,0x55,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x57,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,0x0f,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x5e,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x67,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x08,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x00,0x00,0x80,0x41, +0x17,0x00,0x04,0x00,0x76,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x77,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x76,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0x77,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x79,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x1e,0x00,0x0d,0x00,0x7e,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x7f,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x7e,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0x80,0x00,0x00,0x00, +0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x24,0x00,0x00,0x00, +0x81,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x82,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x24,0x00,0x00,0x00,0x8d,0x00,0x00,0x00, +0x0a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x24,0x00,0x00,0x00, +0x93,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x24,0x00,0x00,0x00,0x99,0x00,0x00,0x00,0x07,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x24,0x00,0x00,0x00,0xa4,0x00,0x00,0x00, +0x05,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x24,0x00,0x00,0x00, +0xa9,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0x77,0x00,0x00,0x00,0xae,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x77,0x00,0x00,0x00,0xb1,0x00,0x00,0x00, 0x01,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x77,0x00,0x00,0x00, -0xb2,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x1c,0x00,0x04,0x00,0xc0,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0xbf,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xc1,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0xc1,0x00,0x00,0x00,0xc2,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xc4,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xc5,0x00,0x00,0x00, +0xb9,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,0x20,0x00,0x00,0x00, +0x1c,0x00,0x04,0x00,0xc7,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0xc6,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xc8,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0xc8,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xcb,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xcc,0x00,0x00,0x00, 0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x14,0x00,0x02,0x00, -0xd1,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xe0,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, -0xf8,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, -0xf9,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0xfa,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xf9,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0xfa,0x00,0x00,0x00,0xfb,0x00,0x00,0x00, +0xd8,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xe7,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, +0xff,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, +0x00,0x01,0x00,0x00,0xff,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x01,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x00,0x01,0x00,0x00, +0x3b,0x00,0x04,0x00,0x01,0x01,0x00,0x00,0x02,0x01,0x00,0x00, 0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x18,0x01,0x00,0x00,0x08,0x01,0x00,0x00,0x34,0x00,0x06,0x00, -0x06,0x00,0x00,0x00,0x1a,0x01,0x00,0x00,0x86,0x00,0x00,0x00, -0xbf,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, -0x37,0x01,0x00,0x00,0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, -0x38,0x01,0x00,0x00,0x37,0x01,0x00,0x00,0x20,0x00,0x04,0x00, -0x39,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x38,0x01,0x00,0x00, -0x3b,0x00,0x04,0x00,0x39,0x01,0x00,0x00,0x3a,0x01,0x00,0x00, -0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x40,0x01,0x00,0x00, +0x1f,0x01,0x00,0x00,0x08,0x01,0x00,0x00,0x34,0x00,0x06,0x00, +0x06,0x00,0x00,0x00,0x21,0x01,0x00,0x00,0x86,0x00,0x00,0x00, +0xc6,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, +0x3e,0x01,0x00,0x00,0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, +0x3f,0x01,0x00,0x00,0x3e,0x01,0x00,0x00,0x20,0x00,0x04,0x00, +0x40,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x3f,0x01,0x00,0x00, +0x3b,0x00,0x04,0x00,0x40,0x01,0x00,0x00,0x41,0x01,0x00,0x00, +0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x47,0x01,0x00,0x00, 0x0c,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x32,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x42,0x01,0x00,0x00,0x01,0x00,0x00,0x00, -0x33,0x00,0x06,0x00,0x76,0x00,0x00,0x00,0x43,0x01,0x00,0x00, -0x42,0x01,0x00,0x00,0x67,0x00,0x00,0x00,0x67,0x00,0x00,0x00, -0x2c,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0xb7,0x01,0x00,0x00, +0x06,0x00,0x00,0x00,0x49,0x01,0x00,0x00,0x01,0x00,0x00,0x00, +0x33,0x00,0x06,0x00,0x76,0x00,0x00,0x00,0x4a,0x01,0x00,0x00, +0x49,0x01,0x00,0x00,0x67,0x00,0x00,0x00,0x67,0x00,0x00,0x00, +0x2c,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0xbe,0x01,0x00,0x00, 0x6e,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x36,0x00,0x05,0x00, 0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x03,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00, 0x41,0x00,0x05,0x00,0x79,0x00,0x00,0x00,0xaf,0x00,0x00,0x00, 0xae,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, 0x06,0x00,0x00,0x00,0xb0,0x00,0x00,0x00,0xaf,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x79,0x00,0x00,0x00,0xb3,0x00,0x00,0x00, -0xb2,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,0xb3,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x79,0x00,0x00,0x00,0x4b,0x01,0x00,0x00, -0x78,0x00,0x00,0x00,0x67,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x4c,0x01,0x00,0x00,0x4b,0x01,0x00,0x00, -0x41,0x00,0x05,0x00,0x82,0x00,0x00,0x00,0x4e,0x01,0x00,0x00, -0x80,0x00,0x00,0x00,0x81,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x4f,0x01,0x00,0x00,0x4e,0x01,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x50,0x01,0x00,0x00, -0x4c,0x01,0x00,0x00,0x4f,0x01,0x00,0x00,0x89,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x54,0x01,0x00,0x00,0x4c,0x01,0x00,0x00, -0x4f,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x82,0x00,0x00,0x00, -0x56,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x8d,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x57,0x01,0x00,0x00, -0x56,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x58,0x01,0x00,0x00,0x50,0x01,0x00,0x00,0x57,0x01,0x00,0x00, -0x41,0x00,0x05,0x00,0x82,0x00,0x00,0x00,0x5a,0x01,0x00,0x00, -0x80,0x00,0x00,0x00,0x93,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x5b,0x01,0x00,0x00,0x5a,0x01,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5c,0x01,0x00,0x00, -0x54,0x01,0x00,0x00,0x5b,0x01,0x00,0x00,0x41,0x00,0x05,0x00, -0x82,0x00,0x00,0x00,0x5e,0x01,0x00,0x00,0x80,0x00,0x00,0x00, -0x99,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x5f,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x60,0x01,0x00,0x00,0x58,0x01,0x00,0x00, -0x5f,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x62,0x01,0x00,0x00,0x60,0x01,0x00,0x00,0x5c,0x01,0x00,0x00, -0x41,0x00,0x05,0x00,0x82,0x00,0x00,0x00,0x64,0x01,0x00,0x00, -0x80,0x00,0x00,0x00,0x45,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x65,0x01,0x00,0x00,0x64,0x01,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x66,0x01,0x00,0x00, -0x62,0x01,0x00,0x00,0x65,0x01,0x00,0x00,0x41,0x00,0x05,0x00, -0x82,0x00,0x00,0x00,0x68,0x01,0x00,0x00,0x80,0x00,0x00,0x00, -0xa4,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x69,0x01,0x00,0x00,0x68,0x01,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x6a,0x01,0x00,0x00,0x4c,0x01,0x00,0x00, -0x69,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x82,0x00,0x00,0x00, -0x6c,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0xa9,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x6d,0x01,0x00,0x00, -0x6c,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x6e,0x01,0x00,0x00,0x4c,0x01,0x00,0x00,0x6d,0x01,0x00,0x00, -0x41,0x00,0x05,0x00,0xc5,0x00,0x00,0x00,0xc6,0x00,0x00,0x00, -0xc2,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,0x3e,0x00,0x03,0x00, -0xc6,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, -0xc8,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xc8,0x00,0x00,0x00, -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xb4,0x01,0x00,0x00, -0x5e,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x17,0x01,0x00,0x00, -0xc9,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x82,0x00,0x00,0x00, -0xce,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x25,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xcf,0x00,0x00,0x00, -0xce,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xd0,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0xbf,0x00,0x00,0x00, -0xb0,0x00,0x05,0x00,0xd1,0x00,0x00,0x00,0xd2,0x00,0x00,0x00, -0xb4,0x01,0x00,0x00,0xd0,0x00,0x00,0x00,0xf6,0x00,0x04,0x00, -0xca,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0xfa,0x00,0x04,0x00,0xd2,0x00,0x00,0x00,0xc9,0x00,0x00,0x00, -0xca,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xc9,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd5,0x00,0x00,0x00, -0xb4,0x01,0x00,0x00,0xbf,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xd7,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, -0xb4,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xd8,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0xd7,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdd,0x00,0x00,0x00, -0xb0,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0xdd,0x00,0x00,0x00, -0xd8,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xe1,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0xe0,0x00,0x00,0x00, -0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe4,0x00,0x00,0x00, -0xd8,0x00,0x00,0x00,0xe0,0x00,0x00,0x00,0x86,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xe5,0x00,0x00,0x00,0xe4,0x00,0x00,0x00, -0x1a,0x00,0x00,0x00,0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xea,0x00,0x00,0x00,0xd8,0x00,0x00,0x00,0xe4,0x00,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xee,0x00,0x00,0x00, -0x66,0x01,0x00,0x00,0xe0,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x77,0x01,0x00,0x00,0xee,0x00,0x00,0x00, -0xe1,0x00,0x00,0x00,0x41,0x00,0x07,0x00,0x29,0x00,0x00,0x00, -0x78,0x01,0x00,0x00,0x23,0x00,0x00,0x00,0x25,0x00,0x00,0x00, -0x77,0x01,0x00,0x00,0x25,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x18,0x00,0x00,0x00,0x79,0x01,0x00,0x00,0x78,0x01,0x00,0x00, -0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x7a,0x01,0x00,0x00, -0x79,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x32,0x00,0x00,0x00, -0x7e,0x01,0x00,0x00,0x23,0x00,0x00,0x00,0x25,0x00,0x00,0x00, -0x77,0x01,0x00,0x00,0x31,0x00,0x00,0x00,0x31,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x7f,0x01,0x00,0x00, -0x7e,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x80,0x01,0x00,0x00,0x7f,0x01,0x00,0x00,0xc4,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x81,0x01,0x00,0x00,0x80,0x01,0x00,0x00, -0x36,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0x32,0x00,0x00,0x00, -0x85,0x01,0x00,0x00,0x23,0x00,0x00,0x00,0x25,0x00,0x00,0x00, -0x77,0x01,0x00,0x00,0x31,0x00,0x00,0x00,0x25,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x86,0x01,0x00,0x00, -0x85,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x87,0x01,0x00,0x00,0x86,0x01,0x00,0x00,0xc5,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x88,0x01,0x00,0x00,0x81,0x01,0x00,0x00, -0x87,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x8b,0x01,0x00,0x00,0x88,0x01,0x00,0x00,0xe5,0x00,0x00,0x00, -0xc4,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8c,0x01,0x00,0x00, -0x8b,0x01,0x00,0x00,0x45,0x00,0x00,0x00,0xc7,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x8d,0x01,0x00,0x00,0x8c,0x01,0x00,0x00, -0x1d,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x24,0x00,0x00,0x00, -0x8e,0x01,0x00,0x00,0x8d,0x01,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x91,0x01,0x00,0x00,0xe5,0x00,0x00,0x00, -0x4b,0x00,0x00,0x00,0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x92,0x01,0x00,0x00,0x88,0x01,0x00,0x00,0x91,0x01,0x00,0x00, -0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x93,0x01,0x00,0x00, -0x92,0x01,0x00,0x00,0x1d,0x00,0x00,0x00,0x7c,0x00,0x04,0x00, -0x24,0x00,0x00,0x00,0x94,0x01,0x00,0x00,0x93,0x01,0x00,0x00, -0x41,0x00,0x08,0x00,0x57,0x00,0x00,0x00,0x9a,0x01,0x00,0x00, -0x23,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x77,0x01,0x00,0x00, -0x55,0x00,0x00,0x00,0xe5,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x1c,0x00,0x00,0x00,0x9b,0x01,0x00,0x00,0x9a,0x01,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x9c,0x01,0x00,0x00, -0x9b,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x9e,0x01,0x00,0x00,0x9c,0x01,0x00,0x00,0x5c,0x00,0x00,0x00, -0x7c,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa1,0x01,0x00,0x00, -0x8e,0x01,0x00,0x00,0xc5,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xa2,0x01,0x00,0x00,0x9e,0x01,0x00,0x00,0xa1,0x01,0x00,0x00, -0x70,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xa3,0x01,0x00,0x00, -0xa2,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xa5,0x01,0x00,0x00,0x9c,0x01,0x00,0x00,0x45,0x00,0x00,0x00, -0x7c,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa8,0x01,0x00,0x00, -0x94,0x01,0x00,0x00,0xc5,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xa9,0x01,0x00,0x00,0xa5,0x01,0x00,0x00,0xa8,0x01,0x00,0x00, -0x70,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xaa,0x01,0x00,0x00, -0xa9,0x01,0x00,0x00,0x50,0x00,0x05,0x00,0x09,0x00,0x00,0x00, -0xab,0x01,0x00,0x00,0xa3,0x01,0x00,0x00,0xaa,0x01,0x00,0x00, -0x83,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0xad,0x01,0x00,0x00, -0xab,0x01,0x00,0x00,0xb7,0x01,0x00,0x00,0x8e,0x00,0x05,0x00, -0x09,0x00,0x00,0x00,0xaf,0x01,0x00,0x00,0xad,0x01,0x00,0x00, -0x7a,0x01,0x00,0x00,0x51,0x00,0x05,0x00,0x08,0x00,0x00,0x00, -0xf7,0x00,0x00,0x00,0xaf,0x01,0x00,0x00,0x00,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfe,0x00,0x00,0x00, -0x6a,0x01,0x00,0x00,0xea,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0xfe,0x00,0x00,0x00, -0xe5,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x29,0x00,0x00,0x00, -0x01,0x01,0x00,0x00,0xfb,0x00,0x00,0x00,0x25,0x00,0x00,0x00, -0x00,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x18,0x00,0x00,0x00, -0x02,0x01,0x00,0x00,0x01,0x01,0x00,0x00,0x73,0x00,0x04,0x00, -0x08,0x00,0x00,0x00,0x03,0x01,0x00,0x00,0x02,0x01,0x00,0x00, -0x51,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0x06,0x01,0x00,0x00, -0xaf,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,0x00,0x01,0x00,0x00, -0x1d,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x29,0x00,0x00,0x00, -0x0d,0x01,0x00,0x00,0xfb,0x00,0x00,0x00,0x25,0x00,0x00,0x00, -0x0c,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x18,0x00,0x00,0x00, -0x0e,0x01,0x00,0x00,0x0d,0x01,0x00,0x00,0x73,0x00,0x04,0x00, -0x08,0x00,0x00,0x00,0x0f,0x01,0x00,0x00,0x0e,0x01,0x00,0x00, -0x85,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0x10,0x01,0x00,0x00, -0x06,0x01,0x00,0x00,0x0f,0x01,0x00,0x00,0x0c,0x00,0x08,0x00, -0x08,0x00,0x00,0x00,0x11,0x01,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,0x03,0x01,0x00,0x00, -0x10,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, -0x13,0x01,0x00,0x00,0xc6,0x00,0x00,0x00,0x81,0x00,0x05,0x00, -0x08,0x00,0x00,0x00,0x14,0x01,0x00,0x00,0x13,0x01,0x00,0x00, -0x11,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xc6,0x00,0x00,0x00, -0x14,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x17,0x01,0x00,0x00,0xb4,0x01,0x00,0x00,0x1a,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0xc8,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0xca,0x00,0x00,0x00,0xe0,0x00,0x04,0x00,0x1a,0x00,0x00,0x00, -0x1a,0x00,0x00,0x00,0x18,0x01,0x00,0x00,0xf9,0x00,0x02,0x00, -0x1b,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x1b,0x01,0x00,0x00, -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xb5,0x01,0x00,0x00, -0x1a,0x01,0x00,0x00,0xca,0x00,0x00,0x00,0x32,0x01,0x00,0x00, -0x1e,0x01,0x00,0x00,0xac,0x00,0x05,0x00,0xd1,0x00,0x00,0x00, -0x21,0x01,0x00,0x00,0xb5,0x01,0x00,0x00,0x5e,0x00,0x00,0x00, -0xf6,0x00,0x04,0x00,0x1d,0x01,0x00,0x00,0x1e,0x01,0x00,0x00, -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x21,0x01,0x00,0x00, -0x1c,0x01,0x00,0x00,0x1d,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, -0x1c,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xd1,0x00,0x00,0x00, -0x24,0x01,0x00,0x00,0xb4,0x00,0x00,0x00,0xb5,0x01,0x00,0x00, -0xf7,0x00,0x03,0x00,0x26,0x01,0x00,0x00,0x00,0x00,0x00,0x00, -0xfa,0x00,0x04,0x00,0x24,0x01,0x00,0x00,0x25,0x01,0x00,0x00, -0x26,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x25,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2a,0x01,0x00,0x00, -0xb4,0x00,0x00,0x00,0xb5,0x01,0x00,0x00,0x41,0x00,0x05,0x00, -0xc5,0x00,0x00,0x00,0x2b,0x01,0x00,0x00,0xc2,0x00,0x00,0x00, -0x2a,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, -0x2c,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0x08,0x00,0x00,0x00,0x2e,0x01,0x00,0x00,0xc6,0x00,0x00,0x00, -0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0x2f,0x01,0x00,0x00, -0x2e,0x01,0x00,0x00,0x2c,0x01,0x00,0x00,0x3e,0x00,0x03,0x00, -0xc6,0x00,0x00,0x00,0x2f,0x01,0x00,0x00,0xf9,0x00,0x02,0x00, -0x26,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x26,0x01,0x00,0x00, -0xe0,0x00,0x04,0x00,0x1a,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, -0x18,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x1e,0x01,0x00,0x00, -0xf8,0x00,0x02,0x00,0x1e,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x32,0x01,0x00,0x00,0xb5,0x01,0x00,0x00, -0x31,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x1b,0x01,0x00,0x00, -0xf8,0x00,0x02,0x00,0x1d,0x01,0x00,0x00,0xaa,0x00,0x05,0x00, -0xd1,0x00,0x00,0x00,0x34,0x01,0x00,0x00,0xb4,0x00,0x00,0x00, -0x5e,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0x36,0x01,0x00,0x00, -0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x34,0x01,0x00,0x00, -0x35,0x01,0x00,0x00,0x36,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, -0x35,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x3d,0x01,0x00,0x00,0x6e,0x01,0x00,0x00,0xb0,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0xc5,0x00,0x00,0x00,0x3e,0x01,0x00,0x00, -0xc2,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x08,0x00,0x00,0x00,0x3f,0x01,0x00,0x00,0x3e,0x01,0x00,0x00, -0x41,0x00,0x06,0x00,0x40,0x01,0x00,0x00,0x41,0x01,0x00,0x00, -0x3a,0x01,0x00,0x00,0x25,0x00,0x00,0x00,0x3d,0x01,0x00,0x00, -0x3e,0x00,0x03,0x00,0x41,0x01,0x00,0x00,0x3f,0x01,0x00,0x00, -0xf9,0x00,0x02,0x00,0x36,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, -0x36,0x01,0x00,0x00,0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00, - +0x41,0x00,0x05,0x00,0x79,0x00,0x00,0x00,0xb2,0x00,0x00,0x00, +0xb1,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,0xb2,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x79,0x00,0x00,0x00,0xb4,0x00,0x00,0x00, +0xae,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,0xb4,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb6,0x00,0x00,0x00, +0xb3,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,0xb0,0x00,0x00,0x00, +0xb6,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x79,0x00,0x00,0x00, +0xba,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0x5e,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xbb,0x00,0x00,0x00, +0xba,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x79,0x00,0x00,0x00, +0x52,0x01,0x00,0x00,0x78,0x00,0x00,0x00,0x67,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x53,0x01,0x00,0x00, +0x52,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x82,0x00,0x00,0x00, +0x55,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x81,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x56,0x01,0x00,0x00, +0x55,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x57,0x01,0x00,0x00,0x53,0x01,0x00,0x00,0x56,0x01,0x00,0x00, +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5b,0x01,0x00,0x00, +0x53,0x01,0x00,0x00,0x56,0x01,0x00,0x00,0x41,0x00,0x05,0x00, +0x82,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,0x80,0x00,0x00,0x00, +0x8d,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x5e,0x01,0x00,0x00,0x5d,0x01,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x5f,0x01,0x00,0x00,0x57,0x01,0x00,0x00, +0x5e,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x82,0x00,0x00,0x00, +0x61,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x93,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x62,0x01,0x00,0x00, +0x61,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x63,0x01,0x00,0x00,0x5b,0x01,0x00,0x00,0x62,0x01,0x00,0x00, +0x41,0x00,0x05,0x00,0x82,0x00,0x00,0x00,0x65,0x01,0x00,0x00, +0x80,0x00,0x00,0x00,0x99,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x66,0x01,0x00,0x00,0x65,0x01,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x67,0x01,0x00,0x00, +0x5f,0x01,0x00,0x00,0x66,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x69,0x01,0x00,0x00,0x67,0x01,0x00,0x00, +0x63,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x82,0x00,0x00,0x00, +0x6b,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x45,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x6c,0x01,0x00,0x00, +0x6b,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x6d,0x01,0x00,0x00,0x69,0x01,0x00,0x00,0x6c,0x01,0x00,0x00, +0x41,0x00,0x05,0x00,0x82,0x00,0x00,0x00,0x6f,0x01,0x00,0x00, +0x80,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x70,0x01,0x00,0x00,0x6f,0x01,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x71,0x01,0x00,0x00, +0x53,0x01,0x00,0x00,0x70,0x01,0x00,0x00,0x41,0x00,0x05,0x00, +0x82,0x00,0x00,0x00,0x73,0x01,0x00,0x00,0x80,0x00,0x00,0x00, +0xa9,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x74,0x01,0x00,0x00,0x73,0x01,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x75,0x01,0x00,0x00,0x53,0x01,0x00,0x00, +0x74,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00, +0xcd,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0xbb,0x00,0x00,0x00, +0x3e,0x00,0x03,0x00,0xcd,0x00,0x00,0x00,0xcb,0x00,0x00,0x00, +0xf9,0x00,0x02,0x00,0xcf,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xcf,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00, +0xbb,0x01,0x00,0x00,0x5e,0x00,0x00,0x00,0x05,0x00,0x00,0x00, +0x1e,0x01,0x00,0x00,0xd0,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0x82,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0x80,0x00,0x00,0x00, +0x25,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xd6,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xd7,0x00,0x00,0x00,0xd6,0x00,0x00,0x00, +0xc6,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0xd8,0x00,0x00,0x00, +0xd9,0x00,0x00,0x00,0xbb,0x01,0x00,0x00,0xd7,0x00,0x00,0x00, +0xf6,0x00,0x04,0x00,0xd1,0x00,0x00,0x00,0xd0,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xd9,0x00,0x00,0x00, +0xd0,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xd0,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xdc,0x00,0x00,0x00,0xbb,0x01,0x00,0x00,0xc6,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xde,0x00,0x00,0x00, +0x1a,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0xdc,0x00,0x00,0x00, +0xde,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xe4,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,0xd6,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe6,0x00,0x00,0x00, +0xe4,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0xe6,0x00,0x00,0x00, +0xe7,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xeb,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0xe7,0x00,0x00,0x00, +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xec,0x00,0x00,0x00, +0xeb,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x82,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xf1,0x00,0x00,0x00,0xdf,0x00,0x00,0x00, +0xeb,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xf5,0x00,0x00,0x00,0x6d,0x01,0x00,0x00,0xe7,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7e,0x01,0x00,0x00, +0xf5,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0x41,0x00,0x07,0x00, +0x29,0x00,0x00,0x00,0x7f,0x01,0x00,0x00,0x23,0x00,0x00,0x00, +0x25,0x00,0x00,0x00,0x7e,0x01,0x00,0x00,0x25,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x80,0x01,0x00,0x00, +0x7f,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0x81,0x01,0x00,0x00,0x80,0x01,0x00,0x00,0x41,0x00,0x08,0x00, +0x32,0x00,0x00,0x00,0x85,0x01,0x00,0x00,0x23,0x00,0x00,0x00, +0x25,0x00,0x00,0x00,0x7e,0x01,0x00,0x00,0x31,0x00,0x00,0x00, +0x31,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x19,0x00,0x00,0x00, +0x86,0x01,0x00,0x00,0x85,0x01,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x87,0x01,0x00,0x00,0x86,0x01,0x00,0x00, +0xc4,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x88,0x01,0x00,0x00, +0x87,0x01,0x00,0x00,0x36,0x00,0x00,0x00,0x41,0x00,0x08,0x00, +0x32,0x00,0x00,0x00,0x8c,0x01,0x00,0x00,0x23,0x00,0x00,0x00, +0x25,0x00,0x00,0x00,0x7e,0x01,0x00,0x00,0x31,0x00,0x00,0x00, +0x25,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x19,0x00,0x00,0x00, +0x8d,0x01,0x00,0x00,0x8c,0x01,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x8e,0x01,0x00,0x00,0x8d,0x01,0x00,0x00, +0xc5,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8f,0x01,0x00,0x00, +0x88,0x01,0x00,0x00,0x8e,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x92,0x01,0x00,0x00,0x8f,0x01,0x00,0x00, +0xec,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x93,0x01,0x00,0x00,0x92,0x01,0x00,0x00,0x45,0x00,0x00,0x00, +0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x94,0x01,0x00,0x00, +0x93,0x01,0x00,0x00,0x1d,0x00,0x00,0x00,0x7c,0x00,0x04,0x00, +0x24,0x00,0x00,0x00,0x95,0x01,0x00,0x00,0x94,0x01,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x98,0x01,0x00,0x00, +0xec,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0xc2,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x99,0x01,0x00,0x00,0x8f,0x01,0x00,0x00, +0x98,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x9a,0x01,0x00,0x00,0x99,0x01,0x00,0x00,0x1d,0x00,0x00,0x00, +0x7c,0x00,0x04,0x00,0x24,0x00,0x00,0x00,0x9b,0x01,0x00,0x00, +0x9a,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x57,0x00,0x00,0x00, +0xa1,0x01,0x00,0x00,0x23,0x00,0x00,0x00,0x25,0x00,0x00,0x00, +0x7e,0x01,0x00,0x00,0x55,0x00,0x00,0x00,0xec,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x1c,0x00,0x00,0x00,0xa2,0x01,0x00,0x00, +0xa1,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xa3,0x01,0x00,0x00,0xa2,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xa5,0x01,0x00,0x00,0xa3,0x01,0x00,0x00, +0x5c,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xa8,0x01,0x00,0x00,0x95,0x01,0x00,0x00,0xc5,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xa9,0x01,0x00,0x00,0xa5,0x01,0x00,0x00, +0xa8,0x01,0x00,0x00,0x70,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0xaa,0x01,0x00,0x00,0xa9,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xac,0x01,0x00,0x00,0xa3,0x01,0x00,0x00, +0x45,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xaf,0x01,0x00,0x00,0x9b,0x01,0x00,0x00,0xc5,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xb0,0x01,0x00,0x00,0xac,0x01,0x00,0x00, +0xaf,0x01,0x00,0x00,0x70,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0xb1,0x01,0x00,0x00,0xb0,0x01,0x00,0x00,0x50,0x00,0x05,0x00, +0x09,0x00,0x00,0x00,0xb2,0x01,0x00,0x00,0xaa,0x01,0x00,0x00, +0xb1,0x01,0x00,0x00,0x83,0x00,0x05,0x00,0x09,0x00,0x00,0x00, +0xb4,0x01,0x00,0x00,0xb2,0x01,0x00,0x00,0xbe,0x01,0x00,0x00, +0x8e,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0xb6,0x01,0x00,0x00, +0xb4,0x01,0x00,0x00,0x81,0x01,0x00,0x00,0x51,0x00,0x05,0x00, +0x08,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0xb6,0x01,0x00,0x00, +0x00,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x05,0x01,0x00,0x00,0x71,0x01,0x00,0x00,0xf1,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x07,0x01,0x00,0x00, +0x05,0x01,0x00,0x00,0xec,0x00,0x00,0x00,0x41,0x00,0x06,0x00, +0x29,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x02,0x01,0x00,0x00, +0x25,0x00,0x00,0x00,0x07,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0x18,0x00,0x00,0x00,0x09,0x01,0x00,0x00,0x08,0x01,0x00,0x00, +0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x0a,0x01,0x00,0x00, +0x09,0x01,0x00,0x00,0x51,0x00,0x05,0x00,0x08,0x00,0x00,0x00, +0x0d,0x01,0x00,0x00,0xb6,0x01,0x00,0x00,0x01,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x13,0x01,0x00,0x00, +0x07,0x01,0x00,0x00,0x1d,0x00,0x00,0x00,0x41,0x00,0x06,0x00, +0x29,0x00,0x00,0x00,0x14,0x01,0x00,0x00,0x02,0x01,0x00,0x00, +0x25,0x00,0x00,0x00,0x13,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0x18,0x00,0x00,0x00,0x15,0x01,0x00,0x00,0x14,0x01,0x00,0x00, +0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x16,0x01,0x00,0x00, +0x15,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x08,0x00,0x00,0x00, +0x17,0x01,0x00,0x00,0x0d,0x01,0x00,0x00,0x16,0x01,0x00,0x00, +0x0c,0x00,0x08,0x00,0x08,0x00,0x00,0x00,0x18,0x01,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xfe,0x00,0x00,0x00, +0x0a,0x01,0x00,0x00,0x17,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0x08,0x00,0x00,0x00,0x1a,0x01,0x00,0x00,0xcd,0x00,0x00,0x00, +0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0x1b,0x01,0x00,0x00, +0x1a,0x01,0x00,0x00,0x18,0x01,0x00,0x00,0x3e,0x00,0x03,0x00, +0xcd,0x00,0x00,0x00,0x1b,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x1e,0x01,0x00,0x00,0xbb,0x01,0x00,0x00, +0x1a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xcf,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0xd1,0x00,0x00,0x00,0xe0,0x00,0x04,0x00, +0x1a,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x1f,0x01,0x00,0x00, +0xf9,0x00,0x02,0x00,0x22,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, +0x22,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00, +0xbc,0x01,0x00,0x00,0x21,0x01,0x00,0x00,0xd1,0x00,0x00,0x00, +0x39,0x01,0x00,0x00,0x25,0x01,0x00,0x00,0xac,0x00,0x05,0x00, +0xd8,0x00,0x00,0x00,0x28,0x01,0x00,0x00,0xbc,0x01,0x00,0x00, +0x5e,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x24,0x01,0x00,0x00, +0x25,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, +0x28,0x01,0x00,0x00,0x23,0x01,0x00,0x00,0x24,0x01,0x00,0x00, +0xf8,0x00,0x02,0x00,0x23,0x01,0x00,0x00,0xb0,0x00,0x05,0x00, +0xd8,0x00,0x00,0x00,0x2b,0x01,0x00,0x00,0xbb,0x00,0x00,0x00, +0xbc,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,0x2d,0x01,0x00,0x00, +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x2b,0x01,0x00,0x00, +0x2c,0x01,0x00,0x00,0x2d,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, +0x2c,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x31,0x01,0x00,0x00,0xbb,0x00,0x00,0x00,0xbc,0x01,0x00,0x00, +0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,0x32,0x01,0x00,0x00, +0xc9,0x00,0x00,0x00,0x31,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0x08,0x00,0x00,0x00,0x33,0x01,0x00,0x00,0x32,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x35,0x01,0x00,0x00, +0xcd,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00, +0x36,0x01,0x00,0x00,0x35,0x01,0x00,0x00,0x33,0x01,0x00,0x00, +0x3e,0x00,0x03,0x00,0xcd,0x00,0x00,0x00,0x36,0x01,0x00,0x00, +0xf9,0x00,0x02,0x00,0x2d,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, +0x2d,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,0x1a,0x00,0x00,0x00, +0x1a,0x00,0x00,0x00,0x1f,0x01,0x00,0x00,0xf9,0x00,0x02,0x00, +0x25,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x25,0x01,0x00,0x00, +0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x39,0x01,0x00,0x00, +0xbc,0x01,0x00,0x00,0x31,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, +0x22,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x24,0x01,0x00,0x00, +0xaa,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,0x3b,0x01,0x00,0x00, +0xbb,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,0xf7,0x00,0x03,0x00, +0x3d,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, +0x3b,0x01,0x00,0x00,0x3c,0x01,0x00,0x00,0x3d,0x01,0x00,0x00, +0xf8,0x00,0x02,0x00,0x3c,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x44,0x01,0x00,0x00,0x75,0x01,0x00,0x00, +0xb7,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00, +0x45,0x01,0x00,0x00,0xc9,0x00,0x00,0x00,0x25,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x46,0x01,0x00,0x00, +0x45,0x01,0x00,0x00,0x41,0x00,0x06,0x00,0x47,0x01,0x00,0x00, +0x48,0x01,0x00,0x00,0x41,0x01,0x00,0x00,0x25,0x00,0x00,0x00, +0x44,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x48,0x01,0x00,0x00, +0x46,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x3d,0x01,0x00,0x00, +0xf8,0x00,0x02,0x00,0x3d,0x01,0x00,0x00,0xfd,0x00,0x01,0x00, +0x38,0x00,0x01,0x00, }; -const uint64_t mul_mat_vec_q5_0_f16_f32_len = 4488; +const uint64_t mul_mat_vec_q5_0_f16_f32_len = 4636; unsigned char mul_mat_vec_q5_0_f32_f32_data[] = { 0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00, -0xb6,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, +0xbd,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, 0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x51,0x11,0x00,0x00, 0x11,0x00,0x02,0x00,0x60,0x11,0x00,0x00,0x0b,0x00,0x06,0x00, 0x01,0x00,0x00,0x00,0x47,0x4c,0x53,0x4c,0x2e,0x73,0x74,0x64, 0x2e,0x34,0x35,0x30,0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00, -0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0f,0x00,0x0d,0x00, +0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0f,0x00,0x0e,0x00, 0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e, 0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x78,0x00,0x00,0x00, -0x80,0x00,0x00,0x00,0xae,0x00,0x00,0x00,0xb2,0x00,0x00,0x00, -0xc2,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0x39,0x01,0x00,0x00, -0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x1e,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x1f,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x1f,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x20,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x16,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x21,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0x21,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x23,0x00,0x00,0x00, -0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x78,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x7e,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x80,0x00,0x00,0x00,0xae,0x00,0x00,0x00,0xb1,0x00,0x00,0x00, +0xb9,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0x02,0x01,0x00,0x00, +0x40,0x01,0x00,0x00,0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00, +0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x1e,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x7e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x7e,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x7e,0x00,0x00,0x00,0x03,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x7e,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x7e,0x00,0x00,0x00, -0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x7e,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x7e,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x1f,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x1f,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x20,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x16,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x21,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x21,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x23,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x23,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x78,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, 0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x7e,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x7e,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x7e,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x28,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x7e,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xae,0x00,0x00,0x00, -0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xb2,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xbf,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xf8,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00, -0xf9,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0xf9,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, -0xf9,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xfb,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xfb,0x00,0x00,0x00,0x21,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x36,0x01,0x00,0x00, +0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x7e,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x7e,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x7e,0x00,0x00,0x00, +0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x7e,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x7e,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x7e,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x7e,0x00,0x00,0x00,0x07,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x7e,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x7e,0x00,0x00,0x00, +0x09,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x7e,0x00,0x00,0x00,0x0a,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0x7e,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xae,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xb1,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xb9,0x00,0x00,0x00, +0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xc6,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xff,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x00,0x01,0x00,0x00, +0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x00,0x01,0x00,0x00, +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x02,0x01,0x00,0x00, +0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x02,0x01,0x00,0x00,0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x3d,0x01,0x00,0x00,0x06,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x3e,0x01,0x00,0x00, +0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x3e,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x3e,0x01,0x00,0x00, +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x40,0x01,0x00,0x00, +0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x40,0x01,0x00,0x00,0x21,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x47,0x01,0x00,0x00,0x01,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x48,0x01,0x00,0x00, +0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x13,0x00,0x02,0x00, +0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x00,0x03,0x00, +0x08,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x17,0x00,0x04,0x00, +0x09,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x16,0x00,0x03,0x00,0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00, +0x15,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x10,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x1a,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, +0x15,0x00,0x04,0x00,0x1c,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x1d,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, +0x1e,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x1d,0x00,0x00,0x00, +0x1e,0x00,0x05,0x00,0x1f,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x1b,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, +0x20,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, +0x21,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x22,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x21,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x22,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x24,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x24,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x29,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x24,0x00,0x00,0x00, +0x31,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x32,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x19,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x24,0x00,0x00,0x00,0x36,0x00,0x00,0x00, +0x10,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x24,0x00,0x00,0x00, +0x45,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x24,0x00,0x00,0x00,0x55,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x57,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,0x0f,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x5e,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x67,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x08,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x00,0x00,0x80,0x41, +0x17,0x00,0x04,0x00,0x76,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x77,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x76,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0x77,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x79,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x1e,0x00,0x0d,0x00,0x7e,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x7f,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x7e,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0x80,0x00,0x00,0x00, +0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x24,0x00,0x00,0x00, +0x81,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x82,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x24,0x00,0x00,0x00,0x8d,0x00,0x00,0x00, +0x0a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x24,0x00,0x00,0x00, +0x93,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x24,0x00,0x00,0x00,0x99,0x00,0x00,0x00,0x07,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x24,0x00,0x00,0x00,0xa4,0x00,0x00,0x00, +0x05,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x24,0x00,0x00,0x00, +0xa9,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0x77,0x00,0x00,0x00,0xae,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x77,0x00,0x00,0x00,0xb1,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x77,0x00,0x00,0x00, +0xb9,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,0x20,0x00,0x00,0x00, +0x1c,0x00,0x04,0x00,0xc7,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0xc6,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xc8,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0xc8,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xcb,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xcc,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x14,0x00,0x02,0x00, +0xd8,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xe7,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, +0xff,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, +0x00,0x01,0x00,0x00,0xff,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x01,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x00,0x01,0x00,0x00, +0x3b,0x00,0x04,0x00,0x01,0x01,0x00,0x00,0x02,0x01,0x00,0x00, +0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x08,0x01,0x00,0x00, +0x0c,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x1e,0x01,0x00,0x00,0x08,0x01,0x00,0x00, +0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x20,0x01,0x00,0x00, +0x86,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, +0x1d,0x00,0x03,0x00,0x3d,0x01,0x00,0x00,0x08,0x00,0x00,0x00, +0x1e,0x00,0x03,0x00,0x3e,0x01,0x00,0x00,0x3d,0x01,0x00,0x00, +0x20,0x00,0x04,0x00,0x3f,0x01,0x00,0x00,0x0c,0x00,0x00,0x00, +0x3e,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,0x3f,0x01,0x00,0x00, +0x40,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x32,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x47,0x01,0x00,0x00,0x01,0x00,0x00,0x00, +0x33,0x00,0x06,0x00,0x76,0x00,0x00,0x00,0x48,0x01,0x00,0x00, +0x47,0x01,0x00,0x00,0x67,0x00,0x00,0x00,0x67,0x00,0x00,0x00, +0x2c,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0xbc,0x01,0x00,0x00, +0x6e,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x36,0x00,0x05,0x00, +0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x03,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x79,0x00,0x00,0x00,0xaf,0x00,0x00,0x00, +0xae,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xb0,0x00,0x00,0x00,0xaf,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x79,0x00,0x00,0x00,0xb2,0x00,0x00,0x00, +0xb1,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,0xb2,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x79,0x00,0x00,0x00,0xb4,0x00,0x00,0x00, +0xae,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,0xb4,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb6,0x00,0x00,0x00, +0xb3,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,0xb0,0x00,0x00,0x00, +0xb6,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x79,0x00,0x00,0x00, +0xba,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0x5e,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xbb,0x00,0x00,0x00, +0xba,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x79,0x00,0x00,0x00, +0x50,0x01,0x00,0x00,0x78,0x00,0x00,0x00,0x67,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x51,0x01,0x00,0x00, +0x50,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x82,0x00,0x00,0x00, +0x53,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x81,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x54,0x01,0x00,0x00, +0x53,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x55,0x01,0x00,0x00,0x51,0x01,0x00,0x00,0x54,0x01,0x00,0x00, +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x59,0x01,0x00,0x00, +0x51,0x01,0x00,0x00,0x54,0x01,0x00,0x00,0x41,0x00,0x05,0x00, +0x82,0x00,0x00,0x00,0x5b,0x01,0x00,0x00,0x80,0x00,0x00,0x00, +0x8d,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x5c,0x01,0x00,0x00,0x5b,0x01,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,0x55,0x01,0x00,0x00, +0x5c,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x82,0x00,0x00,0x00, +0x5f,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x93,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x60,0x01,0x00,0x00, +0x5f,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x61,0x01,0x00,0x00,0x59,0x01,0x00,0x00,0x60,0x01,0x00,0x00, +0x41,0x00,0x05,0x00,0x82,0x00,0x00,0x00,0x63,0x01,0x00,0x00, +0x80,0x00,0x00,0x00,0x99,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x64,0x01,0x00,0x00,0x63,0x01,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x65,0x01,0x00,0x00, +0x5d,0x01,0x00,0x00,0x64,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x67,0x01,0x00,0x00,0x65,0x01,0x00,0x00, +0x61,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x82,0x00,0x00,0x00, +0x69,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x45,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x6a,0x01,0x00,0x00, +0x69,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x6b,0x01,0x00,0x00,0x67,0x01,0x00,0x00,0x6a,0x01,0x00,0x00, +0x41,0x00,0x05,0x00,0x82,0x00,0x00,0x00,0x6d,0x01,0x00,0x00, +0x80,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x6e,0x01,0x00,0x00,0x6d,0x01,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6f,0x01,0x00,0x00, +0x51,0x01,0x00,0x00,0x6e,0x01,0x00,0x00,0x41,0x00,0x05,0x00, +0x82,0x00,0x00,0x00,0x71,0x01,0x00,0x00,0x80,0x00,0x00,0x00, +0xa9,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x72,0x01,0x00,0x00,0x71,0x01,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x73,0x01,0x00,0x00,0x51,0x01,0x00,0x00, +0x72,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00, +0xcd,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0xbb,0x00,0x00,0x00, +0x3e,0x00,0x03,0x00,0xcd,0x00,0x00,0x00,0xcb,0x00,0x00,0x00, +0xf9,0x00,0x02,0x00,0xcf,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xcf,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00, +0xb9,0x01,0x00,0x00,0x5e,0x00,0x00,0x00,0x05,0x00,0x00,0x00, +0x1d,0x01,0x00,0x00,0xd0,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0x82,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0x80,0x00,0x00,0x00, +0x25,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xd6,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xd7,0x00,0x00,0x00,0xd6,0x00,0x00,0x00, +0xc6,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0xd8,0x00,0x00,0x00, +0xd9,0x00,0x00,0x00,0xb9,0x01,0x00,0x00,0xd7,0x00,0x00,0x00, +0xf6,0x00,0x04,0x00,0xd1,0x00,0x00,0x00,0xd0,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xd9,0x00,0x00,0x00, +0xd0,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xd0,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xdc,0x00,0x00,0x00,0xb9,0x01,0x00,0x00,0xc6,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xde,0x00,0x00,0x00, +0x1a,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0xdc,0x00,0x00,0x00, +0xde,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xe4,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,0xd6,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe6,0x00,0x00,0x00, +0xe4,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0xe6,0x00,0x00,0x00, +0xe7,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xeb,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0xe7,0x00,0x00,0x00, +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xec,0x00,0x00,0x00, +0xeb,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x82,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xf1,0x00,0x00,0x00,0xdf,0x00,0x00,0x00, +0xeb,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xf5,0x00,0x00,0x00,0x6b,0x01,0x00,0x00,0xe7,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7c,0x01,0x00,0x00, +0xf5,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0x41,0x00,0x07,0x00, +0x29,0x00,0x00,0x00,0x7d,0x01,0x00,0x00,0x23,0x00,0x00,0x00, +0x25,0x00,0x00,0x00,0x7c,0x01,0x00,0x00,0x25,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x7e,0x01,0x00,0x00, +0x7d,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0x7f,0x01,0x00,0x00,0x7e,0x01,0x00,0x00,0x41,0x00,0x08,0x00, +0x32,0x00,0x00,0x00,0x83,0x01,0x00,0x00,0x23,0x00,0x00,0x00, +0x25,0x00,0x00,0x00,0x7c,0x01,0x00,0x00,0x31,0x00,0x00,0x00, +0x31,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x19,0x00,0x00,0x00, +0x84,0x01,0x00,0x00,0x83,0x01,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x85,0x01,0x00,0x00,0x84,0x01,0x00,0x00, +0xc4,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x86,0x01,0x00,0x00, +0x85,0x01,0x00,0x00,0x36,0x00,0x00,0x00,0x41,0x00,0x08,0x00, +0x32,0x00,0x00,0x00,0x8a,0x01,0x00,0x00,0x23,0x00,0x00,0x00, +0x25,0x00,0x00,0x00,0x7c,0x01,0x00,0x00,0x31,0x00,0x00,0x00, +0x25,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x19,0x00,0x00,0x00, +0x8b,0x01,0x00,0x00,0x8a,0x01,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x8c,0x01,0x00,0x00,0x8b,0x01,0x00,0x00, +0xc5,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8d,0x01,0x00,0x00, +0x86,0x01,0x00,0x00,0x8c,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x90,0x01,0x00,0x00,0x8d,0x01,0x00,0x00, +0xec,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x91,0x01,0x00,0x00,0x90,0x01,0x00,0x00,0x45,0x00,0x00,0x00, +0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x92,0x01,0x00,0x00, +0x91,0x01,0x00,0x00,0x1d,0x00,0x00,0x00,0x7c,0x00,0x04,0x00, +0x24,0x00,0x00,0x00,0x93,0x01,0x00,0x00,0x92,0x01,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x96,0x01,0x00,0x00, +0xec,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0xc2,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x97,0x01,0x00,0x00,0x8d,0x01,0x00,0x00, +0x96,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x98,0x01,0x00,0x00,0x97,0x01,0x00,0x00,0x1d,0x00,0x00,0x00, +0x7c,0x00,0x04,0x00,0x24,0x00,0x00,0x00,0x99,0x01,0x00,0x00, +0x98,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x57,0x00,0x00,0x00, +0x9f,0x01,0x00,0x00,0x23,0x00,0x00,0x00,0x25,0x00,0x00,0x00, +0x7c,0x01,0x00,0x00,0x55,0x00,0x00,0x00,0xec,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x1c,0x00,0x00,0x00,0xa0,0x01,0x00,0x00, +0x9f,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xa1,0x01,0x00,0x00,0xa0,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xa3,0x01,0x00,0x00,0xa1,0x01,0x00,0x00, +0x5c,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xa6,0x01,0x00,0x00,0x93,0x01,0x00,0x00,0xc5,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xa7,0x01,0x00,0x00,0xa3,0x01,0x00,0x00, +0xa6,0x01,0x00,0x00,0x70,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0xa8,0x01,0x00,0x00,0xa7,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xaa,0x01,0x00,0x00,0xa1,0x01,0x00,0x00, +0x45,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xad,0x01,0x00,0x00,0x99,0x01,0x00,0x00,0xc5,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xae,0x01,0x00,0x00,0xaa,0x01,0x00,0x00, +0xad,0x01,0x00,0x00,0x70,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0xaf,0x01,0x00,0x00,0xae,0x01,0x00,0x00,0x50,0x00,0x05,0x00, +0x09,0x00,0x00,0x00,0xb0,0x01,0x00,0x00,0xa8,0x01,0x00,0x00, +0xaf,0x01,0x00,0x00,0x83,0x00,0x05,0x00,0x09,0x00,0x00,0x00, +0xb2,0x01,0x00,0x00,0xb0,0x01,0x00,0x00,0xbc,0x01,0x00,0x00, +0x8e,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0xb4,0x01,0x00,0x00, +0xb2,0x01,0x00,0x00,0x7f,0x01,0x00,0x00,0x51,0x00,0x05,0x00, +0x08,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0xb4,0x01,0x00,0x00, +0x00,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x05,0x01,0x00,0x00,0x6f,0x01,0x00,0x00,0xf1,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x07,0x01,0x00,0x00, +0x05,0x01,0x00,0x00,0xec,0x00,0x00,0x00,0x41,0x00,0x06,0x00, +0x08,0x01,0x00,0x00,0x09,0x01,0x00,0x00,0x02,0x01,0x00,0x00, +0x25,0x00,0x00,0x00,0x07,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0x08,0x00,0x00,0x00,0x0a,0x01,0x00,0x00,0x09,0x01,0x00,0x00, +0x51,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0x0d,0x01,0x00,0x00, +0xb4,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x13,0x01,0x00,0x00,0x07,0x01,0x00,0x00, +0x1d,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x08,0x01,0x00,0x00, +0x14,0x01,0x00,0x00,0x02,0x01,0x00,0x00,0x25,0x00,0x00,0x00, +0x13,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0x15,0x01,0x00,0x00,0x14,0x01,0x00,0x00,0x85,0x00,0x05,0x00, +0x08,0x00,0x00,0x00,0x16,0x01,0x00,0x00,0x0d,0x01,0x00,0x00, +0x15,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0x08,0x00,0x00,0x00, +0x17,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0xfe,0x00,0x00,0x00,0x0a,0x01,0x00,0x00,0x16,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x19,0x01,0x00,0x00, +0xcd,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00, +0x1a,0x01,0x00,0x00,0x19,0x01,0x00,0x00,0x17,0x01,0x00,0x00, +0x3e,0x00,0x03,0x00,0xcd,0x00,0x00,0x00,0x1a,0x01,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1d,0x01,0x00,0x00, +0xb9,0x01,0x00,0x00,0x1a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, +0xcf,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xd1,0x00,0x00,0x00, +0xe0,0x00,0x04,0x00,0x1a,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, +0x1e,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x21,0x01,0x00,0x00, +0xf8,0x00,0x02,0x00,0x21,0x01,0x00,0x00,0xf5,0x00,0x07,0x00, +0x06,0x00,0x00,0x00,0xba,0x01,0x00,0x00,0x20,0x01,0x00,0x00, +0xd1,0x00,0x00,0x00,0x38,0x01,0x00,0x00,0x24,0x01,0x00,0x00, +0xac,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,0x27,0x01,0x00,0x00, +0xba,0x01,0x00,0x00,0x5e,0x00,0x00,0x00,0xf6,0x00,0x04,0x00, +0x23,0x01,0x00,0x00,0x24,0x01,0x00,0x00,0x01,0x00,0x00,0x00, +0xfa,0x00,0x04,0x00,0x27,0x01,0x00,0x00,0x22,0x01,0x00,0x00, +0x23,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x22,0x01,0x00,0x00, +0xb0,0x00,0x05,0x00,0xd8,0x00,0x00,0x00,0x2a,0x01,0x00,0x00, +0xbb,0x00,0x00,0x00,0xba,0x01,0x00,0x00,0xf7,0x00,0x03,0x00, +0x2c,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, +0x2a,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,0x2c,0x01,0x00,0x00, +0xf8,0x00,0x02,0x00,0x2b,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x30,0x01,0x00,0x00,0xbb,0x00,0x00,0x00, +0xba,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0xcc,0x00,0x00,0x00, +0x31,0x01,0x00,0x00,0xc9,0x00,0x00,0x00,0x30,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x32,0x01,0x00,0x00, +0x31,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0x34,0x01,0x00,0x00,0xcd,0x00,0x00,0x00,0x81,0x00,0x05,0x00, +0x08,0x00,0x00,0x00,0x35,0x01,0x00,0x00,0x34,0x01,0x00,0x00, +0x32,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xcd,0x00,0x00,0x00, +0x35,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x2c,0x01,0x00,0x00, +0xf8,0x00,0x02,0x00,0x2c,0x01,0x00,0x00,0xe0,0x00,0x04,0x00, +0x1a,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x1e,0x01,0x00,0x00, +0xf9,0x00,0x02,0x00,0x24,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, +0x24,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x38,0x01,0x00,0x00,0xba,0x01,0x00,0x00,0x31,0x00,0x00,0x00, +0xf9,0x00,0x02,0x00,0x21,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, +0x23,0x01,0x00,0x00,0xaa,0x00,0x05,0x00,0xd8,0x00,0x00,0x00, +0x3a,0x01,0x00,0x00,0xbb,0x00,0x00,0x00,0x5e,0x00,0x00,0x00, +0xf7,0x00,0x03,0x00,0x3c,0x01,0x00,0x00,0x00,0x00,0x00,0x00, +0xfa,0x00,0x04,0x00,0x3a,0x01,0x00,0x00,0x3b,0x01,0x00,0x00, +0x3c,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x3b,0x01,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x43,0x01,0x00,0x00, +0x73,0x01,0x00,0x00,0xb7,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0xcc,0x00,0x00,0x00,0x44,0x01,0x00,0x00,0xc9,0x00,0x00,0x00, +0x25,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0x45,0x01,0x00,0x00,0x44,0x01,0x00,0x00,0x41,0x00,0x06,0x00, +0x08,0x01,0x00,0x00,0x46,0x01,0x00,0x00,0x40,0x01,0x00,0x00, +0x25,0x00,0x00,0x00,0x43,0x01,0x00,0x00,0x3e,0x00,0x03,0x00, +0x46,0x01,0x00,0x00,0x45,0x01,0x00,0x00,0xf9,0x00,0x02,0x00, +0x3c,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x3c,0x01,0x00,0x00, +0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00, +}; +const uint64_t mul_mat_vec_q5_0_f32_f32_len = 4604; + +unsigned char mul_mat_vec_q5_1_f16_f32_data[] = { +0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00, +0xb8,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, +0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x51,0x11,0x00,0x00, +0x11,0x00,0x02,0x00,0x60,0x11,0x00,0x00,0x0b,0x00,0x06,0x00, +0x01,0x00,0x00,0x00,0x47,0x4c,0x53,0x4c,0x2e,0x73,0x74,0x64, +0x2e,0x34,0x35,0x30,0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00, +0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0f,0x00,0x0e,0x00, +0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e, +0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x73,0x00,0x00,0x00, +0x7b,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,0xac,0x00,0x00,0x00, +0xb5,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0xfe,0x00,0x00,0x00, +0x3d,0x01,0x00,0x00,0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00, +0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x1c,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x1c,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x1c,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x1d,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x04,0x00, +0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0x1e,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x20,0x00,0x00,0x00,0x21,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x73,0x00,0x00,0x00, +0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x79,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x79,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x79,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x79,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x79,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x79,0x00,0x00,0x00,0x05,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x79,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x79,0x00,0x00,0x00, +0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x79,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x79,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x24,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x79,0x00,0x00,0x00, +0x0a,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x28,0x00,0x00,0x00, +0x47,0x00,0x03,0x00,0x79,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xa9,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, +0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xac,0x00,0x00,0x00, +0x0b,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xb5,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xc2,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xfb,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x48,0x00,0x04,0x00, +0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0xfc,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xfe,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xfe,0x00,0x00,0x00,0x21,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x3a,0x01,0x00,0x00, 0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00, -0x37,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x37,0x01,0x00,0x00,0x00,0x00,0x00,0x00, +0x3b,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x3b,0x01,0x00,0x00,0x00,0x00,0x00,0x00, 0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, -0x37,0x01,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x39,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x39,0x01,0x00,0x00,0x21,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x40,0x01,0x00,0x00, +0x3b,0x01,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x3d,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x3d,0x01,0x00,0x00,0x21,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x45,0x01,0x00,0x00, 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x41,0x01,0x00,0x00,0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00, +0x46,0x01,0x00,0x00,0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00, 0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00, 0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00, 0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00, @@ -135011,5859 +135738,5581 @@ unsigned char mul_mat_vec_q5_0_f32_f32_data[] = { 0x17,0x00,0x04,0x00,0x09,0x00,0x00,0x00,0x08,0x00,0x00,0x00, 0x02,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0x18,0x00,0x00,0x00, 0x10,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x19,0x00,0x00,0x00, -0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x1c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x19,0x00,0x00,0x00, -0x1a,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x1c,0x00,0x00,0x00, 0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x1d,0x00,0x00,0x00,0x10,0x00,0x00,0x00, -0x1c,0x00,0x04,0x00,0x1e,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x1d,0x00,0x00,0x00,0x1e,0x00,0x05,0x00,0x1f,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x1e,0x00,0x00,0x00, -0x1d,0x00,0x03,0x00,0x20,0x00,0x00,0x00,0x1f,0x00,0x00,0x00, -0x1e,0x00,0x03,0x00,0x21,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x22,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x21,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x22,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x15,0x00,0x04,0x00, -0x24,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x24,0x00,0x00,0x00,0x25,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x29,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x24,0x00,0x00,0x00,0x31,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x32,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x19,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x24,0x00,0x00,0x00, -0x36,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x24,0x00,0x00,0x00,0x45,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4b,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x24,0x00,0x00,0x00, -0x55,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x57,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x5c,0x00,0x00,0x00, -0x0f,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x5e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x67,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x6e,0x00,0x00,0x00, -0x00,0x00,0x80,0x41,0x17,0x00,0x04,0x00,0x76,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x10,0x00,0x00,0x00, +0x1c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x19,0x00,0x00,0x00, +0x1a,0x00,0x00,0x00,0x1e,0x00,0x06,0x00,0x1c,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x1b,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x1d,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x1e,0x00,0x00,0x00, +0x1d,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x1f,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0x1f,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x15,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x20,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x26,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x2e,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, +0x36,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x37,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x40,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x46,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x21,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x03,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x52,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x19,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x57,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x62,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x17,0x00,0x04,0x00,0x71,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x77,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0x77,0x00,0x00,0x00,0x78,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x79,0x00,0x00,0x00, +0x72,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x71,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x72,0x00,0x00,0x00,0x73,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x74,0x00,0x00,0x00, 0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x1e,0x00,0x0d,0x00, -0x7e,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x7f,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x7e,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x7f,0x00,0x00,0x00, -0x80,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x24,0x00,0x00,0x00,0x81,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x82,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x24,0x00,0x00,0x00, -0x8d,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x24,0x00,0x00,0x00,0x93,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x24,0x00,0x00,0x00,0x99,0x00,0x00,0x00, -0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x24,0x00,0x00,0x00, -0xa4,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x24,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0x77,0x00,0x00,0x00,0xae,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x77,0x00,0x00,0x00, -0xb2,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x1c,0x00,0x04,0x00,0xc0,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0xbf,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xc1,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0xc1,0x00,0x00,0x00,0xc2,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xc4,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xc5,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x14,0x00,0x02,0x00, -0xd1,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xe0,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, -0xf8,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, -0xf9,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0xfa,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xf9,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0xfa,0x00,0x00,0x00,0xfb,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x01,0x01,0x00,0x00, -0x0c,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x17,0x01,0x00,0x00,0x08,0x01,0x00,0x00, -0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x19,0x01,0x00,0x00, -0x86,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, -0x1d,0x00,0x03,0x00,0x36,0x01,0x00,0x00,0x08,0x00,0x00,0x00, -0x1e,0x00,0x03,0x00,0x37,0x01,0x00,0x00,0x36,0x01,0x00,0x00, -0x20,0x00,0x04,0x00,0x38,0x01,0x00,0x00,0x0c,0x00,0x00,0x00, -0x37,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,0x38,0x01,0x00,0x00, -0x39,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x32,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x40,0x01,0x00,0x00,0x01,0x00,0x00,0x00, -0x33,0x00,0x06,0x00,0x76,0x00,0x00,0x00,0x41,0x01,0x00,0x00, -0x40,0x01,0x00,0x00,0x67,0x00,0x00,0x00,0x67,0x00,0x00,0x00, -0x2c,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0xb5,0x01,0x00,0x00, -0x6e,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x36,0x00,0x05,0x00, +0x79,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x7a,0x00,0x00,0x00,0x09,0x00,0x00,0x00, +0x79,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x7a,0x00,0x00,0x00, +0x7b,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x21,0x00,0x00,0x00,0x7c,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x7d,0x00,0x00,0x00,0x09,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, +0x88,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x21,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,0x09,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x94,0x00,0x00,0x00, +0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, +0x9f,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x21,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x72,0x00,0x00,0x00,0xa9,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x72,0x00,0x00,0x00, +0xac,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x72,0x00,0x00,0x00,0xb5,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xc2,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, +0xc3,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0xc2,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0xc3,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xc4,0x00,0x00,0x00, +0xc5,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x08,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0xc8,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x14,0x00,0x02,0x00,0xd4,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xe3,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0xfb,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xfc,0x00,0x00,0x00, +0xfb,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xfd,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0xfd,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x1b,0x01,0x00,0x00, +0x08,0x01,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00, +0x1d,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0xc2,0x00,0x00,0x00, +0xaf,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x3a,0x01,0x00,0x00, +0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x3b,0x01,0x00,0x00, +0x3a,0x01,0x00,0x00,0x20,0x00,0x04,0x00,0x3c,0x01,0x00,0x00, +0x0c,0x00,0x00,0x00,0x3b,0x01,0x00,0x00,0x3b,0x00,0x04,0x00, +0x3c,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,0x0c,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x43,0x01,0x00,0x00,0x0c,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x45,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x33,0x00,0x06,0x00, +0x71,0x00,0x00,0x00,0x46,0x01,0x00,0x00,0x45,0x01,0x00,0x00, +0x62,0x00,0x00,0x00,0x62,0x00,0x00,0x00,0x36,0x00,0x05,0x00, 0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x03,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x79,0x00,0x00,0x00,0xaf,0x00,0x00,0x00, -0xae,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xb0,0x00,0x00,0x00,0xaf,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x79,0x00,0x00,0x00,0xb3,0x00,0x00,0x00, -0xb2,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,0xb3,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x79,0x00,0x00,0x00,0x49,0x01,0x00,0x00, -0x78,0x00,0x00,0x00,0x67,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x4a,0x01,0x00,0x00,0x49,0x01,0x00,0x00, -0x41,0x00,0x05,0x00,0x82,0x00,0x00,0x00,0x4c,0x01,0x00,0x00, -0x80,0x00,0x00,0x00,0x81,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x4d,0x01,0x00,0x00,0x4c,0x01,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4e,0x01,0x00,0x00, -0x4a,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,0x89,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x52,0x01,0x00,0x00,0x4a,0x01,0x00,0x00, -0x4d,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x82,0x00,0x00,0x00, -0x54,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x8d,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x55,0x01,0x00,0x00, -0x54,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x56,0x01,0x00,0x00,0x4e,0x01,0x00,0x00,0x55,0x01,0x00,0x00, -0x41,0x00,0x05,0x00,0x82,0x00,0x00,0x00,0x58,0x01,0x00,0x00, -0x80,0x00,0x00,0x00,0x93,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x59,0x01,0x00,0x00,0x58,0x01,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5a,0x01,0x00,0x00, -0x52,0x01,0x00,0x00,0x59,0x01,0x00,0x00,0x41,0x00,0x05,0x00, -0x82,0x00,0x00,0x00,0x5c,0x01,0x00,0x00,0x80,0x00,0x00,0x00, -0x99,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x5d,0x01,0x00,0x00,0x5c,0x01,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x5e,0x01,0x00,0x00,0x56,0x01,0x00,0x00, -0x5d,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x60,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,0x5a,0x01,0x00,0x00, -0x41,0x00,0x05,0x00,0x82,0x00,0x00,0x00,0x62,0x01,0x00,0x00, -0x80,0x00,0x00,0x00,0x45,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x63,0x01,0x00,0x00,0x62,0x01,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x64,0x01,0x00,0x00, -0x60,0x01,0x00,0x00,0x63,0x01,0x00,0x00,0x41,0x00,0x05,0x00, -0x82,0x00,0x00,0x00,0x66,0x01,0x00,0x00,0x80,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x74,0x00,0x00,0x00,0xaa,0x00,0x00,0x00, +0xa9,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xab,0x00,0x00,0x00,0xaa,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x74,0x00,0x00,0x00,0xad,0x00,0x00,0x00, +0xac,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xae,0x00,0x00,0x00,0xad,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x74,0x00,0x00,0x00,0xb0,0x00,0x00,0x00, +0xa9,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xb1,0x00,0x00,0x00,0xb0,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb2,0x00,0x00,0x00, +0xae,0x00,0x00,0x00,0xb1,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,0xab,0x00,0x00,0x00, +0xb2,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x74,0x00,0x00,0x00, +0xb6,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,0x59,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xb7,0x00,0x00,0x00, +0xb6,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x74,0x00,0x00,0x00, +0x4e,0x01,0x00,0x00,0x73,0x00,0x00,0x00,0x62,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4f,0x01,0x00,0x00, +0x4e,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x7d,0x00,0x00,0x00, +0x51,0x01,0x00,0x00,0x7b,0x00,0x00,0x00,0x7c,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x52,0x01,0x00,0x00, +0x51,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x53,0x01,0x00,0x00,0x4f,0x01,0x00,0x00,0x52,0x01,0x00,0x00, +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x57,0x01,0x00,0x00, +0x4f,0x01,0x00,0x00,0x52,0x01,0x00,0x00,0x41,0x00,0x05,0x00, +0x7d,0x00,0x00,0x00,0x59,0x01,0x00,0x00,0x7b,0x00,0x00,0x00, +0x88,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x5a,0x01,0x00,0x00,0x59,0x01,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x5b,0x01,0x00,0x00,0x53,0x01,0x00,0x00, +0x5a,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x7d,0x00,0x00,0x00, +0x5d,0x01,0x00,0x00,0x7b,0x00,0x00,0x00,0x8e,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x5e,0x01,0x00,0x00, +0x5d,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x5f,0x01,0x00,0x00,0x57,0x01,0x00,0x00,0x5e,0x01,0x00,0x00, +0x41,0x00,0x05,0x00,0x7d,0x00,0x00,0x00,0x61,0x01,0x00,0x00, +0x7b,0x00,0x00,0x00,0x94,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x62,0x01,0x00,0x00,0x61,0x01,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x63,0x01,0x00,0x00, +0x5b,0x01,0x00,0x00,0x62,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x65,0x01,0x00,0x00,0x63,0x01,0x00,0x00, +0x5f,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x7d,0x00,0x00,0x00, +0x67,0x01,0x00,0x00,0x7b,0x00,0x00,0x00,0x40,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x68,0x01,0x00,0x00, +0x67,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x69,0x01,0x00,0x00,0x65,0x01,0x00,0x00,0x68,0x01,0x00,0x00, +0x41,0x00,0x05,0x00,0x7d,0x00,0x00,0x00,0x6b,0x01,0x00,0x00, +0x7b,0x00,0x00,0x00,0x9f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x6c,0x01,0x00,0x00,0x6b,0x01,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6d,0x01,0x00,0x00, +0x4f,0x01,0x00,0x00,0x6c,0x01,0x00,0x00,0x41,0x00,0x05,0x00, +0x7d,0x00,0x00,0x00,0x6f,0x01,0x00,0x00,0x7b,0x00,0x00,0x00, 0xa4,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x67,0x01,0x00,0x00,0x66,0x01,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x68,0x01,0x00,0x00,0x4a,0x01,0x00,0x00, -0x67,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x82,0x00,0x00,0x00, -0x6a,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0xa9,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x6b,0x01,0x00,0x00, -0x6a,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x6c,0x01,0x00,0x00,0x4a,0x01,0x00,0x00,0x6b,0x01,0x00,0x00, -0x41,0x00,0x05,0x00,0xc5,0x00,0x00,0x00,0xc6,0x00,0x00,0x00, -0xc2,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,0x3e,0x00,0x03,0x00, -0xc6,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, -0xc8,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xc8,0x00,0x00,0x00, -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xb2,0x01,0x00,0x00, -0x5e,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x16,0x01,0x00,0x00, -0xc9,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x82,0x00,0x00,0x00, -0xce,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x25,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xcf,0x00,0x00,0x00, -0xce,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xd0,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0xbf,0x00,0x00,0x00, -0xb0,0x00,0x05,0x00,0xd1,0x00,0x00,0x00,0xd2,0x00,0x00,0x00, -0xb2,0x01,0x00,0x00,0xd0,0x00,0x00,0x00,0xf6,0x00,0x04,0x00, -0xca,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0xfa,0x00,0x04,0x00,0xd2,0x00,0x00,0x00,0xc9,0x00,0x00,0x00, -0xca,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xc9,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd5,0x00,0x00,0x00, -0xb2,0x01,0x00,0x00,0xbf,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xd7,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, -0xb4,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xd8,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0xd7,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdd,0x00,0x00,0x00, -0xb0,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0xdd,0x00,0x00,0x00, -0xd8,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xe1,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0xe0,0x00,0x00,0x00, -0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe4,0x00,0x00,0x00, -0xd8,0x00,0x00,0x00,0xe0,0x00,0x00,0x00,0x86,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xe5,0x00,0x00,0x00,0xe4,0x00,0x00,0x00, -0x1a,0x00,0x00,0x00,0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xea,0x00,0x00,0x00,0xd8,0x00,0x00,0x00,0xe4,0x00,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xee,0x00,0x00,0x00, -0x64,0x01,0x00,0x00,0xe0,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x75,0x01,0x00,0x00,0xee,0x00,0x00,0x00, -0xe1,0x00,0x00,0x00,0x41,0x00,0x07,0x00,0x29,0x00,0x00,0x00, -0x76,0x01,0x00,0x00,0x23,0x00,0x00,0x00,0x25,0x00,0x00,0x00, -0x75,0x01,0x00,0x00,0x25,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x18,0x00,0x00,0x00,0x77,0x01,0x00,0x00,0x76,0x01,0x00,0x00, -0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x78,0x01,0x00,0x00, -0x77,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x32,0x00,0x00,0x00, -0x7c,0x01,0x00,0x00,0x23,0x00,0x00,0x00,0x25,0x00,0x00,0x00, -0x75,0x01,0x00,0x00,0x31,0x00,0x00,0x00,0x31,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x7d,0x01,0x00,0x00, -0x7c,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x7e,0x01,0x00,0x00,0x7d,0x01,0x00,0x00,0xc4,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x7f,0x01,0x00,0x00,0x7e,0x01,0x00,0x00, -0x36,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0x32,0x00,0x00,0x00, -0x83,0x01,0x00,0x00,0x23,0x00,0x00,0x00,0x25,0x00,0x00,0x00, -0x75,0x01,0x00,0x00,0x31,0x00,0x00,0x00,0x25,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x84,0x01,0x00,0x00, -0x83,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x85,0x01,0x00,0x00,0x84,0x01,0x00,0x00,0xc5,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x86,0x01,0x00,0x00,0x7f,0x01,0x00,0x00, -0x85,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x89,0x01,0x00,0x00,0x86,0x01,0x00,0x00,0xe5,0x00,0x00,0x00, -0xc4,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8a,0x01,0x00,0x00, -0x89,0x01,0x00,0x00,0x45,0x00,0x00,0x00,0xc7,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x8b,0x01,0x00,0x00,0x8a,0x01,0x00,0x00, -0x1d,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x24,0x00,0x00,0x00, -0x8c,0x01,0x00,0x00,0x8b,0x01,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x8f,0x01,0x00,0x00,0xe5,0x00,0x00,0x00, -0x4b,0x00,0x00,0x00,0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x90,0x01,0x00,0x00,0x86,0x01,0x00,0x00,0x8f,0x01,0x00,0x00, -0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x91,0x01,0x00,0x00, -0x90,0x01,0x00,0x00,0x1d,0x00,0x00,0x00,0x7c,0x00,0x04,0x00, -0x24,0x00,0x00,0x00,0x92,0x01,0x00,0x00,0x91,0x01,0x00,0x00, -0x41,0x00,0x08,0x00,0x57,0x00,0x00,0x00,0x98,0x01,0x00,0x00, -0x23,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x75,0x01,0x00,0x00, -0x55,0x00,0x00,0x00,0xe5,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x1c,0x00,0x00,0x00,0x99,0x01,0x00,0x00,0x98,0x01,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x9a,0x01,0x00,0x00, -0x99,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x9c,0x01,0x00,0x00,0x9a,0x01,0x00,0x00,0x5c,0x00,0x00,0x00, -0x7c,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x9f,0x01,0x00,0x00, -0x8c,0x01,0x00,0x00,0xc5,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xa0,0x01,0x00,0x00,0x9c,0x01,0x00,0x00,0x9f,0x01,0x00,0x00, -0x70,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xa1,0x01,0x00,0x00, -0xa0,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xa3,0x01,0x00,0x00,0x9a,0x01,0x00,0x00,0x45,0x00,0x00,0x00, -0x7c,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa6,0x01,0x00,0x00, -0x92,0x01,0x00,0x00,0xc5,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xa7,0x01,0x00,0x00,0xa3,0x01,0x00,0x00,0xa6,0x01,0x00,0x00, -0x70,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xa8,0x01,0x00,0x00, -0xa7,0x01,0x00,0x00,0x50,0x00,0x05,0x00,0x09,0x00,0x00,0x00, -0xa9,0x01,0x00,0x00,0xa1,0x01,0x00,0x00,0xa8,0x01,0x00,0x00, -0x83,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0xab,0x01,0x00,0x00, -0xa9,0x01,0x00,0x00,0xb5,0x01,0x00,0x00,0x8e,0x00,0x05,0x00, -0x09,0x00,0x00,0x00,0xad,0x01,0x00,0x00,0xab,0x01,0x00,0x00, -0x78,0x01,0x00,0x00,0x51,0x00,0x05,0x00,0x08,0x00,0x00,0x00, -0xf7,0x00,0x00,0x00,0xad,0x01,0x00,0x00,0x00,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfe,0x00,0x00,0x00, -0x68,0x01,0x00,0x00,0xea,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0xfe,0x00,0x00,0x00, -0xe5,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x01,0x01,0x00,0x00, -0x02,0x01,0x00,0x00,0xfb,0x00,0x00,0x00,0x25,0x00,0x00,0x00, -0x00,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, -0x03,0x01,0x00,0x00,0x02,0x01,0x00,0x00,0x51,0x00,0x05,0x00, -0x08,0x00,0x00,0x00,0x06,0x01,0x00,0x00,0xad,0x01,0x00,0x00, +0x70,0x01,0x00,0x00,0x6f,0x01,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x71,0x01,0x00,0x00,0x4f,0x01,0x00,0x00, +0x70,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0xc8,0x00,0x00,0x00, +0xc9,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0xb7,0x00,0x00,0x00, +0x3e,0x00,0x03,0x00,0xc9,0x00,0x00,0x00,0xc7,0x00,0x00,0x00, +0xf9,0x00,0x02,0x00,0xcb,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xcb,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00, +0xb6,0x01,0x00,0x00,0x59,0x00,0x00,0x00,0x05,0x00,0x00,0x00, +0x1a,0x01,0x00,0x00,0xcc,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0x7d,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,0x7b,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xd2,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,0xd2,0x00,0x00,0x00, +0xc2,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0xd4,0x00,0x00,0x00, +0xd5,0x00,0x00,0x00,0xb6,0x01,0x00,0x00,0xd3,0x00,0x00,0x00, +0xf6,0x00,0x04,0x00,0xcd,0x00,0x00,0x00,0xcc,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xd5,0x00,0x00,0x00, +0xcc,0x00,0x00,0x00,0xcd,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xcc,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xd8,0x00,0x00,0x00,0xb6,0x01,0x00,0x00,0xc2,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xda,0x00,0x00,0x00, +0xaf,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,0xd8,0x00,0x00,0x00, +0xda,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xe0,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,0xd2,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe2,0x00,0x00,0x00, +0xe0,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xe4,0x00,0x00,0x00,0xe2,0x00,0x00,0x00, +0xe3,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xe7,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,0xe3,0x00,0x00,0x00, +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe8,0x00,0x00,0x00, +0xe7,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0x82,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xed,0x00,0x00,0x00,0xdb,0x00,0x00,0x00, +0xe7,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xf1,0x00,0x00,0x00,0x69,0x01,0x00,0x00,0xe3,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7b,0x01,0x00,0x00, +0xf1,0x00,0x00,0x00,0xe4,0x00,0x00,0x00,0x41,0x00,0x07,0x00, +0x26,0x00,0x00,0x00,0x7c,0x01,0x00,0x00,0x20,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x7b,0x01,0x00,0x00,0x22,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x7d,0x01,0x00,0x00, +0x7c,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0x7e,0x01,0x00,0x00,0x7d,0x01,0x00,0x00,0x41,0x00,0x07,0x00, +0x26,0x00,0x00,0x00,0x82,0x01,0x00,0x00,0x20,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x7b,0x01,0x00,0x00,0x2e,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x83,0x01,0x00,0x00, +0x82,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0x84,0x01,0x00,0x00,0x83,0x01,0x00,0x00,0x41,0x00,0x07,0x00, +0x37,0x00,0x00,0x00,0x88,0x01,0x00,0x00,0x20,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x7b,0x01,0x00,0x00,0x36,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x89,0x01,0x00,0x00, +0x88,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x8c,0x01,0x00,0x00,0x89,0x01,0x00,0x00,0xe8,0x00,0x00,0x00, +0xc4,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8d,0x01,0x00,0x00, +0x8c,0x01,0x00,0x00,0x40,0x00,0x00,0x00,0xc7,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x8e,0x01,0x00,0x00,0x8d,0x01,0x00,0x00, +0x1a,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x21,0x00,0x00,0x00, +0x8f,0x01,0x00,0x00,0x8e,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x92,0x01,0x00,0x00,0xe8,0x00,0x00,0x00, +0x46,0x00,0x00,0x00,0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x93,0x01,0x00,0x00,0x89,0x01,0x00,0x00,0x92,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x94,0x01,0x00,0x00, +0x93,0x01,0x00,0x00,0x1a,0x00,0x00,0x00,0x7c,0x00,0x04,0x00, +0x21,0x00,0x00,0x00,0x95,0x01,0x00,0x00,0x94,0x01,0x00,0x00, +0x41,0x00,0x08,0x00,0x52,0x00,0x00,0x00,0x9b,0x01,0x00,0x00, +0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x7b,0x01,0x00,0x00, +0x50,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x19,0x00,0x00,0x00,0x9c,0x01,0x00,0x00,0x9b,0x01,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x9d,0x01,0x00,0x00, +0x9c,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x9f,0x01,0x00,0x00,0x9d,0x01,0x00,0x00,0x57,0x00,0x00,0x00, +0x7c,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa2,0x01,0x00,0x00, +0x8f,0x01,0x00,0x00,0xc5,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xa3,0x01,0x00,0x00,0x9f,0x01,0x00,0x00,0xa2,0x01,0x00,0x00, +0x70,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xa4,0x01,0x00,0x00, +0xa3,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xa6,0x01,0x00,0x00,0x9d,0x01,0x00,0x00,0x40,0x00,0x00,0x00, +0x7c,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa9,0x01,0x00,0x00, +0x95,0x01,0x00,0x00,0xc5,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xaa,0x01,0x00,0x00,0xa6,0x01,0x00,0x00,0xa9,0x01,0x00,0x00, +0x70,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xab,0x01,0x00,0x00, +0xaa,0x01,0x00,0x00,0x50,0x00,0x05,0x00,0x09,0x00,0x00,0x00, +0xac,0x01,0x00,0x00,0xa4,0x01,0x00,0x00,0xab,0x01,0x00,0x00, +0x8e,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0xae,0x01,0x00,0x00, +0xac,0x01,0x00,0x00,0x7e,0x01,0x00,0x00,0x50,0x00,0x05,0x00, +0x09,0x00,0x00,0x00,0xb0,0x01,0x00,0x00,0x84,0x01,0x00,0x00, +0x84,0x01,0x00,0x00,0x81,0x00,0x05,0x00,0x09,0x00,0x00,0x00, +0xb1,0x01,0x00,0x00,0xae,0x01,0x00,0x00,0xb0,0x01,0x00,0x00, +0x51,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0xfa,0x00,0x00,0x00, +0xb1,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x6d,0x01,0x00,0x00, +0xed,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x03,0x01,0x00,0x00,0x01,0x01,0x00,0x00,0xe8,0x00,0x00,0x00, +0x41,0x00,0x06,0x00,0x26,0x00,0x00,0x00,0x04,0x01,0x00,0x00, +0xfe,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x03,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x05,0x01,0x00,0x00, +0x04,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0x06,0x01,0x00,0x00,0x05,0x01,0x00,0x00,0x51,0x00,0x05,0x00, +0x08,0x00,0x00,0x00,0x09,0x01,0x00,0x00,0xb1,0x01,0x00,0x00, 0x01,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x0c,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x1d,0x00,0x00,0x00, -0x41,0x00,0x06,0x00,0x01,0x01,0x00,0x00,0x0d,0x01,0x00,0x00, -0xfb,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x0c,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x0e,0x01,0x00,0x00, -0x0d,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x08,0x00,0x00,0x00, -0x0f,0x01,0x00,0x00,0x06,0x01,0x00,0x00,0x0e,0x01,0x00,0x00, -0x0c,0x00,0x08,0x00,0x08,0x00,0x00,0x00,0x10,0x01,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xf7,0x00,0x00,0x00, -0x03,0x01,0x00,0x00,0x0f,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0x08,0x00,0x00,0x00,0x12,0x01,0x00,0x00,0xc6,0x00,0x00,0x00, -0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0x13,0x01,0x00,0x00, -0x12,0x01,0x00,0x00,0x10,0x01,0x00,0x00,0x3e,0x00,0x03,0x00, -0xc6,0x00,0x00,0x00,0x13,0x01,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x16,0x01,0x00,0x00,0xb2,0x01,0x00,0x00, -0x1a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xc8,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0xca,0x00,0x00,0x00,0xe0,0x00,0x04,0x00, -0x1a,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x17,0x01,0x00,0x00, -0xf9,0x00,0x02,0x00,0x1a,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, -0x1a,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00, -0xb3,0x01,0x00,0x00,0x19,0x01,0x00,0x00,0xca,0x00,0x00,0x00, -0x31,0x01,0x00,0x00,0x1d,0x01,0x00,0x00,0xac,0x00,0x05,0x00, -0xd1,0x00,0x00,0x00,0x20,0x01,0x00,0x00,0xb3,0x01,0x00,0x00, -0x5e,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x1c,0x01,0x00,0x00, -0x1d,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, -0x20,0x01,0x00,0x00,0x1b,0x01,0x00,0x00,0x1c,0x01,0x00,0x00, -0xf8,0x00,0x02,0x00,0x1b,0x01,0x00,0x00,0xb0,0x00,0x05,0x00, -0xd1,0x00,0x00,0x00,0x23,0x01,0x00,0x00,0xb4,0x00,0x00,0x00, -0xb3,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,0x25,0x01,0x00,0x00, -0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x23,0x01,0x00,0x00, -0x24,0x01,0x00,0x00,0x25,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, -0x24,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x29,0x01,0x00,0x00,0xb4,0x00,0x00,0x00,0xb3,0x01,0x00,0x00, -0x41,0x00,0x05,0x00,0xc5,0x00,0x00,0x00,0x2a,0x01,0x00,0x00, -0xc2,0x00,0x00,0x00,0x29,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0x08,0x00,0x00,0x00,0x2b,0x01,0x00,0x00,0x2a,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x2d,0x01,0x00,0x00, -0xc6,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00, -0x2e,0x01,0x00,0x00,0x2d,0x01,0x00,0x00,0x2b,0x01,0x00,0x00, -0x3e,0x00,0x03,0x00,0xc6,0x00,0x00,0x00,0x2e,0x01,0x00,0x00, -0xf9,0x00,0x02,0x00,0x25,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, -0x25,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,0x1a,0x00,0x00,0x00, -0x1a,0x00,0x00,0x00,0x17,0x01,0x00,0x00,0xf9,0x00,0x02,0x00, -0x1d,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x1d,0x01,0x00,0x00, -0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x31,0x01,0x00,0x00, -0xb3,0x01,0x00,0x00,0x31,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, -0x1a,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x1c,0x01,0x00,0x00, -0xaa,0x00,0x05,0x00,0xd1,0x00,0x00,0x00,0x33,0x01,0x00,0x00, -0xb4,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,0xf7,0x00,0x03,0x00, -0x35,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, -0x33,0x01,0x00,0x00,0x34,0x01,0x00,0x00,0x35,0x01,0x00,0x00, -0xf8,0x00,0x02,0x00,0x34,0x01,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x3c,0x01,0x00,0x00,0x6c,0x01,0x00,0x00, -0xb0,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0xc5,0x00,0x00,0x00, -0x3d,0x01,0x00,0x00,0xc2,0x00,0x00,0x00,0x25,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x3e,0x01,0x00,0x00, -0x3d,0x01,0x00,0x00,0x41,0x00,0x06,0x00,0x01,0x01,0x00,0x00, -0x3f,0x01,0x00,0x00,0x39,0x01,0x00,0x00,0x25,0x00,0x00,0x00, -0x3c,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x3f,0x01,0x00,0x00, -0x3e,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x35,0x01,0x00,0x00, -0xf8,0x00,0x02,0x00,0x35,0x01,0x00,0x00,0xfd,0x00,0x01,0x00, -0x38,0x00,0x01,0x00, +0x0f,0x01,0x00,0x00,0x03,0x01,0x00,0x00,0x1a,0x00,0x00,0x00, +0x41,0x00,0x06,0x00,0x26,0x00,0x00,0x00,0x10,0x01,0x00,0x00, +0xfe,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x0f,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x11,0x01,0x00,0x00, +0x10,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0x12,0x01,0x00,0x00,0x11,0x01,0x00,0x00,0x85,0x00,0x05,0x00, +0x08,0x00,0x00,0x00,0x13,0x01,0x00,0x00,0x09,0x01,0x00,0x00, +0x12,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0x08,0x00,0x00,0x00, +0x14,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0xfa,0x00,0x00,0x00,0x06,0x01,0x00,0x00,0x13,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x16,0x01,0x00,0x00, +0xc9,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00, +0x17,0x01,0x00,0x00,0x16,0x01,0x00,0x00,0x14,0x01,0x00,0x00, +0x3e,0x00,0x03,0x00,0xc9,0x00,0x00,0x00,0x17,0x01,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1a,0x01,0x00,0x00, +0xb6,0x01,0x00,0x00,0xaf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, +0xcb,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xcd,0x00,0x00,0x00, +0xe0,0x00,0x04,0x00,0xaf,0x00,0x00,0x00,0xaf,0x00,0x00,0x00, +0x1b,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x1e,0x01,0x00,0x00, +0xf8,0x00,0x02,0x00,0x1e,0x01,0x00,0x00,0xf5,0x00,0x07,0x00, +0x06,0x00,0x00,0x00,0xb7,0x01,0x00,0x00,0x1d,0x01,0x00,0x00, +0xcd,0x00,0x00,0x00,0x35,0x01,0x00,0x00,0x21,0x01,0x00,0x00, +0xac,0x00,0x05,0x00,0xd4,0x00,0x00,0x00,0x24,0x01,0x00,0x00, +0xb7,0x01,0x00,0x00,0x59,0x00,0x00,0x00,0xf6,0x00,0x04,0x00, +0x20,0x01,0x00,0x00,0x21,0x01,0x00,0x00,0x01,0x00,0x00,0x00, +0xfa,0x00,0x04,0x00,0x24,0x01,0x00,0x00,0x1f,0x01,0x00,0x00, +0x20,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x1f,0x01,0x00,0x00, +0xb0,0x00,0x05,0x00,0xd4,0x00,0x00,0x00,0x27,0x01,0x00,0x00, +0xb7,0x00,0x00,0x00,0xb7,0x01,0x00,0x00,0xf7,0x00,0x03,0x00, +0x29,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, +0x27,0x01,0x00,0x00,0x28,0x01,0x00,0x00,0x29,0x01,0x00,0x00, +0xf8,0x00,0x02,0x00,0x28,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x2d,0x01,0x00,0x00,0xb7,0x00,0x00,0x00, +0xb7,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0xc8,0x00,0x00,0x00, +0x2e,0x01,0x00,0x00,0xc5,0x00,0x00,0x00,0x2d,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x2f,0x01,0x00,0x00, +0x2e,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0x31,0x01,0x00,0x00,0xc9,0x00,0x00,0x00,0x81,0x00,0x05,0x00, +0x08,0x00,0x00,0x00,0x32,0x01,0x00,0x00,0x31,0x01,0x00,0x00, +0x2f,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xc9,0x00,0x00,0x00, +0x32,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x29,0x01,0x00,0x00, +0xf8,0x00,0x02,0x00,0x29,0x01,0x00,0x00,0xe0,0x00,0x04,0x00, +0xaf,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0x1b,0x01,0x00,0x00, +0xf9,0x00,0x02,0x00,0x21,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, +0x21,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x35,0x01,0x00,0x00,0xb7,0x01,0x00,0x00,0x2e,0x00,0x00,0x00, +0xf9,0x00,0x02,0x00,0x1e,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, +0x20,0x01,0x00,0x00,0xaa,0x00,0x05,0x00,0xd4,0x00,0x00,0x00, +0x37,0x01,0x00,0x00,0xb7,0x00,0x00,0x00,0x59,0x00,0x00,0x00, +0xf7,0x00,0x03,0x00,0x39,0x01,0x00,0x00,0x00,0x00,0x00,0x00, +0xfa,0x00,0x04,0x00,0x37,0x01,0x00,0x00,0x38,0x01,0x00,0x00, +0x39,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x38,0x01,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x40,0x01,0x00,0x00, +0x71,0x01,0x00,0x00,0xb3,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0xc8,0x00,0x00,0x00,0x41,0x01,0x00,0x00,0xc5,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0x42,0x01,0x00,0x00,0x41,0x01,0x00,0x00,0x41,0x00,0x06,0x00, +0x43,0x01,0x00,0x00,0x44,0x01,0x00,0x00,0x3d,0x01,0x00,0x00, +0x22,0x00,0x00,0x00,0x40,0x01,0x00,0x00,0x3e,0x00,0x03,0x00, +0x44,0x01,0x00,0x00,0x42,0x01,0x00,0x00,0xf9,0x00,0x02,0x00, +0x39,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x39,0x01,0x00,0x00, +0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00, }; -const uint64_t mul_mat_vec_q5_0_f32_f32_len = 4456; +const uint64_t mul_mat_vec_q5_1_f16_f32_len = 4532; -unsigned char mul_mat_vec_q5_1_f16_f32_data[] = { +unsigned char mul_mat_vec_q5_1_f32_f32_data[] = { 0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00, -0xb1,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, +0xb6,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, 0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x51,0x11,0x00,0x00, 0x11,0x00,0x02,0x00,0x60,0x11,0x00,0x00,0x0b,0x00,0x06,0x00, 0x01,0x00,0x00,0x00,0x47,0x4c,0x53,0x4c,0x2e,0x73,0x74,0x64, 0x2e,0x34,0x35,0x30,0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00, -0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0f,0x00,0x0d,0x00, +0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0f,0x00,0x0e,0x00, 0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e, 0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x73,0x00,0x00,0x00, -0x7b,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,0xad,0x00,0x00,0x00, -0xbd,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,0x36,0x01,0x00,0x00, -0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x1c,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x1c,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x1c,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x1c,0x00,0x00,0x00, -0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x1d,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x1e,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x1e,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x20,0x00,0x00,0x00, -0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x20,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x73,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x79,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x79,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x7b,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,0xac,0x00,0x00,0x00, +0xb5,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0xfe,0x00,0x00,0x00, +0x3c,0x01,0x00,0x00,0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00, +0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x1c,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x1c,0x00,0x00,0x00,0x02,0x00,0x00,0x00, 0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x79,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x79,0x00,0x00,0x00, -0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x79,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x79,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x79,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x79,0x00,0x00,0x00,0x07,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x79,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x20,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x79,0x00,0x00,0x00, -0x09,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x79,0x00,0x00,0x00,0x0a,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x47,0x00,0x03,0x00, -0x79,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xa9,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xad,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, -0x1b,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xba,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x1d,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x04,0x00, +0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0x1e,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x20,0x00,0x00,0x00,0x21,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x73,0x00,0x00,0x00, +0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x79,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x79,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x79,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x79,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x79,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x79,0x00,0x00,0x00,0x05,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x79,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x79,0x00,0x00,0x00, +0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x79,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x79,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x24,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x79,0x00,0x00,0x00, +0x0a,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x28,0x00,0x00,0x00, +0x47,0x00,0x03,0x00,0x79,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xa9,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, +0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xac,0x00,0x00,0x00, +0x0b,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xb5,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xc2,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xfb,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00, +0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0xfc,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xfe,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xfe,0x00,0x00,0x00,0x21,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x39,0x01,0x00,0x00, +0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00, +0x3a,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x3a,0x01,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0x3a,0x01,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x3c,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x3c,0x01,0x00,0x00,0x21,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x43,0x01,0x00,0x00, 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xf4,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0xf5,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xf5,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0xf5,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xf7,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xf7,0x00,0x00,0x00, -0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x33,0x01,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0x34,0x01,0x00,0x00,0x00,0x00,0x00,0x00, -0x19,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x34,0x01,0x00,0x00, -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0x34,0x01,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x36,0x01,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x36,0x01,0x00,0x00, -0x21,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x3e,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x3f,0x01,0x00,0x00,0x0b,0x00,0x00,0x00, -0x19,0x00,0x00,0x00,0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00, -0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x15,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0x08,0x00,0x00,0x00, -0x20,0x00,0x00,0x00,0x17,0x00,0x04,0x00,0x09,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x16,0x00,0x03,0x00, -0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x15,0x00,0x04,0x00, -0x19,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, -0x10,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x19,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x1e,0x00,0x06,0x00, -0x1c,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x18,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, -0x1d,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, -0x1e,0x00,0x00,0x00,0x1d,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x1f,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x1e,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x21,0x00,0x00,0x00, -0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x21,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x26,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, -0x2e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x21,0x00,0x00,0x00,0x36,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x37,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, -0x40,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x46,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x50,0x00,0x00,0x00, -0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x52,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x57,0x00,0x00,0x00,0x0f,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x62,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x17,0x00,0x04,0x00, -0x71,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x72,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x71,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x72,0x00,0x00,0x00, -0x73,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x74,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x1e,0x00,0x0d,0x00,0x79,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x44,0x01,0x00,0x00,0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00, +0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00, +0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x16,0x00,0x03,0x00,0x08,0x00,0x00,0x00,0x20,0x00,0x00,0x00, +0x17,0x00,0x04,0x00,0x09,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0x18,0x00,0x00,0x00, +0x10,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x19,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x10,0x00,0x00,0x00, +0x1c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x19,0x00,0x00,0x00, +0x1a,0x00,0x00,0x00,0x1e,0x00,0x06,0x00,0x1c,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x1b,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x1d,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x1e,0x00,0x00,0x00, +0x1d,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x1f,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0x1f,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x15,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x20,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x26,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x2e,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, +0x36,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x37,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x40,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x46,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x21,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x03,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x52,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x19,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x57,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x62,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x17,0x00,0x04,0x00,0x71,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x72,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x71,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x72,0x00,0x00,0x00,0x73,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x74,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x1e,0x00,0x0d,0x00, +0x79,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x7a,0x00,0x00,0x00, -0x09,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x7a,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x7c,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x7d,0x00,0x00,0x00, -0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x21,0x00,0x00,0x00,0x88,0x00,0x00,0x00,0x0a,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x8e,0x00,0x00,0x00, -0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, -0x94,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x21,0x00,0x00,0x00,0x9f,0x00,0x00,0x00,0x05,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0xa4,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x72,0x00,0x00,0x00, -0xa9,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x72,0x00,0x00,0x00,0xad,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xba,0x00,0x00,0x00, -0x20,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0xbb,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0xba,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0xbc,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xbb,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0xbc,0x00,0x00,0x00,0xbd,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x08,0x00,0x00,0x00, -0xbf,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0xc0,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x14,0x00,0x02,0x00,0xcc,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xdc,0x00,0x00,0x00, -0x20,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0xf4,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xf5,0x00,0x00,0x00, -0xf4,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xf6,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0xf6,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x14,0x01,0x00,0x00, -0x08,0x01,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00, -0x16,0x01,0x00,0x00,0x86,0x00,0x00,0x00,0xba,0x00,0x00,0x00, -0xd1,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x33,0x01,0x00,0x00, -0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x34,0x01,0x00,0x00, -0x33,0x01,0x00,0x00,0x20,0x00,0x04,0x00,0x35,0x01,0x00,0x00, -0x0c,0x00,0x00,0x00,0x34,0x01,0x00,0x00,0x3b,0x00,0x04,0x00, -0x35,0x01,0x00,0x00,0x36,0x01,0x00,0x00,0x0c,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x3c,0x01,0x00,0x00,0x0c,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x3e,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x33,0x00,0x06,0x00, -0x71,0x00,0x00,0x00,0x3f,0x01,0x00,0x00,0x3e,0x01,0x00,0x00, +0x20,0x00,0x04,0x00,0x7a,0x00,0x00,0x00,0x09,0x00,0x00,0x00, +0x79,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x7a,0x00,0x00,0x00, +0x7b,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x21,0x00,0x00,0x00,0x7c,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x7d,0x00,0x00,0x00,0x09,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, +0x88,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x21,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,0x09,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x94,0x00,0x00,0x00, +0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, +0x9f,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x21,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x72,0x00,0x00,0x00,0xa9,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x72,0x00,0x00,0x00, +0xac,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x72,0x00,0x00,0x00,0xb5,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xc2,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, +0xc3,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0xc2,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0xc3,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xc4,0x00,0x00,0x00, +0xc5,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x08,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0xc8,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x14,0x00,0x02,0x00,0xd4,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xe3,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0xfb,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xfc,0x00,0x00,0x00, +0xfb,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xfd,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0xfd,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x04,0x01,0x00,0x00,0x0c,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x1a,0x01,0x00,0x00,0x08,0x01,0x00,0x00,0x34,0x00,0x06,0x00, +0x06,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,0x86,0x00,0x00,0x00, +0xc2,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, +0x39,0x01,0x00,0x00,0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, +0x3a,0x01,0x00,0x00,0x39,0x01,0x00,0x00,0x20,0x00,0x04,0x00, +0x3b,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x3a,0x01,0x00,0x00, +0x3b,0x00,0x04,0x00,0x3b,0x01,0x00,0x00,0x3c,0x01,0x00,0x00, +0x0c,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x43,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x33,0x00,0x06,0x00, +0x71,0x00,0x00,0x00,0x44,0x01,0x00,0x00,0x43,0x01,0x00,0x00, 0x62,0x00,0x00,0x00,0x62,0x00,0x00,0x00,0x36,0x00,0x05,0x00, 0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x03,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00, 0x41,0x00,0x05,0x00,0x74,0x00,0x00,0x00,0xaa,0x00,0x00,0x00, 0xa9,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, 0x06,0x00,0x00,0x00,0xab,0x00,0x00,0x00,0xaa,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x74,0x00,0x00,0x00,0xae,0x00,0x00,0x00, -0xad,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0xae,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x74,0x00,0x00,0x00,0x47,0x01,0x00,0x00, -0x73,0x00,0x00,0x00,0x62,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x48,0x01,0x00,0x00,0x47,0x01,0x00,0x00, -0x41,0x00,0x05,0x00,0x7d,0x00,0x00,0x00,0x4a,0x01,0x00,0x00, -0x7b,0x00,0x00,0x00,0x7c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x4b,0x01,0x00,0x00,0x4a,0x01,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4c,0x01,0x00,0x00, -0x48,0x01,0x00,0x00,0x4b,0x01,0x00,0x00,0x89,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x50,0x01,0x00,0x00,0x48,0x01,0x00,0x00, -0x4b,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x7d,0x00,0x00,0x00, -0x52,0x01,0x00,0x00,0x7b,0x00,0x00,0x00,0x88,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x53,0x01,0x00,0x00, -0x52,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x54,0x01,0x00,0x00,0x4c,0x01,0x00,0x00,0x53,0x01,0x00,0x00, -0x41,0x00,0x05,0x00,0x7d,0x00,0x00,0x00,0x56,0x01,0x00,0x00, -0x7b,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x57,0x01,0x00,0x00,0x56,0x01,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x58,0x01,0x00,0x00, -0x50,0x01,0x00,0x00,0x57,0x01,0x00,0x00,0x41,0x00,0x05,0x00, -0x7d,0x00,0x00,0x00,0x5a,0x01,0x00,0x00,0x7b,0x00,0x00,0x00, -0x94,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x5b,0x01,0x00,0x00,0x5a,0x01,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x5c,0x01,0x00,0x00,0x54,0x01,0x00,0x00, -0x5b,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x5e,0x01,0x00,0x00,0x5c,0x01,0x00,0x00,0x58,0x01,0x00,0x00, -0x41,0x00,0x05,0x00,0x7d,0x00,0x00,0x00,0x60,0x01,0x00,0x00, -0x7b,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x61,0x01,0x00,0x00,0x60,0x01,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x62,0x01,0x00,0x00, -0x5e,0x01,0x00,0x00,0x61,0x01,0x00,0x00,0x41,0x00,0x05,0x00, -0x7d,0x00,0x00,0x00,0x64,0x01,0x00,0x00,0x7b,0x00,0x00,0x00, -0x9f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x65,0x01,0x00,0x00,0x64,0x01,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x66,0x01,0x00,0x00,0x48,0x01,0x00,0x00, -0x65,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x7d,0x00,0x00,0x00, -0x68,0x01,0x00,0x00,0x7b,0x00,0x00,0x00,0xa4,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x69,0x01,0x00,0x00, -0x68,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x6a,0x01,0x00,0x00,0x48,0x01,0x00,0x00,0x69,0x01,0x00,0x00, -0x41,0x00,0x05,0x00,0xc0,0x00,0x00,0x00,0xc1,0x00,0x00,0x00, -0xbd,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0x3e,0x00,0x03,0x00, -0xc1,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, -0xc3,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xc3,0x00,0x00,0x00, -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xaf,0x01,0x00,0x00, -0x59,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x13,0x01,0x00,0x00, -0xc4,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x7d,0x00,0x00,0x00, -0xc9,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xca,0x00,0x00,0x00, -0xc9,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xcb,0x00,0x00,0x00,0xca,0x00,0x00,0x00,0xba,0x00,0x00,0x00, -0xb0,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,0xcd,0x00,0x00,0x00, -0xaf,0x01,0x00,0x00,0xcb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00, -0xc5,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0xfa,0x00,0x04,0x00,0xcd,0x00,0x00,0x00,0xc4,0x00,0x00,0x00, -0xc5,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xc4,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd0,0x00,0x00,0x00, -0xaf,0x01,0x00,0x00,0xba,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,0xd1,0x00,0x00,0x00, -0xaf,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xd4,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0xd3,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd9,0x00,0x00,0x00, -0xab,0x00,0x00,0x00,0xca,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,0xd9,0x00,0x00,0x00, -0xd4,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xdd,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,0xdc,0x00,0x00,0x00, -0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe0,0x00,0x00,0x00, -0xd4,0x00,0x00,0x00,0xdc,0x00,0x00,0x00,0x86,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xe1,0x00,0x00,0x00,0xe0,0x00,0x00,0x00, -0xd1,0x00,0x00,0x00,0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xe6,0x00,0x00,0x00,0xd4,0x00,0x00,0x00,0xe0,0x00,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xea,0x00,0x00,0x00, -0x62,0x01,0x00,0x00,0xdc,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x74,0x01,0x00,0x00,0xea,0x00,0x00,0x00, -0xdd,0x00,0x00,0x00,0x41,0x00,0x07,0x00,0x26,0x00,0x00,0x00, -0x75,0x01,0x00,0x00,0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x74,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x18,0x00,0x00,0x00,0x76,0x01,0x00,0x00,0x75,0x01,0x00,0x00, -0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x77,0x01,0x00,0x00, -0x76,0x01,0x00,0x00,0x41,0x00,0x07,0x00,0x26,0x00,0x00,0x00, -0x7b,0x01,0x00,0x00,0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x74,0x01,0x00,0x00,0x2e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x18,0x00,0x00,0x00,0x7c,0x01,0x00,0x00,0x7b,0x01,0x00,0x00, -0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x7d,0x01,0x00,0x00, -0x7c,0x01,0x00,0x00,0x41,0x00,0x07,0x00,0x37,0x00,0x00,0x00, -0x81,0x01,0x00,0x00,0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x74,0x01,0x00,0x00,0x36,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x82,0x01,0x00,0x00,0x81,0x01,0x00,0x00, -0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x85,0x01,0x00,0x00, -0x82,0x01,0x00,0x00,0xe1,0x00,0x00,0x00,0xc4,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x86,0x01,0x00,0x00,0x85,0x01,0x00,0x00, -0x40,0x00,0x00,0x00,0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x87,0x01,0x00,0x00,0x86,0x01,0x00,0x00,0x1a,0x00,0x00,0x00, -0x7c,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x88,0x01,0x00,0x00, -0x87,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x8b,0x01,0x00,0x00,0xe1,0x00,0x00,0x00,0x46,0x00,0x00,0x00, -0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8c,0x01,0x00,0x00, -0x82,0x01,0x00,0x00,0x8b,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x8d,0x01,0x00,0x00,0x8c,0x01,0x00,0x00, +0x41,0x00,0x05,0x00,0x74,0x00,0x00,0x00,0xad,0x00,0x00,0x00, +0xac,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xae,0x00,0x00,0x00,0xad,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x74,0x00,0x00,0x00,0xb0,0x00,0x00,0x00, +0xa9,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xb1,0x00,0x00,0x00,0xb0,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb2,0x00,0x00,0x00, +0xae,0x00,0x00,0x00,0xb1,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,0xab,0x00,0x00,0x00, +0xb2,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x74,0x00,0x00,0x00, +0xb6,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,0x59,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xb7,0x00,0x00,0x00, +0xb6,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x74,0x00,0x00,0x00, +0x4c,0x01,0x00,0x00,0x73,0x00,0x00,0x00,0x62,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4d,0x01,0x00,0x00, +0x4c,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x7d,0x00,0x00,0x00, +0x4f,0x01,0x00,0x00,0x7b,0x00,0x00,0x00,0x7c,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x50,0x01,0x00,0x00, +0x4f,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x51,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,0x50,0x01,0x00,0x00, +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x55,0x01,0x00,0x00, +0x4d,0x01,0x00,0x00,0x50,0x01,0x00,0x00,0x41,0x00,0x05,0x00, +0x7d,0x00,0x00,0x00,0x57,0x01,0x00,0x00,0x7b,0x00,0x00,0x00, +0x88,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x58,0x01,0x00,0x00,0x57,0x01,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x59,0x01,0x00,0x00,0x51,0x01,0x00,0x00, +0x58,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x7d,0x00,0x00,0x00, +0x5b,0x01,0x00,0x00,0x7b,0x00,0x00,0x00,0x8e,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x5c,0x01,0x00,0x00, +0x5b,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x5d,0x01,0x00,0x00,0x55,0x01,0x00,0x00,0x5c,0x01,0x00,0x00, +0x41,0x00,0x05,0x00,0x7d,0x00,0x00,0x00,0x5f,0x01,0x00,0x00, +0x7b,0x00,0x00,0x00,0x94,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x60,0x01,0x00,0x00,0x5f,0x01,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x61,0x01,0x00,0x00, +0x59,0x01,0x00,0x00,0x60,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x63,0x01,0x00,0x00,0x61,0x01,0x00,0x00, +0x5d,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x7d,0x00,0x00,0x00, +0x65,0x01,0x00,0x00,0x7b,0x00,0x00,0x00,0x40,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x66,0x01,0x00,0x00, +0x65,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x67,0x01,0x00,0x00,0x63,0x01,0x00,0x00,0x66,0x01,0x00,0x00, +0x41,0x00,0x05,0x00,0x7d,0x00,0x00,0x00,0x69,0x01,0x00,0x00, +0x7b,0x00,0x00,0x00,0x9f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x6a,0x01,0x00,0x00,0x69,0x01,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6b,0x01,0x00,0x00, +0x4d,0x01,0x00,0x00,0x6a,0x01,0x00,0x00,0x41,0x00,0x05,0x00, +0x7d,0x00,0x00,0x00,0x6d,0x01,0x00,0x00,0x7b,0x00,0x00,0x00, +0xa4,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x6e,0x01,0x00,0x00,0x6d,0x01,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x6f,0x01,0x00,0x00,0x4d,0x01,0x00,0x00, +0x6e,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0xc8,0x00,0x00,0x00, +0xc9,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0xb7,0x00,0x00,0x00, +0x3e,0x00,0x03,0x00,0xc9,0x00,0x00,0x00,0xc7,0x00,0x00,0x00, +0xf9,0x00,0x02,0x00,0xcb,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xcb,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00, +0xb4,0x01,0x00,0x00,0x59,0x00,0x00,0x00,0x05,0x00,0x00,0x00, +0x19,0x01,0x00,0x00,0xcc,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0x7d,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,0x7b,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xd2,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,0xd2,0x00,0x00,0x00, +0xc2,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0xd4,0x00,0x00,0x00, +0xd5,0x00,0x00,0x00,0xb4,0x01,0x00,0x00,0xd3,0x00,0x00,0x00, +0xf6,0x00,0x04,0x00,0xcd,0x00,0x00,0x00,0xcc,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xd5,0x00,0x00,0x00, +0xcc,0x00,0x00,0x00,0xcd,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xcc,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xd8,0x00,0x00,0x00,0xb4,0x01,0x00,0x00,0xc2,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xda,0x00,0x00,0x00, +0xaf,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,0xd8,0x00,0x00,0x00, +0xda,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xe0,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,0xd2,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe2,0x00,0x00,0x00, +0xe0,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xe4,0x00,0x00,0x00,0xe2,0x00,0x00,0x00, +0xe3,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xe7,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,0xe3,0x00,0x00,0x00, +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe8,0x00,0x00,0x00, +0xe7,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0x82,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xed,0x00,0x00,0x00,0xdb,0x00,0x00,0x00, +0xe7,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xf1,0x00,0x00,0x00,0x67,0x01,0x00,0x00,0xe3,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x79,0x01,0x00,0x00, +0xf1,0x00,0x00,0x00,0xe4,0x00,0x00,0x00,0x41,0x00,0x07,0x00, +0x26,0x00,0x00,0x00,0x7a,0x01,0x00,0x00,0x20,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x79,0x01,0x00,0x00,0x22,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x7b,0x01,0x00,0x00, +0x7a,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0x7c,0x01,0x00,0x00,0x7b,0x01,0x00,0x00,0x41,0x00,0x07,0x00, +0x26,0x00,0x00,0x00,0x80,0x01,0x00,0x00,0x20,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x79,0x01,0x00,0x00,0x2e,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x81,0x01,0x00,0x00, +0x80,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0x82,0x01,0x00,0x00,0x81,0x01,0x00,0x00,0x41,0x00,0x07,0x00, +0x37,0x00,0x00,0x00,0x86,0x01,0x00,0x00,0x20,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x79,0x01,0x00,0x00,0x36,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x87,0x01,0x00,0x00, +0x86,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x8a,0x01,0x00,0x00,0x87,0x01,0x00,0x00,0xe8,0x00,0x00,0x00, +0xc4,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8b,0x01,0x00,0x00, +0x8a,0x01,0x00,0x00,0x40,0x00,0x00,0x00,0xc7,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x8c,0x01,0x00,0x00,0x8b,0x01,0x00,0x00, 0x1a,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x21,0x00,0x00,0x00, -0x8e,0x01,0x00,0x00,0x8d,0x01,0x00,0x00,0x41,0x00,0x08,0x00, -0x52,0x00,0x00,0x00,0x94,0x01,0x00,0x00,0x20,0x00,0x00,0x00, -0x22,0x00,0x00,0x00,0x74,0x01,0x00,0x00,0x50,0x00,0x00,0x00, -0xe1,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x19,0x00,0x00,0x00, -0x95,0x01,0x00,0x00,0x94,0x01,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x96,0x01,0x00,0x00,0x95,0x01,0x00,0x00, -0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x98,0x01,0x00,0x00, -0x96,0x01,0x00,0x00,0x57,0x00,0x00,0x00,0x7c,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x9b,0x01,0x00,0x00,0x88,0x01,0x00,0x00, -0xc5,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9c,0x01,0x00,0x00, -0x98,0x01,0x00,0x00,0x9b,0x01,0x00,0x00,0x70,0x00,0x04,0x00, -0x08,0x00,0x00,0x00,0x9d,0x01,0x00,0x00,0x9c,0x01,0x00,0x00, -0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9f,0x01,0x00,0x00, -0x96,0x01,0x00,0x00,0x40,0x00,0x00,0x00,0x7c,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xa2,0x01,0x00,0x00,0x8e,0x01,0x00,0x00, -0xc5,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa3,0x01,0x00,0x00, -0x9f,0x01,0x00,0x00,0xa2,0x01,0x00,0x00,0x70,0x00,0x04,0x00, -0x08,0x00,0x00,0x00,0xa4,0x01,0x00,0x00,0xa3,0x01,0x00,0x00, -0x50,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0xa5,0x01,0x00,0x00, -0x9d,0x01,0x00,0x00,0xa4,0x01,0x00,0x00,0x8e,0x00,0x05,0x00, -0x09,0x00,0x00,0x00,0xa7,0x01,0x00,0x00,0xa5,0x01,0x00,0x00, -0x77,0x01,0x00,0x00,0x50,0x00,0x05,0x00,0x09,0x00,0x00,0x00, -0xa9,0x01,0x00,0x00,0x7d,0x01,0x00,0x00,0x7d,0x01,0x00,0x00, -0x81,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0xaa,0x01,0x00,0x00, -0xa7,0x01,0x00,0x00,0xa9,0x01,0x00,0x00,0x51,0x00,0x05,0x00, -0x08,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,0xaa,0x01,0x00,0x00, -0x00,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xfa,0x00,0x00,0x00,0x66,0x01,0x00,0x00,0xe6,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfc,0x00,0x00,0x00, -0xfa,0x00,0x00,0x00,0xe1,0x00,0x00,0x00,0x41,0x00,0x06,0x00, -0x26,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,0xf7,0x00,0x00,0x00, -0x22,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x18,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0xfd,0x00,0x00,0x00, -0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xff,0x00,0x00,0x00, -0xfe,0x00,0x00,0x00,0x51,0x00,0x05,0x00,0x08,0x00,0x00,0x00, -0x02,0x01,0x00,0x00,0xaa,0x01,0x00,0x00,0x01,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x08,0x01,0x00,0x00, -0xfc,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x41,0x00,0x06,0x00, -0x26,0x00,0x00,0x00,0x09,0x01,0x00,0x00,0xf7,0x00,0x00,0x00, -0x22,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0x18,0x00,0x00,0x00,0x0a,0x01,0x00,0x00,0x09,0x01,0x00,0x00, -0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x0b,0x01,0x00,0x00, -0x0a,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x08,0x00,0x00,0x00, -0x0c,0x01,0x00,0x00,0x02,0x01,0x00,0x00,0x0b,0x01,0x00,0x00, -0x0c,0x00,0x08,0x00,0x08,0x00,0x00,0x00,0x0d,0x01,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xf3,0x00,0x00,0x00, -0xff,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0x08,0x00,0x00,0x00,0x0f,0x01,0x00,0x00,0xc1,0x00,0x00,0x00, -0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0x10,0x01,0x00,0x00, -0x0f,0x01,0x00,0x00,0x0d,0x01,0x00,0x00,0x3e,0x00,0x03,0x00, -0xc1,0x00,0x00,0x00,0x10,0x01,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x13,0x01,0x00,0x00,0xaf,0x01,0x00,0x00, -0xd1,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xc3,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0xc5,0x00,0x00,0x00,0xe0,0x00,0x04,0x00, -0xd1,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,0x14,0x01,0x00,0x00, -0xf9,0x00,0x02,0x00,0x17,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, -0x17,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00, -0xb0,0x01,0x00,0x00,0x16,0x01,0x00,0x00,0xc5,0x00,0x00,0x00, -0x2e,0x01,0x00,0x00,0x1a,0x01,0x00,0x00,0xac,0x00,0x05,0x00, -0xcc,0x00,0x00,0x00,0x1d,0x01,0x00,0x00,0xb0,0x01,0x00,0x00, -0x59,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x19,0x01,0x00,0x00, -0x1a,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, -0x1d,0x01,0x00,0x00,0x18,0x01,0x00,0x00,0x19,0x01,0x00,0x00, -0xf8,0x00,0x02,0x00,0x18,0x01,0x00,0x00,0xb0,0x00,0x05,0x00, -0xcc,0x00,0x00,0x00,0x20,0x01,0x00,0x00,0xaf,0x00,0x00,0x00, -0xb0,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,0x22,0x01,0x00,0x00, -0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x20,0x01,0x00,0x00, -0x21,0x01,0x00,0x00,0x22,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, -0x21,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x26,0x01,0x00,0x00,0xaf,0x00,0x00,0x00,0xb0,0x01,0x00,0x00, -0x41,0x00,0x05,0x00,0xc0,0x00,0x00,0x00,0x27,0x01,0x00,0x00, -0xbd,0x00,0x00,0x00,0x26,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0x08,0x00,0x00,0x00,0x28,0x01,0x00,0x00,0x27,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x2a,0x01,0x00,0x00, -0xc1,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00, -0x2b,0x01,0x00,0x00,0x2a,0x01,0x00,0x00,0x28,0x01,0x00,0x00, -0x3e,0x00,0x03,0x00,0xc1,0x00,0x00,0x00,0x2b,0x01,0x00,0x00, -0xf9,0x00,0x02,0x00,0x22,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, -0x22,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,0xd1,0x00,0x00,0x00, -0xd1,0x00,0x00,0x00,0x14,0x01,0x00,0x00,0xf9,0x00,0x02,0x00, -0x1a,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x1a,0x01,0x00,0x00, -0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2e,0x01,0x00,0x00, -0xb0,0x01,0x00,0x00,0x2e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, -0x17,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x19,0x01,0x00,0x00, -0xaa,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,0x30,0x01,0x00,0x00, -0xaf,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xf7,0x00,0x03,0x00, -0x32,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, -0x30,0x01,0x00,0x00,0x31,0x01,0x00,0x00,0x32,0x01,0x00,0x00, -0xf8,0x00,0x02,0x00,0x31,0x01,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x39,0x01,0x00,0x00,0x6a,0x01,0x00,0x00, -0xab,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0xc0,0x00,0x00,0x00, -0x3a,0x01,0x00,0x00,0xbd,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x3b,0x01,0x00,0x00, -0x3a,0x01,0x00,0x00,0x41,0x00,0x06,0x00,0x3c,0x01,0x00,0x00, -0x3d,0x01,0x00,0x00,0x36,0x01,0x00,0x00,0x22,0x00,0x00,0x00, -0x39,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x3d,0x01,0x00,0x00, -0x3b,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x32,0x01,0x00,0x00, -0xf8,0x00,0x02,0x00,0x32,0x01,0x00,0x00,0xfd,0x00,0x01,0x00, -0x38,0x00,0x01,0x00, +0x8d,0x01,0x00,0x00,0x8c,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x90,0x01,0x00,0x00,0xe8,0x00,0x00,0x00, +0x46,0x00,0x00,0x00,0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x91,0x01,0x00,0x00,0x87,0x01,0x00,0x00,0x90,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x92,0x01,0x00,0x00, +0x91,0x01,0x00,0x00,0x1a,0x00,0x00,0x00,0x7c,0x00,0x04,0x00, +0x21,0x00,0x00,0x00,0x93,0x01,0x00,0x00,0x92,0x01,0x00,0x00, +0x41,0x00,0x08,0x00,0x52,0x00,0x00,0x00,0x99,0x01,0x00,0x00, +0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x79,0x01,0x00,0x00, +0x50,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x19,0x00,0x00,0x00,0x9a,0x01,0x00,0x00,0x99,0x01,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x9b,0x01,0x00,0x00, +0x9a,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x9d,0x01,0x00,0x00,0x9b,0x01,0x00,0x00,0x57,0x00,0x00,0x00, +0x7c,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa0,0x01,0x00,0x00, +0x8d,0x01,0x00,0x00,0xc5,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xa1,0x01,0x00,0x00,0x9d,0x01,0x00,0x00,0xa0,0x01,0x00,0x00, +0x70,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xa2,0x01,0x00,0x00, +0xa1,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xa4,0x01,0x00,0x00,0x9b,0x01,0x00,0x00,0x40,0x00,0x00,0x00, +0x7c,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa7,0x01,0x00,0x00, +0x93,0x01,0x00,0x00,0xc5,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xa8,0x01,0x00,0x00,0xa4,0x01,0x00,0x00,0xa7,0x01,0x00,0x00, +0x70,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xa9,0x01,0x00,0x00, +0xa8,0x01,0x00,0x00,0x50,0x00,0x05,0x00,0x09,0x00,0x00,0x00, +0xaa,0x01,0x00,0x00,0xa2,0x01,0x00,0x00,0xa9,0x01,0x00,0x00, +0x8e,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0xac,0x01,0x00,0x00, +0xaa,0x01,0x00,0x00,0x7c,0x01,0x00,0x00,0x50,0x00,0x05,0x00, +0x09,0x00,0x00,0x00,0xae,0x01,0x00,0x00,0x82,0x01,0x00,0x00, +0x82,0x01,0x00,0x00,0x81,0x00,0x05,0x00,0x09,0x00,0x00,0x00, +0xaf,0x01,0x00,0x00,0xac,0x01,0x00,0x00,0xae,0x01,0x00,0x00, +0x51,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0xfa,0x00,0x00,0x00, +0xaf,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x6b,0x01,0x00,0x00, +0xed,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x03,0x01,0x00,0x00,0x01,0x01,0x00,0x00,0xe8,0x00,0x00,0x00, +0x41,0x00,0x06,0x00,0x04,0x01,0x00,0x00,0x05,0x01,0x00,0x00, +0xfe,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x03,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x06,0x01,0x00,0x00, +0x05,0x01,0x00,0x00,0x51,0x00,0x05,0x00,0x08,0x00,0x00,0x00, +0x09,0x01,0x00,0x00,0xaf,0x01,0x00,0x00,0x01,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0f,0x01,0x00,0x00, +0x03,0x01,0x00,0x00,0x1a,0x00,0x00,0x00,0x41,0x00,0x06,0x00, +0x04,0x01,0x00,0x00,0x10,0x01,0x00,0x00,0xfe,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x0f,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0x08,0x00,0x00,0x00,0x11,0x01,0x00,0x00,0x10,0x01,0x00,0x00, +0x85,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0x12,0x01,0x00,0x00, +0x09,0x01,0x00,0x00,0x11,0x01,0x00,0x00,0x0c,0x00,0x08,0x00, +0x08,0x00,0x00,0x00,0x13,0x01,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,0x06,0x01,0x00,0x00, +0x12,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0x15,0x01,0x00,0x00,0xc9,0x00,0x00,0x00,0x81,0x00,0x05,0x00, +0x08,0x00,0x00,0x00,0x16,0x01,0x00,0x00,0x15,0x01,0x00,0x00, +0x13,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xc9,0x00,0x00,0x00, +0x16,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x19,0x01,0x00,0x00,0xb4,0x01,0x00,0x00,0xaf,0x00,0x00,0x00, +0xf9,0x00,0x02,0x00,0xcb,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xcd,0x00,0x00,0x00,0xe0,0x00,0x04,0x00,0xaf,0x00,0x00,0x00, +0xaf,0x00,0x00,0x00,0x1a,0x01,0x00,0x00,0xf9,0x00,0x02,0x00, +0x1d,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x1d,0x01,0x00,0x00, +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xb5,0x01,0x00,0x00, +0x1c,0x01,0x00,0x00,0xcd,0x00,0x00,0x00,0x34,0x01,0x00,0x00, +0x20,0x01,0x00,0x00,0xac,0x00,0x05,0x00,0xd4,0x00,0x00,0x00, +0x23,0x01,0x00,0x00,0xb5,0x01,0x00,0x00,0x59,0x00,0x00,0x00, +0xf6,0x00,0x04,0x00,0x1f,0x01,0x00,0x00,0x20,0x01,0x00,0x00, +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x23,0x01,0x00,0x00, +0x1e,0x01,0x00,0x00,0x1f,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, +0x1e,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xd4,0x00,0x00,0x00, +0x26,0x01,0x00,0x00,0xb7,0x00,0x00,0x00,0xb5,0x01,0x00,0x00, +0xf7,0x00,0x03,0x00,0x28,0x01,0x00,0x00,0x00,0x00,0x00,0x00, +0xfa,0x00,0x04,0x00,0x26,0x01,0x00,0x00,0x27,0x01,0x00,0x00, +0x28,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x27,0x01,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2c,0x01,0x00,0x00, +0xb7,0x00,0x00,0x00,0xb5,0x01,0x00,0x00,0x41,0x00,0x05,0x00, +0xc8,0x00,0x00,0x00,0x2d,0x01,0x00,0x00,0xc5,0x00,0x00,0x00, +0x2c,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0x2e,0x01,0x00,0x00,0x2d,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0x08,0x00,0x00,0x00,0x30,0x01,0x00,0x00,0xc9,0x00,0x00,0x00, +0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0x31,0x01,0x00,0x00, +0x30,0x01,0x00,0x00,0x2e,0x01,0x00,0x00,0x3e,0x00,0x03,0x00, +0xc9,0x00,0x00,0x00,0x31,0x01,0x00,0x00,0xf9,0x00,0x02,0x00, +0x28,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x28,0x01,0x00,0x00, +0xe0,0x00,0x04,0x00,0xaf,0x00,0x00,0x00,0xaf,0x00,0x00,0x00, +0x1a,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x20,0x01,0x00,0x00, +0xf8,0x00,0x02,0x00,0x20,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x34,0x01,0x00,0x00,0xb5,0x01,0x00,0x00, +0x2e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x1d,0x01,0x00,0x00, +0xf8,0x00,0x02,0x00,0x1f,0x01,0x00,0x00,0xaa,0x00,0x05,0x00, +0xd4,0x00,0x00,0x00,0x36,0x01,0x00,0x00,0xb7,0x00,0x00,0x00, +0x59,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0x38,0x01,0x00,0x00, +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x36,0x01,0x00,0x00, +0x37,0x01,0x00,0x00,0x38,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, +0x37,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x3f,0x01,0x00,0x00,0x6f,0x01,0x00,0x00,0xb3,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0xc8,0x00,0x00,0x00,0x40,0x01,0x00,0x00, +0xc5,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x08,0x00,0x00,0x00,0x41,0x01,0x00,0x00,0x40,0x01,0x00,0x00, +0x41,0x00,0x06,0x00,0x04,0x01,0x00,0x00,0x42,0x01,0x00,0x00, +0x3c,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x3f,0x01,0x00,0x00, +0x3e,0x00,0x03,0x00,0x42,0x01,0x00,0x00,0x41,0x01,0x00,0x00, +0xf9,0x00,0x02,0x00,0x38,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, +0x38,0x01,0x00,0x00,0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00, + }; -const uint64_t mul_mat_vec_q5_1_f16_f32_len = 4384; +const uint64_t mul_mat_vec_q5_1_f32_f32_len = 4500; -unsigned char mul_mat_vec_q5_1_f32_f32_data[] = { +unsigned char mul_mat_vec_q5_k_f16_f32_data[] = { 0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00, -0xaf,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, -0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x51,0x11,0x00,0x00, -0x11,0x00,0x02,0x00,0x60,0x11,0x00,0x00,0x0b,0x00,0x06,0x00, -0x01,0x00,0x00,0x00,0x47,0x4c,0x53,0x4c,0x2e,0x73,0x74,0x64, -0x2e,0x34,0x35,0x30,0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00, -0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0f,0x00,0x0d,0x00, -0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e, -0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x73,0x00,0x00,0x00, -0x7b,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,0xad,0x00,0x00,0x00, -0xbd,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,0x35,0x01,0x00,0x00, +0xff,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, +0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x27,0x00,0x00,0x00, +0x11,0x00,0x02,0x00,0x51,0x11,0x00,0x00,0x11,0x00,0x02,0x00, +0x60,0x11,0x00,0x00,0x0b,0x00,0x06,0x00,0x01,0x00,0x00,0x00, +0x47,0x4c,0x53,0x4c,0x2e,0x73,0x74,0x64,0x2e,0x34,0x35,0x30, +0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00,0x00,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x0f,0x00,0x0e,0x00,0x05,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e,0x00,0x00,0x00,0x00, +0x11,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x4a,0x00,0x00,0x00, +0x4e,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0xa7,0x00,0x00,0x00, +0xd0,0x00,0x00,0x00,0x42,0x02,0x00,0x00,0xc6,0x04,0x00,0x00, 0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x1c,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x1c,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x1c,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x1c,0x00,0x00,0x00, -0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x1d,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x1e,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x1e,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x20,0x00,0x00,0x00, -0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x20,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x73,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x79,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x11,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x79,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x01,0x00,0x00,0x00, 0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x79,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x79,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00, 0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x79,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00, 0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x79,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x79,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x79,0x00,0x00,0x00,0x07,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x07,0x00,0x00,0x00, 0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x79,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x20,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x79,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00, 0x09,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x79,0x00,0x00,0x00,0x0a,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x0a,0x00,0x00,0x00, 0x23,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x47,0x00,0x03,0x00, -0x79,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xa9,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xad,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, -0x1b,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xba,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xf4,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0xf5,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xf5,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0xf5,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xf7,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xf7,0x00,0x00,0x00, -0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x32,0x01,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0x33,0x01,0x00,0x00,0x00,0x00,0x00,0x00, -0x19,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x33,0x01,0x00,0x00, -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0x33,0x01,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x35,0x01,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x35,0x01,0x00,0x00, -0x21,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x3c,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x3d,0x01,0x00,0x00,0x0b,0x00,0x00,0x00, -0x19,0x00,0x00,0x00,0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00, -0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x15,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0x08,0x00,0x00,0x00, -0x20,0x00,0x00,0x00,0x17,0x00,0x04,0x00,0x09,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x16,0x00,0x03,0x00, -0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x15,0x00,0x04,0x00, -0x19,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, -0x10,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x19,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x1e,0x00,0x06,0x00, -0x1c,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x18,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, -0x1d,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, -0x1e,0x00,0x00,0x00,0x1d,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x1f,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x1e,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x21,0x00,0x00,0x00, -0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x21,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x26,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, -0x2e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x21,0x00,0x00,0x00,0x36,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x37,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, -0x40,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x46,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x50,0x00,0x00,0x00, -0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x52,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x57,0x00,0x00,0x00,0x0f,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x62,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x17,0x00,0x04,0x00, -0x71,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x72,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x71,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x72,0x00,0x00,0x00, -0x73,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x74,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x1e,0x00,0x0d,0x00,0x79,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x4a,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x4e,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x6e,0x00,0x00,0x00, +0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xc9,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xca,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xcb,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0xcc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xcc,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0xcc,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x30,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xcd,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0xb0,0x00,0x00,0x00,0x48,0x00,0x04,0x00, +0xce,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0xce,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0xce,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xd0,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xd0,0x00,0x00,0x00,0x21,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x3f,0x02,0x00,0x00, +0x06,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x48,0x00,0x04,0x00, +0x40,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x40,0x02,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0x40,0x02,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x42,0x02,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x42,0x02,0x00,0x00,0x21,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xc3,0x04,0x00,0x00, +0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00, +0xc4,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0xc4,0x04,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0xc4,0x04,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xc6,0x04,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xc6,0x04,0x00,0x00,0x21,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xce,0x04,0x00,0x00, +0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x13,0x00,0x02,0x00, +0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x17,0x00,0x04,0x00, +0x0f,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x10,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x0f,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00, +0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x13,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x1e,0x00,0x0d,0x00,0x18,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x7a,0x00,0x00,0x00, -0x09,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x7a,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x7c,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x7d,0x00,0x00,0x00, -0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x21,0x00,0x00,0x00,0x88,0x00,0x00,0x00,0x0a,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x8e,0x00,0x00,0x00, -0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, -0x94,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x21,0x00,0x00,0x00,0x9f,0x00,0x00,0x00,0x05,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0xa4,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x72,0x00,0x00,0x00, -0xa9,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x72,0x00,0x00,0x00,0xad,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xba,0x00,0x00,0x00, -0x20,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0xbb,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0xba,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0xbc,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xbb,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0xbc,0x00,0x00,0x00,0xbd,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x08,0x00,0x00,0x00, -0xbf,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0xc0,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x14,0x00,0x02,0x00,0xcc,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xdc,0x00,0x00,0x00, -0x20,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0xf4,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xf5,0x00,0x00,0x00, -0xf4,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xf6,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0xf6,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0xfd,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x13,0x01,0x00,0x00,0x08,0x01,0x00,0x00,0x34,0x00,0x06,0x00, -0x06,0x00,0x00,0x00,0x15,0x01,0x00,0x00,0x86,0x00,0x00,0x00, -0xba,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, -0x32,0x01,0x00,0x00,0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, -0x33,0x01,0x00,0x00,0x32,0x01,0x00,0x00,0x20,0x00,0x04,0x00, -0x34,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x33,0x01,0x00,0x00, -0x3b,0x00,0x04,0x00,0x34,0x01,0x00,0x00,0x35,0x01,0x00,0x00, -0x0c,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x3c,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x33,0x00,0x06,0x00, -0x71,0x00,0x00,0x00,0x3d,0x01,0x00,0x00,0x3c,0x01,0x00,0x00, -0x62,0x00,0x00,0x00,0x62,0x00,0x00,0x00,0x36,0x00,0x05,0x00, -0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x03,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x74,0x00,0x00,0x00,0xaa,0x00,0x00,0x00, -0xa9,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xab,0x00,0x00,0x00,0xaa,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x74,0x00,0x00,0x00,0xae,0x00,0x00,0x00, -0xad,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0xae,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x74,0x00,0x00,0x00,0x45,0x01,0x00,0x00, -0x73,0x00,0x00,0x00,0x62,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x46,0x01,0x00,0x00,0x45,0x01,0x00,0x00, -0x41,0x00,0x05,0x00,0x7d,0x00,0x00,0x00,0x48,0x01,0x00,0x00, -0x7b,0x00,0x00,0x00,0x7c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x49,0x01,0x00,0x00,0x48,0x01,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4a,0x01,0x00,0x00, -0x46,0x01,0x00,0x00,0x49,0x01,0x00,0x00,0x89,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x4e,0x01,0x00,0x00,0x46,0x01,0x00,0x00, -0x49,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x7d,0x00,0x00,0x00, -0x50,0x01,0x00,0x00,0x7b,0x00,0x00,0x00,0x88,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x51,0x01,0x00,0x00, -0x50,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x52,0x01,0x00,0x00,0x4a,0x01,0x00,0x00,0x51,0x01,0x00,0x00, -0x41,0x00,0x05,0x00,0x7d,0x00,0x00,0x00,0x54,0x01,0x00,0x00, -0x7b,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x55,0x01,0x00,0x00,0x54,0x01,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x56,0x01,0x00,0x00, -0x4e,0x01,0x00,0x00,0x55,0x01,0x00,0x00,0x41,0x00,0x05,0x00, -0x7d,0x00,0x00,0x00,0x58,0x01,0x00,0x00,0x7b,0x00,0x00,0x00, -0x94,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x59,0x01,0x00,0x00,0x58,0x01,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x5a,0x01,0x00,0x00,0x52,0x01,0x00,0x00, -0x59,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x5c,0x01,0x00,0x00,0x5a,0x01,0x00,0x00,0x56,0x01,0x00,0x00, -0x41,0x00,0x05,0x00,0x7d,0x00,0x00,0x00,0x5e,0x01,0x00,0x00, -0x7b,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x5f,0x01,0x00,0x00,0x5e,0x01,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x60,0x01,0x00,0x00, -0x5c,0x01,0x00,0x00,0x5f,0x01,0x00,0x00,0x41,0x00,0x05,0x00, -0x7d,0x00,0x00,0x00,0x62,0x01,0x00,0x00,0x7b,0x00,0x00,0x00, -0x9f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x63,0x01,0x00,0x00,0x62,0x01,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x64,0x01,0x00,0x00,0x46,0x01,0x00,0x00, -0x63,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x7d,0x00,0x00,0x00, -0x66,0x01,0x00,0x00,0x7b,0x00,0x00,0x00,0xa4,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x67,0x01,0x00,0x00, -0x66,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x68,0x01,0x00,0x00,0x46,0x01,0x00,0x00,0x67,0x01,0x00,0x00, -0x41,0x00,0x05,0x00,0xc0,0x00,0x00,0x00,0xc1,0x00,0x00,0x00, -0xbd,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0x3e,0x00,0x03,0x00, -0xc1,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, -0xc3,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xc3,0x00,0x00,0x00, -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xad,0x01,0x00,0x00, -0x59,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x12,0x01,0x00,0x00, -0xc4,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x7d,0x00,0x00,0x00, -0xc9,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xca,0x00,0x00,0x00, -0xc9,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xcb,0x00,0x00,0x00,0xca,0x00,0x00,0x00,0xba,0x00,0x00,0x00, -0xb0,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,0xcd,0x00,0x00,0x00, -0xad,0x01,0x00,0x00,0xcb,0x00,0x00,0x00,0xf6,0x00,0x04,0x00, -0xc5,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0xfa,0x00,0x04,0x00,0xcd,0x00,0x00,0x00,0xc4,0x00,0x00,0x00, -0xc5,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xc4,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd0,0x00,0x00,0x00, -0xad,0x01,0x00,0x00,0xba,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,0xd1,0x00,0x00,0x00, -0xaf,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xd4,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0xd3,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd9,0x00,0x00,0x00, -0xab,0x00,0x00,0x00,0xca,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,0xd9,0x00,0x00,0x00, -0xd4,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xdd,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,0xdc,0x00,0x00,0x00, -0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe0,0x00,0x00,0x00, -0xd4,0x00,0x00,0x00,0xdc,0x00,0x00,0x00,0x86,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xe1,0x00,0x00,0x00,0xe0,0x00,0x00,0x00, -0xd1,0x00,0x00,0x00,0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xe6,0x00,0x00,0x00,0xd4,0x00,0x00,0x00,0xe0,0x00,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xea,0x00,0x00,0x00, -0x60,0x01,0x00,0x00,0xdc,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x72,0x01,0x00,0x00,0xea,0x00,0x00,0x00, -0xdd,0x00,0x00,0x00,0x41,0x00,0x07,0x00,0x26,0x00,0x00,0x00, -0x73,0x01,0x00,0x00,0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x72,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x18,0x00,0x00,0x00,0x74,0x01,0x00,0x00,0x73,0x01,0x00,0x00, -0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x75,0x01,0x00,0x00, -0x74,0x01,0x00,0x00,0x41,0x00,0x07,0x00,0x26,0x00,0x00,0x00, -0x79,0x01,0x00,0x00,0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x72,0x01,0x00,0x00,0x2e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x18,0x00,0x00,0x00,0x7a,0x01,0x00,0x00,0x79,0x01,0x00,0x00, -0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x7b,0x01,0x00,0x00, -0x7a,0x01,0x00,0x00,0x41,0x00,0x07,0x00,0x37,0x00,0x00,0x00, -0x7f,0x01,0x00,0x00,0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x72,0x01,0x00,0x00,0x36,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x80,0x01,0x00,0x00,0x7f,0x01,0x00,0x00, -0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x83,0x01,0x00,0x00, -0x80,0x01,0x00,0x00,0xe1,0x00,0x00,0x00,0xc4,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x84,0x01,0x00,0x00,0x83,0x01,0x00,0x00, -0x40,0x00,0x00,0x00,0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x85,0x01,0x00,0x00,0x84,0x01,0x00,0x00,0x1a,0x00,0x00,0x00, -0x7c,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x86,0x01,0x00,0x00, -0x85,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x89,0x01,0x00,0x00,0xe1,0x00,0x00,0x00,0x46,0x00,0x00,0x00, -0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8a,0x01,0x00,0x00, -0x80,0x01,0x00,0x00,0x89,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x8b,0x01,0x00,0x00,0x8a,0x01,0x00,0x00, -0x1a,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x21,0x00,0x00,0x00, -0x8c,0x01,0x00,0x00,0x8b,0x01,0x00,0x00,0x41,0x00,0x08,0x00, -0x52,0x00,0x00,0x00,0x92,0x01,0x00,0x00,0x20,0x00,0x00,0x00, -0x22,0x00,0x00,0x00,0x72,0x01,0x00,0x00,0x50,0x00,0x00,0x00, -0xe1,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x19,0x00,0x00,0x00, -0x93,0x01,0x00,0x00,0x92,0x01,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x94,0x01,0x00,0x00,0x93,0x01,0x00,0x00, -0xc7,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x96,0x01,0x00,0x00, -0x94,0x01,0x00,0x00,0x57,0x00,0x00,0x00,0x7c,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x99,0x01,0x00,0x00,0x86,0x01,0x00,0x00, -0xc5,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9a,0x01,0x00,0x00, -0x96,0x01,0x00,0x00,0x99,0x01,0x00,0x00,0x70,0x00,0x04,0x00, -0x08,0x00,0x00,0x00,0x9b,0x01,0x00,0x00,0x9a,0x01,0x00,0x00, -0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9d,0x01,0x00,0x00, -0x94,0x01,0x00,0x00,0x40,0x00,0x00,0x00,0x7c,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xa0,0x01,0x00,0x00,0x8c,0x01,0x00,0x00, -0xc5,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa1,0x01,0x00,0x00, -0x9d,0x01,0x00,0x00,0xa0,0x01,0x00,0x00,0x70,0x00,0x04,0x00, -0x08,0x00,0x00,0x00,0xa2,0x01,0x00,0x00,0xa1,0x01,0x00,0x00, -0x50,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0xa3,0x01,0x00,0x00, -0x9b,0x01,0x00,0x00,0xa2,0x01,0x00,0x00,0x8e,0x00,0x05,0x00, -0x09,0x00,0x00,0x00,0xa5,0x01,0x00,0x00,0xa3,0x01,0x00,0x00, -0x75,0x01,0x00,0x00,0x50,0x00,0x05,0x00,0x09,0x00,0x00,0x00, -0xa7,0x01,0x00,0x00,0x7b,0x01,0x00,0x00,0x7b,0x01,0x00,0x00, -0x81,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0xa8,0x01,0x00,0x00, -0xa5,0x01,0x00,0x00,0xa7,0x01,0x00,0x00,0x51,0x00,0x05,0x00, -0x08,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,0xa8,0x01,0x00,0x00, -0x00,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xfa,0x00,0x00,0x00,0x64,0x01,0x00,0x00,0xe6,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfc,0x00,0x00,0x00, -0xfa,0x00,0x00,0x00,0xe1,0x00,0x00,0x00,0x41,0x00,0x06,0x00, -0xfd,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0xf7,0x00,0x00,0x00, -0x22,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x08,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xfe,0x00,0x00,0x00, -0x51,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0x02,0x01,0x00,0x00, -0xa8,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0xfc,0x00,0x00,0x00, -0x1a,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xfd,0x00,0x00,0x00, -0x09,0x01,0x00,0x00,0xf7,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x08,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, -0x0a,0x01,0x00,0x00,0x09,0x01,0x00,0x00,0x85,0x00,0x05,0x00, -0x08,0x00,0x00,0x00,0x0b,0x01,0x00,0x00,0x02,0x01,0x00,0x00, -0x0a,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0x08,0x00,0x00,0x00, -0x0c,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0xf3,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x0b,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x0e,0x01,0x00,0x00, -0xc1,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00, -0x0f,0x01,0x00,0x00,0x0e,0x01,0x00,0x00,0x0c,0x01,0x00,0x00, -0x3e,0x00,0x03,0x00,0xc1,0x00,0x00,0x00,0x0f,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x12,0x01,0x00,0x00, -0xad,0x01,0x00,0x00,0xd1,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, -0xc3,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xc5,0x00,0x00,0x00, -0xe0,0x00,0x04,0x00,0xd1,0x00,0x00,0x00,0xd1,0x00,0x00,0x00, -0x13,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x16,0x01,0x00,0x00, -0xf8,0x00,0x02,0x00,0x16,0x01,0x00,0x00,0xf5,0x00,0x07,0x00, -0x06,0x00,0x00,0x00,0xae,0x01,0x00,0x00,0x15,0x01,0x00,0x00, -0xc5,0x00,0x00,0x00,0x2d,0x01,0x00,0x00,0x19,0x01,0x00,0x00, -0xac,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,0x1c,0x01,0x00,0x00, -0xae,0x01,0x00,0x00,0x59,0x00,0x00,0x00,0xf6,0x00,0x04,0x00, -0x18,0x01,0x00,0x00,0x19,0x01,0x00,0x00,0x01,0x00,0x00,0x00, -0xfa,0x00,0x04,0x00,0x1c,0x01,0x00,0x00,0x17,0x01,0x00,0x00, -0x18,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x17,0x01,0x00,0x00, -0xb0,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,0x1f,0x01,0x00,0x00, -0xaf,0x00,0x00,0x00,0xae,0x01,0x00,0x00,0xf7,0x00,0x03,0x00, -0x21,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, -0x1f,0x01,0x00,0x00,0x20,0x01,0x00,0x00,0x21,0x01,0x00,0x00, -0xf8,0x00,0x02,0x00,0x20,0x01,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x25,0x01,0x00,0x00,0xaf,0x00,0x00,0x00, -0xae,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0xc0,0x00,0x00,0x00, -0x26,0x01,0x00,0x00,0xbd,0x00,0x00,0x00,0x25,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x27,0x01,0x00,0x00, -0x26,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, -0x29,0x01,0x00,0x00,0xc1,0x00,0x00,0x00,0x81,0x00,0x05,0x00, -0x08,0x00,0x00,0x00,0x2a,0x01,0x00,0x00,0x29,0x01,0x00,0x00, -0x27,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xc1,0x00,0x00,0x00, -0x2a,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x21,0x01,0x00,0x00, -0xf8,0x00,0x02,0x00,0x21,0x01,0x00,0x00,0xe0,0x00,0x04,0x00, -0xd1,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,0x13,0x01,0x00,0x00, -0xf9,0x00,0x02,0x00,0x19,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, -0x19,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x2d,0x01,0x00,0x00,0xae,0x01,0x00,0x00,0x2e,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0x16,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, -0x18,0x01,0x00,0x00,0xaa,0x00,0x05,0x00,0xcc,0x00,0x00,0x00, -0x2f,0x01,0x00,0x00,0xaf,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0xf7,0x00,0x03,0x00,0x31,0x01,0x00,0x00,0x00,0x00,0x00,0x00, -0xfa,0x00,0x04,0x00,0x2f,0x01,0x00,0x00,0x30,0x01,0x00,0x00, -0x31,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x30,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x38,0x01,0x00,0x00, -0x68,0x01,0x00,0x00,0xab,0x00,0x00,0x00,0x41,0x00,0x05,0x00, -0xc0,0x00,0x00,0x00,0x39,0x01,0x00,0x00,0xbd,0x00,0x00,0x00, -0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, -0x3a,0x01,0x00,0x00,0x39,0x01,0x00,0x00,0x41,0x00,0x06,0x00, -0xfd,0x00,0x00,0x00,0x3b,0x01,0x00,0x00,0x35,0x01,0x00,0x00, -0x22,0x00,0x00,0x00,0x38,0x01,0x00,0x00,0x3e,0x00,0x03,0x00, -0x3b,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,0xf9,0x00,0x02,0x00, -0x31,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x31,0x01,0x00,0x00, +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x19,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, +0x09,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x1d,0x00,0x00,0x00,0x09,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x28,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,0x09,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x00,0x00, +0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x3b,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x05,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x45,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00, +0x4a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00,0x4e,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x51,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x64,0x00,0x00,0x00, +0x00,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00, +0x6e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x8c,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x92,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x15,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x9a,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x9e,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x16,0x00,0x03,0x00, +0xa4,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, +0xa5,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,0x8c,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0xa6,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0xa5,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xa6,0x00,0x00,0x00, +0xa7,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,0x10,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0xa4,0x00,0x00,0x00,0xad,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xae,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,0x14,0x00,0x02,0x00, +0xb9,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xc2,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x16,0x00,0x03,0x00, +0xc6,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x17,0x00,0x04,0x00, +0xc7,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xc8,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0xc9,0x00,0x00,0x00, +0x97,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, +0xca,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x8c,0x00,0x00,0x00, +0x1c,0x00,0x04,0x00,0xcb,0x00,0x00,0x00,0x97,0x00,0x00,0x00, +0xc2,0x00,0x00,0x00,0x1e,0x00,0x06,0x00,0xcc,0x00,0x00,0x00, +0xc7,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0xca,0x00,0x00,0x00, +0xcb,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0xcd,0x00,0x00,0x00, +0xcc,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xce,0x00,0x00,0x00, +0xcd,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xcf,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0xce,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0xcf,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0xd4,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0xc6,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xe5,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0xea,0x00,0x00,0x00,0x3f,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x10,0x01,0x00,0x00, +0x05,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x1f,0x01,0x00,0x00,0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x25,0x01,0x00,0x00,0x0f,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x30,0x01,0x00,0x00, +0xc0,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x32,0x01,0x00,0x00,0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x3d,0x01,0x00,0x00,0x09,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x8f,0x01,0x00,0x00, +0x03,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xb7,0x01,0x00,0x00,0x11,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xf5,0x01,0x00,0x00,0x41,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x03,0x02,0x00,0x00, +0x50,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x11,0x02,0x00,0x00,0x51,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, +0x3f,0x02,0x00,0x00,0xc6,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, +0x40,0x02,0x00,0x00,0x3f,0x02,0x00,0x00,0x20,0x00,0x04,0x00, +0x41,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,0x40,0x02,0x00,0x00, +0x3b,0x00,0x04,0x00,0x41,0x02,0x00,0x00,0x42,0x02,0x00,0x00, +0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x57,0x02,0x00,0x00,0x10,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xcb,0x02,0x00,0x00,0x21,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xe8,0x02,0x00,0x00, +0x30,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x05,0x03,0x00,0x00,0x31,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xa5,0x04,0x00,0x00,0x08,0x01,0x00,0x00, +0x1d,0x00,0x03,0x00,0xc3,0x04,0x00,0x00,0xa4,0x00,0x00,0x00, +0x1e,0x00,0x03,0x00,0xc4,0x04,0x00,0x00,0xc3,0x04,0x00,0x00, +0x20,0x00,0x04,0x00,0xc5,0x04,0x00,0x00,0x0c,0x00,0x00,0x00, +0xc4,0x04,0x00,0x00,0x3b,0x00,0x04,0x00,0xc5,0x04,0x00,0x00, +0xc6,0x04,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0xcc,0x04,0x00,0x00,0x0c,0x00,0x00,0x00,0xa4,0x00,0x00,0x00, +0x2c,0x00,0x06,0x00,0x0f,0x00,0x00,0x00,0xce,0x04,0x00,0x00, +0x8c,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x12,0x00,0x00,0x00, +0x36,0x00,0x05,0x00,0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0x05,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00, +0x4c,0x00,0x00,0x00,0x4a,0x00,0x00,0x00,0x4b,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4d,0x00,0x00,0x00, +0x4c,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00, +0x4f,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x4b,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x50,0x00,0x00,0x00, +0x4f,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00, +0x52,0x00,0x00,0x00,0x4a,0x00,0x00,0x00,0x51,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x53,0x00,0x00,0x00, +0x52,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x54,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x53,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x55,0x00,0x00,0x00, +0x4d,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0x13,0x00,0x00,0x00,0xd6,0x04,0x00,0x00,0x11,0x00,0x00,0x00, +0x12,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xd7,0x04,0x00,0x00,0xd6,0x04,0x00,0x00,0x41,0x00,0x05,0x00, +0x1d,0x00,0x00,0x00,0xd9,0x04,0x00,0x00,0x1a,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xda,0x04,0x00,0x00,0xd9,0x04,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xdb,0x04,0x00,0x00,0xd7,0x04,0x00,0x00, +0xda,0x04,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xdf,0x04,0x00,0x00,0xd7,0x04,0x00,0x00,0xda,0x04,0x00,0x00, +0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00,0xe1,0x04,0x00,0x00, +0x1a,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xe2,0x04,0x00,0x00,0xe1,0x04,0x00,0x00, +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe3,0x04,0x00,0x00, +0xdb,0x04,0x00,0x00,0xe2,0x04,0x00,0x00,0x41,0x00,0x05,0x00, +0x1d,0x00,0x00,0x00,0xe5,0x04,0x00,0x00,0x1a,0x00,0x00,0x00, +0x2e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xe6,0x04,0x00,0x00,0xe5,0x04,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xe7,0x04,0x00,0x00,0xdf,0x04,0x00,0x00, +0xe6,0x04,0x00,0x00,0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00, +0xe9,0x04,0x00,0x00,0x1a,0x00,0x00,0x00,0x34,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xea,0x04,0x00,0x00, +0xe9,0x04,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xeb,0x04,0x00,0x00,0xe3,0x04,0x00,0x00,0xea,0x04,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xed,0x04,0x00,0x00, +0xeb,0x04,0x00,0x00,0xe7,0x04,0x00,0x00,0x41,0x00,0x05,0x00, +0x1d,0x00,0x00,0x00,0xef,0x04,0x00,0x00,0x1a,0x00,0x00,0x00, +0x3b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xf0,0x04,0x00,0x00,0xef,0x04,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xf1,0x04,0x00,0x00,0xed,0x04,0x00,0x00, +0xf0,0x04,0x00,0x00,0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00, +0xf3,0x04,0x00,0x00,0x1a,0x00,0x00,0x00,0x40,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xf4,0x04,0x00,0x00, +0xf3,0x04,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xf5,0x04,0x00,0x00,0xd7,0x04,0x00,0x00,0xf4,0x04,0x00,0x00, +0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00,0xf7,0x04,0x00,0x00, +0x1a,0x00,0x00,0x00,0x45,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xf8,0x04,0x00,0x00,0xf7,0x04,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf9,0x04,0x00,0x00, +0xd7,0x04,0x00,0x00,0xf8,0x04,0x00,0x00,0x41,0x00,0x05,0x00, +0x1d,0x00,0x00,0x00,0x62,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x63,0x00,0x00,0x00,0x62,0x00,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x65,0x00,0x00,0x00,0x63,0x00,0x00,0x00, +0x64,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x68,0x00,0x00,0x00,0xf1,0x04,0x00,0x00,0x64,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6b,0x00,0x00,0x00, +0x55,0x00,0x00,0x00,0x65,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x68,0x00,0x00,0x00, +0x6b,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00, +0x6f,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x4b,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x70,0x00,0x00,0x00, +0x6f,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x71,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x51,0x00,0x00,0x00, +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x75,0x00,0x00,0x00, +0x70,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x71,0x00,0x00,0x00, +0x78,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x7d,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x79,0x00,0x00,0x00, +0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7e,0x00,0x00,0x00, +0x71,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x81,0x00,0x00,0x00,0x79,0x00,0x00,0x00, +0x51,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x84,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x51,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x87,0x00,0x00,0x00, +0x78,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x89,0x00,0x00,0x00,0x51,0x00,0x00,0x00, +0x84,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x8a,0x00,0x00,0x00,0x87,0x00,0x00,0x00,0x89,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8e,0x00,0x00,0x00, +0x8c,0x00,0x00,0x00,0x81,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x90,0x00,0x00,0x00,0x8e,0x00,0x00,0x00, +0x8a,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x94,0x00,0x00,0x00,0x92,0x00,0x00,0x00,0x81,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x96,0x00,0x00,0x00, +0x94,0x00,0x00,0x00,0x8a,0x00,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x9c,0x00,0x00,0x00,0x51,0x00,0x00,0x00, +0x81,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x9d,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,0x9c,0x00,0x00,0x00, +0x72,0x00,0x04,0x00,0x9e,0x00,0x00,0x00,0x9f,0x00,0x00,0x00, +0x9d,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0xa0,0x00,0x00,0x00,0x9f,0x00,0x00,0x00,0xc4,0x00,0x05,0x00, +0x97,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0xa0,0x00,0x00,0x00, +0x3b,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xaa,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,0x75,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xac,0x00,0x00,0x00, +0xaa,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0xae,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0xa7,0x00,0x00,0x00, +0xac,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0xaf,0x00,0x00,0x00, +0xad,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xb2,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0xb2,0x00,0x00,0x00,0xf5,0x00,0x07,0x00, +0x06,0x00,0x00,0x00,0xfa,0x04,0x00,0x00,0x75,0x00,0x00,0x00, +0x05,0x00,0x00,0x00,0xa4,0x04,0x00,0x00,0xb3,0x00,0x00,0x00, +0xb0,0x00,0x05,0x00,0xb9,0x00,0x00,0x00,0xba,0x00,0x00,0x00, +0xfa,0x04,0x00,0x00,0x65,0x00,0x00,0x00,0xf6,0x00,0x04,0x00, +0xb4,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0xfa,0x00,0x04,0x00,0xba,0x00,0x00,0x00,0xb3,0x00,0x00,0x00, +0xb4,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xb3,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbd,0x00,0x00,0x00, +0xfa,0x04,0x00,0x00,0x64,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0xbd,0x00,0x00,0x00, +0x96,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xc3,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0xc2,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd3,0x00,0x00,0x00, +0x6c,0x00,0x00,0x00,0xfa,0x04,0x00,0x00,0x41,0x00,0x08,0x00, +0xd4,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0xd0,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0x4b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xc6,0x00,0x00,0x00, +0xd6,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0x73,0x00,0x04,0x00, +0xa4,0x00,0x00,0x00,0xd7,0x00,0x00,0x00,0xd6,0x00,0x00,0x00, +0x41,0x00,0x08,0x00,0xd4,0x00,0x00,0x00,0xdc,0x00,0x00,0x00, +0xd0,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xd3,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0xc6,0x00,0x00,0x00,0xdd,0x00,0x00,0x00,0xdc,0x00,0x00,0x00, +0x73,0x00,0x04,0x00,0xa4,0x00,0x00,0x00,0xde,0x00,0x00,0x00, +0xdd,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xe4,0x00,0x00,0x00,0x81,0x00,0x00,0x00,0x51,0x00,0x00,0x00, +0x41,0x00,0x08,0x00,0xe5,0x00,0x00,0x00,0xe6,0x00,0x00,0x00, +0xd0,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xd3,0x00,0x00,0x00, +0x9a,0x00,0x00,0x00,0xe4,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,0xe6,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xe8,0x00,0x00,0x00, +0xe7,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0xe9,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0xe9,0x00,0x00,0x00, +0xea,0x00,0x00,0x00,0x72,0x00,0x04,0x00,0x9e,0x00,0x00,0x00, +0xec,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0x7c,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0xed,0x00,0x00,0x00,0xec,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf4,0x00,0x00,0x00, +0xe4,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x41,0x00,0x08,0x00, +0xe5,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,0xd0,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,0x9a,0x00,0x00,0x00, +0xf4,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0xf6,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,0xf6,0x00,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xf8,0x00,0x00,0x00, +0xf7,0x00,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0xf9,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0xea,0x00,0x00,0x00, +0x72,0x00,0x04,0x00,0x9e,0x00,0x00,0x00,0xfa,0x00,0x00,0x00, +0xf9,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0xfb,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x02,0x01,0x00,0x00,0xe4,0x00,0x00,0x00, +0x78,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xe5,0x00,0x00,0x00, +0x03,0x01,0x00,0x00,0xd0,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0xd3,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,0x02,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x04,0x01,0x00,0x00, +0x03,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x05,0x01,0x00,0x00,0x04,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x06,0x01,0x00,0x00,0x05,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x07,0x01,0x00,0x00, +0x06,0x01,0x00,0x00,0xea,0x00,0x00,0x00,0x72,0x00,0x04,0x00, +0x9e,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x07,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x09,0x01,0x00,0x00, +0x08,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x11,0x01,0x00,0x00,0xe4,0x00,0x00,0x00,0x10,0x01,0x00,0x00, +0x41,0x00,0x08,0x00,0xe5,0x00,0x00,0x00,0x12,0x01,0x00,0x00, +0xd0,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xd3,0x00,0x00,0x00, +0x9a,0x00,0x00,0x00,0x11,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0x13,0x01,0x00,0x00,0x12,0x01,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x14,0x01,0x00,0x00, +0x13,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x15,0x01,0x00,0x00,0x14,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x16,0x01,0x00,0x00,0x15,0x01,0x00,0x00, +0xea,0x00,0x00,0x00,0x72,0x00,0x04,0x00,0x9e,0x00,0x00,0x00, +0x17,0x01,0x00,0x00,0x16,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0x18,0x01,0x00,0x00,0x17,0x01,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x20,0x01,0x00,0x00, +0xe4,0x00,0x00,0x00,0x1f,0x01,0x00,0x00,0x41,0x00,0x08,0x00, +0xe5,0x00,0x00,0x00,0x21,0x01,0x00,0x00,0xd0,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,0x9a,0x00,0x00,0x00, +0x20,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0x22,0x01,0x00,0x00,0x21,0x01,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x23,0x01,0x00,0x00,0x22,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x24,0x01,0x00,0x00, +0x23,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x26,0x01,0x00,0x00,0x24,0x01,0x00,0x00,0x25,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x2d,0x01,0x00,0x00, +0xe6,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x2e,0x01,0x00,0x00,0x2d,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x2f,0x01,0x00,0x00,0x2e,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x31,0x01,0x00,0x00, +0x2f,0x01,0x00,0x00,0x30,0x01,0x00,0x00,0xc3,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x33,0x01,0x00,0x00,0x31,0x01,0x00,0x00, +0x32,0x01,0x00,0x00,0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x34,0x01,0x00,0x00,0x26,0x01,0x00,0x00,0x33,0x01,0x00,0x00, +0x72,0x00,0x04,0x00,0x9e,0x00,0x00,0x00,0x35,0x01,0x00,0x00, +0x34,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0x36,0x01,0x00,0x00,0x35,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x3e,0x01,0x00,0x00,0xe4,0x00,0x00,0x00, +0x3d,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0xe5,0x00,0x00,0x00, +0x3f,0x01,0x00,0x00,0xd0,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0xd3,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,0x3e,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x40,0x01,0x00,0x00, +0x3f,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x41,0x01,0x00,0x00,0x40,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x42,0x01,0x00,0x00,0x41,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x43,0x01,0x00,0x00, +0x42,0x01,0x00,0x00,0x25,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0x4b,0x01,0x00,0x00,0xf5,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4c,0x01,0x00,0x00, +0x4b,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x4d,0x01,0x00,0x00,0x4c,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x4e,0x01,0x00,0x00,0x4d,0x01,0x00,0x00, +0x30,0x01,0x00,0x00,0xc3,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x4f,0x01,0x00,0x00,0x4e,0x01,0x00,0x00,0x32,0x01,0x00,0x00, +0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x50,0x01,0x00,0x00, +0x43,0x01,0x00,0x00,0x4f,0x01,0x00,0x00,0x72,0x00,0x04,0x00, +0x9e,0x00,0x00,0x00,0x51,0x01,0x00,0x00,0x50,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x52,0x01,0x00,0x00, +0x51,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0x5b,0x01,0x00,0x00,0x21,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, +0x97,0x00,0x00,0x00,0x5c,0x01,0x00,0x00,0x5b,0x01,0x00,0x00, +0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x5d,0x01,0x00,0x00,0x5c,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x5e,0x01,0x00,0x00,0x5d,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x5f,0x01,0x00,0x00, +0x5e,0x01,0x00,0x00,0x25,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0x67,0x01,0x00,0x00,0x03,0x01,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x68,0x01,0x00,0x00, +0x67,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x69,0x01,0x00,0x00,0x68,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x6a,0x01,0x00,0x00,0x69,0x01,0x00,0x00, +0x30,0x01,0x00,0x00,0xc3,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x6b,0x01,0x00,0x00,0x6a,0x01,0x00,0x00,0x32,0x01,0x00,0x00, +0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x6c,0x01,0x00,0x00, +0x5f,0x01,0x00,0x00,0x6b,0x01,0x00,0x00,0x72,0x00,0x04,0x00, +0x9e,0x00,0x00,0x00,0x6d,0x01,0x00,0x00,0x6c,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x6e,0x01,0x00,0x00, +0x6d,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0x77,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, +0x97,0x00,0x00,0x00,0x78,0x01,0x00,0x00,0x77,0x01,0x00,0x00, +0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x79,0x01,0x00,0x00,0x78,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x7a,0x01,0x00,0x00,0x79,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x7b,0x01,0x00,0x00, +0x7a,0x01,0x00,0x00,0x25,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0x83,0x01,0x00,0x00,0x12,0x01,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x84,0x01,0x00,0x00, +0x83,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x85,0x01,0x00,0x00,0x84,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x86,0x01,0x00,0x00,0x85,0x01,0x00,0x00, +0x30,0x01,0x00,0x00,0xc3,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x87,0x01,0x00,0x00,0x86,0x01,0x00,0x00,0x32,0x01,0x00,0x00, +0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x88,0x01,0x00,0x00, +0x7b,0x01,0x00,0x00,0x87,0x01,0x00,0x00,0x72,0x00,0x04,0x00, +0x9e,0x00,0x00,0x00,0x89,0x01,0x00,0x00,0x88,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x8a,0x01,0x00,0x00, +0x89,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0xe5,0x00,0x00,0x00, +0x91,0x01,0x00,0x00,0xd0,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0xd3,0x00,0x00,0x00,0x8f,0x01,0x00,0x00,0x90,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x92,0x01,0x00,0x00, +0x91,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x93,0x01,0x00,0x00,0x92,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x94,0x01,0x00,0x00,0x93,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x95,0x01,0x00,0x00, +0x94,0x01,0x00,0x00,0x25,0x01,0x00,0x00,0x72,0x00,0x04,0x00, +0x9e,0x00,0x00,0x00,0x96,0x01,0x00,0x00,0x95,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x97,0x01,0x00,0x00, +0x96,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x9d,0x01,0x00,0x00,0x90,0x00,0x00,0x00,0x12,0x00,0x00,0x00, +0x41,0x00,0x08,0x00,0xe5,0x00,0x00,0x00,0x9e,0x01,0x00,0x00, +0xd0,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xd3,0x00,0x00,0x00, +0x8f,0x01,0x00,0x00,0x9d,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0x9f,0x01,0x00,0x00,0x9e,0x01,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa0,0x01,0x00,0x00, +0x9f,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0xa1,0x01,0x00,0x00,0xa0,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0xa2,0x01,0x00,0x00,0xa1,0x01,0x00,0x00, +0x25,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x9e,0x00,0x00,0x00, +0xa3,0x01,0x00,0x00,0xa2,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0xa4,0x01,0x00,0x00,0xa3,0x01,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xaa,0x01,0x00,0x00, +0x90,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,0x41,0x00,0x08,0x00, +0xe5,0x00,0x00,0x00,0xab,0x01,0x00,0x00,0xd0,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,0x8f,0x01,0x00,0x00, +0xaa,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0xac,0x01,0x00,0x00,0xab,0x01,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xad,0x01,0x00,0x00,0xac,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xae,0x01,0x00,0x00, +0xad,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0xaf,0x01,0x00,0x00,0xae,0x01,0x00,0x00,0x25,0x01,0x00,0x00, +0x72,0x00,0x04,0x00,0x9e,0x00,0x00,0x00,0xb0,0x01,0x00,0x00, +0xaf,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0xb1,0x01,0x00,0x00,0xb0,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xb8,0x01,0x00,0x00,0x90,0x00,0x00,0x00, +0xb7,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0xe5,0x00,0x00,0x00, +0xb9,0x01,0x00,0x00,0xd0,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0xd3,0x00,0x00,0x00,0x8f,0x01,0x00,0x00,0xb8,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0xba,0x01,0x00,0x00, +0xb9,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xbb,0x01,0x00,0x00,0xba,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0xbc,0x01,0x00,0x00,0xbb,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xbd,0x01,0x00,0x00, +0xbc,0x01,0x00,0x00,0x25,0x01,0x00,0x00,0x72,0x00,0x04,0x00, +0x9e,0x00,0x00,0x00,0xbe,0x01,0x00,0x00,0xbd,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0xbf,0x01,0x00,0x00, +0xbe,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0xc6,0x01,0x00,0x00,0x91,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, +0x97,0x00,0x00,0x00,0xc7,0x01,0x00,0x00,0xc6,0x01,0x00,0x00, +0x3b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0xcf,0x01,0x00,0x00,0x9e,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, +0x97,0x00,0x00,0x00,0xd0,0x01,0x00,0x00,0xcf,0x01,0x00,0x00, +0x3b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0xd8,0x01,0x00,0x00,0xab,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, +0x97,0x00,0x00,0x00,0xd9,0x01,0x00,0x00,0xd8,0x01,0x00,0x00, +0x3b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0xe1,0x01,0x00,0x00,0xb9,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, +0x97,0x00,0x00,0x00,0xe2,0x01,0x00,0x00,0xe1,0x01,0x00,0x00, +0x3b,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xe8,0x01,0x00,0x00,0x90,0x00,0x00,0x00,0x92,0x00,0x00,0x00, +0x41,0x00,0x08,0x00,0xe5,0x00,0x00,0x00,0xe9,0x01,0x00,0x00, +0xd0,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xd3,0x00,0x00,0x00, +0x8f,0x01,0x00,0x00,0xe8,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0xea,0x01,0x00,0x00,0xe9,0x01,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xeb,0x01,0x00,0x00, +0xea,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0xec,0x01,0x00,0x00,0xeb,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0xed,0x01,0x00,0x00,0xec,0x01,0x00,0x00, +0x25,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x9e,0x00,0x00,0x00, +0xee,0x01,0x00,0x00,0xed,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0xef,0x01,0x00,0x00,0xee,0x01,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf6,0x01,0x00,0x00, +0x90,0x00,0x00,0x00,0xf5,0x01,0x00,0x00,0x41,0x00,0x08,0x00, +0xe5,0x00,0x00,0x00,0xf7,0x01,0x00,0x00,0xd0,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,0x8f,0x01,0x00,0x00, +0xf6,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0xf8,0x01,0x00,0x00,0xf7,0x01,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xf9,0x01,0x00,0x00,0xf8,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xfa,0x01,0x00,0x00, +0xf9,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0xfb,0x01,0x00,0x00,0xfa,0x01,0x00,0x00,0x25,0x01,0x00,0x00, +0x72,0x00,0x04,0x00,0x9e,0x00,0x00,0x00,0xfc,0x01,0x00,0x00, +0xfb,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0xfd,0x01,0x00,0x00,0xfc,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x04,0x02,0x00,0x00,0x90,0x00,0x00,0x00, +0x03,0x02,0x00,0x00,0x41,0x00,0x08,0x00,0xe5,0x00,0x00,0x00, +0x05,0x02,0x00,0x00,0xd0,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0xd3,0x00,0x00,0x00,0x8f,0x01,0x00,0x00,0x04,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x06,0x02,0x00,0x00, +0x05,0x02,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x07,0x02,0x00,0x00,0x06,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x08,0x02,0x00,0x00,0x07,0x02,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x09,0x02,0x00,0x00, +0x08,0x02,0x00,0x00,0x25,0x01,0x00,0x00,0x72,0x00,0x04,0x00, +0x9e,0x00,0x00,0x00,0x0a,0x02,0x00,0x00,0x09,0x02,0x00,0x00, +0x7c,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x0b,0x02,0x00,0x00, +0x0a,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x12,0x02,0x00,0x00,0x90,0x00,0x00,0x00,0x11,0x02,0x00,0x00, +0x41,0x00,0x08,0x00,0xe5,0x00,0x00,0x00,0x13,0x02,0x00,0x00, +0xd0,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xd3,0x00,0x00,0x00, +0x8f,0x01,0x00,0x00,0x12,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0x14,0x02,0x00,0x00,0x13,0x02,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x15,0x02,0x00,0x00, +0x14,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x16,0x02,0x00,0x00,0x15,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x17,0x02,0x00,0x00,0x16,0x02,0x00,0x00, +0x25,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x9e,0x00,0x00,0x00, +0x18,0x02,0x00,0x00,0x17,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0x19,0x02,0x00,0x00,0x18,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x21,0x02,0x00,0x00, +0xe9,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x97,0x00,0x00,0x00, +0x22,0x02,0x00,0x00,0x21,0x02,0x00,0x00,0x3b,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x2a,0x02,0x00,0x00, +0xf7,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x97,0x00,0x00,0x00, +0x2b,0x02,0x00,0x00,0x2a,0x02,0x00,0x00,0x3b,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x33,0x02,0x00,0x00, +0x05,0x02,0x00,0x00,0xc2,0x00,0x05,0x00,0x97,0x00,0x00,0x00, +0x34,0x02,0x00,0x00,0x33,0x02,0x00,0x00,0x3b,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x3c,0x02,0x00,0x00, +0x13,0x02,0x00,0x00,0xc2,0x00,0x05,0x00,0x97,0x00,0x00,0x00, +0x3d,0x02,0x00,0x00,0x3c,0x02,0x00,0x00,0x3b,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x45,0x02,0x00,0x00, +0xf5,0x04,0x00,0x00,0xbf,0x00,0x00,0x00,0x41,0x00,0x06,0x00, +0xd4,0x00,0x00,0x00,0x46,0x02,0x00,0x00,0x42,0x02,0x00,0x00, +0x61,0x00,0x00,0x00,0x45,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0xc6,0x00,0x00,0x00,0x47,0x02,0x00,0x00,0x46,0x02,0x00,0x00, +0x73,0x00,0x04,0x00,0xa4,0x00,0x00,0x00,0x48,0x02,0x00,0x00, +0x47,0x02,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x4a,0x02,0x00,0x00,0x97,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x4b,0x02,0x00,0x00,0x4a,0x02,0x00,0x00, +0x41,0x00,0x08,0x00,0xe5,0x00,0x00,0x00,0x50,0x02,0x00,0x00, +0xd0,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xd3,0x00,0x00,0x00, +0x32,0x01,0x00,0x00,0x8a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0x51,0x02,0x00,0x00,0x50,0x02,0x00,0x00, +0xc7,0x00,0x05,0x00,0x97,0x00,0x00,0x00,0x53,0x02,0x00,0x00, +0x51,0x02,0x00,0x00,0xa0,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x54,0x02,0x00,0x00,0x53,0x02,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x55,0x02,0x00,0x00, +0x54,0x02,0x00,0x00,0xab,0x00,0x05,0x00,0xb9,0x00,0x00,0x00, +0x56,0x02,0x00,0x00,0x55,0x02,0x00,0x00,0x61,0x00,0x00,0x00, +0xa9,0x00,0x06,0x00,0x1b,0x00,0x00,0x00,0x58,0x02,0x00,0x00, +0x56,0x02,0x00,0x00,0x57,0x02,0x00,0x00,0x61,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x59,0x02,0x00,0x00, +0x4b,0x02,0x00,0x00,0x58,0x02,0x00,0x00,0x6f,0x00,0x04,0x00, +0xa4,0x00,0x00,0x00,0x5a,0x02,0x00,0x00,0x59,0x02,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x5f,0x02,0x00,0x00, +0x45,0x02,0x00,0x00,0x12,0x00,0x00,0x00,0x41,0x00,0x06,0x00, +0xd4,0x00,0x00,0x00,0x60,0x02,0x00,0x00,0x42,0x02,0x00,0x00, +0x61,0x00,0x00,0x00,0x5f,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0xc6,0x00,0x00,0x00,0x61,0x02,0x00,0x00,0x60,0x02,0x00,0x00, +0x73,0x00,0x04,0x00,0xa4,0x00,0x00,0x00,0x62,0x02,0x00,0x00, +0x61,0x02,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x64,0x02,0x00,0x00,0xa4,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x65,0x02,0x00,0x00,0x64,0x02,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6a,0x02,0x00,0x00, +0x8a,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x41,0x00,0x08,0x00, +0xe5,0x00,0x00,0x00,0x6b,0x02,0x00,0x00,0xd0,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,0x32,0x01,0x00,0x00, +0x6a,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0x6c,0x02,0x00,0x00,0x6b,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, +0x97,0x00,0x00,0x00,0x6e,0x02,0x00,0x00,0x6c,0x02,0x00,0x00, +0xa0,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x6f,0x02,0x00,0x00,0x6e,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x70,0x02,0x00,0x00,0x6f,0x02,0x00,0x00, +0xab,0x00,0x05,0x00,0xb9,0x00,0x00,0x00,0x71,0x02,0x00,0x00, +0x70,0x02,0x00,0x00,0x61,0x00,0x00,0x00,0xa9,0x00,0x06,0x00, +0x1b,0x00,0x00,0x00,0x72,0x02,0x00,0x00,0x71,0x02,0x00,0x00, +0x57,0x02,0x00,0x00,0x61,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x73,0x02,0x00,0x00,0x65,0x02,0x00,0x00, +0x72,0x02,0x00,0x00,0x6f,0x00,0x04,0x00,0xa4,0x00,0x00,0x00, +0x74,0x02,0x00,0x00,0x73,0x02,0x00,0x00,0x85,0x00,0x05,0x00, +0xa4,0x00,0x00,0x00,0x75,0x02,0x00,0x00,0x62,0x02,0x00,0x00, +0x74,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0xa4,0x00,0x00,0x00, +0x76,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0x48,0x02,0x00,0x00,0x5a,0x02,0x00,0x00,0x75,0x02,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7a,0x02,0x00,0x00, +0x45,0x02,0x00,0x00,0xa8,0x00,0x00,0x00,0x41,0x00,0x06,0x00, +0xd4,0x00,0x00,0x00,0x7b,0x02,0x00,0x00,0x42,0x02,0x00,0x00, +0x61,0x00,0x00,0x00,0x7a,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0xc6,0x00,0x00,0x00,0x7c,0x02,0x00,0x00,0x7b,0x02,0x00,0x00, +0x73,0x00,0x04,0x00,0xa4,0x00,0x00,0x00,0x7d,0x02,0x00,0x00, +0x7c,0x02,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x7f,0x02,0x00,0x00,0xb1,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x80,0x02,0x00,0x00,0x7f,0x02,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x85,0x02,0x00,0x00, +0x8a,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,0x41,0x00,0x08,0x00, +0xe5,0x00,0x00,0x00,0x86,0x02,0x00,0x00,0xd0,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,0x32,0x01,0x00,0x00, +0x85,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0x87,0x02,0x00,0x00,0x86,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, +0x97,0x00,0x00,0x00,0x89,0x02,0x00,0x00,0x87,0x02,0x00,0x00, +0xa0,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x8a,0x02,0x00,0x00,0x89,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x8b,0x02,0x00,0x00,0x8a,0x02,0x00,0x00, +0xab,0x00,0x05,0x00,0xb9,0x00,0x00,0x00,0x8c,0x02,0x00,0x00, +0x8b,0x02,0x00,0x00,0x61,0x00,0x00,0x00,0xa9,0x00,0x06,0x00, +0x1b,0x00,0x00,0x00,0x8d,0x02,0x00,0x00,0x8c,0x02,0x00,0x00, +0x57,0x02,0x00,0x00,0x61,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x8e,0x02,0x00,0x00,0x80,0x02,0x00,0x00, +0x8d,0x02,0x00,0x00,0x6f,0x00,0x04,0x00,0xa4,0x00,0x00,0x00, +0x8f,0x02,0x00,0x00,0x8e,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, +0xa4,0x00,0x00,0x00,0x91,0x02,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x7d,0x02,0x00,0x00,0x8f,0x02,0x00,0x00, +0x76,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x95,0x02,0x00,0x00,0x45,0x02,0x00,0x00,0xb7,0x01,0x00,0x00, +0x41,0x00,0x06,0x00,0xd4,0x00,0x00,0x00,0x96,0x02,0x00,0x00, +0x42,0x02,0x00,0x00,0x61,0x00,0x00,0x00,0x95,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0xc6,0x00,0x00,0x00,0x97,0x02,0x00,0x00, +0x96,0x02,0x00,0x00,0x73,0x00,0x04,0x00,0xa4,0x00,0x00,0x00, +0x98,0x02,0x00,0x00,0x97,0x02,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x9a,0x02,0x00,0x00,0xbf,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x9b,0x02,0x00,0x00, +0x9a,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xa0,0x02,0x00,0x00,0x8a,0x00,0x00,0x00,0xb7,0x01,0x00,0x00, +0x41,0x00,0x08,0x00,0xe5,0x00,0x00,0x00,0xa1,0x02,0x00,0x00, +0xd0,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xd3,0x00,0x00,0x00, +0x32,0x01,0x00,0x00,0xa0,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0xa2,0x02,0x00,0x00,0xa1,0x02,0x00,0x00, +0xc7,0x00,0x05,0x00,0x97,0x00,0x00,0x00,0xa4,0x02,0x00,0x00, +0xa2,0x02,0x00,0x00,0xa0,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xa5,0x02,0x00,0x00,0xa4,0x02,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xa6,0x02,0x00,0x00, +0xa5,0x02,0x00,0x00,0xab,0x00,0x05,0x00,0xb9,0x00,0x00,0x00, +0xa7,0x02,0x00,0x00,0xa6,0x02,0x00,0x00,0x61,0x00,0x00,0x00, +0xa9,0x00,0x06,0x00,0x1b,0x00,0x00,0x00,0xa8,0x02,0x00,0x00, +0xa7,0x02,0x00,0x00,0x57,0x02,0x00,0x00,0x61,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xa9,0x02,0x00,0x00, +0x9b,0x02,0x00,0x00,0xa8,0x02,0x00,0x00,0x6f,0x00,0x04,0x00, +0xa4,0x00,0x00,0x00,0xaa,0x02,0x00,0x00,0xa9,0x02,0x00,0x00, +0x0c,0x00,0x08,0x00,0xa4,0x00,0x00,0x00,0xac,0x02,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x98,0x02,0x00,0x00, +0xaa,0x02,0x00,0x00,0x91,0x02,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xb1,0x02,0x00,0x00,0x45,0x02,0x00,0x00, +0x8c,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xd4,0x00,0x00,0x00, +0xb2,0x02,0x00,0x00,0x42,0x02,0x00,0x00,0x61,0x00,0x00,0x00, +0xb1,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xc6,0x00,0x00,0x00, +0xb3,0x02,0x00,0x00,0xb2,0x02,0x00,0x00,0x73,0x00,0x04,0x00, +0xa4,0x00,0x00,0x00,0xb4,0x02,0x00,0x00,0xb3,0x02,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xb6,0x02,0x00,0x00, +0xc7,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0xb7,0x02,0x00,0x00,0xb6,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0xbd,0x02,0x00,0x00,0x50,0x02,0x00,0x00, +0xc4,0x00,0x05,0x00,0x97,0x00,0x00,0x00,0xbf,0x02,0x00,0x00, +0xa0,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,0xc7,0x00,0x05,0x00, +0x97,0x00,0x00,0x00,0xc0,0x02,0x00,0x00,0xbd,0x02,0x00,0x00, +0xbf,0x02,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xc1,0x02,0x00,0x00,0xc0,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0xc2,0x02,0x00,0x00,0xc1,0x02,0x00,0x00, +0xab,0x00,0x05,0x00,0xb9,0x00,0x00,0x00,0xc3,0x02,0x00,0x00, +0xc2,0x02,0x00,0x00,0x61,0x00,0x00,0x00,0xa9,0x00,0x06,0x00, +0x1b,0x00,0x00,0x00,0xc4,0x02,0x00,0x00,0xc3,0x02,0x00,0x00, +0x57,0x02,0x00,0x00,0x61,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0xc5,0x02,0x00,0x00,0xb7,0x02,0x00,0x00, +0xc4,0x02,0x00,0x00,0x6f,0x00,0x04,0x00,0xa4,0x00,0x00,0x00, +0xc6,0x02,0x00,0x00,0xc5,0x02,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xcc,0x02,0x00,0x00,0x45,0x02,0x00,0x00, +0xcb,0x02,0x00,0x00,0x41,0x00,0x06,0x00,0xd4,0x00,0x00,0x00, +0xcd,0x02,0x00,0x00,0x42,0x02,0x00,0x00,0x61,0x00,0x00,0x00, +0xcc,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xc6,0x00,0x00,0x00, +0xce,0x02,0x00,0x00,0xcd,0x02,0x00,0x00,0x73,0x00,0x04,0x00, +0xa4,0x00,0x00,0x00,0xcf,0x02,0x00,0x00,0xce,0x02,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xd1,0x02,0x00,0x00, +0xd0,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0xd2,0x02,0x00,0x00,0xd1,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0xd9,0x02,0x00,0x00,0x6b,0x02,0x00,0x00, +0xc7,0x00,0x05,0x00,0x97,0x00,0x00,0x00,0xdc,0x02,0x00,0x00, +0xd9,0x02,0x00,0x00,0xbf,0x02,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xdd,0x02,0x00,0x00,0xdc,0x02,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xde,0x02,0x00,0x00, +0xdd,0x02,0x00,0x00,0xab,0x00,0x05,0x00,0xb9,0x00,0x00,0x00, +0xdf,0x02,0x00,0x00,0xde,0x02,0x00,0x00,0x61,0x00,0x00,0x00, +0xa9,0x00,0x06,0x00,0x1b,0x00,0x00,0x00,0xe0,0x02,0x00,0x00, +0xdf,0x02,0x00,0x00,0x57,0x02,0x00,0x00,0x61,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xe1,0x02,0x00,0x00, +0xd2,0x02,0x00,0x00,0xe0,0x02,0x00,0x00,0x6f,0x00,0x04,0x00, +0xa4,0x00,0x00,0x00,0xe2,0x02,0x00,0x00,0xe1,0x02,0x00,0x00, +0x85,0x00,0x05,0x00,0xa4,0x00,0x00,0x00,0xe3,0x02,0x00,0x00, +0xcf,0x02,0x00,0x00,0xe2,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, +0xa4,0x00,0x00,0x00,0xe4,0x02,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0xb4,0x02,0x00,0x00,0xc6,0x02,0x00,0x00, +0xe3,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xe9,0x02,0x00,0x00,0x45,0x02,0x00,0x00,0xe8,0x02,0x00,0x00, +0x41,0x00,0x06,0x00,0xd4,0x00,0x00,0x00,0xea,0x02,0x00,0x00, +0x42,0x02,0x00,0x00,0x61,0x00,0x00,0x00,0xe9,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0xc6,0x00,0x00,0x00,0xeb,0x02,0x00,0x00, +0xea,0x02,0x00,0x00,0x73,0x00,0x04,0x00,0xa4,0x00,0x00,0x00, +0xec,0x02,0x00,0x00,0xeb,0x02,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xee,0x02,0x00,0x00,0xd9,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xef,0x02,0x00,0x00, +0xee,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0xf6,0x02,0x00,0x00,0x86,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, +0x97,0x00,0x00,0x00,0xf9,0x02,0x00,0x00,0xf6,0x02,0x00,0x00, +0xbf,0x02,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xfa,0x02,0x00,0x00,0xf9,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0xfb,0x02,0x00,0x00,0xfa,0x02,0x00,0x00, +0xab,0x00,0x05,0x00,0xb9,0x00,0x00,0x00,0xfc,0x02,0x00,0x00, +0xfb,0x02,0x00,0x00,0x61,0x00,0x00,0x00,0xa9,0x00,0x06,0x00, +0x1b,0x00,0x00,0x00,0xfd,0x02,0x00,0x00,0xfc,0x02,0x00,0x00, +0x57,0x02,0x00,0x00,0x61,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0xfe,0x02,0x00,0x00,0xef,0x02,0x00,0x00, +0xfd,0x02,0x00,0x00,0x6f,0x00,0x04,0x00,0xa4,0x00,0x00,0x00, +0xff,0x02,0x00,0x00,0xfe,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, +0xa4,0x00,0x00,0x00,0x01,0x03,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0xec,0x02,0x00,0x00,0xff,0x02,0x00,0x00, +0xe4,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x06,0x03,0x00,0x00,0x45,0x02,0x00,0x00,0x05,0x03,0x00,0x00, +0x41,0x00,0x06,0x00,0xd4,0x00,0x00,0x00,0x07,0x03,0x00,0x00, +0x42,0x02,0x00,0x00,0x61,0x00,0x00,0x00,0x06,0x03,0x00,0x00, +0x3d,0x00,0x04,0x00,0xc6,0x00,0x00,0x00,0x08,0x03,0x00,0x00, +0x07,0x03,0x00,0x00,0x73,0x00,0x04,0x00,0xa4,0x00,0x00,0x00, +0x09,0x03,0x00,0x00,0x08,0x03,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x0b,0x03,0x00,0x00,0xe2,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x0c,0x03,0x00,0x00, +0x0b,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0x13,0x03,0x00,0x00,0xa1,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, +0x97,0x00,0x00,0x00,0x16,0x03,0x00,0x00,0x13,0x03,0x00,0x00, +0xbf,0x02,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x17,0x03,0x00,0x00,0x16,0x03,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x18,0x03,0x00,0x00,0x17,0x03,0x00,0x00, +0xab,0x00,0x05,0x00,0xb9,0x00,0x00,0x00,0x19,0x03,0x00,0x00, +0x18,0x03,0x00,0x00,0x61,0x00,0x00,0x00,0xa9,0x00,0x06,0x00, +0x1b,0x00,0x00,0x00,0x1a,0x03,0x00,0x00,0x19,0x03,0x00,0x00, +0x57,0x02,0x00,0x00,0x61,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x1b,0x03,0x00,0x00,0x0c,0x03,0x00,0x00, +0x1a,0x03,0x00,0x00,0x6f,0x00,0x04,0x00,0xa4,0x00,0x00,0x00, +0x1c,0x03,0x00,0x00,0x1b,0x03,0x00,0x00,0x0c,0x00,0x08,0x00, +0xa4,0x00,0x00,0x00,0x1e,0x03,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x09,0x03,0x00,0x00,0x1c,0x03,0x00,0x00, +0x01,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x22,0x03,0x00,0x00,0xf5,0x04,0x00,0x00,0xc3,0x00,0x00,0x00, +0x41,0x00,0x06,0x00,0xd4,0x00,0x00,0x00,0x23,0x03,0x00,0x00, +0x42,0x02,0x00,0x00,0x61,0x00,0x00,0x00,0x22,0x03,0x00,0x00, +0x3d,0x00,0x04,0x00,0xc6,0x00,0x00,0x00,0x24,0x03,0x00,0x00, +0x23,0x03,0x00,0x00,0x73,0x00,0x04,0x00,0xa4,0x00,0x00,0x00, +0x25,0x03,0x00,0x00,0x24,0x03,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x27,0x03,0x00,0x00,0xef,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x28,0x03,0x00,0x00, +0x27,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0x2e,0x03,0x00,0x00,0x50,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, +0x97,0x00,0x00,0x00,0x30,0x03,0x00,0x00,0x2e,0x03,0x00,0x00, +0xa3,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x31,0x03,0x00,0x00,0x30,0x03,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x32,0x03,0x00,0x00,0x31,0x03,0x00,0x00, +0xab,0x00,0x05,0x00,0xb9,0x00,0x00,0x00,0x33,0x03,0x00,0x00, +0x32,0x03,0x00,0x00,0x61,0x00,0x00,0x00,0xa9,0x00,0x06,0x00, +0x1b,0x00,0x00,0x00,0x34,0x03,0x00,0x00,0x33,0x03,0x00,0x00, +0x57,0x02,0x00,0x00,0x61,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x35,0x03,0x00,0x00,0x28,0x03,0x00,0x00, +0x34,0x03,0x00,0x00,0x6f,0x00,0x04,0x00,0xa4,0x00,0x00,0x00, +0x36,0x03,0x00,0x00,0x35,0x03,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x3b,0x03,0x00,0x00,0x22,0x03,0x00,0x00, +0x12,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xd4,0x00,0x00,0x00, +0x3c,0x03,0x00,0x00,0x42,0x02,0x00,0x00,0x61,0x00,0x00,0x00, +0x3b,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0xc6,0x00,0x00,0x00, +0x3d,0x03,0x00,0x00,0x3c,0x03,0x00,0x00,0x73,0x00,0x04,0x00, +0xa4,0x00,0x00,0x00,0x3e,0x03,0x00,0x00,0x3d,0x03,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x40,0x03,0x00,0x00, +0xfd,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x41,0x03,0x00,0x00,0x40,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0x48,0x03,0x00,0x00,0x6b,0x02,0x00,0x00, +0xc7,0x00,0x05,0x00,0x97,0x00,0x00,0x00,0x4a,0x03,0x00,0x00, +0x48,0x03,0x00,0x00,0xa3,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x4b,0x03,0x00,0x00,0x4a,0x03,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x4c,0x03,0x00,0x00, +0x4b,0x03,0x00,0x00,0xab,0x00,0x05,0x00,0xb9,0x00,0x00,0x00, +0x4d,0x03,0x00,0x00,0x4c,0x03,0x00,0x00,0x61,0x00,0x00,0x00, +0xa9,0x00,0x06,0x00,0x1b,0x00,0x00,0x00,0x4e,0x03,0x00,0x00, +0x4d,0x03,0x00,0x00,0x57,0x02,0x00,0x00,0x61,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x4f,0x03,0x00,0x00, +0x41,0x03,0x00,0x00,0x4e,0x03,0x00,0x00,0x6f,0x00,0x04,0x00, +0xa4,0x00,0x00,0x00,0x50,0x03,0x00,0x00,0x4f,0x03,0x00,0x00, +0x85,0x00,0x05,0x00,0xa4,0x00,0x00,0x00,0x51,0x03,0x00,0x00, +0x3e,0x03,0x00,0x00,0x50,0x03,0x00,0x00,0x0c,0x00,0x08,0x00, +0xa4,0x00,0x00,0x00,0x52,0x03,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x25,0x03,0x00,0x00,0x36,0x03,0x00,0x00, +0x51,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x56,0x03,0x00,0x00,0x22,0x03,0x00,0x00,0xa8,0x00,0x00,0x00, +0x41,0x00,0x06,0x00,0xd4,0x00,0x00,0x00,0x57,0x03,0x00,0x00, +0x42,0x02,0x00,0x00,0x61,0x00,0x00,0x00,0x56,0x03,0x00,0x00, +0x3d,0x00,0x04,0x00,0xc6,0x00,0x00,0x00,0x58,0x03,0x00,0x00, +0x57,0x03,0x00,0x00,0x73,0x00,0x04,0x00,0xa4,0x00,0x00,0x00, +0x59,0x03,0x00,0x00,0x58,0x03,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x5b,0x03,0x00,0x00,0x0b,0x02,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x5c,0x03,0x00,0x00, +0x5b,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0x63,0x03,0x00,0x00,0x86,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, +0x97,0x00,0x00,0x00,0x65,0x03,0x00,0x00,0x63,0x03,0x00,0x00, +0xa3,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x66,0x03,0x00,0x00,0x65,0x03,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x67,0x03,0x00,0x00,0x66,0x03,0x00,0x00, +0xab,0x00,0x05,0x00,0xb9,0x00,0x00,0x00,0x68,0x03,0x00,0x00, +0x67,0x03,0x00,0x00,0x61,0x00,0x00,0x00,0xa9,0x00,0x06,0x00, +0x1b,0x00,0x00,0x00,0x69,0x03,0x00,0x00,0x68,0x03,0x00,0x00, +0x57,0x02,0x00,0x00,0x61,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x6a,0x03,0x00,0x00,0x5c,0x03,0x00,0x00, +0x69,0x03,0x00,0x00,0x6f,0x00,0x04,0x00,0xa4,0x00,0x00,0x00, +0x6b,0x03,0x00,0x00,0x6a,0x03,0x00,0x00,0x0c,0x00,0x08,0x00, +0xa4,0x00,0x00,0x00,0x6d,0x03,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x59,0x03,0x00,0x00,0x6b,0x03,0x00,0x00, +0x52,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x71,0x03,0x00,0x00,0x22,0x03,0x00,0x00,0xb7,0x01,0x00,0x00, +0x41,0x00,0x06,0x00,0xd4,0x00,0x00,0x00,0x72,0x03,0x00,0x00, +0x42,0x02,0x00,0x00,0x61,0x00,0x00,0x00,0x71,0x03,0x00,0x00, +0x3d,0x00,0x04,0x00,0xc6,0x00,0x00,0x00,0x73,0x03,0x00,0x00, +0x72,0x03,0x00,0x00,0x73,0x00,0x04,0x00,0xa4,0x00,0x00,0x00, +0x74,0x03,0x00,0x00,0x73,0x03,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x76,0x03,0x00,0x00,0x19,0x02,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x77,0x03,0x00,0x00, +0x76,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0x7e,0x03,0x00,0x00,0xa1,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, +0x97,0x00,0x00,0x00,0x80,0x03,0x00,0x00,0x7e,0x03,0x00,0x00, +0xa3,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x81,0x03,0x00,0x00,0x80,0x03,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x82,0x03,0x00,0x00,0x81,0x03,0x00,0x00, +0xab,0x00,0x05,0x00,0xb9,0x00,0x00,0x00,0x83,0x03,0x00,0x00, +0x82,0x03,0x00,0x00,0x61,0x00,0x00,0x00,0xa9,0x00,0x06,0x00, +0x1b,0x00,0x00,0x00,0x84,0x03,0x00,0x00,0x83,0x03,0x00,0x00, +0x57,0x02,0x00,0x00,0x61,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x85,0x03,0x00,0x00,0x77,0x03,0x00,0x00, +0x84,0x03,0x00,0x00,0x6f,0x00,0x04,0x00,0xa4,0x00,0x00,0x00, +0x86,0x03,0x00,0x00,0x85,0x03,0x00,0x00,0x0c,0x00,0x08,0x00, +0xa4,0x00,0x00,0x00,0x88,0x03,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x74,0x03,0x00,0x00,0x86,0x03,0x00,0x00, +0x6d,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x8d,0x03,0x00,0x00,0x22,0x03,0x00,0x00,0x8c,0x00,0x00,0x00, +0x41,0x00,0x06,0x00,0xd4,0x00,0x00,0x00,0x8e,0x03,0x00,0x00, +0x42,0x02,0x00,0x00,0x61,0x00,0x00,0x00,0x8d,0x03,0x00,0x00, +0x3d,0x00,0x04,0x00,0xc6,0x00,0x00,0x00,0x8f,0x03,0x00,0x00, +0x8e,0x03,0x00,0x00,0x73,0x00,0x04,0x00,0xa4,0x00,0x00,0x00, +0x90,0x03,0x00,0x00,0x8f,0x03,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x92,0x03,0x00,0x00,0x22,0x02,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x93,0x03,0x00,0x00, +0x92,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0x99,0x03,0x00,0x00,0x50,0x02,0x00,0x00,0xc4,0x00,0x05,0x00, +0x97,0x00,0x00,0x00,0x9b,0x03,0x00,0x00,0xa3,0x00,0x00,0x00, +0x9a,0x00,0x00,0x00,0xc7,0x00,0x05,0x00,0x97,0x00,0x00,0x00, +0x9c,0x03,0x00,0x00,0x99,0x03,0x00,0x00,0x9b,0x03,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x9d,0x03,0x00,0x00, +0x9c,0x03,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x9e,0x03,0x00,0x00,0x9d,0x03,0x00,0x00,0xab,0x00,0x05,0x00, +0xb9,0x00,0x00,0x00,0x9f,0x03,0x00,0x00,0x9e,0x03,0x00,0x00, +0x61,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,0x1b,0x00,0x00,0x00, +0xa0,0x03,0x00,0x00,0x9f,0x03,0x00,0x00,0x57,0x02,0x00,0x00, +0x61,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0xa1,0x03,0x00,0x00,0x93,0x03,0x00,0x00,0xa0,0x03,0x00,0x00, +0x6f,0x00,0x04,0x00,0xa4,0x00,0x00,0x00,0xa2,0x03,0x00,0x00, +0xa1,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xa7,0x03,0x00,0x00,0x22,0x03,0x00,0x00,0xcb,0x02,0x00,0x00, +0x41,0x00,0x06,0x00,0xd4,0x00,0x00,0x00,0xa8,0x03,0x00,0x00, +0x42,0x02,0x00,0x00,0x61,0x00,0x00,0x00,0xa7,0x03,0x00,0x00, +0x3d,0x00,0x04,0x00,0xc6,0x00,0x00,0x00,0xa9,0x03,0x00,0x00, +0xa8,0x03,0x00,0x00,0x73,0x00,0x04,0x00,0xa4,0x00,0x00,0x00, +0xaa,0x03,0x00,0x00,0xa9,0x03,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xac,0x03,0x00,0x00,0x2b,0x02,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xad,0x03,0x00,0x00, +0xac,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0xb4,0x03,0x00,0x00,0x6b,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, +0x97,0x00,0x00,0x00,0xb7,0x03,0x00,0x00,0xb4,0x03,0x00,0x00, +0x9b,0x03,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xb8,0x03,0x00,0x00,0xb7,0x03,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0xb9,0x03,0x00,0x00,0xb8,0x03,0x00,0x00, +0xab,0x00,0x05,0x00,0xb9,0x00,0x00,0x00,0xba,0x03,0x00,0x00, +0xb9,0x03,0x00,0x00,0x61,0x00,0x00,0x00,0xa9,0x00,0x06,0x00, +0x1b,0x00,0x00,0x00,0xbb,0x03,0x00,0x00,0xba,0x03,0x00,0x00, +0x57,0x02,0x00,0x00,0x61,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0xbc,0x03,0x00,0x00,0xad,0x03,0x00,0x00, +0xbb,0x03,0x00,0x00,0x6f,0x00,0x04,0x00,0xa4,0x00,0x00,0x00, +0xbd,0x03,0x00,0x00,0xbc,0x03,0x00,0x00,0x85,0x00,0x05,0x00, +0xa4,0x00,0x00,0x00,0xbe,0x03,0x00,0x00,0xaa,0x03,0x00,0x00, +0xbd,0x03,0x00,0x00,0x0c,0x00,0x08,0x00,0xa4,0x00,0x00,0x00, +0xbf,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0x90,0x03,0x00,0x00,0xa2,0x03,0x00,0x00,0xbe,0x03,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc3,0x03,0x00,0x00, +0x22,0x03,0x00,0x00,0xe8,0x02,0x00,0x00,0x41,0x00,0x06,0x00, +0xd4,0x00,0x00,0x00,0xc4,0x03,0x00,0x00,0x42,0x02,0x00,0x00, +0x61,0x00,0x00,0x00,0xc3,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, +0xc6,0x00,0x00,0x00,0xc5,0x03,0x00,0x00,0xc4,0x03,0x00,0x00, +0x73,0x00,0x04,0x00,0xa4,0x00,0x00,0x00,0xc6,0x03,0x00,0x00, +0xc5,0x03,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xc8,0x03,0x00,0x00,0x34,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0xc9,0x03,0x00,0x00,0xc8,0x03,0x00,0x00, +0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0xd0,0x03,0x00,0x00, +0x86,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x97,0x00,0x00,0x00, +0xd3,0x03,0x00,0x00,0xd0,0x03,0x00,0x00,0x9b,0x03,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xd4,0x03,0x00,0x00, +0xd3,0x03,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0xd5,0x03,0x00,0x00,0xd4,0x03,0x00,0x00,0xab,0x00,0x05,0x00, +0xb9,0x00,0x00,0x00,0xd6,0x03,0x00,0x00,0xd5,0x03,0x00,0x00, +0x61,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,0x1b,0x00,0x00,0x00, +0xd7,0x03,0x00,0x00,0xd6,0x03,0x00,0x00,0x57,0x02,0x00,0x00, +0x61,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0xd8,0x03,0x00,0x00,0xc9,0x03,0x00,0x00,0xd7,0x03,0x00,0x00, +0x6f,0x00,0x04,0x00,0xa4,0x00,0x00,0x00,0xd9,0x03,0x00,0x00, +0xd8,0x03,0x00,0x00,0x0c,0x00,0x08,0x00,0xa4,0x00,0x00,0x00, +0xdb,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0xc6,0x03,0x00,0x00,0xd9,0x03,0x00,0x00,0xbf,0x03,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdf,0x03,0x00,0x00, +0x22,0x03,0x00,0x00,0x05,0x03,0x00,0x00,0x41,0x00,0x06,0x00, +0xd4,0x00,0x00,0x00,0xe0,0x03,0x00,0x00,0x42,0x02,0x00,0x00, +0x61,0x00,0x00,0x00,0xdf,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, +0xc6,0x00,0x00,0x00,0xe1,0x03,0x00,0x00,0xe0,0x03,0x00,0x00, +0x73,0x00,0x04,0x00,0xa4,0x00,0x00,0x00,0xe2,0x03,0x00,0x00, +0xe1,0x03,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xe4,0x03,0x00,0x00,0x3d,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0xe5,0x03,0x00,0x00,0xe4,0x03,0x00,0x00, +0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0xec,0x03,0x00,0x00, +0xa1,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x97,0x00,0x00,0x00, +0xef,0x03,0x00,0x00,0xec,0x03,0x00,0x00,0x9b,0x03,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xf0,0x03,0x00,0x00, +0xef,0x03,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0xf1,0x03,0x00,0x00,0xf0,0x03,0x00,0x00,0xab,0x00,0x05,0x00, +0xb9,0x00,0x00,0x00,0xf2,0x03,0x00,0x00,0xf1,0x03,0x00,0x00, +0x61,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,0x1b,0x00,0x00,0x00, +0xf3,0x03,0x00,0x00,0xf2,0x03,0x00,0x00,0x57,0x02,0x00,0x00, +0x61,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0xf4,0x03,0x00,0x00,0xe5,0x03,0x00,0x00,0xf3,0x03,0x00,0x00, +0x6f,0x00,0x04,0x00,0xa4,0x00,0x00,0x00,0xf5,0x03,0x00,0x00, +0xf4,0x03,0x00,0x00,0x0c,0x00,0x08,0x00,0xa4,0x00,0x00,0x00, +0xf7,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0xe2,0x03,0x00,0x00,0xf5,0x03,0x00,0x00,0xdb,0x03,0x00,0x00, +0x3d,0x00,0x04,0x00,0xc6,0x00,0x00,0x00,0xfd,0x03,0x00,0x00, +0x46,0x02,0x00,0x00,0x73,0x00,0x04,0x00,0xa4,0x00,0x00,0x00, +0xfe,0x03,0x00,0x00,0xfd,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, +0xc6,0x00,0x00,0x00,0x04,0x04,0x00,0x00,0x60,0x02,0x00,0x00, +0x73,0x00,0x04,0x00,0xa4,0x00,0x00,0x00,0x05,0x04,0x00,0x00, +0x04,0x04,0x00,0x00,0x81,0x00,0x05,0x00,0xa4,0x00,0x00,0x00, +0x06,0x04,0x00,0x00,0xfe,0x03,0x00,0x00,0x05,0x04,0x00,0x00, +0x3d,0x00,0x04,0x00,0xc6,0x00,0x00,0x00,0x0c,0x04,0x00,0x00, +0x7b,0x02,0x00,0x00,0x73,0x00,0x04,0x00,0xa4,0x00,0x00,0x00, +0x0d,0x04,0x00,0x00,0x0c,0x04,0x00,0x00,0x81,0x00,0x05,0x00, +0xa4,0x00,0x00,0x00,0x0e,0x04,0x00,0x00,0x06,0x04,0x00,0x00, +0x0d,0x04,0x00,0x00,0x3d,0x00,0x04,0x00,0xc6,0x00,0x00,0x00, +0x14,0x04,0x00,0x00,0x96,0x02,0x00,0x00,0x73,0x00,0x04,0x00, +0xa4,0x00,0x00,0x00,0x15,0x04,0x00,0x00,0x14,0x04,0x00,0x00, +0x81,0x00,0x05,0x00,0xa4,0x00,0x00,0x00,0x16,0x04,0x00,0x00, +0x0e,0x04,0x00,0x00,0x15,0x04,0x00,0x00,0x70,0x00,0x04,0x00, +0xa4,0x00,0x00,0x00,0x18,0x04,0x00,0x00,0x09,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0xc6,0x00,0x00,0x00,0x1f,0x04,0x00,0x00, +0xb2,0x02,0x00,0x00,0x73,0x00,0x04,0x00,0xa4,0x00,0x00,0x00, +0x20,0x04,0x00,0x00,0x1f,0x04,0x00,0x00,0x3d,0x00,0x04,0x00, +0xc6,0x00,0x00,0x00,0x26,0x04,0x00,0x00,0xcd,0x02,0x00,0x00, +0x73,0x00,0x04,0x00,0xa4,0x00,0x00,0x00,0x27,0x04,0x00,0x00, +0x26,0x04,0x00,0x00,0x81,0x00,0x05,0x00,0xa4,0x00,0x00,0x00, +0x28,0x04,0x00,0x00,0x20,0x04,0x00,0x00,0x27,0x04,0x00,0x00, +0x3d,0x00,0x04,0x00,0xc6,0x00,0x00,0x00,0x2e,0x04,0x00,0x00, +0xea,0x02,0x00,0x00,0x73,0x00,0x04,0x00,0xa4,0x00,0x00,0x00, +0x2f,0x04,0x00,0x00,0x2e,0x04,0x00,0x00,0x81,0x00,0x05,0x00, +0xa4,0x00,0x00,0x00,0x30,0x04,0x00,0x00,0x28,0x04,0x00,0x00, +0x2f,0x04,0x00,0x00,0x3d,0x00,0x04,0x00,0xc6,0x00,0x00,0x00, +0x36,0x04,0x00,0x00,0x07,0x03,0x00,0x00,0x73,0x00,0x04,0x00, +0xa4,0x00,0x00,0x00,0x37,0x04,0x00,0x00,0x36,0x04,0x00,0x00, +0x81,0x00,0x05,0x00,0xa4,0x00,0x00,0x00,0x38,0x04,0x00,0x00, +0x30,0x04,0x00,0x00,0x37,0x04,0x00,0x00,0x70,0x00,0x04,0x00, +0xa4,0x00,0x00,0x00,0x3a,0x04,0x00,0x00,0x18,0x01,0x00,0x00, +0x85,0x00,0x05,0x00,0xa4,0x00,0x00,0x00,0x3b,0x04,0x00,0x00, +0x38,0x04,0x00,0x00,0x3a,0x04,0x00,0x00,0x0c,0x00,0x08,0x00, +0xa4,0x00,0x00,0x00,0x3c,0x04,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x16,0x04,0x00,0x00,0x18,0x04,0x00,0x00, +0x3b,0x04,0x00,0x00,0x3d,0x00,0x04,0x00,0xc6,0x00,0x00,0x00, +0x41,0x04,0x00,0x00,0x23,0x03,0x00,0x00,0x73,0x00,0x04,0x00, +0xa4,0x00,0x00,0x00,0x42,0x04,0x00,0x00,0x41,0x04,0x00,0x00, +0x3d,0x00,0x04,0x00,0xc6,0x00,0x00,0x00,0x48,0x04,0x00,0x00, +0x3c,0x03,0x00,0x00,0x73,0x00,0x04,0x00,0xa4,0x00,0x00,0x00, +0x49,0x04,0x00,0x00,0x48,0x04,0x00,0x00,0x81,0x00,0x05,0x00, +0xa4,0x00,0x00,0x00,0x4a,0x04,0x00,0x00,0x42,0x04,0x00,0x00, +0x49,0x04,0x00,0x00,0x3d,0x00,0x04,0x00,0xc6,0x00,0x00,0x00, +0x50,0x04,0x00,0x00,0x57,0x03,0x00,0x00,0x73,0x00,0x04,0x00, +0xa4,0x00,0x00,0x00,0x51,0x04,0x00,0x00,0x50,0x04,0x00,0x00, +0x81,0x00,0x05,0x00,0xa4,0x00,0x00,0x00,0x52,0x04,0x00,0x00, +0x4a,0x04,0x00,0x00,0x51,0x04,0x00,0x00,0x3d,0x00,0x04,0x00, +0xc6,0x00,0x00,0x00,0x58,0x04,0x00,0x00,0x72,0x03,0x00,0x00, +0x73,0x00,0x04,0x00,0xa4,0x00,0x00,0x00,0x59,0x04,0x00,0x00, +0x58,0x04,0x00,0x00,0x81,0x00,0x05,0x00,0xa4,0x00,0x00,0x00, +0x5a,0x04,0x00,0x00,0x52,0x04,0x00,0x00,0x59,0x04,0x00,0x00, +0x70,0x00,0x04,0x00,0xa4,0x00,0x00,0x00,0x5c,0x04,0x00,0x00, +0x6e,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0xa4,0x00,0x00,0x00, +0x5e,0x04,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0x5a,0x04,0x00,0x00,0x5c,0x04,0x00,0x00,0x3c,0x04,0x00,0x00, +0x3d,0x00,0x04,0x00,0xc6,0x00,0x00,0x00,0x64,0x04,0x00,0x00, +0x8e,0x03,0x00,0x00,0x73,0x00,0x04,0x00,0xa4,0x00,0x00,0x00, +0x65,0x04,0x00,0x00,0x64,0x04,0x00,0x00,0x3d,0x00,0x04,0x00, +0xc6,0x00,0x00,0x00,0x6b,0x04,0x00,0x00,0xa8,0x03,0x00,0x00, +0x73,0x00,0x04,0x00,0xa4,0x00,0x00,0x00,0x6c,0x04,0x00,0x00, +0x6b,0x04,0x00,0x00,0x81,0x00,0x05,0x00,0xa4,0x00,0x00,0x00, +0x6d,0x04,0x00,0x00,0x65,0x04,0x00,0x00,0x6c,0x04,0x00,0x00, +0x3d,0x00,0x04,0x00,0xc6,0x00,0x00,0x00,0x73,0x04,0x00,0x00, +0xc4,0x03,0x00,0x00,0x73,0x00,0x04,0x00,0xa4,0x00,0x00,0x00, +0x74,0x04,0x00,0x00,0x73,0x04,0x00,0x00,0x81,0x00,0x05,0x00, +0xa4,0x00,0x00,0x00,0x75,0x04,0x00,0x00,0x6d,0x04,0x00,0x00, +0x74,0x04,0x00,0x00,0x3d,0x00,0x04,0x00,0xc6,0x00,0x00,0x00, +0x7b,0x04,0x00,0x00,0xe0,0x03,0x00,0x00,0x73,0x00,0x04,0x00, +0xa4,0x00,0x00,0x00,0x7c,0x04,0x00,0x00,0x7b,0x04,0x00,0x00, +0x81,0x00,0x05,0x00,0xa4,0x00,0x00,0x00,0x7d,0x04,0x00,0x00, +0x75,0x04,0x00,0x00,0x7c,0x04,0x00,0x00,0x70,0x00,0x04,0x00, +0xa4,0x00,0x00,0x00,0x7f,0x04,0x00,0x00,0x8a,0x01,0x00,0x00, +0x0c,0x00,0x08,0x00,0xa4,0x00,0x00,0x00,0x81,0x04,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x7d,0x04,0x00,0x00, +0x7f,0x04,0x00,0x00,0x5e,0x04,0x00,0x00,0x70,0x00,0x04,0x00, +0xa4,0x00,0x00,0x00,0x89,0x04,0x00,0x00,0xed,0x00,0x00,0x00, +0x70,0x00,0x04,0x00,0xa4,0x00,0x00,0x00,0x8d,0x04,0x00,0x00, +0xfb,0x00,0x00,0x00,0x85,0x00,0x05,0x00,0xa4,0x00,0x00,0x00, +0x8e,0x04,0x00,0x00,0x1e,0x03,0x00,0x00,0x8d,0x04,0x00,0x00, +0x0c,0x00,0x08,0x00,0xa4,0x00,0x00,0x00,0x8f,0x04,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xac,0x02,0x00,0x00, +0x89,0x04,0x00,0x00,0x8e,0x04,0x00,0x00,0x70,0x00,0x04,0x00, +0xa4,0x00,0x00,0x00,0x92,0x04,0x00,0x00,0x36,0x01,0x00,0x00, +0x0c,0x00,0x08,0x00,0xa4,0x00,0x00,0x00,0x94,0x04,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x88,0x03,0x00,0x00, +0x92,0x04,0x00,0x00,0x8f,0x04,0x00,0x00,0x70,0x00,0x04,0x00, +0xa4,0x00,0x00,0x00,0x97,0x04,0x00,0x00,0x52,0x01,0x00,0x00, +0x0c,0x00,0x08,0x00,0xa4,0x00,0x00,0x00,0x99,0x04,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xf7,0x03,0x00,0x00, +0x97,0x04,0x00,0x00,0x94,0x04,0x00,0x00,0x85,0x00,0x05,0x00, +0xa4,0x00,0x00,0x00,0x9d,0x04,0x00,0x00,0xde,0x00,0x00,0x00, +0x81,0x04,0x00,0x00,0x7f,0x00,0x04,0x00,0xa4,0x00,0x00,0x00, +0xfe,0x04,0x00,0x00,0x9d,0x04,0x00,0x00,0x0c,0x00,0x08,0x00, +0xa4,0x00,0x00,0x00,0x9e,0x04,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0xd7,0x00,0x00,0x00,0x99,0x04,0x00,0x00, +0xfe,0x04,0x00,0x00,0x3d,0x00,0x04,0x00,0xa4,0x00,0x00,0x00, +0xa0,0x04,0x00,0x00,0xaf,0x00,0x00,0x00,0x81,0x00,0x05,0x00, +0xa4,0x00,0x00,0x00,0xa1,0x04,0x00,0x00,0xa0,0x04,0x00,0x00, +0x9e,0x04,0x00,0x00,0x3e,0x00,0x03,0x00,0xaf,0x00,0x00,0x00, +0xa1,0x04,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xa4,0x04,0x00,0x00,0xfa,0x04,0x00,0x00,0x51,0x00,0x00,0x00, +0xf9,0x00,0x02,0x00,0xb2,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xb4,0x00,0x00,0x00,0xe0,0x00,0x04,0x00,0x51,0x00,0x00,0x00, +0x51,0x00,0x00,0x00,0xa5,0x04,0x00,0x00,0xf9,0x00,0x02,0x00, +0xa7,0x04,0x00,0x00,0xf8,0x00,0x02,0x00,0xa7,0x04,0x00,0x00, +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xfb,0x04,0x00,0x00, +0xa8,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,0xbe,0x04,0x00,0x00, +0xaa,0x04,0x00,0x00,0xac,0x00,0x05,0x00,0xb9,0x00,0x00,0x00, +0xad,0x04,0x00,0x00,0xfb,0x04,0x00,0x00,0x4b,0x00,0x00,0x00, +0xf6,0x00,0x04,0x00,0xa9,0x04,0x00,0x00,0xaa,0x04,0x00,0x00, +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xad,0x04,0x00,0x00, +0xa8,0x04,0x00,0x00,0xa9,0x04,0x00,0x00,0xf8,0x00,0x02,0x00, +0xa8,0x04,0x00,0x00,0xb0,0x00,0x05,0x00,0xb9,0x00,0x00,0x00, +0xb0,0x04,0x00,0x00,0x71,0x00,0x00,0x00,0xfb,0x04,0x00,0x00, +0xf7,0x00,0x03,0x00,0xb2,0x04,0x00,0x00,0x00,0x00,0x00,0x00, +0xfa,0x00,0x04,0x00,0xb0,0x04,0x00,0x00,0xb1,0x04,0x00,0x00, +0xb2,0x04,0x00,0x00,0xf8,0x00,0x02,0x00,0xb1,0x04,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb6,0x04,0x00,0x00, +0x71,0x00,0x00,0x00,0xfb,0x04,0x00,0x00,0x41,0x00,0x05,0x00, +0xae,0x00,0x00,0x00,0xb7,0x04,0x00,0x00,0xa7,0x00,0x00,0x00, +0xb6,0x04,0x00,0x00,0x3d,0x00,0x04,0x00,0xa4,0x00,0x00,0x00, +0xb8,0x04,0x00,0x00,0xb7,0x04,0x00,0x00,0x41,0x00,0x05,0x00, +0xae,0x00,0x00,0x00,0xb9,0x04,0x00,0x00,0xa7,0x00,0x00,0x00, +0x71,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xa4,0x00,0x00,0x00, +0xba,0x04,0x00,0x00,0xb9,0x04,0x00,0x00,0x81,0x00,0x05,0x00, +0xa4,0x00,0x00,0x00,0xbb,0x04,0x00,0x00,0xba,0x04,0x00,0x00, +0xb8,0x04,0x00,0x00,0x3e,0x00,0x03,0x00,0xb9,0x04,0x00,0x00, +0xbb,0x04,0x00,0x00,0xf9,0x00,0x02,0x00,0xb2,0x04,0x00,0x00, +0xf8,0x00,0x02,0x00,0xb2,0x04,0x00,0x00,0xe0,0x00,0x04,0x00, +0x51,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0xa5,0x04,0x00,0x00, +0xf9,0x00,0x02,0x00,0xaa,0x04,0x00,0x00,0xf8,0x00,0x02,0x00, +0xaa,0x04,0x00,0x00,0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xbe,0x04,0x00,0x00,0xfb,0x04,0x00,0x00,0x9a,0x00,0x00,0x00, +0xf9,0x00,0x02,0x00,0xa7,0x04,0x00,0x00,0xf8,0x00,0x02,0x00, +0xa9,0x04,0x00,0x00,0xaa,0x00,0x05,0x00,0xb9,0x00,0x00,0x00, +0xc0,0x04,0x00,0x00,0x71,0x00,0x00,0x00,0x4b,0x00,0x00,0x00, +0xf7,0x00,0x03,0x00,0xc2,0x04,0x00,0x00,0x00,0x00,0x00,0x00, +0xfa,0x00,0x04,0x00,0xc0,0x04,0x00,0x00,0xc1,0x04,0x00,0x00, +0xc2,0x04,0x00,0x00,0xf8,0x00,0x02,0x00,0xc1,0x04,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc9,0x04,0x00,0x00, +0xf9,0x04,0x00,0x00,0x55,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0xae,0x00,0x00,0x00,0xca,0x04,0x00,0x00,0xa7,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xa4,0x00,0x00,0x00, +0xcb,0x04,0x00,0x00,0xca,0x04,0x00,0x00,0x41,0x00,0x06,0x00, +0xcc,0x04,0x00,0x00,0xcd,0x04,0x00,0x00,0xc6,0x04,0x00,0x00, +0x61,0x00,0x00,0x00,0xc9,0x04,0x00,0x00,0x3e,0x00,0x03,0x00, +0xcd,0x04,0x00,0x00,0xcb,0x04,0x00,0x00,0xf9,0x00,0x02,0x00, +0xc2,0x04,0x00,0x00,0xf8,0x00,0x02,0x00,0xc2,0x04,0x00,0x00, 0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00, }; -const uint64_t mul_mat_vec_q5_1_f32_f32_len = 4352; +const uint64_t mul_mat_vec_q5_k_f16_f32_len = 13436; -unsigned char mul_mat_vec_q5_k_f16_f32_data[] = { +unsigned char mul_mat_vec_q5_k_f32_f32_data[] = { 0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00, -0xf8,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, +0xdf,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, 0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x27,0x00,0x00,0x00, 0x11,0x00,0x02,0x00,0x51,0x11,0x00,0x00,0x11,0x00,0x02,0x00, 0x60,0x11,0x00,0x00,0x0b,0x00,0x06,0x00,0x01,0x00,0x00,0x00, 0x47,0x4c,0x53,0x4c,0x2e,0x73,0x74,0x64,0x2e,0x34,0x35,0x30, 0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00,0x00,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x0f,0x00,0x0d,0x00,0x05,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x0f,0x00,0x0e,0x00,0x05,0x00,0x00,0x00, 0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e,0x00,0x00,0x00,0x00, 0x11,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x4a,0x00,0x00,0x00, -0x66,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0xc9,0x00,0x00,0x00, -0x3b,0x02,0x00,0x00,0xbf,0x04,0x00,0x00,0x10,0x00,0x06,0x00, -0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x11,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x18,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x03,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00, -0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x18,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x4e,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0xa7,0x00,0x00,0x00, +0xd0,0x00,0x00,0x00,0x42,0x02,0x00,0x00,0xa7,0x04,0x00,0x00, +0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x11,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, 0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x18,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x28,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x18,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x4a,0x00,0x00,0x00, -0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x66,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xc2,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xc3,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xc4,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0xc5,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0xc5,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xc5,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0xc5,0x00,0x00,0x00,0x03,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xc6,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0xb0,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xc7,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0xc7,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xc9,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xc9,0x00,0x00,0x00, -0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x38,0x02,0x00,0x00,0x06,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0x39,0x02,0x00,0x00,0x00,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x39,0x02,0x00,0x00, 0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0x39,0x02,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x3b,0x02,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x3b,0x02,0x00,0x00, -0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xbc,0x04,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0xbd,0x04,0x00,0x00,0x00,0x00,0x00,0x00, -0x19,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xbd,0x04,0x00,0x00, -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0xbd,0x04,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xbf,0x04,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xbf,0x04,0x00,0x00, -0x21,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xc7,0x04,0x00,0x00,0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00, -0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00, -0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x17,0x00,0x04,0x00,0x0f,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x10,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x10,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x12,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x13,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x1e,0x00,0x0d,0x00, -0x18,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x18,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00, +0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x18,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x07,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x18,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00, +0x09,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x0a,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0x18,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x4a,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x4e,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x6e,0x00,0x00,0x00, +0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xc9,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xca,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xcb,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0xcc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xcc,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0xcc,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0xcc,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x30,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xcd,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0xb0,0x00,0x00,0x00,0x48,0x00,0x04,0x00, +0xce,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0xce,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0xce,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xd0,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xd0,0x00,0x00,0x00,0x21,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x3f,0x02,0x00,0x00, +0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00, +0x40,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x40,0x02,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0x40,0x02,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x42,0x02,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x42,0x02,0x00,0x00,0x21,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xa4,0x04,0x00,0x00, +0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00, +0xa5,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0xa5,0x04,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0xa5,0x04,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xa7,0x04,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xa7,0x04,0x00,0x00,0x21,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xae,0x04,0x00,0x00, +0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x13,0x00,0x02,0x00, +0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x17,0x00,0x04,0x00, +0x0f,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x10,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x0f,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00, +0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x13,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x1e,0x00,0x0d,0x00,0x18,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x19,0x00,0x00,0x00, -0x1a,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x15,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x1d,0x00,0x00,0x00, -0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x0a,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x2e,0x00,0x00,0x00, -0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x34,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x40,0x00,0x00,0x00, -0x05,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x45,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x10,0x00,0x00,0x00,0x4a,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4b,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,0x00,0x01,0x00,0x00, -0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00,0x66,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x19,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, +0x09,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x1d,0x00,0x00,0x00,0x09,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x28,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,0x09,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x00,0x00, +0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x3b,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x05,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x45,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00, +0x4a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00,0x4e,0x00,0x00,0x00, 0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x69,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x85,0x00,0x00,0x00, +0x51,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x64,0x00,0x00,0x00, +0x00,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00, +0x6e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x8c,0x00,0x00,0x00, 0x20,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x8b,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x15,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x93,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0x92,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x15,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x9a,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x9e,0x00,0x00,0x00, 0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x16,0x00,0x03,0x00, -0x9d,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, -0x9e,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0x85,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x9f,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x9e,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x9f,0x00,0x00,0x00, -0xa0,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xa1,0x00,0x00,0x00,0x10,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0xa6,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xa7,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0x14,0x00,0x02,0x00, -0xb2,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xbb,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x16,0x00,0x03,0x00, -0xbf,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x17,0x00,0x04,0x00, -0xc0,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xc1,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0xc2,0x00,0x00,0x00, -0x90,0x00,0x00,0x00,0xc1,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, -0xc3,0x00,0x00,0x00,0x90,0x00,0x00,0x00,0x85,0x00,0x00,0x00, -0x1c,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,0x90,0x00,0x00,0x00, -0xbb,0x00,0x00,0x00,0x1e,0x00,0x06,0x00,0xc5,0x00,0x00,0x00, -0xc0,0x00,0x00,0x00,0xc2,0x00,0x00,0x00,0xc3,0x00,0x00,0x00, -0xc4,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0xc6,0x00,0x00,0x00, -0xc5,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xc7,0x00,0x00,0x00, -0xc6,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xc8,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0xc8,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0xcd,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0xbf,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xde,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0x90,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0xe3,0x00,0x00,0x00,0x3f,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x09,0x01,0x00,0x00, +0xa4,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, +0xa5,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,0x8c,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0xa6,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0xa5,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xa6,0x00,0x00,0x00, +0xa7,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,0x10,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0xa4,0x00,0x00,0x00,0xad,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xae,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,0x14,0x00,0x02,0x00, +0xb9,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xc2,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x16,0x00,0x03,0x00, +0xc6,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x17,0x00,0x04,0x00, +0xc7,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xc8,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0xc9,0x00,0x00,0x00, +0x97,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, +0xca,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x8c,0x00,0x00,0x00, +0x1c,0x00,0x04,0x00,0xcb,0x00,0x00,0x00,0x97,0x00,0x00,0x00, +0xc2,0x00,0x00,0x00,0x1e,0x00,0x06,0x00,0xcc,0x00,0x00,0x00, +0xc7,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0xca,0x00,0x00,0x00, +0xcb,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0xcd,0x00,0x00,0x00, +0xcc,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xce,0x00,0x00,0x00, +0xcd,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xcf,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0xce,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0xcf,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0xd4,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0xc6,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xe5,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0xea,0x00,0x00,0x00,0x3f,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x10,0x01,0x00,0x00, 0x05,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x18,0x01,0x00,0x00,0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x1e,0x01,0x00,0x00,0x0f,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x29,0x01,0x00,0x00, +0x1f,0x01,0x00,0x00,0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x25,0x01,0x00,0x00,0x0f,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x30,0x01,0x00,0x00, 0xc0,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x2b,0x01,0x00,0x00,0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x36,0x01,0x00,0x00,0x09,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x88,0x01,0x00,0x00, +0x32,0x01,0x00,0x00,0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x3d,0x01,0x00,0x00,0x09,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x8f,0x01,0x00,0x00, 0x03,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xb0,0x01,0x00,0x00,0x11,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xee,0x01,0x00,0x00,0x41,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xfc,0x01,0x00,0x00, +0xb7,0x01,0x00,0x00,0x11,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xf5,0x01,0x00,0x00,0x41,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x03,0x02,0x00,0x00, 0x50,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x0a,0x02,0x00,0x00,0x51,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, -0x38,0x02,0x00,0x00,0xbf,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, -0x39,0x02,0x00,0x00,0x38,0x02,0x00,0x00,0x20,0x00,0x04,0x00, -0x3a,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,0x39,0x02,0x00,0x00, -0x3b,0x00,0x04,0x00,0x3a,0x02,0x00,0x00,0x3b,0x02,0x00,0x00, -0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x50,0x02,0x00,0x00,0x10,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xc4,0x02,0x00,0x00,0x21,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xe1,0x02,0x00,0x00, -0x30,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xfe,0x02,0x00,0x00,0x31,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x9e,0x04,0x00,0x00,0x08,0x01,0x00,0x00, -0x1d,0x00,0x03,0x00,0xbc,0x04,0x00,0x00,0x9d,0x00,0x00,0x00, -0x1e,0x00,0x03,0x00,0xbd,0x04,0x00,0x00,0xbc,0x04,0x00,0x00, -0x20,0x00,0x04,0x00,0xbe,0x04,0x00,0x00,0x0c,0x00,0x00,0x00, -0xbd,0x04,0x00,0x00,0x3b,0x00,0x04,0x00,0xbe,0x04,0x00,0x00, -0xbf,0x04,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0xc5,0x04,0x00,0x00,0x0c,0x00,0x00,0x00,0x9d,0x00,0x00,0x00, -0x2c,0x00,0x06,0x00,0x0f,0x00,0x00,0x00,0xc7,0x04,0x00,0x00, -0x85,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x12,0x00,0x00,0x00, +0x11,0x02,0x00,0x00,0x51,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, +0x3f,0x02,0x00,0x00,0xa4,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, +0x40,0x02,0x00,0x00,0x3f,0x02,0x00,0x00,0x20,0x00,0x04,0x00, +0x41,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,0x40,0x02,0x00,0x00, +0x3b,0x00,0x04,0x00,0x41,0x02,0x00,0x00,0x42,0x02,0x00,0x00, +0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x46,0x02,0x00,0x00, +0x0c,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x57,0x02,0x00,0x00,0x10,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xc7,0x02,0x00,0x00, +0x21,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xe3,0x02,0x00,0x00,0x30,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xff,0x02,0x00,0x00,0x31,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x86,0x04,0x00,0x00, +0x08,0x01,0x00,0x00,0x1d,0x00,0x03,0x00,0xa4,0x04,0x00,0x00, +0xa4,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xa5,0x04,0x00,0x00, +0xa4,0x04,0x00,0x00,0x20,0x00,0x04,0x00,0xa6,0x04,0x00,0x00, +0x0c,0x00,0x00,0x00,0xa5,0x04,0x00,0x00,0x3b,0x00,0x04,0x00, +0xa6,0x04,0x00,0x00,0xa7,0x04,0x00,0x00,0x0c,0x00,0x00,0x00, +0x2c,0x00,0x06,0x00,0x0f,0x00,0x00,0x00,0xae,0x04,0x00,0x00, +0x8c,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x12,0x00,0x00,0x00, 0x36,0x00,0x05,0x00,0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, 0x05,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00, 0x4c,0x00,0x00,0x00,0x4a,0x00,0x00,0x00,0x4b,0x00,0x00,0x00, 0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4d,0x00,0x00,0x00, 0x4c,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00, -0xcf,0x04,0x00,0x00,0x11,0x00,0x00,0x00,0x12,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xd0,0x04,0x00,0x00, -0xcf,0x04,0x00,0x00,0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00, -0xd2,0x04,0x00,0x00,0x1a,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xd3,0x04,0x00,0x00, -0xd2,0x04,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xd4,0x04,0x00,0x00,0xd0,0x04,0x00,0x00,0xd3,0x04,0x00,0x00, -0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd8,0x04,0x00,0x00, -0xd0,0x04,0x00,0x00,0xd3,0x04,0x00,0x00,0x41,0x00,0x05,0x00, -0x1d,0x00,0x00,0x00,0xda,0x04,0x00,0x00,0x1a,0x00,0x00,0x00, -0x28,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xdb,0x04,0x00,0x00,0xda,0x04,0x00,0x00,0x86,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xdc,0x04,0x00,0x00,0xd4,0x04,0x00,0x00, -0xdb,0x04,0x00,0x00,0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00, -0xde,0x04,0x00,0x00,0x1a,0x00,0x00,0x00,0x2e,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xdf,0x04,0x00,0x00, -0xde,0x04,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xe0,0x04,0x00,0x00,0xd8,0x04,0x00,0x00,0xdf,0x04,0x00,0x00, -0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00,0xe2,0x04,0x00,0x00, -0x1a,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xe3,0x04,0x00,0x00,0xe2,0x04,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe4,0x04,0x00,0x00, -0xdc,0x04,0x00,0x00,0xe3,0x04,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xe6,0x04,0x00,0x00,0xe4,0x04,0x00,0x00, -0xe0,0x04,0x00,0x00,0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00, -0xe8,0x04,0x00,0x00,0x1a,0x00,0x00,0x00,0x3b,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xe9,0x04,0x00,0x00, -0xe8,0x04,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xea,0x04,0x00,0x00,0xe6,0x04,0x00,0x00,0xe9,0x04,0x00,0x00, -0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00,0xec,0x04,0x00,0x00, -0x1a,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xed,0x04,0x00,0x00,0xec,0x04,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xee,0x04,0x00,0x00, -0xd0,0x04,0x00,0x00,0xed,0x04,0x00,0x00,0x41,0x00,0x05,0x00, -0x1d,0x00,0x00,0x00,0xf0,0x04,0x00,0x00,0x1a,0x00,0x00,0x00, -0x45,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xf1,0x04,0x00,0x00,0xf0,0x04,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xf2,0x04,0x00,0x00,0xd0,0x04,0x00,0x00, -0xf1,0x04,0x00,0x00,0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00, -0x5a,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x5b,0x00,0x00,0x00, -0x5a,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x5d,0x00,0x00,0x00,0x5b,0x00,0x00,0x00,0x5c,0x00,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x60,0x00,0x00,0x00, -0xea,0x04,0x00,0x00,0x5c,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x4d,0x00,0x00,0x00, -0x5d,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x64,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x63,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00,0x67,0x00,0x00,0x00, -0x66,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x67,0x00,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6a,0x00,0x00,0x00, -0x68,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0x89,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x68,0x00,0x00,0x00, -0x69,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x72,0x00,0x00,0x00,0x6a,0x00,0x00,0x00,0x71,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x76,0x00,0x00,0x00, -0x71,0x00,0x00,0x00,0x72,0x00,0x00,0x00,0x82,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x77,0x00,0x00,0x00,0x6a,0x00,0x00,0x00, -0x76,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x7a,0x00,0x00,0x00,0x72,0x00,0x00,0x00,0x69,0x00,0x00,0x00, -0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7d,0x00,0x00,0x00, -0x72,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x71,0x00,0x00,0x00, -0x77,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x82,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0x7d,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x83,0x00,0x00,0x00, -0x80,0x00,0x00,0x00,0x82,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x87,0x00,0x00,0x00,0x85,0x00,0x00,0x00, -0x7a,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x89,0x00,0x00,0x00,0x87,0x00,0x00,0x00,0x83,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8d,0x00,0x00,0x00, -0x8b,0x00,0x00,0x00,0x7a,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x8f,0x00,0x00,0x00,0x8d,0x00,0x00,0x00, -0x83,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x95,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0x7a,0x00,0x00,0x00, -0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x96,0x00,0x00,0x00, -0x93,0x00,0x00,0x00,0x95,0x00,0x00,0x00,0x72,0x00,0x04,0x00, -0x97,0x00,0x00,0x00,0x98,0x00,0x00,0x00,0x96,0x00,0x00,0x00, -0x7c,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0x99,0x00,0x00,0x00, -0x98,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x90,0x00,0x00,0x00, -0x9c,0x00,0x00,0x00,0x99,0x00,0x00,0x00,0x3b,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa3,0x00,0x00,0x00, -0xa1,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xa5,0x00,0x00,0x00,0xa3,0x00,0x00,0x00, -0x6a,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0xa7,0x00,0x00,0x00, -0xa8,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0xa5,0x00,0x00,0x00, -0x3e,0x00,0x03,0x00,0xa8,0x00,0x00,0x00,0xa6,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0xab,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0xab,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00, -0xf3,0x04,0x00,0x00,0x6e,0x00,0x00,0x00,0x05,0x00,0x00,0x00, -0x9d,0x04,0x00,0x00,0xac,0x00,0x00,0x00,0xb0,0x00,0x05,0x00, -0xb2,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,0xf3,0x04,0x00,0x00, -0x5d,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xad,0x00,0x00,0x00, -0xac,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, -0xb3,0x00,0x00,0x00,0xac,0x00,0x00,0x00,0xad,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0xac,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xb6,0x00,0x00,0x00,0xf3,0x04,0x00,0x00, -0x5c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xb8,0x00,0x00,0x00,0xb6,0x00,0x00,0x00,0x8f,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbc,0x00,0x00,0x00, -0xb8,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,0x64,0x00,0x00,0x00, -0xf3,0x04,0x00,0x00,0x41,0x00,0x08,0x00,0xcd,0x00,0x00,0x00, -0xce,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0xcc,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x4b,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0xbf,0x00,0x00,0x00,0xcf,0x00,0x00,0x00, -0xce,0x00,0x00,0x00,0x73,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, -0xd0,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x41,0x00,0x08,0x00, -0xcd,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0xc9,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0x12,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xbf,0x00,0x00,0x00, +0x4f,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x4b,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x50,0x00,0x00,0x00, +0x4f,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00, +0x52,0x00,0x00,0x00,0x4a,0x00,0x00,0x00,0x51,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x53,0x00,0x00,0x00, +0x52,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x54,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x53,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x55,0x00,0x00,0x00, +0x4d,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0x13,0x00,0x00,0x00,0xb6,0x04,0x00,0x00,0x11,0x00,0x00,0x00, +0x12,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xb7,0x04,0x00,0x00,0xb6,0x04,0x00,0x00,0x41,0x00,0x05,0x00, +0x1d,0x00,0x00,0x00,0xb9,0x04,0x00,0x00,0x1a,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xba,0x04,0x00,0x00,0xb9,0x04,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xbb,0x04,0x00,0x00,0xb7,0x04,0x00,0x00, +0xba,0x04,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xbf,0x04,0x00,0x00,0xb7,0x04,0x00,0x00,0xba,0x04,0x00,0x00, +0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00,0xc1,0x04,0x00,0x00, +0x1a,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xc2,0x04,0x00,0x00,0xc1,0x04,0x00,0x00, +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc3,0x04,0x00,0x00, +0xbb,0x04,0x00,0x00,0xc2,0x04,0x00,0x00,0x41,0x00,0x05,0x00, +0x1d,0x00,0x00,0x00,0xc5,0x04,0x00,0x00,0x1a,0x00,0x00,0x00, +0x2e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xc6,0x04,0x00,0x00,0xc5,0x04,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xc7,0x04,0x00,0x00,0xbf,0x04,0x00,0x00, +0xc6,0x04,0x00,0x00,0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00, +0xc9,0x04,0x00,0x00,0x1a,0x00,0x00,0x00,0x34,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xca,0x04,0x00,0x00, +0xc9,0x04,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xcb,0x04,0x00,0x00,0xc3,0x04,0x00,0x00,0xca,0x04,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xcd,0x04,0x00,0x00, +0xcb,0x04,0x00,0x00,0xc7,0x04,0x00,0x00,0x41,0x00,0x05,0x00, +0x1d,0x00,0x00,0x00,0xcf,0x04,0x00,0x00,0x1a,0x00,0x00,0x00, +0x3b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xd0,0x04,0x00,0x00,0xcf,0x04,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xd1,0x04,0x00,0x00,0xcd,0x04,0x00,0x00, +0xd0,0x04,0x00,0x00,0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00, +0xd3,0x04,0x00,0x00,0x1a,0x00,0x00,0x00,0x40,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xd4,0x04,0x00,0x00, +0xd3,0x04,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xd5,0x04,0x00,0x00,0xb7,0x04,0x00,0x00,0xd4,0x04,0x00,0x00, +0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00,0xd7,0x04,0x00,0x00, +0x1a,0x00,0x00,0x00,0x45,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xd8,0x04,0x00,0x00,0xd7,0x04,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd9,0x04,0x00,0x00, +0xb7,0x04,0x00,0x00,0xd8,0x04,0x00,0x00,0x41,0x00,0x05,0x00, +0x1d,0x00,0x00,0x00,0x62,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x63,0x00,0x00,0x00,0x62,0x00,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x65,0x00,0x00,0x00,0x63,0x00,0x00,0x00, +0x64,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x68,0x00,0x00,0x00,0xd1,0x04,0x00,0x00,0x64,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6b,0x00,0x00,0x00, +0x55,0x00,0x00,0x00,0x65,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x68,0x00,0x00,0x00, +0x6b,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00, +0x6f,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x4b,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x70,0x00,0x00,0x00, +0x6f,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x71,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x51,0x00,0x00,0x00, +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x75,0x00,0x00,0x00, +0x70,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x71,0x00,0x00,0x00, +0x78,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x7d,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x79,0x00,0x00,0x00, +0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7e,0x00,0x00,0x00, +0x71,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x81,0x00,0x00,0x00,0x79,0x00,0x00,0x00, +0x51,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x84,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x51,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x87,0x00,0x00,0x00, +0x78,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x89,0x00,0x00,0x00,0x51,0x00,0x00,0x00, +0x84,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x8a,0x00,0x00,0x00,0x87,0x00,0x00,0x00,0x89,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8e,0x00,0x00,0x00, +0x8c,0x00,0x00,0x00,0x81,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x90,0x00,0x00,0x00,0x8e,0x00,0x00,0x00, +0x8a,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x94,0x00,0x00,0x00,0x92,0x00,0x00,0x00,0x81,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x96,0x00,0x00,0x00, +0x94,0x00,0x00,0x00,0x8a,0x00,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x9c,0x00,0x00,0x00,0x51,0x00,0x00,0x00, +0x81,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x9d,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,0x9c,0x00,0x00,0x00, +0x72,0x00,0x04,0x00,0x9e,0x00,0x00,0x00,0x9f,0x00,0x00,0x00, +0x9d,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0xa0,0x00,0x00,0x00,0x9f,0x00,0x00,0x00,0xc4,0x00,0x05,0x00, +0x97,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0xa0,0x00,0x00,0x00, +0x3b,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xaa,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,0x75,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xac,0x00,0x00,0x00, +0xaa,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0xae,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0xa7,0x00,0x00,0x00, +0xac,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0xaf,0x00,0x00,0x00, +0xad,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xb2,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0xb2,0x00,0x00,0x00,0xf5,0x00,0x07,0x00, +0x06,0x00,0x00,0x00,0xda,0x04,0x00,0x00,0x75,0x00,0x00,0x00, +0x05,0x00,0x00,0x00,0x85,0x04,0x00,0x00,0xb3,0x00,0x00,0x00, +0xb0,0x00,0x05,0x00,0xb9,0x00,0x00,0x00,0xba,0x00,0x00,0x00, +0xda,0x04,0x00,0x00,0x65,0x00,0x00,0x00,0xf6,0x00,0x04,0x00, +0xb4,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0xfa,0x00,0x04,0x00,0xba,0x00,0x00,0x00,0xb3,0x00,0x00,0x00, +0xb4,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xb3,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbd,0x00,0x00,0x00, +0xda,0x04,0x00,0x00,0x64,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0xbd,0x00,0x00,0x00, +0x96,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xc3,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0xc2,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd3,0x00,0x00,0x00, +0x6c,0x00,0x00,0x00,0xda,0x04,0x00,0x00,0x41,0x00,0x08,0x00, +0xd4,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0xd0,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0x4b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xc6,0x00,0x00,0x00, 0xd6,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0x73,0x00,0x04,0x00, -0x9d,0x00,0x00,0x00,0xd7,0x00,0x00,0x00,0xd6,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdd,0x00,0x00,0x00, -0x7a,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0x41,0x00,0x08,0x00, -0xde,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0xc9,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,0x93,0x00,0x00,0x00, -0xdd,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0xe0,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xe1,0x00,0x00,0x00,0xe0,0x00,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xe2,0x00,0x00,0x00, -0xe1,0x00,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0xe4,0x00,0x00,0x00,0xe2,0x00,0x00,0x00,0xe3,0x00,0x00,0x00, -0x72,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0xe5,0x00,0x00,0x00, -0xe4,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0xe6,0x00,0x00,0x00,0xe5,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xed,0x00,0x00,0x00,0xdd,0x00,0x00,0x00, -0x12,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xde,0x00,0x00,0x00, -0xee,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0xcc,0x00,0x00,0x00,0x93,0x00,0x00,0x00,0xed,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0xef,0x00,0x00,0x00, -0xee,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xf0,0x00,0x00,0x00,0xef,0x00,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0xf1,0x00,0x00,0x00,0xf0,0x00,0x00,0x00, -0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xf2,0x00,0x00,0x00, -0xf1,0x00,0x00,0x00,0xe3,0x00,0x00,0x00,0x72,0x00,0x04,0x00, -0x97,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,0xf2,0x00,0x00,0x00, -0x7c,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0xf4,0x00,0x00,0x00, -0xf3,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xfb,0x00,0x00,0x00,0xdd,0x00,0x00,0x00,0x71,0x00,0x00,0x00, -0x41,0x00,0x08,0x00,0xde,0x00,0x00,0x00,0xfc,0x00,0x00,0x00, -0xc9,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xcc,0x00,0x00,0x00, -0x93,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,0xfc,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xfe,0x00,0x00,0x00, -0xfd,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0xff,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0xff,0x00,0x00,0x00, -0xe3,0x00,0x00,0x00,0x72,0x00,0x04,0x00,0x97,0x00,0x00,0x00, -0x01,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0x02,0x01,0x00,0x00,0x01,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0a,0x01,0x00,0x00, -0xdd,0x00,0x00,0x00,0x09,0x01,0x00,0x00,0x41,0x00,0x08,0x00, -0xde,0x00,0x00,0x00,0x0b,0x01,0x00,0x00,0xc9,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,0x93,0x00,0x00,0x00, -0x0a,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0x0c,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x0d,0x01,0x00,0x00,0x0c,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x0e,0x01,0x00,0x00, -0x0d,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x0f,0x01,0x00,0x00,0x0e,0x01,0x00,0x00,0xe3,0x00,0x00,0x00, -0x72,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x10,0x01,0x00,0x00, -0x0f,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0x11,0x01,0x00,0x00,0x10,0x01,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x19,0x01,0x00,0x00,0xdd,0x00,0x00,0x00, -0x18,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0xde,0x00,0x00,0x00, -0x1a,0x01,0x00,0x00,0xc9,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0xcc,0x00,0x00,0x00,0x93,0x00,0x00,0x00,0x19,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0x1b,0x01,0x00,0x00, -0x1a,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x1c,0x01,0x00,0x00,0x1b,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x1d,0x01,0x00,0x00,0x1c,0x01,0x00,0x00, -0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x1f,0x01,0x00,0x00, -0x1d,0x01,0x00,0x00,0x1e,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0x26,0x01,0x00,0x00,0xdf,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x27,0x01,0x00,0x00, -0x26,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x28,0x01,0x00,0x00,0x27,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x2a,0x01,0x00,0x00,0x28,0x01,0x00,0x00, -0x29,0x01,0x00,0x00,0xc3,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x2c,0x01,0x00,0x00,0x2a,0x01,0x00,0x00,0x2b,0x01,0x00,0x00, -0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x2d,0x01,0x00,0x00, -0x1f,0x01,0x00,0x00,0x2c,0x01,0x00,0x00,0x72,0x00,0x04,0x00, -0x97,0x00,0x00,0x00,0x2e,0x01,0x00,0x00,0x2d,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0x2f,0x01,0x00,0x00, -0x2e,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x37,0x01,0x00,0x00,0xdd,0x00,0x00,0x00,0x36,0x01,0x00,0x00, -0x41,0x00,0x08,0x00,0xde,0x00,0x00,0x00,0x38,0x01,0x00,0x00, -0xc9,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xcc,0x00,0x00,0x00, -0x93,0x00,0x00,0x00,0x37,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0x39,0x01,0x00,0x00,0x38,0x01,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x3a,0x01,0x00,0x00, -0x39,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x3b,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x3c,0x01,0x00,0x00,0x3b,0x01,0x00,0x00, -0x1e,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0x44,0x01,0x00,0x00,0xee,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x45,0x01,0x00,0x00,0x44,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x46,0x01,0x00,0x00, -0x45,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x47,0x01,0x00,0x00,0x46,0x01,0x00,0x00,0x29,0x01,0x00,0x00, -0xc3,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x48,0x01,0x00,0x00, -0x47,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,0xc5,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x49,0x01,0x00,0x00,0x3c,0x01,0x00,0x00, -0x48,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x97,0x00,0x00,0x00, -0x4a,0x01,0x00,0x00,0x49,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0x4b,0x01,0x00,0x00,0x4a,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0x54,0x01,0x00,0x00, -0x1a,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x90,0x00,0x00,0x00, -0x55,0x01,0x00,0x00,0x54,0x01,0x00,0x00,0x3b,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x56,0x01,0x00,0x00, -0x55,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x57,0x01,0x00,0x00,0x56,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x58,0x01,0x00,0x00,0x57,0x01,0x00,0x00, -0x1e,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0x60,0x01,0x00,0x00,0xfc,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x61,0x01,0x00,0x00,0x60,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x62,0x01,0x00,0x00, -0x61,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x63,0x01,0x00,0x00,0x62,0x01,0x00,0x00,0x29,0x01,0x00,0x00, -0xc3,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x64,0x01,0x00,0x00, -0x63,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,0xc5,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x65,0x01,0x00,0x00,0x58,0x01,0x00,0x00, -0x64,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x97,0x00,0x00,0x00, -0x66,0x01,0x00,0x00,0x65,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0x67,0x01,0x00,0x00,0x66,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0x70,0x01,0x00,0x00, -0x38,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x90,0x00,0x00,0x00, -0x71,0x01,0x00,0x00,0x70,0x01,0x00,0x00,0x3b,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x72,0x01,0x00,0x00, -0x71,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x73,0x01,0x00,0x00,0x72,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x74,0x01,0x00,0x00,0x73,0x01,0x00,0x00, -0x1e,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0x7c,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x7d,0x01,0x00,0x00,0x7c,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x7e,0x01,0x00,0x00, -0x7d,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x7f,0x01,0x00,0x00,0x7e,0x01,0x00,0x00,0x29,0x01,0x00,0x00, -0xc3,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x80,0x01,0x00,0x00, -0x7f,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,0xc5,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x81,0x01,0x00,0x00,0x74,0x01,0x00,0x00, -0x80,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x97,0x00,0x00,0x00, -0x82,0x01,0x00,0x00,0x81,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0x83,0x01,0x00,0x00,0x82,0x01,0x00,0x00, -0x41,0x00,0x08,0x00,0xde,0x00,0x00,0x00,0x8a,0x01,0x00,0x00, -0xc9,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xcc,0x00,0x00,0x00, -0x88,0x01,0x00,0x00,0x89,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0x8b,0x01,0x00,0x00,0x8a,0x01,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x8c,0x01,0x00,0x00, -0x8b,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x8d,0x01,0x00,0x00,0x8c,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x8e,0x01,0x00,0x00,0x8d,0x01,0x00,0x00, -0x1e,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x97,0x00,0x00,0x00, -0x8f,0x01,0x00,0x00,0x8e,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0x90,0x01,0x00,0x00,0x8f,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x96,0x01,0x00,0x00, -0x89,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x41,0x00,0x08,0x00, -0xde,0x00,0x00,0x00,0x97,0x01,0x00,0x00,0xc9,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,0x88,0x01,0x00,0x00, -0x96,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0x98,0x01,0x00,0x00,0x97,0x01,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x99,0x01,0x00,0x00,0x98,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x9a,0x01,0x00,0x00, -0x99,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x9b,0x01,0x00,0x00,0x9a,0x01,0x00,0x00,0x1e,0x01,0x00,0x00, -0x72,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x9c,0x01,0x00,0x00, -0x9b,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0x9d,0x01,0x00,0x00,0x9c,0x01,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xa3,0x01,0x00,0x00,0x89,0x00,0x00,0x00, -0xa1,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xde,0x00,0x00,0x00, -0xa4,0x01,0x00,0x00,0xc9,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0xcc,0x00,0x00,0x00,0x88,0x01,0x00,0x00,0xa3,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0xa5,0x01,0x00,0x00, -0xa4,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xa6,0x01,0x00,0x00,0xa5,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0xa7,0x01,0x00,0x00,0xa6,0x01,0x00,0x00, -0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xa8,0x01,0x00,0x00, -0xa7,0x01,0x00,0x00,0x1e,0x01,0x00,0x00,0x72,0x00,0x04,0x00, -0x97,0x00,0x00,0x00,0xa9,0x01,0x00,0x00,0xa8,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0xaa,0x01,0x00,0x00, -0xa9,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xb1,0x01,0x00,0x00,0x89,0x00,0x00,0x00,0xb0,0x01,0x00,0x00, -0x41,0x00,0x08,0x00,0xde,0x00,0x00,0x00,0xb2,0x01,0x00,0x00, -0xc9,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xcc,0x00,0x00,0x00, -0x88,0x01,0x00,0x00,0xb1,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0xb3,0x01,0x00,0x00,0xb2,0x01,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xb4,0x01,0x00,0x00, -0xb3,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0xb5,0x01,0x00,0x00,0xb4,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0xb6,0x01,0x00,0x00,0xb5,0x01,0x00,0x00, -0x1e,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x97,0x00,0x00,0x00, -0xb7,0x01,0x00,0x00,0xb6,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0xb8,0x01,0x00,0x00,0xb7,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0xbf,0x01,0x00,0x00, -0x8a,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x90,0x00,0x00,0x00, -0xc0,0x01,0x00,0x00,0xbf,0x01,0x00,0x00,0x3b,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0xc8,0x01,0x00,0x00, -0x97,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x90,0x00,0x00,0x00, -0xc9,0x01,0x00,0x00,0xc8,0x01,0x00,0x00,0x3b,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0xd1,0x01,0x00,0x00, -0xa4,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x90,0x00,0x00,0x00, -0xd2,0x01,0x00,0x00,0xd1,0x01,0x00,0x00,0x3b,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0xda,0x01,0x00,0x00, -0xb2,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x90,0x00,0x00,0x00, -0xdb,0x01,0x00,0x00,0xda,0x01,0x00,0x00,0x3b,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe1,0x01,0x00,0x00, -0x89,0x00,0x00,0x00,0x8b,0x00,0x00,0x00,0x41,0x00,0x08,0x00, -0xde,0x00,0x00,0x00,0xe2,0x01,0x00,0x00,0xc9,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,0x88,0x01,0x00,0x00, -0xe1,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0xe3,0x01,0x00,0x00,0xe2,0x01,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xe4,0x01,0x00,0x00,0xe3,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xe5,0x01,0x00,0x00, -0xe4,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0xe6,0x01,0x00,0x00,0xe5,0x01,0x00,0x00,0x1e,0x01,0x00,0x00, -0x72,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0xe7,0x01,0x00,0x00, -0xe6,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0xe8,0x01,0x00,0x00,0xe7,0x01,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xef,0x01,0x00,0x00,0x89,0x00,0x00,0x00, -0xee,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0xde,0x00,0x00,0x00, -0xf0,0x01,0x00,0x00,0xc9,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0xcc,0x00,0x00,0x00,0x88,0x01,0x00,0x00,0xef,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0xf1,0x01,0x00,0x00, -0xf0,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xf2,0x01,0x00,0x00,0xf1,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0xf3,0x01,0x00,0x00,0xf2,0x01,0x00,0x00, -0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xf4,0x01,0x00,0x00, -0xf3,0x01,0x00,0x00,0x1e,0x01,0x00,0x00,0x72,0x00,0x04,0x00, -0x97,0x00,0x00,0x00,0xf5,0x01,0x00,0x00,0xf4,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0xf6,0x01,0x00,0x00, -0xf5,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xfd,0x01,0x00,0x00,0x89,0x00,0x00,0x00,0xfc,0x01,0x00,0x00, -0x41,0x00,0x08,0x00,0xde,0x00,0x00,0x00,0xfe,0x01,0x00,0x00, -0xc9,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xcc,0x00,0x00,0x00, -0x88,0x01,0x00,0x00,0xfd,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0xff,0x01,0x00,0x00,0xfe,0x01,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x00,0x02,0x00,0x00, -0xff,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x01,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x02,0x02,0x00,0x00,0x01,0x02,0x00,0x00, -0x1e,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x97,0x00,0x00,0x00, -0x03,0x02,0x00,0x00,0x02,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0x04,0x02,0x00,0x00,0x03,0x02,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0b,0x02,0x00,0x00, -0x89,0x00,0x00,0x00,0x0a,0x02,0x00,0x00,0x41,0x00,0x08,0x00, -0xde,0x00,0x00,0x00,0x0c,0x02,0x00,0x00,0xc9,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,0x88,0x01,0x00,0x00, -0x0b,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0x0d,0x02,0x00,0x00,0x0c,0x02,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x0e,0x02,0x00,0x00,0x0d,0x02,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x0f,0x02,0x00,0x00, -0x0e,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x10,0x02,0x00,0x00,0x0f,0x02,0x00,0x00,0x1e,0x01,0x00,0x00, -0x72,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x11,0x02,0x00,0x00, -0x10,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0x12,0x02,0x00,0x00,0x11,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0x1a,0x02,0x00,0x00,0xe2,0x01,0x00,0x00, -0xc2,0x00,0x05,0x00,0x90,0x00,0x00,0x00,0x1b,0x02,0x00,0x00, -0x1a,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0x23,0x02,0x00,0x00,0xf0,0x01,0x00,0x00, -0xc2,0x00,0x05,0x00,0x90,0x00,0x00,0x00,0x24,0x02,0x00,0x00, -0x23,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0x2c,0x02,0x00,0x00,0xfe,0x01,0x00,0x00, -0xc2,0x00,0x05,0x00,0x90,0x00,0x00,0x00,0x2d,0x02,0x00,0x00, -0x2c,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0x35,0x02,0x00,0x00,0x0c,0x02,0x00,0x00, -0xc2,0x00,0x05,0x00,0x90,0x00,0x00,0x00,0x36,0x02,0x00,0x00, -0x35,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x3e,0x02,0x00,0x00,0xee,0x04,0x00,0x00, -0xb8,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xcd,0x00,0x00,0x00, -0x3f,0x02,0x00,0x00,0x3b,0x02,0x00,0x00,0x59,0x00,0x00,0x00, -0x3e,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xbf,0x00,0x00,0x00, -0x40,0x02,0x00,0x00,0x3f,0x02,0x00,0x00,0x73,0x00,0x04,0x00, -0x9d,0x00,0x00,0x00,0x41,0x02,0x00,0x00,0x40,0x02,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x43,0x02,0x00,0x00, -0x90,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x44,0x02,0x00,0x00,0x43,0x02,0x00,0x00,0x41,0x00,0x08,0x00, -0xde,0x00,0x00,0x00,0x49,0x02,0x00,0x00,0xc9,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,0x2b,0x01,0x00,0x00, -0x83,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0x4a,0x02,0x00,0x00,0x49,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, -0x90,0x00,0x00,0x00,0x4c,0x02,0x00,0x00,0x4a,0x02,0x00,0x00, -0x99,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x4d,0x02,0x00,0x00,0x4c,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x4e,0x02,0x00,0x00,0x4d,0x02,0x00,0x00, -0xab,0x00,0x05,0x00,0xb2,0x00,0x00,0x00,0x4f,0x02,0x00,0x00, -0x4e,0x02,0x00,0x00,0x59,0x00,0x00,0x00,0xa9,0x00,0x06,0x00, -0x1b,0x00,0x00,0x00,0x51,0x02,0x00,0x00,0x4f,0x02,0x00,0x00, -0x50,0x02,0x00,0x00,0x59,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x52,0x02,0x00,0x00,0x44,0x02,0x00,0x00, -0x51,0x02,0x00,0x00,0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, -0x53,0x02,0x00,0x00,0x52,0x02,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x58,0x02,0x00,0x00,0x3e,0x02,0x00,0x00, -0x12,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xcd,0x00,0x00,0x00, -0x59,0x02,0x00,0x00,0x3b,0x02,0x00,0x00,0x59,0x00,0x00,0x00, -0x58,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xbf,0x00,0x00,0x00, -0x5a,0x02,0x00,0x00,0x59,0x02,0x00,0x00,0x73,0x00,0x04,0x00, -0x9d,0x00,0x00,0x00,0x5b,0x02,0x00,0x00,0x5a,0x02,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x5d,0x02,0x00,0x00, -0x9d,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x5e,0x02,0x00,0x00,0x5d,0x02,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x63,0x02,0x00,0x00,0x83,0x00,0x00,0x00, -0x12,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xde,0x00,0x00,0x00, -0x64,0x02,0x00,0x00,0xc9,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0xcc,0x00,0x00,0x00,0x2b,0x01,0x00,0x00,0x63,0x02,0x00,0x00, -0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0x65,0x02,0x00,0x00, -0x64,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x90,0x00,0x00,0x00, -0x67,0x02,0x00,0x00,0x65,0x02,0x00,0x00,0x99,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x68,0x02,0x00,0x00, -0x67,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x69,0x02,0x00,0x00,0x68,0x02,0x00,0x00,0xab,0x00,0x05,0x00, -0xb2,0x00,0x00,0x00,0x6a,0x02,0x00,0x00,0x69,0x02,0x00,0x00, -0x59,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,0x1b,0x00,0x00,0x00, -0x6b,0x02,0x00,0x00,0x6a,0x02,0x00,0x00,0x50,0x02,0x00,0x00, -0x59,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x6c,0x02,0x00,0x00,0x5e,0x02,0x00,0x00,0x6b,0x02,0x00,0x00, -0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0x6d,0x02,0x00,0x00, -0x6c,0x02,0x00,0x00,0x85,0x00,0x05,0x00,0x9d,0x00,0x00,0x00, -0x6e,0x02,0x00,0x00,0x5b,0x02,0x00,0x00,0x6d,0x02,0x00,0x00, -0x0c,0x00,0x08,0x00,0x9d,0x00,0x00,0x00,0x6f,0x02,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x41,0x02,0x00,0x00, -0x53,0x02,0x00,0x00,0x6e,0x02,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x73,0x02,0x00,0x00,0x3e,0x02,0x00,0x00, -0xa1,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xcd,0x00,0x00,0x00, -0x74,0x02,0x00,0x00,0x3b,0x02,0x00,0x00,0x59,0x00,0x00,0x00, -0x73,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xbf,0x00,0x00,0x00, -0x75,0x02,0x00,0x00,0x74,0x02,0x00,0x00,0x73,0x00,0x04,0x00, -0x9d,0x00,0x00,0x00,0x76,0x02,0x00,0x00,0x75,0x02,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x78,0x02,0x00,0x00, -0xaa,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x79,0x02,0x00,0x00,0x78,0x02,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x7e,0x02,0x00,0x00,0x83,0x00,0x00,0x00, -0xa1,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xde,0x00,0x00,0x00, -0x7f,0x02,0x00,0x00,0xc9,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0xcc,0x00,0x00,0x00,0x2b,0x01,0x00,0x00,0x7e,0x02,0x00,0x00, -0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0x80,0x02,0x00,0x00, -0x7f,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x90,0x00,0x00,0x00, -0x82,0x02,0x00,0x00,0x80,0x02,0x00,0x00,0x99,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x83,0x02,0x00,0x00, -0x82,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x84,0x02,0x00,0x00,0x83,0x02,0x00,0x00,0xab,0x00,0x05,0x00, -0xb2,0x00,0x00,0x00,0x85,0x02,0x00,0x00,0x84,0x02,0x00,0x00, -0x59,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,0x1b,0x00,0x00,0x00, -0x86,0x02,0x00,0x00,0x85,0x02,0x00,0x00,0x50,0x02,0x00,0x00, -0x59,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x87,0x02,0x00,0x00,0x79,0x02,0x00,0x00,0x86,0x02,0x00,0x00, -0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0x88,0x02,0x00,0x00, -0x87,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x9d,0x00,0x00,0x00, -0x8a,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x76,0x02,0x00,0x00,0x88,0x02,0x00,0x00,0x6f,0x02,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8e,0x02,0x00,0x00, -0x3e,0x02,0x00,0x00,0xb0,0x01,0x00,0x00,0x41,0x00,0x06,0x00, -0xcd,0x00,0x00,0x00,0x8f,0x02,0x00,0x00,0x3b,0x02,0x00,0x00, -0x59,0x00,0x00,0x00,0x8e,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0xbf,0x00,0x00,0x00,0x90,0x02,0x00,0x00,0x8f,0x02,0x00,0x00, -0x73,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0x91,0x02,0x00,0x00, -0x90,0x02,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x93,0x02,0x00,0x00,0xb8,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x94,0x02,0x00,0x00,0x93,0x02,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x99,0x02,0x00,0x00, -0x83,0x00,0x00,0x00,0xb0,0x01,0x00,0x00,0x41,0x00,0x08,0x00, -0xde,0x00,0x00,0x00,0x9a,0x02,0x00,0x00,0xc9,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,0x2b,0x01,0x00,0x00, -0x99,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0x9b,0x02,0x00,0x00,0x9a,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, -0x90,0x00,0x00,0x00,0x9d,0x02,0x00,0x00,0x9b,0x02,0x00,0x00, -0x99,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x9e,0x02,0x00,0x00,0x9d,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x9f,0x02,0x00,0x00,0x9e,0x02,0x00,0x00, -0xab,0x00,0x05,0x00,0xb2,0x00,0x00,0x00,0xa0,0x02,0x00,0x00, -0x9f,0x02,0x00,0x00,0x59,0x00,0x00,0x00,0xa9,0x00,0x06,0x00, -0x1b,0x00,0x00,0x00,0xa1,0x02,0x00,0x00,0xa0,0x02,0x00,0x00, -0x50,0x02,0x00,0x00,0x59,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0xa2,0x02,0x00,0x00,0x94,0x02,0x00,0x00, -0xa1,0x02,0x00,0x00,0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, -0xa3,0x02,0x00,0x00,0xa2,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, -0x9d,0x00,0x00,0x00,0xa5,0x02,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0x91,0x02,0x00,0x00,0xa3,0x02,0x00,0x00, -0x8a,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xaa,0x02,0x00,0x00,0x3e,0x02,0x00,0x00,0x85,0x00,0x00,0x00, -0x41,0x00,0x06,0x00,0xcd,0x00,0x00,0x00,0xab,0x02,0x00,0x00, -0x3b,0x02,0x00,0x00,0x59,0x00,0x00,0x00,0xaa,0x02,0x00,0x00, -0x3d,0x00,0x04,0x00,0xbf,0x00,0x00,0x00,0xac,0x02,0x00,0x00, -0xab,0x02,0x00,0x00,0x73,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, -0xad,0x02,0x00,0x00,0xac,0x02,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xaf,0x02,0x00,0x00,0xc0,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xb0,0x02,0x00,0x00, -0xaf,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0xb6,0x02,0x00,0x00,0x49,0x02,0x00,0x00,0xc4,0x00,0x05,0x00, -0x90,0x00,0x00,0x00,0xb8,0x02,0x00,0x00,0x99,0x00,0x00,0x00, -0x93,0x00,0x00,0x00,0xc7,0x00,0x05,0x00,0x90,0x00,0x00,0x00, -0xb9,0x02,0x00,0x00,0xb6,0x02,0x00,0x00,0xb8,0x02,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xba,0x02,0x00,0x00, -0xb9,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0xbb,0x02,0x00,0x00,0xba,0x02,0x00,0x00,0xab,0x00,0x05,0x00, -0xb2,0x00,0x00,0x00,0xbc,0x02,0x00,0x00,0xbb,0x02,0x00,0x00, -0x59,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,0x1b,0x00,0x00,0x00, -0xbd,0x02,0x00,0x00,0xbc,0x02,0x00,0x00,0x50,0x02,0x00,0x00, -0x59,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0xbe,0x02,0x00,0x00,0xb0,0x02,0x00,0x00,0xbd,0x02,0x00,0x00, -0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0xbf,0x02,0x00,0x00, -0xbe,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xc5,0x02,0x00,0x00,0x3e,0x02,0x00,0x00,0xc4,0x02,0x00,0x00, -0x41,0x00,0x06,0x00,0xcd,0x00,0x00,0x00,0xc6,0x02,0x00,0x00, -0x3b,0x02,0x00,0x00,0x59,0x00,0x00,0x00,0xc5,0x02,0x00,0x00, -0x3d,0x00,0x04,0x00,0xbf,0x00,0x00,0x00,0xc7,0x02,0x00,0x00, -0xc6,0x02,0x00,0x00,0x73,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, -0xc8,0x02,0x00,0x00,0xc7,0x02,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xca,0x02,0x00,0x00,0xc9,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xcb,0x02,0x00,0x00, -0xca,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0xd2,0x02,0x00,0x00,0x64,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, -0x90,0x00,0x00,0x00,0xd5,0x02,0x00,0x00,0xd2,0x02,0x00,0x00, -0xb8,0x02,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xd6,0x02,0x00,0x00,0xd5,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0xd7,0x02,0x00,0x00,0xd6,0x02,0x00,0x00, -0xab,0x00,0x05,0x00,0xb2,0x00,0x00,0x00,0xd8,0x02,0x00,0x00, -0xd7,0x02,0x00,0x00,0x59,0x00,0x00,0x00,0xa9,0x00,0x06,0x00, -0x1b,0x00,0x00,0x00,0xd9,0x02,0x00,0x00,0xd8,0x02,0x00,0x00, -0x50,0x02,0x00,0x00,0x59,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0xda,0x02,0x00,0x00,0xcb,0x02,0x00,0x00, -0xd9,0x02,0x00,0x00,0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, -0xdb,0x02,0x00,0x00,0xda,0x02,0x00,0x00,0x85,0x00,0x05,0x00, -0x9d,0x00,0x00,0x00,0xdc,0x02,0x00,0x00,0xc8,0x02,0x00,0x00, -0xdb,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x9d,0x00,0x00,0x00, -0xdd,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0xad,0x02,0x00,0x00,0xbf,0x02,0x00,0x00,0xdc,0x02,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe2,0x02,0x00,0x00, -0x3e,0x02,0x00,0x00,0xe1,0x02,0x00,0x00,0x41,0x00,0x06,0x00, -0xcd,0x00,0x00,0x00,0xe3,0x02,0x00,0x00,0x3b,0x02,0x00,0x00, -0x59,0x00,0x00,0x00,0xe2,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0xbf,0x00,0x00,0x00,0xe4,0x02,0x00,0x00,0xe3,0x02,0x00,0x00, -0x73,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0xe5,0x02,0x00,0x00, -0xe4,0x02,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xe7,0x02,0x00,0x00,0xd2,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0xe8,0x02,0x00,0x00,0xe7,0x02,0x00,0x00, -0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0xef,0x02,0x00,0x00, -0x7f,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x90,0x00,0x00,0x00, -0xf2,0x02,0x00,0x00,0xef,0x02,0x00,0x00,0xb8,0x02,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xf3,0x02,0x00,0x00, -0xf2,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0xf4,0x02,0x00,0x00,0xf3,0x02,0x00,0x00,0xab,0x00,0x05,0x00, -0xb2,0x00,0x00,0x00,0xf5,0x02,0x00,0x00,0xf4,0x02,0x00,0x00, -0x59,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,0x1b,0x00,0x00,0x00, -0xf6,0x02,0x00,0x00,0xf5,0x02,0x00,0x00,0x50,0x02,0x00,0x00, -0x59,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0xf7,0x02,0x00,0x00,0xe8,0x02,0x00,0x00,0xf6,0x02,0x00,0x00, -0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0xf8,0x02,0x00,0x00, -0xf7,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x9d,0x00,0x00,0x00, -0xfa,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0xe5,0x02,0x00,0x00,0xf8,0x02,0x00,0x00,0xdd,0x02,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xff,0x02,0x00,0x00, -0x3e,0x02,0x00,0x00,0xfe,0x02,0x00,0x00,0x41,0x00,0x06,0x00, -0xcd,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x3b,0x02,0x00,0x00, -0x59,0x00,0x00,0x00,0xff,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0xbf,0x00,0x00,0x00,0x01,0x03,0x00,0x00,0x00,0x03,0x00,0x00, -0x73,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0x02,0x03,0x00,0x00, -0x01,0x03,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x04,0x03,0x00,0x00,0xdb,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x05,0x03,0x00,0x00,0x04,0x03,0x00,0x00, -0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0x0c,0x03,0x00,0x00, -0x9a,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x90,0x00,0x00,0x00, -0x0f,0x03,0x00,0x00,0x0c,0x03,0x00,0x00,0xb8,0x02,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x10,0x03,0x00,0x00, -0x0f,0x03,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x11,0x03,0x00,0x00,0x10,0x03,0x00,0x00,0xab,0x00,0x05,0x00, -0xb2,0x00,0x00,0x00,0x12,0x03,0x00,0x00,0x11,0x03,0x00,0x00, -0x59,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,0x1b,0x00,0x00,0x00, -0x13,0x03,0x00,0x00,0x12,0x03,0x00,0x00,0x50,0x02,0x00,0x00, -0x59,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x14,0x03,0x00,0x00,0x05,0x03,0x00,0x00,0x13,0x03,0x00,0x00, -0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0x15,0x03,0x00,0x00, -0x14,0x03,0x00,0x00,0x0c,0x00,0x08,0x00,0x9d,0x00,0x00,0x00, -0x17,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x02,0x03,0x00,0x00,0x15,0x03,0x00,0x00,0xfa,0x02,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1b,0x03,0x00,0x00, -0xee,0x04,0x00,0x00,0xbc,0x00,0x00,0x00,0x41,0x00,0x06,0x00, -0xcd,0x00,0x00,0x00,0x1c,0x03,0x00,0x00,0x3b,0x02,0x00,0x00, -0x59,0x00,0x00,0x00,0x1b,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, -0xbf,0x00,0x00,0x00,0x1d,0x03,0x00,0x00,0x1c,0x03,0x00,0x00, -0x73,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0x1e,0x03,0x00,0x00, -0x1d,0x03,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x20,0x03,0x00,0x00,0xe8,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x21,0x03,0x00,0x00,0x20,0x03,0x00,0x00, -0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0x27,0x03,0x00,0x00, -0x49,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x90,0x00,0x00,0x00, -0x29,0x03,0x00,0x00,0x27,0x03,0x00,0x00,0x9c,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x2a,0x03,0x00,0x00, -0x29,0x03,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x2b,0x03,0x00,0x00,0x2a,0x03,0x00,0x00,0xab,0x00,0x05,0x00, -0xb2,0x00,0x00,0x00,0x2c,0x03,0x00,0x00,0x2b,0x03,0x00,0x00, -0x59,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,0x1b,0x00,0x00,0x00, -0x2d,0x03,0x00,0x00,0x2c,0x03,0x00,0x00,0x50,0x02,0x00,0x00, -0x59,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x2e,0x03,0x00,0x00,0x21,0x03,0x00,0x00,0x2d,0x03,0x00,0x00, -0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0x2f,0x03,0x00,0x00, -0x2e,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x34,0x03,0x00,0x00,0x1b,0x03,0x00,0x00,0x12,0x00,0x00,0x00, -0x41,0x00,0x06,0x00,0xcd,0x00,0x00,0x00,0x35,0x03,0x00,0x00, -0x3b,0x02,0x00,0x00,0x59,0x00,0x00,0x00,0x34,0x03,0x00,0x00, -0x3d,0x00,0x04,0x00,0xbf,0x00,0x00,0x00,0x36,0x03,0x00,0x00, -0x35,0x03,0x00,0x00,0x73,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, -0x37,0x03,0x00,0x00,0x36,0x03,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x39,0x03,0x00,0x00,0xf6,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x3a,0x03,0x00,0x00, -0x39,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0x41,0x03,0x00,0x00,0x64,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, -0x90,0x00,0x00,0x00,0x43,0x03,0x00,0x00,0x41,0x03,0x00,0x00, -0x9c,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x44,0x03,0x00,0x00,0x43,0x03,0x00,0x00,0x7c,0x00,0x04,0x00, +0xa4,0x00,0x00,0x00,0xd7,0x00,0x00,0x00,0xd6,0x00,0x00,0x00, +0x41,0x00,0x08,0x00,0xd4,0x00,0x00,0x00,0xdc,0x00,0x00,0x00, +0xd0,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xd3,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0xc6,0x00,0x00,0x00,0xdd,0x00,0x00,0x00,0xdc,0x00,0x00,0x00, +0x73,0x00,0x04,0x00,0xa4,0x00,0x00,0x00,0xde,0x00,0x00,0x00, +0xdd,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xe4,0x00,0x00,0x00,0x81,0x00,0x00,0x00,0x51,0x00,0x00,0x00, +0x41,0x00,0x08,0x00,0xe5,0x00,0x00,0x00,0xe6,0x00,0x00,0x00, +0xd0,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xd3,0x00,0x00,0x00, +0x9a,0x00,0x00,0x00,0xe4,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,0xe6,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xe8,0x00,0x00,0x00, +0xe7,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0xe9,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0xe9,0x00,0x00,0x00, +0xea,0x00,0x00,0x00,0x72,0x00,0x04,0x00,0x9e,0x00,0x00,0x00, +0xec,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0x7c,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0xed,0x00,0x00,0x00,0xec,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf4,0x00,0x00,0x00, +0xe4,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x41,0x00,0x08,0x00, +0xe5,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,0xd0,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,0x9a,0x00,0x00,0x00, +0xf4,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0xf6,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,0xf6,0x00,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xf8,0x00,0x00,0x00, +0xf7,0x00,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0xf9,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0xea,0x00,0x00,0x00, +0x72,0x00,0x04,0x00,0x9e,0x00,0x00,0x00,0xfa,0x00,0x00,0x00, +0xf9,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0xfb,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x02,0x01,0x00,0x00,0xe4,0x00,0x00,0x00, +0x78,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xe5,0x00,0x00,0x00, +0x03,0x01,0x00,0x00,0xd0,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0xd3,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,0x02,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x04,0x01,0x00,0x00, +0x03,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x05,0x01,0x00,0x00,0x04,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x06,0x01,0x00,0x00,0x05,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x07,0x01,0x00,0x00, +0x06,0x01,0x00,0x00,0xea,0x00,0x00,0x00,0x72,0x00,0x04,0x00, +0x9e,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x07,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x09,0x01,0x00,0x00, +0x08,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x11,0x01,0x00,0x00,0xe4,0x00,0x00,0x00,0x10,0x01,0x00,0x00, +0x41,0x00,0x08,0x00,0xe5,0x00,0x00,0x00,0x12,0x01,0x00,0x00, +0xd0,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xd3,0x00,0x00,0x00, +0x9a,0x00,0x00,0x00,0x11,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0x13,0x01,0x00,0x00,0x12,0x01,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x14,0x01,0x00,0x00, +0x13,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x15,0x01,0x00,0x00,0x14,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x16,0x01,0x00,0x00,0x15,0x01,0x00,0x00, +0xea,0x00,0x00,0x00,0x72,0x00,0x04,0x00,0x9e,0x00,0x00,0x00, +0x17,0x01,0x00,0x00,0x16,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0x18,0x01,0x00,0x00,0x17,0x01,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x20,0x01,0x00,0x00, +0xe4,0x00,0x00,0x00,0x1f,0x01,0x00,0x00,0x41,0x00,0x08,0x00, +0xe5,0x00,0x00,0x00,0x21,0x01,0x00,0x00,0xd0,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,0x9a,0x00,0x00,0x00, +0x20,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0x22,0x01,0x00,0x00,0x21,0x01,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x23,0x01,0x00,0x00,0x22,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x24,0x01,0x00,0x00, +0x23,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x26,0x01,0x00,0x00,0x24,0x01,0x00,0x00,0x25,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x2d,0x01,0x00,0x00, +0xe6,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x2e,0x01,0x00,0x00,0x2d,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x2f,0x01,0x00,0x00,0x2e,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x31,0x01,0x00,0x00, +0x2f,0x01,0x00,0x00,0x30,0x01,0x00,0x00,0xc3,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x33,0x01,0x00,0x00,0x31,0x01,0x00,0x00, +0x32,0x01,0x00,0x00,0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x34,0x01,0x00,0x00,0x26,0x01,0x00,0x00,0x33,0x01,0x00,0x00, +0x72,0x00,0x04,0x00,0x9e,0x00,0x00,0x00,0x35,0x01,0x00,0x00, +0x34,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0x36,0x01,0x00,0x00,0x35,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x3e,0x01,0x00,0x00,0xe4,0x00,0x00,0x00, +0x3d,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0xe5,0x00,0x00,0x00, +0x3f,0x01,0x00,0x00,0xd0,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0xd3,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,0x3e,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x40,0x01,0x00,0x00, +0x3f,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x41,0x01,0x00,0x00,0x40,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x42,0x01,0x00,0x00,0x41,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x43,0x01,0x00,0x00, +0x42,0x01,0x00,0x00,0x25,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0x4b,0x01,0x00,0x00,0xf5,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4c,0x01,0x00,0x00, +0x4b,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x4d,0x01,0x00,0x00,0x4c,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x4e,0x01,0x00,0x00,0x4d,0x01,0x00,0x00, +0x30,0x01,0x00,0x00,0xc3,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x4f,0x01,0x00,0x00,0x4e,0x01,0x00,0x00,0x32,0x01,0x00,0x00, +0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x50,0x01,0x00,0x00, +0x43,0x01,0x00,0x00,0x4f,0x01,0x00,0x00,0x72,0x00,0x04,0x00, +0x9e,0x00,0x00,0x00,0x51,0x01,0x00,0x00,0x50,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x52,0x01,0x00,0x00, +0x51,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0x5b,0x01,0x00,0x00,0x21,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, +0x97,0x00,0x00,0x00,0x5c,0x01,0x00,0x00,0x5b,0x01,0x00,0x00, +0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x5d,0x01,0x00,0x00,0x5c,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x5e,0x01,0x00,0x00,0x5d,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x5f,0x01,0x00,0x00, +0x5e,0x01,0x00,0x00,0x25,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0x67,0x01,0x00,0x00,0x03,0x01,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x68,0x01,0x00,0x00, +0x67,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x69,0x01,0x00,0x00,0x68,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x6a,0x01,0x00,0x00,0x69,0x01,0x00,0x00, +0x30,0x01,0x00,0x00,0xc3,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x6b,0x01,0x00,0x00,0x6a,0x01,0x00,0x00,0x32,0x01,0x00,0x00, +0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x6c,0x01,0x00,0x00, +0x5f,0x01,0x00,0x00,0x6b,0x01,0x00,0x00,0x72,0x00,0x04,0x00, +0x9e,0x00,0x00,0x00,0x6d,0x01,0x00,0x00,0x6c,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x6e,0x01,0x00,0x00, +0x6d,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0x77,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, +0x97,0x00,0x00,0x00,0x78,0x01,0x00,0x00,0x77,0x01,0x00,0x00, +0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x79,0x01,0x00,0x00,0x78,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x7a,0x01,0x00,0x00,0x79,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x7b,0x01,0x00,0x00, +0x7a,0x01,0x00,0x00,0x25,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0x83,0x01,0x00,0x00,0x12,0x01,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x84,0x01,0x00,0x00, +0x83,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x85,0x01,0x00,0x00,0x84,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x86,0x01,0x00,0x00,0x85,0x01,0x00,0x00, +0x30,0x01,0x00,0x00,0xc3,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x87,0x01,0x00,0x00,0x86,0x01,0x00,0x00,0x32,0x01,0x00,0x00, +0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x88,0x01,0x00,0x00, +0x7b,0x01,0x00,0x00,0x87,0x01,0x00,0x00,0x72,0x00,0x04,0x00, +0x9e,0x00,0x00,0x00,0x89,0x01,0x00,0x00,0x88,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x8a,0x01,0x00,0x00, +0x89,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0xe5,0x00,0x00,0x00, +0x91,0x01,0x00,0x00,0xd0,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0xd3,0x00,0x00,0x00,0x8f,0x01,0x00,0x00,0x90,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x92,0x01,0x00,0x00, +0x91,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x93,0x01,0x00,0x00,0x92,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x94,0x01,0x00,0x00,0x93,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x95,0x01,0x00,0x00, +0x94,0x01,0x00,0x00,0x25,0x01,0x00,0x00,0x72,0x00,0x04,0x00, +0x9e,0x00,0x00,0x00,0x96,0x01,0x00,0x00,0x95,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x97,0x01,0x00,0x00, +0x96,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x9d,0x01,0x00,0x00,0x90,0x00,0x00,0x00,0x12,0x00,0x00,0x00, +0x41,0x00,0x08,0x00,0xe5,0x00,0x00,0x00,0x9e,0x01,0x00,0x00, +0xd0,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xd3,0x00,0x00,0x00, +0x8f,0x01,0x00,0x00,0x9d,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0x9f,0x01,0x00,0x00,0x9e,0x01,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa0,0x01,0x00,0x00, +0x9f,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0xa1,0x01,0x00,0x00,0xa0,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0xa2,0x01,0x00,0x00,0xa1,0x01,0x00,0x00, +0x25,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x9e,0x00,0x00,0x00, +0xa3,0x01,0x00,0x00,0xa2,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0xa4,0x01,0x00,0x00,0xa3,0x01,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xaa,0x01,0x00,0x00, +0x90,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,0x41,0x00,0x08,0x00, +0xe5,0x00,0x00,0x00,0xab,0x01,0x00,0x00,0xd0,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,0x8f,0x01,0x00,0x00, +0xaa,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0xac,0x01,0x00,0x00,0xab,0x01,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xad,0x01,0x00,0x00,0xac,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xae,0x01,0x00,0x00, +0xad,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0xaf,0x01,0x00,0x00,0xae,0x01,0x00,0x00,0x25,0x01,0x00,0x00, +0x72,0x00,0x04,0x00,0x9e,0x00,0x00,0x00,0xb0,0x01,0x00,0x00, +0xaf,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0xb1,0x01,0x00,0x00,0xb0,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xb8,0x01,0x00,0x00,0x90,0x00,0x00,0x00, +0xb7,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0xe5,0x00,0x00,0x00, +0xb9,0x01,0x00,0x00,0xd0,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0xd3,0x00,0x00,0x00,0x8f,0x01,0x00,0x00,0xb8,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0xba,0x01,0x00,0x00, +0xb9,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xbb,0x01,0x00,0x00,0xba,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0xbc,0x01,0x00,0x00,0xbb,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xbd,0x01,0x00,0x00, +0xbc,0x01,0x00,0x00,0x25,0x01,0x00,0x00,0x72,0x00,0x04,0x00, +0x9e,0x00,0x00,0x00,0xbe,0x01,0x00,0x00,0xbd,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0xbf,0x01,0x00,0x00, +0xbe,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0xc6,0x01,0x00,0x00,0x91,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, +0x97,0x00,0x00,0x00,0xc7,0x01,0x00,0x00,0xc6,0x01,0x00,0x00, +0x3b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0xcf,0x01,0x00,0x00,0x9e,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, +0x97,0x00,0x00,0x00,0xd0,0x01,0x00,0x00,0xcf,0x01,0x00,0x00, +0x3b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0xd8,0x01,0x00,0x00,0xab,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, +0x97,0x00,0x00,0x00,0xd9,0x01,0x00,0x00,0xd8,0x01,0x00,0x00, +0x3b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0xe1,0x01,0x00,0x00,0xb9,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, +0x97,0x00,0x00,0x00,0xe2,0x01,0x00,0x00,0xe1,0x01,0x00,0x00, +0x3b,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xe8,0x01,0x00,0x00,0x90,0x00,0x00,0x00,0x92,0x00,0x00,0x00, +0x41,0x00,0x08,0x00,0xe5,0x00,0x00,0x00,0xe9,0x01,0x00,0x00, +0xd0,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xd3,0x00,0x00,0x00, +0x8f,0x01,0x00,0x00,0xe8,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0xea,0x01,0x00,0x00,0xe9,0x01,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xeb,0x01,0x00,0x00, +0xea,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0xec,0x01,0x00,0x00,0xeb,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0xed,0x01,0x00,0x00,0xec,0x01,0x00,0x00, +0x25,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x9e,0x00,0x00,0x00, +0xee,0x01,0x00,0x00,0xed,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0xef,0x01,0x00,0x00,0xee,0x01,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf6,0x01,0x00,0x00, +0x90,0x00,0x00,0x00,0xf5,0x01,0x00,0x00,0x41,0x00,0x08,0x00, +0xe5,0x00,0x00,0x00,0xf7,0x01,0x00,0x00,0xd0,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,0x8f,0x01,0x00,0x00, +0xf6,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0xf8,0x01,0x00,0x00,0xf7,0x01,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xf9,0x01,0x00,0x00,0xf8,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xfa,0x01,0x00,0x00, +0xf9,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0xfb,0x01,0x00,0x00,0xfa,0x01,0x00,0x00,0x25,0x01,0x00,0x00, +0x72,0x00,0x04,0x00,0x9e,0x00,0x00,0x00,0xfc,0x01,0x00,0x00, +0xfb,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0xfd,0x01,0x00,0x00,0xfc,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x04,0x02,0x00,0x00,0x90,0x00,0x00,0x00, +0x03,0x02,0x00,0x00,0x41,0x00,0x08,0x00,0xe5,0x00,0x00,0x00, +0x05,0x02,0x00,0x00,0xd0,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0xd3,0x00,0x00,0x00,0x8f,0x01,0x00,0x00,0x04,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x06,0x02,0x00,0x00, +0x05,0x02,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x07,0x02,0x00,0x00,0x06,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x08,0x02,0x00,0x00,0x07,0x02,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x09,0x02,0x00,0x00, +0x08,0x02,0x00,0x00,0x25,0x01,0x00,0x00,0x72,0x00,0x04,0x00, +0x9e,0x00,0x00,0x00,0x0a,0x02,0x00,0x00,0x09,0x02,0x00,0x00, +0x7c,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x0b,0x02,0x00,0x00, +0x0a,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x12,0x02,0x00,0x00,0x90,0x00,0x00,0x00,0x11,0x02,0x00,0x00, +0x41,0x00,0x08,0x00,0xe5,0x00,0x00,0x00,0x13,0x02,0x00,0x00, +0xd0,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xd3,0x00,0x00,0x00, +0x8f,0x01,0x00,0x00,0x12,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0x14,0x02,0x00,0x00,0x13,0x02,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x15,0x02,0x00,0x00, +0x14,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x16,0x02,0x00,0x00,0x15,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x17,0x02,0x00,0x00,0x16,0x02,0x00,0x00, +0x25,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x9e,0x00,0x00,0x00, +0x18,0x02,0x00,0x00,0x17,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0x19,0x02,0x00,0x00,0x18,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x21,0x02,0x00,0x00, +0xe9,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x97,0x00,0x00,0x00, +0x22,0x02,0x00,0x00,0x21,0x02,0x00,0x00,0x3b,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x2a,0x02,0x00,0x00, +0xf7,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x97,0x00,0x00,0x00, +0x2b,0x02,0x00,0x00,0x2a,0x02,0x00,0x00,0x3b,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x33,0x02,0x00,0x00, +0x05,0x02,0x00,0x00,0xc2,0x00,0x05,0x00,0x97,0x00,0x00,0x00, +0x34,0x02,0x00,0x00,0x33,0x02,0x00,0x00,0x3b,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x3c,0x02,0x00,0x00, +0x13,0x02,0x00,0x00,0xc2,0x00,0x05,0x00,0x97,0x00,0x00,0x00, +0x3d,0x02,0x00,0x00,0x3c,0x02,0x00,0x00,0x3b,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x45,0x02,0x00,0x00, +0xd5,0x04,0x00,0x00,0xbf,0x00,0x00,0x00,0x41,0x00,0x06,0x00, +0x46,0x02,0x00,0x00,0x47,0x02,0x00,0x00,0x42,0x02,0x00,0x00, +0x61,0x00,0x00,0x00,0x45,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0xa4,0x00,0x00,0x00,0x48,0x02,0x00,0x00,0x47,0x02,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4a,0x02,0x00,0x00, +0x97,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x4b,0x02,0x00,0x00,0x4a,0x02,0x00,0x00,0x41,0x00,0x08,0x00, +0xe5,0x00,0x00,0x00,0x50,0x02,0x00,0x00,0xd0,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,0x32,0x01,0x00,0x00, +0x8a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0x51,0x02,0x00,0x00,0x50,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, +0x97,0x00,0x00,0x00,0x53,0x02,0x00,0x00,0x51,0x02,0x00,0x00, +0xa0,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x54,0x02,0x00,0x00,0x53,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x55,0x02,0x00,0x00,0x54,0x02,0x00,0x00, +0xab,0x00,0x05,0x00,0xb9,0x00,0x00,0x00,0x56,0x02,0x00,0x00, +0x55,0x02,0x00,0x00,0x61,0x00,0x00,0x00,0xa9,0x00,0x06,0x00, +0x1b,0x00,0x00,0x00,0x58,0x02,0x00,0x00,0x56,0x02,0x00,0x00, +0x57,0x02,0x00,0x00,0x61,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x59,0x02,0x00,0x00,0x4b,0x02,0x00,0x00, +0x58,0x02,0x00,0x00,0x6f,0x00,0x04,0x00,0xa4,0x00,0x00,0x00, +0x5a,0x02,0x00,0x00,0x59,0x02,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x5f,0x02,0x00,0x00,0x45,0x02,0x00,0x00, +0x12,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x46,0x02,0x00,0x00, +0x60,0x02,0x00,0x00,0x42,0x02,0x00,0x00,0x61,0x00,0x00,0x00, +0x5f,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xa4,0x00,0x00,0x00, +0x61,0x02,0x00,0x00,0x60,0x02,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x63,0x02,0x00,0x00,0xa4,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x64,0x02,0x00,0x00, +0x63,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x69,0x02,0x00,0x00,0x8a,0x00,0x00,0x00,0x12,0x00,0x00,0x00, +0x41,0x00,0x08,0x00,0xe5,0x00,0x00,0x00,0x6a,0x02,0x00,0x00, +0xd0,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xd3,0x00,0x00,0x00, +0x32,0x01,0x00,0x00,0x69,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0x6b,0x02,0x00,0x00,0x6a,0x02,0x00,0x00, +0xc7,0x00,0x05,0x00,0x97,0x00,0x00,0x00,0x6d,0x02,0x00,0x00, +0x6b,0x02,0x00,0x00,0xa0,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x6e,0x02,0x00,0x00,0x6d,0x02,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x6f,0x02,0x00,0x00, +0x6e,0x02,0x00,0x00,0xab,0x00,0x05,0x00,0xb9,0x00,0x00,0x00, +0x70,0x02,0x00,0x00,0x6f,0x02,0x00,0x00,0x61,0x00,0x00,0x00, +0xa9,0x00,0x06,0x00,0x1b,0x00,0x00,0x00,0x71,0x02,0x00,0x00, +0x70,0x02,0x00,0x00,0x57,0x02,0x00,0x00,0x61,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x72,0x02,0x00,0x00, +0x64,0x02,0x00,0x00,0x71,0x02,0x00,0x00,0x6f,0x00,0x04,0x00, +0xa4,0x00,0x00,0x00,0x73,0x02,0x00,0x00,0x72,0x02,0x00,0x00, +0x85,0x00,0x05,0x00,0xa4,0x00,0x00,0x00,0x74,0x02,0x00,0x00, +0x61,0x02,0x00,0x00,0x73,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, +0xa4,0x00,0x00,0x00,0x75,0x02,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x48,0x02,0x00,0x00,0x5a,0x02,0x00,0x00, +0x74,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x79,0x02,0x00,0x00,0x45,0x02,0x00,0x00,0xa8,0x00,0x00,0x00, +0x41,0x00,0x06,0x00,0x46,0x02,0x00,0x00,0x7a,0x02,0x00,0x00, +0x42,0x02,0x00,0x00,0x61,0x00,0x00,0x00,0x79,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0xa4,0x00,0x00,0x00,0x7b,0x02,0x00,0x00, +0x7a,0x02,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x7d,0x02,0x00,0x00,0xb1,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x7e,0x02,0x00,0x00,0x7d,0x02,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x83,0x02,0x00,0x00, +0x8a,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,0x41,0x00,0x08,0x00, +0xe5,0x00,0x00,0x00,0x84,0x02,0x00,0x00,0xd0,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,0x32,0x01,0x00,0x00, +0x83,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0x85,0x02,0x00,0x00,0x84,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, +0x97,0x00,0x00,0x00,0x87,0x02,0x00,0x00,0x85,0x02,0x00,0x00, +0xa0,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x88,0x02,0x00,0x00,0x87,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x89,0x02,0x00,0x00,0x88,0x02,0x00,0x00, +0xab,0x00,0x05,0x00,0xb9,0x00,0x00,0x00,0x8a,0x02,0x00,0x00, +0x89,0x02,0x00,0x00,0x61,0x00,0x00,0x00,0xa9,0x00,0x06,0x00, +0x1b,0x00,0x00,0x00,0x8b,0x02,0x00,0x00,0x8a,0x02,0x00,0x00, +0x57,0x02,0x00,0x00,0x61,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x8c,0x02,0x00,0x00,0x7e,0x02,0x00,0x00, +0x8b,0x02,0x00,0x00,0x6f,0x00,0x04,0x00,0xa4,0x00,0x00,0x00, +0x8d,0x02,0x00,0x00,0x8c,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, +0xa4,0x00,0x00,0x00,0x8f,0x02,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x7b,0x02,0x00,0x00,0x8d,0x02,0x00,0x00, +0x75,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x93,0x02,0x00,0x00,0x45,0x02,0x00,0x00,0xb7,0x01,0x00,0x00, +0x41,0x00,0x06,0x00,0x46,0x02,0x00,0x00,0x94,0x02,0x00,0x00, +0x42,0x02,0x00,0x00,0x61,0x00,0x00,0x00,0x93,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0xa4,0x00,0x00,0x00,0x95,0x02,0x00,0x00, +0x94,0x02,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x97,0x02,0x00,0x00,0xbf,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x98,0x02,0x00,0x00,0x97,0x02,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9d,0x02,0x00,0x00, +0x8a,0x00,0x00,0x00,0xb7,0x01,0x00,0x00,0x41,0x00,0x08,0x00, +0xe5,0x00,0x00,0x00,0x9e,0x02,0x00,0x00,0xd0,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,0x32,0x01,0x00,0x00, +0x9d,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0x9f,0x02,0x00,0x00,0x9e,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, +0x97,0x00,0x00,0x00,0xa1,0x02,0x00,0x00,0x9f,0x02,0x00,0x00, +0xa0,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xa2,0x02,0x00,0x00,0xa1,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0xa3,0x02,0x00,0x00,0xa2,0x02,0x00,0x00, +0xab,0x00,0x05,0x00,0xb9,0x00,0x00,0x00,0xa4,0x02,0x00,0x00, +0xa3,0x02,0x00,0x00,0x61,0x00,0x00,0x00,0xa9,0x00,0x06,0x00, +0x1b,0x00,0x00,0x00,0xa5,0x02,0x00,0x00,0xa4,0x02,0x00,0x00, +0x57,0x02,0x00,0x00,0x61,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0xa6,0x02,0x00,0x00,0x98,0x02,0x00,0x00, +0xa5,0x02,0x00,0x00,0x6f,0x00,0x04,0x00,0xa4,0x00,0x00,0x00, +0xa7,0x02,0x00,0x00,0xa6,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, +0xa4,0x00,0x00,0x00,0xa9,0x02,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x95,0x02,0x00,0x00,0xa7,0x02,0x00,0x00, +0x8f,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xae,0x02,0x00,0x00,0x45,0x02,0x00,0x00,0x8c,0x00,0x00,0x00, +0x41,0x00,0x06,0x00,0x46,0x02,0x00,0x00,0xaf,0x02,0x00,0x00, +0x42,0x02,0x00,0x00,0x61,0x00,0x00,0x00,0xae,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0xa4,0x00,0x00,0x00,0xb0,0x02,0x00,0x00, +0xaf,0x02,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xb2,0x02,0x00,0x00,0xc7,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0xb3,0x02,0x00,0x00,0xb2,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0xb9,0x02,0x00,0x00, +0x50,0x02,0x00,0x00,0xc4,0x00,0x05,0x00,0x97,0x00,0x00,0x00, +0xbb,0x02,0x00,0x00,0xa0,0x00,0x00,0x00,0x9a,0x00,0x00,0x00, +0xc7,0x00,0x05,0x00,0x97,0x00,0x00,0x00,0xbc,0x02,0x00,0x00, +0xb9,0x02,0x00,0x00,0xbb,0x02,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xbd,0x02,0x00,0x00,0xbc,0x02,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xbe,0x02,0x00,0x00, +0xbd,0x02,0x00,0x00,0xab,0x00,0x05,0x00,0xb9,0x00,0x00,0x00, +0xbf,0x02,0x00,0x00,0xbe,0x02,0x00,0x00,0x61,0x00,0x00,0x00, +0xa9,0x00,0x06,0x00,0x1b,0x00,0x00,0x00,0xc0,0x02,0x00,0x00, +0xbf,0x02,0x00,0x00,0x57,0x02,0x00,0x00,0x61,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xc1,0x02,0x00,0x00, +0xb3,0x02,0x00,0x00,0xc0,0x02,0x00,0x00,0x6f,0x00,0x04,0x00, +0xa4,0x00,0x00,0x00,0xc2,0x02,0x00,0x00,0xc1,0x02,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc8,0x02,0x00,0x00, +0x45,0x02,0x00,0x00,0xc7,0x02,0x00,0x00,0x41,0x00,0x06,0x00, +0x46,0x02,0x00,0x00,0xc9,0x02,0x00,0x00,0x42,0x02,0x00,0x00, +0x61,0x00,0x00,0x00,0xc8,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0xa4,0x00,0x00,0x00,0xca,0x02,0x00,0x00,0xc9,0x02,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xcc,0x02,0x00,0x00, +0xd0,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0xcd,0x02,0x00,0x00,0xcc,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0xd4,0x02,0x00,0x00,0x6a,0x02,0x00,0x00, +0xc7,0x00,0x05,0x00,0x97,0x00,0x00,0x00,0xd7,0x02,0x00,0x00, +0xd4,0x02,0x00,0x00,0xbb,0x02,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xd8,0x02,0x00,0x00,0xd7,0x02,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xd9,0x02,0x00,0x00, +0xd8,0x02,0x00,0x00,0xab,0x00,0x05,0x00,0xb9,0x00,0x00,0x00, +0xda,0x02,0x00,0x00,0xd9,0x02,0x00,0x00,0x61,0x00,0x00,0x00, +0xa9,0x00,0x06,0x00,0x1b,0x00,0x00,0x00,0xdb,0x02,0x00,0x00, +0xda,0x02,0x00,0x00,0x57,0x02,0x00,0x00,0x61,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xdc,0x02,0x00,0x00, +0xcd,0x02,0x00,0x00,0xdb,0x02,0x00,0x00,0x6f,0x00,0x04,0x00, +0xa4,0x00,0x00,0x00,0xdd,0x02,0x00,0x00,0xdc,0x02,0x00,0x00, +0x85,0x00,0x05,0x00,0xa4,0x00,0x00,0x00,0xde,0x02,0x00,0x00, +0xca,0x02,0x00,0x00,0xdd,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, +0xa4,0x00,0x00,0x00,0xdf,0x02,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0xb0,0x02,0x00,0x00,0xc2,0x02,0x00,0x00, +0xde,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xe4,0x02,0x00,0x00,0x45,0x02,0x00,0x00,0xe3,0x02,0x00,0x00, +0x41,0x00,0x06,0x00,0x46,0x02,0x00,0x00,0xe5,0x02,0x00,0x00, +0x42,0x02,0x00,0x00,0x61,0x00,0x00,0x00,0xe4,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0xa4,0x00,0x00,0x00,0xe6,0x02,0x00,0x00, +0xe5,0x02,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xe8,0x02,0x00,0x00,0xd9,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0xe9,0x02,0x00,0x00,0xe8,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0xf0,0x02,0x00,0x00, +0x84,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x97,0x00,0x00,0x00, +0xf3,0x02,0x00,0x00,0xf0,0x02,0x00,0x00,0xbb,0x02,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xf4,0x02,0x00,0x00, +0xf3,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0xf5,0x02,0x00,0x00,0xf4,0x02,0x00,0x00,0xab,0x00,0x05,0x00, +0xb9,0x00,0x00,0x00,0xf6,0x02,0x00,0x00,0xf5,0x02,0x00,0x00, +0x61,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,0x1b,0x00,0x00,0x00, +0xf7,0x02,0x00,0x00,0xf6,0x02,0x00,0x00,0x57,0x02,0x00,0x00, +0x61,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0xf8,0x02,0x00,0x00,0xe9,0x02,0x00,0x00,0xf7,0x02,0x00,0x00, +0x6f,0x00,0x04,0x00,0xa4,0x00,0x00,0x00,0xf9,0x02,0x00,0x00, +0xf8,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0xa4,0x00,0x00,0x00, +0xfb,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0xe6,0x02,0x00,0x00,0xf9,0x02,0x00,0x00,0xdf,0x02,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x00,0x03,0x00,0x00, +0x45,0x02,0x00,0x00,0xff,0x02,0x00,0x00,0x41,0x00,0x06,0x00, +0x46,0x02,0x00,0x00,0x01,0x03,0x00,0x00,0x42,0x02,0x00,0x00, +0x61,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, +0xa4,0x00,0x00,0x00,0x02,0x03,0x00,0x00,0x01,0x03,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x04,0x03,0x00,0x00, +0xe2,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x05,0x03,0x00,0x00,0x04,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0x0c,0x03,0x00,0x00,0x9e,0x02,0x00,0x00, +0xc7,0x00,0x05,0x00,0x97,0x00,0x00,0x00,0x0f,0x03,0x00,0x00, +0x0c,0x03,0x00,0x00,0xbb,0x02,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x10,0x03,0x00,0x00,0x0f,0x03,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x11,0x03,0x00,0x00, +0x10,0x03,0x00,0x00,0xab,0x00,0x05,0x00,0xb9,0x00,0x00,0x00, +0x12,0x03,0x00,0x00,0x11,0x03,0x00,0x00,0x61,0x00,0x00,0x00, +0xa9,0x00,0x06,0x00,0x1b,0x00,0x00,0x00,0x13,0x03,0x00,0x00, +0x12,0x03,0x00,0x00,0x57,0x02,0x00,0x00,0x61,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x14,0x03,0x00,0x00, +0x05,0x03,0x00,0x00,0x13,0x03,0x00,0x00,0x6f,0x00,0x04,0x00, +0xa4,0x00,0x00,0x00,0x15,0x03,0x00,0x00,0x14,0x03,0x00,0x00, +0x0c,0x00,0x08,0x00,0xa4,0x00,0x00,0x00,0x17,0x03,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x02,0x03,0x00,0x00, +0x15,0x03,0x00,0x00,0xfb,0x02,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x1b,0x03,0x00,0x00,0xd5,0x04,0x00,0x00, +0xc3,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x46,0x02,0x00,0x00, +0x1c,0x03,0x00,0x00,0x42,0x02,0x00,0x00,0x61,0x00,0x00,0x00, +0x1b,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0xa4,0x00,0x00,0x00, +0x1d,0x03,0x00,0x00,0x1c,0x03,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x1f,0x03,0x00,0x00,0xef,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x20,0x03,0x00,0x00, +0x1f,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0x26,0x03,0x00,0x00,0x50,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, +0x97,0x00,0x00,0x00,0x28,0x03,0x00,0x00,0x26,0x03,0x00,0x00, +0xa3,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x29,0x03,0x00,0x00,0x28,0x03,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x2a,0x03,0x00,0x00,0x29,0x03,0x00,0x00, +0xab,0x00,0x05,0x00,0xb9,0x00,0x00,0x00,0x2b,0x03,0x00,0x00, +0x2a,0x03,0x00,0x00,0x61,0x00,0x00,0x00,0xa9,0x00,0x06,0x00, +0x1b,0x00,0x00,0x00,0x2c,0x03,0x00,0x00,0x2b,0x03,0x00,0x00, +0x57,0x02,0x00,0x00,0x61,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x2d,0x03,0x00,0x00,0x20,0x03,0x00,0x00, +0x2c,0x03,0x00,0x00,0x6f,0x00,0x04,0x00,0xa4,0x00,0x00,0x00, +0x2e,0x03,0x00,0x00,0x2d,0x03,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x33,0x03,0x00,0x00,0x1b,0x03,0x00,0x00, +0x12,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x46,0x02,0x00,0x00, +0x34,0x03,0x00,0x00,0x42,0x02,0x00,0x00,0x61,0x00,0x00,0x00, +0x33,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0xa4,0x00,0x00,0x00, +0x35,0x03,0x00,0x00,0x34,0x03,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x37,0x03,0x00,0x00,0xfd,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x38,0x03,0x00,0x00, +0x37,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0x3f,0x03,0x00,0x00,0x6a,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, +0x97,0x00,0x00,0x00,0x41,0x03,0x00,0x00,0x3f,0x03,0x00,0x00, +0xa3,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x42,0x03,0x00,0x00,0x41,0x03,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x43,0x03,0x00,0x00,0x42,0x03,0x00,0x00, +0xab,0x00,0x05,0x00,0xb9,0x00,0x00,0x00,0x44,0x03,0x00,0x00, +0x43,0x03,0x00,0x00,0x61,0x00,0x00,0x00,0xa9,0x00,0x06,0x00, 0x1b,0x00,0x00,0x00,0x45,0x03,0x00,0x00,0x44,0x03,0x00,0x00, -0xab,0x00,0x05,0x00,0xb2,0x00,0x00,0x00,0x46,0x03,0x00,0x00, -0x45,0x03,0x00,0x00,0x59,0x00,0x00,0x00,0xa9,0x00,0x06,0x00, -0x1b,0x00,0x00,0x00,0x47,0x03,0x00,0x00,0x46,0x03,0x00,0x00, -0x50,0x02,0x00,0x00,0x59,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x48,0x03,0x00,0x00,0x3a,0x03,0x00,0x00, -0x47,0x03,0x00,0x00,0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, -0x49,0x03,0x00,0x00,0x48,0x03,0x00,0x00,0x85,0x00,0x05,0x00, -0x9d,0x00,0x00,0x00,0x4a,0x03,0x00,0x00,0x37,0x03,0x00,0x00, -0x49,0x03,0x00,0x00,0x0c,0x00,0x08,0x00,0x9d,0x00,0x00,0x00, -0x4b,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x1e,0x03,0x00,0x00,0x2f,0x03,0x00,0x00,0x4a,0x03,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4f,0x03,0x00,0x00, -0x1b,0x03,0x00,0x00,0xa1,0x00,0x00,0x00,0x41,0x00,0x06,0x00, -0xcd,0x00,0x00,0x00,0x50,0x03,0x00,0x00,0x3b,0x02,0x00,0x00, -0x59,0x00,0x00,0x00,0x4f,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, -0xbf,0x00,0x00,0x00,0x51,0x03,0x00,0x00,0x50,0x03,0x00,0x00, -0x73,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0x52,0x03,0x00,0x00, -0x51,0x03,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x54,0x03,0x00,0x00,0x04,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x55,0x03,0x00,0x00,0x54,0x03,0x00,0x00, -0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0x5c,0x03,0x00,0x00, -0x7f,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x90,0x00,0x00,0x00, -0x5e,0x03,0x00,0x00,0x5c,0x03,0x00,0x00,0x9c,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x5f,0x03,0x00,0x00, -0x5e,0x03,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x60,0x03,0x00,0x00,0x5f,0x03,0x00,0x00,0xab,0x00,0x05,0x00, -0xb2,0x00,0x00,0x00,0x61,0x03,0x00,0x00,0x60,0x03,0x00,0x00, -0x59,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,0x1b,0x00,0x00,0x00, -0x62,0x03,0x00,0x00,0x61,0x03,0x00,0x00,0x50,0x02,0x00,0x00, -0x59,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x63,0x03,0x00,0x00,0x55,0x03,0x00,0x00,0x62,0x03,0x00,0x00, -0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0x64,0x03,0x00,0x00, -0x63,0x03,0x00,0x00,0x0c,0x00,0x08,0x00,0x9d,0x00,0x00,0x00, -0x66,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x52,0x03,0x00,0x00,0x64,0x03,0x00,0x00,0x4b,0x03,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6a,0x03,0x00,0x00, -0x1b,0x03,0x00,0x00,0xb0,0x01,0x00,0x00,0x41,0x00,0x06,0x00, -0xcd,0x00,0x00,0x00,0x6b,0x03,0x00,0x00,0x3b,0x02,0x00,0x00, -0x59,0x00,0x00,0x00,0x6a,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, -0xbf,0x00,0x00,0x00,0x6c,0x03,0x00,0x00,0x6b,0x03,0x00,0x00, -0x73,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0x6d,0x03,0x00,0x00, -0x6c,0x03,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x6f,0x03,0x00,0x00,0x12,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x70,0x03,0x00,0x00,0x6f,0x03,0x00,0x00, -0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0x77,0x03,0x00,0x00, -0x9a,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x90,0x00,0x00,0x00, -0x79,0x03,0x00,0x00,0x77,0x03,0x00,0x00,0x9c,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x7a,0x03,0x00,0x00, -0x79,0x03,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x7b,0x03,0x00,0x00,0x7a,0x03,0x00,0x00,0xab,0x00,0x05,0x00, -0xb2,0x00,0x00,0x00,0x7c,0x03,0x00,0x00,0x7b,0x03,0x00,0x00, -0x59,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,0x1b,0x00,0x00,0x00, -0x7d,0x03,0x00,0x00,0x7c,0x03,0x00,0x00,0x50,0x02,0x00,0x00, -0x59,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x7e,0x03,0x00,0x00,0x70,0x03,0x00,0x00,0x7d,0x03,0x00,0x00, -0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0x7f,0x03,0x00,0x00, -0x7e,0x03,0x00,0x00,0x0c,0x00,0x08,0x00,0x9d,0x00,0x00,0x00, -0x81,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x6d,0x03,0x00,0x00,0x7f,0x03,0x00,0x00,0x66,0x03,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x86,0x03,0x00,0x00, -0x1b,0x03,0x00,0x00,0x85,0x00,0x00,0x00,0x41,0x00,0x06,0x00, -0xcd,0x00,0x00,0x00,0x87,0x03,0x00,0x00,0x3b,0x02,0x00,0x00, -0x59,0x00,0x00,0x00,0x86,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, -0xbf,0x00,0x00,0x00,0x88,0x03,0x00,0x00,0x87,0x03,0x00,0x00, -0x73,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0x89,0x03,0x00,0x00, -0x88,0x03,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x8b,0x03,0x00,0x00,0x1b,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x8c,0x03,0x00,0x00,0x8b,0x03,0x00,0x00, -0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0x92,0x03,0x00,0x00, -0x49,0x02,0x00,0x00,0xc4,0x00,0x05,0x00,0x90,0x00,0x00,0x00, -0x94,0x03,0x00,0x00,0x9c,0x00,0x00,0x00,0x93,0x00,0x00,0x00, -0xc7,0x00,0x05,0x00,0x90,0x00,0x00,0x00,0x95,0x03,0x00,0x00, -0x92,0x03,0x00,0x00,0x94,0x03,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x96,0x03,0x00,0x00,0x95,0x03,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x97,0x03,0x00,0x00, -0x96,0x03,0x00,0x00,0xab,0x00,0x05,0x00,0xb2,0x00,0x00,0x00, -0x98,0x03,0x00,0x00,0x97,0x03,0x00,0x00,0x59,0x00,0x00,0x00, -0xa9,0x00,0x06,0x00,0x1b,0x00,0x00,0x00,0x99,0x03,0x00,0x00, -0x98,0x03,0x00,0x00,0x50,0x02,0x00,0x00,0x59,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x9a,0x03,0x00,0x00, -0x8c,0x03,0x00,0x00,0x99,0x03,0x00,0x00,0x6f,0x00,0x04,0x00, -0x9d,0x00,0x00,0x00,0x9b,0x03,0x00,0x00,0x9a,0x03,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa0,0x03,0x00,0x00, -0x1b,0x03,0x00,0x00,0xc4,0x02,0x00,0x00,0x41,0x00,0x06,0x00, -0xcd,0x00,0x00,0x00,0xa1,0x03,0x00,0x00,0x3b,0x02,0x00,0x00, -0x59,0x00,0x00,0x00,0xa0,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, -0xbf,0x00,0x00,0x00,0xa2,0x03,0x00,0x00,0xa1,0x03,0x00,0x00, -0x73,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0xa3,0x03,0x00,0x00, -0xa2,0x03,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xa5,0x03,0x00,0x00,0x24,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0xa6,0x03,0x00,0x00,0xa5,0x03,0x00,0x00, -0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0xad,0x03,0x00,0x00, -0x64,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x90,0x00,0x00,0x00, -0xb0,0x03,0x00,0x00,0xad,0x03,0x00,0x00,0x94,0x03,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xb1,0x03,0x00,0x00, -0xb0,0x03,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0xb2,0x03,0x00,0x00,0xb1,0x03,0x00,0x00,0xab,0x00,0x05,0x00, -0xb2,0x00,0x00,0x00,0xb3,0x03,0x00,0x00,0xb2,0x03,0x00,0x00, -0x59,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,0x1b,0x00,0x00,0x00, -0xb4,0x03,0x00,0x00,0xb3,0x03,0x00,0x00,0x50,0x02,0x00,0x00, -0x59,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0xb5,0x03,0x00,0x00,0xa6,0x03,0x00,0x00,0xb4,0x03,0x00,0x00, -0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0xb6,0x03,0x00,0x00, -0xb5,0x03,0x00,0x00,0x85,0x00,0x05,0x00,0x9d,0x00,0x00,0x00, -0xb7,0x03,0x00,0x00,0xa3,0x03,0x00,0x00,0xb6,0x03,0x00,0x00, -0x0c,0x00,0x08,0x00,0x9d,0x00,0x00,0x00,0xb8,0x03,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x89,0x03,0x00,0x00, -0x9b,0x03,0x00,0x00,0xb7,0x03,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xbc,0x03,0x00,0x00,0x1b,0x03,0x00,0x00, -0xe1,0x02,0x00,0x00,0x41,0x00,0x06,0x00,0xcd,0x00,0x00,0x00, -0xbd,0x03,0x00,0x00,0x3b,0x02,0x00,0x00,0x59,0x00,0x00,0x00, -0xbc,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0xbf,0x00,0x00,0x00, -0xbe,0x03,0x00,0x00,0xbd,0x03,0x00,0x00,0x73,0x00,0x04,0x00, -0x9d,0x00,0x00,0x00,0xbf,0x03,0x00,0x00,0xbe,0x03,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xc1,0x03,0x00,0x00, -0x2d,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0xc2,0x03,0x00,0x00,0xc1,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0xc9,0x03,0x00,0x00,0x7f,0x02,0x00,0x00, -0xc7,0x00,0x05,0x00,0x90,0x00,0x00,0x00,0xcc,0x03,0x00,0x00, -0xc9,0x03,0x00,0x00,0x94,0x03,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xcd,0x03,0x00,0x00,0xcc,0x03,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xce,0x03,0x00,0x00, -0xcd,0x03,0x00,0x00,0xab,0x00,0x05,0x00,0xb2,0x00,0x00,0x00, -0xcf,0x03,0x00,0x00,0xce,0x03,0x00,0x00,0x59,0x00,0x00,0x00, -0xa9,0x00,0x06,0x00,0x1b,0x00,0x00,0x00,0xd0,0x03,0x00,0x00, -0xcf,0x03,0x00,0x00,0x50,0x02,0x00,0x00,0x59,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xd1,0x03,0x00,0x00, -0xc2,0x03,0x00,0x00,0xd0,0x03,0x00,0x00,0x6f,0x00,0x04,0x00, -0x9d,0x00,0x00,0x00,0xd2,0x03,0x00,0x00,0xd1,0x03,0x00,0x00, -0x0c,0x00,0x08,0x00,0x9d,0x00,0x00,0x00,0xd4,0x03,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xbf,0x03,0x00,0x00, -0xd2,0x03,0x00,0x00,0xb8,0x03,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xd8,0x03,0x00,0x00,0x1b,0x03,0x00,0x00, -0xfe,0x02,0x00,0x00,0x41,0x00,0x06,0x00,0xcd,0x00,0x00,0x00, -0xd9,0x03,0x00,0x00,0x3b,0x02,0x00,0x00,0x59,0x00,0x00,0x00, -0xd8,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0xbf,0x00,0x00,0x00, -0xda,0x03,0x00,0x00,0xd9,0x03,0x00,0x00,0x73,0x00,0x04,0x00, -0x9d,0x00,0x00,0x00,0xdb,0x03,0x00,0x00,0xda,0x03,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xdd,0x03,0x00,0x00, -0x36,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0xde,0x03,0x00,0x00,0xdd,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0xe5,0x03,0x00,0x00,0x9a,0x02,0x00,0x00, -0xc7,0x00,0x05,0x00,0x90,0x00,0x00,0x00,0xe8,0x03,0x00,0x00, -0xe5,0x03,0x00,0x00,0x94,0x03,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xe9,0x03,0x00,0x00,0xe8,0x03,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xea,0x03,0x00,0x00, -0xe9,0x03,0x00,0x00,0xab,0x00,0x05,0x00,0xb2,0x00,0x00,0x00, -0xeb,0x03,0x00,0x00,0xea,0x03,0x00,0x00,0x59,0x00,0x00,0x00, -0xa9,0x00,0x06,0x00,0x1b,0x00,0x00,0x00,0xec,0x03,0x00,0x00, -0xeb,0x03,0x00,0x00,0x50,0x02,0x00,0x00,0x59,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xed,0x03,0x00,0x00, -0xde,0x03,0x00,0x00,0xec,0x03,0x00,0x00,0x6f,0x00,0x04,0x00, -0x9d,0x00,0x00,0x00,0xee,0x03,0x00,0x00,0xed,0x03,0x00,0x00, -0x0c,0x00,0x08,0x00,0x9d,0x00,0x00,0x00,0xf0,0x03,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xdb,0x03,0x00,0x00, -0xee,0x03,0x00,0x00,0xd4,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, -0xbf,0x00,0x00,0x00,0xf6,0x03,0x00,0x00,0x3f,0x02,0x00,0x00, -0x73,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0xf7,0x03,0x00,0x00, -0xf6,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0xbf,0x00,0x00,0x00, -0xfd,0x03,0x00,0x00,0x59,0x02,0x00,0x00,0x73,0x00,0x04,0x00, -0x9d,0x00,0x00,0x00,0xfe,0x03,0x00,0x00,0xfd,0x03,0x00,0x00, -0x81,0x00,0x05,0x00,0x9d,0x00,0x00,0x00,0xff,0x03,0x00,0x00, -0xf7,0x03,0x00,0x00,0xfe,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, -0xbf,0x00,0x00,0x00,0x05,0x04,0x00,0x00,0x74,0x02,0x00,0x00, -0x73,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0x06,0x04,0x00,0x00, -0x05,0x04,0x00,0x00,0x81,0x00,0x05,0x00,0x9d,0x00,0x00,0x00, -0x07,0x04,0x00,0x00,0xff,0x03,0x00,0x00,0x06,0x04,0x00,0x00, -0x3d,0x00,0x04,0x00,0xbf,0x00,0x00,0x00,0x0d,0x04,0x00,0x00, -0x8f,0x02,0x00,0x00,0x73,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, -0x0e,0x04,0x00,0x00,0x0d,0x04,0x00,0x00,0x81,0x00,0x05,0x00, -0x9d,0x00,0x00,0x00,0x0f,0x04,0x00,0x00,0x07,0x04,0x00,0x00, -0x0e,0x04,0x00,0x00,0x70,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, -0x11,0x04,0x00,0x00,0x02,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0xbf,0x00,0x00,0x00,0x18,0x04,0x00,0x00,0xab,0x02,0x00,0x00, -0x73,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0x19,0x04,0x00,0x00, -0x18,0x04,0x00,0x00,0x3d,0x00,0x04,0x00,0xbf,0x00,0x00,0x00, -0x1f,0x04,0x00,0x00,0xc6,0x02,0x00,0x00,0x73,0x00,0x04,0x00, -0x9d,0x00,0x00,0x00,0x20,0x04,0x00,0x00,0x1f,0x04,0x00,0x00, -0x81,0x00,0x05,0x00,0x9d,0x00,0x00,0x00,0x21,0x04,0x00,0x00, -0x19,0x04,0x00,0x00,0x20,0x04,0x00,0x00,0x3d,0x00,0x04,0x00, -0xbf,0x00,0x00,0x00,0x27,0x04,0x00,0x00,0xe3,0x02,0x00,0x00, -0x73,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0x28,0x04,0x00,0x00, -0x27,0x04,0x00,0x00,0x81,0x00,0x05,0x00,0x9d,0x00,0x00,0x00, -0x29,0x04,0x00,0x00,0x21,0x04,0x00,0x00,0x28,0x04,0x00,0x00, -0x3d,0x00,0x04,0x00,0xbf,0x00,0x00,0x00,0x2f,0x04,0x00,0x00, -0x00,0x03,0x00,0x00,0x73,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, -0x30,0x04,0x00,0x00,0x2f,0x04,0x00,0x00,0x81,0x00,0x05,0x00, -0x9d,0x00,0x00,0x00,0x31,0x04,0x00,0x00,0x29,0x04,0x00,0x00, -0x30,0x04,0x00,0x00,0x70,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, -0x33,0x04,0x00,0x00,0x11,0x01,0x00,0x00,0x85,0x00,0x05,0x00, -0x9d,0x00,0x00,0x00,0x34,0x04,0x00,0x00,0x31,0x04,0x00,0x00, -0x33,0x04,0x00,0x00,0x0c,0x00,0x08,0x00,0x9d,0x00,0x00,0x00, -0x35,0x04,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x0f,0x04,0x00,0x00,0x11,0x04,0x00,0x00,0x34,0x04,0x00,0x00, -0x3d,0x00,0x04,0x00,0xbf,0x00,0x00,0x00,0x3a,0x04,0x00,0x00, -0x1c,0x03,0x00,0x00,0x73,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, -0x3b,0x04,0x00,0x00,0x3a,0x04,0x00,0x00,0x3d,0x00,0x04,0x00, -0xbf,0x00,0x00,0x00,0x41,0x04,0x00,0x00,0x35,0x03,0x00,0x00, -0x73,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0x42,0x04,0x00,0x00, -0x41,0x04,0x00,0x00,0x81,0x00,0x05,0x00,0x9d,0x00,0x00,0x00, -0x43,0x04,0x00,0x00,0x3b,0x04,0x00,0x00,0x42,0x04,0x00,0x00, -0x3d,0x00,0x04,0x00,0xbf,0x00,0x00,0x00,0x49,0x04,0x00,0x00, -0x50,0x03,0x00,0x00,0x73,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, -0x4a,0x04,0x00,0x00,0x49,0x04,0x00,0x00,0x81,0x00,0x05,0x00, -0x9d,0x00,0x00,0x00,0x4b,0x04,0x00,0x00,0x43,0x04,0x00,0x00, -0x4a,0x04,0x00,0x00,0x3d,0x00,0x04,0x00,0xbf,0x00,0x00,0x00, -0x51,0x04,0x00,0x00,0x6b,0x03,0x00,0x00,0x73,0x00,0x04,0x00, -0x9d,0x00,0x00,0x00,0x52,0x04,0x00,0x00,0x51,0x04,0x00,0x00, -0x81,0x00,0x05,0x00,0x9d,0x00,0x00,0x00,0x53,0x04,0x00,0x00, -0x4b,0x04,0x00,0x00,0x52,0x04,0x00,0x00,0x70,0x00,0x04,0x00, -0x9d,0x00,0x00,0x00,0x55,0x04,0x00,0x00,0x67,0x01,0x00,0x00, -0x0c,0x00,0x08,0x00,0x9d,0x00,0x00,0x00,0x57,0x04,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x53,0x04,0x00,0x00, -0x55,0x04,0x00,0x00,0x35,0x04,0x00,0x00,0x3d,0x00,0x04,0x00, -0xbf,0x00,0x00,0x00,0x5d,0x04,0x00,0x00,0x87,0x03,0x00,0x00, -0x73,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0x5e,0x04,0x00,0x00, -0x5d,0x04,0x00,0x00,0x3d,0x00,0x04,0x00,0xbf,0x00,0x00,0x00, -0x64,0x04,0x00,0x00,0xa1,0x03,0x00,0x00,0x73,0x00,0x04,0x00, -0x9d,0x00,0x00,0x00,0x65,0x04,0x00,0x00,0x64,0x04,0x00,0x00, -0x81,0x00,0x05,0x00,0x9d,0x00,0x00,0x00,0x66,0x04,0x00,0x00, -0x5e,0x04,0x00,0x00,0x65,0x04,0x00,0x00,0x3d,0x00,0x04,0x00, -0xbf,0x00,0x00,0x00,0x6c,0x04,0x00,0x00,0xbd,0x03,0x00,0x00, -0x73,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0x6d,0x04,0x00,0x00, -0x6c,0x04,0x00,0x00,0x81,0x00,0x05,0x00,0x9d,0x00,0x00,0x00, -0x6e,0x04,0x00,0x00,0x66,0x04,0x00,0x00,0x6d,0x04,0x00,0x00, -0x3d,0x00,0x04,0x00,0xbf,0x00,0x00,0x00,0x74,0x04,0x00,0x00, -0xd9,0x03,0x00,0x00,0x73,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, -0x75,0x04,0x00,0x00,0x74,0x04,0x00,0x00,0x81,0x00,0x05,0x00, -0x9d,0x00,0x00,0x00,0x76,0x04,0x00,0x00,0x6e,0x04,0x00,0x00, -0x75,0x04,0x00,0x00,0x70,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, -0x78,0x04,0x00,0x00,0x83,0x01,0x00,0x00,0x0c,0x00,0x08,0x00, -0x9d,0x00,0x00,0x00,0x7a,0x04,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0x76,0x04,0x00,0x00,0x78,0x04,0x00,0x00, -0x57,0x04,0x00,0x00,0x70,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, -0x82,0x04,0x00,0x00,0xe6,0x00,0x00,0x00,0x70,0x00,0x04,0x00, -0x9d,0x00,0x00,0x00,0x86,0x04,0x00,0x00,0xf4,0x00,0x00,0x00, -0x85,0x00,0x05,0x00,0x9d,0x00,0x00,0x00,0x87,0x04,0x00,0x00, -0x17,0x03,0x00,0x00,0x86,0x04,0x00,0x00,0x0c,0x00,0x08,0x00, -0x9d,0x00,0x00,0x00,0x88,0x04,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0xa5,0x02,0x00,0x00,0x82,0x04,0x00,0x00, -0x87,0x04,0x00,0x00,0x70,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, -0x8b,0x04,0x00,0x00,0x2f,0x01,0x00,0x00,0x0c,0x00,0x08,0x00, -0x9d,0x00,0x00,0x00,0x8d,0x04,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0x81,0x03,0x00,0x00,0x8b,0x04,0x00,0x00, -0x88,0x04,0x00,0x00,0x70,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, -0x90,0x04,0x00,0x00,0x4b,0x01,0x00,0x00,0x0c,0x00,0x08,0x00, -0x9d,0x00,0x00,0x00,0x92,0x04,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0xf0,0x03,0x00,0x00,0x90,0x04,0x00,0x00, -0x8d,0x04,0x00,0x00,0x85,0x00,0x05,0x00,0x9d,0x00,0x00,0x00, -0x96,0x04,0x00,0x00,0xd7,0x00,0x00,0x00,0x7a,0x04,0x00,0x00, -0x7f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0xf7,0x04,0x00,0x00, -0x96,0x04,0x00,0x00,0x0c,0x00,0x08,0x00,0x9d,0x00,0x00,0x00, -0x97,0x04,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0xd0,0x00,0x00,0x00,0x92,0x04,0x00,0x00,0xf7,0x04,0x00,0x00, -0x3d,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0x99,0x04,0x00,0x00, -0xa8,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x9d,0x00,0x00,0x00, -0x9a,0x04,0x00,0x00,0x99,0x04,0x00,0x00,0x97,0x04,0x00,0x00, -0x3e,0x00,0x03,0x00,0xa8,0x00,0x00,0x00,0x9a,0x04,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9d,0x04,0x00,0x00, -0xf3,0x04,0x00,0x00,0x69,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, -0xab,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xad,0x00,0x00,0x00, -0xe0,0x00,0x04,0x00,0x69,0x00,0x00,0x00,0x69,0x00,0x00,0x00, -0x9e,0x04,0x00,0x00,0xf9,0x00,0x02,0x00,0xa0,0x04,0x00,0x00, -0xf8,0x00,0x02,0x00,0xa0,0x04,0x00,0x00,0xf5,0x00,0x07,0x00, -0x06,0x00,0x00,0x00,0xf4,0x04,0x00,0x00,0xa1,0x00,0x00,0x00, -0xad,0x00,0x00,0x00,0xb7,0x04,0x00,0x00,0xa3,0x04,0x00,0x00, -0xac,0x00,0x05,0x00,0xb2,0x00,0x00,0x00,0xa6,0x04,0x00,0x00, -0xf4,0x04,0x00,0x00,0x4b,0x00,0x00,0x00,0xf6,0x00,0x04,0x00, -0xa2,0x04,0x00,0x00,0xa3,0x04,0x00,0x00,0x01,0x00,0x00,0x00, -0xfa,0x00,0x04,0x00,0xa6,0x04,0x00,0x00,0xa1,0x04,0x00,0x00, -0xa2,0x04,0x00,0x00,0xf8,0x00,0x02,0x00,0xa1,0x04,0x00,0x00, -0xb0,0x00,0x05,0x00,0xb2,0x00,0x00,0x00,0xa9,0x04,0x00,0x00, -0x6a,0x00,0x00,0x00,0xf4,0x04,0x00,0x00,0xf7,0x00,0x03,0x00, -0xab,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, -0xa9,0x04,0x00,0x00,0xaa,0x04,0x00,0x00,0xab,0x04,0x00,0x00, -0xf8,0x00,0x02,0x00,0xaa,0x04,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xaf,0x04,0x00,0x00,0x6a,0x00,0x00,0x00, -0xf4,0x04,0x00,0x00,0x41,0x00,0x05,0x00,0xa7,0x00,0x00,0x00, -0xb0,0x04,0x00,0x00,0xa0,0x00,0x00,0x00,0xaf,0x04,0x00,0x00, -0x3d,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0xb1,0x04,0x00,0x00, -0xb0,0x04,0x00,0x00,0x41,0x00,0x05,0x00,0xa7,0x00,0x00,0x00, -0xb2,0x04,0x00,0x00,0xa0,0x00,0x00,0x00,0x6a,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0xb3,0x04,0x00,0x00, -0xb2,0x04,0x00,0x00,0x81,0x00,0x05,0x00,0x9d,0x00,0x00,0x00, -0xb4,0x04,0x00,0x00,0xb3,0x04,0x00,0x00,0xb1,0x04,0x00,0x00, -0x3e,0x00,0x03,0x00,0xb2,0x04,0x00,0x00,0xb4,0x04,0x00,0x00, -0xf9,0x00,0x02,0x00,0xab,0x04,0x00,0x00,0xf8,0x00,0x02,0x00, -0xab,0x04,0x00,0x00,0xe0,0x00,0x04,0x00,0x69,0x00,0x00,0x00, -0x69,0x00,0x00,0x00,0x9e,0x04,0x00,0x00,0xf9,0x00,0x02,0x00, -0xa3,0x04,0x00,0x00,0xf8,0x00,0x02,0x00,0xa3,0x04,0x00,0x00, -0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb7,0x04,0x00,0x00, -0xf4,0x04,0x00,0x00,0x93,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, -0xa0,0x04,0x00,0x00,0xf8,0x00,0x02,0x00,0xa2,0x04,0x00,0x00, -0xaa,0x00,0x05,0x00,0xb2,0x00,0x00,0x00,0xb9,0x04,0x00,0x00, -0x6a,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0xf7,0x00,0x03,0x00, -0xbb,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, -0xb9,0x04,0x00,0x00,0xba,0x04,0x00,0x00,0xbb,0x04,0x00,0x00, -0xf8,0x00,0x02,0x00,0xba,0x04,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xc2,0x04,0x00,0x00,0xf2,0x04,0x00,0x00, -0x4d,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0xa7,0x00,0x00,0x00, -0xc3,0x04,0x00,0x00,0xa0,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0xc4,0x04,0x00,0x00, -0xc3,0x04,0x00,0x00,0x41,0x00,0x06,0x00,0xc5,0x04,0x00,0x00, -0xc6,0x04,0x00,0x00,0xbf,0x04,0x00,0x00,0x59,0x00,0x00,0x00, -0xc2,0x04,0x00,0x00,0x3e,0x00,0x03,0x00,0xc6,0x04,0x00,0x00, -0xc4,0x04,0x00,0x00,0xf9,0x00,0x02,0x00,0xbb,0x04,0x00,0x00, -0xf8,0x00,0x02,0x00,0xbb,0x04,0x00,0x00,0xfd,0x00,0x01,0x00, -0x38,0x00,0x01,0x00, -}; -const uint64_t mul_mat_vec_q5_k_f16_f32_len = 13288; +0x57,0x02,0x00,0x00,0x61,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x46,0x03,0x00,0x00,0x38,0x03,0x00,0x00, +0x45,0x03,0x00,0x00,0x6f,0x00,0x04,0x00,0xa4,0x00,0x00,0x00, +0x47,0x03,0x00,0x00,0x46,0x03,0x00,0x00,0x85,0x00,0x05,0x00, +0xa4,0x00,0x00,0x00,0x48,0x03,0x00,0x00,0x35,0x03,0x00,0x00, +0x47,0x03,0x00,0x00,0x0c,0x00,0x08,0x00,0xa4,0x00,0x00,0x00, +0x49,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0x1d,0x03,0x00,0x00,0x2e,0x03,0x00,0x00,0x48,0x03,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4d,0x03,0x00,0x00, +0x1b,0x03,0x00,0x00,0xa8,0x00,0x00,0x00,0x41,0x00,0x06,0x00, +0x46,0x02,0x00,0x00,0x4e,0x03,0x00,0x00,0x42,0x02,0x00,0x00, +0x61,0x00,0x00,0x00,0x4d,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, +0xa4,0x00,0x00,0x00,0x4f,0x03,0x00,0x00,0x4e,0x03,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x51,0x03,0x00,0x00, +0x0b,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x52,0x03,0x00,0x00,0x51,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0x59,0x03,0x00,0x00,0x84,0x02,0x00,0x00, +0xc7,0x00,0x05,0x00,0x97,0x00,0x00,0x00,0x5b,0x03,0x00,0x00, +0x59,0x03,0x00,0x00,0xa3,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x5c,0x03,0x00,0x00,0x5b,0x03,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x5d,0x03,0x00,0x00, +0x5c,0x03,0x00,0x00,0xab,0x00,0x05,0x00,0xb9,0x00,0x00,0x00, +0x5e,0x03,0x00,0x00,0x5d,0x03,0x00,0x00,0x61,0x00,0x00,0x00, +0xa9,0x00,0x06,0x00,0x1b,0x00,0x00,0x00,0x5f,0x03,0x00,0x00, +0x5e,0x03,0x00,0x00,0x57,0x02,0x00,0x00,0x61,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x60,0x03,0x00,0x00, +0x52,0x03,0x00,0x00,0x5f,0x03,0x00,0x00,0x6f,0x00,0x04,0x00, +0xa4,0x00,0x00,0x00,0x61,0x03,0x00,0x00,0x60,0x03,0x00,0x00, +0x0c,0x00,0x08,0x00,0xa4,0x00,0x00,0x00,0x63,0x03,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x4f,0x03,0x00,0x00, +0x61,0x03,0x00,0x00,0x49,0x03,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x67,0x03,0x00,0x00,0x1b,0x03,0x00,0x00, +0xb7,0x01,0x00,0x00,0x41,0x00,0x06,0x00,0x46,0x02,0x00,0x00, +0x68,0x03,0x00,0x00,0x42,0x02,0x00,0x00,0x61,0x00,0x00,0x00, +0x67,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0xa4,0x00,0x00,0x00, +0x69,0x03,0x00,0x00,0x68,0x03,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x6b,0x03,0x00,0x00,0x19,0x02,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x6c,0x03,0x00,0x00, +0x6b,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00, +0x73,0x03,0x00,0x00,0x9e,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, +0x97,0x00,0x00,0x00,0x75,0x03,0x00,0x00,0x73,0x03,0x00,0x00, +0xa3,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x76,0x03,0x00,0x00,0x75,0x03,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x77,0x03,0x00,0x00,0x76,0x03,0x00,0x00, +0xab,0x00,0x05,0x00,0xb9,0x00,0x00,0x00,0x78,0x03,0x00,0x00, +0x77,0x03,0x00,0x00,0x61,0x00,0x00,0x00,0xa9,0x00,0x06,0x00, +0x1b,0x00,0x00,0x00,0x79,0x03,0x00,0x00,0x78,0x03,0x00,0x00, +0x57,0x02,0x00,0x00,0x61,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x7a,0x03,0x00,0x00,0x6c,0x03,0x00,0x00, +0x79,0x03,0x00,0x00,0x6f,0x00,0x04,0x00,0xa4,0x00,0x00,0x00, +0x7b,0x03,0x00,0x00,0x7a,0x03,0x00,0x00,0x0c,0x00,0x08,0x00, +0xa4,0x00,0x00,0x00,0x7d,0x03,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x69,0x03,0x00,0x00,0x7b,0x03,0x00,0x00, +0x63,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x82,0x03,0x00,0x00,0x1b,0x03,0x00,0x00,0x8c,0x00,0x00,0x00, +0x41,0x00,0x06,0x00,0x46,0x02,0x00,0x00,0x83,0x03,0x00,0x00, +0x42,0x02,0x00,0x00,0x61,0x00,0x00,0x00,0x82,0x03,0x00,0x00, +0x3d,0x00,0x04,0x00,0xa4,0x00,0x00,0x00,0x84,0x03,0x00,0x00, +0x83,0x03,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x86,0x03,0x00,0x00,0x22,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x87,0x03,0x00,0x00,0x86,0x03,0x00,0x00, +0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x8d,0x03,0x00,0x00, +0x50,0x02,0x00,0x00,0xc4,0x00,0x05,0x00,0x97,0x00,0x00,0x00, +0x8f,0x03,0x00,0x00,0xa3,0x00,0x00,0x00,0x9a,0x00,0x00,0x00, +0xc7,0x00,0x05,0x00,0x97,0x00,0x00,0x00,0x90,0x03,0x00,0x00, +0x8d,0x03,0x00,0x00,0x8f,0x03,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x91,0x03,0x00,0x00,0x90,0x03,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x92,0x03,0x00,0x00, +0x91,0x03,0x00,0x00,0xab,0x00,0x05,0x00,0xb9,0x00,0x00,0x00, +0x93,0x03,0x00,0x00,0x92,0x03,0x00,0x00,0x61,0x00,0x00,0x00, +0xa9,0x00,0x06,0x00,0x1b,0x00,0x00,0x00,0x94,0x03,0x00,0x00, +0x93,0x03,0x00,0x00,0x57,0x02,0x00,0x00,0x61,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x95,0x03,0x00,0x00, +0x87,0x03,0x00,0x00,0x94,0x03,0x00,0x00,0x6f,0x00,0x04,0x00, +0xa4,0x00,0x00,0x00,0x96,0x03,0x00,0x00,0x95,0x03,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9b,0x03,0x00,0x00, +0x1b,0x03,0x00,0x00,0xc7,0x02,0x00,0x00,0x41,0x00,0x06,0x00, +0x46,0x02,0x00,0x00,0x9c,0x03,0x00,0x00,0x42,0x02,0x00,0x00, +0x61,0x00,0x00,0x00,0x9b,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, +0xa4,0x00,0x00,0x00,0x9d,0x03,0x00,0x00,0x9c,0x03,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x9f,0x03,0x00,0x00, +0x2b,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0xa0,0x03,0x00,0x00,0x9f,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0xa7,0x03,0x00,0x00,0x6a,0x02,0x00,0x00, +0xc7,0x00,0x05,0x00,0x97,0x00,0x00,0x00,0xaa,0x03,0x00,0x00, +0xa7,0x03,0x00,0x00,0x8f,0x03,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xab,0x03,0x00,0x00,0xaa,0x03,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xac,0x03,0x00,0x00, +0xab,0x03,0x00,0x00,0xab,0x00,0x05,0x00,0xb9,0x00,0x00,0x00, +0xad,0x03,0x00,0x00,0xac,0x03,0x00,0x00,0x61,0x00,0x00,0x00, +0xa9,0x00,0x06,0x00,0x1b,0x00,0x00,0x00,0xae,0x03,0x00,0x00, +0xad,0x03,0x00,0x00,0x57,0x02,0x00,0x00,0x61,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xaf,0x03,0x00,0x00, +0xa0,0x03,0x00,0x00,0xae,0x03,0x00,0x00,0x6f,0x00,0x04,0x00, +0xa4,0x00,0x00,0x00,0xb0,0x03,0x00,0x00,0xaf,0x03,0x00,0x00, +0x85,0x00,0x05,0x00,0xa4,0x00,0x00,0x00,0xb1,0x03,0x00,0x00, +0x9d,0x03,0x00,0x00,0xb0,0x03,0x00,0x00,0x0c,0x00,0x08,0x00, +0xa4,0x00,0x00,0x00,0xb2,0x03,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x84,0x03,0x00,0x00,0x96,0x03,0x00,0x00, +0xb1,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xb6,0x03,0x00,0x00,0x1b,0x03,0x00,0x00,0xe3,0x02,0x00,0x00, +0x41,0x00,0x06,0x00,0x46,0x02,0x00,0x00,0xb7,0x03,0x00,0x00, +0x42,0x02,0x00,0x00,0x61,0x00,0x00,0x00,0xb6,0x03,0x00,0x00, +0x3d,0x00,0x04,0x00,0xa4,0x00,0x00,0x00,0xb8,0x03,0x00,0x00, +0xb7,0x03,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xba,0x03,0x00,0x00,0x34,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0xbb,0x03,0x00,0x00,0xba,0x03,0x00,0x00, +0x3d,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0xc2,0x03,0x00,0x00, +0x84,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x97,0x00,0x00,0x00, +0xc5,0x03,0x00,0x00,0xc2,0x03,0x00,0x00,0x8f,0x03,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xc6,0x03,0x00,0x00, +0xc5,0x03,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0xc7,0x03,0x00,0x00,0xc6,0x03,0x00,0x00,0xab,0x00,0x05,0x00, +0xb9,0x00,0x00,0x00,0xc8,0x03,0x00,0x00,0xc7,0x03,0x00,0x00, +0x61,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,0x1b,0x00,0x00,0x00, +0xc9,0x03,0x00,0x00,0xc8,0x03,0x00,0x00,0x57,0x02,0x00,0x00, +0x61,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0xca,0x03,0x00,0x00,0xbb,0x03,0x00,0x00,0xc9,0x03,0x00,0x00, +0x6f,0x00,0x04,0x00,0xa4,0x00,0x00,0x00,0xcb,0x03,0x00,0x00, +0xca,0x03,0x00,0x00,0x0c,0x00,0x08,0x00,0xa4,0x00,0x00,0x00, +0xcd,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0xb8,0x03,0x00,0x00,0xcb,0x03,0x00,0x00,0xb2,0x03,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd1,0x03,0x00,0x00, +0x1b,0x03,0x00,0x00,0xff,0x02,0x00,0x00,0x41,0x00,0x06,0x00, +0x46,0x02,0x00,0x00,0xd2,0x03,0x00,0x00,0x42,0x02,0x00,0x00, +0x61,0x00,0x00,0x00,0xd1,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, +0xa4,0x00,0x00,0x00,0xd3,0x03,0x00,0x00,0xd2,0x03,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xd5,0x03,0x00,0x00, +0x3d,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0xd6,0x03,0x00,0x00,0xd5,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0xdd,0x03,0x00,0x00,0x9e,0x02,0x00,0x00, +0xc7,0x00,0x05,0x00,0x97,0x00,0x00,0x00,0xe0,0x03,0x00,0x00, +0xdd,0x03,0x00,0x00,0x8f,0x03,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xe1,0x03,0x00,0x00,0xe0,0x03,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xe2,0x03,0x00,0x00, +0xe1,0x03,0x00,0x00,0xab,0x00,0x05,0x00,0xb9,0x00,0x00,0x00, +0xe3,0x03,0x00,0x00,0xe2,0x03,0x00,0x00,0x61,0x00,0x00,0x00, +0xa9,0x00,0x06,0x00,0x1b,0x00,0x00,0x00,0xe4,0x03,0x00,0x00, +0xe3,0x03,0x00,0x00,0x57,0x02,0x00,0x00,0x61,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xe5,0x03,0x00,0x00, +0xd6,0x03,0x00,0x00,0xe4,0x03,0x00,0x00,0x6f,0x00,0x04,0x00, +0xa4,0x00,0x00,0x00,0xe6,0x03,0x00,0x00,0xe5,0x03,0x00,0x00, +0x0c,0x00,0x08,0x00,0xa4,0x00,0x00,0x00,0xe8,0x03,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xd3,0x03,0x00,0x00, +0xe6,0x03,0x00,0x00,0xcd,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, +0xa4,0x00,0x00,0x00,0xee,0x03,0x00,0x00,0x47,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0xa4,0x00,0x00,0x00,0xf4,0x03,0x00,0x00, +0x60,0x02,0x00,0x00,0x81,0x00,0x05,0x00,0xa4,0x00,0x00,0x00, +0xf5,0x03,0x00,0x00,0xee,0x03,0x00,0x00,0xf4,0x03,0x00,0x00, +0x3d,0x00,0x04,0x00,0xa4,0x00,0x00,0x00,0xfb,0x03,0x00,0x00, +0x7a,0x02,0x00,0x00,0x81,0x00,0x05,0x00,0xa4,0x00,0x00,0x00, +0xfc,0x03,0x00,0x00,0xf5,0x03,0x00,0x00,0xfb,0x03,0x00,0x00, +0x3d,0x00,0x04,0x00,0xa4,0x00,0x00,0x00,0x02,0x04,0x00,0x00, +0x94,0x02,0x00,0x00,0x81,0x00,0x05,0x00,0xa4,0x00,0x00,0x00, +0x03,0x04,0x00,0x00,0xfc,0x03,0x00,0x00,0x02,0x04,0x00,0x00, +0x70,0x00,0x04,0x00,0xa4,0x00,0x00,0x00,0x05,0x04,0x00,0x00, +0x09,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xa4,0x00,0x00,0x00, +0x0c,0x04,0x00,0x00,0xaf,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0xa4,0x00,0x00,0x00,0x12,0x04,0x00,0x00,0xc9,0x02,0x00,0x00, +0x81,0x00,0x05,0x00,0xa4,0x00,0x00,0x00,0x13,0x04,0x00,0x00, +0x0c,0x04,0x00,0x00,0x12,0x04,0x00,0x00,0x3d,0x00,0x04,0x00, +0xa4,0x00,0x00,0x00,0x19,0x04,0x00,0x00,0xe5,0x02,0x00,0x00, +0x81,0x00,0x05,0x00,0xa4,0x00,0x00,0x00,0x1a,0x04,0x00,0x00, +0x13,0x04,0x00,0x00,0x19,0x04,0x00,0x00,0x3d,0x00,0x04,0x00, +0xa4,0x00,0x00,0x00,0x20,0x04,0x00,0x00,0x01,0x03,0x00,0x00, +0x81,0x00,0x05,0x00,0xa4,0x00,0x00,0x00,0x21,0x04,0x00,0x00, +0x1a,0x04,0x00,0x00,0x20,0x04,0x00,0x00,0x70,0x00,0x04,0x00, +0xa4,0x00,0x00,0x00,0x23,0x04,0x00,0x00,0x18,0x01,0x00,0x00, +0x85,0x00,0x05,0x00,0xa4,0x00,0x00,0x00,0x24,0x04,0x00,0x00, +0x21,0x04,0x00,0x00,0x23,0x04,0x00,0x00,0x0c,0x00,0x08,0x00, +0xa4,0x00,0x00,0x00,0x25,0x04,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x03,0x04,0x00,0x00,0x05,0x04,0x00,0x00, +0x24,0x04,0x00,0x00,0x3d,0x00,0x04,0x00,0xa4,0x00,0x00,0x00, +0x2a,0x04,0x00,0x00,0x1c,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, +0xa4,0x00,0x00,0x00,0x30,0x04,0x00,0x00,0x34,0x03,0x00,0x00, +0x81,0x00,0x05,0x00,0xa4,0x00,0x00,0x00,0x31,0x04,0x00,0x00, +0x2a,0x04,0x00,0x00,0x30,0x04,0x00,0x00,0x3d,0x00,0x04,0x00, +0xa4,0x00,0x00,0x00,0x37,0x04,0x00,0x00,0x4e,0x03,0x00,0x00, +0x81,0x00,0x05,0x00,0xa4,0x00,0x00,0x00,0x38,0x04,0x00,0x00, +0x31,0x04,0x00,0x00,0x37,0x04,0x00,0x00,0x3d,0x00,0x04,0x00, +0xa4,0x00,0x00,0x00,0x3e,0x04,0x00,0x00,0x68,0x03,0x00,0x00, +0x81,0x00,0x05,0x00,0xa4,0x00,0x00,0x00,0x3f,0x04,0x00,0x00, +0x38,0x04,0x00,0x00,0x3e,0x04,0x00,0x00,0x70,0x00,0x04,0x00, +0xa4,0x00,0x00,0x00,0x41,0x04,0x00,0x00,0x6e,0x01,0x00,0x00, +0x0c,0x00,0x08,0x00,0xa4,0x00,0x00,0x00,0x43,0x04,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x3f,0x04,0x00,0x00, +0x41,0x04,0x00,0x00,0x25,0x04,0x00,0x00,0x3d,0x00,0x04,0x00, +0xa4,0x00,0x00,0x00,0x49,0x04,0x00,0x00,0x83,0x03,0x00,0x00, +0x3d,0x00,0x04,0x00,0xa4,0x00,0x00,0x00,0x4f,0x04,0x00,0x00, +0x9c,0x03,0x00,0x00,0x81,0x00,0x05,0x00,0xa4,0x00,0x00,0x00, +0x50,0x04,0x00,0x00,0x49,0x04,0x00,0x00,0x4f,0x04,0x00,0x00, +0x3d,0x00,0x04,0x00,0xa4,0x00,0x00,0x00,0x56,0x04,0x00,0x00, +0xb7,0x03,0x00,0x00,0x81,0x00,0x05,0x00,0xa4,0x00,0x00,0x00, +0x57,0x04,0x00,0x00,0x50,0x04,0x00,0x00,0x56,0x04,0x00,0x00, +0x3d,0x00,0x04,0x00,0xa4,0x00,0x00,0x00,0x5d,0x04,0x00,0x00, +0xd2,0x03,0x00,0x00,0x81,0x00,0x05,0x00,0xa4,0x00,0x00,0x00, +0x5e,0x04,0x00,0x00,0x57,0x04,0x00,0x00,0x5d,0x04,0x00,0x00, +0x70,0x00,0x04,0x00,0xa4,0x00,0x00,0x00,0x60,0x04,0x00,0x00, +0x8a,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0xa4,0x00,0x00,0x00, +0x62,0x04,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0x5e,0x04,0x00,0x00,0x60,0x04,0x00,0x00,0x43,0x04,0x00,0x00, +0x70,0x00,0x04,0x00,0xa4,0x00,0x00,0x00,0x6a,0x04,0x00,0x00, +0xed,0x00,0x00,0x00,0x70,0x00,0x04,0x00,0xa4,0x00,0x00,0x00, +0x6e,0x04,0x00,0x00,0xfb,0x00,0x00,0x00,0x85,0x00,0x05,0x00, +0xa4,0x00,0x00,0x00,0x6f,0x04,0x00,0x00,0x17,0x03,0x00,0x00, +0x6e,0x04,0x00,0x00,0x0c,0x00,0x08,0x00,0xa4,0x00,0x00,0x00, +0x70,0x04,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0xa9,0x02,0x00,0x00,0x6a,0x04,0x00,0x00,0x6f,0x04,0x00,0x00, +0x70,0x00,0x04,0x00,0xa4,0x00,0x00,0x00,0x73,0x04,0x00,0x00, +0x36,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0xa4,0x00,0x00,0x00, +0x75,0x04,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0x7d,0x03,0x00,0x00,0x73,0x04,0x00,0x00,0x70,0x04,0x00,0x00, +0x70,0x00,0x04,0x00,0xa4,0x00,0x00,0x00,0x78,0x04,0x00,0x00, +0x52,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0xa4,0x00,0x00,0x00, +0x7a,0x04,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0xe8,0x03,0x00,0x00,0x78,0x04,0x00,0x00,0x75,0x04,0x00,0x00, +0x85,0x00,0x05,0x00,0xa4,0x00,0x00,0x00,0x7e,0x04,0x00,0x00, +0xde,0x00,0x00,0x00,0x62,0x04,0x00,0x00,0x7f,0x00,0x04,0x00, +0xa4,0x00,0x00,0x00,0xde,0x04,0x00,0x00,0x7e,0x04,0x00,0x00, +0x0c,0x00,0x08,0x00,0xa4,0x00,0x00,0x00,0x7f,0x04,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xd7,0x00,0x00,0x00, +0x7a,0x04,0x00,0x00,0xde,0x04,0x00,0x00,0x3d,0x00,0x04,0x00, +0xa4,0x00,0x00,0x00,0x81,0x04,0x00,0x00,0xaf,0x00,0x00,0x00, +0x81,0x00,0x05,0x00,0xa4,0x00,0x00,0x00,0x82,0x04,0x00,0x00, +0x81,0x04,0x00,0x00,0x7f,0x04,0x00,0x00,0x3e,0x00,0x03,0x00, +0xaf,0x00,0x00,0x00,0x82,0x04,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x85,0x04,0x00,0x00,0xda,0x04,0x00,0x00, +0x51,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xb2,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0xb4,0x00,0x00,0x00,0xe0,0x00,0x04,0x00, +0x51,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0x86,0x04,0x00,0x00, +0xf9,0x00,0x02,0x00,0x88,0x04,0x00,0x00,0xf8,0x00,0x02,0x00, +0x88,0x04,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00, +0xdb,0x04,0x00,0x00,0xa8,0x00,0x00,0x00,0xb4,0x00,0x00,0x00, +0x9f,0x04,0x00,0x00,0x8b,0x04,0x00,0x00,0xac,0x00,0x05,0x00, +0xb9,0x00,0x00,0x00,0x8e,0x04,0x00,0x00,0xdb,0x04,0x00,0x00, +0x4b,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0x8a,0x04,0x00,0x00, +0x8b,0x04,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, +0x8e,0x04,0x00,0x00,0x89,0x04,0x00,0x00,0x8a,0x04,0x00,0x00, +0xf8,0x00,0x02,0x00,0x89,0x04,0x00,0x00,0xb0,0x00,0x05,0x00, +0xb9,0x00,0x00,0x00,0x91,0x04,0x00,0x00,0x71,0x00,0x00,0x00, +0xdb,0x04,0x00,0x00,0xf7,0x00,0x03,0x00,0x93,0x04,0x00,0x00, +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x91,0x04,0x00,0x00, +0x92,0x04,0x00,0x00,0x93,0x04,0x00,0x00,0xf8,0x00,0x02,0x00, +0x92,0x04,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x97,0x04,0x00,0x00,0x71,0x00,0x00,0x00,0xdb,0x04,0x00,0x00, +0x41,0x00,0x05,0x00,0xae,0x00,0x00,0x00,0x98,0x04,0x00,0x00, +0xa7,0x00,0x00,0x00,0x97,0x04,0x00,0x00,0x3d,0x00,0x04,0x00, +0xa4,0x00,0x00,0x00,0x99,0x04,0x00,0x00,0x98,0x04,0x00,0x00, +0x41,0x00,0x05,0x00,0xae,0x00,0x00,0x00,0x9a,0x04,0x00,0x00, +0xa7,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0xa4,0x00,0x00,0x00,0x9b,0x04,0x00,0x00,0x9a,0x04,0x00,0x00, +0x81,0x00,0x05,0x00,0xa4,0x00,0x00,0x00,0x9c,0x04,0x00,0x00, +0x9b,0x04,0x00,0x00,0x99,0x04,0x00,0x00,0x3e,0x00,0x03,0x00, +0x9a,0x04,0x00,0x00,0x9c,0x04,0x00,0x00,0xf9,0x00,0x02,0x00, +0x93,0x04,0x00,0x00,0xf8,0x00,0x02,0x00,0x93,0x04,0x00,0x00, +0xe0,0x00,0x04,0x00,0x51,0x00,0x00,0x00,0x51,0x00,0x00,0x00, +0x86,0x04,0x00,0x00,0xf9,0x00,0x02,0x00,0x8b,0x04,0x00,0x00, +0xf8,0x00,0x02,0x00,0x8b,0x04,0x00,0x00,0xc2,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x9f,0x04,0x00,0x00,0xdb,0x04,0x00,0x00, +0x9a,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x88,0x04,0x00,0x00, +0xf8,0x00,0x02,0x00,0x8a,0x04,0x00,0x00,0xaa,0x00,0x05,0x00, +0xb9,0x00,0x00,0x00,0xa1,0x04,0x00,0x00,0x71,0x00,0x00,0x00, +0x4b,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0xa3,0x04,0x00,0x00, +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xa1,0x04,0x00,0x00, +0xa2,0x04,0x00,0x00,0xa3,0x04,0x00,0x00,0xf8,0x00,0x02,0x00, +0xa2,0x04,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xaa,0x04,0x00,0x00,0xd9,0x04,0x00,0x00,0x55,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0xae,0x00,0x00,0x00,0xab,0x04,0x00,0x00, +0xa7,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0xa4,0x00,0x00,0x00,0xac,0x04,0x00,0x00,0xab,0x04,0x00,0x00, +0x41,0x00,0x06,0x00,0x46,0x02,0x00,0x00,0xad,0x04,0x00,0x00, +0xa7,0x04,0x00,0x00,0x61,0x00,0x00,0x00,0xaa,0x04,0x00,0x00, +0x3e,0x00,0x03,0x00,0xad,0x04,0x00,0x00,0xac,0x04,0x00,0x00, +0xf9,0x00,0x02,0x00,0xa3,0x04,0x00,0x00,0xf8,0x00,0x02,0x00, +0xa3,0x04,0x00,0x00,0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00, -unsigned char mul_mat_vec_q5_k_f32_f32_data[] = { -0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00, -0xd8,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, -0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x27,0x00,0x00,0x00, -0x11,0x00,0x02,0x00,0x51,0x11,0x00,0x00,0x11,0x00,0x02,0x00, -0x60,0x11,0x00,0x00,0x0b,0x00,0x06,0x00,0x01,0x00,0x00,0x00, -0x47,0x4c,0x53,0x4c,0x2e,0x73,0x74,0x64,0x2e,0x34,0x35,0x30, -0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00,0x00,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x0f,0x00,0x0d,0x00,0x05,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e,0x00,0x00,0x00,0x00, -0x11,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x4a,0x00,0x00,0x00, -0x66,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0xc9,0x00,0x00,0x00, -0x3b,0x02,0x00,0x00,0xa0,0x04,0x00,0x00,0x10,0x00,0x06,0x00, -0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x11,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x18,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x03,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00, -0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x18,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x18,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x28,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x18,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x4a,0x00,0x00,0x00, -0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x66,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xc2,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xc3,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xc4,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0xc5,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0xc5,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xc5,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0xc5,0x00,0x00,0x00,0x03,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xc6,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0xb0,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xc7,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0xc7,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xc9,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xc9,0x00,0x00,0x00, -0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x38,0x02,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0x39,0x02,0x00,0x00,0x00,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x39,0x02,0x00,0x00, -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0x39,0x02,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x3b,0x02,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x3b,0x02,0x00,0x00, -0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x9d,0x04,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0x9e,0x04,0x00,0x00,0x00,0x00,0x00,0x00, -0x19,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x9e,0x04,0x00,0x00, -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0x9e,0x04,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xa0,0x04,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xa0,0x04,0x00,0x00, -0x21,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xa7,0x04,0x00,0x00,0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00, -0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00, -0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x17,0x00,0x04,0x00,0x0f,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x10,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x10,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x12,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x13,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x1e,0x00,0x0d,0x00, -0x18,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x19,0x00,0x00,0x00, -0x1a,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x15,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x1d,0x00,0x00,0x00, -0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x0a,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x2e,0x00,0x00,0x00, -0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x34,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x40,0x00,0x00,0x00, -0x05,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x45,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x10,0x00,0x00,0x00,0x4a,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4b,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,0x00,0x01,0x00,0x00, -0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00,0x66,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x69,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x85,0x00,0x00,0x00, -0x20,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x8b,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x15,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x93,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x97,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x16,0x00,0x03,0x00, -0x9d,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, -0x9e,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0x85,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x9f,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x9e,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x9f,0x00,0x00,0x00, -0xa0,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xa1,0x00,0x00,0x00,0x10,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0xa6,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xa7,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0x14,0x00,0x02,0x00, -0xb2,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xbb,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x16,0x00,0x03,0x00, -0xbf,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x17,0x00,0x04,0x00, -0xc0,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xc1,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0xc2,0x00,0x00,0x00, -0x90,0x00,0x00,0x00,0xc1,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, -0xc3,0x00,0x00,0x00,0x90,0x00,0x00,0x00,0x85,0x00,0x00,0x00, -0x1c,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,0x90,0x00,0x00,0x00, -0xbb,0x00,0x00,0x00,0x1e,0x00,0x06,0x00,0xc5,0x00,0x00,0x00, -0xc0,0x00,0x00,0x00,0xc2,0x00,0x00,0x00,0xc3,0x00,0x00,0x00, -0xc4,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0xc6,0x00,0x00,0x00, -0xc5,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xc7,0x00,0x00,0x00, -0xc6,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xc8,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0xc8,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0xcd,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0xbf,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xde,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0x90,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0xe3,0x00,0x00,0x00,0x3f,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x09,0x01,0x00,0x00, -0x05,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x18,0x01,0x00,0x00,0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x1e,0x01,0x00,0x00,0x0f,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x29,0x01,0x00,0x00, -0xc0,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x2b,0x01,0x00,0x00,0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x36,0x01,0x00,0x00,0x09,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x88,0x01,0x00,0x00, -0x03,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xb0,0x01,0x00,0x00,0x11,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xee,0x01,0x00,0x00,0x41,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xfc,0x01,0x00,0x00, -0x50,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x0a,0x02,0x00,0x00,0x51,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, -0x38,0x02,0x00,0x00,0x9d,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, -0x39,0x02,0x00,0x00,0x38,0x02,0x00,0x00,0x20,0x00,0x04,0x00, -0x3a,0x02,0x00,0x00,0x0c,0x00,0x00,0x00,0x39,0x02,0x00,0x00, -0x3b,0x00,0x04,0x00,0x3a,0x02,0x00,0x00,0x3b,0x02,0x00,0x00, -0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x3f,0x02,0x00,0x00, -0x0c,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x50,0x02,0x00,0x00,0x10,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xc0,0x02,0x00,0x00, -0x21,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xdc,0x02,0x00,0x00,0x30,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xf8,0x02,0x00,0x00,0x31,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x7f,0x04,0x00,0x00, -0x08,0x01,0x00,0x00,0x1d,0x00,0x03,0x00,0x9d,0x04,0x00,0x00, -0x9d,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x9e,0x04,0x00,0x00, -0x9d,0x04,0x00,0x00,0x20,0x00,0x04,0x00,0x9f,0x04,0x00,0x00, -0x0c,0x00,0x00,0x00,0x9e,0x04,0x00,0x00,0x3b,0x00,0x04,0x00, -0x9f,0x04,0x00,0x00,0xa0,0x04,0x00,0x00,0x0c,0x00,0x00,0x00, -0x2c,0x00,0x06,0x00,0x0f,0x00,0x00,0x00,0xa7,0x04,0x00,0x00, -0x85,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x12,0x00,0x00,0x00, -0x36,0x00,0x05,0x00,0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0x05,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00, -0x4c,0x00,0x00,0x00,0x4a,0x00,0x00,0x00,0x4b,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4d,0x00,0x00,0x00, -0x4c,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00, -0xaf,0x04,0x00,0x00,0x11,0x00,0x00,0x00,0x12,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xb0,0x04,0x00,0x00, -0xaf,0x04,0x00,0x00,0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00, -0xb2,0x04,0x00,0x00,0x1a,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xb3,0x04,0x00,0x00, -0xb2,0x04,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xb4,0x04,0x00,0x00,0xb0,0x04,0x00,0x00,0xb3,0x04,0x00,0x00, -0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb8,0x04,0x00,0x00, -0xb0,0x04,0x00,0x00,0xb3,0x04,0x00,0x00,0x41,0x00,0x05,0x00, -0x1d,0x00,0x00,0x00,0xba,0x04,0x00,0x00,0x1a,0x00,0x00,0x00, -0x28,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xbb,0x04,0x00,0x00,0xba,0x04,0x00,0x00,0x86,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xbc,0x04,0x00,0x00,0xb4,0x04,0x00,0x00, -0xbb,0x04,0x00,0x00,0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00, -0xbe,0x04,0x00,0x00,0x1a,0x00,0x00,0x00,0x2e,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xbf,0x04,0x00,0x00, -0xbe,0x04,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xc0,0x04,0x00,0x00,0xb8,0x04,0x00,0x00,0xbf,0x04,0x00,0x00, -0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00,0xc2,0x04,0x00,0x00, -0x1a,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xc3,0x04,0x00,0x00,0xc2,0x04,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc4,0x04,0x00,0x00, -0xbc,0x04,0x00,0x00,0xc3,0x04,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xc6,0x04,0x00,0x00,0xc4,0x04,0x00,0x00, -0xc0,0x04,0x00,0x00,0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00, -0xc8,0x04,0x00,0x00,0x1a,0x00,0x00,0x00,0x3b,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xc9,0x04,0x00,0x00, -0xc8,0x04,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xca,0x04,0x00,0x00,0xc6,0x04,0x00,0x00,0xc9,0x04,0x00,0x00, -0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00,0xcc,0x04,0x00,0x00, -0x1a,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xcd,0x04,0x00,0x00,0xcc,0x04,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xce,0x04,0x00,0x00, -0xb0,0x04,0x00,0x00,0xcd,0x04,0x00,0x00,0x41,0x00,0x05,0x00, -0x1d,0x00,0x00,0x00,0xd0,0x04,0x00,0x00,0x1a,0x00,0x00,0x00, -0x45,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xd1,0x04,0x00,0x00,0xd0,0x04,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xd2,0x04,0x00,0x00,0xb0,0x04,0x00,0x00, -0xd1,0x04,0x00,0x00,0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00, -0x5a,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x5b,0x00,0x00,0x00, -0x5a,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x5d,0x00,0x00,0x00,0x5b,0x00,0x00,0x00,0x5c,0x00,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x60,0x00,0x00,0x00, -0xca,0x04,0x00,0x00,0x5c,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x4d,0x00,0x00,0x00, -0x5d,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x64,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x63,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00,0x67,0x00,0x00,0x00, -0x66,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x67,0x00,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6a,0x00,0x00,0x00, -0x68,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0x89,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x68,0x00,0x00,0x00, -0x69,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x72,0x00,0x00,0x00,0x6a,0x00,0x00,0x00,0x71,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x76,0x00,0x00,0x00, -0x71,0x00,0x00,0x00,0x72,0x00,0x00,0x00,0x82,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x77,0x00,0x00,0x00,0x6a,0x00,0x00,0x00, -0x76,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x7a,0x00,0x00,0x00,0x72,0x00,0x00,0x00,0x69,0x00,0x00,0x00, -0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7d,0x00,0x00,0x00, -0x72,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x71,0x00,0x00,0x00, -0x77,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x82,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0x7d,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x83,0x00,0x00,0x00, -0x80,0x00,0x00,0x00,0x82,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x87,0x00,0x00,0x00,0x85,0x00,0x00,0x00, -0x7a,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x89,0x00,0x00,0x00,0x87,0x00,0x00,0x00,0x83,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8d,0x00,0x00,0x00, -0x8b,0x00,0x00,0x00,0x7a,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x8f,0x00,0x00,0x00,0x8d,0x00,0x00,0x00, -0x83,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x95,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0x7a,0x00,0x00,0x00, -0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x96,0x00,0x00,0x00, -0x93,0x00,0x00,0x00,0x95,0x00,0x00,0x00,0x72,0x00,0x04,0x00, -0x97,0x00,0x00,0x00,0x98,0x00,0x00,0x00,0x96,0x00,0x00,0x00, -0x7c,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0x99,0x00,0x00,0x00, -0x98,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x90,0x00,0x00,0x00, -0x9c,0x00,0x00,0x00,0x99,0x00,0x00,0x00,0x3b,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa3,0x00,0x00,0x00, -0xa1,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xa5,0x00,0x00,0x00,0xa3,0x00,0x00,0x00, -0x6a,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0xa7,0x00,0x00,0x00, -0xa8,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0xa5,0x00,0x00,0x00, -0x3e,0x00,0x03,0x00,0xa8,0x00,0x00,0x00,0xa6,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0xab,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0xab,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00, -0xd3,0x04,0x00,0x00,0x6e,0x00,0x00,0x00,0x05,0x00,0x00,0x00, -0x7e,0x04,0x00,0x00,0xac,0x00,0x00,0x00,0xb0,0x00,0x05,0x00, -0xb2,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,0xd3,0x04,0x00,0x00, -0x5d,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xad,0x00,0x00,0x00, -0xac,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, -0xb3,0x00,0x00,0x00,0xac,0x00,0x00,0x00,0xad,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0xac,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xb6,0x00,0x00,0x00,0xd3,0x04,0x00,0x00, -0x5c,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xb8,0x00,0x00,0x00,0xb6,0x00,0x00,0x00,0x8f,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbc,0x00,0x00,0x00, -0xb8,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,0x64,0x00,0x00,0x00, -0xd3,0x04,0x00,0x00,0x41,0x00,0x08,0x00,0xcd,0x00,0x00,0x00, -0xce,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0xcc,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x4b,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0xbf,0x00,0x00,0x00,0xcf,0x00,0x00,0x00, -0xce,0x00,0x00,0x00,0x73,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, -0xd0,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x41,0x00,0x08,0x00, -0xcd,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0xc9,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0x12,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xbf,0x00,0x00,0x00, -0xd6,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0x73,0x00,0x04,0x00, -0x9d,0x00,0x00,0x00,0xd7,0x00,0x00,0x00,0xd6,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdd,0x00,0x00,0x00, -0x7a,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0x41,0x00,0x08,0x00, -0xde,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0xc9,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,0x93,0x00,0x00,0x00, -0xdd,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0xe0,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xe1,0x00,0x00,0x00,0xe0,0x00,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xe2,0x00,0x00,0x00, -0xe1,0x00,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0xe4,0x00,0x00,0x00,0xe2,0x00,0x00,0x00,0xe3,0x00,0x00,0x00, -0x72,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0xe5,0x00,0x00,0x00, -0xe4,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0xe6,0x00,0x00,0x00,0xe5,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xed,0x00,0x00,0x00,0xdd,0x00,0x00,0x00, -0x12,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xde,0x00,0x00,0x00, -0xee,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0xcc,0x00,0x00,0x00,0x93,0x00,0x00,0x00,0xed,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0xef,0x00,0x00,0x00, -0xee,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xf0,0x00,0x00,0x00,0xef,0x00,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0xf1,0x00,0x00,0x00,0xf0,0x00,0x00,0x00, -0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xf2,0x00,0x00,0x00, -0xf1,0x00,0x00,0x00,0xe3,0x00,0x00,0x00,0x72,0x00,0x04,0x00, -0x97,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,0xf2,0x00,0x00,0x00, -0x7c,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0xf4,0x00,0x00,0x00, -0xf3,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xfb,0x00,0x00,0x00,0xdd,0x00,0x00,0x00,0x71,0x00,0x00,0x00, -0x41,0x00,0x08,0x00,0xde,0x00,0x00,0x00,0xfc,0x00,0x00,0x00, -0xc9,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xcc,0x00,0x00,0x00, -0x93,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,0xfc,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xfe,0x00,0x00,0x00, -0xfd,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0xff,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0xff,0x00,0x00,0x00, -0xe3,0x00,0x00,0x00,0x72,0x00,0x04,0x00,0x97,0x00,0x00,0x00, -0x01,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0x02,0x01,0x00,0x00,0x01,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0a,0x01,0x00,0x00, -0xdd,0x00,0x00,0x00,0x09,0x01,0x00,0x00,0x41,0x00,0x08,0x00, -0xde,0x00,0x00,0x00,0x0b,0x01,0x00,0x00,0xc9,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,0x93,0x00,0x00,0x00, -0x0a,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0x0c,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x0d,0x01,0x00,0x00,0x0c,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x0e,0x01,0x00,0x00, -0x0d,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x0f,0x01,0x00,0x00,0x0e,0x01,0x00,0x00,0xe3,0x00,0x00,0x00, -0x72,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x10,0x01,0x00,0x00, -0x0f,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0x11,0x01,0x00,0x00,0x10,0x01,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x19,0x01,0x00,0x00,0xdd,0x00,0x00,0x00, -0x18,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0xde,0x00,0x00,0x00, -0x1a,0x01,0x00,0x00,0xc9,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0xcc,0x00,0x00,0x00,0x93,0x00,0x00,0x00,0x19,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0x1b,0x01,0x00,0x00, -0x1a,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x1c,0x01,0x00,0x00,0x1b,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x1d,0x01,0x00,0x00,0x1c,0x01,0x00,0x00, -0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x1f,0x01,0x00,0x00, -0x1d,0x01,0x00,0x00,0x1e,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0x26,0x01,0x00,0x00,0xdf,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x27,0x01,0x00,0x00, -0x26,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x28,0x01,0x00,0x00,0x27,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x2a,0x01,0x00,0x00,0x28,0x01,0x00,0x00, -0x29,0x01,0x00,0x00,0xc3,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x2c,0x01,0x00,0x00,0x2a,0x01,0x00,0x00,0x2b,0x01,0x00,0x00, -0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x2d,0x01,0x00,0x00, -0x1f,0x01,0x00,0x00,0x2c,0x01,0x00,0x00,0x72,0x00,0x04,0x00, -0x97,0x00,0x00,0x00,0x2e,0x01,0x00,0x00,0x2d,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0x2f,0x01,0x00,0x00, -0x2e,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x37,0x01,0x00,0x00,0xdd,0x00,0x00,0x00,0x36,0x01,0x00,0x00, -0x41,0x00,0x08,0x00,0xde,0x00,0x00,0x00,0x38,0x01,0x00,0x00, -0xc9,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xcc,0x00,0x00,0x00, -0x93,0x00,0x00,0x00,0x37,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0x39,0x01,0x00,0x00,0x38,0x01,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x3a,0x01,0x00,0x00, -0x39,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x3b,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x3c,0x01,0x00,0x00,0x3b,0x01,0x00,0x00, -0x1e,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0x44,0x01,0x00,0x00,0xee,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x45,0x01,0x00,0x00,0x44,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x46,0x01,0x00,0x00, -0x45,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x47,0x01,0x00,0x00,0x46,0x01,0x00,0x00,0x29,0x01,0x00,0x00, -0xc3,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x48,0x01,0x00,0x00, -0x47,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,0xc5,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x49,0x01,0x00,0x00,0x3c,0x01,0x00,0x00, -0x48,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x97,0x00,0x00,0x00, -0x4a,0x01,0x00,0x00,0x49,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0x4b,0x01,0x00,0x00,0x4a,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0x54,0x01,0x00,0x00, -0x1a,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x90,0x00,0x00,0x00, -0x55,0x01,0x00,0x00,0x54,0x01,0x00,0x00,0x3b,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x56,0x01,0x00,0x00, -0x55,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x57,0x01,0x00,0x00,0x56,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x58,0x01,0x00,0x00,0x57,0x01,0x00,0x00, -0x1e,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0x60,0x01,0x00,0x00,0xfc,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x61,0x01,0x00,0x00,0x60,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x62,0x01,0x00,0x00, -0x61,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x63,0x01,0x00,0x00,0x62,0x01,0x00,0x00,0x29,0x01,0x00,0x00, -0xc3,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x64,0x01,0x00,0x00, -0x63,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,0xc5,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x65,0x01,0x00,0x00,0x58,0x01,0x00,0x00, -0x64,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x97,0x00,0x00,0x00, -0x66,0x01,0x00,0x00,0x65,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0x67,0x01,0x00,0x00,0x66,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0x70,0x01,0x00,0x00, -0x38,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x90,0x00,0x00,0x00, -0x71,0x01,0x00,0x00,0x70,0x01,0x00,0x00,0x3b,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x72,0x01,0x00,0x00, -0x71,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x73,0x01,0x00,0x00,0x72,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x74,0x01,0x00,0x00,0x73,0x01,0x00,0x00, -0x1e,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0x7c,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x7d,0x01,0x00,0x00,0x7c,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x7e,0x01,0x00,0x00, -0x7d,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x7f,0x01,0x00,0x00,0x7e,0x01,0x00,0x00,0x29,0x01,0x00,0x00, -0xc3,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x80,0x01,0x00,0x00, -0x7f,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,0xc5,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x81,0x01,0x00,0x00,0x74,0x01,0x00,0x00, -0x80,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x97,0x00,0x00,0x00, -0x82,0x01,0x00,0x00,0x81,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0x83,0x01,0x00,0x00,0x82,0x01,0x00,0x00, -0x41,0x00,0x08,0x00,0xde,0x00,0x00,0x00,0x8a,0x01,0x00,0x00, -0xc9,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xcc,0x00,0x00,0x00, -0x88,0x01,0x00,0x00,0x89,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0x8b,0x01,0x00,0x00,0x8a,0x01,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x8c,0x01,0x00,0x00, -0x8b,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x8d,0x01,0x00,0x00,0x8c,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x8e,0x01,0x00,0x00,0x8d,0x01,0x00,0x00, -0x1e,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x97,0x00,0x00,0x00, -0x8f,0x01,0x00,0x00,0x8e,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0x90,0x01,0x00,0x00,0x8f,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x96,0x01,0x00,0x00, -0x89,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x41,0x00,0x08,0x00, -0xde,0x00,0x00,0x00,0x97,0x01,0x00,0x00,0xc9,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,0x88,0x01,0x00,0x00, -0x96,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0x98,0x01,0x00,0x00,0x97,0x01,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x99,0x01,0x00,0x00,0x98,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x9a,0x01,0x00,0x00, -0x99,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x9b,0x01,0x00,0x00,0x9a,0x01,0x00,0x00,0x1e,0x01,0x00,0x00, -0x72,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x9c,0x01,0x00,0x00, -0x9b,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0x9d,0x01,0x00,0x00,0x9c,0x01,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xa3,0x01,0x00,0x00,0x89,0x00,0x00,0x00, -0xa1,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xde,0x00,0x00,0x00, -0xa4,0x01,0x00,0x00,0xc9,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0xcc,0x00,0x00,0x00,0x88,0x01,0x00,0x00,0xa3,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0xa5,0x01,0x00,0x00, -0xa4,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xa6,0x01,0x00,0x00,0xa5,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0xa7,0x01,0x00,0x00,0xa6,0x01,0x00,0x00, -0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xa8,0x01,0x00,0x00, -0xa7,0x01,0x00,0x00,0x1e,0x01,0x00,0x00,0x72,0x00,0x04,0x00, -0x97,0x00,0x00,0x00,0xa9,0x01,0x00,0x00,0xa8,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0xaa,0x01,0x00,0x00, -0xa9,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xb1,0x01,0x00,0x00,0x89,0x00,0x00,0x00,0xb0,0x01,0x00,0x00, -0x41,0x00,0x08,0x00,0xde,0x00,0x00,0x00,0xb2,0x01,0x00,0x00, -0xc9,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xcc,0x00,0x00,0x00, -0x88,0x01,0x00,0x00,0xb1,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0xb3,0x01,0x00,0x00,0xb2,0x01,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xb4,0x01,0x00,0x00, -0xb3,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0xb5,0x01,0x00,0x00,0xb4,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0xb6,0x01,0x00,0x00,0xb5,0x01,0x00,0x00, -0x1e,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x97,0x00,0x00,0x00, -0xb7,0x01,0x00,0x00,0xb6,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0xb8,0x01,0x00,0x00,0xb7,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0xbf,0x01,0x00,0x00, -0x8a,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x90,0x00,0x00,0x00, -0xc0,0x01,0x00,0x00,0xbf,0x01,0x00,0x00,0x3b,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0xc8,0x01,0x00,0x00, -0x97,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x90,0x00,0x00,0x00, -0xc9,0x01,0x00,0x00,0xc8,0x01,0x00,0x00,0x3b,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0xd1,0x01,0x00,0x00, -0xa4,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x90,0x00,0x00,0x00, -0xd2,0x01,0x00,0x00,0xd1,0x01,0x00,0x00,0x3b,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0xda,0x01,0x00,0x00, -0xb2,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x90,0x00,0x00,0x00, -0xdb,0x01,0x00,0x00,0xda,0x01,0x00,0x00,0x3b,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe1,0x01,0x00,0x00, -0x89,0x00,0x00,0x00,0x8b,0x00,0x00,0x00,0x41,0x00,0x08,0x00, -0xde,0x00,0x00,0x00,0xe2,0x01,0x00,0x00,0xc9,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,0x88,0x01,0x00,0x00, -0xe1,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0xe3,0x01,0x00,0x00,0xe2,0x01,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xe4,0x01,0x00,0x00,0xe3,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xe5,0x01,0x00,0x00, -0xe4,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0xe6,0x01,0x00,0x00,0xe5,0x01,0x00,0x00,0x1e,0x01,0x00,0x00, -0x72,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0xe7,0x01,0x00,0x00, -0xe6,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0xe8,0x01,0x00,0x00,0xe7,0x01,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xef,0x01,0x00,0x00,0x89,0x00,0x00,0x00, -0xee,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0xde,0x00,0x00,0x00, -0xf0,0x01,0x00,0x00,0xc9,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0xcc,0x00,0x00,0x00,0x88,0x01,0x00,0x00,0xef,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0xf1,0x01,0x00,0x00, -0xf0,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xf2,0x01,0x00,0x00,0xf1,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0xf3,0x01,0x00,0x00,0xf2,0x01,0x00,0x00, -0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xf4,0x01,0x00,0x00, -0xf3,0x01,0x00,0x00,0x1e,0x01,0x00,0x00,0x72,0x00,0x04,0x00, -0x97,0x00,0x00,0x00,0xf5,0x01,0x00,0x00,0xf4,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0xf6,0x01,0x00,0x00, -0xf5,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xfd,0x01,0x00,0x00,0x89,0x00,0x00,0x00,0xfc,0x01,0x00,0x00, -0x41,0x00,0x08,0x00,0xde,0x00,0x00,0x00,0xfe,0x01,0x00,0x00, -0xc9,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xcc,0x00,0x00,0x00, -0x88,0x01,0x00,0x00,0xfd,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0xff,0x01,0x00,0x00,0xfe,0x01,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x00,0x02,0x00,0x00, -0xff,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x01,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x02,0x02,0x00,0x00,0x01,0x02,0x00,0x00, -0x1e,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x97,0x00,0x00,0x00, -0x03,0x02,0x00,0x00,0x02,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0x04,0x02,0x00,0x00,0x03,0x02,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0b,0x02,0x00,0x00, -0x89,0x00,0x00,0x00,0x0a,0x02,0x00,0x00,0x41,0x00,0x08,0x00, -0xde,0x00,0x00,0x00,0x0c,0x02,0x00,0x00,0xc9,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,0x88,0x01,0x00,0x00, -0x0b,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0x0d,0x02,0x00,0x00,0x0c,0x02,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x0e,0x02,0x00,0x00,0x0d,0x02,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x0f,0x02,0x00,0x00, -0x0e,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x10,0x02,0x00,0x00,0x0f,0x02,0x00,0x00,0x1e,0x01,0x00,0x00, -0x72,0x00,0x04,0x00,0x97,0x00,0x00,0x00,0x11,0x02,0x00,0x00, -0x10,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0x12,0x02,0x00,0x00,0x11,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0x1a,0x02,0x00,0x00,0xe2,0x01,0x00,0x00, -0xc2,0x00,0x05,0x00,0x90,0x00,0x00,0x00,0x1b,0x02,0x00,0x00, -0x1a,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0x23,0x02,0x00,0x00,0xf0,0x01,0x00,0x00, -0xc2,0x00,0x05,0x00,0x90,0x00,0x00,0x00,0x24,0x02,0x00,0x00, -0x23,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0x2c,0x02,0x00,0x00,0xfe,0x01,0x00,0x00, -0xc2,0x00,0x05,0x00,0x90,0x00,0x00,0x00,0x2d,0x02,0x00,0x00, -0x2c,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0x35,0x02,0x00,0x00,0x0c,0x02,0x00,0x00, -0xc2,0x00,0x05,0x00,0x90,0x00,0x00,0x00,0x36,0x02,0x00,0x00, -0x35,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x3e,0x02,0x00,0x00,0xce,0x04,0x00,0x00, -0xb8,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x3f,0x02,0x00,0x00, -0x40,0x02,0x00,0x00,0x3b,0x02,0x00,0x00,0x59,0x00,0x00,0x00, -0x3e,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, -0x41,0x02,0x00,0x00,0x40,0x02,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x43,0x02,0x00,0x00,0x90,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x44,0x02,0x00,0x00, -0x43,0x02,0x00,0x00,0x41,0x00,0x08,0x00,0xde,0x00,0x00,0x00, -0x49,0x02,0x00,0x00,0xc9,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0xcc,0x00,0x00,0x00,0x2b,0x01,0x00,0x00,0x83,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0x4a,0x02,0x00,0x00, -0x49,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x90,0x00,0x00,0x00, -0x4c,0x02,0x00,0x00,0x4a,0x02,0x00,0x00,0x99,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4d,0x02,0x00,0x00, -0x4c,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x4e,0x02,0x00,0x00,0x4d,0x02,0x00,0x00,0xab,0x00,0x05,0x00, -0xb2,0x00,0x00,0x00,0x4f,0x02,0x00,0x00,0x4e,0x02,0x00,0x00, -0x59,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,0x1b,0x00,0x00,0x00, -0x51,0x02,0x00,0x00,0x4f,0x02,0x00,0x00,0x50,0x02,0x00,0x00, -0x59,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x52,0x02,0x00,0x00,0x44,0x02,0x00,0x00,0x51,0x02,0x00,0x00, -0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0x53,0x02,0x00,0x00, -0x52,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x58,0x02,0x00,0x00,0x3e,0x02,0x00,0x00,0x12,0x00,0x00,0x00, -0x41,0x00,0x06,0x00,0x3f,0x02,0x00,0x00,0x59,0x02,0x00,0x00, -0x3b,0x02,0x00,0x00,0x59,0x00,0x00,0x00,0x58,0x02,0x00,0x00, -0x3d,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0x5a,0x02,0x00,0x00, -0x59,0x02,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x5c,0x02,0x00,0x00,0x9d,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x5d,0x02,0x00,0x00,0x5c,0x02,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x62,0x02,0x00,0x00, -0x83,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x41,0x00,0x08,0x00, -0xde,0x00,0x00,0x00,0x63,0x02,0x00,0x00,0xc9,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,0x2b,0x01,0x00,0x00, -0x62,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0x64,0x02,0x00,0x00,0x63,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, -0x90,0x00,0x00,0x00,0x66,0x02,0x00,0x00,0x64,0x02,0x00,0x00, -0x99,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x67,0x02,0x00,0x00,0x66,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x68,0x02,0x00,0x00,0x67,0x02,0x00,0x00, -0xab,0x00,0x05,0x00,0xb2,0x00,0x00,0x00,0x69,0x02,0x00,0x00, -0x68,0x02,0x00,0x00,0x59,0x00,0x00,0x00,0xa9,0x00,0x06,0x00, -0x1b,0x00,0x00,0x00,0x6a,0x02,0x00,0x00,0x69,0x02,0x00,0x00, -0x50,0x02,0x00,0x00,0x59,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x6b,0x02,0x00,0x00,0x5d,0x02,0x00,0x00, -0x6a,0x02,0x00,0x00,0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, -0x6c,0x02,0x00,0x00,0x6b,0x02,0x00,0x00,0x85,0x00,0x05,0x00, -0x9d,0x00,0x00,0x00,0x6d,0x02,0x00,0x00,0x5a,0x02,0x00,0x00, -0x6c,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x9d,0x00,0x00,0x00, -0x6e,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x41,0x02,0x00,0x00,0x53,0x02,0x00,0x00,0x6d,0x02,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x72,0x02,0x00,0x00, -0x3e,0x02,0x00,0x00,0xa1,0x00,0x00,0x00,0x41,0x00,0x06,0x00, -0x3f,0x02,0x00,0x00,0x73,0x02,0x00,0x00,0x3b,0x02,0x00,0x00, -0x59,0x00,0x00,0x00,0x72,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0x9d,0x00,0x00,0x00,0x74,0x02,0x00,0x00,0x73,0x02,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x76,0x02,0x00,0x00, -0xaa,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x77,0x02,0x00,0x00,0x76,0x02,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x7c,0x02,0x00,0x00,0x83,0x00,0x00,0x00, -0xa1,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xde,0x00,0x00,0x00, -0x7d,0x02,0x00,0x00,0xc9,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0xcc,0x00,0x00,0x00,0x2b,0x01,0x00,0x00,0x7c,0x02,0x00,0x00, -0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0x7e,0x02,0x00,0x00, -0x7d,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x90,0x00,0x00,0x00, -0x80,0x02,0x00,0x00,0x7e,0x02,0x00,0x00,0x99,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x81,0x02,0x00,0x00, -0x80,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x82,0x02,0x00,0x00,0x81,0x02,0x00,0x00,0xab,0x00,0x05,0x00, -0xb2,0x00,0x00,0x00,0x83,0x02,0x00,0x00,0x82,0x02,0x00,0x00, -0x59,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,0x1b,0x00,0x00,0x00, -0x84,0x02,0x00,0x00,0x83,0x02,0x00,0x00,0x50,0x02,0x00,0x00, -0x59,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x85,0x02,0x00,0x00,0x77,0x02,0x00,0x00,0x84,0x02,0x00,0x00, -0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0x86,0x02,0x00,0x00, -0x85,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x9d,0x00,0x00,0x00, -0x88,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x74,0x02,0x00,0x00,0x86,0x02,0x00,0x00,0x6e,0x02,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8c,0x02,0x00,0x00, -0x3e,0x02,0x00,0x00,0xb0,0x01,0x00,0x00,0x41,0x00,0x06,0x00, -0x3f,0x02,0x00,0x00,0x8d,0x02,0x00,0x00,0x3b,0x02,0x00,0x00, -0x59,0x00,0x00,0x00,0x8c,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0x9d,0x00,0x00,0x00,0x8e,0x02,0x00,0x00,0x8d,0x02,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x90,0x02,0x00,0x00, -0xb8,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x91,0x02,0x00,0x00,0x90,0x02,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x96,0x02,0x00,0x00,0x83,0x00,0x00,0x00, -0xb0,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0xde,0x00,0x00,0x00, -0x97,0x02,0x00,0x00,0xc9,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0xcc,0x00,0x00,0x00,0x2b,0x01,0x00,0x00,0x96,0x02,0x00,0x00, -0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0x98,0x02,0x00,0x00, -0x97,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x90,0x00,0x00,0x00, -0x9a,0x02,0x00,0x00,0x98,0x02,0x00,0x00,0x99,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x9b,0x02,0x00,0x00, -0x9a,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x9c,0x02,0x00,0x00,0x9b,0x02,0x00,0x00,0xab,0x00,0x05,0x00, -0xb2,0x00,0x00,0x00,0x9d,0x02,0x00,0x00,0x9c,0x02,0x00,0x00, -0x59,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,0x1b,0x00,0x00,0x00, -0x9e,0x02,0x00,0x00,0x9d,0x02,0x00,0x00,0x50,0x02,0x00,0x00, -0x59,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x9f,0x02,0x00,0x00,0x91,0x02,0x00,0x00,0x9e,0x02,0x00,0x00, -0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0xa0,0x02,0x00,0x00, -0x9f,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x9d,0x00,0x00,0x00, -0xa2,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x8e,0x02,0x00,0x00,0xa0,0x02,0x00,0x00,0x88,0x02,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa7,0x02,0x00,0x00, -0x3e,0x02,0x00,0x00,0x85,0x00,0x00,0x00,0x41,0x00,0x06,0x00, -0x3f,0x02,0x00,0x00,0xa8,0x02,0x00,0x00,0x3b,0x02,0x00,0x00, -0x59,0x00,0x00,0x00,0xa7,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0x9d,0x00,0x00,0x00,0xa9,0x02,0x00,0x00,0xa8,0x02,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xab,0x02,0x00,0x00, -0xc0,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0xac,0x02,0x00,0x00,0xab,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0xb2,0x02,0x00,0x00,0x49,0x02,0x00,0x00, -0xc4,0x00,0x05,0x00,0x90,0x00,0x00,0x00,0xb4,0x02,0x00,0x00, -0x99,0x00,0x00,0x00,0x93,0x00,0x00,0x00,0xc7,0x00,0x05,0x00, -0x90,0x00,0x00,0x00,0xb5,0x02,0x00,0x00,0xb2,0x02,0x00,0x00, -0xb4,0x02,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xb6,0x02,0x00,0x00,0xb5,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0xb7,0x02,0x00,0x00,0xb6,0x02,0x00,0x00, -0xab,0x00,0x05,0x00,0xb2,0x00,0x00,0x00,0xb8,0x02,0x00,0x00, -0xb7,0x02,0x00,0x00,0x59,0x00,0x00,0x00,0xa9,0x00,0x06,0x00, -0x1b,0x00,0x00,0x00,0xb9,0x02,0x00,0x00,0xb8,0x02,0x00,0x00, -0x50,0x02,0x00,0x00,0x59,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0xba,0x02,0x00,0x00,0xac,0x02,0x00,0x00, -0xb9,0x02,0x00,0x00,0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, -0xbb,0x02,0x00,0x00,0xba,0x02,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xc1,0x02,0x00,0x00,0x3e,0x02,0x00,0x00, -0xc0,0x02,0x00,0x00,0x41,0x00,0x06,0x00,0x3f,0x02,0x00,0x00, -0xc2,0x02,0x00,0x00,0x3b,0x02,0x00,0x00,0x59,0x00,0x00,0x00, -0xc1,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, -0xc3,0x02,0x00,0x00,0xc2,0x02,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xc5,0x02,0x00,0x00,0xc9,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xc6,0x02,0x00,0x00, -0xc5,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0xcd,0x02,0x00,0x00,0x63,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, -0x90,0x00,0x00,0x00,0xd0,0x02,0x00,0x00,0xcd,0x02,0x00,0x00, -0xb4,0x02,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xd1,0x02,0x00,0x00,0xd0,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0xd2,0x02,0x00,0x00,0xd1,0x02,0x00,0x00, -0xab,0x00,0x05,0x00,0xb2,0x00,0x00,0x00,0xd3,0x02,0x00,0x00, -0xd2,0x02,0x00,0x00,0x59,0x00,0x00,0x00,0xa9,0x00,0x06,0x00, -0x1b,0x00,0x00,0x00,0xd4,0x02,0x00,0x00,0xd3,0x02,0x00,0x00, -0x50,0x02,0x00,0x00,0x59,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0xd5,0x02,0x00,0x00,0xc6,0x02,0x00,0x00, -0xd4,0x02,0x00,0x00,0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, -0xd6,0x02,0x00,0x00,0xd5,0x02,0x00,0x00,0x85,0x00,0x05,0x00, -0x9d,0x00,0x00,0x00,0xd7,0x02,0x00,0x00,0xc3,0x02,0x00,0x00, -0xd6,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x9d,0x00,0x00,0x00, -0xd8,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0xa9,0x02,0x00,0x00,0xbb,0x02,0x00,0x00,0xd7,0x02,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdd,0x02,0x00,0x00, -0x3e,0x02,0x00,0x00,0xdc,0x02,0x00,0x00,0x41,0x00,0x06,0x00, -0x3f,0x02,0x00,0x00,0xde,0x02,0x00,0x00,0x3b,0x02,0x00,0x00, -0x59,0x00,0x00,0x00,0xdd,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0x9d,0x00,0x00,0x00,0xdf,0x02,0x00,0x00,0xde,0x02,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xe1,0x02,0x00,0x00, -0xd2,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0xe2,0x02,0x00,0x00,0xe1,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0xe9,0x02,0x00,0x00,0x7d,0x02,0x00,0x00, -0xc7,0x00,0x05,0x00,0x90,0x00,0x00,0x00,0xec,0x02,0x00,0x00, -0xe9,0x02,0x00,0x00,0xb4,0x02,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xed,0x02,0x00,0x00,0xec,0x02,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xee,0x02,0x00,0x00, -0xed,0x02,0x00,0x00,0xab,0x00,0x05,0x00,0xb2,0x00,0x00,0x00, -0xef,0x02,0x00,0x00,0xee,0x02,0x00,0x00,0x59,0x00,0x00,0x00, -0xa9,0x00,0x06,0x00,0x1b,0x00,0x00,0x00,0xf0,0x02,0x00,0x00, -0xef,0x02,0x00,0x00,0x50,0x02,0x00,0x00,0x59,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xf1,0x02,0x00,0x00, -0xe2,0x02,0x00,0x00,0xf0,0x02,0x00,0x00,0x6f,0x00,0x04,0x00, -0x9d,0x00,0x00,0x00,0xf2,0x02,0x00,0x00,0xf1,0x02,0x00,0x00, -0x0c,0x00,0x08,0x00,0x9d,0x00,0x00,0x00,0xf4,0x02,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xdf,0x02,0x00,0x00, -0xf2,0x02,0x00,0x00,0xd8,0x02,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xf9,0x02,0x00,0x00,0x3e,0x02,0x00,0x00, -0xf8,0x02,0x00,0x00,0x41,0x00,0x06,0x00,0x3f,0x02,0x00,0x00, -0xfa,0x02,0x00,0x00,0x3b,0x02,0x00,0x00,0x59,0x00,0x00,0x00, -0xf9,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, -0xfb,0x02,0x00,0x00,0xfa,0x02,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xfd,0x02,0x00,0x00,0xdb,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xfe,0x02,0x00,0x00, -0xfd,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0x05,0x03,0x00,0x00,0x97,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, -0x90,0x00,0x00,0x00,0x08,0x03,0x00,0x00,0x05,0x03,0x00,0x00, -0xb4,0x02,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x09,0x03,0x00,0x00,0x08,0x03,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x0a,0x03,0x00,0x00,0x09,0x03,0x00,0x00, -0xab,0x00,0x05,0x00,0xb2,0x00,0x00,0x00,0x0b,0x03,0x00,0x00, -0x0a,0x03,0x00,0x00,0x59,0x00,0x00,0x00,0xa9,0x00,0x06,0x00, -0x1b,0x00,0x00,0x00,0x0c,0x03,0x00,0x00,0x0b,0x03,0x00,0x00, -0x50,0x02,0x00,0x00,0x59,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x0d,0x03,0x00,0x00,0xfe,0x02,0x00,0x00, -0x0c,0x03,0x00,0x00,0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, -0x0e,0x03,0x00,0x00,0x0d,0x03,0x00,0x00,0x0c,0x00,0x08,0x00, -0x9d,0x00,0x00,0x00,0x10,0x03,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0xfb,0x02,0x00,0x00,0x0e,0x03,0x00,0x00, -0xf4,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x14,0x03,0x00,0x00,0xce,0x04,0x00,0x00,0xbc,0x00,0x00,0x00, -0x41,0x00,0x06,0x00,0x3f,0x02,0x00,0x00,0x15,0x03,0x00,0x00, -0x3b,0x02,0x00,0x00,0x59,0x00,0x00,0x00,0x14,0x03,0x00,0x00, -0x3d,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0x16,0x03,0x00,0x00, -0x15,0x03,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x18,0x03,0x00,0x00,0xe8,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x19,0x03,0x00,0x00,0x18,0x03,0x00,0x00, -0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0x1f,0x03,0x00,0x00, -0x49,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x90,0x00,0x00,0x00, -0x21,0x03,0x00,0x00,0x1f,0x03,0x00,0x00,0x9c,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x22,0x03,0x00,0x00, -0x21,0x03,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x23,0x03,0x00,0x00,0x22,0x03,0x00,0x00,0xab,0x00,0x05,0x00, -0xb2,0x00,0x00,0x00,0x24,0x03,0x00,0x00,0x23,0x03,0x00,0x00, -0x59,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,0x1b,0x00,0x00,0x00, -0x25,0x03,0x00,0x00,0x24,0x03,0x00,0x00,0x50,0x02,0x00,0x00, -0x59,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x26,0x03,0x00,0x00,0x19,0x03,0x00,0x00,0x25,0x03,0x00,0x00, -0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0x27,0x03,0x00,0x00, -0x26,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x2c,0x03,0x00,0x00,0x14,0x03,0x00,0x00,0x12,0x00,0x00,0x00, -0x41,0x00,0x06,0x00,0x3f,0x02,0x00,0x00,0x2d,0x03,0x00,0x00, -0x3b,0x02,0x00,0x00,0x59,0x00,0x00,0x00,0x2c,0x03,0x00,0x00, -0x3d,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0x2e,0x03,0x00,0x00, -0x2d,0x03,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x30,0x03,0x00,0x00,0xf6,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x31,0x03,0x00,0x00,0x30,0x03,0x00,0x00, -0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0x38,0x03,0x00,0x00, -0x63,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x90,0x00,0x00,0x00, -0x3a,0x03,0x00,0x00,0x38,0x03,0x00,0x00,0x9c,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x3b,0x03,0x00,0x00, -0x3a,0x03,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x3c,0x03,0x00,0x00,0x3b,0x03,0x00,0x00,0xab,0x00,0x05,0x00, -0xb2,0x00,0x00,0x00,0x3d,0x03,0x00,0x00,0x3c,0x03,0x00,0x00, -0x59,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,0x1b,0x00,0x00,0x00, -0x3e,0x03,0x00,0x00,0x3d,0x03,0x00,0x00,0x50,0x02,0x00,0x00, -0x59,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x3f,0x03,0x00,0x00,0x31,0x03,0x00,0x00,0x3e,0x03,0x00,0x00, -0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0x40,0x03,0x00,0x00, -0x3f,0x03,0x00,0x00,0x85,0x00,0x05,0x00,0x9d,0x00,0x00,0x00, -0x41,0x03,0x00,0x00,0x2e,0x03,0x00,0x00,0x40,0x03,0x00,0x00, -0x0c,0x00,0x08,0x00,0x9d,0x00,0x00,0x00,0x42,0x03,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x16,0x03,0x00,0x00, -0x27,0x03,0x00,0x00,0x41,0x03,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x46,0x03,0x00,0x00,0x14,0x03,0x00,0x00, -0xa1,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x3f,0x02,0x00,0x00, -0x47,0x03,0x00,0x00,0x3b,0x02,0x00,0x00,0x59,0x00,0x00,0x00, -0x46,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, -0x48,0x03,0x00,0x00,0x47,0x03,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x4a,0x03,0x00,0x00,0x04,0x02,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x4b,0x03,0x00,0x00, -0x4a,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0x52,0x03,0x00,0x00,0x7d,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, -0x90,0x00,0x00,0x00,0x54,0x03,0x00,0x00,0x52,0x03,0x00,0x00, -0x9c,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x55,0x03,0x00,0x00,0x54,0x03,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x56,0x03,0x00,0x00,0x55,0x03,0x00,0x00, -0xab,0x00,0x05,0x00,0xb2,0x00,0x00,0x00,0x57,0x03,0x00,0x00, -0x56,0x03,0x00,0x00,0x59,0x00,0x00,0x00,0xa9,0x00,0x06,0x00, -0x1b,0x00,0x00,0x00,0x58,0x03,0x00,0x00,0x57,0x03,0x00,0x00, -0x50,0x02,0x00,0x00,0x59,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x59,0x03,0x00,0x00,0x4b,0x03,0x00,0x00, -0x58,0x03,0x00,0x00,0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, -0x5a,0x03,0x00,0x00,0x59,0x03,0x00,0x00,0x0c,0x00,0x08,0x00, -0x9d,0x00,0x00,0x00,0x5c,0x03,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0x48,0x03,0x00,0x00,0x5a,0x03,0x00,0x00, -0x42,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x60,0x03,0x00,0x00,0x14,0x03,0x00,0x00,0xb0,0x01,0x00,0x00, -0x41,0x00,0x06,0x00,0x3f,0x02,0x00,0x00,0x61,0x03,0x00,0x00, -0x3b,0x02,0x00,0x00,0x59,0x00,0x00,0x00,0x60,0x03,0x00,0x00, -0x3d,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0x62,0x03,0x00,0x00, -0x61,0x03,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x64,0x03,0x00,0x00,0x12,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x65,0x03,0x00,0x00,0x64,0x03,0x00,0x00, -0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00,0x6c,0x03,0x00,0x00, -0x97,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x90,0x00,0x00,0x00, -0x6e,0x03,0x00,0x00,0x6c,0x03,0x00,0x00,0x9c,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x6f,0x03,0x00,0x00, -0x6e,0x03,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x70,0x03,0x00,0x00,0x6f,0x03,0x00,0x00,0xab,0x00,0x05,0x00, -0xb2,0x00,0x00,0x00,0x71,0x03,0x00,0x00,0x70,0x03,0x00,0x00, -0x59,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,0x1b,0x00,0x00,0x00, -0x72,0x03,0x00,0x00,0x71,0x03,0x00,0x00,0x50,0x02,0x00,0x00, -0x59,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x73,0x03,0x00,0x00,0x65,0x03,0x00,0x00,0x72,0x03,0x00,0x00, -0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0x74,0x03,0x00,0x00, -0x73,0x03,0x00,0x00,0x0c,0x00,0x08,0x00,0x9d,0x00,0x00,0x00, -0x76,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x62,0x03,0x00,0x00,0x74,0x03,0x00,0x00,0x5c,0x03,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7b,0x03,0x00,0x00, -0x14,0x03,0x00,0x00,0x85,0x00,0x00,0x00,0x41,0x00,0x06,0x00, -0x3f,0x02,0x00,0x00,0x7c,0x03,0x00,0x00,0x3b,0x02,0x00,0x00, -0x59,0x00,0x00,0x00,0x7b,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, -0x9d,0x00,0x00,0x00,0x7d,0x03,0x00,0x00,0x7c,0x03,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x7f,0x03,0x00,0x00, -0x1b,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x80,0x03,0x00,0x00,0x7f,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0x86,0x03,0x00,0x00,0x49,0x02,0x00,0x00, -0xc4,0x00,0x05,0x00,0x90,0x00,0x00,0x00,0x88,0x03,0x00,0x00, -0x9c,0x00,0x00,0x00,0x93,0x00,0x00,0x00,0xc7,0x00,0x05,0x00, -0x90,0x00,0x00,0x00,0x89,0x03,0x00,0x00,0x86,0x03,0x00,0x00, -0x88,0x03,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x8a,0x03,0x00,0x00,0x89,0x03,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x8b,0x03,0x00,0x00,0x8a,0x03,0x00,0x00, -0xab,0x00,0x05,0x00,0xb2,0x00,0x00,0x00,0x8c,0x03,0x00,0x00, -0x8b,0x03,0x00,0x00,0x59,0x00,0x00,0x00,0xa9,0x00,0x06,0x00, -0x1b,0x00,0x00,0x00,0x8d,0x03,0x00,0x00,0x8c,0x03,0x00,0x00, -0x50,0x02,0x00,0x00,0x59,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x8e,0x03,0x00,0x00,0x80,0x03,0x00,0x00, -0x8d,0x03,0x00,0x00,0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, -0x8f,0x03,0x00,0x00,0x8e,0x03,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x94,0x03,0x00,0x00,0x14,0x03,0x00,0x00, -0xc0,0x02,0x00,0x00,0x41,0x00,0x06,0x00,0x3f,0x02,0x00,0x00, -0x95,0x03,0x00,0x00,0x3b,0x02,0x00,0x00,0x59,0x00,0x00,0x00, -0x94,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, -0x96,0x03,0x00,0x00,0x95,0x03,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x98,0x03,0x00,0x00,0x24,0x02,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x99,0x03,0x00,0x00, -0x98,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0xa0,0x03,0x00,0x00,0x63,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, -0x90,0x00,0x00,0x00,0xa3,0x03,0x00,0x00,0xa0,0x03,0x00,0x00, -0x88,0x03,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xa4,0x03,0x00,0x00,0xa3,0x03,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0xa5,0x03,0x00,0x00,0xa4,0x03,0x00,0x00, -0xab,0x00,0x05,0x00,0xb2,0x00,0x00,0x00,0xa6,0x03,0x00,0x00, -0xa5,0x03,0x00,0x00,0x59,0x00,0x00,0x00,0xa9,0x00,0x06,0x00, -0x1b,0x00,0x00,0x00,0xa7,0x03,0x00,0x00,0xa6,0x03,0x00,0x00, -0x50,0x02,0x00,0x00,0x59,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0xa8,0x03,0x00,0x00,0x99,0x03,0x00,0x00, -0xa7,0x03,0x00,0x00,0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, -0xa9,0x03,0x00,0x00,0xa8,0x03,0x00,0x00,0x85,0x00,0x05,0x00, -0x9d,0x00,0x00,0x00,0xaa,0x03,0x00,0x00,0x96,0x03,0x00,0x00, -0xa9,0x03,0x00,0x00,0x0c,0x00,0x08,0x00,0x9d,0x00,0x00,0x00, -0xab,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x7d,0x03,0x00,0x00,0x8f,0x03,0x00,0x00,0xaa,0x03,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xaf,0x03,0x00,0x00, -0x14,0x03,0x00,0x00,0xdc,0x02,0x00,0x00,0x41,0x00,0x06,0x00, -0x3f,0x02,0x00,0x00,0xb0,0x03,0x00,0x00,0x3b,0x02,0x00,0x00, -0x59,0x00,0x00,0x00,0xaf,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, -0x9d,0x00,0x00,0x00,0xb1,0x03,0x00,0x00,0xb0,0x03,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xb3,0x03,0x00,0x00, -0x2d,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0xb4,0x03,0x00,0x00,0xb3,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0xbb,0x03,0x00,0x00,0x7d,0x02,0x00,0x00, -0xc7,0x00,0x05,0x00,0x90,0x00,0x00,0x00,0xbe,0x03,0x00,0x00, -0xbb,0x03,0x00,0x00,0x88,0x03,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xbf,0x03,0x00,0x00,0xbe,0x03,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xc0,0x03,0x00,0x00, -0xbf,0x03,0x00,0x00,0xab,0x00,0x05,0x00,0xb2,0x00,0x00,0x00, -0xc1,0x03,0x00,0x00,0xc0,0x03,0x00,0x00,0x59,0x00,0x00,0x00, -0xa9,0x00,0x06,0x00,0x1b,0x00,0x00,0x00,0xc2,0x03,0x00,0x00, -0xc1,0x03,0x00,0x00,0x50,0x02,0x00,0x00,0x59,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xc3,0x03,0x00,0x00, -0xb4,0x03,0x00,0x00,0xc2,0x03,0x00,0x00,0x6f,0x00,0x04,0x00, -0x9d,0x00,0x00,0x00,0xc4,0x03,0x00,0x00,0xc3,0x03,0x00,0x00, -0x0c,0x00,0x08,0x00,0x9d,0x00,0x00,0x00,0xc6,0x03,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xb1,0x03,0x00,0x00, -0xc4,0x03,0x00,0x00,0xab,0x03,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xca,0x03,0x00,0x00,0x14,0x03,0x00,0x00, -0xf8,0x02,0x00,0x00,0x41,0x00,0x06,0x00,0x3f,0x02,0x00,0x00, -0xcb,0x03,0x00,0x00,0x3b,0x02,0x00,0x00,0x59,0x00,0x00,0x00, -0xca,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, -0xcc,0x03,0x00,0x00,0xcb,0x03,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xce,0x03,0x00,0x00,0x36,0x02,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xcf,0x03,0x00,0x00, -0xce,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x90,0x00,0x00,0x00, -0xd6,0x03,0x00,0x00,0x97,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, -0x90,0x00,0x00,0x00,0xd9,0x03,0x00,0x00,0xd6,0x03,0x00,0x00, -0x88,0x03,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xda,0x03,0x00,0x00,0xd9,0x03,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0xdb,0x03,0x00,0x00,0xda,0x03,0x00,0x00, -0xab,0x00,0x05,0x00,0xb2,0x00,0x00,0x00,0xdc,0x03,0x00,0x00, -0xdb,0x03,0x00,0x00,0x59,0x00,0x00,0x00,0xa9,0x00,0x06,0x00, -0x1b,0x00,0x00,0x00,0xdd,0x03,0x00,0x00,0xdc,0x03,0x00,0x00, -0x50,0x02,0x00,0x00,0x59,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0xde,0x03,0x00,0x00,0xcf,0x03,0x00,0x00, -0xdd,0x03,0x00,0x00,0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, -0xdf,0x03,0x00,0x00,0xde,0x03,0x00,0x00,0x0c,0x00,0x08,0x00, -0x9d,0x00,0x00,0x00,0xe1,0x03,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0xcc,0x03,0x00,0x00,0xdf,0x03,0x00,0x00, -0xc6,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, -0xe7,0x03,0x00,0x00,0x40,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0x9d,0x00,0x00,0x00,0xed,0x03,0x00,0x00,0x59,0x02,0x00,0x00, -0x81,0x00,0x05,0x00,0x9d,0x00,0x00,0x00,0xee,0x03,0x00,0x00, -0xe7,0x03,0x00,0x00,0xed,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, -0x9d,0x00,0x00,0x00,0xf4,0x03,0x00,0x00,0x73,0x02,0x00,0x00, -0x81,0x00,0x05,0x00,0x9d,0x00,0x00,0x00,0xf5,0x03,0x00,0x00, -0xee,0x03,0x00,0x00,0xf4,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, -0x9d,0x00,0x00,0x00,0xfb,0x03,0x00,0x00,0x8d,0x02,0x00,0x00, -0x81,0x00,0x05,0x00,0x9d,0x00,0x00,0x00,0xfc,0x03,0x00,0x00, -0xf5,0x03,0x00,0x00,0xfb,0x03,0x00,0x00,0x70,0x00,0x04,0x00, -0x9d,0x00,0x00,0x00,0xfe,0x03,0x00,0x00,0x02,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0x05,0x04,0x00,0x00, -0xa8,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, -0x0b,0x04,0x00,0x00,0xc2,0x02,0x00,0x00,0x81,0x00,0x05,0x00, -0x9d,0x00,0x00,0x00,0x0c,0x04,0x00,0x00,0x05,0x04,0x00,0x00, -0x0b,0x04,0x00,0x00,0x3d,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, -0x12,0x04,0x00,0x00,0xde,0x02,0x00,0x00,0x81,0x00,0x05,0x00, -0x9d,0x00,0x00,0x00,0x13,0x04,0x00,0x00,0x0c,0x04,0x00,0x00, -0x12,0x04,0x00,0x00,0x3d,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, -0x19,0x04,0x00,0x00,0xfa,0x02,0x00,0x00,0x81,0x00,0x05,0x00, -0x9d,0x00,0x00,0x00,0x1a,0x04,0x00,0x00,0x13,0x04,0x00,0x00, -0x19,0x04,0x00,0x00,0x70,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, -0x1c,0x04,0x00,0x00,0x11,0x01,0x00,0x00,0x85,0x00,0x05,0x00, -0x9d,0x00,0x00,0x00,0x1d,0x04,0x00,0x00,0x1a,0x04,0x00,0x00, -0x1c,0x04,0x00,0x00,0x0c,0x00,0x08,0x00,0x9d,0x00,0x00,0x00, -0x1e,0x04,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0xfc,0x03,0x00,0x00,0xfe,0x03,0x00,0x00,0x1d,0x04,0x00,0x00, -0x3d,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0x23,0x04,0x00,0x00, -0x15,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, -0x29,0x04,0x00,0x00,0x2d,0x03,0x00,0x00,0x81,0x00,0x05,0x00, -0x9d,0x00,0x00,0x00,0x2a,0x04,0x00,0x00,0x23,0x04,0x00,0x00, -0x29,0x04,0x00,0x00,0x3d,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, -0x30,0x04,0x00,0x00,0x47,0x03,0x00,0x00,0x81,0x00,0x05,0x00, -0x9d,0x00,0x00,0x00,0x31,0x04,0x00,0x00,0x2a,0x04,0x00,0x00, -0x30,0x04,0x00,0x00,0x3d,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, -0x37,0x04,0x00,0x00,0x61,0x03,0x00,0x00,0x81,0x00,0x05,0x00, -0x9d,0x00,0x00,0x00,0x38,0x04,0x00,0x00,0x31,0x04,0x00,0x00, -0x37,0x04,0x00,0x00,0x70,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, -0x3a,0x04,0x00,0x00,0x67,0x01,0x00,0x00,0x0c,0x00,0x08,0x00, -0x9d,0x00,0x00,0x00,0x3c,0x04,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0x38,0x04,0x00,0x00,0x3a,0x04,0x00,0x00, -0x1e,0x04,0x00,0x00,0x3d,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, -0x42,0x04,0x00,0x00,0x7c,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, -0x9d,0x00,0x00,0x00,0x48,0x04,0x00,0x00,0x95,0x03,0x00,0x00, -0x81,0x00,0x05,0x00,0x9d,0x00,0x00,0x00,0x49,0x04,0x00,0x00, -0x42,0x04,0x00,0x00,0x48,0x04,0x00,0x00,0x3d,0x00,0x04,0x00, -0x9d,0x00,0x00,0x00,0x4f,0x04,0x00,0x00,0xb0,0x03,0x00,0x00, -0x81,0x00,0x05,0x00,0x9d,0x00,0x00,0x00,0x50,0x04,0x00,0x00, -0x49,0x04,0x00,0x00,0x4f,0x04,0x00,0x00,0x3d,0x00,0x04,0x00, -0x9d,0x00,0x00,0x00,0x56,0x04,0x00,0x00,0xcb,0x03,0x00,0x00, -0x81,0x00,0x05,0x00,0x9d,0x00,0x00,0x00,0x57,0x04,0x00,0x00, -0x50,0x04,0x00,0x00,0x56,0x04,0x00,0x00,0x70,0x00,0x04,0x00, -0x9d,0x00,0x00,0x00,0x59,0x04,0x00,0x00,0x83,0x01,0x00,0x00, -0x0c,0x00,0x08,0x00,0x9d,0x00,0x00,0x00,0x5b,0x04,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x57,0x04,0x00,0x00, -0x59,0x04,0x00,0x00,0x3c,0x04,0x00,0x00,0x70,0x00,0x04,0x00, -0x9d,0x00,0x00,0x00,0x63,0x04,0x00,0x00,0xe6,0x00,0x00,0x00, -0x70,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0x67,0x04,0x00,0x00, -0xf4,0x00,0x00,0x00,0x85,0x00,0x05,0x00,0x9d,0x00,0x00,0x00, -0x68,0x04,0x00,0x00,0x10,0x03,0x00,0x00,0x67,0x04,0x00,0x00, -0x0c,0x00,0x08,0x00,0x9d,0x00,0x00,0x00,0x69,0x04,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xa2,0x02,0x00,0x00, -0x63,0x04,0x00,0x00,0x68,0x04,0x00,0x00,0x70,0x00,0x04,0x00, -0x9d,0x00,0x00,0x00,0x6c,0x04,0x00,0x00,0x2f,0x01,0x00,0x00, -0x0c,0x00,0x08,0x00,0x9d,0x00,0x00,0x00,0x6e,0x04,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x76,0x03,0x00,0x00, -0x6c,0x04,0x00,0x00,0x69,0x04,0x00,0x00,0x70,0x00,0x04,0x00, -0x9d,0x00,0x00,0x00,0x71,0x04,0x00,0x00,0x4b,0x01,0x00,0x00, -0x0c,0x00,0x08,0x00,0x9d,0x00,0x00,0x00,0x73,0x04,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xe1,0x03,0x00,0x00, -0x71,0x04,0x00,0x00,0x6e,0x04,0x00,0x00,0x85,0x00,0x05,0x00, -0x9d,0x00,0x00,0x00,0x77,0x04,0x00,0x00,0xd7,0x00,0x00,0x00, -0x5b,0x04,0x00,0x00,0x7f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, -0xd7,0x04,0x00,0x00,0x77,0x04,0x00,0x00,0x0c,0x00,0x08,0x00, -0x9d,0x00,0x00,0x00,0x78,0x04,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0x73,0x04,0x00,0x00, -0xd7,0x04,0x00,0x00,0x3d,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, -0x7a,0x04,0x00,0x00,0xa8,0x00,0x00,0x00,0x81,0x00,0x05,0x00, -0x9d,0x00,0x00,0x00,0x7b,0x04,0x00,0x00,0x7a,0x04,0x00,0x00, -0x78,0x04,0x00,0x00,0x3e,0x00,0x03,0x00,0xa8,0x00,0x00,0x00, -0x7b,0x04,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x7e,0x04,0x00,0x00,0xd3,0x04,0x00,0x00,0x69,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0xab,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0xad,0x00,0x00,0x00,0xe0,0x00,0x04,0x00,0x69,0x00,0x00,0x00, -0x69,0x00,0x00,0x00,0x7f,0x04,0x00,0x00,0xf9,0x00,0x02,0x00, -0x81,0x04,0x00,0x00,0xf8,0x00,0x02,0x00,0x81,0x04,0x00,0x00, -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0xd4,0x04,0x00,0x00, -0xa1,0x00,0x00,0x00,0xad,0x00,0x00,0x00,0x98,0x04,0x00,0x00, -0x84,0x04,0x00,0x00,0xac,0x00,0x05,0x00,0xb2,0x00,0x00,0x00, -0x87,0x04,0x00,0x00,0xd4,0x04,0x00,0x00,0x4b,0x00,0x00,0x00, -0xf6,0x00,0x04,0x00,0x83,0x04,0x00,0x00,0x84,0x04,0x00,0x00, -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x87,0x04,0x00,0x00, -0x82,0x04,0x00,0x00,0x83,0x04,0x00,0x00,0xf8,0x00,0x02,0x00, -0x82,0x04,0x00,0x00,0xb0,0x00,0x05,0x00,0xb2,0x00,0x00,0x00, -0x8a,0x04,0x00,0x00,0x6a,0x00,0x00,0x00,0xd4,0x04,0x00,0x00, -0xf7,0x00,0x03,0x00,0x8c,0x04,0x00,0x00,0x00,0x00,0x00,0x00, -0xfa,0x00,0x04,0x00,0x8a,0x04,0x00,0x00,0x8b,0x04,0x00,0x00, -0x8c,0x04,0x00,0x00,0xf8,0x00,0x02,0x00,0x8b,0x04,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x90,0x04,0x00,0x00, -0x6a,0x00,0x00,0x00,0xd4,0x04,0x00,0x00,0x41,0x00,0x05,0x00, -0xa7,0x00,0x00,0x00,0x91,0x04,0x00,0x00,0xa0,0x00,0x00,0x00, -0x90,0x04,0x00,0x00,0x3d,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, -0x92,0x04,0x00,0x00,0x91,0x04,0x00,0x00,0x41,0x00,0x05,0x00, -0xa7,0x00,0x00,0x00,0x93,0x04,0x00,0x00,0xa0,0x00,0x00,0x00, -0x6a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, -0x94,0x04,0x00,0x00,0x93,0x04,0x00,0x00,0x81,0x00,0x05,0x00, -0x9d,0x00,0x00,0x00,0x95,0x04,0x00,0x00,0x94,0x04,0x00,0x00, -0x92,0x04,0x00,0x00,0x3e,0x00,0x03,0x00,0x93,0x04,0x00,0x00, -0x95,0x04,0x00,0x00,0xf9,0x00,0x02,0x00,0x8c,0x04,0x00,0x00, -0xf8,0x00,0x02,0x00,0x8c,0x04,0x00,0x00,0xe0,0x00,0x04,0x00, -0x69,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0x7f,0x04,0x00,0x00, -0xf9,0x00,0x02,0x00,0x84,0x04,0x00,0x00,0xf8,0x00,0x02,0x00, -0x84,0x04,0x00,0x00,0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x98,0x04,0x00,0x00,0xd4,0x04,0x00,0x00,0x93,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0x81,0x04,0x00,0x00,0xf8,0x00,0x02,0x00, -0x83,0x04,0x00,0x00,0xaa,0x00,0x05,0x00,0xb2,0x00,0x00,0x00, -0x9a,0x04,0x00,0x00,0x6a,0x00,0x00,0x00,0x4b,0x00,0x00,0x00, -0xf7,0x00,0x03,0x00,0x9c,0x04,0x00,0x00,0x00,0x00,0x00,0x00, -0xfa,0x00,0x04,0x00,0x9a,0x04,0x00,0x00,0x9b,0x04,0x00,0x00, -0x9c,0x04,0x00,0x00,0xf8,0x00,0x02,0x00,0x9b,0x04,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa3,0x04,0x00,0x00, -0xd2,0x04,0x00,0x00,0x4d,0x00,0x00,0x00,0x41,0x00,0x05,0x00, -0xa7,0x00,0x00,0x00,0xa4,0x04,0x00,0x00,0xa0,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, -0xa5,0x04,0x00,0x00,0xa4,0x04,0x00,0x00,0x41,0x00,0x06,0x00, -0x3f,0x02,0x00,0x00,0xa6,0x04,0x00,0x00,0xa0,0x04,0x00,0x00, -0x59,0x00,0x00,0x00,0xa3,0x04,0x00,0x00,0x3e,0x00,0x03,0x00, -0xa6,0x04,0x00,0x00,0xa5,0x04,0x00,0x00,0xf9,0x00,0x02,0x00, -0x9c,0x04,0x00,0x00,0xf8,0x00,0x02,0x00,0x9c,0x04,0x00,0x00, -0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00, }; -const uint64_t mul_mat_vec_q5_k_f32_f32_len = 12776; +const uint64_t mul_mat_vec_q5_k_f32_f32_len = 12924; unsigned char mul_mat_vec_q6_k_f16_f32_data[] = { 0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00, -0x26,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, +0x2d,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, 0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x27,0x00,0x00,0x00, 0x11,0x00,0x02,0x00,0x51,0x11,0x00,0x00,0x11,0x00,0x02,0x00, 0x60,0x11,0x00,0x00,0x0b,0x00,0x06,0x00,0x01,0x00,0x00,0x00, 0x47,0x4c,0x53,0x4c,0x2e,0x73,0x74,0x64,0x2e,0x34,0x35,0x30, 0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00,0x00,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x0f,0x00,0x0d,0x00,0x05,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x0f,0x00,0x0e,0x00,0x05,0x00,0x00,0x00, 0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e,0x00,0x00,0x00,0x00, 0x11,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x4a,0x00,0x00,0x00, -0x66,0x00,0x00,0x00,0x99,0x00,0x00,0x00,0xbe,0x00,0x00,0x00, -0xd4,0x00,0x00,0x00,0xe8,0x01,0x00,0x00,0x10,0x00,0x06,0x00, -0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x11,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x18,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x03,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00, -0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x18,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x4e,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0xa0,0x00,0x00,0x00, +0xc5,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,0xef,0x01,0x00,0x00, +0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x11,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, 0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x18,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x28,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x18,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x4a,0x00,0x00,0x00, -0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x66,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xb5,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xb6,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xb8,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0xba,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0xba,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x80,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xba,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0xc0,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0xba,0x00,0x00,0x00,0x03,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xbb,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0xd2,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0xbc,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xbc,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0xbc,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xbe,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xbe,0x00,0x00,0x00, -0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xd1,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0xd2,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xd2,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0xd2,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xd4,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xd4,0x00,0x00,0x00, -0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xe5,0x01,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0xe6,0x01,0x00,0x00,0x00,0x00,0x00,0x00, -0x19,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xe6,0x01,0x00,0x00, -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0xe6,0x01,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xe8,0x01,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xe8,0x01,0x00,0x00, -0x21,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xf0,0x01,0x00,0x00,0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00, -0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00, -0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x17,0x00,0x04,0x00,0x0f,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x10,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x10,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x12,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x13,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x1e,0x00,0x0d,0x00, -0x18,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x18,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00, +0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x18,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x07,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x18,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00, +0x09,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x0a,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0x18,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x4a,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x4e,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x6e,0x00,0x00,0x00, +0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xbc,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xbd,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xbf,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0xc1,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xc1,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x80,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0xc1,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0xd0,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xc2,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,0x48,0x00,0x04,0x00, +0xc3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0xc3,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0xc3,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xc5,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xc5,0x00,0x00,0x00,0x21,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xd8,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x48,0x00,0x04,0x00, +0xd9,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0xd9,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0xd9,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xdb,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xdb,0x00,0x00,0x00,0x21,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xec,0x01,0x00,0x00, +0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00, +0xed,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0xed,0x01,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0xed,0x01,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xef,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xef,0x01,0x00,0x00,0x21,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xf7,0x01,0x00,0x00, +0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x13,0x00,0x02,0x00, +0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x17,0x00,0x04,0x00, +0x0f,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x10,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x0f,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00, +0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x13,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x1e,0x00,0x0d,0x00,0x18,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x19,0x00,0x00,0x00, -0x1a,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x15,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x1d,0x00,0x00,0x00, -0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x0a,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x2e,0x00,0x00,0x00, -0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x34,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x40,0x00,0x00,0x00, -0x05,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x45,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x10,0x00,0x00,0x00,0x4a,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4b,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,0x00,0x01,0x00,0x00, -0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00,0x66,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x19,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, +0x09,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x1d,0x00,0x00,0x00,0x09,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x28,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,0x09,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x00,0x00, +0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x3b,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x05,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x45,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00, +0x4a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00,0x4e,0x00,0x00,0x00, 0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x69,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x79,0x00,0x00,0x00, +0x51,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x64,0x00,0x00,0x00, +0x00,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00, +0x6e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x80,0x00,0x00,0x00, 0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x80,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x91,0x00,0x00,0x00, -0x80,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0x96,0x00,0x00,0x00, -0x20,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0x97,0x00,0x00,0x00, -0x96,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x98,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x97,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0x98,0x00,0x00,0x00,0x99,0x00,0x00,0x00, +0x87,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,0x20,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x98,0x00,0x00,0x00, +0x80,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0x9d,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0x9e,0x00,0x00,0x00, +0x9d,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x9f,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x9e,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x9f,0x00,0x00,0x00,0xa0,0x00,0x00,0x00, 0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x9a,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x96,0x00,0x00,0x00,0x9f,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0xa0,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x96,0x00,0x00,0x00,0x14,0x00,0x02,0x00,0xab,0x00,0x00,0x00, -0x15,0x00,0x04,0x00,0xb4,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0xb5,0x00,0x00,0x00, -0xb4,0x00,0x00,0x00,0x91,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, -0xb6,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,0x80,0x00,0x00,0x00, -0x15,0x00,0x04,0x00,0xb7,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0xb8,0x00,0x00,0x00, -0xb7,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,0x16,0x00,0x03,0x00, -0xb9,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x1e,0x00,0x06,0x00, -0xba,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,0xb6,0x00,0x00,0x00, -0xb8,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, -0xbb,0x00,0x00,0x00,0xba,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, -0xbc,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0xbd,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xbc,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0xbd,0x00,0x00,0x00,0xbe,0x00,0x00,0x00, +0xa1,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x9d,0x00,0x00,0x00,0xa6,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0xa7,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x9d,0x00,0x00,0x00,0x14,0x00,0x02,0x00,0xb2,0x00,0x00,0x00, +0x15,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0xbc,0x00,0x00,0x00, +0xbb,0x00,0x00,0x00,0x98,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, +0xbd,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0x87,0x00,0x00,0x00, +0x15,0x00,0x04,0x00,0xbe,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0xbf,0x00,0x00,0x00, +0xbe,0x00,0x00,0x00,0xa1,0x00,0x00,0x00,0x16,0x00,0x03,0x00, +0xc0,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x1e,0x00,0x06,0x00, +0xc1,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,0xbd,0x00,0x00,0x00, +0xbf,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, +0xc2,0x00,0x00,0x00,0xc1,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, +0xc3,0x00,0x00,0x00,0xc2,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0xc4,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xc3,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,0xc5,0x00,0x00,0x00, 0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0xc2,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0xc3,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xb9,0x00,0x00,0x00, -0x1d,0x00,0x03,0x00,0xd1,0x00,0x00,0x00,0xb9,0x00,0x00,0x00, -0x1e,0x00,0x03,0x00,0xd2,0x00,0x00,0x00,0xd1,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0xd3,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0xd2,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xd3,0x00,0x00,0x00, -0xd4,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0xe2,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0xe5,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0xb7,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xf4,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0xf9,0x00,0x00,0x00,0x0f,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xfe,0x00,0x00,0x00, +0xc9,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0xca,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xc0,0x00,0x00,0x00, +0x1d,0x00,0x03,0x00,0xd8,0x00,0x00,0x00,0xc0,0x00,0x00,0x00, +0x1e,0x00,0x03,0x00,0xd9,0x00,0x00,0x00,0xd8,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0xda,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0xd9,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xda,0x00,0x00,0x00, +0xdb,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0xec,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0xbe,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xfb,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x0f,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x05,0x01,0x00,0x00, 0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x0d,0x01,0x00,0x00,0x20,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x85,0x01,0x00,0x00,0x60,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x8e,0x01,0x00,0x00, +0x14,0x01,0x00,0x00,0x20,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x8c,0x01,0x00,0x00,0x60,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x95,0x01,0x00,0x00, 0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xc7,0x01,0x00,0x00,0x08,0x01,0x00,0x00,0x1d,0x00,0x03,0x00, -0xe5,0x01,0x00,0x00,0x96,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, -0xe6,0x01,0x00,0x00,0xe5,0x01,0x00,0x00,0x20,0x00,0x04,0x00, -0xe7,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0xe6,0x01,0x00,0x00, -0x3b,0x00,0x04,0x00,0xe7,0x01,0x00,0x00,0xe8,0x01,0x00,0x00, -0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xee,0x01,0x00,0x00, -0x0c,0x00,0x00,0x00,0x96,0x00,0x00,0x00,0x2c,0x00,0x06,0x00, -0x0f,0x00,0x00,0x00,0xf0,0x01,0x00,0x00,0x86,0x00,0x00,0x00, +0xce,0x01,0x00,0x00,0x08,0x01,0x00,0x00,0x1d,0x00,0x03,0x00, +0xec,0x01,0x00,0x00,0x9d,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, +0xed,0x01,0x00,0x00,0xec,0x01,0x00,0x00,0x20,0x00,0x04,0x00, +0xee,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0xed,0x01,0x00,0x00, +0x3b,0x00,0x04,0x00,0xee,0x01,0x00,0x00,0xef,0x01,0x00,0x00, +0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xf5,0x01,0x00,0x00, +0x0c,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0x2c,0x00,0x06,0x00, +0x0f,0x00,0x00,0x00,0xf7,0x01,0x00,0x00,0x8d,0x00,0x00,0x00, 0x12,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x1c,0x04,0x00,0x00,0x21,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x1d,0x04,0x00,0x00, +0x06,0x00,0x00,0x00,0x23,0x04,0x00,0x00,0x21,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x24,0x04,0x00,0x00, 0x41,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x1e,0x04,0x00,0x00,0x61,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x1f,0x04,0x00,0x00,0x22,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x20,0x04,0x00,0x00, +0x25,0x04,0x00,0x00,0x61,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x26,0x04,0x00,0x00,0x22,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x27,0x04,0x00,0x00, 0x42,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x21,0x04,0x00,0x00,0x62,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x22,0x04,0x00,0x00,0x03,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x23,0x04,0x00,0x00, +0x28,0x04,0x00,0x00,0x62,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x29,0x04,0x00,0x00,0x03,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x2a,0x04,0x00,0x00, 0x23,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x24,0x04,0x00,0x00,0x43,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x25,0x04,0x00,0x00,0x63,0x00,0x00,0x00, +0x2b,0x04,0x00,0x00,0x43,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x2c,0x04,0x00,0x00,0x63,0x00,0x00,0x00, 0x36,0x00,0x05,0x00,0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, 0x05,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00, 0x4c,0x00,0x00,0x00,0x4a,0x00,0x00,0x00,0x4b,0x00,0x00,0x00, 0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4d,0x00,0x00,0x00, 0x4c,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00, -0xf8,0x01,0x00,0x00,0x11,0x00,0x00,0x00,0x12,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xf9,0x01,0x00,0x00, -0xf8,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00, -0xfb,0x01,0x00,0x00,0x1a,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xfc,0x01,0x00,0x00, -0xfb,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xfd,0x01,0x00,0x00,0xf9,0x01,0x00,0x00,0xfc,0x01,0x00,0x00, -0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x01,0x02,0x00,0x00, -0xf9,0x01,0x00,0x00,0xfc,0x01,0x00,0x00,0x41,0x00,0x05,0x00, -0x1d,0x00,0x00,0x00,0x03,0x02,0x00,0x00,0x1a,0x00,0x00,0x00, -0x28,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x04,0x02,0x00,0x00,0x03,0x02,0x00,0x00,0x86,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x05,0x02,0x00,0x00,0xfd,0x01,0x00,0x00, -0x04,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00, -0x07,0x02,0x00,0x00,0x1a,0x00,0x00,0x00,0x2e,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x08,0x02,0x00,0x00, -0x07,0x02,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x09,0x02,0x00,0x00,0x01,0x02,0x00,0x00,0x08,0x02,0x00,0x00, -0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00,0x0b,0x02,0x00,0x00, -0x1a,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x0c,0x02,0x00,0x00,0x0b,0x02,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0d,0x02,0x00,0x00, -0x05,0x02,0x00,0x00,0x0c,0x02,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x0f,0x02,0x00,0x00,0x0d,0x02,0x00,0x00, -0x09,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00, -0x11,0x02,0x00,0x00,0x1a,0x00,0x00,0x00,0x3b,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x12,0x02,0x00,0x00, -0x11,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x13,0x02,0x00,0x00,0x0f,0x02,0x00,0x00,0x12,0x02,0x00,0x00, -0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00,0x15,0x02,0x00,0x00, -0x1a,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x16,0x02,0x00,0x00,0x15,0x02,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x17,0x02,0x00,0x00, -0xf9,0x01,0x00,0x00,0x16,0x02,0x00,0x00,0x41,0x00,0x05,0x00, -0x1d,0x00,0x00,0x00,0x19,0x02,0x00,0x00,0x1a,0x00,0x00,0x00, -0x45,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x1a,0x02,0x00,0x00,0x19,0x02,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x1b,0x02,0x00,0x00,0xf9,0x01,0x00,0x00, -0x1a,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00, -0x5a,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x5b,0x00,0x00,0x00, -0x5a,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x5d,0x00,0x00,0x00,0x5b,0x00,0x00,0x00,0x5c,0x00,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x60,0x00,0x00,0x00, -0x13,0x02,0x00,0x00,0x5c,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x4d,0x00,0x00,0x00, -0x5d,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x64,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x63,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00,0x67,0x00,0x00,0x00, -0x66,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x67,0x00,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6a,0x00,0x00,0x00, -0x68,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0x89,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x68,0x00,0x00,0x00, -0x69,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x72,0x00,0x00,0x00,0x6a,0x00,0x00,0x00,0x71,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x76,0x00,0x00,0x00, -0x71,0x00,0x00,0x00,0x72,0x00,0x00,0x00,0x82,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x77,0x00,0x00,0x00,0x6a,0x00,0x00,0x00, -0x76,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x7b,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x77,0x00,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7e,0x00,0x00,0x00, -0x77,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x84,0x00,0x05,0x00, +0x4f,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x4b,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x50,0x00,0x00,0x00, +0x4f,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00, +0x52,0x00,0x00,0x00,0x4a,0x00,0x00,0x00,0x51,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x53,0x00,0x00,0x00, +0x52,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x54,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x53,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x55,0x00,0x00,0x00, +0x4d,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0x13,0x00,0x00,0x00,0xff,0x01,0x00,0x00,0x11,0x00,0x00,0x00, +0x12,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x00,0x02,0x00,0x00,0xff,0x01,0x00,0x00,0x41,0x00,0x05,0x00, +0x1d,0x00,0x00,0x00,0x02,0x02,0x00,0x00,0x1a,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x03,0x02,0x00,0x00,0x02,0x02,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x04,0x02,0x00,0x00,0x00,0x02,0x00,0x00, +0x03,0x02,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x08,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x03,0x02,0x00,0x00, +0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00,0x0a,0x02,0x00,0x00, +0x1a,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x0b,0x02,0x00,0x00,0x0a,0x02,0x00,0x00, +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0c,0x02,0x00,0x00, +0x04,0x02,0x00,0x00,0x0b,0x02,0x00,0x00,0x41,0x00,0x05,0x00, +0x1d,0x00,0x00,0x00,0x0e,0x02,0x00,0x00,0x1a,0x00,0x00,0x00, +0x2e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x0f,0x02,0x00,0x00,0x0e,0x02,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x10,0x02,0x00,0x00,0x08,0x02,0x00,0x00, +0x0f,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00, +0x12,0x02,0x00,0x00,0x1a,0x00,0x00,0x00,0x34,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x13,0x02,0x00,0x00, +0x12,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x14,0x02,0x00,0x00,0x0c,0x02,0x00,0x00,0x13,0x02,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x16,0x02,0x00,0x00, +0x14,0x02,0x00,0x00,0x10,0x02,0x00,0x00,0x41,0x00,0x05,0x00, +0x1d,0x00,0x00,0x00,0x18,0x02,0x00,0x00,0x1a,0x00,0x00,0x00, +0x3b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x19,0x02,0x00,0x00,0x18,0x02,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x1a,0x02,0x00,0x00,0x16,0x02,0x00,0x00, +0x19,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00, +0x1c,0x02,0x00,0x00,0x1a,0x00,0x00,0x00,0x40,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x1d,0x02,0x00,0x00, +0x1c,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x1e,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x1d,0x02,0x00,0x00, +0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00,0x20,0x02,0x00,0x00, +0x1a,0x00,0x00,0x00,0x45,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x21,0x02,0x00,0x00,0x20,0x02,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x22,0x02,0x00,0x00, +0x00,0x02,0x00,0x00,0x21,0x02,0x00,0x00,0x41,0x00,0x05,0x00, +0x1d,0x00,0x00,0x00,0x62,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x63,0x00,0x00,0x00,0x62,0x00,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x65,0x00,0x00,0x00,0x63,0x00,0x00,0x00, +0x64,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x68,0x00,0x00,0x00,0x1a,0x02,0x00,0x00,0x64,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6b,0x00,0x00,0x00, +0x55,0x00,0x00,0x00,0x65,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x68,0x00,0x00,0x00, +0x6b,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00, +0x6f,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x4b,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x70,0x00,0x00,0x00, +0x6f,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x71,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x51,0x00,0x00,0x00, +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x75,0x00,0x00,0x00, +0x70,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x71,0x00,0x00,0x00, +0x78,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x7d,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x79,0x00,0x00,0x00, +0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7e,0x00,0x00,0x00, +0x71,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,0x84,0x00,0x05,0x00, 0x06,0x00,0x00,0x00,0x82,0x00,0x00,0x00,0x80,0x00,0x00,0x00, -0x72,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x84,0x00,0x00,0x00,0x82,0x00,0x00,0x00,0x7b,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x88,0x00,0x00,0x00, -0x86,0x00,0x00,0x00,0x72,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x8a,0x00,0x00,0x00,0x88,0x00,0x00,0x00, -0x7b,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x8f,0x00,0x00,0x00,0x76,0x00,0x00,0x00,0x7e,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x93,0x00,0x00,0x00, -0x91,0x00,0x00,0x00,0x72,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x95,0x00,0x00,0x00,0x93,0x00,0x00,0x00, -0x7b,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x9c,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,0x6e,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9e,0x00,0x00,0x00, -0x9c,0x00,0x00,0x00,0x6a,0x00,0x00,0x00,0x41,0x00,0x05,0x00, -0xa0,0x00,0x00,0x00,0xa1,0x00,0x00,0x00,0x99,0x00,0x00,0x00, -0x9e,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0xa1,0x00,0x00,0x00, -0x9f,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xa4,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0xa4,0x00,0x00,0x00,0xf5,0x00,0x07,0x00, -0x06,0x00,0x00,0x00,0x1c,0x02,0x00,0x00,0x6e,0x00,0x00,0x00, -0x05,0x00,0x00,0x00,0xc6,0x01,0x00,0x00,0xa5,0x00,0x00,0x00, -0xb0,0x00,0x05,0x00,0xab,0x00,0x00,0x00,0xac,0x00,0x00,0x00, -0x1c,0x02,0x00,0x00,0x5d,0x00,0x00,0x00,0xf6,0x00,0x04,0x00, -0xa6,0x00,0x00,0x00,0xa5,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0xfa,0x00,0x04,0x00,0xac,0x00,0x00,0x00,0xa5,0x00,0x00,0x00, -0xa6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xa5,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xaf,0x00,0x00,0x00, -0x1c,0x02,0x00,0x00,0x5c,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xb1,0x00,0x00,0x00,0xaf,0x00,0x00,0x00, -0x95,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xc1,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0x1c,0x02,0x00,0x00, -0x41,0x00,0x07,0x00,0xc3,0x00,0x00,0x00,0xc4,0x00,0x00,0x00, -0xbe,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xc1,0x00,0x00,0x00, -0xc2,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xb9,0x00,0x00,0x00, -0xc5,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,0x73,0x00,0x04,0x00, -0x96,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,0xc5,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd7,0x00,0x00,0x00, -0x17,0x02,0x00,0x00,0xb1,0x00,0x00,0x00,0x41,0x00,0x06,0x00, -0xc3,0x00,0x00,0x00,0xdc,0x00,0x00,0x00,0xd4,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xd7,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb9,0x00,0x00,0x00,0xdd,0x00,0x00,0x00,0xdc,0x00,0x00,0x00, -0x73,0x00,0x04,0x00,0x96,0x00,0x00,0x00,0xde,0x00,0x00,0x00, -0xdd,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xe5,0x00,0x00,0x00, -0xe6,0x00,0x00,0x00,0xbe,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0xc1,0x00,0x00,0x00,0xe2,0x00,0x00,0x00,0x8f,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb7,0x00,0x00,0x00,0xe7,0x00,0x00,0x00, -0xe6,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x96,0x00,0x00,0x00, -0xe8,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,0x85,0x00,0x05,0x00, -0x96,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,0xde,0x00,0x00,0x00, -0xe8,0x00,0x00,0x00,0x85,0x00,0x05,0x00,0x96,0x00,0x00,0x00, -0xeb,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,0xc6,0x00,0x00,0x00, -0x41,0x00,0x08,0x00,0xf4,0x00,0x00,0x00,0xf5,0x00,0x00,0x00, -0xbe,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xc1,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb4,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,0xf5,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xf7,0x00,0x00,0x00, -0xf6,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0xf8,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,0xf8,0x00,0x00,0x00, -0xf9,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xf4,0x00,0x00,0x00, -0x03,0x01,0x00,0x00,0xbe,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0xc1,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0x8a,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00,0x04,0x01,0x00,0x00, -0x03,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0xb4,0x00,0x00,0x00, -0x05,0x01,0x00,0x00,0x04,0x01,0x00,0x00,0x59,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x06,0x01,0x00,0x00, -0x05,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x07,0x01,0x00,0x00,0x06,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x07,0x01,0x00,0x00, -0xc2,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x09,0x01,0x00,0x00,0x08,0x01,0x00,0x00,0x3b,0x00,0x00,0x00, -0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x0a,0x01,0x00,0x00, -0xfa,0x00,0x00,0x00,0x09,0x01,0x00,0x00,0x72,0x00,0x04,0x00, -0xb7,0x00,0x00,0x00,0x0b,0x01,0x00,0x00,0x0a,0x01,0x00,0x00, -0x72,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x0c,0x01,0x00,0x00, -0x0b,0x01,0x00,0x00,0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x0e,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,0x0d,0x01,0x00,0x00, -0x6f,0x00,0x04,0x00,0x96,0x00,0x00,0x00,0x0f,0x01,0x00,0x00, -0x0e,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x17,0x01,0x00,0x00,0xd7,0x00,0x00,0x00,0x86,0x00,0x00,0x00, -0x41,0x00,0x06,0x00,0xc3,0x00,0x00,0x00,0x18,0x01,0x00,0x00, -0xd4,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x17,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb9,0x00,0x00,0x00,0x19,0x01,0x00,0x00, -0x18,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x96,0x00,0x00,0x00, -0x1a,0x01,0x00,0x00,0x19,0x01,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x1f,0x01,0x00,0x00,0x8f,0x00,0x00,0x00, -0x69,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xe5,0x00,0x00,0x00, -0x20,0x01,0x00,0x00,0xbe,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0xc1,0x00,0x00,0x00,0xe2,0x00,0x00,0x00,0x1f,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb7,0x00,0x00,0x00,0x21,0x01,0x00,0x00, -0x20,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x96,0x00,0x00,0x00, -0x22,0x01,0x00,0x00,0x21,0x01,0x00,0x00,0x85,0x00,0x05,0x00, -0x96,0x00,0x00,0x00,0x23,0x01,0x00,0x00,0x1a,0x01,0x00,0x00, -0x22,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x96,0x00,0x00,0x00, -0x25,0x01,0x00,0x00,0x23,0x01,0x00,0x00,0xc6,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2d,0x01,0x00,0x00, -0x84,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x41,0x00,0x08,0x00, -0xf4,0x00,0x00,0x00,0x2e,0x01,0x00,0x00,0xbe,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xc1,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0x2d,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00, -0x2f,0x01,0x00,0x00,0x2e,0x01,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x30,0x01,0x00,0x00,0x2f,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x31,0x01,0x00,0x00, -0x30,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x32,0x01,0x00,0x00,0x31,0x01,0x00,0x00,0xf9,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00,0x3b,0x01,0x00,0x00, -0x03,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0xb4,0x00,0x00,0x00, -0x3c,0x01,0x00,0x00,0x3b,0x01,0x00,0x00,0xe2,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x3d,0x01,0x00,0x00, -0x3c,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x3e,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x3f,0x01,0x00,0x00,0x3e,0x01,0x00,0x00, -0xc2,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x40,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,0x3b,0x00,0x00,0x00, -0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x41,0x01,0x00,0x00, -0x32,0x01,0x00,0x00,0x40,0x01,0x00,0x00,0x72,0x00,0x04,0x00, -0xb7,0x00,0x00,0x00,0x42,0x01,0x00,0x00,0x41,0x01,0x00,0x00, -0x72,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x43,0x01,0x00,0x00, -0x42,0x01,0x00,0x00,0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x44,0x01,0x00,0x00,0x43,0x01,0x00,0x00,0x0d,0x01,0x00,0x00, -0x6f,0x00,0x04,0x00,0x96,0x00,0x00,0x00,0x45,0x01,0x00,0x00, -0x44,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x96,0x00,0x00,0x00, -0x46,0x01,0x00,0x00,0x25,0x01,0x00,0x00,0x45,0x01,0x00,0x00, -0x0c,0x00,0x08,0x00,0x96,0x00,0x00,0x00,0x47,0x01,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xeb,0x00,0x00,0x00, -0x0f,0x01,0x00,0x00,0x46,0x01,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x4e,0x01,0x00,0x00,0xd7,0x00,0x00,0x00, -0x80,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xc3,0x00,0x00,0x00, -0x4f,0x01,0x00,0x00,0xd4,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0x4e,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xb9,0x00,0x00,0x00, -0x50,0x01,0x00,0x00,0x4f,0x01,0x00,0x00,0x73,0x00,0x04,0x00, -0x96,0x00,0x00,0x00,0x51,0x01,0x00,0x00,0x50,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x56,0x01,0x00,0x00, -0x8f,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x41,0x00,0x08,0x00, -0xe5,0x00,0x00,0x00,0x57,0x01,0x00,0x00,0xbe,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xc1,0x00,0x00,0x00,0xe2,0x00,0x00,0x00, -0x56,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xb7,0x00,0x00,0x00, -0x58,0x01,0x00,0x00,0x57,0x01,0x00,0x00,0x6f,0x00,0x04,0x00, -0x96,0x00,0x00,0x00,0x59,0x01,0x00,0x00,0x58,0x01,0x00,0x00, -0x85,0x00,0x05,0x00,0x96,0x00,0x00,0x00,0x5a,0x01,0x00,0x00, -0x51,0x01,0x00,0x00,0x59,0x01,0x00,0x00,0x85,0x00,0x05,0x00, -0x96,0x00,0x00,0x00,0x5c,0x01,0x00,0x00,0x5a,0x01,0x00,0x00, -0xc6,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00, -0x66,0x01,0x00,0x00,0xf5,0x00,0x00,0x00,0xc2,0x00,0x05,0x00, -0xb4,0x00,0x00,0x00,0x67,0x01,0x00,0x00,0x66,0x01,0x00,0x00, +0x7e,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x85,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x80,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x89,0x00,0x00,0x00, +0x87,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x8b,0x00,0x00,0x00,0x89,0x00,0x00,0x00, +0x82,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x8f,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,0x79,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x91,0x00,0x00,0x00, +0x8f,0x00,0x00,0x00,0x82,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x96,0x00,0x00,0x00,0x7d,0x00,0x00,0x00, +0x85,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x9a,0x00,0x00,0x00,0x98,0x00,0x00,0x00,0x79,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9c,0x00,0x00,0x00, +0x9a,0x00,0x00,0x00,0x82,0x00,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0xa1,0x00,0x00,0x00, +0x75,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xa5,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0x71,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0xa7,0x00,0x00,0x00,0xa8,0x00,0x00,0x00, +0xa0,0x00,0x00,0x00,0xa5,0x00,0x00,0x00,0x3e,0x00,0x03,0x00, +0xa8,0x00,0x00,0x00,0xa6,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, +0xab,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xab,0x00,0x00,0x00, +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x23,0x02,0x00,0x00, +0x75,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0xcd,0x01,0x00,0x00, +0xac,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0xb2,0x00,0x00,0x00, +0xb3,0x00,0x00,0x00,0x23,0x02,0x00,0x00,0x65,0x00,0x00,0x00, +0xf6,0x00,0x04,0x00,0xad,0x00,0x00,0x00,0xac,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xb3,0x00,0x00,0x00, +0xac,0x00,0x00,0x00,0xad,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xac,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xb6,0x00,0x00,0x00,0x23,0x02,0x00,0x00,0x64,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb8,0x00,0x00,0x00, +0xb6,0x00,0x00,0x00,0x9c,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x6c,0x00,0x00,0x00, +0x23,0x02,0x00,0x00,0x41,0x00,0x07,0x00,0xca,0x00,0x00,0x00, +0xcb,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0xc8,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0xc0,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,0xcb,0x00,0x00,0x00, +0x73,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0xcd,0x00,0x00,0x00, +0xcc,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xde,0x00,0x00,0x00,0x1e,0x02,0x00,0x00,0xb8,0x00,0x00,0x00, +0x41,0x00,0x06,0x00,0xca,0x00,0x00,0x00,0xe3,0x00,0x00,0x00, +0xdb,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xde,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0xc0,0x00,0x00,0x00,0xe4,0x00,0x00,0x00, +0xe3,0x00,0x00,0x00,0x73,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, +0xe5,0x00,0x00,0x00,0xe4,0x00,0x00,0x00,0x41,0x00,0x08,0x00, +0xec,0x00,0x00,0x00,0xed,0x00,0x00,0x00,0xc5,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0xe9,0x00,0x00,0x00, +0x96,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xbe,0x00,0x00,0x00, +0xee,0x00,0x00,0x00,0xed,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, +0x9d,0x00,0x00,0x00,0xef,0x00,0x00,0x00,0xee,0x00,0x00,0x00, +0x85,0x00,0x05,0x00,0x9d,0x00,0x00,0x00,0xf0,0x00,0x00,0x00, +0xe5,0x00,0x00,0x00,0xef,0x00,0x00,0x00,0x85,0x00,0x05,0x00, +0x9d,0x00,0x00,0x00,0xf2,0x00,0x00,0x00,0xf0,0x00,0x00,0x00, +0xcd,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xfb,0x00,0x00,0x00, +0xfc,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0xc8,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x8b,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0xfd,0x00,0x00,0x00, +0xfc,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xfe,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xfe,0x00,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x01,0x01,0x00,0x00, +0xff,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x41,0x00,0x08,0x00, +0xfb,0x00,0x00,0x00,0x0a,0x01,0x00,0x00,0xc5,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x05,0x01,0x00,0x00, +0x91,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00, +0x0b,0x01,0x00,0x00,0x0a,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, +0xbb,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,0x0b,0x01,0x00,0x00, +0x61,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x0d,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x0e,0x01,0x00,0x00,0x0d,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x0f,0x01,0x00,0x00, +0x0e,0x01,0x00,0x00,0xc9,0x00,0x00,0x00,0xc4,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x10,0x01,0x00,0x00,0x0f,0x01,0x00,0x00, +0x3b,0x00,0x00,0x00,0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x11,0x01,0x00,0x00,0x01,0x01,0x00,0x00,0x10,0x01,0x00,0x00, +0x72,0x00,0x04,0x00,0xbe,0x00,0x00,0x00,0x12,0x01,0x00,0x00, +0x11,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x13,0x01,0x00,0x00,0x12,0x01,0x00,0x00,0x82,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x15,0x01,0x00,0x00,0x13,0x01,0x00,0x00, +0x14,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, +0x16,0x01,0x00,0x00,0x15,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x1e,0x01,0x00,0x00,0xde,0x00,0x00,0x00, +0x8d,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xca,0x00,0x00,0x00, +0x1f,0x01,0x00,0x00,0xdb,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0x1e,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xc0,0x00,0x00,0x00, +0x20,0x01,0x00,0x00,0x1f,0x01,0x00,0x00,0x73,0x00,0x04,0x00, +0x9d,0x00,0x00,0x00,0x21,0x01,0x00,0x00,0x20,0x01,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x26,0x01,0x00,0x00, +0x96,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0x41,0x00,0x08,0x00, +0xec,0x00,0x00,0x00,0x27,0x01,0x00,0x00,0xc5,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0xe9,0x00,0x00,0x00, +0x26,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xbe,0x00,0x00,0x00, +0x28,0x01,0x00,0x00,0x27,0x01,0x00,0x00,0x6f,0x00,0x04,0x00, +0x9d,0x00,0x00,0x00,0x29,0x01,0x00,0x00,0x28,0x01,0x00,0x00, +0x85,0x00,0x05,0x00,0x9d,0x00,0x00,0x00,0x2a,0x01,0x00,0x00, +0x21,0x01,0x00,0x00,0x29,0x01,0x00,0x00,0x85,0x00,0x05,0x00, +0x9d,0x00,0x00,0x00,0x2c,0x01,0x00,0x00,0x2a,0x01,0x00,0x00, +0xcd,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x34,0x01,0x00,0x00,0x8b,0x00,0x00,0x00,0x8d,0x00,0x00,0x00, +0x41,0x00,0x08,0x00,0xfb,0x00,0x00,0x00,0x35,0x01,0x00,0x00, +0xc5,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xc8,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0x34,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0xbb,0x00,0x00,0x00,0x36,0x01,0x00,0x00,0x35,0x01,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x37,0x01,0x00,0x00, +0x36,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x38,0x01,0x00,0x00,0x37,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x39,0x01,0x00,0x00,0x38,0x01,0x00,0x00, +0x00,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00, +0x42,0x01,0x00,0x00,0x0a,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, +0xbb,0x00,0x00,0x00,0x43,0x01,0x00,0x00,0x42,0x01,0x00,0x00, +0xe9,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x44,0x01,0x00,0x00,0x43,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x45,0x01,0x00,0x00,0x44,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x46,0x01,0x00,0x00, +0x45,0x01,0x00,0x00,0xc9,0x00,0x00,0x00,0xc4,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x47,0x01,0x00,0x00,0x46,0x01,0x00,0x00, +0x3b,0x00,0x00,0x00,0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x48,0x01,0x00,0x00,0x39,0x01,0x00,0x00,0x47,0x01,0x00,0x00, +0x72,0x00,0x04,0x00,0xbe,0x00,0x00,0x00,0x49,0x01,0x00,0x00, +0x48,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x4a,0x01,0x00,0x00,0x49,0x01,0x00,0x00,0x82,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x4b,0x01,0x00,0x00,0x4a,0x01,0x00,0x00, +0x14,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, +0x4c,0x01,0x00,0x00,0x4b,0x01,0x00,0x00,0x85,0x00,0x05,0x00, +0x9d,0x00,0x00,0x00,0x4d,0x01,0x00,0x00,0x2c,0x01,0x00,0x00, +0x4c,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0x9d,0x00,0x00,0x00, +0x4e,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0xf2,0x00,0x00,0x00,0x16,0x01,0x00,0x00,0x4d,0x01,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x55,0x01,0x00,0x00, +0xde,0x00,0x00,0x00,0x87,0x00,0x00,0x00,0x41,0x00,0x06,0x00, +0xca,0x00,0x00,0x00,0x56,0x01,0x00,0x00,0xdb,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0x55,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0xc0,0x00,0x00,0x00,0x57,0x01,0x00,0x00,0x56,0x01,0x00,0x00, +0x73,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0x58,0x01,0x00,0x00, +0x57,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x5d,0x01,0x00,0x00,0x96,0x00,0x00,0x00,0x80,0x00,0x00,0x00, +0x41,0x00,0x08,0x00,0xec,0x00,0x00,0x00,0x5e,0x01,0x00,0x00, +0xc5,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xc8,0x00,0x00,0x00, +0xe9,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0xbe,0x00,0x00,0x00,0x5f,0x01,0x00,0x00,0x5e,0x01,0x00,0x00, +0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0x60,0x01,0x00,0x00, +0x5f,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x9d,0x00,0x00,0x00, +0x61,0x01,0x00,0x00,0x58,0x01,0x00,0x00,0x60,0x01,0x00,0x00, +0x85,0x00,0x05,0x00,0x9d,0x00,0x00,0x00,0x63,0x01,0x00,0x00, +0x61,0x01,0x00,0x00,0xcd,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0xbb,0x00,0x00,0x00,0x6d,0x01,0x00,0x00,0xfc,0x00,0x00,0x00, +0xc2,0x00,0x05,0x00,0xbb,0x00,0x00,0x00,0x6e,0x01,0x00,0x00, +0x6d,0x01,0x00,0x00,0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x6f,0x01,0x00,0x00,0x6e,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x70,0x01,0x00,0x00, +0x6f,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00, +0x79,0x01,0x00,0x00,0x0a,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, +0xbb,0x00,0x00,0x00,0x7a,0x01,0x00,0x00,0x79,0x01,0x00,0x00, 0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x68,0x01,0x00,0x00,0x67,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x69,0x01,0x00,0x00,0x68,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00,0x72,0x01,0x00,0x00, -0x03,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0xb4,0x00,0x00,0x00, -0x73,0x01,0x00,0x00,0x72,0x01,0x00,0x00,0x3b,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x74,0x01,0x00,0x00, -0x73,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x75,0x01,0x00,0x00,0x74,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x76,0x01,0x00,0x00,0x75,0x01,0x00,0x00, -0xc2,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x77,0x01,0x00,0x00,0x76,0x01,0x00,0x00,0x3b,0x00,0x00,0x00, -0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x78,0x01,0x00,0x00, -0x69,0x01,0x00,0x00,0x77,0x01,0x00,0x00,0x72,0x00,0x04,0x00, -0xb7,0x00,0x00,0x00,0x79,0x01,0x00,0x00,0x78,0x01,0x00,0x00, -0x72,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x7a,0x01,0x00,0x00, -0x79,0x01,0x00,0x00,0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x7b,0x01,0x00,0x00,0x7a,0x01,0x00,0x00,0x0d,0x01,0x00,0x00, -0x6f,0x00,0x04,0x00,0x96,0x00,0x00,0x00,0x7c,0x01,0x00,0x00, -0x7b,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0x96,0x00,0x00,0x00, -0x7e,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x5c,0x01,0x00,0x00,0x7c,0x01,0x00,0x00,0x47,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x86,0x01,0x00,0x00, -0xd7,0x00,0x00,0x00,0x85,0x01,0x00,0x00,0x41,0x00,0x06,0x00, -0xc3,0x00,0x00,0x00,0x87,0x01,0x00,0x00,0xd4,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0x86,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb9,0x00,0x00,0x00,0x88,0x01,0x00,0x00,0x87,0x01,0x00,0x00, -0x73,0x00,0x04,0x00,0x96,0x00,0x00,0x00,0x89,0x01,0x00,0x00, -0x88,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x8f,0x01,0x00,0x00,0x8f,0x00,0x00,0x00,0x8e,0x01,0x00,0x00, -0x41,0x00,0x08,0x00,0xe5,0x00,0x00,0x00,0x90,0x01,0x00,0x00, -0xbe,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xc1,0x00,0x00,0x00, -0xe2,0x00,0x00,0x00,0x8f,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb7,0x00,0x00,0x00,0x91,0x01,0x00,0x00,0x90,0x01,0x00,0x00, -0x6f,0x00,0x04,0x00,0x96,0x00,0x00,0x00,0x92,0x01,0x00,0x00, -0x91,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x96,0x00,0x00,0x00, -0x93,0x01,0x00,0x00,0x89,0x01,0x00,0x00,0x92,0x01,0x00,0x00, -0x85,0x00,0x05,0x00,0x96,0x00,0x00,0x00,0x95,0x01,0x00,0x00, -0x93,0x01,0x00,0x00,0xc6,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb4,0x00,0x00,0x00,0x9f,0x01,0x00,0x00,0x2e,0x01,0x00,0x00, -0xc2,0x00,0x05,0x00,0xb4,0x00,0x00,0x00,0xa0,0x01,0x00,0x00, -0x9f,0x01,0x00,0x00,0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xa1,0x01,0x00,0x00,0xa0,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xa2,0x01,0x00,0x00, -0xa1,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00, -0xab,0x01,0x00,0x00,0x03,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, -0xb4,0x00,0x00,0x00,0xac,0x01,0x00,0x00,0xab,0x01,0x00,0x00, -0x45,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xad,0x01,0x00,0x00,0xac,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0xae,0x01,0x00,0x00,0xad,0x01,0x00,0x00, -0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xaf,0x01,0x00,0x00, -0xae,0x01,0x00,0x00,0xc2,0x00,0x00,0x00,0xc4,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0xb0,0x01,0x00,0x00,0xaf,0x01,0x00,0x00, +0x7b,0x01,0x00,0x00,0x7a,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x7c,0x01,0x00,0x00,0x7b,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x7d,0x01,0x00,0x00, +0x7c,0x01,0x00,0x00,0xc9,0x00,0x00,0x00,0xc4,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x7e,0x01,0x00,0x00,0x7d,0x01,0x00,0x00, 0x3b,0x00,0x00,0x00,0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0xb1,0x01,0x00,0x00,0xa2,0x01,0x00,0x00,0xb0,0x01,0x00,0x00, -0x72,0x00,0x04,0x00,0xb7,0x00,0x00,0x00,0xb2,0x01,0x00,0x00, -0xb1,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0xb3,0x01,0x00,0x00,0xb2,0x01,0x00,0x00,0x82,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0xb4,0x01,0x00,0x00,0xb3,0x01,0x00,0x00, -0x0d,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x96,0x00,0x00,0x00, -0xb5,0x01,0x00,0x00,0xb4,0x01,0x00,0x00,0x0c,0x00,0x08,0x00, -0x96,0x00,0x00,0x00,0xb7,0x01,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0x95,0x01,0x00,0x00,0xb5,0x01,0x00,0x00, -0x7e,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x2b,0x02,0x00,0x00,0xd7,0x00,0x00,0x00,0x12,0x00,0x00,0x00, -0x41,0x00,0x06,0x00,0xc3,0x00,0x00,0x00,0x2d,0x02,0x00,0x00, -0xd4,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x2b,0x02,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb9,0x00,0x00,0x00,0x2e,0x02,0x00,0x00, -0x2d,0x02,0x00,0x00,0x73,0x00,0x04,0x00,0x96,0x00,0x00,0x00, -0x2f,0x02,0x00,0x00,0x2e,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb7,0x00,0x00,0x00,0x33,0x02,0x00,0x00,0xe6,0x00,0x00,0x00, -0x6f,0x00,0x04,0x00,0x96,0x00,0x00,0x00,0x34,0x02,0x00,0x00, -0x33,0x02,0x00,0x00,0x85,0x00,0x05,0x00,0x96,0x00,0x00,0x00, -0x35,0x02,0x00,0x00,0x2f,0x02,0x00,0x00,0x34,0x02,0x00,0x00, -0x85,0x00,0x05,0x00,0x96,0x00,0x00,0x00,0x36,0x02,0x00,0x00, -0x35,0x02,0x00,0x00,0xc6,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x39,0x02,0x00,0x00,0x84,0x00,0x00,0x00, -0x12,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xf4,0x00,0x00,0x00, -0x3b,0x02,0x00,0x00,0xbe,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0xc1,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x39,0x02,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00,0x3c,0x02,0x00,0x00, -0x3b,0x02,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x3d,0x02,0x00,0x00,0x3c,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x3e,0x02,0x00,0x00,0x3d,0x02,0x00,0x00, -0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x3f,0x02,0x00,0x00, -0x3e,0x02,0x00,0x00,0xf9,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x42,0x02,0x00,0x00,0x8a,0x00,0x00,0x00, -0x12,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xf4,0x00,0x00,0x00, -0x43,0x02,0x00,0x00,0xbe,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0xc1,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0x42,0x02,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00,0x44,0x02,0x00,0x00, -0x43,0x02,0x00,0x00,0xc2,0x00,0x05,0x00,0xb4,0x00,0x00,0x00, -0x45,0x02,0x00,0x00,0x44,0x02,0x00,0x00,0x59,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x46,0x02,0x00,0x00, -0x45,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x47,0x02,0x00,0x00,0x46,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x48,0x02,0x00,0x00,0x47,0x02,0x00,0x00, -0xc2,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x49,0x02,0x00,0x00,0x48,0x02,0x00,0x00,0x3b,0x00,0x00,0x00, -0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x4a,0x02,0x00,0x00, -0x3f,0x02,0x00,0x00,0x49,0x02,0x00,0x00,0x72,0x00,0x04,0x00, -0xb7,0x00,0x00,0x00,0x4b,0x02,0x00,0x00,0x4a,0x02,0x00,0x00, -0x72,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x4c,0x02,0x00,0x00, -0x4b,0x02,0x00,0x00,0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x4d,0x02,0x00,0x00,0x4c,0x02,0x00,0x00,0x0d,0x01,0x00,0x00, -0x6f,0x00,0x04,0x00,0x96,0x00,0x00,0x00,0x4e,0x02,0x00,0x00, -0x4d,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x53,0x02,0x00,0x00,0xd7,0x00,0x00,0x00,0x1c,0x04,0x00,0x00, -0x41,0x00,0x06,0x00,0xc3,0x00,0x00,0x00,0x54,0x02,0x00,0x00, -0xd4,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x53,0x02,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb9,0x00,0x00,0x00,0x55,0x02,0x00,0x00, -0x54,0x02,0x00,0x00,0x73,0x00,0x04,0x00,0x96,0x00,0x00,0x00, -0x56,0x02,0x00,0x00,0x55,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb7,0x00,0x00,0x00,0x5a,0x02,0x00,0x00,0x20,0x01,0x00,0x00, -0x6f,0x00,0x04,0x00,0x96,0x00,0x00,0x00,0x5b,0x02,0x00,0x00, -0x5a,0x02,0x00,0x00,0x85,0x00,0x05,0x00,0x96,0x00,0x00,0x00, -0x5c,0x02,0x00,0x00,0x56,0x02,0x00,0x00,0x5b,0x02,0x00,0x00, -0x85,0x00,0x05,0x00,0x96,0x00,0x00,0x00,0x5d,0x02,0x00,0x00, -0x5c,0x02,0x00,0x00,0xc6,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x61,0x02,0x00,0x00,0x84,0x00,0x00,0x00, -0x1c,0x04,0x00,0x00,0x41,0x00,0x08,0x00,0xf4,0x00,0x00,0x00, -0x62,0x02,0x00,0x00,0xbe,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0xc1,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x61,0x02,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00,0x63,0x02,0x00,0x00, -0x62,0x02,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x64,0x02,0x00,0x00,0x63,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x65,0x02,0x00,0x00,0x64,0x02,0x00,0x00, -0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x66,0x02,0x00,0x00, -0x65,0x02,0x00,0x00,0xf9,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb4,0x00,0x00,0x00,0x6b,0x02,0x00,0x00,0x43,0x02,0x00,0x00, -0xc2,0x00,0x05,0x00,0xb4,0x00,0x00,0x00,0x6c,0x02,0x00,0x00, -0x6b,0x02,0x00,0x00,0xe2,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x6d,0x02,0x00,0x00,0x6c,0x02,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x6e,0x02,0x00,0x00, -0x6d,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x6f,0x02,0x00,0x00,0x6e,0x02,0x00,0x00,0xc2,0x00,0x00,0x00, -0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x70,0x02,0x00,0x00, -0x6f,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0xc5,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x71,0x02,0x00,0x00,0x66,0x02,0x00,0x00, -0x70,0x02,0x00,0x00,0x72,0x00,0x04,0x00,0xb7,0x00,0x00,0x00, -0x72,0x02,0x00,0x00,0x71,0x02,0x00,0x00,0x72,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x73,0x02,0x00,0x00,0x72,0x02,0x00,0x00, -0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x74,0x02,0x00,0x00, -0x73,0x02,0x00,0x00,0x0d,0x01,0x00,0x00,0x6f,0x00,0x04,0x00, -0x96,0x00,0x00,0x00,0x75,0x02,0x00,0x00,0x74,0x02,0x00,0x00, -0x85,0x00,0x05,0x00,0x96,0x00,0x00,0x00,0x76,0x02,0x00,0x00, -0x5d,0x02,0x00,0x00,0x75,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, -0x96,0x00,0x00,0x00,0x77,0x02,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0x36,0x02,0x00,0x00,0x4e,0x02,0x00,0x00, -0x76,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x7b,0x02,0x00,0x00,0xd7,0x00,0x00,0x00,0x1d,0x04,0x00,0x00, -0x41,0x00,0x06,0x00,0xc3,0x00,0x00,0x00,0x7c,0x02,0x00,0x00, -0xd4,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x7b,0x02,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb9,0x00,0x00,0x00,0x7d,0x02,0x00,0x00, -0x7c,0x02,0x00,0x00,0x73,0x00,0x04,0x00,0x96,0x00,0x00,0x00, -0x7e,0x02,0x00,0x00,0x7d,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb7,0x00,0x00,0x00,0x82,0x02,0x00,0x00,0x57,0x01,0x00,0x00, -0x6f,0x00,0x04,0x00,0x96,0x00,0x00,0x00,0x83,0x02,0x00,0x00, -0x82,0x02,0x00,0x00,0x85,0x00,0x05,0x00,0x96,0x00,0x00,0x00, -0x84,0x02,0x00,0x00,0x7e,0x02,0x00,0x00,0x83,0x02,0x00,0x00, -0x85,0x00,0x05,0x00,0x96,0x00,0x00,0x00,0x85,0x02,0x00,0x00, -0x84,0x02,0x00,0x00,0xc6,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb4,0x00,0x00,0x00,0x8b,0x02,0x00,0x00,0x3b,0x02,0x00,0x00, -0xc2,0x00,0x05,0x00,0xb4,0x00,0x00,0x00,0x8c,0x02,0x00,0x00, -0x8b,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x8d,0x02,0x00,0x00,0x8c,0x02,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x8e,0x02,0x00,0x00, -0x8d,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00, -0x93,0x02,0x00,0x00,0x43,0x02,0x00,0x00,0xc2,0x00,0x05,0x00, -0xb4,0x00,0x00,0x00,0x94,0x02,0x00,0x00,0x93,0x02,0x00,0x00, +0x7f,0x01,0x00,0x00,0x70,0x01,0x00,0x00,0x7e,0x01,0x00,0x00, +0x72,0x00,0x04,0x00,0xbe,0x00,0x00,0x00,0x80,0x01,0x00,0x00, +0x7f,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x81,0x01,0x00,0x00,0x80,0x01,0x00,0x00,0x82,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x82,0x01,0x00,0x00,0x81,0x01,0x00,0x00, +0x14,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, +0x83,0x01,0x00,0x00,0x82,0x01,0x00,0x00,0x0c,0x00,0x08,0x00, +0x9d,0x00,0x00,0x00,0x85,0x01,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x63,0x01,0x00,0x00,0x83,0x01,0x00,0x00, +0x4e,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x8d,0x01,0x00,0x00,0xde,0x00,0x00,0x00,0x8c,0x01,0x00,0x00, +0x41,0x00,0x06,0x00,0xca,0x00,0x00,0x00,0x8e,0x01,0x00,0x00, +0xdb,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x8d,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0xc0,0x00,0x00,0x00,0x8f,0x01,0x00,0x00, +0x8e,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, +0x90,0x01,0x00,0x00,0x8f,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x96,0x01,0x00,0x00,0x96,0x00,0x00,0x00, +0x95,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0xec,0x00,0x00,0x00, +0x97,0x01,0x00,0x00,0xc5,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0xc8,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,0x96,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0xbe,0x00,0x00,0x00,0x98,0x01,0x00,0x00, +0x97,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, +0x99,0x01,0x00,0x00,0x98,0x01,0x00,0x00,0x85,0x00,0x05,0x00, +0x9d,0x00,0x00,0x00,0x9a,0x01,0x00,0x00,0x90,0x01,0x00,0x00, +0x99,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x9d,0x00,0x00,0x00, +0x9c,0x01,0x00,0x00,0x9a,0x01,0x00,0x00,0xcd,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0xa6,0x01,0x00,0x00, +0x35,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0xbb,0x00,0x00,0x00, +0xa7,0x01,0x00,0x00,0xa6,0x01,0x00,0x00,0x3b,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa8,0x01,0x00,0x00, +0xa7,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0xa9,0x01,0x00,0x00,0xa8,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0xbb,0x00,0x00,0x00,0xb2,0x01,0x00,0x00,0x0a,0x01,0x00,0x00, +0xc2,0x00,0x05,0x00,0xbb,0x00,0x00,0x00,0xb3,0x01,0x00,0x00, +0xb2,0x01,0x00,0x00,0x45,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xb4,0x01,0x00,0x00,0xb3,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xb5,0x01,0x00,0x00, +0xb4,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0xb6,0x01,0x00,0x00,0xb5,0x01,0x00,0x00,0xc9,0x00,0x00,0x00, +0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xb7,0x01,0x00,0x00, +0xb6,0x01,0x00,0x00,0x3b,0x00,0x00,0x00,0xc5,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0xb8,0x01,0x00,0x00,0xa9,0x01,0x00,0x00, +0xb7,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0xbe,0x00,0x00,0x00, +0xb9,0x01,0x00,0x00,0xb8,0x01,0x00,0x00,0x72,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0xba,0x01,0x00,0x00,0xb9,0x01,0x00,0x00, +0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xbb,0x01,0x00,0x00, +0xba,0x01,0x00,0x00,0x14,0x01,0x00,0x00,0x6f,0x00,0x04,0x00, +0x9d,0x00,0x00,0x00,0xbc,0x01,0x00,0x00,0xbb,0x01,0x00,0x00, +0x0c,0x00,0x08,0x00,0x9d,0x00,0x00,0x00,0xbe,0x01,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x9c,0x01,0x00,0x00, +0xbc,0x01,0x00,0x00,0x85,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x32,0x02,0x00,0x00,0xde,0x00,0x00,0x00, +0x12,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xca,0x00,0x00,0x00, +0x34,0x02,0x00,0x00,0xdb,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0x32,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xc0,0x00,0x00,0x00, +0x35,0x02,0x00,0x00,0x34,0x02,0x00,0x00,0x73,0x00,0x04,0x00, +0x9d,0x00,0x00,0x00,0x36,0x02,0x00,0x00,0x35,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0xbe,0x00,0x00,0x00,0x3a,0x02,0x00,0x00, +0xed,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, +0x3b,0x02,0x00,0x00,0x3a,0x02,0x00,0x00,0x85,0x00,0x05,0x00, +0x9d,0x00,0x00,0x00,0x3c,0x02,0x00,0x00,0x36,0x02,0x00,0x00, +0x3b,0x02,0x00,0x00,0x85,0x00,0x05,0x00,0x9d,0x00,0x00,0x00, +0x3d,0x02,0x00,0x00,0x3c,0x02,0x00,0x00,0xcd,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x40,0x02,0x00,0x00, +0x8b,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x41,0x00,0x08,0x00, +0xfb,0x00,0x00,0x00,0x42,0x02,0x00,0x00,0xc5,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0x40,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00, +0x43,0x02,0x00,0x00,0x42,0x02,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x44,0x02,0x00,0x00,0x43,0x02,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x45,0x02,0x00,0x00, +0x44,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x46,0x02,0x00,0x00,0x45,0x02,0x00,0x00,0x00,0x01,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x49,0x02,0x00,0x00, +0x91,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x41,0x00,0x08,0x00, +0xfb,0x00,0x00,0x00,0x4a,0x02,0x00,0x00,0xc5,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x05,0x01,0x00,0x00, +0x49,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00, +0x4b,0x02,0x00,0x00,0x4a,0x02,0x00,0x00,0xc2,0x00,0x05,0x00, +0xbb,0x00,0x00,0x00,0x4c,0x02,0x00,0x00,0x4b,0x02,0x00,0x00, +0x61,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x4d,0x02,0x00,0x00,0x4c,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x4e,0x02,0x00,0x00,0x4d,0x02,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x4f,0x02,0x00,0x00, +0x4e,0x02,0x00,0x00,0xc9,0x00,0x00,0x00,0xc4,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x50,0x02,0x00,0x00,0x4f,0x02,0x00,0x00, +0x3b,0x00,0x00,0x00,0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x51,0x02,0x00,0x00,0x46,0x02,0x00,0x00,0x50,0x02,0x00,0x00, +0x72,0x00,0x04,0x00,0xbe,0x00,0x00,0x00,0x52,0x02,0x00,0x00, +0x51,0x02,0x00,0x00,0x72,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x53,0x02,0x00,0x00,0x52,0x02,0x00,0x00,0x82,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x54,0x02,0x00,0x00,0x53,0x02,0x00,0x00, +0x14,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, +0x55,0x02,0x00,0x00,0x54,0x02,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x5a,0x02,0x00,0x00,0xde,0x00,0x00,0x00, +0x23,0x04,0x00,0x00,0x41,0x00,0x06,0x00,0xca,0x00,0x00,0x00, +0x5b,0x02,0x00,0x00,0xdb,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0x5a,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xc0,0x00,0x00,0x00, +0x5c,0x02,0x00,0x00,0x5b,0x02,0x00,0x00,0x73,0x00,0x04,0x00, +0x9d,0x00,0x00,0x00,0x5d,0x02,0x00,0x00,0x5c,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0xbe,0x00,0x00,0x00,0x61,0x02,0x00,0x00, +0x27,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, +0x62,0x02,0x00,0x00,0x61,0x02,0x00,0x00,0x85,0x00,0x05,0x00, +0x9d,0x00,0x00,0x00,0x63,0x02,0x00,0x00,0x5d,0x02,0x00,0x00, +0x62,0x02,0x00,0x00,0x85,0x00,0x05,0x00,0x9d,0x00,0x00,0x00, +0x64,0x02,0x00,0x00,0x63,0x02,0x00,0x00,0xcd,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x68,0x02,0x00,0x00, +0x8b,0x00,0x00,0x00,0x23,0x04,0x00,0x00,0x41,0x00,0x08,0x00, +0xfb,0x00,0x00,0x00,0x69,0x02,0x00,0x00,0xc5,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0x68,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00, +0x6a,0x02,0x00,0x00,0x69,0x02,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x6b,0x02,0x00,0x00,0x6a,0x02,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x6c,0x02,0x00,0x00, +0x6b,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x6d,0x02,0x00,0x00,0x6c,0x02,0x00,0x00,0x00,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0x72,0x02,0x00,0x00, +0x4a,0x02,0x00,0x00,0xc2,0x00,0x05,0x00,0xbb,0x00,0x00,0x00, +0x73,0x02,0x00,0x00,0x72,0x02,0x00,0x00,0xe9,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x74,0x02,0x00,0x00, +0x73,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x75,0x02,0x00,0x00,0x74,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x76,0x02,0x00,0x00,0x75,0x02,0x00,0x00, +0xc9,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x77,0x02,0x00,0x00,0x76,0x02,0x00,0x00,0x3b,0x00,0x00,0x00, +0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x78,0x02,0x00,0x00, +0x6d,0x02,0x00,0x00,0x77,0x02,0x00,0x00,0x72,0x00,0x04,0x00, +0xbe,0x00,0x00,0x00,0x79,0x02,0x00,0x00,0x78,0x02,0x00,0x00, +0x72,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x7a,0x02,0x00,0x00, +0x79,0x02,0x00,0x00,0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x7b,0x02,0x00,0x00,0x7a,0x02,0x00,0x00,0x14,0x01,0x00,0x00, +0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0x7c,0x02,0x00,0x00, +0x7b,0x02,0x00,0x00,0x85,0x00,0x05,0x00,0x9d,0x00,0x00,0x00, +0x7d,0x02,0x00,0x00,0x64,0x02,0x00,0x00,0x7c,0x02,0x00,0x00, +0x0c,0x00,0x08,0x00,0x9d,0x00,0x00,0x00,0x7e,0x02,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x3d,0x02,0x00,0x00, +0x55,0x02,0x00,0x00,0x7d,0x02,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x82,0x02,0x00,0x00,0xde,0x00,0x00,0x00, +0x24,0x04,0x00,0x00,0x41,0x00,0x06,0x00,0xca,0x00,0x00,0x00, +0x83,0x02,0x00,0x00,0xdb,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0x82,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xc0,0x00,0x00,0x00, +0x84,0x02,0x00,0x00,0x83,0x02,0x00,0x00,0x73,0x00,0x04,0x00, +0x9d,0x00,0x00,0x00,0x85,0x02,0x00,0x00,0x84,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0xbe,0x00,0x00,0x00,0x89,0x02,0x00,0x00, +0x5e,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, +0x8a,0x02,0x00,0x00,0x89,0x02,0x00,0x00,0x85,0x00,0x05,0x00, +0x9d,0x00,0x00,0x00,0x8b,0x02,0x00,0x00,0x85,0x02,0x00,0x00, +0x8a,0x02,0x00,0x00,0x85,0x00,0x05,0x00,0x9d,0x00,0x00,0x00, +0x8c,0x02,0x00,0x00,0x8b,0x02,0x00,0x00,0xcd,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0x92,0x02,0x00,0x00, +0x42,0x02,0x00,0x00,0xc2,0x00,0x05,0x00,0xbb,0x00,0x00,0x00, +0x93,0x02,0x00,0x00,0x92,0x02,0x00,0x00,0x3b,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x94,0x02,0x00,0x00, +0x93,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x95,0x02,0x00,0x00,0x94,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0xbb,0x00,0x00,0x00,0x9a,0x02,0x00,0x00,0x4a,0x02,0x00,0x00, +0xc2,0x00,0x05,0x00,0xbb,0x00,0x00,0x00,0x9b,0x02,0x00,0x00, +0x9a,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x9c,0x02,0x00,0x00,0x9b,0x02,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x9d,0x02,0x00,0x00, +0x9c,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x9e,0x02,0x00,0x00,0x9d,0x02,0x00,0x00,0xc9,0x00,0x00,0x00, +0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x9f,0x02,0x00,0x00, +0x9e,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0xc5,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0xa0,0x02,0x00,0x00,0x95,0x02,0x00,0x00, +0x9f,0x02,0x00,0x00,0x72,0x00,0x04,0x00,0xbe,0x00,0x00,0x00, +0xa1,0x02,0x00,0x00,0xa0,0x02,0x00,0x00,0x72,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0xa2,0x02,0x00,0x00,0xa1,0x02,0x00,0x00, +0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xa3,0x02,0x00,0x00, +0xa2,0x02,0x00,0x00,0x14,0x01,0x00,0x00,0x6f,0x00,0x04,0x00, +0x9d,0x00,0x00,0x00,0xa4,0x02,0x00,0x00,0xa3,0x02,0x00,0x00, +0x0c,0x00,0x08,0x00,0x9d,0x00,0x00,0x00,0xa6,0x02,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x8c,0x02,0x00,0x00, +0xa4,0x02,0x00,0x00,0x7e,0x02,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xaa,0x02,0x00,0x00,0xde,0x00,0x00,0x00, +0x25,0x04,0x00,0x00,0x41,0x00,0x06,0x00,0xca,0x00,0x00,0x00, +0xab,0x02,0x00,0x00,0xdb,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0xaa,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xc0,0x00,0x00,0x00, +0xac,0x02,0x00,0x00,0xab,0x02,0x00,0x00,0x73,0x00,0x04,0x00, +0x9d,0x00,0x00,0x00,0xad,0x02,0x00,0x00,0xac,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0xbe,0x00,0x00,0x00,0xb1,0x02,0x00,0x00, +0x97,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, +0xb2,0x02,0x00,0x00,0xb1,0x02,0x00,0x00,0x85,0x00,0x05,0x00, +0x9d,0x00,0x00,0x00,0xb3,0x02,0x00,0x00,0xad,0x02,0x00,0x00, +0xb2,0x02,0x00,0x00,0x85,0x00,0x05,0x00,0x9d,0x00,0x00,0x00, +0xb4,0x02,0x00,0x00,0xb3,0x02,0x00,0x00,0xcd,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0xba,0x02,0x00,0x00, +0x69,0x02,0x00,0x00,0xc2,0x00,0x05,0x00,0xbb,0x00,0x00,0x00, +0xbb,0x02,0x00,0x00,0xba,0x02,0x00,0x00,0x3b,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xbc,0x02,0x00,0x00, +0xbb,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0xbd,0x02,0x00,0x00,0xbc,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0xbb,0x00,0x00,0x00,0xc2,0x02,0x00,0x00,0x4a,0x02,0x00,0x00, +0xc2,0x00,0x05,0x00,0xbb,0x00,0x00,0x00,0xc3,0x02,0x00,0x00, +0xc2,0x02,0x00,0x00,0x45,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xc4,0x02,0x00,0x00,0xc3,0x02,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xc5,0x02,0x00,0x00, +0xc4,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0xc6,0x02,0x00,0x00,0xc5,0x02,0x00,0x00,0xc9,0x00,0x00,0x00, +0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xc7,0x02,0x00,0x00, +0xc6,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0xc5,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0xc8,0x02,0x00,0x00,0xbd,0x02,0x00,0x00, +0xc7,0x02,0x00,0x00,0x72,0x00,0x04,0x00,0xbe,0x00,0x00,0x00, +0xc9,0x02,0x00,0x00,0xc8,0x02,0x00,0x00,0x72,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0xca,0x02,0x00,0x00,0xc9,0x02,0x00,0x00, +0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xcb,0x02,0x00,0x00, +0xca,0x02,0x00,0x00,0x14,0x01,0x00,0x00,0x6f,0x00,0x04,0x00, +0x9d,0x00,0x00,0x00,0xcc,0x02,0x00,0x00,0xcb,0x02,0x00,0x00, +0x0c,0x00,0x08,0x00,0x9d,0x00,0x00,0x00,0xce,0x02,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xb4,0x02,0x00,0x00, +0xcc,0x02,0x00,0x00,0xa6,0x02,0x00,0x00,0x81,0x00,0x05,0x00, +0x9d,0x00,0x00,0x00,0xcf,0x02,0x00,0x00,0xbe,0x01,0x00,0x00, +0xce,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xda,0x02,0x00,0x00,0xde,0x00,0x00,0x00,0x51,0x00,0x00,0x00, +0x41,0x00,0x06,0x00,0xca,0x00,0x00,0x00,0xdc,0x02,0x00,0x00, +0xdb,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xda,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0xc0,0x00,0x00,0x00,0xdd,0x02,0x00,0x00, +0xdc,0x02,0x00,0x00,0x73,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, +0xde,0x02,0x00,0x00,0xdd,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0xbe,0x00,0x00,0x00,0xe2,0x02,0x00,0x00,0xed,0x00,0x00,0x00, +0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0xe3,0x02,0x00,0x00, +0xe2,0x02,0x00,0x00,0x85,0x00,0x05,0x00,0x9d,0x00,0x00,0x00, +0xe4,0x02,0x00,0x00,0xde,0x02,0x00,0x00,0xe3,0x02,0x00,0x00, +0x85,0x00,0x05,0x00,0x9d,0x00,0x00,0x00,0xe5,0x02,0x00,0x00, +0xe4,0x02,0x00,0x00,0xcd,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xe8,0x02,0x00,0x00,0x8b,0x00,0x00,0x00, +0x51,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xfb,0x00,0x00,0x00, +0xea,0x02,0x00,0x00,0xc5,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0xc8,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xe8,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0xeb,0x02,0x00,0x00, +0xea,0x02,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xec,0x02,0x00,0x00,0xeb,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0xed,0x02,0x00,0x00,0xec,0x02,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xee,0x02,0x00,0x00, +0xed,0x02,0x00,0x00,0x00,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xf1,0x02,0x00,0x00,0x91,0x00,0x00,0x00, +0x51,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xfb,0x00,0x00,0x00, +0xf2,0x02,0x00,0x00,0xc5,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0xc8,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0xf1,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0xf3,0x02,0x00,0x00, +0xf2,0x02,0x00,0x00,0xc2,0x00,0x05,0x00,0xbb,0x00,0x00,0x00, +0xf4,0x02,0x00,0x00,0xf3,0x02,0x00,0x00,0x61,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xf5,0x02,0x00,0x00, +0xf4,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0xf6,0x02,0x00,0x00,0xf5,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0xf7,0x02,0x00,0x00,0xf6,0x02,0x00,0x00, +0xc9,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0xf8,0x02,0x00,0x00,0xf7,0x02,0x00,0x00,0x3b,0x00,0x00,0x00, +0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xf9,0x02,0x00,0x00, +0xee,0x02,0x00,0x00,0xf8,0x02,0x00,0x00,0x72,0x00,0x04,0x00, +0xbe,0x00,0x00,0x00,0xfa,0x02,0x00,0x00,0xf9,0x02,0x00,0x00, +0x72,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xfb,0x02,0x00,0x00, +0xfa,0x02,0x00,0x00,0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0xfc,0x02,0x00,0x00,0xfb,0x02,0x00,0x00,0x14,0x01,0x00,0x00, +0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0xfd,0x02,0x00,0x00, +0xfc,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x02,0x03,0x00,0x00,0xde,0x00,0x00,0x00,0x26,0x04,0x00,0x00, +0x41,0x00,0x06,0x00,0xca,0x00,0x00,0x00,0x03,0x03,0x00,0x00, +0xdb,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x02,0x03,0x00,0x00, +0x3d,0x00,0x04,0x00,0xc0,0x00,0x00,0x00,0x04,0x03,0x00,0x00, +0x03,0x03,0x00,0x00,0x73,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, +0x05,0x03,0x00,0x00,0x04,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, +0xbe,0x00,0x00,0x00,0x09,0x03,0x00,0x00,0x27,0x01,0x00,0x00, +0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0x0a,0x03,0x00,0x00, +0x09,0x03,0x00,0x00,0x85,0x00,0x05,0x00,0x9d,0x00,0x00,0x00, +0x0b,0x03,0x00,0x00,0x05,0x03,0x00,0x00,0x0a,0x03,0x00,0x00, +0x85,0x00,0x05,0x00,0x9d,0x00,0x00,0x00,0x0c,0x03,0x00,0x00, +0x0b,0x03,0x00,0x00,0xcd,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x10,0x03,0x00,0x00,0x8b,0x00,0x00,0x00, +0x26,0x04,0x00,0x00,0x41,0x00,0x08,0x00,0xfb,0x00,0x00,0x00, +0x11,0x03,0x00,0x00,0xc5,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0xc8,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x10,0x03,0x00,0x00, +0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0x12,0x03,0x00,0x00, +0x11,0x03,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x13,0x03,0x00,0x00,0x12,0x03,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x14,0x03,0x00,0x00,0x13,0x03,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x15,0x03,0x00,0x00, +0x14,0x03,0x00,0x00,0x00,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0xbb,0x00,0x00,0x00,0x1a,0x03,0x00,0x00,0xf2,0x02,0x00,0x00, +0xc2,0x00,0x05,0x00,0xbb,0x00,0x00,0x00,0x1b,0x03,0x00,0x00, +0x1a,0x03,0x00,0x00,0xe9,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x1c,0x03,0x00,0x00,0x1b,0x03,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x1d,0x03,0x00,0x00, +0x1c,0x03,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x1e,0x03,0x00,0x00,0x1d,0x03,0x00,0x00,0xc9,0x00,0x00,0x00, +0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x1f,0x03,0x00,0x00, +0x1e,0x03,0x00,0x00,0x3b,0x00,0x00,0x00,0xc5,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x20,0x03,0x00,0x00,0x15,0x03,0x00,0x00, +0x1f,0x03,0x00,0x00,0x72,0x00,0x04,0x00,0xbe,0x00,0x00,0x00, +0x21,0x03,0x00,0x00,0x20,0x03,0x00,0x00,0x72,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x22,0x03,0x00,0x00,0x21,0x03,0x00,0x00, +0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x23,0x03,0x00,0x00, +0x22,0x03,0x00,0x00,0x14,0x01,0x00,0x00,0x6f,0x00,0x04,0x00, +0x9d,0x00,0x00,0x00,0x24,0x03,0x00,0x00,0x23,0x03,0x00,0x00, +0x85,0x00,0x05,0x00,0x9d,0x00,0x00,0x00,0x25,0x03,0x00,0x00, +0x0c,0x03,0x00,0x00,0x24,0x03,0x00,0x00,0x0c,0x00,0x08,0x00, +0x9d,0x00,0x00,0x00,0x26,0x03,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0xe5,0x02,0x00,0x00,0xfd,0x02,0x00,0x00, +0x25,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x2a,0x03,0x00,0x00,0xde,0x00,0x00,0x00,0x27,0x04,0x00,0x00, +0x41,0x00,0x06,0x00,0xca,0x00,0x00,0x00,0x2b,0x03,0x00,0x00, +0xdb,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x2a,0x03,0x00,0x00, +0x3d,0x00,0x04,0x00,0xc0,0x00,0x00,0x00,0x2c,0x03,0x00,0x00, +0x2b,0x03,0x00,0x00,0x73,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, +0x2d,0x03,0x00,0x00,0x2c,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, +0xbe,0x00,0x00,0x00,0x31,0x03,0x00,0x00,0x5e,0x01,0x00,0x00, +0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0x32,0x03,0x00,0x00, +0x31,0x03,0x00,0x00,0x85,0x00,0x05,0x00,0x9d,0x00,0x00,0x00, +0x33,0x03,0x00,0x00,0x2d,0x03,0x00,0x00,0x32,0x03,0x00,0x00, +0x85,0x00,0x05,0x00,0x9d,0x00,0x00,0x00,0x34,0x03,0x00,0x00, +0x33,0x03,0x00,0x00,0xcd,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0xbb,0x00,0x00,0x00,0x3a,0x03,0x00,0x00,0xea,0x02,0x00,0x00, +0xc2,0x00,0x05,0x00,0xbb,0x00,0x00,0x00,0x3b,0x03,0x00,0x00, +0x3a,0x03,0x00,0x00,0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x3c,0x03,0x00,0x00,0x3b,0x03,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x3d,0x03,0x00,0x00, +0x3c,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00, +0x42,0x03,0x00,0x00,0xf2,0x02,0x00,0x00,0xc2,0x00,0x05,0x00, +0xbb,0x00,0x00,0x00,0x43,0x03,0x00,0x00,0x42,0x03,0x00,0x00, 0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x95,0x02,0x00,0x00,0x94,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x96,0x02,0x00,0x00,0x95,0x02,0x00,0x00, -0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x97,0x02,0x00,0x00, -0x96,0x02,0x00,0x00,0xc2,0x00,0x00,0x00,0xc4,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x98,0x02,0x00,0x00,0x97,0x02,0x00,0x00, +0x44,0x03,0x00,0x00,0x43,0x03,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x45,0x03,0x00,0x00,0x44,0x03,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x46,0x03,0x00,0x00, +0x45,0x03,0x00,0x00,0xc9,0x00,0x00,0x00,0xc4,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x47,0x03,0x00,0x00,0x46,0x03,0x00,0x00, 0x3b,0x00,0x00,0x00,0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x99,0x02,0x00,0x00,0x8e,0x02,0x00,0x00,0x98,0x02,0x00,0x00, -0x72,0x00,0x04,0x00,0xb7,0x00,0x00,0x00,0x9a,0x02,0x00,0x00, -0x99,0x02,0x00,0x00,0x72,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x9b,0x02,0x00,0x00,0x9a,0x02,0x00,0x00,0x82,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x9c,0x02,0x00,0x00,0x9b,0x02,0x00,0x00, -0x0d,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x96,0x00,0x00,0x00, -0x9d,0x02,0x00,0x00,0x9c,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, -0x96,0x00,0x00,0x00,0x9f,0x02,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0x85,0x02,0x00,0x00,0x9d,0x02,0x00,0x00, -0x77,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xa3,0x02,0x00,0x00,0xd7,0x00,0x00,0x00,0x1e,0x04,0x00,0x00, -0x41,0x00,0x06,0x00,0xc3,0x00,0x00,0x00,0xa4,0x02,0x00,0x00, -0xd4,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xa3,0x02,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb9,0x00,0x00,0x00,0xa5,0x02,0x00,0x00, -0xa4,0x02,0x00,0x00,0x73,0x00,0x04,0x00,0x96,0x00,0x00,0x00, -0xa6,0x02,0x00,0x00,0xa5,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb7,0x00,0x00,0x00,0xaa,0x02,0x00,0x00,0x90,0x01,0x00,0x00, -0x6f,0x00,0x04,0x00,0x96,0x00,0x00,0x00,0xab,0x02,0x00,0x00, -0xaa,0x02,0x00,0x00,0x85,0x00,0x05,0x00,0x96,0x00,0x00,0x00, -0xac,0x02,0x00,0x00,0xa6,0x02,0x00,0x00,0xab,0x02,0x00,0x00, -0x85,0x00,0x05,0x00,0x96,0x00,0x00,0x00,0xad,0x02,0x00,0x00, -0xac,0x02,0x00,0x00,0xc6,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb4,0x00,0x00,0x00,0xb3,0x02,0x00,0x00,0x62,0x02,0x00,0x00, -0xc2,0x00,0x05,0x00,0xb4,0x00,0x00,0x00,0xb4,0x02,0x00,0x00, -0xb3,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xb5,0x02,0x00,0x00,0xb4,0x02,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xb6,0x02,0x00,0x00, -0xb5,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00, -0xbb,0x02,0x00,0x00,0x43,0x02,0x00,0x00,0xc2,0x00,0x05,0x00, -0xb4,0x00,0x00,0x00,0xbc,0x02,0x00,0x00,0xbb,0x02,0x00,0x00, +0x48,0x03,0x00,0x00,0x3d,0x03,0x00,0x00,0x47,0x03,0x00,0x00, +0x72,0x00,0x04,0x00,0xbe,0x00,0x00,0x00,0x49,0x03,0x00,0x00, +0x48,0x03,0x00,0x00,0x72,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x4a,0x03,0x00,0x00,0x49,0x03,0x00,0x00,0x82,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x4b,0x03,0x00,0x00,0x4a,0x03,0x00,0x00, +0x14,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, +0x4c,0x03,0x00,0x00,0x4b,0x03,0x00,0x00,0x0c,0x00,0x08,0x00, +0x9d,0x00,0x00,0x00,0x4e,0x03,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x34,0x03,0x00,0x00,0x4c,0x03,0x00,0x00, +0x26,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x52,0x03,0x00,0x00,0xde,0x00,0x00,0x00,0x28,0x04,0x00,0x00, +0x41,0x00,0x06,0x00,0xca,0x00,0x00,0x00,0x53,0x03,0x00,0x00, +0xdb,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x52,0x03,0x00,0x00, +0x3d,0x00,0x04,0x00,0xc0,0x00,0x00,0x00,0x54,0x03,0x00,0x00, +0x53,0x03,0x00,0x00,0x73,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, +0x55,0x03,0x00,0x00,0x54,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, +0xbe,0x00,0x00,0x00,0x59,0x03,0x00,0x00,0x97,0x01,0x00,0x00, +0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0x5a,0x03,0x00,0x00, +0x59,0x03,0x00,0x00,0x85,0x00,0x05,0x00,0x9d,0x00,0x00,0x00, +0x5b,0x03,0x00,0x00,0x55,0x03,0x00,0x00,0x5a,0x03,0x00,0x00, +0x85,0x00,0x05,0x00,0x9d,0x00,0x00,0x00,0x5c,0x03,0x00,0x00, +0x5b,0x03,0x00,0x00,0xcd,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0xbb,0x00,0x00,0x00,0x62,0x03,0x00,0x00,0x11,0x03,0x00,0x00, +0xc2,0x00,0x05,0x00,0xbb,0x00,0x00,0x00,0x63,0x03,0x00,0x00, +0x62,0x03,0x00,0x00,0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x64,0x03,0x00,0x00,0x63,0x03,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x65,0x03,0x00,0x00, +0x64,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00, +0x6a,0x03,0x00,0x00,0xf2,0x02,0x00,0x00,0xc2,0x00,0x05,0x00, +0xbb,0x00,0x00,0x00,0x6b,0x03,0x00,0x00,0x6a,0x03,0x00,0x00, 0x45,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xbd,0x02,0x00,0x00,0xbc,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0xbe,0x02,0x00,0x00,0xbd,0x02,0x00,0x00, -0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xbf,0x02,0x00,0x00, -0xbe,0x02,0x00,0x00,0xc2,0x00,0x00,0x00,0xc4,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0xc0,0x02,0x00,0x00,0xbf,0x02,0x00,0x00, +0x6c,0x03,0x00,0x00,0x6b,0x03,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x6d,0x03,0x00,0x00,0x6c,0x03,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x6e,0x03,0x00,0x00, +0x6d,0x03,0x00,0x00,0xc9,0x00,0x00,0x00,0xc4,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x6f,0x03,0x00,0x00,0x6e,0x03,0x00,0x00, 0x3b,0x00,0x00,0x00,0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0xc1,0x02,0x00,0x00,0xb6,0x02,0x00,0x00,0xc0,0x02,0x00,0x00, -0x72,0x00,0x04,0x00,0xb7,0x00,0x00,0x00,0xc2,0x02,0x00,0x00, -0xc1,0x02,0x00,0x00,0x72,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0xc3,0x02,0x00,0x00,0xc2,0x02,0x00,0x00,0x82,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0xc4,0x02,0x00,0x00,0xc3,0x02,0x00,0x00, -0x0d,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x96,0x00,0x00,0x00, -0xc5,0x02,0x00,0x00,0xc4,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, -0x96,0x00,0x00,0x00,0xc7,0x02,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0xad,0x02,0x00,0x00,0xc5,0x02,0x00,0x00, -0x9f,0x02,0x00,0x00,0x81,0x00,0x05,0x00,0x96,0x00,0x00,0x00, -0xc8,0x02,0x00,0x00,0xb7,0x01,0x00,0x00,0xc7,0x02,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd3,0x02,0x00,0x00, -0xd7,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0x41,0x00,0x06,0x00, -0xc3,0x00,0x00,0x00,0xd5,0x02,0x00,0x00,0xd4,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xd3,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb9,0x00,0x00,0x00,0xd6,0x02,0x00,0x00,0xd5,0x02,0x00,0x00, -0x73,0x00,0x04,0x00,0x96,0x00,0x00,0x00,0xd7,0x02,0x00,0x00, -0xd6,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xb7,0x00,0x00,0x00, -0xdb,0x02,0x00,0x00,0xe6,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, -0x96,0x00,0x00,0x00,0xdc,0x02,0x00,0x00,0xdb,0x02,0x00,0x00, -0x85,0x00,0x05,0x00,0x96,0x00,0x00,0x00,0xdd,0x02,0x00,0x00, -0xd7,0x02,0x00,0x00,0xdc,0x02,0x00,0x00,0x85,0x00,0x05,0x00, -0x96,0x00,0x00,0x00,0xde,0x02,0x00,0x00,0xdd,0x02,0x00,0x00, -0xc6,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xe1,0x02,0x00,0x00,0x84,0x00,0x00,0x00,0x69,0x00,0x00,0x00, -0x41,0x00,0x08,0x00,0xf4,0x00,0x00,0x00,0xe3,0x02,0x00,0x00, -0xbe,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xc1,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xe1,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb4,0x00,0x00,0x00,0xe4,0x02,0x00,0x00,0xe3,0x02,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xe5,0x02,0x00,0x00, -0xe4,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0xe6,0x02,0x00,0x00,0xe5,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0xe7,0x02,0x00,0x00,0xe6,0x02,0x00,0x00, -0xf9,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xea,0x02,0x00,0x00,0x8a,0x00,0x00,0x00,0x69,0x00,0x00,0x00, -0x41,0x00,0x08,0x00,0xf4,0x00,0x00,0x00,0xeb,0x02,0x00,0x00, -0xbe,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xc1,0x00,0x00,0x00, -0xfe,0x00,0x00,0x00,0xea,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb4,0x00,0x00,0x00,0xec,0x02,0x00,0x00,0xeb,0x02,0x00,0x00, -0xc2,0x00,0x05,0x00,0xb4,0x00,0x00,0x00,0xed,0x02,0x00,0x00, -0xec,0x02,0x00,0x00,0x59,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xee,0x02,0x00,0x00,0xed,0x02,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xef,0x02,0x00,0x00, -0xee,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0xf0,0x02,0x00,0x00,0xef,0x02,0x00,0x00,0xc2,0x00,0x00,0x00, -0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xf1,0x02,0x00,0x00, -0xf0,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0xc5,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0xf2,0x02,0x00,0x00,0xe7,0x02,0x00,0x00, -0xf1,0x02,0x00,0x00,0x72,0x00,0x04,0x00,0xb7,0x00,0x00,0x00, -0xf3,0x02,0x00,0x00,0xf2,0x02,0x00,0x00,0x72,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0xf4,0x02,0x00,0x00,0xf3,0x02,0x00,0x00, -0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xf5,0x02,0x00,0x00, -0xf4,0x02,0x00,0x00,0x0d,0x01,0x00,0x00,0x6f,0x00,0x04,0x00, -0x96,0x00,0x00,0x00,0xf6,0x02,0x00,0x00,0xf5,0x02,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfb,0x02,0x00,0x00, -0xd7,0x00,0x00,0x00,0x1f,0x04,0x00,0x00,0x41,0x00,0x06,0x00, -0xc3,0x00,0x00,0x00,0xfc,0x02,0x00,0x00,0xd4,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xfb,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb9,0x00,0x00,0x00,0xfd,0x02,0x00,0x00,0xfc,0x02,0x00,0x00, -0x73,0x00,0x04,0x00,0x96,0x00,0x00,0x00,0xfe,0x02,0x00,0x00, -0xfd,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xb7,0x00,0x00,0x00, -0x02,0x03,0x00,0x00,0x20,0x01,0x00,0x00,0x6f,0x00,0x04,0x00, -0x96,0x00,0x00,0x00,0x03,0x03,0x00,0x00,0x02,0x03,0x00,0x00, -0x85,0x00,0x05,0x00,0x96,0x00,0x00,0x00,0x04,0x03,0x00,0x00, -0xfe,0x02,0x00,0x00,0x03,0x03,0x00,0x00,0x85,0x00,0x05,0x00, -0x96,0x00,0x00,0x00,0x05,0x03,0x00,0x00,0x04,0x03,0x00,0x00, -0xc6,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x09,0x03,0x00,0x00,0x84,0x00,0x00,0x00,0x1f,0x04,0x00,0x00, -0x41,0x00,0x08,0x00,0xf4,0x00,0x00,0x00,0x0a,0x03,0x00,0x00, -0xbe,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xc1,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0x09,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb4,0x00,0x00,0x00,0x0b,0x03,0x00,0x00,0x0a,0x03,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x0c,0x03,0x00,0x00, -0x0b,0x03,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x0d,0x03,0x00,0x00,0x0c,0x03,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x0e,0x03,0x00,0x00,0x0d,0x03,0x00,0x00, -0xf9,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00, -0x13,0x03,0x00,0x00,0xeb,0x02,0x00,0x00,0xc2,0x00,0x05,0x00, -0xb4,0x00,0x00,0x00,0x14,0x03,0x00,0x00,0x13,0x03,0x00,0x00, -0xe2,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x15,0x03,0x00,0x00,0x14,0x03,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x16,0x03,0x00,0x00,0x15,0x03,0x00,0x00, -0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x17,0x03,0x00,0x00, -0x16,0x03,0x00,0x00,0xc2,0x00,0x00,0x00,0xc4,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x18,0x03,0x00,0x00,0x17,0x03,0x00,0x00, +0x70,0x03,0x00,0x00,0x65,0x03,0x00,0x00,0x6f,0x03,0x00,0x00, +0x72,0x00,0x04,0x00,0xbe,0x00,0x00,0x00,0x71,0x03,0x00,0x00, +0x70,0x03,0x00,0x00,0x72,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x72,0x03,0x00,0x00,0x71,0x03,0x00,0x00,0x82,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x73,0x03,0x00,0x00,0x72,0x03,0x00,0x00, +0x14,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, +0x74,0x03,0x00,0x00,0x73,0x03,0x00,0x00,0x0c,0x00,0x08,0x00, +0x9d,0x00,0x00,0x00,0x76,0x03,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x5c,0x03,0x00,0x00,0x74,0x03,0x00,0x00, +0x4e,0x03,0x00,0x00,0x81,0x00,0x05,0x00,0x9d,0x00,0x00,0x00, +0x77,0x03,0x00,0x00,0xcf,0x02,0x00,0x00,0x76,0x03,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x82,0x03,0x00,0x00, +0xde,0x00,0x00,0x00,0x29,0x04,0x00,0x00,0x41,0x00,0x06,0x00, +0xca,0x00,0x00,0x00,0x84,0x03,0x00,0x00,0xdb,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0x82,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, +0xc0,0x00,0x00,0x00,0x85,0x03,0x00,0x00,0x84,0x03,0x00,0x00, +0x73,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0x86,0x03,0x00,0x00, +0x85,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0xbe,0x00,0x00,0x00, +0x8a,0x03,0x00,0x00,0xed,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, +0x9d,0x00,0x00,0x00,0x8b,0x03,0x00,0x00,0x8a,0x03,0x00,0x00, +0x85,0x00,0x05,0x00,0x9d,0x00,0x00,0x00,0x8c,0x03,0x00,0x00, +0x86,0x03,0x00,0x00,0x8b,0x03,0x00,0x00,0x85,0x00,0x05,0x00, +0x9d,0x00,0x00,0x00,0x8d,0x03,0x00,0x00,0x8c,0x03,0x00,0x00, +0xcd,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x90,0x03,0x00,0x00,0x8b,0x00,0x00,0x00,0x29,0x04,0x00,0x00, +0x41,0x00,0x08,0x00,0xfb,0x00,0x00,0x00,0x92,0x03,0x00,0x00, +0xc5,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xc8,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0x90,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, +0xbb,0x00,0x00,0x00,0x93,0x03,0x00,0x00,0x92,0x03,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x94,0x03,0x00,0x00, +0x93,0x03,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x95,0x03,0x00,0x00,0x94,0x03,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x96,0x03,0x00,0x00,0x95,0x03,0x00,0x00, +0x00,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x99,0x03,0x00,0x00,0x91,0x00,0x00,0x00,0x29,0x04,0x00,0x00, +0x41,0x00,0x08,0x00,0xfb,0x00,0x00,0x00,0x9a,0x03,0x00,0x00, +0xc5,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xc8,0x00,0x00,0x00, +0x05,0x01,0x00,0x00,0x99,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, +0xbb,0x00,0x00,0x00,0x9b,0x03,0x00,0x00,0x9a,0x03,0x00,0x00, +0xc2,0x00,0x05,0x00,0xbb,0x00,0x00,0x00,0x9c,0x03,0x00,0x00, +0x9b,0x03,0x00,0x00,0x61,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x9d,0x03,0x00,0x00,0x9c,0x03,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x9e,0x03,0x00,0x00, +0x9d,0x03,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x9f,0x03,0x00,0x00,0x9e,0x03,0x00,0x00,0xc9,0x00,0x00,0x00, +0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xa0,0x03,0x00,0x00, +0x9f,0x03,0x00,0x00,0x3b,0x00,0x00,0x00,0xc5,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0xa1,0x03,0x00,0x00,0x96,0x03,0x00,0x00, +0xa0,0x03,0x00,0x00,0x72,0x00,0x04,0x00,0xbe,0x00,0x00,0x00, +0xa2,0x03,0x00,0x00,0xa1,0x03,0x00,0x00,0x72,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0xa3,0x03,0x00,0x00,0xa2,0x03,0x00,0x00, +0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xa4,0x03,0x00,0x00, +0xa3,0x03,0x00,0x00,0x14,0x01,0x00,0x00,0x6f,0x00,0x04,0x00, +0x9d,0x00,0x00,0x00,0xa5,0x03,0x00,0x00,0xa4,0x03,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xaa,0x03,0x00,0x00, +0xde,0x00,0x00,0x00,0x2a,0x04,0x00,0x00,0x41,0x00,0x06,0x00, +0xca,0x00,0x00,0x00,0xab,0x03,0x00,0x00,0xdb,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0xaa,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, +0xc0,0x00,0x00,0x00,0xac,0x03,0x00,0x00,0xab,0x03,0x00,0x00, +0x73,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0xad,0x03,0x00,0x00, +0xac,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0xbe,0x00,0x00,0x00, +0xb1,0x03,0x00,0x00,0x27,0x01,0x00,0x00,0x6f,0x00,0x04,0x00, +0x9d,0x00,0x00,0x00,0xb2,0x03,0x00,0x00,0xb1,0x03,0x00,0x00, +0x85,0x00,0x05,0x00,0x9d,0x00,0x00,0x00,0xb3,0x03,0x00,0x00, +0xad,0x03,0x00,0x00,0xb2,0x03,0x00,0x00,0x85,0x00,0x05,0x00, +0x9d,0x00,0x00,0x00,0xb4,0x03,0x00,0x00,0xb3,0x03,0x00,0x00, +0xcd,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xb8,0x03,0x00,0x00,0x8b,0x00,0x00,0x00,0x2a,0x04,0x00,0x00, +0x41,0x00,0x08,0x00,0xfb,0x00,0x00,0x00,0xb9,0x03,0x00,0x00, +0xc5,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xc8,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0xb8,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, +0xbb,0x00,0x00,0x00,0xba,0x03,0x00,0x00,0xb9,0x03,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xbb,0x03,0x00,0x00, +0xba,0x03,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0xbc,0x03,0x00,0x00,0xbb,0x03,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0xbd,0x03,0x00,0x00,0xbc,0x03,0x00,0x00, +0x00,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00, +0xc2,0x03,0x00,0x00,0x9a,0x03,0x00,0x00,0xc2,0x00,0x05,0x00, +0xbb,0x00,0x00,0x00,0xc3,0x03,0x00,0x00,0xc2,0x03,0x00,0x00, +0xe9,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xc4,0x03,0x00,0x00,0xc3,0x03,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0xc5,0x03,0x00,0x00,0xc4,0x03,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xc6,0x03,0x00,0x00, +0xc5,0x03,0x00,0x00,0xc9,0x00,0x00,0x00,0xc4,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0xc7,0x03,0x00,0x00,0xc6,0x03,0x00,0x00, 0x3b,0x00,0x00,0x00,0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x19,0x03,0x00,0x00,0x0e,0x03,0x00,0x00,0x18,0x03,0x00,0x00, -0x72,0x00,0x04,0x00,0xb7,0x00,0x00,0x00,0x1a,0x03,0x00,0x00, -0x19,0x03,0x00,0x00,0x72,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x1b,0x03,0x00,0x00,0x1a,0x03,0x00,0x00,0x82,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x1c,0x03,0x00,0x00,0x1b,0x03,0x00,0x00, -0x0d,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x96,0x00,0x00,0x00, -0x1d,0x03,0x00,0x00,0x1c,0x03,0x00,0x00,0x85,0x00,0x05,0x00, -0x96,0x00,0x00,0x00,0x1e,0x03,0x00,0x00,0x05,0x03,0x00,0x00, -0x1d,0x03,0x00,0x00,0x0c,0x00,0x08,0x00,0x96,0x00,0x00,0x00, -0x1f,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0xde,0x02,0x00,0x00,0xf6,0x02,0x00,0x00,0x1e,0x03,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x23,0x03,0x00,0x00, -0xd7,0x00,0x00,0x00,0x20,0x04,0x00,0x00,0x41,0x00,0x06,0x00, -0xc3,0x00,0x00,0x00,0x24,0x03,0x00,0x00,0xd4,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0x23,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb9,0x00,0x00,0x00,0x25,0x03,0x00,0x00,0x24,0x03,0x00,0x00, -0x73,0x00,0x04,0x00,0x96,0x00,0x00,0x00,0x26,0x03,0x00,0x00, -0x25,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0xb7,0x00,0x00,0x00, -0x2a,0x03,0x00,0x00,0x57,0x01,0x00,0x00,0x6f,0x00,0x04,0x00, -0x96,0x00,0x00,0x00,0x2b,0x03,0x00,0x00,0x2a,0x03,0x00,0x00, -0x85,0x00,0x05,0x00,0x96,0x00,0x00,0x00,0x2c,0x03,0x00,0x00, -0x26,0x03,0x00,0x00,0x2b,0x03,0x00,0x00,0x85,0x00,0x05,0x00, -0x96,0x00,0x00,0x00,0x2d,0x03,0x00,0x00,0x2c,0x03,0x00,0x00, -0xc6,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00, -0x33,0x03,0x00,0x00,0xe3,0x02,0x00,0x00,0xc2,0x00,0x05,0x00, -0xb4,0x00,0x00,0x00,0x34,0x03,0x00,0x00,0x33,0x03,0x00,0x00, +0xc8,0x03,0x00,0x00,0xbd,0x03,0x00,0x00,0xc7,0x03,0x00,0x00, +0x72,0x00,0x04,0x00,0xbe,0x00,0x00,0x00,0xc9,0x03,0x00,0x00, +0xc8,0x03,0x00,0x00,0x72,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0xca,0x03,0x00,0x00,0xc9,0x03,0x00,0x00,0x82,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0xcb,0x03,0x00,0x00,0xca,0x03,0x00,0x00, +0x14,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, +0xcc,0x03,0x00,0x00,0xcb,0x03,0x00,0x00,0x85,0x00,0x05,0x00, +0x9d,0x00,0x00,0x00,0xcd,0x03,0x00,0x00,0xb4,0x03,0x00,0x00, +0xcc,0x03,0x00,0x00,0x0c,0x00,0x08,0x00,0x9d,0x00,0x00,0x00, +0xce,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0x8d,0x03,0x00,0x00,0xa5,0x03,0x00,0x00,0xcd,0x03,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd2,0x03,0x00,0x00, +0xde,0x00,0x00,0x00,0x2b,0x04,0x00,0x00,0x41,0x00,0x06,0x00, +0xca,0x00,0x00,0x00,0xd3,0x03,0x00,0x00,0xdb,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0xd2,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, +0xc0,0x00,0x00,0x00,0xd4,0x03,0x00,0x00,0xd3,0x03,0x00,0x00, +0x73,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0xd5,0x03,0x00,0x00, +0xd4,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0xbe,0x00,0x00,0x00, +0xd9,0x03,0x00,0x00,0x5e,0x01,0x00,0x00,0x6f,0x00,0x04,0x00, +0x9d,0x00,0x00,0x00,0xda,0x03,0x00,0x00,0xd9,0x03,0x00,0x00, +0x85,0x00,0x05,0x00,0x9d,0x00,0x00,0x00,0xdb,0x03,0x00,0x00, +0xd5,0x03,0x00,0x00,0xda,0x03,0x00,0x00,0x85,0x00,0x05,0x00, +0x9d,0x00,0x00,0x00,0xdc,0x03,0x00,0x00,0xdb,0x03,0x00,0x00, +0xcd,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00, +0xe2,0x03,0x00,0x00,0x92,0x03,0x00,0x00,0xc2,0x00,0x05,0x00, +0xbb,0x00,0x00,0x00,0xe3,0x03,0x00,0x00,0xe2,0x03,0x00,0x00, 0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x35,0x03,0x00,0x00,0x34,0x03,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x36,0x03,0x00,0x00,0x35,0x03,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00,0x3b,0x03,0x00,0x00, -0xeb,0x02,0x00,0x00,0xc2,0x00,0x05,0x00,0xb4,0x00,0x00,0x00, -0x3c,0x03,0x00,0x00,0x3b,0x03,0x00,0x00,0x3b,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x3d,0x03,0x00,0x00, -0x3c,0x03,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x3e,0x03,0x00,0x00,0x3d,0x03,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x3f,0x03,0x00,0x00,0x3e,0x03,0x00,0x00, -0xc2,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x40,0x03,0x00,0x00,0x3f,0x03,0x00,0x00,0x3b,0x00,0x00,0x00, -0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x41,0x03,0x00,0x00, -0x36,0x03,0x00,0x00,0x40,0x03,0x00,0x00,0x72,0x00,0x04,0x00, -0xb7,0x00,0x00,0x00,0x42,0x03,0x00,0x00,0x41,0x03,0x00,0x00, -0x72,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x43,0x03,0x00,0x00, -0x42,0x03,0x00,0x00,0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x44,0x03,0x00,0x00,0x43,0x03,0x00,0x00,0x0d,0x01,0x00,0x00, -0x6f,0x00,0x04,0x00,0x96,0x00,0x00,0x00,0x45,0x03,0x00,0x00, -0x44,0x03,0x00,0x00,0x0c,0x00,0x08,0x00,0x96,0x00,0x00,0x00, -0x47,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x2d,0x03,0x00,0x00,0x45,0x03,0x00,0x00,0x1f,0x03,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4b,0x03,0x00,0x00, -0xd7,0x00,0x00,0x00,0x21,0x04,0x00,0x00,0x41,0x00,0x06,0x00, -0xc3,0x00,0x00,0x00,0x4c,0x03,0x00,0x00,0xd4,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0x4b,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb9,0x00,0x00,0x00,0x4d,0x03,0x00,0x00,0x4c,0x03,0x00,0x00, -0x73,0x00,0x04,0x00,0x96,0x00,0x00,0x00,0x4e,0x03,0x00,0x00, -0x4d,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0xb7,0x00,0x00,0x00, -0x52,0x03,0x00,0x00,0x90,0x01,0x00,0x00,0x6f,0x00,0x04,0x00, -0x96,0x00,0x00,0x00,0x53,0x03,0x00,0x00,0x52,0x03,0x00,0x00, -0x85,0x00,0x05,0x00,0x96,0x00,0x00,0x00,0x54,0x03,0x00,0x00, -0x4e,0x03,0x00,0x00,0x53,0x03,0x00,0x00,0x85,0x00,0x05,0x00, -0x96,0x00,0x00,0x00,0x55,0x03,0x00,0x00,0x54,0x03,0x00,0x00, -0xc6,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00, -0x5b,0x03,0x00,0x00,0x0a,0x03,0x00,0x00,0xc2,0x00,0x05,0x00, -0xb4,0x00,0x00,0x00,0x5c,0x03,0x00,0x00,0x5b,0x03,0x00,0x00, +0xe4,0x03,0x00,0x00,0xe3,0x03,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0xe5,0x03,0x00,0x00,0xe4,0x03,0x00,0x00, +0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0xea,0x03,0x00,0x00, +0x9a,0x03,0x00,0x00,0xc2,0x00,0x05,0x00,0xbb,0x00,0x00,0x00, +0xeb,0x03,0x00,0x00,0xea,0x03,0x00,0x00,0x3b,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xec,0x03,0x00,0x00, +0xeb,0x03,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0xed,0x03,0x00,0x00,0xec,0x03,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0xee,0x03,0x00,0x00,0xed,0x03,0x00,0x00, +0xc9,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0xef,0x03,0x00,0x00,0xee,0x03,0x00,0x00,0x3b,0x00,0x00,0x00, +0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xf0,0x03,0x00,0x00, +0xe5,0x03,0x00,0x00,0xef,0x03,0x00,0x00,0x72,0x00,0x04,0x00, +0xbe,0x00,0x00,0x00,0xf1,0x03,0x00,0x00,0xf0,0x03,0x00,0x00, +0x72,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xf2,0x03,0x00,0x00, +0xf1,0x03,0x00,0x00,0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0xf3,0x03,0x00,0x00,0xf2,0x03,0x00,0x00,0x14,0x01,0x00,0x00, +0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0xf4,0x03,0x00,0x00, +0xf3,0x03,0x00,0x00,0x0c,0x00,0x08,0x00,0x9d,0x00,0x00,0x00, +0xf6,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0xdc,0x03,0x00,0x00,0xf4,0x03,0x00,0x00,0xce,0x03,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfa,0x03,0x00,0x00, +0xde,0x00,0x00,0x00,0x2c,0x04,0x00,0x00,0x41,0x00,0x06,0x00, +0xca,0x00,0x00,0x00,0xfb,0x03,0x00,0x00,0xdb,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0xfa,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, +0xc0,0x00,0x00,0x00,0xfc,0x03,0x00,0x00,0xfb,0x03,0x00,0x00, +0x73,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0xfd,0x03,0x00,0x00, +0xfc,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0xbe,0x00,0x00,0x00, +0x01,0x04,0x00,0x00,0x97,0x01,0x00,0x00,0x6f,0x00,0x04,0x00, +0x9d,0x00,0x00,0x00,0x02,0x04,0x00,0x00,0x01,0x04,0x00,0x00, +0x85,0x00,0x05,0x00,0x9d,0x00,0x00,0x00,0x03,0x04,0x00,0x00, +0xfd,0x03,0x00,0x00,0x02,0x04,0x00,0x00,0x85,0x00,0x05,0x00, +0x9d,0x00,0x00,0x00,0x04,0x04,0x00,0x00,0x03,0x04,0x00,0x00, +0xcd,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00, +0x0a,0x04,0x00,0x00,0xb9,0x03,0x00,0x00,0xc2,0x00,0x05,0x00, +0xbb,0x00,0x00,0x00,0x0b,0x04,0x00,0x00,0x0a,0x04,0x00,0x00, 0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x5d,0x03,0x00,0x00,0x5c,0x03,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x5e,0x03,0x00,0x00,0x5d,0x03,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00,0x63,0x03,0x00,0x00, -0xeb,0x02,0x00,0x00,0xc2,0x00,0x05,0x00,0xb4,0x00,0x00,0x00, -0x64,0x03,0x00,0x00,0x63,0x03,0x00,0x00,0x45,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x65,0x03,0x00,0x00, -0x64,0x03,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x66,0x03,0x00,0x00,0x65,0x03,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x67,0x03,0x00,0x00,0x66,0x03,0x00,0x00, -0xc2,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x68,0x03,0x00,0x00,0x67,0x03,0x00,0x00,0x3b,0x00,0x00,0x00, -0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x69,0x03,0x00,0x00, -0x5e,0x03,0x00,0x00,0x68,0x03,0x00,0x00,0x72,0x00,0x04,0x00, -0xb7,0x00,0x00,0x00,0x6a,0x03,0x00,0x00,0x69,0x03,0x00,0x00, -0x72,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x6b,0x03,0x00,0x00, -0x6a,0x03,0x00,0x00,0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x6c,0x03,0x00,0x00,0x6b,0x03,0x00,0x00,0x0d,0x01,0x00,0x00, -0x6f,0x00,0x04,0x00,0x96,0x00,0x00,0x00,0x6d,0x03,0x00,0x00, -0x6c,0x03,0x00,0x00,0x0c,0x00,0x08,0x00,0x96,0x00,0x00,0x00, -0x6f,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x55,0x03,0x00,0x00,0x6d,0x03,0x00,0x00,0x47,0x03,0x00,0x00, -0x81,0x00,0x05,0x00,0x96,0x00,0x00,0x00,0x70,0x03,0x00,0x00, -0xc8,0x02,0x00,0x00,0x6f,0x03,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x7b,0x03,0x00,0x00,0xd7,0x00,0x00,0x00, -0x22,0x04,0x00,0x00,0x41,0x00,0x06,0x00,0xc3,0x00,0x00,0x00, -0x7d,0x03,0x00,0x00,0xd4,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0x7b,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0xb9,0x00,0x00,0x00, -0x7e,0x03,0x00,0x00,0x7d,0x03,0x00,0x00,0x73,0x00,0x04,0x00, -0x96,0x00,0x00,0x00,0x7f,0x03,0x00,0x00,0x7e,0x03,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb7,0x00,0x00,0x00,0x83,0x03,0x00,0x00, -0xe6,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x96,0x00,0x00,0x00, -0x84,0x03,0x00,0x00,0x83,0x03,0x00,0x00,0x85,0x00,0x05,0x00, -0x96,0x00,0x00,0x00,0x85,0x03,0x00,0x00,0x7f,0x03,0x00,0x00, -0x84,0x03,0x00,0x00,0x85,0x00,0x05,0x00,0x96,0x00,0x00,0x00, -0x86,0x03,0x00,0x00,0x85,0x03,0x00,0x00,0xc6,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x89,0x03,0x00,0x00, -0x84,0x00,0x00,0x00,0x22,0x04,0x00,0x00,0x41,0x00,0x08,0x00, -0xf4,0x00,0x00,0x00,0x8b,0x03,0x00,0x00,0xbe,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xc1,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0x89,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00, -0x8c,0x03,0x00,0x00,0x8b,0x03,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x8d,0x03,0x00,0x00,0x8c,0x03,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x8e,0x03,0x00,0x00, -0x8d,0x03,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x8f,0x03,0x00,0x00,0x8e,0x03,0x00,0x00,0xf9,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x92,0x03,0x00,0x00, -0x8a,0x00,0x00,0x00,0x22,0x04,0x00,0x00,0x41,0x00,0x08,0x00, -0xf4,0x00,0x00,0x00,0x93,0x03,0x00,0x00,0xbe,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xc1,0x00,0x00,0x00,0xfe,0x00,0x00,0x00, -0x92,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00, -0x94,0x03,0x00,0x00,0x93,0x03,0x00,0x00,0xc2,0x00,0x05,0x00, -0xb4,0x00,0x00,0x00,0x95,0x03,0x00,0x00,0x94,0x03,0x00,0x00, -0x59,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x96,0x03,0x00,0x00,0x95,0x03,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x97,0x03,0x00,0x00,0x96,0x03,0x00,0x00, -0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x98,0x03,0x00,0x00, -0x97,0x03,0x00,0x00,0xc2,0x00,0x00,0x00,0xc4,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x99,0x03,0x00,0x00,0x98,0x03,0x00,0x00, -0x3b,0x00,0x00,0x00,0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x9a,0x03,0x00,0x00,0x8f,0x03,0x00,0x00,0x99,0x03,0x00,0x00, -0x72,0x00,0x04,0x00,0xb7,0x00,0x00,0x00,0x9b,0x03,0x00,0x00, -0x9a,0x03,0x00,0x00,0x72,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x9c,0x03,0x00,0x00,0x9b,0x03,0x00,0x00,0x82,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x9d,0x03,0x00,0x00,0x9c,0x03,0x00,0x00, -0x0d,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x96,0x00,0x00,0x00, -0x9e,0x03,0x00,0x00,0x9d,0x03,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xa3,0x03,0x00,0x00,0xd7,0x00,0x00,0x00, -0x23,0x04,0x00,0x00,0x41,0x00,0x06,0x00,0xc3,0x00,0x00,0x00, -0xa4,0x03,0x00,0x00,0xd4,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0xa3,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0xb9,0x00,0x00,0x00, -0xa5,0x03,0x00,0x00,0xa4,0x03,0x00,0x00,0x73,0x00,0x04,0x00, -0x96,0x00,0x00,0x00,0xa6,0x03,0x00,0x00,0xa5,0x03,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb7,0x00,0x00,0x00,0xaa,0x03,0x00,0x00, -0x20,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x96,0x00,0x00,0x00, -0xab,0x03,0x00,0x00,0xaa,0x03,0x00,0x00,0x85,0x00,0x05,0x00, -0x96,0x00,0x00,0x00,0xac,0x03,0x00,0x00,0xa6,0x03,0x00,0x00, -0xab,0x03,0x00,0x00,0x85,0x00,0x05,0x00,0x96,0x00,0x00,0x00, -0xad,0x03,0x00,0x00,0xac,0x03,0x00,0x00,0xc6,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb1,0x03,0x00,0x00, -0x84,0x00,0x00,0x00,0x23,0x04,0x00,0x00,0x41,0x00,0x08,0x00, -0xf4,0x00,0x00,0x00,0xb2,0x03,0x00,0x00,0xbe,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xc1,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0xb1,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00, -0xb3,0x03,0x00,0x00,0xb2,0x03,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xb4,0x03,0x00,0x00,0xb3,0x03,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xb5,0x03,0x00,0x00, -0xb4,0x03,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0xb6,0x03,0x00,0x00,0xb5,0x03,0x00,0x00,0xf9,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00,0xbb,0x03,0x00,0x00, -0x93,0x03,0x00,0x00,0xc2,0x00,0x05,0x00,0xb4,0x00,0x00,0x00, -0xbc,0x03,0x00,0x00,0xbb,0x03,0x00,0x00,0xe2,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xbd,0x03,0x00,0x00, -0xbc,0x03,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0xbe,0x03,0x00,0x00,0xbd,0x03,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0xbf,0x03,0x00,0x00,0xbe,0x03,0x00,0x00, -0xc2,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0xc0,0x03,0x00,0x00,0xbf,0x03,0x00,0x00,0x3b,0x00,0x00,0x00, -0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xc1,0x03,0x00,0x00, -0xb6,0x03,0x00,0x00,0xc0,0x03,0x00,0x00,0x72,0x00,0x04,0x00, -0xb7,0x00,0x00,0x00,0xc2,0x03,0x00,0x00,0xc1,0x03,0x00,0x00, -0x72,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xc3,0x03,0x00,0x00, -0xc2,0x03,0x00,0x00,0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0xc4,0x03,0x00,0x00,0xc3,0x03,0x00,0x00,0x0d,0x01,0x00,0x00, -0x6f,0x00,0x04,0x00,0x96,0x00,0x00,0x00,0xc5,0x03,0x00,0x00, -0xc4,0x03,0x00,0x00,0x85,0x00,0x05,0x00,0x96,0x00,0x00,0x00, -0xc6,0x03,0x00,0x00,0xad,0x03,0x00,0x00,0xc5,0x03,0x00,0x00, -0x0c,0x00,0x08,0x00,0x96,0x00,0x00,0x00,0xc7,0x03,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x86,0x03,0x00,0x00, -0x9e,0x03,0x00,0x00,0xc6,0x03,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xcb,0x03,0x00,0x00,0xd7,0x00,0x00,0x00, -0x24,0x04,0x00,0x00,0x41,0x00,0x06,0x00,0xc3,0x00,0x00,0x00, -0xcc,0x03,0x00,0x00,0xd4,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0xcb,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0xb9,0x00,0x00,0x00, -0xcd,0x03,0x00,0x00,0xcc,0x03,0x00,0x00,0x73,0x00,0x04,0x00, -0x96,0x00,0x00,0x00,0xce,0x03,0x00,0x00,0xcd,0x03,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb7,0x00,0x00,0x00,0xd2,0x03,0x00,0x00, -0x57,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x96,0x00,0x00,0x00, -0xd3,0x03,0x00,0x00,0xd2,0x03,0x00,0x00,0x85,0x00,0x05,0x00, -0x96,0x00,0x00,0x00,0xd4,0x03,0x00,0x00,0xce,0x03,0x00,0x00, -0xd3,0x03,0x00,0x00,0x85,0x00,0x05,0x00,0x96,0x00,0x00,0x00, -0xd5,0x03,0x00,0x00,0xd4,0x03,0x00,0x00,0xc6,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00,0xdb,0x03,0x00,0x00, -0x8b,0x03,0x00,0x00,0xc2,0x00,0x05,0x00,0xb4,0x00,0x00,0x00, -0xdc,0x03,0x00,0x00,0xdb,0x03,0x00,0x00,0x3b,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xdd,0x03,0x00,0x00, -0xdc,0x03,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0xde,0x03,0x00,0x00,0xdd,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb4,0x00,0x00,0x00,0xe3,0x03,0x00,0x00,0x93,0x03,0x00,0x00, -0xc2,0x00,0x05,0x00,0xb4,0x00,0x00,0x00,0xe4,0x03,0x00,0x00, -0xe3,0x03,0x00,0x00,0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xe5,0x03,0x00,0x00,0xe4,0x03,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xe6,0x03,0x00,0x00, -0xe5,0x03,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0xe7,0x03,0x00,0x00,0xe6,0x03,0x00,0x00,0xc2,0x00,0x00,0x00, -0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xe8,0x03,0x00,0x00, -0xe7,0x03,0x00,0x00,0x3b,0x00,0x00,0x00,0xc5,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0xe9,0x03,0x00,0x00,0xde,0x03,0x00,0x00, -0xe8,0x03,0x00,0x00,0x72,0x00,0x04,0x00,0xb7,0x00,0x00,0x00, -0xea,0x03,0x00,0x00,0xe9,0x03,0x00,0x00,0x72,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0xeb,0x03,0x00,0x00,0xea,0x03,0x00,0x00, -0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xec,0x03,0x00,0x00, -0xeb,0x03,0x00,0x00,0x0d,0x01,0x00,0x00,0x6f,0x00,0x04,0x00, -0x96,0x00,0x00,0x00,0xed,0x03,0x00,0x00,0xec,0x03,0x00,0x00, -0x0c,0x00,0x08,0x00,0x96,0x00,0x00,0x00,0xef,0x03,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xd5,0x03,0x00,0x00, -0xed,0x03,0x00,0x00,0xc7,0x03,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xf3,0x03,0x00,0x00,0xd7,0x00,0x00,0x00, -0x25,0x04,0x00,0x00,0x41,0x00,0x06,0x00,0xc3,0x00,0x00,0x00, -0xf4,0x03,0x00,0x00,0xd4,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0xf3,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0xb9,0x00,0x00,0x00, -0xf5,0x03,0x00,0x00,0xf4,0x03,0x00,0x00,0x73,0x00,0x04,0x00, -0x96,0x00,0x00,0x00,0xf6,0x03,0x00,0x00,0xf5,0x03,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb7,0x00,0x00,0x00,0xfa,0x03,0x00,0x00, -0x90,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x96,0x00,0x00,0x00, -0xfb,0x03,0x00,0x00,0xfa,0x03,0x00,0x00,0x85,0x00,0x05,0x00, -0x96,0x00,0x00,0x00,0xfc,0x03,0x00,0x00,0xf6,0x03,0x00,0x00, -0xfb,0x03,0x00,0x00,0x85,0x00,0x05,0x00,0x96,0x00,0x00,0x00, -0xfd,0x03,0x00,0x00,0xfc,0x03,0x00,0x00,0xc6,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00,0x03,0x04,0x00,0x00, -0xb2,0x03,0x00,0x00,0xc2,0x00,0x05,0x00,0xb4,0x00,0x00,0x00, -0x04,0x04,0x00,0x00,0x03,0x04,0x00,0x00,0x3b,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x05,0x04,0x00,0x00, -0x04,0x04,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x06,0x04,0x00,0x00,0x05,0x04,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb4,0x00,0x00,0x00,0x0b,0x04,0x00,0x00,0x93,0x03,0x00,0x00, -0xc2,0x00,0x05,0x00,0xb4,0x00,0x00,0x00,0x0c,0x04,0x00,0x00, -0x0b,0x04,0x00,0x00,0x45,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x0d,0x04,0x00,0x00,0x0c,0x04,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x0e,0x04,0x00,0x00, -0x0d,0x04,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x0f,0x04,0x00,0x00,0x0e,0x04,0x00,0x00,0xc2,0x00,0x00,0x00, -0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x10,0x04,0x00,0x00, -0x0f,0x04,0x00,0x00,0x3b,0x00,0x00,0x00,0xc5,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x11,0x04,0x00,0x00,0x06,0x04,0x00,0x00, -0x10,0x04,0x00,0x00,0x72,0x00,0x04,0x00,0xb7,0x00,0x00,0x00, -0x12,0x04,0x00,0x00,0x11,0x04,0x00,0x00,0x72,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x13,0x04,0x00,0x00,0x12,0x04,0x00,0x00, -0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x14,0x04,0x00,0x00, -0x13,0x04,0x00,0x00,0x0d,0x01,0x00,0x00,0x6f,0x00,0x04,0x00, -0x96,0x00,0x00,0x00,0x15,0x04,0x00,0x00,0x14,0x04,0x00,0x00, -0x0c,0x00,0x08,0x00,0x96,0x00,0x00,0x00,0x17,0x04,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xfd,0x03,0x00,0x00, -0x15,0x04,0x00,0x00,0xef,0x03,0x00,0x00,0x81,0x00,0x05,0x00, -0x96,0x00,0x00,0x00,0x18,0x04,0x00,0x00,0x70,0x03,0x00,0x00, -0x17,0x04,0x00,0x00,0x3d,0x00,0x04,0x00,0x96,0x00,0x00,0x00, -0xc2,0x01,0x00,0x00,0xa1,0x00,0x00,0x00,0x81,0x00,0x05,0x00, -0x96,0x00,0x00,0x00,0xc3,0x01,0x00,0x00,0xc2,0x01,0x00,0x00, -0x18,0x04,0x00,0x00,0x3e,0x00,0x03,0x00,0xa1,0x00,0x00,0x00, -0xc3,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xc6,0x01,0x00,0x00,0x1c,0x02,0x00,0x00,0x69,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0xa4,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0xa6,0x00,0x00,0x00,0xe0,0x00,0x04,0x00,0x69,0x00,0x00,0x00, -0x69,0x00,0x00,0x00,0xc7,0x01,0x00,0x00,0xf9,0x00,0x02,0x00, -0xc9,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xc9,0x01,0x00,0x00, -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x1d,0x02,0x00,0x00, -0x9a,0x00,0x00,0x00,0xa6,0x00,0x00,0x00,0xe0,0x01,0x00,0x00, -0xcc,0x01,0x00,0x00,0xac,0x00,0x05,0x00,0xab,0x00,0x00,0x00, -0xcf,0x01,0x00,0x00,0x1d,0x02,0x00,0x00,0x4b,0x00,0x00,0x00, -0xf6,0x00,0x04,0x00,0xcb,0x01,0x00,0x00,0xcc,0x01,0x00,0x00, -0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xcf,0x01,0x00,0x00, -0xca,0x01,0x00,0x00,0xcb,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, -0xca,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xab,0x00,0x00,0x00, -0xd2,0x01,0x00,0x00,0x6a,0x00,0x00,0x00,0x1d,0x02,0x00,0x00, -0xf7,0x00,0x03,0x00,0xd4,0x01,0x00,0x00,0x00,0x00,0x00,0x00, -0xfa,0x00,0x04,0x00,0xd2,0x01,0x00,0x00,0xd3,0x01,0x00,0x00, -0xd4,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xd3,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd8,0x01,0x00,0x00, -0x6a,0x00,0x00,0x00,0x1d,0x02,0x00,0x00,0x41,0x00,0x05,0x00, -0xa0,0x00,0x00,0x00,0xd9,0x01,0x00,0x00,0x99,0x00,0x00,0x00, -0xd8,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x96,0x00,0x00,0x00, -0xda,0x01,0x00,0x00,0xd9,0x01,0x00,0x00,0x41,0x00,0x05,0x00, -0xa0,0x00,0x00,0x00,0xdb,0x01,0x00,0x00,0x99,0x00,0x00,0x00, -0x6a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x96,0x00,0x00,0x00, -0xdc,0x01,0x00,0x00,0xdb,0x01,0x00,0x00,0x81,0x00,0x05,0x00, -0x96,0x00,0x00,0x00,0xdd,0x01,0x00,0x00,0xdc,0x01,0x00,0x00, -0xda,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xdb,0x01,0x00,0x00, -0xdd,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xd4,0x01,0x00,0x00, -0xf8,0x00,0x02,0x00,0xd4,0x01,0x00,0x00,0xe0,0x00,0x04,0x00, -0x69,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0xc7,0x01,0x00,0x00, -0xf9,0x00,0x02,0x00,0xcc,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, -0xcc,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xe0,0x01,0x00,0x00,0x1d,0x02,0x00,0x00,0xfe,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0xc9,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, -0xcb,0x01,0x00,0x00,0xaa,0x00,0x05,0x00,0xab,0x00,0x00,0x00, -0xe2,0x01,0x00,0x00,0x6a,0x00,0x00,0x00,0x4b,0x00,0x00,0x00, -0xf7,0x00,0x03,0x00,0xe4,0x01,0x00,0x00,0x00,0x00,0x00,0x00, -0xfa,0x00,0x04,0x00,0xe2,0x01,0x00,0x00,0xe3,0x01,0x00,0x00, -0xe4,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xe3,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xeb,0x01,0x00,0x00, -0x1b,0x02,0x00,0x00,0x4d,0x00,0x00,0x00,0x41,0x00,0x05,0x00, -0xa0,0x00,0x00,0x00,0xec,0x01,0x00,0x00,0x99,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x96,0x00,0x00,0x00, -0xed,0x01,0x00,0x00,0xec,0x01,0x00,0x00,0x41,0x00,0x06,0x00, -0xee,0x01,0x00,0x00,0xef,0x01,0x00,0x00,0xe8,0x01,0x00,0x00, -0x59,0x00,0x00,0x00,0xeb,0x01,0x00,0x00,0x3e,0x00,0x03,0x00, -0xef,0x01,0x00,0x00,0xed,0x01,0x00,0x00,0xf9,0x00,0x02,0x00, -0xe4,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xe4,0x01,0x00,0x00, -0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00, +0x0c,0x04,0x00,0x00,0x0b,0x04,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x0d,0x04,0x00,0x00,0x0c,0x04,0x00,0x00, +0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0x12,0x04,0x00,0x00, +0x9a,0x03,0x00,0x00,0xc2,0x00,0x05,0x00,0xbb,0x00,0x00,0x00, +0x13,0x04,0x00,0x00,0x12,0x04,0x00,0x00,0x45,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x14,0x04,0x00,0x00, +0x13,0x04,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x15,0x04,0x00,0x00,0x14,0x04,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x16,0x04,0x00,0x00,0x15,0x04,0x00,0x00, +0xc9,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x17,0x04,0x00,0x00,0x16,0x04,0x00,0x00,0x3b,0x00,0x00,0x00, +0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x18,0x04,0x00,0x00, +0x0d,0x04,0x00,0x00,0x17,0x04,0x00,0x00,0x72,0x00,0x04,0x00, +0xbe,0x00,0x00,0x00,0x19,0x04,0x00,0x00,0x18,0x04,0x00,0x00, +0x72,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x1a,0x04,0x00,0x00, +0x19,0x04,0x00,0x00,0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x1b,0x04,0x00,0x00,0x1a,0x04,0x00,0x00,0x14,0x01,0x00,0x00, +0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0x1c,0x04,0x00,0x00, +0x1b,0x04,0x00,0x00,0x0c,0x00,0x08,0x00,0x9d,0x00,0x00,0x00, +0x1e,0x04,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0x04,0x04,0x00,0x00,0x1c,0x04,0x00,0x00,0xf6,0x03,0x00,0x00, +0x81,0x00,0x05,0x00,0x9d,0x00,0x00,0x00,0x1f,0x04,0x00,0x00, +0x77,0x03,0x00,0x00,0x1e,0x04,0x00,0x00,0x3d,0x00,0x04,0x00, +0x9d,0x00,0x00,0x00,0xc9,0x01,0x00,0x00,0xa8,0x00,0x00,0x00, +0x81,0x00,0x05,0x00,0x9d,0x00,0x00,0x00,0xca,0x01,0x00,0x00, +0xc9,0x01,0x00,0x00,0x1f,0x04,0x00,0x00,0x3e,0x00,0x03,0x00, +0xa8,0x00,0x00,0x00,0xca,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xcd,0x01,0x00,0x00,0x23,0x02,0x00,0x00, +0x51,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xab,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0xad,0x00,0x00,0x00,0xe0,0x00,0x04,0x00, +0x51,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0xce,0x01,0x00,0x00, +0xf9,0x00,0x02,0x00,0xd0,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, +0xd0,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00, +0x24,0x02,0x00,0x00,0xa1,0x00,0x00,0x00,0xad,0x00,0x00,0x00, +0xe7,0x01,0x00,0x00,0xd3,0x01,0x00,0x00,0xac,0x00,0x05,0x00, +0xb2,0x00,0x00,0x00,0xd6,0x01,0x00,0x00,0x24,0x02,0x00,0x00, +0x4b,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xd2,0x01,0x00,0x00, +0xd3,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, +0xd6,0x01,0x00,0x00,0xd1,0x01,0x00,0x00,0xd2,0x01,0x00,0x00, +0xf8,0x00,0x02,0x00,0xd1,0x01,0x00,0x00,0xb0,0x00,0x05,0x00, +0xb2,0x00,0x00,0x00,0xd9,0x01,0x00,0x00,0x71,0x00,0x00,0x00, +0x24,0x02,0x00,0x00,0xf7,0x00,0x03,0x00,0xdb,0x01,0x00,0x00, +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xd9,0x01,0x00,0x00, +0xda,0x01,0x00,0x00,0xdb,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, +0xda,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xdf,0x01,0x00,0x00,0x71,0x00,0x00,0x00,0x24,0x02,0x00,0x00, +0x41,0x00,0x05,0x00,0xa7,0x00,0x00,0x00,0xe0,0x01,0x00,0x00, +0xa0,0x00,0x00,0x00,0xdf,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0x9d,0x00,0x00,0x00,0xe1,0x01,0x00,0x00,0xe0,0x01,0x00,0x00, +0x41,0x00,0x05,0x00,0xa7,0x00,0x00,0x00,0xe2,0x01,0x00,0x00, +0xa0,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x9d,0x00,0x00,0x00,0xe3,0x01,0x00,0x00,0xe2,0x01,0x00,0x00, +0x81,0x00,0x05,0x00,0x9d,0x00,0x00,0x00,0xe4,0x01,0x00,0x00, +0xe3,0x01,0x00,0x00,0xe1,0x01,0x00,0x00,0x3e,0x00,0x03,0x00, +0xe2,0x01,0x00,0x00,0xe4,0x01,0x00,0x00,0xf9,0x00,0x02,0x00, +0xdb,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xdb,0x01,0x00,0x00, +0xe0,0x00,0x04,0x00,0x51,0x00,0x00,0x00,0x51,0x00,0x00,0x00, +0xce,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xd3,0x01,0x00,0x00, +0xf8,0x00,0x02,0x00,0xd3,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xe7,0x01,0x00,0x00,0x24,0x02,0x00,0x00, +0x05,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xd0,0x01,0x00,0x00, +0xf8,0x00,0x02,0x00,0xd2,0x01,0x00,0x00,0xaa,0x00,0x05,0x00, +0xb2,0x00,0x00,0x00,0xe9,0x01,0x00,0x00,0x71,0x00,0x00,0x00, +0x4b,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0xeb,0x01,0x00,0x00, +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xe9,0x01,0x00,0x00, +0xea,0x01,0x00,0x00,0xeb,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, +0xea,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xf2,0x01,0x00,0x00,0x22,0x02,0x00,0x00,0x55,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0xa7,0x00,0x00,0x00,0xf3,0x01,0x00,0x00, +0xa0,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x9d,0x00,0x00,0x00,0xf4,0x01,0x00,0x00,0xf3,0x01,0x00,0x00, +0x41,0x00,0x06,0x00,0xf5,0x01,0x00,0x00,0xf6,0x01,0x00,0x00, +0xef,0x01,0x00,0x00,0x61,0x00,0x00,0x00,0xf2,0x01,0x00,0x00, +0x3e,0x00,0x03,0x00,0xf6,0x01,0x00,0x00,0xf4,0x01,0x00,0x00, +0xf9,0x00,0x02,0x00,0xeb,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, +0xeb,0x01,0x00,0x00,0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00, + }; -const uint64_t mul_mat_vec_q6_k_f16_f32_len = 11960; +const uint64_t mul_mat_vec_q6_k_f16_f32_len = 12108; unsigned char mul_mat_vec_q6_k_f32_f32_data[] = { 0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00, -0x16,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, +0x1d,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, 0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x27,0x00,0x00,0x00, 0x11,0x00,0x02,0x00,0x51,0x11,0x00,0x00,0x11,0x00,0x02,0x00, 0x60,0x11,0x00,0x00,0x0b,0x00,0x06,0x00,0x01,0x00,0x00,0x00, 0x47,0x4c,0x53,0x4c,0x2e,0x73,0x74,0x64,0x2e,0x34,0x35,0x30, 0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00,0x00,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x0f,0x00,0x0d,0x00,0x05,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x0f,0x00,0x0e,0x00,0x05,0x00,0x00,0x00, 0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e,0x00,0x00,0x00,0x00, 0x11,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x4a,0x00,0x00,0x00, -0x66,0x00,0x00,0x00,0x99,0x00,0x00,0x00,0xbe,0x00,0x00,0x00, -0xd4,0x00,0x00,0x00,0xe5,0x01,0x00,0x00,0x10,0x00,0x06,0x00, -0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x11,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x18,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x03,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00, -0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x18,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x4e,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0xa0,0x00,0x00,0x00, +0xc5,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,0xec,0x01,0x00,0x00, +0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x11,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, 0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x18,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x28,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x18,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x4a,0x00,0x00,0x00, -0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x66,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xb5,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xb6,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xb8,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0xba,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0xba,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x80,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xba,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0xc0,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0xba,0x00,0x00,0x00,0x03,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xbb,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0xd2,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0xbc,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xbc,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0xbc,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xbe,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xbe,0x00,0x00,0x00, -0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xd1,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0xd2,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xd2,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0xd2,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xd4,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xd4,0x00,0x00,0x00, -0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xe2,0x01,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0xe3,0x01,0x00,0x00,0x00,0x00,0x00,0x00, -0x19,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xe3,0x01,0x00,0x00, -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0xe3,0x01,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xe5,0x01,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xe5,0x01,0x00,0x00, -0x21,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xec,0x01,0x00,0x00,0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00, -0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00, -0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x17,0x00,0x04,0x00,0x0f,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x10,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x10,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x12,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x13,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x1e,0x00,0x0d,0x00, -0x18,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x18,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00, +0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x18,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x07,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x18,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00, +0x09,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x18,0x00,0x00,0x00,0x0a,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0x18,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x4a,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x4e,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x6e,0x00,0x00,0x00, +0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xbc,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xbd,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xbf,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0xc1,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0xc1,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x80,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0xc1,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0xc1,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0xd0,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xc2,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,0x48,0x00,0x04,0x00, +0xc3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0xc3,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0xc3,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xc5,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xc5,0x00,0x00,0x00,0x21,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xd8,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00, +0xd9,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0xd9,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0xd9,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xdb,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xdb,0x00,0x00,0x00,0x21,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xe9,0x01,0x00,0x00, +0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00, +0xea,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0xea,0x01,0x00,0x00,0x00,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0xea,0x01,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xec,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xec,0x01,0x00,0x00,0x21,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xf3,0x01,0x00,0x00, +0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x13,0x00,0x02,0x00, +0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x17,0x00,0x04,0x00, +0x0f,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x10,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x0f,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00, +0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x13,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x1e,0x00,0x0d,0x00,0x18,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x19,0x00,0x00,0x00, -0x1a,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x15,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x1d,0x00,0x00,0x00, -0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x0a,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x2e,0x00,0x00,0x00, -0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x34,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x40,0x00,0x00,0x00, -0x05,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x45,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0x10,0x00,0x00,0x00,0x4a,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4b,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,0x00,0x01,0x00,0x00, -0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00,0x66,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x19,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, +0x09,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x1d,0x00,0x00,0x00,0x09,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x28,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,0x09,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x34,0x00,0x00,0x00, +0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x3b,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x05,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x45,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00, +0x4a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00,0x4e,0x00,0x00,0x00, 0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x69,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x79,0x00,0x00,0x00, +0x51,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x64,0x00,0x00,0x00, +0x00,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,0x10,0x00,0x00,0x00, +0x6e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x80,0x00,0x00,0x00, 0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x80,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x91,0x00,0x00,0x00, -0x80,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0x96,0x00,0x00,0x00, -0x20,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0x97,0x00,0x00,0x00, -0x96,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x98,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x97,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0x98,0x00,0x00,0x00,0x99,0x00,0x00,0x00, +0x87,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,0x20,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x98,0x00,0x00,0x00, +0x80,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0x9d,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0x9e,0x00,0x00,0x00, +0x9d,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x9f,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x9e,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x9f,0x00,0x00,0x00,0xa0,0x00,0x00,0x00, 0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x9a,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x96,0x00,0x00,0x00,0x9f,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0xa0,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x96,0x00,0x00,0x00,0x14,0x00,0x02,0x00,0xab,0x00,0x00,0x00, -0x15,0x00,0x04,0x00,0xb4,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0xb5,0x00,0x00,0x00, -0xb4,0x00,0x00,0x00,0x91,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, -0xb6,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,0x80,0x00,0x00,0x00, -0x15,0x00,0x04,0x00,0xb7,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0xb8,0x00,0x00,0x00, -0xb7,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,0x16,0x00,0x03,0x00, -0xb9,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x1e,0x00,0x06,0x00, -0xba,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,0xb6,0x00,0x00,0x00, -0xb8,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, -0xbb,0x00,0x00,0x00,0xba,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, -0xbc,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0xbd,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xbc,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0xbd,0x00,0x00,0x00,0xbe,0x00,0x00,0x00, +0xa1,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x9d,0x00,0x00,0x00,0xa6,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0xa7,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x9d,0x00,0x00,0x00,0x14,0x00,0x02,0x00,0xb2,0x00,0x00,0x00, +0x15,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0xbc,0x00,0x00,0x00, +0xbb,0x00,0x00,0x00,0x98,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, +0xbd,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0x87,0x00,0x00,0x00, +0x15,0x00,0x04,0x00,0xbe,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0xbf,0x00,0x00,0x00, +0xbe,0x00,0x00,0x00,0xa1,0x00,0x00,0x00,0x16,0x00,0x03,0x00, +0xc0,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x1e,0x00,0x06,0x00, +0xc1,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,0xbd,0x00,0x00,0x00, +0xbf,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, +0xc2,0x00,0x00,0x00,0xc1,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, +0xc3,0x00,0x00,0x00,0xc2,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0xc4,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xc3,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0xc4,0x00,0x00,0x00,0xc5,0x00,0x00,0x00, 0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0xc2,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0xc3,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xb9,0x00,0x00,0x00, -0x1d,0x00,0x03,0x00,0xd1,0x00,0x00,0x00,0x96,0x00,0x00,0x00, -0x1e,0x00,0x03,0x00,0xd2,0x00,0x00,0x00,0xd1,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0xd3,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0xd2,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xd3,0x00,0x00,0x00, -0xd4,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0xdc,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x96,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xe2,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xe5,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0xf4,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xb4,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xf9,0x00,0x00,0x00, +0xc9,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0xca,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xc0,0x00,0x00,0x00, +0x1d,0x00,0x03,0x00,0xd8,0x00,0x00,0x00,0x9d,0x00,0x00,0x00, +0x1e,0x00,0x03,0x00,0xd9,0x00,0x00,0x00,0xd8,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0xda,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0xd9,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0xda,0x00,0x00,0x00, +0xdb,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0xe3,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x9d,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xe9,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xec,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0xbe,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0xfb,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xbb,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x00,0x01,0x00,0x00, 0x0f,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0xfe,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x0d,0x01,0x00,0x00,0x20,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x83,0x01,0x00,0x00, +0x05,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x14,0x01,0x00,0x00,0x20,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x8a,0x01,0x00,0x00, 0x60,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x8b,0x01,0x00,0x00,0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xc4,0x01,0x00,0x00,0x08,0x01,0x00,0x00, -0x1d,0x00,0x03,0x00,0xe2,0x01,0x00,0x00,0x96,0x00,0x00,0x00, -0x1e,0x00,0x03,0x00,0xe3,0x01,0x00,0x00,0xe2,0x01,0x00,0x00, -0x20,0x00,0x04,0x00,0xe4,0x01,0x00,0x00,0x0c,0x00,0x00,0x00, -0xe3,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,0xe4,0x01,0x00,0x00, -0xe5,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x2c,0x00,0x06,0x00, -0x0f,0x00,0x00,0x00,0xec,0x01,0x00,0x00,0x86,0x00,0x00,0x00, -0x12,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x0c,0x04,0x00,0x00,0x21,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x0d,0x04,0x00,0x00, -0x41,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x0e,0x04,0x00,0x00,0x61,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x0f,0x04,0x00,0x00,0x22,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x10,0x04,0x00,0x00, -0x42,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x11,0x04,0x00,0x00,0x62,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x12,0x04,0x00,0x00,0x03,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x13,0x04,0x00,0x00, -0x23,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x14,0x04,0x00,0x00,0x43,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x15,0x04,0x00,0x00,0x63,0x00,0x00,0x00, -0x36,0x00,0x05,0x00,0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0x05,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00, -0x4c,0x00,0x00,0x00,0x4a,0x00,0x00,0x00,0x4b,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4d,0x00,0x00,0x00, -0x4c,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00, -0xf4,0x01,0x00,0x00,0x11,0x00,0x00,0x00,0x12,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xf5,0x01,0x00,0x00, -0xf4,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00, -0xf7,0x01,0x00,0x00,0x1a,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xf8,0x01,0x00,0x00, -0xf7,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xf9,0x01,0x00,0x00,0xf5,0x01,0x00,0x00,0xf8,0x01,0x00,0x00, -0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xfd,0x01,0x00,0x00, -0xf5,0x01,0x00,0x00,0xf8,0x01,0x00,0x00,0x41,0x00,0x05,0x00, -0x1d,0x00,0x00,0x00,0xff,0x01,0x00,0x00,0x1a,0x00,0x00,0x00, -0x28,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x00,0x02,0x00,0x00,0xff,0x01,0x00,0x00,0x86,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x01,0x02,0x00,0x00,0xf9,0x01,0x00,0x00, -0x00,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00, -0x03,0x02,0x00,0x00,0x1a,0x00,0x00,0x00,0x2e,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x04,0x02,0x00,0x00, -0x03,0x02,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x05,0x02,0x00,0x00,0xfd,0x01,0x00,0x00,0x04,0x02,0x00,0x00, -0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00,0x07,0x02,0x00,0x00, -0x1a,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x08,0x02,0x00,0x00,0x07,0x02,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x09,0x02,0x00,0x00, -0x01,0x02,0x00,0x00,0x08,0x02,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x0b,0x02,0x00,0x00,0x09,0x02,0x00,0x00, -0x05,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00, -0x0d,0x02,0x00,0x00,0x1a,0x00,0x00,0x00,0x3b,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x0e,0x02,0x00,0x00, -0x0d,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x0f,0x02,0x00,0x00,0x0b,0x02,0x00,0x00,0x0e,0x02,0x00,0x00, -0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00,0x11,0x02,0x00,0x00, -0x1a,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x12,0x02,0x00,0x00,0x11,0x02,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x13,0x02,0x00,0x00, -0xf5,0x01,0x00,0x00,0x12,0x02,0x00,0x00,0x41,0x00,0x05,0x00, -0x1d,0x00,0x00,0x00,0x15,0x02,0x00,0x00,0x1a,0x00,0x00,0x00, -0x45,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x16,0x02,0x00,0x00,0x15,0x02,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x17,0x02,0x00,0x00,0xf5,0x01,0x00,0x00, -0x16,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00, -0x5a,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x5b,0x00,0x00,0x00, -0x5a,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x5d,0x00,0x00,0x00,0x5b,0x00,0x00,0x00,0x5c,0x00,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x60,0x00,0x00,0x00, -0x0f,0x02,0x00,0x00,0x5c,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x4d,0x00,0x00,0x00, -0x5d,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x64,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x63,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00,0x67,0x00,0x00,0x00, -0x66,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x67,0x00,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6a,0x00,0x00,0x00, -0x68,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0x89,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x68,0x00,0x00,0x00, -0x69,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x72,0x00,0x00,0x00,0x6a,0x00,0x00,0x00,0x71,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x76,0x00,0x00,0x00, -0x71,0x00,0x00,0x00,0x72,0x00,0x00,0x00,0x82,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x77,0x00,0x00,0x00,0x6a,0x00,0x00,0x00, -0x76,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x7b,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x77,0x00,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7e,0x00,0x00,0x00, -0x77,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x84,0x00,0x05,0x00, +0x92,0x01,0x00,0x00,0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xcb,0x01,0x00,0x00,0x08,0x01,0x00,0x00, +0x1d,0x00,0x03,0x00,0xe9,0x01,0x00,0x00,0x9d,0x00,0x00,0x00, +0x1e,0x00,0x03,0x00,0xea,0x01,0x00,0x00,0xe9,0x01,0x00,0x00, +0x20,0x00,0x04,0x00,0xeb,0x01,0x00,0x00,0x0c,0x00,0x00,0x00, +0xea,0x01,0x00,0x00,0x3b,0x00,0x04,0x00,0xeb,0x01,0x00,0x00, +0xec,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x2c,0x00,0x06,0x00, +0x0f,0x00,0x00,0x00,0xf3,0x01,0x00,0x00,0x8d,0x00,0x00,0x00, +0x12,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x13,0x04,0x00,0x00,0x21,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x14,0x04,0x00,0x00, +0x41,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x15,0x04,0x00,0x00,0x61,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x16,0x04,0x00,0x00,0x22,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x17,0x04,0x00,0x00, +0x42,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x18,0x04,0x00,0x00,0x62,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x19,0x04,0x00,0x00,0x03,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x1a,0x04,0x00,0x00, +0x23,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x1b,0x04,0x00,0x00,0x43,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x1c,0x04,0x00,0x00,0x63,0x00,0x00,0x00, +0x36,0x00,0x05,0x00,0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0x05,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00, +0x4c,0x00,0x00,0x00,0x4a,0x00,0x00,0x00,0x4b,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x4d,0x00,0x00,0x00, +0x4c,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00, +0x4f,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x4b,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x50,0x00,0x00,0x00, +0x4f,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00, +0x52,0x00,0x00,0x00,0x4a,0x00,0x00,0x00,0x51,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x53,0x00,0x00,0x00, +0x52,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x54,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x53,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x55,0x00,0x00,0x00, +0x4d,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0x13,0x00,0x00,0x00,0xfb,0x01,0x00,0x00,0x11,0x00,0x00,0x00, +0x12,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xfc,0x01,0x00,0x00,0xfb,0x01,0x00,0x00,0x41,0x00,0x05,0x00, +0x1d,0x00,0x00,0x00,0xfe,0x01,0x00,0x00,0x1a,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xff,0x01,0x00,0x00,0xfe,0x01,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0xfc,0x01,0x00,0x00, +0xff,0x01,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x04,0x02,0x00,0x00,0xfc,0x01,0x00,0x00,0xff,0x01,0x00,0x00, +0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00,0x06,0x02,0x00,0x00, +0x1a,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x07,0x02,0x00,0x00,0x06,0x02,0x00,0x00, +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x08,0x02,0x00,0x00, +0x00,0x02,0x00,0x00,0x07,0x02,0x00,0x00,0x41,0x00,0x05,0x00, +0x1d,0x00,0x00,0x00,0x0a,0x02,0x00,0x00,0x1a,0x00,0x00,0x00, +0x2e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x0b,0x02,0x00,0x00,0x0a,0x02,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x0c,0x02,0x00,0x00,0x04,0x02,0x00,0x00, +0x0b,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00, +0x0e,0x02,0x00,0x00,0x1a,0x00,0x00,0x00,0x34,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x0f,0x02,0x00,0x00, +0x0e,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x10,0x02,0x00,0x00,0x08,0x02,0x00,0x00,0x0f,0x02,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x12,0x02,0x00,0x00, +0x10,0x02,0x00,0x00,0x0c,0x02,0x00,0x00,0x41,0x00,0x05,0x00, +0x1d,0x00,0x00,0x00,0x14,0x02,0x00,0x00,0x1a,0x00,0x00,0x00, +0x3b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x15,0x02,0x00,0x00,0x14,0x02,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x16,0x02,0x00,0x00,0x12,0x02,0x00,0x00, +0x15,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00, +0x18,0x02,0x00,0x00,0x1a,0x00,0x00,0x00,0x40,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x19,0x02,0x00,0x00, +0x18,0x02,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x1a,0x02,0x00,0x00,0xfc,0x01,0x00,0x00,0x19,0x02,0x00,0x00, +0x41,0x00,0x05,0x00,0x1d,0x00,0x00,0x00,0x1c,0x02,0x00,0x00, +0x1a,0x00,0x00,0x00,0x45,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x1d,0x02,0x00,0x00,0x1c,0x02,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1e,0x02,0x00,0x00, +0xfc,0x01,0x00,0x00,0x1d,0x02,0x00,0x00,0x41,0x00,0x05,0x00, +0x1d,0x00,0x00,0x00,0x62,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x63,0x00,0x00,0x00,0x62,0x00,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x65,0x00,0x00,0x00,0x63,0x00,0x00,0x00, +0x64,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x68,0x00,0x00,0x00,0x16,0x02,0x00,0x00,0x64,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x6b,0x00,0x00,0x00, +0x55,0x00,0x00,0x00,0x65,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x68,0x00,0x00,0x00, +0x6b,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x13,0x00,0x00,0x00, +0x6f,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x4b,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x70,0x00,0x00,0x00, +0x6f,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x71,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x51,0x00,0x00,0x00, +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x75,0x00,0x00,0x00, +0x70,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x71,0x00,0x00,0x00, +0x78,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x7d,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x79,0x00,0x00,0x00, +0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x7e,0x00,0x00,0x00, +0x71,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,0x84,0x00,0x05,0x00, 0x06,0x00,0x00,0x00,0x82,0x00,0x00,0x00,0x80,0x00,0x00,0x00, -0x72,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x84,0x00,0x00,0x00,0x82,0x00,0x00,0x00,0x7b,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x88,0x00,0x00,0x00, -0x86,0x00,0x00,0x00,0x72,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x8a,0x00,0x00,0x00,0x88,0x00,0x00,0x00, -0x7b,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x8f,0x00,0x00,0x00,0x76,0x00,0x00,0x00,0x7e,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x93,0x00,0x00,0x00, -0x91,0x00,0x00,0x00,0x72,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x95,0x00,0x00,0x00,0x93,0x00,0x00,0x00, -0x7b,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x9c,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,0x6e,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9e,0x00,0x00,0x00, -0x9c,0x00,0x00,0x00,0x6a,0x00,0x00,0x00,0x41,0x00,0x05,0x00, -0xa0,0x00,0x00,0x00,0xa1,0x00,0x00,0x00,0x99,0x00,0x00,0x00, -0x9e,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0xa1,0x00,0x00,0x00, -0x9f,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xa4,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0xa4,0x00,0x00,0x00,0xf5,0x00,0x07,0x00, -0x06,0x00,0x00,0x00,0x18,0x02,0x00,0x00,0x6e,0x00,0x00,0x00, -0x05,0x00,0x00,0x00,0xc3,0x01,0x00,0x00,0xa5,0x00,0x00,0x00, -0xb0,0x00,0x05,0x00,0xab,0x00,0x00,0x00,0xac,0x00,0x00,0x00, -0x18,0x02,0x00,0x00,0x5d,0x00,0x00,0x00,0xf6,0x00,0x04,0x00, -0xa6,0x00,0x00,0x00,0xa5,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0xfa,0x00,0x04,0x00,0xac,0x00,0x00,0x00,0xa5,0x00,0x00,0x00, -0xa6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xa5,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xaf,0x00,0x00,0x00, -0x18,0x02,0x00,0x00,0x5c,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xb1,0x00,0x00,0x00,0xaf,0x00,0x00,0x00, -0x95,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xc1,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0x18,0x02,0x00,0x00, -0x41,0x00,0x07,0x00,0xc3,0x00,0x00,0x00,0xc4,0x00,0x00,0x00, -0xbe,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xc1,0x00,0x00,0x00, -0xc2,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xb9,0x00,0x00,0x00, -0xc5,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,0x73,0x00,0x04,0x00, -0x96,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,0xc5,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd7,0x00,0x00,0x00, -0x13,0x02,0x00,0x00,0xb1,0x00,0x00,0x00,0x41,0x00,0x06,0x00, -0xdc,0x00,0x00,0x00,0xdd,0x00,0x00,0x00,0xd4,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xd7,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x96,0x00,0x00,0x00,0xde,0x00,0x00,0x00,0xdd,0x00,0x00,0x00, -0x41,0x00,0x08,0x00,0xe5,0x00,0x00,0x00,0xe6,0x00,0x00,0x00, -0xbe,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xc1,0x00,0x00,0x00, -0xe2,0x00,0x00,0x00,0x8f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb7,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,0xe6,0x00,0x00,0x00, -0x6f,0x00,0x04,0x00,0x96,0x00,0x00,0x00,0xe8,0x00,0x00,0x00, -0xe7,0x00,0x00,0x00,0x85,0x00,0x05,0x00,0x96,0x00,0x00,0x00, -0xe9,0x00,0x00,0x00,0xde,0x00,0x00,0x00,0xe8,0x00,0x00,0x00, -0x85,0x00,0x05,0x00,0x96,0x00,0x00,0x00,0xeb,0x00,0x00,0x00, -0xe9,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,0x41,0x00,0x08,0x00, -0xf4,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,0xbe,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xc1,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0x84,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00, -0xf6,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,0xf6,0x00,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xf8,0x00,0x00,0x00, -0xf7,0x00,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0xfa,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0xf9,0x00,0x00,0x00, -0x41,0x00,0x08,0x00,0xf4,0x00,0x00,0x00,0x03,0x01,0x00,0x00, -0xbe,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xc1,0x00,0x00,0x00, -0xfe,0x00,0x00,0x00,0x8a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb4,0x00,0x00,0x00,0x04,0x01,0x00,0x00,0x03,0x01,0x00,0x00, -0xc2,0x00,0x05,0x00,0xb4,0x00,0x00,0x00,0x05,0x01,0x00,0x00, -0x04,0x01,0x00,0x00,0x59,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x06,0x01,0x00,0x00,0x05,0x01,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x07,0x01,0x00,0x00, -0x06,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x08,0x01,0x00,0x00,0x07,0x01,0x00,0x00,0xc2,0x00,0x00,0x00, -0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x09,0x01,0x00,0x00, -0x08,0x01,0x00,0x00,0x3b,0x00,0x00,0x00,0xc5,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x0a,0x01,0x00,0x00,0xfa,0x00,0x00,0x00, -0x09,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0xb7,0x00,0x00,0x00, -0x0b,0x01,0x00,0x00,0x0a,0x01,0x00,0x00,0x72,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,0x0b,0x01,0x00,0x00, -0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x0e,0x01,0x00,0x00, -0x0c,0x01,0x00,0x00,0x0d,0x01,0x00,0x00,0x6f,0x00,0x04,0x00, -0x96,0x00,0x00,0x00,0x0f,0x01,0x00,0x00,0x0e,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x17,0x01,0x00,0x00, -0xd7,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x41,0x00,0x06,0x00, -0xdc,0x00,0x00,0x00,0x18,0x01,0x00,0x00,0xd4,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0x17,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0x96,0x00,0x00,0x00,0x19,0x01,0x00,0x00,0x18,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1e,0x01,0x00,0x00, -0x8f,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0x41,0x00,0x08,0x00, -0xe5,0x00,0x00,0x00,0x1f,0x01,0x00,0x00,0xbe,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xc1,0x00,0x00,0x00,0xe2,0x00,0x00,0x00, -0x1e,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xb7,0x00,0x00,0x00, -0x20,0x01,0x00,0x00,0x1f,0x01,0x00,0x00,0x6f,0x00,0x04,0x00, -0x96,0x00,0x00,0x00,0x21,0x01,0x00,0x00,0x20,0x01,0x00,0x00, -0x85,0x00,0x05,0x00,0x96,0x00,0x00,0x00,0x22,0x01,0x00,0x00, -0x19,0x01,0x00,0x00,0x21,0x01,0x00,0x00,0x85,0x00,0x05,0x00, -0x96,0x00,0x00,0x00,0x24,0x01,0x00,0x00,0x22,0x01,0x00,0x00, -0xc6,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x2c,0x01,0x00,0x00,0x84,0x00,0x00,0x00,0x86,0x00,0x00,0x00, -0x41,0x00,0x08,0x00,0xf4,0x00,0x00,0x00,0x2d,0x01,0x00,0x00, -0xbe,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xc1,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0x2c,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb4,0x00,0x00,0x00,0x2e,0x01,0x00,0x00,0x2d,0x01,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x2f,0x01,0x00,0x00, -0x2e,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x30,0x01,0x00,0x00,0x2f,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x31,0x01,0x00,0x00,0x30,0x01,0x00,0x00, -0xf9,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00, -0x3a,0x01,0x00,0x00,0x03,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, -0xb4,0x00,0x00,0x00,0x3b,0x01,0x00,0x00,0x3a,0x01,0x00,0x00, -0xe2,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x3c,0x01,0x00,0x00,0x3b,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x3d,0x01,0x00,0x00,0x3c,0x01,0x00,0x00, -0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x3e,0x01,0x00,0x00, -0x3d,0x01,0x00,0x00,0xc2,0x00,0x00,0x00,0xc4,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x3f,0x01,0x00,0x00,0x3e,0x01,0x00,0x00, -0x3b,0x00,0x00,0x00,0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x40,0x01,0x00,0x00,0x31,0x01,0x00,0x00,0x3f,0x01,0x00,0x00, -0x72,0x00,0x04,0x00,0xb7,0x00,0x00,0x00,0x41,0x01,0x00,0x00, -0x40,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x42,0x01,0x00,0x00,0x41,0x01,0x00,0x00,0x82,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x43,0x01,0x00,0x00,0x42,0x01,0x00,0x00, -0x0d,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x96,0x00,0x00,0x00, -0x44,0x01,0x00,0x00,0x43,0x01,0x00,0x00,0x85,0x00,0x05,0x00, -0x96,0x00,0x00,0x00,0x45,0x01,0x00,0x00,0x24,0x01,0x00,0x00, -0x44,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0x96,0x00,0x00,0x00, -0x46,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0xeb,0x00,0x00,0x00,0x0f,0x01,0x00,0x00,0x45,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4d,0x01,0x00,0x00, -0xd7,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x41,0x00,0x06,0x00, -0xdc,0x00,0x00,0x00,0x4e,0x01,0x00,0x00,0xd4,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0x4d,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0x96,0x00,0x00,0x00,0x4f,0x01,0x00,0x00,0x4e,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x54,0x01,0x00,0x00, -0x8f,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x41,0x00,0x08,0x00, -0xe5,0x00,0x00,0x00,0x55,0x01,0x00,0x00,0xbe,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xc1,0x00,0x00,0x00,0xe2,0x00,0x00,0x00, -0x54,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xb7,0x00,0x00,0x00, -0x56,0x01,0x00,0x00,0x55,0x01,0x00,0x00,0x6f,0x00,0x04,0x00, -0x96,0x00,0x00,0x00,0x57,0x01,0x00,0x00,0x56,0x01,0x00,0x00, -0x85,0x00,0x05,0x00,0x96,0x00,0x00,0x00,0x58,0x01,0x00,0x00, -0x4f,0x01,0x00,0x00,0x57,0x01,0x00,0x00,0x85,0x00,0x05,0x00, -0x96,0x00,0x00,0x00,0x5a,0x01,0x00,0x00,0x58,0x01,0x00,0x00, -0xc6,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00, -0x64,0x01,0x00,0x00,0xf5,0x00,0x00,0x00,0xc2,0x00,0x05,0x00, -0xb4,0x00,0x00,0x00,0x65,0x01,0x00,0x00,0x64,0x01,0x00,0x00, -0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x66,0x01,0x00,0x00,0x65,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x67,0x01,0x00,0x00,0x66,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00,0x70,0x01,0x00,0x00, -0x03,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0xb4,0x00,0x00,0x00, -0x71,0x01,0x00,0x00,0x70,0x01,0x00,0x00,0x3b,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x72,0x01,0x00,0x00, -0x71,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x73,0x01,0x00,0x00,0x72,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x74,0x01,0x00,0x00,0x73,0x01,0x00,0x00, -0xc2,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x75,0x01,0x00,0x00,0x74,0x01,0x00,0x00,0x3b,0x00,0x00,0x00, -0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x76,0x01,0x00,0x00, -0x67,0x01,0x00,0x00,0x75,0x01,0x00,0x00,0x72,0x00,0x04,0x00, -0xb7,0x00,0x00,0x00,0x77,0x01,0x00,0x00,0x76,0x01,0x00,0x00, -0x72,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x78,0x01,0x00,0x00, -0x77,0x01,0x00,0x00,0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x79,0x01,0x00,0x00,0x78,0x01,0x00,0x00,0x0d,0x01,0x00,0x00, -0x6f,0x00,0x04,0x00,0x96,0x00,0x00,0x00,0x7a,0x01,0x00,0x00, -0x79,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0x96,0x00,0x00,0x00, -0x7c,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x5a,0x01,0x00,0x00,0x7a,0x01,0x00,0x00,0x46,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x84,0x01,0x00,0x00, -0xd7,0x00,0x00,0x00,0x83,0x01,0x00,0x00,0x41,0x00,0x06,0x00, -0xdc,0x00,0x00,0x00,0x85,0x01,0x00,0x00,0xd4,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0x84,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, -0x96,0x00,0x00,0x00,0x86,0x01,0x00,0x00,0x85,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8c,0x01,0x00,0x00, -0x8f,0x00,0x00,0x00,0x8b,0x01,0x00,0x00,0x41,0x00,0x08,0x00, -0xe5,0x00,0x00,0x00,0x8d,0x01,0x00,0x00,0xbe,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xc1,0x00,0x00,0x00,0xe2,0x00,0x00,0x00, -0x8c,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xb7,0x00,0x00,0x00, -0x8e,0x01,0x00,0x00,0x8d,0x01,0x00,0x00,0x6f,0x00,0x04,0x00, -0x96,0x00,0x00,0x00,0x8f,0x01,0x00,0x00,0x8e,0x01,0x00,0x00, -0x85,0x00,0x05,0x00,0x96,0x00,0x00,0x00,0x90,0x01,0x00,0x00, -0x86,0x01,0x00,0x00,0x8f,0x01,0x00,0x00,0x85,0x00,0x05,0x00, -0x96,0x00,0x00,0x00,0x92,0x01,0x00,0x00,0x90,0x01,0x00,0x00, -0xc6,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00, -0x9c,0x01,0x00,0x00,0x2d,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, -0xb4,0x00,0x00,0x00,0x9d,0x01,0x00,0x00,0x9c,0x01,0x00,0x00, +0x7e,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x85,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x80,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x89,0x00,0x00,0x00, +0x87,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x8b,0x00,0x00,0x00,0x89,0x00,0x00,0x00, +0x82,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x8f,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,0x79,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x91,0x00,0x00,0x00, +0x8f,0x00,0x00,0x00,0x82,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x96,0x00,0x00,0x00,0x7d,0x00,0x00,0x00, +0x85,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x9a,0x00,0x00,0x00,0x98,0x00,0x00,0x00,0x79,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9c,0x00,0x00,0x00, +0x9a,0x00,0x00,0x00,0x82,0x00,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0xa1,0x00,0x00,0x00, +0x75,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xa5,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0x71,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0xa7,0x00,0x00,0x00,0xa8,0x00,0x00,0x00, +0xa0,0x00,0x00,0x00,0xa5,0x00,0x00,0x00,0x3e,0x00,0x03,0x00, +0xa8,0x00,0x00,0x00,0xa6,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, +0xab,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xab,0x00,0x00,0x00, +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x1f,0x02,0x00,0x00, +0x75,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0xca,0x01,0x00,0x00, +0xac,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0xb2,0x00,0x00,0x00, +0xb3,0x00,0x00,0x00,0x1f,0x02,0x00,0x00,0x65,0x00,0x00,0x00, +0xf6,0x00,0x04,0x00,0xad,0x00,0x00,0x00,0xac,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xb3,0x00,0x00,0x00, +0xac,0x00,0x00,0x00,0xad,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xac,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xb6,0x00,0x00,0x00,0x1f,0x02,0x00,0x00,0x64,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb8,0x00,0x00,0x00, +0xb6,0x00,0x00,0x00,0x9c,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x6c,0x00,0x00,0x00, +0x1f,0x02,0x00,0x00,0x41,0x00,0x07,0x00,0xca,0x00,0x00,0x00, +0xcb,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0xc8,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0xc0,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,0xcb,0x00,0x00,0x00, +0x73,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0xcd,0x00,0x00,0x00, +0xcc,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xde,0x00,0x00,0x00,0x1a,0x02,0x00,0x00,0xb8,0x00,0x00,0x00, +0x41,0x00,0x06,0x00,0xe3,0x00,0x00,0x00,0xe4,0x00,0x00,0x00, +0xdb,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xde,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0xe5,0x00,0x00,0x00, +0xe4,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xec,0x00,0x00,0x00, +0xed,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0xc8,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,0x96,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0xbe,0x00,0x00,0x00,0xee,0x00,0x00,0x00, +0xed,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, +0xef,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0x85,0x00,0x05,0x00, +0x9d,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0xe5,0x00,0x00,0x00, +0xef,0x00,0x00,0x00,0x85,0x00,0x05,0x00,0x9d,0x00,0x00,0x00, +0xf2,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0xcd,0x00,0x00,0x00, +0x41,0x00,0x08,0x00,0xfb,0x00,0x00,0x00,0xfc,0x00,0x00,0x00, +0xc5,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xc8,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0x8b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0xbb,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,0xfc,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xfe,0x00,0x00,0x00, +0xfd,0x00,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0xff,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0xff,0x00,0x00,0x00, +0x00,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0xfb,0x00,0x00,0x00, +0x0a,0x01,0x00,0x00,0xc5,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0xc8,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0x91,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0x0b,0x01,0x00,0x00, +0x0a,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0xbb,0x00,0x00,0x00, +0x0c,0x01,0x00,0x00,0x0b,0x01,0x00,0x00,0x61,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x0d,0x01,0x00,0x00, +0x0c,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x0e,0x01,0x00,0x00,0x0d,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x0f,0x01,0x00,0x00,0x0e,0x01,0x00,0x00, +0xc9,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x10,0x01,0x00,0x00,0x0f,0x01,0x00,0x00,0x3b,0x00,0x00,0x00, +0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x11,0x01,0x00,0x00, +0x01,0x01,0x00,0x00,0x10,0x01,0x00,0x00,0x72,0x00,0x04,0x00, +0xbe,0x00,0x00,0x00,0x12,0x01,0x00,0x00,0x11,0x01,0x00,0x00, +0x72,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x13,0x01,0x00,0x00, +0x12,0x01,0x00,0x00,0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x15,0x01,0x00,0x00,0x13,0x01,0x00,0x00,0x14,0x01,0x00,0x00, +0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0x16,0x01,0x00,0x00, +0x15,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x1e,0x01,0x00,0x00,0xde,0x00,0x00,0x00,0x8d,0x00,0x00,0x00, +0x41,0x00,0x06,0x00,0xe3,0x00,0x00,0x00,0x1f,0x01,0x00,0x00, +0xdb,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x1e,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0x20,0x01,0x00,0x00, +0x1f,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x25,0x01,0x00,0x00,0x96,0x00,0x00,0x00,0x51,0x00,0x00,0x00, +0x41,0x00,0x08,0x00,0xec,0x00,0x00,0x00,0x26,0x01,0x00,0x00, +0xc5,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xc8,0x00,0x00,0x00, +0xe9,0x00,0x00,0x00,0x25,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0xbe,0x00,0x00,0x00,0x27,0x01,0x00,0x00,0x26,0x01,0x00,0x00, +0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0x28,0x01,0x00,0x00, +0x27,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x9d,0x00,0x00,0x00, +0x29,0x01,0x00,0x00,0x20,0x01,0x00,0x00,0x28,0x01,0x00,0x00, +0x85,0x00,0x05,0x00,0x9d,0x00,0x00,0x00,0x2b,0x01,0x00,0x00, +0x29,0x01,0x00,0x00,0xcd,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x33,0x01,0x00,0x00,0x8b,0x00,0x00,0x00, +0x8d,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xfb,0x00,0x00,0x00, +0x34,0x01,0x00,0x00,0xc5,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0xc8,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x33,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0x35,0x01,0x00,0x00, +0x34,0x01,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x36,0x01,0x00,0x00,0x35,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x37,0x01,0x00,0x00,0x36,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x38,0x01,0x00,0x00, +0x37,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0xbb,0x00,0x00,0x00,0x41,0x01,0x00,0x00,0x0a,0x01,0x00,0x00, +0xc2,0x00,0x05,0x00,0xbb,0x00,0x00,0x00,0x42,0x01,0x00,0x00, +0x41,0x01,0x00,0x00,0xe9,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x43,0x01,0x00,0x00,0x42,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x44,0x01,0x00,0x00, +0x43,0x01,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x45,0x01,0x00,0x00,0x44,0x01,0x00,0x00,0xc9,0x00,0x00,0x00, +0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x46,0x01,0x00,0x00, +0x45,0x01,0x00,0x00,0x3b,0x00,0x00,0x00,0xc5,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x47,0x01,0x00,0x00,0x38,0x01,0x00,0x00, +0x46,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0xbe,0x00,0x00,0x00, +0x48,0x01,0x00,0x00,0x47,0x01,0x00,0x00,0x72,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x49,0x01,0x00,0x00,0x48,0x01,0x00,0x00, +0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x4a,0x01,0x00,0x00, +0x49,0x01,0x00,0x00,0x14,0x01,0x00,0x00,0x6f,0x00,0x04,0x00, +0x9d,0x00,0x00,0x00,0x4b,0x01,0x00,0x00,0x4a,0x01,0x00,0x00, +0x85,0x00,0x05,0x00,0x9d,0x00,0x00,0x00,0x4c,0x01,0x00,0x00, +0x2b,0x01,0x00,0x00,0x4b,0x01,0x00,0x00,0x0c,0x00,0x08,0x00, +0x9d,0x00,0x00,0x00,0x4d,0x01,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0xf2,0x00,0x00,0x00,0x16,0x01,0x00,0x00, +0x4c,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x54,0x01,0x00,0x00,0xde,0x00,0x00,0x00,0x87,0x00,0x00,0x00, +0x41,0x00,0x06,0x00,0xe3,0x00,0x00,0x00,0x55,0x01,0x00,0x00, +0xdb,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x54,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0x56,0x01,0x00,0x00, +0x55,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x5b,0x01,0x00,0x00,0x96,0x00,0x00,0x00,0x80,0x00,0x00,0x00, +0x41,0x00,0x08,0x00,0xec,0x00,0x00,0x00,0x5c,0x01,0x00,0x00, +0xc5,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xc8,0x00,0x00,0x00, +0xe9,0x00,0x00,0x00,0x5b,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0xbe,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,0x5c,0x01,0x00,0x00, +0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0x5e,0x01,0x00,0x00, +0x5d,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x9d,0x00,0x00,0x00, +0x5f,0x01,0x00,0x00,0x56,0x01,0x00,0x00,0x5e,0x01,0x00,0x00, +0x85,0x00,0x05,0x00,0x9d,0x00,0x00,0x00,0x61,0x01,0x00,0x00, +0x5f,0x01,0x00,0x00,0xcd,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0xbb,0x00,0x00,0x00,0x6b,0x01,0x00,0x00,0xfc,0x00,0x00,0x00, +0xc2,0x00,0x05,0x00,0xbb,0x00,0x00,0x00,0x6c,0x01,0x00,0x00, +0x6b,0x01,0x00,0x00,0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x6d,0x01,0x00,0x00,0x6c,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x6e,0x01,0x00,0x00, +0x6d,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00, +0x77,0x01,0x00,0x00,0x0a,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, +0xbb,0x00,0x00,0x00,0x78,0x01,0x00,0x00,0x77,0x01,0x00,0x00, 0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x9e,0x01,0x00,0x00,0x9d,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x9f,0x01,0x00,0x00,0x9e,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00,0xa8,0x01,0x00,0x00, -0x03,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0xb4,0x00,0x00,0x00, -0xa9,0x01,0x00,0x00,0xa8,0x01,0x00,0x00,0x45,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xaa,0x01,0x00,0x00, -0xa9,0x01,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0xab,0x01,0x00,0x00,0xaa,0x01,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0xac,0x01,0x00,0x00,0xab,0x01,0x00,0x00, -0xc2,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0xad,0x01,0x00,0x00,0xac,0x01,0x00,0x00,0x3b,0x00,0x00,0x00, -0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xae,0x01,0x00,0x00, -0x9f,0x01,0x00,0x00,0xad,0x01,0x00,0x00,0x72,0x00,0x04,0x00, -0xb7,0x00,0x00,0x00,0xaf,0x01,0x00,0x00,0xae,0x01,0x00,0x00, -0x72,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xb0,0x01,0x00,0x00, -0xaf,0x01,0x00,0x00,0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0xb1,0x01,0x00,0x00,0xb0,0x01,0x00,0x00,0x0d,0x01,0x00,0x00, -0x6f,0x00,0x04,0x00,0x96,0x00,0x00,0x00,0xb2,0x01,0x00,0x00, -0xb1,0x01,0x00,0x00,0x0c,0x00,0x08,0x00,0x96,0x00,0x00,0x00, -0xb4,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x92,0x01,0x00,0x00,0xb2,0x01,0x00,0x00,0x7c,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x27,0x02,0x00,0x00, -0xd7,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x41,0x00,0x06,0x00, -0xdc,0x00,0x00,0x00,0x29,0x02,0x00,0x00,0xd4,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0x27,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0x96,0x00,0x00,0x00,0x2a,0x02,0x00,0x00,0x29,0x02,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb7,0x00,0x00,0x00,0x2e,0x02,0x00,0x00, -0xe6,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x96,0x00,0x00,0x00, -0x2f,0x02,0x00,0x00,0x2e,0x02,0x00,0x00,0x85,0x00,0x05,0x00, -0x96,0x00,0x00,0x00,0x30,0x02,0x00,0x00,0x2a,0x02,0x00,0x00, -0x2f,0x02,0x00,0x00,0x85,0x00,0x05,0x00,0x96,0x00,0x00,0x00, -0x31,0x02,0x00,0x00,0x30,0x02,0x00,0x00,0xc6,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x34,0x02,0x00,0x00, -0x84,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x41,0x00,0x08,0x00, -0xf4,0x00,0x00,0x00,0x36,0x02,0x00,0x00,0xbe,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xc1,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0x34,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00, -0x37,0x02,0x00,0x00,0x36,0x02,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x38,0x02,0x00,0x00,0x37,0x02,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x39,0x02,0x00,0x00, -0x38,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x3a,0x02,0x00,0x00,0x39,0x02,0x00,0x00,0xf9,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3d,0x02,0x00,0x00, -0x8a,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x41,0x00,0x08,0x00, -0xf4,0x00,0x00,0x00,0x3e,0x02,0x00,0x00,0xbe,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xc1,0x00,0x00,0x00,0xfe,0x00,0x00,0x00, -0x3d,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00, -0x3f,0x02,0x00,0x00,0x3e,0x02,0x00,0x00,0xc2,0x00,0x05,0x00, -0xb4,0x00,0x00,0x00,0x40,0x02,0x00,0x00,0x3f,0x02,0x00,0x00, -0x59,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x41,0x02,0x00,0x00,0x40,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x42,0x02,0x00,0x00,0x41,0x02,0x00,0x00, -0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x43,0x02,0x00,0x00, -0x42,0x02,0x00,0x00,0xc2,0x00,0x00,0x00,0xc4,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x44,0x02,0x00,0x00,0x43,0x02,0x00,0x00, +0x79,0x01,0x00,0x00,0x78,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x7a,0x01,0x00,0x00,0x79,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x7b,0x01,0x00,0x00, +0x7a,0x01,0x00,0x00,0xc9,0x00,0x00,0x00,0xc4,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x7c,0x01,0x00,0x00,0x7b,0x01,0x00,0x00, 0x3b,0x00,0x00,0x00,0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x45,0x02,0x00,0x00,0x3a,0x02,0x00,0x00,0x44,0x02,0x00,0x00, -0x72,0x00,0x04,0x00,0xb7,0x00,0x00,0x00,0x46,0x02,0x00,0x00, -0x45,0x02,0x00,0x00,0x72,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x47,0x02,0x00,0x00,0x46,0x02,0x00,0x00,0x82,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x48,0x02,0x00,0x00,0x47,0x02,0x00,0x00, -0x0d,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x96,0x00,0x00,0x00, -0x49,0x02,0x00,0x00,0x48,0x02,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x4e,0x02,0x00,0x00,0xd7,0x00,0x00,0x00, -0x0c,0x04,0x00,0x00,0x41,0x00,0x06,0x00,0xdc,0x00,0x00,0x00, -0x4f,0x02,0x00,0x00,0xd4,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0x4e,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x96,0x00,0x00,0x00, -0x50,0x02,0x00,0x00,0x4f,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb7,0x00,0x00,0x00,0x54,0x02,0x00,0x00,0x1f,0x01,0x00,0x00, -0x6f,0x00,0x04,0x00,0x96,0x00,0x00,0x00,0x55,0x02,0x00,0x00, -0x54,0x02,0x00,0x00,0x85,0x00,0x05,0x00,0x96,0x00,0x00,0x00, -0x56,0x02,0x00,0x00,0x50,0x02,0x00,0x00,0x55,0x02,0x00,0x00, -0x85,0x00,0x05,0x00,0x96,0x00,0x00,0x00,0x57,0x02,0x00,0x00, -0x56,0x02,0x00,0x00,0xc6,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x5b,0x02,0x00,0x00,0x84,0x00,0x00,0x00, -0x0c,0x04,0x00,0x00,0x41,0x00,0x08,0x00,0xf4,0x00,0x00,0x00, -0x5c,0x02,0x00,0x00,0xbe,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0xc1,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x5b,0x02,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00,0x5d,0x02,0x00,0x00, -0x5c,0x02,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x5e,0x02,0x00,0x00,0x5d,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x5f,0x02,0x00,0x00,0x5e,0x02,0x00,0x00, -0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x60,0x02,0x00,0x00, -0x5f,0x02,0x00,0x00,0xf9,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb4,0x00,0x00,0x00,0x65,0x02,0x00,0x00,0x3e,0x02,0x00,0x00, -0xc2,0x00,0x05,0x00,0xb4,0x00,0x00,0x00,0x66,0x02,0x00,0x00, -0x65,0x02,0x00,0x00,0xe2,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x67,0x02,0x00,0x00,0x66,0x02,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x68,0x02,0x00,0x00, -0x67,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x69,0x02,0x00,0x00,0x68,0x02,0x00,0x00,0xc2,0x00,0x00,0x00, -0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x6a,0x02,0x00,0x00, -0x69,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0xc5,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x6b,0x02,0x00,0x00,0x60,0x02,0x00,0x00, -0x6a,0x02,0x00,0x00,0x72,0x00,0x04,0x00,0xb7,0x00,0x00,0x00, -0x6c,0x02,0x00,0x00,0x6b,0x02,0x00,0x00,0x72,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x6d,0x02,0x00,0x00,0x6c,0x02,0x00,0x00, -0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x6e,0x02,0x00,0x00, -0x6d,0x02,0x00,0x00,0x0d,0x01,0x00,0x00,0x6f,0x00,0x04,0x00, -0x96,0x00,0x00,0x00,0x6f,0x02,0x00,0x00,0x6e,0x02,0x00,0x00, -0x85,0x00,0x05,0x00,0x96,0x00,0x00,0x00,0x70,0x02,0x00,0x00, -0x57,0x02,0x00,0x00,0x6f,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, -0x96,0x00,0x00,0x00,0x71,0x02,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0x31,0x02,0x00,0x00,0x49,0x02,0x00,0x00, -0x70,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x75,0x02,0x00,0x00,0xd7,0x00,0x00,0x00,0x0d,0x04,0x00,0x00, -0x41,0x00,0x06,0x00,0xdc,0x00,0x00,0x00,0x76,0x02,0x00,0x00, -0xd4,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x75,0x02,0x00,0x00, -0x3d,0x00,0x04,0x00,0x96,0x00,0x00,0x00,0x77,0x02,0x00,0x00, -0x76,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xb7,0x00,0x00,0x00, -0x7b,0x02,0x00,0x00,0x55,0x01,0x00,0x00,0x6f,0x00,0x04,0x00, -0x96,0x00,0x00,0x00,0x7c,0x02,0x00,0x00,0x7b,0x02,0x00,0x00, -0x85,0x00,0x05,0x00,0x96,0x00,0x00,0x00,0x7d,0x02,0x00,0x00, -0x77,0x02,0x00,0x00,0x7c,0x02,0x00,0x00,0x85,0x00,0x05,0x00, -0x96,0x00,0x00,0x00,0x7e,0x02,0x00,0x00,0x7d,0x02,0x00,0x00, -0xc6,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00, -0x84,0x02,0x00,0x00,0x36,0x02,0x00,0x00,0xc2,0x00,0x05,0x00, -0xb4,0x00,0x00,0x00,0x85,0x02,0x00,0x00,0x84,0x02,0x00,0x00, -0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x86,0x02,0x00,0x00,0x85,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x87,0x02,0x00,0x00,0x86,0x02,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00,0x8c,0x02,0x00,0x00, -0x3e,0x02,0x00,0x00,0xc2,0x00,0x05,0x00,0xb4,0x00,0x00,0x00, -0x8d,0x02,0x00,0x00,0x8c,0x02,0x00,0x00,0x3b,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x8e,0x02,0x00,0x00, -0x8d,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x8f,0x02,0x00,0x00,0x8e,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x90,0x02,0x00,0x00,0x8f,0x02,0x00,0x00, -0xc2,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x91,0x02,0x00,0x00,0x90,0x02,0x00,0x00,0x3b,0x00,0x00,0x00, -0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x92,0x02,0x00,0x00, -0x87,0x02,0x00,0x00,0x91,0x02,0x00,0x00,0x72,0x00,0x04,0x00, -0xb7,0x00,0x00,0x00,0x93,0x02,0x00,0x00,0x92,0x02,0x00,0x00, -0x72,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x94,0x02,0x00,0x00, -0x93,0x02,0x00,0x00,0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x95,0x02,0x00,0x00,0x94,0x02,0x00,0x00,0x0d,0x01,0x00,0x00, -0x6f,0x00,0x04,0x00,0x96,0x00,0x00,0x00,0x96,0x02,0x00,0x00, -0x95,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x96,0x00,0x00,0x00, -0x98,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x7e,0x02,0x00,0x00,0x96,0x02,0x00,0x00,0x71,0x02,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x9c,0x02,0x00,0x00, -0xd7,0x00,0x00,0x00,0x0e,0x04,0x00,0x00,0x41,0x00,0x06,0x00, -0xdc,0x00,0x00,0x00,0x9d,0x02,0x00,0x00,0xd4,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0x9c,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0x96,0x00,0x00,0x00,0x9e,0x02,0x00,0x00,0x9d,0x02,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb7,0x00,0x00,0x00,0xa2,0x02,0x00,0x00, -0x8d,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x96,0x00,0x00,0x00, -0xa3,0x02,0x00,0x00,0xa2,0x02,0x00,0x00,0x85,0x00,0x05,0x00, -0x96,0x00,0x00,0x00,0xa4,0x02,0x00,0x00,0x9e,0x02,0x00,0x00, -0xa3,0x02,0x00,0x00,0x85,0x00,0x05,0x00,0x96,0x00,0x00,0x00, -0xa5,0x02,0x00,0x00,0xa4,0x02,0x00,0x00,0xc6,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00,0xab,0x02,0x00,0x00, -0x5c,0x02,0x00,0x00,0xc2,0x00,0x05,0x00,0xb4,0x00,0x00,0x00, -0xac,0x02,0x00,0x00,0xab,0x02,0x00,0x00,0x3b,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xad,0x02,0x00,0x00, -0xac,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0xae,0x02,0x00,0x00,0xad,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb4,0x00,0x00,0x00,0xb3,0x02,0x00,0x00,0x3e,0x02,0x00,0x00, -0xc2,0x00,0x05,0x00,0xb4,0x00,0x00,0x00,0xb4,0x02,0x00,0x00, -0xb3,0x02,0x00,0x00,0x45,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xb5,0x02,0x00,0x00,0xb4,0x02,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xb6,0x02,0x00,0x00, -0xb5,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0xb7,0x02,0x00,0x00,0xb6,0x02,0x00,0x00,0xc2,0x00,0x00,0x00, -0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xb8,0x02,0x00,0x00, -0xb7,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0xc5,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0xb9,0x02,0x00,0x00,0xae,0x02,0x00,0x00, -0xb8,0x02,0x00,0x00,0x72,0x00,0x04,0x00,0xb7,0x00,0x00,0x00, -0xba,0x02,0x00,0x00,0xb9,0x02,0x00,0x00,0x72,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0xbb,0x02,0x00,0x00,0xba,0x02,0x00,0x00, -0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xbc,0x02,0x00,0x00, -0xbb,0x02,0x00,0x00,0x0d,0x01,0x00,0x00,0x6f,0x00,0x04,0x00, -0x96,0x00,0x00,0x00,0xbd,0x02,0x00,0x00,0xbc,0x02,0x00,0x00, -0x0c,0x00,0x08,0x00,0x96,0x00,0x00,0x00,0xbf,0x02,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xa5,0x02,0x00,0x00, -0xbd,0x02,0x00,0x00,0x98,0x02,0x00,0x00,0x81,0x00,0x05,0x00, -0x96,0x00,0x00,0x00,0xc0,0x02,0x00,0x00,0xb4,0x01,0x00,0x00, -0xbf,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xcb,0x02,0x00,0x00,0xd7,0x00,0x00,0x00,0x69,0x00,0x00,0x00, -0x41,0x00,0x06,0x00,0xdc,0x00,0x00,0x00,0xcd,0x02,0x00,0x00, -0xd4,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xcb,0x02,0x00,0x00, -0x3d,0x00,0x04,0x00,0x96,0x00,0x00,0x00,0xce,0x02,0x00,0x00, -0xcd,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xb7,0x00,0x00,0x00, -0xd2,0x02,0x00,0x00,0xe6,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, -0x96,0x00,0x00,0x00,0xd3,0x02,0x00,0x00,0xd2,0x02,0x00,0x00, -0x85,0x00,0x05,0x00,0x96,0x00,0x00,0x00,0xd4,0x02,0x00,0x00, -0xce,0x02,0x00,0x00,0xd3,0x02,0x00,0x00,0x85,0x00,0x05,0x00, -0x96,0x00,0x00,0x00,0xd5,0x02,0x00,0x00,0xd4,0x02,0x00,0x00, -0xc6,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xd8,0x02,0x00,0x00,0x84,0x00,0x00,0x00,0x69,0x00,0x00,0x00, -0x41,0x00,0x08,0x00,0xf4,0x00,0x00,0x00,0xda,0x02,0x00,0x00, -0xbe,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xc1,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xd8,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb4,0x00,0x00,0x00,0xdb,0x02,0x00,0x00,0xda,0x02,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xdc,0x02,0x00,0x00, -0xdb,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0xdd,0x02,0x00,0x00,0xdc,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0xde,0x02,0x00,0x00,0xdd,0x02,0x00,0x00, -0xf9,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xe1,0x02,0x00,0x00,0x8a,0x00,0x00,0x00,0x69,0x00,0x00,0x00, -0x41,0x00,0x08,0x00,0xf4,0x00,0x00,0x00,0xe2,0x02,0x00,0x00, -0xbe,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xc1,0x00,0x00,0x00, -0xfe,0x00,0x00,0x00,0xe1,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb4,0x00,0x00,0x00,0xe3,0x02,0x00,0x00,0xe2,0x02,0x00,0x00, -0xc2,0x00,0x05,0x00,0xb4,0x00,0x00,0x00,0xe4,0x02,0x00,0x00, -0xe3,0x02,0x00,0x00,0x59,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xe5,0x02,0x00,0x00,0xe4,0x02,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xe6,0x02,0x00,0x00, -0xe5,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0xe7,0x02,0x00,0x00,0xe6,0x02,0x00,0x00,0xc2,0x00,0x00,0x00, -0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xe8,0x02,0x00,0x00, -0xe7,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0xc5,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0xe9,0x02,0x00,0x00,0xde,0x02,0x00,0x00, -0xe8,0x02,0x00,0x00,0x72,0x00,0x04,0x00,0xb7,0x00,0x00,0x00, -0xea,0x02,0x00,0x00,0xe9,0x02,0x00,0x00,0x72,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0xeb,0x02,0x00,0x00,0xea,0x02,0x00,0x00, -0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xec,0x02,0x00,0x00, -0xeb,0x02,0x00,0x00,0x0d,0x01,0x00,0x00,0x6f,0x00,0x04,0x00, -0x96,0x00,0x00,0x00,0xed,0x02,0x00,0x00,0xec,0x02,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xf2,0x02,0x00,0x00, -0xd7,0x00,0x00,0x00,0x0f,0x04,0x00,0x00,0x41,0x00,0x06,0x00, -0xdc,0x00,0x00,0x00,0xf3,0x02,0x00,0x00,0xd4,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xf2,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, -0x96,0x00,0x00,0x00,0xf4,0x02,0x00,0x00,0xf3,0x02,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb7,0x00,0x00,0x00,0xf8,0x02,0x00,0x00, -0x1f,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x96,0x00,0x00,0x00, -0xf9,0x02,0x00,0x00,0xf8,0x02,0x00,0x00,0x85,0x00,0x05,0x00, -0x96,0x00,0x00,0x00,0xfa,0x02,0x00,0x00,0xf4,0x02,0x00,0x00, -0xf9,0x02,0x00,0x00,0x85,0x00,0x05,0x00,0x96,0x00,0x00,0x00, -0xfb,0x02,0x00,0x00,0xfa,0x02,0x00,0x00,0xc6,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xff,0x02,0x00,0x00, -0x84,0x00,0x00,0x00,0x0f,0x04,0x00,0x00,0x41,0x00,0x08,0x00, -0xf4,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0xbe,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xc1,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0xff,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00, -0x01,0x03,0x00,0x00,0x00,0x03,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x02,0x03,0x00,0x00,0x01,0x03,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x03,0x03,0x00,0x00, -0x02,0x03,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x04,0x03,0x00,0x00,0x03,0x03,0x00,0x00,0xf9,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00,0x09,0x03,0x00,0x00, -0xe2,0x02,0x00,0x00,0xc2,0x00,0x05,0x00,0xb4,0x00,0x00,0x00, -0x0a,0x03,0x00,0x00,0x09,0x03,0x00,0x00,0xe2,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x0b,0x03,0x00,0x00, -0x0a,0x03,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x0c,0x03,0x00,0x00,0x0b,0x03,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x0d,0x03,0x00,0x00,0x0c,0x03,0x00,0x00, -0xc2,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x0e,0x03,0x00,0x00,0x0d,0x03,0x00,0x00,0x3b,0x00,0x00,0x00, -0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x0f,0x03,0x00,0x00, -0x04,0x03,0x00,0x00,0x0e,0x03,0x00,0x00,0x72,0x00,0x04,0x00, -0xb7,0x00,0x00,0x00,0x10,0x03,0x00,0x00,0x0f,0x03,0x00,0x00, -0x72,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x11,0x03,0x00,0x00, -0x10,0x03,0x00,0x00,0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x12,0x03,0x00,0x00,0x11,0x03,0x00,0x00,0x0d,0x01,0x00,0x00, -0x6f,0x00,0x04,0x00,0x96,0x00,0x00,0x00,0x13,0x03,0x00,0x00, -0x12,0x03,0x00,0x00,0x85,0x00,0x05,0x00,0x96,0x00,0x00,0x00, -0x14,0x03,0x00,0x00,0xfb,0x02,0x00,0x00,0x13,0x03,0x00,0x00, -0x0c,0x00,0x08,0x00,0x96,0x00,0x00,0x00,0x15,0x03,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xd5,0x02,0x00,0x00, -0xed,0x02,0x00,0x00,0x14,0x03,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x19,0x03,0x00,0x00,0xd7,0x00,0x00,0x00, -0x10,0x04,0x00,0x00,0x41,0x00,0x06,0x00,0xdc,0x00,0x00,0x00, -0x1a,0x03,0x00,0x00,0xd4,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0x19,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x96,0x00,0x00,0x00, -0x1b,0x03,0x00,0x00,0x1a,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb7,0x00,0x00,0x00,0x1f,0x03,0x00,0x00,0x55,0x01,0x00,0x00, -0x6f,0x00,0x04,0x00,0x96,0x00,0x00,0x00,0x20,0x03,0x00,0x00, -0x1f,0x03,0x00,0x00,0x85,0x00,0x05,0x00,0x96,0x00,0x00,0x00, -0x21,0x03,0x00,0x00,0x1b,0x03,0x00,0x00,0x20,0x03,0x00,0x00, -0x85,0x00,0x05,0x00,0x96,0x00,0x00,0x00,0x22,0x03,0x00,0x00, -0x21,0x03,0x00,0x00,0xc6,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb4,0x00,0x00,0x00,0x28,0x03,0x00,0x00,0xda,0x02,0x00,0x00, -0xc2,0x00,0x05,0x00,0xb4,0x00,0x00,0x00,0x29,0x03,0x00,0x00, -0x28,0x03,0x00,0x00,0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x2a,0x03,0x00,0x00,0x29,0x03,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x2b,0x03,0x00,0x00, -0x2a,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00, -0x30,0x03,0x00,0x00,0xe2,0x02,0x00,0x00,0xc2,0x00,0x05,0x00, -0xb4,0x00,0x00,0x00,0x31,0x03,0x00,0x00,0x30,0x03,0x00,0x00, +0x7d,0x01,0x00,0x00,0x6e,0x01,0x00,0x00,0x7c,0x01,0x00,0x00, +0x72,0x00,0x04,0x00,0xbe,0x00,0x00,0x00,0x7e,0x01,0x00,0x00, +0x7d,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x7f,0x01,0x00,0x00,0x7e,0x01,0x00,0x00,0x82,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x80,0x01,0x00,0x00,0x7f,0x01,0x00,0x00, +0x14,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, +0x81,0x01,0x00,0x00,0x80,0x01,0x00,0x00,0x0c,0x00,0x08,0x00, +0x9d,0x00,0x00,0x00,0x83,0x01,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x61,0x01,0x00,0x00,0x81,0x01,0x00,0x00, +0x4d,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x8b,0x01,0x00,0x00,0xde,0x00,0x00,0x00,0x8a,0x01,0x00,0x00, +0x41,0x00,0x06,0x00,0xe3,0x00,0x00,0x00,0x8c,0x01,0x00,0x00, +0xdb,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x8b,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0x8d,0x01,0x00,0x00, +0x8c,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x93,0x01,0x00,0x00,0x96,0x00,0x00,0x00,0x92,0x01,0x00,0x00, +0x41,0x00,0x08,0x00,0xec,0x00,0x00,0x00,0x94,0x01,0x00,0x00, +0xc5,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xc8,0x00,0x00,0x00, +0xe9,0x00,0x00,0x00,0x93,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0xbe,0x00,0x00,0x00,0x95,0x01,0x00,0x00,0x94,0x01,0x00,0x00, +0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0x96,0x01,0x00,0x00, +0x95,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x9d,0x00,0x00,0x00, +0x97,0x01,0x00,0x00,0x8d,0x01,0x00,0x00,0x96,0x01,0x00,0x00, +0x85,0x00,0x05,0x00,0x9d,0x00,0x00,0x00,0x99,0x01,0x00,0x00, +0x97,0x01,0x00,0x00,0xcd,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0xbb,0x00,0x00,0x00,0xa3,0x01,0x00,0x00,0x34,0x01,0x00,0x00, +0xc2,0x00,0x05,0x00,0xbb,0x00,0x00,0x00,0xa4,0x01,0x00,0x00, +0xa3,0x01,0x00,0x00,0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xa5,0x01,0x00,0x00,0xa4,0x01,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xa6,0x01,0x00,0x00, +0xa5,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00, +0xaf,0x01,0x00,0x00,0x0a,0x01,0x00,0x00,0xc2,0x00,0x05,0x00, +0xbb,0x00,0x00,0x00,0xb0,0x01,0x00,0x00,0xaf,0x01,0x00,0x00, +0x45,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xb1,0x01,0x00,0x00,0xb0,0x01,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0xb2,0x01,0x00,0x00,0xb1,0x01,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xb3,0x01,0x00,0x00, +0xb2,0x01,0x00,0x00,0xc9,0x00,0x00,0x00,0xc4,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0xb4,0x01,0x00,0x00,0xb3,0x01,0x00,0x00, +0x3b,0x00,0x00,0x00,0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0xb5,0x01,0x00,0x00,0xa6,0x01,0x00,0x00,0xb4,0x01,0x00,0x00, +0x72,0x00,0x04,0x00,0xbe,0x00,0x00,0x00,0xb6,0x01,0x00,0x00, +0xb5,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0xb7,0x01,0x00,0x00,0xb6,0x01,0x00,0x00,0x82,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0xb8,0x01,0x00,0x00,0xb7,0x01,0x00,0x00, +0x14,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, +0xb9,0x01,0x00,0x00,0xb8,0x01,0x00,0x00,0x0c,0x00,0x08,0x00, +0x9d,0x00,0x00,0x00,0xbb,0x01,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x99,0x01,0x00,0x00,0xb9,0x01,0x00,0x00, +0x83,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x2e,0x02,0x00,0x00,0xde,0x00,0x00,0x00,0x12,0x00,0x00,0x00, +0x41,0x00,0x06,0x00,0xe3,0x00,0x00,0x00,0x30,0x02,0x00,0x00, +0xdb,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x2e,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0x31,0x02,0x00,0x00, +0x30,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xbe,0x00,0x00,0x00, +0x35,0x02,0x00,0x00,0xed,0x00,0x00,0x00,0x6f,0x00,0x04,0x00, +0x9d,0x00,0x00,0x00,0x36,0x02,0x00,0x00,0x35,0x02,0x00,0x00, +0x85,0x00,0x05,0x00,0x9d,0x00,0x00,0x00,0x37,0x02,0x00,0x00, +0x31,0x02,0x00,0x00,0x36,0x02,0x00,0x00,0x85,0x00,0x05,0x00, +0x9d,0x00,0x00,0x00,0x38,0x02,0x00,0x00,0x37,0x02,0x00,0x00, +0xcd,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x3b,0x02,0x00,0x00,0x8b,0x00,0x00,0x00,0x12,0x00,0x00,0x00, +0x41,0x00,0x08,0x00,0xfb,0x00,0x00,0x00,0x3d,0x02,0x00,0x00, +0xc5,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xc8,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0x3b,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0xbb,0x00,0x00,0x00,0x3e,0x02,0x00,0x00,0x3d,0x02,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x3f,0x02,0x00,0x00, +0x3e,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x40,0x02,0x00,0x00,0x3f,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x41,0x02,0x00,0x00,0x40,0x02,0x00,0x00, +0x00,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x44,0x02,0x00,0x00,0x91,0x00,0x00,0x00,0x12,0x00,0x00,0x00, +0x41,0x00,0x08,0x00,0xfb,0x00,0x00,0x00,0x45,0x02,0x00,0x00, +0xc5,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xc8,0x00,0x00,0x00, +0x05,0x01,0x00,0x00,0x44,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0xbb,0x00,0x00,0x00,0x46,0x02,0x00,0x00,0x45,0x02,0x00,0x00, +0xc2,0x00,0x05,0x00,0xbb,0x00,0x00,0x00,0x47,0x02,0x00,0x00, +0x46,0x02,0x00,0x00,0x61,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x48,0x02,0x00,0x00,0x47,0x02,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x49,0x02,0x00,0x00, +0x48,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x4a,0x02,0x00,0x00,0x49,0x02,0x00,0x00,0xc9,0x00,0x00,0x00, +0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x4b,0x02,0x00,0x00, +0x4a,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0xc5,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x4c,0x02,0x00,0x00,0x41,0x02,0x00,0x00, +0x4b,0x02,0x00,0x00,0x72,0x00,0x04,0x00,0xbe,0x00,0x00,0x00, +0x4d,0x02,0x00,0x00,0x4c,0x02,0x00,0x00,0x72,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x4e,0x02,0x00,0x00,0x4d,0x02,0x00,0x00, +0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x4f,0x02,0x00,0x00, +0x4e,0x02,0x00,0x00,0x14,0x01,0x00,0x00,0x6f,0x00,0x04,0x00, +0x9d,0x00,0x00,0x00,0x50,0x02,0x00,0x00,0x4f,0x02,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x55,0x02,0x00,0x00, +0xde,0x00,0x00,0x00,0x13,0x04,0x00,0x00,0x41,0x00,0x06,0x00, +0xe3,0x00,0x00,0x00,0x56,0x02,0x00,0x00,0xdb,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0x55,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0x9d,0x00,0x00,0x00,0x57,0x02,0x00,0x00,0x56,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0xbe,0x00,0x00,0x00,0x5b,0x02,0x00,0x00, +0x26,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, +0x5c,0x02,0x00,0x00,0x5b,0x02,0x00,0x00,0x85,0x00,0x05,0x00, +0x9d,0x00,0x00,0x00,0x5d,0x02,0x00,0x00,0x57,0x02,0x00,0x00, +0x5c,0x02,0x00,0x00,0x85,0x00,0x05,0x00,0x9d,0x00,0x00,0x00, +0x5e,0x02,0x00,0x00,0x5d,0x02,0x00,0x00,0xcd,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x62,0x02,0x00,0x00, +0x8b,0x00,0x00,0x00,0x13,0x04,0x00,0x00,0x41,0x00,0x08,0x00, +0xfb,0x00,0x00,0x00,0x63,0x02,0x00,0x00,0xc5,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0x62,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00, +0x64,0x02,0x00,0x00,0x63,0x02,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x65,0x02,0x00,0x00,0x64,0x02,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x66,0x02,0x00,0x00, +0x65,0x02,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x67,0x02,0x00,0x00,0x66,0x02,0x00,0x00,0x00,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0x6c,0x02,0x00,0x00, +0x45,0x02,0x00,0x00,0xc2,0x00,0x05,0x00,0xbb,0x00,0x00,0x00, +0x6d,0x02,0x00,0x00,0x6c,0x02,0x00,0x00,0xe9,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x6e,0x02,0x00,0x00, +0x6d,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x6f,0x02,0x00,0x00,0x6e,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x70,0x02,0x00,0x00,0x6f,0x02,0x00,0x00, +0xc9,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x71,0x02,0x00,0x00,0x70,0x02,0x00,0x00,0x3b,0x00,0x00,0x00, +0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x72,0x02,0x00,0x00, +0x67,0x02,0x00,0x00,0x71,0x02,0x00,0x00,0x72,0x00,0x04,0x00, +0xbe,0x00,0x00,0x00,0x73,0x02,0x00,0x00,0x72,0x02,0x00,0x00, +0x72,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x74,0x02,0x00,0x00, +0x73,0x02,0x00,0x00,0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x75,0x02,0x00,0x00,0x74,0x02,0x00,0x00,0x14,0x01,0x00,0x00, +0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0x76,0x02,0x00,0x00, +0x75,0x02,0x00,0x00,0x85,0x00,0x05,0x00,0x9d,0x00,0x00,0x00, +0x77,0x02,0x00,0x00,0x5e,0x02,0x00,0x00,0x76,0x02,0x00,0x00, +0x0c,0x00,0x08,0x00,0x9d,0x00,0x00,0x00,0x78,0x02,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x38,0x02,0x00,0x00, +0x50,0x02,0x00,0x00,0x77,0x02,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x7c,0x02,0x00,0x00,0xde,0x00,0x00,0x00, +0x14,0x04,0x00,0x00,0x41,0x00,0x06,0x00,0xe3,0x00,0x00,0x00, +0x7d,0x02,0x00,0x00,0xdb,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0x7c,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, +0x7e,0x02,0x00,0x00,0x7d,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0xbe,0x00,0x00,0x00,0x82,0x02,0x00,0x00,0x5c,0x01,0x00,0x00, +0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0x83,0x02,0x00,0x00, +0x82,0x02,0x00,0x00,0x85,0x00,0x05,0x00,0x9d,0x00,0x00,0x00, +0x84,0x02,0x00,0x00,0x7e,0x02,0x00,0x00,0x83,0x02,0x00,0x00, +0x85,0x00,0x05,0x00,0x9d,0x00,0x00,0x00,0x85,0x02,0x00,0x00, +0x84,0x02,0x00,0x00,0xcd,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0xbb,0x00,0x00,0x00,0x8b,0x02,0x00,0x00,0x3d,0x02,0x00,0x00, +0xc2,0x00,0x05,0x00,0xbb,0x00,0x00,0x00,0x8c,0x02,0x00,0x00, +0x8b,0x02,0x00,0x00,0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x8d,0x02,0x00,0x00,0x8c,0x02,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x8e,0x02,0x00,0x00, +0x8d,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00, +0x93,0x02,0x00,0x00,0x45,0x02,0x00,0x00,0xc2,0x00,0x05,0x00, +0xbb,0x00,0x00,0x00,0x94,0x02,0x00,0x00,0x93,0x02,0x00,0x00, 0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x32,0x03,0x00,0x00,0x31,0x03,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x33,0x03,0x00,0x00,0x32,0x03,0x00,0x00, -0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x34,0x03,0x00,0x00, -0x33,0x03,0x00,0x00,0xc2,0x00,0x00,0x00,0xc4,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x35,0x03,0x00,0x00,0x34,0x03,0x00,0x00, +0x95,0x02,0x00,0x00,0x94,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x96,0x02,0x00,0x00,0x95,0x02,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x97,0x02,0x00,0x00, +0x96,0x02,0x00,0x00,0xc9,0x00,0x00,0x00,0xc4,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x98,0x02,0x00,0x00,0x97,0x02,0x00,0x00, 0x3b,0x00,0x00,0x00,0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x36,0x03,0x00,0x00,0x2b,0x03,0x00,0x00,0x35,0x03,0x00,0x00, -0x72,0x00,0x04,0x00,0xb7,0x00,0x00,0x00,0x37,0x03,0x00,0x00, -0x36,0x03,0x00,0x00,0x72,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x38,0x03,0x00,0x00,0x37,0x03,0x00,0x00,0x82,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x39,0x03,0x00,0x00,0x38,0x03,0x00,0x00, -0x0d,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x96,0x00,0x00,0x00, -0x3a,0x03,0x00,0x00,0x39,0x03,0x00,0x00,0x0c,0x00,0x08,0x00, -0x96,0x00,0x00,0x00,0x3c,0x03,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0x22,0x03,0x00,0x00,0x3a,0x03,0x00,0x00, -0x15,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x40,0x03,0x00,0x00,0xd7,0x00,0x00,0x00,0x11,0x04,0x00,0x00, -0x41,0x00,0x06,0x00,0xdc,0x00,0x00,0x00,0x41,0x03,0x00,0x00, -0xd4,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x40,0x03,0x00,0x00, -0x3d,0x00,0x04,0x00,0x96,0x00,0x00,0x00,0x42,0x03,0x00,0x00, -0x41,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0xb7,0x00,0x00,0x00, -0x46,0x03,0x00,0x00,0x8d,0x01,0x00,0x00,0x6f,0x00,0x04,0x00, -0x96,0x00,0x00,0x00,0x47,0x03,0x00,0x00,0x46,0x03,0x00,0x00, -0x85,0x00,0x05,0x00,0x96,0x00,0x00,0x00,0x48,0x03,0x00,0x00, -0x42,0x03,0x00,0x00,0x47,0x03,0x00,0x00,0x85,0x00,0x05,0x00, -0x96,0x00,0x00,0x00,0x49,0x03,0x00,0x00,0x48,0x03,0x00,0x00, -0xc6,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00, -0x4f,0x03,0x00,0x00,0x00,0x03,0x00,0x00,0xc2,0x00,0x05,0x00, -0xb4,0x00,0x00,0x00,0x50,0x03,0x00,0x00,0x4f,0x03,0x00,0x00, +0x99,0x02,0x00,0x00,0x8e,0x02,0x00,0x00,0x98,0x02,0x00,0x00, +0x72,0x00,0x04,0x00,0xbe,0x00,0x00,0x00,0x9a,0x02,0x00,0x00, +0x99,0x02,0x00,0x00,0x72,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x9b,0x02,0x00,0x00,0x9a,0x02,0x00,0x00,0x82,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x9c,0x02,0x00,0x00,0x9b,0x02,0x00,0x00, +0x14,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, +0x9d,0x02,0x00,0x00,0x9c,0x02,0x00,0x00,0x0c,0x00,0x08,0x00, +0x9d,0x00,0x00,0x00,0x9f,0x02,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x85,0x02,0x00,0x00,0x9d,0x02,0x00,0x00, +0x78,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xa3,0x02,0x00,0x00,0xde,0x00,0x00,0x00,0x15,0x04,0x00,0x00, +0x41,0x00,0x06,0x00,0xe3,0x00,0x00,0x00,0xa4,0x02,0x00,0x00, +0xdb,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xa3,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0xa5,0x02,0x00,0x00, +0xa4,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xbe,0x00,0x00,0x00, +0xa9,0x02,0x00,0x00,0x94,0x01,0x00,0x00,0x6f,0x00,0x04,0x00, +0x9d,0x00,0x00,0x00,0xaa,0x02,0x00,0x00,0xa9,0x02,0x00,0x00, +0x85,0x00,0x05,0x00,0x9d,0x00,0x00,0x00,0xab,0x02,0x00,0x00, +0xa5,0x02,0x00,0x00,0xaa,0x02,0x00,0x00,0x85,0x00,0x05,0x00, +0x9d,0x00,0x00,0x00,0xac,0x02,0x00,0x00,0xab,0x02,0x00,0x00, +0xcd,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00, +0xb2,0x02,0x00,0x00,0x63,0x02,0x00,0x00,0xc2,0x00,0x05,0x00, +0xbb,0x00,0x00,0x00,0xb3,0x02,0x00,0x00,0xb2,0x02,0x00,0x00, 0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x51,0x03,0x00,0x00,0x50,0x03,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x52,0x03,0x00,0x00,0x51,0x03,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00,0x57,0x03,0x00,0x00, -0xe2,0x02,0x00,0x00,0xc2,0x00,0x05,0x00,0xb4,0x00,0x00,0x00, -0x58,0x03,0x00,0x00,0x57,0x03,0x00,0x00,0x45,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x59,0x03,0x00,0x00, -0x58,0x03,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x5a,0x03,0x00,0x00,0x59,0x03,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x5b,0x03,0x00,0x00,0x5a,0x03,0x00,0x00, -0xc2,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x5c,0x03,0x00,0x00,0x5b,0x03,0x00,0x00,0x3b,0x00,0x00,0x00, -0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x5d,0x03,0x00,0x00, -0x52,0x03,0x00,0x00,0x5c,0x03,0x00,0x00,0x72,0x00,0x04,0x00, -0xb7,0x00,0x00,0x00,0x5e,0x03,0x00,0x00,0x5d,0x03,0x00,0x00, -0x72,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x5f,0x03,0x00,0x00, -0x5e,0x03,0x00,0x00,0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x60,0x03,0x00,0x00,0x5f,0x03,0x00,0x00,0x0d,0x01,0x00,0x00, -0x6f,0x00,0x04,0x00,0x96,0x00,0x00,0x00,0x61,0x03,0x00,0x00, -0x60,0x03,0x00,0x00,0x0c,0x00,0x08,0x00,0x96,0x00,0x00,0x00, -0x63,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x49,0x03,0x00,0x00,0x61,0x03,0x00,0x00,0x3c,0x03,0x00,0x00, -0x81,0x00,0x05,0x00,0x96,0x00,0x00,0x00,0x64,0x03,0x00,0x00, -0xc0,0x02,0x00,0x00,0x63,0x03,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x6f,0x03,0x00,0x00,0xd7,0x00,0x00,0x00, -0x12,0x04,0x00,0x00,0x41,0x00,0x06,0x00,0xdc,0x00,0x00,0x00, -0x71,0x03,0x00,0x00,0xd4,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0x6f,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x96,0x00,0x00,0x00, -0x72,0x03,0x00,0x00,0x71,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb7,0x00,0x00,0x00,0x76,0x03,0x00,0x00,0xe6,0x00,0x00,0x00, -0x6f,0x00,0x04,0x00,0x96,0x00,0x00,0x00,0x77,0x03,0x00,0x00, -0x76,0x03,0x00,0x00,0x85,0x00,0x05,0x00,0x96,0x00,0x00,0x00, -0x78,0x03,0x00,0x00,0x72,0x03,0x00,0x00,0x77,0x03,0x00,0x00, -0x85,0x00,0x05,0x00,0x96,0x00,0x00,0x00,0x79,0x03,0x00,0x00, -0x78,0x03,0x00,0x00,0xc6,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x7c,0x03,0x00,0x00,0x84,0x00,0x00,0x00, -0x12,0x04,0x00,0x00,0x41,0x00,0x08,0x00,0xf4,0x00,0x00,0x00, -0x7e,0x03,0x00,0x00,0xbe,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0xc1,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x7c,0x03,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00,0x7f,0x03,0x00,0x00, -0x7e,0x03,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x80,0x03,0x00,0x00,0x7f,0x03,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0x81,0x03,0x00,0x00,0x80,0x03,0x00,0x00, -0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x82,0x03,0x00,0x00, -0x81,0x03,0x00,0x00,0xf9,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x85,0x03,0x00,0x00,0x8a,0x00,0x00,0x00, -0x12,0x04,0x00,0x00,0x41,0x00,0x08,0x00,0xf4,0x00,0x00,0x00, -0x86,0x03,0x00,0x00,0xbe,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0xc1,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0x85,0x03,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00,0x87,0x03,0x00,0x00, -0x86,0x03,0x00,0x00,0xc2,0x00,0x05,0x00,0xb4,0x00,0x00,0x00, -0x88,0x03,0x00,0x00,0x87,0x03,0x00,0x00,0x59,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x89,0x03,0x00,0x00, -0x88,0x03,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x8a,0x03,0x00,0x00,0x89,0x03,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x8b,0x03,0x00,0x00,0x8a,0x03,0x00,0x00, -0xc2,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x8c,0x03,0x00,0x00,0x8b,0x03,0x00,0x00,0x3b,0x00,0x00,0x00, -0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x8d,0x03,0x00,0x00, -0x82,0x03,0x00,0x00,0x8c,0x03,0x00,0x00,0x72,0x00,0x04,0x00, -0xb7,0x00,0x00,0x00,0x8e,0x03,0x00,0x00,0x8d,0x03,0x00,0x00, -0x72,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x8f,0x03,0x00,0x00, -0x8e,0x03,0x00,0x00,0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x90,0x03,0x00,0x00,0x8f,0x03,0x00,0x00,0x0d,0x01,0x00,0x00, -0x6f,0x00,0x04,0x00,0x96,0x00,0x00,0x00,0x91,0x03,0x00,0x00, -0x90,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x96,0x03,0x00,0x00,0xd7,0x00,0x00,0x00,0x13,0x04,0x00,0x00, -0x41,0x00,0x06,0x00,0xdc,0x00,0x00,0x00,0x97,0x03,0x00,0x00, -0xd4,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x96,0x03,0x00,0x00, -0x3d,0x00,0x04,0x00,0x96,0x00,0x00,0x00,0x98,0x03,0x00,0x00, -0x97,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0xb7,0x00,0x00,0x00, -0x9c,0x03,0x00,0x00,0x1f,0x01,0x00,0x00,0x6f,0x00,0x04,0x00, -0x96,0x00,0x00,0x00,0x9d,0x03,0x00,0x00,0x9c,0x03,0x00,0x00, -0x85,0x00,0x05,0x00,0x96,0x00,0x00,0x00,0x9e,0x03,0x00,0x00, -0x98,0x03,0x00,0x00,0x9d,0x03,0x00,0x00,0x85,0x00,0x05,0x00, -0x96,0x00,0x00,0x00,0x9f,0x03,0x00,0x00,0x9e,0x03,0x00,0x00, -0xc6,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xa3,0x03,0x00,0x00,0x84,0x00,0x00,0x00,0x13,0x04,0x00,0x00, -0x41,0x00,0x08,0x00,0xf4,0x00,0x00,0x00,0xa4,0x03,0x00,0x00, -0xbe,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xc1,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xa3,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb4,0x00,0x00,0x00,0xa5,0x03,0x00,0x00,0xa4,0x03,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa6,0x03,0x00,0x00, -0xa5,0x03,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0xa7,0x03,0x00,0x00,0xa6,0x03,0x00,0x00,0xc7,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0xa8,0x03,0x00,0x00,0xa7,0x03,0x00,0x00, -0xf9,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00, -0xad,0x03,0x00,0x00,0x86,0x03,0x00,0x00,0xc2,0x00,0x05,0x00, -0xb4,0x00,0x00,0x00,0xae,0x03,0x00,0x00,0xad,0x03,0x00,0x00, -0xe2,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xaf,0x03,0x00,0x00,0xae,0x03,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0xb0,0x03,0x00,0x00,0xaf,0x03,0x00,0x00, -0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xb1,0x03,0x00,0x00, -0xb0,0x03,0x00,0x00,0xc2,0x00,0x00,0x00,0xc4,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0xb2,0x03,0x00,0x00,0xb1,0x03,0x00,0x00, +0xb4,0x02,0x00,0x00,0xb3,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0xb5,0x02,0x00,0x00,0xb4,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0xba,0x02,0x00,0x00, +0x45,0x02,0x00,0x00,0xc2,0x00,0x05,0x00,0xbb,0x00,0x00,0x00, +0xbb,0x02,0x00,0x00,0xba,0x02,0x00,0x00,0x45,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xbc,0x02,0x00,0x00, +0xbb,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0xbd,0x02,0x00,0x00,0xbc,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0xbe,0x02,0x00,0x00,0xbd,0x02,0x00,0x00, +0xc9,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0xbf,0x02,0x00,0x00,0xbe,0x02,0x00,0x00,0x3b,0x00,0x00,0x00, +0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xc0,0x02,0x00,0x00, +0xb5,0x02,0x00,0x00,0xbf,0x02,0x00,0x00,0x72,0x00,0x04,0x00, +0xbe,0x00,0x00,0x00,0xc1,0x02,0x00,0x00,0xc0,0x02,0x00,0x00, +0x72,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xc2,0x02,0x00,0x00, +0xc1,0x02,0x00,0x00,0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0xc3,0x02,0x00,0x00,0xc2,0x02,0x00,0x00,0x14,0x01,0x00,0x00, +0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0xc4,0x02,0x00,0x00, +0xc3,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,0x9d,0x00,0x00,0x00, +0xc6,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0xac,0x02,0x00,0x00,0xc4,0x02,0x00,0x00,0x9f,0x02,0x00,0x00, +0x81,0x00,0x05,0x00,0x9d,0x00,0x00,0x00,0xc7,0x02,0x00,0x00, +0xbb,0x01,0x00,0x00,0xc6,0x02,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xd2,0x02,0x00,0x00,0xde,0x00,0x00,0x00, +0x51,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xe3,0x00,0x00,0x00, +0xd4,0x02,0x00,0x00,0xdb,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0xd2,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, +0xd5,0x02,0x00,0x00,0xd4,0x02,0x00,0x00,0x3d,0x00,0x04,0x00, +0xbe,0x00,0x00,0x00,0xd9,0x02,0x00,0x00,0xed,0x00,0x00,0x00, +0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0xda,0x02,0x00,0x00, +0xd9,0x02,0x00,0x00,0x85,0x00,0x05,0x00,0x9d,0x00,0x00,0x00, +0xdb,0x02,0x00,0x00,0xd5,0x02,0x00,0x00,0xda,0x02,0x00,0x00, +0x85,0x00,0x05,0x00,0x9d,0x00,0x00,0x00,0xdc,0x02,0x00,0x00, +0xdb,0x02,0x00,0x00,0xcd,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xdf,0x02,0x00,0x00,0x8b,0x00,0x00,0x00, +0x51,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xfb,0x00,0x00,0x00, +0xe1,0x02,0x00,0x00,0xc5,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0xc8,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xdf,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0xe2,0x02,0x00,0x00, +0xe1,0x02,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xe3,0x02,0x00,0x00,0xe2,0x02,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0xe4,0x02,0x00,0x00,0xe3,0x02,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xe5,0x02,0x00,0x00, +0xe4,0x02,0x00,0x00,0x00,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xe8,0x02,0x00,0x00,0x91,0x00,0x00,0x00, +0x51,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0xfb,0x00,0x00,0x00, +0xe9,0x02,0x00,0x00,0xc5,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0xc8,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0xe8,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0xea,0x02,0x00,0x00, +0xe9,0x02,0x00,0x00,0xc2,0x00,0x05,0x00,0xbb,0x00,0x00,0x00, +0xeb,0x02,0x00,0x00,0xea,0x02,0x00,0x00,0x61,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xec,0x02,0x00,0x00, +0xeb,0x02,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0xed,0x02,0x00,0x00,0xec,0x02,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0xee,0x02,0x00,0x00,0xed,0x02,0x00,0x00, +0xc9,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0xef,0x02,0x00,0x00,0xee,0x02,0x00,0x00,0x3b,0x00,0x00,0x00, +0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xf0,0x02,0x00,0x00, +0xe5,0x02,0x00,0x00,0xef,0x02,0x00,0x00,0x72,0x00,0x04,0x00, +0xbe,0x00,0x00,0x00,0xf1,0x02,0x00,0x00,0xf0,0x02,0x00,0x00, +0x72,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xf2,0x02,0x00,0x00, +0xf1,0x02,0x00,0x00,0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0xf3,0x02,0x00,0x00,0xf2,0x02,0x00,0x00,0x14,0x01,0x00,0x00, +0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0xf4,0x02,0x00,0x00, +0xf3,0x02,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xf9,0x02,0x00,0x00,0xde,0x00,0x00,0x00,0x16,0x04,0x00,0x00, +0x41,0x00,0x06,0x00,0xe3,0x00,0x00,0x00,0xfa,0x02,0x00,0x00, +0xdb,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xf9,0x02,0x00,0x00, +0x3d,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0xfb,0x02,0x00,0x00, +0xfa,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0xbe,0x00,0x00,0x00, +0xff,0x02,0x00,0x00,0x26,0x01,0x00,0x00,0x6f,0x00,0x04,0x00, +0x9d,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0xff,0x02,0x00,0x00, +0x85,0x00,0x05,0x00,0x9d,0x00,0x00,0x00,0x01,0x03,0x00,0x00, +0xfb,0x02,0x00,0x00,0x00,0x03,0x00,0x00,0x85,0x00,0x05,0x00, +0x9d,0x00,0x00,0x00,0x02,0x03,0x00,0x00,0x01,0x03,0x00,0x00, +0xcd,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x06,0x03,0x00,0x00,0x8b,0x00,0x00,0x00,0x16,0x04,0x00,0x00, +0x41,0x00,0x08,0x00,0xfb,0x00,0x00,0x00,0x07,0x03,0x00,0x00, +0xc5,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xc8,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0x06,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, +0xbb,0x00,0x00,0x00,0x08,0x03,0x00,0x00,0x07,0x03,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x09,0x03,0x00,0x00, +0x08,0x03,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x0a,0x03,0x00,0x00,0x09,0x03,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x0b,0x03,0x00,0x00,0x0a,0x03,0x00,0x00, +0x00,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00, +0x10,0x03,0x00,0x00,0xe9,0x02,0x00,0x00,0xc2,0x00,0x05,0x00, +0xbb,0x00,0x00,0x00,0x11,0x03,0x00,0x00,0x10,0x03,0x00,0x00, +0xe9,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x12,0x03,0x00,0x00,0x11,0x03,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x13,0x03,0x00,0x00,0x12,0x03,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x14,0x03,0x00,0x00, +0x13,0x03,0x00,0x00,0xc9,0x00,0x00,0x00,0xc4,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x15,0x03,0x00,0x00,0x14,0x03,0x00,0x00, 0x3b,0x00,0x00,0x00,0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0xb3,0x03,0x00,0x00,0xa8,0x03,0x00,0x00,0xb2,0x03,0x00,0x00, -0x72,0x00,0x04,0x00,0xb7,0x00,0x00,0x00,0xb4,0x03,0x00,0x00, -0xb3,0x03,0x00,0x00,0x72,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0xb5,0x03,0x00,0x00,0xb4,0x03,0x00,0x00,0x82,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0xb6,0x03,0x00,0x00,0xb5,0x03,0x00,0x00, -0x0d,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x96,0x00,0x00,0x00, -0xb7,0x03,0x00,0x00,0xb6,0x03,0x00,0x00,0x85,0x00,0x05,0x00, -0x96,0x00,0x00,0x00,0xb8,0x03,0x00,0x00,0x9f,0x03,0x00,0x00, -0xb7,0x03,0x00,0x00,0x0c,0x00,0x08,0x00,0x96,0x00,0x00,0x00, -0xb9,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0x79,0x03,0x00,0x00,0x91,0x03,0x00,0x00,0xb8,0x03,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbd,0x03,0x00,0x00, -0xd7,0x00,0x00,0x00,0x14,0x04,0x00,0x00,0x41,0x00,0x06,0x00, -0xdc,0x00,0x00,0x00,0xbe,0x03,0x00,0x00,0xd4,0x00,0x00,0x00, -0x59,0x00,0x00,0x00,0xbd,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, -0x96,0x00,0x00,0x00,0xbf,0x03,0x00,0x00,0xbe,0x03,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb7,0x00,0x00,0x00,0xc3,0x03,0x00,0x00, -0x55,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x96,0x00,0x00,0x00, -0xc4,0x03,0x00,0x00,0xc3,0x03,0x00,0x00,0x85,0x00,0x05,0x00, -0x96,0x00,0x00,0x00,0xc5,0x03,0x00,0x00,0xbf,0x03,0x00,0x00, -0xc4,0x03,0x00,0x00,0x85,0x00,0x05,0x00,0x96,0x00,0x00,0x00, -0xc6,0x03,0x00,0x00,0xc5,0x03,0x00,0x00,0xc6,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00,0xcc,0x03,0x00,0x00, -0x7e,0x03,0x00,0x00,0xc2,0x00,0x05,0x00,0xb4,0x00,0x00,0x00, -0xcd,0x03,0x00,0x00,0xcc,0x03,0x00,0x00,0x3b,0x00,0x00,0x00, -0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xce,0x03,0x00,0x00, -0xcd,0x03,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0xcf,0x03,0x00,0x00,0xce,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb4,0x00,0x00,0x00,0xd4,0x03,0x00,0x00,0x86,0x03,0x00,0x00, -0xc2,0x00,0x05,0x00,0xb4,0x00,0x00,0x00,0xd5,0x03,0x00,0x00, -0xd4,0x03,0x00,0x00,0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xd6,0x03,0x00,0x00,0xd5,0x03,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xd7,0x03,0x00,0x00, -0xd6,0x03,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0xd8,0x03,0x00,0x00,0xd7,0x03,0x00,0x00,0xc2,0x00,0x00,0x00, -0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xd9,0x03,0x00,0x00, -0xd8,0x03,0x00,0x00,0x3b,0x00,0x00,0x00,0xc5,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0xda,0x03,0x00,0x00,0xcf,0x03,0x00,0x00, -0xd9,0x03,0x00,0x00,0x72,0x00,0x04,0x00,0xb7,0x00,0x00,0x00, -0xdb,0x03,0x00,0x00,0xda,0x03,0x00,0x00,0x72,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0xdc,0x03,0x00,0x00,0xdb,0x03,0x00,0x00, -0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xdd,0x03,0x00,0x00, -0xdc,0x03,0x00,0x00,0x0d,0x01,0x00,0x00,0x6f,0x00,0x04,0x00, -0x96,0x00,0x00,0x00,0xde,0x03,0x00,0x00,0xdd,0x03,0x00,0x00, -0x0c,0x00,0x08,0x00,0x96,0x00,0x00,0x00,0xe0,0x03,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xc6,0x03,0x00,0x00, -0xde,0x03,0x00,0x00,0xb9,0x03,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xe4,0x03,0x00,0x00,0xd7,0x00,0x00,0x00, -0x15,0x04,0x00,0x00,0x41,0x00,0x06,0x00,0xdc,0x00,0x00,0x00, -0xe5,0x03,0x00,0x00,0xd4,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0xe4,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x96,0x00,0x00,0x00, -0xe6,0x03,0x00,0x00,0xe5,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb7,0x00,0x00,0x00,0xea,0x03,0x00,0x00,0x8d,0x01,0x00,0x00, -0x6f,0x00,0x04,0x00,0x96,0x00,0x00,0x00,0xeb,0x03,0x00,0x00, -0xea,0x03,0x00,0x00,0x85,0x00,0x05,0x00,0x96,0x00,0x00,0x00, -0xec,0x03,0x00,0x00,0xe6,0x03,0x00,0x00,0xeb,0x03,0x00,0x00, -0x85,0x00,0x05,0x00,0x96,0x00,0x00,0x00,0xed,0x03,0x00,0x00, -0xec,0x03,0x00,0x00,0xc6,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0xb4,0x00,0x00,0x00,0xf3,0x03,0x00,0x00,0xa4,0x03,0x00,0x00, -0xc2,0x00,0x05,0x00,0xb4,0x00,0x00,0x00,0xf4,0x03,0x00,0x00, -0xf3,0x03,0x00,0x00,0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0xf5,0x03,0x00,0x00,0xf4,0x03,0x00,0x00, -0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xf6,0x03,0x00,0x00, -0xf5,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0xb4,0x00,0x00,0x00, -0xfb,0x03,0x00,0x00,0x86,0x03,0x00,0x00,0xc2,0x00,0x05,0x00, -0xb4,0x00,0x00,0x00,0xfc,0x03,0x00,0x00,0xfb,0x03,0x00,0x00, +0x16,0x03,0x00,0x00,0x0b,0x03,0x00,0x00,0x15,0x03,0x00,0x00, +0x72,0x00,0x04,0x00,0xbe,0x00,0x00,0x00,0x17,0x03,0x00,0x00, +0x16,0x03,0x00,0x00,0x72,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x18,0x03,0x00,0x00,0x17,0x03,0x00,0x00,0x82,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x19,0x03,0x00,0x00,0x18,0x03,0x00,0x00, +0x14,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, +0x1a,0x03,0x00,0x00,0x19,0x03,0x00,0x00,0x85,0x00,0x05,0x00, +0x9d,0x00,0x00,0x00,0x1b,0x03,0x00,0x00,0x02,0x03,0x00,0x00, +0x1a,0x03,0x00,0x00,0x0c,0x00,0x08,0x00,0x9d,0x00,0x00,0x00, +0x1c,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0xdc,0x02,0x00,0x00,0xf4,0x02,0x00,0x00,0x1b,0x03,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x20,0x03,0x00,0x00, +0xde,0x00,0x00,0x00,0x17,0x04,0x00,0x00,0x41,0x00,0x06,0x00, +0xe3,0x00,0x00,0x00,0x21,0x03,0x00,0x00,0xdb,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0x20,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, +0x9d,0x00,0x00,0x00,0x22,0x03,0x00,0x00,0x21,0x03,0x00,0x00, +0x3d,0x00,0x04,0x00,0xbe,0x00,0x00,0x00,0x26,0x03,0x00,0x00, +0x5c,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, +0x27,0x03,0x00,0x00,0x26,0x03,0x00,0x00,0x85,0x00,0x05,0x00, +0x9d,0x00,0x00,0x00,0x28,0x03,0x00,0x00,0x22,0x03,0x00,0x00, +0x27,0x03,0x00,0x00,0x85,0x00,0x05,0x00,0x9d,0x00,0x00,0x00, +0x29,0x03,0x00,0x00,0x28,0x03,0x00,0x00,0xcd,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0x2f,0x03,0x00,0x00, +0xe1,0x02,0x00,0x00,0xc2,0x00,0x05,0x00,0xbb,0x00,0x00,0x00, +0x30,0x03,0x00,0x00,0x2f,0x03,0x00,0x00,0x3b,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x31,0x03,0x00,0x00, +0x30,0x03,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x32,0x03,0x00,0x00,0x31,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, +0xbb,0x00,0x00,0x00,0x37,0x03,0x00,0x00,0xe9,0x02,0x00,0x00, +0xc2,0x00,0x05,0x00,0xbb,0x00,0x00,0x00,0x38,0x03,0x00,0x00, +0x37,0x03,0x00,0x00,0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x39,0x03,0x00,0x00,0x38,0x03,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x3a,0x03,0x00,0x00, +0x39,0x03,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x3b,0x03,0x00,0x00,0x3a,0x03,0x00,0x00,0xc9,0x00,0x00,0x00, +0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x3c,0x03,0x00,0x00, +0x3b,0x03,0x00,0x00,0x3b,0x00,0x00,0x00,0xc5,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x3d,0x03,0x00,0x00,0x32,0x03,0x00,0x00, +0x3c,0x03,0x00,0x00,0x72,0x00,0x04,0x00,0xbe,0x00,0x00,0x00, +0x3e,0x03,0x00,0x00,0x3d,0x03,0x00,0x00,0x72,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x3f,0x03,0x00,0x00,0x3e,0x03,0x00,0x00, +0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x40,0x03,0x00,0x00, +0x3f,0x03,0x00,0x00,0x14,0x01,0x00,0x00,0x6f,0x00,0x04,0x00, +0x9d,0x00,0x00,0x00,0x41,0x03,0x00,0x00,0x40,0x03,0x00,0x00, +0x0c,0x00,0x08,0x00,0x9d,0x00,0x00,0x00,0x43,0x03,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x29,0x03,0x00,0x00, +0x41,0x03,0x00,0x00,0x1c,0x03,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x47,0x03,0x00,0x00,0xde,0x00,0x00,0x00, +0x18,0x04,0x00,0x00,0x41,0x00,0x06,0x00,0xe3,0x00,0x00,0x00, +0x48,0x03,0x00,0x00,0xdb,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0x47,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, +0x49,0x03,0x00,0x00,0x48,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, +0xbe,0x00,0x00,0x00,0x4d,0x03,0x00,0x00,0x94,0x01,0x00,0x00, +0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0x4e,0x03,0x00,0x00, +0x4d,0x03,0x00,0x00,0x85,0x00,0x05,0x00,0x9d,0x00,0x00,0x00, +0x4f,0x03,0x00,0x00,0x49,0x03,0x00,0x00,0x4e,0x03,0x00,0x00, +0x85,0x00,0x05,0x00,0x9d,0x00,0x00,0x00,0x50,0x03,0x00,0x00, +0x4f,0x03,0x00,0x00,0xcd,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0xbb,0x00,0x00,0x00,0x56,0x03,0x00,0x00,0x07,0x03,0x00,0x00, +0xc2,0x00,0x05,0x00,0xbb,0x00,0x00,0x00,0x57,0x03,0x00,0x00, +0x56,0x03,0x00,0x00,0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x58,0x03,0x00,0x00,0x57,0x03,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x59,0x03,0x00,0x00, +0x58,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00, +0x5e,0x03,0x00,0x00,0xe9,0x02,0x00,0x00,0xc2,0x00,0x05,0x00, +0xbb,0x00,0x00,0x00,0x5f,0x03,0x00,0x00,0x5e,0x03,0x00,0x00, 0x45,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xfd,0x03,0x00,0x00,0xfc,0x03,0x00,0x00,0x7c,0x00,0x04,0x00, -0x1b,0x00,0x00,0x00,0xfe,0x03,0x00,0x00,0xfd,0x03,0x00,0x00, -0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xff,0x03,0x00,0x00, -0xfe,0x03,0x00,0x00,0xc2,0x00,0x00,0x00,0xc4,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0xff,0x03,0x00,0x00, +0x60,0x03,0x00,0x00,0x5f,0x03,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x61,0x03,0x00,0x00,0x60,0x03,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x62,0x03,0x00,0x00, +0x61,0x03,0x00,0x00,0xc9,0x00,0x00,0x00,0xc4,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x63,0x03,0x00,0x00,0x62,0x03,0x00,0x00, 0x3b,0x00,0x00,0x00,0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, -0x01,0x04,0x00,0x00,0xf6,0x03,0x00,0x00,0x00,0x04,0x00,0x00, -0x72,0x00,0x04,0x00,0xb7,0x00,0x00,0x00,0x02,0x04,0x00,0x00, -0x01,0x04,0x00,0x00,0x72,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, -0x03,0x04,0x00,0x00,0x02,0x04,0x00,0x00,0x82,0x00,0x05,0x00, -0x1b,0x00,0x00,0x00,0x04,0x04,0x00,0x00,0x03,0x04,0x00,0x00, -0x0d,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x96,0x00,0x00,0x00, -0x05,0x04,0x00,0x00,0x04,0x04,0x00,0x00,0x0c,0x00,0x08,0x00, -0x96,0x00,0x00,0x00,0x07,0x04,0x00,0x00,0x01,0x00,0x00,0x00, -0x32,0x00,0x00,0x00,0xed,0x03,0x00,0x00,0x05,0x04,0x00,0x00, -0xe0,0x03,0x00,0x00,0x81,0x00,0x05,0x00,0x96,0x00,0x00,0x00, -0x08,0x04,0x00,0x00,0x64,0x03,0x00,0x00,0x07,0x04,0x00,0x00, -0x3d,0x00,0x04,0x00,0x96,0x00,0x00,0x00,0xbf,0x01,0x00,0x00, -0xa1,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x96,0x00,0x00,0x00, -0xc0,0x01,0x00,0x00,0xbf,0x01,0x00,0x00,0x08,0x04,0x00,0x00, -0x3e,0x00,0x03,0x00,0xa1,0x00,0x00,0x00,0xc0,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xc3,0x01,0x00,0x00, -0x18,0x02,0x00,0x00,0x69,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, -0xa4,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xa6,0x00,0x00,0x00, -0xe0,0x00,0x04,0x00,0x69,0x00,0x00,0x00,0x69,0x00,0x00,0x00, -0xc4,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xc6,0x01,0x00,0x00, -0xf8,0x00,0x02,0x00,0xc6,0x01,0x00,0x00,0xf5,0x00,0x07,0x00, -0x06,0x00,0x00,0x00,0x19,0x02,0x00,0x00,0x9a,0x00,0x00,0x00, -0xa6,0x00,0x00,0x00,0xdd,0x01,0x00,0x00,0xc9,0x01,0x00,0x00, -0xac,0x00,0x05,0x00,0xab,0x00,0x00,0x00,0xcc,0x01,0x00,0x00, -0x19,0x02,0x00,0x00,0x4b,0x00,0x00,0x00,0xf6,0x00,0x04,0x00, -0xc8,0x01,0x00,0x00,0xc9,0x01,0x00,0x00,0x01,0x00,0x00,0x00, -0xfa,0x00,0x04,0x00,0xcc,0x01,0x00,0x00,0xc7,0x01,0x00,0x00, -0xc8,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xc7,0x01,0x00,0x00, -0xb0,0x00,0x05,0x00,0xab,0x00,0x00,0x00,0xcf,0x01,0x00,0x00, -0x6a,0x00,0x00,0x00,0x19,0x02,0x00,0x00,0xf7,0x00,0x03,0x00, -0xd1,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, -0xcf,0x01,0x00,0x00,0xd0,0x01,0x00,0x00,0xd1,0x01,0x00,0x00, -0xf8,0x00,0x02,0x00,0xd0,0x01,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xd5,0x01,0x00,0x00,0x6a,0x00,0x00,0x00, -0x19,0x02,0x00,0x00,0x41,0x00,0x05,0x00,0xa0,0x00,0x00,0x00, -0xd6,0x01,0x00,0x00,0x99,0x00,0x00,0x00,0xd5,0x01,0x00,0x00, -0x3d,0x00,0x04,0x00,0x96,0x00,0x00,0x00,0xd7,0x01,0x00,0x00, -0xd6,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0xa0,0x00,0x00,0x00, -0xd8,0x01,0x00,0x00,0x99,0x00,0x00,0x00,0x6a,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x96,0x00,0x00,0x00,0xd9,0x01,0x00,0x00, -0xd8,0x01,0x00,0x00,0x81,0x00,0x05,0x00,0x96,0x00,0x00,0x00, -0xda,0x01,0x00,0x00,0xd9,0x01,0x00,0x00,0xd7,0x01,0x00,0x00, -0x3e,0x00,0x03,0x00,0xd8,0x01,0x00,0x00,0xda,0x01,0x00,0x00, -0xf9,0x00,0x02,0x00,0xd1,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, -0xd1,0x01,0x00,0x00,0xe0,0x00,0x04,0x00,0x69,0x00,0x00,0x00, -0x69,0x00,0x00,0x00,0xc4,0x01,0x00,0x00,0xf9,0x00,0x02,0x00, -0xc9,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xc9,0x01,0x00,0x00, -0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdd,0x01,0x00,0x00, -0x19,0x02,0x00,0x00,0xfe,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, -0xc6,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xc8,0x01,0x00,0x00, -0xaa,0x00,0x05,0x00,0xab,0x00,0x00,0x00,0xdf,0x01,0x00,0x00, -0x6a,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0xf7,0x00,0x03,0x00, -0xe1,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, -0xdf,0x01,0x00,0x00,0xe0,0x01,0x00,0x00,0xe1,0x01,0x00,0x00, -0xf8,0x00,0x02,0x00,0xe0,0x01,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xe8,0x01,0x00,0x00,0x17,0x02,0x00,0x00, -0x4d,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0xa0,0x00,0x00,0x00, -0xe9,0x01,0x00,0x00,0x99,0x00,0x00,0x00,0x59,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x96,0x00,0x00,0x00,0xea,0x01,0x00,0x00, -0xe9,0x01,0x00,0x00,0x41,0x00,0x06,0x00,0xdc,0x00,0x00,0x00, -0xeb,0x01,0x00,0x00,0xe5,0x01,0x00,0x00,0x59,0x00,0x00,0x00, -0xe8,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xeb,0x01,0x00,0x00, -0xea,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xe1,0x01,0x00,0x00, -0xf8,0x00,0x02,0x00,0xe1,0x01,0x00,0x00,0xfd,0x00,0x01,0x00, -0x38,0x00,0x01,0x00, +0x64,0x03,0x00,0x00,0x59,0x03,0x00,0x00,0x63,0x03,0x00,0x00, +0x72,0x00,0x04,0x00,0xbe,0x00,0x00,0x00,0x65,0x03,0x00,0x00, +0x64,0x03,0x00,0x00,0x72,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x66,0x03,0x00,0x00,0x65,0x03,0x00,0x00,0x82,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x67,0x03,0x00,0x00,0x66,0x03,0x00,0x00, +0x14,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, +0x68,0x03,0x00,0x00,0x67,0x03,0x00,0x00,0x0c,0x00,0x08,0x00, +0x9d,0x00,0x00,0x00,0x6a,0x03,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x50,0x03,0x00,0x00,0x68,0x03,0x00,0x00, +0x43,0x03,0x00,0x00,0x81,0x00,0x05,0x00,0x9d,0x00,0x00,0x00, +0x6b,0x03,0x00,0x00,0xc7,0x02,0x00,0x00,0x6a,0x03,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x76,0x03,0x00,0x00, +0xde,0x00,0x00,0x00,0x19,0x04,0x00,0x00,0x41,0x00,0x06,0x00, +0xe3,0x00,0x00,0x00,0x78,0x03,0x00,0x00,0xdb,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0x76,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, +0x9d,0x00,0x00,0x00,0x79,0x03,0x00,0x00,0x78,0x03,0x00,0x00, +0x3d,0x00,0x04,0x00,0xbe,0x00,0x00,0x00,0x7d,0x03,0x00,0x00, +0xed,0x00,0x00,0x00,0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, +0x7e,0x03,0x00,0x00,0x7d,0x03,0x00,0x00,0x85,0x00,0x05,0x00, +0x9d,0x00,0x00,0x00,0x7f,0x03,0x00,0x00,0x79,0x03,0x00,0x00, +0x7e,0x03,0x00,0x00,0x85,0x00,0x05,0x00,0x9d,0x00,0x00,0x00, +0x80,0x03,0x00,0x00,0x7f,0x03,0x00,0x00,0xcd,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x83,0x03,0x00,0x00, +0x8b,0x00,0x00,0x00,0x19,0x04,0x00,0x00,0x41,0x00,0x08,0x00, +0xfb,0x00,0x00,0x00,0x85,0x03,0x00,0x00,0xc5,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0x83,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00, +0x86,0x03,0x00,0x00,0x85,0x03,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x87,0x03,0x00,0x00,0x86,0x03,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x88,0x03,0x00,0x00, +0x87,0x03,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x89,0x03,0x00,0x00,0x88,0x03,0x00,0x00,0x00,0x01,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x8c,0x03,0x00,0x00, +0x91,0x00,0x00,0x00,0x19,0x04,0x00,0x00,0x41,0x00,0x08,0x00, +0xfb,0x00,0x00,0x00,0x8d,0x03,0x00,0x00,0xc5,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x05,0x01,0x00,0x00, +0x8c,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00, +0x8e,0x03,0x00,0x00,0x8d,0x03,0x00,0x00,0xc2,0x00,0x05,0x00, +0xbb,0x00,0x00,0x00,0x8f,0x03,0x00,0x00,0x8e,0x03,0x00,0x00, +0x61,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x90,0x03,0x00,0x00,0x8f,0x03,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x91,0x03,0x00,0x00,0x90,0x03,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x92,0x03,0x00,0x00, +0x91,0x03,0x00,0x00,0xc9,0x00,0x00,0x00,0xc4,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x93,0x03,0x00,0x00,0x92,0x03,0x00,0x00, +0x3b,0x00,0x00,0x00,0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x94,0x03,0x00,0x00,0x89,0x03,0x00,0x00,0x93,0x03,0x00,0x00, +0x72,0x00,0x04,0x00,0xbe,0x00,0x00,0x00,0x95,0x03,0x00,0x00, +0x94,0x03,0x00,0x00,0x72,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x96,0x03,0x00,0x00,0x95,0x03,0x00,0x00,0x82,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x97,0x03,0x00,0x00,0x96,0x03,0x00,0x00, +0x14,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, +0x98,0x03,0x00,0x00,0x97,0x03,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x9d,0x03,0x00,0x00,0xde,0x00,0x00,0x00, +0x1a,0x04,0x00,0x00,0x41,0x00,0x06,0x00,0xe3,0x00,0x00,0x00, +0x9e,0x03,0x00,0x00,0xdb,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0x9d,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, +0x9f,0x03,0x00,0x00,0x9e,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, +0xbe,0x00,0x00,0x00,0xa3,0x03,0x00,0x00,0x26,0x01,0x00,0x00, +0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0xa4,0x03,0x00,0x00, +0xa3,0x03,0x00,0x00,0x85,0x00,0x05,0x00,0x9d,0x00,0x00,0x00, +0xa5,0x03,0x00,0x00,0x9f,0x03,0x00,0x00,0xa4,0x03,0x00,0x00, +0x85,0x00,0x05,0x00,0x9d,0x00,0x00,0x00,0xa6,0x03,0x00,0x00, +0xa5,0x03,0x00,0x00,0xcd,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xaa,0x03,0x00,0x00,0x8b,0x00,0x00,0x00, +0x1a,0x04,0x00,0x00,0x41,0x00,0x08,0x00,0xfb,0x00,0x00,0x00, +0xab,0x03,0x00,0x00,0xc5,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0xc8,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xaa,0x03,0x00,0x00, +0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0xac,0x03,0x00,0x00, +0xab,0x03,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xad,0x03,0x00,0x00,0xac,0x03,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0xae,0x03,0x00,0x00,0xad,0x03,0x00,0x00, +0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xaf,0x03,0x00,0x00, +0xae,0x03,0x00,0x00,0x00,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0xbb,0x00,0x00,0x00,0xb4,0x03,0x00,0x00,0x8d,0x03,0x00,0x00, +0xc2,0x00,0x05,0x00,0xbb,0x00,0x00,0x00,0xb5,0x03,0x00,0x00, +0xb4,0x03,0x00,0x00,0xe9,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0xb6,0x03,0x00,0x00,0xb5,0x03,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xb7,0x03,0x00,0x00, +0xb6,0x03,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0xb8,0x03,0x00,0x00,0xb7,0x03,0x00,0x00,0xc9,0x00,0x00,0x00, +0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xb9,0x03,0x00,0x00, +0xb8,0x03,0x00,0x00,0x3b,0x00,0x00,0x00,0xc5,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0xba,0x03,0x00,0x00,0xaf,0x03,0x00,0x00, +0xb9,0x03,0x00,0x00,0x72,0x00,0x04,0x00,0xbe,0x00,0x00,0x00, +0xbb,0x03,0x00,0x00,0xba,0x03,0x00,0x00,0x72,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0xbc,0x03,0x00,0x00,0xbb,0x03,0x00,0x00, +0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xbd,0x03,0x00,0x00, +0xbc,0x03,0x00,0x00,0x14,0x01,0x00,0x00,0x6f,0x00,0x04,0x00, +0x9d,0x00,0x00,0x00,0xbe,0x03,0x00,0x00,0xbd,0x03,0x00,0x00, +0x85,0x00,0x05,0x00,0x9d,0x00,0x00,0x00,0xbf,0x03,0x00,0x00, +0xa6,0x03,0x00,0x00,0xbe,0x03,0x00,0x00,0x0c,0x00,0x08,0x00, +0x9d,0x00,0x00,0x00,0xc0,0x03,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0x80,0x03,0x00,0x00,0x98,0x03,0x00,0x00, +0xbf,0x03,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xc4,0x03,0x00,0x00,0xde,0x00,0x00,0x00,0x1b,0x04,0x00,0x00, +0x41,0x00,0x06,0x00,0xe3,0x00,0x00,0x00,0xc5,0x03,0x00,0x00, +0xdb,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xc4,0x03,0x00,0x00, +0x3d,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0xc6,0x03,0x00,0x00, +0xc5,0x03,0x00,0x00,0x3d,0x00,0x04,0x00,0xbe,0x00,0x00,0x00, +0xca,0x03,0x00,0x00,0x5c,0x01,0x00,0x00,0x6f,0x00,0x04,0x00, +0x9d,0x00,0x00,0x00,0xcb,0x03,0x00,0x00,0xca,0x03,0x00,0x00, +0x85,0x00,0x05,0x00,0x9d,0x00,0x00,0x00,0xcc,0x03,0x00,0x00, +0xc6,0x03,0x00,0x00,0xcb,0x03,0x00,0x00,0x85,0x00,0x05,0x00, +0x9d,0x00,0x00,0x00,0xcd,0x03,0x00,0x00,0xcc,0x03,0x00,0x00, +0xcd,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00, +0xd3,0x03,0x00,0x00,0x85,0x03,0x00,0x00,0xc2,0x00,0x05,0x00, +0xbb,0x00,0x00,0x00,0xd4,0x03,0x00,0x00,0xd3,0x03,0x00,0x00, +0x3b,0x00,0x00,0x00,0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xd5,0x03,0x00,0x00,0xd4,0x03,0x00,0x00,0x7c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0xd6,0x03,0x00,0x00,0xd5,0x03,0x00,0x00, +0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0xdb,0x03,0x00,0x00, +0x8d,0x03,0x00,0x00,0xc2,0x00,0x05,0x00,0xbb,0x00,0x00,0x00, +0xdc,0x03,0x00,0x00,0xdb,0x03,0x00,0x00,0x3b,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xdd,0x03,0x00,0x00, +0xdc,0x03,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0xde,0x03,0x00,0x00,0xdd,0x03,0x00,0x00,0xc7,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0xdf,0x03,0x00,0x00,0xde,0x03,0x00,0x00, +0xc9,0x00,0x00,0x00,0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0xe0,0x03,0x00,0x00,0xdf,0x03,0x00,0x00,0x3b,0x00,0x00,0x00, +0xc5,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xe1,0x03,0x00,0x00, +0xd6,0x03,0x00,0x00,0xe0,0x03,0x00,0x00,0x72,0x00,0x04,0x00, +0xbe,0x00,0x00,0x00,0xe2,0x03,0x00,0x00,0xe1,0x03,0x00,0x00, +0x72,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xe3,0x03,0x00,0x00, +0xe2,0x03,0x00,0x00,0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0xe4,0x03,0x00,0x00,0xe3,0x03,0x00,0x00,0x14,0x01,0x00,0x00, +0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00,0xe5,0x03,0x00,0x00, +0xe4,0x03,0x00,0x00,0x0c,0x00,0x08,0x00,0x9d,0x00,0x00,0x00, +0xe7,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0xcd,0x03,0x00,0x00,0xe5,0x03,0x00,0x00,0xc0,0x03,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xeb,0x03,0x00,0x00, +0xde,0x00,0x00,0x00,0x1c,0x04,0x00,0x00,0x41,0x00,0x06,0x00, +0xe3,0x00,0x00,0x00,0xec,0x03,0x00,0x00,0xdb,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0xeb,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, +0x9d,0x00,0x00,0x00,0xed,0x03,0x00,0x00,0xec,0x03,0x00,0x00, +0x3d,0x00,0x04,0x00,0xbe,0x00,0x00,0x00,0xf1,0x03,0x00,0x00, +0x94,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, +0xf2,0x03,0x00,0x00,0xf1,0x03,0x00,0x00,0x85,0x00,0x05,0x00, +0x9d,0x00,0x00,0x00,0xf3,0x03,0x00,0x00,0xed,0x03,0x00,0x00, +0xf2,0x03,0x00,0x00,0x85,0x00,0x05,0x00,0x9d,0x00,0x00,0x00, +0xf4,0x03,0x00,0x00,0xf3,0x03,0x00,0x00,0xcd,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0xbb,0x00,0x00,0x00,0xfa,0x03,0x00,0x00, +0xab,0x03,0x00,0x00,0xc2,0x00,0x05,0x00,0xbb,0x00,0x00,0x00, +0xfb,0x03,0x00,0x00,0xfa,0x03,0x00,0x00,0x3b,0x00,0x00,0x00, +0x71,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xfc,0x03,0x00,0x00, +0xfb,0x03,0x00,0x00,0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0xfd,0x03,0x00,0x00,0xfc,0x03,0x00,0x00,0x3d,0x00,0x04,0x00, +0xbb,0x00,0x00,0x00,0x02,0x04,0x00,0x00,0x8d,0x03,0x00,0x00, +0xc2,0x00,0x05,0x00,0xbb,0x00,0x00,0x00,0x03,0x04,0x00,0x00, +0x02,0x04,0x00,0x00,0x45,0x00,0x00,0x00,0x71,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x04,0x04,0x00,0x00,0x03,0x04,0x00,0x00, +0x7c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x05,0x04,0x00,0x00, +0x04,0x04,0x00,0x00,0xc7,0x00,0x05,0x00,0x1b,0x00,0x00,0x00, +0x06,0x04,0x00,0x00,0x05,0x04,0x00,0x00,0xc9,0x00,0x00,0x00, +0xc4,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x07,0x04,0x00,0x00, +0x06,0x04,0x00,0x00,0x3b,0x00,0x00,0x00,0xc5,0x00,0x05,0x00, +0x1b,0x00,0x00,0x00,0x08,0x04,0x00,0x00,0xfd,0x03,0x00,0x00, +0x07,0x04,0x00,0x00,0x72,0x00,0x04,0x00,0xbe,0x00,0x00,0x00, +0x09,0x04,0x00,0x00,0x08,0x04,0x00,0x00,0x72,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x0a,0x04,0x00,0x00,0x09,0x04,0x00,0x00, +0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0x0b,0x04,0x00,0x00, +0x0a,0x04,0x00,0x00,0x14,0x01,0x00,0x00,0x6f,0x00,0x04,0x00, +0x9d,0x00,0x00,0x00,0x0c,0x04,0x00,0x00,0x0b,0x04,0x00,0x00, +0x0c,0x00,0x08,0x00,0x9d,0x00,0x00,0x00,0x0e,0x04,0x00,0x00, +0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xf4,0x03,0x00,0x00, +0x0c,0x04,0x00,0x00,0xe7,0x03,0x00,0x00,0x81,0x00,0x05,0x00, +0x9d,0x00,0x00,0x00,0x0f,0x04,0x00,0x00,0x6b,0x03,0x00,0x00, +0x0e,0x04,0x00,0x00,0x3d,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, +0xc6,0x01,0x00,0x00,0xa8,0x00,0x00,0x00,0x81,0x00,0x05,0x00, +0x9d,0x00,0x00,0x00,0xc7,0x01,0x00,0x00,0xc6,0x01,0x00,0x00, +0x0f,0x04,0x00,0x00,0x3e,0x00,0x03,0x00,0xa8,0x00,0x00,0x00, +0xc7,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xca,0x01,0x00,0x00,0x1f,0x02,0x00,0x00,0x51,0x00,0x00,0x00, +0xf9,0x00,0x02,0x00,0xab,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xad,0x00,0x00,0x00,0xe0,0x00,0x04,0x00,0x51,0x00,0x00,0x00, +0x51,0x00,0x00,0x00,0xcb,0x01,0x00,0x00,0xf9,0x00,0x02,0x00, +0xcd,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xcd,0x01,0x00,0x00, +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x20,0x02,0x00,0x00, +0xa1,0x00,0x00,0x00,0xad,0x00,0x00,0x00,0xe4,0x01,0x00,0x00, +0xd0,0x01,0x00,0x00,0xac,0x00,0x05,0x00,0xb2,0x00,0x00,0x00, +0xd3,0x01,0x00,0x00,0x20,0x02,0x00,0x00,0x4b,0x00,0x00,0x00, +0xf6,0x00,0x04,0x00,0xcf,0x01,0x00,0x00,0xd0,0x01,0x00,0x00, +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xd3,0x01,0x00,0x00, +0xce,0x01,0x00,0x00,0xcf,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, +0xce,0x01,0x00,0x00,0xb0,0x00,0x05,0x00,0xb2,0x00,0x00,0x00, +0xd6,0x01,0x00,0x00,0x71,0x00,0x00,0x00,0x20,0x02,0x00,0x00, +0xf7,0x00,0x03,0x00,0xd8,0x01,0x00,0x00,0x00,0x00,0x00,0x00, +0xfa,0x00,0x04,0x00,0xd6,0x01,0x00,0x00,0xd7,0x01,0x00,0x00, +0xd8,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xd7,0x01,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdc,0x01,0x00,0x00, +0x71,0x00,0x00,0x00,0x20,0x02,0x00,0x00,0x41,0x00,0x05,0x00, +0xa7,0x00,0x00,0x00,0xdd,0x01,0x00,0x00,0xa0,0x00,0x00,0x00, +0xdc,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, +0xde,0x01,0x00,0x00,0xdd,0x01,0x00,0x00,0x41,0x00,0x05,0x00, +0xa7,0x00,0x00,0x00,0xdf,0x01,0x00,0x00,0xa0,0x00,0x00,0x00, +0x71,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, +0xe0,0x01,0x00,0x00,0xdf,0x01,0x00,0x00,0x81,0x00,0x05,0x00, +0x9d,0x00,0x00,0x00,0xe1,0x01,0x00,0x00,0xe0,0x01,0x00,0x00, +0xde,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0xdf,0x01,0x00,0x00, +0xe1,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xd8,0x01,0x00,0x00, +0xf8,0x00,0x02,0x00,0xd8,0x01,0x00,0x00,0xe0,0x00,0x04,0x00, +0x51,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0xcb,0x01,0x00,0x00, +0xf9,0x00,0x02,0x00,0xd0,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, +0xd0,0x01,0x00,0x00,0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xe4,0x01,0x00,0x00,0x20,0x02,0x00,0x00,0x05,0x01,0x00,0x00, +0xf9,0x00,0x02,0x00,0xcd,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, +0xcf,0x01,0x00,0x00,0xaa,0x00,0x05,0x00,0xb2,0x00,0x00,0x00, +0xe6,0x01,0x00,0x00,0x71,0x00,0x00,0x00,0x4b,0x00,0x00,0x00, +0xf7,0x00,0x03,0x00,0xe8,0x01,0x00,0x00,0x00,0x00,0x00,0x00, +0xfa,0x00,0x04,0x00,0xe6,0x01,0x00,0x00,0xe7,0x01,0x00,0x00, +0xe8,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xe7,0x01,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xef,0x01,0x00,0x00, +0x1e,0x02,0x00,0x00,0x55,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0xa7,0x00,0x00,0x00,0xf0,0x01,0x00,0x00,0xa0,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, +0xf1,0x01,0x00,0x00,0xf0,0x01,0x00,0x00,0x41,0x00,0x06,0x00, +0xe3,0x00,0x00,0x00,0xf2,0x01,0x00,0x00,0xec,0x01,0x00,0x00, +0x61,0x00,0x00,0x00,0xef,0x01,0x00,0x00,0x3e,0x00,0x03,0x00, +0xf2,0x01,0x00,0x00,0xf1,0x01,0x00,0x00,0xf9,0x00,0x02,0x00, +0xe8,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0xe8,0x01,0x00,0x00, +0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00, }; -const uint64_t mul_mat_vec_q6_k_f32_f32_len = 11704; +const uint64_t mul_mat_vec_q6_k_f32_f32_len = 11852; unsigned char mul_mat_vec_q8_0_f16_f32_data[] = { 0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00, -0x60,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, +0x67,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, 0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x51,0x11,0x00,0x00, 0x11,0x00,0x02,0x00,0x60,0x11,0x00,0x00,0x0b,0x00,0x06,0x00, 0x01,0x00,0x00,0x00,0x47,0x4c,0x53,0x4c,0x2e,0x73,0x74,0x64, 0x2e,0x34,0x35,0x30,0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00, -0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0f,0x00,0x0d,0x00, +0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0f,0x00,0x0e,0x00, 0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e, 0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x46,0x00,0x00,0x00, -0x4e,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,0x82,0x00,0x00,0x00, -0x92,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,0x0a,0x01,0x00,0x00, -0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x1c,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x1c,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x1d,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x1e,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0x1e,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x20,0x00,0x00,0x00, -0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x46,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x4c,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x4c,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x4c,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x4c,0x00,0x00,0x00,0x03,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x4c,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x4c,0x00,0x00,0x00, -0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x4c,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x4c,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x4e,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,0x81,0x00,0x00,0x00, +0x8a,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,0xd2,0x00,0x00,0x00, +0x11,0x01,0x00,0x00,0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00, +0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x1c,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x1d,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x1e,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x1e,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x20,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x20,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x46,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, 0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x4c,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x4c,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x4c,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x28,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x4c,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x7d,0x00,0x00,0x00, -0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x82,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x8f,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xc8,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x48,0x00,0x04,0x00, -0xc9,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0xc9,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, -0xc9,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xcb,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xcb,0x00,0x00,0x00,0x21,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x07,0x01,0x00,0x00, -0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00, -0x08,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x08,0x01,0x00,0x00,0x00,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, -0x08,0x01,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x0a,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x0a,0x01,0x00,0x00,0x21,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x12,0x01,0x00,0x00, -0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x13,0x01,0x00,0x00,0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00, -0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00, -0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x16,0x00,0x03,0x00,0x08,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x17,0x00,0x04,0x00,0x09,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0x18,0x00,0x00,0x00, -0x10,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x19,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x1c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x19,0x00,0x00,0x00, -0x1a,0x00,0x00,0x00,0x1e,0x00,0x04,0x00,0x1c,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, -0x1d,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, -0x1e,0x00,0x00,0x00,0x1d,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x1f,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x1e,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x21,0x00,0x00,0x00, -0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x21,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x26,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, -0x2d,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x2f,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x19,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x38,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x17,0x00,0x04,0x00,0x44,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x45,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x44,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0x45,0x00,0x00,0x00,0x46,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x47,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x1e,0x00,0x0d,0x00, -0x4c,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x4c,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x4c,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x4c,0x00,0x00,0x00, +0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x4c,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x4c,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x4c,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x4c,0x00,0x00,0x00,0x07,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x4c,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x4c,0x00,0x00,0x00, +0x09,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x4c,0x00,0x00,0x00,0x0a,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0x4c,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x7d,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x81,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x8a,0x00,0x00,0x00, +0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0xd0,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0xd0,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xd2,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xd2,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x0e,0x01,0x00,0x00,0x06,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x0f,0x01,0x00,0x00, +0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x0f,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x0f,0x01,0x00,0x00, +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x11,0x01,0x00,0x00, +0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x11,0x01,0x00,0x00,0x21,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x19,0x01,0x00,0x00,0x01,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x1a,0x01,0x00,0x00, +0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x13,0x00,0x02,0x00, +0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x00,0x03,0x00, +0x08,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x17,0x00,0x04,0x00, +0x09,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x16,0x00,0x03,0x00,0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00, +0x15,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x1a,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, +0x1e,0x00,0x04,0x00,0x1c,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x1b,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x1d,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x1e,0x00,0x00,0x00, +0x1d,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x1f,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0x1f,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x15,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x20,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x26,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x2d,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x2f,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x17,0x00,0x04,0x00,0x44,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x45,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0x45,0x00,0x00,0x00,0x46,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x47,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x1e,0x00,0x0d,0x00,0x4c,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x4d,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x4c,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x4d,0x00,0x00,0x00, -0x4e,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x21,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x50,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, -0x5b,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x21,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x67,0x00,0x00,0x00, -0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, -0x6e,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x21,0x00,0x00,0x00,0x73,0x00,0x00,0x00,0x05,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x78,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x45,0x00,0x00,0x00, -0x7d,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0x45,0x00,0x00,0x00,0x82,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x8f,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x8f,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x91,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x90,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x91,0x00,0x00,0x00, -0x92,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x08,0x00,0x00,0x00,0x94,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x95,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x14,0x00,0x02,0x00,0xa1,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa6,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0xc8,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xc9,0x00,0x00,0x00, -0xc8,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xca,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0xca,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xe8,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x4d,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x4c,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x4d,0x00,0x00,0x00,0x4e,0x00,0x00,0x00, +0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, +0x4f,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x50,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x5b,0x00,0x00,0x00, +0x0a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x21,0x00,0x00,0x00,0x67,0x00,0x00,0x00,0x07,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x6e,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, +0x73,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x21,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x45,0x00,0x00,0x00,0x7d,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x7e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0x45,0x00,0x00,0x00,0x81,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x84,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x45,0x00,0x00,0x00, +0x8a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x20,0x00,0x00,0x00, +0x1c,0x00,0x04,0x00,0x98,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x97,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x99,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x98,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0x99,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x9c,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x14,0x00,0x02,0x00, +0xa9,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0xcf,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xd0,0x00,0x00,0x00, +0xcf,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xd1,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0xd1,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xef,0x00,0x00,0x00, 0x08,0x01,0x00,0x00,0x34,0x00,0x06,0x00,0x06,0x00,0x00,0x00, -0xea,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x8f,0x00,0x00,0x00, -0xa6,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x07,0x01,0x00,0x00, -0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x08,0x01,0x00,0x00, -0x07,0x01,0x00,0x00,0x20,0x00,0x04,0x00,0x09,0x01,0x00,0x00, -0x0c,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x3b,0x00,0x04,0x00, -0x09,0x01,0x00,0x00,0x0a,0x01,0x00,0x00,0x0c,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x10,0x01,0x00,0x00,0x0c,0x00,0x00,0x00, +0xf1,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x97,0x00,0x00,0x00, +0x84,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x0e,0x01,0x00,0x00, +0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x0f,0x01,0x00,0x00, +0x0e,0x01,0x00,0x00,0x20,0x00,0x04,0x00,0x10,0x01,0x00,0x00, +0x0c,0x00,0x00,0x00,0x0f,0x01,0x00,0x00,0x3b,0x00,0x04,0x00, +0x10,0x01,0x00,0x00,0x11,0x01,0x00,0x00,0x0c,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x17,0x01,0x00,0x00,0x0c,0x00,0x00,0x00, 0x08,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x12,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x33,0x00,0x06,0x00, -0x44,0x00,0x00,0x00,0x13,0x01,0x00,0x00,0x12,0x01,0x00,0x00, +0x19,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x33,0x00,0x06,0x00, +0x44,0x00,0x00,0x00,0x1a,0x01,0x00,0x00,0x19,0x01,0x00,0x00, 0x38,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x36,0x00,0x05,0x00, 0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x03,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00, 0x41,0x00,0x05,0x00,0x47,0x00,0x00,0x00,0x7f,0x00,0x00,0x00, 0x7d,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, 0x06,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x7f,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x47,0x00,0x00,0x00,0x83,0x00,0x00,0x00, -0x82,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x83,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x47,0x00,0x00,0x00,0x1b,0x01,0x00,0x00, -0x46,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,0x1b,0x01,0x00,0x00, -0x41,0x00,0x05,0x00,0x50,0x00,0x00,0x00,0x1e,0x01,0x00,0x00, -0x4e,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x1f,0x01,0x00,0x00,0x1e,0x01,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x20,0x01,0x00,0x00, -0x1c,0x01,0x00,0x00,0x1f,0x01,0x00,0x00,0x89,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x24,0x01,0x00,0x00,0x1c,0x01,0x00,0x00, -0x1f,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x50,0x00,0x00,0x00, -0x26,0x01,0x00,0x00,0x4e,0x00,0x00,0x00,0x5b,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x27,0x01,0x00,0x00, -0x26,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x28,0x01,0x00,0x00,0x20,0x01,0x00,0x00,0x27,0x01,0x00,0x00, -0x41,0x00,0x05,0x00,0x50,0x00,0x00,0x00,0x2a,0x01,0x00,0x00, -0x4e,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x2b,0x01,0x00,0x00,0x2a,0x01,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2c,0x01,0x00,0x00, -0x24,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,0x41,0x00,0x05,0x00, -0x50,0x00,0x00,0x00,0x2e,0x01,0x00,0x00,0x4e,0x00,0x00,0x00, -0x67,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x2f,0x01,0x00,0x00,0x2e,0x01,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x30,0x01,0x00,0x00,0x28,0x01,0x00,0x00, -0x2f,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x32,0x01,0x00,0x00,0x30,0x01,0x00,0x00,0x2c,0x01,0x00,0x00, -0x41,0x00,0x05,0x00,0x50,0x00,0x00,0x00,0x34,0x01,0x00,0x00, -0x4e,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x35,0x01,0x00,0x00,0x34,0x01,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x36,0x01,0x00,0x00, -0x32,0x01,0x00,0x00,0x35,0x01,0x00,0x00,0x41,0x00,0x05,0x00, -0x50,0x00,0x00,0x00,0x38,0x01,0x00,0x00,0x4e,0x00,0x00,0x00, -0x73,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x39,0x01,0x00,0x00,0x38,0x01,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x3a,0x01,0x00,0x00,0x1c,0x01,0x00,0x00, -0x39,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x50,0x00,0x00,0x00, -0x3c,0x01,0x00,0x00,0x4e,0x00,0x00,0x00,0x78,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x3d,0x01,0x00,0x00, -0x3c,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x3e,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,0x3d,0x01,0x00,0x00, -0x41,0x00,0x05,0x00,0x95,0x00,0x00,0x00,0x96,0x00,0x00,0x00, -0x92,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x3e,0x00,0x03,0x00, -0x96,0x00,0x00,0x00,0x94,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, -0x98,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x98,0x00,0x00,0x00, -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x5e,0x01,0x00,0x00, -0x7e,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0xe7,0x00,0x00,0x00, -0x99,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x50,0x00,0x00,0x00, -0x9e,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x9f,0x00,0x00,0x00, -0x9e,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xa0,0x00,0x00,0x00,0x9f,0x00,0x00,0x00,0x8f,0x00,0x00,0x00, -0xb0,0x00,0x05,0x00,0xa1,0x00,0x00,0x00,0xa2,0x00,0x00,0x00, -0x5e,0x01,0x00,0x00,0xa0,0x00,0x00,0x00,0xf6,0x00,0x04,0x00, -0x9a,0x00,0x00,0x00,0x99,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0xfa,0x00,0x04,0x00,0xa2,0x00,0x00,0x00,0x99,0x00,0x00,0x00, -0x9a,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x99,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa5,0x00,0x00,0x00, -0x5e,0x01,0x00,0x00,0x8f,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,0xa6,0x00,0x00,0x00, -0x84,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xa9,0x00,0x00,0x00,0xa5,0x00,0x00,0x00,0xa8,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xae,0x00,0x00,0x00, -0x80,0x00,0x00,0x00,0x9f,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xb0,0x00,0x00,0x00,0xae,0x00,0x00,0x00, -0xa9,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xb1,0x00,0x00,0x00,0xb0,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, -0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb4,0x00,0x00,0x00, -0xa9,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x86,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,0xb4,0x00,0x00,0x00, -0x38,0x00,0x00,0x00,0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xba,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,0xb4,0x00,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbe,0x00,0x00,0x00, -0x36,0x01,0x00,0x00,0x1a,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x44,0x01,0x00,0x00,0xbe,0x00,0x00,0x00, -0xb1,0x00,0x00,0x00,0x41,0x00,0x07,0x00,0x26,0x00,0x00,0x00, -0x45,0x01,0x00,0x00,0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x44,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x18,0x00,0x00,0x00,0x46,0x01,0x00,0x00,0x45,0x01,0x00,0x00, -0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x47,0x01,0x00,0x00, -0x46,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x2f,0x00,0x00,0x00, -0x4c,0x01,0x00,0x00,0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x44,0x01,0x00,0x00,0x2d,0x00,0x00,0x00,0xb5,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x4d,0x01,0x00,0x00, -0x4c,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x21,0x00,0x00,0x00, -0x4e,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,0x6f,0x00,0x04,0x00, -0x08,0x00,0x00,0x00,0x4f,0x01,0x00,0x00,0x4e,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x54,0x01,0x00,0x00, -0xb5,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x41,0x00,0x08,0x00, -0x2f,0x00,0x00,0x00,0x55,0x01,0x00,0x00,0x20,0x00,0x00,0x00, -0x22,0x00,0x00,0x00,0x44,0x01,0x00,0x00,0x2d,0x00,0x00,0x00, -0x54,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x19,0x00,0x00,0x00, -0x56,0x01,0x00,0x00,0x55,0x01,0x00,0x00,0x72,0x00,0x04,0x00, -0x21,0x00,0x00,0x00,0x57,0x01,0x00,0x00,0x56,0x01,0x00,0x00, -0x6f,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x58,0x01,0x00,0x00, -0x57,0x01,0x00,0x00,0x50,0x00,0x05,0x00,0x09,0x00,0x00,0x00, -0x59,0x01,0x00,0x00,0x4f,0x01,0x00,0x00,0x58,0x01,0x00,0x00, -0x8e,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0x5b,0x01,0x00,0x00, -0x59,0x01,0x00,0x00,0x47,0x01,0x00,0x00,0x51,0x00,0x05,0x00, -0x08,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,0x5b,0x01,0x00,0x00, -0x00,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xce,0x00,0x00,0x00,0x3a,0x01,0x00,0x00,0xba,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd0,0x00,0x00,0x00, -0xce,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,0x41,0x00,0x06,0x00, -0x26,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,0xcb,0x00,0x00,0x00, -0x22,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x18,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,0xd1,0x00,0x00,0x00, -0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xd3,0x00,0x00,0x00, -0xd2,0x00,0x00,0x00,0x51,0x00,0x05,0x00,0x08,0x00,0x00,0x00, -0xd6,0x00,0x00,0x00,0x5b,0x01,0x00,0x00,0x01,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xdc,0x00,0x00,0x00, -0xd0,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x41,0x00,0x06,0x00, -0x26,0x00,0x00,0x00,0xdd,0x00,0x00,0x00,0xcb,0x00,0x00,0x00, -0x22,0x00,0x00,0x00,0xdc,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x18,0x00,0x00,0x00,0xde,0x00,0x00,0x00,0xdd,0x00,0x00,0x00, -0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xdf,0x00,0x00,0x00, -0xde,0x00,0x00,0x00,0x85,0x00,0x05,0x00,0x08,0x00,0x00,0x00, -0xe0,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,0xdf,0x00,0x00,0x00, -0x0c,0x00,0x08,0x00,0x08,0x00,0x00,0x00,0xe1,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xc7,0x00,0x00,0x00, -0xd3,0x00,0x00,0x00,0xe0,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x08,0x00,0x00,0x00,0xe3,0x00,0x00,0x00,0x96,0x00,0x00,0x00, -0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0xe4,0x00,0x00,0x00, -0xe3,0x00,0x00,0x00,0xe1,0x00,0x00,0x00,0x3e,0x00,0x03,0x00, -0x96,0x00,0x00,0x00,0xe4,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,0x5e,0x01,0x00,0x00, -0xa6,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x98,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0x9a,0x00,0x00,0x00,0xe0,0x00,0x04,0x00, -0xa6,0x00,0x00,0x00,0xa6,0x00,0x00,0x00,0xe8,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0xeb,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0xeb,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00, -0x5f,0x01,0x00,0x00,0xea,0x00,0x00,0x00,0x9a,0x00,0x00,0x00, -0x02,0x01,0x00,0x00,0xee,0x00,0x00,0x00,0xac,0x00,0x05,0x00, -0xa1,0x00,0x00,0x00,0xf1,0x00,0x00,0x00,0x5f,0x01,0x00,0x00, -0x7e,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,0xed,0x00,0x00,0x00, -0xee,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, -0xf1,0x00,0x00,0x00,0xec,0x00,0x00,0x00,0xed,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0xec,0x00,0x00,0x00,0xb0,0x00,0x05,0x00, -0xa1,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,0x84,0x00,0x00,0x00, -0x5f,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,0xf6,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xf4,0x00,0x00,0x00, -0xf5,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0xf5,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xfa,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x5f,0x01,0x00,0x00, -0x41,0x00,0x05,0x00,0x95,0x00,0x00,0x00,0xfb,0x00,0x00,0x00, -0x92,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x08,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0xfb,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xfe,0x00,0x00,0x00, -0x96,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00, -0xff,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0xfc,0x00,0x00,0x00, -0x3e,0x00,0x03,0x00,0x96,0x00,0x00,0x00,0xff,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0xf6,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0xf6,0x00,0x00,0x00,0xe0,0x00,0x04,0x00,0xa6,0x00,0x00,0x00, -0xa6,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, -0xee,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xee,0x00,0x00,0x00, -0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x02,0x01,0x00,0x00, -0x5f,0x01,0x00,0x00,0x2d,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, -0xeb,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xed,0x00,0x00,0x00, -0xaa,0x00,0x05,0x00,0xa1,0x00,0x00,0x00,0x04,0x01,0x00,0x00, -0x84,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0xf7,0x00,0x03,0x00, -0x06,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, -0x04,0x01,0x00,0x00,0x05,0x01,0x00,0x00,0x06,0x01,0x00,0x00, -0xf8,0x00,0x02,0x00,0x05,0x01,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x0d,0x01,0x00,0x00,0x3e,0x01,0x00,0x00, -0x80,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x95,0x00,0x00,0x00, -0x0e,0x01,0x00,0x00,0x92,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x0f,0x01,0x00,0x00, -0x0e,0x01,0x00,0x00,0x41,0x00,0x06,0x00,0x10,0x01,0x00,0x00, -0x11,0x01,0x00,0x00,0x0a,0x01,0x00,0x00,0x22,0x00,0x00,0x00, -0x0d,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x11,0x01,0x00,0x00, -0x0f,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x06,0x01,0x00,0x00, -0xf8,0x00,0x02,0x00,0x06,0x01,0x00,0x00,0xfd,0x00,0x01,0x00, -0x38,0x00,0x01,0x00, +0x41,0x00,0x05,0x00,0x47,0x00,0x00,0x00,0x82,0x00,0x00,0x00, +0x81,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x83,0x00,0x00,0x00,0x82,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x47,0x00,0x00,0x00,0x85,0x00,0x00,0x00, +0x7d,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x85,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x87,0x00,0x00,0x00, +0x83,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x88,0x00,0x00,0x00,0x80,0x00,0x00,0x00, +0x87,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x47,0x00,0x00,0x00, +0x8b,0x00,0x00,0x00,0x8a,0x00,0x00,0x00,0x7e,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x8c,0x00,0x00,0x00, +0x8b,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x47,0x00,0x00,0x00, +0x22,0x01,0x00,0x00,0x46,0x00,0x00,0x00,0x38,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x23,0x01,0x00,0x00, +0x22,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x50,0x00,0x00,0x00, +0x25,0x01,0x00,0x00,0x4e,0x00,0x00,0x00,0x4f,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x26,0x01,0x00,0x00, +0x25,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x27,0x01,0x00,0x00,0x23,0x01,0x00,0x00,0x26,0x01,0x00,0x00, +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2b,0x01,0x00,0x00, +0x23,0x01,0x00,0x00,0x26,0x01,0x00,0x00,0x41,0x00,0x05,0x00, +0x50,0x00,0x00,0x00,0x2d,0x01,0x00,0x00,0x4e,0x00,0x00,0x00, +0x5b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x2e,0x01,0x00,0x00,0x2d,0x01,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x2f,0x01,0x00,0x00,0x27,0x01,0x00,0x00, +0x2e,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x50,0x00,0x00,0x00, +0x31,0x01,0x00,0x00,0x4e,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x32,0x01,0x00,0x00, +0x31,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x33,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,0x32,0x01,0x00,0x00, +0x41,0x00,0x05,0x00,0x50,0x00,0x00,0x00,0x35,0x01,0x00,0x00, +0x4e,0x00,0x00,0x00,0x67,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x36,0x01,0x00,0x00,0x35,0x01,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x37,0x01,0x00,0x00, +0x2f,0x01,0x00,0x00,0x36,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x39,0x01,0x00,0x00,0x37,0x01,0x00,0x00, +0x33,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x50,0x00,0x00,0x00, +0x3b,0x01,0x00,0x00,0x4e,0x00,0x00,0x00,0x6e,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x3c,0x01,0x00,0x00, +0x3b,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x3d,0x01,0x00,0x00,0x39,0x01,0x00,0x00,0x3c,0x01,0x00,0x00, +0x41,0x00,0x05,0x00,0x50,0x00,0x00,0x00,0x3f,0x01,0x00,0x00, +0x4e,0x00,0x00,0x00,0x73,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x40,0x01,0x00,0x00,0x3f,0x01,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x41,0x01,0x00,0x00, +0x23,0x01,0x00,0x00,0x40,0x01,0x00,0x00,0x41,0x00,0x05,0x00, +0x50,0x00,0x00,0x00,0x43,0x01,0x00,0x00,0x4e,0x00,0x00,0x00, +0x78,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x44,0x01,0x00,0x00,0x43,0x01,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x45,0x01,0x00,0x00,0x23,0x01,0x00,0x00, +0x44,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x9d,0x00,0x00,0x00, +0x9e,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,0x8c,0x00,0x00,0x00, +0x3e,0x00,0x03,0x00,0x9e,0x00,0x00,0x00,0x9c,0x00,0x00,0x00, +0xf9,0x00,0x02,0x00,0xa0,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xa0,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00, +0x65,0x01,0x00,0x00,0x7e,0x00,0x00,0x00,0x05,0x00,0x00,0x00, +0xee,0x00,0x00,0x00,0xa1,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0x50,0x00,0x00,0x00,0xa6,0x00,0x00,0x00,0x4e,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xa7,0x00,0x00,0x00,0xa6,0x00,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,0xa7,0x00,0x00,0x00, +0x97,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0xa9,0x00,0x00,0x00, +0xaa,0x00,0x00,0x00,0x65,0x01,0x00,0x00,0xa8,0x00,0x00,0x00, +0xf6,0x00,0x04,0x00,0xa2,0x00,0x00,0x00,0xa1,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xaa,0x00,0x00,0x00, +0xa1,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xa1,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xad,0x00,0x00,0x00,0x65,0x01,0x00,0x00,0x97,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xaf,0x00,0x00,0x00, +0x84,0x00,0x00,0x00,0x8c,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xb0,0x00,0x00,0x00,0xad,0x00,0x00,0x00, +0xaf,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xb5,0x00,0x00,0x00,0x88,0x00,0x00,0x00,0xa7,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb7,0x00,0x00,0x00, +0xb5,0x00,0x00,0x00,0xb0,0x00,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0xb7,0x00,0x00,0x00, +0x1a,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xbb,0x00,0x00,0x00,0xb0,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbc,0x00,0x00,0x00, +0xbb,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x82,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xc1,0x00,0x00,0x00,0xb0,0x00,0x00,0x00, +0xbb,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xc5,0x00,0x00,0x00,0x3d,0x01,0x00,0x00,0x1a,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x4b,0x01,0x00,0x00, +0xc5,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0x41,0x00,0x07,0x00, +0x26,0x00,0x00,0x00,0x4c,0x01,0x00,0x00,0x20,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x4b,0x01,0x00,0x00,0x22,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x4d,0x01,0x00,0x00, +0x4c,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0x4e,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,0x41,0x00,0x08,0x00, +0x2f,0x00,0x00,0x00,0x53,0x01,0x00,0x00,0x20,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x4b,0x01,0x00,0x00,0x2d,0x00,0x00,0x00, +0xbc,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x19,0x00,0x00,0x00, +0x54,0x01,0x00,0x00,0x53,0x01,0x00,0x00,0x72,0x00,0x04,0x00, +0x21,0x00,0x00,0x00,0x55,0x01,0x00,0x00,0x54,0x01,0x00,0x00, +0x6f,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x56,0x01,0x00,0x00, +0x55,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x5b,0x01,0x00,0x00,0xbc,0x00,0x00,0x00,0x38,0x00,0x00,0x00, +0x41,0x00,0x08,0x00,0x2f,0x00,0x00,0x00,0x5c,0x01,0x00,0x00, +0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x4b,0x01,0x00,0x00, +0x2d,0x00,0x00,0x00,0x5b,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0x19,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,0x5c,0x01,0x00,0x00, +0x72,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x5e,0x01,0x00,0x00, +0x5d,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0x5f,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,0x50,0x00,0x05,0x00, +0x09,0x00,0x00,0x00,0x60,0x01,0x00,0x00,0x56,0x01,0x00,0x00, +0x5f,0x01,0x00,0x00,0x8e,0x00,0x05,0x00,0x09,0x00,0x00,0x00, +0x62,0x01,0x00,0x00,0x60,0x01,0x00,0x00,0x4e,0x01,0x00,0x00, +0x51,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0xce,0x00,0x00,0x00, +0x62,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0x41,0x01,0x00,0x00, +0xc1,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xd7,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0xbc,0x00,0x00,0x00, +0x41,0x00,0x06,0x00,0x26,0x00,0x00,0x00,0xd8,0x00,0x00,0x00, +0xd2,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0xd7,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0xd9,0x00,0x00,0x00, +0xd8,0x00,0x00,0x00,0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0xda,0x00,0x00,0x00,0xd9,0x00,0x00,0x00,0x51,0x00,0x05,0x00, +0x08,0x00,0x00,0x00,0xdd,0x00,0x00,0x00,0x62,0x01,0x00,0x00, +0x01,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xe3,0x00,0x00,0x00,0xd7,0x00,0x00,0x00,0x38,0x00,0x00,0x00, +0x41,0x00,0x06,0x00,0x26,0x00,0x00,0x00,0xe4,0x00,0x00,0x00, +0xd2,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0xe3,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0xe5,0x00,0x00,0x00, +0xe4,0x00,0x00,0x00,0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0xe6,0x00,0x00,0x00,0xe5,0x00,0x00,0x00,0x85,0x00,0x05,0x00, +0x08,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,0xdd,0x00,0x00,0x00, +0xe6,0x00,0x00,0x00,0x0c,0x00,0x08,0x00,0x08,0x00,0x00,0x00, +0xe8,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, +0xce,0x00,0x00,0x00,0xda,0x00,0x00,0x00,0xe7,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xea,0x00,0x00,0x00, +0x9e,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00, +0xeb,0x00,0x00,0x00,0xea,0x00,0x00,0x00,0xe8,0x00,0x00,0x00, +0x3e,0x00,0x03,0x00,0x9e,0x00,0x00,0x00,0xeb,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xee,0x00,0x00,0x00, +0x65,0x01,0x00,0x00,0x84,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, +0xa0,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xa2,0x00,0x00,0x00, +0xe0,0x00,0x04,0x00,0x84,0x00,0x00,0x00,0x84,0x00,0x00,0x00, +0xef,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xf2,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0xf2,0x00,0x00,0x00,0xf5,0x00,0x07,0x00, +0x06,0x00,0x00,0x00,0x66,0x01,0x00,0x00,0xf1,0x00,0x00,0x00, +0xa2,0x00,0x00,0x00,0x09,0x01,0x00,0x00,0xf5,0x00,0x00,0x00, +0xac,0x00,0x05,0x00,0xa9,0x00,0x00,0x00,0xf8,0x00,0x00,0x00, +0x66,0x01,0x00,0x00,0x7e,0x00,0x00,0x00,0xf6,0x00,0x04,0x00, +0xf4,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0xfa,0x00,0x04,0x00,0xf8,0x00,0x00,0x00,0xf3,0x00,0x00,0x00, +0xf4,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xf3,0x00,0x00,0x00, +0xb0,0x00,0x05,0x00,0xa9,0x00,0x00,0x00,0xfb,0x00,0x00,0x00, +0x8c,0x00,0x00,0x00,0x66,0x01,0x00,0x00,0xf7,0x00,0x03,0x00, +0xfd,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, +0xfb,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0xfd,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0xfc,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x8c,0x00,0x00,0x00, +0x66,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x9d,0x00,0x00,0x00, +0x02,0x01,0x00,0x00,0x9a,0x00,0x00,0x00,0x01,0x01,0x00,0x00, +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x03,0x01,0x00,0x00, +0x02,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0x05,0x01,0x00,0x00,0x9e,0x00,0x00,0x00,0x81,0x00,0x05,0x00, +0x08,0x00,0x00,0x00,0x06,0x01,0x00,0x00,0x05,0x01,0x00,0x00, +0x03,0x01,0x00,0x00,0x3e,0x00,0x03,0x00,0x9e,0x00,0x00,0x00, +0x06,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xfd,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0xfd,0x00,0x00,0x00,0xe0,0x00,0x04,0x00, +0x84,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0xef,0x00,0x00,0x00, +0xf9,0x00,0x02,0x00,0xf5,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xf5,0x00,0x00,0x00,0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x09,0x01,0x00,0x00,0x66,0x01,0x00,0x00,0x2d,0x00,0x00,0x00, +0xf9,0x00,0x02,0x00,0xf2,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xf4,0x00,0x00,0x00,0xaa,0x00,0x05,0x00,0xa9,0x00,0x00,0x00, +0x0b,0x01,0x00,0x00,0x8c,0x00,0x00,0x00,0x7e,0x00,0x00,0x00, +0xf7,0x00,0x03,0x00,0x0d,0x01,0x00,0x00,0x00,0x00,0x00,0x00, +0xfa,0x00,0x04,0x00,0x0b,0x01,0x00,0x00,0x0c,0x01,0x00,0x00, +0x0d,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x0c,0x01,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x14,0x01,0x00,0x00, +0x45,0x01,0x00,0x00,0x88,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0x9d,0x00,0x00,0x00,0x15,0x01,0x00,0x00,0x9a,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0x16,0x01,0x00,0x00,0x15,0x01,0x00,0x00,0x41,0x00,0x06,0x00, +0x17,0x01,0x00,0x00,0x18,0x01,0x00,0x00,0x11,0x01,0x00,0x00, +0x22,0x00,0x00,0x00,0x14,0x01,0x00,0x00,0x3e,0x00,0x03,0x00, +0x18,0x01,0x00,0x00,0x16,0x01,0x00,0x00,0xf9,0x00,0x02,0x00, +0x0d,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x0d,0x01,0x00,0x00, +0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00, }; -const uint64_t mul_mat_vec_q8_0_f16_f32_len = 3916; +const uint64_t mul_mat_vec_q8_0_f16_f32_len = 4064; unsigned char mul_mat_vec_q8_0_f32_f32_data[] = { 0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00, -0x5e,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, +0x65,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00, 0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x51,0x11,0x00,0x00, 0x11,0x00,0x02,0x00,0x60,0x11,0x00,0x00,0x0b,0x00,0x06,0x00, 0x01,0x00,0x00,0x00,0x47,0x4c,0x53,0x4c,0x2e,0x73,0x74,0x64, 0x2e,0x34,0x35,0x30,0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00, -0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0f,0x00,0x0d,0x00, +0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0f,0x00,0x0e,0x00, 0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e, 0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x46,0x00,0x00,0x00, -0x4e,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,0x82,0x00,0x00,0x00, -0x92,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,0x09,0x01,0x00,0x00, -0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x1c,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x1c,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x1d,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x48,0x00,0x04,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x1e,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x03,0x00,0x1e,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x20,0x00,0x00,0x00, -0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x46,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x4c,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x4c,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x4c,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x4c,0x00,0x00,0x00,0x03,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x4c,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x4c,0x00,0x00,0x00, -0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x14,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x4c,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x4c,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x4e,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,0x81,0x00,0x00,0x00, +0x8a,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,0xd2,0x00,0x00,0x00, +0x10,0x01,0x00,0x00,0x10,0x00,0x06,0x00,0x04,0x00,0x00,0x00, +0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x1b,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x1c,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x1d,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x1e,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x1e,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x20,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x20,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x46,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, 0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x4c,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x4c,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x48,0x00,0x05,0x00, -0x4c,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x23,0x00,0x00,0x00, -0x28,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x4c,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x7d,0x00,0x00,0x00, -0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x82,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x8f,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xc8,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00, -0xc9,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0xc9,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, -0xc9,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0xcb,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0xcb,0x00,0x00,0x00,0x21,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x06,0x01,0x00,0x00, -0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00, -0x07,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00, -0x48,0x00,0x05,0x00,0x07,0x01,0x00,0x00,0x00,0x00,0x00,0x00, -0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00, -0x07,0x01,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x09,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x47,0x00,0x04,0x00,0x09,0x01,0x00,0x00,0x21,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x4c,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x4c,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x4c,0x00,0x00,0x00, +0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x4c,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x4c,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x14,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x4c,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x4c,0x00,0x00,0x00,0x07,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x4c,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x4c,0x00,0x00,0x00, +0x09,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00, +0x48,0x00,0x05,0x00,0x4c,0x00,0x00,0x00,0x0a,0x00,0x00,0x00, +0x23,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x47,0x00,0x03,0x00, +0x4c,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x7d,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x81,0x00,0x00,0x00,0x0b,0x00,0x00,0x00, +0x18,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x8a,0x00,0x00,0x00, +0x0b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x97,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0xcf,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0xd0,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0xd0,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0xd2,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0xd2,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x0d,0x01,0x00,0x00,0x06,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x0e,0x01,0x00,0x00, +0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x48,0x00,0x05,0x00, +0x0e,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x0e,0x01,0x00,0x00, 0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x10,0x01,0x00,0x00, -0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, -0x11,0x01,0x00,0x00,0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00, -0x13,0x00,0x02,0x00,0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00, -0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x16,0x00,0x03,0x00,0x08,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x17,0x00,0x04,0x00,0x09,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0x18,0x00,0x00,0x00, -0x10,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x19,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x1c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x19,0x00,0x00,0x00, -0x1a,0x00,0x00,0x00,0x1e,0x00,0x04,0x00,0x1c,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, -0x1d,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, -0x1e,0x00,0x00,0x00,0x1d,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x1f,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x1e,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,0x20,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x21,0x00,0x00,0x00, -0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x21,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x26,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x18,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, -0x2d,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x2f,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x19,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x38,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x17,0x00,0x04,0x00,0x44,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00, -0x45,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x44,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0x45,0x00,0x00,0x00,0x46,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x47,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x1e,0x00,0x0d,0x00, -0x4c,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00, +0x10,0x01,0x00,0x00,0x21,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x47,0x00,0x04,0x00,0x17,0x01,0x00,0x00,0x01,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x18,0x01,0x00,0x00, +0x0b,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x13,0x00,0x02,0x00, +0x02,0x00,0x00,0x00,0x21,0x00,0x03,0x00,0x03,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x00,0x03,0x00, +0x08,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x17,0x00,0x04,0x00, +0x09,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x16,0x00,0x03,0x00,0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00, +0x15,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x1a,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, +0x1b,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, +0x1e,0x00,0x04,0x00,0x1c,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x1b,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0x1d,0x00,0x00,0x00, +0x1c,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x1e,0x00,0x00,0x00, +0x1d,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x1f,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0x1f,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x15,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x20,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x26,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x18,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x2d,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x2f,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x17,0x00,0x04,0x00,0x44,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x45,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0x45,0x00,0x00,0x00,0x46,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0x47,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x1e,0x00,0x0d,0x00,0x4c,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x4d,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x4c,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x4d,0x00,0x00,0x00, -0x4e,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x21,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x08,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x50,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, -0x5b,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x21,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x09,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x67,0x00,0x00,0x00, -0x07,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, -0x6e,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x21,0x00,0x00,0x00,0x73,0x00,0x00,0x00,0x05,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x78,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x45,0x00,0x00,0x00, -0x7d,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x3b,0x00,0x04,0x00,0x45,0x00,0x00,0x00,0x82,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x8f,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x1c,0x00,0x04,0x00, -0x90,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x8f,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x91,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x90,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x91,0x00,0x00,0x00, -0x92,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, -0x08,0x00,0x00,0x00,0x94,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0x95,0x00,0x00,0x00,0x04,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x14,0x00,0x02,0x00,0xa1,0x00,0x00,0x00, -0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0xa6,0x00,0x00,0x00, -0x02,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0xc8,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xc9,0x00,0x00,0x00, -0xc8,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xca,0x00,0x00,0x00, -0x0c,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, -0xca,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, -0x20,0x00,0x04,0x00,0xd1,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x4d,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x4c,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x4d,0x00,0x00,0x00,0x4e,0x00,0x00,0x00, +0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, +0x4f,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x20,0x00,0x04,0x00, +0x50,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x5b,0x00,0x00,0x00, +0x0a,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, +0x61,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x21,0x00,0x00,0x00,0x67,0x00,0x00,0x00,0x07,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x6e,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00, +0x73,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x2b,0x00,0x04,0x00, +0x21,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x3b,0x00,0x04,0x00,0x45,0x00,0x00,0x00,0x7d,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x7e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0x45,0x00,0x00,0x00,0x81,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x84,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x45,0x00,0x00,0x00, +0x8a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x20,0x00,0x00,0x00, +0x1c,0x00,0x04,0x00,0x98,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0x97,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x99,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x98,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0x99,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,0x04,0x00,0x00,0x00, +0x2b,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x9c,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x9d,0x00,0x00,0x00, +0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x14,0x00,0x02,0x00, +0xa9,0x00,0x00,0x00,0x1d,0x00,0x03,0x00,0xcf,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0xd0,0x00,0x00,0x00, +0xcf,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0xd1,0x00,0x00,0x00, +0x0c,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0x3b,0x00,0x04,0x00, +0xd1,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, +0x20,0x00,0x04,0x00,0xd8,0x00,0x00,0x00,0x0c,0x00,0x00,0x00, 0x08,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0xe7,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x34,0x00,0x06,0x00, -0x06,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,0x86,0x00,0x00,0x00, -0x8f,0x00,0x00,0x00,0xa6,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, -0x06,0x01,0x00,0x00,0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, -0x07,0x01,0x00,0x00,0x06,0x01,0x00,0x00,0x20,0x00,0x04,0x00, -0x08,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x07,0x01,0x00,0x00, -0x3b,0x00,0x04,0x00,0x08,0x01,0x00,0x00,0x09,0x01,0x00,0x00, +0xee,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x34,0x00,0x06,0x00, +0x06,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x86,0x00,0x00,0x00, +0x97,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x1d,0x00,0x03,0x00, +0x0d,0x01,0x00,0x00,0x08,0x00,0x00,0x00,0x1e,0x00,0x03,0x00, +0x0e,0x01,0x00,0x00,0x0d,0x01,0x00,0x00,0x20,0x00,0x04,0x00, +0x0f,0x01,0x00,0x00,0x0c,0x00,0x00,0x00,0x0e,0x01,0x00,0x00, +0x3b,0x00,0x04,0x00,0x0f,0x01,0x00,0x00,0x10,0x01,0x00,0x00, 0x0c,0x00,0x00,0x00,0x32,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x10,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x33,0x00,0x06,0x00, -0x44,0x00,0x00,0x00,0x11,0x01,0x00,0x00,0x10,0x01,0x00,0x00, +0x17,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x33,0x00,0x06,0x00, +0x44,0x00,0x00,0x00,0x18,0x01,0x00,0x00,0x17,0x01,0x00,0x00, 0x38,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x36,0x00,0x05,0x00, 0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x03,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x05,0x00,0x00,0x00, 0x41,0x00,0x05,0x00,0x47,0x00,0x00,0x00,0x7f,0x00,0x00,0x00, 0x7d,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, 0x06,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x7f,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x47,0x00,0x00,0x00,0x83,0x00,0x00,0x00, -0x82,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x83,0x00,0x00,0x00, -0x41,0x00,0x05,0x00,0x47,0x00,0x00,0x00,0x19,0x01,0x00,0x00, -0x46,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x1a,0x01,0x00,0x00,0x19,0x01,0x00,0x00, -0x41,0x00,0x05,0x00,0x50,0x00,0x00,0x00,0x1c,0x01,0x00,0x00, -0x4e,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x1d,0x01,0x00,0x00,0x1c,0x01,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x1e,0x01,0x00,0x00, -0x1a,0x01,0x00,0x00,0x1d,0x01,0x00,0x00,0x89,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x22,0x01,0x00,0x00,0x1a,0x01,0x00,0x00, -0x1d,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x50,0x00,0x00,0x00, -0x24,0x01,0x00,0x00,0x4e,0x00,0x00,0x00,0x5b,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x25,0x01,0x00,0x00, -0x24,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x26,0x01,0x00,0x00,0x1e,0x01,0x00,0x00,0x25,0x01,0x00,0x00, -0x41,0x00,0x05,0x00,0x50,0x00,0x00,0x00,0x28,0x01,0x00,0x00, -0x4e,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x29,0x01,0x00,0x00,0x28,0x01,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x2a,0x01,0x00,0x00, -0x22,0x01,0x00,0x00,0x29,0x01,0x00,0x00,0x41,0x00,0x05,0x00, -0x50,0x00,0x00,0x00,0x2c,0x01,0x00,0x00,0x4e,0x00,0x00,0x00, -0x67,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x2d,0x01,0x00,0x00,0x2c,0x01,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x2e,0x01,0x00,0x00,0x26,0x01,0x00,0x00, -0x2d,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x30,0x01,0x00,0x00,0x2e,0x01,0x00,0x00,0x2a,0x01,0x00,0x00, -0x41,0x00,0x05,0x00,0x50,0x00,0x00,0x00,0x32,0x01,0x00,0x00, -0x4e,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x06,0x00,0x00,0x00,0x33,0x01,0x00,0x00,0x32,0x01,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x34,0x01,0x00,0x00, -0x30,0x01,0x00,0x00,0x33,0x01,0x00,0x00,0x41,0x00,0x05,0x00, -0x50,0x00,0x00,0x00,0x36,0x01,0x00,0x00,0x4e,0x00,0x00,0x00, -0x73,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, -0x37,0x01,0x00,0x00,0x36,0x01,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x38,0x01,0x00,0x00,0x1a,0x01,0x00,0x00, -0x37,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x50,0x00,0x00,0x00, -0x3a,0x01,0x00,0x00,0x4e,0x00,0x00,0x00,0x78,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x3b,0x01,0x00,0x00, -0x3a,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x3c,0x01,0x00,0x00,0x1a,0x01,0x00,0x00,0x3b,0x01,0x00,0x00, -0x41,0x00,0x05,0x00,0x95,0x00,0x00,0x00,0x96,0x00,0x00,0x00, -0x92,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x3e,0x00,0x03,0x00, -0x96,0x00,0x00,0x00,0x94,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, -0x98,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x98,0x00,0x00,0x00, -0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x5c,0x01,0x00,0x00, -0x7e,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0xe6,0x00,0x00,0x00, -0x99,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x50,0x00,0x00,0x00, -0x9e,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x9f,0x00,0x00,0x00, -0x9e,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xa0,0x00,0x00,0x00,0x9f,0x00,0x00,0x00,0x8f,0x00,0x00,0x00, -0xb0,0x00,0x05,0x00,0xa1,0x00,0x00,0x00,0xa2,0x00,0x00,0x00, -0x5c,0x01,0x00,0x00,0xa0,0x00,0x00,0x00,0xf6,0x00,0x04,0x00, -0x9a,0x00,0x00,0x00,0x99,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0xfa,0x00,0x04,0x00,0xa2,0x00,0x00,0x00,0x99,0x00,0x00,0x00, -0x9a,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x99,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xa5,0x00,0x00,0x00, -0x5c,0x01,0x00,0x00,0x8f,0x00,0x00,0x00,0x84,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,0xa6,0x00,0x00,0x00, -0x84,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xa9,0x00,0x00,0x00,0xa5,0x00,0x00,0x00,0xa8,0x00,0x00,0x00, -0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xae,0x00,0x00,0x00, -0x80,0x00,0x00,0x00,0x9f,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xb0,0x00,0x00,0x00,0xae,0x00,0x00,0x00, -0xa9,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xb1,0x00,0x00,0x00,0xb0,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, -0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb4,0x00,0x00,0x00, -0xa9,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x86,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,0xb4,0x00,0x00,0x00, -0x38,0x00,0x00,0x00,0x82,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xba,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,0xb4,0x00,0x00,0x00, -0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbe,0x00,0x00,0x00, -0x34,0x01,0x00,0x00,0x1a,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0x42,0x01,0x00,0x00,0xbe,0x00,0x00,0x00, -0xb1,0x00,0x00,0x00,0x41,0x00,0x07,0x00,0x26,0x00,0x00,0x00, -0x43,0x01,0x00,0x00,0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x42,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x18,0x00,0x00,0x00,0x44,0x01,0x00,0x00,0x43,0x01,0x00,0x00, -0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x45,0x01,0x00,0x00, -0x44,0x01,0x00,0x00,0x41,0x00,0x08,0x00,0x2f,0x00,0x00,0x00, -0x4a,0x01,0x00,0x00,0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0x42,0x01,0x00,0x00,0x2d,0x00,0x00,0x00,0xb5,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x4b,0x01,0x00,0x00, -0x4a,0x01,0x00,0x00,0x72,0x00,0x04,0x00,0x21,0x00,0x00,0x00, -0x4c,0x01,0x00,0x00,0x4b,0x01,0x00,0x00,0x6f,0x00,0x04,0x00, -0x08,0x00,0x00,0x00,0x4d,0x01,0x00,0x00,0x4c,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x52,0x01,0x00,0x00, -0xb5,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x41,0x00,0x08,0x00, -0x2f,0x00,0x00,0x00,0x53,0x01,0x00,0x00,0x20,0x00,0x00,0x00, -0x22,0x00,0x00,0x00,0x42,0x01,0x00,0x00,0x2d,0x00,0x00,0x00, -0x52,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x19,0x00,0x00,0x00, -0x54,0x01,0x00,0x00,0x53,0x01,0x00,0x00,0x72,0x00,0x04,0x00, -0x21,0x00,0x00,0x00,0x55,0x01,0x00,0x00,0x54,0x01,0x00,0x00, -0x6f,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x56,0x01,0x00,0x00, -0x55,0x01,0x00,0x00,0x50,0x00,0x05,0x00,0x09,0x00,0x00,0x00, -0x57,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,0x56,0x01,0x00,0x00, -0x8e,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0x59,0x01,0x00,0x00, -0x57,0x01,0x00,0x00,0x45,0x01,0x00,0x00,0x51,0x00,0x05,0x00, -0x08,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,0x59,0x01,0x00,0x00, -0x00,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0xce,0x00,0x00,0x00,0x38,0x01,0x00,0x00,0xba,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xd0,0x00,0x00,0x00, -0xce,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,0x41,0x00,0x06,0x00, -0xd1,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,0xcb,0x00,0x00,0x00, -0x22,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, -0x08,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,0xd2,0x00,0x00,0x00, -0x51,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0xd6,0x00,0x00,0x00, -0x59,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xdc,0x00,0x00,0x00,0xd0,0x00,0x00,0x00, -0x38,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0xd1,0x00,0x00,0x00, -0xdd,0x00,0x00,0x00,0xcb,0x00,0x00,0x00,0x22,0x00,0x00,0x00, -0xdc,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, -0xde,0x00,0x00,0x00,0xdd,0x00,0x00,0x00,0x85,0x00,0x05,0x00, -0x08,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0xd6,0x00,0x00,0x00, -0xde,0x00,0x00,0x00,0x0c,0x00,0x08,0x00,0x08,0x00,0x00,0x00, -0xe0,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00, -0xc7,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,0xdf,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xe2,0x00,0x00,0x00, -0x96,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00, -0xe3,0x00,0x00,0x00,0xe2,0x00,0x00,0x00,0xe0,0x00,0x00,0x00, -0x3e,0x00,0x03,0x00,0x96,0x00,0x00,0x00,0xe3,0x00,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe6,0x00,0x00,0x00, -0x5c,0x01,0x00,0x00,0xa6,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, -0x98,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x9a,0x00,0x00,0x00, -0xe0,0x00,0x04,0x00,0xa6,0x00,0x00,0x00,0xa6,0x00,0x00,0x00, -0xe7,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xea,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0xea,0x00,0x00,0x00,0xf5,0x00,0x07,0x00, -0x06,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,0xe9,0x00,0x00,0x00, -0x9a,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0xed,0x00,0x00,0x00, -0xac,0x00,0x05,0x00,0xa1,0x00,0x00,0x00,0xf0,0x00,0x00,0x00, -0x5d,0x01,0x00,0x00,0x7e,0x00,0x00,0x00,0xf6,0x00,0x04,0x00, -0xec,0x00,0x00,0x00,0xed,0x00,0x00,0x00,0x01,0x00,0x00,0x00, -0xfa,0x00,0x04,0x00,0xf0,0x00,0x00,0x00,0xeb,0x00,0x00,0x00, -0xec,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xeb,0x00,0x00,0x00, -0xb0,0x00,0x05,0x00,0xa1,0x00,0x00,0x00,0xf3,0x00,0x00,0x00, -0x84,0x00,0x00,0x00,0x5d,0x01,0x00,0x00,0xf7,0x00,0x03,0x00, -0xf5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00, -0xf3,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,0xf5,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0xf4,0x00,0x00,0x00,0x80,0x00,0x05,0x00, -0x06,0x00,0x00,0x00,0xf9,0x00,0x00,0x00,0x84,0x00,0x00,0x00, -0x5d,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x95,0x00,0x00,0x00, -0xfa,0x00,0x00,0x00,0x92,0x00,0x00,0x00,0xf9,0x00,0x00,0x00, -0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xfb,0x00,0x00,0x00, -0xfa,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, -0xfd,0x00,0x00,0x00,0x96,0x00,0x00,0x00,0x81,0x00,0x05,0x00, -0x08,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0xfd,0x00,0x00,0x00, -0xfb,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0x96,0x00,0x00,0x00, -0xfe,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xf5,0x00,0x00,0x00, -0xf8,0x00,0x02,0x00,0xf5,0x00,0x00,0x00,0xe0,0x00,0x04,0x00, -0xa6,0x00,0x00,0x00,0xa6,0x00,0x00,0x00,0xe7,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0xed,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0xed,0x00,0x00,0x00,0xc2,0x00,0x05,0x00,0x06,0x00,0x00,0x00, -0x01,0x01,0x00,0x00,0x5d,0x01,0x00,0x00,0x2d,0x00,0x00,0x00, -0xf9,0x00,0x02,0x00,0xea,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, -0xec,0x00,0x00,0x00,0xaa,0x00,0x05,0x00,0xa1,0x00,0x00,0x00, -0x03,0x01,0x00,0x00,0x84,0x00,0x00,0x00,0x7e,0x00,0x00,0x00, -0xf7,0x00,0x03,0x00,0x05,0x01,0x00,0x00,0x00,0x00,0x00,0x00, -0xfa,0x00,0x04,0x00,0x03,0x01,0x00,0x00,0x04,0x01,0x00,0x00, -0x05,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x04,0x01,0x00,0x00, -0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x0c,0x01,0x00,0x00, -0x3c,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x41,0x00,0x05,0x00, -0x95,0x00,0x00,0x00,0x0d,0x01,0x00,0x00,0x92,0x00,0x00,0x00, -0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, -0x0e,0x01,0x00,0x00,0x0d,0x01,0x00,0x00,0x41,0x00,0x06,0x00, -0xd1,0x00,0x00,0x00,0x0f,0x01,0x00,0x00,0x09,0x01,0x00,0x00, -0x22,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,0x3e,0x00,0x03,0x00, -0x0f,0x01,0x00,0x00,0x0e,0x01,0x00,0x00,0xf9,0x00,0x02,0x00, -0x05,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x05,0x01,0x00,0x00, -0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00, +0x41,0x00,0x05,0x00,0x47,0x00,0x00,0x00,0x82,0x00,0x00,0x00, +0x81,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x83,0x00,0x00,0x00,0x82,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x47,0x00,0x00,0x00,0x85,0x00,0x00,0x00, +0x7d,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x85,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x87,0x00,0x00,0x00, +0x83,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x88,0x00,0x00,0x00,0x80,0x00,0x00,0x00, +0x87,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x47,0x00,0x00,0x00, +0x8b,0x00,0x00,0x00,0x8a,0x00,0x00,0x00,0x7e,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x8c,0x00,0x00,0x00, +0x8b,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x47,0x00,0x00,0x00, +0x20,0x01,0x00,0x00,0x46,0x00,0x00,0x00,0x38,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x21,0x01,0x00,0x00, +0x20,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x50,0x00,0x00,0x00, +0x23,0x01,0x00,0x00,0x4e,0x00,0x00,0x00,0x4f,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x24,0x01,0x00,0x00, +0x23,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x25,0x01,0x00,0x00,0x21,0x01,0x00,0x00,0x24,0x01,0x00,0x00, +0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x29,0x01,0x00,0x00, +0x21,0x01,0x00,0x00,0x24,0x01,0x00,0x00,0x41,0x00,0x05,0x00, +0x50,0x00,0x00,0x00,0x2b,0x01,0x00,0x00,0x4e,0x00,0x00,0x00, +0x5b,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x2c,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x2d,0x01,0x00,0x00,0x25,0x01,0x00,0x00, +0x2c,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x50,0x00,0x00,0x00, +0x2f,0x01,0x00,0x00,0x4e,0x00,0x00,0x00,0x61,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x30,0x01,0x00,0x00, +0x2f,0x01,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x31,0x01,0x00,0x00,0x29,0x01,0x00,0x00,0x30,0x01,0x00,0x00, +0x41,0x00,0x05,0x00,0x50,0x00,0x00,0x00,0x33,0x01,0x00,0x00, +0x4e,0x00,0x00,0x00,0x67,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x34,0x01,0x00,0x00,0x33,0x01,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x35,0x01,0x00,0x00, +0x2d,0x01,0x00,0x00,0x34,0x01,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x37,0x01,0x00,0x00,0x35,0x01,0x00,0x00, +0x31,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x50,0x00,0x00,0x00, +0x39,0x01,0x00,0x00,0x4e,0x00,0x00,0x00,0x6e,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x3a,0x01,0x00,0x00, +0x39,0x01,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x3b,0x01,0x00,0x00,0x37,0x01,0x00,0x00,0x3a,0x01,0x00,0x00, +0x41,0x00,0x05,0x00,0x50,0x00,0x00,0x00,0x3d,0x01,0x00,0x00, +0x4e,0x00,0x00,0x00,0x73,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x06,0x00,0x00,0x00,0x3e,0x01,0x00,0x00,0x3d,0x01,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x3f,0x01,0x00,0x00, +0x21,0x01,0x00,0x00,0x3e,0x01,0x00,0x00,0x41,0x00,0x05,0x00, +0x50,0x00,0x00,0x00,0x41,0x01,0x00,0x00,0x4e,0x00,0x00,0x00, +0x78,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0x42,0x01,0x00,0x00,0x41,0x01,0x00,0x00,0x84,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x43,0x01,0x00,0x00,0x21,0x01,0x00,0x00, +0x42,0x01,0x00,0x00,0x41,0x00,0x05,0x00,0x9d,0x00,0x00,0x00, +0x9e,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,0x8c,0x00,0x00,0x00, +0x3e,0x00,0x03,0x00,0x9e,0x00,0x00,0x00,0x9c,0x00,0x00,0x00, +0xf9,0x00,0x02,0x00,0xa0,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xa0,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00, +0x63,0x01,0x00,0x00,0x7e,0x00,0x00,0x00,0x05,0x00,0x00,0x00, +0xed,0x00,0x00,0x00,0xa1,0x00,0x00,0x00,0x41,0x00,0x05,0x00, +0x50,0x00,0x00,0x00,0xa6,0x00,0x00,0x00,0x4e,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x06,0x00,0x00,0x00, +0xa7,0x00,0x00,0x00,0xa6,0x00,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,0xa7,0x00,0x00,0x00, +0x97,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0xa9,0x00,0x00,0x00, +0xaa,0x00,0x00,0x00,0x63,0x01,0x00,0x00,0xa8,0x00,0x00,0x00, +0xf6,0x00,0x04,0x00,0xa2,0x00,0x00,0x00,0xa1,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xaa,0x00,0x00,0x00, +0xa1,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xa1,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xad,0x00,0x00,0x00,0x63,0x01,0x00,0x00,0x97,0x00,0x00,0x00, +0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xaf,0x00,0x00,0x00, +0x84,0x00,0x00,0x00,0x8c,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xb0,0x00,0x00,0x00,0xad,0x00,0x00,0x00, +0xaf,0x00,0x00,0x00,0x84,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xb5,0x00,0x00,0x00,0x88,0x00,0x00,0x00,0xa7,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xb7,0x00,0x00,0x00, +0xb5,0x00,0x00,0x00,0xb0,0x00,0x00,0x00,0x86,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0xb7,0x00,0x00,0x00, +0x1a,0x00,0x00,0x00,0x89,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xbb,0x00,0x00,0x00,0xb0,0x00,0x00,0x00,0x1a,0x00,0x00,0x00, +0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xbc,0x00,0x00,0x00, +0xbb,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x82,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xc1,0x00,0x00,0x00,0xb0,0x00,0x00,0x00, +0xbb,0x00,0x00,0x00,0x86,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xc5,0x00,0x00,0x00,0x3b,0x01,0x00,0x00,0x1a,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x49,0x01,0x00,0x00, +0xc5,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0x41,0x00,0x07,0x00, +0x26,0x00,0x00,0x00,0x4a,0x01,0x00,0x00,0x20,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x49,0x01,0x00,0x00,0x22,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x4b,0x01,0x00,0x00, +0x4a,0x01,0x00,0x00,0x73,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0x4c,0x01,0x00,0x00,0x4b,0x01,0x00,0x00,0x41,0x00,0x08,0x00, +0x2f,0x00,0x00,0x00,0x51,0x01,0x00,0x00,0x20,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x49,0x01,0x00,0x00,0x2d,0x00,0x00,0x00, +0xbc,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x19,0x00,0x00,0x00, +0x52,0x01,0x00,0x00,0x51,0x01,0x00,0x00,0x72,0x00,0x04,0x00, +0x21,0x00,0x00,0x00,0x53,0x01,0x00,0x00,0x52,0x01,0x00,0x00, +0x6f,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x54,0x01,0x00,0x00, +0x53,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x59,0x01,0x00,0x00,0xbc,0x00,0x00,0x00,0x38,0x00,0x00,0x00, +0x41,0x00,0x08,0x00,0x2f,0x00,0x00,0x00,0x5a,0x01,0x00,0x00, +0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x49,0x01,0x00,0x00, +0x2d,0x00,0x00,0x00,0x59,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0x19,0x00,0x00,0x00,0x5b,0x01,0x00,0x00,0x5a,0x01,0x00,0x00, +0x72,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x5c,0x01,0x00,0x00, +0x5b,0x01,0x00,0x00,0x6f,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0x5d,0x01,0x00,0x00,0x5c,0x01,0x00,0x00,0x50,0x00,0x05,0x00, +0x09,0x00,0x00,0x00,0x5e,0x01,0x00,0x00,0x54,0x01,0x00,0x00, +0x5d,0x01,0x00,0x00,0x8e,0x00,0x05,0x00,0x09,0x00,0x00,0x00, +0x60,0x01,0x00,0x00,0x5e,0x01,0x00,0x00,0x4c,0x01,0x00,0x00, +0x51,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0xce,0x00,0x00,0x00, +0x60,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0x3f,0x01,0x00,0x00, +0xc1,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xd7,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0xbc,0x00,0x00,0x00, +0x41,0x00,0x06,0x00,0xd8,0x00,0x00,0x00,0xd9,0x00,0x00,0x00, +0xd2,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0xd7,0x00,0x00,0x00, +0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0xda,0x00,0x00,0x00, +0xd9,0x00,0x00,0x00,0x51,0x00,0x05,0x00,0x08,0x00,0x00,0x00, +0xdd,0x00,0x00,0x00,0x60,0x01,0x00,0x00,0x01,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0xe3,0x00,0x00,0x00, +0xd7,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x41,0x00,0x06,0x00, +0xd8,0x00,0x00,0x00,0xe4,0x00,0x00,0x00,0xd2,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0xe3,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x08,0x00,0x00,0x00,0xe5,0x00,0x00,0x00,0xe4,0x00,0x00,0x00, +0x85,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0xe6,0x00,0x00,0x00, +0xdd,0x00,0x00,0x00,0xe5,0x00,0x00,0x00,0x0c,0x00,0x08,0x00, +0x08,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x32,0x00,0x00,0x00,0xce,0x00,0x00,0x00,0xda,0x00,0x00,0x00, +0xe6,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0xe9,0x00,0x00,0x00,0x9e,0x00,0x00,0x00,0x81,0x00,0x05,0x00, +0x08,0x00,0x00,0x00,0xea,0x00,0x00,0x00,0xe9,0x00,0x00,0x00, +0xe7,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0x9e,0x00,0x00,0x00, +0xea,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0xed,0x00,0x00,0x00,0x63,0x01,0x00,0x00,0x84,0x00,0x00,0x00, +0xf9,0x00,0x02,0x00,0xa0,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xa2,0x00,0x00,0x00,0xe0,0x00,0x04,0x00,0x84,0x00,0x00,0x00, +0x84,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0xf9,0x00,0x02,0x00, +0xf1,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xf1,0x00,0x00,0x00, +0xf5,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x64,0x01,0x00,0x00, +0xf0,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,0x08,0x01,0x00,0x00, +0xf4,0x00,0x00,0x00,0xac,0x00,0x05,0x00,0xa9,0x00,0x00,0x00, +0xf7,0x00,0x00,0x00,0x64,0x01,0x00,0x00,0x7e,0x00,0x00,0x00, +0xf6,0x00,0x04,0x00,0xf3,0x00,0x00,0x00,0xf4,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xf7,0x00,0x00,0x00, +0xf2,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,0xf8,0x00,0x02,0x00, +0xf2,0x00,0x00,0x00,0xb0,0x00,0x05,0x00,0xa9,0x00,0x00,0x00, +0xfa,0x00,0x00,0x00,0x8c,0x00,0x00,0x00,0x64,0x01,0x00,0x00, +0xf7,0x00,0x03,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xfa,0x00,0x04,0x00,0xfa,0x00,0x00,0x00,0xfb,0x00,0x00,0x00, +0xfc,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xfb,0x00,0x00,0x00, +0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x00,0x01,0x00,0x00, +0x8c,0x00,0x00,0x00,0x64,0x01,0x00,0x00,0x41,0x00,0x05,0x00, +0x9d,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x9a,0x00,0x00,0x00, +0x00,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x08,0x00,0x00,0x00, +0x02,0x01,0x00,0x00,0x01,0x01,0x00,0x00,0x3d,0x00,0x04,0x00, +0x08,0x00,0x00,0x00,0x04,0x01,0x00,0x00,0x9e,0x00,0x00,0x00, +0x81,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0x05,0x01,0x00,0x00, +0x04,0x01,0x00,0x00,0x02,0x01,0x00,0x00,0x3e,0x00,0x03,0x00, +0x9e,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0xf9,0x00,0x02,0x00, +0xfc,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xfc,0x00,0x00,0x00, +0xe0,0x00,0x04,0x00,0x84,0x00,0x00,0x00,0x84,0x00,0x00,0x00, +0xee,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xf4,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0xf4,0x00,0x00,0x00,0xc2,0x00,0x05,0x00, +0x06,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x64,0x01,0x00,0x00, +0x2d,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xf1,0x00,0x00,0x00, +0xf8,0x00,0x02,0x00,0xf3,0x00,0x00,0x00,0xaa,0x00,0x05,0x00, +0xa9,0x00,0x00,0x00,0x0a,0x01,0x00,0x00,0x8c,0x00,0x00,0x00, +0x7e,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0x0c,0x01,0x00,0x00, +0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x0a,0x01,0x00,0x00, +0x0b,0x01,0x00,0x00,0x0c,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, +0x0b,0x01,0x00,0x00,0x80,0x00,0x05,0x00,0x06,0x00,0x00,0x00, +0x13,0x01,0x00,0x00,0x43,0x01,0x00,0x00,0x88,0x00,0x00,0x00, +0x41,0x00,0x05,0x00,0x9d,0x00,0x00,0x00,0x14,0x01,0x00,0x00, +0x9a,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00, +0x08,0x00,0x00,0x00,0x15,0x01,0x00,0x00,0x14,0x01,0x00,0x00, +0x41,0x00,0x06,0x00,0xd8,0x00,0x00,0x00,0x16,0x01,0x00,0x00, +0x10,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x13,0x01,0x00,0x00, +0x3e,0x00,0x03,0x00,0x16,0x01,0x00,0x00,0x15,0x01,0x00,0x00, +0xf9,0x00,0x02,0x00,0x0c,0x01,0x00,0x00,0xf8,0x00,0x02,0x00, +0x0c,0x01,0x00,0x00,0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00, + }; -const uint64_t mul_mat_vec_q8_0_f32_f32_len = 3884; +const uint64_t mul_mat_vec_q8_0_f32_f32_len = 4032; unsigned char norm_f32_data[] = { 0x03,0x02,0x23,0x07,0x00,0x05,0x01,0x00,0x0b,0x00,0x0d,0x00, diff --git a/ggml-vulkan.cpp b/ggml-vulkan.cpp index 87af33b563271..c31877403b0d5 100644 --- a/ggml-vulkan.cpp +++ b/ggml-vulkan.cpp @@ -17,6 +17,8 @@ #include #include #include +#include +#include #include "ggml.h" #include "ggml-backend-impl.h" @@ -103,7 +105,41 @@ struct vk_matmul_pipeline_struct { typedef std::shared_ptr vk_matmul_pipeline; -struct vk_device { +struct vk_device_struct; +typedef std::shared_ptr vk_device; +typedef std::weak_ptr vk_device_ref; + +struct vk_buffer_struct; +typedef std::shared_ptr vk_buffer; +typedef std::weak_ptr vk_buffer_ref; + +struct ggml_backend_vk_buffer_type_context { + std::string name; + vk_device device; +}; + +GGML_CALL static const char * ggml_backend_vk_buffer_type_name(ggml_backend_buffer_type_t buft); +GGML_CALL static ggml_backend_buffer_t ggml_backend_vk_buffer_type_alloc_buffer(ggml_backend_buffer_type_t buft, size_t size); +GGML_CALL static size_t ggml_backend_vk_buffer_type_get_alignment(ggml_backend_buffer_type_t buft); +GGML_CALL static size_t ggml_backend_vk_buffer_type_get_max_size(ggml_backend_buffer_type_t buft); +GGML_CALL static size_t ggml_backend_vk_buffer_type_get_alloc_size(ggml_backend_buffer_type_t buft, const ggml_tensor * tensor); +static ggml_backend_buffer_type_i ggml_backend_vk_buffer_type_interface = { + /* .get_name = */ ggml_backend_vk_buffer_type_name, + /* .alloc_buffer = */ ggml_backend_vk_buffer_type_alloc_buffer, + /* .get_alignment = */ ggml_backend_vk_buffer_type_get_alignment, + /* .get_max_size = */ ggml_backend_vk_buffer_type_get_max_size, + /* .get_alloc_size = */ ggml_backend_vk_buffer_type_get_alloc_size, + /* .is_host = */ NULL, +}; + +#ifdef GGML_VULKAN_MEMORY_DEBUG +class vk_memory_logger; +#endif +static void ggml_vk_destroy_buffer(vk_buffer& buf); + +struct vk_device_struct { + std::mutex mutex; + vk::PhysicalDevice physical_device; vk::PhysicalDeviceProperties properties; std::string name; @@ -118,7 +154,6 @@ struct vk_device { uint32_t subgroup_size; bool uma; - bool initialized; size_t idx; vk_matmul_pipeline pipeline_matmul_f32; @@ -165,8 +200,24 @@ struct vk_device { std::vector pipelines; - ~vk_device() { + std::vector> pinned_memory; + + vk::Fence fence; + vk_buffer sync_staging; + + ggml_backend_buffer_type buffer_type; + +#ifdef GGML_VULKAN_MEMORY_DEBUG + std::unique_ptr memory_logger; +#endif + + ~vk_device_struct() { VK_LOG_DEBUG("destroy device " << name); + + device.destroyFence(fence); + + ggml_vk_destroy_buffer(sync_staging); + device.destroyCommandPool(compute_queue.pool); if (!single_queue) { device.destroyCommandPool(transfer_queue.pool); @@ -193,9 +244,7 @@ struct vk_buffer_struct { void * ptr; size_t size = 0; - ggml_backend_vk_context * ctx; - - std::shared_ptr device; + vk_device device; ~vk_buffer_struct() { if (size == 0) { @@ -208,9 +257,6 @@ struct vk_buffer_struct { } }; -typedef std::shared_ptr vk_buffer; -typedef std::weak_ptr vk_buffer_ref; - struct vk_subbuffer { vk_buffer buffer; uint64_t offset; @@ -359,8 +405,6 @@ struct ggml_vk_garbage_collector { }; #if defined(GGML_VULKAN_MEMORY_DEBUG) || defined(GGML_VULKAN_DEBUG) -#include - #define VK_LOG_MEMORY(msg) std::cerr << "ggml_vulkan memory: " << msg << std::endl static std::string format_size(size_t size) { @@ -404,31 +448,21 @@ class vk_memory_logger { struct ggml_backend_vk_context { std::string name; - std::shared_ptr device; + vk_device device; size_t semaphore_idx, event_idx; ggml_vk_garbage_collector gc; - std::vector> pinned_memory; size_t prealloc_size_x, prealloc_size_y, prealloc_size_split_k; vk_buffer prealloc_x, prealloc_y, prealloc_split_k; vk::Fence fence; vk_buffer staging; size_t staging_size; size_t staging_offset; - vk_buffer sync_staging; vk_buffer buffer_pool[MAX_VK_BUFFERS]; vk_context * compute_ctx; vk_context * transfer_ctx; - - bool initialized; - - size_t idx; - -#ifdef GGML_VULKAN_MEMORY_DEBUG - vk_memory_logger memory_logger; -#endif }; #ifdef GGML_VULKAN_MEMORY_DEBUG @@ -440,7 +474,7 @@ void vk_memory_logger::log_allocation(vk_buffer_ref buf_ref, size_t size) { allocations[buf->buffer] = size; total_device += device ? size : 0; total_host += device ? 0 : size; - VK_LOG_MEMORY("VULKAN" << buf->ctx->idx << ": +" << format_size(size) << " " << type << " at " << buf->buffer << ". Total device: " << format_size(total_device) << ", total host: " << format_size(total_host)); + VK_LOG_MEMORY(buf->device->name << ": +" << format_size(size) << " " << type << " at " << buf->buffer << ". Total device: " << format_size(total_device) << ", total host: " << format_size(total_host)); } void vk_memory_logger::log_deallocation(vk_buffer_ref buf_ref) { @@ -456,10 +490,10 @@ void vk_memory_logger::log_deallocation(vk_buffer_ref buf_ref) { total_device -= device ? it->second : 0; total_host -= device ? 0 : it->second; if (it != allocations.end()) { - VK_LOG_MEMORY("VULKAN" << buf->ctx->idx << ": -" << format_size(it->second) << " " << type << " at " << buf->buffer << ". Total device: " << format_size(total_device) << ", total host: " << format_size(total_host)); + VK_LOG_MEMORY(buf->device->name << ": -" << format_size(it->second) << " " << type << " at " << buf->buffer << ". Total device: " << format_size(total_device) << ", total host: " << format_size(total_host)); allocations.erase(it); } else { - VK_LOG_MEMORY("ERROR VULKAN" << buf->ctx->idx << ": Attempted to deallocate unknown " << type << " memory at " << buf->buffer); + VK_LOG_MEMORY("ERROR " << buf->device->name << ": Attempted to deallocate unknown " << type << " memory at " << buf->buffer); } } #endif // GGML_VULKAN_MEMORY_DEBUG @@ -468,27 +502,11 @@ struct vk_instance_t { vk::Instance instance; std::vector device_indices; - - ggml_backend_t backends[GGML_VK_MAX_DEVICES]; - ggml_backend_vk_context contexts[GGML_VK_MAX_DEVICES]; - ggml_backend_buffer_type buffer_types[GGML_VK_MAX_DEVICES]; - bool initialized[GGML_VK_MAX_DEVICES]; + vk_device devices[GGML_VK_MAX_DEVICES]; }; -static std::shared_ptr ggml_vk_get_device(size_t idx) { - VK_LOG_DEBUG("ggml_vk_get_device(" << idx << ")"); - static std::weak_ptr devices[GGML_VK_MAX_DEVICES]; - - if (devices[idx].expired()) { - VK_LOG_DEBUG("Initializing new vk_device"); - std::shared_ptr device = std::make_shared(); - device->initialized = false; - devices[idx] = device; - return device; - } - - return devices[idx].lock(); -} +static bool vk_instance_initialized = false; +static vk_instance_t vk_instance; #ifdef GGML_VULKAN_CHECK_RESULTS static size_t vk_skip_checks; @@ -501,16 +519,15 @@ static void ggml_vk_check_results_1(ggml_backend_vk_context * ctx, ggml_compute_ typedef void (*ggml_vk_func_t)(ggml_backend_vk_context * ctx, vk_context * subctx, const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst); -static bool vk_instance_initialized = false; -static vk_instance_t vk_instance; - GGML_CALL static void ggml_backend_vk_free(ggml_backend_t backend); -static void ggml_vk_create_pipeline(ggml_backend_vk_context * ctx, vk_pipeline& pipeline, const std::string& name, size_t spv_size, const void* spv_data, const std::string& entrypoint, uint32_t parameter_count, uint32_t push_constant_size, std::array wg_denoms, std::vector&& specialization_constants, uint32_t align) { - VK_LOG_DEBUG("ggml_vk_create_pipeline(" << name << ", " << entrypoint << ", " << parameter_count << ", " << push_constant_size << ", (" << wg_denoms[0] << "," << wg_denoms[1] << "," << wg_denoms[2] << "), specialization_constants, " << align << ")"); +static void ggml_vk_create_pipeline(vk_device& device, vk_pipeline& pipeline, const std::string& name, size_t spv_size, const void* spv_data, const std::string& entrypoint, uint32_t parameter_count, uint32_t push_constant_size, std::array wg_denoms, std::vector&& specialization_constants, uint32_t align) { + VK_LOG_DEBUG("ggml_vk_create_pipeline(" << device->name << ", " << name << ", " << entrypoint << ", " << parameter_count << ", " << push_constant_size << ", (" << wg_denoms[0] << "," << wg_denoms[1] << "," << wg_denoms[2] << "), specialization_constants, " << align << ")"); GGML_ASSERT(parameter_count > 0); GGML_ASSERT(wg_denoms[0] > 0 && wg_denoms[1] > 0 && wg_denoms[2] > 0); // NOLINT + std::lock_guard guard(device->mutex); + pipeline = std::make_shared(); pipeline->name = name; pipeline->parameter_count = parameter_count; @@ -519,7 +536,7 @@ static void ggml_vk_create_pipeline(ggml_backend_vk_context * ctx, vk_pipeline& pipeline->align = align; vk::ShaderModuleCreateInfo shader_module_create_info({}, spv_size, reinterpret_cast(spv_data)); - pipeline->shader_module = ctx->device->device.createShaderModule(shader_module_create_info); + pipeline->shader_module = device->device.createShaderModule(shader_module_create_info); std::vector dsl_binding; std::vector dsl_binding_flags; @@ -540,17 +557,17 @@ static void ggml_vk_create_pipeline(ggml_backend_vk_context * ctx, vk_pipeline& {}, dsl_binding); descriptor_set_layout_create_info.setPNext(&dslbfci); - pipeline->dsl = ctx->device->device.createDescriptorSetLayout(descriptor_set_layout_create_info); + pipeline->dsl = device->device.createDescriptorSetLayout(descriptor_set_layout_create_info); // Check if device supports multiple descriptors per pool - if (ctx->device->descriptor_set_mode == VK_DEVICE_DESCRIPTOR_POOL_MODE_UNKNOWN) { + if (device->descriptor_set_mode == VK_DEVICE_DESCRIPTOR_POOL_MODE_UNKNOWN) { const uint32_t alloc_count = 2; // Try allocating multiple sets from one pool // This fails on AMD for some reason, so add a fall back to allocating one pool per set vk::DescriptorPoolSize descriptor_pool_size(vk::DescriptorType::eStorageBuffer, pipeline->parameter_count); vk::DescriptorPoolCreateInfo descriptor_pool_create_info({}, alloc_count, descriptor_pool_size); - vk::DescriptorPool pool = ctx->device->device.createDescriptorPool(descriptor_pool_create_info); + vk::DescriptorPool pool = device->device.createDescriptorPool(descriptor_pool_create_info); std::vector layouts(alloc_count); for (uint32_t i = 0; i < alloc_count; i++) { @@ -558,24 +575,24 @@ static void ggml_vk_create_pipeline(ggml_backend_vk_context * ctx, vk_pipeline& } try { vk::DescriptorSetAllocateInfo descriptor_set_alloc_info(pool, alloc_count, layouts.data()); - std::vector sets = ctx->device->device.allocateDescriptorSets(descriptor_set_alloc_info); + std::vector sets = device->device.allocateDescriptorSets(descriptor_set_alloc_info); } catch(vk::OutOfPoolMemoryError const&) { - ctx->device->descriptor_set_mode = VK_DEVICE_DESCRIPTOR_POOL_MODE_SINGLE; + device->descriptor_set_mode = VK_DEVICE_DESCRIPTOR_POOL_MODE_SINGLE; } - ctx->device->device.destroyDescriptorPool(pool); + device->device.destroyDescriptorPool(pool); } - if (ctx->device->descriptor_set_mode == VK_DEVICE_DESCRIPTOR_POOL_MODE_MULTI) { + if (device->descriptor_set_mode == VK_DEVICE_DESCRIPTOR_POOL_MODE_MULTI) { vk::DescriptorPoolSize descriptor_pool_size(vk::DescriptorType::eStorageBuffer, pipeline->parameter_count); vk::DescriptorPoolCreateInfo descriptor_pool_create_info({}, 128, descriptor_pool_size); - pipeline->descriptor_pools.push_back(ctx->device->device.createDescriptorPool(descriptor_pool_create_info)); + pipeline->descriptor_pools.push_back(device->device.createDescriptorPool(descriptor_pool_create_info)); } pipeline->descriptor_set_idx = 0; vk::PipelineLayoutCreateInfo pipeline_layout_create_info(vk::PipelineLayoutCreateFlags(), pipeline->dsl, pcr); - pipeline->layout = ctx->device->device.createPipelineLayout(pipeline_layout_create_info); + pipeline->layout = device->device.createPipelineLayout(pipeline_layout_create_info); std::vector specialization_entries(specialization_constants.size()); @@ -602,9 +619,9 @@ static void ggml_vk_create_pipeline(ggml_backend_vk_context * ctx, vk_pipeline& vk::PipelineCreateFlags(), pipeline_shader_create_info, pipeline->layout); - pipeline->pipeline = ctx->device->device.createComputePipeline(VK_NULL_HANDLE, compute_pipeline_create_info).value; + pipeline->pipeline = device->device.createComputePipeline(VK_NULL_HANDLE, compute_pipeline_create_info).value; - ctx->device->pipelines.push_back(pipeline); + device->pipelines.push_back(pipeline); } static void ggml_vk_destroy_pipeline(vk::Device& device, vk_pipeline& pipeline) { @@ -625,14 +642,16 @@ static void ggml_vk_destroy_pipeline(vk::Device& device, vk_pipeline& pipeline) device.destroyPipeline(pipeline->pipeline); } -static void ggml_pipeline_allocate_descriptor_sets(ggml_backend_vk_context * ctx, vk_pipeline& pipeline, uint32_t n) { +static void ggml_pipeline_allocate_descriptor_sets(vk_device& device, vk_pipeline& pipeline, uint32_t n) { VK_LOG_DEBUG("ggml_pipeline_allocate_descriptor_sets(" << pipeline->name << ", " << n << ")"); if (pipeline->descriptor_sets.size() >= pipeline->descriptor_set_idx + n) { // Enough descriptors are available return; } - if (ctx->device->descriptor_set_mode == VK_DEVICE_DESCRIPTOR_POOL_MODE_MULTI) { + std::lock_guard guard(device->mutex); + + if (device->descriptor_set_mode == VK_DEVICE_DESCRIPTOR_POOL_MODE_MULTI) { const uint32_t alloc_count = pipeline->descriptor_set_idx + n - pipeline->descriptor_sets.size(); std::vector layouts(alloc_count); @@ -640,16 +659,16 @@ static void ggml_pipeline_allocate_descriptor_sets(ggml_backend_vk_context * ctx layouts[i] = pipeline->dsl; } vk::DescriptorSetAllocateInfo descriptor_set_alloc_info(pipeline->descriptor_pools[0], alloc_count, layouts.data()); - std::vector sets = ctx->device->device.allocateDescriptorSets(descriptor_set_alloc_info); + std::vector sets = device->device.allocateDescriptorSets(descriptor_set_alloc_info); pipeline->descriptor_sets.insert(pipeline->descriptor_sets.end(), sets.begin(), sets.end()); } else { for (uint32_t i = pipeline->descriptor_sets.size(); i < pipeline->descriptor_set_idx + n; i++) { vk::DescriptorPoolSize descriptor_pool_size(vk::DescriptorType::eStorageBuffer, pipeline->parameter_count); vk::DescriptorPoolCreateInfo descriptor_pool_create_info({}, 1, descriptor_pool_size); - pipeline->descriptor_pools.push_back(ctx->device->device.createDescriptorPool(descriptor_pool_create_info)); + pipeline->descriptor_pools.push_back(device->device.createDescriptorPool(descriptor_pool_create_info)); vk::DescriptorSetAllocateInfo descriptor_set_alloc_info(pipeline->descriptor_pools[i], 1, &pipeline->dsl); - std::vector sets = ctx->device->device.allocateDescriptorSets(descriptor_set_alloc_info); + std::vector sets = device->device.allocateDescriptorSets(descriptor_set_alloc_info); pipeline->descriptor_sets.push_back(sets[0]); } } @@ -660,8 +679,10 @@ static void ggml_pipeline_cleanup(vk_pipeline& pipeline) { pipeline->descriptor_set_idx = 0; } -static vk::CommandBuffer ggml_vk_create_cmd_buffer(ggml_backend_vk_context * ctx, vk_queue& q) { +static vk::CommandBuffer ggml_vk_create_cmd_buffer(vk_device& device, vk_queue& q) { VK_LOG_DEBUG("ggml_vk_create_cmd_buffer()"); + std::lock_guard guard(device->mutex); + if (q.cmd_buffers.size() > q.cmd_buffer_idx) { // Reuse command buffer return q.cmd_buffers[q.cmd_buffer_idx++]; @@ -671,7 +692,7 @@ static vk::CommandBuffer ggml_vk_create_cmd_buffer(ggml_backend_vk_context * ctx q.pool, vk::CommandBufferLevel::ePrimary, 1); - const std::vector cmd_buffers = ctx->device->device.allocateCommandBuffers(command_buffer_alloc_info); + const std::vector cmd_buffers = device->device.allocateCommandBuffers(command_buffer_alloc_info); auto buf = cmd_buffers.front(); q.cmd_buffers.push_back(buf); @@ -680,10 +701,10 @@ static vk::CommandBuffer ggml_vk_create_cmd_buffer(ggml_backend_vk_context * ctx return buf; } -static vk_submission ggml_vk_create_submission(ggml_backend_vk_context * ctx, vk_queue& q, std::vector wait_semaphores, std::vector signal_semaphores) { +static vk_submission ggml_vk_create_submission(vk_device& device, vk_queue& q, std::vector wait_semaphores, std::vector signal_semaphores) { VK_LOG_DEBUG("ggml_vk_create_submission()"); vk_submission s; - s.buffer = ggml_vk_create_cmd_buffer(ctx, q); + s.buffer = ggml_vk_create_cmd_buffer(device, q); s.wait_semaphores = std::move(wait_semaphores); s.signal_semaphores = std::move(signal_semaphores); return s; @@ -809,16 +830,18 @@ static uint32_t ggml_vk_find_queue_family_index(std::vector guard(device->mutex); + q.queue_family_index = queue_family_index; vk::CommandPoolCreateInfo command_pool_create_info_compute(vk::CommandPoolCreateFlags(VK_COMMAND_POOL_CREATE_TRANSIENT_BIT), queue_family_index); - q.pool = ctx->device->device.createCommandPool(command_pool_create_info_compute); + q.pool = device->device.createCommandPool(command_pool_create_info_compute); q.cmd_buffer_idx = 0; - q.queue = ctx->device->device.getQueue(queue_family_index, queue_index); + q.queue = device->device.getQueue(queue_family_index, queue_index); q.stage_flags = stage_flags; } @@ -833,6 +856,15 @@ static vk_context * ggml_vk_create_context(ggml_backend_vk_context * ctx, vk_que return result; } +static vk_context * ggml_vk_create_temporary_context(vk_queue& q) { + VK_LOG_DEBUG("ggml_vk_create_temporary_context()"); + vk_context * result = new vk_context; + memset((void *) result, 0, sizeof(vk_context)); + result->idx = 0; + result->q = &q; + return result; +} + static vk_semaphore * ggml_vk_create_binary_semaphore(ggml_backend_vk_context * ctx) { VK_LOG_DEBUG("ggml_vk_create_timeline_semaphore()"); vk::SemaphoreTypeCreateInfo tci{ vk::SemaphoreType::eBinary, 0 }; @@ -862,11 +894,12 @@ static vk::Event ggml_vk_create_event(ggml_backend_vk_context * ctx) { return ctx->gc.events[ctx->event_idx++]; } -static void ggml_vk_queue_cleanup(ggml_backend_vk_context * ctx, vk_queue& q) { +static void ggml_vk_queue_cleanup(vk_device& device, vk_queue& q) { VK_LOG_DEBUG("ggml_vk_queue_cleanup()"); - // Requires command buffers to be done + std::lock_guard guard(device->mutex); - ctx->device->device.resetCommandPool(q.pool); + // Requires command buffers to be done + device->device.resetCommandPool(q.pool); q.cmd_buffer_idx = 0; } @@ -882,8 +915,10 @@ static uint32_t find_properties(const vk::PhysicalDeviceMemoryProperties* mem_pr return UINT32_MAX; } -static vk_buffer ggml_vk_create_buffer(ggml_backend_vk_context * ctx, size_t size, vk::MemoryPropertyFlags req_flags, vk::MemoryPropertyFlags fallback_flags = vk::MemoryPropertyFlags(0)) { - VK_LOG_DEBUG("ggml_vk_create_buffer(device " << ctx->idx << ", " << size << ", " << to_string(req_flags) << ", " << to_string(fallback_flags) << ")"); +static vk_buffer ggml_vk_create_buffer(vk_device& device, size_t size, vk::MemoryPropertyFlags req_flags, vk::MemoryPropertyFlags fallback_flags = vk::MemoryPropertyFlags(0)) { + VK_LOG_DEBUG("ggml_vk_create_buffer(" << device->name << ", " << size << ", " << to_string(req_flags) << ", " << to_string(fallback_flags) << ")"); + std::lock_guard guard(device->mutex); + vk_buffer buf = std::make_shared(); if (size == 0) { @@ -901,11 +936,11 @@ static vk_buffer ggml_vk_create_buffer(ggml_backend_vk_context * ctx, size_t siz nullptr, }; - buf->buffer = ctx->device->device.createBuffer(buffer_create_info); + buf->buffer = device->device.createBuffer(buffer_create_info); - vk::MemoryRequirements mem_req = ctx->device->device.getBufferMemoryRequirements(buf->buffer); + vk::MemoryRequirements mem_req = device->device.getBufferMemoryRequirements(buf->buffer); - vk::PhysicalDeviceMemoryProperties mem_props = ctx->device->physical_device.getMemoryProperties(); + vk::PhysicalDeviceMemoryProperties mem_props = device->physical_device.getMemoryProperties(); uint32_t memory_type_index = UINT32_MAX; @@ -918,41 +953,39 @@ static vk_buffer ggml_vk_create_buffer(ggml_backend_vk_context * ctx, size_t siz } if (memory_type_index == UINT32_MAX) { - ctx->device->device.destroyBuffer(buf->buffer); + device->device.destroyBuffer(buf->buffer); buf->size = 0; throw vk::OutOfDeviceMemoryError("No suitable memory type found"); } try { - buf->device_memory = ctx->device->device.allocateMemory({ mem_req.size, memory_type_index }); + buf->device_memory = device->device.allocateMemory({ mem_req.size, memory_type_index }); } catch (const vk::SystemError& e) { // Out of Host/Device memory, clean up buffer - ctx->device->device.destroyBuffer(buf->buffer); + device->device.destroyBuffer(buf->buffer); buf->size = 0; throw e; } buf->ptr = nullptr; if (buf->memory_property_flags & vk::MemoryPropertyFlagBits::eHostVisible) { - buf->ptr = ctx->device->device.mapMemory(buf->device_memory, 0, VK_WHOLE_SIZE); + buf->ptr = device->device.mapMemory(buf->device_memory, 0, VK_WHOLE_SIZE); } - ctx->device->device.bindBufferMemory(buf->buffer, buf->device_memory, 0); + device->device.bindBufferMemory(buf->buffer, buf->device_memory, 0); - buf->ctx = ctx; - - buf->device = ctx->device; + buf->device = device; #ifdef GGML_VULKAN_MEMORY_DEBUG - ctx->memory_logger.log_allocation(buf, size); + device->memory_logger->log_allocation(buf, size); #endif return buf; } -static vk_buffer ggml_vk_create_buffer_check(ggml_backend_vk_context * ctx, size_t size, vk::MemoryPropertyFlags req_flags, vk::MemoryPropertyFlags fallback_flags = vk::MemoryPropertyFlags(0)) { +static vk_buffer ggml_vk_create_buffer_check(vk_device& device, size_t size, vk::MemoryPropertyFlags req_flags, vk::MemoryPropertyFlags fallback_flags = vk::MemoryPropertyFlags(0)) { try { - return ggml_vk_create_buffer(ctx, size, req_flags, fallback_flags); + return ggml_vk_create_buffer(device, size, req_flags, fallback_flags); } catch (const vk::SystemError& e) { std::cerr << "ggml_vulkan: Memory allocation of size " << size << " failed." << std::endl; std::cerr << "ggml_vulkan: " << e.what() << std::endl; @@ -960,14 +993,14 @@ static vk_buffer ggml_vk_create_buffer_check(ggml_backend_vk_context * ctx, size } } -static vk_buffer ggml_vk_create_buffer_device(ggml_backend_vk_context * ctx, size_t size) { +static vk_buffer ggml_vk_create_buffer_device(vk_device& device, size_t size) { vk_buffer buf; try { - if (ctx->device->uma) { + if (device->uma) { // Fall back to host memory type - buf = ggml_vk_create_buffer(ctx, size, vk::MemoryPropertyFlagBits::eDeviceLocal, vk::MemoryPropertyFlagBits::eHostVisible | vk::MemoryPropertyFlagBits::eHostCoherent); + buf = ggml_vk_create_buffer(device, size, vk::MemoryPropertyFlagBits::eDeviceLocal, vk::MemoryPropertyFlagBits::eHostVisible | vk::MemoryPropertyFlagBits::eHostCoherent); } else { - buf = ggml_vk_create_buffer(ctx, size, vk::MemoryPropertyFlagBits::eDeviceLocal); + buf = ggml_vk_create_buffer(device, size, vk::MemoryPropertyFlagBits::eDeviceLocal); } } catch (const vk::SystemError& e) { std::cerr << "ggml_vulkan: Device memory allocation of size " << size << " failed." << std::endl; @@ -984,7 +1017,9 @@ static void ggml_vk_destroy_buffer(vk_buffer& buf) { } #ifdef GGML_VULKAN_MEMORY_DEBUG - buf->ctx->memory_logger.log_deallocation(buf); + if (buf->device != nullptr) { + buf->device->memory_logger->log_deallocation(buf); + } #endif buf.reset(); @@ -1043,10 +1078,8 @@ static bool ggml_vk_build_shader(ggml_type type) { } } -static void ggml_vk_load_shaders(ggml_backend_vk_context * ctx) { - VK_LOG_DEBUG("ggml_vk_load_shaders(" << ctx->name << ")"); - - const std::shared_ptr device = ctx->device; +static void ggml_vk_load_shaders(vk_device& device) { + VK_LOG_DEBUG("ggml_vk_load_shaders(" << device->name << ")"); // mulmat std::initializer_list warptile_l = { 128, 128, 128, 16, device->subgroup_size * 2, 64, 2, 4, 4, device->subgroup_size }; @@ -1065,534 +1098,707 @@ static void ggml_vk_load_shaders(ggml_backend_vk_context * ctx) { uint32_t m_align = 64; uint32_t s_align = 32; - ctx->device->pipeline_matmul_f32 = std::make_shared(); - ctx->device->pipeline_matmul_f32_f16 = std::make_shared(); - ctx->device->pipeline_matmul_f16_f32 = std::make_shared(); - ctx->device->pipeline_matmul_f16 = std::make_shared(); - ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_0] = std::make_shared(); - ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_1] = std::make_shared(); - ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_0] = std::make_shared(); - ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_1] = std::make_shared(); - ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q8_0] = std::make_shared(); - ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q2_K] = std::make_shared(); - ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q3_K] = std::make_shared(); - ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_K] = std::make_shared(); - ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_K] = std::make_shared(); - ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q6_K] = std::make_shared(); - - ctx->device->pipeline_matmul_id_f32 = std::make_shared(); - ctx->device->pipeline_matmul_id_f16_f32 = std::make_shared(); - ctx->device->pipeline_matmul_id_f16 = std::make_shared(); - ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_0] = std::make_shared(); - ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_1] = std::make_shared(); - ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_0] = std::make_shared(); - ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_1] = std::make_shared(); - ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q8_0] = std::make_shared(); - ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q2_K] = std::make_shared(); - ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q3_K] = std::make_shared(); - ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_K] = std::make_shared(); - ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_K] = std::make_shared(); - ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q6_K] = std::make_shared(); + device->pipeline_matmul_f32 = std::make_shared(); + device->pipeline_matmul_f32_f16 = std::make_shared(); + device->pipeline_matmul_f16_f32 = std::make_shared(); + device->pipeline_matmul_f16 = std::make_shared(); + device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_0] = std::make_shared(); + device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_1] = std::make_shared(); + device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_0] = std::make_shared(); + device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_1] = std::make_shared(); + device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q8_0] = std::make_shared(); + device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q2_K] = std::make_shared(); + device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q3_K] = std::make_shared(); + device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_K] = std::make_shared(); + device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_K] = std::make_shared(); + device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q6_K] = std::make_shared(); + + device->pipeline_matmul_id_f32 = std::make_shared(); + device->pipeline_matmul_id_f16_f32 = std::make_shared(); + device->pipeline_matmul_id_f16 = std::make_shared(); + device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_0] = std::make_shared(); + device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_1] = std::make_shared(); + device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_0] = std::make_shared(); + device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_1] = std::make_shared(); + device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q8_0] = std::make_shared(); + device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q2_K] = std::make_shared(); + device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q3_K] = std::make_shared(); + device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_K] = std::make_shared(); + device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_K] = std::make_shared(); + device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q6_K] = std::make_shared(); if (device->fp16) { - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f32->l, "matmul_f32_l", matmul_f32_f32_len, matmul_f32_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_l, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f32->m, "matmul_f32_m", matmul_f32_f32_len, matmul_f32_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_m, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f32->s, "matmul_f32_s", matmul_f32_f32_len, matmul_f32_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_s, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f32->a_l, "matmul_f32_aligned_l", matmul_f32_f32_aligned_len, matmul_f32_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f32->a_m, "matmul_f32_aligned_m", matmul_f32_f32_aligned_len, matmul_f32_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f32->a_s, "matmul_f32_aligned_s", matmul_f32_f32_aligned_len, matmul_f32_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_s, s_align); - - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f32_f16->l, "matmul_f32_f16_l", matmul_f32_f16_len, matmul_f32_f16_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_l, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f32_f16->m, "matmul_f32_f16_m", matmul_f32_f16_len, matmul_f32_f16_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_m, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f32_f16->s, "matmul_f32_f16_s", matmul_f32_f16_len, matmul_f32_f16_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_s, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f32_f16->a_l, "matmul_f32_f16_aligned_l", matmul_f32_f16_aligned_len, matmul_f32_f16_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f32_f16->a_m, "matmul_f32_f16_aligned_m", matmul_f32_f16_aligned_len, matmul_f32_f16_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f32_f16->a_s, "matmul_f32_f16_aligned_s", matmul_f32_f16_aligned_len, matmul_f32_f16_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_s, s_align); - - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f16->l, "matmul_f16_l", matmul_f16_len, matmul_f16_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_l, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f16->m, "matmul_f16_m", matmul_f16_len, matmul_f16_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_m, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f16->s, "matmul_f16_s", matmul_f16_len, matmul_f16_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_s, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f16->a_l, "matmul_f16_aligned_l", matmul_f16_aligned_len, matmul_f16_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f16->a_m, "matmul_f16_aligned_m", matmul_f16_aligned_len, matmul_f16_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f16->a_s, "matmul_f16_aligned_s", matmul_f16_aligned_len, matmul_f16_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_s, s_align); - - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f16_f32->l, "matmul_f16_f32_l", matmul_f16_f32_len, matmul_f16_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_l, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f16_f32->m, "matmul_f16_f32_m", matmul_f16_f32_len, matmul_f16_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_m, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f16_f32->s, "matmul_f16_f32_s", matmul_f16_f32_len, matmul_f16_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_s, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f16_f32->a_l, "matmul_f16_f32_aligned_l", matmul_f16_f32_aligned_len, matmul_f16_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f16_f32->a_m, "matmul_f16_f32_aligned_m", matmul_f16_f32_aligned_len, matmul_f16_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f16_f32->a_s, "matmul_f16_f32_aligned_s", matmul_f16_f32_aligned_len, matmul_f16_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_s, s_align); - - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_0]->l, "matmul_q4_0_f32_l", matmul_q4_0_f32_len, matmul_q4_0_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_0]->m, "matmul_q4_0_f32_m", matmul_q4_0_f32_len, matmul_q4_0_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_0]->s, "matmul_q4_0_f32_s", matmul_q4_0_f32_len, matmul_q4_0_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_0]->a_l, "matmul_q4_0_f32_aligned_l", matmul_q4_0_f32_aligned_len, matmul_q4_0_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_0]->a_m, "matmul_q4_0_f32_aligned_m", matmul_q4_0_f32_aligned_len, matmul_q4_0_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_0]->a_s, "matmul_q4_0_f32_aligned_s", matmul_q4_0_f32_aligned_len, matmul_q4_0_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_1]->l, "matmul_q4_1_f32_l", matmul_q4_1_f32_len, matmul_q4_1_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_1]->m, "matmul_q4_1_f32_m", matmul_q4_1_f32_len, matmul_q4_1_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_1]->s, "matmul_q4_1_f32_s", matmul_q4_1_f32_len, matmul_q4_1_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_1]->a_l, "matmul_q4_1_f32_aligned_l", matmul_q4_1_f32_aligned_len, matmul_q4_1_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_1]->a_m, "matmul_q4_1_f32_aligned_m", matmul_q4_1_f32_aligned_len, matmul_q4_1_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_1]->a_s, "matmul_q4_1_f32_aligned_s", matmul_q4_1_f32_aligned_len, matmul_q4_1_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_0]->l, "matmul_q5_0_f32_l", matmul_q5_0_f32_len, matmul_q5_0_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_0]->m, "matmul_q5_0_f32_m", matmul_q5_0_f32_len, matmul_q5_0_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_0]->s, "matmul_q5_0_f32_s", matmul_q5_0_f32_len, matmul_q5_0_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_0]->a_l, "matmul_q5_0_f32_aligned_l", matmul_q5_0_f32_aligned_len, matmul_q5_0_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_0]->a_m, "matmul_q5_0_f32_aligned_m", matmul_q5_0_f32_aligned_len, matmul_q5_0_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_0]->a_s, "matmul_q5_0_f32_aligned_s", matmul_q5_0_f32_aligned_len, matmul_q5_0_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_1]->l, "matmul_q5_1_f32_l", matmul_q5_1_f32_len, matmul_q5_1_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_1]->m, "matmul_q5_1_f32_m", matmul_q5_1_f32_len, matmul_q5_1_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_1]->s, "matmul_q5_1_f32_s", matmul_q5_1_f32_len, matmul_q5_1_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_1]->a_l, "matmul_q5_1_f32_aligned_l", matmul_q5_1_f32_aligned_len, matmul_q5_1_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_1]->a_m, "matmul_q5_1_f32_aligned_m", matmul_q5_1_f32_aligned_len, matmul_q5_1_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_1]->a_s, "matmul_q5_1_f32_aligned_s", matmul_q5_1_f32_aligned_len, matmul_q5_1_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q8_0]->l, "matmul_q8_0_f32_l", matmul_q8_0_f32_len, matmul_q8_0_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q8_0]->m, "matmul_q8_0_f32_m", matmul_q8_0_f32_len, matmul_q8_0_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q8_0]->s, "matmul_q8_0_f32_s", matmul_q8_0_f32_len, matmul_q8_0_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q8_0]->a_l, "matmul_q8_0_f32_aligned_l", matmul_q8_0_f32_aligned_len, matmul_q8_0_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q8_0]->a_m, "matmul_q8_0_f32_aligned_m", matmul_q8_0_f32_aligned_len, matmul_q8_0_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q8_0]->a_s, "matmul_q8_0_f32_aligned_s", matmul_q8_0_f32_aligned_len, matmul_q8_0_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q2_K]->l, "matmul_q2_k_f32_l", matmul_q2_k_f32_len, matmul_q2_k_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q2_K]->m, "matmul_q2_k_f32_m", matmul_q2_k_f32_len, matmul_q2_k_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q2_K]->s, "matmul_q2_k_f32_s", matmul_q2_k_f32_len, matmul_q2_k_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q2_K]->a_l, "matmul_q2_k_f32_aligned_l", matmul_q2_k_f32_aligned_len, matmul_q2_k_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q2_K]->a_m, "matmul_q2_k_f32_aligned_m", matmul_q2_k_f32_aligned_len, matmul_q2_k_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q2_K]->a_s, "matmul_q2_k_f32_aligned_s", matmul_q2_k_f32_aligned_len, matmul_q2_k_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q3_K]->l, "matmul_q3_k_f32_l", matmul_q3_k_f32_len, matmul_q3_k_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q3_K]->m, "matmul_q3_k_f32_m", matmul_q3_k_f32_len, matmul_q3_k_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q3_K]->s, "matmul_q3_k_f32_s", matmul_q3_k_f32_len, matmul_q3_k_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q3_K]->a_l, "matmul_q3_k_f32_aligned_l", matmul_q3_k_f32_aligned_len, matmul_q3_k_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q3_K]->a_m, "matmul_q3_k_f32_aligned_m", matmul_q3_k_f32_aligned_len, matmul_q3_k_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q3_K]->a_s, "matmul_q3_k_f32_aligned_s", matmul_q3_k_f32_aligned_len, matmul_q3_k_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_K]->l, "matmul_q4_k_f32_l", matmul_q4_k_f32_len, matmul_q4_k_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_K]->m, "matmul_q4_k_f32_m", matmul_q4_k_f32_len, matmul_q4_k_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_K]->s, "matmul_q4_k_f32_s", matmul_q4_k_f32_len, matmul_q4_k_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_K]->a_l, "matmul_q4_k_f32_aligned_l", matmul_q4_k_f32_aligned_len, matmul_q4_k_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_K]->a_m, "matmul_q4_k_f32_aligned_m", matmul_q4_k_f32_aligned_len, matmul_q4_k_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_K]->a_s, "matmul_q4_k_f32_aligned_s", matmul_q4_k_f32_aligned_len, matmul_q4_k_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_K]->l, "matmul_q5_k_f32_l", matmul_q5_k_f32_len, matmul_q5_k_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_K]->m, "matmul_q5_k_f32_m", matmul_q5_k_f32_len, matmul_q5_k_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_K]->s, "matmul_q5_k_f32_s", matmul_q5_k_f32_len, matmul_q5_k_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_K]->a_l, "matmul_q5_k_f32_aligned_l", matmul_q5_k_f32_aligned_len, matmul_q5_k_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_K]->a_m, "matmul_q5_k_f32_aligned_m", matmul_q5_k_f32_aligned_len, matmul_q5_k_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_K]->a_s, "matmul_q5_k_f32_aligned_s", matmul_q5_k_f32_aligned_len, matmul_q5_k_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q6_K]->l, "matmul_q6_k_f32_l", matmul_q6_k_f32_len, matmul_q6_k_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q6_K]->m, "matmul_q6_k_f32_m", matmul_q6_k_f32_len, matmul_q6_k_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q6_K]->s, "matmul_q6_k_f32_s", matmul_q6_k_f32_len, matmul_q6_k_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q6_K]->a_l, "matmul_q6_k_f32_aligned_l", matmul_q6_k_f32_aligned_len, matmul_q6_k_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q6_K]->a_m, "matmul_q6_k_f32_aligned_m", matmul_q6_k_f32_aligned_len, matmul_q6_k_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q6_K]->a_s, "matmul_q6_k_f32_aligned_s", matmul_q6_k_f32_aligned_len, matmul_q6_k_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_id_f32->l, "matmul_id_f32_l", matmul_id_f32_f32_len, matmul_id_f32_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_l, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_id_f32->m, "matmul_id_f32_m", matmul_id_f32_f32_len, matmul_id_f32_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_m, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_id_f32->s, "matmul_id_f32_s", matmul_id_f32_f32_len, matmul_id_f32_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_s, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_id_f32->a_l, "matmul_id_f32_aligned_l", matmul_id_f32_f32_aligned_len, matmul_id_f32_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_id_f32->a_m, "matmul_id_f32_aligned_m", matmul_id_f32_f32_aligned_len, matmul_id_f32_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_id_f32->a_s, "matmul_id_f32_aligned_s", matmul_id_f32_f32_aligned_len, matmul_id_f32_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_s, s_align); - - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_id_f16->l, "matmul_id_f16_l", matmul_id_f16_len, matmul_id_f16_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_l, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_id_f16->m, "matmul_id_f16_m", matmul_id_f16_len, matmul_id_f16_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_m, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_id_f16->s, "matmul_id_f16_s", matmul_id_f16_len, matmul_id_f16_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_s, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_id_f16->a_l, "matmul_id_f16_aligned_l", matmul_id_f16_aligned_len, matmul_id_f16_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_id_f16->a_m, "matmul_id_f16_aligned_m", matmul_id_f16_aligned_len, matmul_id_f16_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_id_f16->a_s, "matmul_id_f16_aligned_s", matmul_id_f16_aligned_len, matmul_id_f16_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_s, s_align); - - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_id_f16_f32->l, "matmul_id_f16_f32_l", matmul_id_f16_f32_len, matmul_id_f16_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_l, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_id_f16_f32->m, "matmul_id_f16_f32_m", matmul_id_f16_f32_len, matmul_id_f16_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_m, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_id_f16_f32->s, "matmul_id_f16_f32_s", matmul_id_f16_f32_len, matmul_id_f16_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_s, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_id_f16_f32->a_l, "matmul_id_f16_f32_aligned_l", matmul_id_f16_f32_aligned_len, matmul_id_f16_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_id_f16_f32->a_m, "matmul_id_f16_f32_aligned_m", matmul_id_f16_f32_aligned_len, matmul_id_f16_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_id_f16_f32->a_s, "matmul_id_f16_f32_aligned_s", matmul_id_f16_f32_aligned_len, matmul_id_f16_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_s, s_align); - - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_0]->l, "matmul_id_q4_0_f32_l", matmul_id_q4_0_f32_len, matmul_id_q4_0_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_0]->m, "matmul_id_q4_0_f32_m", matmul_id_q4_0_f32_len, matmul_id_q4_0_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_0]->s, "matmul_id_q4_0_f32_s", matmul_id_q4_0_f32_len, matmul_id_q4_0_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_0]->a_l, "matmul_id_q4_0_f32_aligned_l", matmul_id_q4_0_f32_aligned_len, matmul_id_q4_0_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_0]->a_m, "matmul_id_q4_0_f32_aligned_m", matmul_id_q4_0_f32_aligned_len, matmul_id_q4_0_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_0]->a_s, "matmul_id_q4_0_f32_aligned_s", matmul_id_q4_0_f32_aligned_len, matmul_id_q4_0_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_1]->l, "matmul_id_q4_1_f32_l", matmul_id_q4_1_f32_len, matmul_id_q4_1_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_1]->m, "matmul_id_q4_1_f32_m", matmul_id_q4_1_f32_len, matmul_id_q4_1_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_1]->s, "matmul_id_q4_1_f32_s", matmul_id_q4_1_f32_len, matmul_id_q4_1_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_1]->a_l, "matmul_id_q4_1_f32_aligned_l", matmul_id_q4_1_f32_aligned_len, matmul_id_q4_1_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_1]->a_m, "matmul_id_q4_1_f32_aligned_m", matmul_id_q4_1_f32_aligned_len, matmul_id_q4_1_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_1]->a_s, "matmul_id_q4_1_f32_aligned_s", matmul_id_q4_1_f32_aligned_len, matmul_id_q4_1_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_0]->l, "matmul_id_q5_0_f32_l", matmul_id_q5_0_f32_len, matmul_id_q5_0_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_0]->m, "matmul_id_q5_0_f32_m", matmul_id_q5_0_f32_len, matmul_id_q5_0_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_0]->s, "matmul_id_q5_0_f32_s", matmul_id_q5_0_f32_len, matmul_id_q5_0_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_0]->a_l, "matmul_id_q5_0_f32_aligned_l", matmul_id_q5_0_f32_aligned_len, matmul_id_q5_0_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_0]->a_m, "matmul_id_q5_0_f32_aligned_m", matmul_id_q5_0_f32_aligned_len, matmul_id_q5_0_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_0]->a_s, "matmul_id_q5_0_f32_aligned_s", matmul_id_q5_0_f32_aligned_len, matmul_id_q5_0_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_1]->l, "matmul_id_q5_1_f32_l", matmul_id_q5_1_f32_len, matmul_id_q5_1_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_1]->m, "matmul_id_q5_1_f32_m", matmul_id_q5_1_f32_len, matmul_id_q5_1_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_1]->s, "matmul_id_q5_1_f32_s", matmul_id_q5_1_f32_len, matmul_id_q5_1_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_1]->a_l, "matmul_id_q5_1_f32_aligned_l", matmul_id_q5_1_f32_aligned_len, matmul_id_q5_1_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_1]->a_m, "matmul_id_q5_1_f32_aligned_m", matmul_id_q5_1_f32_aligned_len, matmul_id_q5_1_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_1]->a_s, "matmul_id_q5_1_f32_aligned_s", matmul_id_q5_1_f32_aligned_len, matmul_id_q5_1_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q8_0]->l, "matmul_id_q8_0_f32_l", matmul_id_q8_0_f32_len, matmul_id_q8_0_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q8_0]->m, "matmul_id_q8_0_f32_m", matmul_id_q8_0_f32_len, matmul_id_q8_0_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q8_0]->s, "matmul_id_q8_0_f32_s", matmul_id_q8_0_f32_len, matmul_id_q8_0_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q8_0]->a_l, "matmul_id_q8_0_f32_aligned_l", matmul_id_q8_0_f32_aligned_len, matmul_id_q8_0_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q8_0]->a_m, "matmul_id_q8_0_f32_aligned_m", matmul_id_q8_0_f32_aligned_len, matmul_id_q8_0_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q8_0]->a_s, "matmul_id_q8_0_f32_aligned_s", matmul_id_q8_0_f32_aligned_len, matmul_id_q8_0_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q2_K]->l, "matmul_id_q2_k_f32_l", matmul_id_q2_k_f32_len, matmul_id_q2_k_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q2_K]->m, "matmul_id_q2_k_f32_m", matmul_id_q2_k_f32_len, matmul_id_q2_k_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q2_K]->s, "matmul_id_q2_k_f32_s", matmul_id_q2_k_f32_len, matmul_id_q2_k_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q2_K]->a_l, "matmul_id_q2_k_f32_aligned_l", matmul_id_q2_k_f32_aligned_len, matmul_id_q2_k_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q2_K]->a_m, "matmul_id_q2_k_f32_aligned_m", matmul_id_q2_k_f32_aligned_len, matmul_id_q2_k_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q2_K]->a_s, "matmul_id_q2_k_f32_aligned_s", matmul_id_q2_k_f32_aligned_len, matmul_id_q2_k_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q3_K]->l, "matmul_id_q3_k_f32_l", matmul_id_q3_k_f32_len, matmul_id_q3_k_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q3_K]->m, "matmul_id_q3_k_f32_m", matmul_id_q3_k_f32_len, matmul_id_q3_k_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q3_K]->s, "matmul_id_q3_k_f32_s", matmul_id_q3_k_f32_len, matmul_id_q3_k_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q3_K]->a_l, "matmul_id_q3_k_f32_aligned_l", matmul_id_q3_k_f32_aligned_len, matmul_id_q3_k_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q3_K]->a_m, "matmul_id_q3_k_f32_aligned_m", matmul_id_q3_k_f32_aligned_len, matmul_id_q3_k_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q3_K]->a_s, "matmul_id_q3_k_f32_aligned_s", matmul_id_q3_k_f32_aligned_len, matmul_id_q3_k_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_K]->l, "matmul_id_q4_k_f32_l", matmul_id_q4_k_f32_len, matmul_id_q4_k_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_K]->m, "matmul_id_q4_k_f32_m", matmul_id_q4_k_f32_len, matmul_id_q4_k_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_K]->s, "matmul_id_q4_k_f32_s", matmul_id_q4_k_f32_len, matmul_id_q4_k_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_K]->a_l, "matmul_id_q4_k_f32_aligned_l", matmul_id_q4_k_f32_aligned_len, matmul_id_q4_k_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_K]->a_m, "matmul_id_q4_k_f32_aligned_m", matmul_id_q4_k_f32_aligned_len, matmul_id_q4_k_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_K]->a_s, "matmul_id_q4_k_f32_aligned_s", matmul_id_q4_k_f32_aligned_len, matmul_id_q4_k_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_K]->l, "matmul_id_q5_k_f32_l", matmul_id_q5_k_f32_len, matmul_id_q5_k_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_K]->m, "matmul_id_q5_k_f32_m", matmul_id_q5_k_f32_len, matmul_id_q5_k_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_K]->s, "matmul_id_q5_k_f32_s", matmul_id_q5_k_f32_len, matmul_id_q5_k_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_K]->a_l, "matmul_id_q5_k_f32_aligned_l", matmul_id_q5_k_f32_aligned_len, matmul_id_q5_k_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_K]->a_m, "matmul_id_q5_k_f32_aligned_m", matmul_id_q5_k_f32_aligned_len, matmul_id_q5_k_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_K]->a_s, "matmul_id_q5_k_f32_aligned_s", matmul_id_q5_k_f32_aligned_len, matmul_id_q5_k_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q6_K]->l, "matmul_id_q6_k_f32_l", matmul_id_q6_k_f32_len, matmul_id_q6_k_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q6_K]->m, "matmul_id_q6_k_f32_m", matmul_id_q6_k_f32_len, matmul_id_q6_k_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q6_K]->s, "matmul_id_q6_k_f32_s", matmul_id_q6_k_f32_len, matmul_id_q6_k_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q6_K]->a_l, "matmul_id_q6_k_f32_aligned_l", matmul_id_q6_k_f32_aligned_len, matmul_id_q6_k_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q6_K]->a_m, "matmul_id_q6_k_f32_aligned_m", matmul_id_q6_k_f32_aligned_len, matmul_id_q6_k_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q6_K]->a_s, "matmul_id_q6_k_f32_aligned_s", matmul_id_q6_k_f32_aligned_len, matmul_id_q6_k_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + ggml_vk_create_pipeline(device, device->pipeline_matmul_f32->l, "matmul_f32_l", matmul_f32_f32_len, matmul_f32_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_l, 1); + ggml_vk_create_pipeline(device, device->pipeline_matmul_f32->m, "matmul_f32_m", matmul_f32_f32_len, matmul_f32_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_m, 1); + ggml_vk_create_pipeline(device, device->pipeline_matmul_f32->s, "matmul_f32_s", matmul_f32_f32_len, matmul_f32_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_s, 1); + ggml_vk_create_pipeline(device, device->pipeline_matmul_f32->a_l, "matmul_f32_aligned_l", matmul_f32_f32_aligned_len, matmul_f32_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_matmul_f32->a_m, "matmul_f32_aligned_m", matmul_f32_f32_aligned_len, matmul_f32_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_matmul_f32->a_s, "matmul_f32_aligned_s", matmul_f32_f32_aligned_len, matmul_f32_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_s, s_align); + + ggml_vk_create_pipeline(device, device->pipeline_matmul_f32_f16->l, "matmul_f32_f16_l", matmul_f32_f16_len, matmul_f32_f16_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_l, 1); + ggml_vk_create_pipeline(device, device->pipeline_matmul_f32_f16->m, "matmul_f32_f16_m", matmul_f32_f16_len, matmul_f32_f16_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_m, 1); + ggml_vk_create_pipeline(device, device->pipeline_matmul_f32_f16->s, "matmul_f32_f16_s", matmul_f32_f16_len, matmul_f32_f16_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_s, 1); + ggml_vk_create_pipeline(device, device->pipeline_matmul_f32_f16->a_l, "matmul_f32_f16_aligned_l", matmul_f32_f16_aligned_len, matmul_f32_f16_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_matmul_f32_f16->a_m, "matmul_f32_f16_aligned_m", matmul_f32_f16_aligned_len, matmul_f32_f16_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_matmul_f32_f16->a_s, "matmul_f32_f16_aligned_s", matmul_f32_f16_aligned_len, matmul_f32_f16_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_s, s_align); + + ggml_vk_create_pipeline(device, device->pipeline_matmul_f16->l, "matmul_f16_l", matmul_f16_len, matmul_f16_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_l, 1); + ggml_vk_create_pipeline(device, device->pipeline_matmul_f16->m, "matmul_f16_m", matmul_f16_len, matmul_f16_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_m, 1); + ggml_vk_create_pipeline(device, device->pipeline_matmul_f16->s, "matmul_f16_s", matmul_f16_len, matmul_f16_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_s, 1); + ggml_vk_create_pipeline(device, device->pipeline_matmul_f16->a_l, "matmul_f16_aligned_l", matmul_f16_aligned_len, matmul_f16_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_matmul_f16->a_m, "matmul_f16_aligned_m", matmul_f16_aligned_len, matmul_f16_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_matmul_f16->a_s, "matmul_f16_aligned_s", matmul_f16_aligned_len, matmul_f16_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_s, s_align); + + ggml_vk_create_pipeline(device, device->pipeline_matmul_f16_f32->l, "matmul_f16_f32_l", matmul_f16_f32_len, matmul_f16_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_l, 1); + ggml_vk_create_pipeline(device, device->pipeline_matmul_f16_f32->m, "matmul_f16_f32_m", matmul_f16_f32_len, matmul_f16_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_m, 1); + ggml_vk_create_pipeline(device, device->pipeline_matmul_f16_f32->s, "matmul_f16_f32_s", matmul_f16_f32_len, matmul_f16_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_s, 1); + ggml_vk_create_pipeline(device, device->pipeline_matmul_f16_f32->a_l, "matmul_f16_f32_aligned_l", matmul_f16_f32_aligned_len, matmul_f16_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_matmul_f16_f32->a_m, "matmul_f16_f32_aligned_m", matmul_f16_f32_aligned_len, matmul_f16_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_matmul_f16_f32->a_s, "matmul_f16_f32_aligned_s", matmul_f16_f32_aligned_len, matmul_f16_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_s, s_align); + + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_0]->l, "matmul_q4_0_f32_l", matmul_q4_0_f32_len, matmul_q4_0_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_0]->m, "matmul_q4_0_f32_m", matmul_q4_0_f32_len, matmul_q4_0_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_0]->s, "matmul_q4_0_f32_s", matmul_q4_0_f32_len, matmul_q4_0_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_0]->a_l, "matmul_q4_0_f32_aligned_l", matmul_q4_0_f32_aligned_len, matmul_q4_0_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_0]->a_m, "matmul_q4_0_f32_aligned_m", matmul_q4_0_f32_aligned_len, matmul_q4_0_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_0]->a_s, "matmul_q4_0_f32_aligned_s", matmul_q4_0_f32_aligned_len, matmul_q4_0_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_1]->l, "matmul_q4_1_f32_l", matmul_q4_1_f32_len, matmul_q4_1_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_1]->m, "matmul_q4_1_f32_m", matmul_q4_1_f32_len, matmul_q4_1_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_1]->s, "matmul_q4_1_f32_s", matmul_q4_1_f32_len, matmul_q4_1_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_1]->a_l, "matmul_q4_1_f32_aligned_l", matmul_q4_1_f32_aligned_len, matmul_q4_1_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_1]->a_m, "matmul_q4_1_f32_aligned_m", matmul_q4_1_f32_aligned_len, matmul_q4_1_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_1]->a_s, "matmul_q4_1_f32_aligned_s", matmul_q4_1_f32_aligned_len, matmul_q4_1_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_0]->l, "matmul_q5_0_f32_l", matmul_q5_0_f32_len, matmul_q5_0_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_0]->m, "matmul_q5_0_f32_m", matmul_q5_0_f32_len, matmul_q5_0_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_0]->s, "matmul_q5_0_f32_s", matmul_q5_0_f32_len, matmul_q5_0_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_0]->a_l, "matmul_q5_0_f32_aligned_l", matmul_q5_0_f32_aligned_len, matmul_q5_0_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_0]->a_m, "matmul_q5_0_f32_aligned_m", matmul_q5_0_f32_aligned_len, matmul_q5_0_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_0]->a_s, "matmul_q5_0_f32_aligned_s", matmul_q5_0_f32_aligned_len, matmul_q5_0_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_1]->l, "matmul_q5_1_f32_l", matmul_q5_1_f32_len, matmul_q5_1_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_1]->m, "matmul_q5_1_f32_m", matmul_q5_1_f32_len, matmul_q5_1_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_1]->s, "matmul_q5_1_f32_s", matmul_q5_1_f32_len, matmul_q5_1_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_1]->a_l, "matmul_q5_1_f32_aligned_l", matmul_q5_1_f32_aligned_len, matmul_q5_1_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_1]->a_m, "matmul_q5_1_f32_aligned_m", matmul_q5_1_f32_aligned_len, matmul_q5_1_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_1]->a_s, "matmul_q5_1_f32_aligned_s", matmul_q5_1_f32_aligned_len, matmul_q5_1_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q8_0]->l, "matmul_q8_0_f32_l", matmul_q8_0_f32_len, matmul_q8_0_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q8_0]->m, "matmul_q8_0_f32_m", matmul_q8_0_f32_len, matmul_q8_0_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q8_0]->s, "matmul_q8_0_f32_s", matmul_q8_0_f32_len, matmul_q8_0_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q8_0]->a_l, "matmul_q8_0_f32_aligned_l", matmul_q8_0_f32_aligned_len, matmul_q8_0_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q8_0]->a_m, "matmul_q8_0_f32_aligned_m", matmul_q8_0_f32_aligned_len, matmul_q8_0_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q8_0]->a_s, "matmul_q8_0_f32_aligned_s", matmul_q8_0_f32_aligned_len, matmul_q8_0_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q2_K]->l, "matmul_q2_k_f32_l", matmul_q2_k_f32_len, matmul_q2_k_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q2_K]->m, "matmul_q2_k_f32_m", matmul_q2_k_f32_len, matmul_q2_k_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q2_K]->s, "matmul_q2_k_f32_s", matmul_q2_k_f32_len, matmul_q2_k_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q2_K]->a_l, "matmul_q2_k_f32_aligned_l", matmul_q2_k_f32_aligned_len, matmul_q2_k_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q2_K]->a_m, "matmul_q2_k_f32_aligned_m", matmul_q2_k_f32_aligned_len, matmul_q2_k_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q2_K]->a_s, "matmul_q2_k_f32_aligned_s", matmul_q2_k_f32_aligned_len, matmul_q2_k_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q3_K]->l, "matmul_q3_k_f32_l", matmul_q3_k_f32_len, matmul_q3_k_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q3_K]->m, "matmul_q3_k_f32_m", matmul_q3_k_f32_len, matmul_q3_k_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q3_K]->s, "matmul_q3_k_f32_s", matmul_q3_k_f32_len, matmul_q3_k_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q3_K]->a_l, "matmul_q3_k_f32_aligned_l", matmul_q3_k_f32_aligned_len, matmul_q3_k_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q3_K]->a_m, "matmul_q3_k_f32_aligned_m", matmul_q3_k_f32_aligned_len, matmul_q3_k_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q3_K]->a_s, "matmul_q3_k_f32_aligned_s", matmul_q3_k_f32_aligned_len, matmul_q3_k_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_K]->l, "matmul_q4_k_f32_l", matmul_q4_k_f32_len, matmul_q4_k_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_K]->m, "matmul_q4_k_f32_m", matmul_q4_k_f32_len, matmul_q4_k_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_K]->s, "matmul_q4_k_f32_s", matmul_q4_k_f32_len, matmul_q4_k_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_K]->a_l, "matmul_q4_k_f32_aligned_l", matmul_q4_k_f32_aligned_len, matmul_q4_k_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_K]->a_m, "matmul_q4_k_f32_aligned_m", matmul_q4_k_f32_aligned_len, matmul_q4_k_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_K]->a_s, "matmul_q4_k_f32_aligned_s", matmul_q4_k_f32_aligned_len, matmul_q4_k_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_K]->l, "matmul_q5_k_f32_l", matmul_q5_k_f32_len, matmul_q5_k_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_K]->m, "matmul_q5_k_f32_m", matmul_q5_k_f32_len, matmul_q5_k_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_K]->s, "matmul_q5_k_f32_s", matmul_q5_k_f32_len, matmul_q5_k_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_K]->a_l, "matmul_q5_k_f32_aligned_l", matmul_q5_k_f32_aligned_len, matmul_q5_k_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_K]->a_m, "matmul_q5_k_f32_aligned_m", matmul_q5_k_f32_aligned_len, matmul_q5_k_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_K]->a_s, "matmul_q5_k_f32_aligned_s", matmul_q5_k_f32_aligned_len, matmul_q5_k_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q6_K]->l, "matmul_q6_k_f32_l", matmul_q6_k_f32_len, matmul_q6_k_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q6_K]->m, "matmul_q6_k_f32_m", matmul_q6_k_f32_len, matmul_q6_k_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q6_K]->s, "matmul_q6_k_f32_s", matmul_q6_k_f32_len, matmul_q6_k_f32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q6_K]->a_l, "matmul_q6_k_f32_aligned_l", matmul_q6_k_f32_aligned_len, matmul_q6_k_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q6_K]->a_m, "matmul_q6_k_f32_aligned_m", matmul_q6_k_f32_aligned_len, matmul_q6_k_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q6_K]->a_s, "matmul_q6_k_f32_aligned_s", matmul_q6_k_f32_aligned_len, matmul_q6_k_f32_aligned_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + + ggml_vk_create_pipeline(device, device->pipeline_matmul_id_f32->l, "matmul_id_f32_l", matmul_id_f32_f32_len, matmul_id_f32_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_l, 1); + ggml_vk_create_pipeline(device, device->pipeline_matmul_id_f32->m, "matmul_id_f32_m", matmul_id_f32_f32_len, matmul_id_f32_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_m, 1); + ggml_vk_create_pipeline(device, device->pipeline_matmul_id_f32->s, "matmul_id_f32_s", matmul_id_f32_f32_len, matmul_id_f32_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_s, 1); + ggml_vk_create_pipeline(device, device->pipeline_matmul_id_f32->a_l, "matmul_id_f32_aligned_l", matmul_id_f32_f32_aligned_len, matmul_id_f32_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_matmul_id_f32->a_m, "matmul_id_f32_aligned_m", matmul_id_f32_f32_aligned_len, matmul_id_f32_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_matmul_id_f32->a_s, "matmul_id_f32_aligned_s", matmul_id_f32_f32_aligned_len, matmul_id_f32_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_s, s_align); + + ggml_vk_create_pipeline(device, device->pipeline_matmul_id_f16->l, "matmul_id_f16_l", matmul_id_f16_len, matmul_id_f16_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_l, 1); + ggml_vk_create_pipeline(device, device->pipeline_matmul_id_f16->m, "matmul_id_f16_m", matmul_id_f16_len, matmul_id_f16_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_m, 1); + ggml_vk_create_pipeline(device, device->pipeline_matmul_id_f16->s, "matmul_id_f16_s", matmul_id_f16_len, matmul_id_f16_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_s, 1); + ggml_vk_create_pipeline(device, device->pipeline_matmul_id_f16->a_l, "matmul_id_f16_aligned_l", matmul_id_f16_aligned_len, matmul_id_f16_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_matmul_id_f16->a_m, "matmul_id_f16_aligned_m", matmul_id_f16_aligned_len, matmul_id_f16_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_matmul_id_f16->a_s, "matmul_id_f16_aligned_s", matmul_id_f16_aligned_len, matmul_id_f16_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_s, s_align); + + ggml_vk_create_pipeline(device, device->pipeline_matmul_id_f16_f32->l, "matmul_id_f16_f32_l", matmul_id_f16_f32_len, matmul_id_f16_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_l, 1); + ggml_vk_create_pipeline(device, device->pipeline_matmul_id_f16_f32->m, "matmul_id_f16_f32_m", matmul_id_f16_f32_len, matmul_id_f16_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_m, 1); + ggml_vk_create_pipeline(device, device->pipeline_matmul_id_f16_f32->s, "matmul_id_f16_f32_s", matmul_id_f16_f32_len, matmul_id_f16_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_s, 1); + ggml_vk_create_pipeline(device, device->pipeline_matmul_id_f16_f32->a_l, "matmul_id_f16_f32_aligned_l", matmul_id_f16_f32_aligned_len, matmul_id_f16_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_matmul_id_f16_f32->a_m, "matmul_id_f16_f32_aligned_m", matmul_id_f16_f32_aligned_len, matmul_id_f16_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_matmul_id_f16_f32->a_s, "matmul_id_f16_f32_aligned_s", matmul_id_f16_f32_aligned_len, matmul_id_f16_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_s, s_align); + + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_0]->l, "matmul_id_q4_0_f32_l", matmul_id_q4_0_f32_len, matmul_id_q4_0_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_0]->m, "matmul_id_q4_0_f32_m", matmul_id_q4_0_f32_len, matmul_id_q4_0_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_0]->s, "matmul_id_q4_0_f32_s", matmul_id_q4_0_f32_len, matmul_id_q4_0_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_0]->a_l, "matmul_id_q4_0_f32_aligned_l", matmul_id_q4_0_f32_aligned_len, matmul_id_q4_0_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_0]->a_m, "matmul_id_q4_0_f32_aligned_m", matmul_id_q4_0_f32_aligned_len, matmul_id_q4_0_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_0]->a_s, "matmul_id_q4_0_f32_aligned_s", matmul_id_q4_0_f32_aligned_len, matmul_id_q4_0_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_1]->l, "matmul_id_q4_1_f32_l", matmul_id_q4_1_f32_len, matmul_id_q4_1_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_1]->m, "matmul_id_q4_1_f32_m", matmul_id_q4_1_f32_len, matmul_id_q4_1_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_1]->s, "matmul_id_q4_1_f32_s", matmul_id_q4_1_f32_len, matmul_id_q4_1_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_1]->a_l, "matmul_id_q4_1_f32_aligned_l", matmul_id_q4_1_f32_aligned_len, matmul_id_q4_1_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_1]->a_m, "matmul_id_q4_1_f32_aligned_m", matmul_id_q4_1_f32_aligned_len, matmul_id_q4_1_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_1]->a_s, "matmul_id_q4_1_f32_aligned_s", matmul_id_q4_1_f32_aligned_len, matmul_id_q4_1_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_0]->l, "matmul_id_q5_0_f32_l", matmul_id_q5_0_f32_len, matmul_id_q5_0_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_0]->m, "matmul_id_q5_0_f32_m", matmul_id_q5_0_f32_len, matmul_id_q5_0_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_0]->s, "matmul_id_q5_0_f32_s", matmul_id_q5_0_f32_len, matmul_id_q5_0_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_0]->a_l, "matmul_id_q5_0_f32_aligned_l", matmul_id_q5_0_f32_aligned_len, matmul_id_q5_0_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_0]->a_m, "matmul_id_q5_0_f32_aligned_m", matmul_id_q5_0_f32_aligned_len, matmul_id_q5_0_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_0]->a_s, "matmul_id_q5_0_f32_aligned_s", matmul_id_q5_0_f32_aligned_len, matmul_id_q5_0_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_1]->l, "matmul_id_q5_1_f32_l", matmul_id_q5_1_f32_len, matmul_id_q5_1_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_1]->m, "matmul_id_q5_1_f32_m", matmul_id_q5_1_f32_len, matmul_id_q5_1_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_1]->s, "matmul_id_q5_1_f32_s", matmul_id_q5_1_f32_len, matmul_id_q5_1_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_1]->a_l, "matmul_id_q5_1_f32_aligned_l", matmul_id_q5_1_f32_aligned_len, matmul_id_q5_1_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_1]->a_m, "matmul_id_q5_1_f32_aligned_m", matmul_id_q5_1_f32_aligned_len, matmul_id_q5_1_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_1]->a_s, "matmul_id_q5_1_f32_aligned_s", matmul_id_q5_1_f32_aligned_len, matmul_id_q5_1_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q8_0]->l, "matmul_id_q8_0_f32_l", matmul_id_q8_0_f32_len, matmul_id_q8_0_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q8_0]->m, "matmul_id_q8_0_f32_m", matmul_id_q8_0_f32_len, matmul_id_q8_0_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q8_0]->s, "matmul_id_q8_0_f32_s", matmul_id_q8_0_f32_len, matmul_id_q8_0_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q8_0]->a_l, "matmul_id_q8_0_f32_aligned_l", matmul_id_q8_0_f32_aligned_len, matmul_id_q8_0_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q8_0]->a_m, "matmul_id_q8_0_f32_aligned_m", matmul_id_q8_0_f32_aligned_len, matmul_id_q8_0_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q8_0]->a_s, "matmul_id_q8_0_f32_aligned_s", matmul_id_q8_0_f32_aligned_len, matmul_id_q8_0_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q2_K]->l, "matmul_id_q2_k_f32_l", matmul_id_q2_k_f32_len, matmul_id_q2_k_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q2_K]->m, "matmul_id_q2_k_f32_m", matmul_id_q2_k_f32_len, matmul_id_q2_k_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q2_K]->s, "matmul_id_q2_k_f32_s", matmul_id_q2_k_f32_len, matmul_id_q2_k_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q2_K]->a_l, "matmul_id_q2_k_f32_aligned_l", matmul_id_q2_k_f32_aligned_len, matmul_id_q2_k_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q2_K]->a_m, "matmul_id_q2_k_f32_aligned_m", matmul_id_q2_k_f32_aligned_len, matmul_id_q2_k_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q2_K]->a_s, "matmul_id_q2_k_f32_aligned_s", matmul_id_q2_k_f32_aligned_len, matmul_id_q2_k_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q3_K]->l, "matmul_id_q3_k_f32_l", matmul_id_q3_k_f32_len, matmul_id_q3_k_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q3_K]->m, "matmul_id_q3_k_f32_m", matmul_id_q3_k_f32_len, matmul_id_q3_k_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q3_K]->s, "matmul_id_q3_k_f32_s", matmul_id_q3_k_f32_len, matmul_id_q3_k_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q3_K]->a_l, "matmul_id_q3_k_f32_aligned_l", matmul_id_q3_k_f32_aligned_len, matmul_id_q3_k_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q3_K]->a_m, "matmul_id_q3_k_f32_aligned_m", matmul_id_q3_k_f32_aligned_len, matmul_id_q3_k_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q3_K]->a_s, "matmul_id_q3_k_f32_aligned_s", matmul_id_q3_k_f32_aligned_len, matmul_id_q3_k_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_K]->l, "matmul_id_q4_k_f32_l", matmul_id_q4_k_f32_len, matmul_id_q4_k_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_K]->m, "matmul_id_q4_k_f32_m", matmul_id_q4_k_f32_len, matmul_id_q4_k_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_K]->s, "matmul_id_q4_k_f32_s", matmul_id_q4_k_f32_len, matmul_id_q4_k_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_K]->a_l, "matmul_id_q4_k_f32_aligned_l", matmul_id_q4_k_f32_aligned_len, matmul_id_q4_k_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_K]->a_m, "matmul_id_q4_k_f32_aligned_m", matmul_id_q4_k_f32_aligned_len, matmul_id_q4_k_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_K]->a_s, "matmul_id_q4_k_f32_aligned_s", matmul_id_q4_k_f32_aligned_len, matmul_id_q4_k_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_K]->l, "matmul_id_q5_k_f32_l", matmul_id_q5_k_f32_len, matmul_id_q5_k_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_K]->m, "matmul_id_q5_k_f32_m", matmul_id_q5_k_f32_len, matmul_id_q5_k_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_K]->s, "matmul_id_q5_k_f32_s", matmul_id_q5_k_f32_len, matmul_id_q5_k_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_K]->a_l, "matmul_id_q5_k_f32_aligned_l", matmul_id_q5_k_f32_aligned_len, matmul_id_q5_k_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_K]->a_m, "matmul_id_q5_k_f32_aligned_m", matmul_id_q5_k_f32_aligned_len, matmul_id_q5_k_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_K]->a_s, "matmul_id_q5_k_f32_aligned_s", matmul_id_q5_k_f32_aligned_len, matmul_id_q5_k_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q6_K]->l, "matmul_id_q6_k_f32_l", matmul_id_q6_k_f32_len, matmul_id_q6_k_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q6_K]->m, "matmul_id_q6_k_f32_m", matmul_id_q6_k_f32_len, matmul_id_q6_k_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q6_K]->s, "matmul_id_q6_k_f32_s", matmul_id_q6_k_f32_len, matmul_id_q6_k_f32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q6_K]->a_l, "matmul_id_q6_k_f32_aligned_l", matmul_id_q6_k_f32_aligned_len, matmul_id_q6_k_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q6_K]->a_m, "matmul_id_q6_k_f32_aligned_m", matmul_id_q6_k_f32_aligned_len, matmul_id_q6_k_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q6_K]->a_s, "matmul_id_q6_k_f32_aligned_s", matmul_id_q6_k_f32_aligned_len, matmul_id_q6_k_f32_aligned_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); } else { - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f32->l, "matmul_f32_l", matmul_f32_f32_fp32_len, matmul_f32_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_l, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f32->m, "matmul_f32_m", matmul_f32_f32_fp32_len, matmul_f32_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_m, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f32->s, "matmul_f32_s", matmul_f32_f32_fp32_len, matmul_f32_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_s, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f32->a_l, "matmul_f32_aligned_l", matmul_f32_f32_aligned_fp32_len, matmul_f32_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f32->a_m, "matmul_f32_aligned_m", matmul_f32_f32_aligned_fp32_len, matmul_f32_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f32->a_s, "matmul_f32_aligned_s", matmul_f32_f32_aligned_fp32_len, matmul_f32_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_s, s_align); - - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f32_f16->l, "matmul_f32_f16_l", matmul_f32_f16_fp32_len, matmul_f32_f16_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_l, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f32_f16->m, "matmul_f32_f16_m", matmul_f32_f16_fp32_len, matmul_f32_f16_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_m, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f32_f16->s, "matmul_f32_f16_s", matmul_f32_f16_fp32_len, matmul_f32_f16_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_s, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f32_f16->a_l, "matmul_f32_f16_aligned_l", matmul_f32_f16_aligned_fp32_len, matmul_f32_f16_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f32_f16->a_m, "matmul_f32_f16_aligned_m", matmul_f32_f16_aligned_fp32_len, matmul_f32_f16_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f32_f16->a_s, "matmul_f32_f16_aligned_s", matmul_f32_f16_aligned_fp32_len, matmul_f32_f16_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_s, s_align); - - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f16->l, "matmul_f16_l", matmul_f16_fp32_len, matmul_f16_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_l, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f16->m, "matmul_f16_m", matmul_f16_fp32_len, matmul_f16_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_m, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f16->s, "matmul_f16_s", matmul_f16_fp32_len, matmul_f16_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_s, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f16->a_l, "matmul_f16_aligned_l", matmul_f16_aligned_fp32_len, matmul_f16_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f16->a_m, "matmul_f16_aligned_m", matmul_f16_aligned_fp32_len, matmul_f16_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f16->a_s, "matmul_f16_aligned_s", matmul_f16_aligned_fp32_len, matmul_f16_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_s, s_align); - - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f16_f32->l, "matmul_f16_f32_l", matmul_f16_f32_fp32_len, matmul_f16_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_l, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f16_f32->m, "matmul_f16_f32_m", matmul_f16_f32_fp32_len, matmul_f16_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_m, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f16_f32->s, "matmul_f16_f32_s", matmul_f16_f32_fp32_len, matmul_f16_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_s, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f16_f32->a_l, "matmul_f16_f32_aligned_l", matmul_f16_f32_aligned_fp32_len, matmul_f16_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f16_f32->a_m, "matmul_f16_f32_aligned_m", matmul_f16_f32_aligned_fp32_len, matmul_f16_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_f16_f32->a_s, "matmul_f16_f32_aligned_s", matmul_f16_f32_aligned_fp32_len, matmul_f16_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_s, s_align); - - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_0]->l, "matmul_q4_0_f32_l", matmul_q4_0_f32_fp32_len, matmul_q4_0_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_0]->m, "matmul_q4_0_f32_m", matmul_q4_0_f32_fp32_len, matmul_q4_0_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_0]->s, "matmul_q4_0_f32_s", matmul_q4_0_f32_fp32_len, matmul_q4_0_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_0]->a_l, "matmul_q4_0_f32_aligned_l", matmul_q4_0_f32_aligned_fp32_len, matmul_q4_0_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_0]->a_m, "matmul_q4_0_f32_aligned_m", matmul_q4_0_f32_aligned_fp32_len, matmul_q4_0_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_0]->a_s, "matmul_q4_0_f32_aligned_s", matmul_q4_0_f32_aligned_fp32_len, matmul_q4_0_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_1]->l, "matmul_q4_1_f32_l", matmul_q4_1_f32_fp32_len, matmul_q4_1_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_1]->m, "matmul_q4_1_f32_m", matmul_q4_1_f32_fp32_len, matmul_q4_1_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_1]->s, "matmul_q4_1_f32_s", matmul_q4_1_f32_fp32_len, matmul_q4_1_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_1]->a_l, "matmul_q4_1_f32_aligned_l", matmul_q4_1_f32_aligned_fp32_len, matmul_q4_1_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_1]->a_m, "matmul_q4_1_f32_aligned_m", matmul_q4_1_f32_aligned_fp32_len, matmul_q4_1_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_1]->a_s, "matmul_q4_1_f32_aligned_s", matmul_q4_1_f32_aligned_fp32_len, matmul_q4_1_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_0]->l, "matmul_q5_0_f32_l", matmul_q5_0_f32_fp32_len, matmul_q5_0_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_0]->m, "matmul_q5_0_f32_m", matmul_q5_0_f32_fp32_len, matmul_q5_0_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_0]->s, "matmul_q5_0_f32_s", matmul_q5_0_f32_fp32_len, matmul_q5_0_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_0]->a_l, "matmul_q5_0_f32_aligned_l", matmul_q5_0_f32_aligned_fp32_len, matmul_q5_0_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_0]->a_m, "matmul_q5_0_f32_aligned_m", matmul_q5_0_f32_aligned_fp32_len, matmul_q5_0_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_0]->a_s, "matmul_q5_0_f32_aligned_s", matmul_q5_0_f32_aligned_fp32_len, matmul_q5_0_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_1]->l, "matmul_q5_1_f32_l", matmul_q5_1_f32_fp32_len, matmul_q5_1_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_1]->m, "matmul_q5_1_f32_m", matmul_q5_1_f32_fp32_len, matmul_q5_1_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_1]->s, "matmul_q5_1_f32_s", matmul_q5_1_f32_fp32_len, matmul_q5_1_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_1]->a_l, "matmul_q5_1_f32_aligned_l", matmul_q5_1_f32_aligned_fp32_len, matmul_q5_1_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_1]->a_m, "matmul_q5_1_f32_aligned_m", matmul_q5_1_f32_aligned_fp32_len, matmul_q5_1_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_1]->a_s, "matmul_q5_1_f32_aligned_s", matmul_q5_1_f32_aligned_fp32_len, matmul_q5_1_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q8_0]->l, "matmul_q8_0_f32_l", matmul_q8_0_f32_fp32_len, matmul_q8_0_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q8_0]->m, "matmul_q8_0_f32_m", matmul_q8_0_f32_fp32_len, matmul_q8_0_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q8_0]->s, "matmul_q8_0_f32_s", matmul_q8_0_f32_fp32_len, matmul_q8_0_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q8_0]->a_l, "matmul_q8_0_f32_aligned_l", matmul_q8_0_f32_aligned_fp32_len, matmul_q8_0_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q8_0]->a_m, "matmul_q8_0_f32_aligned_m", matmul_q8_0_f32_aligned_fp32_len, matmul_q8_0_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q8_0]->a_s, "matmul_q8_0_f32_aligned_s", matmul_q8_0_f32_aligned_fp32_len, matmul_q8_0_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q2_K]->l, "matmul_q2_k_f32_l", matmul_q2_k_f32_fp32_len, matmul_q2_k_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q2_K]->m, "matmul_q2_k_f32_m", matmul_q2_k_f32_fp32_len, matmul_q2_k_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q2_K]->s, "matmul_q2_k_f32_s", matmul_q2_k_f32_fp32_len, matmul_q2_k_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q2_K]->a_l, "matmul_q2_k_f32_aligned_l", matmul_q2_k_f32_aligned_fp32_len, matmul_q2_k_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q2_K]->a_m, "matmul_q2_k_f32_aligned_m", matmul_q2_k_f32_aligned_fp32_len, matmul_q2_k_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q2_K]->a_s, "matmul_q2_k_f32_aligned_s", matmul_q2_k_f32_aligned_fp32_len, matmul_q2_k_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q3_K]->l, "matmul_q3_k_f32_l", matmul_q3_k_f32_fp32_len, matmul_q3_k_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q3_K]->m, "matmul_q3_k_f32_m", matmul_q3_k_f32_fp32_len, matmul_q3_k_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q3_K]->s, "matmul_q3_k_f32_s", matmul_q3_k_f32_fp32_len, matmul_q3_k_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q3_K]->a_l, "matmul_q3_k_f32_aligned_l", matmul_q3_k_f32_aligned_fp32_len, matmul_q3_k_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q3_K]->a_m, "matmul_q3_k_f32_aligned_m", matmul_q3_k_f32_aligned_fp32_len, matmul_q3_k_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q3_K]->a_s, "matmul_q3_k_f32_aligned_s", matmul_q3_k_f32_aligned_fp32_len, matmul_q3_k_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_K]->l, "matmul_q4_k_f32_l", matmul_q4_k_f32_fp32_len, matmul_q4_k_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_K]->m, "matmul_q4_k_f32_m", matmul_q4_k_f32_fp32_len, matmul_q4_k_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_K]->s, "matmul_q4_k_f32_s", matmul_q4_k_f32_fp32_len, matmul_q4_k_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_K]->a_l, "matmul_q4_k_f32_aligned_l", matmul_q4_k_f32_aligned_fp32_len, matmul_q4_k_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_K]->a_m, "matmul_q4_k_f32_aligned_m", matmul_q4_k_f32_aligned_fp32_len, matmul_q4_k_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_K]->a_s, "matmul_q4_k_f32_aligned_s", matmul_q4_k_f32_aligned_fp32_len, matmul_q4_k_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_K]->l, "matmul_q5_k_f32_l", matmul_q5_k_f32_fp32_len, matmul_q5_k_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_K]->m, "matmul_q5_k_f32_m", matmul_q5_k_f32_fp32_len, matmul_q5_k_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_K]->s, "matmul_q5_k_f32_s", matmul_q5_k_f32_fp32_len, matmul_q5_k_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_K]->a_l, "matmul_q5_k_f32_aligned_l", matmul_q5_k_f32_aligned_fp32_len, matmul_q5_k_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_K]->a_m, "matmul_q5_k_f32_aligned_m", matmul_q5_k_f32_aligned_fp32_len, matmul_q5_k_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_K]->a_s, "matmul_q5_k_f32_aligned_s", matmul_q5_k_f32_aligned_fp32_len, matmul_q5_k_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q6_K]->l, "matmul_q6_k_f32_l", matmul_q6_k_f32_fp32_len, matmul_q6_k_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q6_K]->m, "matmul_q6_k_f32_m", matmul_q6_k_f32_fp32_len, matmul_q6_k_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q6_K]->s, "matmul_q6_k_f32_s", matmul_q6_k_f32_fp32_len, matmul_q6_k_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q6_K]->a_l, "matmul_q6_k_f32_aligned_l", matmul_q6_k_f32_aligned_fp32_len, matmul_q6_k_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q6_K]->a_m, "matmul_q6_k_f32_aligned_m", matmul_q6_k_f32_aligned_fp32_len, matmul_q6_k_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q6_K]->a_s, "matmul_q6_k_f32_aligned_s", matmul_q6_k_f32_aligned_fp32_len, matmul_q6_k_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_id_f32->l, "matmul_id_f32_l", matmul_id_f32_f32_fp32_len, matmul_id_f32_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_l, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_id_f32->m, "matmul_id_f32_m", matmul_id_f32_f32_fp32_len, matmul_id_f32_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_m, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_id_f32->s, "matmul_id_f32_s", matmul_id_f32_f32_fp32_len, matmul_id_f32_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_s, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_id_f32->a_l, "matmul_id_f32_aligned_l", matmul_id_f32_f32_aligned_fp32_len, matmul_id_f32_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_id_f32->a_m, "matmul_id_f32_aligned_m", matmul_id_f32_f32_aligned_fp32_len, matmul_id_f32_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_id_f32->a_s, "matmul_id_f32_aligned_s", matmul_id_f32_f32_aligned_fp32_len, matmul_id_f32_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_s, s_align); - - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_id_f16->l, "matmul_id_f16_l", matmul_id_f16_fp32_len, matmul_id_f16_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_l, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_id_f16->m, "matmul_id_f16_m", matmul_id_f16_fp32_len, matmul_id_f16_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_m, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_id_f16->s, "matmul_id_f16_s", matmul_id_f16_fp32_len, matmul_id_f16_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_s, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_id_f16->a_l, "matmul_id_f16_aligned_l", matmul_id_f16_aligned_fp32_len, matmul_id_f16_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_id_f16->a_m, "matmul_id_f16_aligned_m", matmul_id_f16_aligned_fp32_len, matmul_id_f16_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_id_f16->a_s, "matmul_id_f16_aligned_s", matmul_id_f16_aligned_fp32_len, matmul_id_f16_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_s, s_align); - - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_id_f16_f32->l, "matmul_id_f16_f32_l", matmul_id_f16_f32_fp32_len, matmul_id_f16_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_l, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_id_f16_f32->m, "matmul_id_f16_f32_m", matmul_id_f16_f32_fp32_len, matmul_id_f16_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_m, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_id_f16_f32->s, "matmul_id_f16_f32_s", matmul_id_f16_f32_fp32_len, matmul_id_f16_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_s, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_id_f16_f32->a_l, "matmul_id_f16_f32_aligned_l", matmul_id_f16_f32_aligned_fp32_len, matmul_id_f16_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_id_f16_f32->a_m, "matmul_id_f16_f32_aligned_m", matmul_id_f16_f32_aligned_fp32_len, matmul_id_f16_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_id_f16_f32->a_s, "matmul_id_f16_f32_aligned_s", matmul_id_f16_f32_aligned_fp32_len, matmul_id_f16_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_s, s_align); - - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_0]->l, "matmul_id_q4_0_f32_l", matmul_id_q4_0_f32_fp32_len, matmul_id_q4_0_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_0]->m, "matmul_id_q4_0_f32_m", matmul_id_q4_0_f32_fp32_len, matmul_id_q4_0_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_0]->s, "matmul_id_q4_0_f32_s", matmul_id_q4_0_f32_fp32_len, matmul_id_q4_0_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_0]->a_l, "matmul_id_q4_0_f32_aligned_l", matmul_id_q4_0_f32_aligned_fp32_len, matmul_id_q4_0_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_0]->a_m, "matmul_id_q4_0_f32_aligned_m", matmul_id_q4_0_f32_aligned_fp32_len, matmul_id_q4_0_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_0]->a_s, "matmul_id_q4_0_f32_aligned_s", matmul_id_q4_0_f32_aligned_fp32_len, matmul_id_q4_0_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_1]->l, "matmul_id_q4_1_f32_l", matmul_id_q4_1_f32_fp32_len, matmul_id_q4_1_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_1]->m, "matmul_id_q4_1_f32_m", matmul_id_q4_1_f32_fp32_len, matmul_id_q4_1_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_1]->s, "matmul_id_q4_1_f32_s", matmul_id_q4_1_f32_fp32_len, matmul_id_q4_1_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_1]->a_l, "matmul_id_q4_1_f32_aligned_l", matmul_id_q4_1_f32_aligned_fp32_len, matmul_id_q4_1_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_1]->a_m, "matmul_id_q4_1_f32_aligned_m", matmul_id_q4_1_f32_aligned_fp32_len, matmul_id_q4_1_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_1]->a_s, "matmul_id_q4_1_f32_aligned_s", matmul_id_q4_1_f32_aligned_fp32_len, matmul_id_q4_1_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_0]->l, "matmul_id_q5_0_f32_l", matmul_id_q5_0_f32_fp32_len, matmul_id_q5_0_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_0]->m, "matmul_id_q5_0_f32_m", matmul_id_q5_0_f32_fp32_len, matmul_id_q5_0_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_0]->s, "matmul_id_q5_0_f32_s", matmul_id_q5_0_f32_fp32_len, matmul_id_q5_0_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_0]->a_l, "matmul_id_q5_0_f32_aligned_l", matmul_id_q5_0_f32_aligned_fp32_len, matmul_id_q5_0_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_0]->a_m, "matmul_id_q5_0_f32_aligned_m", matmul_id_q5_0_f32_aligned_fp32_len, matmul_id_q5_0_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_0]->a_s, "matmul_id_q5_0_f32_aligned_s", matmul_id_q5_0_f32_aligned_fp32_len, matmul_id_q5_0_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_1]->l, "matmul_id_q5_1_f32_l", matmul_id_q5_1_f32_fp32_len, matmul_id_q5_1_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_1]->m, "matmul_id_q5_1_f32_m", matmul_id_q5_1_f32_fp32_len, matmul_id_q5_1_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_1]->s, "matmul_id_q5_1_f32_s", matmul_id_q5_1_f32_fp32_len, matmul_id_q5_1_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_1]->a_l, "matmul_id_q5_1_f32_aligned_l", matmul_id_q5_1_f32_aligned_fp32_len, matmul_id_q5_1_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_1]->a_m, "matmul_id_q5_1_f32_aligned_m", matmul_id_q5_1_f32_aligned_fp32_len, matmul_id_q5_1_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_1]->a_s, "matmul_id_q5_1_f32_aligned_s", matmul_id_q5_1_f32_aligned_fp32_len, matmul_id_q5_1_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q8_0]->l, "matmul_id_q8_0_f32_l", matmul_id_q8_0_f32_fp32_len, matmul_id_q8_0_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q8_0]->m, "matmul_id_q8_0_f32_m", matmul_id_q8_0_f32_fp32_len, matmul_id_q8_0_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q8_0]->s, "matmul_id_q8_0_f32_s", matmul_id_q8_0_f32_fp32_len, matmul_id_q8_0_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q8_0]->a_l, "matmul_id_q8_0_f32_aligned_l", matmul_id_q8_0_f32_aligned_fp32_len, matmul_id_q8_0_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q8_0]->a_m, "matmul_id_q8_0_f32_aligned_m", matmul_id_q8_0_f32_aligned_fp32_len, matmul_id_q8_0_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q8_0]->a_s, "matmul_id_q8_0_f32_aligned_s", matmul_id_q8_0_f32_aligned_fp32_len, matmul_id_q8_0_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q2_K]->l, "matmul_id_q2_k_f32_l", matmul_id_q2_k_f32_fp32_len, matmul_id_q2_k_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q2_K]->m, "matmul_id_q2_k_f32_m", matmul_id_q2_k_f32_fp32_len, matmul_id_q2_k_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q2_K]->s, "matmul_id_q2_k_f32_s", matmul_id_q2_k_f32_fp32_len, matmul_id_q2_k_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q2_K]->a_l, "matmul_id_q2_k_f32_aligned_l", matmul_id_q2_k_f32_aligned_fp32_len, matmul_id_q2_k_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q2_K]->a_m, "matmul_id_q2_k_f32_aligned_m", matmul_id_q2_k_f32_aligned_fp32_len, matmul_id_q2_k_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q2_K]->a_s, "matmul_id_q2_k_f32_aligned_s", matmul_id_q2_k_f32_aligned_fp32_len, matmul_id_q2_k_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q3_K]->l, "matmul_id_q3_k_f32_l", matmul_id_q3_k_f32_fp32_len, matmul_id_q3_k_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q3_K]->m, "matmul_id_q3_k_f32_m", matmul_id_q3_k_f32_fp32_len, matmul_id_q3_k_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q3_K]->s, "matmul_id_q3_k_f32_s", matmul_id_q3_k_f32_fp32_len, matmul_id_q3_k_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q3_K]->a_l, "matmul_id_q3_k_f32_aligned_l", matmul_id_q3_k_f32_aligned_fp32_len, matmul_id_q3_k_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q3_K]->a_m, "matmul_id_q3_k_f32_aligned_m", matmul_id_q3_k_f32_aligned_fp32_len, matmul_id_q3_k_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q3_K]->a_s, "matmul_id_q3_k_f32_aligned_s", matmul_id_q3_k_f32_aligned_fp32_len, matmul_id_q3_k_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_K]->l, "matmul_id_q4_k_f32_l", matmul_id_q4_k_f32_fp32_len, matmul_id_q4_k_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_K]->m, "matmul_id_q4_k_f32_m", matmul_id_q4_k_f32_fp32_len, matmul_id_q4_k_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_K]->s, "matmul_id_q4_k_f32_s", matmul_id_q4_k_f32_fp32_len, matmul_id_q4_k_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_K]->a_l, "matmul_id_q4_k_f32_aligned_l", matmul_id_q4_k_f32_aligned_fp32_len, matmul_id_q4_k_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_K]->a_m, "matmul_id_q4_k_f32_aligned_m", matmul_id_q4_k_f32_aligned_fp32_len, matmul_id_q4_k_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_K]->a_s, "matmul_id_q4_k_f32_aligned_s", matmul_id_q4_k_f32_aligned_fp32_len, matmul_id_q4_k_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_K]->l, "matmul_id_q5_k_f32_l", matmul_id_q5_k_f32_fp32_len, matmul_id_q5_k_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_K]->m, "matmul_id_q5_k_f32_m", matmul_id_q5_k_f32_fp32_len, matmul_id_q5_k_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_K]->s, "matmul_id_q5_k_f32_s", matmul_id_q5_k_f32_fp32_len, matmul_id_q5_k_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_K]->a_l, "matmul_id_q5_k_f32_aligned_l", matmul_id_q5_k_f32_aligned_fp32_len, matmul_id_q5_k_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_K]->a_m, "matmul_id_q5_k_f32_aligned_m", matmul_id_q5_k_f32_aligned_fp32_len, matmul_id_q5_k_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_K]->a_s, "matmul_id_q5_k_f32_aligned_s", matmul_id_q5_k_f32_aligned_fp32_len, matmul_id_q5_k_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q6_K]->l, "matmul_id_q6_k_f32_l", matmul_id_q6_k_f32_fp32_len, matmul_id_q6_k_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q6_K]->m, "matmul_id_q6_k_f32_m", matmul_id_q6_k_f32_fp32_len, matmul_id_q6_k_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q6_K]->s, "matmul_id_q6_k_f32_s", matmul_id_q6_k_f32_fp32_len, matmul_id_q6_k_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q6_K]->a_l, "matmul_id_q6_k_f32_aligned_l", matmul_id_q6_k_f32_aligned_fp32_len, matmul_id_q6_k_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q6_K]->a_m, "matmul_id_q6_k_f32_aligned_m", matmul_id_q6_k_f32_aligned_fp32_len, matmul_id_q6_k_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q6_K]->a_s, "matmul_id_q6_k_f32_aligned_s", matmul_id_q6_k_f32_aligned_fp32_len, matmul_id_q6_k_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + ggml_vk_create_pipeline(device, device->pipeline_matmul_f32->l, "matmul_f32_l", matmul_f32_f32_fp32_len, matmul_f32_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_l, 1); + ggml_vk_create_pipeline(device, device->pipeline_matmul_f32->m, "matmul_f32_m", matmul_f32_f32_fp32_len, matmul_f32_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_m, 1); + ggml_vk_create_pipeline(device, device->pipeline_matmul_f32->s, "matmul_f32_s", matmul_f32_f32_fp32_len, matmul_f32_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_s, 1); + ggml_vk_create_pipeline(device, device->pipeline_matmul_f32->a_l, "matmul_f32_aligned_l", matmul_f32_f32_aligned_fp32_len, matmul_f32_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_matmul_f32->a_m, "matmul_f32_aligned_m", matmul_f32_f32_aligned_fp32_len, matmul_f32_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_matmul_f32->a_s, "matmul_f32_aligned_s", matmul_f32_f32_aligned_fp32_len, matmul_f32_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_s, s_align); + + ggml_vk_create_pipeline(device, device->pipeline_matmul_f32_f16->l, "matmul_f32_f16_l", matmul_f32_f16_fp32_len, matmul_f32_f16_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_l, 1); + ggml_vk_create_pipeline(device, device->pipeline_matmul_f32_f16->m, "matmul_f32_f16_m", matmul_f32_f16_fp32_len, matmul_f32_f16_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_m, 1); + ggml_vk_create_pipeline(device, device->pipeline_matmul_f32_f16->s, "matmul_f32_f16_s", matmul_f32_f16_fp32_len, matmul_f32_f16_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_s, 1); + ggml_vk_create_pipeline(device, device->pipeline_matmul_f32_f16->a_l, "matmul_f32_f16_aligned_l", matmul_f32_f16_aligned_fp32_len, matmul_f32_f16_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_matmul_f32_f16->a_m, "matmul_f32_f16_aligned_m", matmul_f32_f16_aligned_fp32_len, matmul_f32_f16_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_matmul_f32_f16->a_s, "matmul_f32_f16_aligned_s", matmul_f32_f16_aligned_fp32_len, matmul_f32_f16_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_s, s_align); + + ggml_vk_create_pipeline(device, device->pipeline_matmul_f16->l, "matmul_f16_l", matmul_f16_fp32_len, matmul_f16_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_l, 1); + ggml_vk_create_pipeline(device, device->pipeline_matmul_f16->m, "matmul_f16_m", matmul_f16_fp32_len, matmul_f16_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_m, 1); + ggml_vk_create_pipeline(device, device->pipeline_matmul_f16->s, "matmul_f16_s", matmul_f16_fp32_len, matmul_f16_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_s, 1); + ggml_vk_create_pipeline(device, device->pipeline_matmul_f16->a_l, "matmul_f16_aligned_l", matmul_f16_aligned_fp32_len, matmul_f16_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_matmul_f16->a_m, "matmul_f16_aligned_m", matmul_f16_aligned_fp32_len, matmul_f16_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_matmul_f16->a_s, "matmul_f16_aligned_s", matmul_f16_aligned_fp32_len, matmul_f16_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_s, s_align); + + ggml_vk_create_pipeline(device, device->pipeline_matmul_f16_f32->l, "matmul_f16_f32_l", matmul_f16_f32_fp32_len, matmul_f16_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_l, 1); + ggml_vk_create_pipeline(device, device->pipeline_matmul_f16_f32->m, "matmul_f16_f32_m", matmul_f16_f32_fp32_len, matmul_f16_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_m, 1); + ggml_vk_create_pipeline(device, device->pipeline_matmul_f16_f32->s, "matmul_f16_f32_s", matmul_f16_f32_fp32_len, matmul_f16_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_s, 1); + ggml_vk_create_pipeline(device, device->pipeline_matmul_f16_f32->a_l, "matmul_f16_f32_aligned_l", matmul_f16_f32_aligned_fp32_len, matmul_f16_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_matmul_f16_f32->a_m, "matmul_f16_f32_aligned_m", matmul_f16_f32_aligned_fp32_len, matmul_f16_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_matmul_f16_f32->a_s, "matmul_f16_f32_aligned_s", matmul_f16_f32_aligned_fp32_len, matmul_f16_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_s, s_align); + + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_0]->l, "matmul_q4_0_f32_l", matmul_q4_0_f32_fp32_len, matmul_q4_0_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_0]->m, "matmul_q4_0_f32_m", matmul_q4_0_f32_fp32_len, matmul_q4_0_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_0]->s, "matmul_q4_0_f32_s", matmul_q4_0_f32_fp32_len, matmul_q4_0_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_0]->a_l, "matmul_q4_0_f32_aligned_l", matmul_q4_0_f32_aligned_fp32_len, matmul_q4_0_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_0]->a_m, "matmul_q4_0_f32_aligned_m", matmul_q4_0_f32_aligned_fp32_len, matmul_q4_0_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_0]->a_s, "matmul_q4_0_f32_aligned_s", matmul_q4_0_f32_aligned_fp32_len, matmul_q4_0_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_1]->l, "matmul_q4_1_f32_l", matmul_q4_1_f32_fp32_len, matmul_q4_1_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_1]->m, "matmul_q4_1_f32_m", matmul_q4_1_f32_fp32_len, matmul_q4_1_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_1]->s, "matmul_q4_1_f32_s", matmul_q4_1_f32_fp32_len, matmul_q4_1_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_1]->a_l, "matmul_q4_1_f32_aligned_l", matmul_q4_1_f32_aligned_fp32_len, matmul_q4_1_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_1]->a_m, "matmul_q4_1_f32_aligned_m", matmul_q4_1_f32_aligned_fp32_len, matmul_q4_1_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_1]->a_s, "matmul_q4_1_f32_aligned_s", matmul_q4_1_f32_aligned_fp32_len, matmul_q4_1_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_0]->l, "matmul_q5_0_f32_l", matmul_q5_0_f32_fp32_len, matmul_q5_0_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_0]->m, "matmul_q5_0_f32_m", matmul_q5_0_f32_fp32_len, matmul_q5_0_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_0]->s, "matmul_q5_0_f32_s", matmul_q5_0_f32_fp32_len, matmul_q5_0_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_0]->a_l, "matmul_q5_0_f32_aligned_l", matmul_q5_0_f32_aligned_fp32_len, matmul_q5_0_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_0]->a_m, "matmul_q5_0_f32_aligned_m", matmul_q5_0_f32_aligned_fp32_len, matmul_q5_0_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_0]->a_s, "matmul_q5_0_f32_aligned_s", matmul_q5_0_f32_aligned_fp32_len, matmul_q5_0_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_1]->l, "matmul_q5_1_f32_l", matmul_q5_1_f32_fp32_len, matmul_q5_1_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_1]->m, "matmul_q5_1_f32_m", matmul_q5_1_f32_fp32_len, matmul_q5_1_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_1]->s, "matmul_q5_1_f32_s", matmul_q5_1_f32_fp32_len, matmul_q5_1_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_1]->a_l, "matmul_q5_1_f32_aligned_l", matmul_q5_1_f32_aligned_fp32_len, matmul_q5_1_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_1]->a_m, "matmul_q5_1_f32_aligned_m", matmul_q5_1_f32_aligned_fp32_len, matmul_q5_1_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_1]->a_s, "matmul_q5_1_f32_aligned_s", matmul_q5_1_f32_aligned_fp32_len, matmul_q5_1_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q8_0]->l, "matmul_q8_0_f32_l", matmul_q8_0_f32_fp32_len, matmul_q8_0_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q8_0]->m, "matmul_q8_0_f32_m", matmul_q8_0_f32_fp32_len, matmul_q8_0_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q8_0]->s, "matmul_q8_0_f32_s", matmul_q8_0_f32_fp32_len, matmul_q8_0_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q8_0]->a_l, "matmul_q8_0_f32_aligned_l", matmul_q8_0_f32_aligned_fp32_len, matmul_q8_0_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q8_0]->a_m, "matmul_q8_0_f32_aligned_m", matmul_q8_0_f32_aligned_fp32_len, matmul_q8_0_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q8_0]->a_s, "matmul_q8_0_f32_aligned_s", matmul_q8_0_f32_aligned_fp32_len, matmul_q8_0_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q2_K]->l, "matmul_q2_k_f32_l", matmul_q2_k_f32_fp32_len, matmul_q2_k_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q2_K]->m, "matmul_q2_k_f32_m", matmul_q2_k_f32_fp32_len, matmul_q2_k_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q2_K]->s, "matmul_q2_k_f32_s", matmul_q2_k_f32_fp32_len, matmul_q2_k_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q2_K]->a_l, "matmul_q2_k_f32_aligned_l", matmul_q2_k_f32_aligned_fp32_len, matmul_q2_k_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q2_K]->a_m, "matmul_q2_k_f32_aligned_m", matmul_q2_k_f32_aligned_fp32_len, matmul_q2_k_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q2_K]->a_s, "matmul_q2_k_f32_aligned_s", matmul_q2_k_f32_aligned_fp32_len, matmul_q2_k_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q3_K]->l, "matmul_q3_k_f32_l", matmul_q3_k_f32_fp32_len, matmul_q3_k_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q3_K]->m, "matmul_q3_k_f32_m", matmul_q3_k_f32_fp32_len, matmul_q3_k_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q3_K]->s, "matmul_q3_k_f32_s", matmul_q3_k_f32_fp32_len, matmul_q3_k_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q3_K]->a_l, "matmul_q3_k_f32_aligned_l", matmul_q3_k_f32_aligned_fp32_len, matmul_q3_k_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q3_K]->a_m, "matmul_q3_k_f32_aligned_m", matmul_q3_k_f32_aligned_fp32_len, matmul_q3_k_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q3_K]->a_s, "matmul_q3_k_f32_aligned_s", matmul_q3_k_f32_aligned_fp32_len, matmul_q3_k_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_K]->l, "matmul_q4_k_f32_l", matmul_q4_k_f32_fp32_len, matmul_q4_k_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_K]->m, "matmul_q4_k_f32_m", matmul_q4_k_f32_fp32_len, matmul_q4_k_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_K]->s, "matmul_q4_k_f32_s", matmul_q4_k_f32_fp32_len, matmul_q4_k_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_K]->a_l, "matmul_q4_k_f32_aligned_l", matmul_q4_k_f32_aligned_fp32_len, matmul_q4_k_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_K]->a_m, "matmul_q4_k_f32_aligned_m", matmul_q4_k_f32_aligned_fp32_len, matmul_q4_k_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_K]->a_s, "matmul_q4_k_f32_aligned_s", matmul_q4_k_f32_aligned_fp32_len, matmul_q4_k_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_K]->l, "matmul_q5_k_f32_l", matmul_q5_k_f32_fp32_len, matmul_q5_k_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_K]->m, "matmul_q5_k_f32_m", matmul_q5_k_f32_fp32_len, matmul_q5_k_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_K]->s, "matmul_q5_k_f32_s", matmul_q5_k_f32_fp32_len, matmul_q5_k_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_K]->a_l, "matmul_q5_k_f32_aligned_l", matmul_q5_k_f32_aligned_fp32_len, matmul_q5_k_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_K]->a_m, "matmul_q5_k_f32_aligned_m", matmul_q5_k_f32_aligned_fp32_len, matmul_q5_k_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_K]->a_s, "matmul_q5_k_f32_aligned_s", matmul_q5_k_f32_aligned_fp32_len, matmul_q5_k_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q6_K]->l, "matmul_q6_k_f32_l", matmul_q6_k_f32_fp32_len, matmul_q6_k_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q6_K]->m, "matmul_q6_k_f32_m", matmul_q6_k_f32_fp32_len, matmul_q6_k_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q6_K]->s, "matmul_q6_k_f32_s", matmul_q6_k_f32_fp32_len, matmul_q6_k_f32_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q6_K]->a_l, "matmul_q6_k_f32_aligned_l", matmul_q6_k_f32_aligned_fp32_len, matmul_q6_k_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q6_K]->a_m, "matmul_q6_k_f32_aligned_m", matmul_q6_k_f32_aligned_fp32_len, matmul_q6_k_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat[GGML_TYPE_Q6_K]->a_s, "matmul_q6_k_f32_aligned_s", matmul_q6_k_f32_aligned_fp32_len, matmul_q6_k_f32_aligned_fp32_data, "main", 3, sizeof(vk_mat_mat_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + + ggml_vk_create_pipeline(device, device->pipeline_matmul_id_f32->l, "matmul_id_f32_l", matmul_id_f32_f32_fp32_len, matmul_id_f32_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_l, 1); + ggml_vk_create_pipeline(device, device->pipeline_matmul_id_f32->m, "matmul_id_f32_m", matmul_id_f32_f32_fp32_len, matmul_id_f32_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_m, 1); + ggml_vk_create_pipeline(device, device->pipeline_matmul_id_f32->s, "matmul_id_f32_s", matmul_id_f32_f32_fp32_len, matmul_id_f32_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_s, 1); + ggml_vk_create_pipeline(device, device->pipeline_matmul_id_f32->a_l, "matmul_id_f32_aligned_l", matmul_id_f32_f32_aligned_fp32_len, matmul_id_f32_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_matmul_id_f32->a_m, "matmul_id_f32_aligned_m", matmul_id_f32_f32_aligned_fp32_len, matmul_id_f32_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_matmul_id_f32->a_s, "matmul_id_f32_aligned_s", matmul_id_f32_f32_aligned_fp32_len, matmul_id_f32_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_s, s_align); + + ggml_vk_create_pipeline(device, device->pipeline_matmul_id_f16->l, "matmul_id_f16_l", matmul_id_f16_fp32_len, matmul_id_f16_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_l, 1); + ggml_vk_create_pipeline(device, device->pipeline_matmul_id_f16->m, "matmul_id_f16_m", matmul_id_f16_fp32_len, matmul_id_f16_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_m, 1); + ggml_vk_create_pipeline(device, device->pipeline_matmul_id_f16->s, "matmul_id_f16_s", matmul_id_f16_fp32_len, matmul_id_f16_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_s, 1); + ggml_vk_create_pipeline(device, device->pipeline_matmul_id_f16->a_l, "matmul_id_f16_aligned_l", matmul_id_f16_aligned_fp32_len, matmul_id_f16_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_matmul_id_f16->a_m, "matmul_id_f16_aligned_m", matmul_id_f16_aligned_fp32_len, matmul_id_f16_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_matmul_id_f16->a_s, "matmul_id_f16_aligned_s", matmul_id_f16_aligned_fp32_len, matmul_id_f16_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_s, s_align); + + ggml_vk_create_pipeline(device, device->pipeline_matmul_id_f16_f32->l, "matmul_id_f16_f32_l", matmul_id_f16_f32_fp32_len, matmul_id_f16_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_l, 1); + ggml_vk_create_pipeline(device, device->pipeline_matmul_id_f16_f32->m, "matmul_id_f16_f32_m", matmul_id_f16_f32_fp32_len, matmul_id_f16_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_m, 1); + ggml_vk_create_pipeline(device, device->pipeline_matmul_id_f16_f32->s, "matmul_id_f16_f32_s", matmul_id_f16_f32_fp32_len, matmul_id_f16_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_s, 1); + ggml_vk_create_pipeline(device, device->pipeline_matmul_id_f16_f32->a_l, "matmul_id_f16_f32_aligned_l", matmul_id_f16_f32_aligned_fp32_len, matmul_id_f16_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_matmul_id_f16_f32->a_m, "matmul_id_f16_f32_aligned_m", matmul_id_f16_f32_aligned_fp32_len, matmul_id_f16_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_matmul_id_f16_f32->a_s, "matmul_id_f16_f32_aligned_s", matmul_id_f16_f32_aligned_fp32_len, matmul_id_f16_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_s, s_align); + + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_0]->l, "matmul_id_q4_0_f32_l", matmul_id_q4_0_f32_fp32_len, matmul_id_q4_0_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_0]->m, "matmul_id_q4_0_f32_m", matmul_id_q4_0_f32_fp32_len, matmul_id_q4_0_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_0]->s, "matmul_id_q4_0_f32_s", matmul_id_q4_0_f32_fp32_len, matmul_id_q4_0_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_0]->a_l, "matmul_id_q4_0_f32_aligned_l", matmul_id_q4_0_f32_aligned_fp32_len, matmul_id_q4_0_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_0]->a_m, "matmul_id_q4_0_f32_aligned_m", matmul_id_q4_0_f32_aligned_fp32_len, matmul_id_q4_0_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_0]->a_s, "matmul_id_q4_0_f32_aligned_s", matmul_id_q4_0_f32_aligned_fp32_len, matmul_id_q4_0_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_1]->l, "matmul_id_q4_1_f32_l", matmul_id_q4_1_f32_fp32_len, matmul_id_q4_1_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_1]->m, "matmul_id_q4_1_f32_m", matmul_id_q4_1_f32_fp32_len, matmul_id_q4_1_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_1]->s, "matmul_id_q4_1_f32_s", matmul_id_q4_1_f32_fp32_len, matmul_id_q4_1_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_1]->a_l, "matmul_id_q4_1_f32_aligned_l", matmul_id_q4_1_f32_aligned_fp32_len, matmul_id_q4_1_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_1]->a_m, "matmul_id_q4_1_f32_aligned_m", matmul_id_q4_1_f32_aligned_fp32_len, matmul_id_q4_1_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_1]->a_s, "matmul_id_q4_1_f32_aligned_s", matmul_id_q4_1_f32_aligned_fp32_len, matmul_id_q4_1_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_0]->l, "matmul_id_q5_0_f32_l", matmul_id_q5_0_f32_fp32_len, matmul_id_q5_0_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_0]->m, "matmul_id_q5_0_f32_m", matmul_id_q5_0_f32_fp32_len, matmul_id_q5_0_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_0]->s, "matmul_id_q5_0_f32_s", matmul_id_q5_0_f32_fp32_len, matmul_id_q5_0_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_0]->a_l, "matmul_id_q5_0_f32_aligned_l", matmul_id_q5_0_f32_aligned_fp32_len, matmul_id_q5_0_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_0]->a_m, "matmul_id_q5_0_f32_aligned_m", matmul_id_q5_0_f32_aligned_fp32_len, matmul_id_q5_0_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_0]->a_s, "matmul_id_q5_0_f32_aligned_s", matmul_id_q5_0_f32_aligned_fp32_len, matmul_id_q5_0_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_1]->l, "matmul_id_q5_1_f32_l", matmul_id_q5_1_f32_fp32_len, matmul_id_q5_1_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_1]->m, "matmul_id_q5_1_f32_m", matmul_id_q5_1_f32_fp32_len, matmul_id_q5_1_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_1]->s, "matmul_id_q5_1_f32_s", matmul_id_q5_1_f32_fp32_len, matmul_id_q5_1_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_1]->a_l, "matmul_id_q5_1_f32_aligned_l", matmul_id_q5_1_f32_aligned_fp32_len, matmul_id_q5_1_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_1]->a_m, "matmul_id_q5_1_f32_aligned_m", matmul_id_q5_1_f32_aligned_fp32_len, matmul_id_q5_1_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_1]->a_s, "matmul_id_q5_1_f32_aligned_s", matmul_id_q5_1_f32_aligned_fp32_len, matmul_id_q5_1_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q8_0]->l, "matmul_id_q8_0_f32_l", matmul_id_q8_0_f32_fp32_len, matmul_id_q8_0_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q8_0]->m, "matmul_id_q8_0_f32_m", matmul_id_q8_0_f32_fp32_len, matmul_id_q8_0_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q8_0]->s, "matmul_id_q8_0_f32_s", matmul_id_q8_0_f32_fp32_len, matmul_id_q8_0_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q8_0]->a_l, "matmul_id_q8_0_f32_aligned_l", matmul_id_q8_0_f32_aligned_fp32_len, matmul_id_q8_0_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q8_0]->a_m, "matmul_id_q8_0_f32_aligned_m", matmul_id_q8_0_f32_aligned_fp32_len, matmul_id_q8_0_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q8_0]->a_s, "matmul_id_q8_0_f32_aligned_s", matmul_id_q8_0_f32_aligned_fp32_len, matmul_id_q8_0_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q2_K]->l, "matmul_id_q2_k_f32_l", matmul_id_q2_k_f32_fp32_len, matmul_id_q2_k_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q2_K]->m, "matmul_id_q2_k_f32_m", matmul_id_q2_k_f32_fp32_len, matmul_id_q2_k_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q2_K]->s, "matmul_id_q2_k_f32_s", matmul_id_q2_k_f32_fp32_len, matmul_id_q2_k_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q2_K]->a_l, "matmul_id_q2_k_f32_aligned_l", matmul_id_q2_k_f32_aligned_fp32_len, matmul_id_q2_k_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q2_K]->a_m, "matmul_id_q2_k_f32_aligned_m", matmul_id_q2_k_f32_aligned_fp32_len, matmul_id_q2_k_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q2_K]->a_s, "matmul_id_q2_k_f32_aligned_s", matmul_id_q2_k_f32_aligned_fp32_len, matmul_id_q2_k_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q3_K]->l, "matmul_id_q3_k_f32_l", matmul_id_q3_k_f32_fp32_len, matmul_id_q3_k_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q3_K]->m, "matmul_id_q3_k_f32_m", matmul_id_q3_k_f32_fp32_len, matmul_id_q3_k_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q3_K]->s, "matmul_id_q3_k_f32_s", matmul_id_q3_k_f32_fp32_len, matmul_id_q3_k_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q3_K]->a_l, "matmul_id_q3_k_f32_aligned_l", matmul_id_q3_k_f32_aligned_fp32_len, matmul_id_q3_k_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q3_K]->a_m, "matmul_id_q3_k_f32_aligned_m", matmul_id_q3_k_f32_aligned_fp32_len, matmul_id_q3_k_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q3_K]->a_s, "matmul_id_q3_k_f32_aligned_s", matmul_id_q3_k_f32_aligned_fp32_len, matmul_id_q3_k_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_K]->l, "matmul_id_q4_k_f32_l", matmul_id_q4_k_f32_fp32_len, matmul_id_q4_k_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_K]->m, "matmul_id_q4_k_f32_m", matmul_id_q4_k_f32_fp32_len, matmul_id_q4_k_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_K]->s, "matmul_id_q4_k_f32_s", matmul_id_q4_k_f32_fp32_len, matmul_id_q4_k_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_K]->a_l, "matmul_id_q4_k_f32_aligned_l", matmul_id_q4_k_f32_aligned_fp32_len, matmul_id_q4_k_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_K]->a_m, "matmul_id_q4_k_f32_aligned_m", matmul_id_q4_k_f32_aligned_fp32_len, matmul_id_q4_k_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_K]->a_s, "matmul_id_q4_k_f32_aligned_s", matmul_id_q4_k_f32_aligned_fp32_len, matmul_id_q4_k_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_K]->l, "matmul_id_q5_k_f32_l", matmul_id_q5_k_f32_fp32_len, matmul_id_q5_k_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_K]->m, "matmul_id_q5_k_f32_m", matmul_id_q5_k_f32_fp32_len, matmul_id_q5_k_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_K]->s, "matmul_id_q5_k_f32_s", matmul_id_q5_k_f32_fp32_len, matmul_id_q5_k_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_K]->a_l, "matmul_id_q5_k_f32_aligned_l", matmul_id_q5_k_f32_aligned_fp32_len, matmul_id_q5_k_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_K]->a_m, "matmul_id_q5_k_f32_aligned_m", matmul_id_q5_k_f32_aligned_fp32_len, matmul_id_q5_k_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_K]->a_s, "matmul_id_q5_k_f32_aligned_s", matmul_id_q5_k_f32_aligned_fp32_len, matmul_id_q5_k_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q6_K]->l, "matmul_id_q6_k_f32_l", matmul_id_q6_k_f32_fp32_len, matmul_id_q6_k_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q6_K]->m, "matmul_id_q6_k_f32_m", matmul_id_q6_k_f32_fp32_len, matmul_id_q6_k_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q6_K]->s, "matmul_id_q6_k_f32_s", matmul_id_q6_k_f32_fp32_len, matmul_id_q6_k_f32_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q6_K]->a_l, "matmul_id_q6_k_f32_aligned_l", matmul_id_q6_k_f32_aligned_fp32_len, matmul_id_q6_k_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), l_wg_denoms, warptile_mmq_l, l_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q6_K]->a_m, "matmul_id_q6_k_f32_aligned_m", matmul_id_q6_k_f32_aligned_fp32_len, matmul_id_q6_k_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), m_wg_denoms, warptile_mmq_m, m_align); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q6_K]->a_s, "matmul_id_q6_k_f32_aligned_s", matmul_id_q6_k_f32_aligned_fp32_len, matmul_id_q6_k_f32_aligned_fp32_data, "main", 4, sizeof(vk_mat_mat_id_push_constants), s_wg_denoms, warptile_mmq_s, s_align); } // mul mat vec - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_f32_f32[GGML_TYPE_F32 ], "mul_mat_vec_f32_f32_f32", mul_mat_vec_f32_f32_f32_len, mul_mat_vec_f32_f32_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_f32_f32[GGML_TYPE_F16 ], "mul_mat_vec_f16_f32_f32", mul_mat_vec_f16_f32_f32_len, mul_mat_vec_f16_f32_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_f32_f32[GGML_TYPE_Q4_0], "mul_mat_vec_q4_0_f32_f32", mul_mat_vec_q4_0_f32_f32_len, mul_mat_vec_q4_0_f32_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_f32_f32[GGML_TYPE_Q4_1], "mul_mat_vec_q4_1_f32_f32", mul_mat_vec_q4_1_f32_f32_len, mul_mat_vec_q4_1_f32_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_f32_f32[GGML_TYPE_Q5_0], "mul_mat_vec_q5_0_f32_f32", mul_mat_vec_q5_0_f32_f32_len, mul_mat_vec_q5_0_f32_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_f32_f32[GGML_TYPE_Q5_1], "mul_mat_vec_q5_1_f32_f32", mul_mat_vec_q5_1_f32_f32_len, mul_mat_vec_q5_1_f32_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_f32_f32[GGML_TYPE_Q8_0], "mul_mat_vec_q8_0_f32_f32", mul_mat_vec_q8_0_f32_f32_len, mul_mat_vec_q8_0_f32_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_f32_f32[GGML_TYPE_Q2_K], "mul_mat_vec_q2_k_f32_f32", mul_mat_vec_q2_k_f32_f32_len, mul_mat_vec_q2_k_f32_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_f32_f32[GGML_TYPE_Q3_K], "mul_mat_vec_q3_k_f32_f32", mul_mat_vec_q3_k_f32_f32_len, mul_mat_vec_q3_k_f32_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_f32_f32[GGML_TYPE_Q4_K], "mul_mat_vec_q4_k_f32_f32", mul_mat_vec_q4_k_f32_f32_len, mul_mat_vec_q4_k_f32_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_f32_f32[GGML_TYPE_Q5_K], "mul_mat_vec_q5_k_f32_f32", mul_mat_vec_q5_k_f32_f32_len, mul_mat_vec_q5_k_f32_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_f32_f32[GGML_TYPE_Q6_K], "mul_mat_vec_q6_k_f32_f32", mul_mat_vec_q6_k_f32_f32_len, mul_mat_vec_q6_k_f32_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); - - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_f16_f32[GGML_TYPE_F32 ], "mul_mat_vec_f32_f16_f32", mul_mat_vec_f32_f16_f32_len, mul_mat_vec_f32_f16_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_f16_f32[GGML_TYPE_F16 ], "mul_mat_vec_f16_f16_f32", mul_mat_vec_f16_f16_f32_len, mul_mat_vec_f16_f16_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_f16_f32[GGML_TYPE_Q4_0], "mul_mat_vec_q4_0_f16_f32", mul_mat_vec_q4_0_f16_f32_len, mul_mat_vec_q4_0_f16_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_f16_f32[GGML_TYPE_Q4_1], "mul_mat_vec_q4_1_f16_f32", mul_mat_vec_q4_1_f16_f32_len, mul_mat_vec_q4_1_f16_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_f16_f32[GGML_TYPE_Q5_0], "mul_mat_vec_q5_0_f16_f32", mul_mat_vec_q5_0_f16_f32_len, mul_mat_vec_q5_0_f16_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_f16_f32[GGML_TYPE_Q5_1], "mul_mat_vec_q5_1_f16_f32", mul_mat_vec_q5_1_f16_f32_len, mul_mat_vec_q5_1_f16_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_f16_f32[GGML_TYPE_Q8_0], "mul_mat_vec_q8_0_f16_f32", mul_mat_vec_q8_0_f16_f32_len, mul_mat_vec_q8_0_f16_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_f16_f32[GGML_TYPE_Q2_K], "mul_mat_vec_q2_k_f16_f32", mul_mat_vec_q2_k_f16_f32_len, mul_mat_vec_q2_k_f16_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_f16_f32[GGML_TYPE_Q3_K], "mul_mat_vec_q3_k_f16_f32", mul_mat_vec_q3_k_f16_f32_len, mul_mat_vec_q3_k_f16_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_f16_f32[GGML_TYPE_Q4_K], "mul_mat_vec_q4_k_f16_f32", mul_mat_vec_q4_k_f16_f32_len, mul_mat_vec_q4_k_f16_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_f16_f32[GGML_TYPE_Q5_K], "mul_mat_vec_q5_k_f16_f32", mul_mat_vec_q5_k_f16_f32_len, mul_mat_vec_q5_k_f16_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_f16_f32[GGML_TYPE_Q6_K], "mul_mat_vec_q6_k_f16_f32", mul_mat_vec_q6_k_f16_f32_len, mul_mat_vec_q6_k_f16_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); - - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_id_f32[GGML_TYPE_F32 ], "mul_mat_vec_id_f32_f32", mul_mat_vec_id_f32_f32_len, mul_mat_vec_id_f32_f32_data, "main", 4, sizeof(vk_mat_vec_id_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_id_f32[GGML_TYPE_F16 ], "mul_mat_vec_id_f16_f32", mul_mat_vec_id_f16_f32_len, mul_mat_vec_id_f16_f32_data, "main", 4, sizeof(vk_mat_vec_id_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_id_f32[GGML_TYPE_Q4_0], "mul_mat_vec_id_q4_0_f32", mul_mat_vec_id_q4_0_f32_len, mul_mat_vec_id_q4_0_f32_data, "main", 4, sizeof(vk_mat_vec_id_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_id_f32[GGML_TYPE_Q4_1], "mul_mat_vec_id_q4_1_f32", mul_mat_vec_id_q4_1_f32_len, mul_mat_vec_id_q4_1_f32_data, "main", 4, sizeof(vk_mat_vec_id_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_id_f32[GGML_TYPE_Q5_0], "mul_mat_vec_id_q5_0_f32", mul_mat_vec_id_q5_0_f32_len, mul_mat_vec_id_q5_0_f32_data, "main", 4, sizeof(vk_mat_vec_id_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_id_f32[GGML_TYPE_Q5_1], "mul_mat_vec_id_q5_1_f32", mul_mat_vec_id_q5_1_f32_len, mul_mat_vec_id_q5_1_f32_data, "main", 4, sizeof(vk_mat_vec_id_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_id_f32[GGML_TYPE_Q8_0], "mul_mat_vec_id_q8_0_f32", mul_mat_vec_id_q8_0_f32_len, mul_mat_vec_id_q8_0_f32_data, "main", 4, sizeof(vk_mat_vec_id_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_id_f32[GGML_TYPE_Q2_K], "mul_mat_vec_id_q2_k_f32", mul_mat_vec_id_q2_k_f32_len, mul_mat_vec_id_q2_k_f32_data, "main", 4, sizeof(vk_mat_vec_id_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_id_f32[GGML_TYPE_Q3_K], "mul_mat_vec_id_q3_k_f32", mul_mat_vec_id_q3_k_f32_len, mul_mat_vec_id_q3_k_f32_data, "main", 4, sizeof(vk_mat_vec_id_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_id_f32[GGML_TYPE_Q4_K], "mul_mat_vec_id_q4_k_f32", mul_mat_vec_id_q4_k_f32_len, mul_mat_vec_id_q4_k_f32_data, "main", 4, sizeof(vk_mat_vec_id_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_id_f32[GGML_TYPE_Q5_K], "mul_mat_vec_id_q5_k_f32", mul_mat_vec_id_q5_k_f32_len, mul_mat_vec_id_q5_k_f32_data, "main", 4, sizeof(vk_mat_vec_id_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant_mul_mat_vec_id_f32[GGML_TYPE_Q6_K], "mul_mat_vec_id_q6_k_f32", mul_mat_vec_id_q6_k_f32_len, mul_mat_vec_id_q6_k_f32_data, "main", 4, sizeof(vk_mat_vec_id_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f32_f32[GGML_TYPE_F32 ], "mul_mat_vec_f32_f32_f32", mul_mat_vec_f32_f32_f32_len, mul_mat_vec_f32_f32_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f32_f32[GGML_TYPE_F16 ], "mul_mat_vec_f16_f32_f32", mul_mat_vec_f16_f32_f32_len, mul_mat_vec_f16_f32_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f32_f32[GGML_TYPE_Q4_0], "mul_mat_vec_q4_0_f32_f32", mul_mat_vec_q4_0_f32_f32_len, mul_mat_vec_q4_0_f32_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f32_f32[GGML_TYPE_Q4_1], "mul_mat_vec_q4_1_f32_f32", mul_mat_vec_q4_1_f32_f32_len, mul_mat_vec_q4_1_f32_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f32_f32[GGML_TYPE_Q5_0], "mul_mat_vec_q5_0_f32_f32", mul_mat_vec_q5_0_f32_f32_len, mul_mat_vec_q5_0_f32_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f32_f32[GGML_TYPE_Q5_1], "mul_mat_vec_q5_1_f32_f32", mul_mat_vec_q5_1_f32_f32_len, mul_mat_vec_q5_1_f32_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f32_f32[GGML_TYPE_Q8_0], "mul_mat_vec_q8_0_f32_f32", mul_mat_vec_q8_0_f32_f32_len, mul_mat_vec_q8_0_f32_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f32_f32[GGML_TYPE_Q2_K], "mul_mat_vec_q2_k_f32_f32", mul_mat_vec_q2_k_f32_f32_len, mul_mat_vec_q2_k_f32_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f32_f32[GGML_TYPE_Q3_K], "mul_mat_vec_q3_k_f32_f32", mul_mat_vec_q3_k_f32_f32_len, mul_mat_vec_q3_k_f32_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f32_f32[GGML_TYPE_Q4_K], "mul_mat_vec_q4_k_f32_f32", mul_mat_vec_q4_k_f32_f32_len, mul_mat_vec_q4_k_f32_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f32_f32[GGML_TYPE_Q5_K], "mul_mat_vec_q5_k_f32_f32", mul_mat_vec_q5_k_f32_f32_len, mul_mat_vec_q5_k_f32_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f32_f32[GGML_TYPE_Q6_K], "mul_mat_vec_q6_k_f32_f32", mul_mat_vec_q6_k_f32_f32_len, mul_mat_vec_q6_k_f32_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); + + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f16_f32[GGML_TYPE_F32 ], "mul_mat_vec_f32_f16_f32", mul_mat_vec_f32_f16_f32_len, mul_mat_vec_f32_f16_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f16_f32[GGML_TYPE_F16 ], "mul_mat_vec_f16_f16_f32", mul_mat_vec_f16_f16_f32_len, mul_mat_vec_f16_f16_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f16_f32[GGML_TYPE_Q4_0], "mul_mat_vec_q4_0_f16_f32", mul_mat_vec_q4_0_f16_f32_len, mul_mat_vec_q4_0_f16_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f16_f32[GGML_TYPE_Q4_1], "mul_mat_vec_q4_1_f16_f32", mul_mat_vec_q4_1_f16_f32_len, mul_mat_vec_q4_1_f16_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f16_f32[GGML_TYPE_Q5_0], "mul_mat_vec_q5_0_f16_f32", mul_mat_vec_q5_0_f16_f32_len, mul_mat_vec_q5_0_f16_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f16_f32[GGML_TYPE_Q5_1], "mul_mat_vec_q5_1_f16_f32", mul_mat_vec_q5_1_f16_f32_len, mul_mat_vec_q5_1_f16_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f16_f32[GGML_TYPE_Q8_0], "mul_mat_vec_q8_0_f16_f32", mul_mat_vec_q8_0_f16_f32_len, mul_mat_vec_q8_0_f16_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f16_f32[GGML_TYPE_Q2_K], "mul_mat_vec_q2_k_f16_f32", mul_mat_vec_q2_k_f16_f32_len, mul_mat_vec_q2_k_f16_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f16_f32[GGML_TYPE_Q3_K], "mul_mat_vec_q3_k_f16_f32", mul_mat_vec_q3_k_f16_f32_len, mul_mat_vec_q3_k_f16_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f16_f32[GGML_TYPE_Q4_K], "mul_mat_vec_q4_k_f16_f32", mul_mat_vec_q4_k_f16_f32_len, mul_mat_vec_q4_k_f16_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f16_f32[GGML_TYPE_Q5_K], "mul_mat_vec_q5_k_f16_f32", mul_mat_vec_q5_k_f16_f32_len, mul_mat_vec_q5_k_f16_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f16_f32[GGML_TYPE_Q6_K], "mul_mat_vec_q6_k_f16_f32", mul_mat_vec_q6_k_f16_f32_len, mul_mat_vec_q6_k_f16_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); + + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_id_f32[GGML_TYPE_F32 ], "mul_mat_vec_id_f32_f32", mul_mat_vec_id_f32_f32_len, mul_mat_vec_id_f32_f32_data, "main", 4, sizeof(vk_mat_vec_id_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_id_f32[GGML_TYPE_F16 ], "mul_mat_vec_id_f16_f32", mul_mat_vec_id_f16_f32_len, mul_mat_vec_id_f16_f32_data, "main", 4, sizeof(vk_mat_vec_id_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_id_f32[GGML_TYPE_Q4_0], "mul_mat_vec_id_q4_0_f32", mul_mat_vec_id_q4_0_f32_len, mul_mat_vec_id_q4_0_f32_data, "main", 4, sizeof(vk_mat_vec_id_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_id_f32[GGML_TYPE_Q4_1], "mul_mat_vec_id_q4_1_f32", mul_mat_vec_id_q4_1_f32_len, mul_mat_vec_id_q4_1_f32_data, "main", 4, sizeof(vk_mat_vec_id_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_id_f32[GGML_TYPE_Q5_0], "mul_mat_vec_id_q5_0_f32", mul_mat_vec_id_q5_0_f32_len, mul_mat_vec_id_q5_0_f32_data, "main", 4, sizeof(vk_mat_vec_id_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_id_f32[GGML_TYPE_Q5_1], "mul_mat_vec_id_q5_1_f32", mul_mat_vec_id_q5_1_f32_len, mul_mat_vec_id_q5_1_f32_data, "main", 4, sizeof(vk_mat_vec_id_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_id_f32[GGML_TYPE_Q8_0], "mul_mat_vec_id_q8_0_f32", mul_mat_vec_id_q8_0_f32_len, mul_mat_vec_id_q8_0_f32_data, "main", 4, sizeof(vk_mat_vec_id_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_id_f32[GGML_TYPE_Q2_K], "mul_mat_vec_id_q2_k_f32", mul_mat_vec_id_q2_k_f32_len, mul_mat_vec_id_q2_k_f32_data, "main", 4, sizeof(vk_mat_vec_id_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_id_f32[GGML_TYPE_Q3_K], "mul_mat_vec_id_q3_k_f32", mul_mat_vec_id_q3_k_f32_len, mul_mat_vec_id_q3_k_f32_data, "main", 4, sizeof(vk_mat_vec_id_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_id_f32[GGML_TYPE_Q4_K], "mul_mat_vec_id_q4_k_f32", mul_mat_vec_id_q4_k_f32_len, mul_mat_vec_id_q4_k_f32_data, "main", 4, sizeof(vk_mat_vec_id_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_id_f32[GGML_TYPE_Q5_K], "mul_mat_vec_id_q5_k_f32", mul_mat_vec_id_q5_k_f32_len, mul_mat_vec_id_q5_k_f32_data, "main", 4, sizeof(vk_mat_vec_id_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_id_f32[GGML_TYPE_Q6_K], "mul_mat_vec_id_q6_k_f32", mul_mat_vec_id_q6_k_f32_len, mul_mat_vec_id_q6_k_f32_data, "main", 4, sizeof(vk_mat_vec_id_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); // dequant shaders - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant[GGML_TYPE_F32 ], "f32_to_f16", dequant_f32_len, dequant_f32_data, "main", 2, 5 * sizeof(uint32_t), {256 * 16, 1, 1}, {}, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant[GGML_TYPE_Q4_0], "dequant_q4_0", dequant_q4_0_len, dequant_q4_0_data, "main", 2, 5 * sizeof(uint32_t), {256 * 16, 1, 1}, {}, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant[GGML_TYPE_Q4_1], "dequant_q4_1", dequant_q4_1_len, dequant_q4_1_data, "main", 2, 5 * sizeof(uint32_t), {256 * 16, 1, 1}, {}, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant[GGML_TYPE_Q5_0], "dequant_q5_0", dequant_q5_0_len, dequant_q5_0_data, "main", 2, 5 * sizeof(uint32_t), {256 * 16, 1, 1}, {}, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant[GGML_TYPE_Q5_1], "dequant_q5_1", dequant_q5_1_len, dequant_q5_1_data, "main", 2, 5 * sizeof(uint32_t), {256 * 16, 1, 1}, {}, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant[GGML_TYPE_Q8_0], "dequant_q8_0", dequant_q8_0_len, dequant_q8_0_data, "main", 2, 5 * sizeof(uint32_t), {256 * 16, 1, 1}, {}, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant[GGML_TYPE_Q2_K], "dequant_q2_k", dequant_q2_k_len, dequant_q2_k_data, "main", 2, 5 * sizeof(uint32_t), {256 * 64, 1, 1}, {}, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant[GGML_TYPE_Q3_K], "dequant_q3_k", dequant_q3_k_len, dequant_q3_k_data, "main", 2, 5 * sizeof(uint32_t), {256 * 64, 1, 1}, {}, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant[GGML_TYPE_Q4_K], "dequant_q4_k", dequant_q4_k_len, dequant_q4_k_data, "main", 2, 5 * sizeof(uint32_t), {256 * 32, 1, 1}, {}, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant[GGML_TYPE_Q5_K], "dequant_q5_k", dequant_q5_k_len, dequant_q5_k_data, "main", 2, 5 * sizeof(uint32_t), {256 * 64, 1, 1}, {}, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_dequant[GGML_TYPE_Q6_K], "dequant_q6_k", dequant_q6_k_len, dequant_q6_k_data, "main", 2, 5 * sizeof(uint32_t), {256 * 64, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_dequant[GGML_TYPE_F32 ], "f32_to_f16", dequant_f32_len, dequant_f32_data, "main", 2, 5 * sizeof(uint32_t), {256 * 16, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_dequant[GGML_TYPE_Q4_0], "dequant_q4_0", dequant_q4_0_len, dequant_q4_0_data, "main", 2, 5 * sizeof(uint32_t), {256 * 16, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_dequant[GGML_TYPE_Q4_1], "dequant_q4_1", dequant_q4_1_len, dequant_q4_1_data, "main", 2, 5 * sizeof(uint32_t), {256 * 16, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_dequant[GGML_TYPE_Q5_0], "dequant_q5_0", dequant_q5_0_len, dequant_q5_0_data, "main", 2, 5 * sizeof(uint32_t), {256 * 16, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_dequant[GGML_TYPE_Q5_1], "dequant_q5_1", dequant_q5_1_len, dequant_q5_1_data, "main", 2, 5 * sizeof(uint32_t), {256 * 16, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_dequant[GGML_TYPE_Q8_0], "dequant_q8_0", dequant_q8_0_len, dequant_q8_0_data, "main", 2, 5 * sizeof(uint32_t), {256 * 16, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_dequant[GGML_TYPE_Q2_K], "dequant_q2_k", dequant_q2_k_len, dequant_q2_k_data, "main", 2, 5 * sizeof(uint32_t), {256 * 64, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_dequant[GGML_TYPE_Q3_K], "dequant_q3_k", dequant_q3_k_len, dequant_q3_k_data, "main", 2, 5 * sizeof(uint32_t), {256 * 64, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_dequant[GGML_TYPE_Q4_K], "dequant_q4_k", dequant_q4_k_len, dequant_q4_k_data, "main", 2, 5 * sizeof(uint32_t), {256 * 32, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_dequant[GGML_TYPE_Q5_K], "dequant_q5_k", dequant_q5_k_len, dequant_q5_k_data, "main", 2, 5 * sizeof(uint32_t), {256 * 64, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_dequant[GGML_TYPE_Q6_K], "dequant_q6_k", dequant_q6_k_len, dequant_q6_k_data, "main", 2, 5 * sizeof(uint32_t), {256 * 64, 1, 1}, {}, 1); // get_rows - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_get_rows[GGML_TYPE_F32 ], "get_rows_f32", get_rows_f32_len, get_rows_f32_data, "main", 3, sizeof(vk_op_binary_push_constants), { 512, 1, 1}, {}, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_get_rows[GGML_TYPE_F16 ], "get_rows_f16", get_rows_f16_len, get_rows_f16_data, "main", 3, sizeof(vk_op_binary_push_constants), { 512, 1, 1}, {}, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_get_rows[GGML_TYPE_Q4_0], "get_rows_q4_0", get_rows_q4_0_len, get_rows_q4_0_data, "main", 3, sizeof(vk_op_binary_push_constants), {1024, 1, 1}, {}, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_get_rows[GGML_TYPE_Q4_1], "get_rows_q4_1", get_rows_q4_1_len, get_rows_q4_1_data, "main", 3, sizeof(vk_op_binary_push_constants), {1024, 1, 1}, {}, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_get_rows[GGML_TYPE_Q5_0], "get_rows_q5_0", get_rows_q5_0_len, get_rows_q5_0_data, "main", 3, sizeof(vk_op_binary_push_constants), {1024, 1, 1}, {}, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_get_rows[GGML_TYPE_Q5_1], "get_rows_q5_1", get_rows_q5_1_len, get_rows_q5_1_data, "main", 3, sizeof(vk_op_binary_push_constants), {1024, 1, 1}, {}, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_get_rows[GGML_TYPE_Q8_0], "get_rows_q8_0", get_rows_q8_0_len, get_rows_q8_0_data, "main", 3, sizeof(vk_op_binary_push_constants), {1024, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_get_rows[GGML_TYPE_F32 ], "get_rows_f32", get_rows_f32_len, get_rows_f32_data, "main", 3, sizeof(vk_op_binary_push_constants), { 512, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_get_rows[GGML_TYPE_F16 ], "get_rows_f16", get_rows_f16_len, get_rows_f16_data, "main", 3, sizeof(vk_op_binary_push_constants), { 512, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_get_rows[GGML_TYPE_Q4_0], "get_rows_q4_0", get_rows_q4_0_len, get_rows_q4_0_data, "main", 3, sizeof(vk_op_binary_push_constants), {1024, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_get_rows[GGML_TYPE_Q4_1], "get_rows_q4_1", get_rows_q4_1_len, get_rows_q4_1_data, "main", 3, sizeof(vk_op_binary_push_constants), {1024, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_get_rows[GGML_TYPE_Q5_0], "get_rows_q5_0", get_rows_q5_0_len, get_rows_q5_0_data, "main", 3, sizeof(vk_op_binary_push_constants), {1024, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_get_rows[GGML_TYPE_Q5_1], "get_rows_q5_1", get_rows_q5_1_len, get_rows_q5_1_data, "main", 3, sizeof(vk_op_binary_push_constants), {1024, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_get_rows[GGML_TYPE_Q8_0], "get_rows_q8_0", get_rows_q8_0_len, get_rows_q8_0_data, "main", 3, sizeof(vk_op_binary_push_constants), {1024, 1, 1}, {}, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_get_rows_f32[GGML_TYPE_F32 ], "get_rows_f32_f32", get_rows_f32_f32_len, get_rows_f32_f32_data, "main", 3, sizeof(vk_op_binary_push_constants), { 512, 1, 1}, {}, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_get_rows_f32[GGML_TYPE_F16 ], "get_rows_f16_f32", get_rows_f16_f32_len, get_rows_f16_f32_data, "main", 3, sizeof(vk_op_binary_push_constants), { 512, 1, 1}, {}, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_get_rows_f32[GGML_TYPE_Q4_0], "get_rows_q4_0_f32", get_rows_q4_0_f32_len, get_rows_q4_0_f32_data, "main", 3, sizeof(vk_op_binary_push_constants), {1024, 1, 1}, {}, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_get_rows_f32[GGML_TYPE_Q4_1], "get_rows_q4_1_f32", get_rows_q4_1_f32_len, get_rows_q4_1_f32_data, "main", 3, sizeof(vk_op_binary_push_constants), {1024, 1, 1}, {}, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_get_rows_f32[GGML_TYPE_Q5_0], "get_rows_q5_0_f32", get_rows_q5_0_f32_len, get_rows_q5_0_f32_data, "main", 3, sizeof(vk_op_binary_push_constants), {1024, 1, 1}, {}, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_get_rows_f32[GGML_TYPE_Q5_1], "get_rows_q5_1_f32", get_rows_q5_1_f32_len, get_rows_q5_1_f32_data, "main", 3, sizeof(vk_op_binary_push_constants), {1024, 1, 1}, {}, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_get_rows_f32[GGML_TYPE_Q8_0], "get_rows_q8_0_f32", get_rows_q8_0_f32_len, get_rows_q8_0_f32_data, "main", 3, sizeof(vk_op_binary_push_constants), {1024, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_get_rows_f32[GGML_TYPE_F32 ], "get_rows_f32_f32", get_rows_f32_f32_len, get_rows_f32_f32_data, "main", 3, sizeof(vk_op_binary_push_constants), { 512, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_get_rows_f32[GGML_TYPE_F16 ], "get_rows_f16_f32", get_rows_f16_f32_len, get_rows_f16_f32_data, "main", 3, sizeof(vk_op_binary_push_constants), { 512, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_get_rows_f32[GGML_TYPE_Q4_0], "get_rows_q4_0_f32", get_rows_q4_0_f32_len, get_rows_q4_0_f32_data, "main", 3, sizeof(vk_op_binary_push_constants), {1024, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_get_rows_f32[GGML_TYPE_Q4_1], "get_rows_q4_1_f32", get_rows_q4_1_f32_len, get_rows_q4_1_f32_data, "main", 3, sizeof(vk_op_binary_push_constants), {1024, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_get_rows_f32[GGML_TYPE_Q5_0], "get_rows_q5_0_f32", get_rows_q5_0_f32_len, get_rows_q5_0_f32_data, "main", 3, sizeof(vk_op_binary_push_constants), {1024, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_get_rows_f32[GGML_TYPE_Q5_1], "get_rows_q5_1_f32", get_rows_q5_1_f32_len, get_rows_q5_1_f32_data, "main", 3, sizeof(vk_op_binary_push_constants), {1024, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_get_rows_f32[GGML_TYPE_Q8_0], "get_rows_q8_0_f32", get_rows_q8_0_f32_len, get_rows_q8_0_f32_data, "main", 3, sizeof(vk_op_binary_push_constants), {1024, 1, 1}, {}, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_matmul_split_k_reduce, "split_k_reduce", split_k_reduce_len, split_k_reduce_data, "main", 2, 2 * sizeof(uint32_t), {256, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_matmul_split_k_reduce, "split_k_reduce", split_k_reduce_len, split_k_reduce_data, "main", 2, 2 * sizeof(uint32_t), {256, 1, 1}, {}, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_mul_mat_vec_p021_f16_f32, "mul_mat_vec_p021_f16_f32", mul_mat_vec_p021_f16_f32_len, mul_mat_vec_p021_f16_f32_data, "main", 3, 6 * sizeof(uint32_t), {1, 1, 1}, {}, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_mul_mat_vec_nc_f16_f32, "mul_mat_vec_nc_f16_f32", mul_mat_vec_nc_f16_f32_len, mul_mat_vec_nc_f16_f32_data, "main", 3, 7 * sizeof(uint32_t), {1, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_mul_mat_vec_p021_f16_f32, "mul_mat_vec_p021_f16_f32", mul_mat_vec_p021_f16_f32_len, mul_mat_vec_p021_f16_f32_data, "main", 3, 6 * sizeof(uint32_t), {1, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_mul_mat_vec_nc_f16_f32, "mul_mat_vec_nc_f16_f32", mul_mat_vec_nc_f16_f32_len, mul_mat_vec_nc_f16_f32_data, "main", 3, 7 * sizeof(uint32_t), {1, 1, 1}, {}, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_norm_f32, "norm_f32", norm_f32_len, norm_f32_data, "main", 2, sizeof(vk_op_push_constants), {1, 1, 1}, {}, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_rms_norm_f32, "rms_norm_f32", rms_norm_f32_len, rms_norm_f32_data, "main", 2, sizeof(vk_op_push_constants), {1, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_norm_f32, "norm_f32", norm_f32_len, norm_f32_data, "main", 2, sizeof(vk_op_push_constants), {1, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_rms_norm_f32, "rms_norm_f32", rms_norm_f32_len, rms_norm_f32_data, "main", 2, sizeof(vk_op_push_constants), {1, 1, 1}, {}, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_cpy_f32_f32, "cpy_f32_f32", cpy_f32_f32_len, cpy_f32_f32_data, "main", 2, sizeof(vk_op_unary_push_constants), {512, 1, 1}, {}, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_cpy_f32_f16, "cpy_f32_f16", cpy_f32_f16_len, cpy_f32_f16_data, "main", 2, sizeof(vk_op_unary_push_constants), {512, 1, 1}, {}, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_cpy_f16_f16, "cpy_f16_f16", cpy_f16_f16_len, cpy_f16_f16_data, "main", 2, sizeof(vk_op_unary_push_constants), {512, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_cpy_f32_f32, "cpy_f32_f32", cpy_f32_f32_len, cpy_f32_f32_data, "main", 2, sizeof(vk_op_unary_push_constants), {512, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_cpy_f32_f16, "cpy_f32_f16", cpy_f32_f16_len, cpy_f32_f16_data, "main", 2, sizeof(vk_op_unary_push_constants), {512, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_cpy_f16_f16, "cpy_f16_f16", cpy_f16_f16_len, cpy_f16_f16_data, "main", 2, sizeof(vk_op_unary_push_constants), {512, 1, 1}, {}, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_add_f32, "add_f32", add_f32_len, add_f32_data, "main", 3, sizeof(vk_op_binary_push_constants), {512, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_add_f32, "add_f32", add_f32_len, add_f32_data, "main", 3, sizeof(vk_op_binary_push_constants), {512, 1, 1}, {}, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_mul_f32, "mul_f32", mul_f32_len, mul_f32_data, "main", 3, sizeof(vk_op_binary_push_constants), {512, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_mul_f32, "mul_f32", mul_f32_len, mul_f32_data, "main", 3, sizeof(vk_op_binary_push_constants), {512, 1, 1}, {}, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_div_f32, "div_f32", div_f32_len, div_f32_data, "main", 3, sizeof(vk_op_binary_push_constants), {512, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_div_f32, "div_f32", div_f32_len, div_f32_data, "main", 3, sizeof(vk_op_binary_push_constants), {512, 1, 1}, {}, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_scale_f32, "scale_f32", scale_f32_len, scale_f32_data, "main", 2, sizeof(vk_op_unary_push_constants), {512, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_scale_f32, "scale_f32", scale_f32_len, scale_f32_data, "main", 2, sizeof(vk_op_unary_push_constants), {512, 1, 1}, {}, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_sqr_f32, "sqr_f32", sqr_f32_len, sqr_f32_data, "main", 2, sizeof(vk_op_unary_push_constants), {512, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_sqr_f32, "sqr_f32", sqr_f32_len, sqr_f32_data, "main", 2, sizeof(vk_op_unary_push_constants), {512, 1, 1}, {}, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_clamp_f32, "clamp_f32", clamp_f32_len, clamp_f32_data, "main", 2, sizeof(vk_op_unary_push_constants), {512, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_clamp_f32, "clamp_f32", clamp_f32_len, clamp_f32_data, "main", 2, sizeof(vk_op_unary_push_constants), {512, 1, 1}, {}, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_gelu_f32, "gelu_f32", gelu_f32_len, gelu_f32_data, "main", 2, sizeof(vk_op_push_constants), {512, 1, 1}, {}, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_silu_f32, "silu_f32", silu_f32_len, silu_f32_data, "main", 2, sizeof(vk_op_push_constants), {512, 1, 1}, {}, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_relu_f32, "relu_f32", relu_f32_len, relu_f32_data, "main", 2, sizeof(vk_op_push_constants), {512, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_gelu_f32, "gelu_f32", gelu_f32_len, gelu_f32_data, "main", 2, sizeof(vk_op_push_constants), {512, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_silu_f32, "silu_f32", silu_f32_len, silu_f32_data, "main", 2, sizeof(vk_op_push_constants), {512, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_relu_f32, "relu_f32", relu_f32_len, relu_f32_data, "main", 2, sizeof(vk_op_push_constants), {512, 1, 1}, {}, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_diag_mask_inf_f32, "diag_mask_inf_f32", diag_mask_inf_f32_len, diag_mask_inf_f32_data, "main", 2, sizeof(vk_op_diag_mask_push_constants), {512, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_diag_mask_inf_f32, "diag_mask_inf_f32", diag_mask_inf_f32_len, diag_mask_inf_f32_data, "main", 2, sizeof(vk_op_diag_mask_push_constants), {512, 1, 1}, {}, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_soft_max_f32, "soft_max_f32", soft_max_f32_len, soft_max_f32_data, "main", 3, sizeof(vk_op_soft_max_push_constants), {1, 1, 1}, {}, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_soft_max_f32_f16, "soft_max_f32_f16", soft_max_f32_f16_len, soft_max_f32_f16_data, "main", 3, sizeof(vk_op_soft_max_push_constants), {1, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_soft_max_f32, "soft_max_f32", soft_max_f32_len, soft_max_f32_data, "main", 3, sizeof(vk_op_soft_max_push_constants), {1, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_soft_max_f32_f16, "soft_max_f32_f16", soft_max_f32_f16_len, soft_max_f32_f16_data, "main", 3, sizeof(vk_op_soft_max_push_constants), {1, 1, 1}, {}, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_rope_norm_f32, "rope_norm_f32", rope_norm_f32_len, rope_norm_f32_data, "main", 4, sizeof(vk_op_rope_push_constants), {1, 512, 1}, {}, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_rope_norm_f16, "rope_norm_f16", rope_norm_f16_len, rope_norm_f16_data, "main", 4, sizeof(vk_op_rope_push_constants), {1, 512, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_rope_norm_f32, "rope_norm_f32", rope_norm_f32_len, rope_norm_f32_data, "main", 4, sizeof(vk_op_rope_push_constants), {1, 512, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_rope_norm_f16, "rope_norm_f16", rope_norm_f16_len, rope_norm_f16_data, "main", 4, sizeof(vk_op_rope_push_constants), {1, 512, 1}, {}, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_rope_neox_f32, "rope_neox_f32", rope_neox_f32_len, rope_neox_f32_data, "main", 4, sizeof(vk_op_rope_push_constants), {1, 512, 1}, {}, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_rope_neox_f16, "rope_neox_f16", rope_neox_f16_len, rope_neox_f16_data, "main", 4, sizeof(vk_op_rope_push_constants), {1, 512, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_rope_neox_f32, "rope_neox_f32", rope_neox_f32_len, rope_neox_f32_data, "main", 4, sizeof(vk_op_rope_push_constants), {1, 512, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_rope_neox_f16, "rope_neox_f16", rope_neox_f16_len, rope_neox_f16_data, "main", 4, sizeof(vk_op_rope_push_constants), {1, 512, 1}, {}, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_argsort_f32, "argsort_f32", argsort_f32_len, argsort_f32_data, "main", 2, sizeof(vk_op_argsort_push_constants), {1024, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_argsort_f32, "argsort_f32", argsort_f32_len, argsort_f32_data, "main", 2, sizeof(vk_op_argsort_push_constants), {1024, 1, 1}, {}, 1); - ggml_vk_create_pipeline(ctx, ctx->device->pipeline_sum_rows_f32, "sum_rows_f32", sum_rows_f32_len, sum_rows_f32_data, "main", 2, sizeof(vk_op_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); + ggml_vk_create_pipeline(device, device->pipeline_sum_rows_f32, "sum_rows_f32", sum_rows_f32_len, sum_rows_f32_data, "main", 2, sizeof(vk_op_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); } +static vk_device ggml_vk_get_device(size_t idx) { + VK_LOG_DEBUG("ggml_vk_get_device(" << idx << ")"); + + if (vk_instance.devices[idx] == nullptr) { + VK_LOG_DEBUG("Initializing new vk_device"); + vk_device device = std::make_shared(); + vk_instance.devices[idx] = device; + +#ifdef GGML_VULKAN_MEMORY_DEBUG + device->memory_logger = std::unique_ptr(new vk_memory_logger()); +#endif + + size_t dev_num = vk_instance.device_indices[idx]; + + std::vector physical_devices = vk_instance.instance.enumeratePhysicalDevices(); + + if (dev_num >= physical_devices.size()) { + std::cerr << "ggml_vulkan: Device with index " << dev_num << " does not exist." << std::endl; + throw std::runtime_error("Device not found"); + } + + device->physical_device = physical_devices[dev_num]; + const std::vector ext_props = device->physical_device.enumerateDeviceExtensionProperties(); + + bool maintenance4_support = false; + + // Check if maintenance4 is supported + for (const auto& properties : ext_props) { + if (strcmp("VK_KHR_maintenance4", properties.extensionName) == 0) { + maintenance4_support = true; + } + } + + vk::PhysicalDeviceProperties2 props2; + vk::PhysicalDeviceMaintenance3Properties props3; + vk::PhysicalDeviceMaintenance4Properties props4; + vk::PhysicalDeviceSubgroupProperties subgroup_props; + props2.pNext = &props3; + props3.pNext = &subgroup_props; + if (maintenance4_support) { + subgroup_props.pNext = &props4; + } + device->physical_device.getProperties2(&props2); + device->properties = props2.properties; + + const char* GGML_VK_FORCE_MAX_ALLOCATION_SIZE = getenv("GGML_VK_FORCE_MAX_ALLOCATION_SIZE"); + + if (GGML_VK_FORCE_MAX_ALLOCATION_SIZE != nullptr) { + device->max_memory_allocation_size = std::stoi(GGML_VK_FORCE_MAX_ALLOCATION_SIZE); + } else if (maintenance4_support) { + device->max_memory_allocation_size = std::min(props3.maxMemoryAllocationSize, props4.maxBufferSize); + } else { + device->max_memory_allocation_size = props3.maxMemoryAllocationSize; + } + + device->vendor_id = device->properties.vendorID; + device->subgroup_size = subgroup_props.subgroupSize; + device->uma = device->properties.deviceType == vk::PhysicalDeviceType::eIntegratedGpu; + + bool fp16_storage = false; + bool fp16_compute = false; + + for (const auto& properties : ext_props) { + if (strcmp("VK_KHR_16bit_storage", properties.extensionName) == 0) { + fp16_storage = true; + } else if (strcmp("VK_KHR_shader_float16_int8", properties.extensionName) == 0) { + fp16_compute = true; + } + } + + const char* GGML_VK_DISABLE_F16 = getenv("GGML_VK_DISABLE_F16"); + const bool force_disable_f16 = GGML_VK_DISABLE_F16 != nullptr; + + device->fp16 = !force_disable_f16 && fp16_storage && fp16_compute; + + std::vector queue_family_props = device->physical_device.getQueueFamilyProperties(); + + // Try to find a non-graphics compute queue and transfer-focused queues + const uint32_t compute_queue_family_index = ggml_vk_find_queue_family_index(queue_family_props, vk::QueueFlagBits::eCompute, vk::QueueFlagBits::eGraphics, -1, 1); + const uint32_t transfer_queue_family_index = ggml_vk_find_queue_family_index(queue_family_props, vk::QueueFlagBits::eTransfer, vk::QueueFlagBits::eCompute | vk::QueueFlagBits::eGraphics, compute_queue_family_index, 1); + + const float priorities[] = { 1.0f, 1.0f }; + device->single_queue = compute_queue_family_index == transfer_queue_family_index && queue_family_props[compute_queue_family_index].queueCount == 1; + + std::vector device_queue_create_infos; + if (compute_queue_family_index != transfer_queue_family_index) { + device_queue_create_infos.push_back({vk::DeviceQueueCreateFlags(), compute_queue_family_index, 1, priorities}); + device_queue_create_infos.push_back({vk::DeviceQueueCreateFlags(), transfer_queue_family_index, 1, priorities + 1}); + } else if(!device->single_queue) { + device_queue_create_infos.push_back({vk::DeviceQueueCreateFlags(), compute_queue_family_index, 2, priorities}); + } else { + device_queue_create_infos.push_back({vk::DeviceQueueCreateFlags(), compute_queue_family_index, 1, priorities}); + } + vk::DeviceCreateInfo device_create_info; + std::vector device_extensions; + vk::PhysicalDeviceFeatures device_features = device->physical_device.getFeatures(); + + VkPhysicalDeviceFeatures2 device_features2; + device_features2.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2; + device_features2.pNext = nullptr; + device_features2.features = (VkPhysicalDeviceFeatures)device_features; + + VkPhysicalDeviceVulkan11Features vk11_features; + vk11_features.pNext = nullptr; + vk11_features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES; + device_features2.pNext = &vk11_features; + + VkPhysicalDeviceVulkan12Features vk12_features; + vk12_features.pNext = nullptr; + vk12_features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES; + vk11_features.pNext = &vk12_features; + + vkGetPhysicalDeviceFeatures2(device->physical_device, &device_features2); + + device->fp16 = device->fp16 && vk12_features.shaderFloat16; + + if (!vk11_features.storageBuffer16BitAccess) { + std::cerr << "ggml_vulkan: device " << GGML_VK_NAME << idx << " does not support 16-bit storage." << std::endl; + throw std::runtime_error("Unsupported device"); + } + + device_extensions.push_back("VK_KHR_16bit_storage"); + +#ifdef GGML_VULKAN_VALIDATE + device_extensions.push_back("VK_KHR_shader_non_semantic_info"); +#endif + + if (device->fp16) { + device_extensions.push_back("VK_KHR_shader_float16_int8"); + } + device->name = device->properties.deviceName.data(); + + device_create_info = { + vk::DeviceCreateFlags(), + device_queue_create_infos, + {}, + device_extensions + }; + device_create_info.setPNext(&device_features2); + device->device = device->physical_device.createDevice(device_create_info); + + device->descriptor_set_mode = VK_DEVICE_DESCRIPTOR_POOL_MODE_UNKNOWN; + + // Queues + ggml_vk_create_queue(device, device->compute_queue, compute_queue_family_index, 0, { vk::PipelineStageFlagBits::eComputeShader | vk::PipelineStageFlagBits::eTransfer }); + + // Shaders + ggml_vk_load_shaders(device); + + if (!device->single_queue) { + const uint32_t transfer_queue_index = compute_queue_family_index == transfer_queue_family_index ? 1 : 0; + ggml_vk_create_queue(device, device->transfer_queue, transfer_queue_family_index, transfer_queue_index, { vk::PipelineStageFlagBits::eTransfer }); + } else { + // TODO: Use pointer or reference to avoid copy + device->transfer_queue = device->compute_queue; + } + + device->buffer_type = { + /* .iface = */ ggml_backend_vk_buffer_type_interface, + /* .context = */ new ggml_backend_vk_buffer_type_context{ device->name, device }, + }; + + device->fence = device->device.createFence({}); + + device->idx = idx; + + return device; + } + + return vk_instance.devices[idx]; +} + + static void ggml_vk_print_gpu_info(size_t idx) { GGML_ASSERT(idx < vk_instance.device_indices.size()); size_t dev_num = vk_instance.device_indices[idx]; VK_LOG_DEBUG("ggml_vk_print_gpu_info(" << dev_num << ")"); - GGML_ASSERT(vk_instance.initialized); + GGML_ASSERT(vk_instance_initialized); std::vector devices = vk_instance.instance.enumeratePhysicalDevices(); @@ -1670,6 +1876,8 @@ void ggml_vk_instance_init() { } VK_LOG_DEBUG("ggml_vk_instance_init()"); + vk_instance_initialized = true; + vk::ApplicationInfo app_info{ "ggml-vulkan", 1, nullptr, 0, VK_API_VERSION }; const std::vector instance_extensions = vk::enumerateInstanceExtensionProperties(); @@ -1715,8 +1923,6 @@ void ggml_vk_instance_init() { } vk_instance.instance = vk::createInstance(instance_create_info); - memset(vk_instance.initialized, 0, sizeof(bool) * GGML_VK_MAX_DEVICES); - size_t num_available_devices = vk_instance.instance.enumeratePhysicalDevices().size(); // Emulate behavior of CUDA_VISIBLE_DEVICES for Vulkan @@ -1833,177 +2039,32 @@ void ggml_vk_instance_init() { for (size_t i = 0; i < vk_instance.device_indices.size(); i++) { ggml_vk_print_gpu_info(i); } - - vk_instance_initialized = true; } static void ggml_vk_init(ggml_backend_vk_context * ctx, size_t idx) { GGML_ASSERT(idx < vk_instance.device_indices.size()); - size_t dev_num = vk_instance.device_indices[idx]; - VK_LOG_DEBUG("ggml_vk_init(" << ctx->name << ", " << dev_num << ")"); + VK_LOG_DEBUG("ggml_vk_init(" << ctx->name << ", " << idx << ")"); ggml_vk_instance_init(); - std::vector devices = vk_instance.instance.enumeratePhysicalDevices(); - - if (dev_num >= devices.size()) { - std::cerr << "ggml_vulkan: Device with index " << dev_num << " does not exist." << std::endl; - throw std::runtime_error("Device not found"); - } + ctx->name = GGML_VK_NAME + std::to_string(idx); ctx->device = ggml_vk_get_device(idx); - if (!ctx->device->initialized) { - ctx->device->physical_device = devices[dev_num]; - const std::vector ext_props = ctx->device->physical_device.enumerateDeviceExtensionProperties(); - bool maintenance4_support = false; - - // Check if maintenance4 is supported - for (const auto& properties : ext_props) { - if (strcmp("VK_KHR_maintenance4", properties.extensionName) == 0) { - maintenance4_support = true; - } - } - - vk::PhysicalDeviceProperties2 props2; - vk::PhysicalDeviceMaintenance3Properties props3; - vk::PhysicalDeviceMaintenance4Properties props4; - vk::PhysicalDeviceSubgroupProperties subgroup_props; - props2.pNext = &props3; - props3.pNext = &subgroup_props; - if (maintenance4_support) { - subgroup_props.pNext = &props4; - } - ctx->device->physical_device.getProperties2(&props2); - ctx->device->properties = props2.properties; - - const char* GGML_VK_FORCE_MAX_ALLOCATION_SIZE = getenv("GGML_VK_FORCE_MAX_ALLOCATION_SIZE"); - - if (GGML_VK_FORCE_MAX_ALLOCATION_SIZE != nullptr) { - ctx->device->max_memory_allocation_size = std::stoi(GGML_VK_FORCE_MAX_ALLOCATION_SIZE); - } else if (maintenance4_support) { - ctx->device->max_memory_allocation_size = std::min(props3.maxMemoryAllocationSize, props4.maxBufferSize); - } else { - ctx->device->max_memory_allocation_size = props3.maxMemoryAllocationSize; - } - - ctx->device->vendor_id = ctx->device->properties.vendorID; - ctx->device->subgroup_size = subgroup_props.subgroupSize; - ctx->device->uma = ctx->device->properties.deviceType == vk::PhysicalDeviceType::eIntegratedGpu; - - bool fp16_storage = false; - bool fp16_compute = false; - - for (const auto& properties : ext_props) { - if (strcmp("VK_KHR_16bit_storage", properties.extensionName) == 0) { - fp16_storage = true; - } else if (strcmp("VK_KHR_shader_float16_int8", properties.extensionName) == 0) { - fp16_compute = true; - } - } - - const char* GGML_VK_DISABLE_F16 = getenv("GGML_VK_DISABLE_F16"); - const bool force_disable_f16 = GGML_VK_DISABLE_F16 != nullptr; - - ctx->device->fp16 = !force_disable_f16 && fp16_storage && fp16_compute; - - std::vector queue_family_props = ctx->device->physical_device.getQueueFamilyProperties(); - - // Try to find a non-graphics compute queue and transfer-focused queues - const uint32_t compute_queue_family_index = ggml_vk_find_queue_family_index(queue_family_props, vk::QueueFlagBits::eCompute, vk::QueueFlagBits::eGraphics, -1, 1); - const uint32_t transfer_queue_family_index = ggml_vk_find_queue_family_index(queue_family_props, vk::QueueFlagBits::eTransfer, vk::QueueFlagBits::eCompute | vk::QueueFlagBits::eGraphics, compute_queue_family_index, 1); - - const float priorities[] = { 1.0f, 1.0f }; - ctx->device->single_queue = compute_queue_family_index == transfer_queue_family_index && queue_family_props[compute_queue_family_index].queueCount == 1; - - std::vector device_queue_create_infos; - if (compute_queue_family_index != transfer_queue_family_index) { - device_queue_create_infos.push_back({vk::DeviceQueueCreateFlags(), compute_queue_family_index, 1, priorities}); - device_queue_create_infos.push_back({vk::DeviceQueueCreateFlags(), transfer_queue_family_index, 1, priorities + 1}); - } else if(!ctx->device->single_queue) { - device_queue_create_infos.push_back({vk::DeviceQueueCreateFlags(), compute_queue_family_index, 2, priorities}); - } else { - device_queue_create_infos.push_back({vk::DeviceQueueCreateFlags(), compute_queue_family_index, 1, priorities}); - } - vk::DeviceCreateInfo device_create_info; - std::vector device_extensions; - vk::PhysicalDeviceFeatures device_features = ctx->device->physical_device.getFeatures(); - - VkPhysicalDeviceFeatures2 device_features2; - device_features2.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2; - device_features2.pNext = nullptr; - device_features2.features = (VkPhysicalDeviceFeatures)device_features; - - VkPhysicalDeviceVulkan11Features vk11_features; - vk11_features.pNext = nullptr; - vk11_features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES; - device_features2.pNext = &vk11_features; - - VkPhysicalDeviceVulkan12Features vk12_features; - vk12_features.pNext = nullptr; - vk12_features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES; - vk11_features.pNext = &vk12_features; - - vkGetPhysicalDeviceFeatures2(ctx->device->physical_device, &device_features2); - - ctx->device->fp16 = ctx->device->fp16 && vk12_features.shaderFloat16; - - if (!vk11_features.storageBuffer16BitAccess) { - std::cerr << "ggml_vulkan: device " << GGML_VK_NAME << idx << " does not support 16-bit storage." << std::endl; - throw std::runtime_error("Unsupported device"); - } - - device_extensions.push_back("VK_KHR_16bit_storage"); - -#ifdef GGML_VULKAN_VALIDATE - device_extensions.push_back("VK_KHR_shader_non_semantic_info"); -#endif - - if (ctx->device->fp16) { - device_extensions.push_back("VK_KHR_shader_float16_int8"); - } - ctx->device->name = ctx->device->properties.deviceName.data(); - - device_create_info = { - vk::DeviceCreateFlags(), - device_queue_create_infos, - {}, - device_extensions - }; - device_create_info.setPNext(&device_features2); - ctx->device->device = ctx->device->physical_device.createDevice(device_create_info); - - ctx->device->descriptor_set_mode = VK_DEVICE_DESCRIPTOR_POOL_MODE_UNKNOWN; - - // Queues - ggml_vk_create_queue(ctx, ctx->device->compute_queue, compute_queue_family_index, 0, { vk::PipelineStageFlagBits::eComputeShader | vk::PipelineStageFlagBits::eTransfer }); - - // Shaders - ggml_vk_load_shaders(ctx); - - if (!ctx->device->single_queue) { - const uint32_t transfer_queue_index = compute_queue_family_index == transfer_queue_family_index ? 1 : 0; - ggml_vk_create_queue(ctx, ctx->device->transfer_queue, transfer_queue_family_index, transfer_queue_index, { vk::PipelineStageFlagBits::eTransfer }); - } else { - // TODO: Use pointer or reference to avoid copy - ctx->device->transfer_queue = ctx->device->compute_queue; - } + ctx->semaphore_idx = 0; + ctx->event_idx = 0; - ctx->device->idx = dev_num; - ctx->device->initialized = true; - } else if (ctx->device->idx != dev_num) { - std::cerr << "ggml_vulkan: Device " << ctx->device->name << " already initialized with index " << ctx->device->idx << ", but trying to reinitialize with index " << dev_num << std::endl; - throw std::runtime_error("Device already initialized"); - } + ctx->prealloc_size_x = 0; + ctx->prealloc_size_y = 0; + ctx->prealloc_size_split_k = 0; ctx->fence = ctx->device->device.createFence({}); + ctx->staging_size = 0; + ctx->staging_offset = 0; + ctx->compute_ctx = nullptr; ctx->transfer_ctx = nullptr; - ctx->initialized = true; - - ctx->idx = idx; - #ifdef GGML_VULKAN_CHECK_RESULTS const char* skip_checks = getenv("GGML_VULKAN_SKIP_CHECKS"); vk_skip_checks = (skip_checks == NULL ? 0 : atoi(skip_checks)); @@ -2184,7 +2245,7 @@ static vk_buffer ggml_vk_pool_malloc(ggml_backend_vk_context * ctx, size_t size) ggml_vk_destroy_buffer(b); } - return ggml_vk_create_buffer_device(ctx, size); + return ggml_vk_create_buffer_device(ctx->device, size); } static void ggml_vk_pool_free(ggml_backend_vk_context * ctx, vk_buffer& buffer) { @@ -2218,37 +2279,37 @@ static vk_buffer ggml_vk_create_buffer_temp(ggml_backend_vk_context * ctx, size_ return buf; } -static void * ggml_vk_host_malloc(ggml_backend_vk_context * ctx, size_t size) { +static void * ggml_vk_host_malloc(vk_device& device, size_t size) { VK_LOG_MEMORY("ggml_vk_host_malloc(" << size << ")"); - vk_buffer buf = ggml_vk_create_buffer(ctx, size, + vk_buffer buf = ggml_vk_create_buffer(device, size, vk::MemoryPropertyFlagBits::eHostVisible | vk::MemoryPropertyFlagBits::eHostCoherent | vk::MemoryPropertyFlagBits::eHostCached, vk::MemoryPropertyFlagBits::eHostVisible | vk::MemoryPropertyFlagBits::eHostCoherent); if(!(buf->memory_property_flags & vk::MemoryPropertyFlagBits::eHostVisible)) { fprintf(stderr, "WARNING: failed to allocate %.2f MB of pinned memory\n", size/1024.0/1024.0); - ctx->device->device.freeMemory(buf->device_memory); - ctx->device->device.destroyBuffer(buf->buffer); + device->device.freeMemory(buf->device_memory); + device->device.destroyBuffer(buf->buffer); return nullptr; } - ctx->pinned_memory.push_back(std::make_tuple(buf->ptr, size, buf)); + device->pinned_memory.push_back(std::make_tuple(buf->ptr, size, buf)); return buf->ptr; } -static void ggml_vk_host_free(ggml_backend_vk_context * ctx, void* ptr) { +static void ggml_vk_host_free(vk_device& device, void* ptr) { if (ptr == nullptr) { return; } VK_LOG_MEMORY("ggml_vk_host_free(" << ptr << ")"); vk_buffer buf; size_t index; - for (size_t i = 0; i < ctx->pinned_memory.size(); i++) { - const uint8_t* addr = (const uint8_t*) std::get<0>(ctx->pinned_memory[i]); - const uint8_t* endr = addr + std::get<1>(ctx->pinned_memory[i]); + for (size_t i = 0; i < device->pinned_memory.size(); i++) { + const uint8_t* addr = (const uint8_t*) std::get<0>(device->pinned_memory[i]); + const uint8_t* endr = addr + std::get<1>(device->pinned_memory[i]); if (ptr >= addr && ptr < endr) { - buf = std::get<2>(ctx->pinned_memory[i]); + buf = std::get<2>(device->pinned_memory[i]); index = i; break; } @@ -2260,26 +2321,26 @@ static void ggml_vk_host_free(ggml_backend_vk_context * ctx, void* ptr) { ggml_vk_destroy_buffer(buf); - ctx->pinned_memory.erase(ctx->pinned_memory.begin() + index); + device->pinned_memory.erase(device->pinned_memory.begin() + index); } -static void ggml_vk_host_get(ggml_backend_vk_context * ctx, const void * ptr, vk_buffer& buf, size_t& buf_offset) { +static void ggml_vk_host_get(vk_device& device, const void * ptr, vk_buffer& buf, size_t& buf_offset) { buf = nullptr; buf_offset = 0; - for (size_t i = 0; i < ctx->pinned_memory.size(); i++) { - const uint8_t* addr = (const uint8_t*) std::get<0>(ctx->pinned_memory[i]); - const uint8_t* endr = addr + std::get<1>(ctx->pinned_memory[i]); + for (size_t i = 0; i < device->pinned_memory.size(); i++) { + const uint8_t* addr = (const uint8_t*) std::get<0>(device->pinned_memory[i]); + const uint8_t* endr = addr + std::get<1>(device->pinned_memory[i]); if (ptr >= addr && ptr < endr) { - buf = std::get<2>(ctx->pinned_memory[i]); + buf = std::get<2>(device->pinned_memory[i]); buf_offset = ((const uint8_t *)ptr) - addr; break; } } } -static vk_submission ggml_vk_begin_submission(ggml_backend_vk_context * ctx, vk_queue& q, bool one_time = true) { +static vk_submission ggml_vk_begin_submission(vk_device& device, vk_queue& q, bool one_time = true) { vk_submission s; - s.buffer = ggml_vk_create_cmd_buffer(ctx, q); + s.buffer = ggml_vk_create_cmd_buffer(device, q); if (one_time) { s.buffer.begin({ vk::CommandBufferUsageFlagBits::eOneTimeSubmit }); } else { @@ -2339,13 +2400,13 @@ static void ggml_vk_ctx_end(vk_context * ctx) { ctx->s = nullptr; } -static void ggml_vk_ctx_begin(ggml_backend_vk_context * ctx, vk_context * subctx) { - VK_LOG_DEBUG("ggml_vk_ctx_begin(" << ctx << ")"); +static void ggml_vk_ctx_begin(vk_device& device, vk_context * subctx) { + VK_LOG_DEBUG("ggml_vk_ctx_begin(" << device->name << ")"); if (subctx->s != nullptr) { ggml_vk_ctx_end(subctx); } - subctx->seqs.push_back({ ggml_vk_begin_submission(ctx, *subctx->q) }); + subctx->seqs.push_back({ ggml_vk_begin_submission(device, *subctx->q) }); subctx->s = subctx->seqs[subctx->seqs.size() - 1].data(); } @@ -2362,11 +2423,11 @@ static void deferred_memcpy(void * dst, const void * src, size_t size, std::vect } } -static void ggml_vk_ensure_sync_staging_buffer(ggml_backend_vk_context * ctx, size_t size) { - if (ctx->sync_staging == nullptr || ctx->sync_staging->size < size) { +static void ggml_vk_ensure_sync_staging_buffer(vk_device& device, size_t size) { + if (device->sync_staging == nullptr || device->sync_staging->size < size) { VK_LOG_MEMORY("ggml_vk_ensure_sync_staging_buffer(" << size << ")"); - ggml_vk_destroy_buffer(ctx->sync_staging); - ctx->sync_staging = ggml_vk_create_buffer_check(ctx, size, + ggml_vk_destroy_buffer(device->sync_staging); + device->sync_staging = ggml_vk_create_buffer_check(device, size, vk::MemoryPropertyFlagBits::eHostVisible | vk::MemoryPropertyFlagBits::eHostCoherent | vk::MemoryPropertyFlagBits::eHostCached, vk::MemoryPropertyFlagBits::eHostVisible | vk::MemoryPropertyFlagBits::eHostCoherent); } @@ -2383,7 +2444,7 @@ static void ggml_vk_buffer_write_nc_async(ggml_backend_vk_context * ctx, vk_cont // Check if src is pinned memory vk_buffer buf; size_t buf_offset; - ggml_vk_host_get(ctx, tensor->data, buf, buf_offset); + ggml_vk_host_get(ctx->device, tensor->data, buf, buf_offset); const uint64_t ne0 = tensor->ne[0]; const uint64_t ne1 = tensor->ne[1]; @@ -2441,9 +2502,9 @@ static void ggml_vk_buffer_write_nc_async(ggml_backend_vk_context * ctx, vk_cont if (ctx->staging->size < ctx->staging_offset + copy_size) { if (sync_staging) { // Create temporary larger buffer - ggml_vk_ensure_sync_staging_buffer(ctx, copy_size); + ggml_vk_ensure_sync_staging_buffer(ctx->device, copy_size); - staging = ctx->sync_staging; + staging = ctx->device->sync_staging; staging_offset = 0; } else { GGML_ASSERT(false); @@ -2477,11 +2538,8 @@ static void ggml_vk_buffer_write_nc_async(ggml_backend_vk_context * ctx, vk_cont } } -static void ggml_vk_buffer_write_2d_async(ggml_backend_vk_context * ctx, vk_context * subctx, vk_buffer& dst, size_t offset, const void * src, size_t spitch, size_t width, size_t height, bool sync_staging = false) { +static void ggml_vk_buffer_write_2d_async(vk_context * subctx, vk_buffer& dst, size_t offset, const void * src, size_t spitch, size_t width, size_t height, vk_buffer staging_buffer, size_t staging_offset, bool sync_staging = false) { VK_LOG_DEBUG("ggml_vk_buffer_write_2d_async(" << width << ", " << height << ")"); - // Make sure ctx owns the buffer - GGML_ASSERT(dst->ctx == ctx); - // Buffer is already mapped if(dst->memory_property_flags & vk::MemoryPropertyFlagBits::eHostVisible) { std::cerr << "ggml_vulkan: buffer_write_async dst buffer is host_visible. Use synchronous write." << std::endl; @@ -2490,7 +2548,7 @@ static void ggml_vk_buffer_write_2d_async(ggml_backend_vk_context * ctx, vk_cont // Check if src is pinned memory vk_buffer buf = nullptr; size_t buf_offset; - ggml_vk_host_get(ctx, src, buf, buf_offset); + ggml_vk_host_get(dst->device, src, buf, buf_offset); if (buf != nullptr) { // Memory is pinned, use as staging buffer @@ -2516,14 +2574,12 @@ static void ggml_vk_buffer_write_2d_async(ggml_backend_vk_context * ctx, vk_cont VK_LOG_DEBUG("STAGING"); // Staging buffer required - vk_buffer staging = ctx->staging; - size_t staging_offset = ctx->staging_offset; const size_t copy_size = width*height; - if (ctx->staging == nullptr || ctx->staging->size < ctx->staging_offset + copy_size) { + if (staging_buffer == nullptr || staging_buffer->size < staging_offset + copy_size) { if (sync_staging) { - ggml_vk_ensure_sync_staging_buffer(ctx, copy_size); + ggml_vk_ensure_sync_staging_buffer(dst->device, copy_size); - staging = ctx->sync_staging; + staging_buffer = dst->device->sync_staging; staging_offset = 0; } else { GGML_ASSERT(false); @@ -2536,23 +2592,23 @@ static void ggml_vk_buffer_write_2d_async(ggml_backend_vk_context * ctx, vk_cont copy_size}; ggml_vk_sync_buffers(subctx); - vkCmdCopyBuffer(subctx->s->buffer, staging->buffer, dst->buffer, 1, &buf_copy); + vkCmdCopyBuffer(subctx->s->buffer, staging_buffer->buffer, dst->buffer, 1, &buf_copy); if (width == spitch) { - deferred_memcpy((uint8_t *)staging->ptr + staging_offset, src, width * height, &subctx->in_memcpys); + deferred_memcpy((uint8_t *)staging_buffer->ptr + staging_offset, src, width * height, &subctx->in_memcpys); } else { for (size_t i = 0; i < height; i++) { - deferred_memcpy((uint8_t *)staging->ptr + staging_offset + i * width, (const uint8_t *) src + i * spitch, width, &subctx->in_memcpys); + deferred_memcpy((uint8_t *)staging_buffer->ptr + staging_offset + i * width, (const uint8_t *) src + i * spitch, width, &subctx->in_memcpys); } } } -static void ggml_vk_buffer_write_async(ggml_backend_vk_context * ctx, vk_context * subctx, vk_buffer& dst, size_t offset, const void * src, size_t size, bool sync_staging = false) { +static void ggml_vk_buffer_write_async(vk_context * subctx, vk_buffer& dst, size_t offset, const void * src, size_t size, vk_buffer staging_buffer, size_t staging_offset, bool sync_staging = false) { VK_LOG_DEBUG("ggml_vk_buffer_write_async(" << size << ")"); - return ggml_vk_buffer_write_2d_async(ctx, subctx, dst, offset, src, size, size, 1, sync_staging); + return ggml_vk_buffer_write_2d_async(subctx, dst, offset, src, size, size, 1, staging_buffer, staging_offset, sync_staging); } -static void ggml_vk_buffer_write_2d(ggml_backend_vk_context * ctx, vk_buffer& dst, size_t offset, const void * src, size_t spitch, size_t width, size_t height) { +static void ggml_vk_buffer_write_2d(vk_buffer& dst, size_t offset, const void * src, size_t spitch, size_t width, size_t height) { VK_LOG_DEBUG("ggml_vk_buffer_write_2d(" << width << ", " << height << ")"); // Buffer is already mapped if(dst->memory_property_flags & vk::MemoryPropertyFlagBits::eHostVisible) { @@ -2562,38 +2618,38 @@ static void ggml_vk_buffer_write_2d(ggml_backend_vk_context * ctx, vk_buffer& ds memcpy((uint8_t *)dst->ptr + offset + i * width, (const uint8_t *) src + i * spitch, width); } } else { - vk_context * subctx = ggml_vk_create_context(ctx, ctx->device->transfer_queue); - ggml_vk_ctx_begin(ctx, subctx); - ggml_vk_buffer_write_2d_async(ctx, subctx, dst, offset, src, spitch, width, height, true); + vk_context * subctx = ggml_vk_create_temporary_context(dst->device->transfer_queue); + ggml_vk_ctx_begin(dst->device, subctx); + ggml_vk_buffer_write_2d_async(subctx, dst, offset, src, spitch, width, height, nullptr, 0, true); ggml_vk_ctx_end(subctx); for (auto& cpy : subctx->in_memcpys) { memcpy(cpy.dst, cpy.src, cpy.n); } - ggml_vk_submit(subctx, ctx->fence); - VK_CHECK(ctx->device->device.waitForFences({ ctx->fence }, true, UINT64_MAX), "vk_buffer_write_2d waitForFences"); - ctx->device->device.resetFences({ ctx->fence }); + ggml_vk_submit(subctx, dst->device->fence); + VK_CHECK(dst->device->device.waitForFences({ dst->device->fence }, true, UINT64_MAX), "vk_buffer_write_2d waitForFences"); + dst->device->device.resetFences({ dst->device->fence }); + + delete subctx; } } -static void ggml_vk_buffer_write(ggml_backend_vk_context * ctx, vk_buffer& dst, size_t offset, const void * src, size_t size) { +static void ggml_vk_buffer_write(vk_buffer& dst, size_t offset, const void * src, size_t size) { VK_LOG_DEBUG("ggml_vk_buffer_write(" << size << ")"); - ggml_vk_buffer_write_2d(ctx, dst, offset, src, 0, size, 1); + ggml_vk_buffer_write_2d(dst, offset, src, 0, size, 1); } -static void ggml_vk_buffer_read_2d_async(ggml_backend_vk_context * ctx, vk_context * subctx, vk_buffer& src, size_t offset, void * dst, size_t spitch, size_t dpitch, size_t width, size_t height, bool sync_staging = false) { +static void ggml_vk_buffer_read_2d_async(vk_context * subctx, vk_buffer& src, size_t offset, void * dst, size_t spitch, size_t dpitch, size_t width, size_t height, vk_buffer staging_buffer, size_t staging_offset, bool sync_staging = false) { VK_LOG_DEBUG("ggml_vk_buffer_read_2d_async(offset=" << offset << ", width=" << width << ", height=" << height << ")"); GGML_ASSERT(width > 0); GGML_ASSERT(height > 0); GGML_ASSERT(src != nullptr); - // Make sure ctx owns the buffer - GGML_ASSERT(src->ctx == ctx); // Check if dst is pinned memory vk_buffer buf = nullptr; size_t buf_offset; - ggml_vk_host_get(ctx, dst, buf, buf_offset); + ggml_vk_host_get(src->device, dst, buf, buf_offset); std::vector slices(1); if (width == spitch && width == dpitch) { @@ -2620,55 +2676,56 @@ static void ggml_vk_buffer_read_2d_async(ggml_backend_vk_context * ctx, vk_conte VK_LOG_DEBUG("STAGING"); // Fall back to staging buffer - vk_buffer staging = ctx->staging; const size_t copy_size = dpitch * height; - if (ctx->staging == nullptr || ctx->staging->size < ctx->staging_offset + copy_size) { + if (staging_buffer == nullptr || staging_buffer->size < staging_offset + copy_size) { if (sync_staging) { // Create temporary larger buffer - ggml_vk_ensure_sync_staging_buffer(ctx, copy_size); + ggml_vk_ensure_sync_staging_buffer(src->device, copy_size); - staging = ctx->sync_staging; + staging_buffer = src->device->sync_staging; } else { GGML_ASSERT(false); } } ggml_vk_sync_buffers(subctx); - subctx->s->buffer.copyBuffer(src->buffer, staging->buffer, slices); + subctx->s->buffer.copyBuffer(src->buffer, staging_buffer->buffer, slices); - deferred_memcpy(dst, staging->ptr, copy_size, &subctx->out_memcpys); + deferred_memcpy(dst, staging_buffer->ptr, copy_size, &subctx->out_memcpys); } -static void ggml_vk_buffer_read_async(ggml_backend_vk_context * ctx, vk_context * subctx, vk_buffer& src, size_t offset, void * dst, size_t size, bool sync_staging = false) { - return ggml_vk_buffer_read_2d_async(ctx, subctx, src, offset, dst, size, size, size, 1, sync_staging); +static void ggml_vk_buffer_read_async(vk_context * subctx, vk_buffer& src, size_t offset, void * dst, size_t size, vk_buffer staging_buffer, size_t staging_offset, bool sync_staging = false) { + return ggml_vk_buffer_read_2d_async(subctx, src, offset, dst, size, size, size, 1, staging_buffer, staging_offset, sync_staging); } -static void ggml_vk_buffer_read(ggml_backend_vk_context * ctx, vk_buffer& src, size_t offset, void * dst, size_t size) { +static void ggml_vk_buffer_read(vk_buffer& src, size_t offset, void * dst, size_t size) { VK_LOG_DEBUG("ggml_vk_buffer_read(" << offset << ", " << size << ")"); if(src->memory_property_flags & vk::MemoryPropertyFlagBits::eHostVisible) { GGML_ASSERT(src->memory_property_flags & vk::MemoryPropertyFlagBits::eHostCoherent); memcpy(dst, (uint8_t *) src->ptr + offset, size); } else { - vk_context * subctx = ggml_vk_create_context(ctx, ctx->device->transfer_queue); - ggml_vk_ctx_begin(ctx, subctx); - ggml_vk_buffer_read_async(ctx, subctx, src, offset, dst, size, true); + vk_context * subctx = ggml_vk_create_temporary_context(src->device->transfer_queue); + ggml_vk_ctx_begin(src->device, subctx); + ggml_vk_buffer_read_async(subctx, src, offset, dst, size, nullptr, 0, true); ggml_vk_ctx_end(subctx); - ggml_vk_submit(subctx, ctx->fence); - VK_CHECK(ctx->device->device.waitForFences({ ctx->fence }, true, UINT64_MAX), "vk_buffer_read waitForFences"); - ctx->device->device.resetFences({ ctx->fence }); + ggml_vk_submit(subctx, src->device->fence); + VK_CHECK(src->device->device.waitForFences({ src->device->fence }, true, UINT64_MAX), "vk_buffer_read waitForFences"); + src->device->device.resetFences({ src->device->fence }); for (auto& cpy : subctx->out_memcpys) { memcpy(cpy.dst, cpy.src, cpy.n); } + + delete subctx; } } static void ggml_vk_buffer_copy_async(vk_context * ctx, vk_buffer& dst, size_t dst_offset, vk_buffer& src, size_t src_offset, size_t size) { VK_LOG_DEBUG("ggml_vk_buffer_copy_async(" << size << ")"); - // Make sure both buffers are on same ctx - GGML_ASSERT(src->ctx == dst->ctx); + // Make sure both buffers are on same device + GGML_ASSERT(src->device == dst->device); VkBufferCopy bc{ src_offset, dst_offset, size }; @@ -2676,101 +2733,46 @@ static void ggml_vk_buffer_copy_async(vk_context * ctx, vk_buffer& dst, size_t d } static void ggml_vk_buffer_copy(vk_buffer& dst, size_t dst_offset, vk_buffer& src, size_t src_offset, size_t size) { - if (src->ctx == dst->ctx) { - VK_LOG_DEBUG("ggml_vk_buffer_copy(SINGLE_DEVICE, " << size << ")"); + if (src->device == dst->device) { + VK_LOG_DEBUG("ggml_vk_buffer_copy(SINGLE_DEVICE, " << size << ")"); // Copy within the device - ggml_backend_vk_context * ctx = src->ctx; - - vk_context * subctx = ggml_vk_create_context(ctx, ctx->device->transfer_queue); - ggml_vk_ctx_begin(ctx, subctx); + vk_context * subctx = ggml_vk_create_temporary_context(src->device->transfer_queue); + ggml_vk_ctx_begin(src->device, subctx); ggml_vk_buffer_copy_async(subctx, dst, dst_offset, src, src_offset, size); ggml_vk_ctx_end(subctx); - ggml_vk_submit(subctx, ctx->fence); - VK_CHECK(ctx->device->device.waitForFences({ ctx->fence }, true, UINT64_MAX), "vk_buffer_copy waitForFences"); - ctx->device->device.resetFences({ ctx->fence }); + ggml_vk_submit(subctx, src->device->fence); + VK_CHECK(src->device->device.waitForFences({ src->device->fence }, true, UINT64_MAX), "vk_buffer_copy waitForFences"); + src->device->device.resetFences({ src->device->fence }); + + delete subctx; } else { - VK_LOG_DEBUG("ggml_vk_buffer_copy(MULTI_DEVICE, " << size << ")"); + VK_LOG_DEBUG("ggml_vk_buffer_copy(MULTI_DEVICE, " << size << ")"); // Copy device to device - ggml_backend_vk_context * src_ctx = src->ctx; - ggml_backend_vk_context * dst_ctx = dst->ctx; - - ggml_vk_ensure_sync_staging_buffer(src_ctx, size); - ggml_vk_ensure_sync_staging_buffer(dst_ctx, size); + ggml_vk_ensure_sync_staging_buffer(src->device, size); + ggml_vk_ensure_sync_staging_buffer(dst->device, size); // Copy to src staging buffer - ggml_vk_buffer_copy(src_ctx->sync_staging, 0, src, src_offset, size); + ggml_vk_buffer_copy(src->device->sync_staging, 0, src, src_offset, size); // memcpy to dst staging buffer - memcpy(dst_ctx->sync_staging->ptr, src_ctx->sync_staging->ptr, size); + memcpy(dst->device->sync_staging->ptr, src->device->sync_staging->ptr, size); // Copy to dst buffer - ggml_vk_buffer_copy(dst, dst_offset, dst_ctx->sync_staging, 0, size); + ggml_vk_buffer_copy(dst, dst_offset, dst->device->sync_staging, 0, size); } } -static void ggml_vk_buffer_memset(ggml_backend_vk_context * ctx, vk_buffer& dst, size_t offset, uint32_t c, size_t size) { +static void ggml_vk_buffer_memset(vk_buffer& dst, size_t offset, uint32_t c, size_t size) { VK_LOG_DEBUG("ggml_vk_buffer_memset(" << offset << ", " << c << ", " << size << ")"); - // Make sure ctx owns the buffer - GGML_ASSERT(dst->ctx == ctx); - vk_context * subctx = ggml_vk_create_context(ctx, ctx->device->transfer_queue); - ggml_vk_ctx_begin(ctx, subctx); + vk_context * subctx = ggml_vk_create_temporary_context(dst->device->transfer_queue); + ggml_vk_ctx_begin(dst->device, subctx); subctx->s->buffer.fillBuffer(dst->buffer, offset, size, c); ggml_vk_ctx_end(subctx); - ggml_vk_submit(subctx, ctx->fence); - VK_CHECK(ctx->device->device.waitForFences({ ctx->fence }, true, UINT64_MAX), "vk_memset waitForFences"); - ctx->device->device.resetFences({ ctx->fence }); -} - -static void ggml_vk_h2d_tensor_2d(ggml_backend_vk_context * ctx, vk_context * subctx, vk_buffer& dst, size_t offset, const ggml_tensor * src, uint64_t i3, uint64_t i2, uint64_t i1) { - VK_LOG_DEBUG("ggml_vk_h2d_tensor_2d(dst=" << dst << ", offset=" << offset << ", src=" << src << ", i3=" << i3 << ", i2=" << i2 << ", i1=" << i1 << ")"); - const uint64_t ne0 = src->ne[0]; - const uint64_t ne1 = src->ne[1]; - const uint64_t nb0 = src->nb[0]; - const uint64_t nb1 = src->nb[1]; - const uint64_t nb2 = src->nb[2]; - const uint64_t nb3 = src->nb[3]; - const enum ggml_type type = src->type; - const size_t ts = ggml_type_size(type); - const size_t bs = ggml_blck_size(type); - const size_t row_length = ts*ne0/bs; - - const void * x = (const void *) ((const char *) src->data + i2*nb2 + i3*nb3); - if (nb0 == ts && nb1 == row_length) { - return ggml_vk_buffer_write_async(ctx, subctx, dst, offset, x, i1*nb1); - } - if (nb0 == ts && (i1 == ne1 || !ggml_is_permuted(src))) { - return ggml_vk_buffer_write_2d_async(ctx, subctx, dst, offset, x, nb1, row_length, i1); - } - - GGML_ASSERT(i3 == 0); - GGML_ASSERT(i2 == 0); - GGML_ASSERT(i1 == (uint64_t) ggml_nrows(src)); - - return ggml_vk_buffer_write_nc_async(ctx, subctx, dst, offset, src); -} - -static void ggml_vk_d2h_tensor_2d(ggml_backend_vk_context * ctx, vk_context * subctx, vk_buffer& src, size_t offset, const ggml_tensor * dst) { - VK_LOG_DEBUG("ggml_vk_d2h_tensor_2d()"); - const uint64_t ne0 = dst->ne[0]; - const uint64_t ne1 = dst->ne[1]; - const uint64_t ne2 = dst->ne[2]; - const uint64_t ne3 = dst->ne[3]; - const uint64_t nb0 = dst->nb[0]; - const uint64_t nb1 = dst->nb[1]; - // const uint64_t nb2 = dst->nb[2]; - // const uint64_t nb3 = dst->nb[3]; - const enum ggml_type type = dst->type; - const size_t ts = ggml_type_size(type); - const size_t bs = ggml_blck_size(type); - const size_t row_length = ts*ne0/bs; + ggml_vk_submit(subctx, dst->device->fence); + VK_CHECK(dst->device->device.waitForFences({ dst->device->fence }, true, UINT64_MAX), "vk_memset waitForFences"); + dst->device->device.resetFences({ dst->device->fence }); - if (ggml_is_contiguous(dst)) { - return ggml_vk_buffer_read_async(ctx, subctx, src, offset, dst->data, ne1*nb1*ne2*ne3); - } - if (nb0 == ts) { - return ggml_vk_buffer_read_2d_async(ctx, subctx, src, offset, dst->data, nb1, nb1, row_length, ne1*ne2*ne3); - } - GGML_ASSERT(false); + delete subctx; } static uint32_t ggml_vk_guess_split_k(int m, int n, int k) { @@ -2948,8 +2950,8 @@ static void ggml_vk_mul_mat_q_f16(ggml_backend_vk_context * ctx, vk_context * su bool src1_uma = false; if (ctx->device->uma) { - ggml_vk_host_get(ctx, src0->data, d_Qx, qx_buf_offset); - ggml_vk_host_get(ctx, src1->data, d_Qy, qy_buf_offset); + ggml_vk_host_get(ctx->device, src0->data, d_Qx, qx_buf_offset); + ggml_vk_host_get(ctx->device, src1->data, d_Qy, qy_buf_offset); src0_uma = d_Qx != nullptr; src1_uma = d_Qy != nullptr; } @@ -3041,15 +3043,15 @@ static void ggml_vk_mul_mat_q_f16(ggml_backend_vk_context * ctx, vk_context * su GGML_ASSERT(!qy_needs_dequant || to_fp16_vk_1 != nullptr); // NOLINT // Allocate descriptor sets - ggml_pipeline_allocate_descriptor_sets(ctx, pipeline, 1); + ggml_pipeline_allocate_descriptor_sets(ctx->device, pipeline, 1); if (qx_needs_dequant) { - ggml_pipeline_allocate_descriptor_sets(ctx, to_fp16_vk_0, 1); + ggml_pipeline_allocate_descriptor_sets(ctx->device, to_fp16_vk_0, 1); } if (qy_needs_dequant) { - ggml_pipeline_allocate_descriptor_sets(ctx, to_fp16_vk_1, 1); + ggml_pipeline_allocate_descriptor_sets(ctx->device, to_fp16_vk_1, 1); } if (split_k > 1) { - ggml_pipeline_allocate_descriptor_sets(ctx, ctx->device->pipeline_matmul_split_k_reduce, 1); + ggml_pipeline_allocate_descriptor_sets(ctx->device, ctx->device->pipeline_matmul_split_k_reduce, 1); } if (x_non_contig) { @@ -3125,8 +3127,8 @@ static void ggml_vk_mul_mat_vec_q_f16(ggml_backend_vk_context * ctx, vk_context bool src1_uma = false; if (ctx->device->uma) { - ggml_vk_host_get(ctx, src0->data, d_Qx, qx_buf_offset); - ggml_vk_host_get(ctx, src1->data, d_Qy, qy_buf_offset); + ggml_vk_host_get(ctx->device, src0->data, d_Qx, qx_buf_offset); + ggml_vk_host_get(ctx->device, src1->data, d_Qy, qy_buf_offset); src0_uma = d_Qx != nullptr; src1_uma = d_Qy != nullptr; } @@ -3201,12 +3203,12 @@ static void ggml_vk_mul_mat_vec_q_f16(ggml_backend_vk_context * ctx, vk_context // Allocate descriptor sets if (qx_needs_dequant) { - ggml_pipeline_allocate_descriptor_sets(ctx, to_fp16_vk_0, 1); + ggml_pipeline_allocate_descriptor_sets(ctx->device, to_fp16_vk_0, 1); } if (qy_needs_dequant) { - ggml_pipeline_allocate_descriptor_sets(ctx, to_fp16_vk_1, y_non_contig ? 1 : ne12 * ne13); + ggml_pipeline_allocate_descriptor_sets(ctx->device, to_fp16_vk_1, y_non_contig ? 1 : ne12 * ne13); } - ggml_pipeline_allocate_descriptor_sets(ctx, dmmv, ne12 * ne13); + ggml_pipeline_allocate_descriptor_sets(ctx->device, dmmv, ne12 * ne13); if (x_non_contig) { GGML_ASSERT(x_sz == ggml_vk_align_size(ggml_type_size(src0->type) * x_ne, ctx->device->properties.limits.minStorageBufferOffsetAlignment)); @@ -3228,6 +3230,16 @@ static void ggml_vk_mul_mat_vec_q_f16(ggml_backend_vk_context * ctx, vk_context stride_batch_y = src1->nb[0] / ggml_type_size(src1->type); } + const uint32_t max_groups_x = ctx->device->properties.limits.maxComputeWorkGroupCount[0]; + + uint32_t groups_x = ne01; + uint32_t groups_z = 1; + + if (ne01 > max_groups_x) { + groups_z = 64; + groups_x /= groups_z; + } + // compute const vk_mat_vec_push_constants pc = { (uint32_t)ne00, (uint32_t)ne10, (uint32_t)ne10, (uint32_t)ne01, @@ -3235,11 +3247,13 @@ static void ggml_vk_mul_mat_vec_q_f16(ggml_backend_vk_context * ctx, vk_context (uint32_t)ne02, (uint32_t)ne12, (uint32_t)r2, (uint32_t)r3, }; ggml_vk_sync_buffers(subctx); - ggml_vk_dispatch_pipeline(ctx, subctx, dmmv, { { d_X, x_buf_offset, x_sz * ne02 * ne03 }, { d_Y, y_buf_offset, y_sz * ne12 * ne13 }, { d_D, d_buf_offset, d_sz * ne22 * ne23} }, sizeof(vk_mat_vec_push_constants), &pc, { (uint32_t)ne01, (uint32_t)(ne12 * ne13), 1}); + ggml_vk_dispatch_pipeline(ctx, subctx, dmmv, + { { d_X, x_buf_offset, x_sz * ne02 * ne03 }, { d_Y, y_buf_offset, y_sz * ne12 * ne13 }, { d_D, d_buf_offset, d_sz * ne22 * ne23} }, + sizeof(vk_mat_vec_push_constants), &pc, { groups_x, (uint32_t)(ne12 * ne13), groups_z }); } static void ggml_vk_mul_mat_vec_p021_f16_f32(ggml_backend_vk_context * ctx, vk_context * subctx, const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) { - VK_LOG_DEBUG("ggml_vk_mul_mat_p021_f16_f32((" << src0 << ", name=" << src0->name << ", type=" << src0->type << ", ne0=" << src0->ne[0] << ", ne1=" << src0->ne[1] << ", ne2=" << src0->ne[2] << ", ne3=" << src0->ne[3] << ", nb0=" << src0->nb[0] << ", nb1=" << src0->nb[1] << ", nb2=" << src0->nb[2] << ", nb3=" << src0->nb[3]; + VK_LOG_DEBUG("ggml_vk_mul_mat_p021_f16_f32(" << src0 << ", name=" << src0->name << ", type=" << src0->type << ", ne0=" << src0->ne[0] << ", ne1=" << src0->ne[1] << ", ne2=" << src0->ne[2] << ", ne3=" << src0->ne[3] << ", nb0=" << src0->nb[0] << ", nb1=" << src0->nb[1] << ", nb2=" << src0->nb[2] << ", nb3=" << src0->nb[3]; std::cerr << "), (" << src1 << ", name=" << src1->name << ", type=" << src1->type << ", ne0=" << src1->ne[0] << ", ne1=" << src1->ne[1] << ", ne2=" << src1->ne[2] << ", ne3=" << src1->ne[3] << ", nb0=" << src1->nb[0] << ", nb1=" << src1->nb[1] << ", nb2=" << src1->nb[2] << ", nb3=" << src1->nb[3]; std::cerr << "), (" << dst << ", name=" << dst->name << ", type=" << dst->type << ", ne0=" << dst->ne[0] << ", ne1=" << dst->ne[1] << ", ne2=" << dst->ne[2] << ", ne3=" << dst->ne[3] << ", nb0=" << dst->nb[0] << ", nb1=" << dst->nb[1] << ", nb2=" << dst->nb[2] << ", nb3=" << dst->nb[3] << "),)"); GGML_ASSERT(ggml_is_permuted(src0) && ggml_is_permuted(src1)); @@ -3270,7 +3284,7 @@ static void ggml_vk_mul_mat_vec_p021_f16_f32(ggml_backend_vk_context * ctx, vk_c bool src1_uma = false; if (ctx->device->uma) { - ggml_vk_host_get(ctx, src1->data, d_Qy, qy_buf_offset); + ggml_vk_host_get(ctx->device, src1->data, d_Qy, qy_buf_offset); src1_uma = d_Qy != nullptr; } @@ -3295,7 +3309,7 @@ static void ggml_vk_mul_mat_vec_p021_f16_f32(ggml_backend_vk_context * ctx, vk_c } // Allocate descriptor sets - ggml_pipeline_allocate_descriptor_sets(ctx, ctx->device->pipeline_mul_mat_vec_p021_f16_f32, 1); + ggml_pipeline_allocate_descriptor_sets(ctx->device, ctx->device->pipeline_mul_mat_vec_p021_f16_f32, 1); const uint64_t qy_buffer_offset = (qy_buf_offset / ctx->device->properties.limits.minStorageBufferOffsetAlignment) * ctx->device->properties.limits.minStorageBufferOffsetAlignment; const uint64_t qy_shader_offset = qy_buf_offset - qy_buffer_offset; @@ -3344,7 +3358,7 @@ static void ggml_vk_mul_mat_vec_nc_f16_f32(ggml_backend_vk_context * ctx, vk_con bool src1_uma = false; if (ctx->device->uma) { - ggml_vk_host_get(ctx, src1->data, d_Qy, qy_buf_offset); + ggml_vk_host_get(ctx->device, src1->data, d_Qy, qy_buf_offset); src1_uma = d_Qy != nullptr; } @@ -3370,7 +3384,7 @@ static void ggml_vk_mul_mat_vec_nc_f16_f32(ggml_backend_vk_context * ctx, vk_con } // Allocate descriptor sets - ggml_pipeline_allocate_descriptor_sets(ctx, ctx->device->pipeline_mul_mat_vec_nc_f16_f32, 1); + ggml_pipeline_allocate_descriptor_sets(ctx->device, ctx->device->pipeline_mul_mat_vec_nc_f16_f32, 1); const uint64_t qy_buffer_offset = (qy_buf_offset / ctx->device->properties.limits.minStorageBufferOffsetAlignment) * ctx->device->properties.limits.minStorageBufferOffsetAlignment; const uint64_t qy_shader_offset = qy_buf_offset - qy_buffer_offset; @@ -3448,9 +3462,9 @@ static void ggml_vk_mul_mat_id_q_f16(ggml_backend_vk_context * ctx, vk_context * bool ids_uma = false; if (ctx->device->uma) { - ggml_vk_host_get(ctx, src0->data, d_Qx, qx_buf_offset); - ggml_vk_host_get(ctx, src1->data, d_Qy, qy_buf_offset); - ggml_vk_host_get(ctx, ids->data, d_ids, ids_buf_offset); + ggml_vk_host_get(ctx->device, src0->data, d_Qx, qx_buf_offset); + ggml_vk_host_get(ctx->device, src1->data, d_Qy, qy_buf_offset); + ggml_vk_host_get(ctx->device, ids->data, d_ids, ids_buf_offset); src0_uma = d_Qx != nullptr; src1_uma = d_Qy != nullptr; ids_uma = d_ids != nullptr; @@ -3545,12 +3559,12 @@ static void ggml_vk_mul_mat_id_q_f16(ggml_backend_vk_context * ctx, vk_context * GGML_ASSERT(!qy_needs_dequant || to_fp16_vk_1 != nullptr); // NOLINT // Allocate descriptor sets - ggml_pipeline_allocate_descriptor_sets(ctx, pipeline, 1); + ggml_pipeline_allocate_descriptor_sets(ctx->device, pipeline, 1); if (qx_needs_dequant) { - ggml_pipeline_allocate_descriptor_sets(ctx, to_fp16_vk_0, 1); + ggml_pipeline_allocate_descriptor_sets(ctx->device, to_fp16_vk_0, 1); } if (qy_needs_dequant) { - ggml_pipeline_allocate_descriptor_sets(ctx, to_fp16_vk_1, 1); + ggml_pipeline_allocate_descriptor_sets(ctx->device, to_fp16_vk_1, 1); } if (x_non_contig) { @@ -3634,9 +3648,9 @@ static void ggml_vk_mul_mat_vec_id_q_f16(ggml_backend_vk_context * ctx, vk_conte bool ids_uma = false; if (ctx->device->uma) { - ggml_vk_host_get(ctx, src0->data, d_Qx, qx_buf_offset); - ggml_vk_host_get(ctx, src1->data, d_Qy, qy_buf_offset); - ggml_vk_host_get(ctx, ids->data, d_ids, ids_buf_offset); + ggml_vk_host_get(ctx->device, src0->data, d_Qx, qx_buf_offset); + ggml_vk_host_get(ctx->device, src1->data, d_Qy, qy_buf_offset); + ggml_vk_host_get(ctx->device, ids->data, d_ids, ids_buf_offset); src0_uma = d_Qx != nullptr; src1_uma = d_Qy != nullptr; ids_uma = d_ids != nullptr; @@ -3718,12 +3732,12 @@ static void ggml_vk_mul_mat_vec_id_q_f16(ggml_backend_vk_context * ctx, vk_conte // Allocate descriptor sets if (qx_needs_dequant) { - ggml_pipeline_allocate_descriptor_sets(ctx, to_fp16_vk_0, 1); + ggml_pipeline_allocate_descriptor_sets(ctx->device, to_fp16_vk_0, 1); } if (qy_needs_dequant) { - ggml_pipeline_allocate_descriptor_sets(ctx, to_fp16_vk_1, y_non_contig ? 1 : ne12 * ne13); + ggml_pipeline_allocate_descriptor_sets(ctx->device, to_fp16_vk_1, y_non_contig ? 1 : ne12 * ne13); } - ggml_pipeline_allocate_descriptor_sets(ctx, dmmv, ne12 * ne13); + ggml_pipeline_allocate_descriptor_sets(ctx->device, dmmv, ne12 * ne13); if (x_non_contig) { GGML_ASSERT(x_sz == ggml_vk_align_size(ggml_type_size(src0->type) * x_ne, ctx->device->properties.limits.minStorageBufferOffsetAlignment)); @@ -3740,6 +3754,16 @@ static void ggml_vk_mul_mat_vec_id_q_f16(ggml_backend_vk_context * ctx, vk_conte stride_batch_y = src1->nb[0] / ggml_type_size(src1->type); } + const uint32_t max_groups_x = ctx->device->properties.limits.maxComputeWorkGroupCount[0]; + + uint32_t groups_x = ne01; + uint32_t groups_z = 1; + + if (ne01 > max_groups_x) { + groups_z = 64; + groups_x /= groups_z; + } + // compute const vk_mat_vec_id_push_constants pc = { (uint32_t)ne00, (uint32_t)ne10, (uint32_t)ne10, (uint32_t)ne01, @@ -3749,7 +3773,7 @@ static void ggml_vk_mul_mat_vec_id_q_f16(ggml_backend_vk_context * ctx, vk_conte ggml_vk_sync_buffers(subctx); ggml_vk_dispatch_pipeline(ctx, subctx, dmmv, { { d_X, x_buf_offset, x_sz * ne02 * ne03 }, { d_Y, y_buf_offset, y_sz * ne12 * ne13 }, { d_D, d_buf_offset, d_sz * ne22 * ne23}, { d_ids, ids_buf_offset, ids_sz } }, - sizeof(vk_mat_vec_id_push_constants), &pc, { (uint32_t)ne01, (uint32_t)nei0, 1 }); + sizeof(vk_mat_vec_id_push_constants), &pc, { groups_x, (uint32_t)nei0, groups_z }); } static void ggml_vk_mul_mat_id(ggml_backend_vk_context * ctx, vk_context * subctx, const ggml_tensor * src0, const ggml_tensor * src1, const ggml_tensor * src2, ggml_tensor * dst) { @@ -4062,14 +4086,14 @@ static void ggml_vk_op_f32(ggml_backend_vk_context * ctx, vk_context * subctx, c bool src2_uma = false; if (ctx->device->uma) { - ggml_vk_host_get(ctx, src0->data, d_X, x_buf_offset); + ggml_vk_host_get(ctx->device, src0->data, d_X, x_buf_offset); src0_uma = d_X != nullptr; if (use_src1) { - ggml_vk_host_get(ctx, src1->data, d_Y, y_buf_offset); + ggml_vk_host_get(ctx->device, src1->data, d_Y, y_buf_offset); src1_uma = d_Y != nullptr; } if (use_src2) { - ggml_vk_host_get(ctx, src2->data, d_Z, z_buf_offset); + ggml_vk_host_get(ctx->device, src2->data, d_Z, z_buf_offset); src2_uma = d_Z != nullptr; } } @@ -4129,7 +4153,7 @@ static void ggml_vk_op_f32(ggml_backend_vk_context * ctx, vk_context * subctx, c // Single call if dimension 2 is contiguous if (op_supports_incontiguous || (ggml_is_contiguous(src0) && (src1 == nullptr || ggml_is_contiguous(src1)))) { - ggml_pipeline_allocate_descriptor_sets(ctx, pipeline, 1); + ggml_pipeline_allocate_descriptor_sets(ctx->device, pipeline, 1); switch (dst->op) { case GGML_OP_NORM: @@ -4205,7 +4229,7 @@ static void ggml_vk_op_f32(ggml_backend_vk_context * ctx, vk_context * subctx, c GGML_ASSERT(op != GGML_OP_ARGSORT); GGML_ASSERT(!use_src2); - ggml_pipeline_allocate_descriptor_sets(ctx, pipeline, ne02 * ne03); + ggml_pipeline_allocate_descriptor_sets(ctx->device, pipeline, ne02 * ne03); switch (dst->op) { case GGML_OP_NORM: @@ -4810,101 +4834,6 @@ static void ggml_vk_print_tensor_area(const ggml_tensor * tensor, int i0, int i1 } } -static void ggml_vk_test_h2d_nc(ggml_backend_vk_context * ctx, size_t ne0, size_t ne1, size_t ne2, size_t ne3) { - const size_t ne = ne0 * ne1 * ne2 * ne3; - - ggml_init_params iparams = { - /*.mem_size =*/ 1024*1024*1024, - /*.mem_buffer =*/ NULL, - /*.no_alloc =*/ true, - }; - - ggml_context * ggml_ctx = ggml_init(iparams); - - ggml_tensor * tensor = ggml_new_tensor_4d(ggml_ctx, GGML_TYPE_F32, ne0, ne2, ne1, ne3); // NOLINT - ggml_tensor * result_tensor = ggml_new_tensor_4d(ggml_ctx, GGML_TYPE_F32, ne0, ne1, ne2, ne3); - - float * data = (float *) ggml_vk_host_malloc(ctx, ggml_nbytes(tensor)); - tensor->data = data; - - float * result_data = (float *) malloc(ggml_nbytes(tensor)); - result_tensor->data = result_data; - - // Permute - { - size_t tmp = tensor->nb[2]; - tensor->nb[2] = tensor->nb[1]; - tensor->nb[1] = tmp; - - tensor->ne[2] = ne2; - tensor->ne[1] = ne1; - } - - for (size_t i = 0; i < ne; i++) { - data[i] = (rand() / (float)RAND_MAX) * 2.0f - 1.0f; - } - - vk_context * subctx = ggml_vk_create_context(ctx, ctx->device->compute_queue); - ggml_vk_ctx_begin(ctx, subctx); - - vk_buffer buffer = ggml_vk_create_buffer_check(ctx, ggml_nbytes(tensor), vk::MemoryPropertyFlagBits::eDeviceLocal); - - ggml_vk_h2d_tensor_2d(ctx, subctx, buffer, 0, tensor, 0, 0, ggml_nrows(tensor)); - - ggml_vk_ctx_end(subctx); - ggml_vk_submit(subctx, ctx->fence); - VK_CHECK(ctx->device->device.waitForFences({ ctx->fence }, true, UINT64_MAX), "ggml_vk_test_h2d_nc waitForFences"); - ctx->device->device.resetFences({ ctx->fence }); - - ggml_vk_buffer_read(ctx, buffer, 0, result_data, ggml_nbytes(tensor)); - - double avg_err = 0.0; - int first_err_i0 = -1; - int first_err_i1 = -1; - int first_err_i2 = -1; - int first_err_i3 = -1; - - for (size_t i3 = 0; i3 < ne3; i3++) { - for (size_t i2 = 0; i2 < ne2; i2++) { - for (size_t i1 = 0; i1 < ne1; i1++) { - for (size_t i0 = 0; i0 < ne0; i0++) { - float correct = *(float *) ((char *) data + i3*tensor->nb[3] + i2*tensor->nb[2] + i1*tensor->nb[1] + i0*tensor->nb[0]); - float result = *(float *) ((char *) result_data + i3*ne2*ne1*ne0*sizeof(float) + i2*ne1*ne0*sizeof(float) + i1*ne0*sizeof(float) + i0*sizeof(float)); - double err = std::fabs(result - correct); - - avg_err += err; - - if (err > 0.05f && first_err_i0 == -1) { - first_err_i0 = i0; - first_err_i1 = i1; - first_err_i2 = i2; - first_err_i3 = i3; - } - } - } - } - } - - avg_err /= ne; - - std::cerr << "TEST nc copy ne0=" << ne0 << " ne1=" << ne1 << " ne2=" << ne2 << " ne3=" << ne3 << " avg_err=" << avg_err << std::endl; - - if (avg_err > 0.1) { - std::cerr << "i0 = " << first_err_i0 << " i1 = " << first_err_i1 << " i2 = " << first_err_i2 << " i3 = " << first_err_i3 << std::endl; - std::cerr << "Actual result: " << std::endl << std::endl; - ggml_vk_print_tensor_area(result_tensor, first_err_i0, first_err_i1, first_err_i2, first_err_i3); - std::cerr << "Expected result: " << std::endl << std::endl; - ggml_vk_print_tensor_area(tensor, first_err_i0, first_err_i1, first_err_i2, first_err_i3); - } - - ggml_free(ggml_ctx); - - ggml_vk_destroy_buffer(buffer); - - ggml_vk_host_free(ctx, data); - free(result_data); -} - static void ggml_vk_test_transfer(ggml_backend_vk_context * ctx, size_t ne, bool pinned) { VK_LOG_DEBUG("ggml_vk_test_transfer(" << ne << ")"); // Check transfers are correct @@ -5515,7 +5444,7 @@ static void ggml_vk_preallocate_buffers(ggml_backend_vk_context * ctx) { if (ctx->prealloc_x != nullptr) { ggml_vk_destroy_buffer(ctx->prealloc_x); } - ctx->prealloc_x = ggml_vk_create_buffer_device(ctx, ctx->prealloc_size_x); + ctx->prealloc_x = ggml_vk_create_buffer_device(ctx->device, ctx->prealloc_size_x); } if (ctx->prealloc_y == nullptr || (ctx->prealloc_size_y > 0 && ctx->prealloc_y->size < ctx->prealloc_size_y)) { VK_LOG_MEMORY("ggml_vk_preallocate_buffers(y_size: " << ctx->prealloc_size_y << ")"); @@ -5523,7 +5452,7 @@ static void ggml_vk_preallocate_buffers(ggml_backend_vk_context * ctx) { if (ctx->prealloc_y != nullptr) { ggml_vk_destroy_buffer(ctx->prealloc_y); } - ctx->prealloc_y = ggml_vk_create_buffer_device(ctx, ctx->prealloc_size_y); + ctx->prealloc_y = ggml_vk_create_buffer_device(ctx->device, ctx->prealloc_size_y); } if (ctx->prealloc_split_k == nullptr || (ctx->prealloc_size_split_k > 0 && ctx->prealloc_split_k->size < ctx->prealloc_size_split_k)) { VK_LOG_MEMORY("ggml_vk_preallocate_buffers(split_k_size: " << ctx->prealloc_size_split_k << ")"); @@ -5531,7 +5460,7 @@ static void ggml_vk_preallocate_buffers(ggml_backend_vk_context * ctx) { if (ctx->prealloc_split_k != nullptr) { ggml_vk_destroy_buffer(ctx->prealloc_split_k); } - ctx->prealloc_split_k = ggml_vk_create_buffer_device(ctx, ctx->prealloc_size_split_k); + ctx->prealloc_split_k = ggml_vk_create_buffer_device(ctx->device, ctx->prealloc_size_split_k); } if (ctx->staging == nullptr || (ctx->staging_size > 0 && ctx->staging->size < ctx->staging_size)) { VK_LOG_MEMORY("ggml_vk_preallocate_buffers(staging_size: " << ctx->staging_size << ")"); @@ -5539,7 +5468,7 @@ static void ggml_vk_preallocate_buffers(ggml_backend_vk_context * ctx) { if (ctx->staging != nullptr) { ggml_vk_destroy_buffer(ctx->staging); } - ctx->staging = ggml_vk_create_buffer_check(ctx, ctx->staging_size, + ctx->staging = ggml_vk_create_buffer_check(ctx->device, ctx->staging_size, vk::MemoryPropertyFlagBits::eHostVisible | vk::MemoryPropertyFlagBits::eHostCoherent | vk::MemoryPropertyFlagBits::eHostCached, vk::MemoryPropertyFlagBits::eHostVisible | vk::MemoryPropertyFlagBits::eHostCoherent); } @@ -5607,7 +5536,7 @@ static void ggml_vk_build_graph(ggml_backend_vk_context * ctx, ggml_tensor * nod if (ctx->compute_ctx == nullptr) { ctx->compute_ctx = ggml_vk_create_context(ctx, ctx->device->compute_queue); - ggml_vk_ctx_begin(ctx, ctx->compute_ctx); + ggml_vk_ctx_begin(ctx->device, ctx->compute_ctx); } switch (node->op) { @@ -5825,8 +5754,8 @@ static void ggml_vk_graph_cleanup(ggml_backend_vk_context * ctx) { ggml_pipeline_cleanup(pl); } - ggml_vk_queue_cleanup(ctx, ctx->device->compute_queue); - ggml_vk_queue_cleanup(ctx, ctx->device->transfer_queue); + ggml_vk_queue_cleanup(ctx->device, ctx->device->compute_queue); + ggml_vk_queue_cleanup(ctx->device, ctx->device->transfer_queue); for (size_t i = 0; i < ctx->gc.semaphores.size(); i++) { ctx->device->device.destroySemaphore({ ctx->gc.semaphores[i].s }); @@ -5854,14 +5783,13 @@ static void ggml_vk_graph_cleanup(ggml_backend_vk_context * ctx) { // Clean up on backend free static void ggml_vk_cleanup(ggml_backend_vk_context * ctx) { - VK_LOG_DEBUG("ggml_vk_cleanup(" << ctx->idx << ")"); + VK_LOG_DEBUG("ggml_vk_cleanup(" << ctx->name << ")"); ggml_vk_graph_cleanup(ctx); ggml_vk_destroy_buffer(ctx->prealloc_x); ggml_vk_destroy_buffer(ctx->prealloc_y); ggml_vk_destroy_buffer(ctx->prealloc_split_k); ggml_vk_destroy_buffer(ctx->staging); - ggml_vk_destroy_buffer(ctx->sync_staging); for (auto& buffer : ctx->buffer_pool) { ggml_vk_destroy_buffer(buffer); @@ -5906,14 +5834,14 @@ GGML_CALL static void ggml_vk_get_device_description(int device, char * descript static void * const vk_ptr_base = (void *)(uintptr_t) 0x1000; // NOLINT struct ggml_backend_vk_buffer_context { - ggml_backend_vk_context * ctx; + vk_device_ref device; vk_buffer dev_buffer; ggml_tensor_extra_gpu * temp_tensor_extras = nullptr; size_t temp_tensor_extra_index = 0; std::string name; - ggml_backend_vk_buffer_context(ggml_backend_vk_context * ctx, vk_buffer&& dev_buffer, std::string& name) : - ctx(ctx), + ggml_backend_vk_buffer_context(vk_device_ref device, vk_buffer&& dev_buffer, std::string& name) : + device(device), dev_buffer(dev_buffer), name(name) { } @@ -5979,24 +5907,24 @@ GGML_CALL static void ggml_backend_vk_buffer_init_tensor(ggml_backend_buffer_t b GGML_CALL static void ggml_backend_vk_buffer_set_tensor(ggml_backend_buffer_t buffer, ggml_tensor * tensor, const void * data, size_t offset, size_t size) { VK_LOG_DEBUG("ggml_backend_vk_buffer_set_tensor(" << buffer << ", " << tensor << ", " << data << ", " << offset << ", " << size << ")"); - ggml_backend_vk_buffer_context * ctx = (ggml_backend_vk_buffer_context *)buffer->context; - ggml_tensor_extra_gpu * extra = (ggml_tensor_extra_gpu *) tensor->extra; vk_buffer buf = extra->buffer_gpu.lock(); - ggml_vk_buffer_write(ctx->ctx, buf, extra->offset + tensor->view_offs + offset, data, size); + ggml_vk_buffer_write(buf, extra->offset + tensor->view_offs + offset, data, size); + + GGML_UNUSED(buffer); } GGML_CALL static void ggml_backend_vk_buffer_get_tensor(ggml_backend_buffer_t buffer, const ggml_tensor * tensor, void * data, size_t offset, size_t size) { VK_LOG_DEBUG("ggml_backend_vk_buffer_get_tensor(" << buffer << ", " << tensor << ", " << data << ", " << offset << ", " << size << ")"); - ggml_backend_vk_buffer_context * ctx = (ggml_backend_vk_buffer_context *)buffer->context; - ggml_tensor_extra_gpu * extra = (ggml_tensor_extra_gpu *) tensor->extra; vk_buffer buf = extra->buffer_gpu.lock(); - ggml_vk_buffer_read(ctx->ctx, buf, extra->offset + tensor->view_offs + offset, data, size); + ggml_vk_buffer_read(buf, extra->offset + tensor->view_offs + offset, data, size); + + GGML_UNUSED(buffer); } GGML_CALL static bool ggml_backend_vk_buffer_cpy_tensor(ggml_backend_buffer_t buffer, const ggml_tensor * src, ggml_tensor * dst) { @@ -6019,7 +5947,7 @@ GGML_CALL static bool ggml_backend_vk_buffer_cpy_tensor(ggml_backend_buffer_t bu GGML_CALL static void ggml_backend_vk_buffer_clear(ggml_backend_buffer_t buffer, uint8_t value) { ggml_backend_vk_buffer_context * ctx = (ggml_backend_vk_buffer_context *)buffer->context; - ggml_vk_buffer_memset(ctx->ctx, ctx->dev_buffer, 0, value, buffer->size); + ggml_vk_buffer_memset(ctx->dev_buffer, 0, value, buffer->size); } static ggml_backend_buffer_i ggml_backend_vk_buffer_interface = { @@ -6035,11 +5963,6 @@ static ggml_backend_buffer_i ggml_backend_vk_buffer_interface = { }; // vk buffer type -struct ggml_backend_vk_buffer_type_context { - std::string name; - ggml_backend_vk_context * ctx; -}; - GGML_CALL static const char * ggml_backend_vk_buffer_type_name(ggml_backend_buffer_type_t buft) { ggml_backend_vk_buffer_type_context * ctx = (ggml_backend_vk_buffer_type_context *)buft->context; @@ -6052,24 +5975,24 @@ GGML_CALL static ggml_backend_buffer_t ggml_backend_vk_buffer_type_alloc_buffer( vk_buffer dev_buffer = nullptr; try { - dev_buffer = ggml_vk_create_buffer_device(ctx->ctx, size); + dev_buffer = ggml_vk_create_buffer_device(ctx->device, size); } catch (const vk::SystemError& e) { return nullptr; } - ggml_backend_vk_buffer_context * bufctx = new ggml_backend_vk_buffer_context(ctx->ctx, std::move(dev_buffer), ctx->name); + ggml_backend_vk_buffer_context * bufctx = new ggml_backend_vk_buffer_context(ctx->device, std::move(dev_buffer), ctx->name); return ggml_backend_buffer_init(buft, ggml_backend_vk_buffer_interface, bufctx, size); } GGML_CALL static size_t ggml_backend_vk_buffer_type_get_alignment(ggml_backend_buffer_type_t buft) { ggml_backend_vk_buffer_type_context * ctx = (ggml_backend_vk_buffer_type_context *) buft->context; - return ctx->ctx->device->properties.limits.minStorageBufferOffsetAlignment; + return ctx->device->properties.limits.minStorageBufferOffsetAlignment; } GGML_CALL static size_t ggml_backend_vk_buffer_type_get_max_size(ggml_backend_buffer_type_t buft) { ggml_backend_vk_buffer_type_context * ctx = (ggml_backend_vk_buffer_type_context *) buft->context; - return ctx->ctx->device->max_memory_allocation_size; + return ctx->device->max_memory_allocation_size; } GGML_CALL static size_t ggml_backend_vk_buffer_type_get_alloc_size(ggml_backend_buffer_type_t buft, const ggml_tensor * tensor) { @@ -6078,25 +6001,14 @@ GGML_CALL static size_t ggml_backend_vk_buffer_type_get_alloc_size(ggml_backend_ UNUSED(buft); } -static ggml_backend_buffer_type_i ggml_backend_vk_buffer_type_interface = { - /* .get_name = */ ggml_backend_vk_buffer_type_name, - /* .alloc_buffer = */ ggml_backend_vk_buffer_type_alloc_buffer, - /* .get_alignment = */ ggml_backend_vk_buffer_type_get_alignment, - /* .get_max_size = */ ggml_backend_vk_buffer_type_get_max_size, - /* .get_alloc_size = */ ggml_backend_vk_buffer_type_get_alloc_size, - /* .is_host = */ NULL, -}; - GGML_CALL ggml_backend_buffer_type_t ggml_backend_vk_buffer_type(size_t dev_num) { ggml_vk_instance_init(); VK_LOG_DEBUG("ggml_backend_vk_buffer_type(" << dev_num << ")"); - GGML_ASSERT(dev_num < vk_instance.device_indices.size()); + vk_device dev = ggml_vk_get_device(dev_num); - ggml_backend_vk_init(dev_num); - - return &vk_instance.buffer_types[dev_num]; + return &dev->buffer_type; } // host buffer type @@ -6115,15 +6027,16 @@ GGML_CALL static const char * ggml_backend_vk_host_buffer_name(ggml_backend_buff GGML_CALL static void ggml_backend_vk_host_buffer_free_buffer(ggml_backend_buffer_t buffer) { VK_LOG_MEMORY("ggml_backend_vk_host_buffer_free_buffer()"); - ggml_vk_host_free(&vk_instance.contexts[0], buffer->context); + ggml_vk_host_free(vk_instance.devices[0], buffer->context); } GGML_CALL static ggml_backend_buffer_t ggml_backend_vk_host_buffer_type_alloc_buffer(ggml_backend_buffer_type_t buft, size_t size) { VK_LOG_MEMORY("ggml_backend_vk_host_buffer_type_alloc_buffer(" << size << ")"); + size += 32; // Behave like the CPU buffer type void * ptr = nullptr; try { - ptr = ggml_vk_host_malloc(&vk_instance.contexts[0], size); + ptr = ggml_vk_host_malloc(vk_instance.devices[0], size); } catch (vk::SystemError& e) { std::cerr << "ggml_vulkan: Failed to allocate pinned memory." << std::endl; std::cerr << "ggml_vulkan: " << e.what() << std::endl; @@ -6137,14 +6050,18 @@ GGML_CALL static ggml_backend_buffer_t ggml_backend_vk_host_buffer_type_alloc_bu buffer->iface.free_buffer = ggml_backend_vk_host_buffer_free_buffer; return buffer; + + UNUSED(buft); } GGML_CALL static size_t ggml_backend_vk_host_buffer_type_get_alignment(ggml_backend_buffer_type_t buft) { - return vk_instance.contexts[0].device->properties.limits.minMemoryMapAlignment; + return vk_instance.devices[0]->properties.limits.minMemoryMapAlignment; UNUSED(buft); } +// Should be changed to return device-specific host buffer type +// but that probably requires changes in llama.cpp GGML_CALL ggml_backend_buffer_type_t ggml_backend_vk_host_buffer_type() { static struct ggml_backend_buffer_type ggml_backend_vk_buffer_type_host = { /* .iface = */ { @@ -6158,14 +6075,14 @@ GGML_CALL ggml_backend_buffer_type_t ggml_backend_vk_host_buffer_type() { /* .context = */ nullptr, }; - if (!vk_instance.contexts[0].initialized) { - // Fall back to CPU - return ggml_backend_cpu_buffer_type(); - } + // Make sure device 0 is initialized + ggml_vk_instance_init(); + ggml_vk_get_device(0); return &ggml_backend_vk_buffer_type_host; } + // backend GGML_CALL static const char * ggml_backend_vk_name(ggml_backend_t backend) { @@ -6178,74 +6095,65 @@ GGML_CALL static void ggml_backend_vk_free(ggml_backend_t backend) { ggml_backend_vk_context * ctx = (ggml_backend_vk_context *)backend->context; VK_LOG_DEBUG("ggml_backend_vk_free(" << ctx->name << ")"); - size_t idx = ctx->idx; - ggml_vk_cleanup(ctx); - ctx->device.reset(); - ctx->initialized = false; - - vk_instance.initialized[idx] = false; - vk_instance.backends[idx] = nullptr; - memset(&vk_instance.buffer_types[idx], 0, sizeof(ggml_backend_buffer_type)); + delete ctx; delete backend; } GGML_CALL static ggml_backend_buffer_type_t ggml_backend_vk_get_default_buffer_type(ggml_backend_t backend) { ggml_backend_vk_context * ctx = (ggml_backend_vk_context *)backend->context; - GGML_ASSERT(ctx->initialized); - - return ggml_backend_vk_buffer_type(ctx->idx); + return &ctx->device->buffer_type; } GGML_CALL static void ggml_backend_vk_set_tensor_async(ggml_backend_t backend, ggml_tensor * tensor, const void * data, size_t offset, size_t size) { VK_LOG_DEBUG("ggml_backend_vk_set_tensor_async(" << size << ")"); ggml_backend_vk_context * ctx = (ggml_backend_vk_context *)backend->context; - GGML_ASSERT((tensor->buffer->buft == ggml_backend_vk_buffer_type(ctx->idx) || tensor->buffer->buft == ggml_backend_vk_host_buffer_type()) && "unsupported buffer type"); + GGML_ASSERT((tensor->buffer->buft == ggml_backend_vk_get_default_buffer_type(backend) || tensor->buffer->buft == ggml_backend_vk_host_buffer_type()) && "unsupported buffer type"); ggml_tensor_extra_gpu * extra = (ggml_tensor_extra_gpu *) tensor->extra; if (ctx->transfer_ctx == nullptr) { // Initialize new transfer context ctx->transfer_ctx = ggml_vk_create_context(ctx, ctx->device->transfer_queue); - ggml_vk_ctx_begin(ctx, ctx->transfer_ctx); + ggml_vk_ctx_begin(ctx->device, ctx->transfer_ctx); } vk_buffer buf = extra->buffer_gpu.lock(); - ggml_vk_buffer_write_async(ctx, ctx->transfer_ctx, buf, extra->offset + tensor->view_offs + offset, data, size); + ggml_vk_buffer_write_async(ctx->transfer_ctx, buf, extra->offset + tensor->view_offs + offset, data, size, ctx->staging, ctx->staging_offset); } GGML_CALL static void ggml_backend_vk_get_tensor_async(ggml_backend_t backend, const ggml_tensor * tensor, void * data, size_t offset, size_t size) { VK_LOG_DEBUG("ggml_backend_vk_get_tensor_async(" << size << ")"); ggml_backend_vk_context * ctx = (ggml_backend_vk_context *)backend->context; - GGML_ASSERT((tensor->buffer->buft == ggml_backend_vk_buffer_type(ctx->idx) || tensor->buffer->buft == ggml_backend_vk_host_buffer_type()) && "unsupported buffer type"); + GGML_ASSERT((tensor->buffer->buft == ggml_backend_vk_get_default_buffer_type(backend) || tensor->buffer->buft == ggml_backend_vk_host_buffer_type()) && "unsupported buffer type"); ggml_tensor_extra_gpu * extra = (ggml_tensor_extra_gpu *) tensor->extra; if (ctx->transfer_ctx == nullptr) { // Initialize new transfer context ctx->transfer_ctx = ggml_vk_create_context(ctx, ctx->device->transfer_queue); - ggml_vk_ctx_begin(ctx, ctx->transfer_ctx); + ggml_vk_ctx_begin(ctx->device, ctx->transfer_ctx); } vk_buffer buf = extra->buffer_gpu.lock(); - ggml_vk_buffer_read_async(ctx, ctx->transfer_ctx, buf, extra->offset + tensor->view_offs + offset, data, size); + ggml_vk_buffer_read_async(ctx->transfer_ctx, buf, extra->offset + tensor->view_offs + offset, data, size, ctx->staging, ctx->staging_offset); } GGML_CALL static bool ggml_backend_vk_cpy_tensor_async(ggml_backend_t backend, const ggml_tensor * src, ggml_tensor * dst) { VK_LOG_DEBUG("ggml_backend_vk_cpy_tensor_async()"); ggml_backend_vk_context * ctx = (ggml_backend_vk_context *)backend->context; - if ((dst->buffer->buft == ggml_backend_vk_buffer_type(ctx->idx) || dst->buffer->buft == ggml_backend_vk_host_buffer_type()) && ggml_backend_buffer_is_vk(src->buffer)) { + if ((dst->buffer->buft == ggml_backend_vk_get_default_buffer_type(backend) || dst->buffer->buft == ggml_backend_vk_host_buffer_type()) && ggml_backend_buffer_is_vk(src->buffer)) { ggml_tensor_extra_gpu * src_extra = (ggml_tensor_extra_gpu *) src->extra; ggml_tensor_extra_gpu * dst_extra = (ggml_tensor_extra_gpu *) dst->extra; if (ctx->transfer_ctx == nullptr) { // Initialize new transfer context ctx->transfer_ctx = ggml_vk_create_context(ctx, ctx->device->transfer_queue); - ggml_vk_ctx_begin(ctx, ctx->transfer_ctx); + ggml_vk_ctx_begin(ctx->device, ctx->transfer_ctx); } vk_buffer src_buf = src_extra->buffer_gpu.lock(); @@ -6464,7 +6372,7 @@ GGML_CALL static bool ggml_backend_vk_supports_buft(ggml_backend_t backend, ggml ggml_backend_vk_buffer_type_context * buft_ctx = (ggml_backend_vk_buffer_type_context *)buft->context; ggml_backend_vk_context * ctx = (ggml_backend_vk_context *)backend->context; - return buft_ctx->ctx->idx == ctx->idx; + return buft_ctx->device == ctx->device; } // TODO: enable async and synchronize @@ -6497,28 +6405,17 @@ static ggml_guid_t ggml_backend_vk_guid() { } GGML_CALL ggml_backend_t ggml_backend_vk_init(size_t dev_num) { - if (vk_instance.initialized[dev_num]) { - return vk_instance.backends[dev_num]; - } VK_LOG_DEBUG("ggml_backend_vk_init(" << dev_num << ")"); - ggml_backend_vk_context * ctx = &vk_instance.contexts[dev_num]; + ggml_backend_vk_context * ctx = new ggml_backend_vk_context; ggml_vk_init(ctx, dev_num); - ctx->name = GGML_VK_NAME + std::to_string(dev_num); - vk_instance.buffer_types[dev_num] = { - /* .iface = */ ggml_backend_vk_buffer_type_interface, - /* .context = */ new ggml_backend_vk_buffer_type_context{ ctx->name, ctx }, - }; - vk_instance.initialized[dev_num] = true; ggml_backend_t vk_backend = new ggml_backend { /* .guid = */ ggml_backend_vk_guid(), /* .interface = */ ggml_backend_vk_interface, - /* .context = */ &vk_instance.contexts[ctx->idx], + /* .context = */ ctx, }; - vk_instance.backends[dev_num] = vk_backend; - return vk_backend; } diff --git a/vulkan-shaders/mul_mat_vec.comp b/vulkan-shaders/mul_mat_vec.comp index 292ccfd749c1a..15d2a80632d6b 100644 --- a/vulkan-shaders/mul_mat_vec.comp +++ b/vulkan-shaders/mul_mat_vec.comp @@ -13,7 +13,7 @@ layout (constant_id = 0) const uint BLOCK_SIZE = 32; shared FLOAT_TYPE tmp[BLOCK_SIZE]; void main() { - const uint row = gl_WorkGroupID.x; + const uint row = gl_WorkGroupID.x + gl_NumWorkGroups.x * gl_WorkGroupID.z; const uint tid = gl_LocalInvocationID.x; uint a_offset, b_offset, d_offset; diff --git a/vulkan-shaders/mul_mat_vec_q2_k.comp b/vulkan-shaders/mul_mat_vec_q2_k.comp index 27bf6d51ced7c..4cd97799df196 100644 --- a/vulkan-shaders/mul_mat_vec_q2_k.comp +++ b/vulkan-shaders/mul_mat_vec_q2_k.comp @@ -7,7 +7,7 @@ layout(local_size_x = 32, local_size_y = 1, local_size_z = 1) in; shared FLOAT_TYPE tmp[32]; void main() { - const uint row = gl_WorkGroupID.x; + const uint row = gl_WorkGroupID.x + gl_NumWorkGroups.x * gl_WorkGroupID.z; uint a_offset, b_offset, d_offset; get_offsets(a_offset, b_offset, d_offset); diff --git a/vulkan-shaders/mul_mat_vec_q3_k.comp b/vulkan-shaders/mul_mat_vec_q3_k.comp index 7c837fef20052..a6e430ea08c5d 100644 --- a/vulkan-shaders/mul_mat_vec_q3_k.comp +++ b/vulkan-shaders/mul_mat_vec_q3_k.comp @@ -7,7 +7,7 @@ layout(local_size_x = 32, local_size_y = 1, local_size_z = 1) in; shared FLOAT_TYPE tmp[32]; void main() { - const uint row = gl_WorkGroupID.x; + const uint row = gl_WorkGroupID.x + gl_NumWorkGroups.x * gl_WorkGroupID.z; uint a_offset, b_offset, d_offset; get_offsets(a_offset, b_offset, d_offset); diff --git a/vulkan-shaders/mul_mat_vec_q4_k.comp b/vulkan-shaders/mul_mat_vec_q4_k.comp index 1566f26d3faf8..75569363c64a9 100644 --- a/vulkan-shaders/mul_mat_vec_q4_k.comp +++ b/vulkan-shaders/mul_mat_vec_q4_k.comp @@ -7,7 +7,7 @@ layout(local_size_x = 32, local_size_y = 1, local_size_z = 1) in; shared FLOAT_TYPE tmp[32]; void main() { - const uint row = gl_WorkGroupID.x; + const uint row = gl_WorkGroupID.x + gl_NumWorkGroups.x * gl_WorkGroupID.z; uint a_offset, b_offset, d_offset; get_offsets(a_offset, b_offset, d_offset); diff --git a/vulkan-shaders/mul_mat_vec_q5_k.comp b/vulkan-shaders/mul_mat_vec_q5_k.comp index 4add64327ea52..9be3645bdea0e 100644 --- a/vulkan-shaders/mul_mat_vec_q5_k.comp +++ b/vulkan-shaders/mul_mat_vec_q5_k.comp @@ -7,7 +7,7 @@ layout(local_size_x = 32, local_size_y = 1, local_size_z = 1) in; shared FLOAT_TYPE tmp[32]; void main() { - const uint row = gl_WorkGroupID.x; + const uint row = gl_WorkGroupID.x + gl_NumWorkGroups.x * gl_WorkGroupID.z; uint a_offset, b_offset, d_offset; get_offsets(a_offset, b_offset, d_offset); diff --git a/vulkan-shaders/mul_mat_vec_q6_k.comp b/vulkan-shaders/mul_mat_vec_q6_k.comp index 8c550e7c37233..d610cf0306b0a 100644 --- a/vulkan-shaders/mul_mat_vec_q6_k.comp +++ b/vulkan-shaders/mul_mat_vec_q6_k.comp @@ -7,7 +7,7 @@ layout(local_size_x = 32, local_size_y = 1, local_size_z = 1) in; shared FLOAT_TYPE tmp[32]; void main() { - const uint row = gl_WorkGroupID.x; + const uint row = gl_WorkGroupID.x + gl_NumWorkGroups.x * gl_WorkGroupID.z; uint a_offset, b_offset, d_offset; get_offsets(a_offset, b_offset, d_offset); From b6b9a8e606da7764bd3649c2ea574979c85abd43 Mon Sep 17 00:00:00 2001 From: slaren Date: Sun, 23 Jun 2024 13:14:45 +0200 Subject: [PATCH 127/131] fix CI failures (#8066) * test-backend-ops : increase cpy max nmse * server ci : disable thread sanitizer --- .github/workflows/server.yml | 2 +- tests/test-backend-ops.cpp | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/server.yml b/.github/workflows/server.yml index 6155e94156e42..311abf02af807 100644 --- a/.github/workflows/server.yml +++ b/.github/workflows/server.yml @@ -30,7 +30,7 @@ jobs: strategy: matrix: - sanitizer: [ADDRESS, THREAD, UNDEFINED] + sanitizer: [ADDRESS, UNDEFINED] # THREAD is broken build_type: [RelWithDebInfo] include: - build_type: Release diff --git a/tests/test-backend-ops.cpp b/tests/test-backend-ops.cpp index 7c504e937a851..1ed74e543dd9f 100644 --- a/tests/test-backend-ops.cpp +++ b/tests/test-backend-ops.cpp @@ -785,6 +785,10 @@ struct test_cpy : public test_case { return VARS_TO_STR3(type_src, type_dst, ne); } + double max_nmse_err() override { + return 1e-6; + } + size_t op_size(ggml_tensor * t) override { return ggml_nbytes(t) + ggml_nbytes(t->src[0]); } From 11318d9aa1f668aa10407a5cb9614371af32f3ce Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Sun, 23 Jun 2024 15:39:45 +0200 Subject: [PATCH 128/131] Fix typo in llama_set_embeddings comment (#8077) --- llama.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/llama.h b/llama.h index 05d8b092b42a4..53e06d9db5273 100644 --- a/llama.h +++ b/llama.h @@ -786,7 +786,7 @@ extern "C" { // Get the number of threads used for prompt and batch processing (multiple token). LLAMA_API uint32_t llama_n_threads_batch(struct llama_context * ctx); - // Set whether the model is in embeddings model or not + // Set whether the model is in embeddings mode or not // If true, embeddings will be returned but logits will not LLAMA_API void llama_set_embeddings(struct llama_context * ctx, bool embeddings); From 6a2f298bd784403c5c33eebb822217ec5d9b5590 Mon Sep 17 00:00:00 2001 From: Aarni Koskela Date: Sun, 23 Jun 2024 18:03:08 +0300 Subject: [PATCH 129/131] server : fix JSON-Scheme typo (#7975) --- examples/server/public/index-new.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/server/public/index-new.html b/examples/server/public/index-new.html index 19c9f643d3027..5513e9121a40f 100644 --- a/examples/server/public/index-new.html +++ b/examples/server/public/index-new.html @@ -634,12 +634,12 @@
    -